Repository: jesse-ai/jesse Branch: master Commit: b64c867d53e5 Files: 2201 Total size: 39.9 MB Directory structure: gitextract_flm9a1yh/ ├── .dockerignore ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── stale.yml │ └── workflows/ │ ├── codeql-analysis.yml │ └── python-package.yml ├── .gitignore ├── AGENTS.md ├── Dockerfile ├── LICENSE ├── MANIFEST.in ├── README.md ├── codecov.yml ├── conftest.py ├── jesse/ │ ├── __init__.py │ ├── candle_pipelines/ │ │ ├── __init__.py │ │ ├── base_candles.py │ │ ├── gaussian_noise.py │ │ ├── gaussian_resampler.py │ │ └── moving_block_bootstrap.py │ ├── cli.py │ ├── config.py │ ├── constants.py │ ├── controllers/ │ │ ├── __init__.py │ │ ├── auth_controller.py │ │ ├── backtest_controller.py │ │ ├── candles_controller.py │ │ ├── closed_trade_controller.py │ │ ├── config_controller.py │ │ ├── exchange_controller.py │ │ ├── file_controller.py │ │ ├── live_controller.py │ │ ├── lsp_controller.py │ │ ├── monte_carlo_controller.py │ │ ├── notification_controller.py │ │ ├── optimization_controller.py │ │ ├── order_controller.py │ │ ├── strategy_controller.py │ │ ├── system_controller.py │ │ ├── tabs_controller.py │ │ └── websocket_controller.py │ ├── enums/ │ │ └── __init__.py │ ├── exceptions/ │ │ └── __init__.py │ ├── exchanges/ │ │ ├── __init__.py │ │ ├── exchange.py │ │ └── sandbox/ │ │ ├── Sandbox.py │ │ └── __init__.py │ ├── factories/ │ │ ├── __init__.py │ │ ├── candle_factory.py │ │ └── order_factory.py │ ├── helpers.py │ ├── indicators/ │ │ ├── __init__.py │ │ ├── acosc.py │ │ ├── ad.py │ │ ├── adosc.py │ │ ├── adx.py │ │ ├── adxr.py │ │ ├── alligator.py │ │ ├── alma.py │ │ ├── ao.py │ │ ├── apo.py │ │ ├── aroon.py │ │ ├── aroonosc.py │ │ ├── atr.py │ │ ├── avgprice.py │ │ ├── bandpass.py │ │ ├── beta.py │ │ ├── bollinger_bands.py │ │ ├── bollinger_bands_width.py │ │ ├── bop.py │ │ ├── cc.py │ │ ├── cci.py │ │ ├── cfo.py │ │ ├── cg.py │ │ ├── chande.py │ │ ├── chop.py │ │ ├── cksp.py │ │ ├── cmo.py │ │ ├── correl.py │ │ ├── correlation_cycle.py │ │ ├── cvi.py │ │ ├── cwma.py │ │ ├── damiani_volatmeter.py │ │ ├── dec_osc.py │ │ ├── decycler.py │ │ ├── dema.py │ │ ├── devstop.py │ │ ├── di.py │ │ ├── dm.py │ │ ├── donchian.py │ │ ├── dpo.py │ │ ├── dti.py │ │ ├── dx.py │ │ ├── edcf.py │ │ ├── efi.py │ │ ├── ema.py │ │ ├── emd.py │ │ ├── emv.py │ │ ├── epma.py │ │ ├── er.py │ │ ├── eri.py │ │ ├── fisher.py │ │ ├── fosc.py │ │ ├── frama.py │ │ ├── fwma.py │ │ ├── gatorosc.py │ │ ├── gauss.py │ │ ├── heikin_ashi_candles.py │ │ ├── high_pass.py │ │ ├── high_pass_2_pole.py │ │ ├── hma.py │ │ ├── hull_suit.py │ │ ├── hurst_exponent.py │ │ ├── hwma.py │ │ ├── ichimoku_cloud.py │ │ ├── ichimoku_cloud_seq.py │ │ ├── ift_rsi.py │ │ ├── itrend.py │ │ ├── jma.py │ │ ├── jsa.py │ │ ├── kama.py │ │ ├── kaufmanstop.py │ │ ├── kdj.py │ │ ├── keltner.py │ │ ├── kst.py │ │ ├── kurtosis.py │ │ ├── kvo.py │ │ ├── linearreg.py │ │ ├── linearreg_angle.py │ │ ├── linearreg_intercept.py │ │ ├── linearreg_slope.py │ │ ├── lrsi.py │ │ ├── ma.py │ │ ├── maaq.py │ │ ├── mab.py │ │ ├── macd.py │ │ ├── mama.py │ │ ├── marketfi.py │ │ ├── mass.py │ │ ├── mcginley_dynamic.py │ │ ├── mean_ad.py │ │ ├── median_ad.py │ │ ├── medprice.py │ │ ├── mfi.py │ │ ├── midpoint.py │ │ ├── midprice.py │ │ ├── minmax.py │ │ ├── mom.py │ │ ├── mwdx.py │ │ ├── natr.py │ │ ├── nma.py │ │ ├── nvi.py │ │ ├── obv.py │ │ ├── pfe.py │ │ ├── pivot.py │ │ ├── pma.py │ │ ├── ppo.py │ │ ├── pvi.py │ │ ├── pwma.py │ │ ├── qstick.py │ │ ├── reflex.py │ │ ├── rma.py │ │ ├── roc.py │ │ ├── rocp.py │ │ ├── rocr.py │ │ ├── rocr100.py │ │ ├── roofing.py │ │ ├── rsi.py │ │ ├── rsmk.py │ │ ├── rsx.py │ │ ├── rvi.py │ │ ├── safezonestop.py │ │ ├── sar.py │ │ ├── settings.jsonc │ │ ├── sinwma.py │ │ ├── skew.py │ │ ├── sma.py │ │ ├── smma.py │ │ ├── squeeze_momentum.py │ │ ├── sqwma.py │ │ ├── srsi.py │ │ ├── srwma.py │ │ ├── stc.py │ │ ├── stddev.py │ │ ├── stiffness.py │ │ ├── stochastic.py │ │ ├── stochf.py │ │ ├── supersmoother.py │ │ ├── supersmoother_3_pole.py │ │ ├── supertrend.py │ │ ├── support_resistance_with_break.py │ │ ├── swma.py │ │ ├── t3.py │ │ ├── tema.py │ │ ├── trange.py │ │ ├── trendflex.py │ │ ├── trima.py │ │ ├── trix.py │ │ ├── tsf.py │ │ ├── tsi.py │ │ ├── ttm_squeeze.py │ │ ├── ttm_trend.py │ │ ├── typprice.py │ │ ├── ui.py │ │ ├── ultosc.py │ │ ├── var.py │ │ ├── vi.py │ │ ├── vidya.py │ │ ├── vlma.py │ │ ├── volume.py │ │ ├── vosc.py │ │ ├── voss.py │ │ ├── vpci.py │ │ ├── vpt.py │ │ ├── vpwma.py │ │ ├── vwap.py │ │ ├── vwma.py │ │ ├── vwmacd.py │ │ ├── wad.py │ │ ├── waddah_attr_explosion.py │ │ ├── wclprice.py │ │ ├── wilders.py │ │ ├── willr.py │ │ ├── wma.py │ │ ├── wt.py │ │ ├── zlema.py │ │ └── zscore.py │ ├── info.py │ ├── libs/ │ │ ├── __init__.py │ │ ├── custom_json/ │ │ │ └── __init__.py │ │ └── dynamic_numpy_array/ │ │ └── __init__.py │ ├── models/ │ │ ├── BacktestSession.py │ │ ├── Candle.py │ │ ├── ClosedTrade.py │ │ ├── Exchange.py │ │ ├── ExchangeApiKeys.py │ │ ├── FuturesExchange.py │ │ ├── LiveEquitySnapshot.py │ │ ├── LiveSession.py │ │ ├── Log.py │ │ ├── MonteCarloSession.py │ │ ├── NotificationApiKeys.py │ │ ├── OpenTab.py │ │ ├── OptimizationSession.py │ │ ├── Option.py │ │ ├── Order.py │ │ ├── Orderbook.py │ │ ├── Position.py │ │ ├── Route.py │ │ ├── SpotExchange.py │ │ ├── Ticker.py │ │ ├── Trade.py │ │ └── __init__.py │ ├── modes/ │ │ ├── __init__.py │ │ ├── backtest_mode.py │ │ ├── data_provider.py │ │ ├── exchange_api_keys.py │ │ ├── import_candles_mode/ │ │ │ ├── __init__.py │ │ │ └── drivers/ │ │ │ ├── Apex/ │ │ │ │ ├── ApexOmniPerpetual.py │ │ │ │ ├── ApexOmniPerpetualTestnet.py │ │ │ │ ├── ApexProMain.py │ │ │ │ ├── ApexProPerpetual.py │ │ │ │ ├── ApexProPerpetualTestnet.py │ │ │ │ ├── __init__.py │ │ │ │ ├── apex_pro_utils.py │ │ │ │ └── omni_files/ │ │ │ │ ├── __init__.py │ │ │ │ ├── zklink_sdk-arm.py │ │ │ │ ├── zklink_sdk-pc.py │ │ │ │ ├── zklink_sdk-x86.py │ │ │ │ └── zklink_sdk.py │ │ │ ├── Binance/ │ │ │ │ ├── BinanceMain.py │ │ │ │ ├── BinancePerpetualFutures.py │ │ │ │ ├── BinancePerpetualFuturesTestnet.py │ │ │ │ ├── BinanceSpot.py │ │ │ │ ├── BinanceUSSpot.py │ │ │ │ ├── __init__.py │ │ │ │ └── binance_utils.py │ │ │ ├── Bitfinex/ │ │ │ │ ├── BitfinexSpot.py │ │ │ │ ├── __init__.py │ │ │ │ └── bitfinex_utils.py │ │ │ ├── Bybit/ │ │ │ │ ├── BybitMain.py │ │ │ │ ├── BybitSpot.py │ │ │ │ ├── BybitSpotTestnet.py │ │ │ │ ├── BybitUSDCPerpetual.py │ │ │ │ ├── BybitUSDCPerpetualTestnet.py │ │ │ │ ├── BybitUSDTPerpetual.py │ │ │ │ ├── BybitUSDTPerpetualTestnet.py │ │ │ │ ├── __init__.py │ │ │ │ └── bybit_utils.py │ │ │ ├── Coinbase/ │ │ │ │ ├── CoinbaseSpot.py │ │ │ │ ├── __init__.py │ │ │ │ └── coinbase_utils.py │ │ │ ├── Gate/ │ │ │ │ ├── GateSpot.py │ │ │ │ ├── GateSpotMain.py │ │ │ │ ├── GateUSDTMain.py │ │ │ │ ├── GateUSDTPerpetual.py │ │ │ │ ├── __init__.py │ │ │ │ └── gate_utils.py │ │ │ ├── Hyperliquid/ │ │ │ │ ├── HyperliquidPerpetual.py │ │ │ │ ├── HyperliquidPerpetualMain.py │ │ │ │ ├── HyperliquidPerpetualTestnet.py │ │ │ │ ├── __init__.py │ │ │ │ └── hyperliquid_utils.py │ │ │ ├── __init__.py │ │ │ └── interface.py │ │ ├── monte_carlo_mode/ │ │ │ ├── MonteCarloRunner.py │ │ │ └── __init__.py │ │ ├── notification_api_keys.py │ │ ├── optimize_mode/ │ │ │ ├── Optimize.py │ │ │ ├── __init__.py │ │ │ └── fitness.py │ │ └── utils.py │ ├── repositories/ │ │ ├── __init__.py │ │ ├── candle_repository.py │ │ ├── closed_trade_repository.py │ │ ├── live_equity_repository.py │ │ ├── live_session_repository.py │ │ ├── open_tab_repository.py │ │ └── order_repository.py │ ├── research/ │ │ ├── __init__.py │ │ ├── backtest.py │ │ ├── candles.py │ │ ├── import_candles.py │ │ ├── ml.py │ │ └── monte_carlo/ │ │ ├── __init__.py │ │ ├── common.py │ │ ├── monte_carlo_candles.py │ │ └── monte_carlo_trades.py │ ├── routes/ │ │ └── __init__.py │ ├── services/ │ │ ├── __init__.py │ │ ├── api.py │ │ ├── auth.py │ │ ├── broker.py │ │ ├── cache.py │ │ ├── candle_service.py │ │ ├── charts.py │ │ ├── closed_trade_service.py │ │ ├── color.py │ │ ├── db.py │ │ ├── env.py │ │ ├── exchange_service.py │ │ ├── failure.py │ │ ├── file.py │ │ ├── general_info.py │ │ ├── installer.py │ │ ├── jesse_trade.py │ │ ├── logger.py │ │ ├── lsp.py │ │ ├── metrics.py │ │ ├── migrator.py │ │ ├── multiprocessing.py │ │ ├── notifier.py │ │ ├── order_service.py │ │ ├── position_service.py │ │ ├── progressbar.py │ │ ├── redis.py │ │ ├── report.py │ │ ├── strategy_handler/ │ │ │ ├── ExampleStrategy/ │ │ │ │ └── __init__.py │ │ │ └── __init__.py │ │ ├── strategy_service.py │ │ ├── table.py │ │ ├── tradingview.py │ │ ├── transformers.py │ │ ├── validators.py │ │ ├── web.py │ │ └── ws_manager.py │ ├── static/ │ │ ├── 200.html │ │ ├── 404.html │ │ ├── _nuxt/ │ │ │ ├── -30QC5Em.js │ │ │ ├── 2oJWbEOo.js │ │ │ ├── 3TATJI7h.js │ │ │ ├── 3cNudfSz.js │ │ │ ├── 3e1v2bzS.js │ │ │ ├── 3kbuJQcV.js │ │ │ ├── 3xVqZejG.js │ │ │ ├── 5LuOXUq_.js │ │ │ ├── 727ZlQH0.js │ │ │ ├── 7A4Fjokl.js │ │ │ ├── 7O62HKoU.js │ │ │ ├── 9C6ErRqt.js │ │ │ ├── 9VOnL4Iz.js │ │ │ ├── B-DoSBHF.js │ │ │ ├── B-k3dvlD.js │ │ │ ├── B-k8r3hf.js │ │ │ ├── B-lZjTdr.js │ │ │ ├── B0XVJmRM.js │ │ │ ├── B0m2ddpp.js │ │ │ ├── B0qRVHPH.js │ │ │ ├── B14Poo8t.js │ │ │ ├── B1SYOhNW.js │ │ │ ├── B1bQXN8T.js │ │ │ ├── B1vp6HhI.js │ │ │ ├── B2Cf9XSq.js │ │ │ ├── B2nSH5Xk.js │ │ │ ├── B2vK47Ag.js │ │ │ ├── B3ZDOciz.js │ │ │ ├── B430Bg39.js │ │ │ ├── B48N-Iqd.js │ │ │ ├── B4VqtPa2.js │ │ │ ├── B5auBHZD.js │ │ │ ├── B5lbUyaz.js │ │ │ ├── B5uW3Zvf.js │ │ │ ├── B6W0miNI.js │ │ │ ├── B7alP455.js │ │ │ ├── B7mTdjB0.js │ │ │ ├── B8ssZoUh.js │ │ │ ├── B9wLZaAG.js │ │ │ ├── BAng5TT0.js │ │ │ ├── BC5c_5Pe.js │ │ │ ├── BE9QQhgF.js │ │ │ ├── BEBZ7ncR.js │ │ │ ├── BEhvmC7f.js │ │ │ ├── BFLt1xDp.js │ │ │ ├── BFOHcciG.js │ │ │ ├── BFk92hFI.js │ │ │ ├── BGLI1Hdo.js │ │ │ ├── BHOwM8T6.js │ │ │ ├── BIEUsx6d.js │ │ │ ├── BILxekzW.js │ │ │ ├── BJ4Li9vH.js │ │ │ ├── BJ5jdafP.js │ │ │ ├── BJGe-b2p.js │ │ │ ├── BK9xJ97g.js │ │ │ ├── BKENxkRn.js │ │ │ ├── BLhTXw86.js │ │ │ ├── BLuZWbUW.js │ │ │ ├── BMR_PYu6.js │ │ │ ├── BMYPR7BL.js │ │ │ ├── BMj5Y0dO.js │ │ │ ├── BMl_rFTw.js │ │ │ ├── BNHBcdi1.js │ │ │ ├── BNioltXt.js │ │ │ ├── BPT9niGB.js │ │ │ ├── BPUjjr-i.js │ │ │ ├── BPhBrDlE.js │ │ │ ├── BQoSv7ci.js │ │ │ ├── BQwtg7Y-.js │ │ │ ├── BRk-K-rg.js │ │ │ ├── BS9OwPT8.js │ │ │ ├── BSxZ-RaX.js │ │ │ ├── BTpWsGps.js │ │ │ ├── BUEGK8hf.js │ │ │ ├── BVUVsWT6.js │ │ │ ├── BVr_1_27.js │ │ │ ├── BVz_zdnA.js │ │ │ ├── BW0IIeyO.js │ │ │ ├── BWBTHuhh.js │ │ │ ├── BX77sIaO.js │ │ │ ├── BXW1EomU.js │ │ │ ├── BXYnMxBe.js │ │ │ ├── BXkSAIEj.js │ │ │ ├── BY-TUvya.js │ │ │ ├── BY6pwuIY.js │ │ │ ├── BYtUz8ZP.js │ │ │ ├── B_i9asfM.js │ │ │ ├── B_m7g4N7.js │ │ │ ├── BaOuBgqt.js │ │ │ ├── BacktestTabs.CTcEQ1jl.css │ │ │ ├── Bad53t6V.js │ │ │ ├── BbSNqyBO.js │ │ │ ├── Bc5xkKR1.js │ │ │ ├── BdxkyMLR.js │ │ │ ├── Be6lgOlo.js │ │ │ ├── BeQkCIfX.js │ │ │ ├── BfCpw3nA.js │ │ │ ├── BfHTSMKl.js │ │ │ ├── BfLuTCmN.js │ │ │ ├── BfYIQCg8.js │ │ │ ├── BfivnA6A.js │ │ │ ├── BfjtVDDH.js │ │ │ ├── Bg-kzb6g.js │ │ │ ├── BgDCqdQA.js │ │ │ ├── BgYniUM_.js │ │ │ ├── BiFfXF7O.js │ │ │ ├── Bid6LQhH.js │ │ │ ├── BjABl1g7.js │ │ │ ├── BjQB5zDj.js │ │ │ ├── BjtZpFsH.js │ │ │ ├── Bk9BmIv8.js │ │ │ ├── BknIz3MU.js │ │ │ ├── Bkuqu6BP.js │ │ │ ├── Bl1h29GH.js │ │ │ ├── BlxRB_8X.js │ │ │ ├── BoXegm-a.js │ │ │ ├── Bp6g37R7.js │ │ │ ├── BpWG_bgh.js │ │ │ ├── BsOYHjMa.js │ │ │ ├── Bt5ljtES.js │ │ │ ├── BthQWCQV.js │ │ │ ├── Bu5BbsvL.js │ │ │ ├── Bu73EIfS.js │ │ │ ├── BuapDI9Y.js │ │ │ ├── BuljS_lV.js │ │ │ ├── BupSXVCO.js │ │ │ ├── Bvotw-X0.js │ │ │ ├── Bw0wYZmb.js │ │ │ ├── Bw305WKR.js │ │ │ ├── BwHcMc3Y.js │ │ │ ├── BwXTMy5W.js │ │ │ ├── BygKL3ZF.js │ │ │ ├── BypH-vXm.js │ │ │ ├── BzJJZx-M.js │ │ │ ├── Bzb7OGdO.js │ │ │ ├── C-_shW-Y.js │ │ │ ├── C-nORZOA.js │ │ │ ├── C-wny61x.js │ │ │ ├── C0nbwVuJ.js │ │ │ ├── C1XDQQGZ.js │ │ │ ├── C1tVc3UG.js │ │ │ ├── C1w2a3ep.js │ │ │ ├── C30yJ1fx.js │ │ │ ├── C39BiMTA.js │ │ │ ├── C3FkfJm5.js │ │ │ ├── C3khCPGq.js │ │ │ ├── C3mMm8J8.js │ │ │ ├── C3t2pwGQ.js │ │ │ ├── C4bX54si.js │ │ │ ├── C5Y8tDhP.js │ │ │ ├── C5wWYbrZ.js │ │ │ ├── C6794tGI.js │ │ │ ├── C6j12Q_x.js │ │ │ ├── C75U4IDy.js │ │ │ ├── C7L56vO4.js │ │ │ ├── C7gG9l05.js │ │ │ ├── C8M2exoo.js │ │ │ ├── C8lEn-DE.js │ │ │ ├── C9L3yaDO.js │ │ │ ├── CAQ2eGtk.js │ │ │ ├── CB0Krxn9.js │ │ │ ├── CB2ApiWb.js │ │ │ ├── CCBS_C5_.js │ │ │ ├── CD20-hSi.js │ │ │ ├── CD_QflpE.js │ │ │ ├── CG6Dc4jp.js │ │ │ ├── CGVVOGHx.js │ │ │ ├── CJaU5se_.js │ │ │ ├── CKg9tqCS.js │ │ │ ├── CM8KxXT1.js │ │ │ ├── CMt9yHYq.js │ │ │ ├── COJ4H7py.js │ │ │ ├── COK4E0Yg.js │ │ │ ├── COcR7UxN.js │ │ │ ├── COyJrUc7.js │ │ │ ├── CP8nbYEq.js │ │ │ ├── CQ0soPOq.js │ │ │ ├── CQjiPCtT.js │ │ │ ├── CRzUWN8h.js │ │ │ ├── CS3Unz2-.js │ │ │ ├── CSHBycmS.js │ │ │ ├── CSp6iqVD.js │ │ │ ├── CTNlIIiR.js │ │ │ ├── CTRr51gU.js │ │ │ ├── CUKaiP0K.js │ │ │ ├── CU_MfyYc.js │ │ │ ├── CUnW07Te.js │ │ │ ├── CV9EbfTh.js │ │ │ ├── CVO1_9PV.js │ │ │ ├── CViTd9PT.js │ │ │ ├── CVw76BM1.js │ │ │ ├── CXKOl_mN.js │ │ │ ├── CYFUjXW1.js │ │ │ ├── CYcD1Eih.js │ │ │ ├── CYgUR4L5.js │ │ │ ├── CZe0XNBd.js │ │ │ ├── CZogWebk.js │ │ │ ├── C_scCXcs.js │ │ │ ├── CafNBF8u.js │ │ │ ├── CbfX1IO0.js │ │ │ ├── Cc5clBb7.js │ │ │ ├── Cc6zh8Uk.js │ │ │ ├── CdO5JTpU.js │ │ │ ├── Cf8iN4DR.js │ │ │ ├── CfBo882q.js │ │ │ ├── CfQXZHmo.js │ │ │ ├── CfnpWUYo.js │ │ │ ├── Ci6OQyBP.js │ │ │ ├── CircleProgressbar.Bqs-YaMH.css │ │ │ ├── CjDtw9vr.js │ │ │ ├── CkXjmgJE.js │ │ │ ├── Ckkbw-AO.js │ │ │ ├── ClGRhx96.js │ │ │ ├── CmCqftbK.js │ │ │ ├── CoJj_PRq.js │ │ │ ├── Cq2jzwMq.js │ │ │ ├── CqvT4tPC.js │ │ │ ├── CrrKwR0a.js │ │ │ ├── CsSk9TLD.js │ │ │ ├── Csfq5Kiy.js │ │ │ ├── CuFlys0T.js │ │ │ ├── Cuk6v7N8.js │ │ │ ├── Cv9koXgw.js │ │ │ ├── CvhZxjKo.js │ │ │ ├── CvkRSmvA.js │ │ │ ├── CvlXmOiu.js │ │ │ ├── Cw4FHd9N.js │ │ │ ├── CwDv50qJ.js │ │ │ ├── Cwg39VG_.js │ │ │ ├── CwjWoCRV.js │ │ │ ├── CyIGOvEh.js │ │ │ ├── CyVeKkvQ.js │ │ │ ├── CyktbL80.js │ │ │ ├── Cz8P-rqG.js │ │ │ ├── CzF1MCbP.js │ │ │ ├── Cza_XSSt.js │ │ │ ├── CzouJOBO.js │ │ │ ├── D-1_drer.js │ │ │ ├── D-2ljcwZ.js │ │ │ ├── D0UiDa5C.js │ │ │ ├── D0r3Knsf.js │ │ │ ├── D2PfwrvU.js │ │ │ ├── D2Z7JJdl.js │ │ │ ├── D35nYK_C.js │ │ │ ├── D4Tzg5kh.js │ │ │ ├── D4aGjE-s.js │ │ │ ├── D4h5O-jR.js │ │ │ ├── D5KoaKCx.js │ │ │ ├── D5pd2Owo.js │ │ │ ├── D7lU1fdU.js │ │ │ ├── D7oLnXFd.js │ │ │ ├── D8mZ0lfy.js │ │ │ ├── D9-PGadD.js │ │ │ ├── D94h4QjT.js │ │ │ ├── D9R-vmeu.js │ │ │ ├── D9yiNO04.js │ │ │ ├── DAi9KRSo.js │ │ │ ├── DB0RB20n.js │ │ │ ├── DBQeEorK.js │ │ │ ├── DB_GagMm.js │ │ │ ├── DCE3LsBG.js │ │ │ ├── DDpSJMW6.js │ │ │ ├── DDrv2Hr-.js │ │ │ ├── DDtJtuOZ.js │ │ │ ├── DEIpsLCJ.js │ │ │ ├── DGRk4fvy.js │ │ │ ├── DH5Ifo-i.js │ │ │ ├── DHJKELXO.js │ │ │ ├── DHo0CJ0O.js │ │ │ ├── DIovg4uR.js │ │ │ ├── DJlmqQ1C.js │ │ │ ├── DK27pemE.js │ │ │ ├── DKOGybHv.js │ │ │ ├── DKXYxT9g.js │ │ │ ├── DKykz6zU.js │ │ │ ├── DLPipH_Q.js │ │ │ ├── DLbgOhZU.js │ │ │ ├── DLs3tTet.js │ │ │ ├── DMFWKIsW.js │ │ │ ├── DMpbkAFi.js │ │ │ ├── DNquZEk8.js │ │ │ ├── DOAuugfS.js │ │ │ ├── DOk3G3cc.js │ │ │ ├── DP9I38t9.js │ │ │ ├── DPg46dy1.js │ │ │ ├── DPvbFsQx.js │ │ │ ├── DQ1-QYvQ.js │ │ │ ├── DQ5Sj-RJ.js │ │ │ ├── DQVVAn-B.js │ │ │ ├── DRC6TkPh.js │ │ │ ├── DREVFZK8.js │ │ │ ├── DRNBmV_Q.js │ │ │ ├── DRW-0cLl.js │ │ │ ├── DRhBOlRY.js │ │ │ ├── DUszq2jm.js │ │ │ ├── DVG02705.js │ │ │ ├── DVYH6Lj_.js │ │ │ ├── DWGz5Zuj.js │ │ │ ├── DWJ3fJO_.js │ │ │ ├── DWedfzmr.js │ │ │ ├── DXXGBMMv.js │ │ │ ├── DXbdFlpD.js │ │ │ ├── DYoNaHQp.js │ │ │ ├── DYvnoCeB.js │ │ │ ├── DZb6Dd70.js │ │ │ ├── D_OY6ada.js │ │ │ ├── D_z4Izcz.js │ │ │ ├── DaasEFj5.js │ │ │ ├── Dayu4EKP.js │ │ │ ├── DbXoA79R.js │ │ │ ├── Dbxjm_CC.js │ │ │ ├── DcXBrGfk.js │ │ │ ├── Ddv68eIx.js │ │ │ ├── DeYg-96x.js │ │ │ ├── Deuh7S70.js │ │ │ ├── DfxzS6Rs.js │ │ │ ├── Dgyr3wWZ.js │ │ │ ├── DhMKtDLN.js │ │ │ ├── DhUJRlN_.js │ │ │ ├── Dhn9LcZ4.js │ │ │ ├── Dj6nwHGl.js │ │ │ ├── DjHMNizO.js │ │ │ ├── DkBy-JyN.js │ │ │ ├── DkLiglaE.js │ │ │ ├── DmDlXweU.js │ │ │ ├── DmdQbaLT.js │ │ │ ├── DmtRXgke.js │ │ │ ├── Dmy2k9nq.js │ │ │ ├── Dn00JSTd.js │ │ │ ├── DnULxvSX.js │ │ │ ├── DnWQm4Tq.js │ │ │ ├── DoFvH58O.js │ │ │ ├── DqwNpetd.js │ │ │ ├── DrRCxMg5.js │ │ │ ├── Dr_JbmT0.js │ │ │ ├── DrqOgyji.js │ │ │ ├── Drsz93k2.js │ │ │ ├── Ds-gbosJ.js │ │ │ ├── DsBKuouk.js │ │ │ ├── DsWjAdsX.js │ │ │ ├── Dsg_Bt_b.js │ │ │ ├── DtFQj3wx.js │ │ │ ├── Du268qiB.js │ │ │ ├── Du3IqvzK.js │ │ │ ├── Du5NY7AG.js │ │ │ ├── DvSxYeG4.js │ │ │ ├── DxSadP1t.js │ │ │ ├── DyKutqhl.js │ │ │ ├── DyLYGjHh.js │ │ │ ├── E1yjnBiT.js │ │ │ ├── E3gJ1_iC.js │ │ │ ├── FNqbgIOG.js │ │ │ ├── GBQ2dnAY.js │ │ │ ├── HNqc6WRo.js │ │ │ ├── HeqvyViL.js │ │ │ ├── HnGAYVZD.js │ │ │ ├── HzYwdGDm.js │ │ │ ├── IconCSS.RN4HczVp.css │ │ │ ├── IuBKFhSY.js │ │ │ ├── JqZropPD.js │ │ │ ├── L9t79GZl.js │ │ │ ├── LGGdnPYs.js │ │ │ ├── LKU2TuZ1.js │ │ │ ├── LiveTabs.15UVtLVQ.css │ │ │ ├── O-0jUIAi.js │ │ │ ├── P4WzXJd0.js │ │ │ ├── PoHY5YXO.js │ │ │ ├── Progress.CWZn3LuJ.css │ │ │ ├── QhoSD0DR.js │ │ │ ├── R900dpIa.js │ │ │ ├── RFJ54-KY.js │ │ │ ├── SKMF96pI.js │ │ │ ├── SPD3sf1n.js │ │ │ ├── StrategiesSidebar.BLGw1dq7.css │ │ │ ├── T-Tgc4AT.js │ │ │ ├── TU54ms6u.js │ │ │ ├── Tz6hzZYG.js │ │ │ ├── UIAJJxZW.js │ │ │ ├── UL5zprDm.js │ │ │ ├── UMmp-gVE.js │ │ │ ├── VuadG5SK.js │ │ │ ├── X3S5orim.js │ │ │ ├── XBlWyCtg.js │ │ │ ├── YJb9dmdj.js │ │ │ ├── ZlaFEk-P.js │ │ │ ├── _FEXNRsZ.js │ │ │ ├── _id_.CZ9YoXDN.css │ │ │ ├── _id_.PO5SUJPO.css │ │ │ ├── ahYVQIuB.js │ │ │ ├── ajMbGru0.js │ │ │ ├── atvbtKCR.js │ │ │ ├── bCA53EVm.js │ │ │ ├── bN70gL4F.js │ │ │ ├── cPjAOO0u.js │ │ │ ├── dUAF8qyF.js │ │ │ ├── din0uRiO.js │ │ │ ├── e4jU7D2d.js │ │ │ ├── eg146-Ew.js │ │ │ ├── entry.Co9uk6v2.css │ │ │ ├── error-404.DZraUJun.css │ │ │ ├── error-500.XmAVHPl_.css │ │ │ ├── fje9CFhw.js │ │ │ ├── gRuQeaLk.js │ │ │ ├── ifBTmRxC.js │ │ │ ├── index.dzGxyoTu.css │ │ │ ├── index.lQPmb1y9.css │ │ │ ├── m09vb5r-.js │ │ │ ├── m2LEI-9-.js │ │ │ ├── m4gc_qpA.js │ │ │ ├── m4uW47V2.js │ │ │ ├── mebxcVVE.js │ │ │ ├── nuxt-monaco-editor/ │ │ │ │ ├── metadata.d.ts │ │ │ │ ├── metadata.js │ │ │ │ └── vs/ │ │ │ │ ├── base/ │ │ │ │ │ ├── browser/ │ │ │ │ │ │ ├── browser.js │ │ │ │ │ │ ├── canIUse.js │ │ │ │ │ │ ├── contextmenu.js │ │ │ │ │ │ ├── defaultWorkerFactory.js │ │ │ │ │ │ ├── dnd.js │ │ │ │ │ │ ├── dom.js │ │ │ │ │ │ ├── dompurify/ │ │ │ │ │ │ │ └── dompurify.js │ │ │ │ │ │ ├── event.js │ │ │ │ │ │ ├── fastDomNode.js │ │ │ │ │ │ ├── fonts.js │ │ │ │ │ │ ├── formattedTextRenderer.js │ │ │ │ │ │ ├── globalPointerMoveMonitor.js │ │ │ │ │ │ ├── history.js │ │ │ │ │ │ ├── iframe.js │ │ │ │ │ │ ├── keyboardEvent.js │ │ │ │ │ │ ├── markdownRenderer.js │ │ │ │ │ │ ├── mouseEvent.js │ │ │ │ │ │ ├── performance.js │ │ │ │ │ │ ├── pixelRatio.js │ │ │ │ │ │ ├── touch.js │ │ │ │ │ │ ├── trustedTypes.js │ │ │ │ │ │ ├── ui/ │ │ │ │ │ │ │ ├── actionbar/ │ │ │ │ │ │ │ │ ├── actionViewItems.js │ │ │ │ │ │ │ │ ├── actionbar.css │ │ │ │ │ │ │ │ └── actionbar.js │ │ │ │ │ │ │ ├── aria/ │ │ │ │ │ │ │ │ ├── aria.css │ │ │ │ │ │ │ │ └── aria.js │ │ │ │ │ │ │ ├── breadcrumbs/ │ │ │ │ │ │ │ │ ├── breadcrumbsWidget.css │ │ │ │ │ │ │ │ └── breadcrumbsWidget.js │ │ │ │ │ │ │ ├── button/ │ │ │ │ │ │ │ │ ├── button.css │ │ │ │ │ │ │ │ └── button.js │ │ │ │ │ │ │ ├── codicons/ │ │ │ │ │ │ │ │ ├── codicon/ │ │ │ │ │ │ │ │ │ ├── codicon-modifiers.css │ │ │ │ │ │ │ │ │ └── codicon.css │ │ │ │ │ │ │ │ └── codiconStyles.js │ │ │ │ │ │ │ ├── contextview/ │ │ │ │ │ │ │ │ ├── contextview.css │ │ │ │ │ │ │ │ └── contextview.js │ │ │ │ │ │ │ ├── countBadge/ │ │ │ │ │ │ │ │ ├── countBadge.css │ │ │ │ │ │ │ │ └── countBadge.js │ │ │ │ │ │ │ ├── dialog/ │ │ │ │ │ │ │ │ ├── dialog.css │ │ │ │ │ │ │ │ └── dialog.js │ │ │ │ │ │ │ ├── dropdown/ │ │ │ │ │ │ │ │ ├── dropdown.css │ │ │ │ │ │ │ │ ├── dropdown.js │ │ │ │ │ │ │ │ └── dropdownActionViewItem.js │ │ │ │ │ │ │ ├── findinput/ │ │ │ │ │ │ │ │ ├── findInput.css │ │ │ │ │ │ │ │ ├── findInput.js │ │ │ │ │ │ │ │ ├── findInputToggles.js │ │ │ │ │ │ │ │ └── replaceInput.js │ │ │ │ │ │ │ ├── highlightedlabel/ │ │ │ │ │ │ │ │ └── highlightedLabel.js │ │ │ │ │ │ │ ├── hover/ │ │ │ │ │ │ │ │ ├── hover.js │ │ │ │ │ │ │ │ ├── hoverDelegate.js │ │ │ │ │ │ │ │ ├── hoverDelegate2.js │ │ │ │ │ │ │ │ ├── hoverDelegateFactory.js │ │ │ │ │ │ │ │ ├── hoverWidget.css │ │ │ │ │ │ │ │ └── hoverWidget.js │ │ │ │ │ │ │ ├── iconLabel/ │ │ │ │ │ │ │ │ ├── iconLabel.js │ │ │ │ │ │ │ │ ├── iconLabels.js │ │ │ │ │ │ │ │ └── iconlabel.css │ │ │ │ │ │ │ ├── inputbox/ │ │ │ │ │ │ │ │ ├── inputBox.css │ │ │ │ │ │ │ │ └── inputBox.js │ │ │ │ │ │ │ ├── keybindingLabel/ │ │ │ │ │ │ │ │ ├── keybindingLabel.css │ │ │ │ │ │ │ │ └── keybindingLabel.js │ │ │ │ │ │ │ ├── list/ │ │ │ │ │ │ │ │ ├── list.css │ │ │ │ │ │ │ │ ├── list.js │ │ │ │ │ │ │ │ ├── listPaging.js │ │ │ │ │ │ │ │ ├── listView.js │ │ │ │ │ │ │ │ ├── listWidget.js │ │ │ │ │ │ │ │ ├── rangeMap.js │ │ │ │ │ │ │ │ ├── rowCache.js │ │ │ │ │ │ │ │ └── splice.js │ │ │ │ │ │ │ ├── menu/ │ │ │ │ │ │ │ │ └── menu.js │ │ │ │ │ │ │ ├── mouseCursor/ │ │ │ │ │ │ │ │ ├── mouseCursor.css │ │ │ │ │ │ │ │ └── mouseCursor.js │ │ │ │ │ │ │ ├── progressbar/ │ │ │ │ │ │ │ │ ├── progressbar.css │ │ │ │ │ │ │ │ └── progressbar.js │ │ │ │ │ │ │ ├── resizable/ │ │ │ │ │ │ │ │ └── resizable.js │ │ │ │ │ │ │ ├── sash/ │ │ │ │ │ │ │ │ ├── sash.css │ │ │ │ │ │ │ │ └── sash.js │ │ │ │ │ │ │ ├── scrollbar/ │ │ │ │ │ │ │ │ ├── abstractScrollbar.js │ │ │ │ │ │ │ │ ├── horizontalScrollbar.js │ │ │ │ │ │ │ │ ├── media/ │ │ │ │ │ │ │ │ │ └── scrollbars.css │ │ │ │ │ │ │ │ ├── scrollableElement.js │ │ │ │ │ │ │ │ ├── scrollableElementOptions.js │ │ │ │ │ │ │ │ ├── scrollbarArrow.js │ │ │ │ │ │ │ │ ├── scrollbarState.js │ │ │ │ │ │ │ │ ├── scrollbarVisibilityController.js │ │ │ │ │ │ │ │ └── verticalScrollbar.js │ │ │ │ │ │ │ ├── selectBox/ │ │ │ │ │ │ │ │ ├── selectBox.css │ │ │ │ │ │ │ │ ├── selectBox.js │ │ │ │ │ │ │ │ ├── selectBoxCustom.css │ │ │ │ │ │ │ │ ├── selectBoxCustom.js │ │ │ │ │ │ │ │ └── selectBoxNative.js │ │ │ │ │ │ │ ├── splitview/ │ │ │ │ │ │ │ │ ├── splitview.css │ │ │ │ │ │ │ │ └── splitview.js │ │ │ │ │ │ │ ├── table/ │ │ │ │ │ │ │ │ ├── table.css │ │ │ │ │ │ │ │ ├── table.js │ │ │ │ │ │ │ │ └── tableWidget.js │ │ │ │ │ │ │ ├── toggle/ │ │ │ │ │ │ │ │ ├── toggle.css │ │ │ │ │ │ │ │ └── toggle.js │ │ │ │ │ │ │ ├── toolbar/ │ │ │ │ │ │ │ │ ├── toolbar.css │ │ │ │ │ │ │ │ └── toolbar.js │ │ │ │ │ │ │ ├── tree/ │ │ │ │ │ │ │ │ ├── abstractTree.js │ │ │ │ │ │ │ │ ├── asyncDataTree.js │ │ │ │ │ │ │ │ ├── compressedObjectTreeModel.js │ │ │ │ │ │ │ │ ├── dataTree.js │ │ │ │ │ │ │ │ ├── indexTreeModel.js │ │ │ │ │ │ │ │ ├── media/ │ │ │ │ │ │ │ │ │ └── tree.css │ │ │ │ │ │ │ │ ├── objectTree.js │ │ │ │ │ │ │ │ ├── objectTreeModel.js │ │ │ │ │ │ │ │ └── tree.js │ │ │ │ │ │ │ └── widget.js │ │ │ │ │ │ └── window.js │ │ │ │ │ └── common/ │ │ │ │ │ ├── actions.js │ │ │ │ │ ├── arrays.js │ │ │ │ │ ├── arraysFind.js │ │ │ │ │ ├── assert.js │ │ │ │ │ ├── async.js │ │ │ │ │ ├── buffer.js │ │ │ │ │ ├── cache.js │ │ │ │ │ ├── cancellation.js │ │ │ │ │ ├── charCode.js │ │ │ │ │ ├── codicons.js │ │ │ │ │ ├── codiconsLibrary.js │ │ │ │ │ ├── codiconsUtil.js │ │ │ │ │ ├── collections.js │ │ │ │ │ ├── color.js │ │ │ │ │ ├── comparers.js │ │ │ │ │ ├── dataTransfer.js │ │ │ │ │ ├── decorators.js │ │ │ │ │ ├── diff/ │ │ │ │ │ │ ├── diff.js │ │ │ │ │ │ └── diffChange.js │ │ │ │ │ ├── equals.js │ │ │ │ │ ├── errorMessage.js │ │ │ │ │ ├── errors.js │ │ │ │ │ ├── event.js │ │ │ │ │ ├── extpath.js │ │ │ │ │ ├── filters.js │ │ │ │ │ ├── functional.js │ │ │ │ │ ├── fuzzyScorer.js │ │ │ │ │ ├── glob.js │ │ │ │ │ ├── hash.js │ │ │ │ │ ├── hierarchicalKind.js │ │ │ │ │ ├── history.js │ │ │ │ │ ├── hotReload.js │ │ │ │ │ ├── htmlContent.js │ │ │ │ │ ├── iconLabels.js │ │ │ │ │ ├── idGenerator.js │ │ │ │ │ ├── ime.js │ │ │ │ │ ├── iterator.js │ │ │ │ │ ├── jsonSchema.js │ │ │ │ │ ├── keyCodes.js │ │ │ │ │ ├── keybindingLabels.js │ │ │ │ │ ├── keybindings.js │ │ │ │ │ ├── labels.js │ │ │ │ │ ├── lazy.js │ │ │ │ │ ├── lifecycle.js │ │ │ │ │ ├── linkedList.js │ │ │ │ │ ├── linkedText.js │ │ │ │ │ ├── map.js │ │ │ │ │ ├── marked/ │ │ │ │ │ │ └── marked.js │ │ │ │ │ ├── marshalling.js │ │ │ │ │ ├── marshallingIds.js │ │ │ │ │ ├── mime.js │ │ │ │ │ ├── naturalLanguage/ │ │ │ │ │ │ └── korean.js │ │ │ │ │ ├── navigator.js │ │ │ │ │ ├── network.js │ │ │ │ │ ├── numbers.js │ │ │ │ │ ├── objects.js │ │ │ │ │ ├── observable.js │ │ │ │ │ ├── observableInternal/ │ │ │ │ │ │ ├── autorun.js │ │ │ │ │ │ ├── base.js │ │ │ │ │ │ ├── debugName.js │ │ │ │ │ │ ├── derived.js │ │ │ │ │ │ ├── logging.js │ │ │ │ │ │ ├── promise.js │ │ │ │ │ │ └── utils.js │ │ │ │ │ ├── paging.js │ │ │ │ │ ├── path.js │ │ │ │ │ ├── platform.js │ │ │ │ │ ├── process.js │ │ │ │ │ ├── range.js │ │ │ │ │ ├── resources.js │ │ │ │ │ ├── scrollable.js │ │ │ │ │ ├── search.js │ │ │ │ │ ├── sequence.js │ │ │ │ │ ├── severity.js │ │ │ │ │ ├── stopwatch.js │ │ │ │ │ ├── strings.js │ │ │ │ │ ├── symbols.js │ │ │ │ │ ├── ternarySearchTree.js │ │ │ │ │ ├── tfIdf.js │ │ │ │ │ ├── themables.js │ │ │ │ │ ├── types.js │ │ │ │ │ ├── uint.js │ │ │ │ │ ├── uri.js │ │ │ │ │ ├── uuid.js │ │ │ │ │ └── worker/ │ │ │ │ │ └── simpleWorker.js │ │ │ │ ├── basic-languages/ │ │ │ │ │ ├── _.contribution.js │ │ │ │ │ ├── abap/ │ │ │ │ │ │ ├── abap.contribution.d.ts │ │ │ │ │ │ ├── abap.contribution.js │ │ │ │ │ │ └── abap.js │ │ │ │ │ ├── apex/ │ │ │ │ │ │ ├── apex.contribution.d.ts │ │ │ │ │ │ ├── apex.contribution.js │ │ │ │ │ │ └── apex.js │ │ │ │ │ ├── azcli/ │ │ │ │ │ │ ├── azcli.contribution.d.ts │ │ │ │ │ │ ├── azcli.contribution.js │ │ │ │ │ │ └── azcli.js │ │ │ │ │ ├── bat/ │ │ │ │ │ │ ├── bat.contribution.d.ts │ │ │ │ │ │ ├── bat.contribution.js │ │ │ │ │ │ └── bat.js │ │ │ │ │ ├── bicep/ │ │ │ │ │ │ ├── bicep.contribution.d.ts │ │ │ │ │ │ ├── bicep.contribution.js │ │ │ │ │ │ └── bicep.js │ │ │ │ │ ├── cameligo/ │ │ │ │ │ │ ├── cameligo.contribution.d.ts │ │ │ │ │ │ ├── cameligo.contribution.js │ │ │ │ │ │ └── cameligo.js │ │ │ │ │ ├── clojure/ │ │ │ │ │ │ ├── clojure.contribution.d.ts │ │ │ │ │ │ ├── clojure.contribution.js │ │ │ │ │ │ └── clojure.js │ │ │ │ │ ├── coffee/ │ │ │ │ │ │ ├── coffee.contribution.d.ts │ │ │ │ │ │ ├── coffee.contribution.js │ │ │ │ │ │ └── coffee.js │ │ │ │ │ ├── cpp/ │ │ │ │ │ │ ├── cpp.contribution.d.ts │ │ │ │ │ │ ├── cpp.contribution.js │ │ │ │ │ │ └── cpp.js │ │ │ │ │ ├── csharp/ │ │ │ │ │ │ ├── csharp.contribution.d.ts │ │ │ │ │ │ ├── csharp.contribution.js │ │ │ │ │ │ └── csharp.js │ │ │ │ │ ├── csp/ │ │ │ │ │ │ ├── csp.contribution.d.ts │ │ │ │ │ │ ├── csp.contribution.js │ │ │ │ │ │ └── csp.js │ │ │ │ │ ├── css/ │ │ │ │ │ │ ├── css.contribution.d.ts │ │ │ │ │ │ ├── css.contribution.js │ │ │ │ │ │ └── css.js │ │ │ │ │ ├── cypher/ │ │ │ │ │ │ ├── cypher.contribution.d.ts │ │ │ │ │ │ ├── cypher.contribution.js │ │ │ │ │ │ └── cypher.js │ │ │ │ │ ├── dart/ │ │ │ │ │ │ ├── dart.contribution.d.ts │ │ │ │ │ │ ├── dart.contribution.js │ │ │ │ │ │ └── dart.js │ │ │ │ │ ├── dockerfile/ │ │ │ │ │ │ ├── dockerfile.contribution.d.ts │ │ │ │ │ │ ├── dockerfile.contribution.js │ │ │ │ │ │ └── dockerfile.js │ │ │ │ │ ├── ecl/ │ │ │ │ │ │ ├── ecl.contribution.d.ts │ │ │ │ │ │ ├── ecl.contribution.js │ │ │ │ │ │ └── ecl.js │ │ │ │ │ ├── elixir/ │ │ │ │ │ │ ├── elixir.contribution.d.ts │ │ │ │ │ │ ├── elixir.contribution.js │ │ │ │ │ │ └── elixir.js │ │ │ │ │ ├── flow9/ │ │ │ │ │ │ ├── flow9.contribution.d.ts │ │ │ │ │ │ ├── flow9.contribution.js │ │ │ │ │ │ └── flow9.js │ │ │ │ │ ├── freemarker2/ │ │ │ │ │ │ ├── freemarker2.contribution.d.ts │ │ │ │ │ │ ├── freemarker2.contribution.js │ │ │ │ │ │ └── freemarker2.js │ │ │ │ │ ├── fsharp/ │ │ │ │ │ │ ├── fsharp.contribution.d.ts │ │ │ │ │ │ ├── fsharp.contribution.js │ │ │ │ │ │ └── fsharp.js │ │ │ │ │ ├── go/ │ │ │ │ │ │ ├── go.contribution.d.ts │ │ │ │ │ │ ├── go.contribution.js │ │ │ │ │ │ └── go.js │ │ │ │ │ ├── graphql/ │ │ │ │ │ │ ├── graphql.contribution.d.ts │ │ │ │ │ │ ├── graphql.contribution.js │ │ │ │ │ │ └── graphql.js │ │ │ │ │ ├── handlebars/ │ │ │ │ │ │ ├── handlebars.contribution.d.ts │ │ │ │ │ │ ├── handlebars.contribution.js │ │ │ │ │ │ └── handlebars.js │ │ │ │ │ ├── hcl/ │ │ │ │ │ │ ├── hcl.contribution.d.ts │ │ │ │ │ │ ├── hcl.contribution.js │ │ │ │ │ │ └── hcl.js │ │ │ │ │ ├── html/ │ │ │ │ │ │ ├── html.contribution.d.ts │ │ │ │ │ │ ├── html.contribution.js │ │ │ │ │ │ └── html.js │ │ │ │ │ ├── ini/ │ │ │ │ │ │ ├── ini.contribution.d.ts │ │ │ │ │ │ ├── ini.contribution.js │ │ │ │ │ │ └── ini.js │ │ │ │ │ ├── java/ │ │ │ │ │ │ ├── java.contribution.d.ts │ │ │ │ │ │ ├── java.contribution.js │ │ │ │ │ │ └── java.js │ │ │ │ │ ├── javascript/ │ │ │ │ │ │ ├── javascript.contribution.d.ts │ │ │ │ │ │ ├── javascript.contribution.js │ │ │ │ │ │ └── javascript.js │ │ │ │ │ ├── julia/ │ │ │ │ │ │ ├── julia.contribution.d.ts │ │ │ │ │ │ ├── julia.contribution.js │ │ │ │ │ │ └── julia.js │ │ │ │ │ ├── kotlin/ │ │ │ │ │ │ ├── kotlin.contribution.d.ts │ │ │ │ │ │ ├── kotlin.contribution.js │ │ │ │ │ │ └── kotlin.js │ │ │ │ │ ├── less/ │ │ │ │ │ │ ├── less.contribution.d.ts │ │ │ │ │ │ ├── less.contribution.js │ │ │ │ │ │ └── less.js │ │ │ │ │ ├── lexon/ │ │ │ │ │ │ ├── lexon.contribution.d.ts │ │ │ │ │ │ ├── lexon.contribution.js │ │ │ │ │ │ └── lexon.js │ │ │ │ │ ├── liquid/ │ │ │ │ │ │ ├── liquid.contribution.d.ts │ │ │ │ │ │ ├── liquid.contribution.js │ │ │ │ │ │ └── liquid.js │ │ │ │ │ ├── lua/ │ │ │ │ │ │ ├── lua.contribution.d.ts │ │ │ │ │ │ ├── lua.contribution.js │ │ │ │ │ │ └── lua.js │ │ │ │ │ ├── m3/ │ │ │ │ │ │ ├── m3.contribution.d.ts │ │ │ │ │ │ ├── m3.contribution.js │ │ │ │ │ │ └── m3.js │ │ │ │ │ ├── markdown/ │ │ │ │ │ │ ├── markdown.contribution.d.ts │ │ │ │ │ │ ├── markdown.contribution.js │ │ │ │ │ │ └── markdown.js │ │ │ │ │ ├── mdx/ │ │ │ │ │ │ ├── mdx.contribution.d.ts │ │ │ │ │ │ ├── mdx.contribution.js │ │ │ │ │ │ └── mdx.js │ │ │ │ │ ├── mips/ │ │ │ │ │ │ ├── mips.contribution.d.ts │ │ │ │ │ │ ├── mips.contribution.js │ │ │ │ │ │ └── mips.js │ │ │ │ │ ├── monaco.contribution.js │ │ │ │ │ ├── msdax/ │ │ │ │ │ │ ├── msdax.contribution.d.ts │ │ │ │ │ │ ├── msdax.contribution.js │ │ │ │ │ │ └── msdax.js │ │ │ │ │ ├── mysql/ │ │ │ │ │ │ ├── mysql.contribution.d.ts │ │ │ │ │ │ ├── mysql.contribution.js │ │ │ │ │ │ └── mysql.js │ │ │ │ │ ├── objective-c/ │ │ │ │ │ │ ├── objective-c.contribution.d.ts │ │ │ │ │ │ ├── objective-c.contribution.js │ │ │ │ │ │ └── objective-c.js │ │ │ │ │ ├── pascal/ │ │ │ │ │ │ ├── pascal.contribution.d.ts │ │ │ │ │ │ ├── pascal.contribution.js │ │ │ │ │ │ └── pascal.js │ │ │ │ │ ├── pascaligo/ │ │ │ │ │ │ ├── pascaligo.contribution.d.ts │ │ │ │ │ │ ├── pascaligo.contribution.js │ │ │ │ │ │ └── pascaligo.js │ │ │ │ │ ├── perl/ │ │ │ │ │ │ ├── perl.contribution.d.ts │ │ │ │ │ │ ├── perl.contribution.js │ │ │ │ │ │ └── perl.js │ │ │ │ │ ├── pgsql/ │ │ │ │ │ │ ├── pgsql.contribution.d.ts │ │ │ │ │ │ ├── pgsql.contribution.js │ │ │ │ │ │ └── pgsql.js │ │ │ │ │ ├── php/ │ │ │ │ │ │ ├── php.contribution.d.ts │ │ │ │ │ │ ├── php.contribution.js │ │ │ │ │ │ └── php.js │ │ │ │ │ ├── pla/ │ │ │ │ │ │ ├── pla.contribution.d.ts │ │ │ │ │ │ ├── pla.contribution.js │ │ │ │ │ │ └── pla.js │ │ │ │ │ ├── postiats/ │ │ │ │ │ │ ├── postiats.contribution.d.ts │ │ │ │ │ │ ├── postiats.contribution.js │ │ │ │ │ │ └── postiats.js │ │ │ │ │ ├── powerquery/ │ │ │ │ │ │ ├── powerquery.contribution.d.ts │ │ │ │ │ │ ├── powerquery.contribution.js │ │ │ │ │ │ └── powerquery.js │ │ │ │ │ ├── powershell/ │ │ │ │ │ │ ├── powershell.contribution.d.ts │ │ │ │ │ │ ├── powershell.contribution.js │ │ │ │ │ │ └── powershell.js │ │ │ │ │ ├── protobuf/ │ │ │ │ │ │ ├── protobuf.contribution.d.ts │ │ │ │ │ │ ├── protobuf.contribution.js │ │ │ │ │ │ └── protobuf.js │ │ │ │ │ ├── pug/ │ │ │ │ │ │ ├── pug.contribution.d.ts │ │ │ │ │ │ ├── pug.contribution.js │ │ │ │ │ │ └── pug.js │ │ │ │ │ ├── python/ │ │ │ │ │ │ ├── python.contribution.d.ts │ │ │ │ │ │ ├── python.contribution.js │ │ │ │ │ │ └── python.js │ │ │ │ │ ├── qsharp/ │ │ │ │ │ │ ├── qsharp.contribution.d.ts │ │ │ │ │ │ ├── qsharp.contribution.js │ │ │ │ │ │ └── qsharp.js │ │ │ │ │ ├── r/ │ │ │ │ │ │ ├── r.contribution.d.ts │ │ │ │ │ │ ├── r.contribution.js │ │ │ │ │ │ └── r.js │ │ │ │ │ ├── razor/ │ │ │ │ │ │ ├── razor.contribution.d.ts │ │ │ │ │ │ ├── razor.contribution.js │ │ │ │ │ │ └── razor.js │ │ │ │ │ ├── redis/ │ │ │ │ │ │ ├── redis.contribution.d.ts │ │ │ │ │ │ ├── redis.contribution.js │ │ │ │ │ │ └── redis.js │ │ │ │ │ ├── redshift/ │ │ │ │ │ │ ├── redshift.contribution.d.ts │ │ │ │ │ │ ├── redshift.contribution.js │ │ │ │ │ │ └── redshift.js │ │ │ │ │ ├── restructuredtext/ │ │ │ │ │ │ ├── restructuredtext.contribution.d.ts │ │ │ │ │ │ ├── restructuredtext.contribution.js │ │ │ │ │ │ └── restructuredtext.js │ │ │ │ │ ├── ruby/ │ │ │ │ │ │ ├── ruby.contribution.d.ts │ │ │ │ │ │ ├── ruby.contribution.js │ │ │ │ │ │ └── ruby.js │ │ │ │ │ ├── rust/ │ │ │ │ │ │ ├── rust.contribution.d.ts │ │ │ │ │ │ ├── rust.contribution.js │ │ │ │ │ │ └── rust.js │ │ │ │ │ ├── sb/ │ │ │ │ │ │ ├── sb.contribution.d.ts │ │ │ │ │ │ ├── sb.contribution.js │ │ │ │ │ │ └── sb.js │ │ │ │ │ ├── scala/ │ │ │ │ │ │ ├── scala.contribution.d.ts │ │ │ │ │ │ ├── scala.contribution.js │ │ │ │ │ │ └── scala.js │ │ │ │ │ ├── scheme/ │ │ │ │ │ │ ├── scheme.contribution.d.ts │ │ │ │ │ │ ├── scheme.contribution.js │ │ │ │ │ │ └── scheme.js │ │ │ │ │ ├── scss/ │ │ │ │ │ │ ├── scss.contribution.d.ts │ │ │ │ │ │ ├── scss.contribution.js │ │ │ │ │ │ └── scss.js │ │ │ │ │ ├── shell/ │ │ │ │ │ │ ├── shell.contribution.d.ts │ │ │ │ │ │ ├── shell.contribution.js │ │ │ │ │ │ └── shell.js │ │ │ │ │ ├── solidity/ │ │ │ │ │ │ ├── solidity.contribution.d.ts │ │ │ │ │ │ ├── solidity.contribution.js │ │ │ │ │ │ └── solidity.js │ │ │ │ │ ├── sophia/ │ │ │ │ │ │ ├── sophia.contribution.d.ts │ │ │ │ │ │ ├── sophia.contribution.js │ │ │ │ │ │ └── sophia.js │ │ │ │ │ ├── sparql/ │ │ │ │ │ │ ├── sparql.contribution.d.ts │ │ │ │ │ │ ├── sparql.contribution.js │ │ │ │ │ │ └── sparql.js │ │ │ │ │ ├── sql/ │ │ │ │ │ │ ├── sql.contribution.d.ts │ │ │ │ │ │ ├── sql.contribution.js │ │ │ │ │ │ └── sql.js │ │ │ │ │ ├── st/ │ │ │ │ │ │ ├── st.contribution.d.ts │ │ │ │ │ │ ├── st.contribution.js │ │ │ │ │ │ └── st.js │ │ │ │ │ ├── swift/ │ │ │ │ │ │ ├── swift.contribution.d.ts │ │ │ │ │ │ ├── swift.contribution.js │ │ │ │ │ │ └── swift.js │ │ │ │ │ ├── systemverilog/ │ │ │ │ │ │ ├── systemverilog.contribution.d.ts │ │ │ │ │ │ ├── systemverilog.contribution.js │ │ │ │ │ │ └── systemverilog.js │ │ │ │ │ ├── tcl/ │ │ │ │ │ │ ├── tcl.contribution.d.ts │ │ │ │ │ │ ├── tcl.contribution.js │ │ │ │ │ │ └── tcl.js │ │ │ │ │ ├── twig/ │ │ │ │ │ │ ├── twig.contribution.d.ts │ │ │ │ │ │ ├── twig.contribution.js │ │ │ │ │ │ └── twig.js │ │ │ │ │ ├── typescript/ │ │ │ │ │ │ ├── typescript.contribution.d.ts │ │ │ │ │ │ ├── typescript.contribution.js │ │ │ │ │ │ └── typescript.js │ │ │ │ │ ├── typespec/ │ │ │ │ │ │ ├── typespec.contribution.d.ts │ │ │ │ │ │ ├── typespec.contribution.js │ │ │ │ │ │ └── typespec.js │ │ │ │ │ ├── vb/ │ │ │ │ │ │ ├── vb.contribution.d.ts │ │ │ │ │ │ ├── vb.contribution.js │ │ │ │ │ │ └── vb.js │ │ │ │ │ ├── wgsl/ │ │ │ │ │ │ ├── wgsl.contribution.d.ts │ │ │ │ │ │ ├── wgsl.contribution.js │ │ │ │ │ │ └── wgsl.js │ │ │ │ │ ├── xml/ │ │ │ │ │ │ ├── xml.contribution.d.ts │ │ │ │ │ │ ├── xml.contribution.js │ │ │ │ │ │ └── xml.js │ │ │ │ │ └── yaml/ │ │ │ │ │ ├── yaml.contribution.d.ts │ │ │ │ │ ├── yaml.contribution.js │ │ │ │ │ └── yaml.js │ │ │ │ ├── editor/ │ │ │ │ │ ├── browser/ │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ ├── charWidthReader.js │ │ │ │ │ │ │ ├── domFontInfo.js │ │ │ │ │ │ │ ├── editorConfiguration.js │ │ │ │ │ │ │ ├── elementSizeObserver.js │ │ │ │ │ │ │ ├── fontMeasurements.js │ │ │ │ │ │ │ ├── migrateOptions.js │ │ │ │ │ │ │ └── tabFocus.js │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ ├── mouseHandler.js │ │ │ │ │ │ │ ├── mouseTarget.js │ │ │ │ │ │ │ ├── pointerHandler.js │ │ │ │ │ │ │ ├── textAreaHandler.css │ │ │ │ │ │ │ ├── textAreaHandler.js │ │ │ │ │ │ │ ├── textAreaInput.js │ │ │ │ │ │ │ └── textAreaState.js │ │ │ │ │ │ ├── coreCommands.d.ts │ │ │ │ │ │ ├── coreCommands.js │ │ │ │ │ │ ├── dnd.js │ │ │ │ │ │ ├── editorBrowser.js │ │ │ │ │ │ ├── editorDom.js │ │ │ │ │ │ ├── editorExtensions.js │ │ │ │ │ │ ├── observableUtilities.js │ │ │ │ │ │ ├── services/ │ │ │ │ │ │ │ ├── abstractCodeEditorService.js │ │ │ │ │ │ │ ├── bulkEditService.js │ │ │ │ │ │ │ ├── codeEditorService.js │ │ │ │ │ │ │ ├── editorWorkerService.js │ │ │ │ │ │ │ ├── hoverService/ │ │ │ │ │ │ │ │ ├── hover.css │ │ │ │ │ │ │ │ ├── hoverService.js │ │ │ │ │ │ │ │ ├── hoverWidget.js │ │ │ │ │ │ │ │ └── updatableHoverWidget.js │ │ │ │ │ │ │ ├── markerDecorations.js │ │ │ │ │ │ │ ├── openerService.js │ │ │ │ │ │ │ └── webWorker.js │ │ │ │ │ │ ├── stableEditorScroll.js │ │ │ │ │ │ ├── view/ │ │ │ │ │ │ │ ├── domLineBreaksComputer.js │ │ │ │ │ │ │ ├── dynamicViewOverlay.js │ │ │ │ │ │ │ ├── renderingContext.js │ │ │ │ │ │ │ ├── viewController.js │ │ │ │ │ │ │ ├── viewLayer.js │ │ │ │ │ │ │ ├── viewOverlays.js │ │ │ │ │ │ │ ├── viewPart.js │ │ │ │ │ │ │ └── viewUserInputEvents.js │ │ │ │ │ │ ├── view.js │ │ │ │ │ │ ├── viewParts/ │ │ │ │ │ │ │ ├── blockDecorations/ │ │ │ │ │ │ │ │ ├── blockDecorations.css │ │ │ │ │ │ │ │ └── blockDecorations.js │ │ │ │ │ │ │ ├── contentWidgets/ │ │ │ │ │ │ │ │ └── contentWidgets.js │ │ │ │ │ │ │ ├── currentLineHighlight/ │ │ │ │ │ │ │ │ ├── currentLineHighlight.css │ │ │ │ │ │ │ │ └── currentLineHighlight.js │ │ │ │ │ │ │ ├── decorations/ │ │ │ │ │ │ │ │ ├── decorations.css │ │ │ │ │ │ │ │ └── decorations.js │ │ │ │ │ │ │ ├── editorScrollbar/ │ │ │ │ │ │ │ │ └── editorScrollbar.js │ │ │ │ │ │ │ ├── glyphMargin/ │ │ │ │ │ │ │ │ ├── glyphMargin.css │ │ │ │ │ │ │ │ └── glyphMargin.js │ │ │ │ │ │ │ ├── indentGuides/ │ │ │ │ │ │ │ │ ├── indentGuides.css │ │ │ │ │ │ │ │ └── indentGuides.js │ │ │ │ │ │ │ ├── lineNumbers/ │ │ │ │ │ │ │ │ ├── lineNumbers.css │ │ │ │ │ │ │ │ └── lineNumbers.js │ │ │ │ │ │ │ ├── lines/ │ │ │ │ │ │ │ │ ├── domReadingContext.js │ │ │ │ │ │ │ │ ├── rangeUtil.js │ │ │ │ │ │ │ │ ├── viewLine.js │ │ │ │ │ │ │ │ ├── viewLines.css │ │ │ │ │ │ │ │ └── viewLines.js │ │ │ │ │ │ │ ├── linesDecorations/ │ │ │ │ │ │ │ │ ├── linesDecorations.css │ │ │ │ │ │ │ │ └── linesDecorations.js │ │ │ │ │ │ │ ├── margin/ │ │ │ │ │ │ │ │ ├── margin.css │ │ │ │ │ │ │ │ └── margin.js │ │ │ │ │ │ │ ├── marginDecorations/ │ │ │ │ │ │ │ │ ├── marginDecorations.css │ │ │ │ │ │ │ │ └── marginDecorations.js │ │ │ │ │ │ │ ├── minimap/ │ │ │ │ │ │ │ │ ├── minimap.css │ │ │ │ │ │ │ │ ├── minimap.js │ │ │ │ │ │ │ │ ├── minimapCharRenderer.js │ │ │ │ │ │ │ │ ├── minimapCharRendererFactory.js │ │ │ │ │ │ │ │ ├── minimapCharSheet.js │ │ │ │ │ │ │ │ └── minimapPreBaked.js │ │ │ │ │ │ │ ├── overlayWidgets/ │ │ │ │ │ │ │ │ ├── overlayWidgets.css │ │ │ │ │ │ │ │ └── overlayWidgets.js │ │ │ │ │ │ │ ├── overviewRuler/ │ │ │ │ │ │ │ │ ├── decorationsOverviewRuler.js │ │ │ │ │ │ │ │ └── overviewRuler.js │ │ │ │ │ │ │ ├── rulers/ │ │ │ │ │ │ │ │ ├── rulers.css │ │ │ │ │ │ │ │ └── rulers.js │ │ │ │ │ │ │ ├── scrollDecoration/ │ │ │ │ │ │ │ │ ├── scrollDecoration.css │ │ │ │ │ │ │ │ └── scrollDecoration.js │ │ │ │ │ │ │ ├── selections/ │ │ │ │ │ │ │ │ ├── selections.css │ │ │ │ │ │ │ │ └── selections.js │ │ │ │ │ │ │ ├── viewCursors/ │ │ │ │ │ │ │ │ ├── viewCursor.js │ │ │ │ │ │ │ │ ├── viewCursors.css │ │ │ │ │ │ │ │ └── viewCursors.js │ │ │ │ │ │ │ ├── viewZones/ │ │ │ │ │ │ │ │ └── viewZones.js │ │ │ │ │ │ │ └── whitespace/ │ │ │ │ │ │ │ ├── whitespace.css │ │ │ │ │ │ │ └── whitespace.js │ │ │ │ │ │ └── widget/ │ │ │ │ │ │ ├── codeEditor/ │ │ │ │ │ │ │ ├── codeEditorContributions.js │ │ │ │ │ │ │ ├── codeEditorWidget.d.ts │ │ │ │ │ │ │ ├── codeEditorWidget.js │ │ │ │ │ │ │ ├── editor.css │ │ │ │ │ │ │ └── embeddedCodeEditorWidget.js │ │ │ │ │ │ ├── diffEditor/ │ │ │ │ │ │ │ ├── commands.js │ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ │ ├── accessibleDiffViewer.css │ │ │ │ │ │ │ │ ├── accessibleDiffViewer.js │ │ │ │ │ │ │ │ ├── diffEditorDecorations.js │ │ │ │ │ │ │ │ ├── diffEditorEditors.js │ │ │ │ │ │ │ │ ├── diffEditorSash.js │ │ │ │ │ │ │ │ └── diffEditorViewZones/ │ │ │ │ │ │ │ │ ├── diffEditorViewZones.js │ │ │ │ │ │ │ │ ├── inlineDiffDeletedCodeMargin.js │ │ │ │ │ │ │ │ └── renderLines.js │ │ │ │ │ │ │ ├── delegatingEditorImpl.js │ │ │ │ │ │ │ ├── diffEditor.contribution.d.ts │ │ │ │ │ │ │ ├── diffEditor.contribution.js │ │ │ │ │ │ │ ├── diffEditorOptions.js │ │ │ │ │ │ │ ├── diffEditorViewModel.js │ │ │ │ │ │ │ ├── diffEditorWidget.js │ │ │ │ │ │ │ ├── diffProviderFactoryService.js │ │ │ │ │ │ │ ├── features/ │ │ │ │ │ │ │ │ ├── gutterFeature.js │ │ │ │ │ │ │ │ ├── hideUnchangedRegionsFeature.js │ │ │ │ │ │ │ │ ├── movedBlocksLinesFeature.js │ │ │ │ │ │ │ │ ├── overviewRulerFeature.js │ │ │ │ │ │ │ │ └── revertButtonsFeature.js │ │ │ │ │ │ │ ├── registrations.contribution.js │ │ │ │ │ │ │ ├── style.css │ │ │ │ │ │ │ ├── utils/ │ │ │ │ │ │ │ │ └── editorGutter.js │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ ├── markdownRenderer/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── markdownRenderer.js │ │ │ │ │ │ │ └── renderedMarkdown.css │ │ │ │ │ │ └── multiDiffEditor/ │ │ │ │ │ │ ├── colors.js │ │ │ │ │ │ ├── diffEditorItemTemplate.js │ │ │ │ │ │ ├── model.js │ │ │ │ │ │ ├── multiDiffEditorViewModel.js │ │ │ │ │ │ ├── multiDiffEditorWidget.js │ │ │ │ │ │ ├── multiDiffEditorWidgetImpl.js │ │ │ │ │ │ ├── objectPool.js │ │ │ │ │ │ ├── style.css │ │ │ │ │ │ ├── utils.js │ │ │ │ │ │ └── workbenchUIElementFactory.js │ │ │ │ │ ├── common/ │ │ │ │ │ │ ├── commands/ │ │ │ │ │ │ │ ├── replaceCommand.js │ │ │ │ │ │ │ ├── shiftCommand.js │ │ │ │ │ │ │ ├── surroundSelectionCommand.js │ │ │ │ │ │ │ └── trimTrailingWhitespaceCommand.js │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ ├── diffEditor.js │ │ │ │ │ │ │ ├── editorConfiguration.js │ │ │ │ │ │ │ ├── editorConfigurationSchema.js │ │ │ │ │ │ │ ├── editorOptions.js │ │ │ │ │ │ │ ├── editorZoom.js │ │ │ │ │ │ │ └── fontInfo.js │ │ │ │ │ │ ├── core/ │ │ │ │ │ │ │ ├── characterClassifier.js │ │ │ │ │ │ │ ├── cursorColumns.js │ │ │ │ │ │ │ ├── dimension.js │ │ │ │ │ │ │ ├── editOperation.js │ │ │ │ │ │ │ ├── editorColorRegistry.js │ │ │ │ │ │ │ ├── eolCounter.js │ │ │ │ │ │ │ ├── indentation.js │ │ │ │ │ │ │ ├── lineRange.js │ │ │ │ │ │ │ ├── offsetRange.js │ │ │ │ │ │ │ ├── position.js │ │ │ │ │ │ │ ├── positionToOffset.js │ │ │ │ │ │ │ ├── range.js │ │ │ │ │ │ │ ├── rgba.js │ │ │ │ │ │ │ ├── selection.js │ │ │ │ │ │ │ ├── stringBuilder.js │ │ │ │ │ │ │ ├── textChange.js │ │ │ │ │ │ │ ├── textEdit.js │ │ │ │ │ │ │ ├── textLength.js │ │ │ │ │ │ │ ├── textModelDefaults.js │ │ │ │ │ │ │ ├── wordCharacterClassifier.js │ │ │ │ │ │ │ └── wordHelper.js │ │ │ │ │ │ ├── cursor/ │ │ │ │ │ │ │ ├── cursor.js │ │ │ │ │ │ │ ├── cursorAtomicMoveOperations.js │ │ │ │ │ │ │ ├── cursorCollection.js │ │ │ │ │ │ │ ├── cursorColumnSelection.js │ │ │ │ │ │ │ ├── cursorContext.js │ │ │ │ │ │ │ ├── cursorDeleteOperations.js │ │ │ │ │ │ │ ├── cursorMoveCommands.js │ │ │ │ │ │ │ ├── cursorMoveOperations.js │ │ │ │ │ │ │ ├── cursorTypeOperations.js │ │ │ │ │ │ │ ├── cursorWordOperations.js │ │ │ │ │ │ │ └── oneCursor.js │ │ │ │ │ │ ├── cursorCommon.js │ │ │ │ │ │ ├── cursorEvents.js │ │ │ │ │ │ ├── diff/ │ │ │ │ │ │ │ ├── defaultLinesDiffComputer/ │ │ │ │ │ │ │ │ ├── algorithms/ │ │ │ │ │ │ │ │ │ ├── diffAlgorithm.js │ │ │ │ │ │ │ │ │ ├── dynamicProgrammingDiffing.js │ │ │ │ │ │ │ │ │ └── myersDiffAlgorithm.js │ │ │ │ │ │ │ │ ├── computeMovedLines.js │ │ │ │ │ │ │ │ ├── defaultLinesDiffComputer.js │ │ │ │ │ │ │ │ ├── heuristicSequenceOptimizations.js │ │ │ │ │ │ │ │ ├── lineSequence.js │ │ │ │ │ │ │ │ ├── linesSliceCharSequence.js │ │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ │ ├── documentDiffProvider.js │ │ │ │ │ │ │ ├── legacyLinesDiffComputer.js │ │ │ │ │ │ │ ├── linesDiffComputer.js │ │ │ │ │ │ │ ├── linesDiffComputers.js │ │ │ │ │ │ │ └── rangeMapping.js │ │ │ │ │ │ ├── editorAction.js │ │ │ │ │ │ ├── editorCommon.js │ │ │ │ │ │ ├── editorContextKeys.js │ │ │ │ │ │ ├── editorFeatures.js │ │ │ │ │ │ ├── editorTheme.js │ │ │ │ │ │ ├── encodedTokenAttributes.js │ │ │ │ │ │ ├── languageFeatureRegistry.js │ │ │ │ │ │ ├── languageSelector.js │ │ │ │ │ │ ├── languages/ │ │ │ │ │ │ │ ├── autoIndent.js │ │ │ │ │ │ │ ├── defaultDocumentColorsComputer.js │ │ │ │ │ │ │ ├── enterAction.js │ │ │ │ │ │ │ ├── language.js │ │ │ │ │ │ │ ├── languageConfiguration.js │ │ │ │ │ │ │ ├── languageConfigurationRegistry.js │ │ │ │ │ │ │ ├── linkComputer.js │ │ │ │ │ │ │ ├── modesRegistry.js │ │ │ │ │ │ │ ├── nullTokenize.js │ │ │ │ │ │ │ ├── supports/ │ │ │ │ │ │ │ │ ├── characterPair.js │ │ │ │ │ │ │ │ ├── electricCharacter.js │ │ │ │ │ │ │ │ ├── indentRules.js │ │ │ │ │ │ │ │ ├── indentationLineProcessor.js │ │ │ │ │ │ │ │ ├── inplaceReplaceSupport.js │ │ │ │ │ │ │ │ ├── languageBracketsConfiguration.js │ │ │ │ │ │ │ │ ├── onEnter.js │ │ │ │ │ │ │ │ ├── richEditBrackets.js │ │ │ │ │ │ │ │ └── tokenization.js │ │ │ │ │ │ │ ├── supports.js │ │ │ │ │ │ │ └── textToHtmlTokenizer.js │ │ │ │ │ │ ├── languages.js │ │ │ │ │ │ ├── model/ │ │ │ │ │ │ │ ├── bracketPairsTextModelPart/ │ │ │ │ │ │ │ │ ├── bracketPairsImpl.js │ │ │ │ │ │ │ │ ├── bracketPairsTree/ │ │ │ │ │ │ │ │ │ ├── ast.js │ │ │ │ │ │ │ │ │ ├── beforeEditPositionMapper.js │ │ │ │ │ │ │ │ │ ├── bracketPairsTree.js │ │ │ │ │ │ │ │ │ ├── brackets.js │ │ │ │ │ │ │ │ │ ├── combineTextEditInfos.js │ │ │ │ │ │ │ │ │ ├── concat23Trees.js │ │ │ │ │ │ │ │ │ ├── length.js │ │ │ │ │ │ │ │ │ ├── nodeReader.js │ │ │ │ │ │ │ │ │ ├── parser.js │ │ │ │ │ │ │ │ │ ├── smallImmutableSet.js │ │ │ │ │ │ │ │ │ └── tokenizer.js │ │ │ │ │ │ │ │ ├── colorizedBracketPairsDecorationProvider.js │ │ │ │ │ │ │ │ └── fixBrackets.js │ │ │ │ │ │ │ ├── decorationProvider.js │ │ │ │ │ │ │ ├── editStack.js │ │ │ │ │ │ │ ├── fixedArray.js │ │ │ │ │ │ │ ├── guidesTextModelPart.js │ │ │ │ │ │ │ ├── indentationGuesser.js │ │ │ │ │ │ │ ├── intervalTree.js │ │ │ │ │ │ │ ├── mirrorTextModel.js │ │ │ │ │ │ │ ├── pieceTreeTextBuffer/ │ │ │ │ │ │ │ │ ├── pieceTreeBase.js │ │ │ │ │ │ │ │ ├── pieceTreeTextBuffer.js │ │ │ │ │ │ │ │ ├── pieceTreeTextBufferBuilder.js │ │ │ │ │ │ │ │ └── rbTreeBase.js │ │ │ │ │ │ │ ├── prefixSumComputer.js │ │ │ │ │ │ │ ├── textModel.js │ │ │ │ │ │ │ ├── textModelPart.js │ │ │ │ │ │ │ ├── textModelSearch.js │ │ │ │ │ │ │ ├── textModelText.js │ │ │ │ │ │ │ ├── textModelTokens.js │ │ │ │ │ │ │ ├── tokenizationTextModelPart.js │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ ├── model.js │ │ │ │ │ │ ├── modelLineProjectionData.js │ │ │ │ │ │ ├── services/ │ │ │ │ │ │ │ ├── editorBaseApi.js │ │ │ │ │ │ │ ├── editorSimpleWorker.js │ │ │ │ │ │ │ ├── editorWorker.js │ │ │ │ │ │ │ ├── editorWorkerHost.js │ │ │ │ │ │ │ ├── findSectionHeaders.js │ │ │ │ │ │ │ ├── getIconClasses.js │ │ │ │ │ │ │ ├── languageFeatureDebounce.js │ │ │ │ │ │ │ ├── languageFeatures.js │ │ │ │ │ │ │ ├── languageFeaturesService.js │ │ │ │ │ │ │ ├── languageService.js │ │ │ │ │ │ │ ├── languagesAssociations.js │ │ │ │ │ │ │ ├── languagesRegistry.js │ │ │ │ │ │ │ ├── markerDecorations.js │ │ │ │ │ │ │ ├── markerDecorationsService.js │ │ │ │ │ │ │ ├── model.js │ │ │ │ │ │ │ ├── modelService.js │ │ │ │ │ │ │ ├── resolverService.js │ │ │ │ │ │ │ ├── semanticTokensDto.js │ │ │ │ │ │ │ ├── semanticTokensProviderStyling.js │ │ │ │ │ │ │ ├── semanticTokensStyling.js │ │ │ │ │ │ │ ├── semanticTokensStylingService.js │ │ │ │ │ │ │ ├── textResourceConfiguration.js │ │ │ │ │ │ │ ├── treeViewsDnd.js │ │ │ │ │ │ │ ├── treeViewsDndService.js │ │ │ │ │ │ │ └── unicodeTextModelHighlighter.js │ │ │ │ │ │ ├── standalone/ │ │ │ │ │ │ │ └── standaloneEnums.js │ │ │ │ │ │ ├── standaloneStrings.js │ │ │ │ │ │ ├── textModelBracketPairs.js │ │ │ │ │ │ ├── textModelEvents.js │ │ │ │ │ │ ├── textModelGuides.js │ │ │ │ │ │ ├── tokenizationRegistry.js │ │ │ │ │ │ ├── tokenizationTextModelPart.js │ │ │ │ │ │ ├── tokens/ │ │ │ │ │ │ │ ├── contiguousMultilineTokens.js │ │ │ │ │ │ │ ├── contiguousMultilineTokensBuilder.js │ │ │ │ │ │ │ ├── contiguousTokensEditing.js │ │ │ │ │ │ │ ├── contiguousTokensStore.js │ │ │ │ │ │ │ ├── lineTokens.js │ │ │ │ │ │ │ ├── sparseMultilineTokens.js │ │ │ │ │ │ │ └── sparseTokensStore.js │ │ │ │ │ │ ├── viewEventHandler.js │ │ │ │ │ │ ├── viewEvents.js │ │ │ │ │ │ ├── viewLayout/ │ │ │ │ │ │ │ ├── lineDecorations.js │ │ │ │ │ │ │ ├── linePart.js │ │ │ │ │ │ │ ├── linesLayout.js │ │ │ │ │ │ │ ├── viewLayout.js │ │ │ │ │ │ │ ├── viewLineRenderer.js │ │ │ │ │ │ │ └── viewLinesViewportData.js │ │ │ │ │ │ ├── viewModel/ │ │ │ │ │ │ │ ├── glyphLanesModel.js │ │ │ │ │ │ │ ├── minimapTokensColorTracker.js │ │ │ │ │ │ │ ├── modelLineProjection.js │ │ │ │ │ │ │ ├── monospaceLineBreaksComputer.js │ │ │ │ │ │ │ ├── overviewZoneManager.js │ │ │ │ │ │ │ ├── viewContext.js │ │ │ │ │ │ │ ├── viewModelDecorations.js │ │ │ │ │ │ │ ├── viewModelImpl.js │ │ │ │ │ │ │ └── viewModelLines.js │ │ │ │ │ │ ├── viewModel.js │ │ │ │ │ │ └── viewModelEventDispatcher.js │ │ │ │ │ ├── contrib/ │ │ │ │ │ │ ├── anchorSelect/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── anchorSelect.css │ │ │ │ │ │ │ ├── anchorSelect.d.ts │ │ │ │ │ │ │ └── anchorSelect.js │ │ │ │ │ │ ├── bracketMatching/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── bracketMatching.css │ │ │ │ │ │ │ ├── bracketMatching.d.ts │ │ │ │ │ │ │ └── bracketMatching.js │ │ │ │ │ │ ├── caretOperations/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── caretOperations.d.ts │ │ │ │ │ │ │ ├── caretOperations.js │ │ │ │ │ │ │ ├── moveCaretCommand.js │ │ │ │ │ │ │ ├── transpose.d.ts │ │ │ │ │ │ │ └── transpose.js │ │ │ │ │ │ ├── clipboard/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── clipboard.d.ts │ │ │ │ │ │ │ └── clipboard.js │ │ │ │ │ │ ├── codeAction/ │ │ │ │ │ │ │ ├── browser/ │ │ │ │ │ │ │ │ ├── codeAction.js │ │ │ │ │ │ │ │ ├── codeActionCommands.js │ │ │ │ │ │ │ │ ├── codeActionContributions.d.ts │ │ │ │ │ │ │ │ ├── codeActionContributions.js │ │ │ │ │ │ │ │ ├── codeActionController.js │ │ │ │ │ │ │ │ ├── codeActionKeybindingResolver.js │ │ │ │ │ │ │ │ ├── codeActionMenu.js │ │ │ │ │ │ │ │ ├── codeActionModel.js │ │ │ │ │ │ │ │ ├── lightBulbWidget.css │ │ │ │ │ │ │ │ └── lightBulbWidget.js │ │ │ │ │ │ │ └── common/ │ │ │ │ │ │ │ └── types.js │ │ │ │ │ │ ├── codelens/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── codeLensCache.js │ │ │ │ │ │ │ ├── codelens.js │ │ │ │ │ │ │ ├── codelensController.d.ts │ │ │ │ │ │ │ ├── codelensController.js │ │ │ │ │ │ │ ├── codelensWidget.css │ │ │ │ │ │ │ └── codelensWidget.js │ │ │ │ │ │ ├── colorPicker/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── color.js │ │ │ │ │ │ │ ├── colorContributions.d.ts │ │ │ │ │ │ │ ├── colorContributions.js │ │ │ │ │ │ │ ├── colorDetector.js │ │ │ │ │ │ │ ├── colorHoverParticipant.js │ │ │ │ │ │ │ ├── colorPicker.css │ │ │ │ │ │ │ ├── colorPickerModel.js │ │ │ │ │ │ │ ├── colorPickerWidget.js │ │ │ │ │ │ │ ├── defaultDocumentColorProvider.js │ │ │ │ │ │ │ ├── standaloneColorPickerActions.d.ts │ │ │ │ │ │ │ ├── standaloneColorPickerActions.js │ │ │ │ │ │ │ └── standaloneColorPickerWidget.js │ │ │ │ │ │ ├── comment/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── blockCommentCommand.js │ │ │ │ │ │ │ ├── comment.d.ts │ │ │ │ │ │ │ ├── comment.js │ │ │ │ │ │ │ └── lineCommentCommand.js │ │ │ │ │ │ ├── contextmenu/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── contextmenu.d.ts │ │ │ │ │ │ │ └── contextmenu.js │ │ │ │ │ │ ├── cursorUndo/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── cursorUndo.d.ts │ │ │ │ │ │ │ └── cursorUndo.js │ │ │ │ │ │ ├── diffEditorBreadcrumbs/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── contribution.d.ts │ │ │ │ │ │ │ └── contribution.js │ │ │ │ │ │ ├── dnd/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── dnd.css │ │ │ │ │ │ │ ├── dnd.d.ts │ │ │ │ │ │ │ ├── dnd.js │ │ │ │ │ │ │ └── dragAndDropCommand.js │ │ │ │ │ │ ├── documentSymbols/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── documentSymbols.d.ts │ │ │ │ │ │ │ ├── documentSymbols.js │ │ │ │ │ │ │ └── outlineModel.js │ │ │ │ │ │ ├── dropOrPasteInto/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── copyPasteContribution.d.ts │ │ │ │ │ │ │ ├── copyPasteContribution.js │ │ │ │ │ │ │ ├── copyPasteController.js │ │ │ │ │ │ │ ├── defaultProviders.js │ │ │ │ │ │ │ ├── dropIntoEditorContribution.d.ts │ │ │ │ │ │ │ ├── dropIntoEditorContribution.js │ │ │ │ │ │ │ ├── dropIntoEditorController.js │ │ │ │ │ │ │ ├── edit.js │ │ │ │ │ │ │ ├── postEditWidget.css │ │ │ │ │ │ │ └── postEditWidget.js │ │ │ │ │ │ ├── editorState/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── editorState.js │ │ │ │ │ │ │ └── keybindingCancellation.js │ │ │ │ │ │ ├── find/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── findController.d.ts │ │ │ │ │ │ │ ├── findController.js │ │ │ │ │ │ │ ├── findDecorations.js │ │ │ │ │ │ │ ├── findModel.js │ │ │ │ │ │ │ ├── findOptionsWidget.css │ │ │ │ │ │ │ ├── findOptionsWidget.js │ │ │ │ │ │ │ ├── findState.js │ │ │ │ │ │ │ ├── findWidget.css │ │ │ │ │ │ │ ├── findWidget.js │ │ │ │ │ │ │ ├── replaceAllCommand.js │ │ │ │ │ │ │ └── replacePattern.js │ │ │ │ │ │ ├── folding/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── folding.css │ │ │ │ │ │ │ ├── folding.d.ts │ │ │ │ │ │ │ ├── folding.js │ │ │ │ │ │ │ ├── foldingDecorations.js │ │ │ │ │ │ │ ├── foldingModel.js │ │ │ │ │ │ │ ├── foldingRanges.js │ │ │ │ │ │ │ ├── hiddenRangeModel.js │ │ │ │ │ │ │ ├── indentRangeProvider.js │ │ │ │ │ │ │ └── syntaxRangeProvider.js │ │ │ │ │ │ ├── fontZoom/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── fontZoom.d.ts │ │ │ │ │ │ │ └── fontZoom.js │ │ │ │ │ │ ├── format/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── format.js │ │ │ │ │ │ │ ├── formatActions.d.ts │ │ │ │ │ │ │ ├── formatActions.js │ │ │ │ │ │ │ └── formattingEdit.js │ │ │ │ │ │ ├── gotoError/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── gotoError.d.ts │ │ │ │ │ │ │ ├── gotoError.js │ │ │ │ │ │ │ ├── gotoErrorWidget.js │ │ │ │ │ │ │ ├── markerNavigationService.js │ │ │ │ │ │ │ └── media/ │ │ │ │ │ │ │ └── gotoErrorWidget.css │ │ │ │ │ │ ├── gotoSymbol/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── goToCommands.d.ts │ │ │ │ │ │ │ ├── goToCommands.js │ │ │ │ │ │ │ ├── goToSymbol.js │ │ │ │ │ │ │ ├── link/ │ │ │ │ │ │ │ │ ├── clickLinkGesture.js │ │ │ │ │ │ │ │ ├── goToDefinitionAtPosition.css │ │ │ │ │ │ │ │ ├── goToDefinitionAtPosition.d.ts │ │ │ │ │ │ │ │ └── goToDefinitionAtPosition.js │ │ │ │ │ │ │ ├── peek/ │ │ │ │ │ │ │ │ ├── referencesController.js │ │ │ │ │ │ │ │ ├── referencesTree.js │ │ │ │ │ │ │ │ ├── referencesWidget.css │ │ │ │ │ │ │ │ └── referencesWidget.js │ │ │ │ │ │ │ ├── referencesModel.js │ │ │ │ │ │ │ └── symbolNavigation.js │ │ │ │ │ │ ├── hover/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── contentHoverComputer.js │ │ │ │ │ │ │ ├── contentHoverController.js │ │ │ │ │ │ │ ├── contentHoverStatusBar.js │ │ │ │ │ │ │ ├── contentHoverTypes.js │ │ │ │ │ │ │ ├── contentHoverWidget.js │ │ │ │ │ │ │ ├── getHover.js │ │ │ │ │ │ │ ├── hover.css │ │ │ │ │ │ │ ├── hoverAccessibleViews.js │ │ │ │ │ │ │ ├── hoverActionIds.js │ │ │ │ │ │ │ ├── hoverActions.js │ │ │ │ │ │ │ ├── hoverContribution.d.ts │ │ │ │ │ │ │ ├── hoverContribution.js │ │ │ │ │ │ │ ├── hoverController.js │ │ │ │ │ │ │ ├── hoverOperation.js │ │ │ │ │ │ │ ├── hoverTypes.js │ │ │ │ │ │ │ ├── marginHoverComputer.js │ │ │ │ │ │ │ ├── marginHoverWidget.js │ │ │ │ │ │ │ ├── markdownHoverParticipant.js │ │ │ │ │ │ │ ├── markerHoverParticipant.js │ │ │ │ │ │ │ └── resizableContentWidget.js │ │ │ │ │ │ ├── inPlaceReplace/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── inPlaceReplace.css │ │ │ │ │ │ │ ├── inPlaceReplace.d.ts │ │ │ │ │ │ │ ├── inPlaceReplace.js │ │ │ │ │ │ │ └── inPlaceReplaceCommand.js │ │ │ │ │ │ ├── indentation/ │ │ │ │ │ │ │ ├── browser/ │ │ │ │ │ │ │ │ ├── indentation.d.ts │ │ │ │ │ │ │ │ └── indentation.js │ │ │ │ │ │ │ └── common/ │ │ │ │ │ │ │ ├── indentUtils.js │ │ │ │ │ │ │ └── indentation.js │ │ │ │ │ │ ├── inlayHints/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── inlayHints.js │ │ │ │ │ │ │ ├── inlayHintsContribution.d.ts │ │ │ │ │ │ │ ├── inlayHintsContribution.js │ │ │ │ │ │ │ ├── inlayHintsController.js │ │ │ │ │ │ │ ├── inlayHintsHover.js │ │ │ │ │ │ │ └── inlayHintsLocations.js │ │ │ │ │ │ ├── inlineCompletions/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── commandIds.js │ │ │ │ │ │ │ ├── commands.js │ │ │ │ │ │ │ ├── ghostText.css │ │ │ │ │ │ │ ├── ghostText.js │ │ │ │ │ │ │ ├── ghostTextWidget.js │ │ │ │ │ │ │ ├── hoverParticipant.js │ │ │ │ │ │ │ ├── inlineCompletionContextKeys.js │ │ │ │ │ │ │ ├── inlineCompletions.contribution.d.ts │ │ │ │ │ │ │ ├── inlineCompletions.contribution.js │ │ │ │ │ │ │ ├── inlineCompletionsAccessibleView.js │ │ │ │ │ │ │ ├── inlineCompletionsController.js │ │ │ │ │ │ │ ├── inlineCompletionsHintsWidget.css │ │ │ │ │ │ │ ├── inlineCompletionsHintsWidget.js │ │ │ │ │ │ │ ├── inlineCompletionsModel.js │ │ │ │ │ │ │ ├── inlineCompletionsSource.js │ │ │ │ │ │ │ ├── provideInlineCompletions.js │ │ │ │ │ │ │ ├── singleTextEdit.js │ │ │ │ │ │ │ ├── suggestWidgetInlineCompletionProvider.js │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ ├── inlineEdit/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── commandIds.js │ │ │ │ │ │ │ ├── commands.js │ │ │ │ │ │ │ ├── ghostTextWidget.js │ │ │ │ │ │ │ ├── hoverParticipant.js │ │ │ │ │ │ │ ├── inlineEdit.contribution.d.ts │ │ │ │ │ │ │ ├── inlineEdit.contribution.js │ │ │ │ │ │ │ ├── inlineEdit.css │ │ │ │ │ │ │ ├── inlineEditController.js │ │ │ │ │ │ │ ├── inlineEditHintsWidget.css │ │ │ │ │ │ │ └── inlineEditHintsWidget.js │ │ │ │ │ │ ├── inlineProgress/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── inlineProgress.d.ts │ │ │ │ │ │ │ ├── inlineProgress.js │ │ │ │ │ │ │ └── inlineProgressWidget.css │ │ │ │ │ │ ├── lineSelection/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── lineSelection.d.ts │ │ │ │ │ │ │ └── lineSelection.js │ │ │ │ │ │ ├── linesOperations/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── copyLinesCommand.js │ │ │ │ │ │ │ ├── linesOperations.d.ts │ │ │ │ │ │ │ ├── linesOperations.js │ │ │ │ │ │ │ ├── moveLinesCommand.js │ │ │ │ │ │ │ └── sortLinesCommand.js │ │ │ │ │ │ ├── linkedEditing/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── linkedEditing.css │ │ │ │ │ │ │ ├── linkedEditing.d.ts │ │ │ │ │ │ │ └── linkedEditing.js │ │ │ │ │ │ ├── links/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── getLinks.js │ │ │ │ │ │ │ ├── links.css │ │ │ │ │ │ │ ├── links.d.ts │ │ │ │ │ │ │ └── links.js │ │ │ │ │ │ ├── longLinesHelper/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── longLinesHelper.d.ts │ │ │ │ │ │ │ └── longLinesHelper.js │ │ │ │ │ │ ├── message/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── messageController.css │ │ │ │ │ │ │ └── messageController.js │ │ │ │ │ │ ├── multicursor/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── multicursor.d.ts │ │ │ │ │ │ │ └── multicursor.js │ │ │ │ │ │ ├── parameterHints/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── parameterHints.css │ │ │ │ │ │ │ ├── parameterHints.d.ts │ │ │ │ │ │ │ ├── parameterHints.js │ │ │ │ │ │ │ ├── parameterHintsModel.js │ │ │ │ │ │ │ ├── parameterHintsWidget.js │ │ │ │ │ │ │ └── provideSignatureHelp.js │ │ │ │ │ │ ├── peekView/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── media/ │ │ │ │ │ │ │ │ └── peekViewWidget.css │ │ │ │ │ │ │ └── peekView.js │ │ │ │ │ │ ├── quickAccess/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── commandsQuickAccess.js │ │ │ │ │ │ │ ├── editorNavigationQuickAccess.js │ │ │ │ │ │ │ ├── gotoLineQuickAccess.js │ │ │ │ │ │ │ └── gotoSymbolQuickAccess.js │ │ │ │ │ │ ├── readOnlyMessage/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── contribution.d.ts │ │ │ │ │ │ │ └── contribution.js │ │ │ │ │ │ ├── rename/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── rename.d.ts │ │ │ │ │ │ │ ├── rename.js │ │ │ │ │ │ │ ├── renameWidget.css │ │ │ │ │ │ │ └── renameWidget.js │ │ │ │ │ │ ├── sectionHeaders/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── sectionHeaders.d.ts │ │ │ │ │ │ │ └── sectionHeaders.js │ │ │ │ │ │ ├── semanticTokens/ │ │ │ │ │ │ │ ├── browser/ │ │ │ │ │ │ │ │ ├── documentSemanticTokens.d.ts │ │ │ │ │ │ │ │ ├── documentSemanticTokens.js │ │ │ │ │ │ │ │ ├── viewportSemanticTokens.d.ts │ │ │ │ │ │ │ │ └── viewportSemanticTokens.js │ │ │ │ │ │ │ └── common/ │ │ │ │ │ │ │ ├── getSemanticTokens.js │ │ │ │ │ │ │ └── semanticTokensConfig.js │ │ │ │ │ │ ├── smartSelect/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── bracketSelections.js │ │ │ │ │ │ │ ├── smartSelect.d.ts │ │ │ │ │ │ │ ├── smartSelect.js │ │ │ │ │ │ │ └── wordSelections.js │ │ │ │ │ │ ├── snippet/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── snippetController2.d.ts │ │ │ │ │ │ │ ├── snippetController2.js │ │ │ │ │ │ │ ├── snippetParser.js │ │ │ │ │ │ │ ├── snippetSession.css │ │ │ │ │ │ │ ├── snippetSession.js │ │ │ │ │ │ │ └── snippetVariables.js │ │ │ │ │ │ ├── stickyScroll/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── stickyScroll.css │ │ │ │ │ │ │ ├── stickyScrollActions.js │ │ │ │ │ │ │ ├── stickyScrollContribution.d.ts │ │ │ │ │ │ │ ├── stickyScrollContribution.js │ │ │ │ │ │ │ ├── stickyScrollController.js │ │ │ │ │ │ │ ├── stickyScrollElement.js │ │ │ │ │ │ │ ├── stickyScrollModelProvider.js │ │ │ │ │ │ │ ├── stickyScrollProvider.js │ │ │ │ │ │ │ └── stickyScrollWidget.js │ │ │ │ │ │ ├── suggest/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── completionModel.js │ │ │ │ │ │ │ ├── media/ │ │ │ │ │ │ │ │ └── suggest.css │ │ │ │ │ │ │ ├── suggest.js │ │ │ │ │ │ │ ├── suggestAlternatives.js │ │ │ │ │ │ │ ├── suggestCommitCharacters.js │ │ │ │ │ │ │ ├── suggestController.d.ts │ │ │ │ │ │ │ ├── suggestController.js │ │ │ │ │ │ │ ├── suggestInlineCompletions.d.ts │ │ │ │ │ │ │ ├── suggestInlineCompletions.js │ │ │ │ │ │ │ ├── suggestMemory.js │ │ │ │ │ │ │ ├── suggestModel.js │ │ │ │ │ │ │ ├── suggestOvertypingCapturer.js │ │ │ │ │ │ │ ├── suggestWidget.js │ │ │ │ │ │ │ ├── suggestWidgetDetails.js │ │ │ │ │ │ │ ├── suggestWidgetRenderer.js │ │ │ │ │ │ │ ├── suggestWidgetStatus.js │ │ │ │ │ │ │ ├── wordContextKey.js │ │ │ │ │ │ │ └── wordDistance.js │ │ │ │ │ │ ├── symbolIcons/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── symbolIcons.css │ │ │ │ │ │ │ └── symbolIcons.js │ │ │ │ │ │ ├── toggleTabFocusMode/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── toggleTabFocusMode.d.ts │ │ │ │ │ │ │ └── toggleTabFocusMode.js │ │ │ │ │ │ ├── tokenization/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── tokenization.d.ts │ │ │ │ │ │ │ └── tokenization.js │ │ │ │ │ │ ├── unicodeHighlighter/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── bannerController.css │ │ │ │ │ │ │ ├── bannerController.js │ │ │ │ │ │ │ ├── unicodeHighlighter.css │ │ │ │ │ │ │ ├── unicodeHighlighter.d.ts │ │ │ │ │ │ │ └── unicodeHighlighter.js │ │ │ │ │ │ ├── unusualLineTerminators/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── unusualLineTerminators.d.ts │ │ │ │ │ │ │ └── unusualLineTerminators.js │ │ │ │ │ │ ├── wordHighlighter/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── highlightDecorations.css │ │ │ │ │ │ │ ├── highlightDecorations.js │ │ │ │ │ │ │ ├── wordHighlighter.d.ts │ │ │ │ │ │ │ └── wordHighlighter.js │ │ │ │ │ │ ├── wordOperations/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── wordOperations.d.ts │ │ │ │ │ │ │ └── wordOperations.js │ │ │ │ │ │ ├── wordPartOperations/ │ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ │ ├── wordPartOperations.d.ts │ │ │ │ │ │ │ └── wordPartOperations.js │ │ │ │ │ │ └── zoneWidget/ │ │ │ │ │ │ └── browser/ │ │ │ │ │ │ ├── zoneWidget.css │ │ │ │ │ │ └── zoneWidget.js │ │ │ │ │ ├── edcore.main.js │ │ │ │ │ ├── editor.all.js │ │ │ │ │ ├── editor.api.d.ts │ │ │ │ │ ├── editor.api.js │ │ │ │ │ ├── editor.main.js │ │ │ │ │ ├── editor.worker.js │ │ │ │ │ └── standalone/ │ │ │ │ │ ├── browser/ │ │ │ │ │ │ ├── colorizer.js │ │ │ │ │ │ ├── iPadShowKeyboard/ │ │ │ │ │ │ │ ├── iPadShowKeyboard.css │ │ │ │ │ │ │ ├── iPadShowKeyboard.d.ts │ │ │ │ │ │ │ └── iPadShowKeyboard.js │ │ │ │ │ │ ├── inspectTokens/ │ │ │ │ │ │ │ ├── inspectTokens.css │ │ │ │ │ │ │ ├── inspectTokens.d.ts │ │ │ │ │ │ │ └── inspectTokens.js │ │ │ │ │ │ ├── quickAccess/ │ │ │ │ │ │ │ ├── standaloneCommandsQuickAccess.d.ts │ │ │ │ │ │ │ ├── standaloneCommandsQuickAccess.js │ │ │ │ │ │ │ ├── standaloneGotoLineQuickAccess.d.ts │ │ │ │ │ │ │ ├── standaloneGotoLineQuickAccess.js │ │ │ │ │ │ │ ├── standaloneGotoSymbolQuickAccess.d.ts │ │ │ │ │ │ │ ├── standaloneGotoSymbolQuickAccess.js │ │ │ │ │ │ │ ├── standaloneHelpQuickAccess.d.ts │ │ │ │ │ │ │ └── standaloneHelpQuickAccess.js │ │ │ │ │ │ ├── quickInput/ │ │ │ │ │ │ │ ├── standaloneQuickInput.css │ │ │ │ │ │ │ └── standaloneQuickInputService.js │ │ │ │ │ │ ├── referenceSearch/ │ │ │ │ │ │ │ ├── standaloneReferenceSearch.d.ts │ │ │ │ │ │ │ └── standaloneReferenceSearch.js │ │ │ │ │ │ ├── standalone-tokens.css │ │ │ │ │ │ ├── standaloneCodeEditor.js │ │ │ │ │ │ ├── standaloneCodeEditorService.js │ │ │ │ │ │ ├── standaloneEditor.js │ │ │ │ │ │ ├── standaloneLanguages.js │ │ │ │ │ │ ├── standaloneLayoutService.js │ │ │ │ │ │ ├── standaloneServices.js │ │ │ │ │ │ ├── standaloneThemeService.js │ │ │ │ │ │ └── toggleHighContrast/ │ │ │ │ │ │ ├── toggleHighContrast.d.ts │ │ │ │ │ │ └── toggleHighContrast.js │ │ │ │ │ └── common/ │ │ │ │ │ ├── monarch/ │ │ │ │ │ │ ├── monarchCommon.js │ │ │ │ │ │ ├── monarchCompile.js │ │ │ │ │ │ ├── monarchLexer.js │ │ │ │ │ │ └── monarchTypes.js │ │ │ │ │ ├── standaloneTheme.js │ │ │ │ │ └── themes.js │ │ │ │ ├── language/ │ │ │ │ │ ├── css/ │ │ │ │ │ │ ├── css.worker.js │ │ │ │ │ │ ├── cssMode.js │ │ │ │ │ │ ├── monaco.contribution.d.ts │ │ │ │ │ │ └── monaco.contribution.js │ │ │ │ │ ├── html/ │ │ │ │ │ │ ├── html.worker.js │ │ │ │ │ │ ├── htmlMode.js │ │ │ │ │ │ ├── monaco.contribution.d.ts │ │ │ │ │ │ └── monaco.contribution.js │ │ │ │ │ ├── json/ │ │ │ │ │ │ ├── json.worker.js │ │ │ │ │ │ ├── jsonMode.js │ │ │ │ │ │ ├── monaco.contribution.d.ts │ │ │ │ │ │ └── monaco.contribution.js │ │ │ │ │ └── typescript/ │ │ │ │ │ ├── monaco.contribution.d.ts │ │ │ │ │ ├── monaco.contribution.js │ │ │ │ │ ├── ts.worker.js │ │ │ │ │ └── tsMode.js │ │ │ │ ├── nls.js │ │ │ │ └── platform/ │ │ │ │ ├── accessibility/ │ │ │ │ │ ├── browser/ │ │ │ │ │ │ ├── accessibilityService.js │ │ │ │ │ │ ├── accessibleView.js │ │ │ │ │ │ └── accessibleViewRegistry.js │ │ │ │ │ └── common/ │ │ │ │ │ └── accessibility.js │ │ │ │ ├── accessibilitySignal/ │ │ │ │ │ └── browser/ │ │ │ │ │ └── accessibilitySignalService.js │ │ │ │ ├── action/ │ │ │ │ │ └── common/ │ │ │ │ │ ├── action.js │ │ │ │ │ └── actionCommonCategories.js │ │ │ │ ├── actionWidget/ │ │ │ │ │ ├── browser/ │ │ │ │ │ │ ├── actionList.js │ │ │ │ │ │ ├── actionWidget.css │ │ │ │ │ │ └── actionWidget.js │ │ │ │ │ └── common/ │ │ │ │ │ └── actionWidget.js │ │ │ │ ├── actions/ │ │ │ │ │ ├── browser/ │ │ │ │ │ │ ├── menuEntryActionViewItem.css │ │ │ │ │ │ ├── menuEntryActionViewItem.js │ │ │ │ │ │ └── toolbar.js │ │ │ │ │ └── common/ │ │ │ │ │ ├── actions.js │ │ │ │ │ └── menuService.js │ │ │ │ ├── clipboard/ │ │ │ │ │ ├── browser/ │ │ │ │ │ │ └── clipboardService.js │ │ │ │ │ └── common/ │ │ │ │ │ └── clipboardService.js │ │ │ │ ├── commands/ │ │ │ │ │ └── common/ │ │ │ │ │ └── commands.js │ │ │ │ ├── configuration/ │ │ │ │ │ └── common/ │ │ │ │ │ ├── configuration.js │ │ │ │ │ ├── configurationModels.js │ │ │ │ │ ├── configurationRegistry.js │ │ │ │ │ └── configurations.js │ │ │ │ ├── contextkey/ │ │ │ │ │ ├── browser/ │ │ │ │ │ │ └── contextKeyService.js │ │ │ │ │ └── common/ │ │ │ │ │ ├── contextkey.js │ │ │ │ │ ├── contextkeys.js │ │ │ │ │ └── scanner.js │ │ │ │ ├── contextview/ │ │ │ │ │ └── browser/ │ │ │ │ │ ├── contextMenuHandler.js │ │ │ │ │ ├── contextMenuService.js │ │ │ │ │ ├── contextView.js │ │ │ │ │ └── contextViewService.js │ │ │ │ ├── dialogs/ │ │ │ │ │ └── common/ │ │ │ │ │ └── dialogs.js │ │ │ │ ├── dnd/ │ │ │ │ │ └── browser/ │ │ │ │ │ └── dnd.js │ │ │ │ ├── editor/ │ │ │ │ │ └── common/ │ │ │ │ │ └── editor.js │ │ │ │ ├── environment/ │ │ │ │ │ └── common/ │ │ │ │ │ └── environment.js │ │ │ │ ├── extensions/ │ │ │ │ │ └── common/ │ │ │ │ │ └── extensions.js │ │ │ │ ├── files/ │ │ │ │ │ └── common/ │ │ │ │ │ └── files.js │ │ │ │ ├── history/ │ │ │ │ │ └── browser/ │ │ │ │ │ ├── contextScopedHistoryWidget.js │ │ │ │ │ └── historyWidgetKeybindingHint.js │ │ │ │ ├── hover/ │ │ │ │ │ └── browser/ │ │ │ │ │ └── hover.js │ │ │ │ ├── instantiation/ │ │ │ │ │ └── common/ │ │ │ │ │ ├── descriptors.js │ │ │ │ │ ├── extensions.js │ │ │ │ │ ├── graph.js │ │ │ │ │ ├── instantiation.js │ │ │ │ │ ├── instantiationService.js │ │ │ │ │ └── serviceCollection.js │ │ │ │ ├── jsonschemas/ │ │ │ │ │ └── common/ │ │ │ │ │ └── jsonContributionRegistry.js │ │ │ │ ├── keybinding/ │ │ │ │ │ └── common/ │ │ │ │ │ ├── abstractKeybindingService.js │ │ │ │ │ ├── baseResolvedKeybinding.js │ │ │ │ │ ├── keybinding.js │ │ │ │ │ ├── keybindingResolver.js │ │ │ │ │ ├── keybindingsRegistry.js │ │ │ │ │ ├── resolvedKeybindingItem.js │ │ │ │ │ └── usLayoutResolvedKeybinding.js │ │ │ │ ├── label/ │ │ │ │ │ └── common/ │ │ │ │ │ └── label.js │ │ │ │ ├── layout/ │ │ │ │ │ └── browser/ │ │ │ │ │ └── layoutService.js │ │ │ │ ├── list/ │ │ │ │ │ └── browser/ │ │ │ │ │ └── listService.js │ │ │ │ ├── log/ │ │ │ │ │ └── common/ │ │ │ │ │ ├── log.js │ │ │ │ │ └── logService.js │ │ │ │ ├── markers/ │ │ │ │ │ └── common/ │ │ │ │ │ ├── markerService.js │ │ │ │ │ └── markers.js │ │ │ │ ├── notification/ │ │ │ │ │ └── common/ │ │ │ │ │ └── notification.js │ │ │ │ ├── observable/ │ │ │ │ │ └── common/ │ │ │ │ │ └── platformObservableUtils.js │ │ │ │ ├── opener/ │ │ │ │ │ ├── browser/ │ │ │ │ │ │ ├── link.css │ │ │ │ │ │ └── link.js │ │ │ │ │ └── common/ │ │ │ │ │ └── opener.js │ │ │ │ ├── policy/ │ │ │ │ │ └── common/ │ │ │ │ │ └── policy.js │ │ │ │ ├── progress/ │ │ │ │ │ └── common/ │ │ │ │ │ └── progress.js │ │ │ │ ├── quickinput/ │ │ │ │ │ ├── browser/ │ │ │ │ │ │ ├── commandsQuickAccess.js │ │ │ │ │ │ ├── helpQuickAccess.js │ │ │ │ │ │ ├── media/ │ │ │ │ │ │ │ └── quickInput.css │ │ │ │ │ │ ├── pickerQuickAccess.js │ │ │ │ │ │ ├── quickAccess.js │ │ │ │ │ │ ├── quickInput.js │ │ │ │ │ │ ├── quickInputActions.js │ │ │ │ │ │ ├── quickInputBox.js │ │ │ │ │ │ ├── quickInputController.js │ │ │ │ │ │ ├── quickInputService.js │ │ │ │ │ │ ├── quickInputTree.js │ │ │ │ │ │ └── quickInputUtils.js │ │ │ │ │ └── common/ │ │ │ │ │ ├── quickAccess.js │ │ │ │ │ └── quickInput.js │ │ │ │ ├── registry/ │ │ │ │ │ └── common/ │ │ │ │ │ └── platform.js │ │ │ │ ├── severityIcon/ │ │ │ │ │ └── browser/ │ │ │ │ │ ├── media/ │ │ │ │ │ │ └── severityIcon.css │ │ │ │ │ └── severityIcon.js │ │ │ │ ├── storage/ │ │ │ │ │ └── common/ │ │ │ │ │ └── storage.js │ │ │ │ ├── telemetry/ │ │ │ │ │ └── common/ │ │ │ │ │ ├── gdprTypings.js │ │ │ │ │ └── telemetry.js │ │ │ │ ├── theme/ │ │ │ │ │ ├── browser/ │ │ │ │ │ │ ├── defaultStyles.js │ │ │ │ │ │ └── iconsStyleSheet.js │ │ │ │ │ └── common/ │ │ │ │ │ ├── colorRegistry.js │ │ │ │ │ ├── colorUtils.js │ │ │ │ │ ├── colors/ │ │ │ │ │ │ ├── baseColors.js │ │ │ │ │ │ ├── chartsColors.js │ │ │ │ │ │ ├── editorColors.js │ │ │ │ │ │ ├── inputColors.js │ │ │ │ │ │ ├── listColors.js │ │ │ │ │ │ ├── menuColors.js │ │ │ │ │ │ ├── minimapColors.js │ │ │ │ │ │ ├── miscColors.js │ │ │ │ │ │ ├── quickpickColors.js │ │ │ │ │ │ └── searchColors.js │ │ │ │ │ ├── iconRegistry.js │ │ │ │ │ ├── theme.js │ │ │ │ │ └── themeService.js │ │ │ │ ├── undoRedo/ │ │ │ │ │ └── common/ │ │ │ │ │ ├── undoRedo.js │ │ │ │ │ └── undoRedoService.js │ │ │ │ └── workspace/ │ │ │ │ └── common/ │ │ │ │ ├── workspace.js │ │ │ │ └── workspaceTrust.js │ │ │ ├── nyqBNV6O.js │ │ │ ├── oQwgk5qA.js │ │ │ ├── qXRMwz9A.js │ │ │ ├── qmhIZ77x.js │ │ │ ├── qpfuy3xp.js │ │ │ ├── rKxcFsZi.js │ │ │ ├── rUbGlJbN.js │ │ │ ├── s0YP2YF7.js │ │ │ ├── sacFqUAJ.js │ │ │ ├── sdHcTMYB.js │ │ │ ├── shcSOmrb.js │ │ │ ├── ul-Lp4lw.js │ │ │ ├── w-ucz2PV.js │ │ │ ├── w8dY5SsB.js │ │ │ ├── wI6OXr6j.js │ │ │ ├── wLBHnxd4.js │ │ │ ├── xI-RfyKK.js │ │ │ ├── xW4inM5L.js │ │ │ ├── ySlJ1b_l.js │ │ │ ├── yf5bffbF.js │ │ │ ├── zIqOaAtZ.js │ │ │ └── zocC4JxJ.js │ │ ├── index.html │ │ └── robots.txt │ ├── store/ │ │ ├── __init__.py │ │ ├── state_app.py │ │ ├── state_candles.py │ │ ├── state_closed_trades.py │ │ ├── state_exchanges.py │ │ ├── state_logs.py │ │ ├── state_orderbook.py │ │ ├── state_orders.py │ │ ├── state_positions.py │ │ ├── state_tickers.py │ │ └── state_trades.py │ ├── strategies/ │ │ ├── CanAddClosedTradeToStore/ │ │ │ └── __init__.py │ │ ├── Strategy.py │ │ ├── Test01/ │ │ │ └── __init__.py │ │ ├── Test02/ │ │ │ └── __init__.py │ │ ├── Test04/ │ │ │ └── __init__.py │ │ ├── Test05/ │ │ │ └── __init__.py │ │ ├── Test06/ │ │ │ └── __init__.py │ │ ├── Test07/ │ │ │ └── __init__.py │ │ ├── Test08/ │ │ │ └── __init__.py │ │ ├── Test09/ │ │ │ └── __init__.py │ │ ├── Test10/ │ │ │ └── __init__.py │ │ ├── Test11/ │ │ │ └── __init__.py │ │ ├── Test12/ │ │ │ └── __init__.py │ │ ├── Test13/ │ │ │ └── __init__.py │ │ ├── Test14/ │ │ │ └── __init__.py │ │ ├── Test15/ │ │ │ └── __init__.py │ │ ├── Test16/ │ │ │ └── __init__.py │ │ ├── Test17/ │ │ │ └── __init__.py │ │ ├── Test18/ │ │ │ └── __init__.py │ │ ├── Test19/ │ │ │ └── __init__.py │ │ ├── Test20/ │ │ │ └── __init__.py │ │ ├── Test21/ │ │ │ └── __init__.py │ │ ├── Test22/ │ │ │ └── __init__.py │ │ ├── Test23/ │ │ │ └── __init__.py │ │ ├── Test24/ │ │ │ └── __init__.py │ │ ├── Test25/ │ │ │ └── __init__.py │ │ ├── Test26/ │ │ │ └── __init__.py │ │ ├── Test27/ │ │ │ └── __init__.py │ │ ├── Test28/ │ │ │ └── __init__.py │ │ ├── Test29/ │ │ │ └── __init__.py │ │ ├── Test30/ │ │ │ └── __init__.py │ │ ├── Test31/ │ │ │ └── __init__.py │ │ ├── Test32/ │ │ │ └── __init__.py │ │ ├── Test33/ │ │ │ └── __init__.py │ │ ├── Test34/ │ │ │ └── __init__.py │ │ ├── Test35/ │ │ │ └── __init__.py │ │ ├── Test36/ │ │ │ └── __init__.py │ │ ├── Test37/ │ │ │ └── __init__.py │ │ ├── Test38/ │ │ │ └── __init__.py │ │ ├── Test39/ │ │ │ └── __init__.py │ │ ├── Test40/ │ │ │ └── __init__.py │ │ ├── Test41/ │ │ │ └── __init__.py │ │ ├── Test44/ │ │ │ └── __init__.py │ │ ├── Test45/ │ │ │ └── __init__.py │ │ ├── Test46/ │ │ │ └── __init__.py │ │ ├── Test47/ │ │ │ └── __init__.py │ │ ├── Test48/ │ │ │ └── __init__.py │ │ ├── TestAddHorizontalLineToCandleChart/ │ │ │ └── __init__.py │ │ ├── TestAddHorizontalLineToExtraChart/ │ │ │ └── __init__.py │ │ ├── TestAddLineToCandleChart/ │ │ │ └── __init__.py │ │ ├── TestAddLineToExtraChart/ │ │ │ └── __init__.py │ │ ├── TestAfterMethod/ │ │ │ └── __init__.py │ │ ├── TestAverageEntryPriceProperty/ │ │ │ └── __init__.py │ │ ├── TestBalanceAndFeeReductionWorksCorrectlyInSpotModeInBothBuyAndSellOrders/ │ │ │ └── __init__.py │ │ ├── TestBalancesAreHandledCorrectlyForCancellingOrdersInSpot/ │ │ │ └── __init__.py │ │ ├── TestBeforeMethod/ │ │ │ └── __init__.py │ │ ├── TestBeforeTerminate/ │ │ │ └── __init__.py │ │ ├── TestCanCancelEntryOrdersAfterOpenPositionLong1/ │ │ │ └── __init__.py │ │ ├── TestCanCancelEntryOrdersAfterOpenPositionLong2/ │ │ │ └── __init__.py │ │ ├── TestCanCancelEntryOrdersAfterOpenPositionShort1/ │ │ │ └── __init__.py │ │ ├── TestCanCancelEntryOrdersAfterOpenPositionShort2/ │ │ │ └── __init__.py │ │ ├── TestCanOpenANewPositionImmediatelyAfterClosingViaUpdatePosition/ │ │ │ └── __init__.py │ │ ├── TestCanRunWithoutShorting/ │ │ │ └── __init__.py │ │ ├── TestCanSubmitStopLossOrderWithSizeEqualToCurrentPositionQty/ │ │ │ └── __init__.py │ │ ├── TestCanSubmitStopLossOrderWithSizeLessThanCurrentPositionQty/ │ │ │ └── __init__.py │ │ ├── TestCanSubmitTakeProfitAndStopLossAtSameTimeInSpot/ │ │ │ └── __init__.py │ │ ├── TestCanSubmitTakeProfitOrderWithSizeEqualToCurrentPositionQty/ │ │ │ └── __init__.py │ │ ├── TestCanSubmitTakeProfitOrderWithSizeLessThanCurrentPositionQty/ │ │ │ └── __init__.py │ │ ├── TestCannotSetStopLossOrderInGoLong/ │ │ │ └── __init__.py │ │ ├── TestCannotSetTakeProfitOrderInGoLong/ │ │ │ └── __init__.py │ │ ├── TestCannotSpendMoreThanAvailableBalance/ │ │ │ └── __init__.py │ │ ├── TestCannotSubmitStopLossOrderWithSizeMoreThanCurrentPositionQty/ │ │ │ └── __init__.py │ │ ├── TestCannotSubmitTakeProfitOrderWithSizeMoreThanCurrentPositionQty/ │ │ │ └── __init__.py │ │ ├── TestCapitalPropertyRaisesNotImplementedError/ │ │ │ └── __init__.py │ │ ├── TestClosedTradeAfterExitingTrade/ │ │ │ └── __init__.py │ │ ├── TestCurrentRouteIndex1/ │ │ │ └── __init__.py │ │ ├── TestCurrentRouteIndex2/ │ │ │ └── __init__.py │ │ ├── TestDailyBalanceStoresPortfolioValue/ │ │ │ └── __init__.py │ │ ├── TestDailyBalancesProperty/ │ │ │ └── __init__.py │ │ ├── TestDataRoutes1/ │ │ │ └── __init__.py │ │ ├── TestDataRoutes2/ │ │ │ └── __init__.py │ │ ├── TestDefaultHyperparameters/ │ │ │ └── __init__.py │ │ ├── TestDnaMethod/ │ │ │ └── __init__.py │ │ ├── TestEmptyStrategy/ │ │ │ └── __init__.py │ │ ├── TestEntryOrdersAndExitOrdersProperties/ │ │ │ └── __init__.py │ │ ├── TestExchangeTypeProperty1/ │ │ │ └── __init__.py │ │ ├── TestExchangeTypeProperty2/ │ │ │ └── __init__.py │ │ ├── TestFuturesExchangeAvailableMargin/ │ │ │ └── __init__.py │ │ ├── TestHasLongAndShortEntryOrdersPropertiesInFilters/ │ │ │ └── __init__.py │ │ ├── TestHasLongEntryOrdersProperty/ │ │ │ └── __init__.py │ │ ├── TestHasShortEntryOrdersProperty/ │ │ │ └── __init__.py │ │ ├── TestIncreasedAndReducedCount/ │ │ │ └── __init__.py │ │ ├── TestIncreasingShortPosition/ │ │ │ └── __init__.py │ │ ├── TestInsufficientMargin1/ │ │ │ └── __init__.py │ │ ├── TestInsufficientMargin2/ │ │ │ └── __init__.py │ │ ├── TestInsufficientMargin3/ │ │ │ └── __init__.py │ │ ├── TestLeverageProperty1/ │ │ │ └── __init__.py │ │ ├── TestLeverageProperty2/ │ │ │ └── __init__.py │ │ ├── TestLiquidationInCrossModeForShortTrade/ │ │ │ └── __init__.py │ │ ├── TestLiquidationInIsolatedModeForLongTrade/ │ │ │ └── __init__.py │ │ ├── TestLiquidationInIsolatedModeForShortTrade/ │ │ │ └── __init__.py │ │ ├── TestLogMethodInStrategyClass/ │ │ │ └── __init__.py │ │ ├── TestMarkPrice/ │ │ │ └── __init__.py │ │ ├── TestMarketOrderForLowPriceDifference/ │ │ │ └── __init__.py │ │ ├── TestMetrics1/ │ │ │ └── __init__.py │ │ ├── TestMultipleEntryOrdersUpdateEntryLongPositions/ │ │ │ └── __init__.py │ │ ├── TestMultipleEntryOrdersUpdateEntryShortPositions/ │ │ │ └── __init__.py │ │ ├── TestOnCancelMethod/ │ │ │ └── __init__.py │ │ ├── TestOnClosePosition/ │ │ │ └── __init__.py │ │ ├── TestOnRouteOpenPosition/ │ │ │ └── __init__.py │ │ ├── TestOnRouteOpenPosition2/ │ │ │ └── __init__.py │ │ ├── TestOrderIsStopLossProperty/ │ │ │ └── __init__.py │ │ ├── TestOrderIsTakeProfitProperty/ │ │ │ └── __init__.py │ │ ├── TestOrderPriceCannotBeGreaterThanZero/ │ │ │ └── __init__.py │ │ ├── TestOrderValueProperty/ │ │ │ └── __init__.py │ │ ├── TestOrdersAreSortedBeforeExecution/ │ │ │ └── __init__.py │ │ ├── TestPortfolioValue/ │ │ │ └── __init__.py │ │ ├── TestPortfolioValueIncludesPositionValueAndOpenOrdersValue/ │ │ │ └── __init__.py │ │ ├── TestPositionExchangeTypeProperty1/ │ │ │ └── __init__.py │ │ ├── TestPositionExchangeTypeProperty2/ │ │ │ └── __init__.py │ │ ├── TestPositionOpenIncreaseReduceCloseEventsInSpot/ │ │ │ └── __init__.py │ │ ├── TestPositionTotalCostProperty/ │ │ │ └── __init__.py │ │ ├── TestPositionWithLeverage1/ │ │ │ └── __init__.py │ │ ├── TestPositionWithLeverage2/ │ │ │ └── __init__.py │ │ ├── TestPositions/ │ │ │ └── __init__.py │ │ ├── TestProperBalanceHanldingInSpotAfterOrderCancellation/ │ │ │ └── __init__.py │ │ ├── TestReduceOnlyMarketOrders/ │ │ │ └── __init__.py │ │ ├── TestShortInSpot/ │ │ │ └── __init__.py │ │ ├── TestStopLossPriceIsReplacedWithMarketOrderForBetterPriceLongPosition/ │ │ │ └── __init__.py │ │ ├── TestStopLossPriceIsReplacedWithMarketOrderForBetterPriceShortPosition/ │ │ │ └── __init__.py │ │ ├── TestStopOrderShouldConsiderExecutedTakeProfitOrdersInSpot/ │ │ │ └── __init__.py │ │ ├── TestStrategyVariablesAreResetBeforeOpeningNewPosition/ │ │ │ └── __init__.py │ │ ├── TestTakeProfitPriceIsReplacedWithMarketOrderWhenMoreConvenientLongPosition/ │ │ │ └── __init__.py │ │ ├── TestTakeProfitPriceIsReplacedWithMarketOrderWhenMoreConvenientShortPosition/ │ │ │ └── __init__.py │ │ ├── TestTerminate/ │ │ │ └── __init__.py │ │ ├── TestUsageOfShouldCancelRaisesNotImplementedError/ │ │ │ └── __init__.py │ │ ├── TestVanillaStrategy/ │ │ │ └── __init__.py │ │ ├── TestWalletBalance/ │ │ │ └── __init__.py │ │ ├── TestWithoutCancelMethod/ │ │ │ └── __init__.py │ │ └── __init__.py │ ├── testing_utils.py │ ├── utils.py │ └── version.py ├── requirements.txt ├── setup.py ├── tests/ │ ├── __init__.py │ ├── data/ │ │ ├── __init__.py │ │ ├── test_candles_0.py │ │ ├── test_candles_1.py │ │ └── test_candles_indicators.py │ ├── storage/ │ │ └── logs/ │ │ └── backtest-mode/ │ │ └── .txt │ ├── test_backtest.py │ ├── test_broker.py │ ├── test_candle_service.py │ ├── test_completed_trade.py │ ├── test_conflicting_orders.py │ ├── test_dynamic_numpy_array.py │ ├── test_exchange.py │ ├── test_helpers.py │ ├── test_import_candles.py │ ├── test_indicators.py │ ├── test_isolated_backtest.py │ ├── test_lsp.py │ ├── test_metrics.py │ ├── test_order.py │ ├── test_parent_strategy.py │ ├── test_position.py │ ├── test_research.py │ ├── test_router.py │ ├── test_spot_mode.py │ ├── test_state_candle.py │ ├── test_state_exchanges.py │ ├── test_state_logs.py │ ├── test_state_orderbook.py │ ├── test_state_orders.py │ ├── test_state_ticker.py │ ├── test_state_trades.py │ └── test_utils.py └── utils/ ├── candle_info.sh └── candle_info.sql ================================================ FILE CONTENTS ================================================ ================================================ FILE: .dockerignore ================================================ __pycache__ *.pyc *.pyo *.pyd .Python env pip-log.txt pip-delete-this-directory.txt .tox .coverage .coverage.* .cache nosetests.xml coverage.xml *,cover *.log .git *.md !README*.md README-secret.md .travis.yml Dockerfile docker-compose.yml .idea venv ================================================ FILE: .github/ISSUE_TEMPLATE/bug_report.md ================================================ --- name: Bug report about: Create a report to help us improve title: '' labels: bug assignees: '' --- **Describe the bug** A clear and concise description of what the bug is. Include the whole error message / traceback. **To Reproduce** Steps to reproduce the behavior: 1. Include your routes, config (make sure to remove personal information) and if possible your strategy code (if you want to keep it private - contact us on Discord directly). 2. Explain the steps you do that lead to the error **Expected behavior** A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. **Enviroment (please complete the following information):** - OS: [e.g. iOS, Windows, Ubuntu, Docker] - Version [use `pip show jesse`] **Additional context** Add any other context about the problem here. ================================================ FILE: .github/ISSUE_TEMPLATE/feature_request.md ================================================ --- name: Feature request about: Suggest an idea for this project title: '' labels: enhancement assignees: '' --- **Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] **Describe the solution you'd like** A clear and concise description of what you want to happen. **Describe alternatives you've considered** A clear and concise description of any alternative solutions or features you've considered. **Additional context** Add any other context or screenshots about the feature request here. ================================================ FILE: .github/stale.yml ================================================ # Number of days of inactivity before an issue becomes stale daysUntilStale: 60 # Number of days of inactivity before a stale issue is closed daysUntilClose: 7 # Issues with these labels will never be considered stale exemptLabels: - pinned - security # Label to use when marking an issue as stale staleLabel: stale # Comment to post when marking an issue as stale. Set to `false` to disable markComment: > This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. # Comment to post when closing a stale issue. Set to `false` to disable closeComment: false ================================================ FILE: .github/workflows/codeql-analysis.yml ================================================ # For most projects, this workflow file will not need changing; you simply need # to commit it to your repository. # # You may wish to alter this file to override the set of languages analyzed, # or to provide custom queries or build logic. # # ******** NOTE ******** # We have attempted to detect the languages in your repository. Please check # the `language` matrix defined below to confirm you have the correct set of # supported CodeQL languages. # name: "CodeQL" on: push: branches: [ master ] pull_request: # The branches below must be a subset of the branches above branches: [ master ] schedule: - cron: '0 0 1 * *' jobs: analyze: name: Analyze runs-on: ubuntu-latest permissions: actions: read contents: read security-events: write strategy: fail-fast: false matrix: language: [ 'python' ] # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] # Learn more about CodeQL language support at https://git.io/codeql-language-support steps: - name: Checkout repository uses: actions/checkout@v2 - name: Cache pip uses: actions/cache@v2 with: path: ${{ matrix.path }} key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} restore-keys: | ${{ runner.os }}-pip- - name: Install dependencies run: | python -m pip install --upgrade pip if [ -f requirements.txt ]; then pip install -r requirements.txt; fi pip install numba # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@v1 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. # By default, queries listed here will override any specified in a config file. # Prefix the list here with "+" to use these queries and those in the config file. # queries: ./path/to/local/query, your-org/your-repo/queries@main # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild uses: github/codeql-action/autobuild@v1 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines # and modify them (or add more) to build your code if your project # uses a compiled language #- run: | # make bootstrap # make release - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v1 ================================================ FILE: .github/workflows/python-package.yml ================================================ # This workflow will install Python dependencies, run tests and lint with a single version of Python # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions name: Python application on: push: branches: [ master ] pull_request: branches: [ master ] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build: runs-on: ${{matrix.os}} strategy: matrix: # os: [ubuntu-latest, macos-latest, windows-latest] os: [ubuntu-latest, macos-latest] # os: [ubuntu-latest] include: - os: ubuntu-latest path: ~/.cache/pip #- os: macos-latest-xlarge # path: ~/Library/Caches/pip #- os: windows-latest # path: ~\AppData\Local\pip\Cache # python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] python-version: ['3.10', '3.11', '3.12', '3.13'] steps: - name: Checkout uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Cache pip uses: actions/cache@v3 id: cache with: path: ${{ matrix.path }} key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} restore-keys: | ${{ runner.os }}-pip- - name: Install dependencies shell: bash run: | python -m ensurepip --upgrade python -m pip install --upgrade pip python -m pip install setuptools wheel if [ -f requirements.txt ]; then pip install -r requirements.txt; fi if [ ! ${{ matrix.python-version }} = "3.10" ]; then pip install numba; fi pip install -e . -U - name: Test with pytest shell: bash run: | pip install pytest pytest ================================================ FILE: .gitignore ================================================ # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ share/python-wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .nox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *.cover *.py,cover .hypothesis/ .pytest_cache/ cover/ # Translations *.mo *.pot # Django stuff: *.log local_settings.py db.sqlite3 db.sqlite3-journal # Flask stuff: instance/ .webassets-cache # Scrapy stuff: .scrapy # Sphinx documentation docs/_build/ # PyBuilder .pybuilder/ target/ # Jupyter Notebook .ipynb_checkpoints # IPython profile_default/ ipython_config.py # pyenv # For a library or package, you might want to ignore these files since the code is # intended to run in multiple environments; otherwise, check them in: # .python-version # pipenv # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. # However, in case of collaboration, if having platform-specific dependencies or dependencies # having no cross-platform support, pipenv may install dependencies that don't work, or not # install all needed dependencies. #Pipfile.lock # PEP 582; used by e.g. github.com/David-OConnor/pyflow __pypackages__/ # Celery stuff celerybeat-schedule celerybeat.pid # SageMath parsed files *.sage.py # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ # Spyder project settings .spyderproject .spyproject # Rope project settings .ropeproject # mkdocs documentation /site # mypy .mypy_cache/ .dmypy.json dmypy.json # Pyre type checker .pyre/ # pytype static type analyzer .pytype/ # Cython debug symbols cython_debug/ # IDE /.vscode /.idea .DS_Store /storage/*.key /storage/*.sqlite /storage/*.gz /.vagrant testing-*.py /storage/full-reports/*.html /storage/logs/* # lsp jesse/lsp/ pyrightconfig.json ================================================ FILE: AGENTS.md ================================================ # Jesse Repository Guide for AI Agents ## Overview The jesse repository is the **core open-source framework** of the Jesse trading system. It contains the main Python codebase for backtesting trading strategies, importing historical data from crypto exchanges, running optimizations, and providing the API backend for the dashboard. It glues together the other repositories and makes them work together. ## Key Characteristics ### Central Framework - **jesse-live depends on this** - Changes here affect live trading - **jesse-rust integrates here** - Rust functions are called from this codebase - **dashboard consumes this API** - Frontend uses the FastAPI routes and controller files. ### Technology Stack - **Python** - Primary language - **FastAPI** - API framework for all routes - **NumPy** - Array operations and calculations - **keewee** - ORM for the database ## Development Workflow ### Making Changes When implementing features or fixing bugs: 1. **Understand the scope** - Determine if other repositories such as the dashboard need updates 2. **Implement the code** in the appropriate module 3. **Write/update tests** - Maintain test coverage 4. **Run tests** to verify changes: ```bash cd-jesse && pytest ``` 5. **Consider jesse-live** - Does this affect live trading? 6. **Update API routes** if needed - Follow FastAPI patterns 7. **Don't restart server** unless specifically asked ### Python Environment Use the Jesse Python interpreter: ``` /Users/salehmir/miniconda3/envs/jesse3.12/bin/python ``` ### Running Jesse Backend The API server provides routes for the dashboard: ```bash # Stop any running process pkill -f "jesse run" # Start Jesse from bot directory (not jesse/) cd /Users/salehmir/codes/jesse/dev-jesse/bot /Users/salehmir/miniconda3/envs/jesse3.12/bin/jesse run > /tmp/jesse-output.log 2>&1 & # Server runs at http://localhost:9001 # Check logs tail -f /tmp/jesse-output.log ``` **Important**: Don't restart Jesse after code changes unless explicitly requested. ### Running Tests Run the test suite after changes if asked. ```bash cd-jesse && pytest ``` If you've updated jesse-rust, run tests after building: ```bash cd /Users/salehmir/Codes/jesse/dev-jesse/jesse-rust ./build-local.sh cd /Users/salehmir/Codes/jesse/dev-jesse/jesse pytest ``` ## Important Notes ### Debugging - **Use `jh.debug()` for all debugging output** - Never use plain `print()` - **Log format**: `[2024-12-06 18:23:12] ==> Your message here` - Logs include timestamps and `==>` prefix - Essential for debugging backtests and live trading sessions ### API Routes - **Default to POST endpoints** unless specifically asked for GET - Use FastAPI decorators and patterns - Follow the structure of existing routes in `jesse/routes/` - Return proper HTTP status codes and JSON responses - Handle errors gracefully ### Code Style - Don't write comments for functions unless asked - Never try to install new packages - assume they're already installed. if need to install new packages, ask me first. - Follow existing patterns and conventions - Maintain consistency with the current codebase - Try to import only at the top of the file. ### Jesse-Rust Integration - When using Rust functions, **assume they exist** - don't add existence checks - Update Python code to call new Rust implementations - Build jesse-rust locally and run tests to verify integration - Performance-critical code should be delegated to jesse-rust when possible ## File Structure - `jesse/` - Main source code - `indicators/` - Technical indicators - `modes/` - Backtest, optimize, import modes, monte carlo, etc - `routes/` - FastAPI route handlers - `services/` - data services, etc - `strategies/` - Base strategy classes - `store/` - State management - `tests/` - Test suite - `storage/` - Logs and temporary files - `requirements.txt` - Python dependencies - `setup.py` - Package configuration ## Testing Strategy ### Unit Tests - Run `pytest` after every change if asked in the conversation. - Maintain or improve test coverage - Add tests for new features if asked in the conversation. - Fix failing tests immediately ## Related Repositories This repository is the foundation of the Jesse ecosystem: - **jesse-live** - Depends heavily on jesse for live trading - **jesse-rust** - Performance layer integrated into jesse - **dashboard-v1** - Frontend that consumes jesse's API - **bot** - Jesse project instance that runs the framework - **laravel-jesse-trade** - Laravel project that contains the api1 backend of the jesse-trade website. - **go-jesse-trade/backend** - Go project that contains the api2 backend of the jesse-trade website. - **go-jesse-trade/frontend** - NuxtJS project that contains the frontend of the jesse-trade website. - **strategy-executor** - Go project that contains the strategy executor microservice used to execute strategies submitted by the users of the website. ================================================ FILE: Dockerfile ================================================ ARG TEST_BUILD=0 FROM python:3.11-slim-bullseye AS jesse_basic_env ENV PYTHONUNBUFFERED 1 RUN apt-get update \ && apt-get -y install git build-essential libssl-dev \ && apt-get clean \ && pip install --upgrade pip RUN pip3 install Cython numpy # Prepare environment RUN mkdir /jesse-docker WORKDIR /jesse-docker # Install dependencies COPY requirements.txt /jesse-docker RUN pip3 install -r requirements.txt # Build COPY . /jesse-docker RUN pip3 install -e . FROM jesse_basic_env AS jesse_with_test_0 WORKDIR /home FROM jesse_basic_env AS jesse_with_test_1 RUN pip3 install codecov pytest-cov ENTRYPOINT pytest --cov=./ # && codecov FROM jesse_with_test_${TEST_BUILD} AS jesse_final ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) 2020 Jesse.Trade Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: MANIFEST.in ================================================ include jesse/static/* include jesse/static/**/* ================================================ FILE: README.md ================================================

Jesse

Algo-trading was 😵‍💫, we made it 🤩

# Jesse [![PyPI](https://img.shields.io/pypi/v/jesse)](https://pypi.org/project/jesse) [![Downloads](https://pepy.tech/badge/jesse)](https://pepy.tech/project/jesse) [![Docker Pulls](https://img.shields.io/docker/pulls/salehmir/jesse)](https://hub.docker.com/r/salehmir/jesse) [![GitHub](https://img.shields.io/github/license/jesse-ai/jesse)](https://github.com/jesse-ai/jesse) [![coverage](https://codecov.io/gh/jesse-ai/jesse/graph/badge.svg)](https://codecov.io/gh/jesse-ai/jesse) --- Jesse is an advanced crypto trading framework that aims to **simplify** **researching** and defining **YOUR OWN trading strategies** for backtesting, optimizing, and live trading. ## What is Jesse? Watch this video to get a quick overview of Jesse: [![Jesse Overview](https://img.youtube.com/vi/0EqN3OOqeJM/0.jpg)](https://www.youtube.com/watch?v=0EqN3OOqeJM) ## Why Jesse? In short, Jesse is more **accurate** than other solutions, and way more **simple**. In fact, it is so simple that in case you already know Python, you can get started today, in **matter of minutes**, instead of **weeks and months**. ## Key Features - 📝 **Simple Syntax**: Define both simple and advanced trading strategies with the simplest syntax in the fastest time. - 📊 **Comprehensive Indicator Library**: Access a complete library of technical indicators with easy-to-use syntax. - 📈 **Smart Ordering**: Supports market, limit, and stop orders, automatically choosing the best one for you. - ⏰ **Multiple Timeframes and Symbols**: Backtest and livetrade multiple timeframes and symbols simultaneously without look-ahead bias. - 🔒 **Self-Hosted and Privacy-First**: Designed with your privacy in mind, fully self-hosted to ensure your trading strategies and data remain secure. - 🛡️ **Risk Management**: Built-in helper functions for robust risk management. - 📋 **Metrics System**: A comprehensive metrics system to evaluate your trading strategy's performance. - 🔍 **Debug Mode**: Observe your strategy in action with a detailed debug mode. - 🔧 **Optimize Mode**: Fine-tune your strategies using AI, without needing a technical background. - 📈 **Leveraged and Short-Selling**: First-class support for leveraged trading and short-selling. - 🔀 **Partial Fills**: Supports entering and exiting positions in multiple orders, allowing for greater flexibility. - 🔔 **Advanced Alerts**: Create real-time alerts within your strategies for effective monitoring. - 🤖 **JesseGPT**: Jesse has its own GPT, JesseGPT, that can help you write strategies, optimize them, debug them, and much more. - 🔧 **Built-in Code Editor**: Write, edit, and debug your strategies with a built-in code editor. - 📺 **Youtube Channel**: Jesse has a Youtube channel with screencast tutorials that go through example strategies step by step. ## Dive Deeper into Jesse's Capabilities ### Stupid Simple Craft complex trading strategies with remarkably simple Python. Access 300+ indicators, multi-symbol/timeframe support, spot/futures trading, partial fills, and risk management tools. Focus on logic, not boilerplate. ```python class GoldenCross(Strategy): def should_long(self): # go long when the EMA 8 is above the EMA 21 short_ema = ta.ema(self.candles, 8) long_ema = ta.ema(self.candles, 21) return short_ema > long_ema def go_long(self): entry_price = self.price - 10 # limit buy order at $10 below the current price qty = utils.size_to_qty(self.balance*0.05, entry_price) # spend only 5% of my total capital self.buy = qty, entry_price # submit entry order self.take_profit = qty, entry_price*1.2 # take profit at 20% above the entry price self.stop_loss = qty, entry_price*0.9 # stop loss at 10% below the entry price ``` ### Backtest Execute highly accurate and fast backtests without look-ahead bias. Utilize debugging logs, interactive charts with indicator support, and detailed performance metrics to validate your strategies thoroughly. ![Backtest](https://raw.githubusercontent.com/jesse-ai/storage/refs/heads/master/backtest.gif) ### Live/Paper Trading Deploy strategies live with robust monitoring tools. Supports paper trading, multiple accounts, real-time logs & notifications (Telegram, Slack, Discord), interactive charts, spot/futures, DEX, and a built-in code editor. ![Live/Paper Trading](https://raw.githubusercontent.com/jesse-ai/storage/refs/heads/master/live.gif) ### Benchmark Accelerate research using the benchmark feature. Run batch backtests, compare across timeframes, symbols, and strategies. Filter and sort results by key performance metrics for efficient analysis. ![Benchmark](https://raw.githubusercontent.com/jesse-ai/storage/refs/heads/master/benchmark.gif) ### AI Leverage our AI assistant even with limited Python knowledge. Get help writing and improving strategies, implementing ideas, debugging, optimizing, and understanding code. Your personal AI quant. ![AI](https://raw.githubusercontent.com/jesse-ai/storage/refs/heads/master/gpt.gif) ### Optimize Your Strategies Unsure about optimal parameters? Let the optimization mode decide using simple syntax. Fine-tune any strategy parameter with the Optuna library and easy cross-validation. ```python @property def slow_sma(self): return ta.sma(self.candles, self.hp['slow_sma_period']) @property def fast_sma(self): return ta.sma(self.candles, self.hp['fast_sma_period']) def hyperparameters(self): return [ {'name': 'slow_sma_period', 'type': int, 'min': 150, 'max': 210, 'default': 200}, {'name': 'fast_sma_period', 'type': int, 'min': 20, 'max': 100, 'default': 50}, ] ``` ## Getting Started Head over to the "getting started" section of the [documentation](https://docs.jesse.trade/docs/getting-started). The documentation is **short yet very informative**. ## Resources - [⚡️ Website](https://jesse.trade) - [🎓 Documentation](https://docs.jesse.trade) - [🎥 Youtube channel (screencast tutorials)](https://jesse.trade/youtube) - [🛟 Help center](https://jesse.trade/help) - [💬 Discord community](https://jesse.trade/discord) - [🤖 JesseGPT](https://jesse.trade/gpt) (Requires a free account) ## What's next? You can see the project's **[roadmap here](https://docs.jesse.trade/docs/roadmap.html)**. **Subscribe** to our mailing list at [jesse.trade](https://jesse.trade) to get the good stuff as soon they're released. Don't worry, We won't send you spam—Pinky promise. ## Disclaimer This software is for educational purposes only. USE THE SOFTWARE AT **YOUR OWN RISK**. THE AUTHORS AND ALL AFFILIATES ASSUME **NO RESPONSIBILITY FOR YOUR TRADING RESULTS**. **Do not risk money that you are afraid to lose**. There might be **bugs** in the code - this software DOES NOT come with **ANY warranty**. ================================================ FILE: codecov.yml ================================================ ignore: - "tests/**" ================================================ FILE: conftest.py ================================================ def pytest_configure(config): config.addinivalue_line( "filterwarnings", "ignore:Please use `import python_multipart` instead.:PendingDeprecationWarning", ) ================================================ FILE: jesse/__init__.py ================================================ import os import warnings from contextlib import asynccontextmanager from fastapi.responses import FileResponse from fastapi.staticfiles import StaticFiles from jesse.services.web import fastapi_app import jesse.helpers as jh # import cli to register the routes. Do NOT remove this import. from jesse.cli import cli # to silent stupid pandas warnings warnings.simplefilter(action='ignore', category=FutureWarning) # get the jesse directory JESSE_DIR = os.path.dirname(os.path.abspath(__file__)) # define lifespan (replaces deprecated @on_event("shutdown")) @asynccontextmanager async def lifespan(app): yield from jesse.services.db import database database.close_connection() from jesse.services.lsp import terminate_lsp_server terminate_lsp_server() fastapi_app.router.lifespan_context = lifespan # load homepage @fastapi_app.get("/") async def index(): return FileResponse(f"{JESSE_DIR}/static/index.html") # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Routes # # # # # # # # # # # # # # # # # # # # # # # # # # # # from jesse.controllers.websocket_controller import router as websocket_router from jesse.controllers.optimization_controller import router as optimization_router from jesse.controllers.monte_carlo_controller import router as monte_carlo_router from jesse.controllers.exchange_controller import router as exchange_router from jesse.controllers.backtest_controller import router as backtest_router from jesse.controllers.candles_controller import router as candles_router from jesse.controllers.strategy_controller import router as strategy_router from jesse.controllers.auth_controller import router as auth_router from jesse.controllers.config_controller import router as config_router from jesse.controllers.notification_controller import router as notification_router from jesse.controllers.system_controller import router as system_router from jesse.controllers.file_controller import router as file_router from jesse.controllers.lsp_controller import router as lsp_router from jesse.controllers.closed_trade_controller import router as closed_trade_router from jesse.controllers.order_controller import router as order_router from jesse.controllers.tabs_controller import router as tabs_router # register routers fastapi_app.include_router(websocket_router) fastapi_app.include_router(optimization_router) fastapi_app.include_router(monte_carlo_router) fastapi_app.include_router(exchange_router) fastapi_app.include_router(backtest_router) fastapi_app.include_router(candles_router) fastapi_app.include_router(strategy_router) fastapi_app.include_router(auth_router) fastapi_app.include_router(config_router) fastapi_app.include_router(notification_router) fastapi_app.include_router(system_router) fastapi_app.include_router(file_router) fastapi_app.include_router(lsp_router) fastapi_app.include_router(closed_trade_router) fastapi_app.include_router(order_router) fastapi_app.include_router(tabs_router) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Live Trade Plugin # # # # # # # # # # # # # # # # # # # # # # # # # # # # if jh.has_live_trade_plugin(): from jesse.controllers.live_controller import router as live_router fastapi_app.include_router(live_router) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Static Files (Must be loaded at the end to prevent overlapping with API endpoints) # # # # # # # # # # # # # # # # # # # # # # # # # # # # fastapi_app.mount("/", StaticFiles(directory=f"{JESSE_DIR}/static"), name="static") ================================================ FILE: jesse/candle_pipelines/__init__.py ================================================ from .base_candles import BaseCandlesPipeline from .gaussian_noise import GaussianNoiseCandlesPipeline from .gaussian_resampler import GaussianResamplerCandlesPipeline from .moving_block_bootstrap import MovingBlockBootstrapCandlesPipeline ================================================ FILE: jesse/candle_pipelines/base_candles.py ================================================ import numpy as np class BaseCandlesPipeline: def __init__(self, batch_size: int) -> None: self._batch_size = batch_size self._output: np.ndarray = np.zeros((batch_size, 6)) self.last_price = 0.0 def get_candles(self, candles: np.ndarray, index: int, candles_step: int = -1) -> np.ndarray: index = index % self._batch_size if index == 0: if self.last_price == 0.0: self.last_price = candles[0, 1] # the first time use open price instead of last close else: self.last_price = self._output[-1, 2] # later use the last_price inject_candle = self.process(candles, self._output[:len(candles)]) if not inject_candle: self._output[:] = candles if candles_step == -1: return self._output[index] if index + candles_step <= self._batch_size: return self._output[index:index + candles_step] raise ValueError("Batch size to candle pipeline supported only multiplication of the minimum timeframe in your" " routes.") def process(self, original_1m_candles: np.ndarray, out: np.ndarray) -> bool: """ :param original_1m_candles: get original 1m candles to modify it for research purposes to test various scenarios. Get the next `batch_size` 1m candles. :param out: The candles that will be injected to the simulation instead of the original 1m candles. Contains the previous batch. :return: True if out is modified, False otherwise """ return False ================================================ FILE: jesse/candle_pipelines/gaussian_noise.py ================================================ import numpy as np import jesse.helpers as jh from .base_candles import BaseCandlesPipeline class GaussianNoiseCandlesPipeline(BaseCandlesPipeline): def __init__(self, batch_size: int, *, close_mu: float = 0.0, close_sigma: float, high_mu: float = 0.0, high_sigma: float, low_mu: float = 0.0, low_sigma: float, ) -> None: """ Add gaussian noise to candles """ super().__init__(batch_size) self._first_time = True self.close_mu = close_mu self.close_sigma = close_sigma self.high_mu = high_mu self.high_sigma = high_sigma self.low_mu = low_mu self.low_sigma = low_sigma def process(self, original_1m_candles: np.ndarray, out: np.ndarray) -> bool: eps = 1e-12 if not self._first_time: last_price = out[-1, 2] # last_close_price else: self._first_time = False # in case we don't have history set the price as the first price so the bias will be 0 last_price = original_1m_candles[0, 1] out[:] = original_1m_candles[:] n = len(out) # close price noise = np.random.normal(self.close_mu, self.close_sigma, size=n).cumsum() out[:, 2] = np.maximum(out[:, 2] + noise, eps) # open price out[1:, 1] = out[:-1, 2] out[0, 1] = max(last_price, eps) # high high_std = 0.0 if self.high_sigma == 0.0 else np.random.normal(0, self.high_sigma, size=n) out[:, 3] = out[:, 3] + self.high_mu + high_std # low low_std = 0.0 if self.low_sigma == 0.0 else np.random.normal(0, self.low_sigma, size=n) out[:, 4] = out[:, 4] + self.low_mu + low_std # enforce bounds and positivity out[:, 1] = np.maximum(out[:, 1], eps) out[:, 2] = np.maximum(out[:, 2], eps) out[:, 3] = np.maximum(np.maximum(out[:, 1], out[:, 2]), np.maximum(out[:, 3], out[:, 4])) out[:, 4] = np.minimum(np.minimum(out[:, 1], out[:, 2]), np.minimum(out[:, 3], out[:, 4])) out[:, 4] = np.maximum(out[:, 4], eps) return True ================================================ FILE: jesse/candle_pipelines/gaussian_resampler.py ================================================ import numpy as np from typing import Optional from .base_candles import BaseCandlesPipeline class GaussianResamplerCandlesPipeline(BaseCandlesPipeline): def __init__(self, batch_size: int, *, mu: float = 0.0, sigma: Optional[float] = None, ) -> None: """ Add gaussian noise to candles """ super().__init__(batch_size) self.mu = mu self.sigma = sigma def process(self, original_1m_candles: np.ndarray, out: np.ndarray) -> bool: eps = 1e-12 out[:] = original_1m_candles[:] # close price closes = original_1m_candles[:, 2] n = len(out) med_price = float(np.nan_to_num(np.median(closes), nan=0.0)) delta_close = np.diff(closes, prepend=self.last_price) mu_delta = float(np.nan_to_num(np.mean(delta_close[1:]), nan=0.0)) sigma_delta_close = float(np.nan_to_num(np.std(delta_close[1:]), nan=0.0)) # derive scale factor from relative returns if sigma is not provided if self.sigma is None: if n >= 2: rel_returns = np.diff(closes) / np.maximum(closes[:-1], eps) ret_std = float(np.nan_to_num(np.std(rel_returns), nan=0.0)) else: ret_std = 0.0 target_abs_close_std = max((ret_std * med_price) if ret_std > 0.0 else (med_price * 0.0005), eps) scale_factor = target_abs_close_std / max(sigma_delta_close, eps) else: scale_factor = self.sigma std_close = sigma_delta_close * scale_factor # debug the effective parameters used for the close process out[:, 2] = np.random.normal(mu_delta + self.mu, std_close, size=n).cumsum() + self.last_price out[:, 2] = np.maximum(out[:, 2], eps) # open price out[1:, 1] = out[:-1, 2] out[0, 1] = max(self.last_price, eps) # high delta_high_close = original_1m_candles[:, 3] - original_1m_candles[:, 2] mu_delta = float(np.nan_to_num(np.mean(delta_high_close), nan=0.0)) sigma_delta_high = float(np.nan_to_num(np.std(delta_high_close), nan=0.0)) std_high = sigma_delta_high * scale_factor out[:, 3] = out[:, 2] + np.random.normal(mu_delta + self.mu, std_high, size=n) delta_close_low = original_1m_candles[:, 2] - original_1m_candles[:, 4] mu_delta = float(np.nan_to_num(np.mean(delta_close_low), nan=0.0)) sigma_delta_low = float(np.nan_to_num(np.std(delta_close_low), nan=0.0)) std_low = sigma_delta_low * scale_factor out[:, 4] = out[:, 2] - np.random.normal(mu_delta + self.mu, std_low, size=n) # enforce bounds and positivity out[:, 1] = np.maximum(out[:, 1], eps) out[:, 2] = np.maximum(out[:, 2], eps) out[:, 3] = np.maximum(np.maximum(out[:, 1], out[:, 2]), np.maximum(out[:, 3], out[:, 4])) out[:, 4] = np.minimum(np.minimum(out[:, 1], out[:, 2]), np.minimum(out[:, 3], out[:, 4])) out[:, 4] = np.maximum(out[:, 4], eps) return True ================================================ FILE: jesse/candle_pipelines/moving_block_bootstrap.py ================================================ import numpy as np from .base_candles import BaseCandlesPipeline class MovingBlockBootstrapCandlesPipeline(BaseCandlesPipeline): def __init__(self, batch_size: int, **_ignored) -> None: """ Generate synthetic candles by moving-block bootstrap on multivariate tuples of (delta_close, delta_high, delta_low). Parameters ---------- batch_size : int Size of the internal regeneration buffer in minutes. The pipeline derives a reasonable bootstrap block length from this, so there is no separate block-size argument. """ super().__init__(batch_size) # Derive block size from batch size. Heuristic: max(10, batch_size // 10), # then clamp to [1, batch_size - 1]. This preserves short-horizon # dependence while allowing variety. derived_block_size = max(10, batch_size // 10) derived_block_size = max(1, min(batch_size - 1, derived_block_size)) self._block_size = derived_block_size # Independent RNG per pipeline instance to avoid identical scenarios self._rng = np.random.default_rng() def _bootstrap_blocks(self, arr: np.ndarray, n: int) -> np.ndarray: """ Sample overlapping blocks of rows from `arr` to build a length-n output. `arr` is shape (T, 3) for the three deltas. """ T, D = arr.shape if T == 0: return np.zeros((n, 3), dtype=arr.dtype) # Use the configured block_size, but not beyond available data effective_block_size = max(1, min(self._block_size, T)) max_start = T - effective_block_size # how many blocks needed to reach n rows num_blocks = int(np.ceil(n / effective_block_size)) + 1 starts = self._rng.integers(0, max_start + 1, size=num_blocks) blocks = [arr[s : s + effective_block_size] for s in starts] boot = np.vstack(blocks) return boot[:n] def process(self, original_1m_candles: np.ndarray, out: np.ndarray) -> bool: # copy everything first (timestamps, volumes, etc) out[:] = original_1m_candles[:] n = len(out) # strictly positive floor to avoid invalid negative prices eps = 1e-12 # compute the 3 deltas for each bar delta_close = np.diff(original_1m_candles[:, 2], prepend=self.last_price) delta_high = original_1m_candles[:, 3] - original_1m_candles[:, 2] delta_low = original_1m_candles[:, 2] - original_1m_candles[:, 4] # stack into shape (T, 3), skipping the first delta_close entry (prepend) deltas = np.column_stack([delta_close[1:], delta_high[1:], delta_low[1:]]) # bootstrap blocks of the 3-tuples boot_deltas = self._bootstrap_blocks(deltas, n) # rebuild close prices (ensure strictly positive) boot_close = np.cumsum(boot_deltas[:, 0]) + self.last_price boot_close = np.maximum(boot_close, eps) out[:, 2] = boot_close # rebuild opens out[1:, 1] = boot_close[:-1] out[0, 1] = max(self.last_price, eps) # rebuild high and low from the bootstrapped ranges out[:, 3] = boot_close + boot_deltas[:, 1] out[:, 4] = boot_close - boot_deltas[:, 2] # enforce the true high/low bounds and positivity out[:, 1] = np.maximum(out[:, 1], eps) out[:, 2] = np.maximum(out[:, 2], eps) out[:, 3] = np.maximum.reduce([out[:, 1], out[:, 2], out[:, 3], out[:, 4]]) out[:, 4] = np.minimum.reduce([out[:, 1], out[:, 2], out[:, 3], out[:, 4]]) out[:, 4] = np.maximum(out[:, 4], eps) return True ================================================ FILE: jesse/cli.py ================================================ import time import click from importlib.metadata import version as get_version import uvicorn import jesse.helpers as jh from jesse.services.multiprocessing import process_manager from jesse.services.web import fastapi_app @click.group() @click.version_option(get_version("jesse")) def cli() -> None: """CLI entrypoint for Jesse.""" pass @cli.command() @click.option( "--strict/--no-strict", default=True, help="Default is the strict mode which will raise an exception if the values for license is not set.", ) def install_live(strict: bool) -> None: """Install and configure the live trading plugin.""" from jesse.services.installer import install install(is_live_plugin_already_installed=jh.has_live_trade_plugin(), strict=strict) @cli.command() def run() -> None: """Start the Jesse application server.""" # Display welcome message welcome_message = """ ██╗███████╗███████╗███████╗███████╗ ██║██╔════╝██╔════╝██╔════╝██╔════╝ ██║█████╗ ███████╗███████╗█████╗ ██ ██║██╔══╝ ╚════██║╚════██║██╔══╝ ╚█████╔╝███████╗███████║███████║███████╗ ╚════╝ ╚══════╝╚══════╝╚══════╝╚══════╝ """ version = get_version("jesse") print(welcome_message) print(f"Main Framework Version: {version}") # Check if jesse-live is installed and display its version if jh.has_live_trade_plugin(): try: from jesse_live.version import __version__ as live_version print(f"Live Plugin Version: {live_version}") except ImportError: pass jh.validate_cwd() print("") # run all the db migrations from jesse.services.migrator import run as run_migrations import peewee try: run_migrations() except peewee.OperationalError: sleep_seconds = 10 print(f"Database wasn't ready. Sleep for {sleep_seconds} seconds and try again.") time.sleep(sleep_seconds) run_migrations() # Install Python Language Server if needed try: from jesse.services.lsp import install_lsp_server install_lsp_server() except Exception as e: print(jh.color(f"Error installing Python Language Server: {str(e)}", "red")) pass # read port from .env file, if not found, use default from jesse.services.env import ENV_VALUES if "APP_PORT" in ENV_VALUES: port = int(ENV_VALUES["APP_PORT"]) else: port = 9000 if "APP_HOST" in ENV_VALUES: host = ENV_VALUES["APP_HOST"] else: host = "0.0.0.0" # run the lsp server try: from jesse.services.lsp import run_lsp_server run_lsp_server() except Exception as e: print(jh.color(f"Error running Python Language Server: {str(e)}", "red")) pass # run the main application process_manager.flush() uvicorn.run(fastapi_app, host=host, port=port, log_level="info") ================================================ FILE: jesse/config.py ================================================ import jesse.helpers as jh from jesse.modes.utils import get_exchange_type from jesse.enums import exchanges from jesse.info import exchange_info # Main configuration used by the Jesse framework. These values are modified # at runtime based on the mode (backtest, live, or optimize) and user settings. config = { # these values are related to the user's environment 'env': { 'caching': { 'driver': 'pickle' }, 'logging': { 'strategy_execution': True, 'order_submission': True, 'order_cancellation': True, 'order_execution': True, 'position_opened': True, 'position_increased': True, 'position_reduced': True, 'position_closed': True, 'shorter_period_candles': False, 'trading_candles': True, 'balance_update': True, 'exchange_ws_reconnection': True }, # fill it later in this file using data in info.py 'exchanges': { exchanges.SANDBOX: { 'fee': 0, 'type': 'futures', # accepted values are: 'cross' and 'isolated' 'futures_leverage_mode': 'cross', # 1x, 2x, 10x, 50x, etc. Enter as integers 'futures_leverage': 1, 'balance': 10_000, }, }, # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Optimize mode (using Optuna) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Below configurations are related to the optimize mode # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 'optimization': { # available ratio options: sharpe, calmar, sortino, omega, serenity, smart sharpe, smart sortino 'objective_function': 'sharpe', # number of trials per each hyperparameter 'trials': 200, # number of best candidates to keep and display 'best_candidates_count': 20, }, # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Data # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Below configurations are related to the data # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 'data': { # The minimum number of warmup candles that is loaded before each session. 'warmup_candles_num': 240, 'generate_candles_from_1m': False, 'persistency': True, }, }, # These values are just placeholders used by Jesse at runtime 'app': { # list of currencies to consider 'considering_symbols': [], # The symbol to trade. 'trading_symbols': [], # list of time frames to consider 'considering_timeframes': [], # Which candle type do you intend trade on 'trading_timeframes': [], # list of exchanges to consider 'considering_exchanges': [], # list of exchanges to consider 'trading_exchanges': [], 'considering_candles': [], # dict of registered live trade drivers 'live_drivers': {}, # Accepted values are: 'backtest', 'livetrade', 'fitness'. 'trading_mode': '', # this would enable many console.log()s in the code, which are helpful for debugging. 'debug_mode': False, # this is only used for the live unit tests 'is_unit_testing': False, }, } # set exchange config values based on the info for key in exchange_info: config['env']['exchanges'][key] = { 'fee': exchange_info[key]['fee'], 'type': exchange_info[key]['type'], 'futures_leverage_mode': 'cross', 'futures_leverage': 1, 'balance': 10_000 } def set_config(conf: dict) -> None: global config # optimization mode only if jh.is_optimizing(): # objective function if 'objective_function' in conf: config['env']['optimization']['objective_function'] = conf['objective_function'] # warm_up_candles config['env']['data']['warmup_candles_num'] = int(conf['warm_up_candles']) # number of trials per each hyperparameter config['env']['optimization']['trials'] = int(conf['trials']) # best candidates count if 'best_candidates_count' in conf: config['env']['optimization']['best_candidates_count'] = int(conf['best_candidates_count']) # backtest and live if jh.is_backtesting() or jh.is_live(): # warm_up_candles config['env']['data']['warmup_candles_num'] = int(conf['warm_up_candles']) # logs config['env']['logging'] = conf['logging'] # exchanges for key, e in conf['exchanges'].items(): if not jh.is_live() and e['type']: exchange_type = e['type'] else: exchange_type = get_exchange_type(e['name']) config['env']['exchanges'][e['name']] = { 'fee': float(e['fee']), 'type': exchange_type, 'balance': float(e['balance']) } if config['env']['exchanges'][e['name']]['type'] == 'futures': # 1x, 2x, 10x, 50x, etc. Enter as integers config['env']['exchanges'][e['name']]['futures_leverage'] = int(e.get('futures_leverage', 1)) # accepted values are: 'cross' and 'isolated' config['env']['exchanges'][e['name']]['futures_leverage_mode'] = e.get('futures_leverage_mode', 'cross') # live mode only if jh.is_live(): config['env']['notifications'] = conf['notifications'] config['env']['data']['persistency'] = conf['persistency'] config['env']['data']['generate_candles_from_1m'] = conf['generate_candles_from_1m'] # TODO: must become a config value later when we go after multi account support? config['env']['identifier'] = 'main' def reset_config() -> None: global config config = backup_config.copy() backup_config = config.copy() ================================================ FILE: jesse/constants.py ================================================ from jesse.enums import timeframes CANDLE_SOURCE_MAPPING = { "open": lambda c: c[:, 1], "close": lambda c: c[:, 2], "high": lambda c: c[:, 3], "low": lambda c: c[:, 4], "volume": lambda c: c[:, 5], "hl2": lambda c: (c[:, 3] + c[:, 4]) / 2, "hlc3": lambda c: (c[:, 3] + c[:, 4] + c[:, 2]) / 3, "ohlc4": lambda c: (c[:, 1] + c[:, 3] + c[:, 4] + c[:, 2]) / 4, } TIMEFRAME_PRIORITY = [ timeframes.DAY_1, timeframes.HOUR_12, timeframes.HOUR_8, timeframes.HOUR_6, timeframes.HOUR_4, timeframes.HOUR_3, timeframes.HOUR_2, timeframes.HOUR_1, timeframes.MINUTE_45, timeframes.MINUTE_30, timeframes.MINUTE_15, timeframes.MINUTE_5, timeframes.MINUTE_3, timeframes.MINUTE_1, ] TIMEFRAME_TO_ONE_MINUTES = { timeframes.MINUTE_1: 1, timeframes.MINUTE_3: 3, timeframes.MINUTE_5: 5, timeframes.MINUTE_15: 15, timeframes.MINUTE_30: 30, timeframes.MINUTE_45: 45, timeframes.HOUR_1: 60, timeframes.HOUR_2: 60 * 2, timeframes.HOUR_3: 60 * 3, timeframes.HOUR_4: 60 * 4, timeframes.HOUR_6: 60 * 6, timeframes.HOUR_8: 60 * 8, timeframes.HOUR_12: 60 * 12, timeframes.DAY_1: 60 * 24, timeframes.DAY_3: 60 * 24 * 3, timeframes.WEEK_1: 60 * 24 * 7, timeframes.MONTH_1: 60 * 24 * 30, } SUPPORTED_COLORS = { 'black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white', #'gray', } ================================================ FILE: jesse/controllers/__init__.py ================================================ from .exchange_controller import get_exchange_supported_symbols ================================================ FILE: jesse/controllers/auth_controller.py ================================================ from typing import Optional from fastapi import APIRouter, Header, BackgroundTasks from fastapi.responses import JSONResponse import requests from jesse.services.env import ENV_VALUES from jesse.services import auth as authenticator from jesse.services.multiprocessing import process_manager from jesse.services.web import LoginRequestJson import jesse.helpers as jh from jesse.info import JESSE_API2_URL router = APIRouter(prefix="/auth", tags=["Authentication"]) @router.post("/login") def login(json_request: LoginRequestJson): """ Authenticate user with password and return a token """ return authenticator.password_to_token(json_request.password) @router.post("/user-validation") def login(json_request: LoginRequestJson): """ Authenticate user with password and return a token """ return authenticator.user_validation(json_request.password) @router.post("") def auth(json_request: LoginRequestJson): """ Authenticate user with password and return a token """ return authenticator.password_to_token(json_request.password) @router.post("/shutdown") async def shutdown(background_tasks: BackgroundTasks, authorization: Optional[str] = Header(None)): """ Shutdown the application """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() background_tasks.add_task(jh.terminate_app) return JSONResponse({'message': 'Shutting down...'}) @router.post("/jesse-trade-token") async def jesse_trade_token(authorization: Optional[str] = Header(None)): """ Exchange LICENSE_API_TOKEN for jesse.trade bearer token """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() if 'LICENSE_API_TOKEN' not in ENV_VALUES or not ENV_VALUES['LICENSE_API_TOKEN']: return JSONResponse({ 'status': 'error', 'message': 'LICENSE_API_TOKEN not found in .env file' }, status_code=400) license_token = ENV_VALUES['LICENSE_API_TOKEN'] try: response = requests.post( f'{JESSE_API2_URL}/auth/exchange-token', json={'license_api_token': license_token}, timeout=10 ) if response.status_code == 200: data = response.json() return JSONResponse({ 'status': 'success', 'access_token': data.get('access_token'), 'user': data.get('user') }) else: return JSONResponse({ 'status': 'error', 'message': f'Failed to exchange token: {response.text}' }, status_code=response.status_code) except requests.exceptions.RequestException as e: return JSONResponse({ 'status': 'error', 'message': f'Error connecting to jesse.trade: {str(e)}' }, status_code=500) ================================================ FILE: jesse/controllers/backtest_controller.py ================================================ from typing import Optional from fastapi import APIRouter, Header, Query, Body from fastapi.responses import JSONResponse, FileResponse import json from jesse.services import auth as authenticator from jesse.services.multiprocessing import process_manager from jesse.services.web import BacktestRequestJson, CancelRequestJson, UpdateBacktestSessionStateRequestJson, GetBacktestSessionsRequestJson, UpdateBacktestSessionNotesRequestJson import jesse.helpers as jh from jesse.models.BacktestSession import ( get_backtest_sessions as get_sessions, update_backtest_session_state, update_backtest_session_notes, delete_backtest_session, get_backtest_session_by_id as get_backtest_session_by_id_from_db, update_backtest_session_status, purge_backtest_sessions ) from jesse.services.transformers import get_backtest_session, get_backtest_session_for_load_more from jesse.modes.backtest_mode import run as run_backtest from jesse.modes.data_provider import get_backtest_logs, download_backtest_log router = APIRouter(prefix="/backtest", tags=["Backtest"]) @router.post("") def backtest(request_json: BacktestRequestJson, authorization: Optional[str] = Header(None)): """ Start a backtest process """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() jh.validate_cwd() process_manager.add_task( run_backtest, request_json.id, request_json.debug_mode, request_json.config, request_json.exchange, request_json.routes, request_json.data_routes, request_json.start_date, request_json.finish_date, None, request_json.export_chart, request_json.export_tradingview, request_json.export_csv, request_json.export_json, request_json.fast_mode, request_json.benchmark ) return JSONResponse({'message': 'Started backtesting...'}, status_code=202) @router.post("/cancel") def cancel_backtest(request_json: CancelRequestJson, authorization: Optional[str] = Header(None)): """ Cancel a backtest process """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() process_manager.cancel_process(request_json.id) update_backtest_session_status(request_json.id, 'cancelled') return JSONResponse({'message': f'Backtest process with ID of {request_json.id} was requested for termination'}, status_code=202) @router.get("/logs/{session_id}") def get_logs(session_id: str, token: str = Query(...)): """ Get logs as text for a specific session. Similar to download but returns text content instead of file. """ if not authenticator.is_valid_token(token): return authenticator.unauthorized_response() try: content = get_backtest_logs(session_id) if content is None: return JSONResponse({'error': 'Log file not found'}, status_code=404) return JSONResponse({'content': content}, status_code=200) except Exception as e: return JSONResponse({'error': str(e)}, status_code=500) @router.get("/download-log/{session_id}") def download_backtest_log(session_id: str, token: str = Query(...)): """ Download log file for a specific backtest session """ if not authenticator.is_valid_token(token): return authenticator.unauthorized_response() try: return download_backtest_log(session_id) except Exception as e: return JSONResponse({'error': str(e)}, status_code=500) @router.post("/sessions") def get_backtest_sessions(request_json: GetBacktestSessionsRequestJson = Body(default=GetBacktestSessionsRequestJson()), authorization: Optional[str] = Header(None)): """ Get a list of backtest sessions sorted by most recently updated with pagination """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() # Get sessions from the database with pagination and filters sessions = get_sessions( limit=request_json.limit, offset=request_json.offset, title_search=request_json.title_search, status_filter=request_json.status_filter, date_filter=request_json.date_filter ) # Transform the sessions using the transformer transformed_sessions = [get_backtest_session(session) for session in sessions] return JSONResponse({ 'sessions': transformed_sessions, 'count': len(transformed_sessions) }) @router.post("/sessions/{session_id}") def get_backtest_session_by_id(session_id: str, authorization: Optional[str] = Header(None)): """ Get a single backtest session by ID """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() # Get the session from the database session = get_backtest_session_by_id_from_db(session_id) if not session: return JSONResponse({ 'error': f'Session with ID {session_id} not found' }, status_code=404) # Transform the session using the transformer transformed_session = get_backtest_session_for_load_more(session) transformed_session = jh.clean_infinite_values(transformed_session) return JSONResponse({ 'session': transformed_session }) @router.post("/update-state") def update_session_state(request_json: UpdateBacktestSessionStateRequestJson, authorization: Optional[str] = Header(None)): """ Update the state of a backtest session """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() update_backtest_session_state(request_json.id, request_json.state) return JSONResponse({ 'message': 'Backtest session state updated successfully' }) @router.post("/sessions/{session_id}/remove") def remove_backtest_session(session_id: str, authorization: Optional[str] = Header(None)): """ Remove a backtest session from the database """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() session = get_backtest_session_by_id_from_db(session_id) if not session: return JSONResponse({ 'error': f'Session with ID {session_id} not found' }, status_code=404) # Delete the session from the database result = delete_backtest_session(session_id) if not result: return JSONResponse({ 'error': f'Failed to delete session with ID {session_id}' }, status_code=500) return JSONResponse({ 'message': 'Backtest session removed successfully' }) @router.post("/sessions/{session_id}/notes") def update_session_notes(session_id: str, request_json: UpdateBacktestSessionNotesRequestJson, authorization: Optional[str] = Header(None)): """ Update the notes (title, description, strategy_codes) of a backtest session """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() session = get_backtest_session_by_id_from_db(session_id) if not session: return JSONResponse({ 'error': f'Session with ID {session_id} not found' }, status_code=404) update_backtest_session_notes(session_id, request_json.title, request_json.description, request_json.strategy_codes) return JSONResponse({ 'message': 'Backtest session notes updated successfully' }) @router.post("/purge-sessions") def purge_sessions(request_json: dict = Body(...), authorization: Optional[str] = Header(None)): """ Purge backtest sessions older than specified days """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() days_old = request_json.get('days_old', None) deleted_count = purge_backtest_sessions(days_old) return JSONResponse({ 'message': f'Successfully purged {deleted_count} session(s)', 'deleted_count': deleted_count }, status_code=200) @router.post("/sessions/{session_id}/chart-data") def get_backtest_session_chart_data(session_id: str, authorization: Optional[str] = Header(None)): """ Get chart data for a specific backtest session """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() session = get_backtest_session_by_id_from_db(session_id) if not session: return JSONResponse({ 'error': f'Session with ID {session_id} not found' }, status_code=404) chart_data = jh.clean_infinite_values(json.loads(session.chart_data)) if session.chart_data else None return JSONResponse({ 'chart_data': chart_data }) @router.post("/sessions/{session_id}/strategy-code") def get_backtest_session_strategy_codes(session_id: str, authorization: Optional[str] = Header(None)): """ Get strategy codes for a specific backtest session """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() session = get_backtest_session_by_id_from_db(session_id) if not session: return JSONResponse({ 'error': f'Session with ID {session_id} not found' }, status_code=404) return JSONResponse({ 'strategy_code': json.loads(session.strategy_codes) if session.strategy_codes else {} }) ================================================ FILE: jesse/controllers/candles_controller.py ================================================ from typing import Optional from fastapi import APIRouter, Header from starlette.responses import JSONResponse from jesse.repositories import candle_repository from jesse.services import auth as authenticator from jesse.services.multiprocessing import process_manager from jesse.services.web import ImportCandlesRequestJson, CancelRequestJson, GetCandlesRequestJson, DeleteCandlesRequestJson import jesse.helpers as jh router = APIRouter(prefix="/candles", tags=["Candles"]) @router.post("/import") def import_candles(request_json: ImportCandlesRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse: """ Import candles for a specific exchange and symbol """ jh.validate_cwd() if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.modes import import_candles_mode process_manager.add_task( import_candles_mode.run, request_json.id, request_json.exchange, request_json.symbol, request_json.start_date ) return JSONResponse({'message': 'Started importing candles...'}, status_code=202) @router.post("/cancel-import") def cancel_import_candles(request_json: CancelRequestJson, authorization: Optional[str] = Header(None)): """ Cancel an import candles process """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() process_manager.cancel_process(request_json.id) return JSONResponse({'message': f'Candles process with ID of {request_json.id} was requested for termination'}, status_code=202) @router.post("/clear-cache") def clear_candles_database_cache(authorization: Optional[str] = Header(None)): """ Clear the candles database cache """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.services.cache import cache cache.flush() return JSONResponse({ 'status': 'success', 'message': 'Candles database cache cleared successfully', }, status_code=200) @router.post("/get") def get_candles(json_request: GetCandlesRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse: """ Get candles for a specific exchange, symbol, and timeframe """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() jh.validate_cwd() from jesse.modes.data_provider import get_candles as gc arr = gc(json_request.exchange, json_request.symbol, json_request.timeframe) return JSONResponse({ 'id': json_request.id, 'data': arr }, status_code=200) @router.post("/existing") def get_existing_candles(authorization: Optional[str] = Header(None)) -> JSONResponse: """ Get all existing candles in the database """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() try: data = candle_repository.get_existing_candles() return JSONResponse({'data': data}, status_code=200) except Exception as e: return JSONResponse({'error': str(e)}, status_code=500) @router.post("/delete") def delete_candles(json_request: DeleteCandlesRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse: """ Delete candles for a specific exchange and symbol """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() try: candle_repository.delete_candles_from_db(json_request.exchange, json_request.symbol) return JSONResponse({'message': 'Candles deleted successfully'}, status_code=200) except Exception as e: return JSONResponse({'error': str(e)}, status_code=500) ================================================ FILE: jesse/controllers/closed_trade_controller.py ================================================ from typing import Optional from fastapi import APIRouter, Header, Query, Body from fastapi.responses import JSONResponse from jesse.services import auth as authenticator from jesse.repositories import closed_trade_repository from jesse.services.transformers import get_closed_trade_for_list, get_closed_trade_details from jesse.services.web import GetTradesHistoryRequestJson router = APIRouter(prefix="/closed-trades", tags=["Closed Trades"]) @router.get("/list") def get_closed_trades( session_id: str = Query(...), limit: int = Query(10, ge=1, le=1000), authorization: Optional[str] = Header(None) ) -> JSONResponse: if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() try: # Query trades for the session with limit trades = closed_trade_repository.find_by_session_id(session_id, limit=limit) # Transform trades for list view trades_list = [get_closed_trade_for_list(trade) for trade in trades] return JSONResponse({ 'data': trades_list }, status_code=200) except Exception as e: return JSONResponse({ 'error': str(e) }, status_code=500) @router.get("/{trade_id}") def get_closed_trade_by_id(trade_id: str, authorization: Optional[str] = Header(None)) -> JSONResponse: if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() try: # Fetch trade by ID trade = closed_trade_repository.find_by_id(trade_id) if not trade: return JSONResponse({ 'error': 'Trade not found' }, status_code=404) # Transform trade with full details including orders trade_details = get_closed_trade_details(trade) return JSONResponse({ 'data': trade_details }, status_code=200) except Exception as e: return JSONResponse({ 'error': str(e) }, status_code=500) @router.post("/live-history") def get_trades_live_history( request_json: GetTradesHistoryRequestJson = Body(...), authorization: Optional[str] = Header(None) ) -> JSONResponse: if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() try: # Fetch trades with filters trades = closed_trade_repository.find_by_filters( id_search=request_json.id_search, status_filter=request_json.status_filter, symbol_filter=request_json.symbol_filter, date_filter=request_json.date_filter, exchange_filter=request_json.exchange_filter, type_filter=request_json.type_filter, limit=request_json.limit, offset=request_json.offset ) # Transform trades for list view trades_list = [get_closed_trade_for_list(trade) for trade in trades] return JSONResponse({ 'trades': trades_list }, status_code=200) except Exception as e: import traceback import jesse.helpers as jh jh.debug(f"Error fetching trades history: {str(e)}") jh.debug(traceback.format_exc()) return JSONResponse({ 'error': str(e) }, status_code=500) ================================================ FILE: jesse/controllers/config_controller.py ================================================ from typing import Optional from fastapi import APIRouter, Header from fastapi.responses import JSONResponse from jesse.services import auth as authenticator from jesse.services.web import ConfigRequestJson import jesse.helpers as jh router = APIRouter(prefix="/config", tags=["Configuration"]) @router.post("/get") def get_config(json_request: ConfigRequestJson, authorization: Optional[str] = Header(None)): """ Get the current configuration """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.modes.data_provider import get_config as gc return JSONResponse({ 'data': gc(json_request.current_config, has_live=jh.has_live_trade_plugin()) }, status_code=200) @router.post("/update") def update_config(json_request: ConfigRequestJson, authorization: Optional[str] = Header(None)): """ Update the configuration """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.modes.data_provider import update_config as uc uc(json_request.current_config) return JSONResponse({'message': 'Updated configurations successfully'}, status_code=200) ================================================ FILE: jesse/controllers/exchange_controller.py ================================================ from typing import Optional from fastapi import APIRouter, Header from starlette.responses import JSONResponse from jesse.modes.import_candles_mode import CandleExchange from jesse.modes.import_candles_mode.drivers import drivers, driver_names from jesse.services import auth as authenticator from jesse.services.redis import sync_redis from jesse.services.web import ExchangeSupportedSymbolsRequestJson, StoreExchangeApiKeyRequestJson, DeleteExchangeApiKeyRequestJson from jesse.services.env import is_dev_env router = APIRouter(prefix="/exchange", tags=["Exchange"]) @router.post('/supported-symbols') def exchange_supported_symbols(request_json: ExchangeSupportedSymbolsRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse: if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() # if is_dev_env(): # return JSONResponse({ # 'data': [ # 'BTC-USDT', 'ETH-USDT', 'SOL-USDT', 'DOGE-USDT' # ] # }, status_code=200) return get_exchange_supported_symbols(request_json.exchange) @router.get('/api-keys') def get_exchange_api_keys_endpoint(authorization: Optional[str] = Header(None)) -> JSONResponse: if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.modes.exchange_api_keys import get_exchange_api_keys return get_exchange_api_keys() @router.post('/api-keys/store') def store_exchange_api_keys_endpoint(json_request: StoreExchangeApiKeyRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse: if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.modes.exchange_api_keys import store_exchange_api_keys return store_exchange_api_keys( json_request.exchange, json_request.name, json_request.api_key, json_request.api_secret, json_request.additional_fields, json_request.general_notifications_id, json_request.error_notifications_id ) @router.post('/api-keys/delete') def delete_exchange_api_keys_endpoint(json_request: DeleteExchangeApiKeyRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse: if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.modes.exchange_api_keys import delete_exchange_api_keys return delete_exchange_api_keys(json_request.id) def get_exchange_supported_symbols(exchange: str) -> JSONResponse: # first try to get from cache cache_key = f'exchange-symbols:{exchange}' cached_result = sync_redis.get(cache_key) if cached_result is not None: return JSONResponse({ 'data': eval(cached_result) }, status_code=200) arr = [] try: driver: CandleExchange = drivers[exchange]() except KeyError: raise ValueError(f'{exchange} is not a supported exchange. Supported exchanges are: {driver_names}') try: arr = driver.get_available_symbols() # cache successful result for 5 minutes sync_redis.setex(cache_key, 300, str(arr)) except Exception as e: return JSONResponse({ 'error': str(e) }, status_code=500) return JSONResponse({ 'data': arr }, status_code=200) ================================================ FILE: jesse/controllers/file_controller.py ================================================ from fastapi import APIRouter, Query, Header, UploadFile, Form, File from typing import Optional from jesse.services import auth as authenticator from jesse.modes import data_provider from jesse.services.web import ImportApiKeyRequestJson, LoginRequestJson from jesse.services.env import ENV_VALUES import jesse.helpers as jh router = APIRouter(prefix="/download", tags=["Download"]) @router.get("/{mode}/{file_type}/{session_id}") def download(mode: str, file_type: str, session_id: str, token: str = Query(...)): """ Download files such as logs or other generated files. Log files require session_id because there is one log per each session. Except for the optimize mode. """ if not authenticator.is_valid_token(token): return authenticator.unauthorized_response() return data_provider.download_file(mode, file_type, session_id) @router.post("/download-api-keys") def download_api_keys( request_json: LoginRequestJson, authorization: Optional[str] = Header(None) ): """ Download exchange API Keys - requires password verification """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() # Verify password for this sensitive operation if request_json.password != ENV_VALUES['PASSWORD']: return authenticator.unauthorized_response() jh.validate_cwd() return data_provider.download_api_keys() @router.post("/import-api-keys") async def import_api_keys( request_json: ImportApiKeyRequestJson, authorization: Optional[str] = Header(None) ): """ Import exchange API keys from CSV text received in the request body. """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() try: # remove leading/trailing whitespace csv_content = request_json.content.strip() # validate CSV content if not data_provider.validate_csv_content(csv_content): return { 'success': False, 'error': 'Invalid CSV content or potential security threat detected' } # import exchange API keys result = data_provider.import_api_keys_from_csv(csv_content) return result except Exception as e: return { 'success': False, 'error': str(e) } ================================================ FILE: jesse/controllers/live_controller.py ================================================ from typing import Optional from fastapi import APIRouter, Header, Body from fastapi.responses import JSONResponse from jesse.services import auth as authenticator from jesse.services.multiprocessing import process_manager from jesse.services.web import ( LiveRequestJson, LiveCancelRequestJson, GetLogsRequestJson, GetOrdersRequestJson, GetLiveSessionsRequestJson, UpdateLiveSessionNotesRequestJson, UpdateLiveSessionStateRequestJson ) import jesse.helpers as jh from jesse.repositories import live_session_repository from jesse.services import transformers from jesse_live import live_mode from jesse_live.services.data_provider import get_logs as gl, get_orders as go from jesse.enums import live_session_statuses, live_session_modes router = APIRouter(prefix="/live", tags=["Live Trading"]) @router.post("") def live(request_json: LiveRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse: """ Start live trading """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() jh.validate_cwd() trading_mode = live_session_modes.LIVETRADE if request_json.paper_mode is False else live_session_modes.PAPERTRADE live_session_repository.store_live_session( id=request_json.id, status=live_session_statuses.STARTING, session_mode=trading_mode, exchange=request_json.exchange, state={ 'form': { 'debug_mode': request_json.debug_mode, 'paper_mode': request_json.paper_mode, 'exchange': request_json.exchange, 'exchange_api_key_id': request_json.exchange_api_key_id, 'notification_api_key_id': request_json.notification_api_key_id, 'routes': request_json.routes, 'data_routes': request_json.data_routes, } }, ) # execute live session process_manager.add_task( live_mode.run, request_json.id, request_json.debug_mode, request_json.exchange, request_json.exchange_api_key_id, request_json.notification_api_key_id, request_json.config, request_json.routes, request_json.data_routes, trading_mode, ) mode = 'live' if request_json.paper_mode is False else 'paper' return JSONResponse({'message': f"Started {mode} trading..."}, status_code=202) @router.post("/cancel") def cancel_live(request_json: LiveCancelRequestJson, authorization: Optional[str] = Header(None)): """ Cancel live trading """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() process_manager.cancel_process(request_json.id) return JSONResponse({'message': f'Live process with ID of {request_json.id} terminated.'}, status_code=200) @router.post('/logs') def get_logs(json_request: GetLogsRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse: """ Get logs for a live trading session """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() arr = gl(json_request.id, json_request.type, json_request.start_time) return JSONResponse({ 'id': json_request.id, 'data': arr }, status_code=200) @router.post('/orders') def get_orders(json_request: GetOrdersRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse: """ Get orders for a live trading session """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() arr = go(json_request.session_id) return JSONResponse({ 'id': json_request.id, 'data': arr }, status_code=200) @router.post("/sessions") def get_live_sessions( request_json: GetLiveSessionsRequestJson = Body(default=GetLiveSessionsRequestJson()), authorization: Optional[str] = Header(None) ): """ Get a list of live sessions sorted by most recently updated with pagination """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() # Get sessions from the database with pagination and filters sessions = live_session_repository.get_live_sessions( limit=request_json.limit, offset=request_json.offset, title_search=request_json.title_search, status_filter=request_json.status_filter, date_filter=request_json.date_filter, mode_filter=request_json.mode_filter ) # Transform the sessions using the transformer transformed_sessions = [transformers.get_live_session(session) for session in sessions] return JSONResponse({ 'sessions': transformed_sessions, 'count': len(transformed_sessions) }) @router.post("/sessions/{session_id}") def get_live_session_by_id(session_id: str, authorization: Optional[str] = Header(None)): """ Get a single live session by ID """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() # Get the session from the database session = live_session_repository.get_live_session_by_id(session_id) if not session: return JSONResponse({ 'error': f'Session with ID {session_id} not found' }, status_code=404) # Transform the session using the transformer transformed_session = transformers.get_live_session(session) return JSONResponse({ 'session': transformed_session }) @router.post("/sessions/{session_id}/remove") def remove_live_session(session_id: str, authorization: Optional[str] = Header(None)): """ Remove a live session from the database """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() session = live_session_repository.get_live_session_by_id(session_id) if not session: return JSONResponse({ 'error': f'Session with ID {session_id} not found' }, status_code=404) # Delete the session from the database result = live_session_repository.delete_live_session(session_id) if not result: return JSONResponse({ 'error': f'Failed to delete session with ID {session_id}' }, status_code=500) return JSONResponse({ 'message': 'Live session removed successfully' }) @router.post("/sessions/{session_id}/notes") def update_session_notes( session_id: str, request_json: UpdateLiveSessionNotesRequestJson, authorization: Optional[str] = Header(None) ): """ Update the notes (title, description, strategy_codes) of a live session """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() session = live_session_repository.get_live_session_by_id(session_id) if not session: return JSONResponse({ 'error': f'Session with ID {session_id} not found' }, status_code=404) live_session_repository.update_live_session_notes( session_id, request_json.title, request_json.description, request_json.strategy_codes ) return JSONResponse({ 'message': 'Live session notes updated successfully' }) @router.post("/update-state") def update_state(request_json: UpdateLiveSessionStateRequestJson, authorization: Optional[str] = Header(None)): """ Upsert live session state (creates draft if doesn't exist, updates if exists) """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() live_session_repository.upsert_live_session_state(request_json.id, request_json.state) return JSONResponse({ 'message': 'Live session state updated successfully' }, status_code=200) @router.post("/purge-sessions") def purge_sessions(request_json: dict = Body(...), authorization: Optional[str] = Header(None)): """ Purge live sessions older than specified days """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() days_old = request_json.get('days_old', None) deleted_count = live_session_repository.purge_live_sessions(days_old) return JSONResponse({ 'message': f'Successfully purged {deleted_count} session(s)', 'deleted_count': deleted_count }, status_code=200) @router.get("/equity-curve") def get_equity_curve( session_id: str, from_ms: Optional[int] = None, to_ms: Optional[int] = None, timeframe: str = 'auto', max_points: int = 1000, authorization: Optional[str] = Header(None) ) -> JSONResponse: """ Get equity curve for a live session with downsampling """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.repositories import live_equity_repository try: if from_ms is None: session = live_session_repository.get_live_session_by_id(session_id) if session and getattr(session, 'created_at', None): from_ms = session.created_at else: # fallback: last 24h from_ms = jh.now(True) - (24 * 60 * 60 * 1000) result = live_equity_repository.query_equity_curve( session_id=session_id, from_ms=from_ms, to_ms=to_ms, timeframe=timeframe, max_points=max_points ) return JSONResponse(result, status_code=200) except Exception as e: return JSONResponse({ 'message': f'Error fetching equity curve: {str(e)}' }, status_code=500) ================================================ FILE: jesse/controllers/lsp_controller.py ================================================ from typing import Optional from fastapi import APIRouter, Header from fastapi.responses import JSONResponse from jesse.helpers import get_os from jesse.services import auth as authenticator from jesse.services.lsp import LSP_DEFAULT_PORT router = APIRouter(prefix='/lsp-config', tags=['LSP Configuration']) @router.get("") def get_lsp_config(authorization: Optional[str] = Header(None))->JSONResponse: if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.services.env import ENV_VALUES # Check if formatting is available on the current platform # Formatting is only available on non-windows platforms isFormattingAvailable = get_os() != 'windows' return JSONResponse( {'ws_port': ENV_VALUES['LSP_PORT'] if 'LSP_PORT' in ENV_VALUES else LSP_DEFAULT_PORT, 'ws_path':'/lsp', 'is_formatting_available': isFormattingAvailable}, status_code=200) ================================================ FILE: jesse/controllers/monte_carlo_controller.py ================================================ from fastapi import APIRouter, Header, Request from typing import Optional from fastapi.responses import JSONResponse import json from jesse.services import auth as authenticator from jesse.services.multiprocessing import process_manager from jesse.services.web import ( MonteCarloRequestJson, CancelMonteCarloRequestJson, UpdateMonteCarloSessionStateRequestJson, TerminateMonteCarloRequestJson, UpdateMonteCarloSessionNotesRequestJson, GetMonteCarloSessionsRequestJson ) from jesse import helpers as jh from jesse.models.MonteCarloSession import ( get_monte_carlo_sessions, update_monte_carlo_session_state, update_monte_carlo_session_status, delete_monte_carlo_session, get_monte_carlo_session_by_id, update_monte_carlo_session_notes, purge_monte_carlo_sessions, get_running_monte_carlo_session_id ) from jesse.services.transformers import get_monte_carlo_session, get_monte_carlo_session_for_load_more from jesse.modes.monte_carlo_mode import run as run_monte_carlo router = APIRouter(prefix="/monte-carlo", tags=["Monte Carlo"]) @router.post("") async def monte_carlo(request: Request, request_json: MonteCarloRequestJson, authorization: Optional[str] = Header(None)): """ Start a Monte Carlo simulation """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() jh.validate_cwd() # Check Python version before imports if jh.python_version() == (3, 13): return JSONResponse({ 'error': 'Monte Carlo mode is not supported on Python 3.13', 'message': 'The Ray library used for Monte Carlo does not support Python 3.13 yet. Please use Python 3.12 or lower.' }, status_code=500) # Validate at least one type is selected if not request_json.run_trades and not request_json.run_candles: return JSONResponse({ 'error': 'At least one Monte Carlo type must be selected', 'message': 'Please select either Trades, Candles, or both.' }, status_code=400) # Validate routes if not request_json.routes or len(request_json.routes) == 0: return JSONResponse({ 'error': 'At least one route is required', 'message': 'Please add at least one trading route.' }, status_code=400) # Generate unique session ID if not provided session_id = request_json.id or jh.generate_unique_id() # Check if session already exists existing_session = get_monte_carlo_session_by_id(session_id) if existing_session: return JSONResponse({ 'error': f'Monte Carlo session with ID {session_id} already exists', 'message': 'A session with this ID is already running or completed.' }, status_code=409) # Check session existence in monte carlo models from jesse.models.MonteCarloSession import get_monte_carlo_session_by_id as db_get_mc_session_by_id if db_get_mc_session_by_id(session_id): return JSONResponse({ 'error': f'Monte Carlo session with ID {session_id} already exists (in DB)', 'message': 'A session with this ID already exists in the database.' }, status_code=409) process_manager.add_task( run_monte_carlo, session_id, request_json.config, request_json.exchange, request_json.routes, request_json.data_routes, request_json.start_date, request_json.finish_date, request_json.run_trades, request_json.run_candles, request_json.num_scenarios, request_json.fast_mode, request_json.cpu_cores, request_json.pipeline_type, request_json.pipeline_params, request_json.state, ) return JSONResponse({ 'message': 'Started Monte Carlo simulation...', 'session_id': session_id }, status_code=202) @router.post("/cancel") def cancel_monte_carlo(request_json: CancelMonteCarloRequestJson, authorization: Optional[str] = Header(None)): """ Cancel a Monte Carlo simulation """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() process_manager.cancel_process(request_json.id) return JSONResponse( {'message': f'Monte Carlo process with ID of {request_json.id} was requested for termination'}, status_code=202 ) @router.post("/terminate") def terminate_monte_carlo(request_json: TerminateMonteCarloRequestJson, authorization: Optional[str] = Header(None)): """ Terminate a Monte Carlo simulation """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() # First update the status to 'terminated' update_monte_carlo_session_status(request_json.id, 'terminated') # Then request cancellation of the current process process_manager.cancel_process(request_json.id) return JSONResponse( {'message': f'Monte Carlo process with ID of {request_json.id} was terminated'}, status_code=202 ) @router.post("/resume") async def resume_monte_carlo(request_json: MonteCarloRequestJson, authorization: Optional[str] = Header(None)): """ Resume a Monte Carlo simulation """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() jh.validate_cwd() # Check Python version if jh.python_version() == (3, 13): return JSONResponse({ 'error': 'Monte Carlo mode is not supported on Python 3.13', 'message': 'The Ray library used for Monte Carlo does not support Python 3.13 yet. Please use Python 3.12 or lower.' }, status_code=500) # Get the session from the database session = get_monte_carlo_session_by_id(request_json.id) if not session: return JSONResponse({ 'error': f'Session with ID {request_json.id} not found' }, status_code=404) # Transform the session using the transformer transformed_session = get_monte_carlo_session_for_load_more(session) process_manager.add_task( run_monte_carlo, request_json.id, request_json.config, request_json.exchange, request_json.routes, request_json.data_routes, request_json.start_date, request_json.finish_date, request_json.run_trades, request_json.run_candles, request_json.num_scenarios, request_json.fast_mode, request_json.cpu_cores, request_json.pipeline_type, request_json.pipeline_params, request_json.state, ) return JSONResponse({ 'session': transformed_session }) @router.post("/sessions") def get_monte_carlo_sessions_endpoint(request_json: GetMonteCarloSessionsRequestJson = GetMonteCarloSessionsRequestJson(), authorization: Optional[str] = Header(None)): """ Get a list of Monte Carlo sessions sorted by most recently updated with pagination and filters """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() # Get sessions from the database with pagination and filters sessions = get_monte_carlo_sessions( limit=request_json.limit, offset=request_json.offset, title_search=request_json.title_search, status_filter=request_json.status_filter, date_filter=request_json.date_filter ) # Transform the sessions using the transformer transformed_sessions = [get_monte_carlo_session(session) for session in sessions] return JSONResponse({ 'sessions': transformed_sessions, 'count': len(transformed_sessions) }) @router.post("/sessions/{session_id}") def get_monte_carlo_session_by_id_endpoint(session_id: str, authorization: Optional[str] = Header(None)): """ Get a single Monte Carlo session by ID """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() # Get the session from the database session = get_monte_carlo_session_by_id(session_id) if not session: return JSONResponse({ 'error': f'Session with ID {session_id} not found' }, status_code=404) # Transform the session using the transformer transformed_session = get_monte_carlo_session_for_load_more(session) # Ensure JSON-safe values (replace NaN/Inf with None) transformed_session = jh.clean_infinite_values(transformed_session) return JSONResponse({ 'session': transformed_session }) @router.post("/sessions/{session_id}/equity-curves") def get_monte_carlo_equity_curves(session_id: str, authorization: Optional[str] = Header(None)): """ Get equity curve data for a Monte Carlo session """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() session = get_monte_carlo_session_by_id(session_id) if not session: return JSONResponse({ 'error': f'Session with ID {session_id} not found' }, status_code=404) trades_equity_curves = None candles_equity_curves = None # Extract trades equity curves if session.trades_session and session.trades_session.results: results = jh.clean_infinite_values(json.loads(session.trades_session.results)) # Extract original equity curve original_curve = None if results.get('original') and results['original'].get('equity_curve'): for curve in results['original']['equity_curve']: if curve.get('name') == 'Portfolio': original_curve = curve break # Extract all scenario equity curves scenario_curves = [] if results.get('scenarios'): for scenario in results['scenarios']: if scenario.get('equity_curve'): for curve in scenario['equity_curve']: if curve.get('name') == 'Portfolio': scenario_curves.append(curve) break trades_equity_curves = { 'original': original_curve, 'scenarios': scenario_curves } # Extract candles equity curves if session.candles_session and session.candles_session.results: results = jh.clean_infinite_values(json.loads(session.candles_session.results)) # Extract original equity curve original_curve = None if results.get('original') and results['original'].get('equity_curve'): for curve in results['original']['equity_curve']: if curve.get('name') == 'Portfolio': original_curve = curve break # Extract all scenario equity curves scenario_curves = [] if results.get('scenarios'): for scenario in results['scenarios']: if scenario.get('equity_curve'): for curve in scenario['equity_curve']: if curve.get('name') == 'Portfolio': scenario_curves.append(curve) break candles_equity_curves = { 'original': original_curve, 'scenarios': scenario_curves } return JSONResponse({ 'trades': trades_equity_curves, 'candles': candles_equity_curves }) @router.post("/update-state") def update_session_state( request_json: UpdateMonteCarloSessionStateRequestJson, authorization: Optional[str] = Header(None) ): """ Update the state of a Monte Carlo session """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() update_monte_carlo_session_state(request_json.id, request_json.state) return JSONResponse({ 'message': 'Monte Carlo session state updated successfully' }) @router.post("/sessions/{session_id}/remove") def remove_monte_carlo_session(session_id: str, authorization: Optional[str] = Header(None)): """ Remove a Monte Carlo session from the database """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() session = get_monte_carlo_session_by_id(session_id) if not session: return JSONResponse({ 'error': f'Session with ID {session_id} not found' }, status_code=404) # Delete the session from the database result = delete_monte_carlo_session(session_id) if not result: return JSONResponse({ 'error': f'Failed to delete session with ID {session_id}' }, status_code=500) return JSONResponse({ 'message': 'Monte Carlo session removed successfully' }) @router.post("/sessions/{session_id}/notes") def update_session_notes(session_id: str, request_json: UpdateMonteCarloSessionNotesRequestJson, authorization: Optional[str] = Header(None)): """ Update the notes (title, description, strategy_codes) of a Monte Carlo session """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() session = get_monte_carlo_session_by_id(session_id) if not session: return JSONResponse({ 'error': f'Session with ID {session_id} not found' }, status_code=404) update_monte_carlo_session_notes(session_id, request_json.title, request_json.description, request_json.strategy_codes) return JSONResponse({ 'message': 'Monte Carlo session notes updated successfully' }) @router.post("/sessions/{session_id}/strategy-code") def get_session_strategy_code(session_id: str, authorization: Optional[str] = Header(None)): """ Get the strategy code for a Monte Carlo session """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() session = get_monte_carlo_session_by_id(session_id) if not session: return JSONResponse({ 'error': f'Session with ID {session_id} not found' }, status_code=404) return JSONResponse({ 'strategy_code': json.loads(session.strategy_codes) if session.strategy_codes else {} }) @router.post("/sessions/{session_id}/logs") def get_session_logs(session_id: str, authorization: Optional[str] = Header(None)): """ Get the logs for a Monte Carlo session """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.modes import data_provider content = data_provider.get_monte_carlo_logs(session_id) if content is None: return JSONResponse({ 'error': 'Log file not found' }, status_code=404) return JSONResponse({ 'logs': content }) @router.post("/purge-sessions") def purge_sessions(request_json: dict, authorization: Optional[str] = Header(None)): """ Purge Monte Carlo sessions older than specified days """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() days_old = request_json.get('days_old', None) deleted_count = purge_monte_carlo_sessions(days_old) return JSONResponse({ 'message': f'Successfully purged {deleted_count} session(s)', 'deleted_count': deleted_count }, status_code=200) @router.get("/running-session") def get_running_session(authorization: Optional[str] = Header(None)): """ Get the running session """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() return JSONResponse({ 'session_id': get_running_monte_carlo_session_id() }) ================================================ FILE: jesse/controllers/notification_controller.py ================================================ from typing import Optional from fastapi import APIRouter, Header from fastapi.responses import JSONResponse from jesse.services import auth as authenticator from jesse.services.web import StoreNotificationApiKeyRequestJson, DeleteNotificationApiKeyRequestJson router = APIRouter(prefix="/notification", tags=["Notification"]) @router.get("/api-keys") def get_notification_api_keys(authorization: Optional[str] = Header(None)) -> JSONResponse: """ Get all notification API keys """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.modes.notification_api_keys import get_notification_api_keys return get_notification_api_keys() @router.post("/api-keys/store") def store_notification_api_keys( json_request: StoreNotificationApiKeyRequestJson, authorization: Optional[str] = Header(None) ) -> JSONResponse: """ Store a new notification API key """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.modes.notification_api_keys import store_notification_api_keys return store_notification_api_keys( json_request.name, json_request.driver, json_request.fields ) @router.post("/api-keys/delete") def delete_notification_api_keys( json_request: DeleteNotificationApiKeyRequestJson, authorization: Optional[str] = Header(None) ) -> JSONResponse: """ Delete a notification API key """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.modes.notification_api_keys import delete_notification_api_keys return delete_notification_api_keys(json_request.id) ================================================ FILE: jesse/controllers/optimization_controller.py ================================================ from fastapi import APIRouter, Header, Query, Body from typing import Optional, List from fastapi.responses import JSONResponse, FileResponse from pydantic import BaseModel import json from jesse.services import auth as authenticator from jesse.services.multiprocessing import process_manager from jesse.services.web import OptimizationRequestJson, CancelRequestJson, UpdateOptimizationSessionStateRequestJson, UpdateOptimizationSessionStatusRequestJson, TerminateOptimizationRequestJson, UpdateOptimizationSessionNotesRequestJson, GetOptimizationSessionsRequestJson from jesse import helpers as jh from jesse.models.OptimizationSession import get_optimization_sessions as get_sessions, update_optimization_session_state, update_optimization_session_status, delete_optimization_session, reset_optimization_session, update_optimization_session_notes, purge_optimization_sessions, get_running_optimization_session_id from jesse.services.transformers import get_optimization_session, get_optimization_session_for_load_more from jesse.models.OptimizationSession import get_optimization_session_by_id as get_optimization_session_by_id_from_db from jesse.modes.optimize_mode import run as run_optimization router = APIRouter(prefix="/optimization", tags=["Optimization"]) @router.post("") async def optimization(request_json: OptimizationRequestJson, authorization: Optional[str] = Header(None)): """ Start an optimization process """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() jh.validate_cwd() # Check Python version before imports if jh.python_version() == (3, 13): return JSONResponse({ 'error': 'Optimization is not supported on Python 3.13', 'message': 'The Ray library used for optimization does not support Python 3.13 yet. Please use Python 3.12 or lower.' }, status_code=500) # Validate routes if not request_json.routes or len(request_json.routes) == 0: return JSONResponse({ 'error': 'At least one route is required', 'message': 'Please add at least one trading route.' }, status_code=400) # Generate unique session ID if not provided session_id = request_json.id or jh.generate_unique_id() # Check if session already exists existing_session = get_optimization_session_by_id_from_db(session_id) if existing_session: return JSONResponse({ 'error': f'Optimization session with ID {session_id} already exists', 'message': 'A session with this ID is already running or completed.' }, status_code=409) process_manager.add_task( run_optimization, session_id, request_json.config, request_json.exchange, request_json.routes, request_json.data_routes, request_json.training_start_date, request_json.training_finish_date, request_json.testing_start_date, request_json.testing_finish_date, request_json.optimal_total, request_json.fast_mode, request_json.cpu_cores, request_json.state, ) return JSONResponse({ 'message': 'Started optimization...', 'session_id': session_id }, status_code=202) @router.post("/rerun") async def rerun_optimization(request_json: OptimizationRequestJson, authorization: Optional[str] = Header(None)): """ Start an optimization process """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() jh.validate_cwd() # Check Python version before imports if jh.python_version() == (3, 13): return JSONResponse({ 'error': 'Optimization is not supported on Python 3.13', 'message': 'The Ray library used for optimization does not support Python 3.13 yet. Please use Python 3.12 or lower.' }, status_code=500) # Get the session from the database session = get_optimization_session_by_id_from_db(request_json.id) if not session: return JSONResponse({ 'error': f'Session with ID {request_json.id} not found' }, status_code=404) # reset the session reset_optimization_session(request_json.id) process_manager.add_task( run_optimization, request_json.id, request_json.config, request_json.exchange, request_json.routes, request_json.data_routes, request_json.training_start_date, request_json.training_finish_date, request_json.testing_start_date, request_json.testing_finish_date, request_json.optimal_total, request_json.fast_mode, request_json.cpu_cores, request_json.state, ) return JSONResponse({'message': 'Started optimization...'}, status_code=202) @router.post("/cancel") def cancel_optimization(request_json: CancelRequestJson, authorization: Optional[str] = Header(None)): """ Cancel an optimization process """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() process_manager.cancel_process(request_json.id) return JSONResponse({'message': f'Optimization process with ID of {request_json.id} was requested for termination'}, status_code=202) @router.get("/download-log") def download_optimization_log(token: str = Query(...)): """ Download optimization log file """ if not authenticator.is_valid_token(token): return authenticator.unauthorized_response() from jesse.modes import data_provider return data_provider.download_file('optimize', 'log') @router.post("/sessions") def get_optimization_sessions(request_json: GetOptimizationSessionsRequestJson = Body(default=GetOptimizationSessionsRequestJson()), authorization: Optional[str] = Header(None)): """ Get a list of optimization sessions sorted by most recently updated with pagination and filtering """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() # Get sessions from the database with pagination and filters sessions = get_sessions( limit=request_json.limit, offset=request_json.offset, title_search=request_json.title_search, status_filter=request_json.status_filter, date_filter=request_json.date_filter ) # Transform the sessions using the transformer transformed_sessions = [get_optimization_session(session) for session in sessions] return JSONResponse({ 'sessions': transformed_sessions, 'count': len(transformed_sessions) }) @router.post("/sessions/{session_id}") def get_optimization_session_by_id(session_id: str, authorization: Optional[str] = Header(None)): """ Get a single optimization session by ID """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() # Get the session from the database session = get_optimization_session_by_id_from_db(session_id) if not session: return JSONResponse({ 'error': f'Session with ID {session_id} not found' }, status_code=404) # Transform the session using the transformer transformed_session = get_optimization_session_for_load_more(session) return JSONResponse({ 'session': transformed_session }) @router.post("/update-state") def update_session_state(request_json: UpdateOptimizationSessionStateRequestJson, authorization: Optional[str] = Header(None)): """ Update the state of an optimization session """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() update_optimization_session_state(request_json.id, request_json.state) return JSONResponse({ 'message': 'Optimization session state updated successfully' }) @router.post("/terminate") def terminate_optimization(request_json: TerminateOptimizationRequestJson, authorization: Optional[str] = Header(None)): """ Terminate an optimization process """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() # First update the status to 'terminated' update_optimization_session_status(request_json.id, 'terminated') # Then request cancellation of the current process process_manager.cancel_process(request_json.id) return JSONResponse({'message': f'Optimization process with ID of {request_json.id} was terminated'}, status_code=202) @router.post("/resume") async def resume_optimization(request_json: OptimizationRequestJson, authorization: Optional[str] = Header(None)): """ Resume an optimization process """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() jh.validate_cwd() # Check Python version before imports if jh.python_version() == (3, 13): return JSONResponse({ 'error': 'Optimization is not supported on Python 3.13', 'message': 'The Ray library used for optimization does not support Python 3.13 yet. Please use Python 3.12 or lower.' }, status_code=500) # Get the session from the database session = get_optimization_session_by_id_from_db(request_json.id) if not session: return JSONResponse({ 'error': f'Session with ID {request_json.id} not found' }, status_code=404) # Transform the session using the transformer transformed_session = get_optimization_session_for_load_more(session) process_manager.add_task( run_optimization, request_json.id, request_json.config, request_json.exchange, request_json.routes, request_json.data_routes, request_json.training_start_date, request_json.training_finish_date, request_json.testing_start_date, request_json.testing_finish_date, request_json.optimal_total, request_json.fast_mode, request_json.cpu_cores, request_json.state, ) return JSONResponse({ 'session': transformed_session }) @router.post("/sessions/{session_id}/remove") def remove_optimization_session(session_id: str, authorization: Optional[str] = Header(None)): """ Remove an optimization session from the database """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() session = get_optimization_session_by_id_from_db(session_id) if not session: return JSONResponse({ 'error': f'Session with ID {session_id} not found' }, status_code=404) # Delete the session from the database result = delete_optimization_session(session_id) if not result: return JSONResponse({ 'error': f'Failed to delete session with ID {session_id}' }, status_code=500) return JSONResponse({ 'message': 'Optimization session removed successfully' }) @router.post("/sessions/{session_id}/notes") def update_session_notes(session_id: str, request_json: UpdateOptimizationSessionNotesRequestJson, authorization: Optional[str] = Header(None)): """ Update the notes (title, description, strategy_codes) of an optimization session """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() session = get_optimization_session_by_id_from_db(session_id) if not session: return JSONResponse({ 'error': f'Session with ID {session_id} not found' }, status_code=404) update_optimization_session_notes(session_id, request_json.title, request_json.description, request_json.strategy_codes) return JSONResponse({ 'message': 'Optimization session notes updated successfully' }) @router.post("/sessions/{session_id}/get-notes") def get_session_notes(session_id: str, authorization: Optional[str] = Header(None)): """ Get the notes of an optimization session """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() session = get_optimization_session_by_id_from_db(session_id) if not session: return JSONResponse({ 'error': f'Session with ID {session_id} not found' }, status_code=404) return JSONResponse({ 'title': session.title, 'description': session.description, }) @router.post("/sessions/{session_id}/strategy-codes") def get_session_strategy_codes(session_id: str, authorization: Optional[str] = Header(None)): """ Get the strategy codes of an optimization session """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() session = get_optimization_session_by_id_from_db(session_id) if not session: return JSONResponse({ 'error': f'Session with ID {session_id} not found' }, status_code=404) return JSONResponse({ 'strategy_codes': json.loads(session.strategy_codes) if session.strategy_codes else {} }) @router.post("/sessions/{session_id}/logs") def get_session_logs(session_id: str, authorization: Optional[str] = Header(None)): """ Get the logs for an optimization session """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.modes import data_provider content = data_provider.get_optimization_logs(session_id) if content is None: return JSONResponse({ 'error': 'Log file not found' }, status_code=404) return JSONResponse({ 'logs': content }) @router.post("/purge-sessions") def purge_sessions(request_json: dict = Body(...), authorization: Optional[str] = Header(None)): """ Purge optimization sessions older than specified days """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() days_old = request_json.get('days_old', None) deleted_count = purge_optimization_sessions(days_old) return JSONResponse({ 'message': f'Successfully purged {deleted_count} session(s)', 'deleted_count': deleted_count }, status_code=200) @router.get("/running-session") def get_running_session(authorization: Optional[str] = Header(None)): """ Get the running session """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() return JSONResponse({ 'session_id': get_running_optimization_session_id() }) ================================================ FILE: jesse/controllers/order_controller.py ================================================ from typing import Optional from fastapi import APIRouter, Header, Body from fastapi.responses import JSONResponse from jesse.services import auth as authenticator from jesse.repositories import order_repository from jesse.services.transformers import get_order_details from jesse.models.Order import Order from jesse.services.web import GetOrdersHistoryRequestJson router = APIRouter(prefix="/orders", tags=["Orders"]) @router.get("/{order_id}") def get_order_by_id(order_id: str, authorization: Optional[str] = Header(None)) -> JSONResponse: if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() try: # Fetch order by ID order: Order | None = order_repository.find_by_id(order_id) if not order: return JSONResponse({ 'error': 'Order not found' }, status_code=404) # Transform order with details order_details = get_order_details(order) return JSONResponse({ 'data': order_details }, status_code=200) except Exception as e: import traceback import jesse.helpers as jh jh.debug(f"Error fetching order {order_id}: {str(e)}") jh.debug(traceback.format_exc()) return JSONResponse({ 'error': str(e) }, status_code=500) @router.post("/live-history") def get_orders_live_history( request_json: GetOrdersHistoryRequestJson = Body(...), authorization: Optional[str] = Header(None) ) -> JSONResponse: if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() try: # Fetch orders with filters orders = order_repository.find_by_filters( id_search=request_json.id_search, status_filter=request_json.status_filter, symbol_filter=request_json.symbol_filter, date_filter=request_json.date_filter, exchange_filter=request_json.exchange_filter, type_filter=request_json.type_filter, side_filter=request_json.side_filter, limit=request_json.limit, offset=request_json.offset ) # Transform orders using transformer (handles UUID conversion) orders_list = [get_order_details(order) for order in orders] return JSONResponse({ 'orders': orders_list }, status_code=200) except Exception as e: import traceback import jesse.helpers as jh jh.debug(f"Error fetching orders history: {str(e)}") jh.debug(traceback.format_exc()) return JSONResponse({ 'error': str(e) }, status_code=500) ================================================ FILE: jesse/controllers/strategy_controller.py ================================================ from typing import Optional from fastapi import APIRouter, Header, Query from fastapi.responses import JSONResponse import requests import re from jesse.services import auth as authenticator from jesse.services.web import ( NewStrategyRequestJson, GetStrategyRequestJson, SaveStrategyRequestJson, DeleteStrategyRequestJson, ImportStrategyRequestJson ) import jesse.helpers as jh from jesse.info import JESSE_API2_URL router = APIRouter(prefix="/strategy", tags=["Strategy"]) @router.post("/make") def make_strategy(json_request: NewStrategyRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse: """ Create a new strategy """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.services import strategy_handler return strategy_handler.generate(json_request.name) @router.get("/all") def get_strategies(authorization: Optional[str] = Header(None)) -> JSONResponse: """ Get all strategies """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.services import strategy_handler return strategy_handler.get_strategies() @router.post("/get") def get_strategy( json_request: GetStrategyRequestJson, authorization: Optional[str] = Header(None) ) -> JSONResponse: """ Get a specific strategy """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.services import strategy_handler return strategy_handler.get_strategy(json_request.name) @router.post("/save") def save_strategy( json_request: SaveStrategyRequestJson, authorization: Optional[str] = Header(None) ) -> JSONResponse: """ Save a strategy """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.services import strategy_handler return strategy_handler.save_strategy(json_request.name, json_request.content) @router.post("/delete") def delete_strategy( json_request: DeleteStrategyRequestJson, authorization: Optional[str] = Header(None) ) -> JSONResponse: """ Delete a strategy """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.services import strategy_handler return strategy_handler.delete_strategy(json_request.name) @router.get("/index") async def index_jesse_trade_strategies( period: str = Query(...), sort_by: str = Query("Sharpe Ratio"), submitted_after: Optional[str] = Query(None), submitted_before: Optional[str] = Query(None), authorization: Optional[str] = Header(None), jesse_trade_token: Optional[str] = Header(None, alias="X-Jesse-Trade-Token") ) -> JSONResponse: """ Browse strategies from jesse.trade """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() try: headers = {} if jesse_trade_token: headers['Authorization'] = f'Bearer {jesse_trade_token}' params = {'period': period, 'sort_by': sort_by} if submitted_after: params['submitted_after'] = submitted_after if submitted_before: params['submitted_before'] = submitted_before response = requests.get( f'{JESSE_API2_URL}/strategies', params=params, headers=headers, timeout=10 ) if response.status_code == 200: return JSONResponse(response.json()) else: return JSONResponse({ 'status': 'error', 'message': f'Failed to fetch strategies: {response.text}' }, status_code=response.status_code) except requests.exceptions.RequestException as e: return JSONResponse({ 'status': 'error', 'message': f'Error connecting to jesse.trade: {str(e)}' }, status_code=500) @router.get("/periods") async def get_jesse_trade_periods( authorization: Optional[str] = Header(None) ) -> JSONResponse: """ Get available trading periods from jesse.trade """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() try: response = requests.get( f'{JESSE_API2_URL}/strategies/periods', timeout=10 ) if response.status_code == 200: return JSONResponse(response.json()) else: return JSONResponse({ 'status': 'error', 'message': f'Failed to fetch periods: {response.text}' }, status_code=response.status_code) except requests.exceptions.RequestException as e: return JSONResponse({ 'status': 'error', 'message': f'Error connecting to jesse.trade: {str(e)}' }, status_code=500) @router.get("/jesse-trade/{slug}") async def get_jesse_trade_strategy( slug: str, authorization: Optional[str] = Header(None), jesse_trade_token: Optional[str] = Header(None, alias="X-Jesse-Trade-Token") ) -> JSONResponse: """ Get a specific strategy from jesse.trade """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() try: headers = {} if jesse_trade_token: headers['Authorization'] = f'Bearer {jesse_trade_token}' response = requests.get( f'{JESSE_API2_URL}/strategies/{slug}', headers=headers, timeout=10 ) if response.status_code == 200: return JSONResponse(response.json()) else: return JSONResponse({ 'status': 'error', 'message': f'Failed to fetch strategy: {response.text}' }, status_code=response.status_code) except requests.exceptions.RequestException as e: return JSONResponse({ 'status': 'error', 'message': f'Error connecting to jesse.trade: {str(e)}' }, status_code=500) @router.get("/jesse-trade/{slug}/metrics") async def get_jesse_trade_strategy_metrics( slug: str, period: str = Query(...), symbol: str = Query(...), timeframe: str = Query(...), authorization: Optional[str] = Header(None), jesse_trade_token: Optional[str] = Header(None, alias="X-Jesse-Trade-Token") ) -> JSONResponse: """ Get metrics for a specific strategy from jesse.trade """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() try: headers = {} if jesse_trade_token: headers['Authorization'] = f'Bearer {jesse_trade_token}' response = requests.get( f'{JESSE_API2_URL}/strategies/{slug}/metrics', params={'period': period, 'symbol': symbol, 'timeframe': timeframe}, headers=headers, timeout=10 ) if response.status_code == 200: return JSONResponse(response.json()) else: return JSONResponse({ 'status': 'error', 'message': f'Failed to fetch strategy metrics: {response.text}' }, status_code=response.status_code) except requests.exceptions.RequestException as e: return JSONResponse({ 'status': 'error', 'message': f'Error connecting to jesse.trade: {str(e)}' }, status_code=500) @router.post("/import") async def import_strategy( json_request: ImportStrategyRequestJson, authorization: Optional[str] = Header(None), jesse_trade_token: Optional[str] = Header(None, alias="X-Jesse-Trade-Token") ) -> JSONResponse: """ Import a strategy from jesse.trade """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() try: # Fetch the strategy from jesse.trade headers = {} if jesse_trade_token: headers['Authorization'] = f'Bearer {jesse_trade_token}' response = requests.get( f'{JESSE_API2_URL}/strategies/{json_request.slug}', headers=headers, timeout=10 ) if response.status_code != 200: return JSONResponse({ 'status': 'error', 'message': f'Failed to fetch strategy: {response.text}' }, status_code=response.status_code) strategy_data = response.json() # Check if code is available if not strategy_data.get('code'): return JSONResponse({ 'status': 'error', 'message': 'Strategy code not available. You may not have access to this strategy.' }, status_code=403) # Extract the Python class name from the code code = strategy_data.get('code') class_match = re.search(r'class\s+(\w+)', code) if not class_match: return JSONResponse({ 'status': 'error', 'message': 'No Python class definition found in strategy code. Cannot import strategy.' }, status_code=400) class_name = class_match.group(1) # Import the strategy from jesse.services import strategy_handler return strategy_handler.import_strategy( name=class_name, code=code ) except requests.exceptions.RequestException as e: return JSONResponse({ 'status': 'error', 'message': f'Error connecting to jesse.trade: {str(e)}' }, status_code=500) ================================================ FILE: jesse/controllers/system_controller.py ================================================ from typing import Optional from fastapi import APIRouter, Header from fastapi.responses import JSONResponse from jesse.services import auth as authenticator from jesse.services.web import FeedbackRequestJson, ReportExceptionRequestJson, HelpSearchRequestJson from jesse.services.multiprocessing import process_manager import jesse.helpers as jh router = APIRouter(prefix="/system", tags=["System"]) @router.post("/feedback") def feedback(json_request: FeedbackRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse: """ Send feedback to the Jesse team """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.services import jesse_trade return jesse_trade.feedback(json_request.description, json_request.email) @router.post("/report-exception") def report_exception(json_request: ReportExceptionRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse: """ Report an exception to the Jesse team """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.services import jesse_trade return jesse_trade.report_exception( json_request.description, json_request.traceback, json_request.mode, json_request.attach_logs, json_request.session_id, json_request.email, has_live=jh.has_live_trade_plugin() ) @router.post("/general-info") def general_info(authorization: Optional[str] = Header(None)) -> JSONResponse: """ Get general information about the system """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() from jesse.services.general_info import get_general_info try: data = get_general_info(has_live=jh.has_live_trade_plugin()) except Exception as e: jh.error(str(e)) return JSONResponse({ 'error': str(e) }, status_code=500) return JSONResponse( data, status_code=200 ) @router.post("/active-workers") def active_workers(authorization: Optional[str] = Header(None)) -> JSONResponse: """ Get a list of active workers """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() return JSONResponse({ 'data': list(process_manager.active_workers) }, status_code=200) @router.post("/help-search") def help_search(json_request: HelpSearchRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse: """ Proxy endpoint for help center search to avoid CORS issues """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() import requests from jesse.info import JESSE_API_URL from jesse.services.auth import get_access_token try: url = f'{JESSE_API_URL}/help/search?item={json_request.query}' access_token = get_access_token() headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'Accept': 'application/json, text/plain, */*' } if access_token: headers['Authorization'] = f'Bearer {access_token}' res = requests.get(url, headers=headers, timeout=10) if res.status_code == 200: return JSONResponse(res.json(), status_code=200) else: return JSONResponse({ 'error': f'Search request failed with status {res.status_code}' }, status_code=res.status_code) except Exception as e: return JSONResponse({ 'error': str(e) }, status_code=500) ================================================ FILE: jesse/controllers/tabs_controller.py ================================================ from fastapi import APIRouter, Header from pydantic import BaseModel from typing import List, Optional from jesse.repositories import open_tab_repository from jesse.services import auth as authenticator router = APIRouter() class TabsListRequest(BaseModel): module: str class TabsAddRequest(BaseModel): module: str id: str class TabsRemoveRequest(BaseModel): module: str id: str class TabsReorderRequest(BaseModel): module: str ids: List[str] class TabsResponse(BaseModel): ids: List[str] @router.post('/tabs/list', response_model=TabsResponse) async def list_tabs(req: TabsListRequest, authorization: Optional[str] = Header(None)): """ Get ordered list of open tab session IDs for a module """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() session_ids = open_tab_repository.get_open_tab_session_ids(req.module) return TabsResponse(ids=session_ids) @router.post('/tabs/add', response_model=TabsResponse) async def add_tab(req: TabsAddRequest, authorization: Optional[str] = Header(None)): """ Add a new tab (or update if exists). Returns ordered list. For singleton modules, ensures only 1 tab exists. """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() session_ids = open_tab_repository.add_open_tab(req.module, req.id) return TabsResponse(ids=session_ids) @router.post('/tabs/remove', response_model=TabsResponse) async def remove_tab(req: TabsRemoveRequest, authorization: Optional[str] = Header(None)): """ Remove a tab and reorder remaining tabs. Returns ordered list. """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() session_ids = open_tab_repository.remove_open_tab(req.module, req.id) return TabsResponse(ids=session_ids) @router.post('/tabs/reorder', response_model=TabsResponse) async def reorder_tabs(req: TabsReorderRequest, authorization: Optional[str] = Header(None)): """ Reorder tabs to match the provided session_ids list. For singleton modules, ensures only 1 tab exists. """ if not authenticator.is_valid_token(authorization): return authenticator.unauthorized_response() session_ids = open_tab_repository.reorder_open_tabs(req.module, req.ids) return TabsResponse(ids=session_ids) ================================================ FILE: jesse/controllers/websocket_controller.py ================================================ from fastapi import APIRouter, WebSocket, WebSocketDisconnect, Query from starlette.websockets import WebSocket, WebSocketDisconnect from jesse.services import auth as authenticator from jesse.services.ws_manager import ws_manager import jesse.helpers as jh router = APIRouter(tags=["WebSocket"]) @router.websocket("/ws") async def websocket_endpoint(websocket: WebSocket, token: str = Query(...)): from jesse.services.env import ENV_VALUES if not authenticator.is_valid_token(token): return # Use connection manager to handle this websocket connection_id = str(id(websocket)) jh.terminal_debug(f"WebSocket {connection_id} connecting") await ws_manager.connect(websocket) channel_pattern = f"{ENV_VALUES['APP_PORT']}:channel:*" # Start Redis listener if not already started await ws_manager.start_redis_listener(channel_pattern) try: # Keep the connection alive and handle pong responses while True: message = await websocket.receive_text() try: data = jh.json_loads(message) # Handle pong responses for heartbeat if data.get('type') == 'pong': pass except: pass except WebSocketDisconnect: jh.terminal_debug(f"WebSocket {connection_id} disconnected") ws_manager.disconnect(websocket) # Optionally stop Redis listener if no more clients await ws_manager.stop_redis_listener() except Exception as e: jh.terminal_debug(f"WebSocket error: {str(e)}") ws_manager.disconnect(websocket) await ws_manager.stop_redis_listener() ================================================ FILE: jesse/enums/__init__.py ================================================ from dataclasses import dataclass @dataclass class sides: BUY = 'buy' SELL = 'sell' @dataclass class trade_types: LONG = 'long' SHORT = 'short' @dataclass class order_statuses: ACTIVE = 'ACTIVE' CANCELED = 'CANCELED' EXECUTED = 'EXECUTED' PARTIALLY_FILLED = 'PARTIALLY FILLED' QUEUED = 'QUEUED' LIQUIDATED = 'LIQUIDATED' REJECTED = 'REJECTED' @dataclass class timeframes: MINUTE_1 = '1m' MINUTE_3 = '3m' MINUTE_5 = '5m' MINUTE_15 = '15m' MINUTE_30 = '30m' MINUTE_45 = '45m' HOUR_1 = '1h' HOUR_2 = '2h' HOUR_3 = '3h' HOUR_4 = '4h' HOUR_6 = '6h' HOUR_8 = '8h' HOUR_12 = '12h' DAY_1 = '1D' DAY_3 = '3D' WEEK_1 = '1W' MONTH_1 = '1M' @dataclass class colors: GREEN = 'green' YELLOW = 'yellow' RED = 'red' MAGENTA = 'magenta' BLACK = 'black' @dataclass class order_types: MARKET = 'MARKET' LIMIT = 'LIMIT' STOP = 'STOP' FOK = 'FOK' STOP_LIMIT = 'STOP LIMIT' @dataclass class exchanges: SANDBOX = 'Sandbox' COINBASE_SPOT = 'Coinbase Spot' BITFINEX_SPOT = 'Bitfinex Spot' BINANCE_SPOT = 'Binance Spot' BINANCE_US_SPOT = 'Binance US Spot' BINANCE_PERPETUAL_FUTURES = 'Binance Perpetual Futures' BINANCE_PERPETUAL_FUTURES_TESTNET = 'Binance Perpetual Futures Testnet' BYBIT_USDT_PERPETUAL = 'Bybit USDT Perpetual' BYBIT_USDC_PERPETUAL = 'Bybit USDC Perpetual' BYBIT_USDT_PERPETUAL_TESTNET = 'Bybit USDT Perpetual Testnet' BYBIT_USDC_PERPETUAL_TESTNET = 'Bybit USDC Perpetual Testnet' BYBIT_SPOT = 'Bybit Spot' BYBIT_SPOT_TESTNET = 'Bybit Spot Testnet' FTX_PERPETUAL_FUTURES = 'FTX Perpetual Futures' FTX_SPOT = 'FTX Spot' FTX_US_SPOT = 'FTX US Spot' BITGET_SPOT = 'Bitget Spot' BITGET_USDT_PERPETUAL = 'Bitget USDT Perpetual' BITGET_USDT_PERPETUAL_TESTNET = 'Bitget USDT Perpetual Testnet' DYDX_PERPETUAL = "Dydx Perpetual" DYDX_PERPETUAL_TESTNET = "Dydx Perpetual Testnet" APEX_OMNI_PERPETUAL_TESTNET = 'Apex Omni Perpetual Testnet' APEX_OMNI_PERPETUAL = 'Apex Omni Perpetual' GATE_USDT_PERPETUAL = 'Gate USDT Perpetual' GATE_SPOT = 'Gate Spot' HYPERLIQUID_PERPETUAL = 'Hyperliquid Perpetual' HYPERLIQUID_PERPETUAL_TESTNET = 'Hyperliquid Perpetual Testnet' @dataclass class migration_actions: ADD = 'add' DROP = 'drop' RENAME = 'rename' MODIFY_TYPE = 'modify_type' ALLOW_NULL = 'allow_null' DENY_NULL = 'deny_null' ADD_INDEX = 'add_index' DROP_INDEX = 'drop_index' @dataclass class order_submitted_via: STOP_LOSS = 'stop-loss' TAKE_PROFIT = 'take-profit' @dataclass class live_session_statuses: DRAFT = 'draft' STARTING = 'starting' RUNNING = 'running' STOPPED = 'stopped' TERMINATED = 'terminated' @dataclass class live_session_modes: LIVETRADE = 'livetrade' PAPERTRADE = 'papertrade' ================================================ FILE: jesse/exceptions/__init__.py ================================================ class EmptyPosition(Exception): pass class OpenPositionError(Exception): pass class OrderNotAllowed(Exception): pass class ConflictingRules(Exception): pass class InvalidStrategy(Exception): pass class CandleNotFoundInDatabase(Exception): pass class CandleNotFoundInExchange(Exception): pass class SymbolNotFound(Exception): pass class RouteNotFound(Exception): def __init__(self, symbol, timeframe): message = f"Data route is required but missing: symbol='{symbol}', timeframe='{timeframe}'" super().__init__(message) class InvalidRoutes(Exception): pass class ExchangeInMaintenance(Exception): pass class ExchangeNotResponding(Exception): pass class ExchangeRejectedOrder(Exception): pass class ExchangeRejectedLeverageNumber(Exception): pass class ExchangeOrderNotFound(Exception): pass class InvalidShape(Exception): pass class InvalidConfig(Exception): pass class InvalidTimeframe(Exception): pass class InvalidSymbol(Exception): pass class NegativeBalance(Exception): pass class InsufficientMargin(Exception): pass class InsufficientBalance(Exception): pass class Termination(Exception): pass class InvalidExchangeApiKeys(Exception): pass class ExchangeError(Exception): pass class NotSupportedError(Exception): pass class CandlesNotFound(Exception): pass class InvalidDateRange(Exception): pass ================================================ FILE: jesse/exchanges/__init__.py ================================================ from .sandbox.Sandbox import Sandbox ================================================ FILE: jesse/exchanges/exchange.py ================================================ from abc import ABC, abstractmethod from typing import Union from jesse.models.Order import Order class Exchange(ABC): """ The interface that every Exchange driver has to implement """ @abstractmethod def market_order(self, symbol: str, qty: float, current_price: float, side: str, reduce_only: bool) -> Order: pass @abstractmethod def limit_order(self, symbol: str, qty: float, price: float, side: str, reduce_only: bool) -> Order: pass @abstractmethod def stop_order(self, symbol: str, qty: float, price: float, side: str, reduce_only: bool) -> Order: pass @abstractmethod def cancel_all_orders(self, symbol: str) -> None: pass @abstractmethod def cancel_order(self, symbol: str, order_id: str) -> None: pass @abstractmethod def _fetch_precisions(self) -> None: pass ================================================ FILE: jesse/exchanges/sandbox/Sandbox.py ================================================ from jesse.models.Order import Order import jesse.helpers as jh from typing import List from jesse.enums import order_types from jesse.exchanges.exchange import Exchange from jesse.store import store from jesse.services import order_service class Sandbox(Exchange): def __init__(self, name='Sandbox'): super().__init__() self.name = name def market_order(self, symbol: str, qty: float, current_price: float, side: str, reduce_only: bool) -> Order: return order_service.create_order({ 'id': jh.generate_unique_id(), 'symbol': symbol, 'exchange': self.name, 'side': side, 'type': order_types.MARKET, 'reduce_only': reduce_only, 'qty': jh.prepare_qty(qty, side), 'price': current_price, }) def limit_order(self, symbol: str, qty: float, price: float, side: str, reduce_only: bool) -> Order: return order_service.create_order({ 'id': jh.generate_unique_id(), 'symbol': symbol, 'exchange': self.name, 'side': side, 'type': order_types.LIMIT, 'reduce_only': reduce_only, 'qty': jh.prepare_qty(qty, side), 'price': price, }) def stop_order(self, symbol: str, qty: float, price: float, side: str, reduce_only: bool) -> Order: return order_service.create_order({ 'id': jh.generate_unique_id(), 'symbol': symbol, 'exchange': self.name, 'side': side, 'type': order_types.STOP, 'reduce_only': reduce_only, 'qty': jh.prepare_qty(qty, side), 'price': price, }) def cancel_all_orders(self, symbol: str) -> List[Order]: orders: list[Order] = store.orders.get_active_orders(self.name, symbol) canceled_orders: List[Order] = [] for o in orders: order_service.cancel_order(o) canceled_orders.append(o) if not jh.is_unit_testing(): store.orders.storage[f'{self.name}-{symbol}'].clear() return canceled_orders def cancel_order(self, symbol: str, order_id: str) -> None: order = store.orders.get_order_by_id(self.name, symbol, order_id) order_service.cancel_order(order) def _fetch_precisions(self) -> None: pass ================================================ FILE: jesse/exchanges/sandbox/__init__.py ================================================ from .Sandbox import Sandbox ================================================ FILE: jesse/factories/__init__.py ================================================ from .candle_factory import fake_candle from .candle_factory import range_candles from .candle_factory import candles_from_close_prices from .order_factory import fake_order ================================================ FILE: jesse/factories/candle_factory.py ================================================ from random import randint from typing import Union import numpy as np # 2021-01-01T00:00:00+00:00 first_timestamp = 1609459080000 open_price = randint(40, 100) close_price = randint(open_price, 110) if randint(0, 1) else randint( 30, open_price) max_price = max(open_price, close_price) high_price = max_price if randint(0, 1) else randint(max_price, max_price + 10) min_price = min(open_price, close_price) low_price = min_price if randint(0, 1) else randint(min_price, min_price + 10) def range_candles(count: int) -> np.ndarray: """ Generates a range of candles with random values. """ fake_candle(reset=True) arr = np.zeros((count, 6)) for i in range(count): arr[i] = fake_candle() return arr def candles_from_close_prices(prices: Union[list, range]) -> np.ndarray: """ Generates a range of candles from a list of close prices. The first candle has the timestamp of "2021-01-01T00:00:00+00:00" """ fake_candle(reset=True) global first_timestamp arr = [] prev_p = np.nan for p in prices: # first prev_p if np.isnan(prev_p): prev_p = p - 0.5 first_timestamp += 60000 open_p = prev_p close_p = p high_p = max(open_p, close_p) low_p = min(open_p, close_p) vol = randint(0, 200) arr.append([first_timestamp, open_p, close_p, high_p, low_p, vol]) # save prev_p for next candle prev_p = p return np.array(arr) def fake_candle(attributes: dict = None, reset: bool = False) -> np.ndarray: global first_timestamp global open_price global close_price global max_price global high_price global min_price global low_price if reset: first_timestamp = 1609459080000 open_price = randint(40, 100) close_price = randint(open_price, 110) high_price = max(open_price, close_price) low_price = min(open_price, close_price) if attributes is None: attributes = {} first_timestamp += 60000 open_price = close_price close_price += randint(1, 8) high_price = max(open_price, close_price) low_price = min(open_price - 1, close_price) volume = randint(1, 100) timestamp = first_timestamp return np.array([ attributes.get('timestamp', timestamp), attributes.get('open', open_price), attributes.get('close', close_price), attributes.get('high', high_price), attributes.get('low', low_price), attributes.get('volume', volume) ], dtype=np.float64) ================================================ FILE: jesse/factories/order_factory.py ================================================ from random import randint import jesse.helpers as jh from jesse.enums import exchanges, sides, order_types, order_statuses from jesse.models.Order import Order from jesse.services import order_service first_timestamp = 1552309186171 def fake_order(attributes: dict = None) -> Order: """ :param attributes: :return: """ if attributes is None: attributes = {} global first_timestamp first_timestamp += 60000 exchange = exchanges.SANDBOX symbol = 'BTC-USD' side = sides.BUY order_type = order_types.LIMIT price = randint(40, 100) qty = randint(1, 10) status = order_statuses.ACTIVE created_at = first_timestamp return Order({ "id": jh.generate_unique_id(), 'symbol': attributes.get('symbol', symbol), 'exchange': attributes.get('exchange', exchange), 'side': attributes.get('side', side), 'type': attributes.get('type', order_type), 'qty': attributes.get('qty', qty), 'price': attributes.get('price', price), 'status': attributes.get('status', status), 'created_at': attributes.get('created_at', created_at), }) ================================================ FILE: jesse/helpers.py ================================================ import hashlib from datetime import datetime import math import os import gzip import json from functools import lru_cache import random import string import sys import uuid from typing import List, Tuple, Union, Any, Optional from pprint import pprint import arrow import click import numpy as np import base64 from jesse.constants import CANDLE_SOURCE_MAPPING from jesse.constants import TIMEFRAME_PRIORITY from jesse.constants import SUPPORTED_COLORS from jesse.enums import timeframes CACHED_CONFIG = dict() def app_currency() -> str: from jesse.info import exchange_info from jesse.routes import router if router.routes[0].exchange in exchange_info and 'settlement_currency' in exchange_info[router.routes[0].exchange]: return exchange_info[router.routes[0].exchange]['settlement_currency'] else: return quote_asset(router.routes[0].symbol) @lru_cache def app_mode() -> str: from jesse.config import config return config['app']['trading_mode'] def arrow_to_timestamp(arrow_time: arrow.arrow.Arrow) -> int: return arrow_time.int_timestamp * 1000 def base_asset(symbol: str) -> str: return symbol.split('-')[0] def binary_search(arr: list, item) -> int: """ performs a simple binary search on a sorted list :param arr: list :param item: :return: int """ from bisect import bisect_left i = bisect_left(arr, item) if i != len(arr) and arr[i] == item: return i else: return -1 def class_iter(Class): return (value for variable, value in vars(Class).items() if not callable(getattr(Class, variable)) and not variable.startswith("__")) def clean_orderbook_list(arr) -> List[List[float]]: return [[float(i[0]), float(i[1])] for i in arr] def color(msg_text: str, msg_color: str) -> str: if not msg_text: return '' if msg_color in SUPPORTED_COLORS: return click.style(msg_text, fg=msg_color) if msg_color == 'gray': return click.style(msg_text, fg='white') raise ValueError('unsupported color') def convert_number(old_max: float, old_min: float, new_max: float, new_min: float, old_value: float) -> float: """ convert a number from one range (ex 40-119) to another range (ex 0-30) while keeping the ratio. """ # validation if old_value > old_max or old_value < old_min: raise ValueError(f'old_value:{old_value} must be within the range. {old_min}-{old_max}') old_range = (old_max - old_min) new_range = (new_max - new_min) return (((old_value - old_min) * new_range) / old_range) + new_min def dashless_symbol(symbol: str) -> str: return symbol.replace("-", "") def dashy_symbol(symbol: str) -> str: if '-' in symbol: return symbol from jesse.config import config for s in config['app']['considering_symbols']: if dashless_symbol(s) == symbol: return s suffixes = [ 'UST', 'FDUSD', 'TUSD', 'EUT', 'EUR', 'GBP', 'JPY', 'MIM', 'TRY' ] for suffix in suffixes: if symbol.endswith(suffix): return f"{symbol[:-len(suffix)]}-{suffix}" if "USD" in symbol[-4:]: # Only look at the last 4 letters idx = symbol.rfind("USD") return f"{symbol[:idx]}-{symbol[idx:]}" return f"{symbol[:3]}-{symbol[3:]}" def underline_to_dashy_symbol(symbol: str) -> str: return symbol.replace('_', '-') def dashy_to_underline(symbol: str) -> str: return symbol.replace('-', '_') def get_base_asset(symbol: str) -> str: return symbol.split('-')[0] def get_quote_asset(symbol: str) -> str: return symbol.split('-')[1] def date_diff_in_days(date1: arrow.arrow.Arrow, date2: arrow.arrow.Arrow) -> int: if type(date1) is not arrow.arrow.Arrow or type( date2) is not arrow.arrow.Arrow: raise TypeError('dates must be Arrow instances') dif = date2 - date1 return abs(dif.days) def date_to_timestamp(date: str) -> int: """ converts date string into timestamp. "2015-08-01" => 1438387200000 :param date: str :return: int """ return arrow_to_timestamp(arrow.get(date, 'YYYY-MM-DD')) def dna_to_hp(strategy_hp, dna: str): # First, try to decode as Base64 try: import base64 import json # Try to decode the DNA as base64 decoded_bytes = base64.b64decode(dna) # Try to parse as JSON decoded_json = json.loads(decoded_bytes.decode('utf-8')) # If successful, the decoded JSON should be the hyperparameters return decoded_json except (ValueError, base64.binascii.Error, json.JSONDecodeError): # If decoding fails, use the legacy method hp = {} for gene, h in zip(dna, strategy_hp): if h['type'] is int: decoded_gene = int( round( convert_number(119, 40, h['max'], h['min'], ord(gene)) ) ) elif h['type'] is float: decoded_gene = convert_number(119, 40, h['max'], h['min'], ord(gene)) else: raise TypeError('Only int and float types are implemented') hp[h['name']] = decoded_gene return hp def dump_exception() -> None: """ a useful debugging helper """ import traceback print(traceback.format_exc()) terminate_app() def estimate_average_price(order_qty: float, order_price: float, current_qty: float, current_entry_price: float) -> float: """Estimates the new entry price for the position. This is used after having a new order and updating the currently holding position. Arguments: order_qty {float} -- qty of the new order order_price {float} -- price of the new order current_qty {float} -- current(pre-calculation) qty current_entry_price {float} -- current(pre-calculation) entry price Returns: float -- the new/averaged entry price """ return (abs(order_qty) * order_price + abs(current_qty) * current_entry_price) / (abs(order_qty) + abs(current_qty)) def estimate_PNL(qty: float, entry_price: float, exit_price: float, trade_type: str, trading_fee: float = 0) -> float: qty = abs(qty) profit = qty * (exit_price - entry_price) if trade_type == 'short': profit *= -1 fee = trading_fee * qty * (entry_price + exit_price) return profit - fee def estimate_PNL_percentage(qty: float, entry_price: float, exit_price: float, trade_type: str) -> float: qty = abs(qty) profit = qty * (exit_price - entry_price) if trade_type == 'short': profit *= -1 return (profit / (qty * entry_price)) * 100 def file_exists(path: str) -> bool: return os.path.isfile(path) def clear_file(path: str) -> None: with open(path, 'w') as f: f.write('') def make_directory(path: str) -> None: if not os.path.exists(path): os.makedirs(path) def floor_with_precision(num: float, precision: int = 0) -> float: temp = 10 ** precision return math.floor(num * temp) / temp def format_currency(num: float) -> str: return f'{num:,}' def format_price(price: float) -> str: """ Formats the price for logging. - If abs(price) is >= 1, it will be truncated to 2 decimal places. - If abs(price) is < 1, it will be truncated to 5 significant digits. """ if price is None: return "" if price == 0: return "0.00" # to handle scientific notation price_str = f'{price:.20f}' if abs(price) >= 1: if '.' not in price_str: return f"{price:.2f}" integer_part, decimal_part = price_str.split('.') return f"{integer_part}.{decimal_part[:2]}" # For numbers between -1 and 1 # find sign sign = '' if price < 0: sign = '-' price_str = f'{abs(price):.20f}' decimal_part = price_str.split('.')[1] first_non_zero_index = -1 for i, digit in enumerate(decimal_part): if digit != '0': first_non_zero_index = i break # This case should ideally not be hit if price is not 0, but as a safeguard: if first_non_zero_index == -1: return "0.00" # Use 5 significant digits for all values below 1 end_index = first_non_zero_index + 5 formatted_decimal = decimal_part[:end_index] return f"{sign}0.{formatted_decimal}" def generate_unique_id() -> str: return str(uuid.uuid4()) def generate_short_unique_id() -> str: return str(uuid.uuid4())[:22] def get_arrow(timestamp: int) -> arrow.arrow.Arrow: return timestamp_to_arrow(timestamp) def get_candle_source(candles: np.ndarray, source_type: str = "close") -> np.ndarray: """ Returns the candles corresponding to the selected type. """ try: return CANDLE_SOURCE_MAPPING[source_type](candles) except KeyError: raise ValueError(f"Source type '{source_type}' not recognised") def get_config(keys: str, default: Any = None) -> Any: """ Gets keys as a single string separated with "." and returns value. Also accepts a default value so that the app would work even if the required config value is missing from config.py file. Example: get_config('env.logging.order_submission', True) :param keys: str :param default: None :return: """ if not str: raise ValueError('keys string cannot be empty') if is_unit_testing() or keys not in CACHED_CONFIG: if os.environ.get(keys.upper().replace(".", "_").replace(" ", "_")) is not None: CACHED_CONFIG[keys] = os.environ.get(keys.upper().replace(".", "_").replace(" ", "_")) else: from functools import reduce from jesse.config import config CACHED_CONFIG[keys] = reduce(lambda d, k: d.get(k, default) if isinstance(d, dict) else default, keys.split("."), config) return CACHED_CONFIG[keys] def get_store(): from jesse.store import store return store def get_strategy_class(strategy_name: str): from pydoc import locate import os import re if not is_unit_testing(): strategy_class = locate(f'strategies.{strategy_name}.{strategy_name}') if strategy_class is None: # Try to find any class that inherits from Strategy in the module module = locate(f'strategies.{strategy_name}') if module: strategy_file = os.path.join('strategies', strategy_name, '__init__.py') if os.path.exists(strategy_file): with open(strategy_file, 'r') as f: content = f.read() # Find the class definition class_pattern = r'class\s+(\w+)' match = re.search(class_pattern, content) if match: old_class_name = match.group(1) if old_class_name != strategy_name: # Replace the class name in the file new_content = re.sub(f'class {old_class_name}', f'class {strategy_name}', content) with open(strategy_file, 'w') as f: f.write(new_content) # Reload the module to get the updated class import importlib module_path = f'strategies.{strategy_name}' if module_path in sys.modules: del sys.modules[module_path] strategy_class = locate(f'strategies.{strategy_name}.{strategy_name}') return strategy_class for attr_name in dir(module): attr = getattr(module, attr_name) if isinstance(attr, type) and attr.__module__ == f'strategies.{strategy_name}': # Create a new class with the correct name as fallback strategy_class = type(strategy_name, (attr,), {}) break return strategy_class path = sys.path[0] # live plugin if path.endswith('jesse-live'): strategy_dir = f'tests.strategies.{strategy_name}.{strategy_name}' # main framework else: strategy_dir = f'jesse.strategies.{strategy_name}.{strategy_name}' return locate(strategy_dir) def insecure_hash(msg: str) -> str: return hashlib.md5(msg.encode()).hexdigest() def insert_list(index: int, item, arr: list) -> list: """ helper to insert an item in a Python List without removing the item """ if index == -1: return arr + [item] return arr[:index] + [item] + arr[index:] def is_backtesting() -> bool: from jesse.config import config return config['app']['trading_mode'] == 'backtest' def is_debuggable(debug_item) -> bool: from jesse.config import config try: return is_debugging() and config['env']['logging'][debug_item] except KeyError: return True def is_debugging() -> bool: from jesse.config import config return config['app']['debug_mode'] def is_importing_candles() -> bool: from jesse.config import config return config['app']['trading_mode'] == 'candles' @lru_cache def is_live() -> bool: return is_livetrading() or is_paper_trading() @lru_cache def is_livetrading() -> bool: from jesse.config import config return config['app']['trading_mode'] == 'livetrade' @lru_cache def is_optimizing() -> bool: from jesse.config import config return config['app']['trading_mode'] == 'optimize' @lru_cache def is_paper_trading() -> bool: from jesse.config import config return config['app']['trading_mode'] == 'papertrade' def is_unit_testing() -> bool: """Returns True if the code is running by running pytest or PyCharm's test runner, False otherwise.""" # Check if the PYTEST_CURRENT_TEST environment variable is set. if os.environ.get("PYTEST_CURRENT_TEST"): return True # Check if the code is being executed from the pytest command-line tool. script_name = os.path.basename(sys.argv[0]) if script_name in ["pytest", "py.test"]: return True # Otherwise, the code is not running by running pytest or PyCharm's test runner. return False def is_valid_uuid(uuid_to_test: str, version: int = 4) -> bool: try: uuid_obj = uuid.UUID(uuid_to_test, version=version) except ValueError: return False return str(uuid_obj) == uuid_to_test def key(exchange: str, symbol: str, timeframe: str = None): if timeframe is None: return f'{exchange}-{symbol}' return f'{exchange}-{symbol}-{timeframe}' def max_timeframe(timeframes_list: list) -> str: times = set(timeframes_list) for tf in TIMEFRAME_PRIORITY: if tf in times: return tf return timeframes.MINUTE_1 def normalize(x: float, x_min: float, x_max: float) -> float: """ Rescaling data to have values between 0 and 1 """ return (x - x_min) / (x_max - x_min) def now(force_fresh=False) -> int: """ Always returns the current time in milliseconds but rounds time in matter of seconds """ return int(now_to_timestamp(force_fresh)) def now_to_timestamp(force_fresh=False) -> int: if not force_fresh and (not (is_live() or is_importing_candles())): from jesse.store import store return store.app.time return arrow.utcnow().int_timestamp * 1000 # for use with peewee def now_to_datetime(): return arrow.utcnow().datetime def current_1m_candle_timestamp(): return arrow.utcnow().floor('minute').int_timestamp * 1000 def np_ffill(arr: np.ndarray, axis: int = 0) -> np.ndarray: idx_shape = tuple([slice(None)] + [np.newaxis] * (len(arr.shape) - axis - 1)) idx = np.where(~np.isnan(arr), np.arange(arr.shape[axis])[idx_shape], 0) np.maximum.accumulate(idx, axis=axis, out=idx) slc = [ np.arange(k)[ tuple( slice(None) if dim == i else np.newaxis for dim in range(len(arr.shape)) ) ] for i, k in enumerate(arr.shape) ] slc[axis] = idx return arr[tuple(slc)] def np_shift(arr: np.ndarray, num: int, fill_value=0) -> np.ndarray: result = np.empty_like(arr) if num > 0: result[:num] = fill_value result[num:] = arr[:-num] elif num < 0: result[num:] = fill_value result[:num] = arr[-num:] else: result[:] = arr return result @lru_cache def opposite_side(s: str) -> str: from jesse.enums import sides if s == sides.BUY: return sides.SELL elif s == sides.SELL: return sides.BUY else: raise ValueError(f'{s} is not a valid input for side') @lru_cache def opposite_type(t: str) -> str: from jesse.enums import trade_types if t == trade_types.LONG: return trade_types.SHORT if t == trade_types.SHORT: return trade_types.LONG raise ValueError('unsupported type') def orderbook_insertion_index_search(arr, target: int, ascending: bool = True) -> Tuple[bool, int]: target = target[0] lower = 0 upper = len(arr) while lower < upper: x = lower + (upper - lower) // 2 val = arr[x][0] if ascending: if target == val: return True, x elif target > val: if lower == x: return False, lower + 1 lower = x elif target < val: if lower == x: return False, lower upper = x elif target == val: return True, x elif target < val: if lower == x: return False, lower + 1 lower = x elif target > val: if lower == x: return False, lower upper = x def orderbook_trim_price(p: float, ascending: bool, unit: float) -> float: if ascending: trimmed = np.ceil(p / unit) * unit if math.log10(unit) < 0: trimmed = round(trimmed, abs(int(math.log10(unit)))) return p if trimmed == p + unit else trimmed trimmed = np.ceil(p / unit) * unit - unit if math.log10(unit) < 0: trimmed = round(trimmed, abs(int(math.log10(unit)))) return p if trimmed == p - unit else trimmed def prepare_qty(qty: float, side: str) -> float: if side.lower() in ('sell', 'short'): return -abs(qty) elif side.lower() in ('buy', 'long'): return abs(qty) elif side.lower() == 'close': return 0.0 else: raise ValueError(f'{side} is not a valid input') def python_version() -> tuple: return sys.version_info[:2] def quote_asset(symbol: str) -> str: try: return symbol.split('-')[1] except IndexError: from jesse.exceptions import InvalidRoutes raise InvalidRoutes(f"The symbol format is incorrect. Correct example: 'BTC-USDT'. Yours is '{symbol}'") def random_str(num_characters: int = 8) -> str: return ''.join(random.choice(string.ascii_letters) for _ in range(num_characters)) def readable_duration(seconds: int, granularity: int = 2) -> str: intervals = ( ('weeks', 604800), # 60 * 60 * 24 * 7 ('days', 86400), # 60 * 60 * 24 ('hours', 3600), # 60 * 60 ('minutes', 60), ('seconds', 1), ) result = [] seconds = int(seconds) for name, count in intervals: value = seconds // count if value: seconds -= value * count if value == 1: name = name.rstrip('s') result.append(f"{value} {name}") return ', '.join(result[:granularity]) def relative_to_absolute(path: str) -> str: return os.path.abspath(path) def round_or_none(x: Union[float, None], digits: int = 0) -> Optional[float]: """ Rounds a number to a certain number of digits or returns None if the number is None """ if x is None: return None return round(x, digits) def round_price_for_live_mode(price, precision: int) -> Union[float, np.ndarray]: """ Rounds price(s) based on exchange requirements :param price: float :param precision: int :return: float | nd.array """ return np.round(price, precision) def round_qty_for_live_mode(roundable_qty: float, precision: int) -> Union[float, np.ndarray]: """ Rounds qty(s) based on exchange requirements :param roundable_qty: float | nd.array :param precision: int :return: float | nd.array """ input_type = type(roundable_qty) # if roundable_qty is a scalar, convert to nd.array if not isinstance(roundable_qty, np.ndarray): roundable_qty = np.array([roundable_qty]) # for qty rounding down is important to prevent InsufficenMargin rounded = round_decimals_down(roundable_qty, precision) for index, q in enumerate(rounded): # if the rounded value is 0, make it the minimum possible value if q == 0.0: # if the precision is bigger or equal 0, (for numbers like 2, 0.2, 0.02) if precision >= 0: rounded[index] = 1 / 10 ** precision else: # for numbers like 20, 200, 2000 raise ValueError('qty is too small') if input_type in [float, np.float64]: return float(rounded[0]) return rounded def round_decimals_down(number: Union[np.ndarray, float], decimals: int = 2) -> float: """ Returns a value rounded down to a specific number of decimal places. """ if not isinstance(decimals, int): raise TypeError("decimal places must be an integer") elif decimals == 0: return np.floor(number) elif decimals > 0: factor = 10 ** decimals return np.floor(number * factor) / factor elif decimals < 0: # for example, for decimals = -2, we want to round down to the nearest 100 if the number is 1234, we want to return 1200: factor = 10 ** (decimals * -1) return np.floor(number / factor) * factor def is_almost_equal(a: float, b: float, tolerance: float = 1e-8) -> bool: """ Compares two floating point values with a small tolerance to account for floating point precision issues. :param a: First float value to compare :param b: Second float value to compare :param tolerance: The tolerance level for the comparison (default: 1e-8) :return: bool - True if the difference between a and b is less than or equal to the tolerance """ # Check if both are None, which means they're equal if a is None and b is None: return True # Check if only one is None, which means they're not equal if a is None or b is None: return False # Check for exact equality first (optimizes for common case) if a == b: return True # For values very close to zero, use absolute tolerance if abs(a) < tolerance and abs(b) < tolerance: return abs(a - b) <= tolerance # For non-zero values, use relative tolerance return abs((a - b) / max(abs(a), abs(b))) <= tolerance def same_length(bigger: np.ndarray, shorter: np.ndarray) -> np.ndarray: return np.concatenate((np.full((bigger.shape[0] - shorter.shape[0]), np.nan), shorter)) def secure_hash(msg: str) -> str: return hashlib.sha256(msg.encode()).hexdigest() def should_execute_silently() -> bool: return is_optimizing() or is_unit_testing() @lru_cache def side_to_type(s: str) -> str: from jesse.enums import trade_types, sides # make sure string is lowercase s = s.lower() if s == sides.BUY: return trade_types.LONG if s == sides.SELL: return trade_types.SHORT raise ValueError def string_after_character(s: str, character: str) -> str: try: return s.split(character, 1)[1] except IndexError: return None def slice_candles(candles: np.ndarray, sequential: bool) -> np.ndarray: warmup_candles_num = get_config('env.data.warmup_candles_num', 240) if not sequential and candles.shape[0] > warmup_candles_num: candles = candles[-warmup_candles_num:] return candles def style(msg_text: str, msg_style: str) -> str: if msg_style is None: return msg_text if msg_style.lower() in ['bold', 'b']: return click.style(msg_text, bold=True) if msg_style.lower() in ['underline', 'u']: return click.style(msg_text, underline=True) raise ValueError('unsupported style') def terminate_app() -> None: # close the database from jesse.services.db import database database.close_connection() # disconnect python from the OS os._exit(1) def error(msg: str, force_print: bool = False) -> None: # send notifications if it's a live session if is_live(): from jesse.services import logger logger.error(msg) if force_print: _print_error(msg) else: _print_error(msg) def _print_error(msg: str) -> None: print('\n') print(color('========== critical error =========='.upper(), 'red')) print(color(msg, 'red')) print(color('====================================', 'red')) def timestamp_to_arrow(timestamp: int) -> arrow.arrow.Arrow: return arrow.get(timestamp / 1000) def timestamp_to_date(timestamp: int) -> str: return str(arrow.get(timestamp / 1000))[:10] def timestamp_to_time(timestamp: int) -> str: return str(arrow.get(timestamp / 1000)) def timestamp_to_iso8601(timestamp: int) -> str: # example: 1609804800000 => '2021-01-05T00:00:00.000Z' return arrow.get(timestamp / 1000).isoformat() def iso8601_to_timestamp(iso8601: str) -> int: # example: '2021-01-05T00:00:00.000Z' -> 1609740800000 return int(arrow.get(iso8601, 'YYYY-MM-DDTHH:mm:ss.SSSZ').datetime.timestamp()) * 1000 def today_to_timestamp() -> int: """ returns today's (beginning) timestamp :return: int """ return arrow.utcnow().floor('day').int_timestamp * 1000 @lru_cache def type_to_side(t: str) -> str: from jesse.enums import trade_types, sides if t == trade_types.LONG: return sides.BUY if t == trade_types.SHORT: return sides.SELL raise ValueError(f'unsupported type: "{t}". Only "long" and "short" are supported.') def unique_list(arr) -> list: """ returns a unique version of the list while keeping its order :param arr: list | tuple :return: list """ seen = set() seen_add = seen.add return [x for x in arr if not (x in seen or seen_add(x))] def closing_side(position_type: str) -> str: if position_type.lower() == 'long': return 'sell' elif position_type.lower() == 'short': return 'buy' else: raise ValueError(f'Value entered for position_type ({position_type}) is not valid') def merge_dicts(d1: dict, d2: dict) -> dict: """ Merges nested dictionaries :param d1: dict :param d2: dict :return: dict """ def inner(dict1, dict2): for k in set(dict1.keys()).union(dict2.keys()): if k in dict1 and k in dict2: if isinstance(dict1[k], dict) and isinstance(dict2[k], dict): yield k, dict(merge_dicts(dict1[k], dict2[k])) else: yield k, dict2[k] elif k in dict1: yield k, dict1[k] else: yield k, dict2[k] return dict(inner(d1, d2)) def computer_name(): import platform return platform.node() def validate_response(response): if response.status_code != 200: err_msg = f"[{response.status_code}]: {response.json()['message']}\nPlease contact us at support@jesse.trade if this is unexpected." if response.status_code not in [401, 403]: raise ConnectionError(err_msg) error(err_msg, force_print=True) terminate_app() def get_session_id(): from jesse.store import store if store.app.session_id == '': store.app.session_id = generate_unique_id() return store.app.session_id def get_pid(): return os.getpid() def is_jesse_project(): ls = os.listdir('.') return 'strategies' in ls and 'storage' in ls def dd(item): """ Dump and Die but pretty: used for debugging when developing Jesse """ dump(item) terminate_app() def dump(*item): """ Dump object in pretty format: used for debugging when developing Jesse """ if len(item) == 1: item = item[0] print( color('\n========= Debugging Value =========='.upper(), 'yellow') ) pprint(item) print( color('====================================\n', 'yellow') ) def debug(*item): """ Used for debugging when developing Jesse. Prints the item in pretty format in both the terminal and the log file. """ if len(item) == 1: dump(f"==> {item[0]}") else: dump(f"==> {', '.join(str(x) for x in item)}") from jesse.services import logger if len(item) == 1: logger.info(f"==> {item[0]}") else: logger.info(f"==> {', '.join(str(x) for x in item)}") def terminal_debug(*item): """ Used for debugging when developing Jesse. Prints the item with timestamp in the terminal only (not logged to file). Uses local timezone. """ timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S') if len(item) == 1: dump(f"[{timestamp}] ==> {item[0]}") else: dump(f"[{timestamp}] ==> {', '.join(str(x) for x in item)}") def float_or_none(item): """ Return the float of the value if it's not None """ if item is None or item == '': return None else: return float(item) def str_or_none(item, encoding='utf-8'): """ Return the str of the value if it's not None """ if item is None: return None else: # return item if it's str, if not, decode it using encoding if isinstance(item, str): return item if isinstance(item, np.float64): return str(item) try: return str(item, encoding) except TypeError: return str(item) def cpu_cores_count(): from multiprocessing import cpu_count return cpu_count() # a function that converts name to env_name. Example: 'Testnet Binance Futures' into 'TESTNET_BINANCE_FUTURES' def convert_to_env_name(name: str) -> str: return name.replace(' ', '_').upper() def is_notebook(): try: shell = get_ipython().__class__.__name__ # Jupyter notebook or qtconsole if shell == 'ZMQInteractiveShell': return True elif shell == 'TerminalInteractiveShell': # Terminal running IPython return False else: # Other type (?) return False except NameError: # Probably standard Python interpreter return False def get_os() -> str: import platform if platform.system() == 'Darwin': return 'mac' elif platform.system() == 'Linux': return 'linux' elif platform.system() == 'Windows': return 'windows' else: raise NotImplementedError(f'Unsupported OS: "{platform.system()}"') # a function that returns boolean whether or not the code is being executed inside a docker container def is_docker() -> bool: import os return os.path.exists('/.dockerenv') def clear_output(): if is_notebook(): from IPython.display import clear_output clear_output(wait=True) else: click.clear() def clean_nan_values(obj): """ Recursively clean NaN values from data structures by replacing them with None. :param obj: The object to clean (can be dict, list, or primitive) :return: The cleaned object with NaN values replaced """ import math import numpy as np if isinstance(obj, dict): return {k: clean_nan_values(v) for k, v in obj.items()} elif isinstance(obj, list): return [clean_nan_values(item) for item in obj] elif isinstance(obj, bool): # bool is a subclass of int in Python; keep it as boolean return obj elif isinstance(obj, (float, np.floating)): # Replace NaN with None if math.isnan(float(obj)): return None return float(obj) elif isinstance(obj, (int, np.integer)): # Keep integers as-is (cast NumPy integers to native int) return int(obj) else: return obj def clean_infinite_values(obj): """ Recursively clean infinite values (inf, -inf) from data structures by replacing them with None or 0 :param obj: The object to clean (can be dict, list, or primitive) :return: The cleaned object with infinite values replaced """ import math if isinstance(obj, dict): return {k: clean_infinite_values(v) for k, v in obj.items()} elif isinstance(obj, list): return [clean_infinite_values(item) for item in obj] elif isinstance(obj, float): if math.isinf(obj): return None return obj else: return obj def get_class_name(cls): # if it's a string, return it if isinstance(cls, str): return cls # else, return the class name return cls.__name__ def next_candle_timestamp(candle: np.ndarray, timeframe: str) -> int: return candle[0] + timeframe_to_one_minutes(timeframe) * 60_000 def get_candle_start_timestamp_based_on_timeframe(timeframe: str, num_candles_to_fetch: int) -> int: one_min_count = timeframe_to_one_minutes(timeframe) finish_date = now(force_fresh=True) return finish_date - (num_candles_to_fetch * one_min_count * 60_000) def is_price_near(order_price, price_to_compare, percentage_threshold=0.00015): """ Check if the given order price is near the specified price. Default percentage_threshold is 0.015% (0.00015) We calculate percentage difference between the two prices rounded to 4 decimal places, so low-priced orders can be properly compared within 0.015% range. """ return abs(1 - (order_price / price_to_compare)) <= percentage_threshold def gzip_compress(data): """Compress data using gzip.""" json_data = json.dumps(data).encode('utf-8') # Compress the JSON string return gzip.compress(json_data) def timeframe_to_one_minutes(timeframe: str) -> int: from jesse.utils import timeframe_to_one_minutes return timeframe_to_one_minutes(timeframe) def compressed_response(content: str) -> dict: """ Helper function to handle compression for HTTP responses. Returns a dict with compression info and content. :param content: string content to potentially compress :return: dict with is_compressed flag and content """ # check if content is large enough to warrant compression compressed = gzip_compress(content) # encode as base64 string for safe transmission return { 'is_compressed': True, 'data': base64.b64encode(compressed).decode('utf-8') } def validate_cwd() -> None: """ make sure we're in a Jesse project """ if not is_jesse_project(): print( color( 'Current directory is not a Jesse project. You must run commands from the root of a Jesse project. Read this page for more info: https://docs.jesse.trade/docs/getting-started/#create-a-new-jesse-project', 'red' ) ) os._exit(1) def has_live_trade_plugin() -> bool: try: import jesse_live except ModuleNotFoundError: return False return True def normalize_bool(v: Any) -> bool: if isinstance(v, bool): return v if isinstance(v, int): return v == 1 if isinstance(v, str): s = v.strip().lower() if s in ['1', 'true']: return True if s in ['0', 'false']: return False return bool(v) ================================================ FILE: jesse/indicators/__init__.py ================================================ from .acosc import acosc from .ad import ad from .adosc import adosc from .adx import adx from .adxr import adxr from .alligator import alligator from .alma import alma from .ao import ao from .apo import apo from .aroon import aroon from .aroonosc import aroonosc from .atr import atr from .avgprice import avgprice from .bandpass import bandpass from .beta import beta from .bollinger_bands import bollinger_bands from .bollinger_bands_width import bollinger_bands_width from .bop import bop from .cc import cc from .cci import cci from .cfo import cfo from .cg import cg from .chande import chande from .chop import chop from .cksp import cksp from .cmo import cmo from .correl import correl from .correlation_cycle import correlation_cycle from .cvi import cvi from .cwma import cwma from .damiani_volatmeter import damiani_volatmeter from .dec_osc import dec_osc from .decycler import decycler from .dema import dema from .devstop import devstop from .di import di from .dm import dm from .donchian import donchian from .dpo import dpo from .dti import dti from .dx import dx from .edcf import edcf from .efi import efi from .ema import ema from .emd import emd from .emv import emv from .epma import epma from .er import er from .eri import eri from .fisher import fisher from .fosc import fosc from .frama import frama from .fwma import fwma from .gatorosc import gatorosc from .gauss import gauss from .heikin_ashi_candles import heikin_ashi_candles from .high_pass import high_pass from .high_pass_2_pole import high_pass_2_pole from .hma import hma from .hurst_exponent import hurst_exponent from .hwma import hwma from .ichimoku_cloud import ichimoku_cloud from .ichimoku_cloud_seq import ichimoku_cloud_seq from .ift_rsi import ift_rsi from .itrend import itrend from .jma import jma from .jsa import jsa from .kama import kama from .kaufmanstop import kaufmanstop from .kdj import kdj from .keltner import keltner from .kst import kst from .kurtosis import kurtosis from .kvo import kvo from .linearreg import linearreg from .linearreg_angle import linearreg_angle from .linearreg_intercept import linearreg_intercept from .linearreg_slope import linearreg_slope from .lrsi import lrsi from .ma import ma from .maaq import maaq from .mab import mab from .macd import macd from .mama import mama from .marketfi import marketfi from .mass import mass from .mcginley_dynamic import mcginley_dynamic from .mean_ad import mean_ad from .median_ad import median_ad from .medprice import medprice from .mfi import mfi from .midpoint import midpoint from .midprice import midprice from .minmax import minmax from .mom import mom from .mwdx import mwdx from .natr import natr from .nma import nma from .nvi import nvi from .obv import obv from .pfe import pfe from .pivot import pivot from .pma import pma from .ppo import ppo from .pvi import pvi from .pwma import pwma from .qstick import qstick from .reflex import reflex from .rma import rma from .roc import roc from .rocp import rocp from .rocr import rocr from .rocr100 import rocr100 from .roofing import roofing from .rsi import rsi from .rsmk import rsmk from .rsx import rsx from .rvi import rvi from .safezonestop import safezonestop from .sar import sar from .sinwma import sinwma from .skew import skew from .sma import sma from .smma import smma from .sqwma import sqwma from .srsi import srsi from .srwma import srwma from .stc import stc from .stddev import stddev from .stochastic import stoch from .stochf import stochf from .supersmoother import supersmoother from .supersmoother_3_pole import supersmoother_3_pole from .supertrend import supertrend from .swma import swma from .t3 import t3 from .tema import tema from .trange import trange from .trendflex import trendflex from .trima import trima from .trix import trix from .tsf import tsf from .tsi import tsi from .ttm_trend import ttm_trend from .typprice import typprice from .ui import ui from .ultosc import ultosc from .var import var from .vi import vi from .vidya import vidya from .vlma import vlma from .vosc import vosc from .voss import voss from .vpci import vpci from .vpt import vpt from .vpwma import vpwma from .vwap import vwap from .vwma import vwma from .vwmacd import vwmacd from .wad import wad from .wclprice import wclprice from .wilders import wilders from .willr import willr from .wma import wma from .wt import wt from .zlema import zlema from .zscore import zscore from .waddah_attr_explosion import waddah_attar_explosion from .stiffness import stiffness from .ttm_squeeze import ttm_squeeze from .support_resistance_with_break import support_resistance_with_breaks from .squeeze_momentum import squeeze_momentum from .hull_suit import hull_suit from .volume import volume ================================================ FILE: jesse/indicators/acosc.py ================================================ from collections import namedtuple import numpy as np from jesse.helpers import slice_candles AC = namedtuple('AC', ['osc', 'change']) def sma(arr: np.ndarray, period: int) -> np.ndarray: if len(arr) < period: return np.full_like(arr, np.nan, dtype=float) conv = np.convolve(arr, np.ones(period, dtype=float)/period, mode='valid') return np.concatenate((np.full(period-1, np.nan), conv)) def mom(arr: np.ndarray, period: int = 1) -> np.ndarray: return np.concatenate(([np.nan], np.diff(arr))) def acosc(candles: np.ndarray, sequential: bool = False) -> AC: """ Acceleration / Deceleration Oscillator (AC) :param candles: np.ndarray :param sequential: bool - default: False :return: AC(osc, change) """ candles = slice_candles(candles, sequential) med = (candles[:, 3] + candles[:, 4]) / 2 sma5_med = sma(med, 5) sma34_med = sma(med, 34) ao = sma5_med - sma34_med sma5_ao = sma(ao, 5) res = ao - sma5_ao mom_value = mom(res, 1) if sequential: return AC(res, mom_value) else: return AC(res[-1], mom_value[-1]) ================================================ FILE: jesse/indicators/ad.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles def ad(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]: """ AD - Chaikin A/D Line :param candles: np.ndarray :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) high = candles[:, 3].astype(np.float64) low = candles[:, 4].astype(np.float64) close = candles[:, 2].astype(np.float64) volume = candles[:, 5].astype(np.float64) # Calculate Money Flow Multiplier. Safeguard division by zero in case high equals low. mfm = np.where(high != low, ((close - low) - (high - close)) / (high - low), 0.0) # Calculate Money Flow Volume mfv = mfm * volume # Compute the Accumulation/Distribution line as the cumulative sum of Money Flow Volume ad_line = np.cumsum(mfv) return ad_line if sequential else ad_line[-1] ================================================ FILE: jesse/indicators/adosc.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles from jesse_rust import adosc as adosc_rust def adosc(candles: np.ndarray, fast_period: int = 3, slow_period: int = 10, sequential: bool = False) -> Union[float, np.ndarray]: """ ADOSC - Chaikin A/D Oscillator (Rust accelerated version) :param candles: np.ndarray of candles :param fast_period: int - default: 3 :param slow_period: int - default: 10 :param sequential: bool - default: False :return: float or np.ndarray """ candles = slice_candles(candles, sequential) # Convert to float64 for Rust compatibility candles_f64 = np.asarray(candles, dtype=np.float64) # Call the Rust implementation result = adosc_rust(candles_f64, fast_period, slow_period) return result if sequential else result[-1] ================================================ FILE: jesse/indicators/adx.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles from jesse_rust import adx as adx_rust def adx(candles: np.ndarray, period: int = 14, sequential: bool = False) -> Union[float, np.ndarray]: """ ADX - Average Directional Movement Index :param candles: np.ndarray, expected 2D array with OHLCV data where index 3 is high, index 4 is low, and index 2 is close :param period: int - default: 14 :param sequential: bool - if True, return full series, else return last value :return: float | np.ndarray """ if len(candles.shape) < 2: raise ValueError("adx indicator requires a 2D array of candles") candles = slice_candles(candles, sequential) # Ensure there's enough data if len(candles) <= 2 * period: return np.nan if not sequential else np.full(len(candles), np.nan) result = adx_rust(candles, period) return result if sequential else result[-1] ================================================ FILE: jesse/indicators/adxr.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles from numba import njit @njit(cache=True) def _adxr(high, low, close, period): n = len(high) TR = np.zeros(n) DMP = np.zeros(n) DMM = np.zeros(n) # First value TR[0] = high[0] - low[0] # Calculate TR, DMP, DMM for i in range(1, n): hl = high[i] - low[i] hc = abs(high[i] - close[i-1]) lc = abs(low[i] - close[i-1]) TR[i] = max(hl, hc, lc) up_move = high[i] - high[i-1] down_move = low[i-1] - low[i] if up_move > down_move and up_move > 0: DMP[i] = up_move else: DMP[i] = 0 if down_move > up_move and down_move > 0: DMM[i] = down_move else: DMM[i] = 0 # Smoothed TR, DMP, DMM STR = np.zeros(n) S_DMP = np.zeros(n) S_DMM = np.zeros(n) # Initialize first value STR[0] = TR[0] S_DMP[0] = DMP[0] S_DMM[0] = DMM[0] # Calculate smoothed values for i in range(1, n): STR[i] = STR[i-1] - (STR[i-1] / period) + TR[i] S_DMP[i] = S_DMP[i-1] - (S_DMP[i-1] / period) + DMP[i] S_DMM[i] = S_DMM[i-1] - (S_DMM[i-1] / period) + DMM[i] # Calculate DI+ and DI- DI_plus = np.zeros(n) DI_minus = np.zeros(n) for i in range(n): if STR[i] != 0: DI_plus[i] = (S_DMP[i] / STR[i]) * 100 DI_minus[i] = (S_DMM[i] / STR[i]) * 100 # Calculate DX DX = np.zeros(n) for i in range(n): denom = DI_plus[i] + DI_minus[i] if denom != 0: DX[i] = (abs(DI_plus[i] - DI_minus[i]) / denom) * 100 # Calculate ADX ADX = np.full(n, np.nan) if n >= period: for i in range(period-1, n): sum_dx = 0 for j in range(period): sum_dx += DX[i-j] ADX[i] = sum_dx / period # Calculate ADXR ADXR = np.full(n, np.nan) if n > period: for i in range(period, n): ADXR[i] = (ADX[i] + ADX[i-period]) / 2 return ADXR def adxr(candles: np.ndarray, period: int = 14, sequential: bool = False) -> Union[float, np.ndarray]: """ @author KivancOzbilgic credits: https://www.tradingview.com/v/9f5zDi3r/ ADXR - Average Directional Movement Index Rating :param candles: np.ndarray with at least 5 columns where index 3 is high, index 4 is low and index 2 is close :param period: int - period for smoothing and moving average (default: 14) :param sequential: bool - returns full series if True, else only the last computed value :return: ADXR as float or np.ndarray """ candles = slice_candles(candles, sequential) high = candles[:, 3] low = candles[:, 4] close = candles[:, 2] ADXR = _adxr(high, low, close, period) return ADXR if sequential else ADXR[-1] ================================================ FILE: jesse/indicators/alligator.py ================================================ from collections import namedtuple import numpy as np from jesse.helpers import get_candle_source, slice_candles from jesse_rust import smma, shift, alligator as alligator_rust AG = namedtuple('AG', ['jaw', 'teeth', 'lips']) def alligator(candles: np.ndarray, source_type: str = "hl2", sequential: bool = False) -> AG: """ Alligator indicator by Bill Williams :param candles: np.ndarray :param source_type: str - default: "hl2" :param sequential: bool - default: False :return: AG(jaw, teeth, lips) """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) # Use Rust implementation for calculating the alligator jaw, teeth, lips = alligator_rust(source) if sequential: return AG(jaw, teeth, lips) else: return AG(jaw[-1], teeth[-1], lips[-1]) ================================================ FILE: jesse/indicators/alma.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles def alma(candles: np.ndarray, period: int = 9, sigma: float = 6.0, distribution_offset: float = 0.85, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ ALMA - Arnaud Legoux Moving Average :param candles: np.ndarray :param period: int - default: 9 :param sigma: float - default: 6.0 :param distribution_offset: float - default: 0.85 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) asize = period - 1 m = distribution_offset * asize s = period / sigma dss = 2 * s * s wtds = np.exp(-(np.arange(period) - m) ** 2 / dss) pnp_array3D = strided_axis0(source, len(wtds)) res = np.zeros(source.shape) res[period - 1:] = np.tensordot(pnp_array3D, wtds, axes=(1, 0))[:] res /= wtds.sum() res[res == 0] = np.nan return res if sequential else res[-1] def strided_axis0(a, L): # Store the shape and strides info shp = a.shape s = a.strides # Compute length of output array along the first axis nd0 = shp[0] - L + 1 # Setup shape and strides for use with np.lib.stride_tricks.as_strided # and get (n+1) dim output array shp_in = (nd0, L) + shp[1:] strd_in = (s[0],) + s return np.lib.stride_tricks.as_strided(a, shape=shp_in, strides=strd_in) ================================================ FILE: jesse/indicators/ao.py ================================================ from collections import namedtuple import numpy as np from jesse.helpers import slice_candles from .sma import sma AO = namedtuple('AO', ['osc', 'change']) def momentum(arr): ret = np.full(arr.shape, np.nan) if len(arr) > 1: ret[1:] = arr[1:] - arr[:-1] return ret def ao(candles: np.ndarray, sequential: bool = False) -> AO: """ Awesome Oscillator :param candles: np.ndarray :param sequential: bool - default: False :return: AO(osc, change) """ candles = slice_candles(candles, sequential) # Calculate hl2 as (high+low)/2 hl2 = (candles[:, 3] + candles[:, 4]) / 2 # Calculate simple moving averages on hl2 for periods 5 and 34 sma5 = sma(hl2, 5, sequential=True) sma34 = sma(hl2, 34, sequential=True) ao = sma5 - sma34 # Calculate momentum as the difference between consecutive values mom = momentum(ao) if sequential: return AO(ao, mom) else: return AO(ao[-1], mom[-1]) ================================================ FILE: jesse/indicators/apo.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles from jesse.indicators.ma import ma def apo(candles: np.ndarray, fast_period: int = 12, slow_period: int = 26, matype: int = 0, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ APO - Absolute Price Oscillator :param candles: np.ndarray :param fast_period: int - default: 12 :param slow_period: int - default: 26 :param matype: int - default: 0 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) if matype == 24 or matype == 29: res = ma(candles, period=fast_period, matype=matype, source_type=source_type, sequential=True) - ma(candles, period=slow_period, matype=matype, source_type=source_type, sequential=True) else: res = ma(source, period=fast_period, matype=matype, sequential=True) - ma(source, period=slow_period, matype=matype, sequential=True) return res if sequential else res[-1] ================================================ FILE: jesse/indicators/aroon.py ================================================ from collections import namedtuple import numpy as np from jesse.helpers import slice_candles AROON = namedtuple('AROON', ['down', 'up']) def aroon(candles: np.ndarray, period: int = 14, sequential: bool = False) -> AROON: """ AROON indicator :param candles: np.ndarray, expected to have at least 5 columns, with high at index 3 and low at index 4. :param period: int - period for the indicator (default: 14) :param sequential: bool - whether to return the whole series (default: False) :return: AROON(down, up) where each value is computed as above. """ candles = slice_candles(candles, sequential) highs = candles[:, 3] lows = candles[:, 4] if sequential: aroon_up = np.full(highs.shape, np.nan, dtype=float) aroon_down = np.full(lows.shape, np.nan, dtype=float) if len(highs) >= period + 1: # Create sliding window view of period+1 elements for highs and lows windows_high = np.lib.stride_tricks.sliding_window_view(highs, window_shape=period+1) windows_low = np.lib.stride_tricks.sliding_window_view(lows, window_shape=period+1) aroon_up[period:] = 100 * (np.argmax(windows_high, axis=1) / period) aroon_down[period:] = 100 * (np.argmin(windows_low, axis=1) / period) return AROON(down=aroon_down, up=aroon_up) else: if len(highs) < period + 1: up_val = float('nan') down_val = float('nan') else: window_high = highs[-(period + 1):] window_low = lows[-(period + 1):] up_val = 100 * (np.argmax(window_high) / period) down_val = 100 * (np.argmin(window_low) / period) return AROON(down=down_val, up=up_val) ================================================ FILE: jesse/indicators/aroonosc.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import slice_candles @njit(cache=True) def _compute_aroonosc_nb(high: np.ndarray, low: np.ndarray, period: int) -> np.ndarray: n = high.shape[0] result = np.empty(n, dtype=np.float64) if n < period: for i in range(n): result[i] = np.nan return result for i in range(period - 1): result[i] = np.nan for i in range(period - 1, n): start = i - period + 1 best_val = high[start] best_idx = 0 worst_val = low[start] worst_idx = 0 for j in range(period): cur_high = high[start + j] cur_low = low[start + j] if cur_high > best_val: best_val = cur_high best_idx = j if cur_low < worst_val: worst_val = cur_low worst_idx = j result[i] = 100.0 * (best_idx - worst_idx) / period return result def aroonosc(candles: np.ndarray, period: int = 14, sequential: bool = False) -> Union[float, np.ndarray]: """ AROONOSC - Aroon Oscillator :param candles: np.ndarray :param period: int - default: 14 :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) high = candles[:, 3] low = candles[:, 4] result = _compute_aroonosc_nb(high, low, period) return result if sequential else result[-1] ================================================ FILE: jesse/indicators/atr.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles from jesse_rust import atr as rust_atr def atr(candles: np.ndarray, period: int = 14, sequential: bool = False) -> Union[float, np.ndarray]: """ ATR - Average True Range using optimized Rust implementation :param candles: np.ndarray :param period: int - default: 14 :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) result = rust_atr(candles, period) return result if sequential else result[-1] ================================================ FILE: jesse/indicators/avgprice.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles def avgprice(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]: """ AVGPRICE - Average Price :param candles: np.ndarray :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) res = (candles[:, 1] + candles[:, 3] + candles[:, 4] + candles[:, 2]) / 4 return res if sequential else res[-1] ================================================ FILE: jesse/indicators/bandpass.py ================================================ from collections import namedtuple import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles from .high_pass import high_pass_fast BandPass = namedtuple('BandPass', ['bp', 'bp_normalized', 'signal', 'trigger']) def bandpass(candles: np.ndarray, period: int = 20, bandwidth: float = 0.3, source_type: str = "close", sequential: bool = False) -> BandPass: """ BandPass Filter :param candles: np.ndarray :param period: int - default: 20 :param bandwidth: float - default: 0.3 :param source_type: str - default: "close" :param sequential: bool - default: False :return: BandPass(bp, bp_normalized, signal, trigger) """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) hp = high_pass_fast(source, 4 * period / bandwidth) beta = np.cos(2 * np.pi / period) gamma = np.cos(2 * np.pi * bandwidth / period) alpha = 1 / gamma - np.sqrt(1 / gamma ** 2 - 1) bp, peak = bp_fast(source, hp, alpha, beta) bp_normalized = bp / peak trigger = high_pass_fast(bp_normalized, period / bandwidth / 1.5) signal = (bp_normalized < trigger) * 1 - (trigger < bp_normalized) * 1 if sequential: return BandPass(bp, bp_normalized, signal, trigger) else: return BandPass(bp[-1], bp_normalized[-1], signal[-1], trigger[-1]) @njit(cache=True) def bp_fast(source, hp, alpha, beta): # Function is compiled to machine code when called the first time bp = np.copy(hp) for i in range(2, source.shape[0]): bp[i] = 0.5 * (1 - alpha) * hp[i] - (1 - alpha) * 0.5 * hp[i - 2] + beta * (1 + alpha) * bp[i - 1] - alpha * bp[i - 2] # fast attack-slow decay AGC K = 0.991 peak = np.copy(bp) for i in range(source.shape[0]): if i > 0: peak[i] = peak[i - 1] * K if np.abs(bp[i]) > peak[i]: peak[i] = np.abs(bp[i]) return bp, peak ================================================ FILE: jesse/indicators/beta.py ================================================ from typing import Union import numpy as np from numpy.lib.stride_tricks import sliding_window_view from jesse.helpers import slice_candles def beta(candles: np.ndarray, benchmark_candles: np.ndarray, period: int = 5, sequential: bool = False) -> Union[float, np.ndarray]: """ BETA - compares the given candles close price to its benchmark (should be in the same time frame) :param candles: np.ndarray :param benchmark_candles: np.ndarray :param period: int - default: 5 :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) benchmark_candles = slice_candles(benchmark_candles, sequential) x = candles[:, 2] y = benchmark_candles[:, 2] if len(x) < period: out = np.full_like(x, fill_value=np.nan, dtype=float) return out if sequential else np.nan windows_x = sliding_window_view(x, window_shape=period) windows_y = sliding_window_view(y, window_shape=period) mean_x = windows_x.mean(axis=1) mean_y = windows_y.mean(axis=1) diff_x = windows_x - mean_x[:, None] diff_y = windows_y - mean_y[:, None] numerator = (diff_x * diff_y).sum(axis=1) denominator = (diff_y ** 2).sum(axis=1) with np.errstate(divide='ignore', invalid='ignore'): beta_vals = numerator / denominator out = np.full_like(x, fill_value=np.nan, dtype=float) out[period - 1:] = beta_vals return out if sequential else out[-1] ================================================ FILE: jesse/indicators/bollinger_bands.py ================================================ from collections import namedtuple import numpy as np from jesse.helpers import get_candle_source, slice_candles from jesse.indicators.ma import ma from jesse.indicators.mean_ad import mean_ad from jesse.indicators.median_ad import median_ad # Try to import the high-performance Rust implementation try: from jesse_rust import bollinger_bands as bb_rust # type: ignore from jesse_rust import moving_std except ImportError: # pragma: no cover bb_rust = None # type: ignore from jesse_rust import moving_std BollingerBands = namedtuple('BollingerBands', ['upperband', 'middleband', 'lowerband']) def _bollinger_bands_fallback(source: np.ndarray, period: int, devup: float, devdn: float, matype: int, devtype: int) -> tuple[np.ndarray, np.ndarray, np.ndarray]: """Fallback implementation for non-SMA cases or when Rust is unavailable.""" if devtype == 0: dev = moving_std(source, period) elif devtype == 1: dev = mean_ad(source, period, sequential=True) elif devtype == 2: dev = median_ad(source, period, sequential=True) else: raise ValueError("devtype not in (0, 1, 2)") middlebands = ma(source, period=period, matype=matype, sequential=True) upperbands = middlebands + devup * dev lowerbands = middlebands - devdn * dev return upperbands, middlebands, lowerbands def bollinger_bands( candles: np.ndarray, period: int = 20, devup: float = 2, devdn: float = 2, matype: int = 0, devtype: int = 0, source_type: str = "close", sequential: bool = False ) -> BollingerBands: """ BBANDS - Bollinger Bands :param candles: np.ndarray :param period: int - default: 20 :param devup: float - default: 2 :param devdn: float - default: 2 :param matype: int - default: 0 :param devtype: int - default: 0 :param source_type: str - default: "close" :param sequential: bool - default: False :return: BollingerBands(upperband, middleband, lowerband) """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) # Use optimized Rust implementation for standard case (SMA + standard deviation) if bb_rust is not None and matype == 0 and devtype == 0: upperbands, middlebands, lowerbands = bb_rust(source.astype(np.float64), period, devup, devdn) else: # Handle special cases or fallback if matype == 24 or matype == 29: # VWMA or VWAP need the full candles array upperbands, middlebands, lowerbands = _bollinger_bands_fallback(candles, period, devup, devdn, matype, devtype) else: upperbands, middlebands, lowerbands = _bollinger_bands_fallback(source, period, devup, devdn, matype, devtype) if sequential: return BollingerBands(upperbands, middlebands, lowerbands) else: return BollingerBands(upperbands[-1], middlebands[-1], lowerbands[-1]) ================================================ FILE: jesse/indicators/bollinger_bands_width.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles from jesse_rust import bollinger_bands_width as bollinger_bands_width_rust def bollinger_bands_width(candles: np.ndarray, period: int = 20, mult: float = 2.0, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ BBW - Bollinger Bands Width :param candles: np.ndarray :param period: int - default: 20 :param mult: float - default: 2 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) result = bollinger_bands_width_rust(source, period, float(mult)) return result if sequential else result[-1] ================================================ FILE: jesse/indicators/bop.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles def bop(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]: """ BOP - Balance Of Power :param candles: np.ndarray :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) open_prices = candles[:, 1] high_prices = candles[:, 3] low_prices = candles[:, 4] close_prices = candles[:, 2] denominator = high_prices - low_prices bop_values = np.where(denominator != 0, (close_prices - open_prices) / denominator, 0) return bop_values if sequential else bop_values[-1] ================================================ FILE: jesse/indicators/cc.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles from .roc import roc from .wma import wma def cc(candles: np.ndarray, wma_period: int = 10, roc_short_period: int = 11, roc_long_period: int = 14, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ CC - Coppock Curve :param candles: np.ndarray :param wma_period: int - default: 10 :param roc_short_period: int - default: 11 :param roc_long_period: int - default: 14 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) roc_long = roc(source, roc_long_period, sequential=True) roc_short = roc(source, roc_short_period, sequential=True) roc_sum = roc_long + roc_short res = wma(roc_sum, wma_period, sequential=True) return res if sequential else res[-1] ================================================ FILE: jesse/indicators/cci.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import slice_candles @njit(cache=True) def calculate_cci_loop(tp, period): n = tp.shape[0] result = np.empty(n) # initialize result with NaNs for i in range(n): result[i] = np.nan if n < period: return result for i in range(period - 1, n): sum_tp = 0.0 for j in range(i - period + 1, i + 1): sum_tp += tp[j] sma = sum_tp / period sum_diff = 0.0 for j in range(i - period + 1, i + 1): # Calculate absolute deviation if tp[j] >= sma: sum_diff += tp[j] - sma else: sum_diff += sma - tp[j] md = sum_diff / period if md == 0.0: result[i] = 0.0 else: result[i] = (tp[i] - sma) / (0.015 * md) return result def cci(candles: np.ndarray, period: int = 14, sequential: bool = False) -> Union[float, np.ndarray]: """ CCI - Commodity Channel Index :param candles: np.ndarray :param period: int - default: 14 :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) high = candles[:, 3] low = candles[:, 4] close = candles[:, 2] tp = (high + low + close) / 3.0 result = calculate_cci_loop(tp, period) return result if sequential else result[-1] ================================================ FILE: jesse/indicators/cfo.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles @njit(cache=True) def _compute_cfo(source: np.ndarray, period: int, scalar: float) -> np.ndarray: n = source.shape[0] res = np.empty(n, dtype=np.float64) # fill initial values with nan for indices where a full period is not available for i in range(period - 1): res[i] = np.nan # Precompute constants for x = 0, 1, ..., period-1 Sx = 0.0 Sxx = 0.0 for j in range(period): Sx += j Sxx += j * j denom = period * Sxx - Sx * Sx # For each valid window, compute the linear regression and forecast value for i in range(period - 1, n): sum_y = 0.0 sum_xy = 0.0 for j in range(period): y_val = source[i - period + 1 + j] sum_y += y_val sum_xy += y_val * j slope = (period * sum_xy - Sx * sum_y) / denom intercept = (sum_y - slope * Sx) / period reg_val = intercept + slope * (period - 1) # Avoid division by zero if source[i] != 0.0: res[i] = scalar * (source[i] - reg_val) / source[i] else: res[i] = np.nan return res def cfo(candles: np.ndarray, period: int = 14, scalar: float = 100, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ CFO - Chande Forcast Oscillator :param candles: np.ndarray :param period: int - default: 14 :param scalar: float - default: 100 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = _compute_cfo(source, period, scalar) if sequential: return res else: return None if np.isnan(res[-1]) else res[-1] ================================================ FILE: jesse/indicators/cg.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, same_length, slice_candles def cg(candles: np.ndarray, period: int = 10, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ Center of Gravity (CG) :param candles: np.ndarray :param period: int - default: 10 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = go_fast(source, period) return same_length(candles, res) if sequential else res[-1] @njit(cache=True) def go_fast(source, period): # Function is compiled to machine code when called the first time res = np.full_like(source, fill_value=np.nan) for i in range(source.size): if i > period: num = 0 denom = 0 for count in range(period - 1): close = source[i - count] if not np.isnan(close): num += (1 + count) * close denom += close result = -num / denom if denom != 0 else 0 res[i] = result return res ================================================ FILE: jesse/indicators/chande.py ================================================ from typing import Union import numpy as np from jesse_rust import chande as rust_chande from jesse.helpers import slice_candles def chande(candles: np.ndarray, period: int = 22, mult: float = 3.0, direction: str = "long", sequential: bool = False) -> Union[float, np.ndarray]: """ Chandelier Exits :param candles: np.ndarray :param period: int - default: 22 :param mult: float - default: 3.0 :param direction: str - default: "long" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) if direction not in ['long', 'short']: raise ValueError('The direction parameter must be \'short\' or \'long\'') result = rust_chande(candles, period, mult, direction) return result if sequential else result[-1] ================================================ FILE: jesse/indicators/chop.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles from jesse_rust import chop as chop_rust def chop(candles: np.ndarray, period: int = 14, scalar: float = 100, drift: int = 1, sequential: bool = False) -> Union[float, np.ndarray]: """ Choppiness Index (CHOP) :param candles: np.ndarray :param period: int - default: 14 :param scalar: float - default: 100 :param drift: int - default: 1 :param sequential: bool - default: False :return: float | np.ndarray """ # Preprocess candles using original slicing candles = slice_candles(candles, sequential) # Use Rust implementation res = chop_rust(candles, period, scalar, drift) return res if sequential else res[-1] ================================================ FILE: jesse/indicators/cksp.py ================================================ from collections import namedtuple import numpy as np from jesse.helpers import slice_candles CKSP = namedtuple('CKSP', ['long', 'short']) def atr(high: np.ndarray, low: np.ndarray, close: np.ndarray, timeperiod: int = 10) -> np.ndarray: tr = np.empty_like(close) tr[0] = high[0] - low[0] tr[1:] = np.maximum.reduce([ high[1:] - low[1:], np.abs(high[1:] - close[:-1]), np.abs(low[1:] - close[:-1]) ]) atr_vals = np.empty_like(close) if len(close) < timeperiod: return np.full_like(close, np.nan) atr_vals[:timeperiod-1] = np.nan atr_vals[timeperiod-1] = np.mean(tr[:timeperiod]) for t in range(timeperiod, len(close)): atr_vals[t] = (atr_vals[t-1]*(timeperiod-1) + tr[t]) / timeperiod return atr_vals def rolling_max(arr: np.ndarray, window: int) -> np.ndarray: n = len(arr) if n == 0: return arr result = np.empty(n) if window > 1: result[:window-1] = np.maximum.accumulate(arr[:window-1]) if n >= window: shape = (n - window + 1, window) strides = (arr.strides[0], arr.strides[0]) windows = np.lib.stride_tricks.as_strided(arr, shape=shape, strides=strides) result[window-1:] = np.max(windows, axis=1) else: result = arr.copy() return result def rolling_min(arr: np.ndarray, window: int) -> np.ndarray: n = len(arr) if n == 0: return arr result = np.empty(n) if window > 1: result[:window-1] = np.minimum.accumulate(arr[:window-1]) if n >= window: shape = (n - window + 1, window) strides = (arr.strides[0], arr.strides[0]) windows = np.lib.stride_tricks.as_strided(arr, shape=shape, strides=strides) result[window-1:] = np.min(windows, axis=1) else: result = arr.copy() return result def cksp(candles: np.ndarray, p: int = 10, x: float = 1.0, q: int = 9, sequential: bool = False) -> CKSP: """ Chande Kroll Stop (CKSP) :param candles: np.ndarray :param p: int - default: 10 (ATR period) :param x: float - default: 1.0 (ATR multiplier) :param q: int - default: 9 (rolling window period) :param sequential: bool - default: False :return: CKSP namedtuple containing long and short values """ candles = slice_candles(candles, sequential) candles_close = candles[:, 2] candles_high = candles[:, 3] candles_low = candles[:, 4] atr_vals = atr(candles_high, candles_low, candles_close, timeperiod=p) LS0 = rolling_max(candles_high, window=q) - x * atr_vals LS = rolling_max(LS0, window=q) SS0 = rolling_min(candles_low, window=q) + x * atr_vals SS = rolling_min(SS0, window=q) if sequential: return CKSP(LS, SS) else: return CKSP(LS[-1], SS[-1]) ================================================ FILE: jesse/indicators/cmo.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles @njit(cache=True) def _cmo_numba(source: np.ndarray, period: int) -> np.ndarray: n = source.shape[0] result = np.empty(n, dtype=np.float64) # Initialize result with NaN values for i in range(n): result[i] = np.nan if n <= 1: return result # Compute the differences manually diff = np.empty(n - 1, dtype=np.float64) for i in range(n - 1): diff[i] = source[i + 1] - source[i] # Only compute CMO if we have enough diff values if diff.shape[0] >= period: for i in range(period, n): pos_sum = 0.0 neg_sum = 0.0 # Calculate sums over the window diff[i-period:i] for j in range(i - period, i): d = diff[j] if d > 0: pos_sum += d elif d < 0: neg_sum += -d denom = pos_sum + neg_sum if denom == 0.0: result[i] = 0.0 else: result[i] = 100.0 * (pos_sum - neg_sum) / denom return result def cmo(candles: np.ndarray, period: int = 14, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ CMO - Chande Momentum Oscillator :param candles: np.ndarray :param period: int - default: 14 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) result = _cmo_numba(source, period) return result if sequential else result[-1] ================================================ FILE: jesse/indicators/correl.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles def correl(candles: np.ndarray, period: int = 5, sequential: bool = False) -> Union[float, np.ndarray]: """ CORREL - Pearson's Correlation Coefficient (r) :param candles: np.ndarray :param period: int - default: 5 :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) x = candles[:, 3] y = candles[:, 4] n = len(x) # If not enough data, return an array of NaNs if n < period: res = np.empty(n) res[:] = np.nan return res if sequential else res[-1] # Use numpy's sliding_window_view for vectorized rolling window computation windows_x = np.lib.stride_tricks.sliding_window_view(x, window_shape=period) windows_y = np.lib.stride_tricks.sliding_window_view(y, window_shape=period) mean_x = np.mean(windows_x, axis=1) mean_y = np.mean(windows_y, axis=1) # Calculate numerator and denominator for Pearson correlation coefficient numerator = np.sum((windows_x - mean_x[:, None]) * (windows_y - mean_y[:, None]), axis=1) denominator = np.sqrt(np.sum((windows_x - mean_x[:, None])**2, axis=1) * np.sum((windows_y - mean_y[:, None])**2, axis=1)) with np.errstate(divide='ignore', invalid='ignore'): corr_vals = numerator / denominator # Prepare full result array with initial NaNs for indices with insufficient data res_full = np.empty(n) res_full[:period-1] = np.nan res_full[period-1:] = corr_vals return res_full if sequential else res_full[-1] ================================================ FILE: jesse/indicators/correlation_cycle.py ================================================ from collections import namedtuple import numpy as np from numba import njit from jesse.helpers import get_candle_source, np_shift, slice_candles CC = namedtuple('CC', ['real', 'imag', 'angle', 'state']) def correlation_cycle(candles: np.ndarray, period: int = 20, threshold: int = 9, source_type: str = "close", sequential: bool = False) -> CC: """ "Correlation Cycle, Correlation Angle, Market State - John Ehlers :param candles: np.ndarray :param period: int - default: 20 :param threshold: int - default: 9 :param source_type: str - default: "close" :param sequential: bool - default: False :return: CC(real, imag) """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) realPart, imagPart, angle = go_fast(source, period) priorAngle = np_shift(angle, 1, fill_value=np.nan) angle = np.where(np.logical_and(priorAngle > angle, priorAngle - angle < 270.0), priorAngle, angle) # Market State Function state = np.where(np.abs(angle - priorAngle) < threshold, np.where(angle >= 0.0, 1, np.where(angle < 0.0, -1, 0)), 0) if sequential: return CC(realPart, imagPart, angle, state) else: return CC(realPart[-1], imagPart[-1], angle[-1], state[-1]) @njit(cache=True) def go_fast(source, period): # Function is compiled to machine code when called the first time # Correlation Cycle Function PIx2 = 4.0 * np.arcsin(1.0) period = max(2, period) realPart = np.full_like(source, np.nan) imagPart = np.full_like(source, np.nan) for i in range(period, source.shape[0]): Rx = 0.0 Rxx = 0.0 Rxy = 0.0 Ryy = 0.0 Ry = 0.0 Ix = 0.0 Ixx = 0.0 Ixy = 0.0 Iyy = 0.0 Iy = 0.0 for j in range(period): jMinusOne = j + 1 X = 0 if np.isnan(source[i - jMinusOne]) else source[i - jMinusOne] temp = PIx2 * jMinusOne / period Yc = np.cos(temp) Ys = -np.sin(temp) Rx += X Ix += X Rxx += X * X Ixx += X * X Rxy += X * Yc Ixy += X * Ys Ryy += Yc * Yc Iyy += Ys * Ys Ry += Yc Iy += Ys temp_1 = period * Rxx - Rx**2 temp_2 = period * Ryy - Ry**2 if temp_1 > 0.0 and temp_2 > 0.0: realPart[i] = (period * Rxy - Rx * Ry) / np.sqrt(temp_1 * temp_2) temp_1 = period * Ixx - Ix**2 temp_2 = period * Iyy - Iy**2 if temp_1 > 0.0 and temp_2 > 0.0: imagPart[i] = (period * Ixy - Ix * Iy) / np.sqrt(temp_1 * temp_2) # Correlation Angle Phasor HALF_OF_PI = np.arcsin(1.0) angle = np.where(imagPart == 0, 0.0, np.degrees(np.arctan(realPart / imagPart) + HALF_OF_PI)) angle = np.where(imagPart > 0.0, angle - 180.0, angle) return realPart, imagPart, angle ================================================ FILE: jesse/indicators/cvi.py ================================================ from typing import Union import numpy as np import jesse.helpers as jh from jesse_rust import cvi as cvi_rust def cvi(candles: np.ndarray, period: int = 5, sequential: bool = False) -> Union[float, np.ndarray]: """ CVI - Chaikins Volatility :param candles: np.ndarray :param period: int - default: 5 :param sequential: bool - default: False :return: float | np.ndarray """ candles = jh.slice_candles(candles, sequential) # Call the Rust implementation res = cvi_rust(candles, period) return jh.same_length(candles, res) if sequential else res[-1] ================================================ FILE: jesse/indicators/cwma.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles def cwma(candles: np.ndarray, period: int = 14, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ Cubed Weighted Moving Average :param candles: np.ndarray :param period: int - default: 14 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = vpwma_fast(source, period) return res if sequential else res[-1] @njit(cache=True) def vpwma_fast(source, period): newseries = np.copy(source) for j in range(period + 1, source.shape[0]): my_sum = 0.0 weightSum = 0.0 for i in range(period - 1): weight = np.power(period - i, 3) my_sum += (source[j - i] * weight) weightSum += weight newseries[j] = my_sum / weightSum return newseries ================================================ FILE: jesse/indicators/damiani_volatmeter.py ================================================ from collections import namedtuple import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles DamianiVolatmeter = namedtuple('DamianiVolatmeter', ['vol', 'anti']) def atr(high: np.ndarray, low: np.ndarray, close: np.ndarray, timeperiod: int) -> np.ndarray: tr = np.empty_like(high, dtype=float) tr[0] = high[0] - low[0] if high.shape[0] > 1: diff1 = high[1:] - low[1:] diff2 = np.abs(high[1:] - close[:-1]) diff3 = np.abs(low[1:] - close[:-1]) tr[1:] = np.maximum(diff1, np.maximum(diff2, diff3)) atr_array = np.full(high.shape, np.nan, dtype=float) if high.shape[0] < timeperiod: atr_array[-1] = np.mean(tr) return atr_array n = high.shape[0] m = n - timeperiod + 1 alpha = 1.0 / timeperiod initial = np.mean(tr[:timeperiod]) ema_vector = np.empty(m) ema_vector[0] = initial if m > 1: k = np.arange(m) # k = 0,..., m-1 initial_contrib = initial * (1 - alpha) ** k # Build a lower-triangular matrix for weights for indices 1 to m-1 exp_matrix = np.tril((1 - alpha) ** (np.subtract.outer(np.arange(m - 1), np.arange(m - 1)))) # tr[timeperiod:] has length m-1 sum_vals = alpha * (exp_matrix @ tr[timeperiod:]) ema_vector[1:] = initial_contrib[1:] + sum_vals atr_array[:timeperiod - 1] = np.nan atr_array[timeperiod - 1:] = ema_vector return atr_array def damiani_volatmeter(candles: np.ndarray, vis_atr: int = 13, vis_std: int = 20, sed_atr: int = 40, sed_std: int = 100, threshold: float = 1.4, source_type: str = "close", sequential: bool = False) -> DamianiVolatmeter: """ Damiani Volatmeter :param candles: np.ndarray :param vis_atr: int - default: 13 :param vis_std: int - default: 20 :param sed_atr: int - default: 40 :param sed_std: int - default: 100 :param threshold: float - default: 1.4 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) atrvis = atr(candles[:, 3], candles[:, 4], candles[:, 2], vis_atr) atrsed = atr(candles[:, 3], candles[:, 4], candles[:, 2], sed_atr) vol, t = damiani_volatmeter_fast(source, sed_std, atrvis, atrsed, vis_std, threshold) if sequential: return DamianiVolatmeter(vol, t) else: return DamianiVolatmeter(vol[-1], t[-1]) def damiani_volatmeter_fast(source, sed_std, atrvis, atrsed, vis_std, threshold): from scipy.signal import lfilter from numpy.lib.stride_tricks import sliding_window_view lag_s = 0.5 n = source.shape[0] # Compute vol using a linear filter to solve the recurrence: # vol[i] - lag_s*vol[i-1] + lag_s*vol[i-3] = atrvis[i]/atrsed[i] u = np.zeros(n) u[sed_std:] = atrvis[sed_std:] / atrsed[sed_std:] b = [1.0] a = [1.0, -lag_s, 0.0, lag_s] vol = lfilter(b, a, u) # Compute t vectorized by calculating moving standard deviations without loops t = np.zeros(n) if n >= sed_std: std_vis = np.std(sliding_window_view(source, vis_std), axis=-1) std_sed = np.std(sliding_window_view(source, sed_std), axis=-1) idx = np.arange(sed_std, n) t[idx] = threshold - (std_vis[idx - vis_std] / std_sed[idx - sed_std]) return vol, t ================================================ FILE: jesse/indicators/dec_osc.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles from .high_pass_2_pole import high_pass_2_pole_fast def dec_osc(candles: np.ndarray, hp_period: int = 125, k: float = 1, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ Ehlers Decycler Oscillator :param candles: np.ndarray :param hp_period: int - default: 125 :param k: float - default: 1 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) hp = high_pass_2_pole_fast(source, hp_period) dec = source - hp decosc = high_pass_2_pole_fast(dec, 0.5 * hp_period) res = 100 * k * decosc / source return res if sequential else res[-1] ================================================ FILE: jesse/indicators/decycler.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles from .high_pass_2_pole import high_pass_2_pole_fast def decycler(candles: np.ndarray, hp_period: int = 125, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ Ehlers Simple Decycler :param candles: np.ndarray :param hp_period: int - default: 125 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) hp = high_pass_2_pole_fast(source, hp_period) res = source - hp return res if sequential else res[-1] ================================================ FILE: jesse/indicators/dema.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles # Try to import the high-performance Rust implementation try: from jesse_rust import dema as dema_rust # type: ignore except ImportError: # pragma: no cover dema_rust = None # type: ignore @njit(cache=True) def _ema(x: np.ndarray, period: int) -> np.ndarray: alpha = 2.0 / (period + 1) n = len(x) ema = np.empty(n, dtype=x.dtype) ema[0] = x[0] for i in range(1, n): ema[i] = alpha * x[i] + (1 - alpha) * ema[i - 1] return ema def dema(candles: np.ndarray, period: int = 30, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ DEMA - Double Exponential Moving Average :param candles: np.ndarray :param period: int - default: 30 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) # Use Rust implementation if available if dema_rust is not None: # Convert to float64 for Rust compatibility source_f64 = np.asarray(source, dtype=np.float64) # Call the Rust implementation result = dema_rust(source_f64, period) return result if sequential else result[-1] else: # Fallback to Python implementation return _dema_python(source, period, sequential) def _dema_python(source: np.ndarray, period: int, sequential: bool) -> Union[float, np.ndarray]: """Python fallback implementation.""" ema = _ema(source, period) ema_of_ema = _ema(ema, period) res = 2 * ema - ema_of_ema return res if sequential else res[-1] ================================================ FILE: jesse/indicators/devstop.py ================================================ from typing import Union import numpy as np from numpy.lib.stride_tricks import sliding_window_view from jesse.helpers import slice_candles from jesse.indicators.mean_ad import mean_ad from jesse.indicators.median_ad import median_ad def devstop(candles: np.ndarray, period: int = 20, mult: float = 0, devtype: int = 0, direction: str = "long", sequential: bool = False) -> Union[ float, np.ndarray]: """ Kase Dev Stops :param candles: np.ndarray :param period: int - default: 20 :param mult: float - default: 0 :param devtype: int - default: 0 :param direction: str - default: long :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) high = candles[:, 3] low = candles[:, 4] AVTR = rolling_mean(rolling_max(high, 2) - rolling_min(low, 2), period) if devtype == 0: SD = rolling_std(rolling_max(high, 2) - rolling_min(low, 2), period) elif devtype == 1: SD = mean_ad(rolling_max(high, 2) - rolling_min(low, 2), period, sequential=True) elif devtype == 2: SD = median_ad(rolling_max(high, 2) - rolling_min(low, 2), period, sequential=True) if direction == "long": res = rolling_max(high - AVTR - mult * SD, period) else: res = rolling_min(low + AVTR + mult * SD, period) return res if sequential else res[-1] def rolling_max(arr, window): if len(arr) < window: return np.full(arr.shape, np.nan) windows = sliding_window_view(arr, window) res = np.empty(len(arr)) res[:window-1] = np.nan res[window-1:] = np.max(windows, axis=1) return res def rolling_min(arr, window): if len(arr) < window: return np.full(arr.shape, np.nan) windows = sliding_window_view(arr, window) res = np.empty(len(arr)) res[:window-1] = np.nan res[window-1:] = np.min(windows, axis=1) return res def rolling_mean(arr, window): if len(arr) < window: return np.full(arr.shape, np.nan) windows = sliding_window_view(arr, window) res = np.empty(len(arr)) res[:window-1] = np.nan res[window-1:] = np.mean(windows, axis=1) return res def rolling_std(arr, window): if len(arr) < window: return np.full(arr.shape, np.nan) windows = sliding_window_view(arr, window) res = np.empty(len(arr)) res[:window-1] = np.nan res[window-1:] = np.std(windows, axis=1, ddof=0) return res ================================================ FILE: jesse/indicators/di.py ================================================ from collections import namedtuple import numpy as np from jesse.helpers import slice_candles from jesse_rust import di as di_rust DI = namedtuple('DI', ['plus', 'minus']) def di(candles: np.ndarray, period: int = 14, sequential: bool = False) -> DI: """ DI - Directional Indicator :param candles: np.ndarray, where columns are expected to be: index 2: close, index 3: high, index 4: low. :param period: int - default: 14 :param sequential: bool - default: False :return: DI(plus, minus) """ candles = slice_candles(candles, sequential) n = len(candles) if n < 2: if sequential: return DI(np.full(n, np.nan), np.full(n, np.nan)) else: return DI(np.nan, np.nan) # Use Rust implementation plus_DI_arr, minus_DI_arr = di_rust(candles, period) if sequential: return DI(plus_DI_arr, minus_DI_arr) else: return DI(plus_DI_arr[-1], minus_DI_arr[-1]) ================================================ FILE: jesse/indicators/dm.py ================================================ from collections import namedtuple import numpy as np from jesse.helpers import slice_candles # Import the high-performance Rust implementation from jesse_rust import dm as dm_rust # type: ignore DM = namedtuple('DM', ['plus', 'minus']) def dm(candles: np.ndarray, period: int = 14, sequential: bool = False) -> DM: """ DM - Directional Movement :param candles: np.ndarray :param period: int - default: 14 :param sequential: bool - default: False :return: DM(plus, minus) """ candles = slice_candles(candles, sequential) # Convert to float64 for Rust compatibility candles_f64 = np.asarray(candles, dtype=np.float64) # Call the Rust implementation plus, minus = dm_rust(candles_f64, period) if sequential: return DM(plus, minus) else: return DM(plus[-1], minus[-1]) ================================================ FILE: jesse/indicators/donchian.py ================================================ from collections import namedtuple import numpy as np from jesse_rust import donchian as rust_donchian from jesse.helpers import slice_candles DonchianChannel = namedtuple('DonchianChannel', ['upperband', 'middleband', 'lowerband']) def donchian(candles: np.ndarray, period: int = 20, sequential: bool = False) -> DonchianChannel: """ Donchian Channels :param candles: np.ndarray :param period: int - default: 20 :param sequential: bool - default: False :return: DonchianChannel(upperband, middleband, lowerband) """ candles = slice_candles(candles, sequential) if sequential: # Use optimized Rust implementation rust_result = rust_donchian(candles, period) return DonchianChannel( rust_result['upperband'], rust_result['middleband'], rust_result['lowerband'] ) else: # Non-sequential mode only needs the very last value of the channel. # Instead of calling the Rust implementation (which processes the # entire candle history and incurs extra FFI overhead), we can obtain # the same result in pure NumPy by looking at just the last `period` # candles. if candles.shape[0] < period: # Not enough candles yet → behave exactly like the Rust variant # which would return NaNs for the incomplete window. return DonchianChannel(np.nan, np.nan, np.nan) # Slice only the window we need. window = candles[-period:] # Candle columns: 0 -> timestamp, 1 -> open, 2 -> close, 3 -> high, 4 -> low highs = window[:, 3] lows = window[:, 4] upper = highs.max() lower = lows.min() middle = (upper + lower) / 2 return DonchianChannel(upper, middle, lower) ================================================ FILE: jesse/indicators/dpo.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, same_length, slice_candles from jesse.indicators.sma import sma @njit def _dpo(source, period, sma): # Calculate the X/2 + 1 shift shift = period // 2 + 1 # Shift the price series and subtract SMA shifted_source = np.roll(source, shift) dpo = shifted_source - sma # First (period-1 + shift) elements will be invalid due to the rolling calculations dpo[:period-1+shift] = np.nan return dpo def dpo(candles: np.ndarray, period: int = 5, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ DPO - Detrended Price Oscillator Formula: Price {X/2 + 1} periods ago less the X-period simple moving average :param candles: np.ndarray :param period: int - default: 5 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) t_sma = sma(candles, period, source_type=source_type, sequential=True) res = _dpo(source, period, t_sma) return same_length(candles, res) if sequential else res[-1] ================================================ FILE: jesse/indicators/dti.py ================================================ from typing import Union import numpy as np from numba import njit import jesse.helpers as jh from jesse.helpers import slice_candles import jesse_rust as jr @njit(cache=True) def _ema(arr: np.ndarray, period: int) -> np.ndarray: """ Compute the exponential moving average (EMA) using a simple for loop, accelerated with numba. The formula is: EMA[i] = sum_{j=0}^{i} (alpha * (1-alpha)**(i - j) * arr[j]) where alpha = 2/(period+1). This is computed iteratively: EMA[0] = alpha * arr[0] EMA[i] = alpha * arr[i] + (1 - alpha) * EMA[i-1] for i >= 1 """ alpha = 2.0 / (period + 1) n = arr.shape[0] result = np.empty(n, dtype=arr.dtype) result[0] = alpha * arr[0] for i in range(1, n): result[i] = alpha * arr[i] + (1 - alpha) * result[i - 1] return result def dti(candles: np.ndarray, r: int = 14, s: int = 10, u: int = 5, sequential: bool = False) -> Union[float, np.ndarray]: """ DTI by William Blau calculated using Rust implementation for better performance. :param candles: np.ndarray of candles data :param r: period for the first EMA smoothing (default 14) :param s: period for the second EMA smoothing (default 10) :param u: period for the third EMA smoothing (default 5) :param sequential: if True, returns the full sequence, otherwise only the last value :return: float or np.ndarray of DTI values """ candles = slice_candles(candles, sequential) # Use the Rust implementation res = jr.dti(candles, r, s, u) if sequential: return res else: return None if np.isnan(res[-1]) else res[-1] ================================================ FILE: jesse/indicators/dx.py ================================================ from collections import namedtuple from typing import Union import numpy as np from jesse.helpers import slice_candles from jesse.indicators.rma import rma from numba import njit DX = namedtuple('DX', ['adx', 'plusDI', 'minusDI']) @njit(cache=True) def _fast_dm_tr(high: np.ndarray, low: np.ndarray, close: np.ndarray) -> tuple: n = len(high) up = np.zeros(n) down = np.zeros(n) plusDM = np.zeros(n) minusDM = np.zeros(n) true_range = np.zeros(n) for i in range(n): if i == 0: up[i] = 0 down[i] = 0 plusDM[i] = 0 minusDM[i] = 0 true_range[i] = high[i] - low[i] else: up[i] = high[i] - high[i - 1] down[i] = low[i - 1] - low[i] plusDM[i] = up[i] if (up[i] > down[i] and up[i] > 0) else 0 minusDM[i] = down[i] if (down[i] > up[i] and down[i] > 0) else 0 a = high[i] - low[i] b = abs(high[i] - close[i - 1]) c = abs(low[i] - close[i - 1]) true_range[i] = max(a, b, c) return plusDM, minusDM, true_range def dx(candles: np.ndarray, di_length: int = 14, adx_smoothing: int = 14, sequential: bool = False) -> Union[float, np.ndarray]: """ DX - Directional Movement Index :param candles: np.ndarray :param di_length: int - default: 14 :param adx_smoothing: int - default: 14 :param sequential: bool - default: False :return: DX(adx, plusDI, minusDI) """ candles = slice_candles(candles, sequential) high = candles[:, 3] low = candles[:, 4] close = candles[:, 2] plusDM, minusDM, true_range = _fast_dm_tr(high, low, close) tr_rma = rma(true_range, di_length, sequential=True) plus_rma = rma(plusDM, di_length, sequential=True) minus_rma = rma(minusDM, di_length, sequential=True) # Compute +DI and -DI, avoiding division by zero plusDI = np.where(tr_rma == 0, 0, 100 * plus_rma / tr_rma) minusDI = np.where(tr_rma == 0, 0, 100 * minus_rma / tr_rma) di_sum = plusDI + minusDI di_diff = np.abs(plusDI - minusDI) directional_index = di_diff / np.where(di_sum == 0, 1, di_sum) adx = 100 * rma(directional_index, adx_smoothing, sequential=True) if sequential: return DX(adx, plusDI, minusDI) else: return DX(adx[-1], plusDI[-1], minusDI[-1]) ================================================ FILE: jesse/indicators/edcf.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles def edcf(candles: np.ndarray, period: int = 15, source_type: str = "hl2", sequential: bool = False) -> Union[ float, np.ndarray]: """ Ehlers Distance Coefficient Filter :param candles: np.ndarray :param period: int - default: 15 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = edcf_fast(source, period) return res if sequential else res[-1] @njit(cache=True) def edcf_fast(source, period): newseries = np.full_like(source, np.nan) for j in range(2 * period, source.shape[0]): num = 0.0 coefSum = 0.0 for i in range(period): distance = 0.0 for lb in range(1, period): distance += np.power(source[j - i] - source[j - i - lb], 2) num += distance * source[j - i] coefSum += distance newseries[j] = num / coefSum if coefSum != 0 else 0 return newseries ================================================ FILE: jesse/indicators/efi.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, same_length, slice_candles def efi(candles: np.ndarray, period: int = 13, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ EFI - Elders Force Index :param candles: np.ndarray :param period: int - default: 13 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) dif = efi_fast(source, candles[:, 5]) res = ema(dif, period) res_with_nan = same_length(candles, res) return res_with_nan if sequential else res_with_nan[-1] @njit(cache=True) def efi_fast(source, volume): dif = np.zeros(source.size - 1) for i in range(1, source.size): dif[i - 1] = (source[i] - source[i - 1]) * volume[i] return dif @njit(cache=True) def ema(data: np.ndarray, period: int) -> np.ndarray: n = data.shape[0] # Initialize output array and fill with NaN out = np.empty(n) for i in range(n): out[i] = np.nan if n < period: return out alpha = 2.0 / (period + 1) # Compute seed as the simple average of the first 'period' values sum_value = 0.0 for i in range(period): sum_value += data[i] ema_val = sum_value / period out[period - 1] = ema_val # Recursively compute EMA for the rest of the data for i in range(period, n): ema_val = alpha * data[i] + (1 - alpha) * ema_val out[i] = ema_val return out ================================================ FILE: jesse/indicators/ema.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles from jesse_rust import ema as ema_rust def ema(candles: np.ndarray, period: int = 5, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ EMA - Exponential Moving Average using Numba for optimization :param candles: np.ndarray :param period: int - default: 5 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) result = ema_rust(source, period) return result if sequential else result[-1] ================================================ FILE: jesse/indicators/emd.py ================================================ from collections import namedtuple import numpy as np from numba import njit from jesse.indicators.sma import sma from jesse.helpers import slice_candles EMD = namedtuple('EMD', ['upperband', 'middleband', 'lowerband']) def emd(candles: np.ndarray, period: int = 20, delta=0.5, fraction=0.1, sequential: bool = False) -> EMD: """ Empirical Mode Decomposition by John F. Ehlers and Ric Way :param candles: np.ndarray :param period: int - default: 20 :param delta: float - default: 0.5 :param fraction: float - default: 0.1 :param sequential: bool - default: False :return: EMD(upperband, middleband, lowerband) """ candles = slice_candles(candles, sequential) price = (candles[:, 3] + candles[:, 4]) / 2 bp = bp_fast(price, period, delta) mean = sma(bp, 2 * period, sequential=True) peak, valley = peak_valley_fast(bp, price) avg_peak = fraction * sma(peak, 50, sequential=True) avg_valley = fraction * sma(valley, 50, sequential=True) if sequential: return EMD(avg_peak, mean, avg_valley) else: return EMD(avg_peak[-1], mean[-1], avg_valley[-1]) @njit(cache=True) def bp_fast(price, period, delta): # bandpass filter beta = np.cos(2 * np.pi / period) gamma = 1 / np.cos(4 * np.pi * delta / period) alpha = gamma - np.sqrt(gamma * gamma - 1) bp = np.zeros_like(price) for i in range(price.shape[0]): if i > 2: bp[i] = 0.5 * (1 - alpha) * (price[i] - price[i - 2]) + beta * (1 + alpha) * bp[i - 1] - alpha * bp[i - 2] else: bp[i] = 0.5 * (1 - alpha) * (price[i] - price[i - 2]) return bp @njit(cache=True) def peak_valley_fast(bp, price): peak = np.copy(bp) valley = np.copy(bp) for i in range(price.shape[0]): peak[i] = peak[i - 1] valley[i] = valley[i - 1] if i > 2: if bp[i - 1] > bp[i] and bp[i - 1] > bp[i - 2]: peak[i] = bp[i - 1] if bp[i - 1] < bp[i] and bp[i - 1] < bp[i - 2]: valley[i] = bp[i - 1] return peak, valley ================================================ FILE: jesse/indicators/emv.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import same_length, slice_candles from jesse.indicators import sma @njit def _emv(high: np.ndarray, low: np.ndarray, volume: np.ndarray, length, div) -> np.ndarray: hl2 = (high + low) / 2 hl2_change = np.zeros_like(hl2) hl2_change[1:] = hl2[1:] - hl2[:-1] # Calculate EMV emv_raw = div * hl2_change * (high - low) / volume # Calculate SMA of EMV result = np.zeros_like(emv_raw) for i in range(length - 1, len(emv_raw)): result[i] = np.mean(emv_raw[i - length + 1:i + 1]) return result def emv(candles: np.ndarray, length: int = 14, div: int = 10000, sequential: bool = False) -> Union[float, np.ndarray]: """ EMV - Ease of Movement :param candles: np.ndarray :param length: int - default: 14 :param div: int - default: 10000 :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) high = candles[:, 3] low = candles[:, 4] volume = candles[:, 5] res = _emv(high, low, volume, length, div) return same_length(candles, res) if sequential else res[-1] ================================================ FILE: jesse/indicators/epma.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles def epma(candles: np.ndarray, period: int = 11, offset: int = 4, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ End Point Moving Average :param candles: np.ndarray :param period: int - default: 14 :param offset: int - default: 4 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = epma_fast(source, period, offset) return res if sequential else res[-1] @njit(cache=True) def epma_fast(source, period, offset): newseries = np.copy(source) for j in range(period + offset + 1 , source.shape[0]): my_sum = 0.0 weightSum = 0.0 for i in range(period - 1): weight = period - i - offset my_sum += (source[j - i] * weight) weightSum += weight newseries[j] = 1 / weightSum * my_sum return newseries ================================================ FILE: jesse/indicators/er.py ================================================ from typing import Union import numpy as np from numpy.lib.stride_tricks import sliding_window_view from jesse.helpers import get_candle_source, same_length, slice_candles def er(candles: np.ndarray, period: int = 5, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ ER - The Kaufman Efficiency indicator :param candles: np.ndarray :param period: int - default: 5 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) change = np.abs(np.diff(source, period)) abs_dif = np.abs(np.diff(source)) swv = sliding_window_view(abs_dif, window_shape=period) volatility = swv.sum() res = change / volatility return same_length(candles, res) if sequential else res[-1] ================================================ FILE: jesse/indicators/eri.py ================================================ from collections import namedtuple import numpy as np from jesse.helpers import get_candle_source, slice_candles from jesse.indicators.ma import ma ERI = namedtuple('ERI', ['bull', 'bear']) def eri(candles: np.ndarray, period: int = 13, matype: int = 1, source_type: str = "close", sequential: bool = False) -> ERI: """ Elder Ray Index (ERI) :param candles: np.ndarray :param period: int - default: 13 :param matype: int - default: 1 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) if matype == 24 or matype == 29: ema = ma(candles, period=period, matype=matype, source_type=source_type, sequential=True) else: ema = ma(source, period=period, matype=matype, sequential=True) bull = candles[:, 3] - ema bear = candles[:, 4] - ema if sequential: return ERI(bull, bear) else: return ERI(bull[-1], bear[-1]) ================================================ FILE: jesse/indicators/fisher.py ================================================ from collections import namedtuple import numpy as np from numba import njit from jesse.helpers import same_length, slice_candles FisherTransform = namedtuple('FisherTransform', ['fisher', 'signal']) @njit def _fisher_transform(high: np.ndarray, low: np.ndarray, period: int) -> tuple: """ Numba-optimized implementation of Fisher Transform """ length = len(high) mid_price = (high + low) / 2 fisher = np.zeros(length) fisher_signal = np.zeros(length) # Initialize first value value1 = 0.0 for i in range(period, length): # Find the highest high and lowest low in the period max_h = np.max(mid_price[i-period+1:i+1]) min_l = np.min(mid_price[i-period+1:i+1]) # Avoid division by zero if max_h - min_l == 0: value0 = 0 else: value0 = 0.33 * 2 * ((mid_price[i] - min_l) / (max_h - min_l) - 0.5) + 0.67 * value1 if value0 > 0.99: value0 = 0.999 elif value0 < -0.99: value0 = -0.999 fisher[i] = 0.5 * np.log((1 + value0) / (1 - value0)) + 0.5 * fisher[i-1] fisher_signal[i] = fisher[i-1] value1 = value0 return fisher, fisher_signal def fisher(candles: np.ndarray, period: int = 9, sequential: bool = False) -> FisherTransform: """ The Fisher Transform helps identify price reversals. :param candles: np.ndarray :param period: int - default: 9 :param sequential: bool - default: False :return: FisherTransform(fisher, signal) """ candles = slice_candles(candles, sequential) fisher_val, fisher_signal = _fisher_transform( np.ascontiguousarray(candles[:, 3]), np.ascontiguousarray(candles[:, 4]), period ) if sequential: return FisherTransform(same_length(candles, fisher_val), same_length(candles, fisher_signal)) else: return FisherTransform(fisher_val[-1], fisher_signal[-1]) ================================================ FILE: jesse/indicators/fosc.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, same_length, slice_candles from numba import njit @njit def linear_regression_line(x, y): n = len(x) sum_x = np.sum(x) sum_y = np.sum(y) sum_xy = np.sum(x * y) sum_xx = np.sum(x * x) slope = (n * sum_xy - sum_x * sum_y) / (n * sum_xx - sum_x * sum_x) intercept = (sum_y - slope * sum_x) / n return slope * x + intercept def fosc(candles: np.ndarray, period: int = 5, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ FOSC - Forecast Oscillator :param candles: np.ndarray :param period: int - default: 5 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) # Prepare the result array res = np.zeros_like(source) # Calculate FOSC for each window for i in range(period - 1, len(source)): window = source[i - period + 1:i + 1] x = np.arange(period) predicted = linear_regression_line(x, window) res[i] = 100 * (window[-1] - predicted[-1]) / window[-1] # Replace initial NaN values with 0 res[:period - 1] = 0 return same_length(candles, res) if sequential else res[-1] ================================================ FILE: jesse/indicators/frama.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import slice_candles def frama(candles: np.ndarray, window: int = 10, FC: int = 1, SC: int = 300, sequential: bool = False) -> Union[ float, np.ndarray]: """ Fractal Adaptive Moving Average (FRAMA) :param candles: np.ndarray :param window: int - default: 10 :param FC: int - default: 1 :param SC: int - default: 300 :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) n = window # n must be even if n % 2 == 1: print("FRAMA n must be even. Adding one") n += 1 res = frame_fast(candles, n, SC, FC) if sequential: return res else: return res[-1] @njit(cache=True) def frame_fast(candles, n, SC, FC): w = np.log(2.0 / (SC + 1)) D = np.zeros(candles.size) D[:n] = np.NaN alphas = np.zeros(candles.size) alphas[:n] = np.NaN for i in range(n, candles.shape[0]): per = candles[i - n:i] v1 = per[per.shape[0] // 2:] v2 = per[:per.shape[0] // 2] N1 = (max(v1[:, 3]) - min(v1[:, 4])) / (n / 2) N2 = (max(v2[:, 3]) - min(v2[:, 4])) / (n / 2) N3 = (max(per[:, 3]) - min(per[:, 4])) / n if N1 > 0 and N2 > 0 and N3 > 0: D[i] = (np.log(N1 + N2) - np.log(N3)) / np.log(2) else: D[i] = D[i - 1] oldalpha = np.exp(w * (D[i] - 1)) # keep btwn 1 & 0.01 oldalpha = max([oldalpha, 0.1]) oldalpha = min([oldalpha, 1]) oldN = (2 - oldalpha) / oldalpha N = ((SC - FC) * ((oldN - 1) / (SC - 1))) + FC alpha_ = 2 / (N + 1) if alpha_ < 2 / (SC + 1): alphas[i] = 2 / (SC + 1) elif alpha_ > 1: alphas[i] = 1 else: alphas[i] = alpha_ frama_val = np.zeros(candles.shape[0]) frama_val[n - 1] = np.mean(candles[:, 2][:n]) frama_val[:n - 1] = np.NaN for i in range(n, frama_val.shape[0]): frama_val[i] = (alphas[i] * candles[:, 2][i]) + (1 - alphas[i]) * frama_val[i - 1] return frama_val ================================================ FILE: jesse/indicators/fwma.py ================================================ from math import fabs from typing import Union import numpy as np from numpy.lib.stride_tricks import sliding_window_view from jesse.helpers import get_candle_source, same_length, slice_candles def fwma(candles: np.ndarray, period: int = 5, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ Fibonacci's Weighted Moving Average (FWMA) :param candles: np.ndarray :param period: int - default: 5 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) fibs = fibonacci(n=period) swv = sliding_window_view(source, window_shape=period) res = np.average(swv, weights=fibs, axis=-1) return same_length(candles, res) if sequential else res[-1] def fibonacci(n: int = 2) -> np.ndarray: """Fibonacci Sequence as a numpy array""" n = int(fabs(n)) if n >= 0 else 2 n -= 1 a, b = 1, 1 result = np.array([a]) for _ in range(n): a, b = b, a + b result = np.append(result, a) fib_sum = np.sum(result) if fib_sum > 0: return result / fib_sum else: return result ================================================ FILE: jesse/indicators/gatorosc.py ================================================ from collections import namedtuple import numpy as np from jesse.helpers import get_candle_source, np_shift, slice_candles GATOR = namedtuple('GATOR', ['upper', 'lower', 'upper_change', 'lower_change']) def gatorosc(candles: np.ndarray, source_type: str = "close", sequential: bool = False) -> GATOR: """ Gator Oscillator by Bill M. Williams :param candles: np.ndarray :param source_type: str - default: "close" :param sequential: bool - default: False :return: GATOR(upper, lower, upper_change, lower_change) """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) jaw = np_shift(numpy_ewma(source, 13), 8, fill_value=np.nan) teeth = np_shift(numpy_ewma(source, 8), 5, fill_value=np.nan) lips = np_shift(numpy_ewma(source, 5), 3, fill_value=np.nan) upper = np.abs(jaw - teeth) lower = -np.abs(teeth - lips) # Calculate momentum for upper: difference from previous value, first element is np.nan upper_change = np.empty_like(upper) upper_change[0] = np.nan upper_change[1:] = np.diff(upper) # Calculate momentum for lower: negative difference from previous value, first element is np.nan lower_change = np.empty_like(lower) lower_change[0] = np.nan lower_change[1:] = -np.diff(lower) if sequential: return GATOR(upper, lower, upper_change, lower_change) else: return GATOR(upper[-1], lower[-1], upper_change[-1], lower_change[-1]) def numpy_ewma(data, window): """ :param data: :param window: :return: """ alpha = 1 / window # scale = 1 / (1 - alpha) n = data.shape[0] scale_arr = (1 - alpha) ** (-1 * np.arange(n)) weights = (1 - alpha) ** np.arange(n) pw0 = (1 - alpha) ** (n - 1) mult = data * pw0 * scale_arr cumsums = mult.cumsum() return cumsums * scale_arr[::-1] / weights.cumsum() ================================================ FILE: jesse/indicators/gauss.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles def gauss(candles: np.ndarray, period: int = 14, poles: int = 4, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ Gaussian Filter :param candles: np.ndarray :param period: int - default: 14 :param poles: int - default: 4 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) fil, to_fill = gauss_fast(source, period, poles) if to_fill != 0: res = np.insert(fil[poles:], 0, np.repeat(np.nan, to_fill)) else: res = fil[poles:] return res if sequential else res[-1] @njit(cache=True) def gauss_fast(source, period, poles): N = source.size source = source[~np.isnan(source)] to_fill = N - source.size PI = np.pi beta = (1 - np.cos(2 * PI / period)) / (np.power(2, 1 / poles) - 1) alpha = -beta + np.sqrt(np.power(beta, 2) + 2 * beta) fil = np.zeros(poles + source.size) if poles == 1: coeff = np.array([alpha, (1 - alpha)]) elif poles == 2: coeff = np.array([alpha ** 2, 2 * (1 - alpha), -(1 - alpha) ** 2]) elif poles == 3: coeff = np.array([alpha ** 3, 3 * (1 - alpha), -3 * (1 - alpha) ** 2, (1 - alpha) ** 3]) elif poles == 4: coeff = np.array([alpha ** 4, 4 * (1 - alpha), -6 * (1 - alpha) ** 2, 4 * (1 - alpha) ** 3, -(1 - alpha) ** 4]) for i in range(source.size): if poles == 1: val = np.array([source[i].item(), fil[i]]) elif poles == 2: val = np.array([source[i].item(), fil[1 + i], fil[i]]) elif poles == 3: val = np.array([source[i].item(), fil[2 + i], fil[1 + i], fil[i]]) elif poles == 4: val = np.array([source[i].item(), fil[3 + i], fil[2 + i], fil[1 + i], fil[i]]) fil[poles + i] = np.dot(coeff, val) return fil, to_fill ================================================ FILE: jesse/indicators/heikin_ashi_candles.py ================================================ from collections import namedtuple import numpy as np from numba import njit from jesse.helpers import slice_candles HA = namedtuple('HA', ['open', 'close', 'high', 'low']) def heikin_ashi_candles(candles: np.ndarray, sequential: bool = False) -> HA: """ Heikin Ashi Candles :param candles: np.ndarray :param sequential: bool - default: False :return: float | np.ndarray """ source = slice_candles(candles, sequential) # Just pick the OPEN,CLOSE,HIGH,LOW Columns from the candles open, close, high, low = ha_fast(source[:,[1,2,3,4]]) if sequential: return HA(open, close, high, low) else: return HA(open[-1], close[-1], high[-1], low[-1]) @njit(cache=True) def ha_fast(source): # index consts to facilitate reading the code OPEN = 0 CLOSE = 1 HIGH = 2 LOW = 3 # init array ha_candles = np.full_like(source, np.nan) for i in range(1,ha_candles.shape[0]): # https://www.investopedia.com/trading/heikin-ashi-better-candlestick/ # ha_candles[i][OPEN] = (source[i-1][OPEN]+source[i-1][CLOSE])/2 ha_candles[i][CLOSE] = (source[i][OPEN]+source[i][CLOSE]+source[i][HIGH]+source[i][LOW])/4 # Using builtins Python min,max and not numpy one since we get this Error: # No implementation of function Function() found for signature: # Still fast since numba supports it ha_candles[i][HIGH] = max([source[i][HIGH], ha_candles[i][OPEN], ha_candles[i][CLOSE]]) ha_candles[i][LOW] = min([source[i][LOW], ha_candles[i][OPEN], ha_candles[i][CLOSE]]) return ha_candles[:,OPEN], ha_candles[:,CLOSE], ha_candles[:,HIGH], ha_candles[:,LOW] ================================================ FILE: jesse/indicators/high_pass.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles def high_pass(candles: np.ndarray, period: int = 48, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ (1 pole) high-pass filter indicator by John F. Ehlers :param candles: np.ndarray :param period: int - default: 48 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) hpf = high_pass_fast(source, period) if sequential: return hpf else: return None if np.isnan(hpf[-1]) else hpf[-1] @njit(cache=True) def high_pass_fast(source, period): # Function is compiled to machine code when called the first time k = 1 alpha = 1 + (np.sin(2 * np.pi * k / period) - 1) / np.cos(2 * np.pi * k / period) newseries = np.copy(source) for i in range(1, source.shape[0]): newseries[i] = (1 - alpha / 2) * source[i] - (1 - alpha / 2) * source[i - 1] \ + (1 - alpha) * newseries[i - 1] return newseries ================================================ FILE: jesse/indicators/high_pass_2_pole.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles def high_pass_2_pole(candles: np.ndarray, period: int = 48, source_type: str = "close", sequential: bool = False) -> \ Union[ float, np.ndarray]: """ (2 pole) high-pass filter indicator by John F. Ehlers :param candles: np.ndarray :param period: int - default: 48 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) hpf = high_pass_2_pole_fast(source, period) if sequential: return hpf else: return None if np.isnan(hpf[-1]) else hpf[-1] @njit(cache=True) def high_pass_2_pole_fast(source, period, K=0.707): # Function is compiled to machine code when called the first time alpha = 1 + (np.sin(2 * np.pi * K / period) - 1) / np.cos(2 * np.pi * K / period) newseries = np.copy(source) for i in range(2, source.shape[0]): newseries[i] = (1 - alpha / 2) ** 2 * source[i] \ - 2 * (1 - alpha / 2) ** 2 * source[i - 1] \ + (1 - alpha / 2) ** 2 * source[i - 2] \ + 2 * (1 - alpha) * newseries[i - 1] - (1 - alpha) ** 2 * newseries[i - 2] return newseries ================================================ FILE: jesse/indicators/hma.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, same_length, slice_candles @njit def _wma(arr: np.ndarray, period: int) -> np.ndarray: """ Weighted Moving Average - optimized with Numba """ weights = np.arange(1, period + 1) wma = np.zeros_like(arr) for i in range(period - 1, len(arr)): wma[i] = np.sum(arr[i - period + 1:i + 1] * weights) / np.sum(weights) return wma def hma(candles: np.ndarray, period: int = 5, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ Hull Moving Average :param candles: np.ndarray :param period: int - default: 5 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) # Calculate components for HMA half_length = int(period / 2) sqrt_length = int(np.sqrt(period)) # Calculate WMAs wma_half = _wma(source, half_length) wma_full = _wma(source, period) # Calculate 2 * WMA(n/2) - WMA(n) raw_hma = 2 * wma_half - wma_full # Calculate final HMA hma = _wma(raw_hma, sqrt_length) return same_length(candles, hma) if sequential else hma[-1] ================================================ FILE: jesse/indicators/hull_suit.py ================================================ from collections import namedtuple from .wma import wma from .ema import ema import numpy as np from jesse.helpers import get_candle_source, slice_candles HullSuit = namedtuple('HullSuit', ['s_hull', 'm_hull', 'signal']) def hull_suit(candles: np.ndarray, mode_switch: str = 'Hma', length: int = 55, length_mult: float = 1.0, source_type: str = 'close', sequential: bool = False) -> HullSuit: """ @author InSilico credits: https://www.tradingview.com/script/hg92pFwS-Hull-Suite/ HullSuit - Hull Suit :param candles: np.ndarray :param mode_switch: str - default: 'Hma' :param length: int - default: 55 :param length_mult: float - default: 1.0 :param source_type: str - default: "closes" :param sequential: bool - default=False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) mode_len = int(length * length_mult) if mode_switch == 'Hma': mode = wma(2*wma(source, int(mode_len / 2), sequential=True) - wma(source, mode_len, sequential=True), round(mode_len ** 0.5), sequential=True) elif mode_switch == 'Ehma': mode = ema(2*ema(source, int(mode_len / 2), sequential=True) - ema(source, mode_len, sequential=True), round(mode_len ** 0.5), sequential=True) elif mode_switch == 'Thma': mode = wma(3*wma(source, int(mode_len / 6), sequential=True) - wma(source, int(mode_len / 4), sequential=True) - wma(source, int(mode_len / 2), sequential=True), int(mode_len / 2), sequential=True) # Vectorized computation for s_hull, m_hull, and signal n = len(mode) s_hull = np.full(n, None, dtype=object) m_hull = np.full(n, None, dtype=object) signal = np.full(n, None, dtype=object) if n > 2: s_hull[2:] = mode[:-2] m_hull[2:] = mode[2:] signal[2:] = np.where(mode[:-2] < mode[2:], 'buy', 'sell') if sequential: return HullSuit(s_hull, m_hull, signal) else: return HullSuit(s_hull[-1], m_hull[-1], signal[-1]) ================================================ FILE: jesse/indicators/hurst_exponent.py ================================================ import numpy as np from numba import njit from scipy import signal from jesse.helpers import get_candle_source, slice_candles def hurst_exponent(candles: np.ndarray, min_chunksize: int = 8, max_chunksize: int = 200, num_chunksize:int=5, method:int=1, source_type: str = "close") -> float: """ Hurst Exponent :param candles: np.ndarray :param min_chunksize: int - default: 8 :param max_chunksize: int - default: 200 :param num_chunksize: int - default: 5 :param method: int - default: 1 - 0: RS | 1: DMA | 2: DSOD :param source_type: str - default: "close" :return: float """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, False) source = get_candle_source(candles, source_type=source_type) if method == 0: h = hurst_rs(np.diff(source), min_chunksize, max_chunksize, num_chunksize) elif method == 1: h = hurst_dma(source, min_chunksize, max_chunksize, num_chunksize) elif method == 2: h = hurst_dsod(source) else: raise NotImplementedError('The method choose is not implemented.') return None if np.isnan(h) else h @njit(cache=True) def hurst_rs(x, min_chunksize, max_chunksize, num_chunksize): """Estimate the Hurst exponent using R/S method. Estimates the Hurst (H) exponent using the R/S method from the time series. The R/S method consists of dividing the series into pieces of equal size `series_len` and calculating the rescaled range. This repeats the process for several `series_len` values and adjusts data regression to obtain the H. `series_len` will take values between `min_chunksize` and `max_chunksize`, the step size from `min_chunksize` to `max_chunksize` can be controlled through the parameter `step_chunksize`. Parameters ---------- x : 1D-array A time series to calculate hurst exponent, must have more elements than `min_chunksize` and `max_chunksize`. min_chunksize : int This parameter allow you control the minimum window size. max_chunksize : int This parameter allow you control the maximum window size. num_chunksize : int This parameter allow you control the size of the step from minimum to maximum window size. Bigger step means fewer calculations. out : 1-element-array, optional one element array to store the output. Returns ------- H : float A estimation of Hurst exponent. References ---------- Hurst, H. E. (1951). Long term storage capacity of reservoirs. ASCE Transactions, 116(776), 770-808. Alessio, E., Carbone, A., Castelli, G. et al. Eur. Phys. J. B (2002) 27: 197. http://dx.doi.org/10.1140/epjb/e20020150 """ N = len(x) max_chunksize += 1 rs_tmp = np.empty(N, dtype=np.float64) chunk_size_list = np.linspace(min_chunksize, max_chunksize, num_chunksize) \ .astype(np.int64) rs_values_list = np.empty(num_chunksize, dtype=np.float64) # 1. The series is divided into chunks of chunk_size_list size for i in range(num_chunksize): chunk_size = chunk_size_list[i] # 2. it iterates on the indices of the first observation of each chunk number_of_chunks = int(len(x) / chunk_size) for idx in range(number_of_chunks): # next means no overlapping # convert index to index selection of each chunk ini = idx * chunk_size end = ini + chunk_size chunk = x[ini:end] # 2.1 Calculate the RS (chunk_size) z = np.cumsum(chunk - np.mean(chunk)) rs_tmp[idx] = np.divide( np.max(z) - np.min(z), # range np.nanstd(chunk) # standar deviation ) # 3. Average of RS(chunk_size) rs_values_list[i] = np.nanmean(rs_tmp[:idx + 1]) # 4. calculate the Hurst exponent. H, c = np.linalg.lstsq( a=np.vstack((np.log(chunk_size_list), np.ones(num_chunksize))).T, b=np.log(rs_values_list) )[0] return H def hurst_dma(prices, min_chunksize=8, max_chunksize=200, num_chunksize=5): """Estimate the Hurst exponent using R/S method. Estimates the Hurst (H) exponent using the DMA method from the time series. The DMA method consists on calculate the moving average of size `series_len` and subtract it to the original series and calculating the standard deviation of that result. This repeats the process for several `series_len` values and adjusts data regression to obtain the H. `series_len` will take values between `min_chunksize` and `max_chunksize`, the step size from `min_chunksize` to `max_chunksize` can be controlled through the parameter `step_chunksize`. Parameters ---------- prices min_chunksize max_chunksize num_chunksize Returns ------- hurst_exponent : float Estimation of hurst exponent. References ---------- Alessio, E., Carbone, A., Castelli, G. et al. Eur. Phys. J. B (2002) 27: 197. https://dx.doi.org/10.1140/epjb/e20020150 """ max_chunksize += 1 N = len(prices) n_list = np.arange(min_chunksize, max_chunksize, num_chunksize, dtype=np.int64) dma_list = np.empty(len(n_list)) factor = 1 / (N - max_chunksize) # sweeping n_list for i, n in enumerate(n_list): b = np.divide([n - 1] + (n - 1) * [-1], n) # do the same as: y - y_ma_n noise = np.power(signal.lfilter(b, 1, prices)[max_chunksize:], 2) dma_list[i] = np.sqrt(factor * np.sum(noise)) H, const = np.linalg.lstsq( a=np.vstack([np.log10(n_list), np.ones(len(n_list))]).T, b=np.log10(dma_list), rcond=None )[0] return H def hurst_dsod(x): """Estimate Hurst exponent on data timeseries. The estimation is based on the discrete second order derivative. Consists on get two different noise of the original series and calculate the standard deviation and calculate the slope of two point with that values. source: https://gist.github.com/wmvanvliet/d883c3fe1402c7ced6fc Parameters ---------- x : numpy array time series to estimate the Hurst exponent for. Returns ------- h : float The estimation of the Hurst exponent for the given time series. References ---------- Istas, J.; G. Lang (1994), “Quadratic variations and estimation of the local Hölder index of data Gaussian process,” Ann. Inst. Poincaré, 33, pp. 407–436. Notes ----- This hurst_ets is data literal traduction of wfbmesti.m of waveleet toolbox from matlab. """ y = np.cumsum(np.diff(x, axis=0), axis=0) # second order derivative b1 = [1, -2, 1] y1 = signal.lfilter(b1, 1, y, axis=0) y1 = y1[len(b1) - 1:] # first values contain filter artifacts # wider second order derivative b2 = [1, 0, -2, 0, 1] y2 = signal.lfilter(b2, 1, y, axis=0) y2 = y2[len(b2) - 1:] # first values contain filter artifacts s1 = np.mean(y1 ** 2, axis=0) s2 = np.mean(y2 ** 2, axis=0) return 0.5 * np.log2(s2 / s1) ================================================ FILE: jesse/indicators/hwma.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, same_length, slice_candles def hwma(candles: np.ndarray, na: float = 0.2, nb: float = 0.1, nc: float = 0.1, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ Holt-Winter Moving Average :param candles: np.ndarray :param na: float - default: 0.2 :param nb: float - default: 0.1 :param nc: float - default: 0.1 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if not ((0 < na < 1) or (0 < nb < 1) or (0 < nc < 1)): raise ValueError("Bad parameters. They have to be: 0 < na nb nc < 1") # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) source_without_nan = source[~np.isnan(source)] res = hwma_fast(source_without_nan, na, nb, nc) res = same_length(candles, res) return res if sequential else res[-1] @njit(cache=True) def hwma_fast(source, na, nb, nc): last_a = last_v = 0 last_f = source[0] newseries = np.copy(source) for i in range(source.size): F = (1.0 - na) * (last_f + last_v + 0.5 * last_a) + na * source[i] V = (1.0 - nb) * (last_v + last_a) + nb * (F - last_f) A = (1.0 - nc) * last_a + nc * (V - last_v) newseries[i] = F + V + 0.5 * A last_a, last_f, last_v = A, F, V # update values return newseries ================================================ FILE: jesse/indicators/ichimoku_cloud.py ================================================ from collections import namedtuple import numpy as np from jesse_rust import ichimoku_cloud as ichimoku_cloud_rust IchimokuCloud = namedtuple('IchimokuCloud', ['conversion_line', 'base_line', 'span_a', 'span_b']) def ichimoku_cloud(candles: np.ndarray, conversion_line_period: int = 9, base_line_period: int = 26, lagging_line_period: int = 52, displacement: int = 26) -> IchimokuCloud: """ Ichimoku Cloud :param candles: np.ndarray :param conversion_line_period: int - default: 9 :param base_line_period: int - default: 26 :param lagging_line_period: int - default: 52 :param displacement: - default: 26 :return: IchimokuCloud(conversion_line, base_line, span_a, span_b) """ if candles.shape[0] < 80: return IchimokuCloud(np.nan, np.nan, np.nan, np.nan) if candles.shape[0] > 80: candles = candles[-80:] conversion_line, base_line, span_a, span_b = ichimoku_cloud_rust( candles, conversion_line_period, base_line_period, lagging_line_period, displacement ) return IchimokuCloud(conversion_line, base_line, span_a, span_b) ================================================ FILE: jesse/indicators/ichimoku_cloud_seq.py ================================================ from collections import namedtuple import numpy as np from numpy.lib.stride_tricks import sliding_window_view from jesse.helpers import np_shift, slice_candles IchimokuCloud = namedtuple('IchimokuCloud', ['conversion_line', 'base_line', 'span_a', 'span_b', 'lagging_line', 'future_span_a', 'future_span_b']) def ichimoku_cloud_seq(candles: np.ndarray, conversion_line_period: int = 9, base_line_period: int = 26, lagging_line_period: int = 52, displacement: int = 26, sequential: bool = False) -> IchimokuCloud: """ Ichimoku Cloud :param candles: np.ndarray :param conversion_line_period: int - default: 9 :param base_line_period: int - default: 26 :param lagging_line_period: int - default: 52 :param displacement: - default: 26 :param sequential: bool - default: False :return: IchimokuCloud """ if candles.shape[0] < lagging_line_period + displacement: raise ValueError("Too few candles available for lagging_line_period + displacement.") candles = slice_candles(candles, sequential) conversion_line = _line_helper(candles, conversion_line_period) base_line = _line_helper(candles, base_line_period) span_b_pre = _line_helper(candles, lagging_line_period) span_b = np_shift(span_b_pre, displacement, fill_value=np.nan) span_a_pre = (conversion_line + base_line) / 2 span_a = np_shift(span_a_pre, displacement, fill_value=np.nan) lagging_line = np_shift(candles[:, 2], displacement - 1, fill_value=np.nan) if sequential: return IchimokuCloud(conversion_line, base_line, span_a, span_b, lagging_line, span_a_pre, span_b_pre) else: return IchimokuCloud(conversion_line[-1], base_line[-1], span_a[-1], span_b[-1], lagging_line[-1], span_a_pre[-1], span_b_pre[-1]) def _line_helper(candles, period): small_ph = _rolling_max(candles[:, 3], period) small_pl = _rolling_min(candles[:, 4], period) return (small_ph + small_pl) / 2 def _rolling_max(a, period): n = len(a) if n < period: return np.full(n, np.nan) windows = sliding_window_view(a, window_shape=period) r = np.empty(n, dtype=a.dtype) r[:period-1] = np.nan r[period-1:] = np.max(windows, axis=-1) return r def _rolling_min(a, period): n = len(a) if n < period: return np.full(n, np.nan) windows = sliding_window_view(a, window_shape=period) r = np.empty(n, dtype=a.dtype) r[:period-1] = np.nan r[period-1:] = np.min(windows, axis=-1) return r ================================================ FILE: jesse/indicators/ift_rsi.py ================================================ from typing import Union from jesse.indicators.wma import wma from jesse.indicators.rsi import rsi import numpy as np from jesse.helpers import get_candle_source, same_length, slice_candles def ift_rsi(candles: np.ndarray, rsi_period: int = 5, wma_period: int =9, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ Modified Inverse Fisher Transform applied on RSI :param candles: np.ndarray :param rsi_period: int - default: 5 :param wma_period: int - default: 9 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) v1 = 0.1 * (rsi(source, rsi_period, sequential=True) - 50) v2 = wma(v1, wma_period, sequential=True) res = (((2*v2) ** 2 - 1) / ((2*v2) ** 2 + 1)) return same_length(candles, res) if sequential else res[-1] ================================================ FILE: jesse/indicators/itrend.py ================================================ from collections import namedtuple import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles ITREND = namedtuple('ITREND', ['signal', 'it', 'trigger']) def itrend(candles: np.ndarray, alpha: float = 0.07, source_type: str = "hl2", sequential: bool = False) -> ITREND: """ Instantaneous Trendline :param candles: np.ndarray :param alpha: float - default: 0.07 :param source_type: str - default: "hl2" :param sequential: bool - default: False :return: ITREND(signal, it, trigger) """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) signal, it, trigger = itrend_fast(source, alpha) if sequential: return ITREND(signal, it, trigger) else: return ITREND(signal[-1], it[-1], trigger[-1]) @njit(cache=True) def itrend_fast(source, alpha): it = np.copy(source) for i in range(2, 7): it[i] = (source[i] + 2 * source[i - 1] + source[i - 2]) / 4 for i in range(7, source.shape[0]): it[i] = (alpha - alpha ** 2 / 4) * source[i] \ + alpha ** 2 / 2 * source[i - 1] \ - (alpha - alpha ** 2 * 3 / 4) * source[i - 2] \ + 2 * (1 - alpha) * it[i - 1] - (1 - alpha) ** 2 * it[i - 2] # compute lead 2 trigger & signal lag2 = np.roll(it, 20) lag2[:20] = it[:20] trigger = 2 * it - lag2 signal = (trigger > it) * 1 - (trigger < it) * 1 return signal, it, trigger ================================================ FILE: jesse/indicators/jma.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles def jma(candles: np.ndarray, period:int=7, phase:float=50, power:int=2, source_type:str='close', sequential:bool=False) -> Union[ float, np.ndarray]: """ Jurik Moving Average Port of: https://tradingview.com/script/nZuBWW9j-Jurik-Moving-Average/ """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) phaseRatio = 0.5 if phase < -100 else (2.5 if phase > 100 else phase / 100 + 1.5) beta = 0.45 * (period - 1) / (0.45 * (period - 1) + 2) alpha = pow(beta, power) res = jma_helper(source, phaseRatio, beta, alpha) return res if sequential else res[-1] @njit(cache=True) def jma_helper(src, phaseRatio, beta, alpha): jma_val = np.copy(src) e0 = np.full_like(src, 0) e1 = np.full_like(src, 0) e2 = np.full_like(src, 0) for i in range(1, src.shape[0]): e0[i] = (1 - alpha) * src[i] + alpha * e0[i-1] e1[i] = (src[i] - e0[i]) * (1 - beta) + beta * e1[i-1] e2[i] = (e0[i] + phaseRatio * e1[i] - jma_val[i - 1]) * pow(1 - alpha, 2) + pow(alpha, 2) * e2[i - 1] jma_val[i] = e2[i] + jma_val[i - 1] return jma_val ================================================ FILE: jesse/indicators/jsa.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, np_shift, slice_candles def jsa(candles: np.ndarray, period: int = 30, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ Jsa Moving Average :param candles: np.ndarray :param period: int - default: 30 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = (source + np_shift(source, period, np.nan)) / 2 return res if sequential else res[-1] ================================================ FILE: jesse/indicators/kama.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles from jesse_rust import kama as kama_rust def kama(candles: np.ndarray, period: int = 14, fast_length: int = 2, slow_length: int = 30, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ KAMA - Kaufman Adaptive Moving Average :param candles: np.ndarray :param period: int - default: 14, lookback period for the calculation :param fast_length: int - default: 2, fast EMA length for smoothing factor :param slow_length: int - default: 30, slow EMA length for smoothing factor :param source_type: str - default: "close", specifies the candle field :param sequential: bool - default: False, if True returns the full array, otherwise only the last value :return: float | np.ndarray """ if candles.ndim == 1: src = candles else: candles = slice_candles(candles, sequential) src = get_candle_source(candles, source_type=source_type) src = np.asarray(src, dtype=np.float64) result = kama_rust(src, period, fast_length, slow_length) return result if sequential else result[-1] ================================================ FILE: jesse/indicators/kaufmanstop.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles from jesse.indicators.ma import ma def kaufmanstop(candles: np.ndarray, period: int = 22, mult: float = 2, direction: str = "long", matype: int = 0, sequential: bool = False) -> Union[ float, np.ndarray]: """ Perry Kaufman's Stops :param candles: np.ndarray :param period: int - default: 22 :param mult: float - default: 2 :param direction: str - default: long :param matype: int - default: 0 :param sequential: bool - default: False :return: float | np.ndarray """ if matype == 24 or matype == 29: raise ValueError("VWMA (matype 24) and VWAP (matype 29) cannot be used in kaufmanstop indicator.") candles = slice_candles(candles, sequential) high = candles[:, 3] low = candles[:, 4] hl_diff = ma(high - low, period=period, matype=matype, sequential=True) res = low - hl_diff * mult if direction == "long" else high + hl_diff * mult return res if sequential else res[-1] ================================================ FILE: jesse/indicators/kdj.py ================================================ from collections import namedtuple import numpy as np from jesse.helpers import slice_candles from jesse.indicators.ma import ma KDJ = namedtuple('KDJ', ['k', 'd', 'j']) def _rolling_max(a, window): from numpy.lib.stride_tricks import sliding_window_view a = np.asarray(a) if len(a) < window: return np.maximum.accumulate(a) result = np.empty_like(a) # Use vectorized cumulative maximum for the first window-1 elements result[:window-1] = np.maximum.accumulate(a)[:window-1] windows = sliding_window_view(a, window_shape=window) result[window-1:] = np.max(windows, axis=1) return result def _rolling_min(a, window): from numpy.lib.stride_tricks import sliding_window_view a = np.asarray(a) if len(a) < window: return np.minimum.accumulate(a) result = np.empty_like(a) # Use vectorized cumulative minimum for the first window-1 elements result[:window-1] = np.minimum.accumulate(a)[:window-1] windows = sliding_window_view(a, window_shape=window) result[window-1:] = np.min(windows, axis=1) return result def kdj(candles: np.ndarray, fastk_period: int = 9, slowk_period: int = 3, slowk_matype: int = 0, slowd_period: int = 3, slowd_matype: int = 0, sequential: bool = False) -> KDJ: """ The KDJ Oscillator :param candles: np.ndarray :param fastk_period: int - default: 9 :param slowk_period: int - default: 3 :param slowk_matype: int - default: 0 :param slowd_period: int - default: 3 :param slowd_matype: int - default: 0 :param sequential: bool - default: False :return: KDJ(k, d, j) """ if any(matype in (24, 29) for matype in (slowk_matype, slowd_matype)): raise ValueError("VWMA (matype 24) and VWAP (matype 29) cannot be used in kdj indicator.") candles = slice_candles(candles, sequential) candles_close = candles[:, 2] candles_high = candles[:, 3] candles_low = candles[:, 4] hh = _rolling_max(candles_high, fastk_period) ll = _rolling_min(candles_low, fastk_period) stoch = 100 * (candles_close - ll) / (hh - ll) k = ma(stoch, period=slowk_period, matype=slowk_matype, sequential=True) d = ma(k, period=slowd_period, matype=slowd_matype, sequential=True) j = 3 * k - 2 * d if sequential: return KDJ(k, d, j) else: return KDJ(k[-1], d[-1], j[-1]) ================================================ FILE: jesse/indicators/keltner.py ================================================ from collections import namedtuple import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles from jesse.indicators.ma import ma KeltnerChannel = namedtuple('KeltnerChannel', ['upperband', 'middleband', 'lowerband']) @njit def _atr(high: np.ndarray, low: np.ndarray, close: np.ndarray, period: int) -> np.ndarray: """ Calculate ATR using Numba """ n = len(close) tr = np.empty(n) atr_vals = np.full(n, np.nan) # Calculate True Range tr[0] = high[0] - low[0] for i in range(1, n): hl = high[i] - low[i] hc = abs(high[i] - close[i-1]) lc = abs(low[i] - close[i-1]) tr[i] = max(max(hl, hc), lc) if n < period: return atr_vals # First ATR value is the simple average of the first 'period' true ranges atr_vals[period-1] = np.mean(tr[:period]) # Calculate subsequent ATR values using Wilder's smoothing for i in range(period, n): atr_vals[i] = (atr_vals[i-1] * (period - 1) + tr[i]) / period return atr_vals @njit def _calculate_keltner(source: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray, ma_values: np.ndarray, period: int, multiplier: float) -> tuple: """ Core Keltner Channel calculation using Numba """ atr_vals = _atr(high, low, close, period) up = ma_values + atr_vals * multiplier low = ma_values - atr_vals * multiplier return up, ma_values, low def keltner(candles: np.ndarray, period: int = 20, multiplier: float = 2, matype: int = 1, source_type: str = "close", sequential: bool = False) -> KeltnerChannel: """ Keltner Channels using Numba for optimization :param candles: np.ndarray :param period: int - default: 20 :param multiplier: float - default: 2 :param matype: int - default: 1 :param source_type: str - default: "close" :param sequential: bool - default: False :return: KeltnerChannel(upperband, middleband, lowerband) """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) if matype == 24 or matype == 29: ma_values = ma(candles, period=period, matype=matype, source_type=source_type, sequential=True) else: ma_values = ma(source, period=period, matype=matype, sequential=True) up, mid, low = _calculate_keltner( source, candles[:, 3], # high candles[:, 4], # low candles[:, 2], # close ma_values, period, multiplier ) if sequential: return KeltnerChannel(up, mid, low) else: return KeltnerChannel(up[-1], mid[-1], low[-1]) ================================================ FILE: jesse/indicators/kst.py ================================================ from collections import namedtuple from jesse.indicators.roc import roc as _roc from jesse.indicators.sma import sma as _sma import numpy as np from jesse.helpers import get_candle_source, slice_candles KST = namedtuple('KST', ['line', 'signal']) def kst(candles: np.ndarray, sma_period1: int = 10, sma_period2: int = 10, sma_period3: int = 10, sma_period4: int = 15, roc_period1: int = 10, roc_period2: int = 15, roc_period3: int = 20, roc_period4: int = 30, signal_period: int = 9, source_type: str = "close", sequential: bool = False) -> KST: """ Know Sure Thing (KST) :param candles: np.ndarray :param sma_period1: int - default: 10 :param sma_period2: int - default: 10 :param sma_period3: int - default: 10 :param sma_period4: int - default: 15 :param roc_period1: int - default: 10 :param roc_period2: int - default: 15 :param roc_period3: int - default: 20 :param roc_period4: int - default: 30 :param signal_period: int - default: 9 :param source_type: str - default: "close" :param sequential: bool - default: False :return: KST(line, signal) """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) aroc1 = _sma(_roc(source, roc_period1, sequential=True), sma_period1, sequential=True) aroc2 = _sma(_roc(source, roc_period2, sequential=True), sma_period2, sequential=True) aroc3 = _sma(_roc(source, roc_period3, sequential=True), sma_period3, sequential=True) aroc4 = _sma(_roc(source, roc_period4, sequential=True), sma_period4, sequential=True) # Align arrays so that all have the same length as aroc4 aligned_len = aroc4.size aroc1_aligned = aroc1[aroc1.size - aligned_len:] aroc2_aligned = aroc2[aroc2.size - aligned_len:] aroc3_aligned = aroc3[aroc3.size - aligned_len:] line = aroc1_aligned + 2 * aroc2_aligned + 3 * aroc3_aligned + 4 * aroc4 signal = _sma(line, signal_period, sequential=True) if sequential: return KST(line, signal) else: return KST(line[-1], signal[-1]) ================================================ FILE: jesse/indicators/kurtosis.py ================================================ from typing import Union import numpy as np from numpy.lib.stride_tricks import sliding_window_view from scipy import stats from jesse.helpers import get_candle_source, same_length, slice_candles def kurtosis(candles: np.ndarray, period: int = 5, source_type: str = "hl2", sequential: bool = False) -> Union[ float, np.ndarray]: """ Skewness :param candles: np.ndarray :param period: int - default: 5 :param source_type: str - default: "hl2" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) swv = sliding_window_view(source, window_shape=period) kurtosis_val = stats.kurtosis(swv, axis=-1) res = same_length(source, kurtosis_val) return res if sequential else res[-1] ================================================ FILE: jesse/indicators/kvo.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles from jesse.indicators import ema def kvo(candles: np.ndarray, short_period: int = 34, long_period: int = 55, sequential: bool = False) -> Union[float, np.ndarray]: """ KVO - Klinger Volume Oscillator :param candles: np.ndarray :param short_period: int - default: 34 :param long_period: int - default: 55 :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) # Calculate HLC3 hlc3 = (candles[:, 3] + candles[:, 4] + candles[:, 2]) / 3 # Calculate momentum (change in HLC3) mom = np.diff(hlc3, prepend=hlc3[0]) # Calculate trend trend = np.zeros_like(mom) trend[1:] = np.where(mom[1:] > 0, 1, np.where(mom[1:] < 0, -1, trend[:-1])) # Daily Measurement (High - Low) dm = candles[:, 3] - candles[:, 4] # Cumulative Measurement cm = np.zeros_like(dm) for i in range(1, len(trend)): if trend[i] == trend[i-1]: cm[i] = cm[i-1] + dm[i] else: cm[i] = dm[i] + dm[i-1] # Volume Force volume = candles[:, 5] with np.errstate(divide='ignore', invalid='ignore'): expr = np.abs(np.divide(2 * dm, cm, out=np.zeros_like(dm, dtype=float), where=cm != 0) - 1) vf = 100 * volume * trend * expr vf[cm == 0] = 0 # Calculate EMAs fast_ema = ema(vf, period=short_period, sequential=True) slow_ema = ema(vf, period=long_period, sequential=True) res = fast_ema - slow_ema return res if sequential else res[-1] ================================================ FILE: jesse/indicators/linearreg.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles @njit(cache=True) def _fast_linearreg(source: np.ndarray, period: int) -> np.ndarray: n = len(source) result = np.full(n, np.nan) x = np.arange(period) mean_x = (period - 1) / 2.0 S_xx = np.sum((x - mean_x) ** 2) for i in range(n - period + 1): window = source[i:i+period] mean_y = np.mean(window) S_xy = np.sum((window - mean_y) * (x - mean_x)) result[i + period - 1] = mean_y + ((period - 1) / 2.0) * (S_xy / S_xx) return result def linearreg(candles: np.ndarray, period: int = 14, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ LINEARREG - Linear Regression :param candles: np.ndarray :param period: int - default: 14 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) n = len(source) if n >= period: try: from numpy.lib.stride_tricks import sliding_window_view windows = sliding_window_view(source, window_shape=period) # shape (n - period + 1, period) mean_y = np.mean(windows, axis=1) x = np.arange(period) mean_x = (period - 1) / 2.0 S_xx = np.sum((x - mean_x) ** 2) S_xy = np.sum((windows - mean_y[:, None]) * (x - mean_x), axis=1) result = np.full(n, np.nan) result[period-1:] = mean_y + ((period - 1) / 2.0) * (S_xy / S_xx) except ImportError: result = _fast_linearreg(source, period) else: result = np.full(n, np.nan) return result if sequential else result[-1] ================================================ FILE: jesse/indicators/linearreg_angle.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles def linearreg_angle(candles: np.ndarray, period: int = 14, source_type: str = "close", sequential: bool = False) -> \ Union[float, np.ndarray]: """ LINEARREG_ANGLE - Linear Regression Angle :param candles: np.ndarray :param period: int - default: 14 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) N = len(source) res = np.full(N, np.nan) if N >= period: # Create rolling windows of length 'period' windows = np.lib.stride_tricks.sliding_window_view(source, window_shape=period) x = np.arange(period) sum_x = x.sum() sum_x2 = (x * x).sum() common_den = period * sum_x2 - sum_x ** 2 sum_y = np.sum(windows, axis=1) sum_xy = windows.dot(x) slopes = (period * sum_xy - sum_x * sum_y) / common_den angles = np.degrees(np.arctan(slopes)) res[period - 1:] = angles return res if sequential else res[-1] ================================================ FILE: jesse/indicators/linearreg_intercept.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles def linearreg_intercept(candles: np.ndarray, period: int = 14, source_type: str = "close", sequential: bool = False) -> \ Union[float, np.ndarray]: """ LINEARREG_INTERCEPT - Linear Regression Intercept :param candles: np.ndarray :param period: int - default: 14 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) # Compute linear regression intercept using vectorized operations if len(source) < period: if sequential: return np.full_like(source, np.nan, dtype=float) else: return np.nan x = np.arange(period, dtype=float) x_mean = x.mean() sxx = ((x - x_mean) ** 2).sum() if sequential: # Compute rolling windows using a vectorized approach windows = np.lib.stride_tricks.sliding_window_view(source, window_shape=period) means = windows.mean(axis=1) slopes = np.dot(windows - means[:, None], (x - x_mean)) / sxx intercepts = means - slopes * x_mean result = np.concatenate((np.full(period - 1, np.nan), intercepts)) return result else: window = source[-period:] mean_val = window.mean() slope = np.dot(window - mean_val, (x - x_mean)) / sxx intercept = mean_val - slope * x_mean return intercept ================================================ FILE: jesse/indicators/linearreg_slope.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles def linearreg_slope(candles: np.ndarray, period: int = 14, source_type: str = "close", sequential: bool = False) -> \ Union[float, np.ndarray]: """ LINEARREG_SLOPE - Linear Regression Slope :param candles: np.ndarray :param period: int - default: 14 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) n = len(source) result = np.full(n, np.nan, dtype=float) if n < period: return result if sequential else result[-1] # Create a constant x-axis for the regression X = np.arange(period, dtype=float) sumX = X.sum() sumX2 = (X**2).sum() denom = period * sumX2 - sumX**2 # Compute the rolling window slopes using vectorized operations windows = np.lib.stride_tricks.sliding_window_view(source, window_shape=period) sum_y = windows.sum(axis=1) sum_xy = (windows * X).sum(axis=1) slopes = (period * sum_xy - sumX * sum_y) / denom result[period-1:] = slopes return result if sequential else result[-1] ================================================ FILE: jesse/indicators/lrsi.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import slice_candles def lrsi(candles: np.ndarray, alpha: float = 0.2, sequential: bool = False) -> Union[float, np.ndarray]: """ RSI Laguerre Filter :param candles: np.ndarray :param alpha: float - default: 0.2 :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) rsi = lrsi_fast(alpha, candles) if sequential: return rsi else: return None if np.isnan(rsi[-1]) else rsi[-1] @njit(cache=True) def lrsi_fast(alpha, candles): price = (candles[:, 3] + candles[:, 4]) / 2 l0 = np.copy(price) l1 = np.copy(price) l2 = np.copy(price) l3 = np.copy(price) for i in range(l0.shape[0]): gamma = 1 - alpha l0[i] = alpha * price[i] + gamma * l0[i - 1] l1[i] = -gamma * l0[i] + l0[i - 1] + gamma * l1[i - 1] l2[i] = -gamma * l1[i] + l1[i - 1] + gamma * l2[i - 1] l3[i] = -gamma * l2[i] + l2[i - 1] + gamma * l3[i - 1] rsi = np.zeros_like(price) for i in range(candles[:, 2].shape[0]): cu = 0 cd = 0 if l0[i] >= l1[i]: cu = l0[i] - l1[i] else: cd = l1[i] - l0[i] if l1[i] >= l2[i]: cu = cu + l1[i] - l2[i] else: cd = cd + l2[i] - l1[i] if l2[i] >= l3[i]: cu = cu + l2[i] - l3[i] else: cd = cd + l3[i] - l2[i] rsi[i] = 0 if cu + cd == 0 else cu / (cu + cd) return rsi ================================================ FILE: jesse/indicators/ma.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles def ma(candles: np.ndarray, period: int = 30, matype: int = 0, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ MA - (nearly) All Moving Averages of Jesse :param candles: np.ndarray :param period: int - default: 30 :param matype: int - default: 0 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray 0: sma (simple) 1: ema (exponential) 2: wma (weighted) 3: dema (double exponential) 4: tema (triple exponential) 5: trima (triangular) 6: kama (Kaufman adaptive) 9: fwma (Fibonacci's Weighted Moving Average) 10: hma (Hull Moving Average) 11: linearreg (Linear Regression) 12: wilders (Wilders Smoothing) 13: sinwma (Sine Weighted Moving Average) 14: supersmoother (Super Smoother Filter 2pole Butterworth) 15: supersmoother\_3\_pole(Super Smoother Filter 3pole Butterworth) 16: gauss (Gaussian Filter) 17: high\_pass (1-pole High Pass Filter by John F. Ehlers) 18: high\_pass\_2\_pole (2-pole High Pass Filter by John F. Ehlers) 19: ht\_trendline (Hilbert Transform - Instantaneous Trendline) 20: jma (Jurik Moving Average) 21: reflex (Reflex indicator by John F. Ehlers) 22: trendflex (Trendflex indicator by John F. Ehlers) 23: smma (Smoothed Moving Average) 24: vwma (Volume Weighted Moving Average) 25: pwma (Pascals Weighted Moving Average) 26: swma (Symmetric Weighted Moving Average) 27: alma (Arnaud Legoux Moving Average) 28: hwma (Holt-Winter Moving Average) 29: vwap (Volume weighted average price) 30: nma (Natural Moving Average) 31: edcf (Ehlers Distance Coefficient Filter) 32: mwdx (MWDX Average) 33: maaq (Moving Average Adaptive Q) 34: srwma (Square Root Weighted Moving Average) 35: sqwma (Square Weighted Moving Average) 36: vpwma (Variable Power Weighted Moving Average) 37: cwma (Cubed Weighted Moving Average) 38: jsa (Jsa Moving Average) 39: epma (End Point Moving Average) """ candles = slice_candles(candles, sequential) if matype == 0: from . import sma res = sma(candles, period, source_type=source_type, sequential=True) elif matype == 1: from . import ema res = ema(candles, period, source_type=source_type, sequential=True) elif matype == 2: from . import wma res = wma(candles, period, source_type=source_type, sequential=True) elif matype == 3: from . import dema res = dema(candles, period, source_type=source_type, sequential=True) elif matype == 4: from . import tema res = tema(candles, period, source_type=source_type, sequential=True) elif matype == 5: from . import trima res = trima(candles, period, source_type=source_type, sequential=True) elif matype == 6: from . import kama res = kama(candles, period, source_type=source_type, sequential=True) elif matype == 9: from . import fwma res = fwma(candles, period, source_type=source_type, sequential=True) elif matype == 10: from . import hma res = hma(candles, period, source_type=source_type, sequential=True) elif matype == 11: from . import linearreg res = linearreg(candles, period, source_type=source_type, sequential=True) elif matype == 12: from . import wilders res = wilders(candles, period, source_type=source_type, sequential=True) elif matype == 13: from . import sinwma res = sinwma(candles, period, source_type=source_type, sequential=True) elif matype == 14: from . import supersmoother res = supersmoother(candles, period, source_type=source_type, sequential=True) elif matype == 15: from . import supersmoother_3_pole res = supersmoother_3_pole(candles, period, source_type=source_type, sequential=True) elif matype == 16: from . import gauss res = gauss(candles, period, source_type=source_type, sequential=True) elif matype == 17: from . import high_pass res = high_pass(candles, period, source_type=source_type, sequential=True) elif matype == 18: from . import high_pass_2_pole res = high_pass_2_pole(candles, period, source_type=source_type, sequential=True) elif matype == 20: from . import jma res = jma(candles, period, source_type=source_type, sequential=True) elif matype == 21: from . import reflex res = reflex(candles, period, source_type=source_type, sequential=True) elif matype == 22: from . import trendflex res = trendflex(candles, period, source_type=source_type, sequential=True) elif matype == 23: from . import smma res = smma(candles, period, source_type=source_type, sequential=True) elif matype == 24: if len(candles.shape) == 1: raise ValueError("vwma only works with normal candles.") from . import vwma res = vwma(candles, period, source_type=source_type, sequential=True) elif matype == 25: from . import pwma res = pwma(candles, period, source_type=source_type, sequential=True) elif matype == 26: from . import swma res = swma(candles, period, source_type=source_type, sequential=True) elif matype == 27: from . import alma res = alma(candles, period, source_type=source_type, sequential=True) elif matype == 28: from . import hwma res = hwma(candles, source_type=source_type, sequential=True) elif matype == 29: from . import vwap if len(candles.shape) == 1: raise ValueError("vwap only works with normal candles.") res = vwap(candles, source_type=source_type, sequential=True) elif matype == 30: from . import nma res = nma(candles, period, source_type=source_type, sequential=True) elif matype == 31: from . import edcf res = edcf(candles, period, source_type=source_type, sequential=True) elif matype == 32: from . import mwdx res = mwdx(candles, source_type=source_type, sequential=True) elif matype == 33: from . import maaq res = maaq(candles, period, source_type=source_type, sequential=True) elif matype == 34: from . import srwma res = srwma(candles, period, source_type=source_type, sequential=True) elif matype == 35: from . import sqwma res = sqwma(candles, period, source_type=source_type, sequential=True) elif matype == 36: from . import vpwma res = vpwma(candles, period, source_type=source_type, sequential=True) elif matype == 37: from . import cwma res = cwma(candles, period, source_type=source_type, sequential=True) elif matype == 38: from . import jsa res = jsa(candles, period, source_type=source_type, sequential=True) elif matype == 39: from . import epma res = epma(candles, period, source_type=source_type, sequential=True) elif matype == 7 or matype == 8 or matype == 19: raise ValueError("Invalid matype value.") return res if sequential else res[-1] ================================================ FILE: jesse/indicators/maaq.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import (get_candle_source, np_shift, same_length, slice_candles) def maaq(candles: np.ndarray, period: int = 11, fast_period: int = 2, slow_period: int = 30, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ Moving Average Adaptive Q :param candles: np.ndarray :param period: int - default: 11 :param fast_period: int - default: 2 :param slow_period: int - default: 30 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) source = source[~np.isnan(source)] diff = np.abs(source - np_shift(source, 1, np.nan)) signal = np.abs(source - np_shift(source, period, np.nan)) noise = np.concatenate((np.full(period - 1, np.nan, dtype=source.dtype), np.convolve(diff, np.ones(period, dtype=source.dtype), mode='valid'))) # Safely divide signal by noise ratio = np.divide(signal, noise, out=np.zeros_like(signal), where=(noise != 0)) fastSc = 2 / (fast_period + 1) slowSc = 2 / (slow_period + 1) temp = np.power((ratio * fastSc) + slowSc, 2) res = maaq_fast(source, temp, period) res = same_length(candles, res) return res if sequential else res[-1] @njit(cache=True) def maaq_fast(source, temp, period): newseries = np.copy(source) for i in range(period, source.shape[0]): newseries[i] = newseries[i - 1] + (temp[i] * (source[i] - newseries[i - 1])) return newseries ================================================ FILE: jesse/indicators/mab.py ================================================ from collections import namedtuple import numpy as np from jesse.helpers import get_candle_source, slice_candles from jesse.indicators.ma import ma MAB = namedtuple('MAB', ['upperband', 'middleband', 'lowerband']) def mab(candles: np.ndarray, fast_period: int = 10, slow_period: int = 50, devup: float = 1, devdn: float = 1, fast_matype: int = 0, slow_matype: int = 0, source_type: str = "close", sequential: bool = False) -> MAB: """ Moving Average Bands :param candles: np.ndarray :param fast_period: int - default: 10 :param slow_period: int - default: 50 :param devup: float - default: 1 :param devdn: float - default: 1 :param fast_matype: int - default: 0 :param slow_matype: int - default: 0 :param source_type: str - default: "close" :param sequential: bool - default: False :return: MAB(upperband, middleband, lowerband) """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) if any(matype in (24, 29) for matype in (fast_matype, slow_matype)): fastEma = ma(candles, period=fast_period, matype=fast_matype, source_type=source_type, sequential=True) slowEma = ma(candles, period=slow_period, matype=slow_matype, source_type=source_type, sequential=True) else: fastEma = ma(source, period=fast_period, matype=fast_matype, source_type=source_type, sequential=True) slowEma = ma(source, period=slow_period, matype=slow_matype, source_type=source_type, sequential=True) sqAvg = np.sum(np.power(fastEma - slowEma, 2)[-fast_period:]) / fast_period dev = np.sqrt(sqAvg) middlebands = fastEma upperbands = slowEma + devup * dev lowerbands = slowEma - devdn * dev if sequential: return MAB(upperbands, middlebands, lowerbands) else: return MAB(upperbands[-1], middlebands[-1], lowerbands[-1]) ================================================ FILE: jesse/indicators/macd.py ================================================ from collections import namedtuple import numpy as np from jesse.helpers import get_candle_source, slice_candles from jesse_rust import macd as macd_rust MACD = namedtuple('MACD', ['macd', 'signal', 'hist']) def macd(candles: np.ndarray, fast_period: int = 12, slow_period: int = 26, signal_period: int = 9, source_type: str = "close", sequential: bool = False) -> MACD: """ MACD - Moving Average Convergence/Divergence :param candles: np.ndarray :param fast_period: int - default: 12 :param slow_period: int - default: 26 :param signal_period: int - default: 9 :param source_type: str - default: "close" :param sequential: bool - default: False :return: MACD(macd, signal, hist) """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) if source.size == 0: return MACD(np.nan, np.nan, np.nan) if not sequential else MACD(np.array([]), np.array([]), np.array([])) macd_line, signal_line, hist = macd_rust(source, fast_period, slow_period, signal_period) if sequential: return MACD(macd_line, signal_line, hist) else: return MACD(macd_line[-1], signal_line[-1], hist[-1]) ================================================ FILE: jesse/indicators/mama.py ================================================ from collections import namedtuple import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles MAMA = namedtuple('MAMA', ['mama', 'fama']) def mama(candles: np.ndarray, fastlimit: float = 0.5, slowlimit: float = 0.05, source_type: str = "close", sequential: bool = False) -> MAMA: """ MAMA - MESA Adaptive Moving Average (custom implementation) :param candles: np.ndarray of candle data or price series :param fastlimit: float - default: 0.5 :param slowlimit: float - default: 0.05 :param source_type: str - default: "close" :param sequential: bool - if True, returns full arrays; else returns only the last value :return: MAMA(mama, fama) """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) n = len(source) mama_arr = np.zeros(n) fama_arr = np.zeros(n) # Initialize first element mama_arr[0] = source[0] fama_arr[0] = source[0] mama_arr, fama_arr = fast_mama(source, fastlimit, slowlimit) # Iterate over the series to compute the indicator recursively if sequential: return MAMA(mama_arr, fama_arr) else: return MAMA(mama_arr[-1], fama_arr[-1]) @njit(cache=True) def fast_mama(source, fastlimit, slowlimit): n = len(source) sp = np.zeros(n) dt = np.zeros(n) q1 = np.zeros(n) i1_arr = np.zeros(n) jI = np.zeros(n) jq = np.zeros(n) i2_arr = np.zeros(n) q2_arr = np.zeros(n) re_arr = np.zeros(n) im_arr = np.zeros(n) p1_arr = np.zeros(n) p2_arr = np.zeros(n) p3_arr = np.zeros(n) p_arr = np.zeros(n) spp = np.zeros(n) phase = np.zeros(n) dphase = np.zeros(n) alpha_arr = np.zeros(n) mama_arr = np.zeros(n) fama_arr = np.zeros(n) pi = 3.1415926 for i in range(1, n): # sp: weighted average of the source over 4 bars sp[i] = (4 * source[i] + 3 * (source[i-1] if i-1 >= 0 else 0) + 2 * (source[i-2] if i-2 >= 0 else 0) + (source[i-3] if i-3 >= 0 else 0)) / 10.0 dt[i] = (0.0962 * sp[i] + 0.5769 * (sp[i-2] if i-2 >= 0 else 0) - 0.5769 * (sp[i-4] if i-4 >= 0 else 0) - 0.0962 * (sp[i-6] if i-6 >= 0 else 0)) * (0.075 * (p_arr[i-1] if i-1 >= 0 else 0) + 0.54) q1[i] = (0.0962 * dt[i] + 0.5769 * (dt[i-2] if i-2 >= 0 else 0) - 0.5769 * (dt[i-4] if i-4 >= 0 else 0) - 0.0962 * (dt[i-6] if i-6 >= 0 else 0)) * (0.075 * (p_arr[i-1] if i-1 >= 0 else 0) + 0.54) i1_arr[i] = dt[i-3] if i-3 >= 0 else 0 jI[i] = (0.0962 * i1_arr[i] + 0.5769 * (i1_arr[i-2] if i-2 >= 0 else 0) - 0.5769 * (i1_arr[i-4] if i-4 >= 0 else 0) - 0.0962 * (i1_arr[i-6] if i-6 >= 0 else 0)) * (0.075 * (p_arr[i-1] if i-1 >= 0 else 0) + 0.54) jq[i] = (0.0962 * q1[i] + 0.5769 * (q1[i-2] if i-2 >= 0 else 0) - 0.5769 * (q1[i-4] if i-4 >= 0 else 0) - 0.0962 * (q1[i-6] if i-6 >= 0 else 0)) * (0.075 * (p_arr[i-1] if i-1 >= 0 else 0) + 0.54) i2_temp = i1_arr[i] - jq[i] q2_temp = q1[i] + jI[i] i2_arr[i] = 0.2 * i2_temp + 0.8 * (i2_arr[i-1] if i-1 >= 0 else 0) q2_arr[i] = 0.2 * q2_temp + 0.8 * (q2_arr[i-1] if i-1 >= 0 else 0) re_temp = i2_arr[i] * (i2_arr[i-1] if i-1 >= 0 else 0) + q2_arr[i] * (q2_arr[i-1] if i-1 >= 0 else 0) im_temp = i2_arr[i] * (q2_arr[i-1] if i-1 >= 0 else 0) - q2_arr[i] * (i2_arr[i-1] if i-1 >= 0 else 0) re_arr[i] = 0.2 * re_temp + 0.8 * (re_arr[i-1] if i-1 >= 0 else 0) im_arr[i] = 0.2 * im_temp + 0.8 * (im_arr[i-1] if i-1 >= 0 else 0) if im_arr[i] != 0 and re_arr[i] != 0: p1_arr[i] = 2 * pi / np.arctan(im_arr[i] / re_arr[i]) else: p1_arr[i] = p_arr[i-1] if i-1 >= 0 else 0 if p1_arr[i] > 1.5 * (p_arr[i-1] if i-1 >= 0 else 0): p2 = 1.5 * (p_arr[i-1] if i-1 >= 0 else 0) elif p1_arr[i] < 0.67 * (p_arr[i-1] if i-1 >= 0 else 0): p2 = 0.67 * (p_arr[i-1] if i-1 >= 0 else 0) else: p2 = p1_arr[i] p2_arr[i] = p2 p3_arr[i] = 6 if p2_arr[i] < 6 else (50 if p2_arr[i] > 50 else p2_arr[i]) p_arr[i] = 0.2 * p3_arr[i] + 0.8 * (p_arr[i-1] if i-1 >= 0 else 0) spp[i] = 0.33 * p_arr[i] + 0.67 * (spp[i-1] if i-1 >= 0 else 0) phase[i] = (180 / pi) * np.arctan(q1[i] / i1_arr[i]) if i1_arr[i] != 0 else 0 dphase_val = (phase[i-1] if i-1 >= 0 else 0) - phase[i] dphase_val = dphase_val if dphase_val >= 1 else 1 dphase[i] = dphase_val alpha_temp = fastlimit / dphase[i] if alpha_temp < slowlimit: alpha_arr[i] = slowlimit elif alpha_temp > fastlimit: alpha_arr[i] = fastlimit else: alpha_arr[i] = alpha_temp mama_arr[i] = alpha_arr[i] * source[i] + (1 - alpha_arr[i]) * (mama_arr[i-1] if i-1 >= 0 else source[i]) fama_arr[i] = 0.5 * alpha_arr[i] * mama_arr[i] + (1 - 0.5 * alpha_arr[i]) * (fama_arr[i-1] if i-1 >= 0 else source[i]) return mama_arr, fama_arr ================================================ FILE: jesse/indicators/marketfi.py ================================================ from typing import Union import numpy as np from jesse.helpers import same_length, slice_candles def marketfi(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]: """ MARKETFI - Market Facilitation Index Formula: (High - Low) / Volume :param candles: np.ndarray :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) # high is at index 3, low at index 4, volume at index 5 res = (candles[:, 3] - candles[:, 4]) / candles[:, 5] return same_length(candles, res) if sequential else res[-1] ================================================ FILE: jesse/indicators/mass.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import same_length, slice_candles def mass(candles: np.ndarray, period: int = 5, sequential: bool = False) -> Union[float, np.ndarray]: """ MASS - Mass Index The Mass Index uses the high-low range to identify trend reversals based on range expansions. It suggests that a reversal of the current trend may be imminent when the range widens beyond a certain point and then contracts. :param candles: np.ndarray :param period: int - default: 5 :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) # Calculate high-low range high_low_range = candles[:, 3] - candles[:, 4] # high - low # Calculate 9-period EMA of high-low range ema1 = calc_ema(high_low_range, 9) # Calculate 9-period EMA of the first EMA ema2 = calc_ema(ema1, 9) # Calculate EMA ratio ratio = np.divide(ema1, ema2, out=np.zeros_like(ema1), where=ema2 != 0) # Calculate period-sum of ratio using Numba for optimization res = mass_sum(ratio, period) return same_length(candles, res) if sequential else res[-1] @njit(cache=True) def mass_sum(ratio: np.ndarray, period: int) -> np.ndarray: """Calculate the sum of the ratio over the specified period""" result = np.zeros_like(ratio) for i in range(period - 1, len(ratio)): result[i] = np.sum(ratio[i-period+1:i+1]) return result @njit(cache=True) def calc_ema(data, n): alpha = 2.0 / (n + 1) result = np.empty(data.shape[0]) result[0] = data[0] for i in range(1, data.shape[0]): result[i] = alpha * data[i] + (1 - alpha) * result[i-1] return result ================================================ FILE: jesse/indicators/mcginley_dynamic.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles def mcginley_dynamic(candles: np.ndarray, period: int = 10, k: float = 0.6, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ McGinley Dynamic :param candles: np.ndarray :param period: int - default: 10 :param k: float - default: 0.6 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) mg = md_fast(source, k, period) return mg if sequential else mg[-1] @njit(cache=True) def md_fast(source, k, period): mg = np.full_like(source, np.nan) for i in range(source.size): if i == 0: mg[i] = source[i] else: mg[i] = mg[i - 1] + ((source[i] - mg[i - 1]) / max([(k * period * ((source[i] / mg[i - 1]) ** 4)), 1])) return mg ================================================ FILE: jesse/indicators/mean_ad.py ================================================ from typing import Union import numpy as np from numpy.lib.stride_tricks import sliding_window_view from jesse.helpers import get_candle_source, same_length, slice_candles def mean_ad(candles: np.ndarray, period: int = 5, source_type: str = "hl2", sequential: bool = False) -> Union[ float, np.ndarray]: """ Mean Absolute Deviation :param candles: np.ndarray :param period: int - default: 5 :param source_type: str - default: "hl2" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) swv = sliding_window_view(source, window_shape=period) abs_diff = np.absolute(source - same_length(source, np.mean(swv, -1))) smv_abs_diff = sliding_window_view(abs_diff, window_shape=period) mean_abs_deviation = np.nanmean(smv_abs_diff, -1) res = same_length(source, mean_abs_deviation) return res if sequential else res[-1] ================================================ FILE: jesse/indicators/median_ad.py ================================================ from typing import Union import numpy as np from numpy.lib.stride_tricks import sliding_window_view from scipy import stats from jesse.helpers import get_candle_source, same_length, slice_candles def median_ad(candles: np.ndarray, period: int = 5, source_type: str = "hl2", sequential: bool = False) -> Union[ float, np.ndarray]: """ Median Absolute Deviation :param candles: np.ndarray :param period: int - default: 5 :param source_type: str - default: "hl2" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) swv = sliding_window_view(source, window_shape=period) median_abs_deviation = stats.median_abs_deviation(swv, axis=-1) res = same_length(source, median_abs_deviation) return res if sequential else res[-1] ================================================ FILE: jesse/indicators/medprice.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles def medprice(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]: """ MEDPRICE - Median Price :param candles: np.ndarray :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) res = (candles[:, 3] + candles[:, 4]) / 2 return res if sequential else res[-1] ================================================ FILE: jesse/indicators/mfi.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles def mfi(candles: np.ndarray, period: int = 14, sequential: bool = False) -> Union[float, np.ndarray]: """ MFI - Money Flow Index :param candles: np.ndarray :param period: int - default: 14 :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) # Extract high, low, close and volume from candles array high = candles[:, 3] low = candles[:, 4] close = candles[:, 2] volume = candles[:, 5] # Compute Typical Price for each candle typical_prices = (high + low + close) / 3.0 # Compute Raw Money Flow = Typical Price * Volume raw_mf = typical_prices * volume # Initialize positive and negative flows pos_flow = np.zeros_like(typical_prices) neg_flow = np.zeros_like(typical_prices) # For each candle (starting from 1) decide if it's positive or negative money flow pos_flow[1:] = np.where(typical_prices[1:] > typical_prices[:-1], raw_mf[1:], 0) neg_flow[1:] = np.where(typical_prices[1:] < typical_prices[:-1], raw_mf[1:], 0) # Compute rolling sums over the specified period using convolution roll_pos = np.convolve(pos_flow, np.ones(period), mode='valid') roll_neg = np.convolve(neg_flow, np.ones(period), mode='valid') # Compute Money Flow Ratio; handle division by zero by treating as infinity with np.errstate(divide='ignore', invalid='ignore'): ratio = np.divide(roll_pos, roll_neg, out=np.full_like(roll_pos, np.inf, dtype=float), where=roll_neg != 0) # Compute MFI mfi_values = 100 - (100 / (1 + ratio)) # Prepend NaNs for indices that couldn't compute a full period pad = np.full(period - 1, np.nan) mfi_values = np.concatenate((pad, mfi_values)) return mfi_values if sequential else mfi_values[-1] ================================================ FILE: jesse/indicators/midpoint.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles def midpoint(candles: np.ndarray, period: int = 14, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ MIDPOINT - MidPoint over period :param candles: np.ndarray :param period: int - default: 14 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) # If there is not enough data, return nan values if len(source) < period: if sequential: return np.full_like(source, np.nan) else: return np.nan # Use a sliding window to compute the midpoint: (max + min) / 2 over each rolling window windows = np.lib.stride_tricks.sliding_window_view(source, period) midpoints = (np.max(windows, axis=1) + np.min(windows, axis=1)) / 2.0 # Pad the beginning with nans to match the input length if sequential is True if sequential: result = np.empty_like(source, dtype=float) result[:period - 1] = np.nan result[period - 1:] = midpoints return result else: return midpoints[-1] ================================================ FILE: jesse/indicators/midprice.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles from numpy.lib.stride_tricks import sliding_window_view def midprice(candles: np.ndarray, period: int = 14, sequential: bool = False) -> Union[float, np.ndarray]: """ MIDPRICE - Midpoint Price over period :param candles: np.ndarray :param period: int - default: 14 :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) high = candles[:, 3] low = candles[:, 4] if sequential: n = len(candles) if n < period: return np.full(n, np.nan) # Create sliding windows for high and low prices windows_high = sliding_window_view(high, window_shape=period) windows_low = sliding_window_view(low, window_shape=period) # Calculate midprice for each window midprices = (np.max(windows_high, axis=1) + np.min(windows_low, axis=1)) / 2 # Prepend NaN for the initial period-1 values to match the typical TA-Lib output length result = np.concatenate((np.full(period - 1, np.nan), midprices)) return result else: if len(candles) < period: return np.nan return (np.max(high[-period:]) + np.min(low[-period:])) / 2 ================================================ FILE: jesse/indicators/minmax.py ================================================ from collections import namedtuple import numpy as np from scipy.signal import argrelextrema from jesse.helpers import np_ffill, slice_candles EXTREMA = namedtuple('EXTREMA', ['is_min', 'is_max', 'last_min', 'last_max']) def minmax(candles: np.ndarray, order: int = 3, sequential: bool = False) -> EXTREMA: """ minmax - Get extrema :param candles: np.ndarray :param order: int - default = 3 :param sequential: bool - default: False :return: EXTREMA(min, max, last_min, last_max) """ candles = slice_candles(candles, sequential) low = candles[:, 4] high = candles[:, 3] minimaIdxs = argrelextrema(low, np.less, order=order, axis=0) maximaIdxs = argrelextrema(high, np.greater, order=order, axis=0) is_min = np.full_like(low, np.nan) is_max = np.full_like(high, np.nan) # set the extremas with the matching price is_min[minimaIdxs] = low[minimaIdxs] is_max[maximaIdxs] = high[maximaIdxs] # forward fill Nan values to get the last extrema last_min = np_ffill(is_min) last_max = np_ffill(is_max) if sequential: return EXTREMA(is_min, is_max, last_min, last_max) else: return EXTREMA(is_min[-(order+1)], is_max[-(order+1)], last_min[-1], last_max[-1]) ================================================ FILE: jesse/indicators/mom.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles def mom(candles: np.ndarray, period: int = 10, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ MOM - Momentum :param candles: np.ndarray :param period: int - default: 10 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = np.empty_like(source, dtype=float) if len(source) >= period: res[:period] = np.nan res[period:] = source[period:] - source[:-period] else: res[:] = np.nan return res if sequential else res[-1] ================================================ FILE: jesse/indicators/mwdx.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles def mwdx(candles: np.ndarray, factor: float = 0.2, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ MWDX Average :param candles: np.ndarray :param factor: float - default: 0.2 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) val2 = (2 / factor) - 1 fac = 2 / (val2 + 1) res = mwdx_fast(source, fac) return res if sequential else res[-1] @njit(cache=True) def mwdx_fast(source, fac): newseries = np.copy(source) for i in range(1, source.shape[0]): newseries[i] = (fac * source[i]) + ((1 - fac) * newseries[i - 1]) return newseries ================================================ FILE: jesse/indicators/natr.py ================================================ import numpy as np from typing import Union from jesse.helpers import slice_candles def natr(candles: np.ndarray, period: int = 14, sequential: bool = False) -> Union[float, np.ndarray]: """ NATR - Normalized Average True Range :param candles: np.ndarray :param period: int - default: 14 :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) high = candles[:, 3] low = candles[:, 4] close = candles[:, 2] # Compute True Range (TR) n = len(candles) tr = np.empty(n, dtype=float) tr[0] = high[0] - low[0] if n > 1: diff1 = high[1:] - low[1:] diff2 = np.abs(high[1:] - close[:-1]) diff3 = np.abs(low[1:] - close[:-1]) tr[1:] = np.maximum(np.maximum(diff1, diff2), diff3) # Initialize ATR array atr = np.empty(n, dtype=float) atr[:period-1] = np.nan # not enough data for smoothing base = np.mean(tr[:period]) atr[period-1] = base # If there's no additional data after the initial period, return the current NATR if n == period: result = (base / close[period-1]) * 100 return result if not sequential else np.concatenate((np.full(period-1, np.nan), [result])) # Wilder's smoothing is equivalent to an exponential moving average with alpha = 1/period alpha = 1.0 / period beta = 1 - alpha # For indices from period to end, we compute the recursive ATR as: # ATR[t] = beta^(t - (period-1)) * base + sum_{i=period}^{t} (alpha * beta^(t-i) * tr[i]) # We vectorize the summation using convolution. x = tr[period:] m = len(x) weights = alpha * beta ** np.arange(m) conv = np.convolve(x, weights, mode='full')[:m] base_adjustment = beta ** (np.arange(1, m + 1)) * base atr[period:] = base_adjustment + conv natr_arr = (atr / close) * 100 return natr_arr if sequential else natr_arr[-1] ================================================ FILE: jesse/indicators/nma.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles def nma(candles: np.ndarray, period: int = 40, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ Natural Moving Average :param candles: np.ndarray :param period: int - default: 40 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = nma_fast(source, period) return res if sequential else res[-1] @njit(cache=True) def nma_fast(source, period): # Ensure source values are positive before taking log source = np.clip(source, a_min=1e-10, a_max=None) ln = np.log(source) * 1000 newseries = np.full_like(source, np.nan) for j in range(period + 1, source.shape[0]): num = 0.0 denom = 0.0 for i in range(period): oi = np.abs(ln[j - i] - ln[j - i - 1]) num += oi * (np.sqrt(i + 1) - np.sqrt(i)) denom += oi ratio = num / denom if denom != 0 else 0 newseries[j] = (source[j - i] * ratio) + (source[j - i - 1] * (1 - ratio)) return newseries ================================================ FILE: jesse/indicators/nvi.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, same_length, slice_candles @njit def _nvi_fast(source: np.ndarray, volume: np.ndarray) -> np.ndarray: res = np.ones_like(source) res[0] = 1000 # Starting value (conventional) for i in range(1, len(source)): if volume[i] < volume[i-1]: res[i] = res[i-1] * (1 + ((source[i] - source[i-1]) / source[i-1])) else: res[i] = res[i-1] return res def nvi(candles: np.ndarray, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ NVI - Negative Volume Index The Negative Volume Index (NVI) is a cumulative indicator that uses the change in volume to decide when to track the price of an asset. It suggests that smart money is at work when volume decreases and vice versa. :param candles: np.ndarray :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = _nvi_fast(source, candles[:, 5]) return same_length(candles, res) if sequential else res[-1] ================================================ FILE: jesse/indicators/obv.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles def obv(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]: """ OBV - On Balance Volume :param candles: np.ndarray :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) close = candles[:, 2] volume = candles[:, 5] # Compute the change in OBV: add volume if price increases, subtract if decreases, else 0 delta = np.where(close[1:] > close[:-1], volume[1:], np.where(close[1:] < close[:-1], -volume[1:], 0)) obv_arr = np.empty_like(volume, dtype=np.float64) obv_arr[0] = volume[0] if len(volume) > 1: obv_arr[1:] = volume[0] + np.cumsum(delta) return obv_arr if sequential else obv_arr[-1] ================================================ FILE: jesse/indicators/pfe.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, same_length, slice_candles @njit(cache=True) def numpy_ema(data: np.ndarray, period: int) -> np.ndarray: alpha = 2 / (period + 1) # Initialize the EMA with the first value ema = np.zeros_like(data) ema[0] = data[0] # Calculate EMA using vectorized operations for i in range(1, len(data)): ema[i] = data[i] * alpha + ema[i-1] * (1 - alpha) return ema def rolling_sum(arr: np.ndarray, window: int) -> np.ndarray: # Create a rolling window sum using convolution window_ones = np.ones(window) sum_result = np.convolve(arr, window_ones, mode='valid') # Pad the beginning to maintain array length padding = np.array([np.nan] * (len(arr) - len(sum_result))) return np.concatenate((padding, sum_result)) def pfe(candles: np.ndarray, period: int = 10, smoothing: int = 5, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ Polarized Fractal Efficiency (PFE) :param candles: np.ndarray :param period: int - default: 10 :param smoothing: int - default: 5 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) ln = period - 1 diff = np.diff(source, ln) a = np.sqrt(np.power(diff, 2) + np.power(period, 2)) # Calculate rolling sum of sqrt(1 + diff^2) diff_1 = np.diff(source, 1) sqrt_term = np.sqrt(1 + np.power(diff_1, 2)) b = rolling_sum(sqrt_term, ln) pfetmp = 100 * same_length(source, a) / same_length(source, b) # Replace NaN values with 0 to avoid issues in calculations pfetmp = np.nan_to_num(pfetmp, 0) # Calculate the sign based on diff sign = np.where(same_length(source, diff) > 0, 1, -1) res = numpy_ema(sign * pfetmp, smoothing) return res if sequential else res[-1] ================================================ FILE: jesse/indicators/pivot.py ================================================ from collections import namedtuple import numpy as np from jesse.helpers import slice_candles PIVOT = namedtuple('PIVOT', ['r4', 'r3', 'r2', 'r1', 'pp', 's1', 's2', 's3', 's4']) def pivot(candles: np.ndarray, mode: int = 0, sequential: bool = False) -> PIVOT: """ Pivot Points :param candles: np.ndarray :param mode: int - default = 0 :param sequential: bool - default: False :return: PIVOT(r4, r3, r2, r1, pp, s1, s2, s3, s4) """ candles = slice_candles(candles, sequential) high = candles[:, 3] low = candles[:, 4] close = candles[:, 2] open = candles[:, 1] s1 = np.full_like(close, np.nan) s2 = np.copy(s1) s3 = np.copy(s1) s4 = np.copy(s1) p = np.copy(s1) r1 = np.copy(s1) r2 = np.copy(s1) r3 = np.copy(s1) r4 = np.copy(s1) # Standard Pivot Points / Floor Pivot Points if mode == 0: p = (high + low + close) / 3 s1 = (2 * p) - high s2 = p - (high - low) r1 = (2 * p) - low r2 = p + (high - low) # Fibonacci Pivot Points elif mode == 1: p = (high + low + close) / 3 s1 = p - 0.382 * (high - low) s2 = p - 0.618 * (high - low) s3 = p - 1 * (high - low) r1 = p + 0.382 * (high - low) r2 = p + 0.618 * (high - low) r3 = p + 1 * (high - low) # Demark Pivot Points elif mode == 2: p = np.where(close < open, (high + 2 * low + close) / 4, np.where(close > open, (2 * high + low + close) / 4, np.where(close == open, (high + low + 2 * close) / 4, np.nan))) s1 = np.where(close < open, (high + 2 * low + close) / 2 - high, np.where(close > open, (2 * high + low + close) / 2 - high, np.where(close == open, (high + low + 2 * close) / 2 - high, np.nan))) r1 = np.where(close < open, (high + 2 * low + close) / 2 - low, np.where(close > open, (2 * high + low + close) / 2 - low, np.where(close == open, (high + low + 2 * close) / 2 - low, np.nan))) elif mode == 3: # Camarilla Pivot Points p = (high + low + close) / 3 r4 = (0.55 * (high - low)) + close r3 = (0.275 * (high - low)) + close r2 = (0.183 * (high - low)) + close r1 = (0.0916 * (high - low)) + close s1 = close - (0.0916 * (high - low)) s2 = close - (0.183 * (high - low)) s3 = close - (0.275 * (high - low)) s4 = close - (0.55 * (high - low)) # Woodie's Pivot Points elif mode == 4: p = (high + low + (2 * open)) / 4 r3 = high + 2 * (p - low) r4 = r3 + (high - low) r2 = p + (high - low) r1 = (2 * p) - low s1 = (2 * p) - high s2 = p - (high - low) s3 = low - 2 * (high - p) s4 = s3 - (high - low) if sequential: return PIVOT(r4, r3, r2, r1, p, s1, s2, s3, s4) else: return PIVOT(r4[-1], r3[-1], r2[-1], r1[-1], p[-1], s1[-1], s2[-1], s3[-1], s4[-1]) ================================================ FILE: jesse/indicators/pma.py ================================================ from collections import namedtuple import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles PMA = namedtuple('PMA', ['predict', 'trigger']) def pma(candles: np.ndarray, source_type: str = "hl2", sequential: bool = False) -> PMA: """ Ehlers Predictive Moving Average :param candles: np.ndarray :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) predict, trigger = pma_fast(source) if sequential: return PMA(predict, trigger) else: return PMA(predict[-1], trigger[-1]) @njit(cache=True) def pma_fast(source): predict = np.full_like(source, np.nan) trigger = np.full_like(source, np.nan) wma1 = np.zeros_like(source) for j in range(6, source.shape[0]): wma1[j] = ((7 * source[j]) + (6 * source[j -1]) + (5 * source[j -2]) + (4 * source[j -3]) + (3 * source[j -4]) + (2 * source[j -5]) + source[j -6]) / 28 wma2 = ((7 * wma1[j]) + (6 * wma1[j-1]) + (5 * wma1[j -2]) + (4 * wma1[j -3]) + (3 * wma1[j -4]) + (2 * wma1[j -5]) + wma1[j -6]) / 28 predict[j] = (2 * wma1[j]) - wma2 trigger[j] = ((4 * predict[j]) + (3 * predict[j-1]) + (2 * predict[j -2]) + predict[j -3]) / 10 return predict, trigger ================================================ FILE: jesse/indicators/ppo.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles from jesse.indicators.ma import ma def ppo(candles: np.ndarray, fast_period: int = 12, slow_period: int = 26, matype: int = 0, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ PPO - Percentage Price Oscillator :param candles: np.ndarray :param fast_period: int - default: 12 :param slow_period: int - default: 26 :param matype: int - default: 0 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) if matype == 24 or matype == 29: fast_ma = ma(candles, period=fast_period, matype=matype, source_type=source_type, sequential=True) slow_ma = ma(candles, period=slow_period, matype=matype, source_type=source_type, sequential=True) else: fast_ma = ma(source, period=fast_period, matype=matype, sequential=True) slow_ma = ma(source, period=slow_period, matype=matype, sequential=True) res = 100 * (fast_ma - slow_ma) / slow_ma return res if sequential else res[-1] ================================================ FILE: jesse/indicators/pvi.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, same_length, slice_candles @njit def _pvi_fast(source: np.ndarray, volume: np.ndarray) -> np.ndarray: """ Numba optimized PVI calculation """ pvi = np.zeros_like(source) pvi[0] = 1000 # Starting value for i in range(1, len(source)): if volume[i] > volume[i-1]: pvi[i] = pvi[i-1] * (1 + (source[i] - source[i-1]) / source[i-1]) else: pvi[i] = pvi[i-1] return pvi def pvi(candles: np.ndarray, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ PVI - Positive Volume Index The Positive Volume Index (PVI) focuses on days when volume increases from the previous day. The premise behind the PVI is that price changes accompanied by increased volume are more significant. :param candles: np.ndarray :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = _pvi_fast(np.ascontiguousarray(source), np.ascontiguousarray(candles[:, 5])) return same_length(candles, res) if sequential else res[-1] ================================================ FILE: jesse/indicators/pwma.py ================================================ from functools import reduce from operator import mul from typing import Union import numpy as np from numpy.lib.stride_tricks import sliding_window_view from jesse.helpers import get_candle_source, same_length, slice_candles def pwma(candles: np.ndarray, period: int = 5, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ Pascals Weighted Moving Average (PWMA) :param candles: np.ndarray :param period: int - default: 5 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) triangle = pascals_triangle(n=period - 1) swv = sliding_window_view(source, window_shape=period) res = np.average(swv, weights=triangle, axis=-1) return same_length(candles, res) if sequential else res[-1] def pascals_triangle(n: int = None) -> np.ndarray: """Pascal's Triangle Returns a numpy array of the nth row of Pascal's Triangle. n=4 => triangle: [1, 4, 6, 4, 1] => weighted: [0.0625, 0.25, 0.375, 0.25, 0.0625] """ n = int(np.fabs(n)) if n is not None else 0 # Calculation triangle = np.array([combination(n=n, r=i) for i in range(n + 1)]) triangle_sum = np.sum(triangle) return triangle / triangle_sum def combination(n, r) -> int: """https://stackoverflow.com/questions/4941753/is-there-a-math-ncr-function-in-python""" n = int(np.fabs(n)) r = int(np.fabs(r)) r = min(n, n - r) if r == 0: return 1 numerator = reduce(mul, range(n, n - r, -1), 1) denominator = reduce(mul, range(1, r + 1), 1) return numerator // denominator ================================================ FILE: jesse/indicators/qstick.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import same_length, slice_candles @njit def _qstick_fast(open_prices: np.ndarray, close_prices: np.ndarray, period: int) -> np.ndarray: """ Calculate QStick values using Numba for optimization """ # Pre-allocate output array qstick_values = np.zeros_like(open_prices, dtype=np.float64) # Calculate close-open difference diff = close_prices - open_prices # Calculate moving average of the difference for i in range(period - 1, len(diff)): qstick_values[i] = np.mean(diff[i - period + 1:i + 1]) return qstick_values def qstick(candles: np.ndarray, period: int = 5, sequential: bool = False) -> Union[float, np.ndarray]: """ QStick - Moving average of the difference between closing and opening prices :param candles: np.ndarray :param period: int - default: 5 :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) res = _qstick_fast( np.ascontiguousarray(candles[:, 1]), # open np.ascontiguousarray(candles[:, 2]), # close period ) return same_length(candles, res) if sequential else res[-1] ================================================ FILE: jesse/indicators/reflex.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles from .supersmoother import supersmoother_fast def reflex(candles: np.ndarray, period: int = 20, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ Reflex indicator by John F. Ehlers :param candles: np.ndarray :param period: int - default: 20 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) ssf = supersmoother_fast(source, period / 2) rf = reflex_fast(ssf, period) if sequential: return rf else: return None if np.isnan(rf[-1]) else rf[-1] @njit(cache=True) def reflex_fast(ssf, period): rf = np.full_like(ssf, 0) ms = np.full_like(ssf, 0) sums = np.full_like(ssf, 0) for i in range(ssf.shape[0]): if i >= period: slope = (ssf[i - period] - ssf[i]) / period my_sum = 0 for t in range(1, period + 1): my_sum = my_sum + (ssf[i] + t * slope) - ssf[i - t] my_sum /= period sums[i] = my_sum ms[i] = 0.04 * sums[i] * sums[i] + 0.96 * ms[i - 1] if ms[i] > 0: rf[i] = sums[i] / np.sqrt(ms[i]) return rf ================================================ FILE: jesse/indicators/rma.py ================================================ from typing import Union import numpy as np from numba import guvectorize, njit from jesse.helpers import get_candle_source, slice_candles def rma(candles: np.ndarray, length: int = 14, source_type="close", sequential=False) -> \ Union[float, np.ndarray]: """ Moving average used in RSI. It is the exponentially weighted moving average with alpha = 1 / length. RETURNS Exponential moving average of x with alpha = 1 / y. https://www.tradingview.com/pine-script-reference/#fun_rma :param candles: np.ndarray :param length: int - default: 14 :param source_type: str - default: close :param sequential: bool - default: False :return: Union[float, np.ndarray] """ if length < 1: raise ValueError('Bad parameters.') # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = rma_fast(source, length) return res if sequential else res[-1] @njit(cache=True) def rma_fast(source, _length): alpha = 1 / _length newseries = np.copy(source) out = np.full_like(source, np.nan) for i in range(source.size): if np.isnan(newseries[i - 1]): # Sma in Numba asum = 0.0 count = 0 for i in range(_length): asum += source[i] count += 1 out[i] = asum / count for i in range(_length, len(source)): asum += source[i] - source[i - _length] out[i] = asum / count newseries[i] = out[-1] else: prev = newseries[i - 1] if np.isnan(prev): prev = 0 newseries[i] = alpha * source[i] + (1 - alpha) * prev return newseries ================================================ FILE: jesse/indicators/roc.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles def roc(candles: np.ndarray, period: int = 10, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ ROC - Rate of change : ((price/prevPrice)-1)*100 :param candles: np.ndarray :param period: int - default: 10 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) n = len(source) res = np.full(n, np.nan, dtype=float) if n > period: res[period:] = (source[period:] / source[:-period] - 1) * 100 return res if sequential else res[-1] ================================================ FILE: jesse/indicators/rocp.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles def rocp(candles: np.ndarray, period: int = 10, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ ROCP - Rate of change Percentage: (price-prevPrice)/prevPrice :param candles: np.ndarray :param period: int - default: 10 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = np.full(source.shape, np.nan, dtype=float) if len(source) > period: res[period:] = (source[period:] - source[:-period]) / source[:-period] return res if sequential else res[-1] ================================================ FILE: jesse/indicators/rocr.py ================================================ import numpy as np from typing import Union from jesse.helpers import get_candle_source, slice_candles def rocr(candles: np.ndarray, period: int = 10, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ ROCR - Rate of change ratio: (price / price_lagged) :param candles: np.ndarray :param period: int - default: 10 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) # Initialize an array of NaNs with the same shape as source res = np.full(source.shape, np.nan, dtype=float) # Only compute if there are enough data points if source.shape[0] > period: # Compute rate of change ratio using vectorized operation; for indices < period, remains NaN res[period:] = source[period:] / source[:-period] return res if sequential else res[-1] ================================================ FILE: jesse/indicators/rocr100.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles def rocr100(candles: np.ndarray, period: int = 10, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ ROCR100 - Rate of change ratio 100 scale: (price/prevPrice)*100 :param candles: np.ndarray :param period: int - default: 10 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) # Vectorized calculation: for indices >= period, ROCR100 = (source[i] / source[i - period]) * 100; first period set to np.nan res = np.full(source.shape, np.nan, dtype=float) res[period:] = (source[period:] / source[:-period]) * 100 return res if sequential else res[-1] ================================================ FILE: jesse/indicators/roofing.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles from .high_pass_2_pole import high_pass_2_pole_fast from .supersmoother import supersmoother_fast def roofing(candles: np.ndarray, hp_period: int = 48, lp_period: int = 10, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ Roofing Filter indicator by John F. Ehlers :param candles: np.ndarray :param hp_period: int - default: 48 :param lp_period: int - default: 10 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) hpf = high_pass_2_pole_fast(source, hp_period) res = supersmoother_fast(hpf, lp_period) return res if sequential else res[-1] ================================================ FILE: jesse/indicators/rsi.py ================================================ import numpy as np from typing import Union from jesse.helpers import get_candle_source, slice_candles from jesse_rust import rsi as rsi_rust def rsi(candles: np.ndarray, period: int = 14, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ RSI - Relative Strength Index :param candles: np.ndarray :param period: int - default: 14 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) p = np.asarray(source, dtype=np.float64) result = rsi_rust(p, period) return result if sequential else result[-1] ================================================ FILE: jesse/indicators/rsmk.py ================================================ from collections import namedtuple import numpy as np from jesse.helpers import get_candle_source RSMK = namedtuple('RSMK', ['indicator', 'signal']) def rsmk(candles: np.ndarray, candles_compare: np.ndarray, lookback: int = 90, period: int = 3, signal_period: int = 20, source_type: str = "close", sequential: bool = False) -> RSMK: """ RSMK - Relative Strength :param candles: np.ndarray :param candles_compare: np.ndarray :param lookback: int - default: 90 :param period: int - default: 3 :param signal_period: int - default: 20 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if not sequential and candles.shape[0] > 240: candles = candles[-240:] candles_compare = candles_compare[-240:] source = get_candle_source(candles, source_type=source_type) source_compare = get_candle_source(candles_compare, source_type=source_type) # Calculate log ratio of asset to index log_ratio = np.log(source / source_compare) # Calculate momentum: difference between current log ratio and the one from 'lookback' periods ago using vectorized operation mom = np.full_like(log_ratio, np.nan) if len(log_ratio) > lookback: mom[lookback:] = log_ratio[lookback:] - log_ratio[:-lookback] def ema(series: np.ndarray, period_val: float) -> np.ndarray: alpha = 2.0 / (max(1.0, period_val) + 1.0) n = series.shape[0] out = np.full_like(series, np.nan) # Identify the first valid (non-NaN) index valid_indices = np.flatnonzero(~np.isnan(series)) if valid_indices.size == 0: return out start_idx = valid_indices[0] segment = series[start_idx:] m = segment.shape[0] # Create matrices for vectorized computation t = np.arange(m).reshape(-1, 1) # shape (m, 1) i = np.arange(m).reshape(1, -1) # shape (1, m) lag = t - i # Compute weights: # For t >= i, if i == 0 then weight = (1 - alpha)^(t - i), else weight = alpha * (1 - alpha)^(t - i) weights = np.where(lag < 0, 0, np.where(i == 0, (1 - alpha)**lag, alpha * (1 - alpha)**lag)) ema_segment = np.sum(weights * segment.reshape(1, -1), axis=1) out[start_idx:] = ema_segment return out # Calculate RSMK indicator: EMA of the momentum scaled by 100 rsmk_indicator = ema(mom, period) * 100.0 # Calculate signal line as EMA of the RSMK indicator rsmk_signal = ema(rsmk_indicator, signal_period) if not sequential: rsmk_indicator = rsmk_indicator[-1] rsmk_signal = rsmk_signal[-1] return RSMK(rsmk_indicator, rsmk_signal) ================================================ FILE: jesse/indicators/rsx.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles def rsx(candles: np.ndarray, period: int = 14, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ Relative Strength Xtra (rsx) :param candles: np.ndarray :param period: int - default: 14 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = rsx_fast(source, period) return res if sequential else res[-1] @njit(cache=True) def rsx_fast(source, period): # variables f0 = 0 f8 = 0 # f10 = 0 f18 = 0 f20 = 0 f28 = 0 f30 = 0 f38 = 0 f40 = 0 f48 = 0 f50 = 0 f58 = 0 f60 = 0 f68 = 0 f70 = 0 f78 = 0 f80 = 0 f88 = 0 f90 = 0 # v4 = 0 # v8 = 0 # v10 = 0 v14 = 0 # v18 = 0 v20 = 0 # vC = 0 # v1C = 0 res = np.full_like(source, np.nan) for i in range(period, source.size): if f90 == 0: f90 = 1.0 f0 = 0.0 f88 = period - 1.0 if period >= 6 else 5.0 f8 = 100.0 * source[i] f18 = 3.0 / (period + 2.0) f20 = 1.0 - f18 else: f90 = f88 + 1 if f88 <= f90 else f90 + 1 f10 = f8 f8 = 100 * source[i] v8 = f8 - f10 f28 = f20 * f28 + f18 * v8 f30 = f18 * f28 + f20 * f30 vC = f28 * 1.5 - f30 * 0.5 f38 = f20 * f38 + f18 * vC f40 = f18 * f38 + f20 * f40 v10 = f38 * 1.5 - f40 * 0.5 f48 = f20 * f48 + f18 * v10 f50 = f18 * f48 + f20 * f50 v14 = f48 * 1.5 - f50 * 0.5 f58 = f20 * f58 + f18 * abs(v8) f60 = f18 * f58 + f20 * f60 v18 = f58 * 1.5 - f60 * 0.5 f68 = f20 * f68 + f18 * v18 f70 = f18 * f68 + f20 * f70 v1C = f68 * 1.5 - f70 * 0.5 f78 = f20 * f78 + f18 * v1C f80 = f18 * f78 + f20 * f80 v20 = f78 * 1.5 - f80 * 0.5 if f88 >= f90 and f8 != f10: f0 = 1.0 if f88 == f90 and f0 == 0.0: f90 = 0.0 if f88 < f90 and v20 > 0.0000000001: v4 = (v14 / v20 + 1.0) * 50.0 v4 = min(v4, 100.0) v4 = max(v4, 0.0) else: v4 = 50.0 res[i] = v4 return res ================================================ FILE: jesse/indicators/rvi.py ================================================ from typing import Union import numpy as np from numpy.lib.stride_tricks import sliding_window_view from jesse.helpers import get_candle_source, same_length, slice_candles from jesse.indicators.ma import ma from jesse.indicators.mean_ad import mean_ad from jesse.indicators.median_ad import median_ad def rvi(candles: np.ndarray, period: int = 10, ma_len: int = 14, matype: int = 1, devtype: int = 0, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ RVI - Relative Volatility Index :param candles: np.ndarray :param period: int - default: 10 :param ma_len: int - default: 14 :param matype: int - default: 1 :param devtype: int - default: 0 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if matype == 24 or matype == 29: raise ValueError("VWMA (matype 24) and VWAP (matype 29) cannot be used in rvi indicator.") candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) if devtype == 0: dev = _rolling_std(source, period) elif devtype == 1: dev = mean_ad(source, period, sequential=True) elif devtype == 2: dev = median_ad(source, period, sequential=True) diff = np.diff(source) diff = same_length(source, diff) up = np.nan_to_num(np.where(diff <= 0, 0, dev)) down = np.nan_to_num(np.where(diff > 0, 0, dev)) up_avg = ma(up, period=ma_len, matype=matype, sequential=True) down_avg = ma(down, period=ma_len, matype=matype, sequential=True) # Avoid division by zero denominator = up_avg + down_avg with np.errstate(divide='ignore', invalid='ignore'): result = np.where(denominator != 0, 100 * (up_avg / denominator), 50) return result if sequential else result[-1] def _rolling_std(arr: np.ndarray, window: int) -> np.ndarray: if len(arr) < window: return np.full(len(arr), np.nan) windows = sliding_window_view(arr, window_shape=window) stds = np.std(windows, axis=1, ddof=0) return np.concatenate((np.full(window - 1, np.nan), stds)) ================================================ FILE: jesse/indicators/safezonestop.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import np_shift, slice_candles @njit(cache=True) def wilder_smoothing_numba(raw: np.ndarray, period: int) -> np.ndarray: smoothed = np.zeros_like(raw) alpha = 1 - 1/period smoothed[0] = raw[0] for i in range(1, len(raw)): smoothed[i] = alpha * smoothed[i-1] + raw[i] return smoothed @njit(cache=True) def rolling_max_numba(arr: np.ndarray, window: int) -> np.ndarray: n = len(arr) result = np.empty_like(arr) # Handle first window-1 elements for i in range(window-1): result[i] = np.max(arr[:i+1]) # Handle remaining elements with sliding window for i in range(window-1, n): result[i] = np.max(arr[i-window+1:i+1]) return result @njit(cache=True) def rolling_min_numba(arr: np.ndarray, window: int) -> np.ndarray: n = len(arr) result = np.empty_like(arr) # Handle first window-1 elements for i in range(window-1): result[i] = np.min(arr[:i+1]) # Handle remaining elements with sliding window for i in range(window-1, n): result[i] = np.min(arr[i-window+1:i+1]) return result def safezonestop(candles: np.ndarray, period: int = 22, mult: float = 2.5, max_lookback: int = 3, direction: str = "long", sequential: bool = False) -> Union[float, np.ndarray]: """ Safezone Stops - Numba optimized version :param candles: np.ndarray :param period: int - default: 22 :param mult: float - default: 2.5 :param max_lookback: int - default: 3 :param direction: str - default: long :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) high = candles[:, 3] low = candles[:, 4] last_high = np_shift(high, 1, fill_value=np.nan) last_low = np_shift(low, 1, fill_value=np.nan) diff_high = high - last_high diff_low = last_low - low diff_high = np.where(np.isnan(diff_high), 0, diff_high) diff_low = np.where(np.isnan(diff_low), 0, diff_low) raw_plus_dm = np.where((diff_high > diff_low) & (diff_high > 0), diff_high, 0) raw_minus_dm = np.where((diff_low > diff_high) & (diff_low > 0), diff_low, 0) plus_dm = wilder_smoothing_numba(raw_plus_dm, period) minus_dm = wilder_smoothing_numba(raw_minus_dm, period) if direction == "long": intermediate = last_low - mult * minus_dm res = rolling_max_numba(intermediate, max_lookback) else: intermediate = last_high + mult * plus_dm res = rolling_min_numba(intermediate, max_lookback) return res if sequential else res[-1] ================================================ FILE: jesse/indicators/sar.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles from numba import njit def sar(candles: np.ndarray, acceleration: float = 0.02, maximum: float = 0.2, sequential: bool = False) -> Union[float, np.ndarray]: """ SAR - Parabolic SAR :param candles: np.ndarray :param acceleration: float - default: 0.02 :param maximum: float - default: 0.2 :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) # Assuming candle format where index 3 is high and index 4 is low high = candles[:, 3] low = candles[:, 4] n = len(candles) if n == 0: return np.array([]) if n < 2: return low[-1] # Use numba-compiled function to calculate SAR values sar_values = _fast_sar(high, low, acceleration, maximum, n) return sar_values if sequential else sar_values[-1] @njit(cache=True) def _fast_sar(high, low, acceleration, maximum, n): sar_values = np.zeros(n) if high[1] > high[0]: uptrend = True sar_values[0] = low[0] ep = high[0] # extreme point else: uptrend = False sar_values[0] = high[0] ep = low[0] af = acceleration # initial acceleration factor for i in range(1, n): prev_sar = sar_values[i - 1] if uptrend: sar_temp = prev_sar + af * (ep - prev_sar) if i >= 2: sar_temp = min(sar_temp, low[i - 1], low[i - 2]) else: sar_temp = min(sar_temp, low[i - 1]) else: sar_temp = prev_sar - af * (prev_sar - ep) if i >= 2: sar_temp = max(sar_temp, high[i - 1], high[i - 2]) else: sar_temp = max(sar_temp, high[i - 1]) if uptrend: if low[i] < sar_temp: sar_temp = ep uptrend = False af = acceleration # reset acceleration factor ep = low[i] else: if high[i] > ep: ep = high[i] af = af + acceleration if af > maximum: af = maximum else: if high[i] > sar_temp: sar_temp = ep uptrend = True af = acceleration ep = high[i] else: if low[i] < ep: ep = low[i] af = af + acceleration if af > maximum: af = maximum sar_values[i] = sar_temp return sar_values ================================================ FILE: jesse/indicators/settings.jsonc ================================================ { "[python]": { "editor.defaultFormatter": "ms-python.autopep8", "editor.formatOnSave": true, "editor.formatOnType": true, "editor.rulers": [160], "editor.codeActionsOnSave": { "source.organizeImports": "explicit" } }, "autopep8.args": [ "--max-line-length=160", "--aggressive", "--aggressive" ], "python.formatting.provider": "autopep8", "python.linting.enabled": true, "python.linting.lintOnSave": true, "python.linting.pylintEnabled": true } ================================================ FILE: jesse/indicators/sinwma.py ================================================ from typing import Union import numpy as np from numpy.lib.stride_tricks import sliding_window_view from jesse.helpers import get_candle_source, same_length, slice_candles def sinwma(candles: np.ndarray, period: int = 14, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ Sine Weighted Moving Average (SINWMA) :param candles: np.ndarray :param period: int - default: 14 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) sines = np.array( [np.sin((i + 1) * np.pi / (period + 1)) for i in range(period)] ) w = sines / sines.sum() swv = sliding_window_view(source, window_shape=period) res = np.average(swv, weights=w, axis=-1) return same_length(candles, res) if sequential else res[-1] ================================================ FILE: jesse/indicators/skew.py ================================================ from typing import Union import numpy as np from numpy.lib.stride_tricks import sliding_window_view from scipy import stats from jesse.helpers import get_candle_source, same_length, slice_candles def skew(candles: np.ndarray, period: int = 5, source_type: str = "hl2", sequential: bool = False) -> Union[ float, np.ndarray]: """ Skewness :param candles: np.ndarray :param period: int - default: 5 :param source_type: str - default: "hl2" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) swv = sliding_window_view(source, window_shape=period) skewness = stats.skew(swv, axis=-1) res = same_length(source, skewness) return res if sequential else res[-1] ================================================ FILE: jesse/indicators/sma.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles from jesse_rust import sma as sma_rust def sma(candles: np.ndarray, period: int = 5, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ SMA - Simple Moving Average :param candles: np.ndarray :param period: int - default: 5 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = sma_rust(source, period) return res if sequential else res[-1] ================================================ FILE: jesse/indicators/smma.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles def smma(candles: np.ndarray, period: int = 5, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ SMMA - Smoothed Moving Average :param candles: np.ndarray :param period: int - default: 5 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = numpy_ewma(source, period) return res if sequential else res[-1] def numpy_ewma(data, window): """ :param data: :param window: :return: """ alpha = 1 / window # scale = 1 / (1 - alpha) n = data.shape[0] scale_arr = (1 - alpha) ** (-1 * np.arange(n)) weights = (1 - alpha) ** np.arange(n) pw0 = (1 - alpha) ** (n - 1) mult = data * pw0 * scale_arr cumsums = mult.cumsum() return cumsums * scale_arr[::-1] / weights.cumsum() ================================================ FILE: jesse/indicators/squeeze_momentum.py ================================================ from collections import namedtuple from .bollinger_bands import bollinger_bands from .sma import sma from .trange import trange from .linearreg import linearreg from .stddev import stddev import numpy as np SqueezeMomentum = namedtuple('SqueezeMomentum', ['squeeze', 'momentum', 'momentum_signal']) def squeeze_momentum(candles: np.ndarray, length: int = 20, mult: float = 2.0, length_kc: int = 20, mult_kc: float = 1.5, sequential: bool = True) -> SqueezeMomentum: """ @author lazyBear credits: https://www.tradingview.com/script/nqQ1DT5a-Squeeze-Momentum-Indicator-LazyBear/ squeeze_momentum :param candles: np.ndarray :length: int - default: 20 :mult: float - default: 2.0 :length_kc: float - default: 2.0 :mult_kc: float - default: 1.5 :sequential: bool - default: True :return: SqueezeMomentum(squeeze, momentum, momentum_signal) """ # calculate bollinger bands basis = sma(candles, length, sequential=True) dev = mult_kc * stddev(candles, length, sequential=True) upper_bb = basis + dev lower_bb = basis - dev # calculate KC ma = sma(candles, length_kc, sequential=True) range_ma = sma(trange(candles, sequential=True), period=length_kc, sequential=True) upper_kc = ma + range_ma * mult_kc lower_kc = ma - range_ma * mult_kc sqz = [] for i in range(len(lower_bb)): sqz_on = (lower_bb[i] > lower_kc[i]) and (upper_bb[i] < upper_kc[i]) sqz_off = (lower_bb[i] < lower_kc[i]) and (upper_bb[i] > upper_kc[i]) noSqz = (sqz_on == False) and (sqz_off == False) sqz.append(0 if noSqz else (-1 if sqz_on else 1)) highs = np.nan_to_num(_highest(candles[:, 3], length_kc), 0) lows = np.nan_to_num(_lowest(candles[:, 4], length_kc), 0) sma_arr = np.nan_to_num(sma(candles, period=length_kc, sequential=True)) momentum = [] for i in range(len(highs)): momentum.append(candles[:, 2][i] - ((highs[i] + lows[i]) / 2 + sma_arr[i]) / 2) momentum = linearreg(np.array(momentum), period=length_kc, sequential=True) momentum_signal = [] for i in range(len(momentum) - 1): if momentum[i + 1] > 0: momentum_signal.append(1 if momentum[i + 1] > momentum[i] else 2) else: momentum_signal.append(-1 if momentum[i + 1] < momentum[i] else -2) if sequential: return SqueezeMomentum(sqz, momentum, momentum_signal) else: return SqueezeMomentum(sqz[-1], momentum[-1], momentum_signal[-1]) def _highest(values, length): # Ensure values is a NumPy array for efficient computation values = np.asarray(values) # Initialize an array to hold the highest values highest_values = np.full(values.shape, np.nan) # Compute the highest value for each window for i in range(length - 1, len(values)): highest_values[i] = np.max(values[i - length + 1:i + 1]) return highest_values def _lowest(values, length): # Ensure values is a NumPy array for efficient computation values = np.asarray(values) # Initialize an array to hold the lowest values lowest_values = np.full(values.shape, np.nan) # Compute the lowest value for each window for i in range(length - 1, len(values)): lowest_values[i] = np.min(values[i - length + 1:i + 1]) return lowest_values ================================================ FILE: jesse/indicators/sqwma.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles def sqwma(candles: np.ndarray, period: int = 14, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ Squared Weighted Moving Average :param candles: np.ndarray :param period: int - default: 14 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = sqwma_fast(source, period) return res if sequential else res[-1] @njit(cache=True) def sqwma_fast(source, period): newseries = np.copy(source) for j in range(period + 1, source.shape[0]): my_sum = 0.0 weightSum = 0.0 for i in range(period - 1): weight = np.power(period - i, 2) my_sum += (source[j - i] * weight) weightSum += weight newseries[j] = my_sum / weightSum return newseries ================================================ FILE: jesse/indicators/srsi.py ================================================ from collections import namedtuple import numpy as np from jesse.helpers import get_candle_source, slice_candles # Import the high-performance Rust implementation from jesse_rust import srsi as srsi_rust # type: ignore StochasticRSI = namedtuple('StochasticRSI', ['k', 'd']) def srsi( candles: np.ndarray, period: int = 14, period_stoch: int = 14, k: int = 3, d: int = 3, source_type: str = "close", sequential: bool = False, ) -> StochasticRSI: """Stochastic RSI – uses Rust implementation for speed.""" if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) k_line, d_line = srsi_rust(source.astype(np.float64), period, period_stoch, k, d) if sequential: return StochasticRSI(k_line, d_line) else: return StochasticRSI(float(k_line[-1]), float(d_line[-1])) ================================================ FILE: jesse/indicators/srwma.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles def srwma(candles: np.ndarray, period: int = 14, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ Square Root Weighted Moving Average :param candles: np.ndarray :param period: int - default: 14 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = srwma_fast(source, period) return res if sequential else res[-1] @njit(cache=True) def srwma_fast(source, period): newseries = np.copy(source) for j in range(period + 1, source.shape[0]): my_sum = 0.0 weightSum = 0.0 for i in range(period - 1): weight = np.power(period - i, 0.5) my_sum += (source[j - i] * weight) weightSum += weight newseries[j] = my_sum / weightSum return newseries ================================================ FILE: jesse/indicators/stc.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles def ema(series: np.ndarray, period: int) -> np.ndarray: """Calculates the Exponential Moving Average (EMA) for a series using a simple recursive formula.""" alpha = 2 / (period + 1) out = np.empty_like(series, dtype=float) out[0] = series[0] for i in range(1, len(series)): out[i] = alpha * series[i] + (1 - alpha) * out[i - 1] return out def stoch(series: np.ndarray, period: int) -> np.ndarray: """Calculates the stochastic oscillator for a series over the specified period.""" result = np.full_like(series, np.nan, dtype=float) for i in range(len(series)): if i < period - 1: result[i] = np.nan else: window = series[i - period + 1: i + 1] low = np.min(window) high = np.max(window) if high == low: result[i] = 0 else: result[i] = 100 * ((series[i] - low) / (high - low)) return result def stc(candles: np.ndarray, fast_period: int = 23, slow_period: int = 50, k_period: int = 10, d1_period: int = 3, d2_period: int = 3, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ STC - Schaff Trend Cycle (Oscillator) The indicator is computed as follows: 1. macd = EMA(src, fast_period) - EMA(src, slow_period) 2. k = stoch(macd, k_period) with NaNs replaced by 0 3. d = EMA(k, d1_period) -> First %D 4. kd = stoch(d, k_period) with NaNs replaced by 0 5. stc_val = EMA(kd, d2_period) clamped between 0 and 100 :param candles: np.ndarray of candles :param fast_period: int - default: 23 :param slow_period: int - default: 50 :param k_period: int - default: 10, cycle length for stoch computation :param d1_period: int - default: 3, used for first EMA smoothing of k :param d2_period: int - default: 3, used for EMA smoothing of kd :param source_type: str - default: "close" :param sequential: bool - default: False. When False, returns only the last value. :return: float or np.ndarray depending on sequential """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) ema_fast = ema(source, fast_period) ema_slow = ema(source, slow_period) macd = ema_fast - ema_slow k = stoch(macd, k_period) k = np.nan_to_num(k, nan=0) d_val = ema(k, d1_period) kd = stoch(d_val, k_period) kd = np.nan_to_num(kd, nan=0) stc_val = ema(kd, d2_period) stc_val = np.clip(stc_val, 0, 100) return stc_val if sequential else stc_val[-1] ================================================ FILE: jesse/indicators/stddev.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles def stddev(candles: np.ndarray, period: int = 5, nbdev: float = 1, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ STDDEV - Standard Deviation :param candles: np.ndarray :param period: int - default: 5 :param nbdev: float - default: 1 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) n = len(source) # Initialize result array with nan values result = np.full(n, np.nan, dtype=float) if n < period: # Not enough data for full period, result remains as nans output = result else: # Create rolling windows using numpy's sliding_window_view windows = np.lib.stride_tricks.sliding_window_view(source, window_shape=period) # Compute standard deviation over the rolling windows using population std (ddof=0) and multiply by nbdev rolling_std = np.std(windows, axis=1, ddof=0) * nbdev # Fill the result array from index 'period - 1' onward with the computed rolling std result[period - 1:] = rolling_std output = result return output if sequential else output[-1] ================================================ FILE: jesse/indicators/stiffness.py ================================================ from collections import namedtuple from .sma import sma from .ema import ema from .stddev import stddev import numpy as np from jesse.helpers import get_candle_source, slice_candles def stiffness(candles: np.ndarray, ma_length: int = 100, stiff_length: int = 60, stiff_smooth: int = 3, source_type: str = "close") -> float: """ @author daviddtech credits: https://www.tradingview.com/script/MOw6mUQl-Stiffness-Indicator-DaviddTech STIFNESS - Stifness :param candles: np.ndarray :param ma_length: int - default: 100 :param stiff_length: int - default: 60 :param stiff_smooth: int - default: 3 :param source_type: str - default: "close" :return: Stiffness(stiffness, threshold) """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, False) source = get_candle_source(candles, source_type=source_type) bound_stiffness = sma(source, ma_length, sequential=True) - 0.2 * \ stddev(source, ma_length, sequential=True) sum_above_stiffness = _count_price_exceed_series(source, bound_stiffness, stiff_length) return ema(np.array(sum_above_stiffness) * 100 / stiff_length, period=stiff_smooth) def _count_price_exceed_series(close_prices, art_series, length): ex_counts = [] for i in range(len(close_prices)): if i < length: ex_counts.append(0) continue count = 0 for j in range(i - length + 1, i + 1): if close_prices[j] > art_series[j]: count += 1 ex_counts.append(count) return ex_counts ================================================ FILE: jesse/indicators/stochastic.py ================================================ from collections import namedtuple import numpy as np from jesse.helpers import slice_candles # Import the high-performance Rust implementation from jesse_rust import stoch as stoch_rust # type: ignore Stochastic = namedtuple('Stochastic', ['k', 'd']) def stoch(candles: np.ndarray, fastk_period: int = 14, slowk_period: int = 3, slowk_matype: int = 0, slowd_period: int = 3, slowd_matype: int = 0, sequential: bool = False) -> Stochastic: """ The Stochastic Oscillator :param candles: np.ndarray :param fastk_period: int - default: 14 :param slowk_period: int - default: 3 :param slowk_matype: int - default: 0 :param slowd_period: int - default: 3 :param slowd_matype: int - default: 0 :param sequential: bool - default: False :return: Stochastic(k, d) """ if any(matype in (24, 29) for matype in (slowk_matype, slowd_matype)): raise ValueError("VWMA (matype 24) and VWAP (matype 29) cannot be used in stochastic indicator.") candles = slice_candles(candles, sequential) # Convert to float64 for Rust compatibility candles_f64 = np.asarray(candles, dtype=np.float64) # Call the Rust implementation k, d = stoch_rust(candles_f64, fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype) if sequential: return Stochastic(k, d) else: return Stochastic(k[-1], d[-1]) ================================================ FILE: jesse/indicators/stochf.py ================================================ from collections import namedtuple import numpy as np from jesse.helpers import slice_candles # Import the high-performance Rust implementation from jesse_rust import stochf as stochf_rust # type: ignore StochasticFast = namedtuple('StochasticFast', ['k', 'd']) def stochf(candles: np.ndarray, fastk_period: int = 5, fastd_period: int = 3, fastd_matype: int = 0, sequential: bool = False) -> StochasticFast: """ Stochastic Fast :param candles: np.ndarray :param fastk_period: int - default: 5 :param fastd_period: int - default: 3 :param fastd_matype: int - default: 0 :param sequential: bool - default: False :return: StochasticFast(k, d) """ if fastd_matype == 24 or fastd_matype == 29: raise ValueError("VWMA (matype 24) and VWAP (matype 29) cannot be used in stochf indicator.") candles = slice_candles(candles, sequential) # Convert to float64 for Rust compatibility candles_f64 = np.asarray(candles, dtype=np.float64) # Call the Rust implementation k, d = stochf_rust(candles_f64, fastk_period, fastd_period, fastd_matype) if sequential: return StochasticFast(k, d) else: return StochasticFast(k[-1], d[-1]) ================================================ FILE: jesse/indicators/supersmoother.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles def supersmoother(candles: np.ndarray, period: int = 14, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ Super Smoother Filter 2pole Butterworth This indicator was described by John F. Ehlers :param candles: np.ndarray :param period: int - default: 14 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = supersmoother_fast(source, period) return res if sequential else res[-1] @njit(cache=True) def supersmoother_fast(source, period): a = np.exp(-1.414 * np.pi / period) b = 2 * a * np.cos(1.414 * np.pi / period) newseries = np.copy(source) for i in range(2, source.shape[0]): newseries[i] = (1 + a ** 2 - b) / 2 * (source[i] + source[i - 1]) \ + b * newseries[i - 1] - a ** 2 * newseries[i - 2] return newseries ================================================ FILE: jesse/indicators/supersmoother_3_pole.py ================================================ from typing import Union import numpy as np try: from numba import njit except ImportError: njit = lambda a : a from jesse.helpers import get_candle_source, slice_candles def supersmoother_3_pole(candles: np.ndarray, period: int = 14, source_type: str = "close", sequential: bool = False) -> \ Union[ float, np.ndarray]: """ Super Smoother Filter 3pole Butterworth This indicator was described by John F. Ehlers :param candles: np.ndarray :param period: int - default: 14 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = supersmoother_fast(source, period) return res if sequential else res[-1] @njit(cache=True) def supersmoother_fast(source, period): a = np.exp(-np.pi / period) b = 2 * a * np.cos(1.738 * np.pi / period) c = a ** 2 newseries = np.copy(source) for i in range(3, source.shape[0]): newseries[i] = (1 - c ** 2 - b + b * c) * source[i] \ + (b + c) * newseries[i - 1] + (-c - b * c) * newseries[i - 2] + (c ** 2) * newseries[i - 3] return newseries ================================================ FILE: jesse/indicators/supertrend.py ================================================ from collections import namedtuple import numpy as np from numba import njit from jesse.helpers import slice_candles SuperTrend = namedtuple('SuperTrend', ['trend', 'changed']) def supertrend(candles: np.ndarray, period: int = 10, factor: float = 3, sequential: bool = False) -> SuperTrend: """ SuperTrend indicator optimized with numba and loop-based calculations. :param candles: np.ndarray - candle data :param period: period for ATR calculation :param factor: multiplier for the bands :param sequential: if True, returns full arrays; else, returns last value :return: SuperTrend named tuple with trend and changed arrays/values """ candles = slice_candles(candles, sequential) atr = atr_loop(candles[:, 3], candles[:, 4], candles[:, 2], period) super_trend, changed = supertrend_fast(candles, atr, factor, period) if sequential: return SuperTrend(super_trend, changed) else: return SuperTrend(super_trend[-1], changed[-1]) @njit(cache=True) def atr_loop(high, low, close, period): n = len(close) tr = np.empty(n, dtype=np.float64) tr[0] = high[0] - low[0] for i in range(1, n): diff1 = high[i] - low[i] diff2 = np.abs(high[i] - close[i-1]) diff3 = np.abs(low[i] - close[i-1]) # manual max of the three differences if diff1 >= diff2 and diff1 >= diff3: tr[i] = diff1 elif diff2 >= diff1 and diff2 >= diff3: tr[i] = diff2 else: tr[i] = diff3 atr = np.empty(n, dtype=np.float64) # Set initial values to NaN for indices before period-1 for i in range(period - 1): atr[i] = np.nan # First ATR value is the simple average of the first 'period' TR values sum_init = 0.0 for i in range(period): sum_init += tr[i] atr[period - 1] = sum_init / period # Recursive ATR calculation for i in range(period, n): atr[i] = ((atr[i-1] * (period - 1)) + tr[i]) / period return atr @njit(cache=True) def supertrend_fast(candles, atr, factor, period): n = len(candles) super_trend = np.zeros(n, dtype=np.float64) changed = np.zeros(n, dtype=np.int8) # Precompute basic bands and initialize band arrays upper_basic = np.empty(n, dtype=np.float64) lower_basic = np.empty(n, dtype=np.float64) upper_band = np.empty(n, dtype=np.float64) lower_band = np.empty(n, dtype=np.float64) for i in range(n): mid = (candles[i, 3] + candles[i, 4]) / 2.0 upper_basic[i] = mid + factor * atr[i] lower_basic[i] = mid - factor * atr[i] upper_band[i] = upper_basic[i] lower_band[i] = lower_basic[i] # Set the initial supertrend for index period-1 idx = period - 1 if candles[idx, 2] <= upper_band[idx]: super_trend[idx] = upper_band[idx] else: super_trend[idx] = lower_band[idx] changed[idx] = 0 # Combined loop: update bands and compute supertrend for i in range(period, n): p = i - 1 prevClose = candles[p, 2] # Update upper_band if prevClose <= upper_band[p]: if upper_basic[i] < upper_band[p]: upper_band[i] = upper_basic[i] else: upper_band[i] = upper_band[p] else: upper_band[i] = upper_basic[i] # Update lower_band if prevClose >= lower_band[p]: if lower_basic[i] > lower_band[p]: lower_band[i] = lower_basic[i] else: lower_band[i] = lower_band[p] else: lower_band[i] = lower_basic[i] # Compute current supertrend based on previous supertrend value if super_trend[p] == upper_band[p]: if candles[i, 2] <= upper_band[i]: super_trend[i] = upper_band[i] changed[i] = 0 else: super_trend[i] = lower_band[i] changed[i] = 1 else: # super_trend[p] equals lower_band[p] if candles[i, 2] >= lower_band[i]: super_trend[i] = lower_band[i] changed[i] = 0 else: super_trend[i] = upper_band[i] changed[i] = 1 return super_trend, changed ================================================ FILE: jesse/indicators/support_resistance_with_break.py ================================================ from collections import namedtuple import numpy as np from .ema import ema SupportResistanceWithBreaks = namedtuple('SupportResistanceWithBreaks', ['support', 'resistance', 'red_break', 'green_break', 'bear_wick', 'bull_wick']) def support_resistance_with_breaks(candles: np.ndarray, left_bars: int = 15, right_bars: int = 15, vol_threshold: int = 20) -> SupportResistanceWithBreaks: """ support_resistance_with_breaks @author LuxAlgo credits: https://www.tradingview.com/script/JDFoWQbL-Support-and-Resistance-Levels-with-Breaks-LuxAlgo :param candles: np.ndarray :param left_bars: int - default: 15 :param right_bars: int - default: 15 :param vol_threshold: int - default: 20 :return: SupportResistanceWithBreaks(support, resistance, red_break, green_break, bear_wick, bull_wick) """ resistance = _resistance(candles[:, 3], left_bars, right_bars) support = _support(candles[:, 4], left_bars, right_bars) short = ema(candles[:, 5], 5) long = ema(candles[:, 5], 10) osc = 100 * (short - long) / long last_candles = candles[0] red_break = True if last_candles[2] < support and not abs( last_candles[1] - last_candles[2]) < abs(last_candles[1] - last_candles[3]) and osc > vol_threshold else False green_break = True if last_candles[2] > resistance and abs( last_candles[1] - last_candles[4]) > abs(last_candles[1] - last_candles[2]) and osc > vol_threshold else False bull_wick = True if last_candles[2] > resistance and abs(last_candles[1] - last_candles[4]) > abs(last_candles[1] - last_candles[2]) else False bear_wick = True if last_candles[2] < support and abs(last_candles[1] - last_candles[2]) < abs(last_candles[1] - last_candles[3]) else False return SupportResistanceWithBreaks(support, resistance, red_break, green_break, bear_wick, bull_wick) def _resistance(source, left_bars, right_bars): pivot_highs = [None] * len(source) # Initialize result list with None for i in range(left_bars, len(source) - right_bars): is_pivot_high = True # Check left bars for higher high for j in range(1, left_bars + 1): if source[i] <= source[i - j]: is_pivot_high = False break # Check right bars for higher high if is_pivot_high: for j in range(1, right_bars + 1): if source[i] <= source[i + j]: is_pivot_high = False break if is_pivot_high: is_pivot_high = source[i] pivot_highs[i] = is_pivot_high next_valid = None first_value = None for i in range(len(pivot_highs)): if pivot_highs[i] is False: pivot_highs[i] = next_valid elif pivot_highs[i] is not None: # Update next_valid if it's not False or None next_valid = pivot_highs[i] first_value = i if first_value is None else first_value pivot_highs[:first_value - 1] = [pivot_highs[first_value]] * len(pivot_highs[:first_value - 1]) pivot_highs[-right_bars:] = [pivot_highs[-right_bars - 1]] * len(pivot_highs[-right_bars:]) return pivot_highs[-1] def _support(source, left_bars, right_bars): pivot_lows = [None] * len(source) # Initialize result list with None for i in range(left_bars, len(source) - right_bars): is_pivot_low = True # Check left bars for lower low for j in range(1, left_bars + 1): if source[i] >= source[i - j]: is_pivot_low = False break # Check right bars for lower low if is_pivot_low: for j in range(1, right_bars + 1): if source[i] >= source[i + j]: is_pivot_low = False break if is_pivot_low: is_pivot_low = source[i] pivot_lows[i] = is_pivot_low next_valid = None first_value = None for i in range(len(pivot_lows)): if pivot_lows[i] is False: pivot_lows[i] = next_valid elif pivot_lows[i] is not None: # Update next_valid if it's not False or None next_valid = pivot_lows[i] first_value = i if first_value is None else first_value pivot_lows[:first_value - 1] = [pivot_lows[first_value]] * len(pivot_lows[:first_value - 1]) pivot_lows[-right_bars:] = [pivot_lows[-right_bars - 1]] * len(pivot_lows[-right_bars:]) return pivot_lows[-1] ================================================ FILE: jesse/indicators/swma.py ================================================ from math import floor from typing import Union import numpy as np from numpy.lib.stride_tricks import sliding_window_view from jesse.helpers import get_candle_source, same_length, slice_candles def swma(candles: np.ndarray, period: int = 5, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ Symmetric Weighted Moving Average (SWMA) :param candles: np.ndarray :param period: int - default: 5 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) triangle = symmetric_triangle(period) swv = sliding_window_view(source, window_shape=period) res = np.average(swv, weights=triangle, axis=-1) return same_length(candles, res) if sequential else res[-1] def symmetric_triangle(n: int = None) -> np.ndarray: """Symmetric Triangle with n >= 2 Returns a numpy array of the nth row of Symmetric Triangle. n=4 => triangle: [1, 2, 2, 1] => weighted: [0.16666667 0.33333333 0.33333333 0.16666667] """ n = int(np.fabs(n)) if n is not None else 2 triangle = None if n == 2: triangle = [1, 1] if n > 2: if n % 2 == 0: front = [i + 1 for i in range(floor(n / 2))] triangle = front + front[::-1] else: front = [i + 1 for i in range(floor(0.5 * (n + 1)))] triangle = front.copy() front.pop() triangle += front[::-1] triangle_sum = np.sum(triangle) return triangle / triangle_sum ================================================ FILE: jesse/indicators/t3.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles def t3(candles: np.ndarray, period: int = 5, vfactor: float = 0, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ T3 - Triple Exponential Moving Average (T3) The T3 moving average is a type of moving average that uses the DEMA (Double Exponential Moving Average) calculations multiple times with a volume factor weighting. :param candles: np.ndarray :param period: int - default: 5 :param vfactor: float - default: 0 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ # Check if jesse_rust is available try: import jesse_rust if len(candles.shape) == 1: # Handle case where source array is passed directly # Convert to candles format for Rust function mock_candles = np.zeros((len(candles), 6)) mock_candles[:, 2] = candles # Put source in close column result = jesse_rust.t3(mock_candles, period, vfactor, "close", sequential) else: candles = slice_candles(candles, sequential) result = jesse_rust.t3(candles, period, vfactor, source_type, sequential) return result if sequential else result[-1] except ImportError: # Fallback to pure Python implementation if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) k = 2 / (period + 1) # Calculate weights based on volume factor w1 = -vfactor ** 3 w2 = 3 * vfactor ** 2 + 3 * vfactor ** 3 w3 = -6 * vfactor ** 2 - 3 * vfactor - 3 * vfactor ** 3 w4 = 1 + 3 * vfactor + vfactor ** 3 + 3 * vfactor ** 2 t3 = _t3_fast_python(source, k, w1, w2, w3, w4) return t3 if sequential else t3[-1] def _t3_fast_python(source: np.ndarray, k: float, w1: float, w2: float, w3: float, w4: float) -> np.ndarray: """ Pure Python implementation of T3 calculation """ n = len(source) e1 = np.zeros(n) e2 = np.zeros(n) e3 = np.zeros(n) e4 = np.zeros(n) e5 = np.zeros(n) e6 = np.zeros(n) t3 = np.zeros(n) # Initialize first values e1[0] = source[0] e2[0] = e1[0] e3[0] = e2[0] e4[0] = e3[0] e5[0] = e4[0] e6[0] = e5[0] k_rev = 1 - k # Calculate all EMAs in a single loop for better cache utilization for i in range(1, n): e1[i] = k * source[i] + k_rev * e1[i-1] e2[i] = k * e1[i] + k_rev * e2[i-1] e3[i] = k * e2[i] + k_rev * e3[i-1] e4[i] = k * e3[i] + k_rev * e4[i-1] e5[i] = k * e4[i] + k_rev * e5[i-1] e6[i] = k * e5[i] + k_rev * e6[i-1] t3[i] = w1 * e6[i] + w2 * e5[i] + w3 * e4[i] + w4 * e3[i] return t3 ================================================ FILE: jesse/indicators/tema.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles from jesse_rust import tema as tema_rust def tema(candles: np.ndarray, period: int = 9, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ TEMA - Triple Exponential Moving Average :param candles: np.ndarray :param period: int - default: 9 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) if source.size == 0: return np.nan if not sequential else np.array([]) res = tema_rust(source, period) return res if sequential else res[-1] ================================================ FILE: jesse/indicators/trange.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles def trange(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]: """ TRANGE - True Range :param candles: np.ndarray :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) high = candles[:, 3] low = candles[:, 4] close = candles[:, 2] true_range = np.empty_like(high) true_range[0] = high[0] - low[0] if len(candles) > 1: diff_hl = high[1:] - low[1:] diff_hpc = np.abs(high[1:] - close[:-1]) diff_lpc = np.abs(low[1:] - close[:-1]) true_range[1:] = np.maximum(np.maximum(diff_hl, diff_hpc), diff_lpc) res = true_range return res if sequential else res[-1] ================================================ FILE: jesse/indicators/trendflex.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles from .supersmoother import supersmoother_fast def trendflex(candles: np.ndarray, period: int = 20, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ Trendflex indicator by John F. Ehlers :param candles: np.ndarray :param period: int - default: 20 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) ssf = supersmoother_fast(source, period / 2) tf = trendflex_fast(ssf, period) if sequential: return tf else: return None if np.isnan(tf[-1]) else tf[-1] @njit(cache=True) def trendflex_fast(ssf, period): tf = np.full_like(ssf, 0) ms = np.full_like(ssf, 0) sums = np.full_like(ssf, 0) for i in range(ssf.shape[0]): if i >= period: my_sum = 0 for t in range(1, period + 1): my_sum = my_sum + ssf[i] - ssf[i - t] my_sum /= period sums[i] = my_sum ms[i] = 0.04 * sums[i] * sums[i] + 0.96 * ms[i - 1] if ms[i] != 0: tf[i] = sums[i] / np.sqrt(ms[i]) return tf ================================================ FILE: jesse/indicators/trima.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles def trima(candles: np.ndarray, period: int = 30, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ TRIMA - Triangular Moving Average :param candles: np.ndarray :param period: int - default: 30 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) # Compute triangular weights if period % 2 != 0: mid = period // 2 weights = np.concatenate((np.arange(1, mid + 2), np.arange(mid, 0, -1))) else: mid = period // 2 weights = np.concatenate((np.arange(1, mid + 1), np.arange(mid, 0, -1))) weights_norm = weights / weights.sum() n = source.shape[0] if n < period: res = np.full(n, np.nan) else: conv = np.convolve(source, weights_norm, mode='valid') res = np.concatenate((np.full(period - 1, np.nan), conv)) return res if sequential else res[-1] ================================================ FILE: jesse/indicators/trix.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles @njit def _ema_numba(data, period): N = len(data) result = np.empty(N, dtype=np.float64) alpha = 2.0 / (period + 1) result[0] = data[0] for i in range(1, N): result[i] = alpha * data[i] + (1 - alpha) * result[i - 1] return result def ema(data: np.ndarray, period: int) -> np.ndarray: return _ema_numba(data, period) def trix(candles: np.ndarray, period: int = 18, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ TRIX - 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA :param candles: np.ndarray :param period: int - default: 18 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) # Compute triple EMA on the logarithm of the source prices log_source = np.log(source) ema1 = ema(log_source, period) ema2 = ema(ema1, period) ema3 = ema(ema2, period) # Calculate the change (current ema3 minus previous ema3), prepending NaN to maintain same length diff = np.empty_like(ema3) diff[0] = np.nan diff[1:] = ema3[1:] - ema3[:-1] result = diff * 10000 return result if sequential else result[-1] ================================================ FILE: jesse/indicators/tsf.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles def tsf(candles: np.ndarray, period: int = 14, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ TSF - Time Series Forecast A linear regression projection into the future. It calculates a linear regression line using the specified period and projects it forward. :param candles: np.ndarray :param period: int - default: 14 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) if sequential: result = np.full_like(source, np.nan) if len(source) >= period: # Create time indices array x = np.arange(period) # Calculate means for x x_mean = np.mean(x) # Calculate denominator term (sum of squared deviations) x_diff = x - x_mean denominator = np.sum(x_diff ** 2) # Create sliding windows view of the data windows = np.lib.stride_tricks.sliding_window_view(source, period) # Calculate means for each window y_means = np.mean(windows, axis=1) # Calculate slopes using vectorized operations slopes = np.sum((windows - y_means[:, None]) * x_diff, axis=1) / denominator # Calculate intercepts intercepts = y_means - slopes * x_mean # Calculate forecast values forecasts = intercepts + slopes * period # Place forecasts in result array result[period-1:] = forecasts return result else: # For non-sequential, just calculate the last window x = np.arange(period) X = np.vstack((np.ones(period), x)).T y = source[-period:] beta = np.linalg.inv(X.T @ X) @ X.T @ y return beta[0] + beta[1] * period ================================================ FILE: jesse/indicators/tsi.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles def tsi(candles: np.ndarray, long_period: int = 25, short_period: int = 13, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ True strength index (TSI) :param candles: np.ndarray :param long_period: int - default: 25 :param short_period: int - default: 13 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) mom = _mom(source, 1) ema_mom = _ema(mom, long_period) double_ema_mom = _ema(ema_mom, short_period) ema_abs_mom = _ema(np.abs(mom), long_period) double_ema_abs_mom = _ema(ema_abs_mom, short_period) # Avoid division by zero and invalid results with np.errstate(divide='ignore', invalid='ignore'): r = 100 * double_ema_mom / double_ema_abs_mom r[~np.isfinite(r)] = 0 return r if sequential else r[-1] def _mom(series, period): # Calculate momentum as difference between current and period ago value return np.concatenate((np.zeros(period), series[period:] - series[:-period])) def _ema(series, period): # Exponential Moving Average using a vectorized approach with convolution alpha = 2 / (period + 1) n = len(series) t_arr = np.arange(n) # Calculate the contribution from the first element ema_vals = series[0] * ((1 - alpha) ** t_arr) if n > 1: # For t>=1, add the convolution of the rest of the series with the weights alpha*(1-alpha)^(t) conv = np.convolve(series[1:], alpha * ((1 - alpha) ** np.arange(n - 1)), mode='full')[:n-1] ema_vals[1:] += conv return ema_vals ================================================ FILE: jesse/indicators/ttm_squeeze.py ================================================ from .bollinger_bands import bollinger_bands from .sma import sma from .trange import trange import numpy as np def ttm_squeeze(candles: np.ndarray, length_ttms: int = 20, bb_mult_ttms: float = 2.0, kc_mult_low_ttms: float = 2.0) -> bool: """ @author daviddtech credits: https://www.tradingview.com/script/Mh3EmxF5-TTM-Squeeze-DaviddTech/ TTMSQUEEZE - TTMSqueeze :param candles: np.ndarray :param length_ttms: int - default: 20 :param bb_mult_ttms: float - default: 2.0 :param kc_mult_low_ttms: float - default: 2.0 :return: TTMSqueeze(sqz_signal) """ bb_data = bollinger_bands(candles, length_ttms, bb_mult_ttms) kc_basis_ttms = sma(candles, length_ttms) devkc_ttms = sma(trange(candles, sequential=True), period=length_ttms) no_sqz_ttms = bb_data.lowerband < kc_basis_ttms - devkc_ttms * \ kc_mult_low_ttms or bb_data.upperband > kc_basis_ttms + devkc_ttms * kc_mult_low_ttms sqz_signal = False if no_sqz_ttms: sqz_signal = True return sqz_signal ================================================ FILE: jesse/indicators/ttm_trend.py ================================================ from typing import Union import numpy as np from numpy.lib.stride_tricks import sliding_window_view from jesse.helpers import get_candle_source, same_length, slice_candles def ttm_trend(candles: np.ndarray, period: int = 5, source_type: str = "hl2", sequential: bool = False) -> Union[ bool, np.ndarray]: """ TTM Trend :param candles: np.ndarray :param period: int - default: 5 :param source_type: str - default: "hl2" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) swv = sliding_window_view(source, window_shape=period) trend_avg = np.mean(swv, axis=-1) res = np.greater(candles[:, 2], same_length(source, trend_avg)) return res if sequential else res[-1] ================================================ FILE: jesse/indicators/typprice.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles def typprice(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]: """ TYPPRICE - Typical Price :param candles: np.ndarray :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) res = (candles[:, 2] + candles[:, 3] + candles[:, 4]) / 3 return res if sequential else res[-1] ================================================ FILE: jesse/indicators/ui.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles def ui(candles: np.ndarray, period: int = 14, scalar: float = 100, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ Ulcer Index (UI) :param candles: np.ndarray :param period: int - default: 14 :param scalar: float - default: 100 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) n = source.shape[0] # Compute rolling maximum over the period if n < period: highest_close = np.full_like(source, np.nan) else: # sliding_window_view creates a rolling window view: shape (n-period+1, period) highest_window = np.lib.stride_tricks.sliding_window_view(source, window_shape=period) highest_max = np.max(highest_window, axis=1) highest_close = np.concatenate((np.full(period - 1, np.nan), highest_max)) # Calculate downside percentage downside = scalar * (source - highest_close) / highest_close d2 = downside ** 2 # Compute rolling sum of squared downside values if n < period: rolling_d2_sum = np.full_like(d2, np.nan) else: rolling_sum_valid = np.convolve(d2, np.ones(period), mode='valid') rolling_d2_sum = np.concatenate((np.full(period - 1, np.nan), rolling_sum_valid)) res = np.sqrt(rolling_d2_sum / period) return res if sequential else res[-1] ================================================ FILE: jesse/indicators/ultosc.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles def ultosc(candles: np.ndarray, timeperiod1: int = 7, timeperiod2: int = 14, timeperiod3: int = 28, sequential: bool = False) -> Union[float, np.ndarray]: """ ULTOSC - Ultimate Oscillator :param candles: np.ndarray :param timeperiod1: int - default: 7 :param timeperiod2: int - default: 14 :param timeperiod3: int - default: 28 :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) high = candles[:, 3] low = candles[:, 4] close = candles[:, 2] n = len(close) bp = np.empty(n, dtype=float) tr = np.empty(n, dtype=float) bp[0] = 0.0 tr[0] = high[0] - low[0] bp[1:] = close[1:] - np.minimum(low[1:], close[:-1]) tr[1:] = np.maximum(high[1:], close[:-1]) - np.minimum(low[1:], close[:-1]) sum_bp_1 = _rolling_sum(bp, timeperiod1) sum_tr_1 = _rolling_sum(tr, timeperiod1) avg1 = np.where(sum_tr_1 != 0, sum_bp_1 / sum_tr_1, np.nan) sum_bp_2 = _rolling_sum(bp, timeperiod2) sum_tr_2 = _rolling_sum(tr, timeperiod2) avg2 = np.where(sum_tr_2 != 0, sum_bp_2 / sum_tr_2, np.nan) sum_bp_3 = _rolling_sum(bp, timeperiod3) sum_tr_3 = _rolling_sum(tr, timeperiod3) avg3 = np.where(sum_tr_3 != 0, sum_bp_3 / sum_tr_3, np.nan) ult = 100 * (4 * avg1 + 2 * avg2 + avg3) / 7 return ult if sequential else ult[-1] def _rolling_sum(data, window): n = len(data) if n < window: return np.full(n, np.nan) conv = np.convolve(data, np.ones(window, dtype=float), mode='valid') out = np.empty(n, dtype=float) out[:window-1] = np.nan out[window-1:] = conv return out ================================================ FILE: jesse/indicators/var.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles def var(candles: np.ndarray, period: int = 14, nbdev: float = 1, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ VAR - Variance :param candles: np.ndarray :param period: int - default: 14 :param nbdev: float - default: 1 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) n = len(source) result = np.empty(n) result[:period-1] = np.nan if n >= period: windows = np.lib.stride_tricks.sliding_window_view(source, window_shape=period) window_mean = np.mean(windows, axis=1) window_mean_sq = np.mean(windows ** 2, axis=1) result[period-1:] = (window_mean_sq - window_mean**2) * nbdev else: result[:] = np.nan return result if sequential else result[-1] ================================================ FILE: jesse/indicators/vi.py ================================================ from collections import namedtuple import numpy as np import jesse_rust from jesse.helpers import slice_candles VI = namedtuple('VI', ['plus', 'minus']) def vi(candles: np.ndarray, period: int = 14, sequential: bool = False) -> VI: """ Vortex Indicator (VI) :param candles: np.ndarray :param period: int - default: 14 :param sequential: bool - default: False :return: VI(plus, minus) """ candles = slice_candles(candles, sequential) # Use the Rust implementation vi_plus, vi_minus = jesse_rust.vi(candles, period, sequential) if sequential: return VI(vi_plus, vi_minus) else: return VI(vi_plus[-1], vi_minus[-1]) ================================================ FILE: jesse/indicators/vidya.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, same_length, slice_candles @njit def vidya_numba(source: np.ndarray, length: int, fix_cmo: bool, select: bool) -> np.ndarray: alpha = 2 / (length + 1) momm = np.zeros_like(source) momm[1:] = source[1:] - source[:-1] momm[0] = 0 # Initialize arrays for positive and negative momentum m1 = np.where(momm >= 0, momm, 0) m2 = np.where(momm < 0, -momm, 0) # Calculate rolling sums cmo_length = 9 if fix_cmo else length sm1 = np.zeros_like(source) sm2 = np.zeros_like(source) for i in range(len(source)): start_idx = max(0, i - cmo_length + 1) sm1[i] = np.sum(m1[start_idx:i+1]) sm2[i] = np.sum(m2[start_idx:i+1]) # Calculate Chande Momentum total_sum = sm1 + sm2 chande_mo = np.where(total_sum != 0, 100 * (sm1 - sm2) / total_sum, 0) # Calculate k factor if select: k = np.abs(chande_mo) / 100 else: k = np.zeros_like(source) for i in range(len(source)): start_idx = max(0, i - length + 1) k[i] = np.std(source[start_idx:i+1]) # Calculate VIDYA vidya = np.zeros_like(source) vidya[0] = source[0] for i in range(1, len(source)): vidya[i] = alpha * k[i] * source[i] + (1 - alpha * k[i]) * vidya[i-1] return vidya def vidya(candles: np.ndarray, length: int = 9, fix_cmo: bool = True, select: bool = True, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ VIDYA - Variable Index Dynamic Average :param candles: np.ndarray :param length: int - default: 9 :param fix_cmo: bool - default: True Fixed CMO Length (9)? :param select: bool - default: True Calculation Method: CMO/StDev? :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = vidya_numba(source, length, fix_cmo, select) return same_length(candles, res) if sequential else res[-1] ================================================ FILE: jesse/indicators/vlma.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles from jesse.indicators.ma import ma from jesse.indicators.mean_ad import mean_ad from jesse.indicators.median_ad import median_ad def moving_std(source: np.ndarray, window: int) -> np.ndarray: n = len(source) stdArr = np.empty_like(source) if n < window: # Vectorized cumulative standard deviation for all indices cumsum = np.cumsum(source) cumsum2 = np.cumsum(source**2) counts = np.arange(1, n + 1) means = cumsum / counts variances = cumsum2 / counts - means**2 stdArr[:] = np.sqrt(np.maximum(variances, 0)) else: # For indices with less than a full window, use cumulative statistics cumsum_init = np.cumsum(source[:window-1]) cumsum2_init = np.cumsum(source[:window-1]**2) counts_init = np.arange(1, window) means_init = cumsum_init / counts_init variances_init = cumsum2_init / counts_init - means_init**2 stdArr[:window-1] = np.sqrt(np.maximum(variances_init, 0)) # For full windows, use sliding window view and compute standard deviation sw = np.lib.stride_tricks.sliding_window_view(source, window_shape=window) stdArr[window-1:] = np.std(sw, axis=1) return stdArr def vlma(candles: np.ndarray, min_period: int = 5, max_period: int = 50, matype: int = 0, devtype: int = 0, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ Variable Length Moving Average :param candles: np.ndarray :param min_period: int - default: 5 :param max_period: int - default: 50 :param matype: int - default: 0 :param devtype: int - default: 0 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) if matype == 24 or matype == 29: mean = ma(candles, period=max_period, matype=matype, source_type=source_type, sequential=True) else: mean = ma(source, period=max_period, matype=matype, sequential=True) if devtype == 0: stdDev = moving_std(source, max_period) elif devtype == 1: stdDev = mean_ad(source, max_period, sequential=True) elif devtype == 2: stdDev = median_ad(source, max_period, sequential=True) a = mean - (1.75 * stdDev) b = mean - (0.25 * stdDev) c = mean + (0.25 * stdDev) d = mean + (1.75 * stdDev) res = vlma_fast(source, a, b, c, d , min_period, max_period) return res if sequential else res[-1] @njit(cache=True) def vlma_fast(source, a, b, c, d, min_period, max_period): newseries = np.copy(source) period = np.zeros_like(source) for i in range(1, source.shape[0]): nz_period = period[i - 1] if period[i - 1] != 0 else max_period period[i] = nz_period + 1 if b[i] <= source[i] <= c[i] else nz_period - 1 if source[i] < a[i] or source[i] > d[i] else nz_period period[i] = max(min(period[i], max_period), min_period) sc = 2 / (period[i] + 1) newseries[i] = (source[i] * sc) + ((1 - sc) * newseries[i - 1]) return newseries ================================================ FILE: jesse/indicators/volume.py ================================================ from collections import namedtuple import numpy as np from jesse.helpers import slice_candles Volume = namedtuple("Volume", ["volume", "ma"]) def volume( candles: np.ndarray, period: int = 20, sequential: bool = False ) -> Volume: """ Volume with Moving Average :param candles: np.ndarray :param period: int - default: 20 :param sequential: bool - default: False :return: Volume(volume, ma) """ candles = slice_candles(candles, sequential) volume_data = candles[:, 5] if len(volume_data) < period: volume_ma = np.full(len(volume_data), np.nan) else: volume_ma = np.concatenate((np.full(period - 1, np.nan), np.convolve(volume_data, np.ones(period) / period, mode='valid'))) if sequential: return Volume(volume_data, volume_ma) else: return Volume(volume_data[-1], volume_ma[-1]) ================================================ FILE: jesse/indicators/vosc.py ================================================ from typing import Union from jesse.indicators.sma import sma import numpy as np def vosc(candles: np.ndarray, short_period: int = 2, long_period: int = 5, sequential: bool = False) -> Union[float, np.ndarray]: """ VOSC - Volume Oscillator :param candles: np.ndarray :param short_period: int - default: 2 :param long_period: int - default: 5 :param sequential: bool - default: False :return: float | np.ndarray """ from jesse.helpers import same_length, slice_candles candles = slice_candles(candles, sequential) volume = candles[:, 5] short_sma = sma(volume, short_period, sequential=True) long_sma = sma(volume, long_period, sequential=True) vosc_values = (short_sma - long_sma) / long_sma * 100 vosc_result = same_length(candles, vosc_values) return vosc_result if sequential else vosc_result[-1] ================================================ FILE: jesse/indicators/voss.py ================================================ from collections import namedtuple import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles VossFilter = namedtuple('VossFilter', ['voss', 'filt']) def voss(candles: np.ndarray, period: int = 20, predict: int = 3, bandwith: float = 0.25, source_type: str = "close", sequential: bool = False) -> VossFilter: """ Voss indicator by John F. Ehlers :param candles: np.ndarray :param period: int - default: 20 :param predict: int - default: 3 :param bandwith: float - default: 0.25 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) voss_val, filt = voss_fast(source, period, predict, bandwith) if sequential: return VossFilter(voss_val, filt) else: return VossFilter(voss_val[-1], filt[-1]) @njit(cache=True) def voss_fast(source, period, predict, bandwith): voss = np.full_like(source, 0) filt = np.full_like(source, 0) pi = np.pi order = 3 * predict f1 = np.cos(2 * pi / period) g1 = np.cos(bandwith * 2 * pi / period) s1 = 1 / g1 - np.sqrt(1 / (g1 * g1) - 1) for i in range(source.shape[0]): if i > period and i > 5 and i > order: filt[i] = 0.5 * (1 - s1) * (source[i] - source[i - 2]) + f1 * (1 + s1) * filt[i - 1] - s1 * filt[i - 2] for i in range(source.shape[0]): if not (i <= period or i <= 5 or i <= order): sumc = 0 for count in range(order): sumc = sumc + ((count + 1) / float(order)) * voss[i - (order - count)] voss[i] = ((3 + order) / 2) * filt[i] - sumc return voss, filt ================================================ FILE: jesse/indicators/vpci.py ================================================ from collections import namedtuple from jesse.indicators.sma import sma import numpy as np from jesse.helpers import slice_candles VPCI = namedtuple('VPCI', ['vpci', 'vpcis']) def vpci(candles: np.ndarray, short_range: int = 5, long_range: int = 25, sequential: bool = False) -> VPCI: """ VPCI - Volume Price Confirmation Indicator :param candles: np.ndarray :param short_range: int - default: 5 :param long_range: int - default: 25 :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) vwma_long = sma(candles[:, 2] * candles[:, 5], long_range, sequential=True) / sma(candles[:, 5], long_range, sequential=True) VPC = vwma_long - sma(candles[:, 2], long_range, sequential=True) vwma_short = sma(candles[:, 2] * candles[:, 5], short_range, sequential=True) / sma(candles[:, 5], short_range, sequential=True) VPR = vwma_short / sma(candles[:, 2], short_range, sequential=True) VM = sma(candles[:, 5], short_range, sequential=True) / sma(candles[:, 5], long_range, sequential=True) VPCI_val = VPC * VPR * VM VPCIS = sma(VPCI_val * candles[:, 5], short_range, sequential=True) / sma(candles[:, 5], short_range, sequential=True) if sequential: return VPCI(VPCI_val, VPCIS) else: return VPCI(VPCI_val[-1], VPCIS[-1]) ================================================ FILE: jesse/indicators/vpt.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, np_shift, slice_candles def vpt(candles: np.ndarray, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ Volume Price Trend (VPT) :param candles: np.ndarray :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) vpt_val = (candles[:, 5] * ((source - np_shift(source, 1, fill_value=np.nan)) / np_shift(source, 1, fill_value=np.nan))) res = np_shift(vpt_val, 1, fill_value=np.nan) + vpt_val return res if sequential else res[-1] ================================================ FILE: jesse/indicators/vpwma.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, slice_candles def vpwma(candles: np.ndarray, period: int = 14, power: float = 0.382, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ Variable Power Weighted Moving Average :param candles: np.ndarray :param period: int - default: 14 :param power: float - default: 0.382 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ # Accept normal array too. if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = vpwma_fast(source, period, power) return res if sequential else res[-1] @njit(cache=True) def vpwma_fast(source, period, power): newseries = np.copy(source) for j in range(period + 1, source.shape[0]): my_sum = 0.0 weightSum = 0.0 for i in range(period - 1): weight = np.power(period - i, power) my_sum += (source[j - i] * weight) weightSum += weight newseries[j] = my_sum / weightSum return newseries ================================================ FILE: jesse/indicators/vwap.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles def vwap( candles: np.ndarray, source_type: str = "hlc3", anchor: str = "D", sequential: bool = False ) -> Union[float, np.ndarray]: """ VWAP :param candles: np.ndarray :param source_type: str - default: "hlc3" :param anchor: str - default: "D" :param sequential: bool - default: False :return: float | np.ndarray """ # Check if jesse_rust is available try: import jesse_rust candles = slice_candles(candles, sequential) # Use the Rust implementation with anchoring support result = jesse_rust.vwap(candles, source_type, anchor, sequential) if sequential: return result else: return None if np.isnan(result[-1]) else result[-1] except ImportError: # Fallback to original Python implementation with anchoring candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) # Convert timestamps to period indices timestamps = candles[:, 0].astype('datetime64[ms]').astype(f'datetime64[{anchor}]') group_indices = np.zeros(len(timestamps), dtype=np.int64) # Mark the start of each new period group_indices[1:] = (timestamps[1:] != timestamps[:-1]).astype(np.int64) group_indices = np.cumsum(group_indices) vwap_values = _calculate_vwap(source, candles[:, 5], group_indices) if sequential: return vwap_values else: return None if np.isnan(vwap_values[-1]) else vwap_values[-1] def _calculate_vwap(source: np.ndarray, volume: np.ndarray, group_indices: np.ndarray) -> np.ndarray: """ Calculate VWAP values with anchoring logic (pure Python implementation fallback) """ vwap_values = np.zeros_like(source) cum_vol = 0.0 cum_vol_price = 0.0 current_group = group_indices[0] for i in range(len(source)): if group_indices[i] != current_group: cum_vol = 0.0 cum_vol_price = 0.0 current_group = group_indices[i] vol_price = volume[i] * source[i] cum_vol_price += vol_price cum_vol += volume[i] vwap_values[i] = cum_vol_price / cum_vol if cum_vol != 0 else np.nan return vwap_values ================================================ FILE: jesse/indicators/vwma.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles from jesse_rust import vwma as vwma_rust def vwma(candles: np.ndarray, period: int = 20, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ VWMA - Volume Weighted Moving Average :param candles: np.ndarray :param period: int - default: 20 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: # Handle 1D array case by creating dummy candles with volume=1 source = candles dummy_candles = np.column_stack([ np.zeros(len(source)), # timestamp np.zeros(len(source)), # open source, # close np.zeros(len(source)), # high np.zeros(len(source)), # low np.ones(len(source)) # volume ]) candles_f64 = np.asarray(dummy_candles, dtype=np.float64) else: candles = slice_candles(candles, sequential) # Convert to float64 for Rust compatibility candles_f64 = np.asarray(candles, dtype=np.float64) # Update close column if different source type is requested if source_type != "close": source = get_candle_source(candles, source_type=source_type) candles_f64[:, 2] = source # Call the Rust implementation result = vwma_rust(candles_f64, period) return result if sequential else result[-1] ================================================ FILE: jesse/indicators/vwmacd.py ================================================ from collections import namedtuple import numpy as np from .vwma import vwma from jesse.helpers import slice_candles VWMACD = namedtuple('VWMACD', ['macd', 'signal', 'hist']) def vwmacd(candles: np.ndarray, fast_period: int = 12, slow_period: int = 26, signal_period: int = 9, sequential: bool = False) -> VWMACD: """ @author David. credits: https://www.tradingview.com/script/33Y1LzRq-Volume-Weighted-Moving-Average-Convergence-Divergence-MACD/ VWMACD - Volume Weighted Moving Average Convergence/Divergence :param candles: np.ndarray :param fast_period: int - default: 12 :param slow_period: int - default: 26 :param signal_period: int - default: 9 :param sequential: bool - default: False :return: VWMACD(macd, signal, hist) """ fastWMA = vwma(candles, fast_period, sequential=True) slowWMA = vwma(candles, slow_period, sequential=True) macd_val = fastWMA - slowWMA signal = vwma(macd_val, signal_period, sequential=True) hist = macd_val - signal if sequential: return VWMACD(macd_val, signal, hist) else: return VWMACD(macd_val[-1], signal[-1], hist[-1]) ================================================ FILE: jesse/indicators/wad.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import same_length, slice_candles @njit def _wad_numba(high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray: n = len(close) ad = np.zeros(n, dtype=np.float64) # The first element doesn't have a previous close, so set its adjustment to 0 ad[0] = 0 # Calculate the Acc/Dist component iteratively for i in range(1, n): if close[i] > close[i - 1]: ad[i] = close[i] - min(low[i], close[i - 1]) elif close[i] < close[i - 1]: ad[i] = close[i] - max(high[i], close[i - 1]) else: ad[i] = 0 # Williams Accumulation/Distribution is the cumulative sum of these adjustments wad_values = np.cumsum(ad) return wad_values def wad(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]: """ WAD - Williams Accumulation/Distribution :param candles: np.ndarray :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) # In this project, candle columns are arranged such that: # candles[:,3] -> high # candles[:,4] -> low # candles[:,1] -> close res = _wad_numba( np.ascontiguousarray(candles[:, 3]), np.ascontiguousarray(candles[:, 4]), np.ascontiguousarray(candles[:, 1]) ) return same_length(candles, res) if sequential else res[-1] ================================================ FILE: jesse/indicators/waddah_attr_explosion.py ================================================ from collections import namedtuple from .macd import macd from .sma import sma from .stddev import stddev import numpy as np from jesse.helpers import get_candle_source, slice_candles WaddahAttarExplosionTuple = namedtuple( 'WaddahAttarExplosionTuple', ['explosion_line', 'trend_power', 'trend_direction'] ) def waddah_attar_explosion(candles: np.ndarray, sensitivity: int = 150, fast_length: int = 20, slow_length: int = 40, channel_length: int = 20, mult: float = 2.0, source_type: str = "close") -> WaddahAttarExplosionTuple: """ @author LazyBear credits: https://www.tradingview.com/v/iu3kKWDI/ WADDAH_ATTAR_EXPLOSION - Waddah Attar Explosion :param candles: np.ndarray :param sensitivity: int - default: 150 :param fast_length: int - default: 20 :param slow_length: int - default: 40 :param channel_length: int - default: 20 :param mult: float - default: 2.0 :param source_type: str - default: "close" :return: WaddahAttarExplosionTuple(explosion_line, trend_power, trend_direction) """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, False) source = get_candle_source(candles, source_type=source_type) t1 = (macd(source, fast_period=fast_length, slow_period=slow_length)[0] - macd(source[:-1], fast_period=fast_length, slow_period=slow_length)[0])*sensitivity trend = 1 if t1 >= 0 else -1 e1 = _calc_bb_upper(source, channel_length, mult) - _calc_bb_lower(source, channel_length, mult) return WaddahAttarExplosionTuple(e1, t1, trend) def _calc_bb_upper(source, length, mult): basis = sma(source, length) dev = mult * stddev(source, length) return basis + dev def _calc_bb_lower(source, length, mult): basis = sma(source, length) dev = mult * stddev(source, length) return basis - dev ================================================ FILE: jesse/indicators/wclprice.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles def wclprice(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]: """ WCLPRICE - Weighted Close Price :param candles: np.ndarray :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) # Calculate weighted close price as (high + low + 2*close) / 4, with high=candles[:,3], low=candles[:,4], close=candles[:,2] res = (candles[:,3] + candles[:,4] + 2 * candles[:,2]) / 4.0 return res if sequential else res[-1] ================================================ FILE: jesse/indicators/wilders.py ================================================ from typing import Union import numpy as np from numba import njit from jesse.helpers import get_candle_source, same_length, slice_candles @njit def _wilders_fast(source: np.ndarray, period: int) -> np.ndarray: # Pre-allocate the output array res = np.zeros_like(source) # First value is a simple copy res[0] = source[0] # Calculate Wilder's Smoothing for i in range(1, len(source)): res[i] = (res[i - 1] * (period - 1) + source[i]) / period return res def wilders(candles: np.ndarray, period: int = 5, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ WILDERS - Wilders Smoothing :param candles: np.ndarray :param period: int - default: 5 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) res = _wilders_fast(source, period) return same_length(candles, res) if sequential else res[-1] ================================================ FILE: jesse/indicators/willr.py ================================================ from typing import Union import numpy as np from jesse.helpers import slice_candles from jesse_rust import willr as willr_rust def willr(candles: np.ndarray, period: int = 14, sequential: bool = False) -> Union[float, np.ndarray]: """ WILLR - Williams' %R :param candles: np.ndarray :param period: int - default: 14 :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) # Convert to float64 for Rust compatibility candles_f64 = np.asarray(candles, dtype=np.float64) # Call the Rust implementation result = willr_rust(candles_f64, period) return result if sequential else result[-1] ================================================ FILE: jesse/indicators/wma.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles from jesse_rust import wma as wma_rust def wma(candles: np.ndarray, period: int = 30, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ WMA - Weighted Moving Average :param candles: np.ndarray :param period: int - default: 30 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) # Convert to float64 for Rust compatibility source_f64 = np.asarray(source, dtype=np.float64) # Call the Rust implementation result = wma_rust(source_f64, period) return result if sequential else result[-1] ================================================ FILE: jesse/indicators/wt.py ================================================ from collections import namedtuple import numpy as np from jesse.helpers import slice_candles import jesse_rust Wavetrend = namedtuple('Wavetrend', ['wt1', 'wt2', 'wtCrossUp', 'wtCrossDown', 'wtOversold', 'wtOverbought', 'wtVwap']) # Wavetrend indicator ported from: https://www.tradingview.com/script/Msm4SjwI-VuManChu-Cipher-B-Divergences/ # https://www.tradingview.com/script/2KE8wTuF-Indicator-WaveTrend-Oscillator-WT/ # # buySignal = wtCross and wtCrossUp and wtOversold # sellSignal = wtCross and wtCrossDown and wtOverbought # # See https://github.com/ysdede/lazarus3/blob/partialexit/strategies/lazarus3/__init__.py for working jesse.ai example. def wt(candles: np.ndarray, wtchannellen: int = 9, wtaveragelen: int = 12, wtmalen: int = 3, oblevel: int = 53, oslevel: int = -53, source_type: str = "hlc3", sequential: bool = False) -> Wavetrend: """ Wavetrend indicator :param candles: np.ndarray :param wtchannellen: int - default: 9 :param wtaveragelen: int - default: 12 :param wtmalen: int - default: 3 :param oblevel: int - default: 53 :param oslevel: int - default: -53 :param source_type: str - default: "hlc3" :param sequential: bool - default: False :return: Wavetrend """ candles = slice_candles(candles, sequential) # Use the Rust implementation wt1, wt2, wtCrossUp, wtCrossDown, wtOversold, wtOverbought, wtVwap = jesse_rust.wt( candles, wtchannellen, wtaveragelen, wtmalen, float(oblevel), float(oslevel), source_type ) if sequential: return Wavetrend(wt1, wt2, wtCrossUp, wtCrossDown, wtOversold, wtOverbought, wtVwap) else: return Wavetrend(wt1[-1], wt2[-1], wtCrossUp[-1], wtCrossDown[-1], wtOversold[-1], wtOverbought[-1], wtVwap[-1]) ================================================ FILE: jesse/indicators/zlema.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, same_length, slice_candles import jesse_rust def zlema(candles: np.ndarray, period: int = 20, source_type: str = "close", sequential: bool = False) -> Union[ float, np.ndarray]: """ Zero-Lag Exponential Moving Average :param candles: np.ndarray :param period: int - default: 20 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ if len(candles.shape) == 1: source = candles else: candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) # Use the Rust implementation res = jesse_rust.zlema(source, period) return same_length(candles, res) if sequential else res[-1] ================================================ FILE: jesse/indicators/zscore.py ================================================ from typing import Union import numpy as np from jesse.helpers import get_candle_source, slice_candles from jesse.indicators.ma import ma from jesse.indicators.mean_ad import mean_ad from jesse.indicators.median_ad import median_ad def zscore(candles: np.ndarray, period: int = 14, matype: int = 0, nbdev: float = 1, devtype: int = 0, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]: """ zScore :param candles: np.ndarray :param period: int - default: 14 :param matype: int - default: 0 :param nbdev: float - default: 1 :param devtype: int - default: 0 :param source_type: str - default: "close" :param sequential: bool - default: False :return: float | np.ndarray """ candles = slice_candles(candles, sequential) source = get_candle_source(candles, source_type=source_type) if matype == 24 or matype == 29: means = ma(candles, period=period, matype=matype, source_type=source_type, sequential=True) else: means = ma(source, period=period, matype=matype, sequential=True) if devtype == 0: if len(source) < period: sigmas = np.full_like(source, np.nan, dtype=np.float64) else: # Create a sliding window view of the source array rolling_windows = np.lib.stride_tricks.sliding_window_view(source, window_shape=period) # Calculate std using population formula (ddof=0) std_values = np.std(rolling_windows, axis=1, ddof=0) sigmas = np.full(source.shape, np.nan, dtype=np.float64) sigmas[period-1:] = std_values sigmas = sigmas * nbdev elif devtype == 1: sigmas = mean_ad(source, period, sequential=True) * nbdev elif devtype == 2: sigmas = median_ad(source, period, sequential=True) * nbdev zScores = (source - means) / sigmas return zScores if sequential else zScores[-1] ================================================ FILE: jesse/info.py ================================================ from jesse.enums import exchanges as exchanges_enums, timeframes from jesse.services.env import ENV_VALUES, is_dev_env if is_dev_env(): JESSE_API_URL = ENV_VALUES.get('JESSE_API_URL', 'http://localhost:8040/api') JESSE_API2_URL = ENV_VALUES.get('JESSE_API2_URL', 'http://localhost:8080') JESSE_WEBSITE_URL = ENV_VALUES.get('JESSE_WEBSITE_URL', 'http://localhost:8040') else: JESSE_API_URL = 'https://api1.jesse.trade/api' JESSE_API2_URL = 'https://api2.jesse.trade' JESSE_WEBSITE_URL = 'https://jesse.trade' BYBIT_TIMEFRAMES = [timeframes.MINUTE_1, timeframes.MINUTE_3, timeframes.MINUTE_5, timeframes.MINUTE_15, timeframes.MINUTE_30, timeframes.HOUR_1, timeframes.HOUR_2, timeframes.HOUR_4, timeframes.HOUR_6, timeframes.HOUR_12, timeframes.DAY_1] BINANCE_TIMEFRAMES = [timeframes.MINUTE_1, timeframes.MINUTE_3, timeframes.MINUTE_5, timeframes.MINUTE_15, timeframes.MINUTE_30, timeframes.HOUR_1, timeframes.HOUR_2, timeframes.HOUR_4, timeframes.HOUR_6, timeframes.HOUR_8, timeframes.HOUR_12, timeframes.DAY_1] COINBASE_TIMEFRAMES = [timeframes.MINUTE_1, timeframes.MINUTE_5, timeframes.MINUTE_15, timeframes.HOUR_1, timeframes.HOUR_6, timeframes.DAY_1] APEX_OMNI_TIMEFRAMES = [timeframes.MINUTE_1, timeframes.MINUTE_5, timeframes.MINUTE_15, timeframes.MINUTE_30, timeframes.HOUR_1, timeframes.HOUR_2, timeframes.HOUR_4, timeframes.HOUR_6, timeframes.HOUR_12, timeframes.DAY_1] GATE_TIMEFRAMES = [timeframes.MINUTE_1, timeframes.MINUTE_5, timeframes.MINUTE_15, timeframes.MINUTE_30, timeframes.HOUR_1, timeframes.HOUR_2, timeframes.HOUR_4, timeframes.HOUR_6, timeframes.HOUR_8, timeframes.HOUR_12, timeframes.DAY_1, timeframes.WEEK_1] FTX_TIMEFRAMES = [timeframes.MINUTE_1, timeframes.MINUTE_3, timeframes.MINUTE_5, timeframes.MINUTE_15, timeframes.MINUTE_30, timeframes.HOUR_1, timeframes.HOUR_2, timeframes.HOUR_4, timeframes.HOUR_6, timeframes.HOUR_12, timeframes.DAY_1] BITGET_TIMEFRAMES = [timeframes.MINUTE_1, timeframes.MINUTE_5, timeframes.MINUTE_15, timeframes.MINUTE_30, timeframes.HOUR_1, timeframes.HOUR_4, timeframes.HOUR_12, timeframes.DAY_1] DYDX_TIMEFRAMES = [timeframes.MINUTE_1, timeframes.MINUTE_5, timeframes.MINUTE_15, timeframes.MINUTE_30, timeframes.HOUR_1, timeframes.HOUR_4, timeframes.DAY_1] HYPERLIQUID_TIMEFRAMES = [timeframes.MINUTE_1, timeframes.MINUTE_3, timeframes.MINUTE_5, timeframes.MINUTE_15, timeframes.MINUTE_30, timeframes.HOUR_1, timeframes.HOUR_2, timeframes.HOUR_4, timeframes.HOUR_8, timeframes.HOUR_12, timeframes.DAY_1] exchange_info = { # BYBIT_USDT_PERPETUAL exchanges_enums.BYBIT_USDT_PERPETUAL: { "name": exchanges_enums.BYBIT_USDT_PERPETUAL, "url": JESSE_WEBSITE_URL + "/bybit", "fee": 0.00055, "type": "futures", "settlement_currency": "USDT", "supported_leverage_modes": ["cross", "isolated"], "supported_timeframes": BYBIT_TIMEFRAMES, "modes": { "backtesting": True, "live_trading": True, }, "required_live_plan": "premium", }, # BYBIT_USDT_PERPETUAL_TESTNET exchanges_enums.BYBIT_USDT_PERPETUAL_TESTNET: { "name": exchanges_enums.BYBIT_USDT_PERPETUAL_TESTNET, "url": JESSE_WEBSITE_URL + "/bybit", "fee": 0.00055, "type": "futures", "settlement_currency": "USDT", "supported_leverage_modes": ["cross", "isolated"], "supported_timeframes": BYBIT_TIMEFRAMES, "modes": { "backtesting": False, "live_trading": True, }, "required_live_plan": "premium", }, # BYBIT_USDT_PERPETUAL exchanges_enums.BYBIT_USDC_PERPETUAL: { "name": exchanges_enums.BYBIT_USDC_PERPETUAL, "url": JESSE_WEBSITE_URL + "/bybit", "fee": 0.00055, "type": "futures", "settlement_currency": "USDC", "supported_leverage_modes": ["cross", "isolated"], "supported_timeframes": BYBIT_TIMEFRAMES, "modes": { "backtesting": True, "live_trading": True, }, "required_live_plan": "premium", }, # BYBIT_USDC_PERPETUAL_TESTNET exchanges_enums.BYBIT_USDC_PERPETUAL_TESTNET: { "name": exchanges_enums.BYBIT_USDC_PERPETUAL_TESTNET, "url": JESSE_WEBSITE_URL + "/bybit", "fee": 0.00055, "type": "futures", "supported_leverage_modes": ["cross", "isolated"], "supported_timeframes": BYBIT_TIMEFRAMES, "settlement_currency": "USDC", "modes": { "backtesting": False, "live_trading": True, }, "required_live_plan": "premium", }, # BYBIT_SPOT_TESTNET exchanges_enums.BYBIT_SPOT: { "name": exchanges_enums.BYBIT_SPOT, "url": "https://jesse.trade/bybit", "fee": 0.001, "type": "spot", "supported_leverage_modes": ["cross", "isolated"], "supported_timeframes": BYBIT_TIMEFRAMES, "modes": { "backtesting": True, "live_trading": True, }, "required_live_plan": "premium", }, # BYBIT_SPOT_TESTNET exchanges_enums.BYBIT_SPOT_TESTNET: { "name": exchanges_enums.BYBIT_SPOT_TESTNET, "url": "https://jesse.trade/bybit", "fee": 0.001, "type": "spot", "supported_leverage_modes": ["cross", "isolated"], "supported_timeframes": BYBIT_TIMEFRAMES, "modes": { "backtesting": False, "live_trading": True, }, "required_live_plan": "premium", }, # BITFINEX_SPOT exchanges_enums.BITFINEX_SPOT: { "name": exchanges_enums.BITFINEX_SPOT, "url": "https://bitfinex.com", "fee": 0.002, "type": "spot", "supported_leverage_modes": ["cross"], "supported_timeframes": [ timeframes.MINUTE_1, timeframes.MINUTE_5, timeframes.MINUTE_15, timeframes.MINUTE_30, timeframes.HOUR_1, timeframes.HOUR_3, timeframes.HOUR_6, timeframes.HOUR_12, timeframes.DAY_1, ], "modes": { "backtesting": True, "live_trading": False, }, "required_live_plan": "premium", }, # BINANCE_SPOT exchanges_enums.BINANCE_SPOT: { "name": exchanges_enums.BINANCE_SPOT, "url": "https://binance.com", "fee": 0.001, "type": "spot", "supported_leverage_modes": ["cross", "isolated"], "supported_timeframes": BINANCE_TIMEFRAMES, "modes": { "backtesting": True, "live_trading": True, }, "required_live_plan": "premium", }, # BINANCE_US_SPOT exchanges_enums.BINANCE_US_SPOT: { "name": exchanges_enums.BINANCE_US_SPOT, "url": "https://binance.us", "fee": 0.001, "type": "spot", "supported_leverage_modes": ["cross", "isolated"], "supported_timeframes": BINANCE_TIMEFRAMES, "modes": { "backtesting": True, "live_trading": True, }, "required_live_plan": "premium", }, # BINANCE_PERPETUAL_FUTURES exchanges_enums.BINANCE_PERPETUAL_FUTURES: { "name": exchanges_enums.BINANCE_PERPETUAL_FUTURES, "url": "https://binance.com", "fee": 0.0004, "type": "futures", "supported_leverage_modes": ["cross", "isolated"], "supported_timeframes": BINANCE_TIMEFRAMES, "modes": { "backtesting": True, "live_trading": True, }, "required_live_plan": "premium", }, # BINANCE_PERPETUAL_FUTURES_TESTNET exchanges_enums.BINANCE_PERPETUAL_FUTURES_TESTNET: { "name": exchanges_enums.BINANCE_PERPETUAL_FUTURES_TESTNET, "url": "https://binance.com", "fee": 0.0004, "type": "futures", "supported_leverage_modes": ["cross", "isolated"], "supported_timeframes": BINANCE_TIMEFRAMES, "modes": { "backtesting": False, "live_trading": True, }, "required_live_plan": "premium", }, # COINBASE_SPOT exchanges_enums.COINBASE_SPOT: { "name": exchanges_enums.COINBASE_SPOT, "url": "https://www.coinbase.com/advanced-trade/spot/BTC-USD", "fee": 0.0003, "type": "spot", "supported_leverage_modes": ["cross", "isolated"], "supported_timeframes": COINBASE_TIMEFRAMES, "modes": { "backtesting": True, "live_trading": True, }, "required_live_plan": "premium", }, exchanges_enums.APEX_OMNI_PERPETUAL_TESTNET: { "name": exchanges_enums.APEX_OMNI_PERPETUAL_TESTNET, "url": "https://testnet.omni.apex.exchange/trade/BTCUSD", "fee": 0.0005, "type": "futures", "supported_leverage_modes": ["cross"], "supported_timeframes": APEX_OMNI_TIMEFRAMES, "modes": { "backtesting": False, "live_trading": False, }, "required_live_plan": "free", }, exchanges_enums.APEX_OMNI_PERPETUAL: { "name": exchanges_enums.APEX_OMNI_PERPETUAL, "url": "https://omni.apex.exchange/trade/BTCUSD", "fee": 0.0005, "type": "futures", "supported_leverage_modes": ["cross"], "supported_timeframes": APEX_OMNI_TIMEFRAMES, "modes": { "backtesting": False, "live_trading": True, }, "required_live_plan": "premium", }, exchanges_enums.GATE_USDT_PERPETUAL: { "name": exchanges_enums.GATE_USDT_PERPETUAL, "url": "https://jesse.trade/gate", "fee": 0.0005, "type": "futures", "supported_leverage_modes": ["cross", "isolated"], "supported_timeframes": GATE_TIMEFRAMES, "modes": { "backtesting": True, "live_trading": True, }, "required_live_plan": "premium", }, exchanges_enums.GATE_SPOT: { "name": exchanges_enums.GATE_SPOT, "url": "https://jesse.trade/gate", "fee": 0.0005, "type": "spot", "supported_leverage_modes": ["cross", "isolated"], "supported_timeframes": GATE_TIMEFRAMES, "modes": { "backtesting": False, "live_trading": True, }, "required_live_plan": "premium", }, # FTX_PERPETUAL_FUTURES exchanges_enums.FTX_PERPETUAL_FUTURES: { "name": exchanges_enums.FTX_PERPETUAL_FUTURES, "url": "https://ftx.com/markets/future", "fee": 0.0006, "type": "futures", "supported_leverage_modes": ["cross"], "supported_timeframes": FTX_TIMEFRAMES, "modes": { "backtesting": False, "live_trading": False, }, "required_live_plan": "premium", }, # FTX_SPOT exchanges_enums.FTX_SPOT: { "name": exchanges_enums.FTX_SPOT, "url": "https://ftx.com/markets/spot", "fee": 0.0007, "type": "spot", "supported_leverage_modes": ["cross"], "supported_timeframes": FTX_TIMEFRAMES, "modes": { "backtesting": False, "live_trading": False, }, "required_live_plan": "premium", }, # FTX_US_SPOT exchanges_enums.FTX_US_SPOT: { "name": exchanges_enums.FTX_US_SPOT, "url": "https://ftx.us", "fee": 0.002, "type": "spot", "supported_leverage_modes": ["cross"], "supported_timeframes": FTX_TIMEFRAMES, "modes": { "backtesting": False, "live_trading": False, }, "required_live_plan": "premium", }, # BITGET_USDT_PERPETUAL_TESTNET exchanges_enums.BITGET_USDT_PERPETUAL_TESTNET: { "name": exchanges_enums.BITGET_USDT_PERPETUAL_TESTNET, "url": JESSE_WEBSITE_URL + "/bitget", "fee": 0.0006, "type": "futures", "supported_leverage_modes": ["cross", "isolated"], "supported_timeframes": BITGET_TIMEFRAMES, "modes": { "backtesting": False, "live_trading": False, }, "required_live_plan": "premium", }, # BITGET_USDT_PERPETUAL exchanges_enums.BITGET_USDT_PERPETUAL: { "name": exchanges_enums.BITGET_USDT_PERPETUAL, "url": JESSE_WEBSITE_URL + "/bitget", "fee": 0.0006, "type": "futures", "supported_leverage_modes": ["cross", "isolated"], "supported_timeframes": BITGET_TIMEFRAMES, "modes": { "backtesting": False, "live_trading": False, }, "required_live_plan": "premium", }, # BITGET_SPOT exchanges_enums.BITGET_SPOT: { "name": exchanges_enums.BITGET_SPOT, "url": JESSE_WEBSITE_URL + "/bitget", "fee": 0.0006, "type": "spot", "supported_leverage_modes": ["cross", "isolated"], "supported_timeframes": BITGET_TIMEFRAMES, "modes": { "backtesting": False, "live_trading": False, }, "required_live_plan": "premium", }, # DyDx exchanges_enums.DYDX_PERPETUAL: { "name": exchanges_enums.DYDX_PERPETUAL, "url": JESSE_WEBSITE_URL + "/dydx", "fee": 0.0005, "type": "futures", "supported_leverage_modes": ["cross"], "supported_timeframes": DYDX_TIMEFRAMES, "modes": { "backtesting": False, "live_trading": False, }, "required_live_plan": "premium", }, # DyDx Testnet exchanges_enums.DYDX_PERPETUAL_TESTNET: { "name": exchanges_enums.DYDX_PERPETUAL_TESTNET, "url": "https://trade.stage.dydx.exchange/trade/ETH-USD", "fee": 0.0005, "type": "futures", "supported_leverage_modes": ["cross"], "supported_timeframes": DYDX_TIMEFRAMES, "modes": { "backtesting": False, "live_trading": False, }, "required_live_plan": "premium", }, # HyperLiquid exchanges_enums.HYPERLIQUID_PERPETUAL: { "name": exchanges_enums.HYPERLIQUID_PERPETUAL, "url": "https://app.hyperliquid.xyz/trade", "fee": 0.0001, "type": "futures", "supported_leverage_modes": ["cross", "isolated"], "supported_timeframes": HYPERLIQUID_TIMEFRAMES, "modes": { "backtesting": False, "live_trading": True, }, "required_live_plan": "premium", }, exchanges_enums.HYPERLIQUID_PERPETUAL_TESTNET: { "name": exchanges_enums.HYPERLIQUID_PERPETUAL_TESTNET, "url": "https://app.hyperliquid-testnet.xyz/trade", "fee": 0.0001, "type": "futures", "supported_leverage_modes": ["cross", "isolated"], "supported_timeframes": HYPERLIQUID_TIMEFRAMES, "modes": { "backtesting": False, "live_trading": True, }, "required_live_plan": "free", }, } # list of supported exchanges for backtesting backtesting_exchanges = [k for k, v in exchange_info.items() if v['modes']['backtesting'] is True] backtesting_exchanges = list(sorted(backtesting_exchanges)) # list of supported exchanges for live trading live_trading_exchanges = [k for k, v in exchange_info.items() if v['modes']['live_trading'] is True] live_trading_exchanges = list(sorted(live_trading_exchanges)) # used for backtesting, and live trading when local candle generation is enabled: jesse_supported_timeframes = [ timeframes.MINUTE_1, timeframes.MINUTE_3, timeframes.MINUTE_5, timeframes.MINUTE_15, timeframes.MINUTE_30, timeframes.MINUTE_45, timeframes.HOUR_1, timeframes.HOUR_2, timeframes.HOUR_3, timeframes.HOUR_4, timeframes.HOUR_6, timeframes.HOUR_8, timeframes.HOUR_12, timeframes.DAY_1, ] ================================================ FILE: jesse/libs/__init__.py ================================================ from .dynamic_numpy_array import DynamicNumpyArray ================================================ FILE: jesse/libs/custom_json/__init__.py ================================================ import numpy as np import simplejson as json class NpEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, np.integer): return int(obj) elif isinstance(obj, np.bool_): return bool(obj) elif isinstance(obj, np.floating): return float(obj) elif isinstance(obj, np.ndarray): return obj.tolist() else: return super(NpEncoder, self).default(obj) ================================================ FILE: jesse/libs/dynamic_numpy_array/__init__.py ================================================ import numpy as np from jesse.helpers import np_shift class DynamicNumpyArray: """ Dynamic Numpy Array A data structure containing a numpy array which expands its memory allocation every N number. Hence, it's both fast and dynamic. """ def __init__(self, shape: tuple, drop_at: int = None): self.index = -1 self.array = np.zeros(shape) self.bucket_size = shape[0] self.shape = shape self.drop_at = drop_at def __str__(self) -> str: return str(self.array[:self.index + 1]) def __len__(self) -> int: return self.index + 1 def __getitem__(self, i): if isinstance(i, slice): start = 0 if i.start is None else i.start stop = self.index + 1 if i.stop is None else i.stop if stop < 0: stop = (self.index + 1) - abs(stop) stop = min(stop, self.index + 1) return self.array[start:stop] else: if i < 0: i = (self.index + 1) - abs(i) # validation if self.index == -1 or i > self.index or i < 0: raise IndexError(f'list assignment index out of range. self.index={self.index}, i={i}') return self.array[i] def __setitem__(self, i, item) -> None: if isinstance(i, slice): start = i.start stop = i.stop step = i.step if start is not None and start < 0: start = (self.index + 1) - abs(start) if stop is None: stop = start + len(item) if stop < 0: stop = (self.index + 1) - abs(stop) self.array[slice(start, stop, step)] = item return if i < 0: i = (self.index + 1) - abs(i) # validation if i > self.index or i < 0: raise IndexError('list assignment index out of range') self.array[i] = item def append(self, item: np.ndarray) -> None: self.index += 1 # expand if the arr is almost full if self.index != 0 and (self.index + 1) % self.bucket_size == 0: new_bucket = np.zeros(self.shape) self.array = np.concatenate((self.array, new_bucket), axis=0) # drop N% of the beginning values to free memory if ( self.drop_at is not None and self.index != 0 and (self.index + 1) % self.drop_at == 0 ): shift_num = int(self.drop_at / 2) self.index -= shift_num self.array = np_shift(self.array, -shift_num) self.array[self.index] = item def get_last_item(self): # validation if self.index == -1: raise IndexError('list assignment index out of range. array is empty which means no past item exists') return self.array[self.index] def get_past_item(self, past_index) -> np.ndarray: # validation if self.index == -1: raise IndexError('list assignment index out of range. array is empty which means no past item exists') # validation if (self.index - past_index) < 0: raise IndexError(f'list assignment index out of range. Max allowed is self.index={self.index}, past_index={past_index}') return self.array[self.index - past_index] def flush(self) -> None: self.index = -1 self.array = np.zeros(self.shape) self.bucket_size = self.shape[0] def append_multiple(self, items: np.ndarray) -> None: self.index += len(items) # expand if the arr will be greater than the maximum if self.index != 0 and (self.index + 1) >= len(self.array): # in case the shape is smaller than len(items) if isinstance(self.shape, int): shape = max(self.shape, len(items)) else: shape = list(self.shape) shape[0] = max(len(items), shape[0]) new_bucket = np.zeros(shape) self.array = np.concatenate((self.array, new_bucket), axis=0) # drop N% of the beginning values to free memory if ( self.drop_at is not None and self.index != 0 and (self.index + 1) % self.drop_at == 0 ): shift_num = int(self.drop_at / 2) self.index -= shift_num self.array = np_shift(self.array, -shift_num) self.array[self.index - len(items) + 1 : self.index + 1] = items def delete(self, index: int, axis=None) -> None: self.array = np.delete(self.array, index, axis=axis) self.index -= 1 if self.array.shape[0] <= self.shape[0]: new_bucket = np.zeros(self.shape) self.array = np.concatenate((self.array, new_bucket), axis=0) ================================================ FILE: jesse/models/BacktestSession.py ================================================ import peewee import json from jesse.services.db import database import jesse.helpers as jh if database.is_closed(): database.open_connection() class BacktestSession(peewee.Model): id = peewee.UUIDField(primary_key=True) # Status of the backtest session: running, finished, stopped, cancelled, or terminated status = peewee.CharField() # Backtest results data in JSON format metrics = peewee.TextField(null=True) equity_curve = peewee.TextField(null=True) trades = peewee.TextField(null=True) hyperparameters = peewee.TextField(null=True) chart_data = peewee.TextField(null=True) # Frontend state in JSON format - used for restoring UI state state = peewee.TextField(null=True) # User notes title = peewee.CharField(max_length=255, null=True) description = peewee.TextField(null=True) strategy_codes = peewee.TextField(null=True) # Error tracking exception = peewee.TextField(null=True) traceback = peewee.TextField(null=True) # Execution metrics execution_duration = peewee.FloatField(null=True) # Timestamps for session management created_at = peewee.BigIntegerField() updated_at = peewee.BigIntegerField() class Meta: from jesse.services.db import database database = database.db indexes = ( (('id',), True), (('created_at',), False), ) def __init__(self, attributes: dict = None, **kwargs) -> None: peewee.Model.__init__(self, attributes=attributes, **kwargs) if attributes is None: attributes = {} for a, value in attributes.items(): setattr(self, a, value) @property def metrics_json(self): """ Returns the metrics as a Python dictionary """ if not self.metrics: return None return json.loads(self.metrics) @metrics_json.setter def metrics_json(self, metrics_dict): """ Sets the metrics from a Python dictionary """ self.metrics = json.dumps(metrics_dict) if metrics_dict else None @property def equity_curve_json(self): """ Returns the equity curve data as a Python list """ if not self.equity_curve: return [] return json.loads(self.equity_curve) @equity_curve_json.setter def equity_curve_json(self, curve_data): """ Sets the equity curve data from a Python list """ self.equity_curve = json.dumps(curve_data) if curve_data else None @property def trades_json(self): """ Returns the trades as a Python list """ if not self.trades: return [] return json.loads(self.trades) @trades_json.setter def trades_json(self, trades_list): """ Sets the trades from a Python list """ self.trades = json.dumps(trades_list) if trades_list else None @property def hyperparameters_json(self): """ Returns the hyperparameters as a Python dictionary """ if not self.hyperparameters: return {} return json.loads(self.hyperparameters) @hyperparameters_json.setter def hyperparameters_json(self, hp_dict): """ Sets the hyperparameters from a Python dictionary """ self.hyperparameters = json.dumps(hp_dict) if hp_dict else None @property def chart_data_json(self): """ Returns the chart data as a Python dictionary """ if not self.chart_data: return {} return json.loads(self.chart_data) @chart_data_json.setter def chart_data_json(self, data_dict): """ Sets the chart data from a Python dictionary """ self.chart_data = json.dumps(data_dict) if data_dict else None @property def state_json(self): """ Returns the frontend state as a Python dictionary """ if not self.state: return {} s = json.loads(self.state) if isinstance(s, dict) and 'form' in s and isinstance(s['form'], dict): for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']: if key in s['form']: s['form'][key] = jh.normalize_bool(s['form'].get(key)) return s @state_json.setter def state_json(self, state_data): """ Sets the frontend state from a Python dictionary """ self.state = json.dumps(state_data) if state_data else None @property def strategy_codes_json(self): """ Returns the strategy codes as a Python dictionary """ if not self.strategy_codes: return {} return json.loads(self.strategy_codes) @strategy_codes_json.setter def strategy_codes_json(self, codes_dict): """ Sets the strategy codes from a Python dictionary """ self.strategy_codes = json.dumps(codes_dict) if codes_dict else None @property def duration(self): """ Calculate the duration of the session in seconds """ if not self.updated_at: # For running sessions, calculate duration up to now return jh.now_to_timestamp(True) - self.created_at # For completed sessions, use the stored timestamps return self.updated_at - self.created_at @property def net_profit_percentage(self): """ Get the net profit percentage from metrics """ metrics = self.metrics_json if not metrics: return None return metrics.get('net_profit_percentage', None) # if database is open, create the table if database.is_open(): BacktestSession.create_table() # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # DB FUNCTIONS # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # def get_backtest_session_by_id(id: str): try: return BacktestSession.get(BacktestSession.id == id) except BacktestSession.DoesNotExist: return None def store_backtest_session( id: str, status: str ) -> None: # Check if session already exists existing_session = get_backtest_session_by_id(id) if existing_session: # Update existing session - reset it to fresh state d = { 'status': status, 'metrics': None, 'equity_curve': None, 'trades': None, 'hyperparameters': None, 'chart_data': None, 'state': None, 'exception': None, 'traceback': None, 'execution_duration': None, 'updated_at': jh.now_to_timestamp(True) } BacktestSession.update(**d).where(BacktestSession.id == id).execute() else: # Create a new session d = { 'id': id, 'status': status, 'created_at': jh.now_to_timestamp(True), 'updated_at': jh.now_to_timestamp(True) } BacktestSession.insert(**d).execute() def update_backtest_session_status(id: str, status: str) -> None: d = { 'status': status, 'updated_at': jh.now_to_timestamp(True) } BacktestSession.update(**d).where(BacktestSession.id == id).execute() def store_backtest_session_exception(id: str, exception: str, traceback: str) -> None: d = { 'exception': exception, 'traceback': traceback, 'updated_at': jh.now_to_timestamp(True) } BacktestSession.update(**d).where(BacktestSession.id == id).execute() def update_backtest_session_results( id: str, metrics: dict = None, equity_curve: list = None, trades: list = None, hyperparameters: dict = None, chart_data: dict = None, execution_duration: float = None, strategy_codes: dict = None ) -> None: d = { 'updated_at': jh.now_to_timestamp(True) } if metrics is not None: d['metrics'] = json.dumps(metrics) if equity_curve is not None: d['equity_curve'] = json.dumps(equity_curve) if trades is not None: d['trades'] = json.dumps(trades) if hyperparameters is not None: d['hyperparameters'] = json.dumps(hyperparameters) if chart_data is not None: d['chart_data'] = json.dumps(chart_data) if execution_duration is not None: d['execution_duration'] = execution_duration if strategy_codes is not None: d['strategy_codes'] = json.dumps(strategy_codes) BacktestSession.update(**d).where(BacktestSession.id == id).execute() def get_backtest_sessions(limit: int = 50, offset: int = 0, title_search: str = None, status_filter: str = None, date_filter: str = None) -> list: """ Returns a list of BacktestSession objects sorted by most recently updated. Excludes draft sessions by default. """ query = BacktestSession.select().where(BacktestSession.status != 'draft').order_by(BacktestSession.updated_at.desc()) # Apply title filter (case-insensitive) if title_search: query = query.where(BacktestSession.title.contains(title_search)) # Apply status filter if status_filter and status_filter != 'all': query = query.where(BacktestSession.status == status_filter) # Apply date filter if date_filter and date_filter != 'all_time': current_timestamp = jh.now_to_timestamp(True) if date_filter == '7_days': threshold = current_timestamp - (7 * 24 * 60 * 60 * 1000) elif date_filter == '30_days': threshold = current_timestamp - (30 * 24 * 60 * 60 * 1000) elif date_filter == '90_days': threshold = current_timestamp - (90 * 24 * 60 * 60 * 1000) else: threshold = 0 if threshold > 0: query = query.where(BacktestSession.created_at >= threshold) return list(query.limit(limit).offset(offset)) def delete_backtest_session(id: str) -> bool: try: BacktestSession.delete().where(BacktestSession.id == id).execute() return True except Exception as e: print(f"Error deleting backtest session: {e}") return False def purge_backtest_sessions(days_old: int = None) -> int: try: current_timestamp = jh.now_to_timestamp(True) if days_old is not None: days_old = int(days_old) if days_old is not None and days_old > 0: threshold = current_timestamp - (days_old * 24 * 60 * 60 * 1000) all_sessions = BacktestSession.select() sessions_to_delete = [] for session in all_sessions: try: session_updated_at = int(session.updated_at) if session.updated_at else 0 if session_updated_at < threshold: sessions_to_delete.append(session.id) except (ValueError, TypeError): continue deleted_count = 0 for session_id in sessions_to_delete: try: BacktestSession.delete().where(BacktestSession.id == session_id).execute() deleted_count += 1 except Exception: pass else: deleted_count = BacktestSession.delete().execute() return deleted_count except Exception as e: print(f"Error purging backtest sessions: {e}") return 0 def update_backtest_session_state(id: str, state: dict) -> None: """ Update or create (upsert) backtest session state. If session doesn't exist, creates as draft. """ if isinstance(state, dict) and 'form' in state and isinstance(state['form'], dict): for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']: if key in state['form']: state['form'][key] = jh.normalize_bool(state['form'].get(key)) existing = BacktestSession.select().where(BacktestSession.id == id).first() if existing: # Update existing session's state d = { 'state': json.dumps(state), 'updated_at': jh.now_to_timestamp(True) } BacktestSession.update(**d).where(BacktestSession.id == id).execute() else: # Create new draft session d = { 'id': id, 'status': 'draft', 'state': json.dumps(state), 'created_at': jh.now_to_timestamp(True), 'updated_at': jh.now_to_timestamp(True) } BacktestSession.insert(**d).execute() def update_backtest_session_notes(id: str, title: str = None, description: str = None, strategy_codes: dict = None) -> None: d = { 'updated_at': jh.now_to_timestamp(True) } if title is not None: d['title'] = title if description is not None: d['description'] = description if strategy_codes is not None: d['strategy_codes'] = json.dumps(strategy_codes) BacktestSession.update(**d).where(BacktestSession.id == id).execute() ================================================ FILE: jesse/models/Candle.py ================================================ import peewee from jesse.services.db import database import jesse.helpers as jh import numpy as np if database.is_closed(): database.open_connection() class Candle(peewee.Model): id = peewee.UUIDField(primary_key=True) timestamp = peewee.BigIntegerField() open = peewee.FloatField() close = peewee.FloatField() high = peewee.FloatField() low = peewee.FloatField() volume = peewee.FloatField() exchange = peewee.CharField() symbol = peewee.CharField() timeframe = peewee.CharField() # partial candles: 5 * 1m candle = 5m candle while 1m == partial candle is_partial = True class Meta: from jesse.services.db import database database = database.db indexes = ( (('exchange', 'symbol', 'timeframe', 'timestamp'), True), ) def __init__(self, attributes: dict = None, **kwargs) -> None: peewee.Model.__init__(self, attributes=attributes, **kwargs) if attributes is None: attributes = {} for a, value in attributes.items(): setattr(self, a, value) # if database is open, create the table if database.is_open(): Candle.create_table() ================================================ FILE: jesse/models/ClosedTrade.py ================================================ import numpy as np import peewee import jesse.helpers as jh from jesse.services.db import database from jesse.libs.dynamic_numpy_array import DynamicNumpyArray from jesse.enums import trade_types from jesse.models.Order import Order from jesse.enums import order_statuses if database.is_closed(): database.open_connection() class ClosedTrade(peewee.Model): """A trade is made when a position is opened AND closed.""" id = peewee.UUIDField(primary_key=True) session_id = peewee.UUIDField() strategy_name = peewee.CharField() symbol = peewee.CharField() exchange = peewee.CharField() type = peewee.CharField() timeframe = peewee.CharField() opened_at = peewee.BigIntegerField() closed_at = peewee.BigIntegerField(null=True) leverage = peewee.IntegerField() created_at = peewee.BigIntegerField() updated_at = peewee.BigIntegerField() session_mode = peewee.CharField() soft_deleted_at = peewee.BigIntegerField(null=True) class Meta: from jesse.services.db import database database = database.db indexes = ((('strategy_name', 'exchange', 'symbol'), False),) def __init__(self, attributes: dict = None, **kwargs) -> None: peewee.Model.__init__(self, attributes=attributes, **kwargs) if attributes is None: attributes = {} for a, value in attributes.items(): setattr(self, a, value) # used for fast calculation of the total qty, entry_price, exit_price, etc. self.buy_orders = DynamicNumpyArray((10, 2)) self.sell_orders = DynamicNumpyArray((10, 2)) # to store the actual order objects self.orders = [] @property def to_json(self) -> dict: return { "id": self.id, "strategy_name": jh.get_class_name(self.strategy_name), "symbol": self.symbol, "exchange": self.exchange, "type": self.type, "entry_price": self.entry_price, "exit_price": self.exit_price, "qty": self.qty, "fee": self.fee, "size": self.size, "PNL": self.pnl, "PNL_percentage": self.pnl_percentage, "holding_period": self.holding_period, "opened_at": self.opened_at, "closed_at": self.closed_at, } @property def to_dict(self) -> dict: return { 'id': self.id, 'strategy_name': jh.get_class_name(self.strategy_name), 'symbol': self.symbol, 'exchange': self.exchange, 'type': self.type, 'entry_price': self.entry_price, 'exit_price': self.exit_price, 'qty': self.qty, 'opened_at': self.opened_at, 'closed_at': self.closed_at, "fee": self.fee, "size": self.size, "PNL": self.pnl, "PNL_percentage": self.pnl_percentage, "holding_period": self.holding_period, } @property def to_dict_with_orders(self) -> dict: data = self.to_dict data['orders'] = [order.to_dict for order in self.orders] return data @property def fee(self) -> float: return sum(order.fee or 0 for order in self.orders) @property def size(self) -> float: return self.qty * self.entry_price @property def pnl(self) -> float: # calculate raw profit/loss qty = abs(self.qty) profit = qty * (self.exit_price - self.entry_price) if self.type == 'short': profit *= -1 # subtract actual fee (which already uses order fees if available) return profit - self.fee @property def pnl_percentage(self) -> float: """ Alias for self.roi """ return self.roi @property def roi(self) -> float: """ Return on Investment in percentage More at: https://www.binance.com/en/support/faq/5b9ad93cb4854f5990b9fb97c03cfbeb """ return self.pnl / self.total_cost * 100 @property def total_cost(self) -> float: """ How much we paid to open this position (currently does not include fees, should we?!) """ return self.entry_price * abs(self.qty) / self.leverage @property def holding_period(self) -> int: """How many SECONDS has it taken for the trade to be done.""" if self.closed_at is None: return None return (self.closed_at - self.opened_at) / 1000 @property def is_long(self) -> bool: return self.type == trade_types.LONG @property def is_short(self) -> bool: return self.type == trade_types.SHORT @property def qty(self) -> float: if self.is_long: return self.buy_orders[:][:, 0].sum() elif self.is_short: return self.sell_orders[:][:, 0].sum() else: return 0.0 @property def entry_price(self) -> float: if self.is_long: orders = self.buy_orders[:] elif self.is_short: orders = self.sell_orders[:] else: return np.nan return (orders[:, 0] * orders[:, 1]).sum() / orders[:, 0].sum() @property def current_qty(self) -> float: trade_orders = Order.select().where(Order.trade_id == self.id).where(Order.status == order_statuses.EXECUTED).order_by(Order.executed_at) if len(trade_orders) == 0: return 0.0 else: import jesse.utils as utils qty = 0.0 for order in trade_orders: qty = utils.sum_floats(qty, order.filled_qty) return qty @property def exit_price(self) -> float: if self.is_long: orders = self.sell_orders[:] elif self.is_short: orders = self.buy_orders[:] else: return np.nan return (orders[:, 0] * orders[:, 1]).sum() / orders[:, 0].sum() @property def is_open(self) -> bool: return self.opened_at is not None # if database is open, create the table if database.is_open(): ClosedTrade.create_table() ================================================ FILE: jesse/models/Exchange.py ================================================ from abc import ABC, abstractmethod from jesse.models.Order import Order import jesse.helpers as jh from jesse.libs import DynamicNumpyArray from jesse.info import exchange_info from jesse.routes import router class Exchange(ABC): def __init__(self, name: str, starting_balance: float, fee_rate: float, exchange_type: str): # currently holding assets self.assets = {} # used for calculating available balance in futures mode: self.temp_reduced_amount = {} # used for calculating final performance metrics self.starting_assets = {} # current available assets (dynamically changes based on active orders) self.available_assets = {} self.fee_rate = fee_rate # some exchanges might require even further info self.vars = {} self.buy_orders = {} self.sell_orders = {} self.name = name self.type = exchange_type.lower() # in running session's quote currency self.starting_balance = starting_balance all_trading_routes = router.routes first_route = all_trading_routes[0] # check the settlement_currency is in the exchange info with name equal to the exchange name if self.name in exchange_info and 'settlement_currency' in exchange_info[self.name]: self.settlement_currency = exchange_info[self.name]['settlement_currency'] else: self.settlement_currency = jh.quote_asset(first_route.symbol) # initiate dict keys for trading assets for r in all_trading_routes: base_asset = jh.base_asset(r.symbol) self.buy_orders[base_asset] = DynamicNumpyArray((10, 2)) self.sell_orders[base_asset] = DynamicNumpyArray((10, 2)) self.assets[base_asset] = 0.0 self.assets[self.settlement_currency] = 0.0 if jh.is_livetrading() else starting_balance self.temp_reduced_amount[base_asset] = 0.0 self.temp_reduced_amount[self.settlement_currency] = 0.0 self.starting_assets[base_asset] = 0.0 self.starting_assets[self.settlement_currency] = starting_balance self.available_assets[base_asset] = 0.0 self.available_assets[self.settlement_currency] = starting_balance @property @abstractmethod def wallet_balance(self) -> float: pass @property @abstractmethod def available_margin(self) -> float: pass @abstractmethod def on_order_submission(self, order: Order) -> None: pass @abstractmethod def on_order_execution(self, order: Order) -> None: pass @abstractmethod def on_order_cancellation(self, order: Order) -> None: pass ================================================ FILE: jesse/models/ExchangeApiKeys.py ================================================ import json import peewee from jesse.services.db import database if database.is_closed(): database.open_connection() class ExchangeApiKeys(peewee.Model): id = peewee.UUIDField(primary_key=True) exchange_name = peewee.CharField() name = peewee.CharField(unique=True) api_key = peewee.CharField() api_secret = peewee.CharField() additional_fields = peewee.TextField() created_at = peewee.DateTimeField() class Meta: from jesse.services.db import database database = database.db def __init__(self, attributes=None, **kwargs) -> None: peewee.Model.__init__(self, attributes=attributes, **kwargs) if attributes is None: attributes = {} for a in attributes: setattr(self, a, attributes[a]) def get_additional_fields(self) -> dict: return json.loads(self.additional_fields) # if database is open, create the table if database.is_open(): ExchangeApiKeys.create_table() ================================================ FILE: jesse/models/FuturesExchange.py ================================================ import numpy as np from numba import njit import jesse.helpers as jh import jesse.services.logger as logger from jesse.enums import sides from jesse.exceptions import InsufficientMargin from jesse.models.Order import Order from jesse.models.Exchange import Exchange from jesse.store import store class FuturesExchange(Exchange): def __init__( self, name: str, starting_balance: float, fee_rate: float, futures_leverage_mode: str, futures_leverage: int ): super().__init__(name, starting_balance, fee_rate, 'futures') # # # # live-trading only # # # # # in futures trading, margin is only with one asset, so: self._available_margin = 0 # in futures trading, wallet is only with one asset, so: self._wallet_balance = 0 # so is started_balance self._started_balance = 0 # # # # # # # # # # # # # # # # # self.futures_leverage_mode = futures_leverage_mode self.futures_leverage = futures_leverage @property def started_balance(self) -> float: if jh.is_livetrading(): return self._started_balance return self.starting_assets[jh.app_currency()] @property def wallet_balance(self) -> float: if jh.is_livetrading(): return self._wallet_balance return self.assets[self.settlement_currency] @property def available_margin(self) -> float: if jh.is_livetrading(): return self._available_margin # In both live trading and backtesting/paper trading, we start with the balance margin = self.wallet_balance # Calculate the total spent amount considering leverage # Here we need to calculate the total cost of all open positions and orders, considering leverage total_spent = 0 for asset in self.assets: if asset == self.settlement_currency: continue position = store.positions.get_position(self.name, f"{asset}-{self.settlement_currency}") if position and position.is_open: # Adding the cost of open positions total_spent += position.total_cost # add unrealized PNL total_spent -= position.pnl # Summing up the cost of open orders (buy and sell), considering leverage sum_buy_orders = (self.buy_orders[asset][:][:, 0] * self.buy_orders[asset][:][:, 1]).sum() sum_sell_orders = (self.sell_orders[asset][:][:, 0] * self.sell_orders[asset][:][:, 1]).sum() total_spent += max( abs(sum_buy_orders) / self.futures_leverage, abs(sum_sell_orders) / self.futures_leverage ) # Subtracting the total spent from the margin margin -= total_spent return margin def charge_fee(self, amount: float) -> None: if jh.is_livetrading(): return fee_amount = abs(amount) * self.fee_rate new_balance = self.assets[self.settlement_currency] - fee_amount if fee_amount != 0: logger.info( f'Charged {round(fee_amount, 2)} as fee. Balance for {self.settlement_currency} on {self.name} changed from {round(self.assets[self.settlement_currency], 2)} to {round(new_balance, 2)}' ) self.assets[self.settlement_currency] = new_balance def add_realized_pnl(self, realized_pnl: float) -> None: if jh.is_livetrading(): return new_balance = self.assets[self.settlement_currency] + realized_pnl logger.info( f'Added realized PNL of {round(realized_pnl, 2)}. Balance for {self.settlement_currency} on {self.name} changed from {round(self.assets[self.settlement_currency], 2)} to {round(new_balance, 2)}') self.assets[self.settlement_currency] = new_balance def on_order_submission(self, order: Order) -> None: if jh.is_livetrading(): return base_asset = jh.base_asset(order.symbol) # make sure we don't spend more than we're allowed considering current allowed leverage if not order.reduce_only: # Calculate the effective order size considering leverage effective_order_size = abs(order.qty * order.price) / self.futures_leverage if effective_order_size > self.available_margin: raise InsufficientMargin( f'Cannot submit an order with a value of ${round(order.qty * order.price)} when your available margin is ${round(self.available_margin)}. Consider increasing leverage number from the settings or reducing the order size.' ) self.available_assets[base_asset] += order.qty if not order.reduce_only: if order.side == sides.BUY: self.buy_orders[base_asset].append(np.array([order.qty, order.price])) else: self.sell_orders[base_asset].append(np.array([order.qty, order.price])) def on_order_execution(self, order: Order) -> None: if jh.is_livetrading(): return base_asset = jh.base_asset(order.symbol) if not order.reduce_only: order_array = np.array([order.qty, order.price]) if order.side == sides.BUY: item_index = np.where(np.all(self.buy_orders[base_asset].array == order_array, axis=1))[0] if len(item_index) > 0: index = item_index[0] self.buy_orders[base_asset].delete(index, axis=0) else: item_index = np.where(np.all(self.sell_orders[base_asset].array == order_array, axis=1))[0] if len(item_index) > 0: index = item_index[0] self.sell_orders[base_asset].delete(index, axis=0) def on_order_cancellation(self, order: Order) -> None: if jh.is_livetrading(): return base_asset = jh.base_asset(order.symbol) self.available_assets[base_asset] -= order.qty if not order.reduce_only: order_array = np.array([order.qty, order.price]) if order.side == sides.BUY: index = find_order_index(self.buy_orders[base_asset].array, order_array) if index != -1: self.buy_orders[base_asset].delete(index, axis=0) else: index = find_order_index(self.sell_orders[base_asset].array, order_array) if index != -1: self.sell_orders[base_asset].delete(index, axis=0) def update_from_stream(self, data: dict) -> None: """ Used for updating the exchange from the WS stream (only for live trading) """ if not jh.is_livetrading(): raise Exception('This method is only for live trading') self._available_margin = data['available_margin'] self._wallet_balance = data['wallet_balance'] if self._started_balance == 0: self._started_balance = self._wallet_balance @njit(cache=True) def find_order_index(orders, order_array): for i in range(len(orders)): if np.all(orders[i] == order_array): return i return -1 ================================================ FILE: jesse/models/LiveEquitySnapshot.py ================================================ import peewee from jesse.services.db import database if database.is_closed(): database.open_connection() class LiveEquitySnapshot(peewee.Model): session_id = peewee.UUIDField() timestamp = peewee.BigIntegerField() currency = peewee.CharField() equity = peewee.DoubleField() class Meta: from jesse.services.db import database database = database.db indexes = ( (('session_id', 'timestamp'), True), # Unique constraint ) primary_key = peewee.CompositeKey('session_id', 'timestamp') def __init__(self, attributes: dict = None, **kwargs) -> None: peewee.Model.__init__(self, attributes=attributes, **kwargs) if attributes is None: attributes = {} for a, value in attributes.items(): setattr(self, a, value) # if database is open, create the table if database.is_open(): LiveEquitySnapshot.create_table() ================================================ FILE: jesse/models/LiveSession.py ================================================ import peewee import json from jesse.services.db import database import jesse.helpers as jh if database.is_closed(): database.open_connection() class LiveSession(peewee.Model): id = peewee.UUIDField(primary_key=True) # Status of the live session: running, stopped, or terminated status = peewee.CharField() # Session mode: livetrade or papertrade session_mode = peewee.CharField() # Exchange name exchange = peewee.CharField() # Frontend state in JSON format - used for restoring UI state state = peewee.TextField(null=True) # User notes title = peewee.CharField(max_length=255, null=True) description = peewee.TextField(null=True) strategy_codes = peewee.TextField(null=True) # Error tracking exception = peewee.TextField(null=True) traceback = peewee.TextField(null=True) # Timestamps for session management finished_at = peewee.BigIntegerField(null=True) created_at = peewee.BigIntegerField() updated_at = peewee.BigIntegerField() class Meta: from jesse.services.db import database database = database.db indexes = ( (('id',), True), (('created_at',), False), (('updated_at',), False), ) def __init__(self, attributes: dict = None, **kwargs) -> None: peewee.Model.__init__(self, attributes=attributes, **kwargs) if attributes is None: attributes = {} for a, value in attributes.items(): setattr(self, a, value) @property def state_json(self): """ Returns the frontend state as a Python dictionary """ if not self.state: return {} s = json.loads(self.state) if isinstance(s, dict) and 'form' in s and isinstance(s['form'], dict): for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']: if key in s['form']: s['form'][key] = jh.normalize_bool(s['form'].get(key)) return s @state_json.setter def state_json(self, state_data): """ Sets the frontend state from a Python dictionary """ self.state = json.dumps(state_data) if state_data else None @property def strategy_codes_json(self): """ Returns the strategy codes as a Python dictionary """ if not self.strategy_codes: return {} return json.loads(self.strategy_codes) @strategy_codes_json.setter def strategy_codes_json(self, codes_dict): """ Sets the strategy codes from a Python dictionary """ self.strategy_codes = json.dumps(codes_dict) if codes_dict else None @property def duration(self): """ Calculate the duration of the session in seconds """ if self.finished_at: # For completed sessions, use the stored timestamps return self.finished_at - self.created_at else: # For running sessions, calculate duration up to now return jh.now_to_timestamp(True) - self.created_at # if database is open, create the table if database.is_open(): LiveSession.create_table() ================================================ FILE: jesse/models/Log.py ================================================ import peewee from jesse.services.db import database if database.is_closed(): database.open_connection() class Log(peewee.Model): id = peewee.UUIDField(primary_key=True) session_id = peewee.UUIDField(index=True) timestamp = peewee.BigIntegerField() message = peewee.TextField() # 1: info, 2: error, maybe add more in the future? type = peewee.SmallIntegerField() class Meta: from jesse.services.db import database database = database.db indexes = ( (('session_id', 'type', 'timestamp'), False), ) def __init__(self, attributes=None, **kwargs) -> None: peewee.Model.__init__(self, attributes=attributes, **kwargs) if attributes is None: attributes = {} for a in attributes: setattr(self, a, attributes[a]) # if database is open, create the table if database.is_open(): Log.create_table() # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # DB FUNCTIONS # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # def store_log_into_db(log: dict, log_type: str) -> None: if log_type == 'info': log_type = 1 elif log_type == 'error': log_type = 2 else: raise ValueError(f"Unsupported log_type value: {log_type}") d = { 'id': log['id'], 'session_id': log['session_id'], 'type': log_type, 'timestamp': log['timestamp'], 'message': log['message'] } try: Log.insert(**d).execute() except Exception: try: database.db.rollback() except Exception: pass try: Log.insert(**d).execute() except Exception: pass ================================================ FILE: jesse/models/MonteCarloSession.py ================================================ import peewee import json import numpy as np from jesse.services.db import database import jesse.helpers as jh def _convert_numpy_types(obj): """Convert NumPy types to native Python types for JSON serialization""" if isinstance(obj, dict): return {k: _convert_numpy_types(v) for k, v in obj.items()} elif isinstance(obj, list): return [_convert_numpy_types(item) for item in obj] elif isinstance(obj, np.integer): return int(obj) elif isinstance(obj, np.floating): return float(obj) elif isinstance(obj, np.bool_): return bool(obj) elif isinstance(obj, np.ndarray): return obj.tolist() return obj if database.is_closed(): database.open_connection() class MonteCarloSession(peewee.Model): id = peewee.UUIDField(primary_key=True) status = peewee.CharField() state = peewee.TextField(null=True) title = peewee.CharField(max_length=255, null=True) description = peewee.TextField(null=True) strategy_codes = peewee.TextField(null=True) created_at = peewee.BigIntegerField() updated_at = peewee.BigIntegerField() class Meta: from jesse.services.db import database database = database.db indexes = ( (('id',), True), (('updated_at',), False), ) def __init__(self, attributes: dict = None, **kwargs) -> None: peewee.Model.__init__(self, attributes=attributes, **kwargs) if attributes is None: attributes = {} for a, value in attributes.items(): setattr(self, a, value) @property def state_json(self): if not self.state: return {} s = json.loads(self.state) if isinstance(s, dict) and 'form' in s and isinstance(s['form'], dict): for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']: if key in s['form']: s['form'][key] = jh.normalize_bool(s['form'].get(key)) return s @state_json.setter def state_json(self, state_data): self.state = json.dumps(state_data) @property def strategy_codes_json(self): if not self.strategy_codes: return {} return json.loads(self.strategy_codes) @strategy_codes_json.setter def strategy_codes_json(self, codes_dict): self.strategy_codes = json.dumps(codes_dict) if codes_dict else None @property def trades_session(self): try: return MonteCarloTradesSession.get( MonteCarloTradesSession.monte_carlo_session_id == self.id ) except MonteCarloTradesSession.DoesNotExist: return None @property def candles_session(self): try: return MonteCarloCandlesSession.get( MonteCarloCandlesSession.monte_carlo_session_id == self.id ) except MonteCarloCandlesSession.DoesNotExist: return None class MonteCarloTradesSession(peewee.Model): id = peewee.UUIDField(primary_key=True) monte_carlo_session_id = peewee.UUIDField() num_scenarios = peewee.IntegerField() completed_scenarios = peewee.IntegerField(default=0) status = peewee.CharField() results = peewee.TextField(null=True) logs = peewee.TextField(null=True) exception = peewee.TextField(null=True) traceback = peewee.TextField(null=True) created_at = peewee.BigIntegerField() updated_at = peewee.BigIntegerField() class Meta: from jesse.services.db import database database = database.db indexes = ( (('id',), True), (('monte_carlo_session_id',), False), ) def __init__(self, attributes: dict = None, **kwargs) -> None: peewee.Model.__init__(self, attributes=attributes, **kwargs) if attributes is None: attributes = {} for a, value in attributes.items(): setattr(self, a, value) @property def results_json(self): if not self.results: return {} return json.loads(self.results) @results_json.setter def results_json(self, results_data): self.results = json.dumps(results_data) class MonteCarloCandlesSession(peewee.Model): id = peewee.UUIDField(primary_key=True) monte_carlo_session_id = peewee.UUIDField() num_scenarios = peewee.IntegerField() completed_scenarios = peewee.IntegerField(default=0) status = peewee.CharField() pipeline_type = peewee.CharField() pipeline_params = peewee.TextField(null=True) results = peewee.TextField(null=True) logs = peewee.TextField(null=True) exception = peewee.TextField(null=True) traceback = peewee.TextField(null=True) created_at = peewee.BigIntegerField() updated_at = peewee.BigIntegerField() class Meta: from jesse.services.db import database database = database.db indexes = ( (('id',), True), (('monte_carlo_session_id',), False), ) def __init__(self, attributes: dict = None, **kwargs) -> None: peewee.Model.__init__(self, attributes=attributes, **kwargs) if attributes is None: attributes = {} for a, value in attributes.items(): setattr(self, a, value) @property def results_json(self): if not self.results: return {} return json.loads(self.results) @results_json.setter def results_json(self, results_data): self.results = json.dumps(results_data) @property def pipeline_params_json(self): if not self.pipeline_params: return {} return json.loads(self.pipeline_params) @pipeline_params_json.setter def pipeline_params_json(self, params_data): self.pipeline_params = json.dumps(params_data) # Create tables if database is open if database.is_open(): MonteCarloSession.create_table() MonteCarloTradesSession.create_table() MonteCarloCandlesSession.create_table() # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # DB FUNCTIONS # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Parent Session Functions def get_monte_carlo_session_by_id(id: str): try: return MonteCarloSession.get(MonteCarloSession.id == id) except MonteCarloSession.DoesNotExist: return None def get_monte_carlo_sessions(limit: int = 50, offset: int = 0, title_search: str = None, status_filter: str = None, date_filter: str = None): """ Returns a list of MonteCarloSession objects sorted by most recently updated. Excludes draft sessions by default. """ query = MonteCarloSession.select().where(MonteCarloSession.status != 'draft').order_by(MonteCarloSession.updated_at.desc()) # Apply title filter (case-insensitive) if title_search: query = query.where(MonteCarloSession.title.contains(title_search)) # Apply status filter if status_filter and status_filter != 'all': query = query.where(MonteCarloSession.status == status_filter) # Apply date filter if date_filter and date_filter != 'all_time': current_timestamp = jh.now_to_timestamp(True) if date_filter == '7_days': threshold = current_timestamp - (7 * 24 * 60 * 60 * 1000) elif date_filter == '30_days': threshold = current_timestamp - (30 * 24 * 60 * 60 * 1000) elif date_filter == '90_days': threshold = current_timestamp - (90 * 24 * 60 * 60 * 1000) else: threshold = 0 if threshold > 0: query = query.where(MonteCarloSession.created_at >= threshold) return list(query.limit(limit).offset(offset)) def store_monte_carlo_session(id: str, status: str, state: dict = None, strategy_codes: dict = None) -> None: if isinstance(state, dict) and 'form' in state and isinstance(state['form'], dict): for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']: if key in state['form']: state['form'][key] = jh.normalize_bool(state['form'].get(key)) d = { 'id': id, 'status': status, 'state': json.dumps(state) if state else None, 'created_at': jh.now_to_timestamp(True), 'updated_at': jh.now_to_timestamp(True) } if strategy_codes is not None: d['strategy_codes'] = json.dumps(strategy_codes) MonteCarloSession.insert(**d).execute() def update_monte_carlo_session_status(id: str, status: str) -> None: d = { 'status': status, 'updated_at': jh.now_to_timestamp(True) } MonteCarloSession.update(**d).where(MonteCarloSession.id == id).execute() def update_monte_carlo_session_state(id: str, state: dict, strategy_codes: dict = None) -> None: """ Update or create (upsert) monte carlo session state. If session doesn't exist, creates as draft. """ if isinstance(state, dict) and 'form' in state and isinstance(state['form'], dict): for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']: if key in state['form']: state['form'][key] = jh.normalize_bool(state['form'].get(key)) existing = MonteCarloSession.select().where(MonteCarloSession.id == id).first() if existing: # Update existing session's state d = { 'state': json.dumps(state), 'updated_at': jh.now_to_timestamp(True) } if strategy_codes is not None: d['strategy_codes'] = json.dumps(strategy_codes) MonteCarloSession.update(**d).where(MonteCarloSession.id == id).execute() else: # Create new draft session d = { 'id': id, 'status': 'draft', 'state': json.dumps(state), 'created_at': jh.now_to_timestamp(True), 'updated_at': jh.now_to_timestamp(True) } MonteCarloSession.insert(**d).execute() def delete_monte_carlo_session(id: str) -> bool: try: # Delete child sessions first MonteCarloTradesSession.delete().where( MonteCarloTradesSession.monte_carlo_session_id == id ).execute() MonteCarloCandlesSession.delete().where( MonteCarloCandlesSession.monte_carlo_session_id == id ).execute() # Delete parent session MonteCarloSession.delete().where(MonteCarloSession.id == id).execute() return True except Exception as e: print(f"Error deleting Monte Carlo session: {e}") return False def update_monte_carlo_session_notes(id: str, title: str = None, description: str = None, strategy_codes: dict = None) -> None: d = { 'updated_at': jh.now_to_timestamp(True) } if title is not None: d['title'] = title if description is not None: d['description'] = description if strategy_codes is not None: d['strategy_codes'] = json.dumps(strategy_codes) MonteCarloSession.update(**d).where(MonteCarloSession.id == id).execute() def purge_monte_carlo_sessions(days_old: int = None) -> int: try: current_timestamp = jh.now_to_timestamp(True) if days_old is not None: days_old = int(days_old) if days_old is not None and days_old > 0: threshold = current_timestamp - (days_old * 24 * 60 * 60 * 1000) all_sessions = MonteCarloSession.select() sessions_to_delete = [] for session in all_sessions: try: session_updated_at = int(session.updated_at) if session.updated_at else 0 if session_updated_at < threshold: sessions_to_delete.append(session.id) except (ValueError, TypeError): continue deleted_count = 0 for session_id in sessions_to_delete: try: if delete_monte_carlo_session(session_id): deleted_count += 1 except Exception: pass else: # Delete all sessions all_sessions = MonteCarloSession.select() deleted_count = 0 for session in all_sessions: try: if delete_monte_carlo_session(str(session.id)): deleted_count += 1 except Exception: pass return deleted_count except Exception as e: print(f"Error purging Monte Carlo sessions: {e}") return 0 def get_running_monte_carlo_session_id(): try: session = MonteCarloSession.select().where(MonteCarloSession.status == 'running').order_by(MonteCarloSession.updated_at.desc()).first() if session: return str(session.id) return None except Exception as e: raise e # Trades Session Functions def get_trades_session_by_parent_id(parent_id: str): try: return MonteCarloTradesSession.get( MonteCarloTradesSession.monte_carlo_session_id == parent_id ) except MonteCarloTradesSession.DoesNotExist: return None def store_trades_session(parent_id: str, num_scenarios: int) -> str: import uuid session_id = str(uuid.uuid4()) d = { 'id': session_id, 'monte_carlo_session_id': parent_id, 'num_scenarios': num_scenarios, 'completed_scenarios': 0, 'status': 'running', 'created_at': jh.now_to_timestamp(True), 'updated_at': jh.now_to_timestamp(True) } MonteCarloTradesSession.insert(**d).execute() return session_id def update_trades_session_progress(id: str, completed: int, results: dict = None) -> None: d = { 'completed_scenarios': completed, 'updated_at': jh.now_to_timestamp(True) } if results is not None: # Convert NumPy types to native Python types before JSON serialization cleaned_results = _convert_numpy_types(results) d['results'] = json.dumps(cleaned_results) MonteCarloTradesSession.update(**d).where(MonteCarloTradesSession.id == id).execute() def update_trades_session_status(id: str, status: str) -> None: d = { 'status': status, 'updated_at': jh.now_to_timestamp(True) } MonteCarloTradesSession.update(**d).where(MonteCarloTradesSession.id == id).execute() # Candles Session Functions def get_candles_session_by_parent_id(parent_id: str): try: return MonteCarloCandlesSession.get( MonteCarloCandlesSession.monte_carlo_session_id == parent_id ) except MonteCarloCandlesSession.DoesNotExist: return None def store_candles_session(parent_id: str, num_scenarios: int, pipeline_type: str, pipeline_params: dict) -> str: import uuid session_id = str(uuid.uuid4()) d = { 'id': session_id, 'monte_carlo_session_id': parent_id, 'num_scenarios': num_scenarios, 'completed_scenarios': 0, 'status': 'running', 'pipeline_type': pipeline_type, 'pipeline_params': json.dumps(pipeline_params), 'created_at': jh.now_to_timestamp(True), 'updated_at': jh.now_to_timestamp(True) } MonteCarloCandlesSession.insert(**d).execute() return session_id def update_candles_session_progress(id: str, completed: int, results: dict = None) -> None: d = { 'completed_scenarios': completed, 'updated_at': jh.now_to_timestamp(True) } if results is not None: # Convert NumPy types to native Python types before JSON serialization cleaned_results = _convert_numpy_types(results) d['results'] = json.dumps(cleaned_results) MonteCarloCandlesSession.update(**d).where(MonteCarloCandlesSession.id == id).execute() def update_candles_session_status(id: str, status: str) -> None: d = { 'status': status, 'updated_at': jh.now_to_timestamp(True) } MonteCarloCandlesSession.update(**d).where(MonteCarloCandlesSession.id == id).execute() # Exception and Logs Functions def store_session_exception(session_id: str, session_type: str, exception: str, traceback: str) -> None: d = { 'exception': exception, 'traceback': traceback, 'status': 'stopped', 'updated_at': jh.now_to_timestamp(True) } if session_type == 'trades': MonteCarloTradesSession.update(**d).where(MonteCarloTradesSession.id == session_id).execute() elif session_type == 'candles': MonteCarloCandlesSession.update(**d).where(MonteCarloCandlesSession.id == session_id).execute() def append_session_logs(session_id: str, session_type: str, log_message: str) -> None: if session_type == 'trades': session = MonteCarloTradesSession.get(MonteCarloTradesSession.id == session_id) current_logs = session.logs or '' new_logs = current_logs + log_message + '\n' MonteCarloTradesSession.update( logs=new_logs, updated_at=jh.now_to_timestamp(True) ).where(MonteCarloTradesSession.id == session_id).execute() elif session_type == 'candles': session = MonteCarloCandlesSession.get(MonteCarloCandlesSession.id == session_id) current_logs = session.logs or '' new_logs = current_logs + log_message + '\n' MonteCarloCandlesSession.update( logs=new_logs, updated_at=jh.now_to_timestamp(True) ).where(MonteCarloCandlesSession.id == session_id).execute() def append_monte_carlo_session_logs(session_id: str, log_message: str) -> None: """Append logs to the parent Monte Carlo session""" try: session = MonteCarloSession.get(MonteCarloSession.id == session_id) current_logs = session.logs or '' new_logs = current_logs + log_message + '\n' MonteCarloSession.update( logs=new_logs, updated_at=jh.now_to_timestamp(True) ).where(MonteCarloSession.id == session_id).execute() except Exception as e: # Session doesn't exist yet, silently fail jh.dump(f'exception: {e}') raise pass ================================================ FILE: jesse/models/NotificationApiKeys.py ================================================ import peewee from jesse.services.db import database if database.is_closed(): database.open_connection() class NotificationApiKeys(peewee.Model): id = peewee.UUIDField(primary_key=True) name = peewee.CharField(unique=True) driver = peewee.CharField() # notification driver (Telegram, Discord, Slack) fields = peewee.TextField() # for storing the fields as a JSON string created_at = peewee.DateTimeField() class Meta: from jesse.services.db import database database = database.db def __init__(self, attributes=None, **kwargs) -> None: peewee.Model.__init__(self, attributes=attributes, **kwargs) if attributes is None: attributes = {} for a in attributes: setattr(self, a, attributes[a]) # if database is open, create the table if database.is_open(): NotificationApiKeys.create_table() ================================================ FILE: jesse/models/OpenTab.py ================================================ import peewee from jesse.services.db import database import jesse.helpers as jh if database.is_closed(): database.open_connection() class OpenTab(peewee.Model): id = peewee.UUIDField(primary_key=True) # Module name: live, backtest, optimization, monte_carlo module = peewee.CharField(max_length=50) # The session_id this tab references session_id = peewee.UUIDField() # Order index for tab ordering within the module order_index = peewee.IntegerField() # Timestamps created_at = peewee.BigIntegerField() updated_at = peewee.BigIntegerField() class Meta: from jesse.services.db import database database = database.db indexes = ( (('module', 'session_id'), True), ) def __init__(self, attributes: dict = None, **kwargs) -> None: peewee.Model.__init__(self, attributes=attributes, **kwargs) if attributes is None: attributes = {} for a, value in attributes.items(): setattr(self, a, value) ================================================ FILE: jesse/models/OptimizationSession.py ================================================ import peewee import json from jesse.services.db import database import jesse.helpers as jh import json if database.is_closed(): database.open_connection() class OptimizationSession(peewee.Model): id = peewee.UUIDField(primary_key=True) # Status of the optimization session: running, paused, finished, or stopped status = peewee.CharField() # Best trials data in JSON format best_trials = peewee.TextField(null=True) # Objective curve data in JSON format objective_curve = peewee.TextField(null=True) # Frontend state in JSON format - used for restoring UI state state = peewee.TextField(null=True) # Progress tracking completed_trials = peewee.IntegerField(default=0) total_trials = peewee.IntegerField(default=0) exception = peewee.TextField(null=True) traceback = peewee.TextField(null=True) # User notes title = peewee.CharField(max_length=255, null=True) description = peewee.TextField(null=True) strategy_codes = peewee.TextField(null=True) # Timestamps for session management created_at = peewee.BigIntegerField() updated_at = peewee.BigIntegerField() class Meta: from jesse.services.db import database database = database.db indexes = ( (('id',), True), (('updated_at',), False), ) def __init__(self, attributes: dict = None, **kwargs) -> None: peewee.Model.__init__(self, attributes=attributes, **kwargs) if attributes is None: attributes = {} for a, value in attributes.items(): setattr(self, a, value) @property def best_trials_json(self): """ Returns the best trials as a Python list """ if not self.best_trials: return [] return json.loads(self.best_trials) @best_trials_json.setter def best_trials_json(self, trials_list): """ Sets the best trials from a Python list """ self.best_trials = json.dumps(trials_list) @property def objective_curve_json(self): """ Returns the objective curve data as a Python list """ if not self.objective_curve: return [] return json.loads(self.objective_curve) @objective_curve_json.setter def objective_curve_json(self, curve_data): """ Sets the objective curve data from a Python list """ self.objective_curve = json.dumps(curve_data) @property def state_json(self): """ Returns the frontend state as a Python dictionary """ if not self.state: return {} s = json.loads(self.state) if isinstance(s, dict) and 'form' in s and isinstance(s['form'], dict): for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']: if key in s['form']: s['form'][key] = jh.normalize_bool(s['form'].get(key)) return s @state_json.setter def state_json(self, state_data): """ Sets the frontend state from a Python dictionary """ self.state = json.dumps(state_data) @property def strategy_codes_json(self): """ Returns the strategy codes as a Python dictionary """ if not self.strategy_codes: return {} return json.loads(self.strategy_codes) @strategy_codes_json.setter def strategy_codes_json(self, codes_dict): """ Sets the strategy codes from a Python dictionary """ self.strategy_codes = json.dumps(codes_dict) if codes_dict else None @property def duration(self): """ Calculate the duration of the session in seconds """ if not self.updated_at: # For running sessions, calculate duration up to now import jesse.helpers as jh return jh.now_to_timestamp(True) - self.created_at # For completed sessions, use the stored timestamps return self.updated_at - self.created_at @property def best_score(self): """ Get the best score from the best trials """ trials = self.best_trials_json if not trials: return None # The first trial in the list should be the best one # (assuming trials are sorted by score) return trials[0].get('fitness', None) # if database is open, create the table if database.is_open(): OptimizationSession.create_table() # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # DB FUNCTIONS # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # def get_optimization_session_by_id(id: str): try: return OptimizationSession.get(OptimizationSession.id == id) except OptimizationSession.DoesNotExist: return None def reset_optimization_session(id: str): OptimizationSession.update( status='running', completed_trials=0, best_trials=None, objective_curve=None, exception=None, traceback=None, updated_at=jh.now_to_timestamp(True) ).where(OptimizationSession.id == id).execute() def store_optimization_session( id: str, status: str, strategy_codes: dict = None ) -> None: # Create a new session d = { 'id': id, 'status': status, 'completed_trials': 0, 'created_at': jh.now_to_timestamp(True), 'updated_at': jh.now_to_timestamp(True) } if strategy_codes is not None: d['strategy_codes'] = json.dumps(strategy_codes) # Save to database OptimizationSession.insert(**d).execute() def update_optimization_session_status(id: str, status: str) -> None: d = { 'status': status, 'updated_at': jh.now_to_timestamp(True) } OptimizationSession.update(**d).where(OptimizationSession.id == id).execute() def add_session_exception(id: str, exception: str, traceback: str) -> None: d = { 'exception': exception, 'traceback': traceback, 'updated_at': jh.now_to_timestamp(True) } OptimizationSession.update(**d).where(OptimizationSession.id == id).execute() def update_optimization_session_trials( id: str, completed_trials: int, best_trials: list = None, objective_curve: list = None, total_trials: int = None ) -> None: d = { 'completed_trials': completed_trials, 'total_trials': total_trials, 'updated_at': jh.now_to_timestamp(True) } if best_trials is not None: d['best_trials'] = json.dumps(best_trials) if objective_curve is not None: d['objective_curve'] = json.dumps(objective_curve) OptimizationSession.update(**d).where(OptimizationSession.id == id).execute() def get_optimization_session(id: str) -> dict: session = OptimizationSession.get(OptimizationSession.id == id) return { 'id': session.id, 'status': session.status, 'best_trials': session.best_trials_json, 'objective_curve': session.objective_curve_json, 'completed_trials': session.completed_trials, 'created_at': session.created_at, 'updated_at': session.updated_at, 'best_score': session.best_score, 'state': session.state_json } def get_optimization_sessions(limit: int = 50, offset: int = 0, title_search: str = None, status_filter: str = None, date_filter: str = None) -> list: """ Returns a list of OptimizationSession objects sorted by most recently updated. Excludes draft sessions by default. """ query = OptimizationSession.select().where(OptimizationSession.status != 'draft').order_by(OptimizationSession.updated_at.desc()) # Apply title filter (case-insensitive) if title_search: query = query.where(OptimizationSession.title.contains(title_search)) # Apply status filter if status_filter and status_filter != 'all': query = query.where(OptimizationSession.status == status_filter) # Apply date filter if date_filter and date_filter != 'all_time': current_timestamp = jh.now_to_timestamp(True) if date_filter == '7_days': threshold = current_timestamp - (7 * 24 * 60 * 60 * 1000) elif date_filter == '30_days': threshold = current_timestamp - (30 * 24 * 60 * 60 * 1000) elif date_filter == '90_days': threshold = current_timestamp - (90 * 24 * 60 * 60 * 1000) else: threshold = 0 if threshold > 0: query = query.where(OptimizationSession.created_at >= threshold) return list(query.limit(limit).offset(offset)) def delete_optimization_session(id: str) -> bool: try: OptimizationSession.delete().where(OptimizationSession.id == id).execute() return True except Exception as e: print(f"Error deleting optimization session: {e}") return False def update_optimization_session_state(id: str, state: dict, strategy_codes: dict = None) -> None: """ Update or create (upsert) optimization session state. If session doesn't exist, creates as draft. """ if isinstance(state, dict) and 'form' in state and isinstance(state['form'], dict): for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']: if key in state['form']: state['form'][key] = jh.normalize_bool(state['form'].get(key)) existing = OptimizationSession.select().where(OptimizationSession.id == id).first() if existing: # Update existing session's state d = { 'state': json.dumps(state), 'updated_at': jh.now_to_timestamp(True) } if strategy_codes is not None: d['strategy_codes'] = json.dumps(strategy_codes) OptimizationSession.update(**d).where(OptimizationSession.id == id).execute() else: # Create new draft session d = { 'id': id, 'status': 'draft', 'state': json.dumps(state), 'completed_trials': 0, 'total_trials': 0, 'created_at': jh.now_to_timestamp(True), 'updated_at': jh.now_to_timestamp(True) } OptimizationSession.insert(**d).execute() def update_optimization_session_notes(id: str, title: str = None, description: str = None, strategy_codes: dict = None) -> None: d = { 'updated_at': jh.now_to_timestamp(True) } OptimizationSession.update(**d).where(OptimizationSession.id == id).execute() def update_optimization_session_notes(id: str, title: str = None, description: str = None, strategy_codes: dict = None) -> None: d = { 'updated_at': jh.now_to_timestamp(True) } if title is not None: d['title'] = title if description is not None: d['description'] = description if strategy_codes is not None: d['strategy_codes'] = json.dumps(strategy_codes) OptimizationSession.update(**d).where(OptimizationSession.id == id).execute() def purge_optimization_sessions(days_old: int = None) -> int: try: current_timestamp = jh.now_to_timestamp(True) if days_old is not None: days_old = int(days_old) if days_old is not None and days_old > 0: threshold = current_timestamp - (days_old * 24 * 60 * 60 * 1000) all_sessions = OptimizationSession.select() sessions_to_delete = [] for session in all_sessions: try: session_updated_at = int(session.updated_at) if session.updated_at else 0 if session_updated_at < threshold: sessions_to_delete.append(session.id) except (ValueError, TypeError): continue deleted_count = 0 for session_id in sessions_to_delete: try: OptimizationSession.delete().where(OptimizationSession.id == session_id).execute() deleted_count += 1 except Exception: pass else: deleted_count = OptimizationSession.delete().execute() return deleted_count except Exception as e: print(f"Error purging optimization sessions: {e}") return 0 def get_running_optimization_session_id(): try: session = OptimizationSession.select().where(OptimizationSession.status == 'running').order_by(OptimizationSession.updated_at.desc()).first() if session: return str(session.id) return None except Exception as e: raise e ================================================ FILE: jesse/models/Option.py ================================================ import peewee from jesse.services.db import database if database.is_closed(): database.open_connection() class Option(peewee.Model): id = peewee.UUIDField(primary_key=True) updated_at = peewee.BigIntegerField() type = peewee.CharField() json = peewee.TextField() class Meta: from jesse.services.db import database database = database.db def __init__(self, attributes=None, **kwargs) -> None: peewee.Model.__init__(self, attributes=attributes, **kwargs) if attributes is None: attributes = {} for a in attributes: setattr(self, a, attributes[a]) # if database is open, create the table if database.is_open(): Option.create_table() ================================================ FILE: jesse/models/Order.py ================================================ from playhouse.postgres_ext import * import jesse.helpers as jh from jesse.enums import order_statuses, order_submitted_via from jesse.services.db import database if database.is_closed(): database.open_connection() class Order(Model): # id generated by Jesse for database usage id = UUIDField(primary_key=True) trade_id = UUIDField(index=True, null=True) session_id = UUIDField(index=True) # id generated by market, used in live-trade mode exchange_id = CharField(null=True) # some exchanges might require even further info vars = JSONField(default={}) symbol = CharField() exchange = CharField() side = CharField() type = CharField() reduce_only = BooleanField() qty = FloatField() filled_qty = FloatField(default=0) price = FloatField(null=True) status = CharField(default=order_statuses.ACTIVE) created_at = BigIntegerField() updated_at = BigIntegerField() executed_at = BigIntegerField(null=True) canceled_at = BigIntegerField(null=True) session_mode = CharField() jesse_submitted = BooleanField(default=True) submitted_via = CharField(null=True) order_exist_in_exchange = BooleanField(default=True) fee = FloatField(null=True) class Meta: from jesse.services.db import database database = database.db indexes = ((('trade_id', 'exchange', 'symbol', 'status', 'created_at'), False),) def __init__(self, attributes: dict = None, **kwargs) -> None: Model.__init__(self, attributes=attributes, **kwargs) if attributes is None: attributes = {} for a, value in attributes.items(): setattr(self, a, value) @property def is_canceled(self) -> bool: return self.status == order_statuses.CANCELED @property def is_active(self) -> bool: return self.status == order_statuses.ACTIVE @property def is_cancellable(self): """ orders that are either active or partially filled """ return self.is_active or self.is_partially_filled or self.is_queued @property def is_queued(self) -> bool: """ Used in live mode only: it means the strategy has considered the order as submitted, but the exchange does not accept it because of the distance between the current price and price of the order. Hence it's been queued for later submission. :return: bool """ return self.status == order_statuses.QUEUED @property def is_new(self) -> bool: return self.is_active @property def is_executed(self) -> bool: return self.status == order_statuses.EXECUTED @property def is_filled(self) -> bool: return self.is_executed @property def is_partially_filled(self) -> bool: return self.status == order_statuses.PARTIALLY_FILLED @property def is_stop_loss(self): return self.submitted_via == order_submitted_via.STOP_LOSS @property def is_take_profit(self): return self.submitted_via == order_submitted_via.TAKE_PROFIT @property def to_dict(self): return { 'id': self.id, 'trade_id': self.trade_id, 'session_id': self.session_id, 'exchange_id': self.exchange_id, 'symbol': self.symbol, 'side': self.side, 'type': self.type, 'qty': self.qty, 'filled_qty': self.filled_qty, 'price': self.price, 'status': self.status, 'created_at': self.created_at, 'canceled_at': self.canceled_at, 'executed_at': self.executed_at, 'exchange': self.exchange, 'reduce_only': self.reduce_only, 'submitted_via': self.submitted_via, 'jesse_submitted': self.jesse_submitted, 'order_exist_in_exchange': self.order_exist_in_exchange, 'updated_at': self.updated_at, 'session_mode': self.session_mode, } @property def value(self) -> float: return abs(self.qty) * self.price @property def remaining_qty(self) -> float: return jh.prepare_qty(abs(self.qty) - abs(self.filled_qty), self.side) if database.is_open(): Order.create_table() ================================================ FILE: jesse/models/Orderbook.py ================================================ import peewee import jesse.helpers as jh import numpy as np class Orderbook(peewee.Model): id = peewee.UUIDField(primary_key=True) # timestamp in milliseconds timestamp = peewee.BigIntegerField() symbol = peewee.CharField() exchange = peewee.CharField() data = peewee.BlobField() class Meta: from jesse.services.db import database database = database.db indexes = ((('exchange', 'symbol', 'timestamp'), True),) def __init__(self, attributes: dict = None, **kwargs) -> None: peewee.Model.__init__(self, attributes=attributes, **kwargs) if attributes is None: attributes = {} for a, value in attributes.items(): setattr(self, a, value) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # DB FUNCTIONS # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # def store_orderbook_into_db(exchange: str, symbol: str, orderbook: np.ndarray) -> None: return d = { 'id': jh.generate_unique_id(), 'timestamp': jh.now_to_timestamp(), 'data': orderbook.dumps(), 'symbol': symbol, 'exchange': exchange, } def async_save() -> None: Orderbook.insert(**d).on_conflict_ignore().execute() print( jh.color( f'orderbook: {jh.timestamp_to_time(d["timestamp"])}-{exchange}-{symbol}: [{orderbook[0][0][0]}, {orderbook[0][0][1]}], [{orderbook[1][0][0]}, {orderbook[1][0][1]}]', 'magenta' ) ) # async call threading.Thread(target=async_save).start() ================================================ FILE: jesse/models/Position.py ================================================ from typing import Union import numpy as np import jesse.helpers as jh class Position: id: str = None entry_price: float = None exit_price: float = None current_price: float = None qty: float = 0 previous_qty: float = 0 opened_at: int = None closed_at: int = None _mark_price: float = None _funding_rate: float = None _next_funding_timestamp: int = None _liquidation_price: float = None exchange_name: str = None exchange = None symbol: str = None strategy = None def __init__(self, attributes: dict = None) -> None: if attributes is None: attributes = {} for a in attributes: setattr(self, a, attributes[a]) @property def mark_price(self) -> float: if not jh.is_live(): return self.current_price if self.exchange_type == 'spot': return self.current_price return self._mark_price @property def funding_rate(self) -> float: if not jh.is_live(): return 0 if self.exchange_type == 'spot': raise ValueError('funding rate is not applicable to spot trading') return self._funding_rate @property def next_funding_timestamp(self) -> Union[int, None]: if not jh.is_live(): return None if self.exchange_type == 'spot': raise ValueError('funding rate is not applicable to spot trading') return self._next_funding_timestamp @property def value(self) -> float: """ The value of open position in the quote currency :return: float """ if self.is_close: return 0 if self.current_price is None: return None return abs(self.current_price * self.qty) @property def type(self) -> str: """ The type of open position - long, short, or close :return: str """ if self.is_long: return 'long' elif self.is_short: return 'short' return 'close' @property def pnl_percentage(self) -> float: """ Alias for self.roi :return: float """ return self.roi @property def roi(self) -> float: """ Return on Investment in percentage More at: https://www.binance.com/en/support/faq/5b9ad93cb4854f5990b9fb97c03cfbeb """ if self.pnl == 0: return 0 return self.pnl / self.total_cost * 100 @property def total_cost(self) -> float: """ How much we paid to open this position (currently does not include fees, should we?!) """ if self.is_close: return np.nan base_cost = self.entry_price * abs(self.qty) if self.strategy: return base_cost / self.leverage return base_cost @property def leverage(self) -> Union[int, np.float64]: if self.exchange_type == 'spot': return 1 if self.strategy: return self.strategy.leverage else: return np.nan @property def exchange_type(self) -> str: return self.exchange.type @property def entry_margin(self) -> float: """ Alias for self.total_cost """ return self.total_cost @property def pnl(self) -> float: """ The PNL of the position :return: float """ if abs(self.qty) < self._min_qty: return 0 if self.entry_price is None: return 0 if self.value is None: return 0 diff = self.value - abs(self.entry_price * self.qty) return -diff if self.type == 'short' else diff @property def is_open(self) -> bool: """ Is the current position open? :return: bool """ return self.type in ['long', 'short'] @property def is_close(self) -> bool: """ Is the current position close? :return: bool """ return self.type == 'close' @property def is_long(self) -> bool: """ Is the current position a long position? :return: bool """ return self.qty > self._min_qty @property def is_short(self) -> bool: """ Is the current position a short position? :return: bool """ return self.qty < -abs(self._min_qty) @property def mode(self) -> str: if self.exchange.type == 'spot': return 'spot' else: return self.exchange.futures_leverage_mode @property def liquidation_price(self) -> Union[float, np.float64]: """ The price at which the position gets liquidated. formulas are taken from: https://help.bybit.com/hc/en-us/articles/900000181046-Liquidation-Price-USDT-Contract- """ if self.is_close: return np.nan if jh.is_livetrading(): return self._liquidation_price if self.mode in ['cross', 'spot']: return np.nan elif self.mode == 'isolated': if self.type == 'long': return self.entry_price * (1 - self._initial_margin_rate + 0.004) elif self.type == 'short': return self.entry_price * (1 + self._initial_margin_rate - 0.004) else: return np.nan else: raise ValueError @property def _initial_margin_rate(self) -> float: return 1 / self.leverage @property def bankruptcy_price(self) -> Union[float, np.float64]: if self.type == 'long': return self.entry_price * (1 - self._initial_margin_rate) elif self.type == 'short': return self.entry_price * (1 + self._initial_margin_rate) else: return np.nan @property def to_dict(self): return { 'entry_price': self.entry_price, 'qty': self.qty, 'current_price': self.current_price, 'value': self.value, 'type': self.type, 'exchange': self.exchange_name, 'pnl': self.pnl, 'pnl_percentage': self.pnl_percentage, 'leverage': self.leverage, 'liquidation_price': self.liquidation_price, 'bankruptcy_price': self.bankruptcy_price, 'mode': self.mode, } @property def _min_notional_size(self) -> float: if not (jh.is_livetrading() and self.exchange_type == 'spot'): return 0 return self.exchange.vars['precisions'][self.symbol]['min_notional_size'] @property def _min_qty(self) -> float: if not (jh.is_livetrading() and self.exchange_type == 'spot'): return 0 # first check exchange return min_qty or not if 'min_qty' in self.exchange.vars['precisions'][self.symbol]: return self.exchange.vars['precisions'][self.symbol]['min_qty'] if self._min_notional_size and self.current_price: return self._min_notional_size / self.current_price else: return 0 @property def _can_mutate_qty(self): return not (self.exchange_type == 'spot' and jh.is_livetrading()) ================================================ FILE: jesse/models/Route.py ================================================ class Route: def __init__( self, exchange: str, symbol: str, timeframe: str = None, strategy_name: str = None, dna: str = None ) -> None: self.exchange = exchange self.symbol = symbol self.timeframe = timeframe self.strategy_name = strategy_name self.strategy = None self.dna = dna ================================================ FILE: jesse/models/SpotExchange.py ================================================ import jesse.helpers as jh from jesse.enums import sides from jesse.exceptions import InsufficientBalance from jesse.models.Order import Order from jesse.models.Exchange import Exchange from jesse.enums import order_types from jesse.utils import sum_floats, subtract_floats class SpotExchange(Exchange): def __init__(self, name: str, starting_balance: float, fee_rate: float): super().__init__(name, starting_balance, fee_rate, 'spot') self.stop_orders_sum = {} self.limit_orders_sum = {} # # # # live-trading only # # # # self._started_balance = 0 # # # # # # # # # # # # # # # # # @property def started_balance(self) -> float: if jh.is_livetrading(): return self._started_balance return self.starting_assets[jh.app_currency()] @property def wallet_balance(self) -> float: return self.assets[self.settlement_currency] @property def available_margin(self) -> float: return self.wallet_balance def on_order_submission(self, order: Order) -> None: if jh.is_livetrading(): return if order.side == sides.SELL: if order.type == order_types.STOP: self.stop_orders_sum[order.symbol] = sum_floats(self.stop_orders_sum.get(order.symbol, 0), abs(order.qty)) elif order.type == order_types.LIMIT: self.limit_orders_sum[order.symbol] = sum_floats(self.limit_orders_sum.get(order.symbol, 0), abs(order.qty)) base_asset = jh.base_asset(order.symbol) # buy order if order.side == sides.BUY: # cannot buy if we don't have enough balance (of the settlement currency) quote_balance = self.assets[self.settlement_currency] self.assets[self.settlement_currency] = subtract_floats(self.assets[self.settlement_currency], (abs(order.qty) * order.price)) if self.assets[self.settlement_currency] < 0: raise InsufficientBalance( f"Not enough balance. Available balance at {self.name} for {self.settlement_currency} is {quote_balance} but you're trying to spend {abs(order.qty * order.price)}" ) # sell order else: base_balance = self.assets[base_asset] # sell order's qty cannot be bigger than the amount of existing base asset if order.type == order_types.MARKET: order_qty = sum_floats(abs(order.qty), self.limit_orders_sum.get(order.symbol, 0)) elif order.type == order_types.STOP: order_qty = self.stop_orders_sum[order.symbol] elif order.type == order_types.LIMIT: order_qty = self.limit_orders_sum[order.symbol] else: raise Exception(f"Unknown order type {order.type}") # validate that the total selling amount is not bigger than the amount of the existing base asset if order_qty > base_balance: raise InsufficientBalance( f"Not enough balance. Available balance at {self.name} for {base_asset} is {base_balance} but you're trying to sell {order_qty}" ) def on_order_execution(self, order: Order) -> None: if jh.is_livetrading(): return if order.side == sides.SELL: if order.type == order_types.STOP: self.stop_orders_sum[order.symbol] = subtract_floats(self.stop_orders_sum[order.symbol], abs(order.qty)) elif order.type == order_types.LIMIT: self.limit_orders_sum[order.symbol] = subtract_floats(self.limit_orders_sum[order.symbol], abs(order.qty)) base_asset = jh.base_asset(order.symbol) # buy order if order.side == sides.BUY: # asset's balance is increased by the amount of the order's qty after fees are deducted self.assets[base_asset] = sum_floats(self.assets[base_asset], abs(order.qty) * (1 - self.fee_rate)) # sell order else: current_balance = self.assets[base_asset] if abs(order.qty) > current_balance: adjusted_qty = current_balance order_qty = abs(adjusted_qty) else: order_qty = abs(order.qty) # settlement currency's balance is increased by the amount of the order's qty after fees are deducted self.assets[self.settlement_currency] = sum_floats( self.assets[self.settlement_currency], (order_qty * order.price) * (1 - self.fee_rate) ) # now reduce base asset's balance by the amount of the order's qty self.assets[base_asset] = subtract_floats(self.assets[base_asset], order_qty) def on_order_cancellation(self, order: Order) -> None: if jh.is_livetrading(): return if order.side == sides.SELL: if order.type == order_types.STOP: self.stop_orders_sum[order.symbol] = subtract_floats(self.stop_orders_sum[order.symbol], abs(order.qty)) elif order.type == order_types.LIMIT: self.limit_orders_sum[order.symbol] = subtract_floats(self.limit_orders_sum[order.symbol], abs(order.qty)) base_asset = jh.base_asset(order.symbol) # buy order if order.side == sides.BUY: self.assets[self.settlement_currency] = sum_floats(self.assets[self.settlement_currency], abs(order.qty) * order.price) # sell order else: if order.type == order_types.STOP: self.stop_orders_sum[order.symbol] = subtract_floats(self.stop_orders_sum[order.symbol], abs(order.qty)) elif order.type == order_types.LIMIT: self.limit_orders_sum[order.symbol] = subtract_floats(self.limit_orders_sum[order.symbol], abs(order.qty)) def update_from_stream(self, data: dict) -> None: """ Used for updating the exchange from the WS stream (only for live trading) """ import jesse.services.logger as logger if not jh.is_livetrading(): raise Exception('This method is only for live trading') old_balance = self.assets[self.settlement_currency] self.assets[self.settlement_currency] = data['balance'] if old_balance != 0 and self.assets[self.settlement_currency] != old_balance: logger.info( f'Balance for {self.settlement_currency} on {self.name} changed from {round(old_balance, 2)} to {round(self.assets[self.settlement_currency], 2)}' ) if self._started_balance == 0: self._started_balance = data['balance'] ================================================ FILE: jesse/models/Ticker.py ================================================ import peewee import jesse.helpers as jh import numpy as np class Ticker(peewee.Model): id = peewee.UUIDField(primary_key=True) # timestamp in milliseconds timestamp = peewee.BigIntegerField() # the latest trades price last_price = peewee.FloatField() # the trading volume in the last 24 hours volume = peewee.FloatField() # the highest price in the last 24 hours high_price = peewee.FloatField() # the lowest price in the last 24 hours low_price = peewee.FloatField() symbol = peewee.CharField() exchange = peewee.CharField() class Meta: from jesse.services.db import database database = database.db indexes = ((('exchange', 'symbol', 'timestamp'), True),) def __init__(self, attributes: dict = None, **kwargs) -> None: peewee.Model.__init__(self, attributes=attributes, **kwargs) if attributes is None: attributes = {} for a, value in attributes.items(): setattr(self, a, value) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # DB FUNCTIONS # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # def store_ticker_into_db(exchange: str, symbol: str, ticker: np.ndarray) -> None: return d = { 'id': jh.generate_unique_id(), 'timestamp': ticker[0], 'last_price': ticker[1], 'high_price': ticker[2], 'low_price': ticker[3], 'volume': ticker[4], 'symbol': symbol, 'exchange': exchange, } def async_save() -> None: Ticker.insert(**d).on_conflict_ignore().execute() print( jh.color(f'ticker: {jh.timestamp_to_time(d["timestamp"])}-{exchange}-{symbol}: {ticker}', 'yellow') ) # async call threading.Thread(target=async_save).start() ================================================ FILE: jesse/models/Trade.py ================================================ import peewee import jesse.helpers as jh import numpy as np import threading class Trade(peewee.Model): id = peewee.UUIDField(primary_key=True) # timestamp in milliseconds timestamp = peewee.BigIntegerField() price = peewee.FloatField() buy_qty = peewee.FloatField() sell_qty = peewee.FloatField() buy_count = peewee.IntegerField() sell_count = peewee.IntegerField() symbol = peewee.CharField() exchange = peewee.CharField() class Meta: from jesse.services.db import database database = database.db indexes = ((('exchange', 'symbol', 'timestamp'), True),) def __init__(self, attributes: dict = None, **kwargs) -> None: peewee.Model.__init__(self, attributes=attributes, **kwargs) if attributes is None: attributes = {} for a, value in attributes.items(): setattr(self, a, value) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # DB FUNCTIONS # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # def store_trade_into_db(exchange: str, symbol: str, trade: np.ndarray) -> None: return d = { 'id': jh.generate_unique_id(), 'timestamp': trade[0], 'price': trade[1], 'buy_qty': trade[2], 'sell_qty': trade[3], 'buy_count': trade[4], 'sell_count': trade[5], 'symbol': symbol, 'exchange': exchange, } def async_save() -> None: Trade.insert(**d).on_conflict_ignore().execute() print( jh.color( f'trade: {jh.timestamp_to_time(d["timestamp"])}-{exchange}-{symbol}: {trade}', 'green' ) ) # async call threading.Thread(target=async_save).start() ================================================ FILE: jesse/models/__init__.py ================================================ from .Candle import Candle from .ClosedTrade import ClosedTrade from .Exchange import Exchange from .FuturesExchange import FuturesExchange from .Order import Order from .Position import Position from .Route import Route from .SpotExchange import SpotExchange from .Ticker import Ticker from .Log import Log from .NotificationApiKeys import NotificationApiKeys from .ExchangeApiKeys import ExchangeApiKeys from .BacktestSession import BacktestSession from .OpenTab import OpenTab from .LiveEquitySnapshot import LiveEquitySnapshot ================================================ FILE: jesse/modes/__init__.py ================================================ ================================================ FILE: jesse/modes/backtest_mode.py ================================================ import time import re from typing import Dict, List, Tuple, Optional import numpy as np import jesse.helpers as jh import jesse.services.metrics as stats from jesse import exceptions from jesse.config import config from jesse.enums import timeframes, order_types from jesse.models import Order, Position from jesse.modes.utils import save_daily_portfolio_balance from jesse.candle_pipelines import BaseCandlesPipeline from jesse.routes import router from jesse.services import charts from jesse.services import report from jesse.services import candle_service from jesse.services.file import store_logs from jesse.services.validators import validate_routes from jesse.store import store from jesse.services import logger from jesse.services.failure import register_custom_exception_handler from jesse.services.redis import sync_publish, is_process_active from jesse.services import order_service from timeloop import Timeloop from datetime import timedelta from jesse.services.progressbar import Progressbar from jesse.constants import TIMEFRAME_TO_ONE_MINUTES from jesse.services import candle_service, order_service, position_service, exchange_service def run( client_id: str, debug_mode: bool, user_config: dict, exchange: str, routes: List[Dict[str, str]], data_routes: List[Dict[str, str]], start_date: str, finish_date: str, candles: dict = None, chart: bool = False, tradingview: bool = False, csv: bool = False, json: bool = False, fast_mode: bool = False, benchmark: bool = False ) -> None: if not jh.is_unit_testing(): # at every second, we check to see if it's time to execute stuff status_checker = Timeloop() @status_checker.job(interval=timedelta(seconds=1)) def handle_time(): if is_process_active(client_id) is False: raise exceptions.Termination status_checker.start() from jesse.config import config config['app']['trading_mode'] = 'backtest' # debug flag config['app']['debug_mode'] = debug_mode register_custom_exception_handler() _execute_backtest( client_id, debug_mode, user_config, exchange, routes, data_routes, start_date, finish_date, candles, chart, tradingview, csv, json, fast_mode, benchmark ) def _execute_backtest( client_id: str, debug_mode: bool, user_config: dict, exchange: str, routes: List[Dict[str, str]], data_routes: List[Dict[str, str]], start_date: str, finish_date: str, candles: dict = None, chart: bool = False, tradingview: bool = False, csv: bool = False, json: bool = False, fast_mode: bool = False, benchmark: bool = False ): """ Executes the backtest that has been initiated from within the dashboard. The purpose of extracting these functionalities into this function is so that in case it fails due to a missing data route, it can add it and then re-execute itself. """ from jesse.config import set_config # inject config if not jh.is_unit_testing(): set_config(user_config) # add exchange to routes for r in routes: r['exchange'] = exchange for r in data_routes: r['exchange'] = exchange # set routes router.initiate(routes, data_routes) # reset store store.reset() # set session id store.app.set_session_id(client_id) # validate routes validate_routes(router) # initiate candle store store.candles.init_storage(5000) # initialize exchanges state exchange_service.initialize_exchanges_state() # initialize orders state order_service.initialize_orders_state() # initialize positions state position_service.initialize_positions_state() # Store backtest session in database (only for UI dashboard, not for CLI/research) if not jh.should_execute_silently(): from jesse.models.BacktestSession import store_backtest_session store_backtest_session( id=client_id, status='running' ) # load historical candles if candles is None: try: warmup_candles, candles = load_candles( jh.date_to_timestamp(start_date), jh.date_to_timestamp(finish_date) ) _handle_warmup_candles(warmup_candles, start_date) except exceptions.CandlesNotFound as e: _handle_sync_no_candles(e, start_date, exchange) except exceptions.CandleNotFoundInDatabase as e: _handle_sync_no_candles(e, start_date, exchange) if not jh.should_execute_silently(): sync_publish('general_info', { 'session_id': jh.get_session_id(), 'debug_mode': str(config['app']['debug_mode']), }) # candles info key = f"{config['app']['considering_candles'][0][0]}-{config['app']['considering_candles'][0][1]}" sync_publish('candles_info', stats.candles_info(candles[key]['candles'])) # routes info sync_publish('routes_info', stats.routes(router.routes)) # run backtest simulation result = None try: result = simulator( candles, run_silently=jh.should_execute_silently(), generate_tradingview=tradingview, generate_csv=csv, generate_json=json, generate_equity_curve=True, benchmark=benchmark, generate_hyperparameters=True, fast_mode=fast_mode, ) except exceptions.RouteNotFound as e: # Extract exchange, symbol, and timeframe using regular expressions match = re.search(r"symbol='(.+?)', timeframe='(.+?)'", str(e)) if match: symbol = match.group(1) timeframe = match.group(2) # Adjust data_routes to include the missing route data_routes.append({ 'exchange': exchange, 'symbol': symbol, 'timeframe': timeframe }) # to prevent an issue with warmupcandles being None candles = None # notify the user about the missing data route and retry the backtest simulation sync_publish('notification', { 'message': f'Missing data route for "{symbol}" with "{timeframe}" timeframe. Adding it and retrying...', 'type': 'error' }) # retry the backtest simulation _execute_backtest( client_id, debug_mode, user_config, exchange, routes, data_routes, start_date, finish_date, candles, chart, tradingview, csv, json, fast_mode, benchmark ) return else: raise e except Exception as e: # Store exception in database (only for UI dashboard) if not jh.should_execute_silently(): import traceback from jesse.models.BacktestSession import store_backtest_session_exception, update_backtest_session_status store_backtest_session_exception(client_id, str(e), traceback.format_exc()) update_backtest_session_status(client_id, 'stopped') raise if result and not jh.should_execute_silently(): sync_publish('alert', { 'message': f"Successfully executed backtest simulation in: {result['execution_duration']} seconds", 'type': 'success' }) sync_publish('hyperparameters', result['hyperparameters']) sync_publish('metrics', result['metrics']) sync_publish('equity_curve', result['equity_curve'], compression=True) sync_publish('trades', result['trades'], compression=True) # Prepare chart data if requested (call formatting functions once and cache) chart_data = None if chart: # Store the data for database chart_data = { 'candles_chart': _get_formatted_candles_for_frontend(), 'orders_chart': _get_formatted_orders_for_frontend(), 'add_line_to_candle_chart': _get_add_line_to_candle_chart(), 'add_extra_line_chart': _get_add_extra_line_chart(), 'add_horizontal_line_to_candle_chart': _get_add_horizontal_line_to_candle_chart(), 'add_horizontal_line_to_extra_chart': _get_add_horizontal_line_to_extra_chart() } # Capture strategy codes for each route strategy_codes = {} import os for r in router.routes: key = f"{r.exchange}-{r.symbol}" if key not in strategy_codes: try: strategy_path = f'strategies/{r.strategy_name}/__init__.py' if os.path.exists(strategy_path): with open(strategy_path, 'r') as f: content = f.read() strategy_codes[key] = content except Exception: pass # Update backtest session in database with results from jesse.models.BacktestSession import update_backtest_session_results, update_backtest_session_status update_backtest_session_results( id=client_id, metrics=result.get('metrics'), equity_curve=result.get('equity_curve'), trades=result.get('trades'), hyperparameters=result.get('hyperparameters'), chart_data=chart_data, execution_duration=result.get('execution_duration'), strategy_codes=strategy_codes if strategy_codes else None ) update_backtest_session_status(client_id, 'finished') # close database connection from jesse.services.db import database database.close_connection() def _handle_sync_no_candles(e, start_date, exchange): # Extract symbol and exchange from error message match = re.search(r"for (.*?) on (.*?)$", str(e)) if match: symbol = match.group(1) message = f'Missing trading candles for {symbol} on {exchange} from {start_date}' warmup_num = jh.get_config('env.data.warmup_candles_num', 210) if warmup_num > 0: start_date = jh.date_to_timestamp(start_date) - ( warmup_num * jh.timeframe_to_one_minutes(jh.max_timeframe(config['app']['considering_timeframes'])) * 2 * 60_000) start_date = jh.timestamp_to_date(start_date) sync_publish( "missing_candles", { "message": message, "symbol": symbol, "exchange": exchange, "start_date": start_date, }, ) raise exceptions.CandlesNotFound({ 'message': str(e), 'symbol': symbol, 'exchange': exchange, 'start_date': start_date, 'type': 'missing_candles' }) raise e def _get_formatted_candles_for_frontend(): arr = [] for r in router.routes: candles_arr = candle_service.get_candles(r.exchange, r.symbol, r.timeframe) # Find the index where the starting time actually begins. starting_index = 0 for i, c in enumerate(candles_arr): if c[0] >= store.app.starting_time: starting_index = i break candles = [{ 'time': int(c[0]/1000), 'open': c[1], 'close': c[2], 'high': c[3], 'low': c[4], 'volume': c[5] } for c in candles_arr[starting_index:]] arr.append({ 'exchange': r.exchange, 'symbol': r.symbol, 'timeframe': r.timeframe, 'candles': candles }) return arr def _get_formatted_orders_for_frontend(): arr = [] for r in router.routes: arr.append({ 'exchange': r.exchange, 'symbol': r.symbol, 'timeframe': r.timeframe, 'orders': r.strategy._executed_orders }) return arr def _get_add_line_to_candle_chart(): arr = [] for r in router.routes: arr.append({ 'exchange': r.exchange, 'symbol': r.symbol, 'timeframe': r.timeframe, 'lines': r.strategy._add_line_to_candle_chart_values }) return arr def _get_add_extra_line_chart(): arr = [] for r in router.routes: arr.append({ 'exchange': r.exchange, 'symbol': r.symbol, 'timeframe': r.timeframe, 'charts': r.strategy._add_extra_line_chart_values }) return arr def _get_add_horizontal_line_to_candle_chart(): arr = [] for r in router.routes: arr.append({ 'exchange': r.exchange, 'symbol': r.symbol, 'timeframe': r.timeframe, 'lines': r.strategy._add_horizontal_line_to_candle_chart_values }) return arr def _get_add_horizontal_line_to_extra_chart(): arr = [] for r in router.routes: arr.append({ 'exchange': r.exchange, 'symbol': r.symbol, 'timeframe': r.timeframe, 'lines': r.strategy._add_horizontal_line_to_extra_chart_values }) return arr def _handle_missing_candles(exchange: str, symbol: str, start_date: int, message: str = None): """Helper function to handle missing candles scenarios""" formatted_date = jh.timestamp_to_date(start_date) if message is None: message = f'Missing trading candles for {symbol} on {exchange} from {formatted_date}' sync_publish( "missing_candles", { "message": message, "symbol": symbol, "exchange": exchange, "start_date": formatted_date, }, ) raise exceptions.CandlesNotFound({ 'message': message, 'symbol': symbol, 'exchange': exchange, 'start_date': start_date, 'type': 'missing_candles' }) def load_candles(start_date: int, finish_date: int) -> Tuple[dict, dict]: warmup_num = jh.get_config('env.data.warmup_candles_num', 210) max_timeframe = jh.max_timeframe(config['app']['considering_timeframes']) # load and add required warm-up candles for backtest, and then Prepare trading candles trading_candles = {} warmup_candles = {} for c in config['app']['considering_candles']: exchange, symbol = c[0], c[1] warmup_candles_arr, trading_candle_arr = candle_service.get_candles_from_db( exchange, symbol, max_timeframe, start_date, finish_date, warmup_num, caching=True, is_for_jesse=True ) # Ensure that trading_candle_arr is not None or empty if trading_candle_arr is None or (isinstance(trading_candle_arr, np.ndarray) and trading_candle_arr.size == 0): _handle_missing_candles( exchange, symbol, start_date, f"Missing trading candles for {symbol} on {exchange}" ) # Check that the first trading candle covers the requested start date. if trading_candle_arr[0][0] > start_date: _handle_missing_candles(exchange, symbol, start_date) # Check that the last trading candle covers the requested finish date. if trading_candle_arr[-1][0] < (finish_date - 60_000): _handle_missing_candles(exchange, symbol, start_date) # add trading candles trading_candles[jh.key(exchange, symbol)] = { 'exchange': exchange, 'symbol': symbol, 'candles': trading_candle_arr } warmup_candles[jh.key(exchange, symbol)] = { 'exchange': exchange, 'symbol': symbol, 'candles': warmup_candles_arr } return warmup_candles, trading_candles def _handle_warmup_candles(warmup_candles: dict, start_date: str) -> None: try: for c in config['app']['considering_candles']: exchange, symbol = c[0], c[1] candle_service.inject_warmup_candles_to_store(warmup_candles[jh.key(exchange, symbol)]['candles'], exchange, symbol) except ValueError as e: # Extract exchange and symbol from error message match = re.search(r"for (.*?)/(.*?)\?", str(e)) if match: exchange, symbol = match.groups() # Calculate warmup start date using the same logic as load_candles() warmup_num = jh.get_config('env.data.warmup_candles_num', 210) max_timeframe = jh.max_timeframe(config['app']['considering_timeframes']) # Convert max_timeframe to minutes and multiply by warmup_num warmup_minutes = TIMEFRAME_TO_ONE_MINUTES[max_timeframe] * warmup_num warmup_start_timestamp = jh.date_to_timestamp(start_date) - (warmup_minutes * 60_000) warmup_start_date = jh.timestamp_to_date(warmup_start_timestamp) # Publish the missing candles error to the frontend # This will trigger the alert in the BacktestTab.vue component # so that the user can import the missing candles sync_publish( "missing_candles", { "message": f'Missing warmup candles for {symbol} on {exchange} from {warmup_start_date}', "symbol": symbol, "exchange": exchange, "start_date": warmup_start_date, }, ) raise exceptions.CandlesNotFound(str(e)) raise e def simulator(*args, fast_mode: bool = False, **kwargs) -> dict: if fast_mode: return _skip_simulator(*args, **kwargs) return _step_simulator(*args, **kwargs) def _step_simulator( candles: dict, run_silently: bool, hyperparameters: dict = None, generate_tradingview: bool = False, generate_csv: bool = False, generate_json: bool = False, generate_equity_curve: bool = False, benchmark: bool = False, generate_hyperparameters: bool = False, generate_logs: bool = False, with_candles_pipeline: bool = True, candles_pipeline_class = None, candles_pipeline_kwargs: dict = None, ) -> dict: # In case generating logs is specifically demanded, the debug mode must be enabled. if generate_logs: config['app']['debug_mode'] = True begin_time_track = time.time() key = f"{config['app']['considering_candles'][0][0]}-{config['app']['considering_candles'][0][1]}" first_candles_set = candles[key]['candles'] length = _simulation_minutes_length(candles) _prepare_times_before_simulation(candles) candles_pipelines = _prepare_routes( hyperparameters=hyperparameters, with_candles_pipeline=with_candles_pipeline, candles_pipeline_class=candles_pipeline_class, candles_pipeline_kwargs=candles_pipeline_kwargs ) # add initial balance save_daily_portfolio_balance(is_initial=True) progressbar = Progressbar(length, step=420) last_update_time = None for i in range(length): # update time store.app.time = first_candles_set[i][0] + 60_000 # add candles for j in candles: candles_pipeline = candles_pipelines[j] short_candle = get_candles_from_pipeline(candles_pipeline, candles[j]['candles'], i) if i != 0: previous_short_candle = candles[j]['candles'][i - 1] short_candle = _get_fixed_jumped_candle(previous_short_candle, short_candle) exchange = candles[j]['exchange'] symbol = candles[j]['symbol'] candle_service.add_candle(short_candle, exchange, symbol, '1m', with_execution=False, with_generation=False) # print short candle if jh.is_debuggable('shorter_period_candles'): candle_service.print_candle(short_candle, True, symbol) _simulate_price_change_effect(short_candle, exchange, symbol) # generate and add candles for bigger timeframes for timeframe in config['app']['considering_timeframes']: # for 1m, no work is needed if timeframe == '1m': continue count = TIMEFRAME_TO_ONE_MINUTES[timeframe] # until = count - ((i + 1) % count) if (i + 1) % count == 0: generated_candle = candle_service.generate_candle_from_one_minutes( timeframe, candles[j]['candles'][(i - (count - 1)):(i + 1)] ) candle_service.add_candle( generated_candle, exchange, symbol, timeframe, with_execution=False, with_generation=False ) last_update_time = _update_progress_bar(progressbar, run_silently, i, candle_step=420, last_update_time=last_update_time) # now that all new generated candles are ready, execute for r in router.routes: count = TIMEFRAME_TO_ONE_MINUTES[r.timeframe] # 1m timeframe if r.timeframe == timeframes.MINUTE_1: r.strategy._execute() elif (i + 1) % count == 0: # print candle if jh.is_debuggable('trading_candles'): candle_service.print_candle(candle_service.get_current_candle(r.exchange, r.symbol, r.timeframe), False, r.symbol) r.strategy._execute() order_service.update_active_orders(r.exchange, r.symbol) # now check to see if there's any MARKET orders waiting to be executed order_service.execute_simulated_market_orders() if i != 0 and i % 1440 == 0: save_daily_portfolio_balance() _finish_progress_bar(progressbar, run_silently) execution_duration = 0 if not run_silently: # print executed time for the backtest session finish_time_track = time.time() execution_duration = round(finish_time_track - begin_time_track, 2) for r in router.routes: r.strategy._terminate() order_service.execute_simulated_market_orders() # now that backtest simulation is finished, add finishing balance save_daily_portfolio_balance() # set the ending time for the backtest session store.app.ending_time = store.app.time + 60_000 result = _generate_outputs( candles, generate_tradingview=generate_tradingview, generate_csv=generate_csv, generate_json=generate_json, generate_equity_curve=generate_equity_curve, benchmark=benchmark, generate_hyperparameters=generate_hyperparameters, generate_logs=generate_logs, ) result['execution_duration'] = execution_duration return result def _simulation_minutes_length(candles: dict) -> int: key = f"{config['app']['considering_candles'][0][0]}-{config['app']['considering_candles'][0][1]}" first_candles_set = candles[key]["candles"] return len(first_candles_set) def _prepare_times_before_simulation(candles: dict) -> None: # result = {} # begin_time_track = time.time() key = f"{config['app']['considering_candles'][0][0]}-{config['app']['considering_candles'][0][1]}" first_candles_set = candles[key]["candles"] # length = len(first_candles_set) # to preset the array size for performance try: store.app.starting_time = first_candles_set[0][0] except IndexError: raise IndexError('Check your "warm_up_candles" config value') store.app.time = first_candles_set[0][0] def _prepare_routes( hyperparameters: dict = None, with_candles_pipeline: bool = True, candles_pipeline_class = None, candles_pipeline_kwargs: dict = None, ) -> Dict[str, BaseCandlesPipeline | None]: # initiate strategies candles_pipeline = {} for r in router.routes: # if the r.strategy is str read it from file if isinstance(r.strategy_name, str): StrategyClass = jh.get_strategy_class(r.strategy_name) # else it is a class object so just use it else: StrategyClass = r.strategy_name try: r.strategy = StrategyClass() except TypeError: raise exceptions.InvalidStrategy( "Strategy validation failed. Make sure your strategy has the mandatory methods such as should_long(), " "go_long(), etc. For working examples, visit: https://jesse.trade/strategies" ) except: raise r.strategy.name = r.strategy_name r.strategy.exchange = r.exchange r.strategy.symbol = r.symbol r.strategy.timeframe = r.timeframe # read the dna from strategy's dna() and use it for injecting inject hyperparameters # first convert DNS string into hyperparameters if len(r.strategy.dna()) > 0 and hyperparameters is None: hyperparameters = jh.dna_to_hp( r.strategy.hyperparameters(), r.strategy.dna() ) # inject hyperparameters sent within the optimize mode if hyperparameters is not None: r.strategy.hp = hyperparameters # init few objects that couldn't be initiated in Strategy __init__ # it also injects hyperparameters into self.hp in case the route does not uses any DNAs r.strategy._init_objects() # monte-carlo simulation if with_candles_pipeline: if candles_pipeline_class is not None: # Use the provided pipeline class with kwargs if available kwargs = candles_pipeline_kwargs or {} candles_pipeline[jh.key(r.exchange, r.symbol)] = candles_pipeline_class(**kwargs) else: # Otherwise, fall back to the strategy's pipeline candles_pipeline[jh.key(r.exchange, r.symbol)] = r.strategy.candles_pipeline() else: # normal backtest candles_pipeline[jh.key(r.exchange, r.symbol)] = None store.positions.get_position(r.exchange, r.symbol).strategy = r.strategy # Ensure pipelines exist for data routes as well (no strategy attached) # Keys in `candles` include both trading and data routes; provide a pipeline (or None) for each for dr in getattr(router, 'data_routes', []) or []: key = jh.key(dr.exchange, dr.symbol) if key in candles_pipeline: continue if with_candles_pipeline and candles_pipeline_class is not None: kwargs = candles_pipeline_kwargs or {} candles_pipeline[key] = candles_pipeline_class(**kwargs) else: candles_pipeline[key] = None return candles_pipeline def get_candles_from_pipeline(candles_pipeline: Optional[BaseCandlesPipeline], candles: np.ndarray, i: int, candles_step: int = -1) -> np.ndarray: if candles_pipeline is None: if candles_step == -1: return candles[i] else: return candles[i: i+candles_step] return candles_pipeline.get_candles(candles[i: i + candles_pipeline._batch_size], i, candles_step) def _update_progress_bar( progressbar: Progressbar, run_silently: bool, candle_index: int, candle_step: int, last_update_time: float ) -> float: throttle_interval = 0.5 current_time = time.time() if not run_silently and candle_index % candle_step == 0: progressbar.update() if last_update_time is None or (current_time - last_update_time) >= throttle_interval: sync_publish( "progressbar", { "current": progressbar.current, "estimated_remaining_seconds": progressbar.estimated_remaining_seconds, }, ) # Update the last update time last_update_time = current_time # Return the last update time for future reference return last_update_time def _finish_progress_bar(progressbar: Progressbar, run_silently: bool): if run_silently: return progressbar.finish() sync_publish( "progressbar", { "current": 100, "estimated_remaining_seconds": 0, }, ) def _get_fixed_jumped_candle( previous_candle: np.ndarray, candle: np.ndarray ) -> np.ndarray: """ A little workaround for the times that the price has jumped and the opening price of the current candle is not equal to the previous candle's close! :param previous_candle: np.ndarray :param candle: np.ndarray """ if previous_candle[2] < candle[1]: candle[1] = previous_candle[2] candle[4] = min(previous_candle[2], candle[4]) elif previous_candle[2] > candle[1]: candle[1] = previous_candle[2] candle[3] = max(previous_candle[2], candle[3]) return candle def _simulate_price_change_effect(real_candle: np.ndarray, exchange: str, symbol: str) -> None: current_temp_candle = real_candle.copy() executed_order = False executing_orders = _get_executing_orders(exchange, symbol, real_candle) if len(executing_orders) > 1: # extend the candle shape from (6,) to (1,6) executing_orders = _sort_execution_orders(executing_orders, current_temp_candle[None, :]) while True: if len(executing_orders) == 0: executed_order = False else: for index, order in enumerate(executing_orders): if index == len(executing_orders) - 1 and not order.is_active: executed_order = False if not order.is_active: continue if candle_service.candle_includes_price(current_temp_candle, order.price): storable_temp_candle, current_temp_candle = candle_service.split_candle(current_temp_candle, order.price) _update_all_routes_a_partial_candle(exchange, symbol, storable_temp_candle) p = store.positions.get_position(exchange, symbol) p.current_price = storable_temp_candle[2] executed_order = True order_service.execute_order(order) executing_orders = _get_executing_orders(exchange, symbol, current_temp_candle) if len(executing_orders) > 1: # extend the candle shape from (6,) to (1,6) executing_orders = _sort_execution_orders(executing_orders, current_temp_candle[None, :]) # break from the for loop, we'll try again inside the while # loop with the new current_temp_candle break else: executed_order = False if not executed_order: # add/update the real_candle to the store so we can move on candle_service.add_candle( real_candle, exchange, symbol, '1m', with_execution=False, with_generation=False ) p = store.positions.get_position(exchange, symbol) if p: p.current_price = real_candle[2] break _check_for_liquidations(real_candle, exchange, symbol) def _check_for_liquidations(candle: np.ndarray, exchange: str, symbol: str) -> None: p: Position = store.positions.get_position(exchange, symbol) if not p: return # for now, we only support the isolated mode: if p.mode != 'isolated': return if candle_service.candle_includes_price(candle, p.liquidation_price): closing_order_side = jh.closing_side(p.type) # create the market order that is used as the liquidation order order = Order({ 'id': jh.generate_unique_id(), 'symbol': symbol, 'exchange': exchange, 'side': closing_order_side, 'type': order_types.MARKET, 'reduce_only': True, 'qty': jh.prepare_qty(p.qty, closing_order_side), 'price': p.bankruptcy_price }) store.orders.add_order(order) store.app.total_liquidations += 1 logger.info(f'{p.symbol} liquidated at {p.liquidation_price}') order_service.execute_order(order) def _generate_outputs( candles: dict, generate_tradingview: bool = False, generate_csv: bool = False, generate_json: bool = False, generate_equity_curve: bool = False, benchmark: bool = False, generate_hyperparameters: bool = False, generate_logs: bool = False, ): result = {} if generate_hyperparameters: result["hyperparameters"] = stats.hyperparameters(router.routes) result["metrics"] = report.portfolio_metrics() result["trades"] = report.trades() # generate logs in json, csv and tradingview's pine-editor format logs_path = store_logs(generate_json, generate_tradingview, generate_csv) if generate_json: result["json"] = logs_path["json"] if generate_tradingview: result["tradingview"] = logs_path["tradingview"] if generate_csv: result["csv"] = logs_path["csv"] if generate_equity_curve: result["equity_curve"] = charts.equity_curve(benchmark) if generate_logs: result["logs"] = f"storage/logs/backtest-mode/{jh.get_session_id()}.txt" return result def _skip_simulator( candles: dict, run_silently: bool, hyperparameters: dict = None, generate_tradingview: bool = False, generate_csv: bool = False, generate_json: bool = False, generate_equity_curve: bool = False, benchmark: bool = False, generate_hyperparameters: bool = False, generate_logs: bool = False, with_candles_pipeline: bool = True, candles_pipeline_class = None, candles_pipeline_kwargs: dict = None, ) -> dict: # In case generating logs is specifically demanded, the debug mode must be enabled. if generate_logs: config["app"]["debug_mode"] = True begin_time_track = time.time() length = _simulation_minutes_length(candles) _prepare_times_before_simulation(candles) candles_pipelines = _prepare_routes(hyperparameters, with_candles_pipeline, candles_pipeline_class, candles_pipeline_kwargs) # add initial balance save_daily_portfolio_balance(is_initial=True) candles_step = _calculate_minimum_candle_step() progressbar = Progressbar(length, step=candles_step) last_update_time = None for i in range(0, length, candles_step): # update time moved to _simulate_price_change_effect__multiple_candles # store.app.time = first_candles_set[i][0] + (60_000 * candles_step) _simulate_new_candles(candles, candles_pipelines, i, candles_step) last_update_time = _update_progress_bar(progressbar, run_silently, i, candles_step, last_update_time=last_update_time) _execute_routes(i, candles_step) # now check to see if there's any MARKET orders waiting to be executed order_service.execute_simulated_market_orders() if i != 0 and i % 1440 == 0: save_daily_portfolio_balance() _finish_progress_bar(progressbar, run_silently) execution_duration = 0 if not run_silently: # print executed time for the backtest session finish_time_track = time.time() execution_duration = round(finish_time_track - begin_time_track, 2) for r in router.routes: r.strategy._terminate() order_service.execute_simulated_market_orders() # now that backtest simulation is finished, add finishing balance save_daily_portfolio_balance() # set the ending time for the backtest session store.app.ending_time = store.app.time + 60_000 result = _generate_outputs( candles, generate_tradingview=generate_tradingview, generate_csv=generate_csv, generate_json=generate_json, generate_equity_curve=generate_equity_curve, benchmark=benchmark, generate_hyperparameters=generate_hyperparameters, generate_logs=generate_logs, ) result['execution_duration'] = execution_duration return result def _calculate_minimum_candle_step(): """ Calculates the minimum step for update candles that will allow simple updates on the simulator. """ # config["app"]["considering_timeframes"] use '1m' also even if not required by the user so take only what the user # is requested. consider_time_frames = [ TIMEFRAME_TO_ONE_MINUTES[route["timeframe"]] for route in router.all_formatted_routes ] return np.gcd.reduce(consider_time_frames) timeframe_to_one_minutes = { timeframes.MINUTE_1: 1, timeframes.MINUTE_3: 3, timeframes.MINUTE_5: 5, timeframes.MINUTE_15: 15, timeframes.MINUTE_30: 30, timeframes.MINUTE_45: 45, timeframes.HOUR_1: 60, timeframes.HOUR_2: 60 * 2, timeframes.HOUR_3: 60 * 3, timeframes.HOUR_4: 60 * 4, timeframes.HOUR_6: 60 * 6, timeframes.HOUR_8: 60 * 8, timeframes.HOUR_12: 60 * 12, timeframes.DAY_1: 60 * 24, timeframes.DAY_3: 60 * 24 * 3, timeframes.WEEK_1: 60 * 24 * 7, timeframes.MONTH_1: 60 * 24 * 30, } def _simulate_new_candles(candles: dict, candles_pipelines: Dict[str, BaseCandlesPipeline], candle_index: int, candles_step: int) -> None: i = candle_index # add candles for j in candles: candles_pipeline = candles_pipelines[j] short_candles = get_candles_from_pipeline(candles_pipeline, candles[j]['candles'], i, candles_step) candles[j]['candles'][i:i+candles_step] = short_candles if i != 0: previous_short_candles = candles[j]["candles"][i - 1] # work the same, the fix needs to be done only on the gap of 1m edge candles. short_candles[0] = _get_fixed_jumped_candle( previous_short_candles, short_candles[0] ) exchange = candles[j]["exchange"] symbol = candles[j]["symbol"] _simulate_price_change_effect_multiple_candles( short_candles, exchange, symbol ) # generate and add candles for bigger timeframes for timeframe in config["app"]["considering_timeframes"]: # for 1m, no work is needed if timeframe == "1m": continue count = TIMEFRAME_TO_ONE_MINUTES[timeframe] if (i + candles_step) % count == 0: generated_candle = candle_service.generate_candle_from_one_minutes( timeframe, candles[j]["candles"][ i - count + candles_step: i + candles_step], ) candle_service.add_candle( generated_candle, exchange, symbol, timeframe, with_execution=False, with_generation=False, ) def _simulate_price_change_effect_multiple_candles( short_timeframes_candles: np.ndarray, exchange: str, symbol: str ) -> None: real_candle = np.array( [ short_timeframes_candles[0][0], short_timeframes_candles[0][1], short_timeframes_candles[-1][2], short_timeframes_candles[:, 3].max(), short_timeframes_candles[:, 4].min(), short_timeframes_candles[:, 5].sum(), ] ) executing_orders = _get_executing_orders(exchange, symbol, real_candle) if len(executing_orders) > 0: if len(executing_orders) > 1: executing_orders = _sort_execution_orders(executing_orders, short_timeframes_candles) for i in range(len(short_timeframes_candles)): current_temp_candle = short_timeframes_candles[i].copy() if i > 0: current_temp_candle[3] = max(current_temp_candle[3], short_timeframes_candles[i-1, 2]) current_temp_candle[4] = min(current_temp_candle[4], short_timeframes_candles[i-1, 2]) is_executed_order = False while True: if len(executing_orders) == 0: is_executed_order = False else: for index, order in enumerate(executing_orders): if index == len(executing_orders) - 1 and not order.is_active: is_executed_order = False if not order.is_active: continue if candle_service.candle_includes_price(current_temp_candle, order.price): storable_temp_candle, current_temp_candle = candle_service.split_candle( current_temp_candle, order.price ) _update_all_routes_a_partial_candle( exchange, symbol, storable_temp_candle, ) p = store.positions.get_position(exchange, symbol) p.current_price = storable_temp_candle[2] is_executed_order = True store.app.time = storable_temp_candle[0] + 60_000 order_service.execute_order(order) executing_orders = _get_executing_orders( exchange, symbol, real_candle ) # break from the for loop, we'll try again inside the while # loop with the new current_temp_candle break else: is_executed_order = False if not is_executed_order: # add/update the real_candle to the store so we can move on candle_service.add_candle( short_timeframes_candles[i].copy(), exchange, symbol, "1m", with_execution=False, with_generation=False, ) p = store.positions.get_position(exchange, symbol) if p: p.current_price = current_temp_candle[2] break candle_service.add_multiple_1m_candles( short_timeframes_candles, exchange, symbol, ) store.app.time = real_candle[0] + (60_000 * len(short_timeframes_candles)) _check_for_liquidations(real_candle, exchange, symbol) p = store.positions.get_position(exchange, symbol) if p: p.current_price = short_timeframes_candles[-1, 2] def _update_all_routes_a_partial_candle( exchange: str, symbol: str, storable_temp_candle: np.ndarray, ) -> None: """ This function get called when an order is getting executed you need to update the other timeframe how their last candles looks like """ candle_service.add_candle( storable_temp_candle, exchange, symbol, "1m", with_execution=False, with_generation=False, ) for route in router.all_formatted_routes: timeframe = route['timeframe'] if route['exchange'] != exchange or route['symbol'] != symbol: continue if timeframe == '1m': continue tf_minutes = TIMEFRAME_TO_ONE_MINUTES[timeframe] number_of_needed_candles = int(storable_temp_candle[0] % (tf_minutes * 60_000) // 60000) + 1 candles_1m = candle_service.get_candles(exchange, symbol, '1m')[-number_of_needed_candles:] generated_candle = candle_service.generate_candle_from_one_minutes( timeframe, candles_1m, accept_forming_candles=True ) candle_service.add_candle( generated_candle, exchange, symbol, timeframe, with_execution=False, with_generation=False, ) def _execute_routes(candle_index: int, candles_step: int) -> None: # now that all new generated candles are ready, execute for r in router.routes: count = TIMEFRAME_TO_ONE_MINUTES[r.timeframe] # 1m timeframe if r.timeframe == timeframes.MINUTE_1: r.strategy._execute() elif (candle_index + candles_step) % count == 0: # print candle if jh.is_debuggable("trading_candles"): candle_service.print_candle( candle_service.get_current_candle( r.exchange, r.symbol, r.timeframe ), False, r.symbol, ) r.strategy._execute() order_service.update_active_orders(r.exchange, r.symbol) def _get_executing_orders(exchange, symbol, real_candle): orders = store.orders.get_active_orders(exchange, symbol) return [ order for order in orders if order.is_active and candle_service.candle_includes_price(real_candle, order.price) ] def _sort_execution_orders(orders: List[Order], short_candles: np.ndarray): remaining_orders = set(orders) sorted_orders = [] for candle in short_candles: open_price, close_price, low, high = candle[1], candle[2], candle[4], candle[3] # Did not use candle_includes_price() for performance, keeping it vectorization-friendly included_orders = [order for order in remaining_orders if low <= order.price <= high] if len(included_orders) == 1: sorted_orders.append(included_orders[0]) remaining_orders.remove(included_orders[0]) elif len(included_orders) > 1: # in case that the orders are above on_open, above_open, below_open = [], [], [] for order in included_orders: if order.price == open_price: on_open.append(order) if order.price > open_price: above_open.append(order) else: below_open.append(order) sorted_orders += on_open remaining_orders.difference_update(on_open) is_red = open_price > close_price if is_red: # heuristic that first the price goes up and then down, so this is the order execution sort above_open.sort(key=lambda o: o.price) below_open.sort(key=lambda o: o.price, reverse=True) sorted_orders += above_open + below_open remaining_orders.difference_update(above_open + below_open) else: below_open.sort(key=lambda o: o.price, reverse=True) above_open.sort(key=lambda o: o.price) sorted_orders += below_open + above_open remaining_orders.difference_update(below_open + above_open) if len(sorted_orders) == len(orders): break return sorted_orders ================================================ FILE: jesse/modes/data_provider.py ================================================ import json import os import numpy as np import peewee from fastapi.responses import FileResponse import jesse.helpers as jh from jesse.info import live_trading_exchanges, backtesting_exchanges from jesse.repositories import candle_repository from jesse.services import candle_service from typing import List, Dict import csv import io from jesse.models.ExchangeApiKeys import ExchangeApiKeys from jesse.services.db import database from fastapi.responses import StreamingResponse def get_candles(exchange: str, symbol: str, timeframe: str): from jesse.services.db import database database.open_connection() if 'hyperliquid' not in exchange.lower(): symbol = symbol.upper() # fetch the current value for warmup_candles from the database from jesse.models.Option import Option o = Option.get(Option.type == 'config') db_config = json.loads(o.json) warmup_candles_num = db_config['live']['warm_up_candles'] one_min_count = jh.timeframe_to_one_minutes(timeframe) finish_date = jh.now(force_fresh=True) start_date = jh.get_candle_start_timestamp_based_on_timeframe(timeframe, warmup_candles_num) # fetch value of generate_candles_from_1m fresh from the database o = Option.get(Option.type == 'config') generate_candles_from_1m: bool = json.loads(o.json)['live']['generate_candles_from_1m'] # fetch 1m candles from database if generate_candles_from_1m: timeframe_to_fetch = '1m' else: timeframe_to_fetch = timeframe candles = np.array( candle_repository.fetch_candles_from_db(exchange, symbol, timeframe_to_fetch, start_date, finish_date) ) # if there are no candles in the database, return [] if candles.size == 0: database.close_connection() return [] if generate_candles_from_1m: # leave out first candles until the timestamp of the first candle is the beginning of the timeframe timeframe_duration = one_min_count * 60_000 while candles[0][0] % timeframe_duration != 0: candles = candles[1:] # generate bigger candles from 1m candles if timeframe != '1m': generated_candles = [] for i in range(len(candles)): if (i + 1) % one_min_count == 0: bigger_candle = candle_service.generate_candle_from_one_minutes( timeframe, candles[(i - (one_min_count - 1)):(i + 1)], True ) generated_candles.append(bigger_candle) candles = generated_candles database.close_connection() return [ { 'time': int(c[0] / 1000), 'open': c[1], 'close': c[2], 'high': c[3], 'low': c[4], 'volume': c[5], } for c in candles ] def get_config(client_config: dict, has_live=False) -> dict: from jesse.services.db import database database.open_connection() from jesse.models.Option import Option try: o = Option.get(Option.type == 'config') # merge it with client's config (because it could include new keys added), # update it in the database, and then return it data = jh.merge_dicts(client_config, json.loads(o.json)) # make sure the list of BACKTEST exchanges is up to date for k in list(data['backtest']['exchanges'].keys()): if k not in backtesting_exchanges: del data['backtest']['exchanges'][k] # make sure the list of LIVE exchanges is up to date if has_live: for k in list(data['live']['exchanges'].keys()): if k not in live_trading_exchanges: del data['live']['exchanges'][k] o.updated_at = jh.now(True) o.save() except peewee.DoesNotExist: # if not found, that means it's the first time. Store in the DB and # then return what was sent from the client side without changing it o = Option({ 'id': jh.generate_unique_id(), 'updated_at': jh.now(True), 'type': 'config', 'json': json.dumps(client_config) }) o.save(force_insert=True) data = client_config database.close_connection() return { 'data': data } def update_config(client_config: dict): from jesse.services.db import database database.open_connection() from jesse.models.Option import Option # at this point there must already be one option record for "config" existing, so: o = Option.get(Option.type == 'config') o.json = json.dumps(client_config) o.updated_at = jh.now(True) o.save() database.close_connection() def download_file(mode: str, file_type: str, session_id: str = None): if mode == 'backtest' and file_type == 'log': path = f'storage/logs/backtest-mode/{session_id}.txt' filename = f'backtest-{session_id}.txt' elif mode == 'backtest' and file_type == 'csv': path = f'storage/csv/{session_id}.csv' filename = f'backtest-{session_id}.csv' elif mode == 'backtest' and file_type == 'json': path = f'storage/json/{session_id}.json' filename = f'backtest-{session_id}.json' elif mode == 'backtest' and file_type == 'full-reports': path = f'storage/full-reports/{session_id}.html' filename = f'backtest-{session_id}.html' elif mode == 'backtest' and file_type == 'tradingview': path = f'storage/trading-view-pine-editor/{session_id}.txt' filename = f'backtest-{session_id}.txt' elif mode == 'optimize' and file_type == 'log': path = f'storage/logs/optimize-mode.txt' # filename should be "optimize-" + current timestamp filename = f'optimize-{jh.timestamp_to_date(jh.now(True))}.txt' elif mode == 'monte-carlo' and file_type == 'log': path = f'storage/logs/monte-carlo-mode/{session_id}.txt' filename = f'monte-carlo-{session_id}.txt' else: raise Exception(f'Unknown file type: {file_type} or mode: {mode}') return FileResponse(path=path, filename=filename, media_type='application/octet-stream') def download_api_keys(): try: database.open_connection() api_keys = list(ExchangeApiKeys.select()) if not api_keys: database.close_connection() return StreamingResponse( io.StringIO("No API keys found"), media_type='text/csv', headers={'Content-Disposition': 'attachment; filename=api-keys.csv'} ) output = io.StringIO() writer = csv.writer(output) # Prepare the CSV data headers = ['Name', 'Exchange', 'API Key', 'API Secret', 'api_passphrase', 'wallet_address', 'stark_private_key'] writer.writerow(headers) for api_key in api_keys: additional_fields = api_key.get_additional_fields() row = [ api_key.name, api_key.exchange_name, api_key.api_key, api_key.api_secret, additional_fields['api_passphrase'] if 'api_passphrase' in additional_fields else None, additional_fields['wallet_address'] if 'wallet_address' in additional_fields else None, additional_fields['stark_private_key'] if 'stark_private_key' in additional_fields else None ] writer.writerow(row) database.close_connection() # Return the CSV as a streaming response output.seek(0) return StreamingResponse( output, media_type='text/csv', headers={'Content-Disposition': 'attachment; filename=api-keys.csv'} ) except Exception as e: database.close_connection() raise e def validate_csv_content(content: str) -> bool: """ Basic validation: header names + no obvious malicious patterns. """ try: # Reject obvious SQL‑injection patterns sql_patterns = [ ';--', '/*', '*/', 'xp_', 'sp_', 'union ', 'select ', 'insert ', 'update ', 'delete ', 'drop ', 'alter ', 'create ' ] if any(p.lower() in content.lower() for p in sql_patterns): return False # Reject suspicious control chars if any(c in content for c in ['\0', '\x01', '\x1a']): return False reader = csv.DictReader(io.StringIO(content)) required_columns = { 'Name', 'Exchange', 'API Key', 'API Secret' } # Case‑insensitive comparison header_set = {h.strip().lower() for h in reader.fieldnames or []} if not all(col.lower() in header_set for col in required_columns): return False return True except Exception: return False def import_api_keys_from_csv(content: str) -> Dict[str, any]: """ Import API keys from CSV content string. Returns a dict with success flag and summary info. """ from jesse.models.ExchangeApiKeys import ExchangeApiKeys from jesse.services.db import database try: database.open_connection() reader = csv.DictReader(io.StringIO(content)) imported_names: list[str] = [] # Keep track of existing names to avoid duplicates existing_names = {k.name for k in ExchangeApiKeys.select(ExchangeApiKeys.name)} for row in reader: name = (row.get('Name') or '').strip() if not name or name in existing_names: continue exchange = (row.get('Exchange') or '').strip() api_key = (row.get('API Key') or '').strip() api_secret = (row.get('API Secret') or '').strip() # Skip rows with missing mandatory fields if not all([name, exchange, api_key, api_secret]): continue additional_fields = {} if row.get('api_passphrase'): additional_fields = { 'api_passphrase': (row.get('api_passphrase') or '').strip(), 'wallet_address': (row.get('wallet_address') or '').strip(), 'stark_private_key': (row.get('stark_private_key') or '').strip() } # Persist exchange_api_key: ExchangeApiKeys = ExchangeApiKeys.create( id=jh.generate_unique_id(), exchange_name=exchange, name=name, api_key=api_key, api_secret=api_secret, additional_fields=json.dumps(additional_fields), created_at=jh.now_to_datetime(), general_notifications_id=None, error_notifications_id=None ) imported_names.append(name) database.close_connection() return { 'success': True, 'imported_count': len(imported_names), } except Exception as e: database.close_connection() return {'success': False, 'error': str(e)} def get_backtest_logs(session_id: str): path = f"storage/logs/backtest-mode/{session_id}.txt" if not os.path.exists(path): return None with open(path, "r") as f: content = f.read() return jh.compressed_response(content) def get_monte_carlo_logs(session_id: str): path = f'storage/logs/monte-carlo-mode/{session_id}.txt' if not os.path.exists(path): return None with open(path, 'r') as f: content = f.read() return content def get_optimization_logs(session_id: str): path = f'storage/logs/optimize-mode/{session_id}.txt' if not os.path.exists(path): return None with open(path, 'r') as f: content = f.read() return content def download_backtest_log(session_id: str): """ Returns the log file for a specific backtest session as a downloadable file """ path = f'storage/logs/backtest-mode/{session_id}.txt' if not os.path.exists(path): raise Exception('Log file not found') filename = f'backtest-{session_id}.txt' return FileResponse( path=path, filename=filename, media_type='text/plain' ) ================================================ FILE: jesse/modes/exchange_api_keys.py ================================================ import json from typing import Optional from starlette.responses import JSONResponse from jesse.info import live_trading_exchanges import jesse.helpers as jh from jesse.services import transformers def get_exchange_api_keys() -> JSONResponse: from jesse.services.db import database database.open_connection() from jesse.models.ExchangeApiKeys import ExchangeApiKeys try: # fetch all the api keys api_keys = ExchangeApiKeys.select() except Exception as e: database.close_connection() return JSONResponse({ 'status': 'error', 'message': str(e) }, status_code=500) # transform each api_key using transformers.get_exchange_api_key() api_keys = [transformers.get_exchange_api_key(api_key) for api_key in api_keys] database.close_connection() return JSONResponse({ 'data': api_keys }, status_code=200) def store_exchange_api_keys( exchange: str, name: str, api_key: str, api_secret: str, additional_fields: Optional[dict] = None, general_notifications_id: Optional[str] = None, error_notifications_id: Optional[str] = None, ) -> JSONResponse: # validate the exchange if exchange not in live_trading_exchanges: return JSONResponse({ 'status': 'error', 'message': f'Invalid exchange: {exchange}' }, status_code=400) from jesse.services.db import database database.open_connection() from jesse.models.ExchangeApiKeys import ExchangeApiKeys # check if the api key already exists if ExchangeApiKeys.select().where(ExchangeApiKeys.name == name).exists(): database.close_connection() return JSONResponse({ 'status': 'error', 'message': f'API key with the name "{name}" already exists. Please choose another name.' }, status_code=400) # Ensure additional_fields is a dictionary if additional_fields is None: additional_fields = {} try: # create the record exchange_api_key: ExchangeApiKeys = ExchangeApiKeys.create( id=jh.generate_unique_id(), exchange_name=exchange, name=name, api_key=api_key, api_secret=api_secret, additional_fields=json.dumps(additional_fields), created_at=jh.now_to_datetime(), general_notifications_id=general_notifications_id if general_notifications_id else None, error_notifications_id=error_notifications_id if error_notifications_id else None ) except ValueError as e: database.close_connection() return JSONResponse({ 'status': 'error', 'message': str(e) }, status_code=400) except Exception as e: database.close_connection() return JSONResponse({ 'status': 'error', 'message': str(e) }, status_code=500) database.close_connection() return JSONResponse({ 'status': 'success', 'message': 'API key has been stored successfully.', 'data': transformers.get_exchange_api_key(exchange_api_key) }, status_code=200) def delete_exchange_api_keys(exchange_api_key_id: str) -> JSONResponse: from jesse.services.db import database database.open_connection() from jesse.models.ExchangeApiKeys import ExchangeApiKeys try: # delete the record ExchangeApiKeys.delete().where(ExchangeApiKeys.id == exchange_api_key_id).execute() except Exception as e: database.close_connection() return JSONResponse({ 'status': 'error', 'message': str(e) }, status_code=500) database.close_connection() return JSONResponse({ 'status': 'success', 'message': 'API key has been deleted successfully.' }, status_code=200) ================================================ FILE: jesse/modes/import_candles_mode/__init__.py ================================================ import math import time from datetime import timedelta from typing import Dict, List, Any, Union import arrow import pydash from timeloop import Timeloop import jesse.helpers as jh from jesse.exceptions import CandleNotFoundInExchange from jesse.models.Candle import Candle from jesse.modes.import_candles_mode.drivers import drivers, driver_names from jesse.modes.import_candles_mode.drivers.interface import CandleExchange from jesse.config import config from jesse.services.failure import register_custom_exception_handler from jesse.services.redis import sync_publish, is_process_active from jesse.store import store from jesse import exceptions from jesse.services.progressbar import Progressbar def run( client_id: str, exchange: str, symbol: str, start_date_str: str, mode: str = 'candles', running_via_dashboard: bool = True, show_progressbar: bool = False, ): if running_via_dashboard: config['app']['trading_mode'] = mode register_custom_exception_handler() store.app.set_session_id(client_id) # open database connection from jesse.services.db import database database.open_connection() if running_via_dashboard: # at every second, we check to see if it's time to execute stuff status_checker = Timeloop() @status_checker.job(interval=timedelta(seconds=1)) def handle_time(): if is_process_active(client_id) is False: raise exceptions.Termination status_checker.start() try: start_timestamp = jh.arrow_to_timestamp(arrow.get(start_date_str, 'YYYY-MM-DD')) except: raise ValueError( f'start_date must be a string representing a date before today. ex: 2020-01-17. You entered: {start_date_str}') # more start_date validations today = arrow.utcnow().floor('day').int_timestamp * 1000 if start_timestamp == today: raise ValueError("Today's date is not accepted. start_date must be a string a representing date BEFORE today.") elif start_timestamp > today: raise ValueError("Future's date is not accepted. start_date must be a string a representing date BEFORE today.") # We just call this to throw a exception in case of a symbol without dash jh.quote_asset(symbol) symbol = symbol.upper() until_date = arrow.utcnow().floor('day') start_date = arrow.get(start_timestamp / 1000) days_count = jh.date_diff_in_days(start_date, until_date) candles_count = days_count * 1440 try: driver: CandleExchange = drivers[exchange]() except KeyError: raise ValueError(f'{exchange} is not a supported exchange. Supported exchanges are: {driver_names}') loop_length = int(candles_count / driver.count) + 1 progressbar = Progressbar(loop_length, step=2) frontend_update_counter = 0 frontend_update_threshold = 100 # Only notify frontend after this many updates when skipping existing candles skipped_minutes = 0 imported_minutes = 0 for i in range(candles_count): temp_start_timestamp = start_date.int_timestamp * 1000 temp_end_timestamp = temp_start_timestamp + (driver.count - 1) * 60000 # to make sure it won't try to import candles from the future! LOL if temp_start_timestamp > jh.now_to_timestamp(): break # prevent duplicates calls to boost performance count = Candle.select().where( Candle.exchange == exchange, Candle.symbol == symbol, Candle.timeframe == '1m' or Candle.timeframe.is_null(), Candle.timestamp.between(temp_start_timestamp, temp_end_timestamp) ).count() already_exists = count == driver.count if already_exists: skipped_minutes += driver.count else: imported_minutes += driver.count # it's today's candles if temp_end_timestamp < now if temp_end_timestamp > jh.now_to_timestamp(): temp_end_timestamp = arrow.utcnow().floor('minute').int_timestamp * 1000 - 60000 # fetch from market candles = driver.fetch(symbol, temp_start_timestamp, timeframe='1m') # check if candles have been returned and check those returned start with the right timestamp. # Sometimes exchanges just return the earliest possible candles if the start date doesn't exist. time_diff = int((candles[0]['timestamp'] - temp_start_timestamp) / 1000) if len(candles) else 0 if not len(candles) or time_diff < 0 or time_diff > 60*100: first_existing_timestamp = driver.get_starting_time(symbol) # if driver can't provide accurate get_starting_time() if first_existing_timestamp is None: raise CandleNotFoundInExchange( f'No candles exists in the market for this day: {jh.timestamp_to_time(temp_start_timestamp)[:10]} \n' 'Try another start_date' ) # handle when there's missing candles during the period if temp_start_timestamp > first_existing_timestamp: # see if there are candles for the same date for the backup exchange, # if so, get those, if not, download from that exchange. if driver.backup_exchange is not None: candles = _get_candles_from_backup_exchange( exchange, driver.backup_exchange, symbol, temp_start_timestamp, temp_end_timestamp ) else: temp_start_time = jh.timestamp_to_time(temp_start_timestamp)[:10] temp_existing_time = jh.timestamp_to_time(first_existing_timestamp)[:10] msg = f'No candle exists in the market for {temp_start_time}. So Jesse started importing since the first existing date which is {temp_existing_time}' if running_via_dashboard: sync_publish('alert', { 'message': msg, 'type': 'info' }) else: print(msg) run(client_id, exchange, symbol, jh.timestamp_to_time(first_existing_timestamp)[:10], mode, running_via_dashboard, show_progressbar) return # fill absent candles (if there's any) candles = _fill_absent_candles(candles, temp_start_timestamp, temp_end_timestamp) # store in the database store_candles_list(candles) # add as much as driver's count to the temp_start_time start_date = start_date.shift(minutes=driver.count) if i % 2 == 0: progressbar.update() # For existing candles, throttle frontend updates if already_exists: frontend_update_counter += 1 if frontend_update_counter >= frontend_update_threshold: frontend_update_counter = 0 if running_via_dashboard: sync_publish('progressbar', { 'current': progressbar.current, 'estimated_remaining_seconds': progressbar.estimated_remaining_seconds }) # For new candles being fetched, update frontend normally else: if running_via_dashboard: sync_publish('progressbar', { 'current': progressbar.current, 'estimated_remaining_seconds': progressbar.estimated_remaining_seconds }) if show_progressbar: jh.clear_output() print( f"Progress: {progressbar.current}% - {round(progressbar.estimated_remaining_seconds)} seconds remaining") # sleep so that the exchange won't get angry at us if not already_exists: time.sleep(driver.sleep_time) skipped_days = round(skipped_minutes / 1440, 1) imported_days = round(imported_minutes / 1440, 1) success_text = ( f'Successfully imported candles since "{jh.timestamp_to_date(start_timestamp)}" until today ' f'({imported_days} days imported, {skipped_days} days already existed in the database). ' ) # stop the status_checker time loop if running_via_dashboard: status_checker.stop() sync_publish('alert', { 'message': success_text, 'type': 'success' }) # # TODO: shen should it close the database? # # if it is to skip, then it's being called from another process hence we should leave the database be # if not skip_confirmation: if not running_via_dashboard: # close database connection from jesse.services.db import database database.close_connection() return success_text def _get_candles_from_backup_exchange(exchange: str, backup_driver: CandleExchange, symbol: str, start_timestamp: int, end_timestamp: int) -> List[Dict[str, Union[str, Any]]]: timeframe = '1m' total_candles = [] # try fetching from database first backup_candles = Candle.select( Candle.timestamp, Candle.open, Candle.close, Candle.high, Candle.low, Candle.volume ).where( Candle.exchange == backup_driver.name, Candle.symbol == symbol, Candle.timeframe == timeframe, Candle.timestamp.between(start_timestamp, end_timestamp) ).order_by(Candle.timestamp.asc()).tuples() already_exists = len(backup_candles) == (end_timestamp - start_timestamp) / 60_000 + 1 if already_exists: # loop through them and set new ID and exchange for c in backup_candles: total_candles.append({ 'id': jh.generate_unique_id(), 'exchange': exchange, 'symbol': symbol, 'timeframe': timeframe, 'timestamp': c[0], 'open': c[1], 'close': c[2], 'high': c[3], 'low': c[4], 'volume': c[5] }) return total_candles # try fetching from market now days_count = jh.date_diff_in_days(jh.timestamp_to_arrow(start_timestamp), jh.timestamp_to_arrow(end_timestamp)) # make sure it's rounded up so that we import maybe more candles, but not less days_count = max(days_count, 1) if type(days_count) is float and not days_count.is_integer(): days_count = math.ceil(days_count) candles_count = days_count * 1440 start_date = jh.timestamp_to_arrow(start_timestamp).floor('day') for _ in range(candles_count): temp_start_timestamp = start_date.int_timestamp * 1000 temp_end_timestamp = temp_start_timestamp + (backup_driver.count - 1) * 60000 # to make sure it won't try to import candles from the future! LOL if temp_start_timestamp > jh.now_to_timestamp(): break # prevent duplicates count = Candle.select().where( Candle.exchange == backup_driver.name, Candle.symbol == symbol, Candle.timeframe == timeframe, Candle.timestamp.between(temp_start_timestamp, temp_end_timestamp) ).count() already_exists = count == backup_driver.count if not already_exists: # it's today's candles if temp_end_timestamp < now if temp_end_timestamp > jh.now_to_timestamp(): temp_end_timestamp = arrow.utcnow().floor('minute').int_timestamp * 1000 - 60000 # fetch from market candles = backup_driver.fetch(symbol, temp_start_timestamp) if not len(candles): raise CandleNotFoundInExchange( f'No candles exists in the market for this day: {jh.timestamp_to_time(temp_start_timestamp)[:10]} \n' 'Try another start_date' ) # fill absent candles (if there's any) candles = _fill_absent_candles(candles, temp_start_timestamp, temp_end_timestamp) # store in the database store_candles_list(candles) # add as much as driver's count to the temp_start_time start_date = start_date.shift(minutes=backup_driver.count) # sleep so that the exchange won't get angry at us if not already_exists: time.sleep(backup_driver.sleep_time) # now try fetching from database again. Why? because we might have fetched more # than what's needed, but we only want as much was requested. Don't worry, the next # request will probably fetch from database and there won't be any waste! backup_candles = Candle.select( Candle.timestamp, Candle.open, Candle.close, Candle.high, Candle.low, Candle.volume ).where( Candle.exchange == backup_driver.name, Candle.symbol == symbol, Candle.timeframe == timeframe, Candle.timestamp.between(start_timestamp, end_timestamp) ).order_by(Candle.timestamp.asc()).tuples() already_exists = len(backup_candles) == (end_timestamp - start_timestamp) / 60_000 + 1 if already_exists: # loop through them and set new ID and exchange for c in backup_candles: total_candles.append({ 'id': jh.generate_unique_id(), 'exchange': exchange, 'symbol': symbol, 'timeframe': timeframe, 'timestamp': c[0], 'open': c[1], 'close': c[2], 'high': c[3], 'low': c[4], 'volume': c[5] }) return total_candles def _fill_absent_candles(temp_candles: List[Dict[str, Union[str, Any]]], start_timestamp: int, end_timestamp: int) -> \ List[Dict[str, Union[str, Any]]]: if not temp_candles: raise CandleNotFoundInExchange( f'No candles exists in the market for this day: {jh.timestamp_to_time(start_timestamp)[:10]} \n' 'Try another start_date' ) symbol = temp_candles[0]['symbol'] exchange = temp_candles[0]['exchange'] candles = [] first_candle = temp_candles[0] started = False loop_length = ((end_timestamp - start_timestamp) / 60000) + 1 for _ in range(int(loop_length)): candle_for_timestamp = pydash.find( temp_candles, lambda c: c['timestamp'] == start_timestamp) if candle_for_timestamp is None: if started: last_close = candles[-1]['close'] candles.append({ 'id': jh.generate_unique_id(), 'exchange': exchange, 'symbol': symbol, 'timeframe': '1m', 'timestamp': start_timestamp, 'open': last_close, 'high': last_close, 'low': last_close, 'close': last_close, 'volume': 0 }) else: candles.append({ 'id': jh.generate_unique_id(), 'exchange': exchange, 'symbol': symbol, 'timeframe': '1m', 'timestamp': start_timestamp, 'open': first_candle['open'], 'high': first_candle['open'], 'low': first_candle['open'], 'close': first_candle['open'], 'volume': 0 }) # candle is present else: started = True candles.append(candle_for_timestamp) start_timestamp += 60000 return candles def store_candles_list(candles: List[Dict]) -> None: for c in candles: if 'timeframe' not in c: raise Exception('Candle has no timeframe') Candle.insert_many(candles).on_conflict_ignore().execute() ================================================ FILE: jesse/modes/import_candles_mode/drivers/Apex/ApexOmniPerpetual.py ================================================ from .ApexProMain import ApexProMain from jesse.enums import exchanges class ApexOmniPerpetual(ApexProMain): def __init__(self) -> None: super().__init__( name=exchanges.APEX_OMNI_PERPETUAL, rest_endpoint='https://omni.apex.exchange/api/v3' ) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Apex/ApexOmniPerpetualTestnet.py ================================================ from .ApexProMain import ApexProMain from jesse.enums import exchanges class ApexOmniPerpetualTestnet(ApexProMain): def __init__(self) -> None: super().__init__( name=exchanges.APEX_OMNI_PERPETUAL_TESTNET, rest_endpoint='https://testnet.omni.apex.exchange/api/v3' ) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Apex/ApexProMain.py ================================================ import requests import jesse.helpers as jh from jesse.modes.import_candles_mode.drivers.interface import CandleExchange from typing import Union from jesse import exceptions from .apex_pro_utils import timeframe_to_interval class ApexProMain(CandleExchange): def __init__(self, name: str, rest_endpoint: str) -> None: from jesse.modes.import_candles_mode.drivers.Binance.BinanceSpot import BinanceSpot super().__init__(name=name, count=200, rate_limit_per_second=10, backup_exchange_class=BinanceSpot) self.name = name self.endpoint = rest_endpoint def get_starting_time(self, symbol: str) -> int: dashless_symbol = jh.dashless_symbol(symbol) payload = { 'symbol': dashless_symbol, 'interval': 'W', 'limit': 200, 'start': 1514811660 } response = requests.get(self.endpoint + '/klines', params=payload) self.validate_response(response) if 'data' not in response.json(): raise exceptions.ExchangeInMaintenance(response.json()['msg']) elif response.json()['data'] == {}: raise exceptions.InvalidSymbol('Exchange does not support the entered symbol. Please enter a valid symbol.') data = response.json()['data'][dashless_symbol] # Reverse the data list data = data[::-1] return int(data[1]['t']) def fetch(self, symbol: str, start_timestamp: int, timeframe: str = '1m') -> Union[list, None]: dashless_symbol = jh.dashless_symbol(symbol) interval = timeframe_to_interval(timeframe) payload = { 'symbol': dashless_symbol, 'interval': interval, 'start': int(start_timestamp / 1000), 'limit': self.count } response = requests.get(self.endpoint + '/klines', params=payload) # check data exist in response.json if 'data' not in response.json(): raise exceptions.ExchangeInMaintenance(response.json()['msg']) elif response.json()['data'] == {}: raise exceptions.InvalidSymbol('Exchange does not support the entered symbol. Please enter a valid symbol.') data = response.json()['data'][dashless_symbol] return [ { 'id': jh.generate_unique_id(), 'exchange': self.name, 'symbol': symbol, 'timeframe': timeframe, 'timestamp': int(d['t']), 'open': float(d['o']), 'close': float(d['c']), 'high': float(d['h']), 'low': float(d['l']), 'volume': float(d['v']) } for d in data ] def get_available_symbols(self) -> list: response = requests.get(self.endpoint + '/symbols') self.validate_response(response) data = response.json()['data'] # Determine which suffix to filter based on exchange name target_suffix = '-USDT' if self.name.startswith('Apex Omni') else '-USDC' # For legacy API response format if 'usdtConfig' not in data: symbols = [] contracts = data['contractConfig']['perpetualContract'] for p in contracts: symbol = p['symbol'] if symbol.endswith(target_suffix): symbols.append(symbol) return list(sorted(symbols)) # For new API response format pairs = [] # For Omni (USDT pairs) if target_suffix == '-USDT': if 'usdtConfig' in data and 'perpetualContract' in data['usdtConfig']: contracts = data['usdtConfig']['perpetualContract'] for p in contracts: symbol = p['symbol'] if symbol.endswith(target_suffix): pairs.append(symbol) # For Pro (USDC pairs) else: if 'usdcConfig' in data and 'perpetualContract' in data['usdcConfig']: contracts = data['usdcConfig']['perpetualContract'] for p in contracts: symbol = p['symbol'] if symbol.endswith(target_suffix): pairs.append(symbol) return list(sorted(pairs)) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Apex/ApexProPerpetual.py ================================================ from .ApexProMain import ApexProMain from jesse.enums import exchanges class ApexProPerpetual(ApexProMain): def __init__(self) -> None: super().__init__( name=exchanges.APEX_PRO_PERPETUAL, rest_endpoint='https://pro.apex.exchange/api/v2' ) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Apex/ApexProPerpetualTestnet.py ================================================ from .ApexProMain import ApexProMain from jesse.enums import exchanges class ApexProPerpetualTestnet(ApexProMain): def __init__(self) -> None: super().__init__( name=exchanges.APEX_PRO_PERPETUAL_TESTNET, rest_endpoint='https://testnet.pro.apex.exchange/api/v2' ) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Apex/__init__.py ================================================ ================================================ FILE: jesse/modes/import_candles_mode/drivers/Apex/apex_pro_utils.py ================================================ from jesse.enums import timeframes def timeframe_to_interval(timeframe: str) -> str: """ Convert a timeframe string to an interval in seconds. """ if timeframe == timeframes.MINUTE_1: return '1' elif timeframe == timeframes.MINUTE_3: return '3' elif timeframe == timeframes.MINUTE_5: return '5' elif timeframe == timeframes.MINUTE_15: return '15' elif timeframe == timeframes.MINUTE_30: return '30' elif timeframe == timeframes.HOUR_1: return '60' elif timeframe == timeframes.HOUR_2: return '120' elif timeframe == timeframes.HOUR_4: return '240' elif timeframe == timeframes.HOUR_6: return '360' elif timeframe == timeframes.HOUR_12: return '720' elif timeframe == timeframes.DAY_1: return 'D' elif timeframe == timeframes.WEEK_1: return 'W' else: raise ValueError('Invalid timeframe: {}'.format(timeframe)) def interval_to_timeframe(interval: str) -> str: """ Convert an interval in seconds to a timeframe string. """ if interval == '1': return timeframes.MINUTE_1 elif interval == '3': return timeframes.MINUTE_3 elif interval == '5': return timeframes.MINUTE_5 elif interval == '15': return timeframes.MINUTE_15 elif interval == '30': return timeframes.MINUTE_30 elif interval == '60': return timeframes.HOUR_1 elif interval == '120': return timeframes.HOUR_2 elif interval == '240': return timeframes.HOUR_4 elif interval == '360': return timeframes.HOUR_6 elif interval == '720': return timeframes.HOUR_12 elif interval == 'D': return timeframes.DAY_1 elif interval == 'W': return timeframes.WEEK_1 else: raise ValueError('Invalid interval: {}'.format(interval)) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Apex/omni_files/__init__.py ================================================ ================================================ FILE: jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk-arm.py ================================================ # This file was autogenerated by some hot garbage in the `uniffi` crate. # Trust me, you don't want to mess with it! # Common helper code. # # Ideally this would live in a separate .py file where it can be unittested etc # in isolation, and perhaps even published as a re-useable package. # # However, it's important that the details of how this helper code works (e.g. the # way that different builtin types are passed across the FFI) exactly match what's # expected by the rust code on the other side of the interface. In practice right # now that means coming from the exact some version of `uniffi` that was used to # compile the rust component. The easiest way to ensure this is to bundle the Python # helpers directly inline like we're doing here. import os import sys import ctypes import enum import struct import contextlib import threading import typing import platform # Used for default argument values _DEFAULT = object() class _UniffiRustBuffer(ctypes.Structure): _fields_ = [ ("capacity", ctypes.c_int32), ("len", ctypes.c_int32), ("data", ctypes.POINTER(ctypes.c_char)), ] @staticmethod def alloc(size): return _rust_call(_UniffiLib.ffi_zklink_sdk_rustbuffer_alloc, size) @staticmethod def reserve(rbuf, additional): return _rust_call(_UniffiLib.ffi_zklink_sdk_rustbuffer_reserve, rbuf, additional) def free(self): return _rust_call(_UniffiLib.ffi_zklink_sdk_rustbuffer_free, self) def __str__(self): return "_UniffiRustBuffer(capacity={}, len={}, data={})".format( self.capacity, self.len, self.data[0:self.len] ) @contextlib.contextmanager def alloc_with_builder(*args): """Context-manger to allocate a buffer using a _UniffiRustBufferBuilder. The allocated buffer will be automatically freed if an error occurs, ensuring that we don't accidentally leak it. """ builder = _UniffiRustBufferBuilder() try: yield builder except: builder.discard() raise @contextlib.contextmanager def consume_with_stream(self): """Context-manager to consume a buffer using a _UniffiRustBufferStream. The _UniffiRustBuffer will be freed once the context-manager exits, ensuring that we don't leak it even if an error occurs. """ try: s = _UniffiRustBufferStream.from_rust_buffer(self) yield s if s.remaining() != 0: raise RuntimeError("junk data left in buffer at end of consume_with_stream") finally: self.free() @contextlib.contextmanager def read_with_stream(self): """Context-manager to read a buffer using a _UniffiRustBufferStream. This is like consume_with_stream, but doesn't free the buffer afterwards. It should only be used with borrowed `_UniffiRustBuffer` data. """ s = _UniffiRustBufferStream.from_rust_buffer(self) yield s if s.remaining() != 0: raise RuntimeError("junk data left in buffer at end of read_with_stream") class _UniffiForeignBytes(ctypes.Structure): _fields_ = [ ("len", ctypes.c_int32), ("data", ctypes.POINTER(ctypes.c_char)), ] def __str__(self): return "_UniffiForeignBytes(len={}, data={})".format(self.len, self.data[0:self.len]) class _UniffiRustBufferStream: """ Helper for structured reading of bytes from a _UniffiRustBuffer """ def __init__(self, data, len): self.data = data self.len = len self.offset = 0 @classmethod def from_rust_buffer(cls, buf): return cls(buf.data, buf.len) def remaining(self): return self.len - self.offset def _unpack_from(self, size, format): if self.offset + size > self.len: raise InternalError("read past end of rust buffer") value = struct.unpack(format, self.data[self.offset:self.offset+size])[0] self.offset += size return value def read(self, size): if self.offset + size > self.len: raise InternalError("read past end of rust buffer") data = self.data[self.offset:self.offset+size] self.offset += size return data def read_i8(self): return self._unpack_from(1, ">b") def read_u8(self): return self._unpack_from(1, ">B") def read_i16(self): return self._unpack_from(2, ">h") def read_u16(self): return self._unpack_from(2, ">H") def read_i32(self): return self._unpack_from(4, ">i") def read_u32(self): return self._unpack_from(4, ">I") def read_i64(self): return self._unpack_from(8, ">q") def read_u64(self): return self._unpack_from(8, ">Q") def read_float(self): v = self._unpack_from(4, ">f") return v def read_double(self): return self._unpack_from(8, ">d") def read_c_size_t(self): return self._unpack_from(ctypes.sizeof(ctypes.c_size_t) , "@N") class _UniffiRustBufferBuilder: """ Helper for structured writing of bytes into a _UniffiRustBuffer. """ def __init__(self): self.rbuf = _UniffiRustBuffer.alloc(16) self.rbuf.len = 0 def finalize(self): rbuf = self.rbuf self.rbuf = None return rbuf def discard(self): if self.rbuf is not None: rbuf = self.finalize() rbuf.free() @contextlib.contextmanager def _reserve(self, num_bytes): if self.rbuf.len + num_bytes > self.rbuf.capacity: self.rbuf = _UniffiRustBuffer.reserve(self.rbuf, num_bytes) yield None self.rbuf.len += num_bytes def _pack_into(self, size, format, value): with self._reserve(size): # XXX TODO: I feel like I should be able to use `struct.pack_into` here but can't figure it out. for i, byte in enumerate(struct.pack(format, value)): self.rbuf.data[self.rbuf.len + i] = byte def write(self, value): with self._reserve(len(value)): for i, byte in enumerate(value): self.rbuf.data[self.rbuf.len + i] = byte def write_i8(self, v): self._pack_into(1, ">b", v) def write_u8(self, v): self._pack_into(1, ">B", v) def write_i16(self, v): self._pack_into(2, ">h", v) def write_u16(self, v): self._pack_into(2, ">H", v) def write_i32(self, v): self._pack_into(4, ">i", v) def write_u32(self, v): self._pack_into(4, ">I", v) def write_i64(self, v): self._pack_into(8, ">q", v) def write_u64(self, v): self._pack_into(8, ">Q", v) def write_float(self, v): self._pack_into(4, ">f", v) def write_double(self, v): self._pack_into(8, ">d", v) def write_c_size_t(self, v): self._pack_into(ctypes.sizeof(ctypes.c_size_t) , "@N", v) # A handful of classes and functions to support the generated data structures. # This would be a good candidate for isolating in its own ffi-support lib. class InternalError(Exception): pass class _UniffiRustCallStatus(ctypes.Structure): """ Error runtime. """ _fields_ = [ ("code", ctypes.c_int8), ("error_buf", _UniffiRustBuffer), ] # These match the values from the uniffi::rustcalls module CALL_SUCCESS = 0 CALL_ERROR = 1 CALL_PANIC = 2 def __str__(self): if self.code == _UniffiRustCallStatus.CALL_SUCCESS: return "_UniffiRustCallStatus(CALL_SUCCESS)" elif self.code == _UniffiRustCallStatus.CALL_ERROR: return "_UniffiRustCallStatus(CALL_ERROR)" elif self.code == _UniffiRustCallStatus.CALL_PANIC: return "_UniffiRustCallStatus(CALL_PANIC)" else: return "_UniffiRustCallStatus()" def _rust_call(fn, *args): # Call a rust function return _rust_call_with_error(None, fn, *args) def _rust_call_with_error(error_ffi_converter, fn, *args): # Call a rust function and handle any errors # # This function is used for rust calls that return Result<> and therefore can set the CALL_ERROR status code. # error_ffi_converter must be set to the _UniffiConverter for the error class that corresponds to the result. call_status = _UniffiRustCallStatus(code=_UniffiRustCallStatus.CALL_SUCCESS, error_buf=_UniffiRustBuffer(0, 0, None)) args_with_error = args + (ctypes.byref(call_status),) result = fn(*args_with_error) _uniffi_check_call_status(error_ffi_converter, call_status) return result def _uniffi_check_call_status(error_ffi_converter, call_status): if call_status.code == _UniffiRustCallStatus.CALL_SUCCESS: pass elif call_status.code == _UniffiRustCallStatus.CALL_ERROR: if error_ffi_converter is None: call_status.error_buf.free() raise InternalError("_rust_call_with_error: CALL_ERROR, but error_ffi_converter is None") else: raise error_ffi_converter.lift(call_status.error_buf) elif call_status.code == _UniffiRustCallStatus.CALL_PANIC: # When the rust code sees a panic, it tries to construct a _UniffiRustBuffer # with the message. But if that code panics, then it just sends back # an empty buffer. if call_status.error_buf.len > 0: msg = _UniffiConverterString.lift(call_status.error_buf) else: msg = "Unknown rust panic" raise InternalError(msg) else: raise InternalError("Invalid _UniffiRustCallStatus code: {}".format( call_status.code)) # A function pointer for a callback as defined by UniFFI. # Rust definition `fn(handle: u64, method: u32, args: _UniffiRustBuffer, buf_ptr: *mut _UniffiRustBuffer) -> int` _UNIFFI_FOREIGN_CALLBACK_T = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.c_ulonglong, ctypes.c_ulong, ctypes.POINTER(ctypes.c_char), ctypes.c_int, ctypes.POINTER(_UniffiRustBuffer)) # UniFFI future continuation _UNIFFI_FUTURE_CONTINUATION_T = ctypes.CFUNCTYPE(None, ctypes.c_size_t, ctypes.c_int8) class _UniffiPointerManagerCPython: """ Manage giving out pointers to Python objects on CPython This class is used to generate opaque pointers that reference Python objects to pass to Rust. It assumes a CPython platform. See _UniffiPointerManagerGeneral for the alternative. """ def new_pointer(self, obj): """ Get a pointer for an object as a ctypes.c_size_t instance Each call to new_pointer() must be balanced with exactly one call to release_pointer() This returns a ctypes.c_size_t. This is always the same size as a pointer and can be interchanged with pointers for FFI function arguments and return values. """ # IncRef the object since we're going to pass a pointer to Rust ctypes.pythonapi.Py_IncRef(ctypes.py_object(obj)) # id() is the object address on CPython # (https://docs.python.org/3/library/functions.html#id) return id(obj) def release_pointer(self, address): py_obj = ctypes.cast(address, ctypes.py_object) obj = py_obj.value ctypes.pythonapi.Py_DecRef(py_obj) return obj def lookup(self, address): return ctypes.cast(address, ctypes.py_object).value class _UniffiPointerManagerGeneral: """ Manage giving out pointers to Python objects on non-CPython platforms This has the same API as _UniffiPointerManagerCPython, but doesn't assume we're running on CPython and is slightly slower. Instead of using real pointers, it maps integer values to objects and returns the keys as c_size_t values. """ def __init__(self): self._map = {} self._lock = threading.Lock() self._current_handle = 0 def new_pointer(self, obj): with self._lock: handle = self._current_handle self._current_handle += 1 self._map[handle] = obj return handle def release_pointer(self, handle): with self._lock: return self._map.pop(handle) def lookup(self, handle): with self._lock: return self._map[handle] # Pick an pointer manager implementation based on the platform if platform.python_implementation() == 'CPython': _UniffiPointerManager = _UniffiPointerManagerCPython # type: ignore else: _UniffiPointerManager = _UniffiPointerManagerGeneral # type: ignore # Types conforming to `_UniffiConverterPrimitive` pass themselves directly over the FFI. class _UniffiConverterPrimitive: @classmethod def check(cls, value): return value @classmethod def lift(cls, value): return value @classmethod def lower(cls, value): return cls.lowerUnchecked(cls.check(value)) @classmethod def lowerUnchecked(cls, value): return value @classmethod def write(cls, value, buf): cls.write_unchecked(cls.check(value), buf) class _UniffiConverterPrimitiveInt(_UniffiConverterPrimitive): @classmethod def check(cls, value): try: value = value.__index__() except Exception: raise TypeError("'{}' object cannot be interpreted as an integer".format(type(value).__name__)) if not isinstance(value, int): raise TypeError("__index__ returned non-int (type {})".format(type(value).__name__)) if not cls.VALUE_MIN <= value < cls.VALUE_MAX: raise ValueError("{} requires {} <= value < {}".format(cls.CLASS_NAME, cls.VALUE_MIN, cls.VALUE_MAX)) return super().check(value) class _UniffiConverterPrimitiveFloat(_UniffiConverterPrimitive): @classmethod def check(cls, value): try: value = value.__float__() except Exception: raise TypeError("must be real number, not {}".format(type(value).__name__)) if not isinstance(value, float): raise TypeError("__float__ returned non-float (type {})".format(type(value).__name__)) return super().check(value) # Helper class for wrapper types that will always go through a _UniffiRustBuffer. # Classes should inherit from this and implement the `read` and `write` static methods. class _UniffiConverterRustBuffer: @classmethod def lift(cls, rbuf): with rbuf.consume_with_stream() as stream: return cls.read(stream) @classmethod def lower(cls, value): with _UniffiRustBuffer.alloc_with_builder() as builder: cls.write(value, builder) return builder.finalize() # Contains loading, initialization code, and the FFI Function declarations. # Define some ctypes FFI types that we use in the library """ ctypes type for the foreign executor callback. This is a built-in interface for scheduling tasks Args: executor: opaque c_size_t value representing the eventloop delay: delay in ms task: function pointer to the task callback task_data: void pointer to the task callback data Normally we should call task(task_data) after the detail. However, when task is NULL this indicates that Rust has dropped the ForeignExecutor and we should decrease the EventLoop refcount. """ _UNIFFI_FOREIGN_EXECUTOR_CALLBACK_T = ctypes.CFUNCTYPE(ctypes.c_int8, ctypes.c_size_t, ctypes.c_uint32, ctypes.c_void_p, ctypes.c_void_p) """ Function pointer for a Rust task, which a callback function that takes a opaque pointer """ _UNIFFI_RUST_TASK = ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.c_int8) def _uniffi_future_callback_t(return_type): """ Factory function to create callback function types for async functions """ return ctypes.CFUNCTYPE(None, ctypes.c_size_t, return_type, _UniffiRustCallStatus) def _uniffi_load_indirect(): """ This is how we find and load the dynamic library provided by the component. For now we just look it up by name. """ if sys.platform == "darwin": libname = "lib{}.dylib" elif sys.platform.startswith("win"): # As of python3.8, ctypes does not seem to search $PATH when loading DLLs. # We could use `os.add_dll_directory` to configure the search path, but # it doesn't feel right to mess with application-wide settings. Let's # assume that the `.dll` is next to the `.py` file and load by full path. libname = os.path.join( os.path.dirname(__file__), "{}.dll", ) else: # Anything else must be an ELF platform - Linux, *BSD, Solaris/illumos libname = "lib{}.so" libname = libname.format("zklink_sdk") path = os.path.join(os.path.dirname(__file__), libname) lib = ctypes.cdll.LoadLibrary(path) return lib def _uniffi_check_contract_api_version(lib): # Get the bindings contract version from our ComponentInterface bindings_contract_version = 24 # Get the scaffolding contract version by calling the into the dylib scaffolding_contract_version = lib.ffi_zklink_sdk_uniffi_contract_version() if bindings_contract_version != scaffolding_contract_version: raise InternalError("UniFFI contract version mismatch: try cleaning and rebuilding your project") def _uniffi_check_api_checksums(lib): if lib.uniffi_zklink_sdk_checksum_func_create_signed_change_pubkey() != 63374: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_func_eth_signature_of_change_pubkey() != 32759: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_func_get_public_key_hash() != 58294: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_func_verify_musig() != 61749: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_func_zklink_main_net_url() != 63488: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_func_zklink_test_net_url() != 4933: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_create_signed_tx() != 63490: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_bytes() != 44684: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_signature() != 16515: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_signature_valid() != 2829: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_valid() != 32196: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_json_str() != 3439: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_to_zklink_tx() != 64239: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_tx_hash() != 35167: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_get_bytes() != 1938: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_get_signature() != 51549: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_is_onchain() != 10977: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_is_signature_valid() != 25271: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_is_valid() != 31315: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_json_str() != 43695: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_to_zklink_tx() != 42088: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_tx_hash() != 26881: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contract_create_signed_contract() != 3720: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contract_get_bytes() != 6953: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contract_get_signature() != 60348: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contract_is_long() != 52375: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contract_is_short() != 24664: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contract_is_signature_valid() != 33071: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_create_signed_tx() != 44741: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_get_bytes() != 12250: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_get_signature() != 41128: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_is_signature_valid() != 33576: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_is_valid() != 55586: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_json_str() != 42918: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_to_zklink_tx() != 43065: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_tx_hash() != 3288: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_deposit_get_bytes() != 46958: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_deposit_json_str() != 17811: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_deposit_tx_hash() != 37358: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ethsigner_get_address() != 11362: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ethsigner_sign_message() != 14536: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_create_signed_tx() != 17267: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_get_bytes() != 15553: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_get_signature() != 48117: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_is_signature_valid() != 6534: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_is_valid() != 46100: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_json_str() != 4050: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_to_zklink_tx() != 32455: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_tx_hash() != 45462: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_fullexit_get_bytes() != 52461: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_fullexit_is_valid() != 57198: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_fullexit_json_str() != 24199: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_fullexit_to_zklink_tx() != 51607: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_fullexit_tx_hash() != 48511: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_create_signed_tx() != 38824: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_get_bytes() != 63867: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_get_signature() != 29468: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_is_signature_valid() != 50669: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_is_valid() != 4189: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_json_str() != 55097: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_to_zklink_tx() != 27295: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_tx_hash() != 26610: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_create_signed_tx() != 18143: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_get_bytes() != 1134: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_get_signature() != 31505: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_is_signature_valid() != 8478: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_is_valid() != 2828: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_json_str() != 62587: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_to_zklink_tx() != 30414: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_tx_hash() != 34918: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_create_signed_order() != 18530: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_get_bytes() != 51161: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_get_eth_sign_msg() != 11725: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_get_signature() != 46876: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_is_signature_valid() != 6764: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_is_valid() != 56951: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_json_str() != 20284: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_create_signed_tx() != 27728: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_get_bytes() != 13177: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_get_signature() != 35878: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_is_signature_valid() != 54946: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_is_valid() != 51995: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_json_str() != 33830: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_to_zklink_tx() != 23870: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_tx_hash() != 3162: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_auto_deleveraging() != 3485: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_create2data_auth() != 39808: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_eth_ecdsa_auth() != 63567: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_onchain_auth_data() != 26921: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_contract_matching() != 27932: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_forced_exit() != 37862: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_funding() != 31213: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_liquidation() != 56257: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_order_matching() != 19982: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_transfer() != 51577: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_withdraw() != 56851: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_starksigner_sign_message() != 27027: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_create_signed_tx() != 17446: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_eth_signature() != 18454: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_get_bytes() != 56287: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_get_eth_sign_msg() != 46393: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_get_signature() != 55226: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_is_signature_valid() != 31540: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_is_valid() != 46475: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_json_str() != 28252: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_to_zklink_tx() != 64899: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_tx_hash() != 16259: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_get_bytes() != 40576: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_is_valid() != 7961: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_json_str() != 48653: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_to_zklink_tx() != 40091: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_tx_hash() != 4261: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_create_signed_tx() != 15886: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_eth_signature() != 28825: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_get_bytes() != 15999: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_get_eth_sign_msg() != 27813: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_get_signature() != 56920: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_is_signature_valid() != 9636: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_is_valid() != 32004: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_json_str() != 3719: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_to_zklink_tx() != 26934: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_tx_hash() != 25800: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_zklinksigner_public_key() != 11211: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_zklinksigner_sign_musig() != 46475: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_autodeleveraging_new() != 10122: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_changepubkey_new() != 10607: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_contract_new() != 32968: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_contractmatching_new() != 210: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_deposit_new() != 2732: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_ethsigner_new() != 58738: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_forcedexit_new() != 30328: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_fullexit_new() != 27234: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_funding_new() != 62515: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_liquidation_new() != 56634: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_order_new() != 13958: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_ordermatching_new() != 5934: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_signer_new() != 24354: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_starksigner_new() != 61581: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_starksigner_new_from_hex_str() != 57960: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_transfer_new() != 31981: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_typeddata_new() != 46773: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_updateglobalvar_new() != 31819: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_withdraw_new() != 47491: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new() != 62411: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_bytes() != 17619: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_eth_signer() != 60210: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_stark_signer() != 21809: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_seed() != 47514: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") # A ctypes library to expose the extern-C FFI definitions. # This is an implementation detail which will be called internally by the public API. _UniffiLib = _uniffi_load_indirect() _UniffiLib.uniffi_zklink_sdk_fn_free_autodeleveraging.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_autodeleveraging.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_autodeleveraging_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_autodeleveraging_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_changepubkey.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_changepubkey.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_changepubkey_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_changepubkey_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_onchain.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_onchain.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_contract.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_contract.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_contract_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_contract_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_contract_create_signed_contract.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contract_create_signed_contract.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_long.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_long.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_short.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_short.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_free_contractmatching.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_contractmatching.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_contractmatching_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_contractmatching_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_deposit.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_deposit.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_deposit_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_deposit_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_deposit_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_deposit_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_deposit_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_deposit_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_deposit_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_deposit_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_ethsigner.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_ethsigner.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_ethsigner_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_ethsigner_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_get_address.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_get_address.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_sign_message.argtypes = ( ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_sign_message.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_forcedexit.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_forcedexit.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_forcedexit_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_forcedexit_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_fullexit.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_fullexit.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_fullexit_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_fullexit_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_funding.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_funding.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_funding_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_funding_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_funding_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_funding_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_funding_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_funding_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_liquidation.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_liquidation.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_liquidation_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_liquidation_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_order.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_order.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_order_new.argtypes = ( ctypes.c_uint32, ctypes.c_uint8, ctypes.c_uint32, ctypes.c_uint32, ctypes.c_uint32, ctypes.c_uint32, _UniffiRustBuffer, _UniffiRustBuffer, ctypes.c_int8, ctypes.c_int8, ctypes.c_uint8, ctypes.c_uint8, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_order_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_order_create_signed_order.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_create_signed_order.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_order_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_order_get_eth_sign_msg.argtypes = ( ctypes.c_void_p, _UniffiRustBuffer, _UniffiRustBuffer, ctypes.c_uint8, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_get_eth_sign_msg.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_order_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_order_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_order_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_order_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_ordermatching.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_ordermatching.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_ordermatching_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_ordermatching_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_signer.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_signer.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_signer_new.argtypes = ( _UniffiRustBuffer, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_signer_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_auto_deleveraging.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_auto_deleveraging.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_create2data_auth.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_create2data_auth.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_onchain_auth_data.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_onchain_auth_data.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_contract_matching.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_contract_matching.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_forced_exit.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_forced_exit.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_funding.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_funding.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_liquidation.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_liquidation.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_order_matching.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_order_matching.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_transfer.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, _UniffiRustBuffer, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_transfer.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_withdraw.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, _UniffiRustBuffer, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_withdraw.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_starksigner.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_starksigner.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new.argtypes = ( ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new_from_hex_str.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new_from_hex_str.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_starksigner_sign_message.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_starksigner_sign_message.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_transfer.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_transfer.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_transfer_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_transfer_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_eth_signature.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_eth_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_eth_sign_msg.argtypes = ( ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_eth_sign_msg.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_typeddata.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_typeddata.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_typeddata_new.argtypes = ( _UniffiRustBuffer, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_typeddata_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_free_updateglobalvar.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_updateglobalvar.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_updateglobalvar_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_updateglobalvar_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_withdraw.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_withdraw.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_withdraw_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_withdraw_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_eth_signature.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_eth_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_eth_sign_msg.argtypes = ( ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_eth_sign_msg.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_zklinksigner.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_zklinksigner.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new.argtypes = ( ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_bytes.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_bytes.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_eth_signer.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_eth_signer.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_stark_signer.argtypes = ( _UniffiRustBuffer, _UniffiRustBuffer, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_stark_signer.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_seed.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_seed.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_public_key.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_public_key.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_sign_musig.argtypes = ( ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_sign_musig.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_func_create_signed_change_pubkey.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_create_signed_change_pubkey.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_func_eth_signature_of_change_pubkey.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_eth_signature_of_change_pubkey.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_func_get_public_key_hash.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_get_public_key_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_func_verify_musig.argtypes = ( _UniffiRustBuffer, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_verify_musig.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_func_zklink_main_net_url.argtypes = ( ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_zklink_main_net_url.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_func_zklink_test_net_url.argtypes = ( ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_zklink_test_net_url.restype = _UniffiRustBuffer _UniffiLib.ffi_zklink_sdk_rustbuffer_alloc.argtypes = ( ctypes.c_int32, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rustbuffer_alloc.restype = _UniffiRustBuffer _UniffiLib.ffi_zklink_sdk_rustbuffer_from_bytes.argtypes = ( _UniffiForeignBytes, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rustbuffer_from_bytes.restype = _UniffiRustBuffer _UniffiLib.ffi_zklink_sdk_rustbuffer_free.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rustbuffer_free.restype = None _UniffiLib.ffi_zklink_sdk_rustbuffer_reserve.argtypes = ( _UniffiRustBuffer, ctypes.c_int32, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rustbuffer_reserve.restype = _UniffiRustBuffer _UniffiLib.ffi_zklink_sdk_rust_future_continuation_callback_set.argtypes = ( _UNIFFI_FUTURE_CONTINUATION_T, ) _UniffiLib.ffi_zklink_sdk_rust_future_continuation_callback_set.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_poll_u8.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_u8.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u8.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u8.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_u8.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_u8.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_u8.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_u8.restype = ctypes.c_uint8 _UniffiLib.ffi_zklink_sdk_rust_future_poll_i8.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_i8.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i8.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i8.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_i8.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_i8.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_i8.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_i8.restype = ctypes.c_int8 _UniffiLib.ffi_zklink_sdk_rust_future_poll_u16.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_u16.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u16.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u16.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_u16.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_u16.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_u16.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_u16.restype = ctypes.c_uint16 _UniffiLib.ffi_zklink_sdk_rust_future_poll_i16.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_i16.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i16.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i16.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_i16.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_i16.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_i16.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_i16.restype = ctypes.c_int16 _UniffiLib.ffi_zklink_sdk_rust_future_poll_u32.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_u32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u32.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_u32.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_u32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_u32.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_u32.restype = ctypes.c_uint32 _UniffiLib.ffi_zklink_sdk_rust_future_poll_i32.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_i32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i32.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_i32.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_i32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_i32.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_i32.restype = ctypes.c_int32 _UniffiLib.ffi_zklink_sdk_rust_future_poll_u64.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_u64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u64.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_u64.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_u64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_u64.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_u64.restype = ctypes.c_uint64 _UniffiLib.ffi_zklink_sdk_rust_future_poll_i64.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_i64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i64.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_i64.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_i64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_i64.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_i64.restype = ctypes.c_int64 _UniffiLib.ffi_zklink_sdk_rust_future_poll_f32.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_f32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_f32.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_f32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_f32.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_f32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_f32.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_f32.restype = ctypes.c_float _UniffiLib.ffi_zklink_sdk_rust_future_poll_f64.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_f64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_f64.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_f64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_f64.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_f64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_f64.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_f64.restype = ctypes.c_double _UniffiLib.ffi_zklink_sdk_rust_future_poll_pointer.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_pointer.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_pointer.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_pointer.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_pointer.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_pointer.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_pointer.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_pointer.restype = ctypes.c_void_p _UniffiLib.ffi_zklink_sdk_rust_future_poll_rust_buffer.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_rust_buffer.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_rust_buffer.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_rust_buffer.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_rust_buffer.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_rust_buffer.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_rust_buffer.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_rust_buffer.restype = _UniffiRustBuffer _UniffiLib.ffi_zklink_sdk_rust_future_poll_void.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_void.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_void.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_void.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_void.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_void.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_void.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_void.restype = None _UniffiLib.uniffi_zklink_sdk_checksum_func_create_signed_change_pubkey.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_create_signed_change_pubkey.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_func_eth_signature_of_change_pubkey.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_eth_signature_of_change_pubkey.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_func_get_public_key_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_get_public_key_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_func_verify_musig.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_verify_musig.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_main_net_url.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_main_net_url.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_test_net_url.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_test_net_url.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_onchain.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_onchain.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_create_signed_contract.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_create_signed_contract.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_long.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_long.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_short.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_short.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_get_address.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_get_address.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_sign_message.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_sign_message.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_create_signed_order.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_create_signed_order.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_eth_sign_msg.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_eth_sign_msg.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_auto_deleveraging.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_auto_deleveraging.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_create2data_auth.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_create2data_auth.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_onchain_auth_data.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_onchain_auth_data.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_contract_matching.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_contract_matching.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_forced_exit.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_forced_exit.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_funding.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_funding.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_liquidation.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_liquidation.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_order_matching.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_order_matching.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_transfer.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_transfer.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_withdraw.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_withdraw.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_starksigner_sign_message.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_starksigner_sign_message.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_eth_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_eth_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_eth_sign_msg.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_eth_sign_msg.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_eth_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_eth_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_eth_sign_msg.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_eth_sign_msg.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_public_key.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_public_key.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_sign_musig.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_sign_musig.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_autodeleveraging_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_autodeleveraging_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_changepubkey_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_changepubkey_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_contract_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_contract_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_contractmatching_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_contractmatching_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_deposit_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_deposit_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_ethsigner_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_ethsigner_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_forcedexit_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_forcedexit_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_fullexit_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_fullexit_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_funding_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_funding_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_liquidation_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_liquidation_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_order_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_order_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_ordermatching_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_ordermatching_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_signer_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_signer_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new_from_hex_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new_from_hex_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_transfer_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_transfer_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_typeddata_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_typeddata_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_updateglobalvar_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_updateglobalvar_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_withdraw_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_withdraw_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_eth_signer.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_eth_signer.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_stark_signer.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_stark_signer.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_seed.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_seed.restype = ctypes.c_uint16 _UniffiLib.ffi_zklink_sdk_uniffi_contract_version.argtypes = ( ) _UniffiLib.ffi_zklink_sdk_uniffi_contract_version.restype = ctypes.c_uint32 _uniffi_check_contract_api_version(_UniffiLib) _uniffi_check_api_checksums(_UniffiLib) # Async support # Public interface members begin here. class _UniffiConverterUInt8(_UniffiConverterPrimitiveInt): CLASS_NAME = "u8" VALUE_MIN = 0 VALUE_MAX = 2**8 @staticmethod def read(buf): return buf.read_u8() @staticmethod def write_unchecked(value, buf): buf.write_u8(value) class _UniffiConverterUInt16(_UniffiConverterPrimitiveInt): CLASS_NAME = "u16" VALUE_MIN = 0 VALUE_MAX = 2**16 @staticmethod def read(buf): return buf.read_u16() @staticmethod def write_unchecked(value, buf): buf.write_u16(value) class _UniffiConverterInt16(_UniffiConverterPrimitiveInt): CLASS_NAME = "i16" VALUE_MIN = -2**15 VALUE_MAX = 2**15 @staticmethod def read(buf): return buf.read_i16() @staticmethod def write_unchecked(value, buf): buf.write_i16(value) class _UniffiConverterUInt32(_UniffiConverterPrimitiveInt): CLASS_NAME = "u32" VALUE_MIN = 0 VALUE_MAX = 2**32 @staticmethod def read(buf): return buf.read_u32() @staticmethod def write_unchecked(value, buf): buf.write_u32(value) class _UniffiConverterUInt64(_UniffiConverterPrimitiveInt): CLASS_NAME = "u64" VALUE_MIN = 0 VALUE_MAX = 2**64 @staticmethod def read(buf): return buf.read_u64() @staticmethod def write_unchecked(value, buf): buf.write_u64(value) class _UniffiConverterBool(_UniffiConverterPrimitive): @classmethod def check(cls, value): return not not value @classmethod def read(cls, buf): return cls.lift(buf.read_u8()) @classmethod def write_unchecked(cls, value, buf): buf.write_u8(value) @staticmethod def lift(value): return value != 0 class _UniffiConverterString: @staticmethod def check(value): if not isinstance(value, str): raise TypeError("argument must be str, not {}".format(type(value).__name__)) return value @staticmethod def read(buf): size = buf.read_i32() if size < 0: raise InternalError("Unexpected negative string length") utf8_bytes = buf.read(size) return utf8_bytes.decode("utf-8") @staticmethod def write(value, buf): value = _UniffiConverterString.check(value) utf8_bytes = value.encode("utf-8") buf.write_i32(len(utf8_bytes)) buf.write(utf8_bytes) @staticmethod def lift(buf): with buf.consume_with_stream() as stream: return stream.read(stream.remaining()).decode("utf-8") @staticmethod def lower(value): value = _UniffiConverterString.check(value) with _UniffiRustBuffer.alloc_with_builder() as builder: builder.write(value.encode("utf-8")) return builder.finalize() class AutoDeleveraging: _pointer: ctypes.c_void_p def __init__(self, builder: "AutoDeleveragingBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_autodeleveraging_new, _UniffiConverterTypeAutoDeleveragingBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_autodeleveraging, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "AutoDeleveraging": return _UniffiConverterTypeAutoDeleveraging.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_signature,self._pointer,) ) def is_signature_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_signature_valid,self._pointer,) ) def is_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_valid,self._pointer,) ) def json_str(self, ): return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_tx_hash,self._pointer,) ) class _UniffiConverterTypeAutoDeleveraging: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, AutoDeleveraging): raise TypeError("Expected AutoDeleveraging instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return AutoDeleveraging._make_instance_(value) @staticmethod def lower(value): return value._pointer class ChangePubKey: _pointer: ctypes.c_void_p def __init__(self, builder: "ChangePubKeyBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_changepubkey_new, _UniffiConverterTypeChangePubKeyBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_changepubkey, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_signature,self._pointer,) ) def is_onchain(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_onchain,self._pointer,) ) def is_signature_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_signature_valid,self._pointer,) ) def is_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_valid,self._pointer,) ) def json_str(self, ): return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_tx_hash,self._pointer,) ) class _UniffiConverterTypeChangePubKey: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, ChangePubKey): raise TypeError("Expected ChangePubKey instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return ChangePubKey._make_instance_(value) @staticmethod def lower(value): return value._pointer class Contract: _pointer: ctypes.c_void_p def __init__(self, builder: "ContractBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_contract_new, _UniffiConverterTypeContractBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_contract, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_contract(self, zklink_signer: "ZkLinkSigner") -> "Contract": return _UniffiConverterTypeContract.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_contract_create_signed_contract,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(zklink_signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_signature,self._pointer,) ) def is_long(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_long,self._pointer,) ) def is_short(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_short,self._pointer,) ) def is_signature_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_signature_valid,self._pointer,) ) class _UniffiConverterTypeContract: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Contract): raise TypeError("Expected Contract instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Contract._make_instance_(value) @staticmethod def lower(value): return value._pointer class ContractMatching: _pointer: ctypes.c_void_p def __init__(self, builder: "ContractMatchingBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_contractmatching_new, _UniffiConverterTypeContractMatchingBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_contractmatching, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "ContractMatching": return _UniffiConverterTypeContractMatching.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_signature,self._pointer,) ) def is_signature_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_signature_valid,self._pointer,) ) def is_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_valid,self._pointer,) ) def json_str(self, ): return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_tx_hash,self._pointer,) ) class _UniffiConverterTypeContractMatching: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, ContractMatching): raise TypeError("Expected ContractMatching instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return ContractMatching._make_instance_(value) @staticmethod def lower(value): return value._pointer class Deposit: _pointer: ctypes.c_void_p def __init__(self, builder: "DepositBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_deposit_new, _UniffiConverterTypeDepositBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_deposit, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_get_bytes,self._pointer,) ) def json_str(self, ): return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_json_str,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_tx_hash,self._pointer,) ) class _UniffiConverterTypeDeposit: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Deposit): raise TypeError("Expected Deposit instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Deposit._make_instance_(value) @staticmethod def lower(value): return value._pointer class EthSigner: _pointer: ctypes.c_void_p def __init__(self, private_key: str): self._pointer = _rust_call_with_error(_UniffiConverterTypeEthSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_ethsigner_new, _UniffiConverterString.lower(private_key)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_ethsigner, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_address(self, ) -> "Address": return _UniffiConverterTypeAddress.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_get_address,self._pointer,) ) def sign_message(self, message: "typing.List[int]") -> "PackedEthSignature": return _UniffiConverterTypePackedEthSignature.lift( _rust_call_with_error( _UniffiConverterTypeEthSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_sign_message,self._pointer, _UniffiConverterSequenceUInt8.lower(message)) ) class _UniffiConverterTypeEthSigner: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, EthSigner): raise TypeError("Expected EthSigner instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return EthSigner._make_instance_(value) @staticmethod def lower(value): return value._pointer class ForcedExit: _pointer: ctypes.c_void_p def __init__(self, builder: "ForcedExitBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_forcedexit_new, _UniffiConverterTypeForcedExitBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_forcedexit, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "ForcedExit": return _UniffiConverterTypeForcedExit.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_signature,self._pointer,) ) def is_signature_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_signature_valid,self._pointer,) ) def is_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_valid,self._pointer,) ) def json_str(self, ): return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_tx_hash,self._pointer,) ) class _UniffiConverterTypeForcedExit: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, ForcedExit): raise TypeError("Expected ForcedExit instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return ForcedExit._make_instance_(value) @staticmethod def lower(value): return value._pointer class FullExit: _pointer: ctypes.c_void_p def __init__(self, builder: "FullExitBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_fullexit_new, _UniffiConverterTypeFullExitBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_fullexit, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_get_bytes,self._pointer,) ) def is_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_is_valid,self._pointer,) ) def json_str(self, ): return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_tx_hash,self._pointer,) ) class _UniffiConverterTypeFullExit: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, FullExit): raise TypeError("Expected FullExit instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return FullExit._make_instance_(value) @staticmethod def lower(value): return value._pointer class Funding: _pointer: ctypes.c_void_p def __init__(self, builder: "FundingBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_funding_new, _UniffiConverterTypeFundingBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_funding, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "Funding": return _UniffiConverterTypeFunding.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_funding_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_signature,self._pointer,) ) def is_signature_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_signature_valid,self._pointer,) ) def is_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_valid,self._pointer,) ) def json_str(self, ): return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_tx_hash,self._pointer,) ) class _UniffiConverterTypeFunding: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Funding): raise TypeError("Expected Funding instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Funding._make_instance_(value) @staticmethod def lower(value): return value._pointer class Liquidation: _pointer: ctypes.c_void_p def __init__(self, builder: "LiquidationBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_liquidation_new, _UniffiConverterTypeLiquidationBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_liquidation, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "Liquidation": return _UniffiConverterTypeLiquidation.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_signature,self._pointer,) ) def is_signature_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_signature_valid,self._pointer,) ) def is_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_valid,self._pointer,) ) def json_str(self, ): return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_tx_hash,self._pointer,) ) class _UniffiConverterTypeLiquidation: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Liquidation): raise TypeError("Expected Liquidation instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Liquidation._make_instance_(value) @staticmethod def lower(value): return value._pointer class Order: _pointer: ctypes.c_void_p def __init__(self, account_id: "AccountId",sub_account_id: "SubAccountId",slot_id: "SlotId",nonce: "Nonce",base_token_id: "TokenId",quote_token_id: "TokenId",amount: "BigUint",price: "BigUint",is_sell: bool,has_subsidy: bool,maker_fee_rate: "int",taker_fee_rate: "int",signature: "typing.Optional[ZkLinkSignature]"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_order_new, _UniffiConverterTypeAccountId.lower(account_id), _UniffiConverterTypeSubAccountId.lower(sub_account_id), _UniffiConverterTypeSlotId.lower(slot_id), _UniffiConverterTypeNonce.lower(nonce), _UniffiConverterTypeTokenId.lower(base_token_id), _UniffiConverterTypeTokenId.lower(quote_token_id), _UniffiConverterTypeBigUint.lower(amount), _UniffiConverterTypeBigUint.lower(price), _UniffiConverterBool.lower(is_sell), _UniffiConverterBool.lower(has_subsidy), _UniffiConverterUInt8.lower(maker_fee_rate), _UniffiConverterUInt8.lower(taker_fee_rate), _UniffiConverterOptionalTypeZkLinkSignature.lower(signature)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_order, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_order(self, zklink_signer: "ZkLinkSigner") -> "Order": return _UniffiConverterTypeOrder.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_order_create_signed_order,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(zklink_signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_bytes,self._pointer,) ) def get_eth_sign_msg(self, quote_token: str,based_token: str,decimals: "int"): return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_eth_sign_msg,self._pointer, _UniffiConverterString.lower(quote_token), _UniffiConverterString.lower(based_token), _UniffiConverterUInt8.lower(decimals)) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_signature,self._pointer,) ) def is_signature_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_signature_valid,self._pointer,) ) def is_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_valid,self._pointer,) ) def json_str(self, ): return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_json_str,self._pointer,) ) class _UniffiConverterTypeOrder: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Order): raise TypeError("Expected Order instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Order._make_instance_(value) @staticmethod def lower(value): return value._pointer class OrderMatching: _pointer: ctypes.c_void_p def __init__(self, builder: "OrderMatchingBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_ordermatching_new, _UniffiConverterTypeOrderMatchingBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_ordermatching, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "OrderMatching": return _UniffiConverterTypeOrderMatching.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_signature,self._pointer,) ) def is_signature_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_signature_valid,self._pointer,) ) def is_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_valid,self._pointer,) ) def json_str(self, ): return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_tx_hash,self._pointer,) ) class _UniffiConverterTypeOrderMatching: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, OrderMatching): raise TypeError("Expected OrderMatching instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return OrderMatching._make_instance_(value) @staticmethod def lower(value): return value._pointer class Signer: _pointer: ctypes.c_void_p def __init__(self, private_key: str,l1_type: "L1SignerType"): self._pointer = _rust_call_with_error(_UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_signer_new, _UniffiConverterString.lower(private_key), _UniffiConverterTypeL1SignerType.lower(l1_type)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_signer, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def sign_auto_deleveraging(self, tx: "AutoDeleveraging") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_auto_deleveraging,self._pointer, _UniffiConverterTypeAutoDeleveraging.lower(tx)) ) def sign_change_pubkey_with_create2data_auth(self, tx: "ChangePubKey",crate2data: "Create2Data") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_create2data_auth,self._pointer, _UniffiConverterTypeChangePubKey.lower(tx), _UniffiConverterTypeCreate2Data.lower(crate2data)) ) def sign_change_pubkey_with_eth_ecdsa_auth(self, tx: "ChangePubKey") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_eth_ecdsa_auth,self._pointer, _UniffiConverterTypeChangePubKey.lower(tx)) ) def sign_change_pubkey_with_onchain_auth_data(self, tx: "ChangePubKey") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_onchain_auth_data,self._pointer, _UniffiConverterTypeChangePubKey.lower(tx)) ) def sign_contract_matching(self, tx: "ContractMatching") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_contract_matching,self._pointer, _UniffiConverterTypeContractMatching.lower(tx)) ) def sign_forced_exit(self, tx: "ForcedExit") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_forced_exit,self._pointer, _UniffiConverterTypeForcedExit.lower(tx)) ) def sign_funding(self, tx: "Funding") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_funding,self._pointer, _UniffiConverterTypeFunding.lower(tx)) ) def sign_liquidation(self, tx: "Liquidation") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_liquidation,self._pointer, _UniffiConverterTypeLiquidation.lower(tx)) ) def sign_order_matching(self, tx: "OrderMatching") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_order_matching,self._pointer, _UniffiConverterTypeOrderMatching.lower(tx)) ) def sign_transfer(self, tx: "Transfer",token_sybmol: str,chain_id: "typing.Optional[str]",addr: "typing.Optional[str]") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_transfer,self._pointer, _UniffiConverterTypeTransfer.lower(tx), _UniffiConverterString.lower(token_sybmol), _UniffiConverterOptionalString.lower(chain_id), _UniffiConverterOptionalString.lower(addr)) ) def sign_withdraw(self, tx: "Withdraw",l2_source_token_symbol: str,chain_id: "typing.Optional[str]",addr: "typing.Optional[str]") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_withdraw,self._pointer, _UniffiConverterTypeWithdraw.lower(tx), _UniffiConverterString.lower(l2_source_token_symbol), _UniffiConverterOptionalString.lower(chain_id), _UniffiConverterOptionalString.lower(addr)) ) class _UniffiConverterTypeSigner: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Signer): raise TypeError("Expected Signer instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Signer._make_instance_(value) @staticmethod def lower(value): return value._pointer class StarkSigner: _pointer: ctypes.c_void_p def __init__(self, ): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new,) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_starksigner, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst @classmethod def new_from_hex_str(cls, hex_str: str): # Call the (fallible) function before creating any half-baked object instances. pointer = _rust_call_with_error(_UniffiConverterTypeStarkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new_from_hex_str, _UniffiConverterString.lower(hex_str)) return cls._make_instance_(pointer) def sign_message(self, typed_data: "TypedData",addr: str) -> "StarkEip712Signature": return _UniffiConverterTypeStarkEip712Signature.lift( _rust_call_with_error( _UniffiConverterTypeStarkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_starksigner_sign_message,self._pointer, _UniffiConverterTypeTypedData.lower(typed_data), _UniffiConverterString.lower(addr)) ) class _UniffiConverterTypeStarkSigner: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, StarkSigner): raise TypeError("Expected StarkSigner instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return StarkSigner._make_instance_(value) @staticmethod def lower(value): return value._pointer class Transfer: _pointer: ctypes.c_void_p def __init__(self, builder: "TransferBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_transfer_new, _UniffiConverterTypeTransferBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_transfer, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "Transfer": return _UniffiConverterTypeTransfer.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def eth_signature(self, eth_signer: "EthSigner",token_symbol: str) -> "TxLayer1Signature": return _UniffiConverterTypeTxLayer1Signature.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_eth_signature,self._pointer, _UniffiConverterTypeEthSigner.lower(eth_signer), _UniffiConverterString.lower(token_symbol)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_bytes,self._pointer,) ) def get_eth_sign_msg(self, token_symbol: str): return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_eth_sign_msg,self._pointer, _UniffiConverterString.lower(token_symbol)) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_signature,self._pointer,) ) def is_signature_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_signature_valid,self._pointer,) ) def is_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_valid,self._pointer,) ) def json_str(self, ): return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_tx_hash,self._pointer,) ) class _UniffiConverterTypeTransfer: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Transfer): raise TypeError("Expected Transfer instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Transfer._make_instance_(value) @staticmethod def lower(value): return value._pointer class TypedData: _pointer: ctypes.c_void_p def __init__(self, message: "TypedDataMessage",chain_id: str): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_typeddata_new, _UniffiConverterTypeTypedDataMessage.lower(message), _UniffiConverterString.lower(chain_id)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_typeddata, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst class _UniffiConverterTypeTypedData: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, TypedData): raise TypeError("Expected TypedData instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return TypedData._make_instance_(value) @staticmethod def lower(value): return value._pointer class UpdateGlobalVar: _pointer: ctypes.c_void_p def __init__(self, builder: "UpdateGlobalVarBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_updateglobalvar_new, _UniffiConverterTypeUpdateGlobalVarBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_updateglobalvar, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_get_bytes,self._pointer,) ) def is_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_is_valid,self._pointer,) ) def json_str(self, ): return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_tx_hash,self._pointer,) ) class _UniffiConverterTypeUpdateGlobalVar: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, UpdateGlobalVar): raise TypeError("Expected UpdateGlobalVar instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return UpdateGlobalVar._make_instance_(value) @staticmethod def lower(value): return value._pointer class Withdraw: _pointer: ctypes.c_void_p def __init__(self, builder: "WithdrawBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_withdraw_new, _UniffiConverterTypeWithdrawBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_withdraw, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "Withdraw": return _UniffiConverterTypeWithdraw.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def eth_signature(self, eth_signer: "EthSigner",l2_source_token_symbol: str) -> "PackedEthSignature": return _UniffiConverterTypePackedEthSignature.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_eth_signature,self._pointer, _UniffiConverterTypeEthSigner.lower(eth_signer), _UniffiConverterString.lower(l2_source_token_symbol)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_bytes,self._pointer,) ) def get_eth_sign_msg(self, token_symbol: str): return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_eth_sign_msg,self._pointer, _UniffiConverterString.lower(token_symbol)) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_signature,self._pointer,) ) def is_signature_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_signature_valid,self._pointer,) ) def is_valid(self, ): return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_valid,self._pointer,) ) def json_str(self, ): return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_tx_hash,self._pointer,) ) class _UniffiConverterTypeWithdraw: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Withdraw): raise TypeError("Expected Withdraw instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Withdraw._make_instance_(value) @staticmethod def lower(value): return value._pointer class ZkLinkSigner: _pointer: ctypes.c_void_p def __init__(self, ): self._pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new,) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_zklinksigner, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst @classmethod def new_from_bytes(cls, slice: "typing.List[int]"): # Call the (fallible) function before creating any half-baked object instances. pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_bytes, _UniffiConverterSequenceUInt8.lower(slice)) return cls._make_instance_(pointer) @classmethod def new_from_hex_eth_signer(cls, eth_hex_private_key: str): # Call the (fallible) function before creating any half-baked object instances. pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_eth_signer, _UniffiConverterString.lower(eth_hex_private_key)) return cls._make_instance_(pointer) @classmethod def new_from_hex_stark_signer(cls, hex_private_key: str,addr: str,chain_id: str): # Call the (fallible) function before creating any half-baked object instances. pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_stark_signer, _UniffiConverterString.lower(hex_private_key), _UniffiConverterString.lower(addr), _UniffiConverterString.lower(chain_id)) return cls._make_instance_(pointer) @classmethod def new_from_seed(cls, seed: "typing.List[int]"): # Call the (fallible) function before creating any half-baked object instances. pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_seed, _UniffiConverterSequenceUInt8.lower(seed)) return cls._make_instance_(pointer) def public_key(self, ) -> "PackedPublicKey": return _UniffiConverterTypePackedPublicKey.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_public_key,self._pointer,) ) def sign_musig(self, msg: "typing.List[int]") -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_sign_musig,self._pointer, _UniffiConverterSequenceUInt8.lower(msg)) ) class _UniffiConverterTypeZkLinkSigner: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, ZkLinkSigner): raise TypeError("Expected ZkLinkSigner instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return ZkLinkSigner._make_instance_(value) @staticmethod def lower(value): return value._pointer class AutoDeleveragingBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";sub_account_nonce: "Nonce";contract_prices: "typing.List[ContractPrice]";margin_prices: "typing.List[SpotPriceInfo]";adl_account_id: "AccountId";pair_id: "PairId";adl_size: "BigUint";adl_price: "BigUint";fee: "BigUint";fee_token: "TokenId"; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", sub_account_nonce: "Nonce", contract_prices: "typing.List[ContractPrice]", margin_prices: "typing.List[SpotPriceInfo]", adl_account_id: "AccountId", pair_id: "PairId", adl_size: "BigUint", adl_price: "BigUint", fee: "BigUint", fee_token: "TokenId"): self.account_id = account_id self.sub_account_id = sub_account_id self.sub_account_nonce = sub_account_nonce self.contract_prices = contract_prices self.margin_prices = margin_prices self.adl_account_id = adl_account_id self.pair_id = pair_id self.adl_size = adl_size self.adl_price = adl_price self.fee = fee self.fee_token = fee_token def __str__(self): return "AutoDeleveragingBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, contract_prices={}, margin_prices={}, adl_account_id={}, pair_id={}, adl_size={}, adl_price={}, fee={}, fee_token={})".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.contract_prices, self.margin_prices, self.adl_account_id, self.pair_id, self.adl_size, self.adl_price, self.fee, self.fee_token) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.sub_account_nonce != other.sub_account_nonce: return False if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False if self.adl_account_id != other.adl_account_id: return False if self.pair_id != other.pair_id: return False if self.adl_size != other.adl_size: return False if self.adl_price != other.adl_price: return False if self.fee != other.fee: return False if self.fee_token != other.fee_token: return False return True class _UniffiConverterTypeAutoDeleveragingBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return AutoDeleveragingBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), sub_account_nonce=_UniffiConverterTypeNonce.read(buf), contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf), margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf), adl_account_id=_UniffiConverterTypeAccountId.read(buf), pair_id=_UniffiConverterTypePairId.read(buf), adl_size=_UniffiConverterTypeBigUint.read(buf), adl_price=_UniffiConverterTypeBigUint.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), fee_token=_UniffiConverterTypeTokenId.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeNonce.write(value.sub_account_nonce, buf) _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) _UniffiConverterTypeAccountId.write(value.adl_account_id, buf) _UniffiConverterTypePairId.write(value.pair_id, buf) _UniffiConverterTypeBigUint.write(value.adl_size, buf) _UniffiConverterTypeBigUint.write(value.adl_price, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeTokenId.write(value.fee_token, buf) class ChangePubKeyBuilder: chain_id: "ChainId";account_id: "AccountId";sub_account_id: "SubAccountId";new_pubkey_hash: "PubKeyHash";fee_token: "TokenId";fee: "BigUint";nonce: "Nonce";eth_signature: "typing.Optional[PackedEthSignature]";timestamp: "TimeStamp"; @typing.no_type_check def __init__(self, chain_id: "ChainId", account_id: "AccountId", sub_account_id: "SubAccountId", new_pubkey_hash: "PubKeyHash", fee_token: "TokenId", fee: "BigUint", nonce: "Nonce", eth_signature: "typing.Optional[PackedEthSignature]", timestamp: "TimeStamp"): self.chain_id = chain_id self.account_id = account_id self.sub_account_id = sub_account_id self.new_pubkey_hash = new_pubkey_hash self.fee_token = fee_token self.fee = fee self.nonce = nonce self.eth_signature = eth_signature self.timestamp = timestamp def __str__(self): return "ChangePubKeyBuilder(chain_id={}, account_id={}, sub_account_id={}, new_pubkey_hash={}, fee_token={}, fee={}, nonce={}, eth_signature={}, timestamp={})".format(self.chain_id, self.account_id, self.sub_account_id, self.new_pubkey_hash, self.fee_token, self.fee, self.nonce, self.eth_signature, self.timestamp) def __eq__(self, other): if self.chain_id != other.chain_id: return False if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.new_pubkey_hash != other.new_pubkey_hash: return False if self.fee_token != other.fee_token: return False if self.fee != other.fee: return False if self.nonce != other.nonce: return False if self.eth_signature != other.eth_signature: return False if self.timestamp != other.timestamp: return False return True class _UniffiConverterTypeChangePubKeyBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return ChangePubKeyBuilder( chain_id=_UniffiConverterTypeChainId.read(buf), account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), new_pubkey_hash=_UniffiConverterTypePubKeyHash.read(buf), fee_token=_UniffiConverterTypeTokenId.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), nonce=_UniffiConverterTypeNonce.read(buf), eth_signature=_UniffiConverterOptionalTypePackedEthSignature.read(buf), timestamp=_UniffiConverterTypeTimeStamp.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeChainId.write(value.chain_id, buf) _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypePubKeyHash.write(value.new_pubkey_hash, buf) _UniffiConverterTypeTokenId.write(value.fee_token, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeNonce.write(value.nonce, buf) _UniffiConverterOptionalTypePackedEthSignature.write(value.eth_signature, buf) _UniffiConverterTypeTimeStamp.write(value.timestamp, buf) class ContractBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";slot_id: "SlotId";nonce: "Nonce";pair_id: "PairId";size: "BigUint";price: "BigUint";direction: bool;taker_fee_rate: "int";maker_fee_rate: "int";has_subsidy: bool; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", slot_id: "SlotId", nonce: "Nonce", pair_id: "PairId", size: "BigUint", price: "BigUint", direction: bool, taker_fee_rate: "int", maker_fee_rate: "int", has_subsidy: bool): self.account_id = account_id self.sub_account_id = sub_account_id self.slot_id = slot_id self.nonce = nonce self.pair_id = pair_id self.size = size self.price = price self.direction = direction self.taker_fee_rate = taker_fee_rate self.maker_fee_rate = maker_fee_rate self.has_subsidy = has_subsidy def __str__(self): return "ContractBuilder(account_id={}, sub_account_id={}, slot_id={}, nonce={}, pair_id={}, size={}, price={}, direction={}, taker_fee_rate={}, maker_fee_rate={}, has_subsidy={})".format(self.account_id, self.sub_account_id, self.slot_id, self.nonce, self.pair_id, self.size, self.price, self.direction, self.taker_fee_rate, self.maker_fee_rate, self.has_subsidy) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.slot_id != other.slot_id: return False if self.nonce != other.nonce: return False if self.pair_id != other.pair_id: return False if self.size != other.size: return False if self.price != other.price: return False if self.direction != other.direction: return False if self.taker_fee_rate != other.taker_fee_rate: return False if self.maker_fee_rate != other.maker_fee_rate: return False if self.has_subsidy != other.has_subsidy: return False return True class _UniffiConverterTypeContractBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return ContractBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), slot_id=_UniffiConverterTypeSlotId.read(buf), nonce=_UniffiConverterTypeNonce.read(buf), pair_id=_UniffiConverterTypePairId.read(buf), size=_UniffiConverterTypeBigUint.read(buf), price=_UniffiConverterTypeBigUint.read(buf), direction=_UniffiConverterBool.read(buf), taker_fee_rate=_UniffiConverterUInt8.read(buf), maker_fee_rate=_UniffiConverterUInt8.read(buf), has_subsidy=_UniffiConverterBool.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeSlotId.write(value.slot_id, buf) _UniffiConverterTypeNonce.write(value.nonce, buf) _UniffiConverterTypePairId.write(value.pair_id, buf) _UniffiConverterTypeBigUint.write(value.size, buf) _UniffiConverterTypeBigUint.write(value.price, buf) _UniffiConverterBool.write(value.direction, buf) _UniffiConverterUInt8.write(value.taker_fee_rate, buf) _UniffiConverterUInt8.write(value.maker_fee_rate, buf) _UniffiConverterBool.write(value.has_subsidy, buf) class ContractMatchingBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";taker: "Contract";maker: "typing.List[Contract]";fee: "BigUint";fee_token: "TokenId";contract_prices: "typing.List[ContractPrice]";margin_prices: "typing.List[SpotPriceInfo]"; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", taker: "Contract", maker: "typing.List[Contract]", fee: "BigUint", fee_token: "TokenId", contract_prices: "typing.List[ContractPrice]", margin_prices: "typing.List[SpotPriceInfo]"): self.account_id = account_id self.sub_account_id = sub_account_id self.taker = taker self.maker = maker self.fee = fee self.fee_token = fee_token self.contract_prices = contract_prices self.margin_prices = margin_prices def __str__(self): return "ContractMatchingBuilder(account_id={}, sub_account_id={}, taker={}, maker={}, fee={}, fee_token={}, contract_prices={}, margin_prices={})".format(self.account_id, self.sub_account_id, self.taker, self.maker, self.fee, self.fee_token, self.contract_prices, self.margin_prices) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.taker != other.taker: return False if self.maker != other.maker: return False if self.fee != other.fee: return False if self.fee_token != other.fee_token: return False if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False return True class _UniffiConverterTypeContractMatchingBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return ContractMatchingBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), taker=_UniffiConverterTypeContract.read(buf), maker=_UniffiConverterSequenceTypeContract.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), fee_token=_UniffiConverterTypeTokenId.read(buf), contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf), margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeContract.write(value.taker, buf) _UniffiConverterSequenceTypeContract.write(value.maker, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeTokenId.write(value.fee_token, buf) _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) class ContractPrice: pair_id: "PairId";market_price: "BigUint"; @typing.no_type_check def __init__(self, pair_id: "PairId", market_price: "BigUint"): self.pair_id = pair_id self.market_price = market_price def __str__(self): return "ContractPrice(pair_id={}, market_price={})".format(self.pair_id, self.market_price) def __eq__(self, other): if self.pair_id != other.pair_id: return False if self.market_price != other.market_price: return False return True class _UniffiConverterTypeContractPrice(_UniffiConverterRustBuffer): @staticmethod def read(buf): return ContractPrice( pair_id=_UniffiConverterTypePairId.read(buf), market_price=_UniffiConverterTypeBigUint.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypePairId.write(value.pair_id, buf) _UniffiConverterTypeBigUint.write(value.market_price, buf) class Create2Data: creator_address: "ZkLinkAddress";salt_arg: "H256";code_hash: "H256"; @typing.no_type_check def __init__(self, creator_address: "ZkLinkAddress", salt_arg: "H256", code_hash: "H256"): self.creator_address = creator_address self.salt_arg = salt_arg self.code_hash = code_hash def __str__(self): return "Create2Data(creator_address={}, salt_arg={}, code_hash={})".format(self.creator_address, self.salt_arg, self.code_hash) def __eq__(self, other): if self.creator_address != other.creator_address: return False if self.salt_arg != other.salt_arg: return False if self.code_hash != other.code_hash: return False return True class _UniffiConverterTypeCreate2Data(_UniffiConverterRustBuffer): @staticmethod def read(buf): return Create2Data( creator_address=_UniffiConverterTypeZkLinkAddress.read(buf), salt_arg=_UniffiConverterTypeH256.read(buf), code_hash=_UniffiConverterTypeH256.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeZkLinkAddress.write(value.creator_address, buf) _UniffiConverterTypeH256.write(value.salt_arg, buf) _UniffiConverterTypeH256.write(value.code_hash, buf) class DepositBuilder: from_address: "ZkLinkAddress";to_address: "ZkLinkAddress";from_chain_id: "ChainId";sub_account_id: "SubAccountId";l2_target_token: "TokenId";l1_source_token: "TokenId";amount: "BigUint";serial_id: "int";l2_hash: "H256";eth_hash: "typing.Optional[H256]"; @typing.no_type_check def __init__(self, from_address: "ZkLinkAddress", to_address: "ZkLinkAddress", from_chain_id: "ChainId", sub_account_id: "SubAccountId", l2_target_token: "TokenId", l1_source_token: "TokenId", amount: "BigUint", serial_id: "int", l2_hash: "H256", eth_hash: "typing.Optional[H256]"): self.from_address = from_address self.to_address = to_address self.from_chain_id = from_chain_id self.sub_account_id = sub_account_id self.l2_target_token = l2_target_token self.l1_source_token = l1_source_token self.amount = amount self.serial_id = serial_id self.l2_hash = l2_hash self.eth_hash = eth_hash def __str__(self): return "DepositBuilder(from_address={}, to_address={}, from_chain_id={}, sub_account_id={}, l2_target_token={}, l1_source_token={}, amount={}, serial_id={}, l2_hash={}, eth_hash={})".format(self.from_address, self.to_address, self.from_chain_id, self.sub_account_id, self.l2_target_token, self.l1_source_token, self.amount, self.serial_id, self.l2_hash, self.eth_hash) def __eq__(self, other): if self.from_address != other.from_address: return False if self.to_address != other.to_address: return False if self.from_chain_id != other.from_chain_id: return False if self.sub_account_id != other.sub_account_id: return False if self.l2_target_token != other.l2_target_token: return False if self.l1_source_token != other.l1_source_token: return False if self.amount != other.amount: return False if self.serial_id != other.serial_id: return False if self.l2_hash != other.l2_hash: return False if self.eth_hash != other.eth_hash: return False return True class _UniffiConverterTypeDepositBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return DepositBuilder( from_address=_UniffiConverterTypeZkLinkAddress.read(buf), to_address=_UniffiConverterTypeZkLinkAddress.read(buf), from_chain_id=_UniffiConverterTypeChainId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), l2_target_token=_UniffiConverterTypeTokenId.read(buf), l1_source_token=_UniffiConverterTypeTokenId.read(buf), amount=_UniffiConverterTypeBigUint.read(buf), serial_id=_UniffiConverterUInt64.read(buf), l2_hash=_UniffiConverterTypeH256.read(buf), eth_hash=_UniffiConverterOptionalTypeH256.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeZkLinkAddress.write(value.from_address, buf) _UniffiConverterTypeZkLinkAddress.write(value.to_address, buf) _UniffiConverterTypeChainId.write(value.from_chain_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeTokenId.write(value.l2_target_token, buf) _UniffiConverterTypeTokenId.write(value.l1_source_token, buf) _UniffiConverterTypeBigUint.write(value.amount, buf) _UniffiConverterUInt64.write(value.serial_id, buf) _UniffiConverterTypeH256.write(value.l2_hash, buf) _UniffiConverterOptionalTypeH256.write(value.eth_hash, buf) class ForcedExitBuilder: to_chain_id: "ChainId";initiator_account_id: "AccountId";initiator_sub_account_id: "SubAccountId";target: "ZkLinkAddress";target_sub_account_id: "SubAccountId";l2_source_token: "TokenId";l1_target_token: "TokenId";initiator_nonce: "Nonce";exit_amount: "BigUint";withdraw_to_l1: bool;timestamp: "TimeStamp"; @typing.no_type_check def __init__(self, to_chain_id: "ChainId", initiator_account_id: "AccountId", initiator_sub_account_id: "SubAccountId", target: "ZkLinkAddress", target_sub_account_id: "SubAccountId", l2_source_token: "TokenId", l1_target_token: "TokenId", initiator_nonce: "Nonce", exit_amount: "BigUint", withdraw_to_l1: bool, timestamp: "TimeStamp"): self.to_chain_id = to_chain_id self.initiator_account_id = initiator_account_id self.initiator_sub_account_id = initiator_sub_account_id self.target = target self.target_sub_account_id = target_sub_account_id self.l2_source_token = l2_source_token self.l1_target_token = l1_target_token self.initiator_nonce = initiator_nonce self.exit_amount = exit_amount self.withdraw_to_l1 = withdraw_to_l1 self.timestamp = timestamp def __str__(self): return "ForcedExitBuilder(to_chain_id={}, initiator_account_id={}, initiator_sub_account_id={}, target={}, target_sub_account_id={}, l2_source_token={}, l1_target_token={}, initiator_nonce={}, exit_amount={}, withdraw_to_l1={}, timestamp={})".format(self.to_chain_id, self.initiator_account_id, self.initiator_sub_account_id, self.target, self.target_sub_account_id, self.l2_source_token, self.l1_target_token, self.initiator_nonce, self.exit_amount, self.withdraw_to_l1, self.timestamp) def __eq__(self, other): if self.to_chain_id != other.to_chain_id: return False if self.initiator_account_id != other.initiator_account_id: return False if self.initiator_sub_account_id != other.initiator_sub_account_id: return False if self.target != other.target: return False if self.target_sub_account_id != other.target_sub_account_id: return False if self.l2_source_token != other.l2_source_token: return False if self.l1_target_token != other.l1_target_token: return False if self.initiator_nonce != other.initiator_nonce: return False if self.exit_amount != other.exit_amount: return False if self.withdraw_to_l1 != other.withdraw_to_l1: return False if self.timestamp != other.timestamp: return False return True class _UniffiConverterTypeForcedExitBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return ForcedExitBuilder( to_chain_id=_UniffiConverterTypeChainId.read(buf), initiator_account_id=_UniffiConverterTypeAccountId.read(buf), initiator_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), target=_UniffiConverterTypeZkLinkAddress.read(buf), target_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), l2_source_token=_UniffiConverterTypeTokenId.read(buf), l1_target_token=_UniffiConverterTypeTokenId.read(buf), initiator_nonce=_UniffiConverterTypeNonce.read(buf), exit_amount=_UniffiConverterTypeBigUint.read(buf), withdraw_to_l1=_UniffiConverterBool.read(buf), timestamp=_UniffiConverterTypeTimeStamp.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeChainId.write(value.to_chain_id, buf) _UniffiConverterTypeAccountId.write(value.initiator_account_id, buf) _UniffiConverterTypeSubAccountId.write(value.initiator_sub_account_id, buf) _UniffiConverterTypeZkLinkAddress.write(value.target, buf) _UniffiConverterTypeSubAccountId.write(value.target_sub_account_id, buf) _UniffiConverterTypeTokenId.write(value.l2_source_token, buf) _UniffiConverterTypeTokenId.write(value.l1_target_token, buf) _UniffiConverterTypeNonce.write(value.initiator_nonce, buf) _UniffiConverterTypeBigUint.write(value.exit_amount, buf) _UniffiConverterBool.write(value.withdraw_to_l1, buf) _UniffiConverterTypeTimeStamp.write(value.timestamp, buf) class FullExitBuilder: to_chain_id: "ChainId";account_id: "AccountId";sub_account_id: "SubAccountId";exit_address: "ZkLinkAddress";l2_source_token: "TokenId";l1_target_token: "TokenId";contract_prices: "typing.List[ContractPrice]";margin_prices: "typing.List[SpotPriceInfo]";serial_id: "int";l2_hash: "H256"; @typing.no_type_check def __init__(self, to_chain_id: "ChainId", account_id: "AccountId", sub_account_id: "SubAccountId", exit_address: "ZkLinkAddress", l2_source_token: "TokenId", l1_target_token: "TokenId", contract_prices: "typing.List[ContractPrice]", margin_prices: "typing.List[SpotPriceInfo]", serial_id: "int", l2_hash: "H256"): self.to_chain_id = to_chain_id self.account_id = account_id self.sub_account_id = sub_account_id self.exit_address = exit_address self.l2_source_token = l2_source_token self.l1_target_token = l1_target_token self.contract_prices = contract_prices self.margin_prices = margin_prices self.serial_id = serial_id self.l2_hash = l2_hash def __str__(self): return "FullExitBuilder(to_chain_id={}, account_id={}, sub_account_id={}, exit_address={}, l2_source_token={}, l1_target_token={}, contract_prices={}, margin_prices={}, serial_id={}, l2_hash={})".format(self.to_chain_id, self.account_id, self.sub_account_id, self.exit_address, self.l2_source_token, self.l1_target_token, self.contract_prices, self.margin_prices, self.serial_id, self.l2_hash) def __eq__(self, other): if self.to_chain_id != other.to_chain_id: return False if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.exit_address != other.exit_address: return False if self.l2_source_token != other.l2_source_token: return False if self.l1_target_token != other.l1_target_token: return False if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False if self.serial_id != other.serial_id: return False if self.l2_hash != other.l2_hash: return False return True class _UniffiConverterTypeFullExitBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return FullExitBuilder( to_chain_id=_UniffiConverterTypeChainId.read(buf), account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), exit_address=_UniffiConverterTypeZkLinkAddress.read(buf), l2_source_token=_UniffiConverterTypeTokenId.read(buf), l1_target_token=_UniffiConverterTypeTokenId.read(buf), contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf), margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf), serial_id=_UniffiConverterUInt64.read(buf), l2_hash=_UniffiConverterTypeH256.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeChainId.write(value.to_chain_id, buf) _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeZkLinkAddress.write(value.exit_address, buf) _UniffiConverterTypeTokenId.write(value.l2_source_token, buf) _UniffiConverterTypeTokenId.write(value.l1_target_token, buf) _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) _UniffiConverterUInt64.write(value.serial_id, buf) _UniffiConverterTypeH256.write(value.l2_hash, buf) class FundingBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";sub_account_nonce: "Nonce";funding_account_ids: "typing.List[AccountId]";fee: "BigUint";fee_token: "TokenId"; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", sub_account_nonce: "Nonce", funding_account_ids: "typing.List[AccountId]", fee: "BigUint", fee_token: "TokenId"): self.account_id = account_id self.sub_account_id = sub_account_id self.sub_account_nonce = sub_account_nonce self.funding_account_ids = funding_account_ids self.fee = fee self.fee_token = fee_token def __str__(self): return "FundingBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, funding_account_ids={}, fee={}, fee_token={})".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.funding_account_ids, self.fee, self.fee_token) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.sub_account_nonce != other.sub_account_nonce: return False if self.funding_account_ids != other.funding_account_ids: return False if self.fee != other.fee: return False if self.fee_token != other.fee_token: return False return True class _UniffiConverterTypeFundingBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return FundingBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), sub_account_nonce=_UniffiConverterTypeNonce.read(buf), funding_account_ids=_UniffiConverterSequenceTypeAccountId.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), fee_token=_UniffiConverterTypeTokenId.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeNonce.write(value.sub_account_nonce, buf) _UniffiConverterSequenceTypeAccountId.write(value.funding_account_ids, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeTokenId.write(value.fee_token, buf) class FundingInfo: pair_id: "PairId";price: "BigUint";funding_rate: "int"; @typing.no_type_check def __init__(self, pair_id: "PairId", price: "BigUint", funding_rate: "int"): self.pair_id = pair_id self.price = price self.funding_rate = funding_rate def __str__(self): return "FundingInfo(pair_id={}, price={}, funding_rate={})".format(self.pair_id, self.price, self.funding_rate) def __eq__(self, other): if self.pair_id != other.pair_id: return False if self.price != other.price: return False if self.funding_rate != other.funding_rate: return False return True class _UniffiConverterTypeFundingInfo(_UniffiConverterRustBuffer): @staticmethod def read(buf): return FundingInfo( pair_id=_UniffiConverterTypePairId.read(buf), price=_UniffiConverterTypeBigUint.read(buf), funding_rate=_UniffiConverterInt16.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypePairId.write(value.pair_id, buf) _UniffiConverterTypeBigUint.write(value.price, buf) _UniffiConverterInt16.write(value.funding_rate, buf) class LiquidationBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";sub_account_nonce: "Nonce";contract_prices: "typing.List[ContractPrice]";margin_prices: "typing.List[SpotPriceInfo]";liquidation_account_id: "AccountId";fee: "BigUint";fee_token: "TokenId"; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", sub_account_nonce: "Nonce", contract_prices: "typing.List[ContractPrice]", margin_prices: "typing.List[SpotPriceInfo]", liquidation_account_id: "AccountId", fee: "BigUint", fee_token: "TokenId"): self.account_id = account_id self.sub_account_id = sub_account_id self.sub_account_nonce = sub_account_nonce self.contract_prices = contract_prices self.margin_prices = margin_prices self.liquidation_account_id = liquidation_account_id self.fee = fee self.fee_token = fee_token def __str__(self): return "LiquidationBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, contract_prices={}, margin_prices={}, liquidation_account_id={}, fee={}, fee_token={})".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.contract_prices, self.margin_prices, self.liquidation_account_id, self.fee, self.fee_token) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.sub_account_nonce != other.sub_account_nonce: return False if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False if self.liquidation_account_id != other.liquidation_account_id: return False if self.fee != other.fee: return False if self.fee_token != other.fee_token: return False return True class _UniffiConverterTypeLiquidationBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return LiquidationBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), sub_account_nonce=_UniffiConverterTypeNonce.read(buf), contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf), margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf), liquidation_account_id=_UniffiConverterTypeAccountId.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), fee_token=_UniffiConverterTypeTokenId.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeNonce.write(value.sub_account_nonce, buf) _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) _UniffiConverterTypeAccountId.write(value.liquidation_account_id, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeTokenId.write(value.fee_token, buf) class Message: data: str; @typing.no_type_check def __init__(self, data: str): self.data = data def __str__(self): return "Message(data={})".format(self.data) def __eq__(self, other): if self.data != other.data: return False return True class _UniffiConverterTypeMessage(_UniffiConverterRustBuffer): @staticmethod def read(buf): return Message( data=_UniffiConverterString.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterString.write(value.data, buf) class OraclePrices: contract_prices: "typing.List[ContractPrice]";margin_prices: "typing.List[SpotPriceInfo]"; @typing.no_type_check def __init__(self, contract_prices: "typing.List[ContractPrice]", margin_prices: "typing.List[SpotPriceInfo]"): self.contract_prices = contract_prices self.margin_prices = margin_prices def __str__(self): return "OraclePrices(contract_prices={}, margin_prices={})".format(self.contract_prices, self.margin_prices) def __eq__(self, other): if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False return True class _UniffiConverterTypeOraclePrices(_UniffiConverterRustBuffer): @staticmethod def read(buf): return OraclePrices( contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf), margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) class OrderMatchingBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";taker: "Order";maker: "Order";fee: "BigUint";fee_token: "TokenId";contract_prices: "typing.List[ContractPrice]";margin_prices: "typing.List[SpotPriceInfo]";expect_base_amount: "BigUint";expect_quote_amount: "BigUint"; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", taker: "Order", maker: "Order", fee: "BigUint", fee_token: "TokenId", contract_prices: "typing.List[ContractPrice]", margin_prices: "typing.List[SpotPriceInfo]", expect_base_amount: "BigUint", expect_quote_amount: "BigUint"): self.account_id = account_id self.sub_account_id = sub_account_id self.taker = taker self.maker = maker self.fee = fee self.fee_token = fee_token self.contract_prices = contract_prices self.margin_prices = margin_prices self.expect_base_amount = expect_base_amount self.expect_quote_amount = expect_quote_amount def __str__(self): return "OrderMatchingBuilder(account_id={}, sub_account_id={}, taker={}, maker={}, fee={}, fee_token={}, contract_prices={}, margin_prices={}, expect_base_amount={}, expect_quote_amount={})".format(self.account_id, self.sub_account_id, self.taker, self.maker, self.fee, self.fee_token, self.contract_prices, self.margin_prices, self.expect_base_amount, self.expect_quote_amount) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.taker != other.taker: return False if self.maker != other.maker: return False if self.fee != other.fee: return False if self.fee_token != other.fee_token: return False if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False if self.expect_base_amount != other.expect_base_amount: return False if self.expect_quote_amount != other.expect_quote_amount: return False return True class _UniffiConverterTypeOrderMatchingBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return OrderMatchingBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), taker=_UniffiConverterTypeOrder.read(buf), maker=_UniffiConverterTypeOrder.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), fee_token=_UniffiConverterTypeTokenId.read(buf), contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf), margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf), expect_base_amount=_UniffiConverterTypeBigUint.read(buf), expect_quote_amount=_UniffiConverterTypeBigUint.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeOrder.write(value.taker, buf) _UniffiConverterTypeOrder.write(value.maker, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeTokenId.write(value.fee_token, buf) _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) _UniffiConverterTypeBigUint.write(value.expect_base_amount, buf) _UniffiConverterTypeBigUint.write(value.expect_quote_amount, buf) class SpotPriceInfo: token_id: "TokenId";price: "BigUint"; @typing.no_type_check def __init__(self, token_id: "TokenId", price: "BigUint"): self.token_id = token_id self.price = price def __str__(self): return "SpotPriceInfo(token_id={}, price={})".format(self.token_id, self.price) def __eq__(self, other): if self.token_id != other.token_id: return False if self.price != other.price: return False return True class _UniffiConverterTypeSpotPriceInfo(_UniffiConverterRustBuffer): @staticmethod def read(buf): return SpotPriceInfo( token_id=_UniffiConverterTypeTokenId.read(buf), price=_UniffiConverterTypeBigUint.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeTokenId.write(value.token_id, buf) _UniffiConverterTypeBigUint.write(value.price, buf) class TransferBuilder: account_id: "AccountId";to_address: "ZkLinkAddress";from_sub_account_id: "SubAccountId";to_sub_account_id: "SubAccountId";token: "TokenId";amount: "BigUint";fee: "BigUint";nonce: "Nonce";timestamp: "TimeStamp"; @typing.no_type_check def __init__(self, account_id: "AccountId", to_address: "ZkLinkAddress", from_sub_account_id: "SubAccountId", to_sub_account_id: "SubAccountId", token: "TokenId", amount: "BigUint", fee: "BigUint", nonce: "Nonce", timestamp: "TimeStamp"): self.account_id = account_id self.to_address = to_address self.from_sub_account_id = from_sub_account_id self.to_sub_account_id = to_sub_account_id self.token = token self.amount = amount self.fee = fee self.nonce = nonce self.timestamp = timestamp def __str__(self): return "TransferBuilder(account_id={}, to_address={}, from_sub_account_id={}, to_sub_account_id={}, token={}, amount={}, fee={}, nonce={}, timestamp={})".format(self.account_id, self.to_address, self.from_sub_account_id, self.to_sub_account_id, self.token, self.amount, self.fee, self.nonce, self.timestamp) def __eq__(self, other): if self.account_id != other.account_id: return False if self.to_address != other.to_address: return False if self.from_sub_account_id != other.from_sub_account_id: return False if self.to_sub_account_id != other.to_sub_account_id: return False if self.token != other.token: return False if self.amount != other.amount: return False if self.fee != other.fee: return False if self.nonce != other.nonce: return False if self.timestamp != other.timestamp: return False return True class _UniffiConverterTypeTransferBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return TransferBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), to_address=_UniffiConverterTypeZkLinkAddress.read(buf), from_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), to_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), token=_UniffiConverterTypeTokenId.read(buf), amount=_UniffiConverterTypeBigUint.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), nonce=_UniffiConverterTypeNonce.read(buf), timestamp=_UniffiConverterTypeTimeStamp.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeZkLinkAddress.write(value.to_address, buf) _UniffiConverterTypeSubAccountId.write(value.from_sub_account_id, buf) _UniffiConverterTypeSubAccountId.write(value.to_sub_account_id, buf) _UniffiConverterTypeTokenId.write(value.token, buf) _UniffiConverterTypeBigUint.write(value.amount, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeNonce.write(value.nonce, buf) _UniffiConverterTypeTimeStamp.write(value.timestamp, buf) class TxMessage: transaction: str;amount: str;fee: str;token: str;to: str;nonce: str; @typing.no_type_check def __init__(self, transaction: str, amount: str, fee: str, token: str, to: str, nonce: str): self.transaction = transaction self.amount = amount self.fee = fee self.token = token self.to = to self.nonce = nonce def __str__(self): return "TxMessage(transaction={}, amount={}, fee={}, token={}, to={}, nonce={})".format(self.transaction, self.amount, self.fee, self.token, self.to, self.nonce) def __eq__(self, other): if self.transaction != other.transaction: return False if self.amount != other.amount: return False if self.fee != other.fee: return False if self.token != other.token: return False if self.to != other.to: return False if self.nonce != other.nonce: return False return True class _UniffiConverterTypeTxMessage(_UniffiConverterRustBuffer): @staticmethod def read(buf): return TxMessage( transaction=_UniffiConverterString.read(buf), amount=_UniffiConverterString.read(buf), fee=_UniffiConverterString.read(buf), token=_UniffiConverterString.read(buf), to=_UniffiConverterString.read(buf), nonce=_UniffiConverterString.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterString.write(value.transaction, buf) _UniffiConverterString.write(value.amount, buf) _UniffiConverterString.write(value.fee, buf) _UniffiConverterString.write(value.token, buf) _UniffiConverterString.write(value.to, buf) _UniffiConverterString.write(value.nonce, buf) class TxSignature: tx: "ZkLinkTx";layer1_signature: "typing.Optional[TxLayer1Signature]"; @typing.no_type_check def __init__(self, tx: "ZkLinkTx", layer1_signature: "typing.Optional[TxLayer1Signature]"): self.tx = tx self.layer1_signature = layer1_signature def __str__(self): return "TxSignature(tx={}, layer1_signature={})".format(self.tx, self.layer1_signature) def __eq__(self, other): if self.tx != other.tx: return False if self.layer1_signature != other.layer1_signature: return False return True class _UniffiConverterTypeTxSignature(_UniffiConverterRustBuffer): @staticmethod def read(buf): return TxSignature( tx=_UniffiConverterTypeZkLinkTx.read(buf), layer1_signature=_UniffiConverterOptionalTypeTxLayer1Signature.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeZkLinkTx.write(value.tx, buf) _UniffiConverterOptionalTypeTxLayer1Signature.write(value.layer1_signature, buf) class UpdateGlobalVarBuilder: from_chain_id: "ChainId";sub_account_id: "SubAccountId";parameter: "Parameter";serial_id: "int"; @typing.no_type_check def __init__(self, from_chain_id: "ChainId", sub_account_id: "SubAccountId", parameter: "Parameter", serial_id: "int"): self.from_chain_id = from_chain_id self.sub_account_id = sub_account_id self.parameter = parameter self.serial_id = serial_id def __str__(self): return "UpdateGlobalVarBuilder(from_chain_id={}, sub_account_id={}, parameter={}, serial_id={})".format(self.from_chain_id, self.sub_account_id, self.parameter, self.serial_id) def __eq__(self, other): if self.from_chain_id != other.from_chain_id: return False if self.sub_account_id != other.sub_account_id: return False if self.parameter != other.parameter: return False if self.serial_id != other.serial_id: return False return True class _UniffiConverterTypeUpdateGlobalVarBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return UpdateGlobalVarBuilder( from_chain_id=_UniffiConverterTypeChainId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), parameter=_UniffiConverterTypeParameter.read(buf), serial_id=_UniffiConverterUInt64.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeChainId.write(value.from_chain_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeParameter.write(value.parameter, buf) _UniffiConverterUInt64.write(value.serial_id, buf) class WithdrawBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";to_chain_id: "ChainId";to_address: "ZkLinkAddress";l2_source_token: "TokenId";l1_target_token: "TokenId";amount: "BigUint";call_data: "typing.Optional[typing.List[int]]";fee: "BigUint";nonce: "Nonce";withdraw_fee_ratio: "int";withdraw_to_l1: bool;timestamp: "TimeStamp"; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", to_chain_id: "ChainId", to_address: "ZkLinkAddress", l2_source_token: "TokenId", l1_target_token: "TokenId", amount: "BigUint", call_data: "typing.Optional[typing.List[int]]", fee: "BigUint", nonce: "Nonce", withdraw_fee_ratio: "int", withdraw_to_l1: bool, timestamp: "TimeStamp"): self.account_id = account_id self.sub_account_id = sub_account_id self.to_chain_id = to_chain_id self.to_address = to_address self.l2_source_token = l2_source_token self.l1_target_token = l1_target_token self.amount = amount self.call_data = call_data self.fee = fee self.nonce = nonce self.withdraw_fee_ratio = withdraw_fee_ratio self.withdraw_to_l1 = withdraw_to_l1 self.timestamp = timestamp def __str__(self): return "WithdrawBuilder(account_id={}, sub_account_id={}, to_chain_id={}, to_address={}, l2_source_token={}, l1_target_token={}, amount={}, call_data={}, fee={}, nonce={}, withdraw_fee_ratio={}, withdraw_to_l1={}, timestamp={})".format(self.account_id, self.sub_account_id, self.to_chain_id, self.to_address, self.l2_source_token, self.l1_target_token, self.amount, self.call_data, self.fee, self.nonce, self.withdraw_fee_ratio, self.withdraw_to_l1, self.timestamp) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.to_chain_id != other.to_chain_id: return False if self.to_address != other.to_address: return False if self.l2_source_token != other.l2_source_token: return False if self.l1_target_token != other.l1_target_token: return False if self.amount != other.amount: return False if self.call_data != other.call_data: return False if self.fee != other.fee: return False if self.nonce != other.nonce: return False if self.withdraw_fee_ratio != other.withdraw_fee_ratio: return False if self.withdraw_to_l1 != other.withdraw_to_l1: return False if self.timestamp != other.timestamp: return False return True class _UniffiConverterTypeWithdrawBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return WithdrawBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), to_chain_id=_UniffiConverterTypeChainId.read(buf), to_address=_UniffiConverterTypeZkLinkAddress.read(buf), l2_source_token=_UniffiConverterTypeTokenId.read(buf), l1_target_token=_UniffiConverterTypeTokenId.read(buf), amount=_UniffiConverterTypeBigUint.read(buf), call_data=_UniffiConverterOptionalSequenceUInt8.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), nonce=_UniffiConverterTypeNonce.read(buf), withdraw_fee_ratio=_UniffiConverterUInt16.read(buf), withdraw_to_l1=_UniffiConverterBool.read(buf), timestamp=_UniffiConverterTypeTimeStamp.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeChainId.write(value.to_chain_id, buf) _UniffiConverterTypeZkLinkAddress.write(value.to_address, buf) _UniffiConverterTypeTokenId.write(value.l2_source_token, buf) _UniffiConverterTypeTokenId.write(value.l1_target_token, buf) _UniffiConverterTypeBigUint.write(value.amount, buf) _UniffiConverterOptionalSequenceUInt8.write(value.call_data, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeNonce.write(value.nonce, buf) _UniffiConverterUInt16.write(value.withdraw_fee_ratio, buf) _UniffiConverterBool.write(value.withdraw_to_l1, buf) _UniffiConverterTypeTimeStamp.write(value.timestamp, buf) class ZkLinkSignature: pub_key: "PackedPublicKey";signature: "PackedSignature"; @typing.no_type_check def __init__(self, pub_key: "PackedPublicKey", signature: "PackedSignature"): self.pub_key = pub_key self.signature = signature def __str__(self): return "ZkLinkSignature(pub_key={}, signature={})".format(self.pub_key, self.signature) def __eq__(self, other): if self.pub_key != other.pub_key: return False if self.signature != other.signature: return False return True class _UniffiConverterTypeZkLinkSignature(_UniffiConverterRustBuffer): @staticmethod def read(buf): return ZkLinkSignature( pub_key=_UniffiConverterTypePackedPublicKey.read(buf), signature=_UniffiConverterTypePackedSignature.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypePackedPublicKey.write(value.pub_key, buf) _UniffiConverterTypePackedSignature.write(value.signature, buf) class ChangePubKeyAuthData: def __init__(self): raise RuntimeError("ChangePubKeyAuthData cannot be instantiated directly") # Each enum variant is a nested class of the enum itself. class ONCHAIN: @typing.no_type_check def __init__(self,): pass def __str__(self): return "ChangePubKeyAuthData.ONCHAIN()".format() def __eq__(self, other): if not other.is_onchain(): return False return True class ETH_ECDSA: eth_signature: "PackedEthSignature"; @typing.no_type_check def __init__(self,eth_signature: "PackedEthSignature"): self.eth_signature = eth_signature def __str__(self): return "ChangePubKeyAuthData.ETH_ECDSA(eth_signature={})".format(self.eth_signature) def __eq__(self, other): if not other.is_eth_ecdsa(): return False if self.eth_signature != other.eth_signature: return False return True class ETH_CREATE2: data: "Create2Data"; @typing.no_type_check def __init__(self,data: "Create2Data"): self.data = data def __str__(self): return "ChangePubKeyAuthData.ETH_CREATE2(data={})".format(self.data) def __eq__(self, other): if not other.is_eth_create2(): return False if self.data != other.data: return False return True # For each variant, we have an `is_NAME` method for easily checking # whether an instance is that variant. def is_onchain(self) -> bool: return isinstance(self, ChangePubKeyAuthData.ONCHAIN) def is_eth_ecdsa(self) -> bool: return isinstance(self, ChangePubKeyAuthData.ETH_ECDSA) def is_eth_create2(self) -> bool: return isinstance(self, ChangePubKeyAuthData.ETH_CREATE2) # Now, a little trick - we make each nested variant class be a subclass of the main # enum class, so that method calls and instance checks etc will work intuitively. # We might be able to do this a little more neatly with a metaclass, but this'll do. ChangePubKeyAuthData.ONCHAIN = type("ChangePubKeyAuthData.ONCHAIN", (ChangePubKeyAuthData.ONCHAIN, ChangePubKeyAuthData,), {}) # type: ignore ChangePubKeyAuthData.ETH_ECDSA = type("ChangePubKeyAuthData.ETH_ECDSA", (ChangePubKeyAuthData.ETH_ECDSA, ChangePubKeyAuthData,), {}) # type: ignore ChangePubKeyAuthData.ETH_CREATE2 = type("ChangePubKeyAuthData.ETH_CREATE2", (ChangePubKeyAuthData.ETH_CREATE2, ChangePubKeyAuthData,), {}) # type: ignore class _UniffiConverterTypeChangePubKeyAuthData(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return ChangePubKeyAuthData.ONCHAIN( ) if variant == 2: return ChangePubKeyAuthData.ETH_ECDSA( _UniffiConverterTypePackedEthSignature.read(buf), ) if variant == 3: return ChangePubKeyAuthData.ETH_CREATE2( _UniffiConverterTypeCreate2Data.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value.is_onchain(): buf.write_i32(1) if value.is_eth_ecdsa(): buf.write_i32(2) _UniffiConverterTypePackedEthSignature.write(value.eth_signature, buf) if value.is_eth_create2(): buf.write_i32(3) _UniffiConverterTypeCreate2Data.write(value.data, buf) class ChangePubKeyAuthRequest: def __init__(self): raise RuntimeError("ChangePubKeyAuthRequest cannot be instantiated directly") # Each enum variant is a nested class of the enum itself. class ONCHAIN: @typing.no_type_check def __init__(self,): pass def __str__(self): return "ChangePubKeyAuthRequest.ONCHAIN()".format() def __eq__(self, other): if not other.is_onchain(): return False return True class ETH_ECDSA: @typing.no_type_check def __init__(self,): pass def __str__(self): return "ChangePubKeyAuthRequest.ETH_ECDSA()".format() def __eq__(self, other): if not other.is_eth_ecdsa(): return False return True class ETH_CREATE2: data: "Create2Data"; @typing.no_type_check def __init__(self,data: "Create2Data"): self.data = data def __str__(self): return "ChangePubKeyAuthRequest.ETH_CREATE2(data={})".format(self.data) def __eq__(self, other): if not other.is_eth_create2(): return False if self.data != other.data: return False return True # For each variant, we have an `is_NAME` method for easily checking # whether an instance is that variant. def is_onchain(self) -> bool: return isinstance(self, ChangePubKeyAuthRequest.ONCHAIN) def is_eth_ecdsa(self) -> bool: return isinstance(self, ChangePubKeyAuthRequest.ETH_ECDSA) def is_eth_create2(self) -> bool: return isinstance(self, ChangePubKeyAuthRequest.ETH_CREATE2) # Now, a little trick - we make each nested variant class be a subclass of the main # enum class, so that method calls and instance checks etc will work intuitively. # We might be able to do this a little more neatly with a metaclass, but this'll do. ChangePubKeyAuthRequest.ONCHAIN = type("ChangePubKeyAuthRequest.ONCHAIN", (ChangePubKeyAuthRequest.ONCHAIN, ChangePubKeyAuthRequest,), {}) # type: ignore ChangePubKeyAuthRequest.ETH_ECDSA = type("ChangePubKeyAuthRequest.ETH_ECDSA", (ChangePubKeyAuthRequest.ETH_ECDSA, ChangePubKeyAuthRequest,), {}) # type: ignore ChangePubKeyAuthRequest.ETH_CREATE2 = type("ChangePubKeyAuthRequest.ETH_CREATE2", (ChangePubKeyAuthRequest.ETH_CREATE2, ChangePubKeyAuthRequest,), {}) # type: ignore class _UniffiConverterTypeChangePubKeyAuthRequest(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return ChangePubKeyAuthRequest.ONCHAIN( ) if variant == 2: return ChangePubKeyAuthRequest.ETH_ECDSA( ) if variant == 3: return ChangePubKeyAuthRequest.ETH_CREATE2( _UniffiConverterTypeCreate2Data.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value.is_onchain(): buf.write_i32(1) if value.is_eth_ecdsa(): buf.write_i32(2) if value.is_eth_create2(): buf.write_i32(3) _UniffiConverterTypeCreate2Data.write(value.data, buf) # EthSignerError # We want to define each variant as a nested class that's also a subclass, # which is tricky in Python. To accomplish this we're going to create each # class separately, then manually add the child classes to the base class's # __dict__. All of this happens in dummy class to avoid polluting the module # namespace. class EthSignerError(Exception): pass _UniffiTempEthSignerError = EthSignerError class EthSignerError: # type: ignore class InvalidEthSigner(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.InvalidEthSigner({})".format(repr(str(self))) _UniffiTempEthSignerError.InvalidEthSigner = InvalidEthSigner # type: ignore class MissingEthPrivateKey(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.MissingEthPrivateKey({})".format(repr(str(self))) _UniffiTempEthSignerError.MissingEthPrivateKey = MissingEthPrivateKey # type: ignore class MissingEthSigner(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.MissingEthSigner({})".format(repr(str(self))) _UniffiTempEthSignerError.MissingEthSigner = MissingEthSigner # type: ignore class SigningFailed(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.SigningFailed({})".format(repr(str(self))) _UniffiTempEthSignerError.SigningFailed = SigningFailed # type: ignore class UnlockingFailed(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.UnlockingFailed({})".format(repr(str(self))) _UniffiTempEthSignerError.UnlockingFailed = UnlockingFailed # type: ignore class InvalidRawTx(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.InvalidRawTx({})".format(repr(str(self))) _UniffiTempEthSignerError.InvalidRawTx = InvalidRawTx # type: ignore class Eip712Failed(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.Eip712Failed({})".format(repr(str(self))) _UniffiTempEthSignerError.Eip712Failed = Eip712Failed # type: ignore class NoSigningKey(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.NoSigningKey({})".format(repr(str(self))) _UniffiTempEthSignerError.NoSigningKey = NoSigningKey # type: ignore class DefineAddress(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.DefineAddress({})".format(repr(str(self))) _UniffiTempEthSignerError.DefineAddress = DefineAddress # type: ignore class RecoverAddress(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.RecoverAddress({})".format(repr(str(self))) _UniffiTempEthSignerError.RecoverAddress = RecoverAddress # type: ignore class LengthMismatched(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.LengthMismatched({})".format(repr(str(self))) _UniffiTempEthSignerError.LengthMismatched = LengthMismatched # type: ignore class CryptoError(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.CryptoError({})".format(repr(str(self))) _UniffiTempEthSignerError.CryptoError = CryptoError # type: ignore class InvalidSignatureStr(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.InvalidSignatureStr({})".format(repr(str(self))) _UniffiTempEthSignerError.InvalidSignatureStr = InvalidSignatureStr # type: ignore class CustomError(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.CustomError({})".format(repr(str(self))) _UniffiTempEthSignerError.CustomError = CustomError # type: ignore class RpcSignError(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.RpcSignError({})".format(repr(str(self))) _UniffiTempEthSignerError.RpcSignError = RpcSignError # type: ignore EthSignerError = _UniffiTempEthSignerError # type: ignore del _UniffiTempEthSignerError class _UniffiConverterTypeEthSignerError(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return EthSignerError.InvalidEthSigner( _UniffiConverterString.read(buf), ) if variant == 2: return EthSignerError.MissingEthPrivateKey( _UniffiConverterString.read(buf), ) if variant == 3: return EthSignerError.MissingEthSigner( _UniffiConverterString.read(buf), ) if variant == 4: return EthSignerError.SigningFailed( _UniffiConverterString.read(buf), ) if variant == 5: return EthSignerError.UnlockingFailed( _UniffiConverterString.read(buf), ) if variant == 6: return EthSignerError.InvalidRawTx( _UniffiConverterString.read(buf), ) if variant == 7: return EthSignerError.Eip712Failed( _UniffiConverterString.read(buf), ) if variant == 8: return EthSignerError.NoSigningKey( _UniffiConverterString.read(buf), ) if variant == 9: return EthSignerError.DefineAddress( _UniffiConverterString.read(buf), ) if variant == 10: return EthSignerError.RecoverAddress( _UniffiConverterString.read(buf), ) if variant == 11: return EthSignerError.LengthMismatched( _UniffiConverterString.read(buf), ) if variant == 12: return EthSignerError.CryptoError( _UniffiConverterString.read(buf), ) if variant == 13: return EthSignerError.InvalidSignatureStr( _UniffiConverterString.read(buf), ) if variant == 14: return EthSignerError.CustomError( _UniffiConverterString.read(buf), ) if variant == 15: return EthSignerError.RpcSignError( _UniffiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") @staticmethod def write(value, buf): if isinstance(value, EthSignerError.InvalidEthSigner): buf.write_i32(1) if isinstance(value, EthSignerError.MissingEthPrivateKey): buf.write_i32(2) if isinstance(value, EthSignerError.MissingEthSigner): buf.write_i32(3) if isinstance(value, EthSignerError.SigningFailed): buf.write_i32(4) if isinstance(value, EthSignerError.UnlockingFailed): buf.write_i32(5) if isinstance(value, EthSignerError.InvalidRawTx): buf.write_i32(6) if isinstance(value, EthSignerError.Eip712Failed): buf.write_i32(7) if isinstance(value, EthSignerError.NoSigningKey): buf.write_i32(8) if isinstance(value, EthSignerError.DefineAddress): buf.write_i32(9) if isinstance(value, EthSignerError.RecoverAddress): buf.write_i32(10) if isinstance(value, EthSignerError.LengthMismatched): buf.write_i32(11) if isinstance(value, EthSignerError.CryptoError): buf.write_i32(12) if isinstance(value, EthSignerError.InvalidSignatureStr): buf.write_i32(13) if isinstance(value, EthSignerError.CustomError): buf.write_i32(14) if isinstance(value, EthSignerError.RpcSignError): buf.write_i32(15) class L1SignerType: def __init__(self): raise RuntimeError("L1SignerType cannot be instantiated directly") # Each enum variant is a nested class of the enum itself. class ETH: @typing.no_type_check def __init__(self,): pass def __str__(self): return "L1SignerType.ETH()".format() def __eq__(self, other): if not other.is_eth(): return False return True class STARKNET: chain_id: str;address: str; @typing.no_type_check def __init__(self,chain_id: str, address: str): self.chain_id = chain_id self.address = address def __str__(self): return "L1SignerType.STARKNET(chain_id={}, address={})".format(self.chain_id, self.address) def __eq__(self, other): if not other.is_starknet(): return False if self.chain_id != other.chain_id: return False if self.address != other.address: return False return True # For each variant, we have an `is_NAME` method for easily checking # whether an instance is that variant. def is_eth(self) -> bool: return isinstance(self, L1SignerType.ETH) def is_starknet(self) -> bool: return isinstance(self, L1SignerType.STARKNET) # Now, a little trick - we make each nested variant class be a subclass of the main # enum class, so that method calls and instance checks etc will work intuitively. # We might be able to do this a little more neatly with a metaclass, but this'll do. L1SignerType.ETH = type("L1SignerType.ETH", (L1SignerType.ETH, L1SignerType,), {}) # type: ignore L1SignerType.STARKNET = type("L1SignerType.STARKNET", (L1SignerType.STARKNET, L1SignerType,), {}) # type: ignore class _UniffiConverterTypeL1SignerType(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return L1SignerType.ETH( ) if variant == 2: return L1SignerType.STARKNET( _UniffiConverterString.read(buf), _UniffiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value.is_eth(): buf.write_i32(1) if value.is_starknet(): buf.write_i32(2) _UniffiConverterString.write(value.chain_id, buf) _UniffiConverterString.write(value.address, buf) class L1Type(enum.Enum): ETH = 1 STARKNET = 2 class _UniffiConverterTypeL1Type(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return L1Type.ETH if variant == 2: return L1Type.STARKNET raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value == L1Type.ETH: buf.write_i32(1) if value == L1Type.STARKNET: buf.write_i32(2) class Parameter: def __init__(self): raise RuntimeError("Parameter cannot be instantiated directly") # Each enum variant is a nested class of the enum itself. class FEE_ACCOUNT: account_id: "AccountId"; @typing.no_type_check def __init__(self,account_id: "AccountId"): self.account_id = account_id def __str__(self): return "Parameter.FEE_ACCOUNT(account_id={})".format(self.account_id) def __eq__(self, other): if not other.is_fee_account(): return False if self.account_id != other.account_id: return False return True class INSURANCE_FUND_ACCOUNT: account_id: "AccountId"; @typing.no_type_check def __init__(self,account_id: "AccountId"): self.account_id = account_id def __str__(self): return "Parameter.INSURANCE_FUND_ACCOUNT(account_id={})".format(self.account_id) def __eq__(self, other): if not other.is_insurance_fund_account(): return False if self.account_id != other.account_id: return False return True class MARGIN_INFO: margin_id: "MarginId";token_id: "TokenId";ratio: "int"; @typing.no_type_check def __init__(self,margin_id: "MarginId", token_id: "TokenId", ratio: "int"): self.margin_id = margin_id self.token_id = token_id self.ratio = ratio def __str__(self): return "Parameter.MARGIN_INFO(margin_id={}, token_id={}, ratio={})".format(self.margin_id, self.token_id, self.ratio) def __eq__(self, other): if not other.is_margin_info(): return False if self.margin_id != other.margin_id: return False if self.token_id != other.token_id: return False if self.ratio != other.ratio: return False return True class FUNDING_INFOS: infos: "typing.List[FundingInfo]"; @typing.no_type_check def __init__(self,infos: "typing.List[FundingInfo]"): self.infos = infos def __str__(self): return "Parameter.FUNDING_INFOS(infos={})".format(self.infos) def __eq__(self, other): if not other.is_funding_infos(): return False if self.infos != other.infos: return False return True class CONTRACT_INFO: pair_id: "PairId";symbol: str;initial_margin_rate: "int";maintenance_margin_rate: "int"; @typing.no_type_check def __init__(self,pair_id: "PairId", symbol: str, initial_margin_rate: "int", maintenance_margin_rate: "int"): self.pair_id = pair_id self.symbol = symbol self.initial_margin_rate = initial_margin_rate self.maintenance_margin_rate = maintenance_margin_rate def __str__(self): return "Parameter.CONTRACT_INFO(pair_id={}, symbol={}, initial_margin_rate={}, maintenance_margin_rate={})".format(self.pair_id, self.symbol, self.initial_margin_rate, self.maintenance_margin_rate) def __eq__(self, other): if not other.is_contract_info(): return False if self.pair_id != other.pair_id: return False if self.symbol != other.symbol: return False if self.initial_margin_rate != other.initial_margin_rate: return False if self.maintenance_margin_rate != other.maintenance_margin_rate: return False return True # For each variant, we have an `is_NAME` method for easily checking # whether an instance is that variant. def is_fee_account(self) -> bool: return isinstance(self, Parameter.FEE_ACCOUNT) def is_insurance_fund_account(self) -> bool: return isinstance(self, Parameter.INSURANCE_FUND_ACCOUNT) def is_margin_info(self) -> bool: return isinstance(self, Parameter.MARGIN_INFO) def is_funding_infos(self) -> bool: return isinstance(self, Parameter.FUNDING_INFOS) def is_contract_info(self) -> bool: return isinstance(self, Parameter.CONTRACT_INFO) # Now, a little trick - we make each nested variant class be a subclass of the main # enum class, so that method calls and instance checks etc will work intuitively. # We might be able to do this a little more neatly with a metaclass, but this'll do. Parameter.FEE_ACCOUNT = type("Parameter.FEE_ACCOUNT", (Parameter.FEE_ACCOUNT, Parameter,), {}) # type: ignore Parameter.INSURANCE_FUND_ACCOUNT = type("Parameter.INSURANCE_FUND_ACCOUNT", (Parameter.INSURANCE_FUND_ACCOUNT, Parameter,), {}) # type: ignore Parameter.MARGIN_INFO = type("Parameter.MARGIN_INFO", (Parameter.MARGIN_INFO, Parameter,), {}) # type: ignore Parameter.FUNDING_INFOS = type("Parameter.FUNDING_INFOS", (Parameter.FUNDING_INFOS, Parameter,), {}) # type: ignore Parameter.CONTRACT_INFO = type("Parameter.CONTRACT_INFO", (Parameter.CONTRACT_INFO, Parameter,), {}) # type: ignore class _UniffiConverterTypeParameter(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return Parameter.FEE_ACCOUNT( _UniffiConverterTypeAccountId.read(buf), ) if variant == 2: return Parameter.INSURANCE_FUND_ACCOUNT( _UniffiConverterTypeAccountId.read(buf), ) if variant == 3: return Parameter.MARGIN_INFO( _UniffiConverterTypeMarginId.read(buf), _UniffiConverterTypeTokenId.read(buf), _UniffiConverterUInt8.read(buf), ) if variant == 4: return Parameter.FUNDING_INFOS( _UniffiConverterSequenceTypeFundingInfo.read(buf), ) if variant == 5: return Parameter.CONTRACT_INFO( _UniffiConverterTypePairId.read(buf), _UniffiConverterString.read(buf), _UniffiConverterUInt16.read(buf), _UniffiConverterUInt16.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value.is_fee_account(): buf.write_i32(1) _UniffiConverterTypeAccountId.write(value.account_id, buf) if value.is_insurance_fund_account(): buf.write_i32(2) _UniffiConverterTypeAccountId.write(value.account_id, buf) if value.is_margin_info(): buf.write_i32(3) _UniffiConverterTypeMarginId.write(value.margin_id, buf) _UniffiConverterTypeTokenId.write(value.token_id, buf) _UniffiConverterUInt8.write(value.ratio, buf) if value.is_funding_infos(): buf.write_i32(4) _UniffiConverterSequenceTypeFundingInfo.write(value.infos, buf) if value.is_contract_info(): buf.write_i32(5) _UniffiConverterTypePairId.write(value.pair_id, buf) _UniffiConverterString.write(value.symbol, buf) _UniffiConverterUInt16.write(value.initial_margin_rate, buf) _UniffiConverterUInt16.write(value.maintenance_margin_rate, buf) # SignError # We want to define each variant as a nested class that's also a subclass, # which is tricky in Python. To accomplish this we're going to create each # class separately, then manually add the child classes to the base class's # __dict__. All of this happens in dummy class to avoid polluting the module # namespace. class SignError(Exception): pass _UniffiTempSignError = SignError class SignError: # type: ignore class EthSigningError(_UniffiTempSignError): def __repr__(self): return "SignError.EthSigningError({})".format(repr(str(self))) _UniffiTempSignError.EthSigningError = EthSigningError # type: ignore class ZkSigningError(_UniffiTempSignError): def __repr__(self): return "SignError.ZkSigningError({})".format(repr(str(self))) _UniffiTempSignError.ZkSigningError = ZkSigningError # type: ignore class StarkSigningError(_UniffiTempSignError): def __repr__(self): return "SignError.StarkSigningError({})".format(repr(str(self))) _UniffiTempSignError.StarkSigningError = StarkSigningError # type: ignore class IncorrectTx(_UniffiTempSignError): def __repr__(self): return "SignError.IncorrectTx({})".format(repr(str(self))) _UniffiTempSignError.IncorrectTx = IncorrectTx # type: ignore SignError = _UniffiTempSignError # type: ignore del _UniffiTempSignError class _UniffiConverterTypeSignError(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return SignError.EthSigningError( _UniffiConverterString.read(buf), ) if variant == 2: return SignError.ZkSigningError( _UniffiConverterString.read(buf), ) if variant == 3: return SignError.StarkSigningError( _UniffiConverterString.read(buf), ) if variant == 4: return SignError.IncorrectTx( _UniffiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") @staticmethod def write(value, buf): if isinstance(value, SignError.EthSigningError): buf.write_i32(1) if isinstance(value, SignError.ZkSigningError): buf.write_i32(2) if isinstance(value, SignError.StarkSigningError): buf.write_i32(3) if isinstance(value, SignError.IncorrectTx): buf.write_i32(4) # StarkSignerError # We want to define each variant as a nested class that's also a subclass, # which is tricky in Python. To accomplish this we're going to create each # class separately, then manually add the child classes to the base class's # __dict__. All of this happens in dummy class to avoid polluting the module # namespace. class StarkSignerError(Exception): pass _UniffiTempStarkSignerError = StarkSignerError class StarkSignerError: # type: ignore class InvalidStarknetSigner(_UniffiTempStarkSignerError): def __repr__(self): return "StarkSignerError.InvalidStarknetSigner({})".format(repr(str(self))) _UniffiTempStarkSignerError.InvalidStarknetSigner = InvalidStarknetSigner # type: ignore class InvalidSignature(_UniffiTempStarkSignerError): def __repr__(self): return "StarkSignerError.InvalidSignature({})".format(repr(str(self))) _UniffiTempStarkSignerError.InvalidSignature = InvalidSignature # type: ignore class InvalidPrivKey(_UniffiTempStarkSignerError): def __repr__(self): return "StarkSignerError.InvalidPrivKey({})".format(repr(str(self))) _UniffiTempStarkSignerError.InvalidPrivKey = InvalidPrivKey # type: ignore class SignError(_UniffiTempStarkSignerError): def __repr__(self): return "StarkSignerError.SignError({})".format(repr(str(self))) _UniffiTempStarkSignerError.SignError = SignError # type: ignore class RpcSignError(_UniffiTempStarkSignerError): def __repr__(self): return "StarkSignerError.RpcSignError({})".format(repr(str(self))) _UniffiTempStarkSignerError.RpcSignError = RpcSignError # type: ignore StarkSignerError = _UniffiTempStarkSignerError # type: ignore del _UniffiTempStarkSignerError class _UniffiConverterTypeStarkSignerError(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return StarkSignerError.InvalidStarknetSigner( _UniffiConverterString.read(buf), ) if variant == 2: return StarkSignerError.InvalidSignature( _UniffiConverterString.read(buf), ) if variant == 3: return StarkSignerError.InvalidPrivKey( _UniffiConverterString.read(buf), ) if variant == 4: return StarkSignerError.SignError( _UniffiConverterString.read(buf), ) if variant == 5: return StarkSignerError.RpcSignError( _UniffiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") @staticmethod def write(value, buf): if isinstance(value, StarkSignerError.InvalidStarknetSigner): buf.write_i32(1) if isinstance(value, StarkSignerError.InvalidSignature): buf.write_i32(2) if isinstance(value, StarkSignerError.InvalidPrivKey): buf.write_i32(3) if isinstance(value, StarkSignerError.SignError): buf.write_i32(4) if isinstance(value, StarkSignerError.RpcSignError): buf.write_i32(5) # TypeError # We want to define each variant as a nested class that's also a subclass, # which is tricky in Python. To accomplish this we're going to create each # class separately, then manually add the child classes to the base class's # __dict__. All of this happens in dummy class to avoid polluting the module # namespace. class TypeError(Exception): pass _UniffiTempTypeError = TypeError class TypeError: # type: ignore class InvalidAddress(_UniffiTempTypeError): def __repr__(self): return "TypeError.InvalidAddress({})".format(repr(str(self))) _UniffiTempTypeError.InvalidAddress = InvalidAddress # type: ignore class InvalidTxHash(_UniffiTempTypeError): def __repr__(self): return "TypeError.InvalidTxHash({})".format(repr(str(self))) _UniffiTempTypeError.InvalidTxHash = InvalidTxHash # type: ignore class NotStartWithZerox(_UniffiTempTypeError): def __repr__(self): return "TypeError.NotStartWithZerox({})".format(repr(str(self))) _UniffiTempTypeError.NotStartWithZerox = NotStartWithZerox # type: ignore class SizeMismatch(_UniffiTempTypeError): def __repr__(self): return "TypeError.SizeMismatch({})".format(repr(str(self))) _UniffiTempTypeError.SizeMismatch = SizeMismatch # type: ignore class DecodeFromHexErr(_UniffiTempTypeError): def __repr__(self): return "TypeError.DecodeFromHexErr({})".format(repr(str(self))) _UniffiTempTypeError.DecodeFromHexErr = DecodeFromHexErr # type: ignore class TooBigInteger(_UniffiTempTypeError): def __repr__(self): return "TypeError.TooBigInteger({})".format(repr(str(self))) _UniffiTempTypeError.TooBigInteger = TooBigInteger # type: ignore class InvalidBigIntStr(_UniffiTempTypeError): def __repr__(self): return "TypeError.InvalidBigIntStr({})".format(repr(str(self))) _UniffiTempTypeError.InvalidBigIntStr = InvalidBigIntStr # type: ignore TypeError = _UniffiTempTypeError # type: ignore del _UniffiTempTypeError class _UniffiConverterTypeTypeError(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return TypeError.InvalidAddress( _UniffiConverterString.read(buf), ) if variant == 2: return TypeError.InvalidTxHash( _UniffiConverterString.read(buf), ) if variant == 3: return TypeError.NotStartWithZerox( _UniffiConverterString.read(buf), ) if variant == 4: return TypeError.SizeMismatch( _UniffiConverterString.read(buf), ) if variant == 5: return TypeError.DecodeFromHexErr( _UniffiConverterString.read(buf), ) if variant == 6: return TypeError.TooBigInteger( _UniffiConverterString.read(buf), ) if variant == 7: return TypeError.InvalidBigIntStr( _UniffiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") @staticmethod def write(value, buf): if isinstance(value, TypeError.InvalidAddress): buf.write_i32(1) if isinstance(value, TypeError.InvalidTxHash): buf.write_i32(2) if isinstance(value, TypeError.NotStartWithZerox): buf.write_i32(3) if isinstance(value, TypeError.SizeMismatch): buf.write_i32(4) if isinstance(value, TypeError.DecodeFromHexErr): buf.write_i32(5) if isinstance(value, TypeError.TooBigInteger): buf.write_i32(6) if isinstance(value, TypeError.InvalidBigIntStr): buf.write_i32(7) class TypedDataMessage: def __init__(self): raise RuntimeError("TypedDataMessage cannot be instantiated directly") # Each enum variant is a nested class of the enum itself. class CREATE_L2_KEY: message: "Message"; @typing.no_type_check def __init__(self,message: "Message"): self.message = message def __str__(self): return "TypedDataMessage.CREATE_L2_KEY(message={})".format(self.message) def __eq__(self, other): if not other.is_create_l2_key(): return False if self.message != other.message: return False return True class TRANSACTION: message: "TxMessage"; @typing.no_type_check def __init__(self,message: "TxMessage"): self.message = message def __str__(self): return "TypedDataMessage.TRANSACTION(message={})".format(self.message) def __eq__(self, other): if not other.is_transaction(): return False if self.message != other.message: return False return True # For each variant, we have an `is_NAME` method for easily checking # whether an instance is that variant. def is_create_l2_key(self) -> bool: return isinstance(self, TypedDataMessage.CREATE_L2_KEY) def is_transaction(self) -> bool: return isinstance(self, TypedDataMessage.TRANSACTION) # Now, a little trick - we make each nested variant class be a subclass of the main # enum class, so that method calls and instance checks etc will work intuitively. # We might be able to do this a little more neatly with a metaclass, but this'll do. TypedDataMessage.CREATE_L2_KEY = type("TypedDataMessage.CREATE_L2_KEY", (TypedDataMessage.CREATE_L2_KEY, TypedDataMessage,), {}) # type: ignore TypedDataMessage.TRANSACTION = type("TypedDataMessage.TRANSACTION", (TypedDataMessage.TRANSACTION, TypedDataMessage,), {}) # type: ignore class _UniffiConverterTypeTypedDataMessage(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return TypedDataMessage.CREATE_L2_KEY( _UniffiConverterTypeMessage.read(buf), ) if variant == 2: return TypedDataMessage.TRANSACTION( _UniffiConverterTypeTxMessage.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value.is_create_l2_key(): buf.write_i32(1) _UniffiConverterTypeMessage.write(value.message, buf) if value.is_transaction(): buf.write_i32(2) _UniffiConverterTypeTxMessage.write(value.message, buf) # ZkSignerError # We want to define each variant as a nested class that's also a subclass, # which is tricky in Python. To accomplish this we're going to create each # class separately, then manually add the child classes to the base class's # __dict__. All of this happens in dummy class to avoid polluting the module # namespace. class ZkSignerError(Exception): pass _UniffiTempZkSignerError = ZkSignerError class ZkSignerError: # type: ignore class CustomError(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.CustomError({})".format(repr(str(self))) _UniffiTempZkSignerError.CustomError = CustomError # type: ignore class InvalidSignature(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.InvalidSignature({})".format(repr(str(self))) _UniffiTempZkSignerError.InvalidSignature = InvalidSignature # type: ignore class InvalidPrivKey(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.InvalidPrivKey({})".format(repr(str(self))) _UniffiTempZkSignerError.InvalidPrivKey = InvalidPrivKey # type: ignore class InvalidSeed(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.InvalidSeed({})".format(repr(str(self))) _UniffiTempZkSignerError.InvalidSeed = InvalidSeed # type: ignore class InvalidPubkey(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.InvalidPubkey({})".format(repr(str(self))) _UniffiTempZkSignerError.InvalidPubkey = InvalidPubkey # type: ignore class InvalidPubkeyHash(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.InvalidPubkeyHash({})".format(repr(str(self))) _UniffiTempZkSignerError.InvalidPubkeyHash = InvalidPubkeyHash # type: ignore class EthSignerError(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.EthSignerError({})".format(repr(str(self))) _UniffiTempZkSignerError.EthSignerError = EthSignerError # type: ignore class StarkSignerError(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.StarkSignerError({})".format(repr(str(self))) _UniffiTempZkSignerError.StarkSignerError = StarkSignerError # type: ignore ZkSignerError = _UniffiTempZkSignerError # type: ignore del _UniffiTempZkSignerError class _UniffiConverterTypeZkSignerError(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return ZkSignerError.CustomError( _UniffiConverterString.read(buf), ) if variant == 2: return ZkSignerError.InvalidSignature( _UniffiConverterString.read(buf), ) if variant == 3: return ZkSignerError.InvalidPrivKey( _UniffiConverterString.read(buf), ) if variant == 4: return ZkSignerError.InvalidSeed( _UniffiConverterString.read(buf), ) if variant == 5: return ZkSignerError.InvalidPubkey( _UniffiConverterString.read(buf), ) if variant == 6: return ZkSignerError.InvalidPubkeyHash( _UniffiConverterString.read(buf), ) if variant == 7: return ZkSignerError.EthSignerError( _UniffiConverterString.read(buf), ) if variant == 8: return ZkSignerError.StarkSignerError( _UniffiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") @staticmethod def write(value, buf): if isinstance(value, ZkSignerError.CustomError): buf.write_i32(1) if isinstance(value, ZkSignerError.InvalidSignature): buf.write_i32(2) if isinstance(value, ZkSignerError.InvalidPrivKey): buf.write_i32(3) if isinstance(value, ZkSignerError.InvalidSeed): buf.write_i32(4) if isinstance(value, ZkSignerError.InvalidPubkey): buf.write_i32(5) if isinstance(value, ZkSignerError.InvalidPubkeyHash): buf.write_i32(6) if isinstance(value, ZkSignerError.EthSignerError): buf.write_i32(7) if isinstance(value, ZkSignerError.StarkSignerError): buf.write_i32(8) class _UniffiConverterOptionalString(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.write_u8(0) return buf.write_u8(1) _UniffiConverterString.write(value, buf) @classmethod def read(cls, buf): flag = buf.read_u8() if flag == 0: return None elif flag == 1: return _UniffiConverterString.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class _UniffiConverterOptionalTypeZkLinkSignature(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.write_u8(0) return buf.write_u8(1) _UniffiConverterTypeZkLinkSignature.write(value, buf) @classmethod def read(cls, buf): flag = buf.read_u8() if flag == 0: return None elif flag == 1: return _UniffiConverterTypeZkLinkSignature.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class _UniffiConverterOptionalSequenceUInt8(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.write_u8(0) return buf.write_u8(1) _UniffiConverterSequenceUInt8.write(value, buf) @classmethod def read(cls, buf): flag = buf.read_u8() if flag == 0: return None elif flag == 1: return _UniffiConverterSequenceUInt8.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class _UniffiConverterOptionalTypeH256(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.write_u8(0) return buf.write_u8(1) _UniffiConverterTypeH256.write(value, buf) @classmethod def read(cls, buf): flag = buf.read_u8() if flag == 0: return None elif flag == 1: return _UniffiConverterTypeH256.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class _UniffiConverterOptionalTypePackedEthSignature(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.write_u8(0) return buf.write_u8(1) _UniffiConverterTypePackedEthSignature.write(value, buf) @classmethod def read(cls, buf): flag = buf.read_u8() if flag == 0: return None elif flag == 1: return _UniffiConverterTypePackedEthSignature.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class _UniffiConverterOptionalTypeTxLayer1Signature(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.write_u8(0) return buf.write_u8(1) _UniffiConverterTypeTxLayer1Signature.write(value, buf) @classmethod def read(cls, buf): flag = buf.read_u8() if flag == 0: return None elif flag == 1: return _UniffiConverterTypeTxLayer1Signature.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class _UniffiConverterSequenceUInt8(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.write_i32(items) for item in value: _UniffiConverterUInt8.write(item, buf) @classmethod def read(cls, buf): count = buf.read_i32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ _UniffiConverterUInt8.read(buf) for i in range(count) ] class _UniffiConverterSequenceTypeContract(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.write_i32(items) for item in value: _UniffiConverterTypeContract.write(item, buf) @classmethod def read(cls, buf): count = buf.read_i32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ _UniffiConverterTypeContract.read(buf) for i in range(count) ] class _UniffiConverterSequenceTypeContractPrice(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.write_i32(items) for item in value: _UniffiConverterTypeContractPrice.write(item, buf) @classmethod def read(cls, buf): count = buf.read_i32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ _UniffiConverterTypeContractPrice.read(buf) for i in range(count) ] class _UniffiConverterSequenceTypeFundingInfo(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.write_i32(items) for item in value: _UniffiConverterTypeFundingInfo.write(item, buf) @classmethod def read(cls, buf): count = buf.read_i32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ _UniffiConverterTypeFundingInfo.read(buf) for i in range(count) ] class _UniffiConverterSequenceTypeSpotPriceInfo(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.write_i32(items) for item in value: _UniffiConverterTypeSpotPriceInfo.write(item, buf) @classmethod def read(cls, buf): count = buf.read_i32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ _UniffiConverterTypeSpotPriceInfo.read(buf) for i in range(count) ] class _UniffiConverterSequenceTypeAccountId(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.write_i32(items) for item in value: _UniffiConverterTypeAccountId.write(item, buf) @classmethod def read(cls, buf): count = buf.read_i32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ _UniffiConverterTypeAccountId.read(buf) for i in range(count) ] # Type alias AccountId = int class _UniffiConverterTypeAccountId: @staticmethod def write(value, buf): _UniffiConverterUInt32.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt32.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt32.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt32.lower(value) # Type alias Address = str class _UniffiConverterTypeAddress: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias BigUint = str class _UniffiConverterTypeBigUint: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias BlockNumber = int class _UniffiConverterTypeBlockNumber: @staticmethod def write(value, buf): _UniffiConverterUInt32.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt32.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt32.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt32.lower(value) # Type alias ChainId = int class _UniffiConverterTypeChainId: @staticmethod def write(value, buf): _UniffiConverterUInt8.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt8.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt8.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt8.lower(value) # Type alias EthBlockId = int class _UniffiConverterTypeEthBlockId: @staticmethod def write(value, buf): _UniffiConverterUInt64.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt64.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt64.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt64.lower(value) # Type alias H256 = str class _UniffiConverterTypeH256: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias MarginId = int class _UniffiConverterTypeMarginId: @staticmethod def write(value, buf): _UniffiConverterUInt8.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt8.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt8.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt8.lower(value) # Type alias Nonce = int class _UniffiConverterTypeNonce: @staticmethod def write(value, buf): _UniffiConverterUInt32.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt32.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt32.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt32.lower(value) # Type alias PackedEthSignature = str class _UniffiConverterTypePackedEthSignature: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias PackedPublicKey = str class _UniffiConverterTypePackedPublicKey: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias PackedSignature = str class _UniffiConverterTypePackedSignature: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias PairId = int class _UniffiConverterTypePairId: @staticmethod def write(value, buf): _UniffiConverterUInt16.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt16.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt16.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt16.lower(value) # Type alias PriorityOpId = int class _UniffiConverterTypePriorityOpId: @staticmethod def write(value, buf): _UniffiConverterUInt64.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt64.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt64.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt64.lower(value) # Type alias PubKeyHash = str class _UniffiConverterTypePubKeyHash: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias SlotId = int class _UniffiConverterTypeSlotId: @staticmethod def write(value, buf): _UniffiConverterUInt32.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt32.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt32.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt32.lower(value) # Type alias StarkEip712Signature = str class _UniffiConverterTypeStarkEip712Signature: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias SubAccountId = int class _UniffiConverterTypeSubAccountId: @staticmethod def write(value, buf): _UniffiConverterUInt8.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt8.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt8.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt8.lower(value) # Type alias TimeStamp = int class _UniffiConverterTypeTimeStamp: @staticmethod def write(value, buf): _UniffiConverterUInt32.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt32.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt32.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt32.lower(value) # Type alias TokenId = int class _UniffiConverterTypeTokenId: @staticmethod def write(value, buf): _UniffiConverterUInt32.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt32.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt32.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt32.lower(value) # Type alias TxHash = str class _UniffiConverterTypeTxHash: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias TxLayer1Signature = str class _UniffiConverterTypeTxLayer1Signature: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias ZkLinkAddress = str class _UniffiConverterTypeZkLinkAddress: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias ZkLinkTx = str class _UniffiConverterTypeZkLinkTx: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) def create_signed_change_pubkey(zklink_signer: "ZkLinkSigner",tx: "ChangePubKey",eth_auth_data: "ChangePubKeyAuthData") -> "ChangePubKey": return _UniffiConverterTypeChangePubKey.lift(_rust_call_with_error(_UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_func_create_signed_change_pubkey, _UniffiConverterTypeZkLinkSigner.lower(zklink_signer), _UniffiConverterTypeChangePubKey.lower(tx), _UniffiConverterTypeChangePubKeyAuthData.lower(eth_auth_data))) def eth_signature_of_change_pubkey(tx: "ChangePubKey",eth_signer: "EthSigner") -> "PackedEthSignature": return _UniffiConverterTypePackedEthSignature.lift(_rust_call_with_error(_UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_func_eth_signature_of_change_pubkey, _UniffiConverterTypeChangePubKey.lower(tx), _UniffiConverterTypeEthSigner.lower(eth_signer))) def get_public_key_hash(public_key: "PackedPublicKey") -> "PubKeyHash": return _UniffiConverterTypePubKeyHash.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_get_public_key_hash, _UniffiConverterTypePackedPublicKey.lower(public_key))) def verify_musig(signature: "ZkLinkSignature",msg: "typing.List[int]"): return _UniffiConverterBool.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_verify_musig, _UniffiConverterTypeZkLinkSignature.lower(signature), _UniffiConverterSequenceUInt8.lower(msg))) def zklink_main_net_url(): return _UniffiConverterString.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_main_net_url,)) def zklink_test_net_url(): return _UniffiConverterString.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_test_net_url,)) __all__ = [ "InternalError", "ChangePubKeyAuthData", "ChangePubKeyAuthRequest", "EthSignerError", "L1SignerType", "L1Type", "Parameter", "SignError", "StarkSignerError", "TypeError", "TypedDataMessage", "ZkSignerError", "AutoDeleveragingBuilder", "ChangePubKeyBuilder", "ContractBuilder", "ContractMatchingBuilder", "ContractPrice", "Create2Data", "DepositBuilder", "ForcedExitBuilder", "FullExitBuilder", "FundingBuilder", "FundingInfo", "LiquidationBuilder", "Message", "OraclePrices", "OrderMatchingBuilder", "SpotPriceInfo", "TransferBuilder", "TxMessage", "TxSignature", "UpdateGlobalVarBuilder", "WithdrawBuilder", "ZkLinkSignature", "create_signed_change_pubkey", "eth_signature_of_change_pubkey", "get_public_key_hash", "verify_musig", "zklink_main_net_url", "zklink_test_net_url", "AutoDeleveraging", "ChangePubKey", "Contract", "ContractMatching", "Deposit", "EthSigner", "ForcedExit", "FullExit", "Funding", "Liquidation", "Order", "OrderMatching", "Signer", "StarkSigner", "Transfer", "TypedData", "UpdateGlobalVar", "Withdraw", "ZkLinkSigner", ] ================================================ FILE: jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk-pc.py ================================================ # This file was autogenerated by some hot garbage in the `uniffi` crate. # Trust me, you don't want to mess with it! # Common helper code. # # Ideally this would live in a separate .py file where it can be unittested etc # in isolation, and perhaps even published as a re-useable package. # # However, it's important that the details of how this helper code works (e.g. the # way that different builtin types are passed across the FFI) exactly match what's # expected by the rust code on the other side of the interface. In practice right # now that means coming from the exact some version of `uniffi` that was used to # compile the rust component. The easiest way to ensure this is to bundle the Python # helpers directly inline like we're doing here. import os import sys import ctypes import enum import struct import contextlib import datetime import typing import platform import threading # Used for default argument values _DEFAULT = object() class _UniffiRustBuffer(ctypes.Structure): _fields_ = [ ("capacity", ctypes.c_int32), ("len", ctypes.c_int32), ("data", ctypes.POINTER(ctypes.c_char)), ] @staticmethod def alloc(size): return _rust_call(_UniffiLib.ffi_zklink_sdk_rustbuffer_alloc, size) @staticmethod def reserve(rbuf, additional): return _rust_call(_UniffiLib.ffi_zklink_sdk_rustbuffer_reserve, rbuf, additional) def free(self): return _rust_call(_UniffiLib.ffi_zklink_sdk_rustbuffer_free, self) def __str__(self): return "_UniffiRustBuffer(capacity={}, len={}, data={})".format( self.capacity, self.len, self.data[0:self.len] ) @contextlib.contextmanager def alloc_with_builder(*args): """Context-manger to allocate a buffer using a _UniffiRustBufferBuilder. The allocated buffer will be automatically freed if an error occurs, ensuring that we don't accidentally leak it. """ builder = _UniffiRustBufferBuilder() try: yield builder except: builder.discard() raise @contextlib.contextmanager def consume_with_stream(self): """Context-manager to consume a buffer using a _UniffiRustBufferStream. The _UniffiRustBuffer will be freed once the context-manager exits, ensuring that we don't leak it even if an error occurs. """ try: s = _UniffiRustBufferStream.from_rust_buffer(self) yield s if s.remaining() != 0: raise RuntimeError("junk data left in buffer at end of consume_with_stream") finally: self.free() @contextlib.contextmanager def read_with_stream(self): """Context-manager to read a buffer using a _UniffiRustBufferStream. This is like consume_with_stream, but doesn't free the buffer afterwards. It should only be used with borrowed `_UniffiRustBuffer` data. """ s = _UniffiRustBufferStream.from_rust_buffer(self) yield s if s.remaining() != 0: raise RuntimeError("junk data left in buffer at end of read_with_stream") class _UniffiForeignBytes(ctypes.Structure): _fields_ = [ ("len", ctypes.c_int32), ("data", ctypes.POINTER(ctypes.c_char)), ] def __str__(self): return "_UniffiForeignBytes(len={}, data={})".format(self.len, self.data[0:self.len]) class _UniffiRustBufferStream: """ Helper for structured reading of bytes from a _UniffiRustBuffer """ def __init__(self, data, len): self.data = data self.len = len self.offset = 0 @classmethod def from_rust_buffer(cls, buf): return cls(buf.data, buf.len) def remaining(self): return self.len - self.offset def _unpack_from(self, size, format): if self.offset + size > self.len: raise InternalError("read past end of rust buffer") value = struct.unpack(format, self.data[self.offset:self.offset+size])[0] self.offset += size return value def read(self, size): if self.offset + size > self.len: raise InternalError("read past end of rust buffer") data = self.data[self.offset:self.offset+size] self.offset += size return data def read_i8(self): return self._unpack_from(1, ">b") def read_u8(self): return self._unpack_from(1, ">B") def read_i16(self): return self._unpack_from(2, ">h") def read_u16(self): return self._unpack_from(2, ">H") def read_i32(self): return self._unpack_from(4, ">i") def read_u32(self): return self._unpack_from(4, ">I") def read_i64(self): return self._unpack_from(8, ">q") def read_u64(self): return self._unpack_from(8, ">Q") def read_float(self): v = self._unpack_from(4, ">f") return v def read_double(self): return self._unpack_from(8, ">d") def read_c_size_t(self): return self._unpack_from(ctypes.sizeof(ctypes.c_size_t) , "@N") class _UniffiRustBufferBuilder: """ Helper for structured writing of bytes into a _UniffiRustBuffer. """ def __init__(self): self.rbuf = _UniffiRustBuffer.alloc(16) self.rbuf.len = 0 def finalize(self): rbuf = self.rbuf self.rbuf = None return rbuf def discard(self): if self.rbuf is not None: rbuf = self.finalize() rbuf.free() @contextlib.contextmanager def _reserve(self, num_bytes): if self.rbuf.len + num_bytes > self.rbuf.capacity: self.rbuf = _UniffiRustBuffer.reserve(self.rbuf, num_bytes) yield None self.rbuf.len += num_bytes def _pack_into(self, size, format, value): with self._reserve(size): # XXX TODO: I feel like I should be able to use `struct.pack_into` here but can't figure it out. for i, byte in enumerate(struct.pack(format, value)): self.rbuf.data[self.rbuf.len + i] = byte def write(self, value): with self._reserve(len(value)): for i, byte in enumerate(value): self.rbuf.data[self.rbuf.len + i] = byte def write_i8(self, v): self._pack_into(1, ">b", v) def write_u8(self, v): self._pack_into(1, ">B", v) def write_i16(self, v): self._pack_into(2, ">h", v) def write_u16(self, v): self._pack_into(2, ">H", v) def write_i32(self, v): self._pack_into(4, ">i", v) def write_u32(self, v): self._pack_into(4, ">I", v) def write_i64(self, v): self._pack_into(8, ">q", v) def write_u64(self, v): self._pack_into(8, ">Q", v) def write_float(self, v): self._pack_into(4, ">f", v) def write_double(self, v): self._pack_into(8, ">d", v) def write_c_size_t(self, v): self._pack_into(ctypes.sizeof(ctypes.c_size_t) , "@N", v) # A handful of classes and functions to support the generated data structures. # This would be a good candidate for isolating in its own ffi-support lib. class InternalError(Exception): pass class _UniffiRustCallStatus(ctypes.Structure): """ Error runtime. """ _fields_ = [ ("code", ctypes.c_int8), ("error_buf", _UniffiRustBuffer), ] # These match the values from the uniffi::rustcalls module CALL_SUCCESS = 0 CALL_ERROR = 1 CALL_PANIC = 2 def __str__(self): if self.code == _UniffiRustCallStatus.CALL_SUCCESS: return "_UniffiRustCallStatus(CALL_SUCCESS)" elif self.code == _UniffiRustCallStatus.CALL_ERROR: return "_UniffiRustCallStatus(CALL_ERROR)" elif self.code == _UniffiRustCallStatus.CALL_PANIC: return "_UniffiRustCallStatus(CALL_PANIC)" else: return "_UniffiRustCallStatus()" def _rust_call(fn, *args): # Call a rust function return _rust_call_with_error(None, fn, *args) def _rust_call_with_error(error_ffi_converter, fn, *args): # Call a rust function and handle any errors # # This function is used for rust calls that return Result<> and therefore can set the CALL_ERROR status code. # error_ffi_converter must be set to the _UniffiConverter for the error class that corresponds to the result. call_status = _UniffiRustCallStatus(code=_UniffiRustCallStatus.CALL_SUCCESS, error_buf=_UniffiRustBuffer(0, 0, None)) args_with_error = args + (ctypes.byref(call_status),) result = fn(*args_with_error) _uniffi_check_call_status(error_ffi_converter, call_status) return result def _uniffi_check_call_status(error_ffi_converter, call_status): if call_status.code == _UniffiRustCallStatus.CALL_SUCCESS: pass elif call_status.code == _UniffiRustCallStatus.CALL_ERROR: if error_ffi_converter is None: call_status.error_buf.free() raise InternalError("_rust_call_with_error: CALL_ERROR, but error_ffi_converter is None") else: raise error_ffi_converter.lift(call_status.error_buf) elif call_status.code == _UniffiRustCallStatus.CALL_PANIC: # When the rust code sees a panic, it tries to construct a _UniffiRustBuffer # with the message. But if that code panics, then it just sends back # an empty buffer. if call_status.error_buf.len > 0: msg = _UniffiConverterString.lift(call_status.error_buf) else: msg = "Unknown rust panic" raise InternalError(msg) else: raise InternalError("Invalid _UniffiRustCallStatus code: {}".format( call_status.code)) # A function pointer for a callback as defined by UniFFI. # Rust definition `fn(handle: u64, method: u32, args: _UniffiRustBuffer, buf_ptr: *mut _UniffiRustBuffer) -> int` _UNIFFI_FOREIGN_CALLBACK_T = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.c_ulonglong, ctypes.c_ulong, ctypes.POINTER(ctypes.c_char), ctypes.c_int, ctypes.POINTER(_UniffiRustBuffer)) # UniFFI future continuation _UNIFFI_FUTURE_CONTINUATION_T = ctypes.CFUNCTYPE(None, ctypes.c_size_t, ctypes.c_int8) class _UniffiPointerManagerCPython: """ Manage giving out pointers to Python objects on CPython This class is used to generate opaque pointers that reference Python objects to pass to Rust. It assumes a CPython platform. See _UniffiPointerManagerGeneral for the alternative. """ def new_pointer(self, obj): """ Get a pointer for an object as a ctypes.c_size_t instance Each call to new_pointer() must be balanced with exactly one call to release_pointer() This returns a ctypes.c_size_t. This is always the same size as a pointer and can be interchanged with pointers for FFI function arguments and return values. """ # IncRef the object since we're going to pass a pointer to Rust ctypes.pythonapi.Py_IncRef(ctypes.py_object(obj)) # id() is the object address on CPython # (https://docs.python.org/3/library/functions.html#id) return id(obj) def release_pointer(self, address): py_obj = ctypes.cast(address, ctypes.py_object) obj = py_obj.value ctypes.pythonapi.Py_DecRef(py_obj) return obj def lookup(self, address): return ctypes.cast(address, ctypes.py_object).value class _UniffiPointerManagerGeneral: """ Manage giving out pointers to Python objects on non-CPython platforms This has the same API as _UniffiPointerManagerCPython, but doesn't assume we're running on CPython and is slightly slower. Instead of using real pointers, it maps integer values to objects and returns the keys as c_size_t values. """ def __init__(self): self._map = {} self._lock = threading.Lock() self._current_handle = 0 def new_pointer(self, obj): with self._lock: handle = self._current_handle self._current_handle += 1 self._map[handle] = obj return handle def release_pointer(self, handle): with self._lock: return self._map.pop(handle) def lookup(self, handle): with self._lock: return self._map[handle] # Pick an pointer manager implementation based on the platform if platform.python_implementation() == 'CPython': _UniffiPointerManager = _UniffiPointerManagerCPython # type: ignore else: _UniffiPointerManager = _UniffiPointerManagerGeneral # type: ignore # Types conforming to `_UniffiConverterPrimitive` pass themselves directly over the FFI. class _UniffiConverterPrimitive: @classmethod def check(cls, value): return value @classmethod def lift(cls, value): return value @classmethod def lower(cls, value): return cls.lowerUnchecked(cls.check(value)) @classmethod def lowerUnchecked(cls, value): return value @classmethod def write(cls, value, buf): cls.write_unchecked(cls.check(value), buf) class _UniffiConverterPrimitiveInt(_UniffiConverterPrimitive): @classmethod def check(cls, value): try: value = value.__index__() except Exception: raise TypeError("'{}' object cannot be interpreted as an integer".format(type(value).__name__)) if not isinstance(value, int): raise TypeError("__index__ returned non-int (type {})".format(type(value).__name__)) if not cls.VALUE_MIN <= value < cls.VALUE_MAX: raise ValueError("{} requires {} <= value < {}".format(cls.CLASS_NAME, cls.VALUE_MIN, cls.VALUE_MAX)) return super().check(value) class _UniffiConverterPrimitiveFloat(_UniffiConverterPrimitive): @classmethod def check(cls, value): try: value = value.__float__() except Exception: raise TypeError("must be real number, not {}".format(type(value).__name__)) if not isinstance(value, float): raise TypeError("__float__ returned non-float (type {})".format(type(value).__name__)) return super().check(value) # Helper class for wrapper types that will always go through a _UniffiRustBuffer. # Classes should inherit from this and implement the `read` and `write` static methods. class _UniffiConverterRustBuffer: @classmethod def lift(cls, rbuf): with rbuf.consume_with_stream() as stream: return cls.read(stream) @classmethod def lower(cls, value): with _UniffiRustBuffer.alloc_with_builder() as builder: cls.write(value, builder) return builder.finalize() # Contains loading, initialization code, and the FFI Function declarations. # Define some ctypes FFI types that we use in the library """ ctypes type for the foreign executor callback. This is a built-in interface for scheduling tasks Args: executor: opaque c_size_t value representing the eventloop delay: delay in ms task: function pointer to the task callback task_data: void pointer to the task callback data Normally we should call task(task_data) after the detail. However, when task is NULL this indicates that Rust has dropped the ForeignExecutor and we should decrease the EventLoop refcount. """ _UNIFFI_FOREIGN_EXECUTOR_CALLBACK_T = ctypes.CFUNCTYPE(ctypes.c_int8, ctypes.c_size_t, ctypes.c_uint32, ctypes.c_void_p, ctypes.c_void_p) """ Function pointer for a Rust task, which a callback function that takes a opaque pointer """ _UNIFFI_RUST_TASK = ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.c_int8) def _uniffi_future_callback_t(return_type): """ Factory function to create callback function types for async functions """ return ctypes.CFUNCTYPE(None, ctypes.c_size_t, return_type, _UniffiRustCallStatus) def _uniffi_load_indirect(): """ This is how we find and load the dynamic library provided by the component. For now we just look it up by name. """ if sys.platform == "darwin": libname = "lib{}.dylib" elif sys.platform.startswith("win"): # As of python3.8, ctypes does not seem to search $PATH when loading DLLs. # We could use `os.add_dll_directory` to configure the search path, but # it doesn't feel right to mess with application-wide settings. Let's # assume that the `.dll` is next to the `.py` file and load by full path. libname = os.path.join( os.path.dirname(__file__), "{}.dll", ) else: # Anything else must be an ELF platform - Linux, *BSD, Solaris/illumos libname = "lib{}.so" libname = libname.format("zklink_sdk") path = os.path.join(os.path.dirname(__file__), libname) lib = ctypes.cdll.LoadLibrary(path) return lib def _uniffi_check_contract_api_version(lib): # Get the bindings contract version from our ComponentInterface bindings_contract_version = 24 # Get the scaffolding contract version by calling the into the dylib scaffolding_contract_version = lib.ffi_zklink_sdk_uniffi_contract_version() if bindings_contract_version != scaffolding_contract_version: raise InternalError("UniFFI contract version mismatch: try cleaning and rebuilding your project") def _uniffi_check_api_checksums(lib): if lib.uniffi_zklink_sdk_checksum_func_closest_packable_fee_amount() != 18129: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_func_closest_packable_token_amount() != 61679: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_func_create_signed_change_pubkey() != 63374: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_func_eth_signature_of_change_pubkey() != 32759: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_func_get_public_key_hash() != 58294: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_func_is_fee_amount_packable() != 11137: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_func_is_token_amount_packable() != 50233: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_func_verify_musig() != 61749: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_func_zklink_main_net_url() != 63488: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_func_zklink_test_net_url() != 4933: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_create_signed_tx() != 63490: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_bytes() != 44684: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_signature() != 16515: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_signature_valid() != 2829: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_valid() != 32196: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_json_str() != 3439: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_to_zklink_tx() != 64239: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_tx_hash() != 35167: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_get_bytes() != 1938: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_get_signature() != 51549: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_is_onchain() != 10977: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_is_signature_valid() != 25271: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_is_valid() != 31315: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_json_str() != 43695: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_to_zklink_tx() != 42088: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_tx_hash() != 26881: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contract_create_signed_contract() != 3720: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contract_get_bytes() != 6953: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contract_get_signature() != 60348: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contract_is_long() != 52375: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contract_is_short() != 24664: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contract_is_signature_valid() != 33071: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_create_signed_tx() != 44741: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_get_bytes() != 12250: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_get_signature() != 41128: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_is_signature_valid() != 33576: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_is_valid() != 55586: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_json_str() != 42918: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_to_zklink_tx() != 43065: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_tx_hash() != 3288: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_deposit_get_bytes() != 46958: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_deposit_json_str() != 17811: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_deposit_tx_hash() != 37358: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ethsigner_get_address() != 11362: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ethsigner_sign_message() != 14536: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_create_signed_tx() != 17267: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_get_bytes() != 15553: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_get_signature() != 48117: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_is_signature_valid() != 6534: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_is_valid() != 46100: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_json_str() != 4050: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_to_zklink_tx() != 32455: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_tx_hash() != 45462: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_fullexit_get_bytes() != 52461: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_fullexit_is_valid() != 57198: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_fullexit_json_str() != 24199: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_fullexit_to_zklink_tx() != 51607: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_fullexit_tx_hash() != 48511: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_create_signed_tx() != 38824: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_get_bytes() != 63867: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_get_signature() != 29468: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_is_signature_valid() != 50669: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_is_valid() != 4189: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_json_str() != 55097: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_to_zklink_tx() != 27295: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_tx_hash() != 26610: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_create_signed_tx() != 18143: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_get_bytes() != 1134: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_get_signature() != 31505: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_is_signature_valid() != 8478: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_is_valid() != 2828: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_json_str() != 62587: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_to_zklink_tx() != 30414: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_tx_hash() != 34918: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_create_signed_order() != 18530: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_get_bytes() != 51161: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_get_eth_sign_msg() != 11725: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_get_signature() != 46876: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_is_signature_valid() != 6764: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_is_valid() != 56951: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_json_str() != 20284: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_create_signed_tx() != 27728: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_get_bytes() != 13177: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_get_signature() != 35878: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_is_signature_valid() != 54946: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_is_valid() != 51995: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_json_str() != 33830: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_to_zklink_tx() != 23870: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_tx_hash() != 3162: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_auto_deleveraging() != 3485: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_create2data_auth() != 39808: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_eth_ecdsa_auth() != 63567: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_onchain_auth_data() != 26921: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_contract_matching() != 27932: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_forced_exit() != 37862: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_funding() != 31213: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_liquidation() != 56257: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_order_matching() != 19982: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_transfer() != 51577: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_withdraw() != 56851: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_starksigner_sign_message() != 27027: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_create_signed_tx() != 17446: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_eth_signature() != 18454: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_get_bytes() != 56287: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_get_eth_sign_msg() != 46393: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_get_signature() != 55226: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_is_signature_valid() != 31540: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_is_valid() != 46475: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_json_str() != 28252: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_to_zklink_tx() != 64899: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_tx_hash() != 16259: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_get_bytes() != 40576: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_is_valid() != 7961: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_json_str() != 48653: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_to_zklink_tx() != 40091: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_tx_hash() != 4261: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_create_signed_tx() != 15886: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_eth_signature() != 28825: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_get_bytes() != 15999: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_get_eth_sign_msg() != 27813: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_get_signature() != 56920: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_is_signature_valid() != 9636: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_is_valid() != 32004: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_json_str() != 3719: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_to_zklink_tx() != 26934: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_tx_hash() != 25800: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_zklinksigner_public_key() != 11211: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_zklinksigner_sign_musig() != 46475: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_autodeleveraging_new() != 10122: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_changepubkey_new() != 10607: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_contract_new() != 32968: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_contractmatching_new() != 210: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_deposit_new() != 2732: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_ethsigner_new() != 58738: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_forcedexit_new() != 30328: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_fullexit_new() != 27234: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_funding_new() != 62515: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_liquidation_new() != 56634: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_order_new() != 13958: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_ordermatching_new() != 5934: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_signer_new() != 24354: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_starksigner_new() != 61581: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_starksigner_new_from_hex_str() != 57960: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_transfer_new() != 31981: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_typeddata_new() != 46773: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_updateglobalvar_new() != 31819: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_withdraw_new() != 47491: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new() != 62411: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_bytes() != 17619: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_eth_signer() != 60210: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_stark_signer() != 21809: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_seed() != 47514: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") # A ctypes library to expose the extern-C FFI definitions. # This is an implementation detail which will be called internally by the public API. _UniffiLib = _uniffi_load_indirect() _UniffiLib.uniffi_zklink_sdk_fn_free_autodeleveraging.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_autodeleveraging.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_autodeleveraging_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_autodeleveraging_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_changepubkey.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_changepubkey.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_changepubkey_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_changepubkey_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_onchain.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_onchain.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_contract.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_contract.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_contract_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_contract_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_contract_create_signed_contract.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contract_create_signed_contract.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_long.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_long.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_short.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_short.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_free_contractmatching.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_contractmatching.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_contractmatching_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_contractmatching_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_deposit.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_deposit.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_deposit_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_deposit_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_deposit_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_deposit_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_deposit_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_deposit_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_deposit_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_deposit_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_ethsigner.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_ethsigner.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_ethsigner_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_ethsigner_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_get_address.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_get_address.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_sign_message.argtypes = ( ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_sign_message.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_forcedexit.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_forcedexit.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_forcedexit_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_forcedexit_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_fullexit.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_fullexit.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_fullexit_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_fullexit_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_funding.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_funding.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_funding_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_funding_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_funding_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_funding_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_funding_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_funding_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_liquidation.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_liquidation.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_liquidation_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_liquidation_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_order.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_order.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_order_new.argtypes = ( ctypes.c_uint32, ctypes.c_uint8, ctypes.c_uint32, ctypes.c_uint32, ctypes.c_uint32, ctypes.c_uint32, _UniffiRustBuffer, _UniffiRustBuffer, ctypes.c_int8, ctypes.c_int8, ctypes.c_uint8, ctypes.c_uint8, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_order_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_order_create_signed_order.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_create_signed_order.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_order_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_order_get_eth_sign_msg.argtypes = ( ctypes.c_void_p, _UniffiRustBuffer, _UniffiRustBuffer, ctypes.c_uint8, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_get_eth_sign_msg.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_order_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_order_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_order_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_order_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_ordermatching.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_ordermatching.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_ordermatching_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_ordermatching_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_signer.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_signer.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_signer_new.argtypes = ( _UniffiRustBuffer, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_signer_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_auto_deleveraging.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_auto_deleveraging.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_create2data_auth.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_create2data_auth.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_onchain_auth_data.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_onchain_auth_data.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_contract_matching.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_contract_matching.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_forced_exit.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_forced_exit.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_funding.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_funding.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_liquidation.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_liquidation.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_order_matching.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_order_matching.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_transfer.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, _UniffiRustBuffer, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_transfer.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_withdraw.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, _UniffiRustBuffer, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_withdraw.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_starksigner.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_starksigner.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new.argtypes = ( ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new_from_hex_str.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new_from_hex_str.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_starksigner_sign_message.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_starksigner_sign_message.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_transfer.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_transfer.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_transfer_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_transfer_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_eth_signature.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_eth_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_eth_sign_msg.argtypes = ( ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_eth_sign_msg.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_typeddata.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_typeddata.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_typeddata_new.argtypes = ( _UniffiRustBuffer, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_typeddata_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_free_updateglobalvar.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_updateglobalvar.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_updateglobalvar_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_updateglobalvar_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_withdraw.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_withdraw.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_withdraw_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_withdraw_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_eth_signature.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_eth_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_eth_sign_msg.argtypes = ( ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_eth_sign_msg.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_zklinksigner.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_zklinksigner.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new.argtypes = ( ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_bytes.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_bytes.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_eth_signer.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_eth_signer.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_stark_signer.argtypes = ( _UniffiRustBuffer, _UniffiRustBuffer, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_stark_signer.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_seed.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_seed.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_public_key.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_public_key.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_sign_musig.argtypes = ( ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_sign_musig.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_func_closest_packable_fee_amount.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_closest_packable_fee_amount.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_func_closest_packable_token_amount.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_closest_packable_token_amount.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_func_create_signed_change_pubkey.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_create_signed_change_pubkey.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_func_eth_signature_of_change_pubkey.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_eth_signature_of_change_pubkey.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_func_get_public_key_hash.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_get_public_key_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_func_is_fee_amount_packable.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_is_fee_amount_packable.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_func_is_token_amount_packable.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_is_token_amount_packable.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_func_verify_musig.argtypes = ( _UniffiRustBuffer, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_verify_musig.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_func_zklink_main_net_url.argtypes = ( ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_zklink_main_net_url.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_func_zklink_test_net_url.argtypes = ( ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_zklink_test_net_url.restype = _UniffiRustBuffer _UniffiLib.ffi_zklink_sdk_rustbuffer_alloc.argtypes = ( ctypes.c_int32, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rustbuffer_alloc.restype = _UniffiRustBuffer _UniffiLib.ffi_zklink_sdk_rustbuffer_from_bytes.argtypes = ( _UniffiForeignBytes, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rustbuffer_from_bytes.restype = _UniffiRustBuffer _UniffiLib.ffi_zklink_sdk_rustbuffer_free.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rustbuffer_free.restype = None _UniffiLib.ffi_zklink_sdk_rustbuffer_reserve.argtypes = ( _UniffiRustBuffer, ctypes.c_int32, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rustbuffer_reserve.restype = _UniffiRustBuffer _UniffiLib.ffi_zklink_sdk_rust_future_continuation_callback_set.argtypes = ( _UNIFFI_FUTURE_CONTINUATION_T, ) _UniffiLib.ffi_zklink_sdk_rust_future_continuation_callback_set.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_poll_u8.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_u8.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u8.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u8.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_u8.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_u8.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_u8.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_u8.restype = ctypes.c_uint8 _UniffiLib.ffi_zklink_sdk_rust_future_poll_i8.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_i8.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i8.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i8.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_i8.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_i8.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_i8.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_i8.restype = ctypes.c_int8 _UniffiLib.ffi_zklink_sdk_rust_future_poll_u16.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_u16.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u16.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u16.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_u16.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_u16.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_u16.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_u16.restype = ctypes.c_uint16 _UniffiLib.ffi_zklink_sdk_rust_future_poll_i16.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_i16.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i16.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i16.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_i16.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_i16.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_i16.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_i16.restype = ctypes.c_int16 _UniffiLib.ffi_zklink_sdk_rust_future_poll_u32.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_u32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u32.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_u32.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_u32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_u32.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_u32.restype = ctypes.c_uint32 _UniffiLib.ffi_zklink_sdk_rust_future_poll_i32.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_i32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i32.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_i32.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_i32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_i32.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_i32.restype = ctypes.c_int32 _UniffiLib.ffi_zklink_sdk_rust_future_poll_u64.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_u64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u64.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_u64.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_u64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_u64.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_u64.restype = ctypes.c_uint64 _UniffiLib.ffi_zklink_sdk_rust_future_poll_i64.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_i64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i64.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_i64.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_i64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_i64.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_i64.restype = ctypes.c_int64 _UniffiLib.ffi_zklink_sdk_rust_future_poll_f32.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_f32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_f32.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_f32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_f32.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_f32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_f32.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_f32.restype = ctypes.c_float _UniffiLib.ffi_zklink_sdk_rust_future_poll_f64.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_f64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_f64.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_f64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_f64.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_f64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_f64.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_f64.restype = ctypes.c_double _UniffiLib.ffi_zklink_sdk_rust_future_poll_pointer.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_pointer.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_pointer.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_pointer.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_pointer.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_pointer.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_pointer.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_pointer.restype = ctypes.c_void_p _UniffiLib.ffi_zklink_sdk_rust_future_poll_rust_buffer.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_rust_buffer.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_rust_buffer.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_rust_buffer.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_rust_buffer.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_rust_buffer.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_rust_buffer.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_rust_buffer.restype = _UniffiRustBuffer _UniffiLib.ffi_zklink_sdk_rust_future_poll_void.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_void.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_void.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_void.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_void.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_void.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_void.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_void.restype = None _UniffiLib.uniffi_zklink_sdk_checksum_func_closest_packable_fee_amount.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_closest_packable_fee_amount.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_func_closest_packable_token_amount.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_closest_packable_token_amount.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_func_create_signed_change_pubkey.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_create_signed_change_pubkey.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_func_eth_signature_of_change_pubkey.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_eth_signature_of_change_pubkey.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_func_get_public_key_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_get_public_key_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_func_is_fee_amount_packable.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_is_fee_amount_packable.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_func_is_token_amount_packable.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_is_token_amount_packable.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_func_verify_musig.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_verify_musig.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_main_net_url.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_main_net_url.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_test_net_url.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_test_net_url.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_onchain.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_onchain.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_create_signed_contract.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_create_signed_contract.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_long.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_long.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_short.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_short.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_get_address.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_get_address.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_sign_message.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_sign_message.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_create_signed_order.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_create_signed_order.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_eth_sign_msg.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_eth_sign_msg.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_auto_deleveraging.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_auto_deleveraging.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_create2data_auth.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_create2data_auth.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_onchain_auth_data.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_onchain_auth_data.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_contract_matching.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_contract_matching.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_forced_exit.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_forced_exit.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_funding.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_funding.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_liquidation.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_liquidation.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_order_matching.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_order_matching.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_transfer.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_transfer.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_withdraw.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_withdraw.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_starksigner_sign_message.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_starksigner_sign_message.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_eth_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_eth_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_eth_sign_msg.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_eth_sign_msg.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_eth_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_eth_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_eth_sign_msg.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_eth_sign_msg.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_public_key.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_public_key.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_sign_musig.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_sign_musig.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_autodeleveraging_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_autodeleveraging_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_changepubkey_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_changepubkey_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_contract_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_contract_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_contractmatching_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_contractmatching_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_deposit_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_deposit_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_ethsigner_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_ethsigner_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_forcedexit_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_forcedexit_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_fullexit_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_fullexit_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_funding_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_funding_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_liquidation_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_liquidation_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_order_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_order_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_ordermatching_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_ordermatching_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_signer_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_signer_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new_from_hex_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new_from_hex_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_transfer_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_transfer_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_typeddata_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_typeddata_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_updateglobalvar_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_updateglobalvar_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_withdraw_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_withdraw_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_eth_signer.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_eth_signer.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_stark_signer.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_stark_signer.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_seed.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_seed.restype = ctypes.c_uint16 _UniffiLib.ffi_zklink_sdk_uniffi_contract_version.argtypes = ( ) _UniffiLib.ffi_zklink_sdk_uniffi_contract_version.restype = ctypes.c_uint32 _uniffi_check_contract_api_version(_UniffiLib) _uniffi_check_api_checksums(_UniffiLib) # Async support # Public interface members begin here. class _UniffiConverterUInt8(_UniffiConverterPrimitiveInt): CLASS_NAME = "u8" VALUE_MIN = 0 VALUE_MAX = 2**8 @staticmethod def read(buf): return buf.read_u8() @staticmethod def write_unchecked(value, buf): buf.write_u8(value) class _UniffiConverterUInt16(_UniffiConverterPrimitiveInt): CLASS_NAME = "u16" VALUE_MIN = 0 VALUE_MAX = 2**16 @staticmethod def read(buf): return buf.read_u16() @staticmethod def write_unchecked(value, buf): buf.write_u16(value) class _UniffiConverterInt16(_UniffiConverterPrimitiveInt): CLASS_NAME = "i16" VALUE_MIN = -2**15 VALUE_MAX = 2**15 @staticmethod def read(buf): return buf.read_i16() @staticmethod def write_unchecked(value, buf): buf.write_i16(value) class _UniffiConverterUInt32(_UniffiConverterPrimitiveInt): CLASS_NAME = "u32" VALUE_MIN = 0 VALUE_MAX = 2**32 @staticmethod def read(buf): return buf.read_u32() @staticmethod def write_unchecked(value, buf): buf.write_u32(value) class _UniffiConverterUInt64(_UniffiConverterPrimitiveInt): CLASS_NAME = "u64" VALUE_MIN = 0 VALUE_MAX = 2**64 @staticmethod def read(buf): return buf.read_u64() @staticmethod def write_unchecked(value, buf): buf.write_u64(value) class _UniffiConverterBool(_UniffiConverterPrimitive): @classmethod def check(cls, value): return not not value @classmethod def read(cls, buf): return cls.lift(buf.read_u8()) @classmethod def write_unchecked(cls, value, buf): buf.write_u8(value) @staticmethod def lift(value): return value != 0 class _UniffiConverterString: @staticmethod def check(value): if not isinstance(value, str): raise TypeError("argument must be str, not {}".format(type(value).__name__)) return value @staticmethod def read(buf): size = buf.read_i32() if size < 0: raise InternalError("Unexpected negative string length") utf8_bytes = buf.read(size) return utf8_bytes.decode("utf-8") @staticmethod def write(value, buf): value = _UniffiConverterString.check(value) utf8_bytes = value.encode("utf-8") buf.write_i32(len(utf8_bytes)) buf.write(utf8_bytes) @staticmethod def lift(buf): with buf.consume_with_stream() as stream: return stream.read(stream.remaining()).decode("utf-8") @staticmethod def lower(value): value = _UniffiConverterString.check(value) with _UniffiRustBuffer.alloc_with_builder() as builder: builder.write(value.encode("utf-8")) return builder.finalize() class AutoDeleveraging: _pointer: ctypes.c_void_p def __init__(self, builder: "AutoDeleveragingBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_autodeleveraging_new, _UniffiConverterTypeAutoDeleveragingBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_autodeleveraging, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "AutoDeleveraging": return _UniffiConverterTypeAutoDeleveraging.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_signature,self._pointer,) ) def is_signature_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_signature_valid,self._pointer,) ) def is_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_tx_hash,self._pointer,) ) class _UniffiConverterTypeAutoDeleveraging: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, AutoDeleveraging): raise TypeError("Expected AutoDeleveraging instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return AutoDeleveraging._make_instance_(value) @staticmethod def lower(value): return value._pointer class ChangePubKey: _pointer: ctypes.c_void_p def __init__(self, builder: "ChangePubKeyBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_changepubkey_new, _UniffiConverterTypeChangePubKeyBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_changepubkey, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_signature,self._pointer,) ) def is_onchain(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_onchain,self._pointer,) ) def is_signature_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_signature_valid,self._pointer,) ) def is_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_tx_hash,self._pointer,) ) class _UniffiConverterTypeChangePubKey: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, ChangePubKey): raise TypeError("Expected ChangePubKey instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return ChangePubKey._make_instance_(value) @staticmethod def lower(value): return value._pointer class Contract: _pointer: ctypes.c_void_p def __init__(self, builder: "ContractBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_contract_new, _UniffiConverterTypeContractBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_contract, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_contract(self, zklink_signer: "ZkLinkSigner") -> "Contract": return _UniffiConverterTypeContract.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_contract_create_signed_contract,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(zklink_signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_signature,self._pointer,) ) def is_long(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_long,self._pointer,) ) def is_short(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_short,self._pointer,) ) def is_signature_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_signature_valid,self._pointer,) ) class _UniffiConverterTypeContract: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Contract): raise TypeError("Expected Contract instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Contract._make_instance_(value) @staticmethod def lower(value): return value._pointer class ContractMatching: _pointer: ctypes.c_void_p def __init__(self, builder: "ContractMatchingBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_contractmatching_new, _UniffiConverterTypeContractMatchingBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_contractmatching, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "ContractMatching": return _UniffiConverterTypeContractMatching.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_signature,self._pointer,) ) def is_signature_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_signature_valid,self._pointer,) ) def is_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_tx_hash,self._pointer,) ) class _UniffiConverterTypeContractMatching: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, ContractMatching): raise TypeError("Expected ContractMatching instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return ContractMatching._make_instance_(value) @staticmethod def lower(value): return value._pointer class Deposit: _pointer: ctypes.c_void_p def __init__(self, builder: "DepositBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_deposit_new, _UniffiConverterTypeDepositBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_deposit, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_get_bytes,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_json_str,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_tx_hash,self._pointer,) ) class _UniffiConverterTypeDeposit: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Deposit): raise TypeError("Expected Deposit instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Deposit._make_instance_(value) @staticmethod def lower(value): return value._pointer class EthSigner: _pointer: ctypes.c_void_p def __init__(self, private_key: str): self._pointer = _rust_call_with_error(_UniffiConverterTypeEthSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_ethsigner_new, _UniffiConverterString.lower(private_key)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_ethsigner, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_address(self, ) -> "Address": return _UniffiConverterTypeAddress.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_get_address,self._pointer,) ) def sign_message(self, message: "typing.List[int]") -> "PackedEthSignature": return _UniffiConverterTypePackedEthSignature.lift( _rust_call_with_error( _UniffiConverterTypeEthSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_sign_message,self._pointer, _UniffiConverterSequenceUInt8.lower(message)) ) class _UniffiConverterTypeEthSigner: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, EthSigner): raise TypeError("Expected EthSigner instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return EthSigner._make_instance_(value) @staticmethod def lower(value): return value._pointer class ForcedExit: _pointer: ctypes.c_void_p def __init__(self, builder: "ForcedExitBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_forcedexit_new, _UniffiConverterTypeForcedExitBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_forcedexit, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "ForcedExit": return _UniffiConverterTypeForcedExit.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_signature,self._pointer,) ) def is_signature_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_signature_valid,self._pointer,) ) def is_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_tx_hash,self._pointer,) ) class _UniffiConverterTypeForcedExit: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, ForcedExit): raise TypeError("Expected ForcedExit instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return ForcedExit._make_instance_(value) @staticmethod def lower(value): return value._pointer class FullExit: _pointer: ctypes.c_void_p def __init__(self, builder: "FullExitBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_fullexit_new, _UniffiConverterTypeFullExitBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_fullexit, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_get_bytes,self._pointer,) ) def is_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_tx_hash,self._pointer,) ) class _UniffiConverterTypeFullExit: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, FullExit): raise TypeError("Expected FullExit instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return FullExit._make_instance_(value) @staticmethod def lower(value): return value._pointer class Funding: _pointer: ctypes.c_void_p def __init__(self, builder: "FundingBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_funding_new, _UniffiConverterTypeFundingBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_funding, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "Funding": return _UniffiConverterTypeFunding.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_funding_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_signature,self._pointer,) ) def is_signature_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_signature_valid,self._pointer,) ) def is_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_tx_hash,self._pointer,) ) class _UniffiConverterTypeFunding: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Funding): raise TypeError("Expected Funding instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Funding._make_instance_(value) @staticmethod def lower(value): return value._pointer class Liquidation: _pointer: ctypes.c_void_p def __init__(self, builder: "LiquidationBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_liquidation_new, _UniffiConverterTypeLiquidationBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_liquidation, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "Liquidation": return _UniffiConverterTypeLiquidation.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_signature,self._pointer,) ) def is_signature_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_signature_valid,self._pointer,) ) def is_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_tx_hash,self._pointer,) ) class _UniffiConverterTypeLiquidation: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Liquidation): raise TypeError("Expected Liquidation instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Liquidation._make_instance_(value) @staticmethod def lower(value): return value._pointer class Order: _pointer: ctypes.c_void_p def __init__(self, account_id: "AccountId",sub_account_id: "SubAccountId",slot_id: "SlotId",nonce: "Nonce",base_token_id: "TokenId",quote_token_id: "TokenId",amount: "BigUint",price: "BigUint",is_sell: bool,has_subsidy: bool,maker_fee_rate: "int",taker_fee_rate: "int",signature: "typing.Optional[ZkLinkSignature]"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_order_new, _UniffiConverterTypeAccountId.lower(account_id), _UniffiConverterTypeSubAccountId.lower(sub_account_id), _UniffiConverterTypeSlotId.lower(slot_id), _UniffiConverterTypeNonce.lower(nonce), _UniffiConverterTypeTokenId.lower(base_token_id), _UniffiConverterTypeTokenId.lower(quote_token_id), _UniffiConverterTypeBigUint.lower(amount), _UniffiConverterTypeBigUint.lower(price), _UniffiConverterBool.lower(is_sell), _UniffiConverterBool.lower(has_subsidy), _UniffiConverterUInt8.lower(maker_fee_rate), _UniffiConverterUInt8.lower(taker_fee_rate), _UniffiConverterOptionalTypeZkLinkSignature.lower(signature)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_order, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_order(self, zklink_signer: "ZkLinkSigner") -> "Order": return _UniffiConverterTypeOrder.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_order_create_signed_order,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(zklink_signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_bytes,self._pointer,) ) def get_eth_sign_msg(self, quote_token: str,based_token: str,decimals: "int") -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_eth_sign_msg,self._pointer, _UniffiConverterString.lower(quote_token), _UniffiConverterString.lower(based_token), _UniffiConverterUInt8.lower(decimals)) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_signature,self._pointer,) ) def is_signature_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_signature_valid,self._pointer,) ) def is_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_json_str,self._pointer,) ) class _UniffiConverterTypeOrder: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Order): raise TypeError("Expected Order instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Order._make_instance_(value) @staticmethod def lower(value): return value._pointer class OrderMatching: _pointer: ctypes.c_void_p def __init__(self, builder: "OrderMatchingBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_ordermatching_new, _UniffiConverterTypeOrderMatchingBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_ordermatching, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "OrderMatching": return _UniffiConverterTypeOrderMatching.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_signature,self._pointer,) ) def is_signature_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_signature_valid,self._pointer,) ) def is_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_tx_hash,self._pointer,) ) class _UniffiConverterTypeOrderMatching: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, OrderMatching): raise TypeError("Expected OrderMatching instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return OrderMatching._make_instance_(value) @staticmethod def lower(value): return value._pointer class Signer: _pointer: ctypes.c_void_p def __init__(self, private_key: str,l1_type: "L1SignerType"): self._pointer = _rust_call_with_error(_UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_signer_new, _UniffiConverterString.lower(private_key), _UniffiConverterTypeL1SignerType.lower(l1_type)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_signer, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def sign_auto_deleveraging(self, tx: "AutoDeleveraging") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_auto_deleveraging,self._pointer, _UniffiConverterTypeAutoDeleveraging.lower(tx)) ) def sign_change_pubkey_with_create2data_auth(self, tx: "ChangePubKey",crate2data: "Create2Data") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_create2data_auth,self._pointer, _UniffiConverterTypeChangePubKey.lower(tx), _UniffiConverterTypeCreate2Data.lower(crate2data)) ) def sign_change_pubkey_with_eth_ecdsa_auth(self, tx: "ChangePubKey") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_eth_ecdsa_auth,self._pointer, _UniffiConverterTypeChangePubKey.lower(tx)) ) def sign_change_pubkey_with_onchain_auth_data(self, tx: "ChangePubKey") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_onchain_auth_data,self._pointer, _UniffiConverterTypeChangePubKey.lower(tx)) ) def sign_contract_matching(self, tx: "ContractMatching") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_contract_matching,self._pointer, _UniffiConverterTypeContractMatching.lower(tx)) ) def sign_forced_exit(self, tx: "ForcedExit") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_forced_exit,self._pointer, _UniffiConverterTypeForcedExit.lower(tx)) ) def sign_funding(self, tx: "Funding") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_funding,self._pointer, _UniffiConverterTypeFunding.lower(tx)) ) def sign_liquidation(self, tx: "Liquidation") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_liquidation,self._pointer, _UniffiConverterTypeLiquidation.lower(tx)) ) def sign_order_matching(self, tx: "OrderMatching") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_order_matching,self._pointer, _UniffiConverterTypeOrderMatching.lower(tx)) ) def sign_transfer(self, tx: "Transfer",token_sybmol: str,chain_id: "typing.Optional[str]",addr: "typing.Optional[str]") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_transfer,self._pointer, _UniffiConverterTypeTransfer.lower(tx), _UniffiConverterString.lower(token_sybmol), _UniffiConverterOptionalString.lower(chain_id), _UniffiConverterOptionalString.lower(addr)) ) def sign_withdraw(self, tx: "Withdraw",l2_source_token_symbol: str,chain_id: "typing.Optional[str]",addr: "typing.Optional[str]") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_withdraw,self._pointer, _UniffiConverterTypeWithdraw.lower(tx), _UniffiConverterString.lower(l2_source_token_symbol), _UniffiConverterOptionalString.lower(chain_id), _UniffiConverterOptionalString.lower(addr)) ) class _UniffiConverterTypeSigner: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Signer): raise TypeError("Expected Signer instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Signer._make_instance_(value) @staticmethod def lower(value): return value._pointer class StarkSigner: _pointer: ctypes.c_void_p def __init__(self, ): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new,) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_starksigner, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst @classmethod def new_from_hex_str(cls, hex_str: str): # Call the (fallible) function before creating any half-baked object instances. pointer = _rust_call_with_error(_UniffiConverterTypeStarkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new_from_hex_str, _UniffiConverterString.lower(hex_str)) return cls._make_instance_(pointer) def sign_message(self, typed_data: "TypedData",addr: str) -> "StarkEip712Signature": return _UniffiConverterTypeStarkEip712Signature.lift( _rust_call_with_error( _UniffiConverterTypeStarkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_starksigner_sign_message,self._pointer, _UniffiConverterTypeTypedData.lower(typed_data), _UniffiConverterString.lower(addr)) ) class _UniffiConverterTypeStarkSigner: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, StarkSigner): raise TypeError("Expected StarkSigner instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return StarkSigner._make_instance_(value) @staticmethod def lower(value): return value._pointer class Transfer: _pointer: ctypes.c_void_p def __init__(self, builder: "TransferBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_transfer_new, _UniffiConverterTypeTransferBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_transfer, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "Transfer": return _UniffiConverterTypeTransfer.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def eth_signature(self, eth_signer: "EthSigner",token_symbol: str) -> "TxLayer1Signature": return _UniffiConverterTypeTxLayer1Signature.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_eth_signature,self._pointer, _UniffiConverterTypeEthSigner.lower(eth_signer), _UniffiConverterString.lower(token_symbol)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_bytes,self._pointer,) ) def get_eth_sign_msg(self, token_symbol: str) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_eth_sign_msg,self._pointer, _UniffiConverterString.lower(token_symbol)) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_signature,self._pointer,) ) def is_signature_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_signature_valid,self._pointer,) ) def is_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_tx_hash,self._pointer,) ) class _UniffiConverterTypeTransfer: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Transfer): raise TypeError("Expected Transfer instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Transfer._make_instance_(value) @staticmethod def lower(value): return value._pointer class TypedData: _pointer: ctypes.c_void_p def __init__(self, message: "TypedDataMessage",chain_id: str): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_typeddata_new, _UniffiConverterTypeTypedDataMessage.lower(message), _UniffiConverterString.lower(chain_id)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_typeddata, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst class _UniffiConverterTypeTypedData: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, TypedData): raise TypeError("Expected TypedData instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return TypedData._make_instance_(value) @staticmethod def lower(value): return value._pointer class UpdateGlobalVar: _pointer: ctypes.c_void_p def __init__(self, builder: "UpdateGlobalVarBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_updateglobalvar_new, _UniffiConverterTypeUpdateGlobalVarBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_updateglobalvar, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_get_bytes,self._pointer,) ) def is_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_tx_hash,self._pointer,) ) class _UniffiConverterTypeUpdateGlobalVar: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, UpdateGlobalVar): raise TypeError("Expected UpdateGlobalVar instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return UpdateGlobalVar._make_instance_(value) @staticmethod def lower(value): return value._pointer class Withdraw: _pointer: ctypes.c_void_p def __init__(self, builder: "WithdrawBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_withdraw_new, _UniffiConverterTypeWithdrawBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_withdraw, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "Withdraw": return _UniffiConverterTypeWithdraw.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def eth_signature(self, eth_signer: "EthSigner",l2_source_token_symbol: str) -> "PackedEthSignature": return _UniffiConverterTypePackedEthSignature.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_eth_signature,self._pointer, _UniffiConverterTypeEthSigner.lower(eth_signer), _UniffiConverterString.lower(l2_source_token_symbol)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_bytes,self._pointer,) ) def get_eth_sign_msg(self, token_symbol: str) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_eth_sign_msg,self._pointer, _UniffiConverterString.lower(token_symbol)) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_signature,self._pointer,) ) def is_signature_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_signature_valid,self._pointer,) ) def is_valid(self, ) -> bool: return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_tx_hash,self._pointer,) ) class _UniffiConverterTypeWithdraw: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Withdraw): raise TypeError("Expected Withdraw instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Withdraw._make_instance_(value) @staticmethod def lower(value): return value._pointer class ZkLinkSigner: _pointer: ctypes.c_void_p def __init__(self, ): self._pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new,) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_zklinksigner, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst @classmethod def new_from_bytes(cls, slice: "typing.List[int]"): # Call the (fallible) function before creating any half-baked object instances. pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_bytes, _UniffiConverterSequenceUInt8.lower(slice)) return cls._make_instance_(pointer) @classmethod def new_from_hex_eth_signer(cls, eth_hex_private_key: str): # Call the (fallible) function before creating any half-baked object instances. pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_eth_signer, _UniffiConverterString.lower(eth_hex_private_key)) return cls._make_instance_(pointer) @classmethod def new_from_hex_stark_signer(cls, hex_private_key: str,addr: str,chain_id: str): # Call the (fallible) function before creating any half-baked object instances. pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_stark_signer, _UniffiConverterString.lower(hex_private_key), _UniffiConverterString.lower(addr), _UniffiConverterString.lower(chain_id)) return cls._make_instance_(pointer) @classmethod def new_from_seed(cls, seed: "typing.List[int]"): # Call the (fallible) function before creating any half-baked object instances. pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_seed, _UniffiConverterSequenceUInt8.lower(seed)) return cls._make_instance_(pointer) def public_key(self, ) -> "PackedPublicKey": return _UniffiConverterTypePackedPublicKey.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_public_key,self._pointer,) ) def sign_musig(self, msg: "typing.List[int]") -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_sign_musig,self._pointer, _UniffiConverterSequenceUInt8.lower(msg)) ) class _UniffiConverterTypeZkLinkSigner: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, ZkLinkSigner): raise TypeError("Expected ZkLinkSigner instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return ZkLinkSigner._make_instance_(value) @staticmethod def lower(value): return value._pointer class AutoDeleveragingBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";sub_account_nonce: "Nonce";contract_prices: "typing.List[ContractPrice]";margin_prices: "typing.List[SpotPriceInfo]";adl_account_id: "AccountId";pair_id: "PairId";adl_size: "BigUint";adl_price: "BigUint";fee: "BigUint";fee_token: "TokenId"; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", sub_account_nonce: "Nonce", contract_prices: "typing.List[ContractPrice]", margin_prices: "typing.List[SpotPriceInfo]", adl_account_id: "AccountId", pair_id: "PairId", adl_size: "BigUint", adl_price: "BigUint", fee: "BigUint", fee_token: "TokenId"): self.account_id = account_id self.sub_account_id = sub_account_id self.sub_account_nonce = sub_account_nonce self.contract_prices = contract_prices self.margin_prices = margin_prices self.adl_account_id = adl_account_id self.pair_id = pair_id self.adl_size = adl_size self.adl_price = adl_price self.fee = fee self.fee_token = fee_token def __str__(self): return "AutoDeleveragingBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, contract_prices={}, margin_prices={}, adl_account_id={}, pair_id={}, adl_size={}, adl_price={}, fee={}, fee_token={})".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.contract_prices, self.margin_prices, self.adl_account_id, self.pair_id, self.adl_size, self.adl_price, self.fee, self.fee_token) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.sub_account_nonce != other.sub_account_nonce: return False if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False if self.adl_account_id != other.adl_account_id: return False if self.pair_id != other.pair_id: return False if self.adl_size != other.adl_size: return False if self.adl_price != other.adl_price: return False if self.fee != other.fee: return False if self.fee_token != other.fee_token: return False return True class _UniffiConverterTypeAutoDeleveragingBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return AutoDeleveragingBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), sub_account_nonce=_UniffiConverterTypeNonce.read(buf), contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf), margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf), adl_account_id=_UniffiConverterTypeAccountId.read(buf), pair_id=_UniffiConverterTypePairId.read(buf), adl_size=_UniffiConverterTypeBigUint.read(buf), adl_price=_UniffiConverterTypeBigUint.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), fee_token=_UniffiConverterTypeTokenId.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeNonce.write(value.sub_account_nonce, buf) _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) _UniffiConverterTypeAccountId.write(value.adl_account_id, buf) _UniffiConverterTypePairId.write(value.pair_id, buf) _UniffiConverterTypeBigUint.write(value.adl_size, buf) _UniffiConverterTypeBigUint.write(value.adl_price, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeTokenId.write(value.fee_token, buf) class ChangePubKeyBuilder: chain_id: "ChainId";account_id: "AccountId";sub_account_id: "SubAccountId";new_pubkey_hash: "PubKeyHash";fee_token: "TokenId";fee: "BigUint";nonce: "Nonce";eth_signature: "typing.Optional[PackedEthSignature]";timestamp: "TimeStamp"; @typing.no_type_check def __init__(self, chain_id: "ChainId", account_id: "AccountId", sub_account_id: "SubAccountId", new_pubkey_hash: "PubKeyHash", fee_token: "TokenId", fee: "BigUint", nonce: "Nonce", eth_signature: "typing.Optional[PackedEthSignature]", timestamp: "TimeStamp"): self.chain_id = chain_id self.account_id = account_id self.sub_account_id = sub_account_id self.new_pubkey_hash = new_pubkey_hash self.fee_token = fee_token self.fee = fee self.nonce = nonce self.eth_signature = eth_signature self.timestamp = timestamp def __str__(self): return "ChangePubKeyBuilder(chain_id={}, account_id={}, sub_account_id={}, new_pubkey_hash={}, fee_token={}, fee={}, nonce={}, eth_signature={}, timestamp={})".format(self.chain_id, self.account_id, self.sub_account_id, self.new_pubkey_hash, self.fee_token, self.fee, self.nonce, self.eth_signature, self.timestamp) def __eq__(self, other): if self.chain_id != other.chain_id: return False if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.new_pubkey_hash != other.new_pubkey_hash: return False if self.fee_token != other.fee_token: return False if self.fee != other.fee: return False if self.nonce != other.nonce: return False if self.eth_signature != other.eth_signature: return False if self.timestamp != other.timestamp: return False return True class _UniffiConverterTypeChangePubKeyBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return ChangePubKeyBuilder( chain_id=_UniffiConverterTypeChainId.read(buf), account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), new_pubkey_hash=_UniffiConverterTypePubKeyHash.read(buf), fee_token=_UniffiConverterTypeTokenId.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), nonce=_UniffiConverterTypeNonce.read(buf), eth_signature=_UniffiConverterOptionalTypePackedEthSignature.read(buf), timestamp=_UniffiConverterTypeTimeStamp.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeChainId.write(value.chain_id, buf) _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypePubKeyHash.write(value.new_pubkey_hash, buf) _UniffiConverterTypeTokenId.write(value.fee_token, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeNonce.write(value.nonce, buf) _UniffiConverterOptionalTypePackedEthSignature.write(value.eth_signature, buf) _UniffiConverterTypeTimeStamp.write(value.timestamp, buf) class ContractBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";slot_id: "SlotId";nonce: "Nonce";pair_id: "PairId";size: "BigUint";price: "BigUint";direction: bool;taker_fee_rate: "int";maker_fee_rate: "int";has_subsidy: bool; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", slot_id: "SlotId", nonce: "Nonce", pair_id: "PairId", size: "BigUint", price: "BigUint", direction: bool, taker_fee_rate: "int", maker_fee_rate: "int", has_subsidy: bool): self.account_id = account_id self.sub_account_id = sub_account_id self.slot_id = slot_id self.nonce = nonce self.pair_id = pair_id self.size = size self.price = price self.direction = direction self.taker_fee_rate = taker_fee_rate self.maker_fee_rate = maker_fee_rate self.has_subsidy = has_subsidy def __str__(self): return "ContractBuilder(account_id={}, sub_account_id={}, slot_id={}, nonce={}, pair_id={}, size={}, price={}, direction={}, taker_fee_rate={}, maker_fee_rate={}, has_subsidy={})".format(self.account_id, self.sub_account_id, self.slot_id, self.nonce, self.pair_id, self.size, self.price, self.direction, self.taker_fee_rate, self.maker_fee_rate, self.has_subsidy) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.slot_id != other.slot_id: return False if self.nonce != other.nonce: return False if self.pair_id != other.pair_id: return False if self.size != other.size: return False if self.price != other.price: return False if self.direction != other.direction: return False if self.taker_fee_rate != other.taker_fee_rate: return False if self.maker_fee_rate != other.maker_fee_rate: return False if self.has_subsidy != other.has_subsidy: return False return True class _UniffiConverterTypeContractBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return ContractBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), slot_id=_UniffiConverterTypeSlotId.read(buf), nonce=_UniffiConverterTypeNonce.read(buf), pair_id=_UniffiConverterTypePairId.read(buf), size=_UniffiConverterTypeBigUint.read(buf), price=_UniffiConverterTypeBigUint.read(buf), direction=_UniffiConverterBool.read(buf), taker_fee_rate=_UniffiConverterUInt8.read(buf), maker_fee_rate=_UniffiConverterUInt8.read(buf), has_subsidy=_UniffiConverterBool.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeSlotId.write(value.slot_id, buf) _UniffiConverterTypeNonce.write(value.nonce, buf) _UniffiConverterTypePairId.write(value.pair_id, buf) _UniffiConverterTypeBigUint.write(value.size, buf) _UniffiConverterTypeBigUint.write(value.price, buf) _UniffiConverterBool.write(value.direction, buf) _UniffiConverterUInt8.write(value.taker_fee_rate, buf) _UniffiConverterUInt8.write(value.maker_fee_rate, buf) _UniffiConverterBool.write(value.has_subsidy, buf) class ContractMatchingBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";taker: "Contract";maker: "typing.List[Contract]";fee: "BigUint";fee_token: "TokenId";contract_prices: "typing.List[ContractPrice]";margin_prices: "typing.List[SpotPriceInfo]"; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", taker: "Contract", maker: "typing.List[Contract]", fee: "BigUint", fee_token: "TokenId", contract_prices: "typing.List[ContractPrice]", margin_prices: "typing.List[SpotPriceInfo]"): self.account_id = account_id self.sub_account_id = sub_account_id self.taker = taker self.maker = maker self.fee = fee self.fee_token = fee_token self.contract_prices = contract_prices self.margin_prices = margin_prices def __str__(self): return "ContractMatchingBuilder(account_id={}, sub_account_id={}, taker={}, maker={}, fee={}, fee_token={}, contract_prices={}, margin_prices={})".format(self.account_id, self.sub_account_id, self.taker, self.maker, self.fee, self.fee_token, self.contract_prices, self.margin_prices) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.taker != other.taker: return False if self.maker != other.maker: return False if self.fee != other.fee: return False if self.fee_token != other.fee_token: return False if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False return True class _UniffiConverterTypeContractMatchingBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return ContractMatchingBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), taker=_UniffiConverterTypeContract.read(buf), maker=_UniffiConverterSequenceTypeContract.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), fee_token=_UniffiConverterTypeTokenId.read(buf), contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf), margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeContract.write(value.taker, buf) _UniffiConverterSequenceTypeContract.write(value.maker, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeTokenId.write(value.fee_token, buf) _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) class ContractPrice: pair_id: "PairId";market_price: "BigUint"; @typing.no_type_check def __init__(self, pair_id: "PairId", market_price: "BigUint"): self.pair_id = pair_id self.market_price = market_price def __str__(self): return "ContractPrice(pair_id={}, market_price={})".format(self.pair_id, self.market_price) def __eq__(self, other): if self.pair_id != other.pair_id: return False if self.market_price != other.market_price: return False return True class _UniffiConverterTypeContractPrice(_UniffiConverterRustBuffer): @staticmethod def read(buf): return ContractPrice( pair_id=_UniffiConverterTypePairId.read(buf), market_price=_UniffiConverterTypeBigUint.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypePairId.write(value.pair_id, buf) _UniffiConverterTypeBigUint.write(value.market_price, buf) class Create2Data: creator_address: "ZkLinkAddress";salt_arg: "H256";code_hash: "H256"; @typing.no_type_check def __init__(self, creator_address: "ZkLinkAddress", salt_arg: "H256", code_hash: "H256"): self.creator_address = creator_address self.salt_arg = salt_arg self.code_hash = code_hash def __str__(self): return "Create2Data(creator_address={}, salt_arg={}, code_hash={})".format(self.creator_address, self.salt_arg, self.code_hash) def __eq__(self, other): if self.creator_address != other.creator_address: return False if self.salt_arg != other.salt_arg: return False if self.code_hash != other.code_hash: return False return True class _UniffiConverterTypeCreate2Data(_UniffiConverterRustBuffer): @staticmethod def read(buf): return Create2Data( creator_address=_UniffiConverterTypeZkLinkAddress.read(buf), salt_arg=_UniffiConverterTypeH256.read(buf), code_hash=_UniffiConverterTypeH256.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeZkLinkAddress.write(value.creator_address, buf) _UniffiConverterTypeH256.write(value.salt_arg, buf) _UniffiConverterTypeH256.write(value.code_hash, buf) class DepositBuilder: from_address: "ZkLinkAddress";to_address: "ZkLinkAddress";from_chain_id: "ChainId";sub_account_id: "SubAccountId";l2_target_token: "TokenId";l1_source_token: "TokenId";amount: "BigUint";serial_id: "int";l2_hash: "H256";eth_hash: "typing.Optional[H256]"; @typing.no_type_check def __init__(self, from_address: "ZkLinkAddress", to_address: "ZkLinkAddress", from_chain_id: "ChainId", sub_account_id: "SubAccountId", l2_target_token: "TokenId", l1_source_token: "TokenId", amount: "BigUint", serial_id: "int", l2_hash: "H256", eth_hash: "typing.Optional[H256]"): self.from_address = from_address self.to_address = to_address self.from_chain_id = from_chain_id self.sub_account_id = sub_account_id self.l2_target_token = l2_target_token self.l1_source_token = l1_source_token self.amount = amount self.serial_id = serial_id self.l2_hash = l2_hash self.eth_hash = eth_hash def __str__(self): return "DepositBuilder(from_address={}, to_address={}, from_chain_id={}, sub_account_id={}, l2_target_token={}, l1_source_token={}, amount={}, serial_id={}, l2_hash={}, eth_hash={})".format(self.from_address, self.to_address, self.from_chain_id, self.sub_account_id, self.l2_target_token, self.l1_source_token, self.amount, self.serial_id, self.l2_hash, self.eth_hash) def __eq__(self, other): if self.from_address != other.from_address: return False if self.to_address != other.to_address: return False if self.from_chain_id != other.from_chain_id: return False if self.sub_account_id != other.sub_account_id: return False if self.l2_target_token != other.l2_target_token: return False if self.l1_source_token != other.l1_source_token: return False if self.amount != other.amount: return False if self.serial_id != other.serial_id: return False if self.l2_hash != other.l2_hash: return False if self.eth_hash != other.eth_hash: return False return True class _UniffiConverterTypeDepositBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return DepositBuilder( from_address=_UniffiConverterTypeZkLinkAddress.read(buf), to_address=_UniffiConverterTypeZkLinkAddress.read(buf), from_chain_id=_UniffiConverterTypeChainId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), l2_target_token=_UniffiConverterTypeTokenId.read(buf), l1_source_token=_UniffiConverterTypeTokenId.read(buf), amount=_UniffiConverterTypeBigUint.read(buf), serial_id=_UniffiConverterUInt64.read(buf), l2_hash=_UniffiConverterTypeH256.read(buf), eth_hash=_UniffiConverterOptionalTypeH256.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeZkLinkAddress.write(value.from_address, buf) _UniffiConverterTypeZkLinkAddress.write(value.to_address, buf) _UniffiConverterTypeChainId.write(value.from_chain_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeTokenId.write(value.l2_target_token, buf) _UniffiConverterTypeTokenId.write(value.l1_source_token, buf) _UniffiConverterTypeBigUint.write(value.amount, buf) _UniffiConverterUInt64.write(value.serial_id, buf) _UniffiConverterTypeH256.write(value.l2_hash, buf) _UniffiConverterOptionalTypeH256.write(value.eth_hash, buf) class ForcedExitBuilder: to_chain_id: "ChainId";initiator_account_id: "AccountId";initiator_sub_account_id: "SubAccountId";target: "ZkLinkAddress";target_sub_account_id: "SubAccountId";l2_source_token: "TokenId";l1_target_token: "TokenId";initiator_nonce: "Nonce";exit_amount: "BigUint";withdraw_to_l1: bool;timestamp: "TimeStamp"; @typing.no_type_check def __init__(self, to_chain_id: "ChainId", initiator_account_id: "AccountId", initiator_sub_account_id: "SubAccountId", target: "ZkLinkAddress", target_sub_account_id: "SubAccountId", l2_source_token: "TokenId", l1_target_token: "TokenId", initiator_nonce: "Nonce", exit_amount: "BigUint", withdraw_to_l1: bool, timestamp: "TimeStamp"): self.to_chain_id = to_chain_id self.initiator_account_id = initiator_account_id self.initiator_sub_account_id = initiator_sub_account_id self.target = target self.target_sub_account_id = target_sub_account_id self.l2_source_token = l2_source_token self.l1_target_token = l1_target_token self.initiator_nonce = initiator_nonce self.exit_amount = exit_amount self.withdraw_to_l1 = withdraw_to_l1 self.timestamp = timestamp def __str__(self): return "ForcedExitBuilder(to_chain_id={}, initiator_account_id={}, initiator_sub_account_id={}, target={}, target_sub_account_id={}, l2_source_token={}, l1_target_token={}, initiator_nonce={}, exit_amount={}, withdraw_to_l1={}, timestamp={})".format(self.to_chain_id, self.initiator_account_id, self.initiator_sub_account_id, self.target, self.target_sub_account_id, self.l2_source_token, self.l1_target_token, self.initiator_nonce, self.exit_amount, self.withdraw_to_l1, self.timestamp) def __eq__(self, other): if self.to_chain_id != other.to_chain_id: return False if self.initiator_account_id != other.initiator_account_id: return False if self.initiator_sub_account_id != other.initiator_sub_account_id: return False if self.target != other.target: return False if self.target_sub_account_id != other.target_sub_account_id: return False if self.l2_source_token != other.l2_source_token: return False if self.l1_target_token != other.l1_target_token: return False if self.initiator_nonce != other.initiator_nonce: return False if self.exit_amount != other.exit_amount: return False if self.withdraw_to_l1 != other.withdraw_to_l1: return False if self.timestamp != other.timestamp: return False return True class _UniffiConverterTypeForcedExitBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return ForcedExitBuilder( to_chain_id=_UniffiConverterTypeChainId.read(buf), initiator_account_id=_UniffiConverterTypeAccountId.read(buf), initiator_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), target=_UniffiConverterTypeZkLinkAddress.read(buf), target_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), l2_source_token=_UniffiConverterTypeTokenId.read(buf), l1_target_token=_UniffiConverterTypeTokenId.read(buf), initiator_nonce=_UniffiConverterTypeNonce.read(buf), exit_amount=_UniffiConverterTypeBigUint.read(buf), withdraw_to_l1=_UniffiConverterBool.read(buf), timestamp=_UniffiConverterTypeTimeStamp.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeChainId.write(value.to_chain_id, buf) _UniffiConverterTypeAccountId.write(value.initiator_account_id, buf) _UniffiConverterTypeSubAccountId.write(value.initiator_sub_account_id, buf) _UniffiConverterTypeZkLinkAddress.write(value.target, buf) _UniffiConverterTypeSubAccountId.write(value.target_sub_account_id, buf) _UniffiConverterTypeTokenId.write(value.l2_source_token, buf) _UniffiConverterTypeTokenId.write(value.l1_target_token, buf) _UniffiConverterTypeNonce.write(value.initiator_nonce, buf) _UniffiConverterTypeBigUint.write(value.exit_amount, buf) _UniffiConverterBool.write(value.withdraw_to_l1, buf) _UniffiConverterTypeTimeStamp.write(value.timestamp, buf) class FullExitBuilder: to_chain_id: "ChainId";account_id: "AccountId";sub_account_id: "SubAccountId";exit_address: "ZkLinkAddress";l2_source_token: "TokenId";l1_target_token: "TokenId";contract_prices: "typing.List[ContractPrice]";margin_prices: "typing.List[SpotPriceInfo]";serial_id: "int";l2_hash: "H256"; @typing.no_type_check def __init__(self, to_chain_id: "ChainId", account_id: "AccountId", sub_account_id: "SubAccountId", exit_address: "ZkLinkAddress", l2_source_token: "TokenId", l1_target_token: "TokenId", contract_prices: "typing.List[ContractPrice]", margin_prices: "typing.List[SpotPriceInfo]", serial_id: "int", l2_hash: "H256"): self.to_chain_id = to_chain_id self.account_id = account_id self.sub_account_id = sub_account_id self.exit_address = exit_address self.l2_source_token = l2_source_token self.l1_target_token = l1_target_token self.contract_prices = contract_prices self.margin_prices = margin_prices self.serial_id = serial_id self.l2_hash = l2_hash def __str__(self): return "FullExitBuilder(to_chain_id={}, account_id={}, sub_account_id={}, exit_address={}, l2_source_token={}, l1_target_token={}, contract_prices={}, margin_prices={}, serial_id={}, l2_hash={})".format(self.to_chain_id, self.account_id, self.sub_account_id, self.exit_address, self.l2_source_token, self.l1_target_token, self.contract_prices, self.margin_prices, self.serial_id, self.l2_hash) def __eq__(self, other): if self.to_chain_id != other.to_chain_id: return False if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.exit_address != other.exit_address: return False if self.l2_source_token != other.l2_source_token: return False if self.l1_target_token != other.l1_target_token: return False if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False if self.serial_id != other.serial_id: return False if self.l2_hash != other.l2_hash: return False return True class _UniffiConverterTypeFullExitBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return FullExitBuilder( to_chain_id=_UniffiConverterTypeChainId.read(buf), account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), exit_address=_UniffiConverterTypeZkLinkAddress.read(buf), l2_source_token=_UniffiConverterTypeTokenId.read(buf), l1_target_token=_UniffiConverterTypeTokenId.read(buf), contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf), margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf), serial_id=_UniffiConverterUInt64.read(buf), l2_hash=_UniffiConverterTypeH256.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeChainId.write(value.to_chain_id, buf) _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeZkLinkAddress.write(value.exit_address, buf) _UniffiConverterTypeTokenId.write(value.l2_source_token, buf) _UniffiConverterTypeTokenId.write(value.l1_target_token, buf) _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) _UniffiConverterUInt64.write(value.serial_id, buf) _UniffiConverterTypeH256.write(value.l2_hash, buf) class FundingBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";sub_account_nonce: "Nonce";funding_account_ids: "typing.List[AccountId]";fee: "BigUint";fee_token: "TokenId"; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", sub_account_nonce: "Nonce", funding_account_ids: "typing.List[AccountId]", fee: "BigUint", fee_token: "TokenId"): self.account_id = account_id self.sub_account_id = sub_account_id self.sub_account_nonce = sub_account_nonce self.funding_account_ids = funding_account_ids self.fee = fee self.fee_token = fee_token def __str__(self): return "FundingBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, funding_account_ids={}, fee={}, fee_token={})".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.funding_account_ids, self.fee, self.fee_token) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.sub_account_nonce != other.sub_account_nonce: return False if self.funding_account_ids != other.funding_account_ids: return False if self.fee != other.fee: return False if self.fee_token != other.fee_token: return False return True class _UniffiConverterTypeFundingBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return FundingBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), sub_account_nonce=_UniffiConverterTypeNonce.read(buf), funding_account_ids=_UniffiConverterSequenceTypeAccountId.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), fee_token=_UniffiConverterTypeTokenId.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeNonce.write(value.sub_account_nonce, buf) _UniffiConverterSequenceTypeAccountId.write(value.funding_account_ids, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeTokenId.write(value.fee_token, buf) class FundingInfo: pair_id: "PairId";price: "BigUint";funding_rate: "int"; @typing.no_type_check def __init__(self, pair_id: "PairId", price: "BigUint", funding_rate: "int"): self.pair_id = pair_id self.price = price self.funding_rate = funding_rate def __str__(self): return "FundingInfo(pair_id={}, price={}, funding_rate={})".format(self.pair_id, self.price, self.funding_rate) def __eq__(self, other): if self.pair_id != other.pair_id: return False if self.price != other.price: return False if self.funding_rate != other.funding_rate: return False return True class _UniffiConverterTypeFundingInfo(_UniffiConverterRustBuffer): @staticmethod def read(buf): return FundingInfo( pair_id=_UniffiConverterTypePairId.read(buf), price=_UniffiConverterTypeBigUint.read(buf), funding_rate=_UniffiConverterInt16.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypePairId.write(value.pair_id, buf) _UniffiConverterTypeBigUint.write(value.price, buf) _UniffiConverterInt16.write(value.funding_rate, buf) class LiquidationBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";sub_account_nonce: "Nonce";contract_prices: "typing.List[ContractPrice]";margin_prices: "typing.List[SpotPriceInfo]";liquidation_account_id: "AccountId";fee: "BigUint";fee_token: "TokenId"; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", sub_account_nonce: "Nonce", contract_prices: "typing.List[ContractPrice]", margin_prices: "typing.List[SpotPriceInfo]", liquidation_account_id: "AccountId", fee: "BigUint", fee_token: "TokenId"): self.account_id = account_id self.sub_account_id = sub_account_id self.sub_account_nonce = sub_account_nonce self.contract_prices = contract_prices self.margin_prices = margin_prices self.liquidation_account_id = liquidation_account_id self.fee = fee self.fee_token = fee_token def __str__(self): return "LiquidationBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, contract_prices={}, margin_prices={}, liquidation_account_id={}, fee={}, fee_token={})".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.contract_prices, self.margin_prices, self.liquidation_account_id, self.fee, self.fee_token) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.sub_account_nonce != other.sub_account_nonce: return False if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False if self.liquidation_account_id != other.liquidation_account_id: return False if self.fee != other.fee: return False if self.fee_token != other.fee_token: return False return True class _UniffiConverterTypeLiquidationBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return LiquidationBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), sub_account_nonce=_UniffiConverterTypeNonce.read(buf), contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf), margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf), liquidation_account_id=_UniffiConverterTypeAccountId.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), fee_token=_UniffiConverterTypeTokenId.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeNonce.write(value.sub_account_nonce, buf) _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) _UniffiConverterTypeAccountId.write(value.liquidation_account_id, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeTokenId.write(value.fee_token, buf) class Message: data: str; @typing.no_type_check def __init__(self, data: str): self.data = data def __str__(self): return "Message(data={})".format(self.data) def __eq__(self, other): if self.data != other.data: return False return True class _UniffiConverterTypeMessage(_UniffiConverterRustBuffer): @staticmethod def read(buf): return Message( data=_UniffiConverterString.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterString.write(value.data, buf) class OraclePrices: contract_prices: "typing.List[ContractPrice]";margin_prices: "typing.List[SpotPriceInfo]"; @typing.no_type_check def __init__(self, contract_prices: "typing.List[ContractPrice]", margin_prices: "typing.List[SpotPriceInfo]"): self.contract_prices = contract_prices self.margin_prices = margin_prices def __str__(self): return "OraclePrices(contract_prices={}, margin_prices={})".format(self.contract_prices, self.margin_prices) def __eq__(self, other): if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False return True class _UniffiConverterTypeOraclePrices(_UniffiConverterRustBuffer): @staticmethod def read(buf): return OraclePrices( contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf), margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) class OrderMatchingBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";taker: "Order";maker: "Order";fee: "BigUint";fee_token: "TokenId";contract_prices: "typing.List[ContractPrice]";margin_prices: "typing.List[SpotPriceInfo]";expect_base_amount: "BigUint";expect_quote_amount: "BigUint"; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", taker: "Order", maker: "Order", fee: "BigUint", fee_token: "TokenId", contract_prices: "typing.List[ContractPrice]", margin_prices: "typing.List[SpotPriceInfo]", expect_base_amount: "BigUint", expect_quote_amount: "BigUint"): self.account_id = account_id self.sub_account_id = sub_account_id self.taker = taker self.maker = maker self.fee = fee self.fee_token = fee_token self.contract_prices = contract_prices self.margin_prices = margin_prices self.expect_base_amount = expect_base_amount self.expect_quote_amount = expect_quote_amount def __str__(self): return "OrderMatchingBuilder(account_id={}, sub_account_id={}, taker={}, maker={}, fee={}, fee_token={}, contract_prices={}, margin_prices={}, expect_base_amount={}, expect_quote_amount={})".format(self.account_id, self.sub_account_id, self.taker, self.maker, self.fee, self.fee_token, self.contract_prices, self.margin_prices, self.expect_base_amount, self.expect_quote_amount) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.taker != other.taker: return False if self.maker != other.maker: return False if self.fee != other.fee: return False if self.fee_token != other.fee_token: return False if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False if self.expect_base_amount != other.expect_base_amount: return False if self.expect_quote_amount != other.expect_quote_amount: return False return True class _UniffiConverterTypeOrderMatchingBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return OrderMatchingBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), taker=_UniffiConverterTypeOrder.read(buf), maker=_UniffiConverterTypeOrder.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), fee_token=_UniffiConverterTypeTokenId.read(buf), contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf), margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf), expect_base_amount=_UniffiConverterTypeBigUint.read(buf), expect_quote_amount=_UniffiConverterTypeBigUint.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeOrder.write(value.taker, buf) _UniffiConverterTypeOrder.write(value.maker, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeTokenId.write(value.fee_token, buf) _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) _UniffiConverterTypeBigUint.write(value.expect_base_amount, buf) _UniffiConverterTypeBigUint.write(value.expect_quote_amount, buf) class SpotPriceInfo: token_id: "TokenId";price: "BigUint"; @typing.no_type_check def __init__(self, token_id: "TokenId", price: "BigUint"): self.token_id = token_id self.price = price def __str__(self): return "SpotPriceInfo(token_id={}, price={})".format(self.token_id, self.price) def __eq__(self, other): if self.token_id != other.token_id: return False if self.price != other.price: return False return True class _UniffiConverterTypeSpotPriceInfo(_UniffiConverterRustBuffer): @staticmethod def read(buf): return SpotPriceInfo( token_id=_UniffiConverterTypeTokenId.read(buf), price=_UniffiConverterTypeBigUint.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeTokenId.write(value.token_id, buf) _UniffiConverterTypeBigUint.write(value.price, buf) class TransferBuilder: account_id: "AccountId";to_address: "ZkLinkAddress";from_sub_account_id: "SubAccountId";to_sub_account_id: "SubAccountId";token: "TokenId";amount: "BigUint";fee: "BigUint";nonce: "Nonce";timestamp: "TimeStamp"; @typing.no_type_check def __init__(self, account_id: "AccountId", to_address: "ZkLinkAddress", from_sub_account_id: "SubAccountId", to_sub_account_id: "SubAccountId", token: "TokenId", amount: "BigUint", fee: "BigUint", nonce: "Nonce", timestamp: "TimeStamp"): self.account_id = account_id self.to_address = to_address self.from_sub_account_id = from_sub_account_id self.to_sub_account_id = to_sub_account_id self.token = token self.amount = amount self.fee = fee self.nonce = nonce self.timestamp = timestamp def __str__(self): return "TransferBuilder(account_id={}, to_address={}, from_sub_account_id={}, to_sub_account_id={}, token={}, amount={}, fee={}, nonce={}, timestamp={})".format(self.account_id, self.to_address, self.from_sub_account_id, self.to_sub_account_id, self.token, self.amount, self.fee, self.nonce, self.timestamp) def __eq__(self, other): if self.account_id != other.account_id: return False if self.to_address != other.to_address: return False if self.from_sub_account_id != other.from_sub_account_id: return False if self.to_sub_account_id != other.to_sub_account_id: return False if self.token != other.token: return False if self.amount != other.amount: return False if self.fee != other.fee: return False if self.nonce != other.nonce: return False if self.timestamp != other.timestamp: return False return True class _UniffiConverterTypeTransferBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return TransferBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), to_address=_UniffiConverterTypeZkLinkAddress.read(buf), from_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), to_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), token=_UniffiConverterTypeTokenId.read(buf), amount=_UniffiConverterTypeBigUint.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), nonce=_UniffiConverterTypeNonce.read(buf), timestamp=_UniffiConverterTypeTimeStamp.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeZkLinkAddress.write(value.to_address, buf) _UniffiConverterTypeSubAccountId.write(value.from_sub_account_id, buf) _UniffiConverterTypeSubAccountId.write(value.to_sub_account_id, buf) _UniffiConverterTypeTokenId.write(value.token, buf) _UniffiConverterTypeBigUint.write(value.amount, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeNonce.write(value.nonce, buf) _UniffiConverterTypeTimeStamp.write(value.timestamp, buf) class TxMessage: transaction: str;amount: str;fee: str;token: str;to: str;nonce: str; @typing.no_type_check def __init__(self, transaction: str, amount: str, fee: str, token: str, to: str, nonce: str): self.transaction = transaction self.amount = amount self.fee = fee self.token = token self.to = to self.nonce = nonce def __str__(self): return "TxMessage(transaction={}, amount={}, fee={}, token={}, to={}, nonce={})".format(self.transaction, self.amount, self.fee, self.token, self.to, self.nonce) def __eq__(self, other): if self.transaction != other.transaction: return False if self.amount != other.amount: return False if self.fee != other.fee: return False if self.token != other.token: return False if self.to != other.to: return False if self.nonce != other.nonce: return False return True class _UniffiConverterTypeTxMessage(_UniffiConverterRustBuffer): @staticmethod def read(buf): return TxMessage( transaction=_UniffiConverterString.read(buf), amount=_UniffiConverterString.read(buf), fee=_UniffiConverterString.read(buf), token=_UniffiConverterString.read(buf), to=_UniffiConverterString.read(buf), nonce=_UniffiConverterString.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterString.write(value.transaction, buf) _UniffiConverterString.write(value.amount, buf) _UniffiConverterString.write(value.fee, buf) _UniffiConverterString.write(value.token, buf) _UniffiConverterString.write(value.to, buf) _UniffiConverterString.write(value.nonce, buf) class TxSignature: tx: "ZkLinkTx";layer1_signature: "typing.Optional[TxLayer1Signature]"; @typing.no_type_check def __init__(self, tx: "ZkLinkTx", layer1_signature: "typing.Optional[TxLayer1Signature]"): self.tx = tx self.layer1_signature = layer1_signature def __str__(self): return "TxSignature(tx={}, layer1_signature={})".format(self.tx, self.layer1_signature) def __eq__(self, other): if self.tx != other.tx: return False if self.layer1_signature != other.layer1_signature: return False return True class _UniffiConverterTypeTxSignature(_UniffiConverterRustBuffer): @staticmethod def read(buf): return TxSignature( tx=_UniffiConverterTypeZkLinkTx.read(buf), layer1_signature=_UniffiConverterOptionalTypeTxLayer1Signature.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeZkLinkTx.write(value.tx, buf) _UniffiConverterOptionalTypeTxLayer1Signature.write(value.layer1_signature, buf) class UpdateGlobalVarBuilder: from_chain_id: "ChainId";sub_account_id: "SubAccountId";parameter: "Parameter";serial_id: "int"; @typing.no_type_check def __init__(self, from_chain_id: "ChainId", sub_account_id: "SubAccountId", parameter: "Parameter", serial_id: "int"): self.from_chain_id = from_chain_id self.sub_account_id = sub_account_id self.parameter = parameter self.serial_id = serial_id def __str__(self): return "UpdateGlobalVarBuilder(from_chain_id={}, sub_account_id={}, parameter={}, serial_id={})".format(self.from_chain_id, self.sub_account_id, self.parameter, self.serial_id) def __eq__(self, other): if self.from_chain_id != other.from_chain_id: return False if self.sub_account_id != other.sub_account_id: return False if self.parameter != other.parameter: return False if self.serial_id != other.serial_id: return False return True class _UniffiConverterTypeUpdateGlobalVarBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return UpdateGlobalVarBuilder( from_chain_id=_UniffiConverterTypeChainId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), parameter=_UniffiConverterTypeParameter.read(buf), serial_id=_UniffiConverterUInt64.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeChainId.write(value.from_chain_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeParameter.write(value.parameter, buf) _UniffiConverterUInt64.write(value.serial_id, buf) class WithdrawBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";to_chain_id: "ChainId";to_address: "ZkLinkAddress";l2_source_token: "TokenId";l1_target_token: "TokenId";amount: "BigUint";call_data: "typing.Optional[typing.List[int]]";fee: "BigUint";nonce: "Nonce";withdraw_fee_ratio: "int";withdraw_to_l1: bool;timestamp: "TimeStamp"; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", to_chain_id: "ChainId", to_address: "ZkLinkAddress", l2_source_token: "TokenId", l1_target_token: "TokenId", amount: "BigUint", call_data: "typing.Optional[typing.List[int]]", fee: "BigUint", nonce: "Nonce", withdraw_fee_ratio: "int", withdraw_to_l1: bool, timestamp: "TimeStamp"): self.account_id = account_id self.sub_account_id = sub_account_id self.to_chain_id = to_chain_id self.to_address = to_address self.l2_source_token = l2_source_token self.l1_target_token = l1_target_token self.amount = amount self.call_data = call_data self.fee = fee self.nonce = nonce self.withdraw_fee_ratio = withdraw_fee_ratio self.withdraw_to_l1 = withdraw_to_l1 self.timestamp = timestamp def __str__(self): return "WithdrawBuilder(account_id={}, sub_account_id={}, to_chain_id={}, to_address={}, l2_source_token={}, l1_target_token={}, amount={}, call_data={}, fee={}, nonce={}, withdraw_fee_ratio={}, withdraw_to_l1={}, timestamp={})".format(self.account_id, self.sub_account_id, self.to_chain_id, self.to_address, self.l2_source_token, self.l1_target_token, self.amount, self.call_data, self.fee, self.nonce, self.withdraw_fee_ratio, self.withdraw_to_l1, self.timestamp) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.to_chain_id != other.to_chain_id: return False if self.to_address != other.to_address: return False if self.l2_source_token != other.l2_source_token: return False if self.l1_target_token != other.l1_target_token: return False if self.amount != other.amount: return False if self.call_data != other.call_data: return False if self.fee != other.fee: return False if self.nonce != other.nonce: return False if self.withdraw_fee_ratio != other.withdraw_fee_ratio: return False if self.withdraw_to_l1 != other.withdraw_to_l1: return False if self.timestamp != other.timestamp: return False return True class _UniffiConverterTypeWithdrawBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return WithdrawBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), to_chain_id=_UniffiConverterTypeChainId.read(buf), to_address=_UniffiConverterTypeZkLinkAddress.read(buf), l2_source_token=_UniffiConverterTypeTokenId.read(buf), l1_target_token=_UniffiConverterTypeTokenId.read(buf), amount=_UniffiConverterTypeBigUint.read(buf), call_data=_UniffiConverterOptionalSequenceUInt8.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), nonce=_UniffiConverterTypeNonce.read(buf), withdraw_fee_ratio=_UniffiConverterUInt16.read(buf), withdraw_to_l1=_UniffiConverterBool.read(buf), timestamp=_UniffiConverterTypeTimeStamp.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeChainId.write(value.to_chain_id, buf) _UniffiConverterTypeZkLinkAddress.write(value.to_address, buf) _UniffiConverterTypeTokenId.write(value.l2_source_token, buf) _UniffiConverterTypeTokenId.write(value.l1_target_token, buf) _UniffiConverterTypeBigUint.write(value.amount, buf) _UniffiConverterOptionalSequenceUInt8.write(value.call_data, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeNonce.write(value.nonce, buf) _UniffiConverterUInt16.write(value.withdraw_fee_ratio, buf) _UniffiConverterBool.write(value.withdraw_to_l1, buf) _UniffiConverterTypeTimeStamp.write(value.timestamp, buf) class ZkLinkSignature: pub_key: "PackedPublicKey";signature: "PackedSignature"; @typing.no_type_check def __init__(self, pub_key: "PackedPublicKey", signature: "PackedSignature"): self.pub_key = pub_key self.signature = signature def __str__(self): return "ZkLinkSignature(pub_key={}, signature={})".format(self.pub_key, self.signature) def __eq__(self, other): if self.pub_key != other.pub_key: return False if self.signature != other.signature: return False return True class _UniffiConverterTypeZkLinkSignature(_UniffiConverterRustBuffer): @staticmethod def read(buf): return ZkLinkSignature( pub_key=_UniffiConverterTypePackedPublicKey.read(buf), signature=_UniffiConverterTypePackedSignature.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypePackedPublicKey.write(value.pub_key, buf) _UniffiConverterTypePackedSignature.write(value.signature, buf) class ChangePubKeyAuthData: def __init__(self): raise RuntimeError("ChangePubKeyAuthData cannot be instantiated directly") # Each enum variant is a nested class of the enum itself. class ONCHAIN: @typing.no_type_check def __init__(self,): pass def __str__(self): return "ChangePubKeyAuthData.ONCHAIN()".format() def __eq__(self, other): if not other.is_onchain(): return False return True class ETH_ECDSA: eth_signature: "PackedEthSignature"; @typing.no_type_check def __init__(self,eth_signature: "PackedEthSignature"): self.eth_signature = eth_signature def __str__(self): return "ChangePubKeyAuthData.ETH_ECDSA(eth_signature={})".format(self.eth_signature) def __eq__(self, other): if not other.is_eth_ecdsa(): return False if self.eth_signature != other.eth_signature: return False return True class ETH_CREATE2: data: "Create2Data"; @typing.no_type_check def __init__(self,data: "Create2Data"): self.data = data def __str__(self): return "ChangePubKeyAuthData.ETH_CREATE2(data={})".format(self.data) def __eq__(self, other): if not other.is_eth_create2(): return False if self.data != other.data: return False return True # For each variant, we have an `is_NAME` method for easily checking # whether an instance is that variant. def is_onchain(self) -> bool: return isinstance(self, ChangePubKeyAuthData.ONCHAIN) def is_eth_ecdsa(self) -> bool: return isinstance(self, ChangePubKeyAuthData.ETH_ECDSA) def is_eth_create2(self) -> bool: return isinstance(self, ChangePubKeyAuthData.ETH_CREATE2) # Now, a little trick - we make each nested variant class be a subclass of the main # enum class, so that method calls and instance checks etc will work intuitively. # We might be able to do this a little more neatly with a metaclass, but this'll do. ChangePubKeyAuthData.ONCHAIN = type("ChangePubKeyAuthData.ONCHAIN", (ChangePubKeyAuthData.ONCHAIN, ChangePubKeyAuthData,), {}) # type: ignore ChangePubKeyAuthData.ETH_ECDSA = type("ChangePubKeyAuthData.ETH_ECDSA", (ChangePubKeyAuthData.ETH_ECDSA, ChangePubKeyAuthData,), {}) # type: ignore ChangePubKeyAuthData.ETH_CREATE2 = type("ChangePubKeyAuthData.ETH_CREATE2", (ChangePubKeyAuthData.ETH_CREATE2, ChangePubKeyAuthData,), {}) # type: ignore class _UniffiConverterTypeChangePubKeyAuthData(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return ChangePubKeyAuthData.ONCHAIN( ) if variant == 2: return ChangePubKeyAuthData.ETH_ECDSA( _UniffiConverterTypePackedEthSignature.read(buf), ) if variant == 3: return ChangePubKeyAuthData.ETH_CREATE2( _UniffiConverterTypeCreate2Data.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value.is_onchain(): buf.write_i32(1) if value.is_eth_ecdsa(): buf.write_i32(2) _UniffiConverterTypePackedEthSignature.write(value.eth_signature, buf) if value.is_eth_create2(): buf.write_i32(3) _UniffiConverterTypeCreate2Data.write(value.data, buf) class ChangePubKeyAuthRequest: def __init__(self): raise RuntimeError("ChangePubKeyAuthRequest cannot be instantiated directly") # Each enum variant is a nested class of the enum itself. class ONCHAIN: @typing.no_type_check def __init__(self,): pass def __str__(self): return "ChangePubKeyAuthRequest.ONCHAIN()".format() def __eq__(self, other): if not other.is_onchain(): return False return True class ETH_ECDSA: @typing.no_type_check def __init__(self,): pass def __str__(self): return "ChangePubKeyAuthRequest.ETH_ECDSA()".format() def __eq__(self, other): if not other.is_eth_ecdsa(): return False return True class ETH_CREATE2: data: "Create2Data"; @typing.no_type_check def __init__(self,data: "Create2Data"): self.data = data def __str__(self): return "ChangePubKeyAuthRequest.ETH_CREATE2(data={})".format(self.data) def __eq__(self, other): if not other.is_eth_create2(): return False if self.data != other.data: return False return True # For each variant, we have an `is_NAME` method for easily checking # whether an instance is that variant. def is_onchain(self) -> bool: return isinstance(self, ChangePubKeyAuthRequest.ONCHAIN) def is_eth_ecdsa(self) -> bool: return isinstance(self, ChangePubKeyAuthRequest.ETH_ECDSA) def is_eth_create2(self) -> bool: return isinstance(self, ChangePubKeyAuthRequest.ETH_CREATE2) # Now, a little trick - we make each nested variant class be a subclass of the main # enum class, so that method calls and instance checks etc will work intuitively. # We might be able to do this a little more neatly with a metaclass, but this'll do. ChangePubKeyAuthRequest.ONCHAIN = type("ChangePubKeyAuthRequest.ONCHAIN", (ChangePubKeyAuthRequest.ONCHAIN, ChangePubKeyAuthRequest,), {}) # type: ignore ChangePubKeyAuthRequest.ETH_ECDSA = type("ChangePubKeyAuthRequest.ETH_ECDSA", (ChangePubKeyAuthRequest.ETH_ECDSA, ChangePubKeyAuthRequest,), {}) # type: ignore ChangePubKeyAuthRequest.ETH_CREATE2 = type("ChangePubKeyAuthRequest.ETH_CREATE2", (ChangePubKeyAuthRequest.ETH_CREATE2, ChangePubKeyAuthRequest,), {}) # type: ignore class _UniffiConverterTypeChangePubKeyAuthRequest(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return ChangePubKeyAuthRequest.ONCHAIN( ) if variant == 2: return ChangePubKeyAuthRequest.ETH_ECDSA( ) if variant == 3: return ChangePubKeyAuthRequest.ETH_CREATE2( _UniffiConverterTypeCreate2Data.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value.is_onchain(): buf.write_i32(1) if value.is_eth_ecdsa(): buf.write_i32(2) if value.is_eth_create2(): buf.write_i32(3) _UniffiConverterTypeCreate2Data.write(value.data, buf) # EthSignerError # We want to define each variant as a nested class that's also a subclass, # which is tricky in Python. To accomplish this we're going to create each # class separately, then manually add the child classes to the base class's # __dict__. All of this happens in dummy class to avoid polluting the module # namespace. class EthSignerError(Exception): pass _UniffiTempEthSignerError = EthSignerError class EthSignerError: # type: ignore class InvalidEthSigner(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.InvalidEthSigner({})".format(repr(str(self))) _UniffiTempEthSignerError.InvalidEthSigner = InvalidEthSigner # type: ignore class MissingEthPrivateKey(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.MissingEthPrivateKey({})".format(repr(str(self))) _UniffiTempEthSignerError.MissingEthPrivateKey = MissingEthPrivateKey # type: ignore class MissingEthSigner(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.MissingEthSigner({})".format(repr(str(self))) _UniffiTempEthSignerError.MissingEthSigner = MissingEthSigner # type: ignore class SigningFailed(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.SigningFailed({})".format(repr(str(self))) _UniffiTempEthSignerError.SigningFailed = SigningFailed # type: ignore class UnlockingFailed(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.UnlockingFailed({})".format(repr(str(self))) _UniffiTempEthSignerError.UnlockingFailed = UnlockingFailed # type: ignore class InvalidRawTx(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.InvalidRawTx({})".format(repr(str(self))) _UniffiTempEthSignerError.InvalidRawTx = InvalidRawTx # type: ignore class Eip712Failed(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.Eip712Failed({})".format(repr(str(self))) _UniffiTempEthSignerError.Eip712Failed = Eip712Failed # type: ignore class NoSigningKey(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.NoSigningKey({})".format(repr(str(self))) _UniffiTempEthSignerError.NoSigningKey = NoSigningKey # type: ignore class DefineAddress(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.DefineAddress({})".format(repr(str(self))) _UniffiTempEthSignerError.DefineAddress = DefineAddress # type: ignore class RecoverAddress(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.RecoverAddress({})".format(repr(str(self))) _UniffiTempEthSignerError.RecoverAddress = RecoverAddress # type: ignore class LengthMismatched(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.LengthMismatched({})".format(repr(str(self))) _UniffiTempEthSignerError.LengthMismatched = LengthMismatched # type: ignore class CryptoError(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.CryptoError({})".format(repr(str(self))) _UniffiTempEthSignerError.CryptoError = CryptoError # type: ignore class InvalidSignatureStr(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.InvalidSignatureStr({})".format(repr(str(self))) _UniffiTempEthSignerError.InvalidSignatureStr = InvalidSignatureStr # type: ignore class CustomError(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.CustomError({})".format(repr(str(self))) _UniffiTempEthSignerError.CustomError = CustomError # type: ignore class RpcSignError(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.RpcSignError({})".format(repr(str(self))) _UniffiTempEthSignerError.RpcSignError = RpcSignError # type: ignore EthSignerError = _UniffiTempEthSignerError # type: ignore del _UniffiTempEthSignerError class _UniffiConverterTypeEthSignerError(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return EthSignerError.InvalidEthSigner( _UniffiConverterString.read(buf), ) if variant == 2: return EthSignerError.MissingEthPrivateKey( _UniffiConverterString.read(buf), ) if variant == 3: return EthSignerError.MissingEthSigner( _UniffiConverterString.read(buf), ) if variant == 4: return EthSignerError.SigningFailed( _UniffiConverterString.read(buf), ) if variant == 5: return EthSignerError.UnlockingFailed( _UniffiConverterString.read(buf), ) if variant == 6: return EthSignerError.InvalidRawTx( _UniffiConverterString.read(buf), ) if variant == 7: return EthSignerError.Eip712Failed( _UniffiConverterString.read(buf), ) if variant == 8: return EthSignerError.NoSigningKey( _UniffiConverterString.read(buf), ) if variant == 9: return EthSignerError.DefineAddress( _UniffiConverterString.read(buf), ) if variant == 10: return EthSignerError.RecoverAddress( _UniffiConverterString.read(buf), ) if variant == 11: return EthSignerError.LengthMismatched( _UniffiConverterString.read(buf), ) if variant == 12: return EthSignerError.CryptoError( _UniffiConverterString.read(buf), ) if variant == 13: return EthSignerError.InvalidSignatureStr( _UniffiConverterString.read(buf), ) if variant == 14: return EthSignerError.CustomError( _UniffiConverterString.read(buf), ) if variant == 15: return EthSignerError.RpcSignError( _UniffiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") @staticmethod def write(value, buf): if isinstance(value, EthSignerError.InvalidEthSigner): buf.write_i32(1) if isinstance(value, EthSignerError.MissingEthPrivateKey): buf.write_i32(2) if isinstance(value, EthSignerError.MissingEthSigner): buf.write_i32(3) if isinstance(value, EthSignerError.SigningFailed): buf.write_i32(4) if isinstance(value, EthSignerError.UnlockingFailed): buf.write_i32(5) if isinstance(value, EthSignerError.InvalidRawTx): buf.write_i32(6) if isinstance(value, EthSignerError.Eip712Failed): buf.write_i32(7) if isinstance(value, EthSignerError.NoSigningKey): buf.write_i32(8) if isinstance(value, EthSignerError.DefineAddress): buf.write_i32(9) if isinstance(value, EthSignerError.RecoverAddress): buf.write_i32(10) if isinstance(value, EthSignerError.LengthMismatched): buf.write_i32(11) if isinstance(value, EthSignerError.CryptoError): buf.write_i32(12) if isinstance(value, EthSignerError.InvalidSignatureStr): buf.write_i32(13) if isinstance(value, EthSignerError.CustomError): buf.write_i32(14) if isinstance(value, EthSignerError.RpcSignError): buf.write_i32(15) class L1SignerType: def __init__(self): raise RuntimeError("L1SignerType cannot be instantiated directly") # Each enum variant is a nested class of the enum itself. class ETH: @typing.no_type_check def __init__(self,): pass def __str__(self): return "L1SignerType.ETH()".format() def __eq__(self, other): if not other.is_eth(): return False return True class STARKNET: chain_id: str;address: str; @typing.no_type_check def __init__(self,chain_id: str, address: str): self.chain_id = chain_id self.address = address def __str__(self): return "L1SignerType.STARKNET(chain_id={}, address={})".format(self.chain_id, self.address) def __eq__(self, other): if not other.is_starknet(): return False if self.chain_id != other.chain_id: return False if self.address != other.address: return False return True # For each variant, we have an `is_NAME` method for easily checking # whether an instance is that variant. def is_eth(self) -> bool: return isinstance(self, L1SignerType.ETH) def is_starknet(self) -> bool: return isinstance(self, L1SignerType.STARKNET) # Now, a little trick - we make each nested variant class be a subclass of the main # enum class, so that method calls and instance checks etc will work intuitively. # We might be able to do this a little more neatly with a metaclass, but this'll do. L1SignerType.ETH = type("L1SignerType.ETH", (L1SignerType.ETH, L1SignerType,), {}) # type: ignore L1SignerType.STARKNET = type("L1SignerType.STARKNET", (L1SignerType.STARKNET, L1SignerType,), {}) # type: ignore class _UniffiConverterTypeL1SignerType(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return L1SignerType.ETH( ) if variant == 2: return L1SignerType.STARKNET( _UniffiConverterString.read(buf), _UniffiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value.is_eth(): buf.write_i32(1) if value.is_starknet(): buf.write_i32(2) _UniffiConverterString.write(value.chain_id, buf) _UniffiConverterString.write(value.address, buf) class L1Type(enum.Enum): ETH = 1 STARKNET = 2 class _UniffiConverterTypeL1Type(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return L1Type.ETH if variant == 2: return L1Type.STARKNET raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value == L1Type.ETH: buf.write_i32(1) if value == L1Type.STARKNET: buf.write_i32(2) class Parameter: def __init__(self): raise RuntimeError("Parameter cannot be instantiated directly") # Each enum variant is a nested class of the enum itself. class FEE_ACCOUNT: account_id: "AccountId"; @typing.no_type_check def __init__(self,account_id: "AccountId"): self.account_id = account_id def __str__(self): return "Parameter.FEE_ACCOUNT(account_id={})".format(self.account_id) def __eq__(self, other): if not other.is_fee_account(): return False if self.account_id != other.account_id: return False return True class INSURANCE_FUND_ACCOUNT: account_id: "AccountId"; @typing.no_type_check def __init__(self,account_id: "AccountId"): self.account_id = account_id def __str__(self): return "Parameter.INSURANCE_FUND_ACCOUNT(account_id={})".format(self.account_id) def __eq__(self, other): if not other.is_insurance_fund_account(): return False if self.account_id != other.account_id: return False return True class MARGIN_INFO: margin_id: "MarginId";token_id: "TokenId";ratio: "int"; @typing.no_type_check def __init__(self,margin_id: "MarginId", token_id: "TokenId", ratio: "int"): self.margin_id = margin_id self.token_id = token_id self.ratio = ratio def __str__(self): return "Parameter.MARGIN_INFO(margin_id={}, token_id={}, ratio={})".format(self.margin_id, self.token_id, self.ratio) def __eq__(self, other): if not other.is_margin_info(): return False if self.margin_id != other.margin_id: return False if self.token_id != other.token_id: return False if self.ratio != other.ratio: return False return True class FUNDING_INFOS: infos: "typing.List[FundingInfo]"; @typing.no_type_check def __init__(self,infos: "typing.List[FundingInfo]"): self.infos = infos def __str__(self): return "Parameter.FUNDING_INFOS(infos={})".format(self.infos) def __eq__(self, other): if not other.is_funding_infos(): return False if self.infos != other.infos: return False return True class CONTRACT_INFO: pair_id: "PairId";symbol: str;initial_margin_rate: "int";maintenance_margin_rate: "int"; @typing.no_type_check def __init__(self,pair_id: "PairId", symbol: str, initial_margin_rate: "int", maintenance_margin_rate: "int"): self.pair_id = pair_id self.symbol = symbol self.initial_margin_rate = initial_margin_rate self.maintenance_margin_rate = maintenance_margin_rate def __str__(self): return "Parameter.CONTRACT_INFO(pair_id={}, symbol={}, initial_margin_rate={}, maintenance_margin_rate={})".format(self.pair_id, self.symbol, self.initial_margin_rate, self.maintenance_margin_rate) def __eq__(self, other): if not other.is_contract_info(): return False if self.pair_id != other.pair_id: return False if self.symbol != other.symbol: return False if self.initial_margin_rate != other.initial_margin_rate: return False if self.maintenance_margin_rate != other.maintenance_margin_rate: return False return True # For each variant, we have an `is_NAME` method for easily checking # whether an instance is that variant. def is_fee_account(self) -> bool: return isinstance(self, Parameter.FEE_ACCOUNT) def is_insurance_fund_account(self) -> bool: return isinstance(self, Parameter.INSURANCE_FUND_ACCOUNT) def is_margin_info(self) -> bool: return isinstance(self, Parameter.MARGIN_INFO) def is_funding_infos(self) -> bool: return isinstance(self, Parameter.FUNDING_INFOS) def is_contract_info(self) -> bool: return isinstance(self, Parameter.CONTRACT_INFO) # Now, a little trick - we make each nested variant class be a subclass of the main # enum class, so that method calls and instance checks etc will work intuitively. # We might be able to do this a little more neatly with a metaclass, but this'll do. Parameter.FEE_ACCOUNT = type("Parameter.FEE_ACCOUNT", (Parameter.FEE_ACCOUNT, Parameter,), {}) # type: ignore Parameter.INSURANCE_FUND_ACCOUNT = type("Parameter.INSURANCE_FUND_ACCOUNT", (Parameter.INSURANCE_FUND_ACCOUNT, Parameter,), {}) # type: ignore Parameter.MARGIN_INFO = type("Parameter.MARGIN_INFO", (Parameter.MARGIN_INFO, Parameter,), {}) # type: ignore Parameter.FUNDING_INFOS = type("Parameter.FUNDING_INFOS", (Parameter.FUNDING_INFOS, Parameter,), {}) # type: ignore Parameter.CONTRACT_INFO = type("Parameter.CONTRACT_INFO", (Parameter.CONTRACT_INFO, Parameter,), {}) # type: ignore class _UniffiConverterTypeParameter(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return Parameter.FEE_ACCOUNT( _UniffiConverterTypeAccountId.read(buf), ) if variant == 2: return Parameter.INSURANCE_FUND_ACCOUNT( _UniffiConverterTypeAccountId.read(buf), ) if variant == 3: return Parameter.MARGIN_INFO( _UniffiConverterTypeMarginId.read(buf), _UniffiConverterTypeTokenId.read(buf), _UniffiConverterUInt8.read(buf), ) if variant == 4: return Parameter.FUNDING_INFOS( _UniffiConverterSequenceTypeFundingInfo.read(buf), ) if variant == 5: return Parameter.CONTRACT_INFO( _UniffiConverterTypePairId.read(buf), _UniffiConverterString.read(buf), _UniffiConverterUInt16.read(buf), _UniffiConverterUInt16.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value.is_fee_account(): buf.write_i32(1) _UniffiConverterTypeAccountId.write(value.account_id, buf) if value.is_insurance_fund_account(): buf.write_i32(2) _UniffiConverterTypeAccountId.write(value.account_id, buf) if value.is_margin_info(): buf.write_i32(3) _UniffiConverterTypeMarginId.write(value.margin_id, buf) _UniffiConverterTypeTokenId.write(value.token_id, buf) _UniffiConverterUInt8.write(value.ratio, buf) if value.is_funding_infos(): buf.write_i32(4) _UniffiConverterSequenceTypeFundingInfo.write(value.infos, buf) if value.is_contract_info(): buf.write_i32(5) _UniffiConverterTypePairId.write(value.pair_id, buf) _UniffiConverterString.write(value.symbol, buf) _UniffiConverterUInt16.write(value.initial_margin_rate, buf) _UniffiConverterUInt16.write(value.maintenance_margin_rate, buf) # SignError # We want to define each variant as a nested class that's also a subclass, # which is tricky in Python. To accomplish this we're going to create each # class separately, then manually add the child classes to the base class's # __dict__. All of this happens in dummy class to avoid polluting the module # namespace. class SignError(Exception): pass _UniffiTempSignError = SignError class SignError: # type: ignore class EthSigningError(_UniffiTempSignError): def __repr__(self): return "SignError.EthSigningError({})".format(repr(str(self))) _UniffiTempSignError.EthSigningError = EthSigningError # type: ignore class ZkSigningError(_UniffiTempSignError): def __repr__(self): return "SignError.ZkSigningError({})".format(repr(str(self))) _UniffiTempSignError.ZkSigningError = ZkSigningError # type: ignore class StarkSigningError(_UniffiTempSignError): def __repr__(self): return "SignError.StarkSigningError({})".format(repr(str(self))) _UniffiTempSignError.StarkSigningError = StarkSigningError # type: ignore class IncorrectTx(_UniffiTempSignError): def __repr__(self): return "SignError.IncorrectTx({})".format(repr(str(self))) _UniffiTempSignError.IncorrectTx = IncorrectTx # type: ignore SignError = _UniffiTempSignError # type: ignore del _UniffiTempSignError class _UniffiConverterTypeSignError(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return SignError.EthSigningError( _UniffiConverterString.read(buf), ) if variant == 2: return SignError.ZkSigningError( _UniffiConverterString.read(buf), ) if variant == 3: return SignError.StarkSigningError( _UniffiConverterString.read(buf), ) if variant == 4: return SignError.IncorrectTx( _UniffiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") @staticmethod def write(value, buf): if isinstance(value, SignError.EthSigningError): buf.write_i32(1) if isinstance(value, SignError.ZkSigningError): buf.write_i32(2) if isinstance(value, SignError.StarkSigningError): buf.write_i32(3) if isinstance(value, SignError.IncorrectTx): buf.write_i32(4) # StarkSignerError # We want to define each variant as a nested class that's also a subclass, # which is tricky in Python. To accomplish this we're going to create each # class separately, then manually add the child classes to the base class's # __dict__. All of this happens in dummy class to avoid polluting the module # namespace. class StarkSignerError(Exception): pass _UniffiTempStarkSignerError = StarkSignerError class StarkSignerError: # type: ignore class InvalidStarknetSigner(_UniffiTempStarkSignerError): def __repr__(self): return "StarkSignerError.InvalidStarknetSigner({})".format(repr(str(self))) _UniffiTempStarkSignerError.InvalidStarknetSigner = InvalidStarknetSigner # type: ignore class InvalidSignature(_UniffiTempStarkSignerError): def __repr__(self): return "StarkSignerError.InvalidSignature({})".format(repr(str(self))) _UniffiTempStarkSignerError.InvalidSignature = InvalidSignature # type: ignore class InvalidPrivKey(_UniffiTempStarkSignerError): def __repr__(self): return "StarkSignerError.InvalidPrivKey({})".format(repr(str(self))) _UniffiTempStarkSignerError.InvalidPrivKey = InvalidPrivKey # type: ignore class SignError(_UniffiTempStarkSignerError): def __repr__(self): return "StarkSignerError.SignError({})".format(repr(str(self))) _UniffiTempStarkSignerError.SignError = SignError # type: ignore class RpcSignError(_UniffiTempStarkSignerError): def __repr__(self): return "StarkSignerError.RpcSignError({})".format(repr(str(self))) _UniffiTempStarkSignerError.RpcSignError = RpcSignError # type: ignore StarkSignerError = _UniffiTempStarkSignerError # type: ignore del _UniffiTempStarkSignerError class _UniffiConverterTypeStarkSignerError(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return StarkSignerError.InvalidStarknetSigner( _UniffiConverterString.read(buf), ) if variant == 2: return StarkSignerError.InvalidSignature( _UniffiConverterString.read(buf), ) if variant == 3: return StarkSignerError.InvalidPrivKey( _UniffiConverterString.read(buf), ) if variant == 4: return StarkSignerError.SignError( _UniffiConverterString.read(buf), ) if variant == 5: return StarkSignerError.RpcSignError( _UniffiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") @staticmethod def write(value, buf): if isinstance(value, StarkSignerError.InvalidStarknetSigner): buf.write_i32(1) if isinstance(value, StarkSignerError.InvalidSignature): buf.write_i32(2) if isinstance(value, StarkSignerError.InvalidPrivKey): buf.write_i32(3) if isinstance(value, StarkSignerError.SignError): buf.write_i32(4) if isinstance(value, StarkSignerError.RpcSignError): buf.write_i32(5) # TypeError # We want to define each variant as a nested class that's also a subclass, # which is tricky in Python. To accomplish this we're going to create each # class separately, then manually add the child classes to the base class's # __dict__. All of this happens in dummy class to avoid polluting the module # namespace. class TypeError(Exception): pass _UniffiTempTypeError = TypeError class TypeError: # type: ignore class InvalidAddress(_UniffiTempTypeError): def __repr__(self): return "TypeError.InvalidAddress({})".format(repr(str(self))) _UniffiTempTypeError.InvalidAddress = InvalidAddress # type: ignore class InvalidTxHash(_UniffiTempTypeError): def __repr__(self): return "TypeError.InvalidTxHash({})".format(repr(str(self))) _UniffiTempTypeError.InvalidTxHash = InvalidTxHash # type: ignore class NotStartWithZerox(_UniffiTempTypeError): def __repr__(self): return "TypeError.NotStartWithZerox({})".format(repr(str(self))) _UniffiTempTypeError.NotStartWithZerox = NotStartWithZerox # type: ignore class SizeMismatch(_UniffiTempTypeError): def __repr__(self): return "TypeError.SizeMismatch({})".format(repr(str(self))) _UniffiTempTypeError.SizeMismatch = SizeMismatch # type: ignore class DecodeFromHexErr(_UniffiTempTypeError): def __repr__(self): return "TypeError.DecodeFromHexErr({})".format(repr(str(self))) _UniffiTempTypeError.DecodeFromHexErr = DecodeFromHexErr # type: ignore class TooBigInteger(_UniffiTempTypeError): def __repr__(self): return "TypeError.TooBigInteger({})".format(repr(str(self))) _UniffiTempTypeError.TooBigInteger = TooBigInteger # type: ignore class InvalidBigIntStr(_UniffiTempTypeError): def __repr__(self): return "TypeError.InvalidBigIntStr({})".format(repr(str(self))) _UniffiTempTypeError.InvalidBigIntStr = InvalidBigIntStr # type: ignore TypeError = _UniffiTempTypeError # type: ignore del _UniffiTempTypeError class _UniffiConverterTypeTypeError(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return TypeError.InvalidAddress( _UniffiConverterString.read(buf), ) if variant == 2: return TypeError.InvalidTxHash( _UniffiConverterString.read(buf), ) if variant == 3: return TypeError.NotStartWithZerox( _UniffiConverterString.read(buf), ) if variant == 4: return TypeError.SizeMismatch( _UniffiConverterString.read(buf), ) if variant == 5: return TypeError.DecodeFromHexErr( _UniffiConverterString.read(buf), ) if variant == 6: return TypeError.TooBigInteger( _UniffiConverterString.read(buf), ) if variant == 7: return TypeError.InvalidBigIntStr( _UniffiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") @staticmethod def write(value, buf): if isinstance(value, TypeError.InvalidAddress): buf.write_i32(1) if isinstance(value, TypeError.InvalidTxHash): buf.write_i32(2) if isinstance(value, TypeError.NotStartWithZerox): buf.write_i32(3) if isinstance(value, TypeError.SizeMismatch): buf.write_i32(4) if isinstance(value, TypeError.DecodeFromHexErr): buf.write_i32(5) if isinstance(value, TypeError.TooBigInteger): buf.write_i32(6) if isinstance(value, TypeError.InvalidBigIntStr): buf.write_i32(7) class TypedDataMessage: def __init__(self): raise RuntimeError("TypedDataMessage cannot be instantiated directly") # Each enum variant is a nested class of the enum itself. class CREATE_L2_KEY: message: "Message"; @typing.no_type_check def __init__(self,message: "Message"): self.message = message def __str__(self): return "TypedDataMessage.CREATE_L2_KEY(message={})".format(self.message) def __eq__(self, other): if not other.is_create_l2_key(): return False if self.message != other.message: return False return True class TRANSACTION: message: "TxMessage"; @typing.no_type_check def __init__(self,message: "TxMessage"): self.message = message def __str__(self): return "TypedDataMessage.TRANSACTION(message={})".format(self.message) def __eq__(self, other): if not other.is_transaction(): return False if self.message != other.message: return False return True # For each variant, we have an `is_NAME` method for easily checking # whether an instance is that variant. def is_create_l2_key(self) -> bool: return isinstance(self, TypedDataMessage.CREATE_L2_KEY) def is_transaction(self) -> bool: return isinstance(self, TypedDataMessage.TRANSACTION) # Now, a little trick - we make each nested variant class be a subclass of the main # enum class, so that method calls and instance checks etc will work intuitively. # We might be able to do this a little more neatly with a metaclass, but this'll do. TypedDataMessage.CREATE_L2_KEY = type("TypedDataMessage.CREATE_L2_KEY", (TypedDataMessage.CREATE_L2_KEY, TypedDataMessage,), {}) # type: ignore TypedDataMessage.TRANSACTION = type("TypedDataMessage.TRANSACTION", (TypedDataMessage.TRANSACTION, TypedDataMessage,), {}) # type: ignore class _UniffiConverterTypeTypedDataMessage(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return TypedDataMessage.CREATE_L2_KEY( _UniffiConverterTypeMessage.read(buf), ) if variant == 2: return TypedDataMessage.TRANSACTION( _UniffiConverterTypeTxMessage.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value.is_create_l2_key(): buf.write_i32(1) _UniffiConverterTypeMessage.write(value.message, buf) if value.is_transaction(): buf.write_i32(2) _UniffiConverterTypeTxMessage.write(value.message, buf) # ZkSignerError # We want to define each variant as a nested class that's also a subclass, # which is tricky in Python. To accomplish this we're going to create each # class separately, then manually add the child classes to the base class's # __dict__. All of this happens in dummy class to avoid polluting the module # namespace. class ZkSignerError(Exception): pass _UniffiTempZkSignerError = ZkSignerError class ZkSignerError: # type: ignore class CustomError(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.CustomError({})".format(repr(str(self))) _UniffiTempZkSignerError.CustomError = CustomError # type: ignore class InvalidSignature(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.InvalidSignature({})".format(repr(str(self))) _UniffiTempZkSignerError.InvalidSignature = InvalidSignature # type: ignore class InvalidPrivKey(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.InvalidPrivKey({})".format(repr(str(self))) _UniffiTempZkSignerError.InvalidPrivKey = InvalidPrivKey # type: ignore class InvalidSeed(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.InvalidSeed({})".format(repr(str(self))) _UniffiTempZkSignerError.InvalidSeed = InvalidSeed # type: ignore class InvalidPubkey(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.InvalidPubkey({})".format(repr(str(self))) _UniffiTempZkSignerError.InvalidPubkey = InvalidPubkey # type: ignore class InvalidPubkeyHash(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.InvalidPubkeyHash({})".format(repr(str(self))) _UniffiTempZkSignerError.InvalidPubkeyHash = InvalidPubkeyHash # type: ignore class EthSignerError(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.EthSignerError({})".format(repr(str(self))) _UniffiTempZkSignerError.EthSignerError = EthSignerError # type: ignore class StarkSignerError(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.StarkSignerError({})".format(repr(str(self))) _UniffiTempZkSignerError.StarkSignerError = StarkSignerError # type: ignore ZkSignerError = _UniffiTempZkSignerError # type: ignore del _UniffiTempZkSignerError class _UniffiConverterTypeZkSignerError(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return ZkSignerError.CustomError( _UniffiConverterString.read(buf), ) if variant == 2: return ZkSignerError.InvalidSignature( _UniffiConverterString.read(buf), ) if variant == 3: return ZkSignerError.InvalidPrivKey( _UniffiConverterString.read(buf), ) if variant == 4: return ZkSignerError.InvalidSeed( _UniffiConverterString.read(buf), ) if variant == 5: return ZkSignerError.InvalidPubkey( _UniffiConverterString.read(buf), ) if variant == 6: return ZkSignerError.InvalidPubkeyHash( _UniffiConverterString.read(buf), ) if variant == 7: return ZkSignerError.EthSignerError( _UniffiConverterString.read(buf), ) if variant == 8: return ZkSignerError.StarkSignerError( _UniffiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") @staticmethod def write(value, buf): if isinstance(value, ZkSignerError.CustomError): buf.write_i32(1) if isinstance(value, ZkSignerError.InvalidSignature): buf.write_i32(2) if isinstance(value, ZkSignerError.InvalidPrivKey): buf.write_i32(3) if isinstance(value, ZkSignerError.InvalidSeed): buf.write_i32(4) if isinstance(value, ZkSignerError.InvalidPubkey): buf.write_i32(5) if isinstance(value, ZkSignerError.InvalidPubkeyHash): buf.write_i32(6) if isinstance(value, ZkSignerError.EthSignerError): buf.write_i32(7) if isinstance(value, ZkSignerError.StarkSignerError): buf.write_i32(8) class _UniffiConverterOptionalString(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.write_u8(0) return buf.write_u8(1) _UniffiConverterString.write(value, buf) @classmethod def read(cls, buf): flag = buf.read_u8() if flag == 0: return None elif flag == 1: return _UniffiConverterString.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class _UniffiConverterOptionalTypeZkLinkSignature(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.write_u8(0) return buf.write_u8(1) _UniffiConverterTypeZkLinkSignature.write(value, buf) @classmethod def read(cls, buf): flag = buf.read_u8() if flag == 0: return None elif flag == 1: return _UniffiConverterTypeZkLinkSignature.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class _UniffiConverterOptionalSequenceUInt8(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.write_u8(0) return buf.write_u8(1) _UniffiConverterSequenceUInt8.write(value, buf) @classmethod def read(cls, buf): flag = buf.read_u8() if flag == 0: return None elif flag == 1: return _UniffiConverterSequenceUInt8.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class _UniffiConverterOptionalTypeH256(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.write_u8(0) return buf.write_u8(1) _UniffiConverterTypeH256.write(value, buf) @classmethod def read(cls, buf): flag = buf.read_u8() if flag == 0: return None elif flag == 1: return _UniffiConverterTypeH256.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class _UniffiConverterOptionalTypePackedEthSignature(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.write_u8(0) return buf.write_u8(1) _UniffiConverterTypePackedEthSignature.write(value, buf) @classmethod def read(cls, buf): flag = buf.read_u8() if flag == 0: return None elif flag == 1: return _UniffiConverterTypePackedEthSignature.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class _UniffiConverterOptionalTypeTxLayer1Signature(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.write_u8(0) return buf.write_u8(1) _UniffiConverterTypeTxLayer1Signature.write(value, buf) @classmethod def read(cls, buf): flag = buf.read_u8() if flag == 0: return None elif flag == 1: return _UniffiConverterTypeTxLayer1Signature.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class _UniffiConverterSequenceUInt8(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.write_i32(items) for item in value: _UniffiConverterUInt8.write(item, buf) @classmethod def read(cls, buf): count = buf.read_i32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ _UniffiConverterUInt8.read(buf) for i in range(count) ] class _UniffiConverterSequenceTypeContract(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.write_i32(items) for item in value: _UniffiConverterTypeContract.write(item, buf) @classmethod def read(cls, buf): count = buf.read_i32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ _UniffiConverterTypeContract.read(buf) for i in range(count) ] class _UniffiConverterSequenceTypeContractPrice(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.write_i32(items) for item in value: _UniffiConverterTypeContractPrice.write(item, buf) @classmethod def read(cls, buf): count = buf.read_i32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ _UniffiConverterTypeContractPrice.read(buf) for i in range(count) ] class _UniffiConverterSequenceTypeFundingInfo(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.write_i32(items) for item in value: _UniffiConverterTypeFundingInfo.write(item, buf) @classmethod def read(cls, buf): count = buf.read_i32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ _UniffiConverterTypeFundingInfo.read(buf) for i in range(count) ] class _UniffiConverterSequenceTypeSpotPriceInfo(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.write_i32(items) for item in value: _UniffiConverterTypeSpotPriceInfo.write(item, buf) @classmethod def read(cls, buf): count = buf.read_i32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ _UniffiConverterTypeSpotPriceInfo.read(buf) for i in range(count) ] class _UniffiConverterSequenceTypeAccountId(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.write_i32(items) for item in value: _UniffiConverterTypeAccountId.write(item, buf) @classmethod def read(cls, buf): count = buf.read_i32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ _UniffiConverterTypeAccountId.read(buf) for i in range(count) ] # Type alias AccountId = int class _UniffiConverterTypeAccountId: @staticmethod def write(value, buf): _UniffiConverterUInt32.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt32.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt32.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt32.lower(value) # Type alias Address = str class _UniffiConverterTypeAddress: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias BigUint = str class _UniffiConverterTypeBigUint: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias BlockNumber = int class _UniffiConverterTypeBlockNumber: @staticmethod def write(value, buf): _UniffiConverterUInt32.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt32.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt32.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt32.lower(value) # Type alias ChainId = int class _UniffiConverterTypeChainId: @staticmethod def write(value, buf): _UniffiConverterUInt8.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt8.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt8.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt8.lower(value) # Type alias EthBlockId = int class _UniffiConverterTypeEthBlockId: @staticmethod def write(value, buf): _UniffiConverterUInt64.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt64.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt64.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt64.lower(value) # Type alias H256 = str class _UniffiConverterTypeH256: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias MarginId = int class _UniffiConverterTypeMarginId: @staticmethod def write(value, buf): _UniffiConverterUInt8.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt8.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt8.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt8.lower(value) # Type alias Nonce = int class _UniffiConverterTypeNonce: @staticmethod def write(value, buf): _UniffiConverterUInt32.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt32.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt32.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt32.lower(value) # Type alias PackedEthSignature = str class _UniffiConverterTypePackedEthSignature: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias PackedPublicKey = str class _UniffiConverterTypePackedPublicKey: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias PackedSignature = str class _UniffiConverterTypePackedSignature: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias PairId = int class _UniffiConverterTypePairId: @staticmethod def write(value, buf): _UniffiConverterUInt16.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt16.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt16.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt16.lower(value) # Type alias PriorityOpId = int class _UniffiConverterTypePriorityOpId: @staticmethod def write(value, buf): _UniffiConverterUInt64.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt64.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt64.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt64.lower(value) # Type alias PubKeyHash = str class _UniffiConverterTypePubKeyHash: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias SlotId = int class _UniffiConverterTypeSlotId: @staticmethod def write(value, buf): _UniffiConverterUInt32.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt32.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt32.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt32.lower(value) # Type alias StarkEip712Signature = str class _UniffiConverterTypeStarkEip712Signature: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias SubAccountId = int class _UniffiConverterTypeSubAccountId: @staticmethod def write(value, buf): _UniffiConverterUInt8.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt8.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt8.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt8.lower(value) # Type alias TimeStamp = int class _UniffiConverterTypeTimeStamp: @staticmethod def write(value, buf): _UniffiConverterUInt32.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt32.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt32.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt32.lower(value) # Type alias TokenId = int class _UniffiConverterTypeTokenId: @staticmethod def write(value, buf): _UniffiConverterUInt32.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt32.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt32.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt32.lower(value) # Type alias TxHash = str class _UniffiConverterTypeTxHash: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias TxLayer1Signature = str class _UniffiConverterTypeTxLayer1Signature: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias ZkLinkAddress = str class _UniffiConverterTypeZkLinkAddress: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias ZkLinkTx = str class _UniffiConverterTypeZkLinkTx: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) def closest_packable_fee_amount(fee: "BigUint") -> "BigUint": return _UniffiConverterTypeBigUint.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_closest_packable_fee_amount, _UniffiConverterTypeBigUint.lower(fee))) def closest_packable_token_amount(amount: "BigUint") -> "BigUint": return _UniffiConverterTypeBigUint.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_closest_packable_token_amount, _UniffiConverterTypeBigUint.lower(amount))) def create_signed_change_pubkey(zklink_signer: "ZkLinkSigner",tx: "ChangePubKey",eth_auth_data: "ChangePubKeyAuthData") -> "ChangePubKey": return _UniffiConverterTypeChangePubKey.lift(_rust_call_with_error(_UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_func_create_signed_change_pubkey, _UniffiConverterTypeZkLinkSigner.lower(zklink_signer), _UniffiConverterTypeChangePubKey.lower(tx), _UniffiConverterTypeChangePubKeyAuthData.lower(eth_auth_data))) def eth_signature_of_change_pubkey(tx: "ChangePubKey",eth_signer: "EthSigner") -> "PackedEthSignature": return _UniffiConverterTypePackedEthSignature.lift(_rust_call_with_error(_UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_func_eth_signature_of_change_pubkey, _UniffiConverterTypeChangePubKey.lower(tx), _UniffiConverterTypeEthSigner.lower(eth_signer))) def get_public_key_hash(public_key: "PackedPublicKey") -> "PubKeyHash": return _UniffiConverterTypePubKeyHash.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_get_public_key_hash, _UniffiConverterTypePackedPublicKey.lower(public_key))) def is_fee_amount_packable(fee: "BigUint") -> bool: return _UniffiConverterBool.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_is_fee_amount_packable, _UniffiConverterTypeBigUint.lower(fee))) def is_token_amount_packable(amount: "BigUint") -> bool: return _UniffiConverterBool.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_is_token_amount_packable, _UniffiConverterTypeBigUint.lower(amount))) def verify_musig(signature: "ZkLinkSignature",msg: "typing.List[int]") -> bool: return _UniffiConverterBool.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_verify_musig, _UniffiConverterTypeZkLinkSignature.lower(signature), _UniffiConverterSequenceUInt8.lower(msg))) def zklink_main_net_url() -> str: return _UniffiConverterString.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_main_net_url,)) def zklink_test_net_url() -> str: return _UniffiConverterString.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_test_net_url,)) __all__ = [ "InternalError", "ChangePubKeyAuthData", "ChangePubKeyAuthRequest", "EthSignerError", "L1SignerType", "L1Type", "Parameter", "SignError", "StarkSignerError", "TypeError", "TypedDataMessage", "ZkSignerError", "AutoDeleveragingBuilder", "ChangePubKeyBuilder", "ContractBuilder", "ContractMatchingBuilder", "ContractPrice", "Create2Data", "DepositBuilder", "ForcedExitBuilder", "FullExitBuilder", "FundingBuilder", "FundingInfo", "LiquidationBuilder", "Message", "OraclePrices", "OrderMatchingBuilder", "SpotPriceInfo", "TransferBuilder", "TxMessage", "TxSignature", "UpdateGlobalVarBuilder", "WithdrawBuilder", "ZkLinkSignature", "closest_packable_fee_amount", "closest_packable_token_amount", "create_signed_change_pubkey", "eth_signature_of_change_pubkey", "get_public_key_hash", "is_fee_amount_packable", "is_token_amount_packable", "verify_musig", "zklink_main_net_url", "zklink_test_net_url", "AutoDeleveraging", "ChangePubKey", "Contract", "ContractMatching", "Deposit", "EthSigner", "ForcedExit", "FullExit", "Funding", "Liquidation", "Order", "OrderMatching", "Signer", "StarkSigner", "Transfer", "TypedData", "UpdateGlobalVar", "Withdraw", "ZkLinkSigner", ] ================================================ FILE: jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk-x86.py ================================================ # This file was autogenerated by some hot garbage in the `uniffi` crate. # Trust me, you don't want to mess with it! # Tell mypy (a type checker) to ignore all errors from this file. # See https://mypy.readthedocs.io/en/stable/config_file.html?highlight=ignore-errors#confval-ignore_errors # mypy: ignore-errors # Common helper code. # # Ideally this would live in a separate .py file where it can be unittested etc # in isolation, and perhaps even published as a re-useable package. # # However, it's important that the details of how this helper code works (e.g. the # way that different builtin types are passed across the FFI) exactly match what's # expected by the rust code on the other side of the interface. In practice right # now that means coming from the exact some version of `uniffi` that was used to # compile the rust component. The easiest way to ensure this is to bundle the Python # helpers directly inline like we're doing here. import os import sys import ctypes import enum import struct import contextlib import datetime import threading # Used for default argument values DEFAULT = object() class RustBuffer(ctypes.Structure): _fields_ = [ ("capacity", ctypes.c_int32), ("len", ctypes.c_int32), ("data", ctypes.POINTER(ctypes.c_char)), ] @staticmethod def alloc(size): return rust_call(_UniFFILib.ffi_zklink_sdk_f180_rustbuffer_alloc, size) @staticmethod def reserve(rbuf, additional): return rust_call(_UniFFILib.ffi_zklink_sdk_f180_rustbuffer_reserve, rbuf, additional) def free(self): return rust_call(_UniFFILib.ffi_zklink_sdk_f180_rustbuffer_free, self) def __str__(self): return "RustBuffer(capacity={}, len={}, data={})".format( self.capacity, self.len, self.data[0:self.len] ) @contextlib.contextmanager def allocWithBuilder(): """Context-manger to allocate a buffer using a RustBufferBuilder. The allocated buffer will be automatically freed if an error occurs, ensuring that we don't accidentally leak it. """ builder = RustBufferBuilder() try: yield builder except: builder.discard() raise @contextlib.contextmanager def consumeWithStream(self): """Context-manager to consume a buffer using a RustBufferStream. The RustBuffer will be freed once the context-manager exits, ensuring that we don't leak it even if an error occurs. """ try: s = RustBufferStream(self) yield s if s.remaining() != 0: raise RuntimeError("junk data left in buffer after consuming") finally: self.free() class ForeignBytes(ctypes.Structure): _fields_ = [ ("len", ctypes.c_int32), ("data", ctypes.POINTER(ctypes.c_char)), ] def __str__(self): return "ForeignBytes(len={}, data={})".format(self.len, self.data[0:self.len]) class RustBufferStream(object): """ Helper for structured reading of bytes from a RustBuffer """ def __init__(self, rbuf): self.rbuf = rbuf self.offset = 0 def remaining(self): return self.rbuf.len - self.offset def _unpack_from(self, size, format): if self.offset + size > self.rbuf.len: raise InternalError("read past end of rust buffer") value = struct.unpack(format, self.rbuf.data[self.offset:self.offset+size])[0] self.offset += size return value def read(self, size): if self.offset + size > self.rbuf.len: raise InternalError("read past end of rust buffer") data = self.rbuf.data[self.offset:self.offset+size] self.offset += size return data def readI8(self): return self._unpack_from(1, ">b") def readU8(self): return self._unpack_from(1, ">B") def readI16(self): return self._unpack_from(2, ">h") def readU16(self): return self._unpack_from(2, ">H") def readI32(self): return self._unpack_from(4, ">i") def readU32(self): return self._unpack_from(4, ">I") def readI64(self): return self._unpack_from(8, ">q") def readU64(self): return self._unpack_from(8, ">Q") def readFloat(self): v = self._unpack_from(4, ">f") return v def readDouble(self): return self._unpack_from(8, ">d") class RustBufferBuilder(object): """ Helper for structured writing of bytes into a RustBuffer. """ def __init__(self): self.rbuf = RustBuffer.alloc(16) self.rbuf.len = 0 def finalize(self): rbuf = self.rbuf self.rbuf = None return rbuf def discard(self): if self.rbuf is not None: rbuf = self.finalize() rbuf.free() @contextlib.contextmanager def _reserve(self, numBytes): if self.rbuf.len + numBytes > self.rbuf.capacity: self.rbuf = RustBuffer.reserve(self.rbuf, numBytes) yield None self.rbuf.len += numBytes def _pack_into(self, size, format, value): with self._reserve(size): # XXX TODO: I feel like I should be able to use `struct.pack_into` here but can't figure it out. for i, byte in enumerate(struct.pack(format, value)): self.rbuf.data[self.rbuf.len + i] = byte def write(self, value): with self._reserve(len(value)): for i, byte in enumerate(value): self.rbuf.data[self.rbuf.len + i] = byte def writeI8(self, v): self._pack_into(1, ">b", v) def writeU8(self, v): self._pack_into(1, ">B", v) def writeI16(self, v): self._pack_into(2, ">h", v) def writeU16(self, v): self._pack_into(2, ">H", v) def writeI32(self, v): self._pack_into(4, ">i", v) def writeU32(self, v): self._pack_into(4, ">I", v) def writeI64(self, v): self._pack_into(8, ">q", v) def writeU64(self, v): self._pack_into(8, ">Q", v) def writeFloat(self, v): self._pack_into(4, ">f", v) def writeDouble(self, v): self._pack_into(8, ">d", v) # A handful of classes and functions to support the generated data structures. # This would be a good candidate for isolating in its own ffi-support lib. class InternalError(Exception): pass class RustCallStatus(ctypes.Structure): """ Error runtime. """ _fields_ = [ ("code", ctypes.c_int8), ("error_buf", RustBuffer), ] # These match the values from the uniffi::rustcalls module CALL_SUCCESS = 0 CALL_ERROR = 1 CALL_PANIC = 2 def __str__(self): if self.code == RustCallStatus.CALL_SUCCESS: return "RustCallStatus(CALL_SUCCESS)" elif self.code == RustCallStatus.CALL_ERROR: return "RustCallStatus(CALL_ERROR)" elif self.code == RustCallStatus.CALL_PANIC: return "RustCallStatus(CALL_PANIC)" else: return "RustCallStatus()" def rust_call(fn, *args): # Call a rust function return rust_call_with_error(None, fn, *args) def rust_call_with_error(error_ffi_converter, fn, *args): # Call a rust function and handle any errors # # This function is used for rust calls that return Result<> and therefore can set the CALL_ERROR status code. # error_ffi_converter must be set to the FfiConverter for the error class that corresponds to the result. call_status = RustCallStatus(code=RustCallStatus.CALL_SUCCESS, error_buf=RustBuffer(0, 0, None)) args_with_error = args + (ctypes.byref(call_status),) result = fn(*args_with_error) if call_status.code == RustCallStatus.CALL_SUCCESS: return result elif call_status.code == RustCallStatus.CALL_ERROR: if error_ffi_converter is None: call_status.error_buf.free() raise InternalError("rust_call_with_error: CALL_ERROR, but error_ffi_converter is None") else: raise error_ffi_converter.lift(call_status.error_buf) elif call_status.code == RustCallStatus.CALL_PANIC: # When the rust code sees a panic, it tries to construct a RustBuffer # with the message. But if that code panics, then it just sends back # an empty buffer. if call_status.error_buf.len > 0: msg = FfiConverterString.lift(call_status.error_buf) else: msg = "Unknown rust panic" raise InternalError(msg) else: raise InternalError("Invalid RustCallStatus code: {}".format( call_status.code)) # A function pointer for a callback as defined by UniFFI. # Rust definition `fn(handle: u64, method: u32, args: RustBuffer, buf_ptr: *mut RustBuffer) -> int` FOREIGN_CALLBACK_T = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.c_ulonglong, ctypes.c_ulong, RustBuffer, ctypes.POINTER(RustBuffer)) # Types conforming to `FfiConverterPrimitive` pass themselves directly over the FFI. class FfiConverterPrimitive: @classmethod def lift(cls, value): return value @classmethod def lower(cls, value): return value # Helper class for wrapper types that will always go through a RustBuffer. # Classes should inherit from this and implement the `read` and `write` static methods. class FfiConverterRustBuffer: @classmethod def lift(cls, rbuf): with rbuf.consumeWithStream() as stream: return cls.read(stream) @classmethod def lower(cls, value): with RustBuffer.allocWithBuilder() as builder: cls.write(value, builder) return builder.finalize() # Contains loading, initialization code, # and the FFI Function declarations in a com.sun.jna.Library. # This is how we find and load the dynamic library provided by the component. # For now we just look it up by name. # # XXX TODO: This will probably grow some magic for resolving megazording in future. # E.g. we might start by looking for the named component in `libuniffi.so` and if # that fails, fall back to loading it separately from `lib${componentName}.so`. from pathlib import Path def loadIndirect(): if sys.platform == "darwin": libname = "lib{}.dylib" elif sys.platform.startswith("win"): # As of python3.8, ctypes does not seem to search $PATH when loading DLLs. # We could use `os.add_dll_directory` to configure the search path, but # it doesn't feel right to mess with application-wide settings. Let's # assume that the `.dll` is next to the `.py` file and load by full path. libname = os.path.join( os.path.dirname(__file__), "{}.dll", ) else: # Anything else must be an ELF platform - Linux, *BSD, Solaris/illumos libname = "lib{}.so" lib = libname.format("zklink_sdk") path = str(Path(__file__).parent / lib) return ctypes.cdll.LoadLibrary(path) # A ctypes library to expose the extern-C FFI definitions. # This is an implementation detail which will be called internally by the public API. _UniFFILib = loadIndirect() _UniFFILib.ffi_zklink_sdk_f180_Deposit_object_free.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_Deposit_object_free.restype = None _UniFFILib.zklink_sdk_f180_Deposit_new.argtypes = ( RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Deposit_new.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_Deposit_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Deposit_get_bytes.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Deposit_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Deposit_tx_hash.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Deposit_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Deposit_json_str.restype = RustBuffer _UniFFILib.ffi_zklink_sdk_f180_Withdraw_object_free.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_Withdraw_object_free.restype = None _UniFFILib.zklink_sdk_f180_Withdraw_new.argtypes = ( RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Withdraw_new.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_Withdraw_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Withdraw_get_signature.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Withdraw_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Withdraw_get_bytes.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Withdraw_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Withdraw_tx_hash.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Withdraw_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Withdraw_json_str.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Withdraw_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Withdraw_is_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_Withdraw_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Withdraw_is_signature_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_Withdraw_get_eth_sign_msg.argtypes = ( ctypes.c_void_p, RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Withdraw_get_eth_sign_msg.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Withdraw_eth_signature.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Withdraw_eth_signature.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Withdraw_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Withdraw_create_signed_tx.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_Withdraw_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Withdraw_to_zklink_tx.restype = RustBuffer _UniFFILib.ffi_zklink_sdk_f180_ChangePubKey_object_free.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_ChangePubKey_object_free.restype = None _UniFFILib.zklink_sdk_f180_ChangePubKey_new.argtypes = ( RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ChangePubKey_new.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_ChangePubKey_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ChangePubKey_get_signature.restype = RustBuffer _UniFFILib.zklink_sdk_f180_ChangePubKey_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ChangePubKey_get_bytes.restype = RustBuffer _UniFFILib.zklink_sdk_f180_ChangePubKey_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ChangePubKey_tx_hash.restype = RustBuffer _UniFFILib.zklink_sdk_f180_ChangePubKey_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ChangePubKey_json_str.restype = RustBuffer _UniFFILib.zklink_sdk_f180_ChangePubKey_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ChangePubKey_is_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_ChangePubKey_is_onchain.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ChangePubKey_is_onchain.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_ChangePubKey_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ChangePubKey_is_signature_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_ChangePubKey_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ChangePubKey_to_zklink_tx.restype = RustBuffer _UniFFILib.ffi_zklink_sdk_f180_ForcedExit_object_free.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_ForcedExit_object_free.restype = None _UniFFILib.zklink_sdk_f180_ForcedExit_new.argtypes = ( RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ForcedExit_new.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_ForcedExit_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ForcedExit_get_signature.restype = RustBuffer _UniFFILib.zklink_sdk_f180_ForcedExit_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ForcedExit_get_bytes.restype = RustBuffer _UniFFILib.zklink_sdk_f180_ForcedExit_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ForcedExit_tx_hash.restype = RustBuffer _UniFFILib.zklink_sdk_f180_ForcedExit_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ForcedExit_json_str.restype = RustBuffer _UniFFILib.zklink_sdk_f180_ForcedExit_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ForcedExit_is_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_ForcedExit_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ForcedExit_is_signature_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_ForcedExit_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ForcedExit_create_signed_tx.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_ForcedExit_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ForcedExit_to_zklink_tx.restype = RustBuffer _UniFFILib.ffi_zklink_sdk_f180_FullExit_object_free.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_FullExit_object_free.restype = None _UniFFILib.zklink_sdk_f180_FullExit_new.argtypes = ( RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_FullExit_new.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_FullExit_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_FullExit_get_bytes.restype = RustBuffer _UniFFILib.zklink_sdk_f180_FullExit_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_FullExit_tx_hash.restype = RustBuffer _UniFFILib.zklink_sdk_f180_FullExit_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_FullExit_json_str.restype = RustBuffer _UniFFILib.zklink_sdk_f180_FullExit_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_FullExit_is_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_FullExit_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_FullExit_to_zklink_tx.restype = RustBuffer _UniFFILib.ffi_zklink_sdk_f180_Transfer_object_free.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_Transfer_object_free.restype = None _UniFFILib.zklink_sdk_f180_Transfer_new.argtypes = ( RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Transfer_new.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_Transfer_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Transfer_get_signature.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Transfer_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Transfer_get_bytes.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Transfer_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Transfer_tx_hash.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Transfer_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Transfer_json_str.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Transfer_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Transfer_is_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_Transfer_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Transfer_is_signature_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_Transfer_get_eth_sign_msg.argtypes = ( ctypes.c_void_p, RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Transfer_get_eth_sign_msg.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Transfer_eth_signature.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Transfer_eth_signature.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Transfer_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Transfer_create_signed_tx.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_Transfer_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Transfer_to_zklink_tx.restype = RustBuffer _UniFFILib.ffi_zklink_sdk_f180_Order_object_free.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_Order_object_free.restype = None _UniFFILib.zklink_sdk_f180_Order_new.argtypes = ( ctypes.c_uint32, ctypes.c_uint8, ctypes.c_uint32, ctypes.c_uint32, ctypes.c_uint32, ctypes.c_uint32, RustBuffer, RustBuffer, ctypes.c_int8, ctypes.c_int8, ctypes.c_uint8, ctypes.c_uint8, RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Order_new.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_Order_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Order_get_signature.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Order_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Order_get_bytes.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Order_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Order_json_str.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Order_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Order_is_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_Order_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Order_is_signature_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_Order_get_eth_sign_msg.argtypes = ( ctypes.c_void_p, RustBuffer, RustBuffer, ctypes.c_uint8, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Order_get_eth_sign_msg.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Order_create_signed_order.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Order_create_signed_order.restype = ctypes.c_void_p _UniFFILib.ffi_zklink_sdk_f180_OrderMatching_object_free.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_OrderMatching_object_free.restype = None _UniFFILib.zklink_sdk_f180_OrderMatching_new.argtypes = ( RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_OrderMatching_new.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_OrderMatching_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_OrderMatching_get_bytes.restype = RustBuffer _UniFFILib.zklink_sdk_f180_OrderMatching_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_OrderMatching_tx_hash.restype = RustBuffer _UniFFILib.zklink_sdk_f180_OrderMatching_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_OrderMatching_json_str.restype = RustBuffer _UniFFILib.zklink_sdk_f180_OrderMatching_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_OrderMatching_is_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_OrderMatching_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_OrderMatching_get_signature.restype = RustBuffer _UniFFILib.zklink_sdk_f180_OrderMatching_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_OrderMatching_is_signature_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_OrderMatching_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_OrderMatching_create_signed_tx.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_OrderMatching_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_OrderMatching_to_zklink_tx.restype = RustBuffer _UniFFILib.ffi_zklink_sdk_f180_Contract_object_free.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_Contract_object_free.restype = None _UniFFILib.zklink_sdk_f180_Contract_new.argtypes = ( RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Contract_new.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_Contract_is_long.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Contract_is_long.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_Contract_is_short.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Contract_is_short.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_Contract_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Contract_get_signature.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Contract_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Contract_is_signature_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_Contract_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Contract_get_bytes.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Contract_create_signed_contract.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Contract_create_signed_contract.restype = ctypes.c_void_p _UniFFILib.ffi_zklink_sdk_f180_AutoDeleveraging_object_free.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_AutoDeleveraging_object_free.restype = None _UniFFILib.zklink_sdk_f180_AutoDeleveraging_new.argtypes = ( RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_AutoDeleveraging_new.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_AutoDeleveraging_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_AutoDeleveraging_get_bytes.restype = RustBuffer _UniFFILib.zklink_sdk_f180_AutoDeleveraging_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_AutoDeleveraging_tx_hash.restype = RustBuffer _UniFFILib.zklink_sdk_f180_AutoDeleveraging_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_AutoDeleveraging_json_str.restype = RustBuffer _UniFFILib.zklink_sdk_f180_AutoDeleveraging_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_AutoDeleveraging_is_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_AutoDeleveraging_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_AutoDeleveraging_get_signature.restype = RustBuffer _UniFFILib.zklink_sdk_f180_AutoDeleveraging_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_AutoDeleveraging_is_signature_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_AutoDeleveraging_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_AutoDeleveraging_to_zklink_tx.restype = RustBuffer _UniFFILib.zklink_sdk_f180_AutoDeleveraging_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_AutoDeleveraging_create_signed_tx.restype = ctypes.c_void_p _UniFFILib.ffi_zklink_sdk_f180_ContractMatching_object_free.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_ContractMatching_object_free.restype = None _UniFFILib.zklink_sdk_f180_ContractMatching_new.argtypes = ( RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ContractMatching_new.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_ContractMatching_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ContractMatching_get_bytes.restype = RustBuffer _UniFFILib.zklink_sdk_f180_ContractMatching_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ContractMatching_tx_hash.restype = RustBuffer _UniFFILib.zklink_sdk_f180_ContractMatching_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ContractMatching_json_str.restype = RustBuffer _UniFFILib.zklink_sdk_f180_ContractMatching_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ContractMatching_is_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_ContractMatching_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ContractMatching_get_signature.restype = RustBuffer _UniFFILib.zklink_sdk_f180_ContractMatching_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ContractMatching_is_signature_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_ContractMatching_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ContractMatching_to_zklink_tx.restype = RustBuffer _UniFFILib.zklink_sdk_f180_ContractMatching_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ContractMatching_create_signed_tx.restype = ctypes.c_void_p _UniFFILib.ffi_zklink_sdk_f180_Funding_object_free.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_Funding_object_free.restype = None _UniFFILib.zklink_sdk_f180_Funding_new.argtypes = ( RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Funding_new.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_Funding_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Funding_get_bytes.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Funding_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Funding_tx_hash.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Funding_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Funding_json_str.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Funding_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Funding_is_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_Funding_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Funding_get_signature.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Funding_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Funding_is_signature_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_Funding_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Funding_to_zklink_tx.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Funding_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Funding_create_signed_tx.restype = ctypes.c_void_p _UniFFILib.ffi_zklink_sdk_f180_Liquidation_object_free.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_Liquidation_object_free.restype = None _UniFFILib.zklink_sdk_f180_Liquidation_new.argtypes = ( RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Liquidation_new.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_Liquidation_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Liquidation_get_bytes.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Liquidation_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Liquidation_tx_hash.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Liquidation_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Liquidation_json_str.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Liquidation_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Liquidation_is_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_Liquidation_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Liquidation_get_signature.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Liquidation_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Liquidation_is_signature_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_Liquidation_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Liquidation_to_zklink_tx.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Liquidation_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Liquidation_create_signed_tx.restype = ctypes.c_void_p _UniFFILib.ffi_zklink_sdk_f180_UpdateGlobalVar_object_free.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_UpdateGlobalVar_object_free.restype = None _UniFFILib.zklink_sdk_f180_UpdateGlobalVar_new.argtypes = ( RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_UpdateGlobalVar_new.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_UpdateGlobalVar_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_UpdateGlobalVar_get_bytes.restype = RustBuffer _UniFFILib.zklink_sdk_f180_UpdateGlobalVar_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_UpdateGlobalVar_tx_hash.restype = RustBuffer _UniFFILib.zklink_sdk_f180_UpdateGlobalVar_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_UpdateGlobalVar_json_str.restype = RustBuffer _UniFFILib.zklink_sdk_f180_UpdateGlobalVar_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_UpdateGlobalVar_is_valid.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_UpdateGlobalVar_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_UpdateGlobalVar_to_zklink_tx.restype = RustBuffer _UniFFILib.ffi_zklink_sdk_f180_EthSigner_object_free.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_EthSigner_object_free.restype = None _UniFFILib.zklink_sdk_f180_EthSigner_new.argtypes = ( RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_EthSigner_new.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_EthSigner_sign_message.argtypes = ( ctypes.c_void_p, RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_EthSigner_sign_message.restype = RustBuffer _UniFFILib.zklink_sdk_f180_EthSigner_get_address.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_EthSigner_get_address.restype = RustBuffer _UniFFILib.ffi_zklink_sdk_f180_TypedData_object_free.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_TypedData_object_free.restype = None _UniFFILib.zklink_sdk_f180_TypedData_new.argtypes = ( RustBuffer, RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_TypedData_new.restype = ctypes.c_void_p _UniFFILib.ffi_zklink_sdk_f180_StarkSigner_object_free.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_StarkSigner_object_free.restype = None _UniFFILib.zklink_sdk_f180_StarkSigner_new.argtypes = ( ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_StarkSigner_new.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_StarkSigner_new_from_hex_str.argtypes = ( RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_StarkSigner_new_from_hex_str.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_StarkSigner_sign_message.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_StarkSigner_sign_message.restype = RustBuffer _UniFFILib.ffi_zklink_sdk_f180_ZkLinkSigner_object_free.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_ZkLinkSigner_object_free.restype = None _UniFFILib.zklink_sdk_f180_ZkLinkSigner_new.argtypes = ( ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ZkLinkSigner_new.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_seed.argtypes = ( RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_seed.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_hex_eth_signer.argtypes = ( RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_hex_eth_signer.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_hex_stark_signer.argtypes = ( RustBuffer, RustBuffer, RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_hex_stark_signer.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_bytes.argtypes = ( RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_bytes.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_ZkLinkSigner_public_key.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ZkLinkSigner_public_key.restype = RustBuffer _UniFFILib.zklink_sdk_f180_ZkLinkSigner_sign_musig.argtypes = ( ctypes.c_void_p, RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_ZkLinkSigner_sign_musig.restype = RustBuffer _UniFFILib.ffi_zklink_sdk_f180_Signer_object_free.argtypes = ( ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_Signer_object_free.restype = None _UniFFILib.zklink_sdk_f180_Signer_new.argtypes = ( RustBuffer, RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Signer_new.restype = ctypes.c_void_p _UniFFILib.zklink_sdk_f180_Signer_sign_change_pubkey_with_create2data_auth.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Signer_sign_change_pubkey_with_create2data_auth.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Signer_sign_change_pubkey_with_onchain_auth_data.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Signer_sign_change_pubkey_with_onchain_auth_data.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Signer_sign_change_pubkey_with_eth_ecdsa_auth.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Signer_sign_change_pubkey_with_eth_ecdsa_auth.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Signer_sign_transfer.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, RustBuffer, RustBuffer, RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Signer_sign_transfer.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Signer_sign_withdraw.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, RustBuffer, RustBuffer, RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Signer_sign_withdraw.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Signer_sign_forced_exit.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Signer_sign_forced_exit.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Signer_sign_order_matching.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Signer_sign_order_matching.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Signer_sign_contract_matching.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Signer_sign_contract_matching.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Signer_sign_funding.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Signer_sign_funding.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Signer_sign_liquidation.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Signer_sign_liquidation.restype = RustBuffer _UniFFILib.zklink_sdk_f180_Signer_sign_auto_deleveraging.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_Signer_sign_auto_deleveraging.restype = RustBuffer _UniFFILib.zklink_sdk_f180_verify_musig.argtypes = ( RustBuffer, RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_verify_musig.restype = ctypes.c_int8 _UniFFILib.zklink_sdk_f180_get_public_key_hash.argtypes = ( RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_get_public_key_hash.restype = RustBuffer _UniFFILib.zklink_sdk_f180_zklink_main_net_url.argtypes = ( ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_zklink_main_net_url.restype = RustBuffer _UniFFILib.zklink_sdk_f180_zklink_test_net_url.argtypes = ( ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_zklink_test_net_url.restype = RustBuffer _UniFFILib.zklink_sdk_f180_eth_signature_of_change_pubkey.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_eth_signature_of_change_pubkey.restype = RustBuffer _UniFFILib.zklink_sdk_f180_create_signed_change_pubkey.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.zklink_sdk_f180_create_signed_change_pubkey.restype = ctypes.c_void_p _UniFFILib.ffi_zklink_sdk_f180_rustbuffer_alloc.argtypes = ( ctypes.c_int32, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_rustbuffer_alloc.restype = RustBuffer _UniFFILib.ffi_zklink_sdk_f180_rustbuffer_from_bytes.argtypes = ( ForeignBytes, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_rustbuffer_from_bytes.restype = RustBuffer _UniFFILib.ffi_zklink_sdk_f180_rustbuffer_free.argtypes = ( RustBuffer, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_rustbuffer_free.restype = None _UniFFILib.ffi_zklink_sdk_f180_rustbuffer_reserve.argtypes = ( RustBuffer, ctypes.c_int32, ctypes.POINTER(RustCallStatus), ) _UniFFILib.ffi_zklink_sdk_f180_rustbuffer_reserve.restype = RustBuffer # Public interface members begin here. class FfiConverterUInt8(FfiConverterPrimitive): @staticmethod def read(buf): return buf.readU8() @staticmethod def write(value, buf): buf.writeU8(value) class FfiConverterUInt16(FfiConverterPrimitive): @staticmethod def read(buf): return buf.readU16() @staticmethod def write(value, buf): buf.writeU16(value) class FfiConverterInt16(FfiConverterPrimitive): @staticmethod def read(buf): return buf.readI16() @staticmethod def write(value, buf): buf.writeI16(value) class FfiConverterUInt32(FfiConverterPrimitive): @staticmethod def read(buf): return buf.readU32() @staticmethod def write(value, buf): buf.writeU32(value) class FfiConverterUInt64(FfiConverterPrimitive): @staticmethod def read(buf): return buf.readU64() @staticmethod def write(value, buf): buf.writeU64(value) class FfiConverterBool: @classmethod def read(cls, buf): return cls.lift(buf.readU8()) @classmethod def write(cls, value, buf): buf.writeU8(cls.lower(value)) @staticmethod def lift(value): return int(value) != 0 @staticmethod def lower(value): return 1 if value else 0 class FfiConverterString: @staticmethod def read(buf): size = buf.readI32() if size < 0: raise InternalError("Unexpected negative string length") utf8Bytes = buf.read(size) return utf8Bytes.decode("utf-8") @staticmethod def write(value, buf): utf8Bytes = value.encode("utf-8") buf.writeI32(len(utf8Bytes)) buf.write(utf8Bytes) @staticmethod def lift(buf): with buf.consumeWithStream() as stream: return stream.read(stream.remaining()).decode("utf-8") @staticmethod def lower(value): with RustBuffer.allocWithBuilder() as builder: builder.write(value.encode("utf-8")) return builder.finalize() class AutoDeleveraging(object): def __init__(self, builder): builder = builder self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_AutoDeleveraging_new, FfiConverterTypeAutoDeleveragingBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: rust_call(_UniFFILib.ffi_zklink_sdk_f180_AutoDeleveraging_object_free, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_bytes(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_AutoDeleveraging_get_bytes,self._pointer,) ) def tx_hash(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_AutoDeleveraging_tx_hash,self._pointer,) ) def json_str(self, ): return FfiConverterString.lift( rust_call(_UniFFILib.zklink_sdk_f180_AutoDeleveraging_json_str,self._pointer,) ) def is_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_AutoDeleveraging_is_valid,self._pointer,) ) def get_signature(self, ): return FfiConverterTypeZkLinkSignature.lift( rust_call(_UniFFILib.zklink_sdk_f180_AutoDeleveraging_get_signature,self._pointer,) ) def is_signature_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_AutoDeleveraging_is_signature_valid,self._pointer,) ) def to_zklink_tx(self, ): return FfiConverterTypeZkLinkTx.lift( rust_call(_UniFFILib.zklink_sdk_f180_AutoDeleveraging_to_zklink_tx,self._pointer,) ) def create_signed_tx(self, signer): signer = signer return FfiConverterTypeAutoDeleveraging.lift( rust_call_with_error( FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_AutoDeleveraging_create_signed_tx,self._pointer, FfiConverterTypeZkLinkSigner.lower(signer)) ) class FfiConverterTypeAutoDeleveraging: @classmethod def read(cls, buf): ptr = buf.readU64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, AutoDeleveraging): raise TypeError("Expected AutoDeleveraging instance, {} found".format(value.__class__.__name__)) buf.writeU64(cls.lower(value)) @staticmethod def lift(value): return AutoDeleveraging._make_instance_(value) @staticmethod def lower(value): return value._pointer class ChangePubKey(object): def __init__(self, builder): builder = builder self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_ChangePubKey_new, FfiConverterTypeChangePubKeyBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: rust_call(_UniFFILib.ffi_zklink_sdk_f180_ChangePubKey_object_free, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_signature(self, ): return FfiConverterTypeZkLinkSignature.lift( rust_call(_UniFFILib.zklink_sdk_f180_ChangePubKey_get_signature,self._pointer,) ) def get_bytes(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_ChangePubKey_get_bytes,self._pointer,) ) def tx_hash(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_ChangePubKey_tx_hash,self._pointer,) ) def json_str(self, ): return FfiConverterString.lift( rust_call(_UniFFILib.zklink_sdk_f180_ChangePubKey_json_str,self._pointer,) ) def is_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_ChangePubKey_is_valid,self._pointer,) ) def is_onchain(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_ChangePubKey_is_onchain,self._pointer,) ) def is_signature_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_ChangePubKey_is_signature_valid,self._pointer,) ) def to_zklink_tx(self, ): return FfiConverterTypeZkLinkTx.lift( rust_call(_UniFFILib.zklink_sdk_f180_ChangePubKey_to_zklink_tx,self._pointer,) ) class FfiConverterTypeChangePubKey: @classmethod def read(cls, buf): ptr = buf.readU64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, ChangePubKey): raise TypeError("Expected ChangePubKey instance, {} found".format(value.__class__.__name__)) buf.writeU64(cls.lower(value)) @staticmethod def lift(value): return ChangePubKey._make_instance_(value) @staticmethod def lower(value): return value._pointer class Contract(object): def __init__(self, builder): builder = builder self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_Contract_new, FfiConverterTypeContractBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: rust_call(_UniFFILib.ffi_zklink_sdk_f180_Contract_object_free, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def is_long(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_Contract_is_long,self._pointer,) ) def is_short(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_Contract_is_short,self._pointer,) ) def get_signature(self, ): return FfiConverterTypeZkLinkSignature.lift( rust_call(_UniFFILib.zklink_sdk_f180_Contract_get_signature,self._pointer,) ) def is_signature_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_Contract_is_signature_valid,self._pointer,) ) def get_bytes(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_Contract_get_bytes,self._pointer,) ) def create_signed_contract(self, zklink_signer): zklink_signer = zklink_signer return FfiConverterTypeContract.lift( rust_call_with_error( FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_Contract_create_signed_contract,self._pointer, FfiConverterTypeZkLinkSigner.lower(zklink_signer)) ) class FfiConverterTypeContract: @classmethod def read(cls, buf): ptr = buf.readU64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Contract): raise TypeError("Expected Contract instance, {} found".format(value.__class__.__name__)) buf.writeU64(cls.lower(value)) @staticmethod def lift(value): return Contract._make_instance_(value) @staticmethod def lower(value): return value._pointer class ContractMatching(object): def __init__(self, builder): builder = builder self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_ContractMatching_new, FfiConverterTypeContractMatchingBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: rust_call(_UniFFILib.ffi_zklink_sdk_f180_ContractMatching_object_free, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_bytes(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_ContractMatching_get_bytes,self._pointer,) ) def tx_hash(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_ContractMatching_tx_hash,self._pointer,) ) def json_str(self, ): return FfiConverterString.lift( rust_call(_UniFFILib.zklink_sdk_f180_ContractMatching_json_str,self._pointer,) ) def is_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_ContractMatching_is_valid,self._pointer,) ) def get_signature(self, ): return FfiConverterTypeZkLinkSignature.lift( rust_call(_UniFFILib.zklink_sdk_f180_ContractMatching_get_signature,self._pointer,) ) def is_signature_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_ContractMatching_is_signature_valid,self._pointer,) ) def to_zklink_tx(self, ): return FfiConverterTypeZkLinkTx.lift( rust_call(_UniFFILib.zklink_sdk_f180_ContractMatching_to_zklink_tx,self._pointer,) ) def create_signed_tx(self, signer): signer = signer return FfiConverterTypeContractMatching.lift( rust_call_with_error( FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_ContractMatching_create_signed_tx,self._pointer, FfiConverterTypeZkLinkSigner.lower(signer)) ) class FfiConverterTypeContractMatching: @classmethod def read(cls, buf): ptr = buf.readU64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, ContractMatching): raise TypeError("Expected ContractMatching instance, {} found".format(value.__class__.__name__)) buf.writeU64(cls.lower(value)) @staticmethod def lift(value): return ContractMatching._make_instance_(value) @staticmethod def lower(value): return value._pointer class Deposit(object): def __init__(self, builder): builder = builder self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_Deposit_new, FfiConverterTypeDepositBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: rust_call(_UniFFILib.ffi_zklink_sdk_f180_Deposit_object_free, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_bytes(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_Deposit_get_bytes,self._pointer,) ) def tx_hash(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_Deposit_tx_hash,self._pointer,) ) def json_str(self, ): return FfiConverterString.lift( rust_call(_UniFFILib.zklink_sdk_f180_Deposit_json_str,self._pointer,) ) class FfiConverterTypeDeposit: @classmethod def read(cls, buf): ptr = buf.readU64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Deposit): raise TypeError("Expected Deposit instance, {} found".format(value.__class__.__name__)) buf.writeU64(cls.lower(value)) @staticmethod def lift(value): return Deposit._make_instance_(value) @staticmethod def lower(value): return value._pointer class EthSigner(object): def __init__(self, private_key): private_key = private_key self._pointer = rust_call_with_error(FfiConverterTypeEthSignerError,_UniFFILib.zklink_sdk_f180_EthSigner_new, FfiConverterString.lower(private_key)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: rust_call(_UniFFILib.ffi_zklink_sdk_f180_EthSigner_object_free, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def sign_message(self, message): message = list(int(x) for x in message) return FfiConverterTypePackedEthSignature.lift( rust_call_with_error( FfiConverterTypeEthSignerError,_UniFFILib.zklink_sdk_f180_EthSigner_sign_message,self._pointer, FfiConverterSequenceUInt8.lower(message)) ) def get_address(self, ): return FfiConverterTypeAddress.lift( rust_call(_UniFFILib.zklink_sdk_f180_EthSigner_get_address,self._pointer,) ) class FfiConverterTypeEthSigner: @classmethod def read(cls, buf): ptr = buf.readU64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, EthSigner): raise TypeError("Expected EthSigner instance, {} found".format(value.__class__.__name__)) buf.writeU64(cls.lower(value)) @staticmethod def lift(value): return EthSigner._make_instance_(value) @staticmethod def lower(value): return value._pointer class ForcedExit(object): def __init__(self, builder): builder = builder self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_ForcedExit_new, FfiConverterTypeForcedExitBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: rust_call(_UniFFILib.ffi_zklink_sdk_f180_ForcedExit_object_free, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_signature(self, ): return FfiConverterTypeZkLinkSignature.lift( rust_call(_UniFFILib.zklink_sdk_f180_ForcedExit_get_signature,self._pointer,) ) def get_bytes(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_ForcedExit_get_bytes,self._pointer,) ) def tx_hash(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_ForcedExit_tx_hash,self._pointer,) ) def json_str(self, ): return FfiConverterString.lift( rust_call(_UniFFILib.zklink_sdk_f180_ForcedExit_json_str,self._pointer,) ) def is_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_ForcedExit_is_valid,self._pointer,) ) def is_signature_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_ForcedExit_is_signature_valid,self._pointer,) ) def create_signed_tx(self, signer): signer = signer return FfiConverterTypeForcedExit.lift( rust_call_with_error( FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_ForcedExit_create_signed_tx,self._pointer, FfiConverterTypeZkLinkSigner.lower(signer)) ) def to_zklink_tx(self, ): return FfiConverterTypeZkLinkTx.lift( rust_call(_UniFFILib.zklink_sdk_f180_ForcedExit_to_zklink_tx,self._pointer,) ) class FfiConverterTypeForcedExit: @classmethod def read(cls, buf): ptr = buf.readU64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, ForcedExit): raise TypeError("Expected ForcedExit instance, {} found".format(value.__class__.__name__)) buf.writeU64(cls.lower(value)) @staticmethod def lift(value): return ForcedExit._make_instance_(value) @staticmethod def lower(value): return value._pointer class FullExit(object): def __init__(self, builder): builder = builder self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_FullExit_new, FfiConverterTypeFullExitBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: rust_call(_UniFFILib.ffi_zklink_sdk_f180_FullExit_object_free, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_bytes(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_FullExit_get_bytes,self._pointer,) ) def tx_hash(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_FullExit_tx_hash,self._pointer,) ) def json_str(self, ): return FfiConverterString.lift( rust_call(_UniFFILib.zklink_sdk_f180_FullExit_json_str,self._pointer,) ) def is_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_FullExit_is_valid,self._pointer,) ) def to_zklink_tx(self, ): return FfiConverterTypeZkLinkTx.lift( rust_call(_UniFFILib.zklink_sdk_f180_FullExit_to_zklink_tx,self._pointer,) ) class FfiConverterTypeFullExit: @classmethod def read(cls, buf): ptr = buf.readU64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, FullExit): raise TypeError("Expected FullExit instance, {} found".format(value.__class__.__name__)) buf.writeU64(cls.lower(value)) @staticmethod def lift(value): return FullExit._make_instance_(value) @staticmethod def lower(value): return value._pointer class Funding(object): def __init__(self, builder): builder = builder self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_Funding_new, FfiConverterTypeFundingBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: rust_call(_UniFFILib.ffi_zklink_sdk_f180_Funding_object_free, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_bytes(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_Funding_get_bytes,self._pointer,) ) def tx_hash(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_Funding_tx_hash,self._pointer,) ) def json_str(self, ): return FfiConverterString.lift( rust_call(_UniFFILib.zklink_sdk_f180_Funding_json_str,self._pointer,) ) def is_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_Funding_is_valid,self._pointer,) ) def get_signature(self, ): return FfiConverterTypeZkLinkSignature.lift( rust_call(_UniFFILib.zklink_sdk_f180_Funding_get_signature,self._pointer,) ) def is_signature_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_Funding_is_signature_valid,self._pointer,) ) def to_zklink_tx(self, ): return FfiConverterTypeZkLinkTx.lift( rust_call(_UniFFILib.zklink_sdk_f180_Funding_to_zklink_tx,self._pointer,) ) def create_signed_tx(self, signer): signer = signer return FfiConverterTypeFunding.lift( rust_call_with_error( FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_Funding_create_signed_tx,self._pointer, FfiConverterTypeZkLinkSigner.lower(signer)) ) class FfiConverterTypeFunding: @classmethod def read(cls, buf): ptr = buf.readU64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Funding): raise TypeError("Expected Funding instance, {} found".format(value.__class__.__name__)) buf.writeU64(cls.lower(value)) @staticmethod def lift(value): return Funding._make_instance_(value) @staticmethod def lower(value): return value._pointer class Liquidation(object): def __init__(self, builder): builder = builder self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_Liquidation_new, FfiConverterTypeLiquidationBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: rust_call(_UniFFILib.ffi_zklink_sdk_f180_Liquidation_object_free, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_bytes(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_Liquidation_get_bytes,self._pointer,) ) def tx_hash(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_Liquidation_tx_hash,self._pointer,) ) def json_str(self, ): return FfiConverterString.lift( rust_call(_UniFFILib.zklink_sdk_f180_Liquidation_json_str,self._pointer,) ) def is_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_Liquidation_is_valid,self._pointer,) ) def get_signature(self, ): return FfiConverterTypeZkLinkSignature.lift( rust_call(_UniFFILib.zklink_sdk_f180_Liquidation_get_signature,self._pointer,) ) def is_signature_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_Liquidation_is_signature_valid,self._pointer,) ) def to_zklink_tx(self, ): return FfiConverterTypeZkLinkTx.lift( rust_call(_UniFFILib.zklink_sdk_f180_Liquidation_to_zklink_tx,self._pointer,) ) def create_signed_tx(self, signer): signer = signer return FfiConverterTypeLiquidation.lift( rust_call_with_error( FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_Liquidation_create_signed_tx,self._pointer, FfiConverterTypeZkLinkSigner.lower(signer)) ) class FfiConverterTypeLiquidation: @classmethod def read(cls, buf): ptr = buf.readU64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Liquidation): raise TypeError("Expected Liquidation instance, {} found".format(value.__class__.__name__)) buf.writeU64(cls.lower(value)) @staticmethod def lift(value): return Liquidation._make_instance_(value) @staticmethod def lower(value): return value._pointer class Order(object): def __init__(self, account_id,sub_account_id,slot_id,nonce,base_token_id,quote_token_id,amount,price,is_sell,has_subsidy,maker_fee_rate,taker_fee_rate,signature): account_id = account_id sub_account_id = sub_account_id slot_id = slot_id nonce = nonce base_token_id = base_token_id quote_token_id = quote_token_id amount = amount price = price is_sell = bool(is_sell) has_subsidy = bool(has_subsidy) maker_fee_rate = int(maker_fee_rate) taker_fee_rate = int(taker_fee_rate) signature = (None if signature is None else signature) self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_Order_new, FfiConverterTypeAccountId.lower(account_id), FfiConverterTypeSubAccountId.lower(sub_account_id), FfiConverterTypeSlotId.lower(slot_id), FfiConverterTypeNonce.lower(nonce), FfiConverterTypeTokenId.lower(base_token_id), FfiConverterTypeTokenId.lower(quote_token_id), FfiConverterTypeBigUint.lower(amount), FfiConverterTypeBigUint.lower(price), FfiConverterBool.lower(is_sell), FfiConverterBool.lower(has_subsidy), FfiConverterUInt8.lower(maker_fee_rate), FfiConverterUInt8.lower(taker_fee_rate), FfiConverterOptionalTypeZkLinkSignature.lower(signature)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: rust_call(_UniFFILib.ffi_zklink_sdk_f180_Order_object_free, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_signature(self, ): return FfiConverterTypeZkLinkSignature.lift( rust_call(_UniFFILib.zklink_sdk_f180_Order_get_signature,self._pointer,) ) def get_bytes(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_Order_get_bytes,self._pointer,) ) def json_str(self, ): return FfiConverterString.lift( rust_call(_UniFFILib.zklink_sdk_f180_Order_json_str,self._pointer,) ) def is_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_Order_is_valid,self._pointer,) ) def is_signature_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_Order_is_signature_valid,self._pointer,) ) def get_eth_sign_msg(self, quote_token,based_token,decimals): quote_token = quote_token based_token = based_token decimals = int(decimals) return FfiConverterString.lift( rust_call(_UniFFILib.zklink_sdk_f180_Order_get_eth_sign_msg,self._pointer, FfiConverterString.lower(quote_token), FfiConverterString.lower(based_token), FfiConverterUInt8.lower(decimals)) ) def create_signed_order(self, zklink_signer): zklink_signer = zklink_signer return FfiConverterTypeOrder.lift( rust_call_with_error( FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_Order_create_signed_order,self._pointer, FfiConverterTypeZkLinkSigner.lower(zklink_signer)) ) class FfiConverterTypeOrder: @classmethod def read(cls, buf): ptr = buf.readU64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Order): raise TypeError("Expected Order instance, {} found".format(value.__class__.__name__)) buf.writeU64(cls.lower(value)) @staticmethod def lift(value): return Order._make_instance_(value) @staticmethod def lower(value): return value._pointer class OrderMatching(object): def __init__(self, builder): builder = builder self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_OrderMatching_new, FfiConverterTypeOrderMatchingBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: rust_call(_UniFFILib.ffi_zklink_sdk_f180_OrderMatching_object_free, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_bytes(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_OrderMatching_get_bytes,self._pointer,) ) def tx_hash(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_OrderMatching_tx_hash,self._pointer,) ) def json_str(self, ): return FfiConverterString.lift( rust_call(_UniFFILib.zklink_sdk_f180_OrderMatching_json_str,self._pointer,) ) def is_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_OrderMatching_is_valid,self._pointer,) ) def get_signature(self, ): return FfiConverterTypeZkLinkSignature.lift( rust_call(_UniFFILib.zklink_sdk_f180_OrderMatching_get_signature,self._pointer,) ) def is_signature_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_OrderMatching_is_signature_valid,self._pointer,) ) def create_signed_tx(self, signer): signer = signer return FfiConverterTypeOrderMatching.lift( rust_call_with_error( FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_OrderMatching_create_signed_tx,self._pointer, FfiConverterTypeZkLinkSigner.lower(signer)) ) def to_zklink_tx(self, ): return FfiConverterTypeZkLinkTx.lift( rust_call(_UniFFILib.zklink_sdk_f180_OrderMatching_to_zklink_tx,self._pointer,) ) class FfiConverterTypeOrderMatching: @classmethod def read(cls, buf): ptr = buf.readU64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, OrderMatching): raise TypeError("Expected OrderMatching instance, {} found".format(value.__class__.__name__)) buf.writeU64(cls.lower(value)) @staticmethod def lift(value): return OrderMatching._make_instance_(value) @staticmethod def lower(value): return value._pointer class Signer(object): def __init__(self, private_key,l1_type): private_key = private_key l1_type = l1_type self._pointer = rust_call_with_error(FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_new, FfiConverterString.lower(private_key), FfiConverterTypeL1SignerType.lower(l1_type)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: rust_call(_UniFFILib.ffi_zklink_sdk_f180_Signer_object_free, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def sign_change_pubkey_with_create2data_auth(self, tx,crate2data): tx = tx crate2data = crate2data return FfiConverterTypeTxSignature.lift( rust_call_with_error( FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_change_pubkey_with_create2data_auth,self._pointer, FfiConverterTypeChangePubKey.lower(tx), FfiConverterTypeCreate2Data.lower(crate2data)) ) def sign_change_pubkey_with_onchain_auth_data(self, tx): tx = tx return FfiConverterTypeTxSignature.lift( rust_call_with_error( FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_change_pubkey_with_onchain_auth_data,self._pointer, FfiConverterTypeChangePubKey.lower(tx)) ) def sign_change_pubkey_with_eth_ecdsa_auth(self, tx): tx = tx return FfiConverterTypeTxSignature.lift( rust_call_with_error( FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_change_pubkey_with_eth_ecdsa_auth,self._pointer, FfiConverterTypeChangePubKey.lower(tx)) ) def sign_transfer(self, tx,token_sybmol,chain_id,addr): tx = tx token_sybmol = token_sybmol chain_id = (None if chain_id is None else chain_id) addr = (None if addr is None else addr) return FfiConverterTypeTxSignature.lift( rust_call_with_error( FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_transfer,self._pointer, FfiConverterTypeTransfer.lower(tx), FfiConverterString.lower(token_sybmol), FfiConverterOptionalString.lower(chain_id), FfiConverterOptionalString.lower(addr)) ) def sign_withdraw(self, tx,l2_source_token_symbol,chain_id,addr): tx = tx l2_source_token_symbol = l2_source_token_symbol chain_id = (None if chain_id is None else chain_id) addr = (None if addr is None else addr) return FfiConverterTypeTxSignature.lift( rust_call_with_error( FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_withdraw,self._pointer, FfiConverterTypeWithdraw.lower(tx), FfiConverterString.lower(l2_source_token_symbol), FfiConverterOptionalString.lower(chain_id), FfiConverterOptionalString.lower(addr)) ) def sign_forced_exit(self, tx): tx = tx return FfiConverterTypeTxSignature.lift( rust_call_with_error( FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_forced_exit,self._pointer, FfiConverterTypeForcedExit.lower(tx)) ) def sign_order_matching(self, tx): tx = tx return FfiConverterTypeTxSignature.lift( rust_call_with_error( FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_order_matching,self._pointer, FfiConverterTypeOrderMatching.lower(tx)) ) def sign_contract_matching(self, tx): tx = tx return FfiConverterTypeTxSignature.lift( rust_call_with_error( FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_contract_matching,self._pointer, FfiConverterTypeContractMatching.lower(tx)) ) def sign_funding(self, tx): tx = tx return FfiConverterTypeTxSignature.lift( rust_call_with_error( FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_funding,self._pointer, FfiConverterTypeFunding.lower(tx)) ) def sign_liquidation(self, tx): tx = tx return FfiConverterTypeTxSignature.lift( rust_call_with_error( FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_liquidation,self._pointer, FfiConverterTypeLiquidation.lower(tx)) ) def sign_auto_deleveraging(self, tx): tx = tx return FfiConverterTypeTxSignature.lift( rust_call_with_error( FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_auto_deleveraging,self._pointer, FfiConverterTypeAutoDeleveraging.lower(tx)) ) class FfiConverterTypeSigner: @classmethod def read(cls, buf): ptr = buf.readU64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Signer): raise TypeError("Expected Signer instance, {} found".format(value.__class__.__name__)) buf.writeU64(cls.lower(value)) @staticmethod def lift(value): return Signer._make_instance_(value) @staticmethod def lower(value): return value._pointer class StarkSigner(object): def __init__(self, ): self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_StarkSigner_new,) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: rust_call(_UniFFILib.ffi_zklink_sdk_f180_StarkSigner_object_free, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst @classmethod def new_from_hex_str(cls, hex_str): hex_str = hex_str # Call the (fallible) function before creating any half-baked object instances. pointer = rust_call_with_error(FfiConverterTypeStarkSignerError,_UniFFILib.zklink_sdk_f180_StarkSigner_new_from_hex_str, FfiConverterString.lower(hex_str)) return cls._make_instance_(pointer) def sign_message(self, typed_data,addr): typed_data = typed_data addr = addr return FfiConverterTypeStarkEip712Signature.lift( rust_call_with_error( FfiConverterTypeStarkSignerError,_UniFFILib.zklink_sdk_f180_StarkSigner_sign_message,self._pointer, FfiConverterTypeTypedData.lower(typed_data), FfiConverterString.lower(addr)) ) class FfiConverterTypeStarkSigner: @classmethod def read(cls, buf): ptr = buf.readU64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, StarkSigner): raise TypeError("Expected StarkSigner instance, {} found".format(value.__class__.__name__)) buf.writeU64(cls.lower(value)) @staticmethod def lift(value): return StarkSigner._make_instance_(value) @staticmethod def lower(value): return value._pointer class Transfer(object): def __init__(self, builder): builder = builder self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_Transfer_new, FfiConverterTypeTransferBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: rust_call(_UniFFILib.ffi_zklink_sdk_f180_Transfer_object_free, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_signature(self, ): return FfiConverterTypeZkLinkSignature.lift( rust_call(_UniFFILib.zklink_sdk_f180_Transfer_get_signature,self._pointer,) ) def get_bytes(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_Transfer_get_bytes,self._pointer,) ) def tx_hash(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_Transfer_tx_hash,self._pointer,) ) def json_str(self, ): return FfiConverterString.lift( rust_call(_UniFFILib.zklink_sdk_f180_Transfer_json_str,self._pointer,) ) def is_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_Transfer_is_valid,self._pointer,) ) def is_signature_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_Transfer_is_signature_valid,self._pointer,) ) def get_eth_sign_msg(self, token_symbol): token_symbol = token_symbol return FfiConverterString.lift( rust_call(_UniFFILib.zklink_sdk_f180_Transfer_get_eth_sign_msg,self._pointer, FfiConverterString.lower(token_symbol)) ) def eth_signature(self, eth_signer,token_symbol): eth_signer = eth_signer token_symbol = token_symbol return FfiConverterTypeTxLayer1Signature.lift( rust_call_with_error( FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_Transfer_eth_signature,self._pointer, FfiConverterTypeEthSigner.lower(eth_signer), FfiConverterString.lower(token_symbol)) ) def create_signed_tx(self, signer): signer = signer return FfiConverterTypeTransfer.lift( rust_call_with_error( FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_Transfer_create_signed_tx,self._pointer, FfiConverterTypeZkLinkSigner.lower(signer)) ) def to_zklink_tx(self, ): return FfiConverterTypeZkLinkTx.lift( rust_call(_UniFFILib.zklink_sdk_f180_Transfer_to_zklink_tx,self._pointer,) ) class FfiConverterTypeTransfer: @classmethod def read(cls, buf): ptr = buf.readU64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Transfer): raise TypeError("Expected Transfer instance, {} found".format(value.__class__.__name__)) buf.writeU64(cls.lower(value)) @staticmethod def lift(value): return Transfer._make_instance_(value) @staticmethod def lower(value): return value._pointer class TypedData(object): def __init__(self, message,chain_id): message = message chain_id = chain_id self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_TypedData_new, FfiConverterTypeTypedDataMessage.lower(message), FfiConverterString.lower(chain_id)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: rust_call(_UniFFILib.ffi_zklink_sdk_f180_TypedData_object_free, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst class FfiConverterTypeTypedData: @classmethod def read(cls, buf): ptr = buf.readU64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, TypedData): raise TypeError("Expected TypedData instance, {} found".format(value.__class__.__name__)) buf.writeU64(cls.lower(value)) @staticmethod def lift(value): return TypedData._make_instance_(value) @staticmethod def lower(value): return value._pointer class UpdateGlobalVar(object): def __init__(self, builder): builder = builder self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_new, FfiConverterTypeUpdateGlobalVarBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: rust_call(_UniFFILib.ffi_zklink_sdk_f180_UpdateGlobalVar_object_free, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_bytes(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_get_bytes,self._pointer,) ) def tx_hash(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_tx_hash,self._pointer,) ) def json_str(self, ): return FfiConverterString.lift( rust_call(_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_json_str,self._pointer,) ) def is_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_is_valid,self._pointer,) ) def to_zklink_tx(self, ): return FfiConverterTypeZkLinkTx.lift( rust_call(_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_to_zklink_tx,self._pointer,) ) class FfiConverterTypeUpdateGlobalVar: @classmethod def read(cls, buf): ptr = buf.readU64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, UpdateGlobalVar): raise TypeError("Expected UpdateGlobalVar instance, {} found".format(value.__class__.__name__)) buf.writeU64(cls.lower(value)) @staticmethod def lift(value): return UpdateGlobalVar._make_instance_(value) @staticmethod def lower(value): return value._pointer class Withdraw(object): def __init__(self, builder): builder = builder self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_Withdraw_new, FfiConverterTypeWithdrawBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: rust_call(_UniFFILib.ffi_zklink_sdk_f180_Withdraw_object_free, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_signature(self, ): return FfiConverterTypeZkLinkSignature.lift( rust_call(_UniFFILib.zklink_sdk_f180_Withdraw_get_signature,self._pointer,) ) def get_bytes(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_Withdraw_get_bytes,self._pointer,) ) def tx_hash(self, ): return FfiConverterSequenceUInt8.lift( rust_call(_UniFFILib.zklink_sdk_f180_Withdraw_tx_hash,self._pointer,) ) def json_str(self, ): return FfiConverterString.lift( rust_call(_UniFFILib.zklink_sdk_f180_Withdraw_json_str,self._pointer,) ) def is_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_Withdraw_is_valid,self._pointer,) ) def is_signature_valid(self, ): return FfiConverterBool.lift( rust_call(_UniFFILib.zklink_sdk_f180_Withdraw_is_signature_valid,self._pointer,) ) def get_eth_sign_msg(self, token_symbol): token_symbol = token_symbol return FfiConverterString.lift( rust_call(_UniFFILib.zklink_sdk_f180_Withdraw_get_eth_sign_msg,self._pointer, FfiConverterString.lower(token_symbol)) ) def eth_signature(self, eth_signer,l2_source_token_symbol): eth_signer = eth_signer l2_source_token_symbol = l2_source_token_symbol return FfiConverterTypePackedEthSignature.lift( rust_call_with_error( FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_Withdraw_eth_signature,self._pointer, FfiConverterTypeEthSigner.lower(eth_signer), FfiConverterString.lower(l2_source_token_symbol)) ) def create_signed_tx(self, signer): signer = signer return FfiConverterTypeWithdraw.lift( rust_call_with_error( FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_Withdraw_create_signed_tx,self._pointer, FfiConverterTypeZkLinkSigner.lower(signer)) ) def to_zklink_tx(self, ): return FfiConverterTypeZkLinkTx.lift( rust_call(_UniFFILib.zklink_sdk_f180_Withdraw_to_zklink_tx,self._pointer,) ) class FfiConverterTypeWithdraw: @classmethod def read(cls, buf): ptr = buf.readU64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Withdraw): raise TypeError("Expected Withdraw instance, {} found".format(value.__class__.__name__)) buf.writeU64(cls.lower(value)) @staticmethod def lift(value): return Withdraw._make_instance_(value) @staticmethod def lower(value): return value._pointer class ZkLinkSigner(object): def __init__(self, ): self._pointer = rust_call_with_error(FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_ZkLinkSigner_new,) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: rust_call(_UniFFILib.ffi_zklink_sdk_f180_ZkLinkSigner_object_free, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst @classmethod def new_from_seed(cls, seed): seed = list(int(x) for x in seed) # Call the (fallible) function before creating any half-baked object instances. pointer = rust_call_with_error(FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_seed, FfiConverterSequenceUInt8.lower(seed)) return cls._make_instance_(pointer) @classmethod def new_from_hex_eth_signer(cls, eth_hex_private_key): eth_hex_private_key = eth_hex_private_key # Call the (fallible) function before creating any half-baked object instances. pointer = rust_call_with_error(FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_hex_eth_signer, FfiConverterString.lower(eth_hex_private_key)) return cls._make_instance_(pointer) @classmethod def new_from_hex_stark_signer(cls, hex_private_key,addr,chain_id): hex_private_key = hex_private_key addr = addr chain_id = chain_id # Call the (fallible) function before creating any half-baked object instances. pointer = rust_call_with_error(FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_hex_stark_signer, FfiConverterString.lower(hex_private_key), FfiConverterString.lower(addr), FfiConverterString.lower(chain_id)) return cls._make_instance_(pointer) @classmethod def new_from_bytes(cls, slice): slice = list(int(x) for x in slice) # Call the (fallible) function before creating any half-baked object instances. pointer = rust_call_with_error(FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_bytes, FfiConverterSequenceUInt8.lower(slice)) return cls._make_instance_(pointer) def public_key(self, ): return FfiConverterTypePackedPublicKey.lift( rust_call(_UniFFILib.zklink_sdk_f180_ZkLinkSigner_public_key,self._pointer,) ) def sign_musig(self, msg): msg = list(int(x) for x in msg) return FfiConverterTypeZkLinkSignature.lift( rust_call_with_error( FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_ZkLinkSigner_sign_musig,self._pointer, FfiConverterSequenceUInt8.lower(msg)) ) class FfiConverterTypeZkLinkSigner: @classmethod def read(cls, buf): ptr = buf.readU64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, ZkLinkSigner): raise TypeError("Expected ZkLinkSigner instance, {} found".format(value.__class__.__name__)) buf.writeU64(cls.lower(value)) @staticmethod def lift(value): return ZkLinkSigner._make_instance_(value) @staticmethod def lower(value): return value._pointer class AutoDeleveragingBuilder: def __init__(self, account_id, sub_account_id, sub_account_nonce, contract_prices, margin_prices, adl_account_id, pair_id, adl_size, adl_price, fee, fee_token): self.account_id = account_id self.sub_account_id = sub_account_id self.sub_account_nonce = sub_account_nonce self.contract_prices = contract_prices self.margin_prices = margin_prices self.adl_account_id = adl_account_id self.pair_id = pair_id self.adl_size = adl_size self.adl_price = adl_price self.fee = fee self.fee_token = fee_token def __str__(self): return "AutoDeleveragingBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, contract_prices={}, margin_prices={}, adl_account_id={}, pair_id={}, adl_size={}, adl_price={}, fee={}, fee_token={})".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.contract_prices, self.margin_prices, self.adl_account_id, self.pair_id, self.adl_size, self.adl_price, self.fee, self.fee_token) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.sub_account_nonce != other.sub_account_nonce: return False if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False if self.adl_account_id != other.adl_account_id: return False if self.pair_id != other.pair_id: return False if self.adl_size != other.adl_size: return False if self.adl_price != other.adl_price: return False if self.fee != other.fee: return False if self.fee_token != other.fee_token: return False return True class FfiConverterTypeAutoDeleveragingBuilder(FfiConverterRustBuffer): @staticmethod def read(buf): return AutoDeleveragingBuilder( account_id=FfiConverterTypeAccountId.read(buf), sub_account_id=FfiConverterTypeSubAccountId.read(buf), sub_account_nonce=FfiConverterTypeNonce.read(buf), contract_prices=FfiConverterSequenceTypeContractPrice.read(buf), margin_prices=FfiConverterSequenceTypeSpotPriceInfo.read(buf), adl_account_id=FfiConverterTypeAccountId.read(buf), pair_id=FfiConverterTypePairId.read(buf), adl_size=FfiConverterTypeBigUint.read(buf), adl_price=FfiConverterTypeBigUint.read(buf), fee=FfiConverterTypeBigUint.read(buf), fee_token=FfiConverterTypeTokenId.read(buf), ) @staticmethod def write(value, buf): FfiConverterTypeAccountId.write(value.account_id, buf) FfiConverterTypeSubAccountId.write(value.sub_account_id, buf) FfiConverterTypeNonce.write(value.sub_account_nonce, buf) FfiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) FfiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) FfiConverterTypeAccountId.write(value.adl_account_id, buf) FfiConverterTypePairId.write(value.pair_id, buf) FfiConverterTypeBigUint.write(value.adl_size, buf) FfiConverterTypeBigUint.write(value.adl_price, buf) FfiConverterTypeBigUint.write(value.fee, buf) FfiConverterTypeTokenId.write(value.fee_token, buf) class ChangePubKeyBuilder: def __init__(self, chain_id, account_id, sub_account_id, new_pubkey_hash, fee_token, fee, nonce, eth_signature, timestamp): self.chain_id = chain_id self.account_id = account_id self.sub_account_id = sub_account_id self.new_pubkey_hash = new_pubkey_hash self.fee_token = fee_token self.fee = fee self.nonce = nonce self.eth_signature = eth_signature self.timestamp = timestamp def __str__(self): return "ChangePubKeyBuilder(chain_id={}, account_id={}, sub_account_id={}, new_pubkey_hash={}, fee_token={}, fee={}, nonce={}, eth_signature={}, timestamp={})".format(self.chain_id, self.account_id, self.sub_account_id, self.new_pubkey_hash, self.fee_token, self.fee, self.nonce, self.eth_signature, self.timestamp) def __eq__(self, other): if self.chain_id != other.chain_id: return False if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.new_pubkey_hash != other.new_pubkey_hash: return False if self.fee_token != other.fee_token: return False if self.fee != other.fee: return False if self.nonce != other.nonce: return False if self.eth_signature != other.eth_signature: return False if self.timestamp != other.timestamp: return False return True class FfiConverterTypeChangePubKeyBuilder(FfiConverterRustBuffer): @staticmethod def read(buf): return ChangePubKeyBuilder( chain_id=FfiConverterTypeChainId.read(buf), account_id=FfiConverterTypeAccountId.read(buf), sub_account_id=FfiConverterTypeSubAccountId.read(buf), new_pubkey_hash=FfiConverterTypePubKeyHash.read(buf), fee_token=FfiConverterTypeTokenId.read(buf), fee=FfiConverterTypeBigUint.read(buf), nonce=FfiConverterTypeNonce.read(buf), eth_signature=FfiConverterOptionalTypePackedEthSignature.read(buf), timestamp=FfiConverterTypeTimeStamp.read(buf), ) @staticmethod def write(value, buf): FfiConverterTypeChainId.write(value.chain_id, buf) FfiConverterTypeAccountId.write(value.account_id, buf) FfiConverterTypeSubAccountId.write(value.sub_account_id, buf) FfiConverterTypePubKeyHash.write(value.new_pubkey_hash, buf) FfiConverterTypeTokenId.write(value.fee_token, buf) FfiConverterTypeBigUint.write(value.fee, buf) FfiConverterTypeNonce.write(value.nonce, buf) FfiConverterOptionalTypePackedEthSignature.write(value.eth_signature, buf) FfiConverterTypeTimeStamp.write(value.timestamp, buf) class ContractBuilder: def __init__(self, account_id, sub_account_id, slot_id, nonce, pair_id, size, price, direction, taker_fee_rate, maker_fee_rate, has_subsidy): self.account_id = account_id self.sub_account_id = sub_account_id self.slot_id = slot_id self.nonce = nonce self.pair_id = pair_id self.size = size self.price = price self.direction = direction self.taker_fee_rate = taker_fee_rate self.maker_fee_rate = maker_fee_rate self.has_subsidy = has_subsidy def __str__(self): return "ContractBuilder(account_id={}, sub_account_id={}, slot_id={}, nonce={}, pair_id={}, size={}, price={}, direction={}, taker_fee_rate={}, maker_fee_rate={}, has_subsidy={})".format(self.account_id, self.sub_account_id, self.slot_id, self.nonce, self.pair_id, self.size, self.price, self.direction, self.taker_fee_rate, self.maker_fee_rate, self.has_subsidy) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.slot_id != other.slot_id: return False if self.nonce != other.nonce: return False if self.pair_id != other.pair_id: return False if self.size != other.size: return False if self.price != other.price: return False if self.direction != other.direction: return False if self.taker_fee_rate != other.taker_fee_rate: return False if self.maker_fee_rate != other.maker_fee_rate: return False if self.has_subsidy != other.has_subsidy: return False return True class FfiConverterTypeContractBuilder(FfiConverterRustBuffer): @staticmethod def read(buf): return ContractBuilder( account_id=FfiConverterTypeAccountId.read(buf), sub_account_id=FfiConverterTypeSubAccountId.read(buf), slot_id=FfiConverterTypeSlotId.read(buf), nonce=FfiConverterTypeNonce.read(buf), pair_id=FfiConverterTypePairId.read(buf), size=FfiConverterTypeBigUint.read(buf), price=FfiConverterTypeBigUint.read(buf), direction=FfiConverterBool.read(buf), taker_fee_rate=FfiConverterUInt8.read(buf), maker_fee_rate=FfiConverterUInt8.read(buf), has_subsidy=FfiConverterBool.read(buf), ) @staticmethod def write(value, buf): FfiConverterTypeAccountId.write(value.account_id, buf) FfiConverterTypeSubAccountId.write(value.sub_account_id, buf) FfiConverterTypeSlotId.write(value.slot_id, buf) FfiConverterTypeNonce.write(value.nonce, buf) FfiConverterTypePairId.write(value.pair_id, buf) FfiConverterTypeBigUint.write(value.size, buf) FfiConverterTypeBigUint.write(value.price, buf) FfiConverterBool.write(value.direction, buf) FfiConverterUInt8.write(value.taker_fee_rate, buf) FfiConverterUInt8.write(value.maker_fee_rate, buf) FfiConverterBool.write(value.has_subsidy, buf) class ContractMatchingBuilder: def __init__(self, account_id, sub_account_id, taker, maker, fee, fee_token, contract_prices, margin_prices): self.account_id = account_id self.sub_account_id = sub_account_id self.taker = taker self.maker = maker self.fee = fee self.fee_token = fee_token self.contract_prices = contract_prices self.margin_prices = margin_prices def __str__(self): return "ContractMatchingBuilder(account_id={}, sub_account_id={}, taker={}, maker={}, fee={}, fee_token={}, contract_prices={}, margin_prices={})".format(self.account_id, self.sub_account_id, self.taker, self.maker, self.fee, self.fee_token, self.contract_prices, self.margin_prices) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.taker != other.taker: return False if self.maker != other.maker: return False if self.fee != other.fee: return False if self.fee_token != other.fee_token: return False if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False return True class FfiConverterTypeContractMatchingBuilder(FfiConverterRustBuffer): @staticmethod def read(buf): return ContractMatchingBuilder( account_id=FfiConverterTypeAccountId.read(buf), sub_account_id=FfiConverterTypeSubAccountId.read(buf), taker=FfiConverterTypeContract.read(buf), maker=FfiConverterSequenceTypeContract.read(buf), fee=FfiConverterTypeBigUint.read(buf), fee_token=FfiConverterTypeTokenId.read(buf), contract_prices=FfiConverterSequenceTypeContractPrice.read(buf), margin_prices=FfiConverterSequenceTypeSpotPriceInfo.read(buf), ) @staticmethod def write(value, buf): FfiConverterTypeAccountId.write(value.account_id, buf) FfiConverterTypeSubAccountId.write(value.sub_account_id, buf) FfiConverterTypeContract.write(value.taker, buf) FfiConverterSequenceTypeContract.write(value.maker, buf) FfiConverterTypeBigUint.write(value.fee, buf) FfiConverterTypeTokenId.write(value.fee_token, buf) FfiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) FfiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) class ContractPrice: def __init__(self, pair_id, market_price): self.pair_id = pair_id self.market_price = market_price def __str__(self): return "ContractPrice(pair_id={}, market_price={})".format(self.pair_id, self.market_price) def __eq__(self, other): if self.pair_id != other.pair_id: return False if self.market_price != other.market_price: return False return True class FfiConverterTypeContractPrice(FfiConverterRustBuffer): @staticmethod def read(buf): return ContractPrice( pair_id=FfiConverterTypePairId.read(buf), market_price=FfiConverterTypeBigUint.read(buf), ) @staticmethod def write(value, buf): FfiConverterTypePairId.write(value.pair_id, buf) FfiConverterTypeBigUint.write(value.market_price, buf) class Create2Data: def __init__(self, creator_address, salt_arg, code_hash): self.creator_address = creator_address self.salt_arg = salt_arg self.code_hash = code_hash def __str__(self): return "Create2Data(creator_address={}, salt_arg={}, code_hash={})".format(self.creator_address, self.salt_arg, self.code_hash) def __eq__(self, other): if self.creator_address != other.creator_address: return False if self.salt_arg != other.salt_arg: return False if self.code_hash != other.code_hash: return False return True class FfiConverterTypeCreate2Data(FfiConverterRustBuffer): @staticmethod def read(buf): return Create2Data( creator_address=FfiConverterTypeZkLinkAddress.read(buf), salt_arg=FfiConverterTypeH256.read(buf), code_hash=FfiConverterTypeH256.read(buf), ) @staticmethod def write(value, buf): FfiConverterTypeZkLinkAddress.write(value.creator_address, buf) FfiConverterTypeH256.write(value.salt_arg, buf) FfiConverterTypeH256.write(value.code_hash, buf) class DepositBuilder: def __init__(self, from_address, to_address, from_chain_id, sub_account_id, l2_target_token, l1_source_token, amount, serial_id, l2_hash, eth_hash): self.from_address = from_address self.to_address = to_address self.from_chain_id = from_chain_id self.sub_account_id = sub_account_id self.l2_target_token = l2_target_token self.l1_source_token = l1_source_token self.amount = amount self.serial_id = serial_id self.l2_hash = l2_hash self.eth_hash = eth_hash def __str__(self): return "DepositBuilder(from_address={}, to_address={}, from_chain_id={}, sub_account_id={}, l2_target_token={}, l1_source_token={}, amount={}, serial_id={}, l2_hash={}, eth_hash={})".format(self.from_address, self.to_address, self.from_chain_id, self.sub_account_id, self.l2_target_token, self.l1_source_token, self.amount, self.serial_id, self.l2_hash, self.eth_hash) def __eq__(self, other): if self.from_address != other.from_address: return False if self.to_address != other.to_address: return False if self.from_chain_id != other.from_chain_id: return False if self.sub_account_id != other.sub_account_id: return False if self.l2_target_token != other.l2_target_token: return False if self.l1_source_token != other.l1_source_token: return False if self.amount != other.amount: return False if self.serial_id != other.serial_id: return False if self.l2_hash != other.l2_hash: return False if self.eth_hash != other.eth_hash: return False return True class FfiConverterTypeDepositBuilder(FfiConverterRustBuffer): @staticmethod def read(buf): return DepositBuilder( from_address=FfiConverterTypeZkLinkAddress.read(buf), to_address=FfiConverterTypeZkLinkAddress.read(buf), from_chain_id=FfiConverterTypeChainId.read(buf), sub_account_id=FfiConverterTypeSubAccountId.read(buf), l2_target_token=FfiConverterTypeTokenId.read(buf), l1_source_token=FfiConverterTypeTokenId.read(buf), amount=FfiConverterTypeBigUint.read(buf), serial_id=FfiConverterUInt64.read(buf), l2_hash=FfiConverterTypeH256.read(buf), eth_hash=FfiConverterOptionalTypeH256.read(buf), ) @staticmethod def write(value, buf): FfiConverterTypeZkLinkAddress.write(value.from_address, buf) FfiConverterTypeZkLinkAddress.write(value.to_address, buf) FfiConverterTypeChainId.write(value.from_chain_id, buf) FfiConverterTypeSubAccountId.write(value.sub_account_id, buf) FfiConverterTypeTokenId.write(value.l2_target_token, buf) FfiConverterTypeTokenId.write(value.l1_source_token, buf) FfiConverterTypeBigUint.write(value.amount, buf) FfiConverterUInt64.write(value.serial_id, buf) FfiConverterTypeH256.write(value.l2_hash, buf) FfiConverterOptionalTypeH256.write(value.eth_hash, buf) class ForcedExitBuilder: def __init__(self, to_chain_id, initiator_account_id, initiator_sub_account_id, target, target_sub_account_id, l2_source_token, l1_target_token, initiator_nonce, exit_amount, withdraw_to_l1, timestamp): self.to_chain_id = to_chain_id self.initiator_account_id = initiator_account_id self.initiator_sub_account_id = initiator_sub_account_id self.target = target self.target_sub_account_id = target_sub_account_id self.l2_source_token = l2_source_token self.l1_target_token = l1_target_token self.initiator_nonce = initiator_nonce self.exit_amount = exit_amount self.withdraw_to_l1 = withdraw_to_l1 self.timestamp = timestamp def __str__(self): return "ForcedExitBuilder(to_chain_id={}, initiator_account_id={}, initiator_sub_account_id={}, target={}, target_sub_account_id={}, l2_source_token={}, l1_target_token={}, initiator_nonce={}, exit_amount={}, withdraw_to_l1={}, timestamp={})".format(self.to_chain_id, self.initiator_account_id, self.initiator_sub_account_id, self.target, self.target_sub_account_id, self.l2_source_token, self.l1_target_token, self.initiator_nonce, self.exit_amount, self.withdraw_to_l1, self.timestamp) def __eq__(self, other): if self.to_chain_id != other.to_chain_id: return False if self.initiator_account_id != other.initiator_account_id: return False if self.initiator_sub_account_id != other.initiator_sub_account_id: return False if self.target != other.target: return False if self.target_sub_account_id != other.target_sub_account_id: return False if self.l2_source_token != other.l2_source_token: return False if self.l1_target_token != other.l1_target_token: return False if self.initiator_nonce != other.initiator_nonce: return False if self.exit_amount != other.exit_amount: return False if self.withdraw_to_l1 != other.withdraw_to_l1: return False if self.timestamp != other.timestamp: return False return True class FfiConverterTypeForcedExitBuilder(FfiConverterRustBuffer): @staticmethod def read(buf): return ForcedExitBuilder( to_chain_id=FfiConverterTypeChainId.read(buf), initiator_account_id=FfiConverterTypeAccountId.read(buf), initiator_sub_account_id=FfiConverterTypeSubAccountId.read(buf), target=FfiConverterTypeZkLinkAddress.read(buf), target_sub_account_id=FfiConverterTypeSubAccountId.read(buf), l2_source_token=FfiConverterTypeTokenId.read(buf), l1_target_token=FfiConverterTypeTokenId.read(buf), initiator_nonce=FfiConverterTypeNonce.read(buf), exit_amount=FfiConverterTypeBigUint.read(buf), withdraw_to_l1=FfiConverterBool.read(buf), timestamp=FfiConverterTypeTimeStamp.read(buf), ) @staticmethod def write(value, buf): FfiConverterTypeChainId.write(value.to_chain_id, buf) FfiConverterTypeAccountId.write(value.initiator_account_id, buf) FfiConverterTypeSubAccountId.write(value.initiator_sub_account_id, buf) FfiConverterTypeZkLinkAddress.write(value.target, buf) FfiConverterTypeSubAccountId.write(value.target_sub_account_id, buf) FfiConverterTypeTokenId.write(value.l2_source_token, buf) FfiConverterTypeTokenId.write(value.l1_target_token, buf) FfiConverterTypeNonce.write(value.initiator_nonce, buf) FfiConverterTypeBigUint.write(value.exit_amount, buf) FfiConverterBool.write(value.withdraw_to_l1, buf) FfiConverterTypeTimeStamp.write(value.timestamp, buf) class FullExitBuilder: def __init__(self, to_chain_id, account_id, sub_account_id, exit_address, l2_source_token, l1_target_token, contract_prices, margin_prices, serial_id, l2_hash): self.to_chain_id = to_chain_id self.account_id = account_id self.sub_account_id = sub_account_id self.exit_address = exit_address self.l2_source_token = l2_source_token self.l1_target_token = l1_target_token self.contract_prices = contract_prices self.margin_prices = margin_prices self.serial_id = serial_id self.l2_hash = l2_hash def __str__(self): return "FullExitBuilder(to_chain_id={}, account_id={}, sub_account_id={}, exit_address={}, l2_source_token={}, l1_target_token={}, contract_prices={}, margin_prices={}, serial_id={}, l2_hash={})".format(self.to_chain_id, self.account_id, self.sub_account_id, self.exit_address, self.l2_source_token, self.l1_target_token, self.contract_prices, self.margin_prices, self.serial_id, self.l2_hash) def __eq__(self, other): if self.to_chain_id != other.to_chain_id: return False if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.exit_address != other.exit_address: return False if self.l2_source_token != other.l2_source_token: return False if self.l1_target_token != other.l1_target_token: return False if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False if self.serial_id != other.serial_id: return False if self.l2_hash != other.l2_hash: return False return True class FfiConverterTypeFullExitBuilder(FfiConverterRustBuffer): @staticmethod def read(buf): return FullExitBuilder( to_chain_id=FfiConverterTypeChainId.read(buf), account_id=FfiConverterTypeAccountId.read(buf), sub_account_id=FfiConverterTypeSubAccountId.read(buf), exit_address=FfiConverterTypeZkLinkAddress.read(buf), l2_source_token=FfiConverterTypeTokenId.read(buf), l1_target_token=FfiConverterTypeTokenId.read(buf), contract_prices=FfiConverterSequenceTypeContractPrice.read(buf), margin_prices=FfiConverterSequenceTypeSpotPriceInfo.read(buf), serial_id=FfiConverterUInt64.read(buf), l2_hash=FfiConverterTypeH256.read(buf), ) @staticmethod def write(value, buf): FfiConverterTypeChainId.write(value.to_chain_id, buf) FfiConverterTypeAccountId.write(value.account_id, buf) FfiConverterTypeSubAccountId.write(value.sub_account_id, buf) FfiConverterTypeZkLinkAddress.write(value.exit_address, buf) FfiConverterTypeTokenId.write(value.l2_source_token, buf) FfiConverterTypeTokenId.write(value.l1_target_token, buf) FfiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) FfiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) FfiConverterUInt64.write(value.serial_id, buf) FfiConverterTypeH256.write(value.l2_hash, buf) class FundingBuilder: def __init__(self, account_id, sub_account_id, sub_account_nonce, funding_account_ids, fee, fee_token): self.account_id = account_id self.sub_account_id = sub_account_id self.sub_account_nonce = sub_account_nonce self.funding_account_ids = funding_account_ids self.fee = fee self.fee_token = fee_token def __str__(self): return "FundingBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, funding_account_ids={}, fee={}, fee_token={})".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.funding_account_ids, self.fee, self.fee_token) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.sub_account_nonce != other.sub_account_nonce: return False if self.funding_account_ids != other.funding_account_ids: return False if self.fee != other.fee: return False if self.fee_token != other.fee_token: return False return True class FfiConverterTypeFundingBuilder(FfiConverterRustBuffer): @staticmethod def read(buf): return FundingBuilder( account_id=FfiConverterTypeAccountId.read(buf), sub_account_id=FfiConverterTypeSubAccountId.read(buf), sub_account_nonce=FfiConverterTypeNonce.read(buf), funding_account_ids=FfiConverterSequenceTypeAccountId.read(buf), fee=FfiConverterTypeBigUint.read(buf), fee_token=FfiConverterTypeTokenId.read(buf), ) @staticmethod def write(value, buf): FfiConverterTypeAccountId.write(value.account_id, buf) FfiConverterTypeSubAccountId.write(value.sub_account_id, buf) FfiConverterTypeNonce.write(value.sub_account_nonce, buf) FfiConverterSequenceTypeAccountId.write(value.funding_account_ids, buf) FfiConverterTypeBigUint.write(value.fee, buf) FfiConverterTypeTokenId.write(value.fee_token, buf) class FundingInfo: def __init__(self, pair_id, price, funding_rate): self.pair_id = pair_id self.price = price self.funding_rate = funding_rate def __str__(self): return "FundingInfo(pair_id={}, price={}, funding_rate={})".format(self.pair_id, self.price, self.funding_rate) def __eq__(self, other): if self.pair_id != other.pair_id: return False if self.price != other.price: return False if self.funding_rate != other.funding_rate: return False return True class FfiConverterTypeFundingInfo(FfiConverterRustBuffer): @staticmethod def read(buf): return FundingInfo( pair_id=FfiConverterTypePairId.read(buf), price=FfiConverterTypeBigUint.read(buf), funding_rate=FfiConverterInt16.read(buf), ) @staticmethod def write(value, buf): FfiConverterTypePairId.write(value.pair_id, buf) FfiConverterTypeBigUint.write(value.price, buf) FfiConverterInt16.write(value.funding_rate, buf) class LiquidationBuilder: def __init__(self, account_id, sub_account_id, sub_account_nonce, contract_prices, margin_prices, liquidation_account_id, fee, fee_token): self.account_id = account_id self.sub_account_id = sub_account_id self.sub_account_nonce = sub_account_nonce self.contract_prices = contract_prices self.margin_prices = margin_prices self.liquidation_account_id = liquidation_account_id self.fee = fee self.fee_token = fee_token def __str__(self): return "LiquidationBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, contract_prices={}, margin_prices={}, liquidation_account_id={}, fee={}, fee_token={})".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.contract_prices, self.margin_prices, self.liquidation_account_id, self.fee, self.fee_token) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.sub_account_nonce != other.sub_account_nonce: return False if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False if self.liquidation_account_id != other.liquidation_account_id: return False if self.fee != other.fee: return False if self.fee_token != other.fee_token: return False return True class FfiConverterTypeLiquidationBuilder(FfiConverterRustBuffer): @staticmethod def read(buf): return LiquidationBuilder( account_id=FfiConverterTypeAccountId.read(buf), sub_account_id=FfiConverterTypeSubAccountId.read(buf), sub_account_nonce=FfiConverterTypeNonce.read(buf), contract_prices=FfiConverterSequenceTypeContractPrice.read(buf), margin_prices=FfiConverterSequenceTypeSpotPriceInfo.read(buf), liquidation_account_id=FfiConverterTypeAccountId.read(buf), fee=FfiConverterTypeBigUint.read(buf), fee_token=FfiConverterTypeTokenId.read(buf), ) @staticmethod def write(value, buf): FfiConverterTypeAccountId.write(value.account_id, buf) FfiConverterTypeSubAccountId.write(value.sub_account_id, buf) FfiConverterTypeNonce.write(value.sub_account_nonce, buf) FfiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) FfiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) FfiConverterTypeAccountId.write(value.liquidation_account_id, buf) FfiConverterTypeBigUint.write(value.fee, buf) FfiConverterTypeTokenId.write(value.fee_token, buf) class Message: def __init__(self, data): self.data = data def __str__(self): return "Message(data={})".format(self.data) def __eq__(self, other): if self.data != other.data: return False return True class FfiConverterTypeMessage(FfiConverterRustBuffer): @staticmethod def read(buf): return Message( data=FfiConverterString.read(buf), ) @staticmethod def write(value, buf): FfiConverterString.write(value.data, buf) class OraclePrices: def __init__(self, contract_prices, margin_prices): self.contract_prices = contract_prices self.margin_prices = margin_prices def __str__(self): return "OraclePrices(contract_prices={}, margin_prices={})".format(self.contract_prices, self.margin_prices) def __eq__(self, other): if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False return True class FfiConverterTypeOraclePrices(FfiConverterRustBuffer): @staticmethod def read(buf): return OraclePrices( contract_prices=FfiConverterSequenceTypeContractPrice.read(buf), margin_prices=FfiConverterSequenceTypeSpotPriceInfo.read(buf), ) @staticmethod def write(value, buf): FfiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) FfiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) class OrderMatchingBuilder: def __init__(self, account_id, sub_account_id, taker, maker, fee, fee_token, contract_prices, margin_prices, expect_base_amount, expect_quote_amount): self.account_id = account_id self.sub_account_id = sub_account_id self.taker = taker self.maker = maker self.fee = fee self.fee_token = fee_token self.contract_prices = contract_prices self.margin_prices = margin_prices self.expect_base_amount = expect_base_amount self.expect_quote_amount = expect_quote_amount def __str__(self): return "OrderMatchingBuilder(account_id={}, sub_account_id={}, taker={}, maker={}, fee={}, fee_token={}, contract_prices={}, margin_prices={}, expect_base_amount={}, expect_quote_amount={})".format(self.account_id, self.sub_account_id, self.taker, self.maker, self.fee, self.fee_token, self.contract_prices, self.margin_prices, self.expect_base_amount, self.expect_quote_amount) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.taker != other.taker: return False if self.maker != other.maker: return False if self.fee != other.fee: return False if self.fee_token != other.fee_token: return False if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False if self.expect_base_amount != other.expect_base_amount: return False if self.expect_quote_amount != other.expect_quote_amount: return False return True class FfiConverterTypeOrderMatchingBuilder(FfiConverterRustBuffer): @staticmethod def read(buf): return OrderMatchingBuilder( account_id=FfiConverterTypeAccountId.read(buf), sub_account_id=FfiConverterTypeSubAccountId.read(buf), taker=FfiConverterTypeOrder.read(buf), maker=FfiConverterTypeOrder.read(buf), fee=FfiConverterTypeBigUint.read(buf), fee_token=FfiConverterTypeTokenId.read(buf), contract_prices=FfiConverterSequenceTypeContractPrice.read(buf), margin_prices=FfiConverterSequenceTypeSpotPriceInfo.read(buf), expect_base_amount=FfiConverterTypeBigUint.read(buf), expect_quote_amount=FfiConverterTypeBigUint.read(buf), ) @staticmethod def write(value, buf): FfiConverterTypeAccountId.write(value.account_id, buf) FfiConverterTypeSubAccountId.write(value.sub_account_id, buf) FfiConverterTypeOrder.write(value.taker, buf) FfiConverterTypeOrder.write(value.maker, buf) FfiConverterTypeBigUint.write(value.fee, buf) FfiConverterTypeTokenId.write(value.fee_token, buf) FfiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) FfiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) FfiConverterTypeBigUint.write(value.expect_base_amount, buf) FfiConverterTypeBigUint.write(value.expect_quote_amount, buf) class SpotPriceInfo: def __init__(self, token_id, price): self.token_id = token_id self.price = price def __str__(self): return "SpotPriceInfo(token_id={}, price={})".format(self.token_id, self.price) def __eq__(self, other): if self.token_id != other.token_id: return False if self.price != other.price: return False return True class FfiConverterTypeSpotPriceInfo(FfiConverterRustBuffer): @staticmethod def read(buf): return SpotPriceInfo( token_id=FfiConverterTypeTokenId.read(buf), price=FfiConverterTypeBigUint.read(buf), ) @staticmethod def write(value, buf): FfiConverterTypeTokenId.write(value.token_id, buf) FfiConverterTypeBigUint.write(value.price, buf) class TransferBuilder: def __init__(self, account_id, to_address, from_sub_account_id, to_sub_account_id, token, amount, fee, nonce, timestamp): self.account_id = account_id self.to_address = to_address self.from_sub_account_id = from_sub_account_id self.to_sub_account_id = to_sub_account_id self.token = token self.amount = amount self.fee = fee self.nonce = nonce self.timestamp = timestamp def __str__(self): return "TransferBuilder(account_id={}, to_address={}, from_sub_account_id={}, to_sub_account_id={}, token={}, amount={}, fee={}, nonce={}, timestamp={})".format(self.account_id, self.to_address, self.from_sub_account_id, self.to_sub_account_id, self.token, self.amount, self.fee, self.nonce, self.timestamp) def __eq__(self, other): if self.account_id != other.account_id: return False if self.to_address != other.to_address: return False if self.from_sub_account_id != other.from_sub_account_id: return False if self.to_sub_account_id != other.to_sub_account_id: return False if self.token != other.token: return False if self.amount != other.amount: return False if self.fee != other.fee: return False if self.nonce != other.nonce: return False if self.timestamp != other.timestamp: return False return True class FfiConverterTypeTransferBuilder(FfiConverterRustBuffer): @staticmethod def read(buf): return TransferBuilder( account_id=FfiConverterTypeAccountId.read(buf), to_address=FfiConverterTypeZkLinkAddress.read(buf), from_sub_account_id=FfiConverterTypeSubAccountId.read(buf), to_sub_account_id=FfiConverterTypeSubAccountId.read(buf), token=FfiConverterTypeTokenId.read(buf), amount=FfiConverterTypeBigUint.read(buf), fee=FfiConverterTypeBigUint.read(buf), nonce=FfiConverterTypeNonce.read(buf), timestamp=FfiConverterTypeTimeStamp.read(buf), ) @staticmethod def write(value, buf): FfiConverterTypeAccountId.write(value.account_id, buf) FfiConverterTypeZkLinkAddress.write(value.to_address, buf) FfiConverterTypeSubAccountId.write(value.from_sub_account_id, buf) FfiConverterTypeSubAccountId.write(value.to_sub_account_id, buf) FfiConverterTypeTokenId.write(value.token, buf) FfiConverterTypeBigUint.write(value.amount, buf) FfiConverterTypeBigUint.write(value.fee, buf) FfiConverterTypeNonce.write(value.nonce, buf) FfiConverterTypeTimeStamp.write(value.timestamp, buf) class TxMessage: def __init__(self, transaction, amount, fee, token, to, nonce): self.transaction = transaction self.amount = amount self.fee = fee self.token = token self.to = to self.nonce = nonce def __str__(self): return "TxMessage(transaction={}, amount={}, fee={}, token={}, to={}, nonce={})".format(self.transaction, self.amount, self.fee, self.token, self.to, self.nonce) def __eq__(self, other): if self.transaction != other.transaction: return False if self.amount != other.amount: return False if self.fee != other.fee: return False if self.token != other.token: return False if self.to != other.to: return False if self.nonce != other.nonce: return False return True class FfiConverterTypeTxMessage(FfiConverterRustBuffer): @staticmethod def read(buf): return TxMessage( transaction=FfiConverterString.read(buf), amount=FfiConverterString.read(buf), fee=FfiConverterString.read(buf), token=FfiConverterString.read(buf), to=FfiConverterString.read(buf), nonce=FfiConverterString.read(buf), ) @staticmethod def write(value, buf): FfiConverterString.write(value.transaction, buf) FfiConverterString.write(value.amount, buf) FfiConverterString.write(value.fee, buf) FfiConverterString.write(value.token, buf) FfiConverterString.write(value.to, buf) FfiConverterString.write(value.nonce, buf) class TxSignature: def __init__(self, tx, layer1_signature): self.tx = tx self.layer1_signature = layer1_signature def __str__(self): return "TxSignature(tx={}, layer1_signature={})".format(self.tx, self.layer1_signature) def __eq__(self, other): if self.tx != other.tx: return False if self.layer1_signature != other.layer1_signature: return False return True class FfiConverterTypeTxSignature(FfiConverterRustBuffer): @staticmethod def read(buf): return TxSignature( tx=FfiConverterTypeZkLinkTx.read(buf), layer1_signature=FfiConverterOptionalTypeTxLayer1Signature.read(buf), ) @staticmethod def write(value, buf): FfiConverterTypeZkLinkTx.write(value.tx, buf) FfiConverterOptionalTypeTxLayer1Signature.write(value.layer1_signature, buf) class UpdateGlobalVarBuilder: def __init__(self, from_chain_id, sub_account_id, parameter, serial_id): self.from_chain_id = from_chain_id self.sub_account_id = sub_account_id self.parameter = parameter self.serial_id = serial_id def __str__(self): return "UpdateGlobalVarBuilder(from_chain_id={}, sub_account_id={}, parameter={}, serial_id={})".format(self.from_chain_id, self.sub_account_id, self.parameter, self.serial_id) def __eq__(self, other): if self.from_chain_id != other.from_chain_id: return False if self.sub_account_id != other.sub_account_id: return False if self.parameter != other.parameter: return False if self.serial_id != other.serial_id: return False return True class FfiConverterTypeUpdateGlobalVarBuilder(FfiConverterRustBuffer): @staticmethod def read(buf): return UpdateGlobalVarBuilder( from_chain_id=FfiConverterTypeChainId.read(buf), sub_account_id=FfiConverterTypeSubAccountId.read(buf), parameter=FfiConverterTypeParameter.read(buf), serial_id=FfiConverterUInt64.read(buf), ) @staticmethod def write(value, buf): FfiConverterTypeChainId.write(value.from_chain_id, buf) FfiConverterTypeSubAccountId.write(value.sub_account_id, buf) FfiConverterTypeParameter.write(value.parameter, buf) FfiConverterUInt64.write(value.serial_id, buf) class WithdrawBuilder: def __init__(self, account_id, sub_account_id, to_chain_id, to_address, l2_source_token, l1_target_token, amount, call_data, fee, nonce, withdraw_fee_ratio, withdraw_to_l1, timestamp): self.account_id = account_id self.sub_account_id = sub_account_id self.to_chain_id = to_chain_id self.to_address = to_address self.l2_source_token = l2_source_token self.l1_target_token = l1_target_token self.amount = amount self.call_data = call_data self.fee = fee self.nonce = nonce self.withdraw_fee_ratio = withdraw_fee_ratio self.withdraw_to_l1 = withdraw_to_l1 self.timestamp = timestamp def __str__(self): return "WithdrawBuilder(account_id={}, sub_account_id={}, to_chain_id={}, to_address={}, l2_source_token={}, l1_target_token={}, amount={}, call_data={}, fee={}, nonce={}, withdraw_fee_ratio={}, withdraw_to_l1={}, timestamp={})".format(self.account_id, self.sub_account_id, self.to_chain_id, self.to_address, self.l2_source_token, self.l1_target_token, self.amount, self.call_data, self.fee, self.nonce, self.withdraw_fee_ratio, self.withdraw_to_l1, self.timestamp) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.to_chain_id != other.to_chain_id: return False if self.to_address != other.to_address: return False if self.l2_source_token != other.l2_source_token: return False if self.l1_target_token != other.l1_target_token: return False if self.amount != other.amount: return False if self.call_data != other.call_data: return False if self.fee != other.fee: return False if self.nonce != other.nonce: return False if self.withdraw_fee_ratio != other.withdraw_fee_ratio: return False if self.withdraw_to_l1 != other.withdraw_to_l1: return False if self.timestamp != other.timestamp: return False return True class FfiConverterTypeWithdrawBuilder(FfiConverterRustBuffer): @staticmethod def read(buf): return WithdrawBuilder( account_id=FfiConverterTypeAccountId.read(buf), sub_account_id=FfiConverterTypeSubAccountId.read(buf), to_chain_id=FfiConverterTypeChainId.read(buf), to_address=FfiConverterTypeZkLinkAddress.read(buf), l2_source_token=FfiConverterTypeTokenId.read(buf), l1_target_token=FfiConverterTypeTokenId.read(buf), amount=FfiConverterTypeBigUint.read(buf), call_data=FfiConverterOptionalSequenceUInt8.read(buf), fee=FfiConverterTypeBigUint.read(buf), nonce=FfiConverterTypeNonce.read(buf), withdraw_fee_ratio=FfiConverterUInt16.read(buf), withdraw_to_l1=FfiConverterBool.read(buf), timestamp=FfiConverterTypeTimeStamp.read(buf), ) @staticmethod def write(value, buf): FfiConverterTypeAccountId.write(value.account_id, buf) FfiConverterTypeSubAccountId.write(value.sub_account_id, buf) FfiConverterTypeChainId.write(value.to_chain_id, buf) FfiConverterTypeZkLinkAddress.write(value.to_address, buf) FfiConverterTypeTokenId.write(value.l2_source_token, buf) FfiConverterTypeTokenId.write(value.l1_target_token, buf) FfiConverterTypeBigUint.write(value.amount, buf) FfiConverterOptionalSequenceUInt8.write(value.call_data, buf) FfiConverterTypeBigUint.write(value.fee, buf) FfiConverterTypeNonce.write(value.nonce, buf) FfiConverterUInt16.write(value.withdraw_fee_ratio, buf) FfiConverterBool.write(value.withdraw_to_l1, buf) FfiConverterTypeTimeStamp.write(value.timestamp, buf) class ZkLinkSignature: def __init__(self, pub_key, signature): self.pub_key = pub_key self.signature = signature def __str__(self): return "ZkLinkSignature(pub_key={}, signature={})".format(self.pub_key, self.signature) def __eq__(self, other): if self.pub_key != other.pub_key: return False if self.signature != other.signature: return False return True class FfiConverterTypeZkLinkSignature(FfiConverterRustBuffer): @staticmethod def read(buf): return ZkLinkSignature( pub_key=FfiConverterTypePackedPublicKey.read(buf), signature=FfiConverterTypePackedSignature.read(buf), ) @staticmethod def write(value, buf): FfiConverterTypePackedPublicKey.write(value.pub_key, buf) FfiConverterTypePackedSignature.write(value.signature, buf) class ChangePubKeyAuthData: def __init__(self): raise RuntimeError("ChangePubKeyAuthData cannot be instantiated directly") # Each enum variant is a nested class of the enum itself. class ONCHAIN(object): def __init__(self,): pass def __str__(self): return "ChangePubKeyAuthData.ONCHAIN()".format() def __eq__(self, other): if not other.is_onchain(): return False return True class ETH_ECDSA(object): def __init__(self,eth_signature): self.eth_signature = eth_signature def __str__(self): return "ChangePubKeyAuthData.ETH_ECDSA(eth_signature={})".format(self.eth_signature) def __eq__(self, other): if not other.is_eth_ecdsa(): return False if self.eth_signature != other.eth_signature: return False return True class ETH_CREATE2(object): def __init__(self,data): self.data = data def __str__(self): return "ChangePubKeyAuthData.ETH_CREATE2(data={})".format(self.data) def __eq__(self, other): if not other.is_eth_create2(): return False if self.data != other.data: return False return True # For each variant, we have an `is_NAME` method for easily checking # whether an instance is that variant. def is_onchain(self): return isinstance(self, ChangePubKeyAuthData.ONCHAIN) def is_eth_ecdsa(self): return isinstance(self, ChangePubKeyAuthData.ETH_ECDSA) def is_eth_create2(self): return isinstance(self, ChangePubKeyAuthData.ETH_CREATE2) # Now, a little trick - we make each nested variant class be a subclass of the main # enum class, so that method calls and instance checks etc will work intuitively. # We might be able to do this a little more neatly with a metaclass, but this'll do. ChangePubKeyAuthData.ONCHAIN = type("ChangePubKeyAuthData.ONCHAIN", (ChangePubKeyAuthData.ONCHAIN, ChangePubKeyAuthData,), {}) ChangePubKeyAuthData.ETH_ECDSA = type("ChangePubKeyAuthData.ETH_ECDSA", (ChangePubKeyAuthData.ETH_ECDSA, ChangePubKeyAuthData,), {}) ChangePubKeyAuthData.ETH_CREATE2 = type("ChangePubKeyAuthData.ETH_CREATE2", (ChangePubKeyAuthData.ETH_CREATE2, ChangePubKeyAuthData,), {}) class FfiConverterTypeChangePubKeyAuthData(FfiConverterRustBuffer): @staticmethod def read(buf): variant = buf.readI32() if variant == 1: return ChangePubKeyAuthData.ONCHAIN( ) if variant == 2: return ChangePubKeyAuthData.ETH_ECDSA( FfiConverterTypePackedEthSignature.read(buf), ) if variant == 3: return ChangePubKeyAuthData.ETH_CREATE2( FfiConverterTypeCreate2Data.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value.is_onchain(): buf.writeI32(1) if value.is_eth_ecdsa(): buf.writeI32(2) FfiConverterTypePackedEthSignature.write(value.eth_signature, buf) if value.is_eth_create2(): buf.writeI32(3) FfiConverterTypeCreate2Data.write(value.data, buf) class ChangePubKeyAuthRequest: def __init__(self): raise RuntimeError("ChangePubKeyAuthRequest cannot be instantiated directly") # Each enum variant is a nested class of the enum itself. class ONCHAIN(object): def __init__(self,): pass def __str__(self): return "ChangePubKeyAuthRequest.ONCHAIN()".format() def __eq__(self, other): if not other.is_onchain(): return False return True class ETH_ECDSA(object): def __init__(self,): pass def __str__(self): return "ChangePubKeyAuthRequest.ETH_ECDSA()".format() def __eq__(self, other): if not other.is_eth_ecdsa(): return False return True class ETH_CREATE2(object): def __init__(self,data): self.data = data def __str__(self): return "ChangePubKeyAuthRequest.ETH_CREATE2(data={})".format(self.data) def __eq__(self, other): if not other.is_eth_create2(): return False if self.data != other.data: return False return True # For each variant, we have an `is_NAME` method for easily checking # whether an instance is that variant. def is_onchain(self): return isinstance(self, ChangePubKeyAuthRequest.ONCHAIN) def is_eth_ecdsa(self): return isinstance(self, ChangePubKeyAuthRequest.ETH_ECDSA) def is_eth_create2(self): return isinstance(self, ChangePubKeyAuthRequest.ETH_CREATE2) # Now, a little trick - we make each nested variant class be a subclass of the main # enum class, so that method calls and instance checks etc will work intuitively. # We might be able to do this a little more neatly with a metaclass, but this'll do. ChangePubKeyAuthRequest.ONCHAIN = type("ChangePubKeyAuthRequest.ONCHAIN", (ChangePubKeyAuthRequest.ONCHAIN, ChangePubKeyAuthRequest,), {}) ChangePubKeyAuthRequest.ETH_ECDSA = type("ChangePubKeyAuthRequest.ETH_ECDSA", (ChangePubKeyAuthRequest.ETH_ECDSA, ChangePubKeyAuthRequest,), {}) ChangePubKeyAuthRequest.ETH_CREATE2 = type("ChangePubKeyAuthRequest.ETH_CREATE2", (ChangePubKeyAuthRequest.ETH_CREATE2, ChangePubKeyAuthRequest,), {}) class FfiConverterTypeChangePubKeyAuthRequest(FfiConverterRustBuffer): @staticmethod def read(buf): variant = buf.readI32() if variant == 1: return ChangePubKeyAuthRequest.ONCHAIN( ) if variant == 2: return ChangePubKeyAuthRequest.ETH_ECDSA( ) if variant == 3: return ChangePubKeyAuthRequest.ETH_CREATE2( FfiConverterTypeCreate2Data.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value.is_onchain(): buf.writeI32(1) if value.is_eth_ecdsa(): buf.writeI32(2) if value.is_eth_create2(): buf.writeI32(3) FfiConverterTypeCreate2Data.write(value.data, buf) class L1SignerType: def __init__(self): raise RuntimeError("L1SignerType cannot be instantiated directly") # Each enum variant is a nested class of the enum itself. class ETH(object): def __init__(self,): pass def __str__(self): return "L1SignerType.ETH()".format() def __eq__(self, other): if not other.is_eth(): return False return True class STARKNET(object): def __init__(self,chain_id, address): self.chain_id = chain_id self.address = address def __str__(self): return "L1SignerType.STARKNET(chain_id={}, address={})".format(self.chain_id, self.address) def __eq__(self, other): if not other.is_starknet(): return False if self.chain_id != other.chain_id: return False if self.address != other.address: return False return True # For each variant, we have an `is_NAME` method for easily checking # whether an instance is that variant. def is_eth(self): return isinstance(self, L1SignerType.ETH) def is_starknet(self): return isinstance(self, L1SignerType.STARKNET) # Now, a little trick - we make each nested variant class be a subclass of the main # enum class, so that method calls and instance checks etc will work intuitively. # We might be able to do this a little more neatly with a metaclass, but this'll do. L1SignerType.ETH = type("L1SignerType.ETH", (L1SignerType.ETH, L1SignerType,), {}) L1SignerType.STARKNET = type("L1SignerType.STARKNET", (L1SignerType.STARKNET, L1SignerType,), {}) class FfiConverterTypeL1SignerType(FfiConverterRustBuffer): @staticmethod def read(buf): variant = buf.readI32() if variant == 1: return L1SignerType.ETH( ) if variant == 2: return L1SignerType.STARKNET( FfiConverterString.read(buf), FfiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value.is_eth(): buf.writeI32(1) if value.is_starknet(): buf.writeI32(2) FfiConverterString.write(value.chain_id, buf) FfiConverterString.write(value.address, buf) class L1Type(enum.Enum): ETH = 1 STARKNET = 2 class FfiConverterTypeL1Type(FfiConverterRustBuffer): @staticmethod def read(buf): variant = buf.readI32() if variant == 1: return L1Type.ETH if variant == 2: return L1Type.STARKNET raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value == L1Type.ETH: buf.writeI32(1) if value == L1Type.STARKNET: buf.writeI32(2) class Parameter: def __init__(self): raise RuntimeError("Parameter cannot be instantiated directly") # Each enum variant is a nested class of the enum itself. class FEE_ACCOUNT(object): def __init__(self,account_id): self.account_id = account_id def __str__(self): return "Parameter.FEE_ACCOUNT(account_id={})".format(self.account_id) def __eq__(self, other): if not other.is_fee_account(): return False if self.account_id != other.account_id: return False return True class INSURANCE_FUND_ACCOUNT(object): def __init__(self,account_id): self.account_id = account_id def __str__(self): return "Parameter.INSURANCE_FUND_ACCOUNT(account_id={})".format(self.account_id) def __eq__(self, other): if not other.is_insurance_fund_account(): return False if self.account_id != other.account_id: return False return True class MARGIN_INFO(object): def __init__(self,margin_id, token_id, ratio): self.margin_id = margin_id self.token_id = token_id self.ratio = ratio def __str__(self): return "Parameter.MARGIN_INFO(margin_id={}, token_id={}, ratio={})".format(self.margin_id, self.token_id, self.ratio) def __eq__(self, other): if not other.is_margin_info(): return False if self.margin_id != other.margin_id: return False if self.token_id != other.token_id: return False if self.ratio != other.ratio: return False return True class FUNDING_INFOS(object): def __init__(self,infos): self.infos = infos def __str__(self): return "Parameter.FUNDING_INFOS(infos={})".format(self.infos) def __eq__(self, other): if not other.is_funding_infos(): return False if self.infos != other.infos: return False return True class CONTRACT_INFO(object): def __init__(self,pair_id, symbol, initial_margin_rate, maintenance_margin_rate): self.pair_id = pair_id self.symbol = symbol self.initial_margin_rate = initial_margin_rate self.maintenance_margin_rate = maintenance_margin_rate def __str__(self): return "Parameter.CONTRACT_INFO(pair_id={}, symbol={}, initial_margin_rate={}, maintenance_margin_rate={})".format(self.pair_id, self.symbol, self.initial_margin_rate, self.maintenance_margin_rate) def __eq__(self, other): if not other.is_contract_info(): return False if self.pair_id != other.pair_id: return False if self.symbol != other.symbol: return False if self.initial_margin_rate != other.initial_margin_rate: return False if self.maintenance_margin_rate != other.maintenance_margin_rate: return False return True # For each variant, we have an `is_NAME` method for easily checking # whether an instance is that variant. def is_fee_account(self): return isinstance(self, Parameter.FEE_ACCOUNT) def is_insurance_fund_account(self): return isinstance(self, Parameter.INSURANCE_FUND_ACCOUNT) def is_margin_info(self): return isinstance(self, Parameter.MARGIN_INFO) def is_funding_infos(self): return isinstance(self, Parameter.FUNDING_INFOS) def is_contract_info(self): return isinstance(self, Parameter.CONTRACT_INFO) # Now, a little trick - we make each nested variant class be a subclass of the main # enum class, so that method calls and instance checks etc will work intuitively. # We might be able to do this a little more neatly with a metaclass, but this'll do. Parameter.FEE_ACCOUNT = type("Parameter.FEE_ACCOUNT", (Parameter.FEE_ACCOUNT, Parameter,), {}) Parameter.INSURANCE_FUND_ACCOUNT = type("Parameter.INSURANCE_FUND_ACCOUNT", (Parameter.INSURANCE_FUND_ACCOUNT, Parameter,), {}) Parameter.MARGIN_INFO = type("Parameter.MARGIN_INFO", (Parameter.MARGIN_INFO, Parameter,), {}) Parameter.FUNDING_INFOS = type("Parameter.FUNDING_INFOS", (Parameter.FUNDING_INFOS, Parameter,), {}) Parameter.CONTRACT_INFO = type("Parameter.CONTRACT_INFO", (Parameter.CONTRACT_INFO, Parameter,), {}) class FfiConverterTypeParameter(FfiConverterRustBuffer): @staticmethod def read(buf): variant = buf.readI32() if variant == 1: return Parameter.FEE_ACCOUNT( FfiConverterTypeAccountId.read(buf), ) if variant == 2: return Parameter.INSURANCE_FUND_ACCOUNT( FfiConverterTypeAccountId.read(buf), ) if variant == 3: return Parameter.MARGIN_INFO( FfiConverterTypeMarginId.read(buf), FfiConverterTypeTokenId.read(buf), FfiConverterUInt8.read(buf), ) if variant == 4: return Parameter.FUNDING_INFOS( FfiConverterSequenceTypeFundingInfo.read(buf), ) if variant == 5: return Parameter.CONTRACT_INFO( FfiConverterTypePairId.read(buf), FfiConverterString.read(buf), FfiConverterUInt16.read(buf), FfiConverterUInt16.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value.is_fee_account(): buf.writeI32(1) FfiConverterTypeAccountId.write(value.account_id, buf) if value.is_insurance_fund_account(): buf.writeI32(2) FfiConverterTypeAccountId.write(value.account_id, buf) if value.is_margin_info(): buf.writeI32(3) FfiConverterTypeMarginId.write(value.margin_id, buf) FfiConverterTypeTokenId.write(value.token_id, buf) FfiConverterUInt8.write(value.ratio, buf) if value.is_funding_infos(): buf.writeI32(4) FfiConverterSequenceTypeFundingInfo.write(value.infos, buf) if value.is_contract_info(): buf.writeI32(5) FfiConverterTypePairId.write(value.pair_id, buf) FfiConverterString.write(value.symbol, buf) FfiConverterUInt16.write(value.initial_margin_rate, buf) FfiConverterUInt16.write(value.maintenance_margin_rate, buf) class TypedDataMessage: def __init__(self): raise RuntimeError("TypedDataMessage cannot be instantiated directly") # Each enum variant is a nested class of the enum itself. class CREATE_L2_KEY(object): def __init__(self,message): self.message = message def __str__(self): return "TypedDataMessage.CREATE_L2_KEY(message={})".format(self.message) def __eq__(self, other): if not other.is_create_l2_key(): return False if self.message != other.message: return False return True class TRANSACTION(object): def __init__(self,message): self.message = message def __str__(self): return "TypedDataMessage.TRANSACTION(message={})".format(self.message) def __eq__(self, other): if not other.is_transaction(): return False if self.message != other.message: return False return True # For each variant, we have an `is_NAME` method for easily checking # whether an instance is that variant. def is_create_l2_key(self): return isinstance(self, TypedDataMessage.CREATE_L2_KEY) def is_transaction(self): return isinstance(self, TypedDataMessage.TRANSACTION) # Now, a little trick - we make each nested variant class be a subclass of the main # enum class, so that method calls and instance checks etc will work intuitively. # We might be able to do this a little more neatly with a metaclass, but this'll do. TypedDataMessage.CREATE_L2_KEY = type("TypedDataMessage.CREATE_L2_KEY", (TypedDataMessage.CREATE_L2_KEY, TypedDataMessage,), {}) TypedDataMessage.TRANSACTION = type("TypedDataMessage.TRANSACTION", (TypedDataMessage.TRANSACTION, TypedDataMessage,), {}) class FfiConverterTypeTypedDataMessage(FfiConverterRustBuffer): @staticmethod def read(buf): variant = buf.readI32() if variant == 1: return TypedDataMessage.CREATE_L2_KEY( FfiConverterTypeMessage.read(buf), ) if variant == 2: return TypedDataMessage.TRANSACTION( FfiConverterTypeTxMessage.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value.is_create_l2_key(): buf.writeI32(1) FfiConverterTypeMessage.write(value.message, buf) if value.is_transaction(): buf.writeI32(2) FfiConverterTypeTxMessage.write(value.message, buf) # EthSignerError # We want to define each variant as a nested class that's also a subclass, # which is tricky in Python. To accomplish this we're going to create each # class separated, then manually add the child classes to the base class's # __dict__. All of this happens in dummy class to avoid polluting the module # namespace. class UniFFIExceptionTmpNamespace: class EthSignerError(Exception): pass class InvalidEthSigner(EthSignerError): def __str__(self): return "EthSignerError.InvalidEthSigner({})".format(repr(super().__str__())) EthSignerError.InvalidEthSigner = InvalidEthSigner class MissingEthPrivateKey(EthSignerError): def __str__(self): return "EthSignerError.MissingEthPrivateKey({})".format(repr(super().__str__())) EthSignerError.MissingEthPrivateKey = MissingEthPrivateKey class MissingEthSigner(EthSignerError): def __str__(self): return "EthSignerError.MissingEthSigner({})".format(repr(super().__str__())) EthSignerError.MissingEthSigner = MissingEthSigner class SigningFailed(EthSignerError): def __str__(self): return "EthSignerError.SigningFailed({})".format(repr(super().__str__())) EthSignerError.SigningFailed = SigningFailed class UnlockingFailed(EthSignerError): def __str__(self): return "EthSignerError.UnlockingFailed({})".format(repr(super().__str__())) EthSignerError.UnlockingFailed = UnlockingFailed class InvalidRawTx(EthSignerError): def __str__(self): return "EthSignerError.InvalidRawTx({})".format(repr(super().__str__())) EthSignerError.InvalidRawTx = InvalidRawTx class Eip712Failed(EthSignerError): def __str__(self): return "EthSignerError.Eip712Failed({})".format(repr(super().__str__())) EthSignerError.Eip712Failed = Eip712Failed class NoSigningKey(EthSignerError): def __str__(self): return "EthSignerError.NoSigningKey({})".format(repr(super().__str__())) EthSignerError.NoSigningKey = NoSigningKey class DefineAddress(EthSignerError): def __str__(self): return "EthSignerError.DefineAddress({})".format(repr(super().__str__())) EthSignerError.DefineAddress = DefineAddress class RecoverAddress(EthSignerError): def __str__(self): return "EthSignerError.RecoverAddress({})".format(repr(super().__str__())) EthSignerError.RecoverAddress = RecoverAddress class LengthMismatched(EthSignerError): def __str__(self): return "EthSignerError.LengthMismatched({})".format(repr(super().__str__())) EthSignerError.LengthMismatched = LengthMismatched class CryptoError(EthSignerError): def __str__(self): return "EthSignerError.CryptoError({})".format(repr(super().__str__())) EthSignerError.CryptoError = CryptoError class InvalidSignatureStr(EthSignerError): def __str__(self): return "EthSignerError.InvalidSignatureStr({})".format(repr(super().__str__())) EthSignerError.InvalidSignatureStr = InvalidSignatureStr class CustomError(EthSignerError): def __str__(self): return "EthSignerError.CustomError({})".format(repr(super().__str__())) EthSignerError.CustomError = CustomError class RpcSignError(EthSignerError): def __str__(self): return "EthSignerError.RpcSignError({})".format(repr(super().__str__())) EthSignerError.RpcSignError = RpcSignError EthSignerError = UniFFIExceptionTmpNamespace.EthSignerError del UniFFIExceptionTmpNamespace class FfiConverterTypeEthSignerError(FfiConverterRustBuffer): @staticmethod def read(buf): variant = buf.readI32() if variant == 1: return EthSignerError.InvalidEthSigner( FfiConverterString.read(buf), ) if variant == 2: return EthSignerError.MissingEthPrivateKey( FfiConverterString.read(buf), ) if variant == 3: return EthSignerError.MissingEthSigner( FfiConverterString.read(buf), ) if variant == 4: return EthSignerError.SigningFailed( FfiConverterString.read(buf), ) if variant == 5: return EthSignerError.UnlockingFailed( FfiConverterString.read(buf), ) if variant == 6: return EthSignerError.InvalidRawTx( FfiConverterString.read(buf), ) if variant == 7: return EthSignerError.Eip712Failed( FfiConverterString.read(buf), ) if variant == 8: return EthSignerError.NoSigningKey( FfiConverterString.read(buf), ) if variant == 9: return EthSignerError.DefineAddress( FfiConverterString.read(buf), ) if variant == 10: return EthSignerError.RecoverAddress( FfiConverterString.read(buf), ) if variant == 11: return EthSignerError.LengthMismatched( FfiConverterString.read(buf), ) if variant == 12: return EthSignerError.CryptoError( FfiConverterString.read(buf), ) if variant == 13: return EthSignerError.InvalidSignatureStr( FfiConverterString.read(buf), ) if variant == 14: return EthSignerError.CustomError( FfiConverterString.read(buf), ) if variant == 15: return EthSignerError.RpcSignError( FfiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") @staticmethod def write(value, buf): if isinstance(value, EthSignerError.InvalidEthSigner): buf.writeI32(1) if isinstance(value, EthSignerError.MissingEthPrivateKey): buf.writeI32(2) if isinstance(value, EthSignerError.MissingEthSigner): buf.writeI32(3) if isinstance(value, EthSignerError.SigningFailed): buf.writeI32(4) if isinstance(value, EthSignerError.UnlockingFailed): buf.writeI32(5) if isinstance(value, EthSignerError.InvalidRawTx): buf.writeI32(6) if isinstance(value, EthSignerError.Eip712Failed): buf.writeI32(7) if isinstance(value, EthSignerError.NoSigningKey): buf.writeI32(8) if isinstance(value, EthSignerError.DefineAddress): buf.writeI32(9) if isinstance(value, EthSignerError.RecoverAddress): buf.writeI32(10) if isinstance(value, EthSignerError.LengthMismatched): buf.writeI32(11) if isinstance(value, EthSignerError.CryptoError): buf.writeI32(12) if isinstance(value, EthSignerError.InvalidSignatureStr): buf.writeI32(13) if isinstance(value, EthSignerError.CustomError): buf.writeI32(14) if isinstance(value, EthSignerError.RpcSignError): buf.writeI32(15) # SignError # We want to define each variant as a nested class that's also a subclass, # which is tricky in Python. To accomplish this we're going to create each # class separated, then manually add the child classes to the base class's # __dict__. All of this happens in dummy class to avoid polluting the module # namespace. class UniFFIExceptionTmpNamespace: class SignError(Exception): pass class EthSigningError(SignError): def __str__(self): return "SignError.EthSigningError({})".format(repr(super().__str__())) SignError.EthSigningError = EthSigningError class ZkSigningError(SignError): def __str__(self): return "SignError.ZkSigningError({})".format(repr(super().__str__())) SignError.ZkSigningError = ZkSigningError class StarkSigningError(SignError): def __str__(self): return "SignError.StarkSigningError({})".format(repr(super().__str__())) SignError.StarkSigningError = StarkSigningError class IncorrectTx(SignError): def __str__(self): return "SignError.IncorrectTx({})".format(repr(super().__str__())) SignError.IncorrectTx = IncorrectTx SignError = UniFFIExceptionTmpNamespace.SignError del UniFFIExceptionTmpNamespace class FfiConverterTypeSignError(FfiConverterRustBuffer): @staticmethod def read(buf): variant = buf.readI32() if variant == 1: return SignError.EthSigningError( FfiConverterString.read(buf), ) if variant == 2: return SignError.ZkSigningError( FfiConverterString.read(buf), ) if variant == 3: return SignError.StarkSigningError( FfiConverterString.read(buf), ) if variant == 4: return SignError.IncorrectTx( FfiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") @staticmethod def write(value, buf): if isinstance(value, SignError.EthSigningError): buf.writeI32(1) if isinstance(value, SignError.ZkSigningError): buf.writeI32(2) if isinstance(value, SignError.StarkSigningError): buf.writeI32(3) if isinstance(value, SignError.IncorrectTx): buf.writeI32(4) # StarkSignerError # We want to define each variant as a nested class that's also a subclass, # which is tricky in Python. To accomplish this we're going to create each # class separated, then manually add the child classes to the base class's # __dict__. All of this happens in dummy class to avoid polluting the module # namespace. class UniFFIExceptionTmpNamespace: class StarkSignerError(Exception): pass class InvalidStarknetSigner(StarkSignerError): def __str__(self): return "StarkSignerError.InvalidStarknetSigner({})".format(repr(super().__str__())) StarkSignerError.InvalidStarknetSigner = InvalidStarknetSigner class InvalidSignature(StarkSignerError): def __str__(self): return "StarkSignerError.InvalidSignature({})".format(repr(super().__str__())) StarkSignerError.InvalidSignature = InvalidSignature class InvalidPrivKey(StarkSignerError): def __str__(self): return "StarkSignerError.InvalidPrivKey({})".format(repr(super().__str__())) StarkSignerError.InvalidPrivKey = InvalidPrivKey class SignError(StarkSignerError): def __str__(self): return "StarkSignerError.SignError({})".format(repr(super().__str__())) StarkSignerError.SignError = SignError class RpcSignError(StarkSignerError): def __str__(self): return "StarkSignerError.RpcSignError({})".format(repr(super().__str__())) StarkSignerError.RpcSignError = RpcSignError StarkSignerError = UniFFIExceptionTmpNamespace.StarkSignerError del UniFFIExceptionTmpNamespace class FfiConverterTypeStarkSignerError(FfiConverterRustBuffer): @staticmethod def read(buf): variant = buf.readI32() if variant == 1: return StarkSignerError.InvalidStarknetSigner( FfiConverterString.read(buf), ) if variant == 2: return StarkSignerError.InvalidSignature( FfiConverterString.read(buf), ) if variant == 3: return StarkSignerError.InvalidPrivKey( FfiConverterString.read(buf), ) if variant == 4: return StarkSignerError.SignError( FfiConverterString.read(buf), ) if variant == 5: return StarkSignerError.RpcSignError( FfiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") @staticmethod def write(value, buf): if isinstance(value, StarkSignerError.InvalidStarknetSigner): buf.writeI32(1) if isinstance(value, StarkSignerError.InvalidSignature): buf.writeI32(2) if isinstance(value, StarkSignerError.InvalidPrivKey): buf.writeI32(3) if isinstance(value, StarkSignerError.SignError): buf.writeI32(4) if isinstance(value, StarkSignerError.RpcSignError): buf.writeI32(5) # TypeError # We want to define each variant as a nested class that's also a subclass, # which is tricky in Python. To accomplish this we're going to create each # class separated, then manually add the child classes to the base class's # __dict__. All of this happens in dummy class to avoid polluting the module # namespace. class UniFFIExceptionTmpNamespace: class TypeError(Exception): pass class InvalidAddress(TypeError): def __str__(self): return "TypeError.InvalidAddress({})".format(repr(super().__str__())) TypeError.InvalidAddress = InvalidAddress class InvalidTxHash(TypeError): def __str__(self): return "TypeError.InvalidTxHash({})".format(repr(super().__str__())) TypeError.InvalidTxHash = InvalidTxHash class NotStartWithZerox(TypeError): def __str__(self): return "TypeError.NotStartWithZerox({})".format(repr(super().__str__())) TypeError.NotStartWithZerox = NotStartWithZerox class SizeMismatch(TypeError): def __str__(self): return "TypeError.SizeMismatch({})".format(repr(super().__str__())) TypeError.SizeMismatch = SizeMismatch class DecodeFromHexErr(TypeError): def __str__(self): return "TypeError.DecodeFromHexErr({})".format(repr(super().__str__())) TypeError.DecodeFromHexErr = DecodeFromHexErr class TooBigInteger(TypeError): def __str__(self): return "TypeError.TooBigInteger({})".format(repr(super().__str__())) TypeError.TooBigInteger = TooBigInteger class InvalidBigIntStr(TypeError): def __str__(self): return "TypeError.InvalidBigIntStr({})".format(repr(super().__str__())) TypeError.InvalidBigIntStr = InvalidBigIntStr TypeError = UniFFIExceptionTmpNamespace.TypeError del UniFFIExceptionTmpNamespace class FfiConverterTypeTypeError(FfiConverterRustBuffer): @staticmethod def read(buf): variant = buf.readI32() if variant == 1: return TypeError.InvalidAddress( FfiConverterString.read(buf), ) if variant == 2: return TypeError.InvalidTxHash( FfiConverterString.read(buf), ) if variant == 3: return TypeError.NotStartWithZerox( FfiConverterString.read(buf), ) if variant == 4: return TypeError.SizeMismatch( FfiConverterString.read(buf), ) if variant == 5: return TypeError.DecodeFromHexErr( FfiConverterString.read(buf), ) if variant == 6: return TypeError.TooBigInteger( FfiConverterString.read(buf), ) if variant == 7: return TypeError.InvalidBigIntStr( FfiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") @staticmethod def write(value, buf): if isinstance(value, TypeError.InvalidAddress): buf.writeI32(1) if isinstance(value, TypeError.InvalidTxHash): buf.writeI32(2) if isinstance(value, TypeError.NotStartWithZerox): buf.writeI32(3) if isinstance(value, TypeError.SizeMismatch): buf.writeI32(4) if isinstance(value, TypeError.DecodeFromHexErr): buf.writeI32(5) if isinstance(value, TypeError.TooBigInteger): buf.writeI32(6) if isinstance(value, TypeError.InvalidBigIntStr): buf.writeI32(7) # ZkSignerError # We want to define each variant as a nested class that's also a subclass, # which is tricky in Python. To accomplish this we're going to create each # class separated, then manually add the child classes to the base class's # __dict__. All of this happens in dummy class to avoid polluting the module # namespace. class UniFFIExceptionTmpNamespace: class ZkSignerError(Exception): pass class CustomError(ZkSignerError): def __str__(self): return "ZkSignerError.CustomError({})".format(repr(super().__str__())) ZkSignerError.CustomError = CustomError class InvalidSignature(ZkSignerError): def __str__(self): return "ZkSignerError.InvalidSignature({})".format(repr(super().__str__())) ZkSignerError.InvalidSignature = InvalidSignature class InvalidPrivKey(ZkSignerError): def __str__(self): return "ZkSignerError.InvalidPrivKey({})".format(repr(super().__str__())) ZkSignerError.InvalidPrivKey = InvalidPrivKey class InvalidSeed(ZkSignerError): def __str__(self): return "ZkSignerError.InvalidSeed({})".format(repr(super().__str__())) ZkSignerError.InvalidSeed = InvalidSeed class InvalidPubkey(ZkSignerError): def __str__(self): return "ZkSignerError.InvalidPubkey({})".format(repr(super().__str__())) ZkSignerError.InvalidPubkey = InvalidPubkey class InvalidPubkeyHash(ZkSignerError): def __str__(self): return "ZkSignerError.InvalidPubkeyHash({})".format(repr(super().__str__())) ZkSignerError.InvalidPubkeyHash = InvalidPubkeyHash class EthSignerError(ZkSignerError): def __str__(self): return "ZkSignerError.EthSignerError({})".format(repr(super().__str__())) ZkSignerError.EthSignerError = EthSignerError class StarkSignerError(ZkSignerError): def __str__(self): return "ZkSignerError.StarkSignerError({})".format(repr(super().__str__())) ZkSignerError.StarkSignerError = StarkSignerError ZkSignerError = UniFFIExceptionTmpNamespace.ZkSignerError del UniFFIExceptionTmpNamespace class FfiConverterTypeZkSignerError(FfiConverterRustBuffer): @staticmethod def read(buf): variant = buf.readI32() if variant == 1: return ZkSignerError.CustomError( FfiConverterString.read(buf), ) if variant == 2: return ZkSignerError.InvalidSignature( FfiConverterString.read(buf), ) if variant == 3: return ZkSignerError.InvalidPrivKey( FfiConverterString.read(buf), ) if variant == 4: return ZkSignerError.InvalidSeed( FfiConverterString.read(buf), ) if variant == 5: return ZkSignerError.InvalidPubkey( FfiConverterString.read(buf), ) if variant == 6: return ZkSignerError.InvalidPubkeyHash( FfiConverterString.read(buf), ) if variant == 7: return ZkSignerError.EthSignerError( FfiConverterString.read(buf), ) if variant == 8: return ZkSignerError.StarkSignerError( FfiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") @staticmethod def write(value, buf): if isinstance(value, ZkSignerError.CustomError): buf.writeI32(1) if isinstance(value, ZkSignerError.InvalidSignature): buf.writeI32(2) if isinstance(value, ZkSignerError.InvalidPrivKey): buf.writeI32(3) if isinstance(value, ZkSignerError.InvalidSeed): buf.writeI32(4) if isinstance(value, ZkSignerError.InvalidPubkey): buf.writeI32(5) if isinstance(value, ZkSignerError.InvalidPubkeyHash): buf.writeI32(6) if isinstance(value, ZkSignerError.EthSignerError): buf.writeI32(7) if isinstance(value, ZkSignerError.StarkSignerError): buf.writeI32(8) class FfiConverterOptionalString(FfiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.writeU8(0) return buf.writeU8(1) FfiConverterString.write(value, buf) @classmethod def read(cls, buf): flag = buf.readU8() if flag == 0: return None elif flag == 1: return FfiConverterString.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class FfiConverterOptionalTypeZkLinkSignature(FfiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.writeU8(0) return buf.writeU8(1) FfiConverterTypeZkLinkSignature.write(value, buf) @classmethod def read(cls, buf): flag = buf.readU8() if flag == 0: return None elif flag == 1: return FfiConverterTypeZkLinkSignature.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class FfiConverterOptionalSequenceUInt8(FfiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.writeU8(0) return buf.writeU8(1) FfiConverterSequenceUInt8.write(value, buf) @classmethod def read(cls, buf): flag = buf.readU8() if flag == 0: return None elif flag == 1: return FfiConverterSequenceUInt8.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class FfiConverterOptionalTypeH256(FfiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.writeU8(0) return buf.writeU8(1) FfiConverterTypeH256.write(value, buf) @classmethod def read(cls, buf): flag = buf.readU8() if flag == 0: return None elif flag == 1: return FfiConverterTypeH256.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class FfiConverterOptionalTypePackedEthSignature(FfiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.writeU8(0) return buf.writeU8(1) FfiConverterTypePackedEthSignature.write(value, buf) @classmethod def read(cls, buf): flag = buf.readU8() if flag == 0: return None elif flag == 1: return FfiConverterTypePackedEthSignature.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class FfiConverterOptionalTypeTxLayer1Signature(FfiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.writeU8(0) return buf.writeU8(1) FfiConverterTypeTxLayer1Signature.write(value, buf) @classmethod def read(cls, buf): flag = buf.readU8() if flag == 0: return None elif flag == 1: return FfiConverterTypeTxLayer1Signature.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class FfiConverterSequenceUInt8(FfiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.writeI32(items) for item in value: FfiConverterUInt8.write(item, buf) @classmethod def read(cls, buf): count = buf.readI32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ FfiConverterUInt8.read(buf) for i in range(count) ] class FfiConverterSequenceTypeContract(FfiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.writeI32(items) for item in value: FfiConverterTypeContract.write(item, buf) @classmethod def read(cls, buf): count = buf.readI32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ FfiConverterTypeContract.read(buf) for i in range(count) ] class FfiConverterSequenceTypeContractPrice(FfiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.writeI32(items) for item in value: FfiConverterTypeContractPrice.write(item, buf) @classmethod def read(cls, buf): count = buf.readI32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ FfiConverterTypeContractPrice.read(buf) for i in range(count) ] class FfiConverterSequenceTypeFundingInfo(FfiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.writeI32(items) for item in value: FfiConverterTypeFundingInfo.write(item, buf) @classmethod def read(cls, buf): count = buf.readI32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ FfiConverterTypeFundingInfo.read(buf) for i in range(count) ] class FfiConverterSequenceTypeSpotPriceInfo(FfiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.writeI32(items) for item in value: FfiConverterTypeSpotPriceInfo.write(item, buf) @classmethod def read(cls, buf): count = buf.readI32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ FfiConverterTypeSpotPriceInfo.read(buf) for i in range(count) ] class FfiConverterSequenceTypeAccountId(FfiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.writeI32(items) for item in value: FfiConverterTypeAccountId.write(item, buf) @classmethod def read(cls, buf): count = buf.readI32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ FfiConverterTypeAccountId.read(buf) for i in range(count) ] class FfiConverterTypeAccountId: @staticmethod def write(value, buf): FfiConverterUInt32.write(value, buf) @staticmethod def read(buf): return FfiConverterUInt32.read(buf) @staticmethod def lift(value): return FfiConverterUInt32.lift(value) @staticmethod def lower(value): return FfiConverterUInt32.lower(value) class FfiConverterTypeAddress: @staticmethod def write(value, buf): FfiConverterString.write(value, buf) @staticmethod def read(buf): return FfiConverterString.read(buf) @staticmethod def lift(value): return FfiConverterString.lift(value) @staticmethod def lower(value): return FfiConverterString.lower(value) class FfiConverterTypeBigUint: @staticmethod def write(value, buf): FfiConverterString.write(value, buf) @staticmethod def read(buf): return FfiConverterString.read(buf) @staticmethod def lift(value): return FfiConverterString.lift(value) @staticmethod def lower(value): return FfiConverterString.lower(value) class FfiConverterTypeBlockNumber: @staticmethod def write(value, buf): FfiConverterUInt32.write(value, buf) @staticmethod def read(buf): return FfiConverterUInt32.read(buf) @staticmethod def lift(value): return FfiConverterUInt32.lift(value) @staticmethod def lower(value): return FfiConverterUInt32.lower(value) class FfiConverterTypeChainId: @staticmethod def write(value, buf): FfiConverterUInt8.write(value, buf) @staticmethod def read(buf): return FfiConverterUInt8.read(buf) @staticmethod def lift(value): return FfiConverterUInt8.lift(value) @staticmethod def lower(value): return FfiConverterUInt8.lower(value) class FfiConverterTypeEthBlockId: @staticmethod def write(value, buf): FfiConverterUInt64.write(value, buf) @staticmethod def read(buf): return FfiConverterUInt64.read(buf) @staticmethod def lift(value): return FfiConverterUInt64.lift(value) @staticmethod def lower(value): return FfiConverterUInt64.lower(value) class FfiConverterTypeH256: @staticmethod def write(value, buf): FfiConverterString.write(value, buf) @staticmethod def read(buf): return FfiConverterString.read(buf) @staticmethod def lift(value): return FfiConverterString.lift(value) @staticmethod def lower(value): return FfiConverterString.lower(value) class FfiConverterTypeMarginId: @staticmethod def write(value, buf): FfiConverterUInt8.write(value, buf) @staticmethod def read(buf): return FfiConverterUInt8.read(buf) @staticmethod def lift(value): return FfiConverterUInt8.lift(value) @staticmethod def lower(value): return FfiConverterUInt8.lower(value) class FfiConverterTypeNonce: @staticmethod def write(value, buf): FfiConverterUInt32.write(value, buf) @staticmethod def read(buf): return FfiConverterUInt32.read(buf) @staticmethod def lift(value): return FfiConverterUInt32.lift(value) @staticmethod def lower(value): return FfiConverterUInt32.lower(value) class FfiConverterTypePackedEthSignature: @staticmethod def write(value, buf): FfiConverterString.write(value, buf) @staticmethod def read(buf): return FfiConverterString.read(buf) @staticmethod def lift(value): return FfiConverterString.lift(value) @staticmethod def lower(value): return FfiConverterString.lower(value) class FfiConverterTypePackedPublicKey: @staticmethod def write(value, buf): FfiConverterString.write(value, buf) @staticmethod def read(buf): return FfiConverterString.read(buf) @staticmethod def lift(value): return FfiConverterString.lift(value) @staticmethod def lower(value): return FfiConverterString.lower(value) class FfiConverterTypePackedSignature: @staticmethod def write(value, buf): FfiConverterString.write(value, buf) @staticmethod def read(buf): return FfiConverterString.read(buf) @staticmethod def lift(value): return FfiConverterString.lift(value) @staticmethod def lower(value): return FfiConverterString.lower(value) class FfiConverterTypePairId: @staticmethod def write(value, buf): FfiConverterUInt16.write(value, buf) @staticmethod def read(buf): return FfiConverterUInt16.read(buf) @staticmethod def lift(value): return FfiConverterUInt16.lift(value) @staticmethod def lower(value): return FfiConverterUInt16.lower(value) class FfiConverterTypePriorityOpId: @staticmethod def write(value, buf): FfiConverterUInt64.write(value, buf) @staticmethod def read(buf): return FfiConverterUInt64.read(buf) @staticmethod def lift(value): return FfiConverterUInt64.lift(value) @staticmethod def lower(value): return FfiConverterUInt64.lower(value) class FfiConverterTypePubKeyHash: @staticmethod def write(value, buf): FfiConverterString.write(value, buf) @staticmethod def read(buf): return FfiConverterString.read(buf) @staticmethod def lift(value): return FfiConverterString.lift(value) @staticmethod def lower(value): return FfiConverterString.lower(value) class FfiConverterTypeSlotId: @staticmethod def write(value, buf): FfiConverterUInt32.write(value, buf) @staticmethod def read(buf): return FfiConverterUInt32.read(buf) @staticmethod def lift(value): return FfiConverterUInt32.lift(value) @staticmethod def lower(value): return FfiConverterUInt32.lower(value) class FfiConverterTypeStarkEip712Signature: @staticmethod def write(value, buf): FfiConverterString.write(value, buf) @staticmethod def read(buf): return FfiConverterString.read(buf) @staticmethod def lift(value): return FfiConverterString.lift(value) @staticmethod def lower(value): return FfiConverterString.lower(value) class FfiConverterTypeSubAccountId: @staticmethod def write(value, buf): FfiConverterUInt8.write(value, buf) @staticmethod def read(buf): return FfiConverterUInt8.read(buf) @staticmethod def lift(value): return FfiConverterUInt8.lift(value) @staticmethod def lower(value): return FfiConverterUInt8.lower(value) class FfiConverterTypeTimeStamp: @staticmethod def write(value, buf): FfiConverterUInt32.write(value, buf) @staticmethod def read(buf): return FfiConverterUInt32.read(buf) @staticmethod def lift(value): return FfiConverterUInt32.lift(value) @staticmethod def lower(value): return FfiConverterUInt32.lower(value) class FfiConverterTypeTokenId: @staticmethod def write(value, buf): FfiConverterUInt32.write(value, buf) @staticmethod def read(buf): return FfiConverterUInt32.read(buf) @staticmethod def lift(value): return FfiConverterUInt32.lift(value) @staticmethod def lower(value): return FfiConverterUInt32.lower(value) class FfiConverterTypeTxHash: @staticmethod def write(value, buf): FfiConverterString.write(value, buf) @staticmethod def read(buf): return FfiConverterString.read(buf) @staticmethod def lift(value): return FfiConverterString.lift(value) @staticmethod def lower(value): return FfiConverterString.lower(value) class FfiConverterTypeTxLayer1Signature: @staticmethod def write(value, buf): FfiConverterString.write(value, buf) @staticmethod def read(buf): return FfiConverterString.read(buf) @staticmethod def lift(value): return FfiConverterString.lift(value) @staticmethod def lower(value): return FfiConverterString.lower(value) class FfiConverterTypeZkLinkAddress: @staticmethod def write(value, buf): FfiConverterString.write(value, buf) @staticmethod def read(buf): return FfiConverterString.read(buf) @staticmethod def lift(value): return FfiConverterString.lift(value) @staticmethod def lower(value): return FfiConverterString.lower(value) class FfiConverterTypeZkLinkTx: @staticmethod def write(value, buf): FfiConverterString.write(value, buf) @staticmethod def read(buf): return FfiConverterString.read(buf) @staticmethod def lift(value): return FfiConverterString.lift(value) @staticmethod def lower(value): return FfiConverterString.lower(value) def verify_musig(signature,msg): signature = signature msg = list(int(x) for x in msg) return FfiConverterBool.lift(rust_call(_UniFFILib.zklink_sdk_f180_verify_musig, FfiConverterTypeZkLinkSignature.lower(signature), FfiConverterSequenceUInt8.lower(msg))) def get_public_key_hash(public_key): public_key = public_key return FfiConverterTypePubKeyHash.lift(rust_call(_UniFFILib.zklink_sdk_f180_get_public_key_hash, FfiConverterTypePackedPublicKey.lower(public_key))) def zklink_main_net_url(): return FfiConverterString.lift(rust_call(_UniFFILib.zklink_sdk_f180_zklink_main_net_url,)) def zklink_test_net_url(): return FfiConverterString.lift(rust_call(_UniFFILib.zklink_sdk_f180_zklink_test_net_url,)) def eth_signature_of_change_pubkey(tx,eth_signer): tx = tx eth_signer = eth_signer return FfiConverterTypePackedEthSignature.lift(rust_call_with_error(FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_eth_signature_of_change_pubkey, FfiConverterTypeChangePubKey.lower(tx), FfiConverterTypeEthSigner.lower(eth_signer))) def create_signed_change_pubkey(zklink_signer,tx,eth_auth_data): zklink_signer = zklink_signer tx = tx eth_auth_data = eth_auth_data return FfiConverterTypeChangePubKey.lift(rust_call_with_error(FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_create_signed_change_pubkey, FfiConverterTypeZkLinkSigner.lower(zklink_signer), FfiConverterTypeChangePubKey.lower(tx), FfiConverterTypeChangePubKeyAuthData.lower(eth_auth_data))) __all__ = [ "InternalError", "ChangePubKeyAuthData", "ChangePubKeyAuthRequest", "L1SignerType", "L1Type", "Parameter", "TypedDataMessage", "AutoDeleveragingBuilder", "ChangePubKeyBuilder", "ContractBuilder", "ContractMatchingBuilder", "ContractPrice", "Create2Data", "DepositBuilder", "ForcedExitBuilder", "FullExitBuilder", "FundingBuilder", "FundingInfo", "LiquidationBuilder", "Message", "OraclePrices", "OrderMatchingBuilder", "SpotPriceInfo", "TransferBuilder", "TxMessage", "TxSignature", "UpdateGlobalVarBuilder", "WithdrawBuilder", "ZkLinkSignature", "verify_musig", "get_public_key_hash", "zklink_main_net_url", "zklink_test_net_url", "eth_signature_of_change_pubkey", "create_signed_change_pubkey", "Deposit", "Withdraw", "ChangePubKey", "ForcedExit", "FullExit", "Transfer", "Order", "OrderMatching", "Contract", "AutoDeleveraging", "ContractMatching", "Funding", "Liquidation", "UpdateGlobalVar", "EthSigner", "TypedData", "StarkSigner", "ZkLinkSigner", "Signer", "EthSignerError", "SignError", "StarkSignerError", "TypeError", "ZkSignerError", ] ================================================ FILE: jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk.py ================================================ # This file was autogenerated by some hot garbage in the `uniffi` crate. # Trust me, you don't want to mess with it! # Common helper code. # # Ideally this would live in a separate .py file where it can be unittested etc # in isolation, and perhaps even published as a re-useable package. # # However, it's important that the details of how this helper code works (e.g. the # way that different builtin types are passed across the FFI) exactly match what's # expected by the rust code on the other side of the interface. In practice right # now that means coming from the exact some version of `uniffi` that was used to # compile the rust component. The easiest way to ensure this is to bundle the Python # helpers directly inline like we're doing here. import os import sys import ctypes import enum import struct import contextlib import threading import typing import platform # Used for default argument values _DEFAULT = object() class _UniffiRustBuffer(ctypes.Structure): _fields_ = [ ("capacity", ctypes.c_int32), ("len", ctypes.c_int32), ("data", ctypes.POINTER(ctypes.c_char)), ] @staticmethod def alloc(size): return _rust_call(_UniffiLib.ffi_zklink_sdk_rustbuffer_alloc, size) @staticmethod def reserve(rbuf, additional): return _rust_call(_UniffiLib.ffi_zklink_sdk_rustbuffer_reserve, rbuf, additional) def free(self): return _rust_call(_UniffiLib.ffi_zklink_sdk_rustbuffer_free, self) def __str__(self): return "_UniffiRustBuffer(capacity={}, len={}, data={})".format( self.capacity, self.len, self.data[0:self.len] ) @contextlib.contextmanager def alloc_with_builder(*args): """Context-manger to allocate a buffer using a _UniffiRustBufferBuilder. The allocated buffer will be automatically freed if an error occurs, ensuring that we don't accidentally leak it. """ builder = _UniffiRustBufferBuilder() try: yield builder except: builder.discard() raise @contextlib.contextmanager def consume_with_stream(self): """Context-manager to consume a buffer using a _UniffiRustBufferStream. The _UniffiRustBuffer will be freed once the context-manager exits, ensuring that we don't leak it even if an error occurs. """ try: s = _UniffiRustBufferStream.from_rust_buffer(self) yield s if s.remaining() != 0: raise RuntimeError("junk data left in buffer at end of consume_with_stream") finally: self.free() @contextlib.contextmanager def read_with_stream(self): """Context-manager to read a buffer using a _UniffiRustBufferStream. This is like consume_with_stream, but doesn't free the buffer afterwards. It should only be used with borrowed `_UniffiRustBuffer` data. """ s = _UniffiRustBufferStream.from_rust_buffer(self) yield s if s.remaining() != 0: raise RuntimeError("junk data left in buffer at end of read_with_stream") class _UniffiForeignBytes(ctypes.Structure): _fields_ = [ ("len", ctypes.c_int32), ("data", ctypes.POINTER(ctypes.c_char)), ] def __str__(self): return "_UniffiForeignBytes(len={}, data={})".format(self.len, self.data[0:self.len]) class _UniffiRustBufferStream: """ Helper for structured reading of bytes from a _UniffiRustBuffer """ def __init__(self, data, len): self.data = data self.len = len self.offset = 0 @classmethod def from_rust_buffer(cls, buf): return cls(buf.data, buf.len) def remaining(self): return self.len - self.offset def _unpack_from(self, size, format): if self.offset + size > self.len: raise InternalError("read past end of rust buffer") value = struct.unpack(format, self.data[self.offset:self.offset+size])[0] self.offset += size return value def read(self, size): if self.offset + size > self.len: raise InternalError("read past end of rust buffer") data = self.data[self.offset:self.offset+size] self.offset += size return data def read_i8(self): return self._unpack_from(1, ">b") def read_u8(self): return self._unpack_from(1, ">B") def read_i16(self): return self._unpack_from(2, ">h") def read_u16(self): return self._unpack_from(2, ">H") def read_i32(self): return self._unpack_from(4, ">i") def read_u32(self): return self._unpack_from(4, ">I") def read_i64(self): return self._unpack_from(8, ">q") def read_u64(self): return self._unpack_from(8, ">Q") def read_float(self): v = self._unpack_from(4, ">f") return v def read_double(self): return self._unpack_from(8, ">d") def read_c_size_t(self): return self._unpack_from(ctypes.sizeof(ctypes.c_size_t) , "@N") class _UniffiRustBufferBuilder: """ Helper for structured writing of bytes into a _UniffiRustBuffer. """ def __init__(self): self.rbuf = _UniffiRustBuffer.alloc(16) self.rbuf.len = 0 def finalize(self): rbuf = self.rbuf self.rbuf = None return rbuf def discard(self): if self.rbuf is not None: rbuf = self.finalize() rbuf.free() @contextlib.contextmanager def _reserve(self, num_bytes): if self.rbuf.len + num_bytes > self.rbuf.capacity: self.rbuf = _UniffiRustBuffer.reserve(self.rbuf, num_bytes) yield None self.rbuf.len += num_bytes def _pack_into(self, size, format, value): with self._reserve(size): # XXX TODO: I feel like I should be able to use `struct.pack_into` here but can't figure it out. for i, byte in enumerate(struct.pack(format, value)): self.rbuf.data[self.rbuf.len + i] = byte def write(self, value): with self._reserve(len(value)): for i, byte in enumerate(value): self.rbuf.data[self.rbuf.len + i] = byte def write_i8(self, v): self._pack_into(1, ">b", v) def write_u8(self, v): self._pack_into(1, ">B", v) def write_i16(self, v): self._pack_into(2, ">h", v) def write_u16(self, v): self._pack_into(2, ">H", v) def write_i32(self, v): self._pack_into(4, ">i", v) def write_u32(self, v): self._pack_into(4, ">I", v) def write_i64(self, v): self._pack_into(8, ">q", v) def write_u64(self, v): self._pack_into(8, ">Q", v) def write_float(self, v): self._pack_into(4, ">f", v) def write_double(self, v): self._pack_into(8, ">d", v) def write_c_size_t(self, v): self._pack_into(ctypes.sizeof(ctypes.c_size_t) , "@N", v) # A handful of classes and functions to support the generated data structures. # This would be a good candidate for isolating in its own ffi-support lib. class InternalError(Exception): pass class _UniffiRustCallStatus(ctypes.Structure): """ Error runtime. """ _fields_ = [ ("code", ctypes.c_int8), ("error_buf", _UniffiRustBuffer), ] # These match the values from the uniffi::rustcalls module CALL_SUCCESS = 0 CALL_ERROR = 1 CALL_PANIC = 2 def __str__(self): if self.code == _UniffiRustCallStatus.CALL_SUCCESS: return "_UniffiRustCallStatus(CALL_SUCCESS)" elif self.code == _UniffiRustCallStatus.CALL_ERROR: return "_UniffiRustCallStatus(CALL_ERROR)" elif self.code == _UniffiRustCallStatus.CALL_PANIC: return "_UniffiRustCallStatus(CALL_PANIC)" else: return "_UniffiRustCallStatus()" def _rust_call(fn, *args): # Call a rust function return _rust_call_with_error(None, fn, *args) def _rust_call_with_error(error_ffi_converter, fn, *args): # Call a rust function and handle any errors # # This function is used for rust calls that return Result<> and therefore can set the CALL_ERROR status code. # error_ffi_converter must be set to the _UniffiConverter for the error class that corresponds to the result. call_status = _UniffiRustCallStatus(code=_UniffiRustCallStatus.CALL_SUCCESS, error_buf=_UniffiRustBuffer(0, 0, None)) args_with_error = args + (ctypes.byref(call_status),) result = fn(*args_with_error) _uniffi_check_call_status(error_ffi_converter, call_status) return result def _uniffi_check_call_status(error_ffi_converter, call_status): if call_status.code == _UniffiRustCallStatus.CALL_SUCCESS: pass elif call_status.code == _UniffiRustCallStatus.CALL_ERROR: if error_ffi_converter is None: call_status.error_buf.free() raise InternalError("_rust_call_with_error: CALL_ERROR, but error_ffi_converter is None") else: raise error_ffi_converter.lift(call_status.error_buf) elif call_status.code == _UniffiRustCallStatus.CALL_PANIC: # When the rust code sees a panic, it tries to construct a _UniffiRustBuffer # with the message. But if that code panics, then it just sends back # an empty buffer. if call_status.error_buf.len > 0: msg = _UniffiConverterString.lift(call_status.error_buf) else: msg = "Unknown rust panic" raise InternalError(msg) else: raise InternalError("Invalid _UniffiRustCallStatus code: {}".format( call_status.code)) # A function pointer for a callback as defined by UniFFI. # Rust definition `fn(handle: u64, method: u32, args: _UniffiRustBuffer, buf_ptr: *mut _UniffiRustBuffer) -> int` _UNIFFI_FOREIGN_CALLBACK_T = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.c_ulonglong, ctypes.c_ulong, ctypes.POINTER(ctypes.c_char), ctypes.c_int, ctypes.POINTER(_UniffiRustBuffer)) # UniFFI future continuation _UNIFFI_FUTURE_CONTINUATION_T = ctypes.CFUNCTYPE(None, ctypes.c_size_t, ctypes.c_int8) class _UniffiPointerManagerCPython: """ Manage giving out pointers to Python objects on CPython This class is used to generate opaque pointers that reference Python objects to pass to Rust. It assumes a CPython platform. See _UniffiPointerManagerGeneral for the alternative. """ def new_pointer(self, obj): """ Get a pointer for an object as a ctypes.c_size_t instance Each call to new_pointer() must be balanced with exactly one call to release_pointer() This returns a ctypes.c_size_t. This is always the same size as a pointer and can be interchanged with pointers for FFI function arguments and return values. """ # IncRef the object since we're going to pass a pointer to Rust ctypes.pythonapi.Py_IncRef(ctypes.py_object(obj)) # id() is the object address on CPython # (https://docs.python.org/3/library/functions.html#id) return id(obj) def release_pointer(self, address): py_obj = ctypes.cast(address, ctypes.py_object) obj = py_obj.value ctypes.pythonapi.Py_DecRef(py_obj) return obj def lookup(self, address): return ctypes.cast(address, ctypes.py_object).value class _UniffiPointerManagerGeneral: """ Manage giving out pointers to Python objects on non-CPython platforms This has the same API as _UniffiPointerManagerCPython, but doesn't assume we're running on CPython and is slightly slower. Instead of using real pointers, it maps integer values to objects and returns the keys as c_size_t values. """ def __init__(self): self._map = {} self._lock = threading.Lock() self._current_handle = 0 def new_pointer(self, obj): with self._lock: handle = self._current_handle self._current_handle += 1 self._map[handle] = obj return handle def release_pointer(self, handle): with self._lock: return self._map.pop(handle) def lookup(self, handle): with self._lock: return self._map[handle] # Pick an pointer manager implementation based on the platform if platform.python_implementation() == 'CPython': _UniffiPointerManager = _UniffiPointerManagerCPython # type: ignore else: _UniffiPointerManager = _UniffiPointerManagerGeneral # type: ignore # Types conforming to `_UniffiConverterPrimitive` pass themselves directly over the FFI. class _UniffiConverterPrimitive: @classmethod def check(cls, value): return value @classmethod def lift(cls, value): return value @classmethod def lower(cls, value): return cls.lowerUnchecked(cls.check(value)) @classmethod def lowerUnchecked(cls, value): return value @classmethod def write(cls, value, buf): cls.write_unchecked(cls.check(value), buf) class _UniffiConverterPrimitiveInt(_UniffiConverterPrimitive): @classmethod def check(cls, value): try: value = value.__index__() except Exception: raise TypeError("'{}' object cannot be interpreted as an integer".format(type(value).__name__)) if not isinstance(value, int): raise TypeError("__index__ returned non-int (type {})".format(type(value).__name__)) if not cls.VALUE_MIN <= value < cls.VALUE_MAX: raise ValueError("{} requires {} <= value < {}".format(cls.CLASS_NAME, cls.VALUE_MIN, cls.VALUE_MAX)) return super().check(value) class _UniffiConverterPrimitiveFloat(_UniffiConverterPrimitive): @classmethod def check(cls, value): try: value = value.__float__() except Exception: raise TypeError("must be real number, not {}".format(type(value).__name__)) if not isinstance(value, float): raise TypeError("__float__ returned non-float (type {})".format(type(value).__name__)) return super().check(value) # Helper class for wrapper types that will always go through a _UniffiRustBuffer. # Classes should inherit from this and implement the `read` and `write` static methods. class _UniffiConverterRustBuffer: @classmethod def lift(cls, rbuf): with rbuf.consume_with_stream() as stream: return cls.read(stream) @classmethod def lower(cls, value): with _UniffiRustBuffer.alloc_with_builder() as builder: cls.write(value, builder) return builder.finalize() # Contains loading, initialization code, and the FFI Function declarations. # Define some ctypes FFI types that we use in the library """ ctypes type for the foreign executor callback. This is a built-in interface for scheduling tasks Args: executor: opaque c_size_t value representing the eventloop delay: delay in ms task: function pointer to the task callback task_data: void pointer to the task callback data Normally we should call task(task_data) after the detail. However, when task is NULL this indicates that Rust has dropped the ForeignExecutor and we should decrease the EventLoop refcount. """ _UNIFFI_FOREIGN_EXECUTOR_CALLBACK_T = ctypes.CFUNCTYPE(ctypes.c_int8, ctypes.c_size_t, ctypes.c_uint32, ctypes.c_void_p, ctypes.c_void_p) """ Function pointer for a Rust task, which a callback function that takes a opaque pointer """ _UNIFFI_RUST_TASK = ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.c_int8) def _uniffi_future_callback_t(return_type): """ Factory function to create callback function types for async functions """ return ctypes.CFUNCTYPE(None, ctypes.c_size_t, return_type, _UniffiRustCallStatus) def _uniffi_load_indirect(): """ This is how we find and load the dynamic library provided by the component. For now we just look it up by name. """ if sys.platform == "darwin": libname = "lib{}.dylib" elif sys.platform.startswith("win"): # As of python3.8, ctypes does not seem to search $PATH when loading DLLs. # We could use `os.add_dll_directory` to configure the search path, but # it doesn't feel right to mess with application-wide settings. Let's # assume that the `.dll` is next to the `.py` file and load by full path. libname = os.path.join( os.path.dirname(__file__), "{}.dll", ) else: # Anything else must be an ELF platform - Linux, *BSD, Solaris/illumos libname = "lib{}.so" libname = libname.format("zklink_sdk") path = os.path.join(os.path.dirname(__file__), libname) lib = ctypes.cdll.LoadLibrary(path) return lib def _uniffi_check_contract_api_version(lib): # Get the bindings contract version from our ComponentInterface bindings_contract_version = 24 # Get the scaffolding contract version by calling the into the dylib scaffolding_contract_version = lib.ffi_zklink_sdk_uniffi_contract_version() if bindings_contract_version != scaffolding_contract_version: raise InternalError("UniFFI contract version mismatch: try cleaning and rebuilding your project") def _uniffi_check_api_checksums(lib): if lib.uniffi_zklink_sdk_checksum_func_create_signed_change_pubkey() != 63374: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_func_eth_signature_of_change_pubkey() != 32759: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_func_get_public_key_hash() != 58294: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_func_verify_musig() != 61749: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_func_zklink_main_net_url() != 63488: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_func_zklink_test_net_url() != 4933: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_create_signed_tx() != 63490: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_bytes() != 44684: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_signature() != 16515: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_signature_valid() != 2829: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_valid() != 32196: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_json_str() != 3439: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_to_zklink_tx() != 64239: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_tx_hash() != 35167: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_get_bytes() != 1938: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_get_signature() != 51549: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_is_onchain() != 10977: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_is_signature_valid() != 25271: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_is_valid() != 31315: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_json_str() != 43695: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_to_zklink_tx() != 42088: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_changepubkey_tx_hash() != 26881: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contract_create_signed_contract() != 3720: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contract_get_bytes() != 6953: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contract_get_signature() != 60348: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contract_is_long() != 52375: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contract_is_short() != 24664: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contract_is_signature_valid() != 33071: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_create_signed_tx() != 44741: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_get_bytes() != 12250: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_get_signature() != 41128: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_is_signature_valid() != 33576: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_is_valid() != 55586: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_json_str() != 42918: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_to_zklink_tx() != 43065: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_contractmatching_tx_hash() != 3288: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_deposit_get_bytes() != 46958: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_deposit_json_str() != 17811: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_deposit_tx_hash() != 37358: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ethsigner_get_address() != 11362: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ethsigner_sign_message() != 14536: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_create_signed_tx() != 17267: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_get_bytes() != 15553: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_get_signature() != 48117: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_is_signature_valid() != 6534: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_is_valid() != 46100: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_json_str() != 4050: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_to_zklink_tx() != 32455: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_forcedexit_tx_hash() != 45462: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_fullexit_get_bytes() != 52461: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_fullexit_is_valid() != 57198: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_fullexit_json_str() != 24199: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_fullexit_to_zklink_tx() != 51607: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_fullexit_tx_hash() != 48511: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_create_signed_tx() != 38824: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_get_bytes() != 63867: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_get_signature() != 29468: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_is_signature_valid() != 50669: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_is_valid() != 4189: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_json_str() != 55097: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_to_zklink_tx() != 27295: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_funding_tx_hash() != 26610: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_create_signed_tx() != 18143: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_get_bytes() != 1134: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_get_signature() != 31505: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_is_signature_valid() != 8478: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_is_valid() != 2828: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_json_str() != 62587: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_to_zklink_tx() != 30414: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_liquidation_tx_hash() != 34918: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_create_signed_order() != 18530: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_get_bytes() != 51161: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_get_eth_sign_msg() != 11725: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_get_signature() != 46876: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_is_signature_valid() != 6764: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_is_valid() != 56951: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_order_json_str() != 20284: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_create_signed_tx() != 27728: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_get_bytes() != 13177: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_get_signature() != 35878: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_is_signature_valid() != 54946: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_is_valid() != 51995: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_json_str() != 33830: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_to_zklink_tx() != 23870: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_ordermatching_tx_hash() != 3162: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_auto_deleveraging() != 3485: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_create2data_auth() != 39808: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_eth_ecdsa_auth() != 63567: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_onchain_auth_data() != 26921: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_contract_matching() != 27932: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_forced_exit() != 37862: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_funding() != 31213: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_liquidation() != 56257: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_order_matching() != 19982: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_transfer() != 51577: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_signer_sign_withdraw() != 56851: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_starksigner_sign_message() != 27027: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_create_signed_tx() != 17446: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_eth_signature() != 18454: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_get_bytes() != 56287: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_get_eth_sign_msg() != 46393: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_get_signature() != 55226: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_is_signature_valid() != 31540: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_is_valid() != 46475: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_json_str() != 28252: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_to_zklink_tx() != 64899: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_transfer_tx_hash() != 16259: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_get_bytes() != 40576: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_is_valid() != 7961: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_json_str() != 48653: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_to_zklink_tx() != 40091: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_tx_hash() != 4261: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_create_signed_tx() != 15886: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_eth_signature() != 28825: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_get_bytes() != 15999: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_get_eth_sign_msg() != 27813: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_get_signature() != 56920: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_is_signature_valid() != 9636: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_is_valid() != 32004: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_json_str() != 3719: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_to_zklink_tx() != 26934: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_withdraw_tx_hash() != 25800: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_zklinksigner_public_key() != 11211: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_method_zklinksigner_sign_musig() != 46475: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_autodeleveraging_new() != 10122: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_changepubkey_new() != 10607: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_contract_new() != 32968: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_contractmatching_new() != 210: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_deposit_new() != 2732: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_ethsigner_new() != 58738: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_forcedexit_new() != 30328: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_fullexit_new() != 27234: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_funding_new() != 62515: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_liquidation_new() != 56634: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_order_new() != 13958: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_ordermatching_new() != 5934: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_signer_new() != 24354: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_starksigner_new() != 61581: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_starksigner_new_from_hex_str() != 57960: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_transfer_new() != 31981: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_typeddata_new() != 46773: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_updateglobalvar_new() != 31819: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_withdraw_new() != 47491: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new() != 62411: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_bytes() != 17619: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_eth_signer() != 60210: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_stark_signer() != 21809: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_seed() != 47514: raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") # A ctypes library to expose the extern-C FFI definitions. # This is an implementation detail which will be called internally by the public API. _UniffiLib = _uniffi_load_indirect() _UniffiLib.uniffi_zklink_sdk_fn_free_autodeleveraging.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_autodeleveraging.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_autodeleveraging_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_autodeleveraging_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_changepubkey.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_changepubkey.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_changepubkey_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_changepubkey_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_onchain.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_onchain.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_contract.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_contract.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_contract_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_contract_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_contract_create_signed_contract.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contract_create_signed_contract.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_long.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_long.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_short.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_short.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_free_contractmatching.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_contractmatching.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_contractmatching_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_contractmatching_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_deposit.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_deposit.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_deposit_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_deposit_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_deposit_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_deposit_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_deposit_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_deposit_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_deposit_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_deposit_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_ethsigner.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_ethsigner.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_ethsigner_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_ethsigner_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_get_address.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_get_address.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_sign_message.argtypes = ( ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_sign_message.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_forcedexit.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_forcedexit.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_forcedexit_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_forcedexit_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_fullexit.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_fullexit.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_fullexit_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_fullexit_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_funding.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_funding.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_funding_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_funding_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_funding_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_funding_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_funding_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_funding_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_funding_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_liquidation.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_liquidation.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_liquidation_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_liquidation_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_order.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_order.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_order_new.argtypes = ( ctypes.c_uint32, ctypes.c_uint8, ctypes.c_uint32, ctypes.c_uint32, ctypes.c_uint32, ctypes.c_uint32, _UniffiRustBuffer, _UniffiRustBuffer, ctypes.c_int8, ctypes.c_int8, ctypes.c_uint8, ctypes.c_uint8, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_order_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_order_create_signed_order.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_create_signed_order.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_order_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_order_get_eth_sign_msg.argtypes = ( ctypes.c_void_p, _UniffiRustBuffer, _UniffiRustBuffer, ctypes.c_uint8, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_get_eth_sign_msg.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_order_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_order_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_order_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_order_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_order_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_ordermatching.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_ordermatching.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_ordermatching_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_ordermatching_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_signer.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_signer.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_signer_new.argtypes = ( _UniffiRustBuffer, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_signer_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_auto_deleveraging.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_auto_deleveraging.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_create2data_auth.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_create2data_auth.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_onchain_auth_data.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_onchain_auth_data.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_contract_matching.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_contract_matching.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_forced_exit.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_forced_exit.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_funding.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_funding.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_liquidation.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_liquidation.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_order_matching.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_order_matching.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_transfer.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, _UniffiRustBuffer, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_transfer.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_withdraw.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, _UniffiRustBuffer, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_withdraw.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_starksigner.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_starksigner.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new.argtypes = ( ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new_from_hex_str.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new_from_hex_str.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_starksigner_sign_message.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_starksigner_sign_message.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_transfer.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_transfer.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_transfer_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_transfer_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_eth_signature.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_eth_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_eth_sign_msg.argtypes = ( ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_eth_sign_msg.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_transfer_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_typeddata.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_typeddata.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_typeddata_new.argtypes = ( _UniffiRustBuffer, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_typeddata_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_free_updateglobalvar.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_updateglobalvar.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_updateglobalvar_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_updateglobalvar_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_withdraw.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_withdraw.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_withdraw_new.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_withdraw_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_create_signed_tx.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_create_signed_tx.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_eth_signature.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_eth_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_bytes.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_bytes.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_eth_sign_msg.argtypes = ( ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_eth_sign_msg.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_signature.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_signature.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_signature_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_signature_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_valid.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_valid.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_json_str.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_json_str.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_to_zklink_tx.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_to_zklink_tx.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_tx_hash.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_tx_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_free_zklinksigner.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_free_zklinksigner.restype = None _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new.argtypes = ( ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_bytes.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_bytes.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_eth_signer.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_eth_signer.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_stark_signer.argtypes = ( _UniffiRustBuffer, _UniffiRustBuffer, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_stark_signer.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_seed.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_seed.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_public_key.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_public_key.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_sign_musig.argtypes = ( ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_sign_musig.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_func_create_signed_change_pubkey.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_create_signed_change_pubkey.restype = ctypes.c_void_p _UniffiLib.uniffi_zklink_sdk_fn_func_eth_signature_of_change_pubkey.argtypes = ( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_eth_signature_of_change_pubkey.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_func_get_public_key_hash.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_get_public_key_hash.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_func_verify_musig.argtypes = ( _UniffiRustBuffer, _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_verify_musig.restype = ctypes.c_int8 _UniffiLib.uniffi_zklink_sdk_fn_func_zklink_main_net_url.argtypes = ( ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_zklink_main_net_url.restype = _UniffiRustBuffer _UniffiLib.uniffi_zklink_sdk_fn_func_zklink_test_net_url.argtypes = ( ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.uniffi_zklink_sdk_fn_func_zklink_test_net_url.restype = _UniffiRustBuffer _UniffiLib.ffi_zklink_sdk_rustbuffer_alloc.argtypes = ( ctypes.c_int32, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rustbuffer_alloc.restype = _UniffiRustBuffer _UniffiLib.ffi_zklink_sdk_rustbuffer_from_bytes.argtypes = ( _UniffiForeignBytes, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rustbuffer_from_bytes.restype = _UniffiRustBuffer _UniffiLib.ffi_zklink_sdk_rustbuffer_free.argtypes = ( _UniffiRustBuffer, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rustbuffer_free.restype = None _UniffiLib.ffi_zklink_sdk_rustbuffer_reserve.argtypes = ( _UniffiRustBuffer, ctypes.c_int32, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rustbuffer_reserve.restype = _UniffiRustBuffer _UniffiLib.ffi_zklink_sdk_rust_future_continuation_callback_set.argtypes = ( _UNIFFI_FUTURE_CONTINUATION_T, ) _UniffiLib.ffi_zklink_sdk_rust_future_continuation_callback_set.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_poll_u8.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_u8.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u8.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u8.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_u8.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_u8.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_u8.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_u8.restype = ctypes.c_uint8 _UniffiLib.ffi_zklink_sdk_rust_future_poll_i8.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_i8.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i8.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i8.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_i8.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_i8.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_i8.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_i8.restype = ctypes.c_int8 _UniffiLib.ffi_zklink_sdk_rust_future_poll_u16.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_u16.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u16.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u16.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_u16.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_u16.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_u16.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_u16.restype = ctypes.c_uint16 _UniffiLib.ffi_zklink_sdk_rust_future_poll_i16.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_i16.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i16.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i16.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_i16.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_i16.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_i16.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_i16.restype = ctypes.c_int16 _UniffiLib.ffi_zklink_sdk_rust_future_poll_u32.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_u32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u32.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_u32.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_u32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_u32.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_u32.restype = ctypes.c_uint32 _UniffiLib.ffi_zklink_sdk_rust_future_poll_i32.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_i32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i32.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_i32.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_i32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_i32.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_i32.restype = ctypes.c_int32 _UniffiLib.ffi_zklink_sdk_rust_future_poll_u64.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_u64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u64.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_u64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_u64.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_u64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_u64.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_u64.restype = ctypes.c_uint64 _UniffiLib.ffi_zklink_sdk_rust_future_poll_i64.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_i64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i64.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_i64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_i64.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_i64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_i64.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_i64.restype = ctypes.c_int64 _UniffiLib.ffi_zklink_sdk_rust_future_poll_f32.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_f32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_f32.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_f32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_f32.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_f32.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_f32.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_f32.restype = ctypes.c_float _UniffiLib.ffi_zklink_sdk_rust_future_poll_f64.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_f64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_f64.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_f64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_f64.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_f64.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_f64.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_f64.restype = ctypes.c_double _UniffiLib.ffi_zklink_sdk_rust_future_poll_pointer.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_pointer.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_pointer.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_pointer.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_pointer.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_pointer.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_pointer.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_pointer.restype = ctypes.c_void_p _UniffiLib.ffi_zklink_sdk_rust_future_poll_rust_buffer.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_rust_buffer.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_rust_buffer.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_rust_buffer.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_rust_buffer.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_rust_buffer.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_rust_buffer.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_rust_buffer.restype = _UniffiRustBuffer _UniffiLib.ffi_zklink_sdk_rust_future_poll_void.argtypes = ( ctypes.c_void_p, ctypes.c_size_t, ) _UniffiLib.ffi_zklink_sdk_rust_future_poll_void.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_cancel_void.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_cancel_void.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_free_void.argtypes = ( ctypes.c_void_p, ) _UniffiLib.ffi_zklink_sdk_rust_future_free_void.restype = None _UniffiLib.ffi_zklink_sdk_rust_future_complete_void.argtypes = ( ctypes.c_void_p, ctypes.POINTER(_UniffiRustCallStatus), ) _UniffiLib.ffi_zklink_sdk_rust_future_complete_void.restype = None _UniffiLib.uniffi_zklink_sdk_checksum_func_create_signed_change_pubkey.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_create_signed_change_pubkey.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_func_eth_signature_of_change_pubkey.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_eth_signature_of_change_pubkey.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_func_get_public_key_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_get_public_key_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_func_verify_musig.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_verify_musig.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_main_net_url.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_main_net_url.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_test_net_url.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_test_net_url.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_onchain.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_onchain.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_create_signed_contract.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_create_signed_contract.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_long.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_long.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_short.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_short.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_get_address.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_get_address.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_sign_message.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_sign_message.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_funding_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_create_signed_order.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_create_signed_order.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_eth_sign_msg.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_eth_sign_msg.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_order_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_order_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_auto_deleveraging.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_auto_deleveraging.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_create2data_auth.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_create2data_auth.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_onchain_auth_data.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_onchain_auth_data.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_contract_matching.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_contract_matching.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_forced_exit.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_forced_exit.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_funding.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_funding.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_liquidation.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_liquidation.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_order_matching.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_order_matching.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_transfer.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_transfer.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_withdraw.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_withdraw.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_starksigner_sign_message.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_starksigner_sign_message.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_eth_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_eth_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_eth_sign_msg.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_eth_sign_msg.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_create_signed_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_create_signed_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_eth_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_eth_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_eth_sign_msg.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_eth_sign_msg.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_signature.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_signature.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_signature_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_signature_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_valid.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_valid.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_json_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_json_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_to_zklink_tx.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_to_zklink_tx.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_tx_hash.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_tx_hash.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_public_key.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_public_key.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_sign_musig.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_sign_musig.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_autodeleveraging_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_autodeleveraging_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_changepubkey_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_changepubkey_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_contract_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_contract_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_contractmatching_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_contractmatching_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_deposit_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_deposit_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_ethsigner_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_ethsigner_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_forcedexit_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_forcedexit_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_fullexit_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_fullexit_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_funding_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_funding_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_liquidation_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_liquidation_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_order_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_order_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_ordermatching_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_ordermatching_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_signer_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_signer_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new_from_hex_str.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new_from_hex_str.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_transfer_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_transfer_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_typeddata_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_typeddata_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_updateglobalvar_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_updateglobalvar_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_withdraw_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_withdraw_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_bytes.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_bytes.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_eth_signer.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_eth_signer.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_stark_signer.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_stark_signer.restype = ctypes.c_uint16 _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_seed.argtypes = ( ) _UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_seed.restype = ctypes.c_uint16 _UniffiLib.ffi_zklink_sdk_uniffi_contract_version.argtypes = ( ) _UniffiLib.ffi_zklink_sdk_uniffi_contract_version.restype = ctypes.c_uint32 _uniffi_check_contract_api_version(_UniffiLib) _uniffi_check_api_checksums(_UniffiLib) # Async support # Public interface members begin here. class _UniffiConverterUInt8(_UniffiConverterPrimitiveInt): CLASS_NAME = "u8" VALUE_MIN = 0 VALUE_MAX = 2**8 @staticmethod def read(buf): return buf.read_u8() @staticmethod def write_unchecked(value, buf): buf.write_u8(value) class _UniffiConverterUInt16(_UniffiConverterPrimitiveInt): CLASS_NAME = "u16" VALUE_MIN = 0 VALUE_MAX = 2**16 @staticmethod def read(buf): return buf.read_u16() @staticmethod def write_unchecked(value, buf): buf.write_u16(value) class _UniffiConverterInt16(_UniffiConverterPrimitiveInt): CLASS_NAME = "i16" VALUE_MIN = -2**15 VALUE_MAX = 2**15 @staticmethod def read(buf): return buf.read_i16() @staticmethod def write_unchecked(value, buf): buf.write_i16(value) class _UniffiConverterUInt32(_UniffiConverterPrimitiveInt): CLASS_NAME = "u32" VALUE_MIN = 0 VALUE_MAX = 2**32 @staticmethod def read(buf): return buf.read_u32() @staticmethod def write_unchecked(value, buf): buf.write_u32(value) class _UniffiConverterUInt64(_UniffiConverterPrimitiveInt): CLASS_NAME = "u64" VALUE_MIN = 0 VALUE_MAX = 2**64 @staticmethod def read(buf): return buf.read_u64() @staticmethod def write_unchecked(value, buf): buf.write_u64(value) class _UniffiConverterBool(_UniffiConverterPrimitive): @classmethod def check(cls, value): return not not value @classmethod def read(cls, buf): return cls.lift(buf.read_u8()) @classmethod def write_unchecked(cls, value, buf): buf.write_u8(value) @staticmethod def lift(value): return value != 0 class _UniffiConverterString: @staticmethod def check(value): if not isinstance(value, str): raise TypeError("argument must be str, not {}".format(type(value).__name__)) return value @staticmethod def read(buf): size = buf.read_i32() if size < 0: raise InternalError("Unexpected negative string length") utf8_bytes = buf.read(size) return utf8_bytes.decode("utf-8") @staticmethod def write(value, buf): value = _UniffiConverterString.check(value) utf8_bytes = value.encode("utf-8") buf.write_i32(len(utf8_bytes)) buf.write(utf8_bytes) @staticmethod def lift(buf): with buf.consume_with_stream() as stream: return stream.read(stream.remaining()).decode("utf-8") @staticmethod def lower(value): value = _UniffiConverterString.check(value) with _UniffiRustBuffer.alloc_with_builder() as builder: builder.write(value.encode("utf-8")) return builder.finalize() class AutoDeleveraging: _pointer: ctypes.c_void_p def __init__(self, builder: "AutoDeleveragingBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_autodeleveraging_new, _UniffiConverterTypeAutoDeleveragingBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_autodeleveraging, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "AutoDeleveraging": return _UniffiConverterTypeAutoDeleveraging.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_signature,self._pointer,) ) def is_signature_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_signature_valid,self._pointer,) ) def is_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_tx_hash,self._pointer,) ) class _UniffiConverterTypeAutoDeleveraging: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, AutoDeleveraging): raise TypeError("Expected AutoDeleveraging instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return AutoDeleveraging._make_instance_(value) @staticmethod def lower(value): return value._pointer class ChangePubKey: _pointer: ctypes.c_void_p def __init__(self, builder: "ChangePubKeyBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_changepubkey_new, _UniffiConverterTypeChangePubKeyBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_changepubkey, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_signature,self._pointer,) ) def is_onchain(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_onchain,self._pointer,) ) def is_signature_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_signature_valid,self._pointer,) ) def is_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_tx_hash,self._pointer,) ) class _UniffiConverterTypeChangePubKey: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, ChangePubKey): raise TypeError("Expected ChangePubKey instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return ChangePubKey._make_instance_(value) @staticmethod def lower(value): return value._pointer class Contract: _pointer: ctypes.c_void_p def __init__(self, builder: "ContractBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_contract_new, _UniffiConverterTypeContractBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_contract, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_contract(self, zklink_signer: "ZkLinkSigner") -> "Contract": return _UniffiConverterTypeContract.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_contract_create_signed_contract,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(zklink_signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_signature,self._pointer,) ) def is_long(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_long,self._pointer,) ) def is_short(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_short,self._pointer,) ) def is_signature_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_signature_valid,self._pointer,) ) class _UniffiConverterTypeContract: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Contract): raise TypeError("Expected Contract instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Contract._make_instance_(value) @staticmethod def lower(value): return value._pointer class ContractMatching: _pointer: ctypes.c_void_p def __init__(self, builder: "ContractMatchingBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_contractmatching_new, _UniffiConverterTypeContractMatchingBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_contractmatching, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "ContractMatching": return _UniffiConverterTypeContractMatching.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_signature,self._pointer,) ) def is_signature_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_signature_valid,self._pointer,) ) def is_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_tx_hash,self._pointer,) ) class _UniffiConverterTypeContractMatching: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, ContractMatching): raise TypeError("Expected ContractMatching instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return ContractMatching._make_instance_(value) @staticmethod def lower(value): return value._pointer class Deposit: _pointer: ctypes.c_void_p def __init__(self, builder: "DepositBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_deposit_new, _UniffiConverterTypeDepositBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_deposit, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_get_bytes,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_json_str,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_tx_hash,self._pointer,) ) class _UniffiConverterTypeDeposit: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Deposit): raise TypeError("Expected Deposit instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Deposit._make_instance_(value) @staticmethod def lower(value): return value._pointer class EthSigner: _pointer: ctypes.c_void_p def __init__(self, private_key: str): self._pointer = _rust_call_with_error(_UniffiConverterTypeEthSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_ethsigner_new, _UniffiConverterString.lower(private_key)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_ethsigner, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_address(self, ) -> "Address": return _UniffiConverterTypeAddress.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_get_address,self._pointer,) ) def sign_message(self, message: "typing.List[int]") -> "PackedEthSignature": return _UniffiConverterTypePackedEthSignature.lift( _rust_call_with_error( _UniffiConverterTypeEthSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_sign_message,self._pointer, _UniffiConverterSequenceUInt8.lower(message)) ) class _UniffiConverterTypeEthSigner: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, EthSigner): raise TypeError("Expected EthSigner instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return EthSigner._make_instance_(value) @staticmethod def lower(value): return value._pointer class ForcedExit: _pointer: ctypes.c_void_p def __init__(self, builder: "ForcedExitBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_forcedexit_new, _UniffiConverterTypeForcedExitBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_forcedexit, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "ForcedExit": return _UniffiConverterTypeForcedExit.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_signature,self._pointer,) ) def is_signature_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_signature_valid,self._pointer,) ) def is_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_tx_hash,self._pointer,) ) class _UniffiConverterTypeForcedExit: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, ForcedExit): raise TypeError("Expected ForcedExit instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return ForcedExit._make_instance_(value) @staticmethod def lower(value): return value._pointer class FullExit: _pointer: ctypes.c_void_p def __init__(self, builder: "FullExitBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_fullexit_new, _UniffiConverterTypeFullExitBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_fullexit, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_get_bytes,self._pointer,) ) def is_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_tx_hash,self._pointer,) ) class _UniffiConverterTypeFullExit: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, FullExit): raise TypeError("Expected FullExit instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return FullExit._make_instance_(value) @staticmethod def lower(value): return value._pointer class Funding: _pointer: ctypes.c_void_p def __init__(self, builder: "FundingBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_funding_new, _UniffiConverterTypeFundingBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_funding, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "Funding": return _UniffiConverterTypeFunding.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_funding_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_signature,self._pointer,) ) def is_signature_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_signature_valid,self._pointer,) ) def is_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_tx_hash,self._pointer,) ) class _UniffiConverterTypeFunding: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Funding): raise TypeError("Expected Funding instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Funding._make_instance_(value) @staticmethod def lower(value): return value._pointer class Liquidation: _pointer: ctypes.c_void_p def __init__(self, builder: "LiquidationBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_liquidation_new, _UniffiConverterTypeLiquidationBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_liquidation, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "Liquidation": return _UniffiConverterTypeLiquidation.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_signature,self._pointer,) ) def is_signature_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_signature_valid,self._pointer,) ) def is_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_tx_hash,self._pointer,) ) class _UniffiConverterTypeLiquidation: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Liquidation): raise TypeError("Expected Liquidation instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Liquidation._make_instance_(value) @staticmethod def lower(value): return value._pointer class Order: _pointer: ctypes.c_void_p def __init__(self, account_id: "AccountId",sub_account_id: "SubAccountId",slot_id: "SlotId",nonce: "Nonce",base_token_id: "TokenId",quote_token_id: "TokenId",amount: "BigUint",price: "BigUint",is_sell: "bool",has_subsidy: "bool",maker_fee_rate: "int",taker_fee_rate: "int",signature: "typing.Optional[ZkLinkSignature]"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_order_new, _UniffiConverterTypeAccountId.lower(account_id), _UniffiConverterTypeSubAccountId.lower(sub_account_id), _UniffiConverterTypeSlotId.lower(slot_id), _UniffiConverterTypeNonce.lower(nonce), _UniffiConverterTypeTokenId.lower(base_token_id), _UniffiConverterTypeTokenId.lower(quote_token_id), _UniffiConverterTypeBigUint.lower(amount), _UniffiConverterTypeBigUint.lower(price), _UniffiConverterBool.lower(is_sell), _UniffiConverterBool.lower(has_subsidy), _UniffiConverterUInt8.lower(maker_fee_rate), _UniffiConverterUInt8.lower(taker_fee_rate), _UniffiConverterOptionalTypeZkLinkSignature.lower(signature)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_order, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_order(self, zklink_signer: "ZkLinkSigner") -> "Order": return _UniffiConverterTypeOrder.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_order_create_signed_order,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(zklink_signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_bytes,self._pointer,) ) def get_eth_sign_msg(self, quote_token: str,based_token: str,decimals: "int") -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_eth_sign_msg,self._pointer, _UniffiConverterString.lower(quote_token), _UniffiConverterString.lower(based_token), _UniffiConverterUInt8.lower(decimals)) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_signature,self._pointer,) ) def is_signature_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_signature_valid,self._pointer,) ) def is_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_json_str,self._pointer,) ) class _UniffiConverterTypeOrder: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Order): raise TypeError("Expected Order instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Order._make_instance_(value) @staticmethod def lower(value): return value._pointer class OrderMatching: _pointer: ctypes.c_void_p def __init__(self, builder: "OrderMatchingBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_ordermatching_new, _UniffiConverterTypeOrderMatchingBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_ordermatching, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "OrderMatching": return _UniffiConverterTypeOrderMatching.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_bytes,self._pointer,) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_signature,self._pointer,) ) def is_signature_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_signature_valid,self._pointer,) ) def is_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_tx_hash,self._pointer,) ) class _UniffiConverterTypeOrderMatching: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, OrderMatching): raise TypeError("Expected OrderMatching instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return OrderMatching._make_instance_(value) @staticmethod def lower(value): return value._pointer class Signer: _pointer: ctypes.c_void_p def __init__(self, private_key: str,l1_type: "L1SignerType"): self._pointer = _rust_call_with_error(_UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_signer_new, _UniffiConverterString.lower(private_key), _UniffiConverterTypeL1SignerType.lower(l1_type)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_signer, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def sign_auto_deleveraging(self, tx: "AutoDeleveraging") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_auto_deleveraging,self._pointer, _UniffiConverterTypeAutoDeleveraging.lower(tx)) ) def sign_change_pubkey_with_create2data_auth(self, tx: "ChangePubKey",crate2data: "Create2Data") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_create2data_auth,self._pointer, _UniffiConverterTypeChangePubKey.lower(tx), _UniffiConverterTypeCreate2Data.lower(crate2data)) ) def sign_change_pubkey_with_eth_ecdsa_auth(self, tx: "ChangePubKey") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_eth_ecdsa_auth,self._pointer, _UniffiConverterTypeChangePubKey.lower(tx)) ) def sign_change_pubkey_with_onchain_auth_data(self, tx: "ChangePubKey") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_onchain_auth_data,self._pointer, _UniffiConverterTypeChangePubKey.lower(tx)) ) def sign_contract_matching(self, tx: "ContractMatching") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_contract_matching,self._pointer, _UniffiConverterTypeContractMatching.lower(tx)) ) def sign_forced_exit(self, tx: "ForcedExit") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_forced_exit,self._pointer, _UniffiConverterTypeForcedExit.lower(tx)) ) def sign_funding(self, tx: "Funding") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_funding,self._pointer, _UniffiConverterTypeFunding.lower(tx)) ) def sign_liquidation(self, tx: "Liquidation") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_liquidation,self._pointer, _UniffiConverterTypeLiquidation.lower(tx)) ) def sign_order_matching(self, tx: "OrderMatching") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_order_matching,self._pointer, _UniffiConverterTypeOrderMatching.lower(tx)) ) def sign_transfer(self, tx: "Transfer",token_sybmol: str,chain_id: "typing.Optional[str]",addr: "typing.Optional[str]") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_transfer,self._pointer, _UniffiConverterTypeTransfer.lower(tx), _UniffiConverterString.lower(token_sybmol), _UniffiConverterOptionalString.lower(chain_id), _UniffiConverterOptionalString.lower(addr)) ) def sign_withdraw(self, tx: "Withdraw",l2_source_token_symbol: str,chain_id: "typing.Optional[str]",addr: "typing.Optional[str]") -> "TxSignature": return _UniffiConverterTypeTxSignature.lift( _rust_call_with_error( _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_withdraw,self._pointer, _UniffiConverterTypeWithdraw.lower(tx), _UniffiConverterString.lower(l2_source_token_symbol), _UniffiConverterOptionalString.lower(chain_id), _UniffiConverterOptionalString.lower(addr)) ) class _UniffiConverterTypeSigner: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Signer): raise TypeError("Expected Signer instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Signer._make_instance_(value) @staticmethod def lower(value): return value._pointer class StarkSigner: _pointer: ctypes.c_void_p def __init__(self, ): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new,) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_starksigner, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst @classmethod def new_from_hex_str(cls, hex_str: str): # Call the (fallible) function before creating any half-baked object instances. pointer = _rust_call_with_error(_UniffiConverterTypeStarkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new_from_hex_str, _UniffiConverterString.lower(hex_str)) return cls._make_instance_(pointer) def sign_message(self, typed_data: "TypedData",addr: str) -> "StarkEip712Signature": return _UniffiConverterTypeStarkEip712Signature.lift( _rust_call_with_error( _UniffiConverterTypeStarkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_starksigner_sign_message,self._pointer, _UniffiConverterTypeTypedData.lower(typed_data), _UniffiConverterString.lower(addr)) ) class _UniffiConverterTypeStarkSigner: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, StarkSigner): raise TypeError("Expected StarkSigner instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return StarkSigner._make_instance_(value) @staticmethod def lower(value): return value._pointer class Transfer: _pointer: ctypes.c_void_p def __init__(self, builder: "TransferBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_transfer_new, _UniffiConverterTypeTransferBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_transfer, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "Transfer": return _UniffiConverterTypeTransfer.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def eth_signature(self, eth_signer: "EthSigner",token_symbol: str) -> "TxLayer1Signature": return _UniffiConverterTypeTxLayer1Signature.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_eth_signature,self._pointer, _UniffiConverterTypeEthSigner.lower(eth_signer), _UniffiConverterString.lower(token_symbol)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_bytes,self._pointer,) ) def get_eth_sign_msg(self, token_symbol: str) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_eth_sign_msg,self._pointer, _UniffiConverterString.lower(token_symbol)) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_signature,self._pointer,) ) def is_signature_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_signature_valid,self._pointer,) ) def is_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_tx_hash,self._pointer,) ) class _UniffiConverterTypeTransfer: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Transfer): raise TypeError("Expected Transfer instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Transfer._make_instance_(value) @staticmethod def lower(value): return value._pointer class TypedData: _pointer: ctypes.c_void_p def __init__(self, message: "TypedDataMessage",chain_id: str): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_typeddata_new, _UniffiConverterTypeTypedDataMessage.lower(message), _UniffiConverterString.lower(chain_id)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_typeddata, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst class _UniffiConverterTypeTypedData: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, TypedData): raise TypeError("Expected TypedData instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return TypedData._make_instance_(value) @staticmethod def lower(value): return value._pointer class UpdateGlobalVar: _pointer: ctypes.c_void_p def __init__(self, builder: "UpdateGlobalVarBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_updateglobalvar_new, _UniffiConverterTypeUpdateGlobalVarBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_updateglobalvar, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_get_bytes,self._pointer,) ) def is_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_tx_hash,self._pointer,) ) class _UniffiConverterTypeUpdateGlobalVar: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, UpdateGlobalVar): raise TypeError("Expected UpdateGlobalVar instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return UpdateGlobalVar._make_instance_(value) @staticmethod def lower(value): return value._pointer class Withdraw: _pointer: ctypes.c_void_p def __init__(self, builder: "WithdrawBuilder"): self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_withdraw_new, _UniffiConverterTypeWithdrawBuilder.lower(builder)) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_withdraw, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst def create_signed_tx(self, signer: "ZkLinkSigner") -> "Withdraw": return _UniffiConverterTypeWithdraw.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_create_signed_tx,self._pointer, _UniffiConverterTypeZkLinkSigner.lower(signer)) ) def eth_signature(self, eth_signer: "EthSigner",l2_source_token_symbol: str) -> "PackedEthSignature": return _UniffiConverterTypePackedEthSignature.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_eth_signature,self._pointer, _UniffiConverterTypeEthSigner.lower(eth_signer), _UniffiConverterString.lower(l2_source_token_symbol)) ) def get_bytes(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_bytes,self._pointer,) ) def get_eth_sign_msg(self, token_symbol: str) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_eth_sign_msg,self._pointer, _UniffiConverterString.lower(token_symbol)) ) def get_signature(self, ) -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_signature,self._pointer,) ) def is_signature_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_signature_valid,self._pointer,) ) def is_valid(self, ) -> "bool": return _UniffiConverterBool.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_valid,self._pointer,) ) def json_str(self, ) -> str: return _UniffiConverterString.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_json_str,self._pointer,) ) def to_zklink_tx(self, ) -> "ZkLinkTx": return _UniffiConverterTypeZkLinkTx.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_to_zklink_tx,self._pointer,) ) def tx_hash(self, ) -> "typing.List[int]": return _UniffiConverterSequenceUInt8.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_tx_hash,self._pointer,) ) class _UniffiConverterTypeWithdraw: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, Withdraw): raise TypeError("Expected Withdraw instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return Withdraw._make_instance_(value) @staticmethod def lower(value): return value._pointer class ZkLinkSigner: _pointer: ctypes.c_void_p def __init__(self, ): self._pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new,) def __del__(self): # In case of partial initialization of instances. pointer = getattr(self, "_pointer", None) if pointer is not None: _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_zklinksigner, pointer) # Used by alternative constructors or any methods which return this type. @classmethod def _make_instance_(cls, pointer): # Lightly yucky way to bypass the usual __init__ logic # and just create a new instance with the required pointer. inst = cls.__new__(cls) inst._pointer = pointer return inst @classmethod def new_from_bytes(cls, slice: "typing.List[int]"): # Call the (fallible) function before creating any half-baked object instances. pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_bytes, _UniffiConverterSequenceUInt8.lower(slice)) return cls._make_instance_(pointer) @classmethod def new_from_hex_eth_signer(cls, eth_hex_private_key): # Call the (fallible) function before creating any half-baked object instances. pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_eth_signer, _UniffiConverterString.lower(eth_hex_private_key)) return cls._make_instance_(pointer) @classmethod def new_from_hex_stark_signer(cls, hex_private_key: str,addr: str,chain_id: str): # Call the (fallible) function before creating any half-baked object instances. pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_stark_signer, _UniffiConverterString.lower(hex_private_key), _UniffiConverterString.lower(addr), _UniffiConverterString.lower(chain_id)) return cls._make_instance_(pointer) @classmethod def new_from_seed(cls, seed: "typing.List[int]"): # Call the (fallible) function before creating any half-baked object instances. pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_seed, _UniffiConverterSequenceUInt8.lower(seed)) return cls._make_instance_(pointer) def public_key(self, ) -> "PackedPublicKey": return _UniffiConverterTypePackedPublicKey.lift( _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_public_key,self._pointer,) ) def sign_musig(self, msg: "typing.List[int]") -> "ZkLinkSignature": return _UniffiConverterTypeZkLinkSignature.lift( _rust_call_with_error( _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_sign_musig,self._pointer, _UniffiConverterSequenceUInt8.lower(msg)) ) class _UniffiConverterTypeZkLinkSigner: @classmethod def read(cls, buf): ptr = buf.read_u64() if ptr == 0: raise InternalError("Raw pointer value was null") return cls.lift(ptr) @classmethod def write(cls, value, buf): if not isinstance(value, ZkLinkSigner): raise TypeError("Expected ZkLinkSigner instance, {} found".format(type(value).__name__)) buf.write_u64(cls.lower(value)) @staticmethod def lift(value): return ZkLinkSigner._make_instance_(value) @staticmethod def lower(value): return value._pointer class AutoDeleveragingBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";sub_account_nonce: "Nonce";contract_prices: "typing.List[ContractPrice]";margin_prices: "typing.List[SpotPriceInfo]";adl_account_id: "AccountId";pair_id: "PairId";adl_size: "BigUint";adl_price: "BigUint";fee: "BigUint";fee_token: "TokenId"; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", sub_account_nonce: "Nonce", contract_prices: "typing.List[ContractPrice]", margin_prices: "typing.List[SpotPriceInfo]", adl_account_id: "AccountId", pair_id: "PairId", adl_size: "BigUint", adl_price: "BigUint", fee: "BigUint", fee_token: "TokenId"): self.account_id = account_id self.sub_account_id = sub_account_id self.sub_account_nonce = sub_account_nonce self.contract_prices = contract_prices self.margin_prices = margin_prices self.adl_account_id = adl_account_id self.pair_id = pair_id self.adl_size = adl_size self.adl_price = adl_price self.fee = fee self.fee_token = fee_token def __str__(self): return "AutoDeleveragingBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, contract_prices={}, margin_prices={}, adl_account_id={}, pair_id={}, adl_size={}, adl_price={}, fee={}, fee_token={})".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.contract_prices, self.margin_prices, self.adl_account_id, self.pair_id, self.adl_size, self.adl_price, self.fee, self.fee_token) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.sub_account_nonce != other.sub_account_nonce: return False if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False if self.adl_account_id != other.adl_account_id: return False if self.pair_id != other.pair_id: return False if self.adl_size != other.adl_size: return False if self.adl_price != other.adl_price: return False if self.fee != other.fee: return False if self.fee_token != other.fee_token: return False return True class _UniffiConverterTypeAutoDeleveragingBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return AutoDeleveragingBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), sub_account_nonce=_UniffiConverterTypeNonce.read(buf), contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf), margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf), adl_account_id=_UniffiConverterTypeAccountId.read(buf), pair_id=_UniffiConverterTypePairId.read(buf), adl_size=_UniffiConverterTypeBigUint.read(buf), adl_price=_UniffiConverterTypeBigUint.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), fee_token=_UniffiConverterTypeTokenId.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeNonce.write(value.sub_account_nonce, buf) _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) _UniffiConverterTypeAccountId.write(value.adl_account_id, buf) _UniffiConverterTypePairId.write(value.pair_id, buf) _UniffiConverterTypeBigUint.write(value.adl_size, buf) _UniffiConverterTypeBigUint.write(value.adl_price, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeTokenId.write(value.fee_token, buf) class ChangePubKeyBuilder: chain_id: "ChainId";account_id: "AccountId";sub_account_id: "SubAccountId";new_pubkey_hash: "PubKeyHash";fee_token: "TokenId";fee: "BigUint";nonce: "Nonce";eth_signature: "typing.Optional[PackedEthSignature]";timestamp: "TimeStamp"; @typing.no_type_check def __init__(self, chain_id: "ChainId", account_id: "AccountId", sub_account_id: "SubAccountId", new_pubkey_hash: "PubKeyHash", fee_token: "TokenId", fee: "BigUint", nonce: "Nonce", eth_signature: "typing.Optional[PackedEthSignature]", timestamp: "TimeStamp"): self.chain_id = chain_id self.account_id = account_id self.sub_account_id = sub_account_id self.new_pubkey_hash = new_pubkey_hash self.fee_token = fee_token self.fee = fee self.nonce = nonce self.eth_signature = eth_signature self.timestamp = timestamp def __str__(self): return "ChangePubKeyBuilder(chain_id={}, account_id={}, sub_account_id={}, new_pubkey_hash={}, fee_token={}, fee={}, nonce={}, eth_signature={}, timestamp={})".format(self.chain_id, self.account_id, self.sub_account_id, self.new_pubkey_hash, self.fee_token, self.fee, self.nonce, self.eth_signature, self.timestamp) def __eq__(self, other): if self.chain_id != other.chain_id: return False if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.new_pubkey_hash != other.new_pubkey_hash: return False if self.fee_token != other.fee_token: return False if self.fee != other.fee: return False if self.nonce != other.nonce: return False if self.eth_signature != other.eth_signature: return False if self.timestamp != other.timestamp: return False return True class _UniffiConverterTypeChangePubKeyBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return ChangePubKeyBuilder( chain_id=_UniffiConverterTypeChainId.read(buf), account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), new_pubkey_hash=_UniffiConverterTypePubKeyHash.read(buf), fee_token=_UniffiConverterTypeTokenId.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), nonce=_UniffiConverterTypeNonce.read(buf), eth_signature=_UniffiConverterOptionalTypePackedEthSignature.read(buf), timestamp=_UniffiConverterTypeTimeStamp.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeChainId.write(value.chain_id, buf) _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypePubKeyHash.write(value.new_pubkey_hash, buf) _UniffiConverterTypeTokenId.write(value.fee_token, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeNonce.write(value.nonce, buf) _UniffiConverterOptionalTypePackedEthSignature.write(value.eth_signature, buf) _UniffiConverterTypeTimeStamp.write(value.timestamp, buf) class ContractBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";slot_id: "SlotId";nonce: "Nonce";pair_id: "PairId";size: "BigUint";price: "BigUint";direction: "bool";taker_fee_rate: "int";maker_fee_rate: "int";has_subsidy: "bool"; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", slot_id: "SlotId", nonce: "Nonce", pair_id: "PairId", size: "BigUint", price: "BigUint", direction: "bool", taker_fee_rate: "int", maker_fee_rate: "int", has_subsidy: "bool"): self.account_id = account_id self.sub_account_id = sub_account_id self.slot_id = slot_id self.nonce = nonce self.pair_id = pair_id self.size = size self.price = price self.direction = direction self.taker_fee_rate = taker_fee_rate self.maker_fee_rate = maker_fee_rate self.has_subsidy = has_subsidy def __str__(self): return "ContractBuilder(account_id={}, sub_account_id={}, slot_id={}, nonce={}, pair_id={}, size={}, price={}, direction={}, taker_fee_rate={}, maker_fee_rate={}, has_subsidy={})".format(self.account_id, self.sub_account_id, self.slot_id, self.nonce, self.pair_id, self.size, self.price, self.direction, self.taker_fee_rate, self.maker_fee_rate, self.has_subsidy) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.slot_id != other.slot_id: return False if self.nonce != other.nonce: return False if self.pair_id != other.pair_id: return False if self.size != other.size: return False if self.price != other.price: return False if self.direction != other.direction: return False if self.taker_fee_rate != other.taker_fee_rate: return False if self.maker_fee_rate != other.maker_fee_rate: return False if self.has_subsidy != other.has_subsidy: return False return True class _UniffiConverterTypeContractBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return ContractBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), slot_id=_UniffiConverterTypeSlotId.read(buf), nonce=_UniffiConverterTypeNonce.read(buf), pair_id=_UniffiConverterTypePairId.read(buf), size=_UniffiConverterTypeBigUint.read(buf), price=_UniffiConverterTypeBigUint.read(buf), direction=_UniffiConverterBool.read(buf), taker_fee_rate=_UniffiConverterUInt8.read(buf), maker_fee_rate=_UniffiConverterUInt8.read(buf), has_subsidy=_UniffiConverterBool.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeSlotId.write(value.slot_id, buf) _UniffiConverterTypeNonce.write(value.nonce, buf) _UniffiConverterTypePairId.write(value.pair_id, buf) _UniffiConverterTypeBigUint.write(value.size, buf) _UniffiConverterTypeBigUint.write(value.price, buf) _UniffiConverterBool.write(value.direction, buf) _UniffiConverterUInt8.write(value.taker_fee_rate, buf) _UniffiConverterUInt8.write(value.maker_fee_rate, buf) _UniffiConverterBool.write(value.has_subsidy, buf) class ContractMatchingBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";taker: "Contract";maker: "typing.List[Contract]";fee: "BigUint";fee_token: "TokenId";contract_prices: "typing.List[ContractPrice]";margin_prices: "typing.List[SpotPriceInfo]"; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", taker: "Contract", maker: "typing.List[Contract]", fee: "BigUint", fee_token: "TokenId", contract_prices: "typing.List[ContractPrice]", margin_prices: "typing.List[SpotPriceInfo]"): self.account_id = account_id self.sub_account_id = sub_account_id self.taker = taker self.maker = maker self.fee = fee self.fee_token = fee_token self.contract_prices = contract_prices self.margin_prices = margin_prices def __str__(self): return "ContractMatchingBuilder(account_id={}, sub_account_id={}, taker={}, maker={}, fee={}, fee_token={}, contract_prices={}, margin_prices={})".format(self.account_id, self.sub_account_id, self.taker, self.maker, self.fee, self.fee_token, self.contract_prices, self.margin_prices) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.taker != other.taker: return False if self.maker != other.maker: return False if self.fee != other.fee: return False if self.fee_token != other.fee_token: return False if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False return True class _UniffiConverterTypeContractMatchingBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return ContractMatchingBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), taker=_UniffiConverterTypeContract.read(buf), maker=_UniffiConverterSequenceTypeContract.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), fee_token=_UniffiConverterTypeTokenId.read(buf), contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf), margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeContract.write(value.taker, buf) _UniffiConverterSequenceTypeContract.write(value.maker, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeTokenId.write(value.fee_token, buf) _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) class ContractPrice: pair_id: "PairId";market_price: "BigUint"; @typing.no_type_check def __init__(self, pair_id: "PairId", market_price: "BigUint"): self.pair_id = pair_id self.market_price = market_price def __str__(self): return "ContractPrice(pair_id={}, market_price={})".format(self.pair_id, self.market_price) def __eq__(self, other): if self.pair_id != other.pair_id: return False if self.market_price != other.market_price: return False return True class _UniffiConverterTypeContractPrice(_UniffiConverterRustBuffer): @staticmethod def read(buf): return ContractPrice( pair_id=_UniffiConverterTypePairId.read(buf), market_price=_UniffiConverterTypeBigUint.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypePairId.write(value.pair_id, buf) _UniffiConverterTypeBigUint.write(value.market_price, buf) class Create2Data: creator_address: "ZkLinkAddress";salt_arg: "H256";code_hash: "H256"; @typing.no_type_check def __init__(self, creator_address: "ZkLinkAddress", salt_arg: "H256", code_hash: "H256"): self.creator_address = creator_address self.salt_arg = salt_arg self.code_hash = code_hash def __str__(self): return "Create2Data(creator_address={}, salt_arg={}, code_hash={})".format(self.creator_address, self.salt_arg, self.code_hash) def __eq__(self, other): if self.creator_address != other.creator_address: return False if self.salt_arg != other.salt_arg: return False if self.code_hash != other.code_hash: return False return True class _UniffiConverterTypeCreate2Data(_UniffiConverterRustBuffer): @staticmethod def read(buf): return Create2Data( creator_address=_UniffiConverterTypeZkLinkAddress.read(buf), salt_arg=_UniffiConverterTypeH256.read(buf), code_hash=_UniffiConverterTypeH256.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeZkLinkAddress.write(value.creator_address, buf) _UniffiConverterTypeH256.write(value.salt_arg, buf) _UniffiConverterTypeH256.write(value.code_hash, buf) class DepositBuilder: from_address: "ZkLinkAddress";to_address: "ZkLinkAddress";from_chain_id: "ChainId";sub_account_id: "SubAccountId";l2_target_token: "TokenId";l1_source_token: "TokenId";amount: "BigUint";serial_id: "int";l2_hash: "H256";eth_hash: "typing.Optional[H256]"; @typing.no_type_check def __init__(self, from_address: "ZkLinkAddress", to_address: "ZkLinkAddress", from_chain_id: "ChainId", sub_account_id: "SubAccountId", l2_target_token: "TokenId", l1_source_token: "TokenId", amount: "BigUint", serial_id: "int", l2_hash: "H256", eth_hash: "typing.Optional[H256]"): self.from_address = from_address self.to_address = to_address self.from_chain_id = from_chain_id self.sub_account_id = sub_account_id self.l2_target_token = l2_target_token self.l1_source_token = l1_source_token self.amount = amount self.serial_id = serial_id self.l2_hash = l2_hash self.eth_hash = eth_hash def __str__(self): return "DepositBuilder(from_address={}, to_address={}, from_chain_id={}, sub_account_id={}, l2_target_token={}, l1_source_token={}, amount={}, serial_id={}, l2_hash={}, eth_hash={})".format(self.from_address, self.to_address, self.from_chain_id, self.sub_account_id, self.l2_target_token, self.l1_source_token, self.amount, self.serial_id, self.l2_hash, self.eth_hash) def __eq__(self, other): if self.from_address != other.from_address: return False if self.to_address != other.to_address: return False if self.from_chain_id != other.from_chain_id: return False if self.sub_account_id != other.sub_account_id: return False if self.l2_target_token != other.l2_target_token: return False if self.l1_source_token != other.l1_source_token: return False if self.amount != other.amount: return False if self.serial_id != other.serial_id: return False if self.l2_hash != other.l2_hash: return False if self.eth_hash != other.eth_hash: return False return True class _UniffiConverterTypeDepositBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return DepositBuilder( from_address=_UniffiConverterTypeZkLinkAddress.read(buf), to_address=_UniffiConverterTypeZkLinkAddress.read(buf), from_chain_id=_UniffiConverterTypeChainId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), l2_target_token=_UniffiConverterTypeTokenId.read(buf), l1_source_token=_UniffiConverterTypeTokenId.read(buf), amount=_UniffiConverterTypeBigUint.read(buf), serial_id=_UniffiConverterUInt64.read(buf), l2_hash=_UniffiConverterTypeH256.read(buf), eth_hash=_UniffiConverterOptionalTypeH256.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeZkLinkAddress.write(value.from_address, buf) _UniffiConverterTypeZkLinkAddress.write(value.to_address, buf) _UniffiConverterTypeChainId.write(value.from_chain_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeTokenId.write(value.l2_target_token, buf) _UniffiConverterTypeTokenId.write(value.l1_source_token, buf) _UniffiConverterTypeBigUint.write(value.amount, buf) _UniffiConverterUInt64.write(value.serial_id, buf) _UniffiConverterTypeH256.write(value.l2_hash, buf) _UniffiConverterOptionalTypeH256.write(value.eth_hash, buf) class ForcedExitBuilder: to_chain_id: "ChainId";initiator_account_id: "AccountId";initiator_sub_account_id: "SubAccountId";target: "ZkLinkAddress";target_sub_account_id: "SubAccountId";l2_source_token: "TokenId";l1_target_token: "TokenId";initiator_nonce: "Nonce";exit_amount: "BigUint";withdraw_to_l1: "bool";timestamp: "TimeStamp"; @typing.no_type_check def __init__(self, to_chain_id: "ChainId", initiator_account_id: "AccountId", initiator_sub_account_id: "SubAccountId", target: "ZkLinkAddress", target_sub_account_id: "SubAccountId", l2_source_token: "TokenId", l1_target_token: "TokenId", initiator_nonce: "Nonce", exit_amount: "BigUint", withdraw_to_l1: "bool", timestamp: "TimeStamp"): self.to_chain_id = to_chain_id self.initiator_account_id = initiator_account_id self.initiator_sub_account_id = initiator_sub_account_id self.target = target self.target_sub_account_id = target_sub_account_id self.l2_source_token = l2_source_token self.l1_target_token = l1_target_token self.initiator_nonce = initiator_nonce self.exit_amount = exit_amount self.withdraw_to_l1 = withdraw_to_l1 self.timestamp = timestamp def __str__(self): return "ForcedExitBuilder(to_chain_id={}, initiator_account_id={}, initiator_sub_account_id={}, target={}, target_sub_account_id={}, l2_source_token={}, l1_target_token={}, initiator_nonce={}, exit_amount={}, withdraw_to_l1={}, timestamp={})".format(self.to_chain_id, self.initiator_account_id, self.initiator_sub_account_id, self.target, self.target_sub_account_id, self.l2_source_token, self.l1_target_token, self.initiator_nonce, self.exit_amount, self.withdraw_to_l1, self.timestamp) def __eq__(self, other): if self.to_chain_id != other.to_chain_id: return False if self.initiator_account_id != other.initiator_account_id: return False if self.initiator_sub_account_id != other.initiator_sub_account_id: return False if self.target != other.target: return False if self.target_sub_account_id != other.target_sub_account_id: return False if self.l2_source_token != other.l2_source_token: return False if self.l1_target_token != other.l1_target_token: return False if self.initiator_nonce != other.initiator_nonce: return False if self.exit_amount != other.exit_amount: return False if self.withdraw_to_l1 != other.withdraw_to_l1: return False if self.timestamp != other.timestamp: return False return True class _UniffiConverterTypeForcedExitBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return ForcedExitBuilder( to_chain_id=_UniffiConverterTypeChainId.read(buf), initiator_account_id=_UniffiConverterTypeAccountId.read(buf), initiator_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), target=_UniffiConverterTypeZkLinkAddress.read(buf), target_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), l2_source_token=_UniffiConverterTypeTokenId.read(buf), l1_target_token=_UniffiConverterTypeTokenId.read(buf), initiator_nonce=_UniffiConverterTypeNonce.read(buf), exit_amount=_UniffiConverterTypeBigUint.read(buf), withdraw_to_l1=_UniffiConverterBool.read(buf), timestamp=_UniffiConverterTypeTimeStamp.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeChainId.write(value.to_chain_id, buf) _UniffiConverterTypeAccountId.write(value.initiator_account_id, buf) _UniffiConverterTypeSubAccountId.write(value.initiator_sub_account_id, buf) _UniffiConverterTypeZkLinkAddress.write(value.target, buf) _UniffiConverterTypeSubAccountId.write(value.target_sub_account_id, buf) _UniffiConverterTypeTokenId.write(value.l2_source_token, buf) _UniffiConverterTypeTokenId.write(value.l1_target_token, buf) _UniffiConverterTypeNonce.write(value.initiator_nonce, buf) _UniffiConverterTypeBigUint.write(value.exit_amount, buf) _UniffiConverterBool.write(value.withdraw_to_l1, buf) _UniffiConverterTypeTimeStamp.write(value.timestamp, buf) class FullExitBuilder: to_chain_id: "ChainId";account_id: "AccountId";sub_account_id: "SubAccountId";exit_address: "ZkLinkAddress";l2_source_token: "TokenId";l1_target_token: "TokenId";contract_prices: "typing.List[ContractPrice]";margin_prices: "typing.List[SpotPriceInfo]";serial_id: "int";l2_hash: "H256"; @typing.no_type_check def __init__(self, to_chain_id: "ChainId", account_id: "AccountId", sub_account_id: "SubAccountId", exit_address: "ZkLinkAddress", l2_source_token: "TokenId", l1_target_token: "TokenId", contract_prices: "typing.List[ContractPrice]", margin_prices: "typing.List[SpotPriceInfo]", serial_id: "int", l2_hash: "H256"): self.to_chain_id = to_chain_id self.account_id = account_id self.sub_account_id = sub_account_id self.exit_address = exit_address self.l2_source_token = l2_source_token self.l1_target_token = l1_target_token self.contract_prices = contract_prices self.margin_prices = margin_prices self.serial_id = serial_id self.l2_hash = l2_hash def __str__(self): return "FullExitBuilder(to_chain_id={}, account_id={}, sub_account_id={}, exit_address={}, l2_source_token={}, l1_target_token={}, contract_prices={}, margin_prices={}, serial_id={}, l2_hash={})".format(self.to_chain_id, self.account_id, self.sub_account_id, self.exit_address, self.l2_source_token, self.l1_target_token, self.contract_prices, self.margin_prices, self.serial_id, self.l2_hash) def __eq__(self, other): if self.to_chain_id != other.to_chain_id: return False if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.exit_address != other.exit_address: return False if self.l2_source_token != other.l2_source_token: return False if self.l1_target_token != other.l1_target_token: return False if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False if self.serial_id != other.serial_id: return False if self.l2_hash != other.l2_hash: return False return True class _UniffiConverterTypeFullExitBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return FullExitBuilder( to_chain_id=_UniffiConverterTypeChainId.read(buf), account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), exit_address=_UniffiConverterTypeZkLinkAddress.read(buf), l2_source_token=_UniffiConverterTypeTokenId.read(buf), l1_target_token=_UniffiConverterTypeTokenId.read(buf), contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf), margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf), serial_id=_UniffiConverterUInt64.read(buf), l2_hash=_UniffiConverterTypeH256.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeChainId.write(value.to_chain_id, buf) _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeZkLinkAddress.write(value.exit_address, buf) _UniffiConverterTypeTokenId.write(value.l2_source_token, buf) _UniffiConverterTypeTokenId.write(value.l1_target_token, buf) _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) _UniffiConverterUInt64.write(value.serial_id, buf) _UniffiConverterTypeH256.write(value.l2_hash, buf) class FundingBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";sub_account_nonce: "Nonce";funding_account_ids: "typing.List[AccountId]";fee: "BigUint";fee_token: "TokenId"; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", sub_account_nonce: "Nonce", funding_account_ids: "typing.List[AccountId]", fee: "BigUint", fee_token: "TokenId"): self.account_id = account_id self.sub_account_id = sub_account_id self.sub_account_nonce = sub_account_nonce self.funding_account_ids = funding_account_ids self.fee = fee self.fee_token = fee_token def __str__(self): return "FundingBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, funding_account_ids={}, fee={}, fee_token={})".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.funding_account_ids, self.fee, self.fee_token) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.sub_account_nonce != other.sub_account_nonce: return False if self.funding_account_ids != other.funding_account_ids: return False if self.fee != other.fee: return False if self.fee_token != other.fee_token: return False return True class _UniffiConverterTypeFundingBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return FundingBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), sub_account_nonce=_UniffiConverterTypeNonce.read(buf), funding_account_ids=_UniffiConverterSequenceTypeAccountId.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), fee_token=_UniffiConverterTypeTokenId.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeNonce.write(value.sub_account_nonce, buf) _UniffiConverterSequenceTypeAccountId.write(value.funding_account_ids, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeTokenId.write(value.fee_token, buf) class FundingInfo: pair_id: "PairId";price: "BigUint";funding_rate: "int"; @typing.no_type_check def __init__(self, pair_id: "PairId", price: "BigUint", funding_rate: "int"): self.pair_id = pair_id self.price = price self.funding_rate = funding_rate def __str__(self): return "FundingInfo(pair_id={}, price={}, funding_rate={})".format(self.pair_id, self.price, self.funding_rate) def __eq__(self, other): if self.pair_id != other.pair_id: return False if self.price != other.price: return False if self.funding_rate != other.funding_rate: return False return True class _UniffiConverterTypeFundingInfo(_UniffiConverterRustBuffer): @staticmethod def read(buf): return FundingInfo( pair_id=_UniffiConverterTypePairId.read(buf), price=_UniffiConverterTypeBigUint.read(buf), funding_rate=_UniffiConverterInt16.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypePairId.write(value.pair_id, buf) _UniffiConverterTypeBigUint.write(value.price, buf) _UniffiConverterInt16.write(value.funding_rate, buf) class LiquidationBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";sub_account_nonce: "Nonce";contract_prices: "typing.List[ContractPrice]";margin_prices: "typing.List[SpotPriceInfo]";liquidation_account_id: "AccountId";fee: "BigUint";fee_token: "TokenId"; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", sub_account_nonce: "Nonce", contract_prices: "typing.List[ContractPrice]", margin_prices: "typing.List[SpotPriceInfo]", liquidation_account_id: "AccountId", fee: "BigUint", fee_token: "TokenId"): self.account_id = account_id self.sub_account_id = sub_account_id self.sub_account_nonce = sub_account_nonce self.contract_prices = contract_prices self.margin_prices = margin_prices self.liquidation_account_id = liquidation_account_id self.fee = fee self.fee_token = fee_token def __str__(self): return "LiquidationBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, contract_prices={}, margin_prices={}, liquidation_account_id={}, fee={}, fee_token={})".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.contract_prices, self.margin_prices, self.liquidation_account_id, self.fee, self.fee_token) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.sub_account_nonce != other.sub_account_nonce: return False if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False if self.liquidation_account_id != other.liquidation_account_id: return False if self.fee != other.fee: return False if self.fee_token != other.fee_token: return False return True class _UniffiConverterTypeLiquidationBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return LiquidationBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), sub_account_nonce=_UniffiConverterTypeNonce.read(buf), contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf), margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf), liquidation_account_id=_UniffiConverterTypeAccountId.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), fee_token=_UniffiConverterTypeTokenId.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeNonce.write(value.sub_account_nonce, buf) _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) _UniffiConverterTypeAccountId.write(value.liquidation_account_id, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeTokenId.write(value.fee_token, buf) class Message: data: str; @typing.no_type_check def __init__(self, data: str): self.data = data def __str__(self): return "Message(data={})".format(self.data) def __eq__(self, other): if self.data != other.data: return False return True class _UniffiConverterTypeMessage(_UniffiConverterRustBuffer): @staticmethod def read(buf): return Message( data=_UniffiConverterString.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterString.write(value.data, buf) class OraclePrices: contract_prices: "typing.List[ContractPrice]";margin_prices: "typing.List[SpotPriceInfo]"; @typing.no_type_check def __init__(self, contract_prices: "typing.List[ContractPrice]", margin_prices: "typing.List[SpotPriceInfo]"): self.contract_prices = contract_prices self.margin_prices = margin_prices def __str__(self): return "OraclePrices(contract_prices={}, margin_prices={})".format(self.contract_prices, self.margin_prices) def __eq__(self, other): if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False return True class _UniffiConverterTypeOraclePrices(_UniffiConverterRustBuffer): @staticmethod def read(buf): return OraclePrices( contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf), margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) class OrderMatchingBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";taker: "Order";maker: "Order";fee: "BigUint";fee_token: "TokenId";contract_prices: "typing.List[ContractPrice]";margin_prices: "typing.List[SpotPriceInfo]";expect_base_amount: "BigUint";expect_quote_amount: "BigUint"; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", taker: "Order", maker: "Order", fee: "BigUint", fee_token: "TokenId", contract_prices: "typing.List[ContractPrice]", margin_prices: "typing.List[SpotPriceInfo]", expect_base_amount: "BigUint", expect_quote_amount: "BigUint"): self.account_id = account_id self.sub_account_id = sub_account_id self.taker = taker self.maker = maker self.fee = fee self.fee_token = fee_token self.contract_prices = contract_prices self.margin_prices = margin_prices self.expect_base_amount = expect_base_amount self.expect_quote_amount = expect_quote_amount def __str__(self): return "OrderMatchingBuilder(account_id={}, sub_account_id={}, taker={}, maker={}, fee={}, fee_token={}, contract_prices={}, margin_prices={}, expect_base_amount={}, expect_quote_amount={})".format(self.account_id, self.sub_account_id, self.taker, self.maker, self.fee, self.fee_token, self.contract_prices, self.margin_prices, self.expect_base_amount, self.expect_quote_amount) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.taker != other.taker: return False if self.maker != other.maker: return False if self.fee != other.fee: return False if self.fee_token != other.fee_token: return False if self.contract_prices != other.contract_prices: return False if self.margin_prices != other.margin_prices: return False if self.expect_base_amount != other.expect_base_amount: return False if self.expect_quote_amount != other.expect_quote_amount: return False return True class _UniffiConverterTypeOrderMatchingBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return OrderMatchingBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), taker=_UniffiConverterTypeOrder.read(buf), maker=_UniffiConverterTypeOrder.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), fee_token=_UniffiConverterTypeTokenId.read(buf), contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf), margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf), expect_base_amount=_UniffiConverterTypeBigUint.read(buf), expect_quote_amount=_UniffiConverterTypeBigUint.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeOrder.write(value.taker, buf) _UniffiConverterTypeOrder.write(value.maker, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeTokenId.write(value.fee_token, buf) _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf) _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf) _UniffiConverterTypeBigUint.write(value.expect_base_amount, buf) _UniffiConverterTypeBigUint.write(value.expect_quote_amount, buf) class SpotPriceInfo: token_id: "TokenId";price: "BigUint"; @typing.no_type_check def __init__(self, token_id: "TokenId", price: "BigUint"): self.token_id = token_id self.price = price def __str__(self): return "SpotPriceInfo(token_id={}, price={})".format(self.token_id, self.price) def __eq__(self, other): if self.token_id != other.token_id: return False if self.price != other.price: return False return True class _UniffiConverterTypeSpotPriceInfo(_UniffiConverterRustBuffer): @staticmethod def read(buf): return SpotPriceInfo( token_id=_UniffiConverterTypeTokenId.read(buf), price=_UniffiConverterTypeBigUint.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeTokenId.write(value.token_id, buf) _UniffiConverterTypeBigUint.write(value.price, buf) class TransferBuilder: account_id: "AccountId";to_address: "ZkLinkAddress";from_sub_account_id: "SubAccountId";to_sub_account_id: "SubAccountId";token: "TokenId";amount: "BigUint";fee: "BigUint";nonce: "Nonce";timestamp: "TimeStamp"; @typing.no_type_check def __init__(self, account_id: "AccountId", to_address: "ZkLinkAddress", from_sub_account_id: "SubAccountId", to_sub_account_id: "SubAccountId", token: "TokenId", amount: "BigUint", fee: "BigUint", nonce: "Nonce", timestamp: "TimeStamp"): self.account_id = account_id self.to_address = to_address self.from_sub_account_id = from_sub_account_id self.to_sub_account_id = to_sub_account_id self.token = token self.amount = amount self.fee = fee self.nonce = nonce self.timestamp = timestamp def __str__(self): return "TransferBuilder(account_id={}, to_address={}, from_sub_account_id={}, to_sub_account_id={}, token={}, amount={}, fee={}, nonce={}, timestamp={})".format(self.account_id, self.to_address, self.from_sub_account_id, self.to_sub_account_id, self.token, self.amount, self.fee, self.nonce, self.timestamp) def __eq__(self, other): if self.account_id != other.account_id: return False if self.to_address != other.to_address: return False if self.from_sub_account_id != other.from_sub_account_id: return False if self.to_sub_account_id != other.to_sub_account_id: return False if self.token != other.token: return False if self.amount != other.amount: return False if self.fee != other.fee: return False if self.nonce != other.nonce: return False if self.timestamp != other.timestamp: return False return True class _UniffiConverterTypeTransferBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return TransferBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), to_address=_UniffiConverterTypeZkLinkAddress.read(buf), from_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), to_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), token=_UniffiConverterTypeTokenId.read(buf), amount=_UniffiConverterTypeBigUint.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), nonce=_UniffiConverterTypeNonce.read(buf), timestamp=_UniffiConverterTypeTimeStamp.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeZkLinkAddress.write(value.to_address, buf) _UniffiConverterTypeSubAccountId.write(value.from_sub_account_id, buf) _UniffiConverterTypeSubAccountId.write(value.to_sub_account_id, buf) _UniffiConverterTypeTokenId.write(value.token, buf) _UniffiConverterTypeBigUint.write(value.amount, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeNonce.write(value.nonce, buf) _UniffiConverterTypeTimeStamp.write(value.timestamp, buf) class TxMessage: transaction: str;amount: str;fee: str;token: str;to: str;nonce: str; @typing.no_type_check def __init__(self, transaction: str, amount: str, fee: str, token: str, to: str, nonce: str): self.transaction = transaction self.amount = amount self.fee = fee self.token = token self.to = to self.nonce = nonce def __str__(self): return "TxMessage(transaction={}, amount={}, fee={}, token={}, to={}, nonce={})".format(self.transaction, self.amount, self.fee, self.token, self.to, self.nonce) def __eq__(self, other): if self.transaction != other.transaction: return False if self.amount != other.amount: return False if self.fee != other.fee: return False if self.token != other.token: return False if self.to != other.to: return False if self.nonce != other.nonce: return False return True class _UniffiConverterTypeTxMessage(_UniffiConverterRustBuffer): @staticmethod def read(buf): return TxMessage( transaction=_UniffiConverterString.read(buf), amount=_UniffiConverterString.read(buf), fee=_UniffiConverterString.read(buf), token=_UniffiConverterString.read(buf), to=_UniffiConverterString.read(buf), nonce=_UniffiConverterString.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterString.write(value.transaction, buf) _UniffiConverterString.write(value.amount, buf) _UniffiConverterString.write(value.fee, buf) _UniffiConverterString.write(value.token, buf) _UniffiConverterString.write(value.to, buf) _UniffiConverterString.write(value.nonce, buf) class TxSignature: tx: "ZkLinkTx";layer1_signature: "typing.Optional[TxLayer1Signature]"; @typing.no_type_check def __init__(self, tx: "ZkLinkTx", layer1_signature: "typing.Optional[TxLayer1Signature]"): self.tx = tx self.layer1_signature = layer1_signature def __str__(self): return "TxSignature(tx={}, layer1_signature={})".format(self.tx, self.layer1_signature) def __eq__(self, other): if self.tx != other.tx: return False if self.layer1_signature != other.layer1_signature: return False return True class _UniffiConverterTypeTxSignature(_UniffiConverterRustBuffer): @staticmethod def read(buf): return TxSignature( tx=_UniffiConverterTypeZkLinkTx.read(buf), layer1_signature=_UniffiConverterOptionalTypeTxLayer1Signature.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeZkLinkTx.write(value.tx, buf) _UniffiConverterOptionalTypeTxLayer1Signature.write(value.layer1_signature, buf) class UpdateGlobalVarBuilder: from_chain_id: "ChainId";sub_account_id: "SubAccountId";parameter: "Parameter";serial_id: "int"; @typing.no_type_check def __init__(self, from_chain_id: "ChainId", sub_account_id: "SubAccountId", parameter: "Parameter", serial_id: "int"): self.from_chain_id = from_chain_id self.sub_account_id = sub_account_id self.parameter = parameter self.serial_id = serial_id def __str__(self): return "UpdateGlobalVarBuilder(from_chain_id={}, sub_account_id={}, parameter={}, serial_id={})".format(self.from_chain_id, self.sub_account_id, self.parameter, self.serial_id) def __eq__(self, other): if self.from_chain_id != other.from_chain_id: return False if self.sub_account_id != other.sub_account_id: return False if self.parameter != other.parameter: return False if self.serial_id != other.serial_id: return False return True class _UniffiConverterTypeUpdateGlobalVarBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return UpdateGlobalVarBuilder( from_chain_id=_UniffiConverterTypeChainId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), parameter=_UniffiConverterTypeParameter.read(buf), serial_id=_UniffiConverterUInt64.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeChainId.write(value.from_chain_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeParameter.write(value.parameter, buf) _UniffiConverterUInt64.write(value.serial_id, buf) class WithdrawBuilder: account_id: "AccountId";sub_account_id: "SubAccountId";to_chain_id: "ChainId";to_address: "ZkLinkAddress";l2_source_token: "TokenId";l1_target_token: "TokenId";amount: "BigUint";call_data: "typing.Optional[typing.List[int]]";fee: "BigUint";nonce: "Nonce";withdraw_fee_ratio: "int";withdraw_to_l1: "bool";timestamp: "TimeStamp"; @typing.no_type_check def __init__(self, account_id: "AccountId", sub_account_id: "SubAccountId", to_chain_id: "ChainId", to_address: "ZkLinkAddress", l2_source_token: "TokenId", l1_target_token: "TokenId", amount: "BigUint", call_data: "typing.Optional[typing.List[int]]", fee: "BigUint", nonce: "Nonce", withdraw_fee_ratio: "int", withdraw_to_l1: "bool", timestamp: "TimeStamp"): self.account_id = account_id self.sub_account_id = sub_account_id self.to_chain_id = to_chain_id self.to_address = to_address self.l2_source_token = l2_source_token self.l1_target_token = l1_target_token self.amount = amount self.call_data = call_data self.fee = fee self.nonce = nonce self.withdraw_fee_ratio = withdraw_fee_ratio self.withdraw_to_l1 = withdraw_to_l1 self.timestamp = timestamp def __str__(self): return "WithdrawBuilder(account_id={}, sub_account_id={}, to_chain_id={}, to_address={}, l2_source_token={}, l1_target_token={}, amount={}, call_data={}, fee={}, nonce={}, withdraw_fee_ratio={}, withdraw_to_l1={}, timestamp={})".format(self.account_id, self.sub_account_id, self.to_chain_id, self.to_address, self.l2_source_token, self.l1_target_token, self.amount, self.call_data, self.fee, self.nonce, self.withdraw_fee_ratio, self.withdraw_to_l1, self.timestamp) def __eq__(self, other): if self.account_id != other.account_id: return False if self.sub_account_id != other.sub_account_id: return False if self.to_chain_id != other.to_chain_id: return False if self.to_address != other.to_address: return False if self.l2_source_token != other.l2_source_token: return False if self.l1_target_token != other.l1_target_token: return False if self.amount != other.amount: return False if self.call_data != other.call_data: return False if self.fee != other.fee: return False if self.nonce != other.nonce: return False if self.withdraw_fee_ratio != other.withdraw_fee_ratio: return False if self.withdraw_to_l1 != other.withdraw_to_l1: return False if self.timestamp != other.timestamp: return False return True class _UniffiConverterTypeWithdrawBuilder(_UniffiConverterRustBuffer): @staticmethod def read(buf): return WithdrawBuilder( account_id=_UniffiConverterTypeAccountId.read(buf), sub_account_id=_UniffiConverterTypeSubAccountId.read(buf), to_chain_id=_UniffiConverterTypeChainId.read(buf), to_address=_UniffiConverterTypeZkLinkAddress.read(buf), l2_source_token=_UniffiConverterTypeTokenId.read(buf), l1_target_token=_UniffiConverterTypeTokenId.read(buf), amount=_UniffiConverterTypeBigUint.read(buf), call_data=_UniffiConverterOptionalSequenceUInt8.read(buf), fee=_UniffiConverterTypeBigUint.read(buf), nonce=_UniffiConverterTypeNonce.read(buf), withdraw_fee_ratio=_UniffiConverterUInt16.read(buf), withdraw_to_l1=_UniffiConverterBool.read(buf), timestamp=_UniffiConverterTypeTimeStamp.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypeAccountId.write(value.account_id, buf) _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf) _UniffiConverterTypeChainId.write(value.to_chain_id, buf) _UniffiConverterTypeZkLinkAddress.write(value.to_address, buf) _UniffiConverterTypeTokenId.write(value.l2_source_token, buf) _UniffiConverterTypeTokenId.write(value.l1_target_token, buf) _UniffiConverterTypeBigUint.write(value.amount, buf) _UniffiConverterOptionalSequenceUInt8.write(value.call_data, buf) _UniffiConverterTypeBigUint.write(value.fee, buf) _UniffiConverterTypeNonce.write(value.nonce, buf) _UniffiConverterUInt16.write(value.withdraw_fee_ratio, buf) _UniffiConverterBool.write(value.withdraw_to_l1, buf) _UniffiConverterTypeTimeStamp.write(value.timestamp, buf) class ZkLinkSignature: pub_key: "PackedPublicKey";signature: "PackedSignature"; @typing.no_type_check def __init__(self, pub_key: "PackedPublicKey", signature: "PackedSignature"): self.pub_key = pub_key self.signature = signature def __str__(self): return "ZkLinkSignature(pub_key={}, signature={})".format(self.pub_key, self.signature) def __eq__(self, other): if self.pub_key != other.pub_key: return False if self.signature != other.signature: return False return True class _UniffiConverterTypeZkLinkSignature(_UniffiConverterRustBuffer): @staticmethod def read(buf): return ZkLinkSignature( pub_key=_UniffiConverterTypePackedPublicKey.read(buf), signature=_UniffiConverterTypePackedSignature.read(buf), ) @staticmethod def write(value, buf): _UniffiConverterTypePackedPublicKey.write(value.pub_key, buf) _UniffiConverterTypePackedSignature.write(value.signature, buf) class ChangePubKeyAuthData: def __init__(self): raise RuntimeError("ChangePubKeyAuthData cannot be instantiated directly") # Each enum variant is a nested class of the enum itself. class ONCHAIN: @typing.no_type_check def __init__(self,): pass def __str__(self): return "ChangePubKeyAuthData.ONCHAIN()".format() def __eq__(self, other): if not other.is_onchain(): return False return True class ETH_ECDSA: eth_signature: "PackedEthSignature"; @typing.no_type_check def __init__(self,eth_signature: "PackedEthSignature"): self.eth_signature = eth_signature def __str__(self): return "ChangePubKeyAuthData.ETH_ECDSA(eth_signature={})".format(self.eth_signature) def __eq__(self, other): if not other.is_eth_ecdsa(): return False if self.eth_signature != other.eth_signature: return False return True class ETH_CREATE2: data: "Create2Data"; @typing.no_type_check def __init__(self,data: "Create2Data"): self.data = data def __str__(self): return "ChangePubKeyAuthData.ETH_CREATE2(data={})".format(self.data) def __eq__(self, other): if not other.is_eth_create2(): return False if self.data != other.data: return False return True # For each variant, we have an `is_NAME` method for easily checking # whether an instance is that variant. def is_onchain(self) -> bool: return isinstance(self, ChangePubKeyAuthData.ONCHAIN) def is_eth_ecdsa(self) -> bool: return isinstance(self, ChangePubKeyAuthData.ETH_ECDSA) def is_eth_create2(self) -> bool: return isinstance(self, ChangePubKeyAuthData.ETH_CREATE2) # Now, a little trick - we make each nested variant class be a subclass of the main # enum class, so that method calls and instance checks etc will work intuitively. # We might be able to do this a little more neatly with a metaclass, but this'll do. ChangePubKeyAuthData.ONCHAIN = type("ChangePubKeyAuthData.ONCHAIN", (ChangePubKeyAuthData.ONCHAIN, ChangePubKeyAuthData,), {}) # type: ignore ChangePubKeyAuthData.ETH_ECDSA = type("ChangePubKeyAuthData.ETH_ECDSA", (ChangePubKeyAuthData.ETH_ECDSA, ChangePubKeyAuthData,), {}) # type: ignore ChangePubKeyAuthData.ETH_CREATE2 = type("ChangePubKeyAuthData.ETH_CREATE2", (ChangePubKeyAuthData.ETH_CREATE2, ChangePubKeyAuthData,), {}) # type: ignore class _UniffiConverterTypeChangePubKeyAuthData(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return ChangePubKeyAuthData.ONCHAIN( ) if variant == 2: return ChangePubKeyAuthData.ETH_ECDSA( _UniffiConverterTypePackedEthSignature.read(buf), ) if variant == 3: return ChangePubKeyAuthData.ETH_CREATE2( _UniffiConverterTypeCreate2Data.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value.is_onchain(): buf.write_i32(1) if value.is_eth_ecdsa(): buf.write_i32(2) _UniffiConverterTypePackedEthSignature.write(value.eth_signature, buf) if value.is_eth_create2(): buf.write_i32(3) _UniffiConverterTypeCreate2Data.write(value.data, buf) class ChangePubKeyAuthRequest: def __init__(self): raise RuntimeError("ChangePubKeyAuthRequest cannot be instantiated directly") # Each enum variant is a nested class of the enum itself. class ONCHAIN: @typing.no_type_check def __init__(self,): pass def __str__(self): return "ChangePubKeyAuthRequest.ONCHAIN()".format() def __eq__(self, other): if not other.is_onchain(): return False return True class ETH_ECDSA: @typing.no_type_check def __init__(self,): pass def __str__(self): return "ChangePubKeyAuthRequest.ETH_ECDSA()".format() def __eq__(self, other): if not other.is_eth_ecdsa(): return False return True class ETH_CREATE2: data: "Create2Data"; @typing.no_type_check def __init__(self,data: "Create2Data"): self.data = data def __str__(self): return "ChangePubKeyAuthRequest.ETH_CREATE2(data={})".format(self.data) def __eq__(self, other): if not other.is_eth_create2(): return False if self.data != other.data: return False return True # For each variant, we have an `is_NAME` method for easily checking # whether an instance is that variant. def is_onchain(self) -> bool: return isinstance(self, ChangePubKeyAuthRequest.ONCHAIN) def is_eth_ecdsa(self) -> bool: return isinstance(self, ChangePubKeyAuthRequest.ETH_ECDSA) def is_eth_create2(self) -> bool: return isinstance(self, ChangePubKeyAuthRequest.ETH_CREATE2) # Now, a little trick - we make each nested variant class be a subclass of the main # enum class, so that method calls and instance checks etc will work intuitively. # We might be able to do this a little more neatly with a metaclass, but this'll do. ChangePubKeyAuthRequest.ONCHAIN = type("ChangePubKeyAuthRequest.ONCHAIN", (ChangePubKeyAuthRequest.ONCHAIN, ChangePubKeyAuthRequest,), {}) # type: ignore ChangePubKeyAuthRequest.ETH_ECDSA = type("ChangePubKeyAuthRequest.ETH_ECDSA", (ChangePubKeyAuthRequest.ETH_ECDSA, ChangePubKeyAuthRequest,), {}) # type: ignore ChangePubKeyAuthRequest.ETH_CREATE2 = type("ChangePubKeyAuthRequest.ETH_CREATE2", (ChangePubKeyAuthRequest.ETH_CREATE2, ChangePubKeyAuthRequest,), {}) # type: ignore class _UniffiConverterTypeChangePubKeyAuthRequest(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return ChangePubKeyAuthRequest.ONCHAIN( ) if variant == 2: return ChangePubKeyAuthRequest.ETH_ECDSA( ) if variant == 3: return ChangePubKeyAuthRequest.ETH_CREATE2( _UniffiConverterTypeCreate2Data.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value.is_onchain(): buf.write_i32(1) if value.is_eth_ecdsa(): buf.write_i32(2) if value.is_eth_create2(): buf.write_i32(3) _UniffiConverterTypeCreate2Data.write(value.data, buf) # EthSignerError # We want to define each variant as a nested class that's also a subclass, # which is tricky in Python. To accomplish this we're going to create each # class separately, then manually add the child classes to the base class's # __dict__. All of this happens in dummy class to avoid polluting the module # namespace. class EthSignerError(Exception): pass _UniffiTempEthSignerError = EthSignerError class EthSignerError: # type: ignore class InvalidEthSigner(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.InvalidEthSigner({})".format(repr(str(self))) _UniffiTempEthSignerError.InvalidEthSigner = InvalidEthSigner # type: ignore class MissingEthPrivateKey(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.MissingEthPrivateKey({})".format(repr(str(self))) _UniffiTempEthSignerError.MissingEthPrivateKey = MissingEthPrivateKey # type: ignore class MissingEthSigner(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.MissingEthSigner({})".format(repr(str(self))) _UniffiTempEthSignerError.MissingEthSigner = MissingEthSigner # type: ignore class SigningFailed(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.SigningFailed({})".format(repr(str(self))) _UniffiTempEthSignerError.SigningFailed = SigningFailed # type: ignore class UnlockingFailed(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.UnlockingFailed({})".format(repr(str(self))) _UniffiTempEthSignerError.UnlockingFailed = UnlockingFailed # type: ignore class InvalidRawTx(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.InvalidRawTx({})".format(repr(str(self))) _UniffiTempEthSignerError.InvalidRawTx = InvalidRawTx # type: ignore class Eip712Failed(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.Eip712Failed({})".format(repr(str(self))) _UniffiTempEthSignerError.Eip712Failed = Eip712Failed # type: ignore class NoSigningKey(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.NoSigningKey({})".format(repr(str(self))) _UniffiTempEthSignerError.NoSigningKey = NoSigningKey # type: ignore class DefineAddress(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.DefineAddress({})".format(repr(str(self))) _UniffiTempEthSignerError.DefineAddress = DefineAddress # type: ignore class RecoverAddress(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.RecoverAddress({})".format(repr(str(self))) _UniffiTempEthSignerError.RecoverAddress = RecoverAddress # type: ignore class LengthMismatched(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.LengthMismatched({})".format(repr(str(self))) _UniffiTempEthSignerError.LengthMismatched = LengthMismatched # type: ignore class CryptoError(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.CryptoError({})".format(repr(str(self))) _UniffiTempEthSignerError.CryptoError = CryptoError # type: ignore class InvalidSignatureStr(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.InvalidSignatureStr({})".format(repr(str(self))) _UniffiTempEthSignerError.InvalidSignatureStr = InvalidSignatureStr # type: ignore class CustomError(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.CustomError({})".format(repr(str(self))) _UniffiTempEthSignerError.CustomError = CustomError # type: ignore class RpcSignError(_UniffiTempEthSignerError): def __repr__(self): return "EthSignerError.RpcSignError({})".format(repr(str(self))) _UniffiTempEthSignerError.RpcSignError = RpcSignError # type: ignore EthSignerError = _UniffiTempEthSignerError # type: ignore del _UniffiTempEthSignerError class _UniffiConverterTypeEthSignerError(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return EthSignerError.InvalidEthSigner( _UniffiConverterString.read(buf), ) if variant == 2: return EthSignerError.MissingEthPrivateKey( _UniffiConverterString.read(buf), ) if variant == 3: return EthSignerError.MissingEthSigner( _UniffiConverterString.read(buf), ) if variant == 4: return EthSignerError.SigningFailed( _UniffiConverterString.read(buf), ) if variant == 5: return EthSignerError.UnlockingFailed( _UniffiConverterString.read(buf), ) if variant == 6: return EthSignerError.InvalidRawTx( _UniffiConverterString.read(buf), ) if variant == 7: return EthSignerError.Eip712Failed( _UniffiConverterString.read(buf), ) if variant == 8: return EthSignerError.NoSigningKey( _UniffiConverterString.read(buf), ) if variant == 9: return EthSignerError.DefineAddress( _UniffiConverterString.read(buf), ) if variant == 10: return EthSignerError.RecoverAddress( _UniffiConverterString.read(buf), ) if variant == 11: return EthSignerError.LengthMismatched( _UniffiConverterString.read(buf), ) if variant == 12: return EthSignerError.CryptoError( _UniffiConverterString.read(buf), ) if variant == 13: return EthSignerError.InvalidSignatureStr( _UniffiConverterString.read(buf), ) if variant == 14: return EthSignerError.CustomError( _UniffiConverterString.read(buf), ) if variant == 15: return EthSignerError.RpcSignError( _UniffiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") @staticmethod def write(value, buf): if isinstance(value, EthSignerError.InvalidEthSigner): buf.write_i32(1) if isinstance(value, EthSignerError.MissingEthPrivateKey): buf.write_i32(2) if isinstance(value, EthSignerError.MissingEthSigner): buf.write_i32(3) if isinstance(value, EthSignerError.SigningFailed): buf.write_i32(4) if isinstance(value, EthSignerError.UnlockingFailed): buf.write_i32(5) if isinstance(value, EthSignerError.InvalidRawTx): buf.write_i32(6) if isinstance(value, EthSignerError.Eip712Failed): buf.write_i32(7) if isinstance(value, EthSignerError.NoSigningKey): buf.write_i32(8) if isinstance(value, EthSignerError.DefineAddress): buf.write_i32(9) if isinstance(value, EthSignerError.RecoverAddress): buf.write_i32(10) if isinstance(value, EthSignerError.LengthMismatched): buf.write_i32(11) if isinstance(value, EthSignerError.CryptoError): buf.write_i32(12) if isinstance(value, EthSignerError.InvalidSignatureStr): buf.write_i32(13) if isinstance(value, EthSignerError.CustomError): buf.write_i32(14) if isinstance(value, EthSignerError.RpcSignError): buf.write_i32(15) class L1SignerType: def __init__(self): raise RuntimeError("L1SignerType cannot be instantiated directly") # Each enum variant is a nested class of the enum itself. class ETH: @typing.no_type_check def __init__(self,): pass def __str__(self): return "L1SignerType.ETH()".format() def __eq__(self, other): if not other.is_eth(): return False return True class STARKNET: chain_id: str;address: str; @typing.no_type_check def __init__(self,chain_id: str, address: str): self.chain_id = chain_id self.address = address def __str__(self): return "L1SignerType.STARKNET(chain_id={}, address={})".format(self.chain_id, self.address) def __eq__(self, other): if not other.is_starknet(): return False if self.chain_id != other.chain_id: return False if self.address != other.address: return False return True # For each variant, we have an `is_NAME` method for easily checking # whether an instance is that variant. def is_eth(self) -> bool: return isinstance(self, L1SignerType.ETH) def is_starknet(self) -> bool: return isinstance(self, L1SignerType.STARKNET) # Now, a little trick - we make each nested variant class be a subclass of the main # enum class, so that method calls and instance checks etc will work intuitively. # We might be able to do this a little more neatly with a metaclass, but this'll do. L1SignerType.ETH = type("L1SignerType.ETH", (L1SignerType.ETH, L1SignerType,), {}) # type: ignore L1SignerType.STARKNET = type("L1SignerType.STARKNET", (L1SignerType.STARKNET, L1SignerType,), {}) # type: ignore class _UniffiConverterTypeL1SignerType(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return L1SignerType.ETH( ) if variant == 2: return L1SignerType.STARKNET( _UniffiConverterString.read(buf), _UniffiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value.is_eth(): buf.write_i32(1) if value.is_starknet(): buf.write_i32(2) _UniffiConverterString.write(value.chain_id, buf) _UniffiConverterString.write(value.address, buf) class L1Type(enum.Enum): ETH = 1 STARKNET = 2 class _UniffiConverterTypeL1Type(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return L1Type.ETH if variant == 2: return L1Type.STARKNET raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value == L1Type.ETH: buf.write_i32(1) if value == L1Type.STARKNET: buf.write_i32(2) class Parameter: def __init__(self): raise RuntimeError("Parameter cannot be instantiated directly") # Each enum variant is a nested class of the enum itself. class FEE_ACCOUNT: account_id: "AccountId"; @typing.no_type_check def __init__(self,account_id: "AccountId"): self.account_id = account_id def __str__(self): return "Parameter.FEE_ACCOUNT(account_id={})".format(self.account_id) def __eq__(self, other): if not other.is_fee_account(): return False if self.account_id != other.account_id: return False return True class INSURANCE_FUND_ACCOUNT: account_id: "AccountId"; @typing.no_type_check def __init__(self,account_id: "AccountId"): self.account_id = account_id def __str__(self): return "Parameter.INSURANCE_FUND_ACCOUNT(account_id={})".format(self.account_id) def __eq__(self, other): if not other.is_insurance_fund_account(): return False if self.account_id != other.account_id: return False return True class MARGIN_INFO: margin_id: "MarginId";token_id: "TokenId";ratio: "int"; @typing.no_type_check def __init__(self,margin_id: "MarginId", token_id: "TokenId", ratio: "int"): self.margin_id = margin_id self.token_id = token_id self.ratio = ratio def __str__(self): return "Parameter.MARGIN_INFO(margin_id={}, token_id={}, ratio={})".format(self.margin_id, self.token_id, self.ratio) def __eq__(self, other): if not other.is_margin_info(): return False if self.margin_id != other.margin_id: return False if self.token_id != other.token_id: return False if self.ratio != other.ratio: return False return True class FUNDING_INFOS: infos: "typing.List[FundingInfo]"; @typing.no_type_check def __init__(self,infos: "typing.List[FundingInfo]"): self.infos = infos def __str__(self): return "Parameter.FUNDING_INFOS(infos={})".format(self.infos) def __eq__(self, other): if not other.is_funding_infos(): return False if self.infos != other.infos: return False return True class CONTRACT_INFO: pair_id: "PairId";symbol: str;initial_margin_rate: "int";maintenance_margin_rate: "int"; @typing.no_type_check def __init__(self,pair_id: "PairId", symbol: str, initial_margin_rate: "int", maintenance_margin_rate: "int"): self.pair_id = pair_id self.symbol = symbol self.initial_margin_rate = initial_margin_rate self.maintenance_margin_rate = maintenance_margin_rate def __str__(self): return "Parameter.CONTRACT_INFO(pair_id={}, symbol={}, initial_margin_rate={}, maintenance_margin_rate={})".format(self.pair_id, self.symbol, self.initial_margin_rate, self.maintenance_margin_rate) def __eq__(self, other): if not other.is_contract_info(): return False if self.pair_id != other.pair_id: return False if self.symbol != other.symbol: return False if self.initial_margin_rate != other.initial_margin_rate: return False if self.maintenance_margin_rate != other.maintenance_margin_rate: return False return True # For each variant, we have an `is_NAME` method for easily checking # whether an instance is that variant. def is_fee_account(self) -> bool: return isinstance(self, Parameter.FEE_ACCOUNT) def is_insurance_fund_account(self) -> bool: return isinstance(self, Parameter.INSURANCE_FUND_ACCOUNT) def is_margin_info(self) -> bool: return isinstance(self, Parameter.MARGIN_INFO) def is_funding_infos(self) -> bool: return isinstance(self, Parameter.FUNDING_INFOS) def is_contract_info(self) -> bool: return isinstance(self, Parameter.CONTRACT_INFO) # Now, a little trick - we make each nested variant class be a subclass of the main # enum class, so that method calls and instance checks etc will work intuitively. # We might be able to do this a little more neatly with a metaclass, but this'll do. Parameter.FEE_ACCOUNT = type("Parameter.FEE_ACCOUNT", (Parameter.FEE_ACCOUNT, Parameter,), {}) # type: ignore Parameter.INSURANCE_FUND_ACCOUNT = type("Parameter.INSURANCE_FUND_ACCOUNT", (Parameter.INSURANCE_FUND_ACCOUNT, Parameter,), {}) # type: ignore Parameter.MARGIN_INFO = type("Parameter.MARGIN_INFO", (Parameter.MARGIN_INFO, Parameter,), {}) # type: ignore Parameter.FUNDING_INFOS = type("Parameter.FUNDING_INFOS", (Parameter.FUNDING_INFOS, Parameter,), {}) # type: ignore Parameter.CONTRACT_INFO = type("Parameter.CONTRACT_INFO", (Parameter.CONTRACT_INFO, Parameter,), {}) # type: ignore class _UniffiConverterTypeParameter(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return Parameter.FEE_ACCOUNT( _UniffiConverterTypeAccountId.read(buf), ) if variant == 2: return Parameter.INSURANCE_FUND_ACCOUNT( _UniffiConverterTypeAccountId.read(buf), ) if variant == 3: return Parameter.MARGIN_INFO( _UniffiConverterTypeMarginId.read(buf), _UniffiConverterTypeTokenId.read(buf), _UniffiConverterUInt8.read(buf), ) if variant == 4: return Parameter.FUNDING_INFOS( _UniffiConverterSequenceTypeFundingInfo.read(buf), ) if variant == 5: return Parameter.CONTRACT_INFO( _UniffiConverterTypePairId.read(buf), _UniffiConverterString.read(buf), _UniffiConverterUInt16.read(buf), _UniffiConverterUInt16.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value.is_fee_account(): buf.write_i32(1) _UniffiConverterTypeAccountId.write(value.account_id, buf) if value.is_insurance_fund_account(): buf.write_i32(2) _UniffiConverterTypeAccountId.write(value.account_id, buf) if value.is_margin_info(): buf.write_i32(3) _UniffiConverterTypeMarginId.write(value.margin_id, buf) _UniffiConverterTypeTokenId.write(value.token_id, buf) _UniffiConverterUInt8.write(value.ratio, buf) if value.is_funding_infos(): buf.write_i32(4) _UniffiConverterSequenceTypeFundingInfo.write(value.infos, buf) if value.is_contract_info(): buf.write_i32(5) _UniffiConverterTypePairId.write(value.pair_id, buf) _UniffiConverterString.write(value.symbol, buf) _UniffiConverterUInt16.write(value.initial_margin_rate, buf) _UniffiConverterUInt16.write(value.maintenance_margin_rate, buf) # SignError # We want to define each variant as a nested class that's also a subclass, # which is tricky in Python. To accomplish this we're going to create each # class separately, then manually add the child classes to the base class's # __dict__. All of this happens in dummy class to avoid polluting the module # namespace. class SignError(Exception): pass _UniffiTempSignError = SignError class SignError: # type: ignore class EthSigningError(_UniffiTempSignError): def __repr__(self): return "SignError.EthSigningError({})".format(repr(str(self))) _UniffiTempSignError.EthSigningError = EthSigningError # type: ignore class ZkSigningError(_UniffiTempSignError): def __repr__(self): return "SignError.ZkSigningError({})".format(repr(str(self))) _UniffiTempSignError.ZkSigningError = ZkSigningError # type: ignore class StarkSigningError(_UniffiTempSignError): def __repr__(self): return "SignError.StarkSigningError({})".format(repr(str(self))) _UniffiTempSignError.StarkSigningError = StarkSigningError # type: ignore class IncorrectTx(_UniffiTempSignError): def __repr__(self): return "SignError.IncorrectTx({})".format(repr(str(self))) _UniffiTempSignError.IncorrectTx = IncorrectTx # type: ignore SignError = _UniffiTempSignError # type: ignore del _UniffiTempSignError class _UniffiConverterTypeSignError(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return SignError.EthSigningError( _UniffiConverterString.read(buf), ) if variant == 2: return SignError.ZkSigningError( _UniffiConverterString.read(buf), ) if variant == 3: return SignError.StarkSigningError( _UniffiConverterString.read(buf), ) if variant == 4: return SignError.IncorrectTx( _UniffiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") @staticmethod def write(value, buf): if isinstance(value, SignError.EthSigningError): buf.write_i32(1) if isinstance(value, SignError.ZkSigningError): buf.write_i32(2) if isinstance(value, SignError.StarkSigningError): buf.write_i32(3) if isinstance(value, SignError.IncorrectTx): buf.write_i32(4) # StarkSignerError # We want to define each variant as a nested class that's also a subclass, # which is tricky in Python. To accomplish this we're going to create each # class separately, then manually add the child classes to the base class's # __dict__. All of this happens in dummy class to avoid polluting the module # namespace. class StarkSignerError(Exception): pass _UniffiTempStarkSignerError = StarkSignerError class StarkSignerError: # type: ignore class InvalidStarknetSigner(_UniffiTempStarkSignerError): def __repr__(self): return "StarkSignerError.InvalidStarknetSigner({})".format(repr(str(self))) _UniffiTempStarkSignerError.InvalidStarknetSigner = InvalidStarknetSigner # type: ignore class InvalidSignature(_UniffiTempStarkSignerError): def __repr__(self): return "StarkSignerError.InvalidSignature({})".format(repr(str(self))) _UniffiTempStarkSignerError.InvalidSignature = InvalidSignature # type: ignore class InvalidPrivKey(_UniffiTempStarkSignerError): def __repr__(self): return "StarkSignerError.InvalidPrivKey({})".format(repr(str(self))) _UniffiTempStarkSignerError.InvalidPrivKey = InvalidPrivKey # type: ignore class SignError(_UniffiTempStarkSignerError): def __repr__(self): return "StarkSignerError.SignError({})".format(repr(str(self))) _UniffiTempStarkSignerError.SignError = SignError # type: ignore class RpcSignError(_UniffiTempStarkSignerError): def __repr__(self): return "StarkSignerError.RpcSignError({})".format(repr(str(self))) _UniffiTempStarkSignerError.RpcSignError = RpcSignError # type: ignore StarkSignerError = _UniffiTempStarkSignerError # type: ignore del _UniffiTempStarkSignerError class _UniffiConverterTypeStarkSignerError(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return StarkSignerError.InvalidStarknetSigner( _UniffiConverterString.read(buf), ) if variant == 2: return StarkSignerError.InvalidSignature( _UniffiConverterString.read(buf), ) if variant == 3: return StarkSignerError.InvalidPrivKey( _UniffiConverterString.read(buf), ) if variant == 4: return StarkSignerError.SignError( _UniffiConverterString.read(buf), ) if variant == 5: return StarkSignerError.RpcSignError( _UniffiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") @staticmethod def write(value, buf): if isinstance(value, StarkSignerError.InvalidStarknetSigner): buf.write_i32(1) if isinstance(value, StarkSignerError.InvalidSignature): buf.write_i32(2) if isinstance(value, StarkSignerError.InvalidPrivKey): buf.write_i32(3) if isinstance(value, StarkSignerError.SignError): buf.write_i32(4) if isinstance(value, StarkSignerError.RpcSignError): buf.write_i32(5) # TypeError # We want to define each variant as a nested class that's also a subclass, # which is tricky in Python. To accomplish this we're going to create each # class separately, then manually add the child classes to the base class's # __dict__. All of this happens in dummy class to avoid polluting the module # namespace. class TypeError(Exception): pass _UniffiTempTypeError = TypeError class TypeError: # type: ignore class InvalidAddress(_UniffiTempTypeError): def __repr__(self): return "TypeError.InvalidAddress({})".format(repr(str(self))) _UniffiTempTypeError.InvalidAddress = InvalidAddress # type: ignore class InvalidTxHash(_UniffiTempTypeError): def __repr__(self): return "TypeError.InvalidTxHash({})".format(repr(str(self))) _UniffiTempTypeError.InvalidTxHash = InvalidTxHash # type: ignore class NotStartWithZerox(_UniffiTempTypeError): def __repr__(self): return "TypeError.NotStartWithZerox({})".format(repr(str(self))) _UniffiTempTypeError.NotStartWithZerox = NotStartWithZerox # type: ignore class SizeMismatch(_UniffiTempTypeError): def __repr__(self): return "TypeError.SizeMismatch({})".format(repr(str(self))) _UniffiTempTypeError.SizeMismatch = SizeMismatch # type: ignore class DecodeFromHexErr(_UniffiTempTypeError): def __repr__(self): return "TypeError.DecodeFromHexErr({})".format(repr(str(self))) _UniffiTempTypeError.DecodeFromHexErr = DecodeFromHexErr # type: ignore class TooBigInteger(_UniffiTempTypeError): def __repr__(self): return "TypeError.TooBigInteger({})".format(repr(str(self))) _UniffiTempTypeError.TooBigInteger = TooBigInteger # type: ignore class InvalidBigIntStr(_UniffiTempTypeError): def __repr__(self): return "TypeError.InvalidBigIntStr({})".format(repr(str(self))) _UniffiTempTypeError.InvalidBigIntStr = InvalidBigIntStr # type: ignore TypeError = _UniffiTempTypeError # type: ignore del _UniffiTempTypeError class _UniffiConverterTypeTypeError(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return TypeError.InvalidAddress( _UniffiConverterString.read(buf), ) if variant == 2: return TypeError.InvalidTxHash( _UniffiConverterString.read(buf), ) if variant == 3: return TypeError.NotStartWithZerox( _UniffiConverterString.read(buf), ) if variant == 4: return TypeError.SizeMismatch( _UniffiConverterString.read(buf), ) if variant == 5: return TypeError.DecodeFromHexErr( _UniffiConverterString.read(buf), ) if variant == 6: return TypeError.TooBigInteger( _UniffiConverterString.read(buf), ) if variant == 7: return TypeError.InvalidBigIntStr( _UniffiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") @staticmethod def write(value, buf): if isinstance(value, TypeError.InvalidAddress): buf.write_i32(1) if isinstance(value, TypeError.InvalidTxHash): buf.write_i32(2) if isinstance(value, TypeError.NotStartWithZerox): buf.write_i32(3) if isinstance(value, TypeError.SizeMismatch): buf.write_i32(4) if isinstance(value, TypeError.DecodeFromHexErr): buf.write_i32(5) if isinstance(value, TypeError.TooBigInteger): buf.write_i32(6) if isinstance(value, TypeError.InvalidBigIntStr): buf.write_i32(7) class TypedDataMessage: def __init__(self): raise RuntimeError("TypedDataMessage cannot be instantiated directly") # Each enum variant is a nested class of the enum itself. class CREATE_L2_KEY: message: "Message"; @typing.no_type_check def __init__(self,message: "Message"): self.message = message def __str__(self): return "TypedDataMessage.CREATE_L2_KEY(message={})".format(self.message) def __eq__(self, other): if not other.is_create_l2_key(): return False if self.message != other.message: return False return True class TRANSACTION: message: "TxMessage"; @typing.no_type_check def __init__(self,message: "TxMessage"): self.message = message def __str__(self): return "TypedDataMessage.TRANSACTION(message={})".format(self.message) def __eq__(self, other): if not other.is_transaction(): return False if self.message != other.message: return False return True # For each variant, we have an `is_NAME` method for easily checking # whether an instance is that variant. def is_create_l2_key(self) -> bool: return isinstance(self, TypedDataMessage.CREATE_L2_KEY) def is_transaction(self) -> bool: return isinstance(self, TypedDataMessage.TRANSACTION) # Now, a little trick - we make each nested variant class be a subclass of the main # enum class, so that method calls and instance checks etc will work intuitively. # We might be able to do this a little more neatly with a metaclass, but this'll do. TypedDataMessage.CREATE_L2_KEY = type("TypedDataMessage.CREATE_L2_KEY", (TypedDataMessage.CREATE_L2_KEY, TypedDataMessage,), {}) # type: ignore TypedDataMessage.TRANSACTION = type("TypedDataMessage.TRANSACTION", (TypedDataMessage.TRANSACTION, TypedDataMessage,), {}) # type: ignore class _UniffiConverterTypeTypedDataMessage(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return TypedDataMessage.CREATE_L2_KEY( _UniffiConverterTypeMessage.read(buf), ) if variant == 2: return TypedDataMessage.TRANSACTION( _UniffiConverterTypeTxMessage.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") def write(value, buf): if value.is_create_l2_key(): buf.write_i32(1) _UniffiConverterTypeMessage.write(value.message, buf) if value.is_transaction(): buf.write_i32(2) _UniffiConverterTypeTxMessage.write(value.message, buf) # ZkSignerError # We want to define each variant as a nested class that's also a subclass, # which is tricky in Python. To accomplish this we're going to create each # class separately, then manually add the child classes to the base class's # __dict__. All of this happens in dummy class to avoid polluting the module # namespace. class ZkSignerError(Exception): pass _UniffiTempZkSignerError = ZkSignerError class ZkSignerError: # type: ignore class CustomError(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.CustomError({})".format(repr(str(self))) _UniffiTempZkSignerError.CustomError = CustomError # type: ignore class InvalidSignature(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.InvalidSignature({})".format(repr(str(self))) _UniffiTempZkSignerError.InvalidSignature = InvalidSignature # type: ignore class InvalidPrivKey(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.InvalidPrivKey({})".format(repr(str(self))) _UniffiTempZkSignerError.InvalidPrivKey = InvalidPrivKey # type: ignore class InvalidSeed(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.InvalidSeed({})".format(repr(str(self))) _UniffiTempZkSignerError.InvalidSeed = InvalidSeed # type: ignore class InvalidPubkey(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.InvalidPubkey({})".format(repr(str(self))) _UniffiTempZkSignerError.InvalidPubkey = InvalidPubkey # type: ignore class InvalidPubkeyHash(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.InvalidPubkeyHash({})".format(repr(str(self))) _UniffiTempZkSignerError.InvalidPubkeyHash = InvalidPubkeyHash # type: ignore class EthSignerError(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.EthSignerError({})".format(repr(str(self))) _UniffiTempZkSignerError.EthSignerError = EthSignerError # type: ignore class StarkSignerError(_UniffiTempZkSignerError): def __repr__(self): return "ZkSignerError.StarkSignerError({})".format(repr(str(self))) _UniffiTempZkSignerError.StarkSignerError = StarkSignerError # type: ignore ZkSignerError = _UniffiTempZkSignerError # type: ignore del _UniffiTempZkSignerError class _UniffiConverterTypeZkSignerError(_UniffiConverterRustBuffer): @staticmethod def read(buf): variant = buf.read_i32() if variant == 1: return ZkSignerError.CustomError( _UniffiConverterString.read(buf), ) if variant == 2: return ZkSignerError.InvalidSignature( _UniffiConverterString.read(buf), ) if variant == 3: return ZkSignerError.InvalidPrivKey( _UniffiConverterString.read(buf), ) if variant == 4: return ZkSignerError.InvalidSeed( _UniffiConverterString.read(buf), ) if variant == 5: return ZkSignerError.InvalidPubkey( _UniffiConverterString.read(buf), ) if variant == 6: return ZkSignerError.InvalidPubkeyHash( _UniffiConverterString.read(buf), ) if variant == 7: return ZkSignerError.EthSignerError( _UniffiConverterString.read(buf), ) if variant == 8: return ZkSignerError.StarkSignerError( _UniffiConverterString.read(buf), ) raise InternalError("Raw enum value doesn't match any cases") @staticmethod def write(value, buf): if isinstance(value, ZkSignerError.CustomError): buf.write_i32(1) if isinstance(value, ZkSignerError.InvalidSignature): buf.write_i32(2) if isinstance(value, ZkSignerError.InvalidPrivKey): buf.write_i32(3) if isinstance(value, ZkSignerError.InvalidSeed): buf.write_i32(4) if isinstance(value, ZkSignerError.InvalidPubkey): buf.write_i32(5) if isinstance(value, ZkSignerError.InvalidPubkeyHash): buf.write_i32(6) if isinstance(value, ZkSignerError.EthSignerError): buf.write_i32(7) if isinstance(value, ZkSignerError.StarkSignerError): buf.write_i32(8) class _UniffiConverterOptionalString(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.write_u8(0) return buf.write_u8(1) _UniffiConverterString.write(value, buf) @classmethod def read(cls, buf): flag = buf.read_u8() if flag == 0: return None elif flag == 1: return _UniffiConverterString.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class _UniffiConverterOptionalTypeZkLinkSignature(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.write_u8(0) return buf.write_u8(1) _UniffiConverterTypeZkLinkSignature.write(value, buf) @classmethod def read(cls, buf): flag = buf.read_u8() if flag == 0: return None elif flag == 1: return _UniffiConverterTypeZkLinkSignature.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class _UniffiConverterOptionalSequenceUInt8(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.write_u8(0) return buf.write_u8(1) _UniffiConverterSequenceUInt8.write(value, buf) @classmethod def read(cls, buf): flag = buf.read_u8() if flag == 0: return None elif flag == 1: return _UniffiConverterSequenceUInt8.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class _UniffiConverterOptionalTypeH256(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.write_u8(0) return buf.write_u8(1) _UniffiConverterTypeH256.write(value, buf) @classmethod def read(cls, buf): flag = buf.read_u8() if flag == 0: return None elif flag == 1: return _UniffiConverterTypeH256.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class _UniffiConverterOptionalTypePackedEthSignature(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.write_u8(0) return buf.write_u8(1) _UniffiConverterTypePackedEthSignature.write(value, buf) @classmethod def read(cls, buf): flag = buf.read_u8() if flag == 0: return None elif flag == 1: return _UniffiConverterTypePackedEthSignature.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class _UniffiConverterOptionalTypeTxLayer1Signature(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): if value is None: buf.write_u8(0) return buf.write_u8(1) _UniffiConverterTypeTxLayer1Signature.write(value, buf) @classmethod def read(cls, buf): flag = buf.read_u8() if flag == 0: return None elif flag == 1: return _UniffiConverterTypeTxLayer1Signature.read(buf) else: raise InternalError("Unexpected flag byte for optional type") class _UniffiConverterSequenceUInt8(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.write_i32(items) for item in value: _UniffiConverterUInt8.write(item, buf) @classmethod def read(cls, buf): count = buf.read_i32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ _UniffiConverterUInt8.read(buf) for i in range(count) ] class _UniffiConverterSequenceTypeContract(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.write_i32(items) for item in value: _UniffiConverterTypeContract.write(item, buf) @classmethod def read(cls, buf): count = buf.read_i32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ _UniffiConverterTypeContract.read(buf) for i in range(count) ] class _UniffiConverterSequenceTypeContractPrice(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.write_i32(items) for item in value: _UniffiConverterTypeContractPrice.write(item, buf) @classmethod def read(cls, buf): count = buf.read_i32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ _UniffiConverterTypeContractPrice.read(buf) for i in range(count) ] class _UniffiConverterSequenceTypeFundingInfo(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.write_i32(items) for item in value: _UniffiConverterTypeFundingInfo.write(item, buf) @classmethod def read(cls, buf): count = buf.read_i32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ _UniffiConverterTypeFundingInfo.read(buf) for i in range(count) ] class _UniffiConverterSequenceTypeSpotPriceInfo(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.write_i32(items) for item in value: _UniffiConverterTypeSpotPriceInfo.write(item, buf) @classmethod def read(cls, buf): count = buf.read_i32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ _UniffiConverterTypeSpotPriceInfo.read(buf) for i in range(count) ] class _UniffiConverterSequenceTypeAccountId(_UniffiConverterRustBuffer): @classmethod def write(cls, value, buf): items = len(value) buf.write_i32(items) for item in value: _UniffiConverterTypeAccountId.write(item, buf) @classmethod def read(cls, buf): count = buf.read_i32() if count < 0: raise InternalError("Unexpected negative sequence length") return [ _UniffiConverterTypeAccountId.read(buf) for i in range(count) ] # Type alias AccountId = int class _UniffiConverterTypeAccountId: @staticmethod def write(value, buf): _UniffiConverterUInt32.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt32.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt32.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt32.lower(value) # Type alias Address = str class _UniffiConverterTypeAddress: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias BigUint = str class _UniffiConverterTypeBigUint: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias BlockNumber = int class _UniffiConverterTypeBlockNumber: @staticmethod def write(value, buf): _UniffiConverterUInt32.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt32.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt32.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt32.lower(value) # Type alias ChainId = int class _UniffiConverterTypeChainId: @staticmethod def write(value, buf): _UniffiConverterUInt8.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt8.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt8.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt8.lower(value) # Type alias EthBlockId = int class _UniffiConverterTypeEthBlockId: @staticmethod def write(value, buf): _UniffiConverterUInt64.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt64.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt64.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt64.lower(value) # Type alias H256 = str class _UniffiConverterTypeH256: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias MarginId = int class _UniffiConverterTypeMarginId: @staticmethod def write(value, buf): _UniffiConverterUInt8.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt8.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt8.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt8.lower(value) # Type alias Nonce = int class _UniffiConverterTypeNonce: @staticmethod def write(value, buf): _UniffiConverterUInt32.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt32.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt32.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt32.lower(value) # Type alias PackedEthSignature = str class _UniffiConverterTypePackedEthSignature: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias PackedPublicKey = str class _UniffiConverterTypePackedPublicKey: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias PackedSignature = str class _UniffiConverterTypePackedSignature: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias PairId = int class _UniffiConverterTypePairId: @staticmethod def write(value, buf): _UniffiConverterUInt16.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt16.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt16.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt16.lower(value) # Type alias PriorityOpId = int class _UniffiConverterTypePriorityOpId: @staticmethod def write(value, buf): _UniffiConverterUInt64.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt64.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt64.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt64.lower(value) # Type alias PubKeyHash = str class _UniffiConverterTypePubKeyHash: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias SlotId = int class _UniffiConverterTypeSlotId: @staticmethod def write(value, buf): _UniffiConverterUInt32.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt32.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt32.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt32.lower(value) # Type alias StarkEip712Signature = str class _UniffiConverterTypeStarkEip712Signature: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias SubAccountId = int class _UniffiConverterTypeSubAccountId: @staticmethod def write(value, buf): _UniffiConverterUInt8.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt8.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt8.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt8.lower(value) # Type alias TimeStamp = int class _UniffiConverterTypeTimeStamp: @staticmethod def write(value, buf): _UniffiConverterUInt32.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt32.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt32.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt32.lower(value) # Type alias TokenId = int class _UniffiConverterTypeTokenId: @staticmethod def write(value, buf): _UniffiConverterUInt32.write(value, buf) @staticmethod def read(buf): return _UniffiConverterUInt32.read(buf) @staticmethod def lift(value): return _UniffiConverterUInt32.lift(value) @staticmethod def lower(value): return _UniffiConverterUInt32.lower(value) # Type alias TxHash = str class _UniffiConverterTypeTxHash: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias TxLayer1Signature = str class _UniffiConverterTypeTxLayer1Signature: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias ZkLinkAddress = str class _UniffiConverterTypeZkLinkAddress: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) # Type alias ZkLinkTx = str class _UniffiConverterTypeZkLinkTx: @staticmethod def write(value, buf): _UniffiConverterString.write(value, buf) @staticmethod def read(buf): return _UniffiConverterString.read(buf) @staticmethod def lift(value): return _UniffiConverterString.lift(value) @staticmethod def lower(value): return _UniffiConverterString.lower(value) def create_signed_change_pubkey(zklink_signer: "ZkLinkSigner",tx: "ChangePubKey",eth_auth_data: "ChangePubKeyAuthData") -> "ChangePubKey": return _UniffiConverterTypeChangePubKey.lift(_rust_call_with_error(_UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_func_create_signed_change_pubkey, _UniffiConverterTypeZkLinkSigner.lower(zklink_signer), _UniffiConverterTypeChangePubKey.lower(tx), _UniffiConverterTypeChangePubKeyAuthData.lower(eth_auth_data))) def eth_signature_of_change_pubkey(tx: "ChangePubKey",eth_signer: "EthSigner") -> "PackedEthSignature": return _UniffiConverterTypePackedEthSignature.lift(_rust_call_with_error(_UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_func_eth_signature_of_change_pubkey, _UniffiConverterTypeChangePubKey.lower(tx), _UniffiConverterTypeEthSigner.lower(eth_signer))) def get_public_key_hash(public_key: "PackedPublicKey") -> "PubKeyHash": return _UniffiConverterTypePubKeyHash.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_get_public_key_hash, _UniffiConverterTypePackedPublicKey.lower(public_key))) def verify_musig(signature: "ZkLinkSignature",msg: "typing.List[int]") -> "bool": return _UniffiConverterBool.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_verify_musig, _UniffiConverterTypeZkLinkSignature.lower(signature), _UniffiConverterSequenceUInt8.lower(msg))) def zklink_main_net_url() -> str: return _UniffiConverterString.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_main_net_url,)) def zklink_test_net_url() -> str: return _UniffiConverterString.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_test_net_url,)) __all__ = [ "InternalError", "ChangePubKeyAuthData", "ChangePubKeyAuthRequest", "EthSignerError", "L1SignerType", "L1Type", "Parameter", "SignError", "StarkSignerError", "TypeError", "TypedDataMessage", "ZkSignerError", "AutoDeleveragingBuilder", "ChangePubKeyBuilder", "ContractBuilder", "ContractMatchingBuilder", "ContractPrice", "Create2Data", "DepositBuilder", "ForcedExitBuilder", "FullExitBuilder", "FundingBuilder", "FundingInfo", "LiquidationBuilder", "Message", "OraclePrices", "OrderMatchingBuilder", "SpotPriceInfo", "TransferBuilder", "TxMessage", "TxSignature", "UpdateGlobalVarBuilder", "WithdrawBuilder", "ZkLinkSignature", "create_signed_change_pubkey", "eth_signature_of_change_pubkey", "get_public_key_hash", "verify_musig", "zklink_main_net_url", "zklink_test_net_url", "AutoDeleveraging", "ChangePubKey", "Contract", "ContractMatching", "Deposit", "EthSigner", "ForcedExit", "FullExit", "Funding", "Liquidation", "Order", "OrderMatching", "Signer", "StarkSigner", "Transfer", "TypedData", "UpdateGlobalVar", "Withdraw", "ZkLinkSigner", ] ================================================ FILE: jesse/modes/import_candles_mode/drivers/Binance/BinanceMain.py ================================================ import requests import jesse.helpers as jh from jesse.modes.import_candles_mode.drivers.interface import CandleExchange from typing import Union from .binance_utils import timeframe_to_interval import time from requests.adapters import HTTPAdapter from urllib3.util.retry import Retry class BinanceMain(CandleExchange): def __init__( self, name: str, rest_endpoint: str, backup_exchange_class, ) -> None: super().__init__( name=name, count=1000, rate_limit_per_second=2, backup_exchange_class=backup_exchange_class ) self.endpoint = rest_endpoint # Setup session with retry strategy self.session = requests.Session() retries = Retry( total=5, backoff_factor=1, status_forcelist=[500, 502, 503, 504], ) self.session.mount('http://', HTTPAdapter(max_retries=retries)) self.session.mount('https://', HTTPAdapter(max_retries=retries)) def _make_request(self, url: str, params: dict = None) -> requests.Response: max_retries = 3 retry_delay = 5 for attempt in range(max_retries): try: response = self.session.get(url, params=params, timeout=30) return response except (requests.exceptions.ConnectionError, OSError) as e: if "ERROR 451" in str(e): raise Exception( "Access to this exchange is restricted from your location (HTTP 451). " "This is likely due to geographic restrictions imposed by the exchange. " "You may need to use a VPN to change your IP address to a permitted location." ) if "Cannot allocate memory" in str(e): # Force garbage collection and wait import gc gc.collect() time.sleep(retry_delay * (attempt + 1)) continue raise e raise Exception(f"Failed to make request after {max_retries} attempts") def get_starting_time(self, symbol: str) -> int: dashless_symbol = jh.dashless_symbol(symbol) payload = { 'interval': '1w', 'symbol': dashless_symbol, 'limit': 1000, } response = self._make_request( self.endpoint + self._prefix_address + 'klines', params=payload ) self.validate_response(response) data = response.json() # since the first timestamp doesn't include all the 1m # candles, let's start since the second day then first_timestamp = int(data[1][0]) return first_timestamp def fetch(self, symbol: str, start_timestamp: int, timeframe: str = '1m') -> Union[list, None]: end_timestamp = start_timestamp + (self.count - 1) * 60000 * jh.timeframe_to_one_minutes(timeframe) interval = timeframe_to_interval(timeframe) dashless_symbol = jh.dashless_symbol(symbol) payload = { 'interval': interval, 'symbol': dashless_symbol, 'startTime': int(start_timestamp), 'endTime': int(end_timestamp), 'limit': self.count, } response = self._make_request( self.endpoint + self._prefix_address + 'klines', params=payload ) self.validate_response(response) data = response.json() return [{ 'id': jh.generate_unique_id(), 'exchange': self.name, 'symbol': symbol, 'timeframe': timeframe, 'timestamp': int(d[0]), 'open': float(d[1]), 'close': float(d[4]), 'high': float(d[2]), 'low': float(d[3]), 'volume': float(d[5]) } for d in data] def get_available_symbols(self) -> list: response = self._make_request(self.endpoint + self._prefix_address + 'exchangeInfo') self.validate_response(response) data = response.json() return [jh.dashy_symbol(d['symbol']) for d in data['symbols']] @property def _prefix_address(self): if self.name.startswith('Binance Perpetual Futures'): return '/v1/' return '/v3/' def __del__(self): """Cleanup method to ensure proper session closure""" if hasattr(self, 'session'): self.session.close() ================================================ FILE: jesse/modes/import_candles_mode/drivers/Binance/BinancePerpetualFutures.py ================================================ from .BinanceMain import BinanceMain from jesse.enums import exchanges class BinancePerpetualFutures(BinanceMain): def __init__(self) -> None: from .BinanceSpot import BinanceSpot super().__init__( name=exchanges.BINANCE_PERPETUAL_FUTURES, rest_endpoint='https://fapi.binance.com/fapi', backup_exchange_class=BinanceSpot ) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Binance/BinancePerpetualFuturesTestnet.py ================================================ from .BinanceMain import BinanceMain from jesse.enums import exchanges class BinancePerpetualFuturesTestnet(BinanceMain): def __init__(self) -> None: from .BinanceSpot import BinanceSpot super().__init__( name=exchanges.BINANCE_PERPETUAL_FUTURES_TESTNET, rest_endpoint='https://testnet.binancefuture.com/fapi', backup_exchange_class=BinanceSpot ) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Binance/BinanceSpot.py ================================================ from .BinanceMain import BinanceMain from jesse.enums import exchanges class BinanceSpot(BinanceMain): def __init__(self) -> None: super().__init__( name=exchanges.BINANCE_SPOT, rest_endpoint='https://api.binance.com/api', backup_exchange_class=None ) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Binance/BinanceUSSpot.py ================================================ from .BinanceMain import BinanceMain from jesse.enums import exchanges class BinanceUSSpot(BinanceMain): def __init__(self) -> None: from .BinanceSpot import BinanceSpot super().__init__( name=exchanges.BINANCE_US_SPOT, rest_endpoint='https://api.binance.us/api', backup_exchange_class=BinanceSpot ) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Binance/__init__.py ================================================ ================================================ FILE: jesse/modes/import_candles_mode/drivers/Binance/binance_utils.py ================================================ from jesse.enums import timeframes def timeframe_to_interval(timeframe: str) -> str: # 1m # 3m # 5m # 15m # 30m # 1h # 2h # 4h # 6h # 8h # 12h # 1d # 3d # 1w # 1M if timeframe == timeframes.MINUTE_1: return '1m' elif timeframe == timeframes.MINUTE_3: return '3m' elif timeframe == timeframes.MINUTE_5: return '5m' elif timeframe == timeframes.MINUTE_15: return '15m' elif timeframe == timeframes.MINUTE_30: return '30m' elif timeframe == timeframes.HOUR_1: return '1h' elif timeframe == timeframes.HOUR_2: return '2h' elif timeframe == timeframes.HOUR_4: return '4h' elif timeframe == timeframes.HOUR_6: return '6h' elif timeframe == timeframes.HOUR_8: return '8h' elif timeframe == timeframes.HOUR_12: return '12h' elif timeframe == timeframes.DAY_1: return '1d' elif timeframe == timeframes.DAY_3: return '3d' elif timeframe == timeframes.WEEK_1: return '1w' elif timeframe == timeframes.MONTH_1: return '1M' else: raise ValueError('Invalid timeframe: {}'.format(timeframe)) def interval_to_timeframe(interval: str) -> str: if interval == '1m': return timeframes.MINUTE_1 elif interval == '3m': return timeframes.MINUTE_3 elif interval == '5m': return timeframes.MINUTE_5 elif interval == '15m': return timeframes.MINUTE_15 elif interval == '30m': return timeframes.MINUTE_30 elif interval == '1h': return timeframes.HOUR_1 elif interval == '2h': return timeframes.HOUR_2 elif interval == '4h': return timeframes.HOUR_4 elif interval == '6h': return timeframes.HOUR_6 elif interval == '8h': return timeframes.HOUR_8 elif interval == '12h': return timeframes.HOUR_12 elif interval == '1d': return timeframes.DAY_1 elif interval == '3d': return timeframes.DAY_3 elif interval == '1w': return timeframes.WEEK_1 elif interval == '1M': return timeframes.MONTH_1 else: raise ValueError('Invalid interval: {}'.format(interval)) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Bitfinex/BitfinexSpot.py ================================================ import requests import time from requests.exceptions import ConnectionError, RequestException import jesse.helpers as jh from jesse import exceptions from jesse.modes.import_candles_mode.drivers.interface import CandleExchange from jesse.enums import exchanges from .bitfinex_utils import timeframe_to_interval class BitfinexSpot(CandleExchange): def __init__(self) -> None: super().__init__( name=exchanges.BITFINEX_SPOT, count=1440, rate_limit_per_second=1, backup_exchange_class=None ) self.endpoint = 'https://api-pub.bitfinex.com/v2/candles' self.max_retries = 5 self.base_delay = 3 # Base delay in seconds def _make_request(self, url: str, params: dict = None) -> requests.Response: for attempt in range(self.max_retries): try: response = requests.get(url, params=params) return response except (ConnectionError, RequestException) as e: if attempt == self.max_retries - 1: # Last attempt raise e # Exponential backoff with jitter delay = (self.base_delay * 2 ** attempt) + (jh.random_uniform(0, 1)) time.sleep(delay) def get_starting_time(self, symbol: str) -> int: dashless_symbol = jh.dashless_symbol(symbol) # hard-code few common symbols if symbol == 'BTC-USD': return jh.date_to_timestamp('2015-08-01') elif symbol == 'ETH-USD': return jh.date_to_timestamp('2016-01-01') payload = { 'sort': 1, 'limit': 5000, } response = self._make_request(f"{self.endpoint}/trade:1D:t{dashless_symbol}/hist", params=payload) self.validate_response(response) data = response.json() # wrong symbol entered if not len(data): raise exceptions.SymbolNotFound( f"No candle exists for {symbol} in Bitfinex." ) # since the first timestamp doesn't include all the 1m # candles, let's start since the second day then first_timestamp = int(data[0][0]) return first_timestamp + 60_000 * 1440 def fetch(self, symbol: str, start_timestamp: int, timeframe: str) -> list: # since Bitfinex API skips candles with "volume=0", we have to send end_timestamp # instead of limit. Therefore, we use limit number to calculate the end_timestamp end_timestamp = start_timestamp + (self.count - 1) * 60000 * jh.timeframe_to_one_minutes(timeframe) interval = timeframe_to_interval(timeframe) payload = { 'start': start_timestamp, 'end': end_timestamp, 'limit': self.count, 'sort': 1 } dashless_symbol = jh.dashless_symbol(symbol) response = self._make_request( f"{self.endpoint}/trade:{interval}:t{dashless_symbol}/hist", params=payload ) self.validate_response(response) data = response.json() return [{ 'id': jh.generate_unique_id(), 'exchange': self.name, 'symbol': symbol, 'timeframe': timeframe, 'timestamp': d[0], 'open': d[1], 'close': d[2], 'high': d[3], 'low': d[4], 'volume': d[5] } for d in data] def get_available_symbols(self) -> list: response = self._make_request('https://api-pub.bitfinex.com/v2/conf/pub:list:pair:exchange') self.validate_response(response) data = response.json()[0] arr = [] for s in data: symbol = s # if has : like CELO:USD, remove the : and make it CELOUSD if ':' in symbol: symbol = symbol.replace(':', '') arr.append(jh.dashy_symbol(symbol)) return arr ================================================ FILE: jesse/modes/import_candles_mode/drivers/Bitfinex/__init__.py ================================================ ================================================ FILE: jesse/modes/import_candles_mode/drivers/Bitfinex/bitfinex_utils.py ================================================ from jesse.enums import timeframes def timeframe_to_interval(timeframe: str) -> str: if timeframe == timeframes.MINUTE_1: return '1m' elif timeframe == timeframes.MINUTE_5: return '5m' elif timeframe == timeframes.MINUTE_15: return '15m' elif timeframe == timeframes.MINUTE_30: return '30m' elif timeframe == timeframes.HOUR_1: return '1h' elif timeframe == timeframes.HOUR_3: return '3h' elif timeframe == timeframes.HOUR_6: return '6h' elif timeframe == timeframes.HOUR_12: return '12h' elif timeframe == timeframes.DAY_1: return '1D' elif timeframe == timeframes.WEEK_1: return '1W' elif timeframe == timeframes.MONTH_1: return '1M' else: raise NotImplemented('Invalid timeframe: {}'.format(timeframe)) def interval_to_timeframe(interval: str) -> str: if interval == '1m': return timeframes.MINUTE_1 elif interval == '5m': return timeframes.MINUTE_5 elif interval == '15m': return timeframes.MINUTE_15 elif interval == '30m': return timeframes.MINUTE_30 elif interval == '1h': return timeframes.HOUR_1 elif interval == '3h': return timeframes.HOUR_3 elif interval == '6h': return timeframes.HOUR_6 elif interval == '12h': return timeframes.HOUR_12 elif interval == '1D': return timeframes.DAY_1 elif interval == '1W': return timeframes.WEEK_1 elif interval == '1M': return timeframes.MONTH_1 else: raise NotImplemented('Invalid interval: {}'.format(interval)) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Bybit/BybitMain.py ================================================ import requests from requests.adapters import HTTPAdapter from urllib3.util.retry import Retry import jesse.helpers as jh from jesse.modes.import_candles_mode.drivers.interface import CandleExchange from typing import Union from jesse import exceptions from .bybit_utils import timeframe_to_interval class BybitMain(CandleExchange): def __init__(self, name: str, rest_endpoint: str, category: str) -> None: from jesse.modes.import_candles_mode.drivers.Binance.BinanceSpot import BinanceSpot super().__init__(name=name, count=200, rate_limit_per_second=10, backup_exchange_class=BinanceSpot) self.name = name self.endpoint = rest_endpoint self.category = category # Setup session with retry strategy self.session = requests.Session() retries = Retry( total=3, backoff_factor=1, status_forcelist=[408, 429, 500, 502, 503, 504], allowed_methods=["HEAD", "GET", "POST"] ) self.session.mount('https://', HTTPAdapter(max_retries=retries, pool_maxsize=100)) def get_starting_time(self, symbol: str) -> int: dashless_symbol = jh.dashless_symbol(symbol) payload = { 'category': self.category, 'symbol': dashless_symbol, 'interval': 'W', 'limit': 200, 'start': 1514811660000 } response = self.session.get(self.endpoint + '/v5/market/kline', params=payload, timeout=10) self.validate_response(response) data = response.json()['result']['list'] # Reverse the data list data = data[::-1] return int(data[1][0]) def fetch(self, symbol: str, start_timestamp: int, timeframe: str = '1m') -> Union[list, None]: dashless_symbol = jh.dashless_symbol(symbol) interval = timeframe_to_interval(timeframe) payload = { 'category': self.category, 'symbol': dashless_symbol, 'interval': interval, 'start': int(start_timestamp), 'limit': self.count } response = self.session.get(self.endpoint + '/v5/market/kline', params=payload, timeout=10) if response.json()['retMsg'] != 'OK': raise exceptions.SymbolNotFound(response.json()['retMsg']) data = response.json()['result']['list'] # Reverse the data list data = data[::-1] return [ { 'id': jh.generate_unique_id(), 'exchange': self.name, 'symbol': symbol, 'timeframe': timeframe, 'timestamp': int(d[0]), 'open': float(d[1]), 'close': float(d[4]), 'high': float(d[2]), 'low': float(d[3]), 'volume': float(d[5]) } for d in data ] def get_available_symbols(self) -> list: response = self.session.get(self.endpoint + '/v5/market/instruments-info?limit=1000&category=' + self.category, timeout=10) self.validate_response(response) data = response.json()['result']['list'] return [jh.dashy_symbol(d['symbol']) for d in data] ================================================ FILE: jesse/modes/import_candles_mode/drivers/Bybit/BybitSpot.py ================================================ from .BybitMain import BybitMain from jesse.enums import exchanges class BybitSpot(BybitMain): def __init__(self) -> None: super().__init__( name=exchanges.BYBIT_SPOT, rest_endpoint='https://api.bybit.com', category='spot', ) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Bybit/BybitSpotTestnet.py ================================================ from .BybitMain import BybitMain from jesse.enums import exchanges class BybitSpotTestnet(BybitMain): def __init__(self) -> None: super().__init__( name=exchanges.BYBIT_SPOT_TESTNET, rest_endpoint='https://api-testnet.bybit.com', category='spot', ) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Bybit/BybitUSDCPerpetual.py ================================================ from .BybitMain import BybitMain from jesse.enums import exchanges class BybitUSDCPerpetual(BybitMain): def __init__(self) -> None: super().__init__( name=exchanges.BYBIT_USDC_PERPETUAL, rest_endpoint='https://api.bybit.com', category='linear', ) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Bybit/BybitUSDCPerpetualTestnet.py ================================================ from .BybitMain import BybitMain from jesse.enums import exchanges class BybitUSDCPerpetualTestnet(BybitMain): def __init__(self) -> None: super().__init__( name=exchanges.BYBIT_USDC_PERPETUAL_TESTNET, rest_endpoint='https://api-testnet.bybit.com', category='linear', ) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Bybit/BybitUSDTPerpetual.py ================================================ from .BybitMain import BybitMain from jesse.enums import exchanges class BybitUSDTPerpetual(BybitMain): def __init__(self) -> None: super().__init__( name=exchanges.BYBIT_USDT_PERPETUAL, rest_endpoint='https://api.bybit.com', category='linear', ) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Bybit/BybitUSDTPerpetualTestnet.py ================================================ from .BybitMain import BybitMain from jesse.enums import exchanges class BybitUSDTPerpetualTestnet(BybitMain): def __init__(self) -> None: super().__init__( name=exchanges.BYBIT_USDT_PERPETUAL_TESTNET, rest_endpoint='https://api-testnet.bybit.com', category='linear', ) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Bybit/__init__.py ================================================ ================================================ FILE: jesse/modes/import_candles_mode/drivers/Bybit/bybit_utils.py ================================================ from jesse.enums import timeframes def timeframe_to_interval(timeframe: str) -> str: """ Convert a timeframe string to an interval in seconds. """ if timeframe == timeframes.MINUTE_1: return '1' elif timeframe == timeframes.MINUTE_3: return '3' elif timeframe == timeframes.MINUTE_5: return '5' elif timeframe == timeframes.MINUTE_15: return '15' elif timeframe == timeframes.MINUTE_30: return '30' elif timeframe == timeframes.HOUR_1: return '60' elif timeframe == timeframes.HOUR_2: return '120' elif timeframe == timeframes.HOUR_4: return '240' elif timeframe == timeframes.HOUR_6: return '360' elif timeframe == timeframes.HOUR_12: return '720' elif timeframe == timeframes.DAY_1: return 'D' elif timeframe == timeframes.WEEK_1: return 'W' else: raise ValueError('Invalid timeframe: {}'.format(timeframe)) def interval_to_timeframe(interval: str) -> str: """ Convert an interval in seconds to a timeframe string. """ if interval == '1': return timeframes.MINUTE_1 elif interval == '3': return timeframes.MINUTE_3 elif interval == '5': return timeframes.MINUTE_5 elif interval == '15': return timeframes.MINUTE_15 elif interval == '30': return timeframes.MINUTE_30 elif interval == '60': return timeframes.HOUR_1 elif interval == '120': return timeframes.HOUR_2 elif interval == '240': return timeframes.HOUR_4 elif interval == '360': return timeframes.HOUR_6 elif interval == '720': return timeframes.HOUR_12 elif interval == 'D': return timeframes.DAY_1 elif interval == 'W': return timeframes.WEEK_1 else: raise ValueError('Invalid interval: {}'.format(interval)) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Coinbase/CoinbaseSpot.py ================================================ import requests import jesse.helpers as jh from jesse.modes.import_candles_mode.drivers.interface import CandleExchange from jesse.enums import exchanges from .coinbase_utils import timeframe_to_interval class CoinbaseSpot(CandleExchange): def __init__(self) -> None: super().__init__( name=exchanges.COINBASE_SPOT, count=300, rate_limit_per_second=1.5, backup_exchange_class=None ) self.endpoint = 'https://api.coinbase.com/api/v3/brokerage/market/products' def get_starting_time(self, symbol: str) -> int: """ Because Coinbase's API sucks and does not make this take easy for us, we do it manually for as much symbol as we can! :param symbol: str :return: int """ if symbol == 'BTC-USD': return 1438387200000 elif symbol == 'ETH-USD': return 1464739200000 elif symbol == 'LTC-USD': return 1477958400000 return None def fetch(self, symbol: str, start_timestamp: int, timeframe: str) -> list: """ note1: unlike Bitfinex, Binance does NOT skip candles with volume=0. note2: like Bitfinex, start_time includes the candle and so does the end_time. """ end_timestamp = start_timestamp + (self.count - 1) * 60000 * jh.timeframe_to_one_minutes(timeframe) payload = { 'granularity': timeframe_to_interval(timeframe), 'start': int(start_timestamp / 1000), 'end': int(end_timestamp / 1000), } response = requests.get( f"{self.endpoint}/{symbol}/candles", params=payload ) self.validate_response(response) data = response.json()['candles'] data = data[::-1] return [ { 'id': jh.generate_unique_id(), 'exchange': self.name, 'symbol': symbol, 'timeframe': timeframe, 'timestamp': int(d['start']) * 1000, 'open': float(d['open']), 'close': float(d['close']), 'high': float(d['high']), 'low': float(d['low']), 'volume': float(d['volume']) } for d in data ] def get_available_symbols(self) -> list: response = requests.get(self.endpoint) self.validate_response(response) data = response.json()['products'] available_symbols = [] for s in data: if len(s['alias_to']) == 0: available_symbols.append(s['product_id']) return available_symbols ================================================ FILE: jesse/modes/import_candles_mode/drivers/Coinbase/__init__.py ================================================ ================================================ FILE: jesse/modes/import_candles_mode/drivers/Coinbase/coinbase_utils.py ================================================ from jesse.enums import timeframes def timeframe_to_interval(timeframe: str) -> str: if timeframe == timeframes.MINUTE_1: return 'ONE_MINUTE' elif timeframe == timeframes.MINUTE_5: return 'FIVE_MINUTE' elif timeframe == timeframes.MINUTE_15: return 'FIFTEEN_MINUTE' elif timeframe == timeframes.MINUTE_30: return 'THIRTEEN_MINUTE' elif timeframe == timeframes.HOUR_1: return 'ONE_HOUR' elif timeframe == timeframes.HOUR_2: return 'TWO_HOUR' elif timeframe == timeframes.HOUR_6: return 'SIX_HOUR' elif timeframe == timeframes.DAY_1: return 'ONE_DAY' else: raise NotImplemented('Invalid timeframe: {}'.format(timeframe)) def interval_to_timeframe(interval: str) -> str: if interval == '60': return timeframes.MINUTE_1 else: raise NotImplemented('Invalid interval: {}'.format(interval)) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Gate/GateSpot.py ================================================ from .GateSpotMain import GateSpotMain from jesse.enums import exchanges class GateSpot(GateSpotMain): def __init__(self) -> None: super().__init__( name=exchanges.GATE_SPOT, rest_endpoint='https://api.gateio.ws/api/v4/spot' ) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Gate/GateSpotMain.py ================================================ import requests import jesse.helpers as jh from jesse.modes.import_candles_mode.drivers.interface import CandleExchange from typing import Union from jesse import exceptions from .gate_utils import timeframe_to_interval class GateSpotMain(CandleExchange): def __init__(self, name: str, rest_endpoint: str) -> None: super().__init__(name=name, count=200, rate_limit_per_second=10, backup_exchange_class=None) self.name = name self.limit = 1000 self.endpoint = rest_endpoint def get_starting_time(self, symbol: str) -> int: symbol = jh.dashy_to_underline(symbol) payload = { 'contract': symbol, 'interval': '1w', 'limit': 1000, 'from': 1514811660 } response = requests.get(f"{self.endpoint}/candlesticks", params=payload) self.validate_response(response) if response.json() == []: raise exceptions.InvalidSymbol('Exchange does not support the entered symbol. Please enter a valid symbol.') data = response.json() # Reverse the data list return int(data[0]['t']) def fetch(self, symbol: str, start_timestamp: int, timeframe: str = '1m') -> Union[list, None]: symbol = jh.dashy_to_underline(symbol) end_timestamp = start_timestamp + (self.limit - 1) * 60000 * jh.timeframe_to_one_minutes(timeframe) interval = timeframe_to_interval(timeframe) payload = { 'currency_pair': symbol, 'interval': interval, 'from': int(start_timestamp / 1000), 'to': int(end_timestamp / 1000), } response = requests.get(f"{self.endpoint}/candlesticks", params=payload) self.validate_response(response) if response.json() == []: raise exceptions.InvalidSymbol('Exchange does not support the entered symbol. Please enter a valid symbol.') data = [] for d in response.json(): data.append({ 'id': jh.generate_unique_id(), 'exchange': self.name, 'symbol': jh.underline_to_dashy_symbol(symbol), 'timeframe': timeframe, 'timestamp': int(d[0]) * 1000, 'open': float(d[5]), 'close': float(d[2]), 'high': float(d[3]), 'low': float(d[4]), 'volume': float(d[1]) }) return data def get_available_symbols(self) -> list: pairs = [] response = requests.get(f"{self.endpoint}/currency_pairs") self.validate_response(response) data = response.json() for p in data: pairs.append(jh.underline_to_dashy_symbol(p['id'])) return pairs ================================================ FILE: jesse/modes/import_candles_mode/drivers/Gate/GateUSDTMain.py ================================================ import requests import jesse.helpers as jh from jesse.modes.import_candles_mode.drivers.interface import CandleExchange from typing import Union from jesse import exceptions from .gate_utils import timeframe_to_interval import time from requests.adapters import HTTPAdapter from urllib3.util.retry import Retry class GateUSDTMain(CandleExchange): def __init__(self, name: str, rest_endpoint: str) -> None: super().__init__(name=name, count=200, rate_limit_per_second=10, backup_exchange_class=None) self.name = name self.limit = 2000 self.endpoint = rest_endpoint # Setup session with retries self.session = requests.Session() retries = Retry( total=3, backoff_factor=1, status_forcelist=[500, 502, 503, 504] ) self.session.mount('https://', HTTPAdapter(max_retries=retries)) def get_starting_time(self, symbol: str) -> int: symbol = jh.dashy_to_underline(symbol) payload = { 'contract': symbol, 'interval': '1w', 'limit': 1000, 'from': 1514811660 } response = requests.get(f"{self.endpoint}/usdt/candlesticks", params=payload) self.validate_response(response) if response.json() == []: raise exceptions.InvalidSymbol('Exchange does not support the entered symbol. Please enter a valid symbol.') data = response.json() # Reverse the data list return int(data[0]['t']) def fetch(self, symbol: str, start_timestamp: int, timeframe: str = '1m') -> Union[list, None]: symbol = jh.dashy_to_underline(symbol) end_timestamp = start_timestamp + (self.limit - 1) * 60000 * jh.timeframe_to_one_minutes(timeframe) interval = timeframe_to_interval(timeframe) payload = { 'contract': symbol, 'interval': interval, 'from': int(start_timestamp / 1000), 'to': int(end_timestamp / 1000), } max_retries = 3 retry_delay = 5 # seconds for attempt in range(max_retries): try: response = self.session.get( f"{self.endpoint}/usdt/candlesticks", params=payload, timeout=30 ) self.validate_response(response) break except (requests.exceptions.ConnectionError, requests.exceptions.Timeout) as e: if attempt == max_retries - 1: raise time.sleep(retry_delay) retry_delay *= 2 # Exponential backoff if response.json() == []: raise exceptions.InvalidSymbol('Exchange does not support the entered symbol. Please enter a valid symbol.') data = [] for d in response.json(): data.append({ 'id': jh.generate_unique_id(), 'exchange': self.name, 'symbol': jh.underline_to_dashy_symbol(symbol), 'timeframe': timeframe, 'timestamp': int(d['t']) * 1000, 'open': float(d['o']), 'close': float(d['c']), 'high': float(d['h']), 'low': float(d['l']), 'volume': float(d['v']) }) return data def get_available_symbols(self) -> list: pairs = [] response = requests.get(f"{self.endpoint}/usdt/contracts") self.validate_response(response) data = response.json() for p in data: pairs.append(jh.underline_to_dashy_symbol(p['name'])) return pairs ================================================ FILE: jesse/modes/import_candles_mode/drivers/Gate/GateUSDTPerpetual.py ================================================ from .GateUSDTMain import GateUSDTMain from jesse.enums import exchanges class GateUSDTPerpetual(GateUSDTMain): def __init__(self) -> None: super().__init__( name=exchanges.GATE_USDT_PERPETUAL, rest_endpoint='https://api.gateio.ws/api/v4/futures' ) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Gate/__init__.py ================================================ ================================================ FILE: jesse/modes/import_candles_mode/drivers/Gate/gate_utils.py ================================================ from jesse.enums import timeframes def timeframe_to_interval(timeframe: str) -> str: """ Convert a timeframe string to an interval in seconds. """ if timeframe == timeframes.MINUTE_1: return '1m' elif timeframe == timeframes.MINUTE_5: return '5m' elif timeframe == timeframes.MINUTE_15: return '15m' elif timeframe == timeframes.MINUTE_30: return '30m' elif timeframe == timeframes.HOUR_1: return '1h' elif timeframe == timeframes.HOUR_2: return '2h' elif timeframe == timeframes.HOUR_4: return '4h' elif timeframe == timeframes.HOUR_6: return '6h' elif timeframe == timeframes.HOUR_8: return '8h' elif timeframe == timeframes.HOUR_12: return '12h' elif timeframe == timeframes.DAY_1: return '1d' elif timeframe == timeframes.WEEK_1: return '1w' else: raise ValueError('Invalid timeframe: {}'.format(timeframe)) def interval_to_timeframe(interval: str) -> str: """ Convert an interval in seconds to a timeframe string. """ if interval == '1m': return timeframes.MINUTE_1 elif interval == '5m': return timeframes.MINUTE_5 elif interval == '15m': return timeframes.MINUTE_15 elif interval == '30m': return timeframes.MINUTE_30 elif interval == '1h': return timeframes.HOUR_1 elif interval == '2h': return timeframes.HOUR_2 elif interval == '4h': return timeframes.HOUR_4 elif interval == '6h': return timeframes.HOUR_6 elif interval == '8h': return timeframes.HOUR_8 elif interval == '12h': return timeframes.HOUR_12 elif interval == '1d': return timeframes.DAY_1 elif interval == '1w': return timeframes.WEEK_1 else: raise ValueError('Invalid interval: {}'.format(interval)) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Hyperliquid/HyperliquidPerpetual.py ================================================ from .HyperliquidPerpetualMain import HyperliquidPerpetualMain from jesse.enums import exchanges class HyperliquidPerpetual(HyperliquidPerpetualMain): def __init__(self) -> None: super().__init__( name=exchanges.HYPERLIQUID_PERPETUAL, rest_endpoint='https://api.hyperliquid.xyz/info' ) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Hyperliquid/HyperliquidPerpetualMain.py ================================================ import requests import jesse.helpers as jh from jesse.modes.import_candles_mode.drivers.interface import CandleExchange from typing import Union from .hyperliquid_utils import timeframe_to_interval class HyperliquidPerpetualMain(CandleExchange): def __init__(self, name: str, rest_endpoint: str) -> None: from jesse.modes.import_candles_mode.drivers.Binance.BinanceSpot import BinanceSpot super().__init__(name=name, count=5000, rate_limit_per_second=10, backup_exchange_class=BinanceSpot) self.name = name self.endpoint = rest_endpoint def get_starting_time(self, symbol: str) -> int: base_symbol = jh.get_base_asset(symbol) payload = { 'type': 'candleSnapshot', 'req': { 'coin': base_symbol, 'interval': 'W', 'startTime': 1514811660 } } headers = { 'Content-Type': 'application/json', } response = requests.post(self.endpoint, json=payload, headers=headers) data = response.json() # Reverse the data list data = data[::-1] return int(data[1]['t']) def fetch(self, symbol: str, start_timestamp: int, timeframe: str = '1m') -> Union[list, None]: base_symbol = jh.get_base_asset(symbol) interval = timeframe_to_interval(timeframe) payload = { 'type': 'candleSnapshot', 'req': { 'coin': base_symbol, 'interval': interval, 'startTime': int(start_timestamp) } } headers = { 'Content-Type': 'application/json', } response = requests.post(self.endpoint, json=payload, headers=headers) self.validate_response(response) data = response.json() return [ { 'id': jh.generate_unique_id(), 'exchange': self.name, 'symbol': symbol, 'timeframe': timeframe, 'timestamp': int(d['t']), 'open': float(d['o']), 'close': float(d['c']), 'high': float(d['h']), 'low': float(d['l']), 'volume': float(d['v']) } for d in data ] def get_available_symbols(self) -> list: response = requests.post(self.endpoint, json={'type': 'meta'}) self.validate_response(response) data = response.json()['universe'] pairs = [] for item in data: pairs.append(item['name'] + '-USD') return list(sorted(pairs)) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Hyperliquid/HyperliquidPerpetualTestnet.py ================================================ from .HyperliquidPerpetualMain import HyperliquidPerpetualMain from jesse.enums import exchanges class HyperliquidPerpetualTestnet(HyperliquidPerpetualMain): def __init__(self) -> None: super().__init__( name=exchanges.HYPERLIQUID_PERPETUAL_TESTNET, rest_endpoint='https://api.hyperliquid-testnet.xyz/info' ) ================================================ FILE: jesse/modes/import_candles_mode/drivers/Hyperliquid/__init__.py ================================================ # Hyperliquid drivers from .HyperliquidPerpetual import HyperliquidPerpetual from .HyperliquidPerpetualTestnet import HyperliquidPerpetualTestnet ================================================ FILE: jesse/modes/import_candles_mode/drivers/Hyperliquid/hyperliquid_utils.py ================================================ from jesse.enums import timeframes def timeframe_to_interval(timeframe: str) -> str: """ Convert a timeframe string to an interval in seconds. """ if timeframe == timeframes.MINUTE_1: return '1m' elif timeframe == timeframes.MINUTE_3: return '3m' elif timeframe == timeframes.MINUTE_5: return '5m' elif timeframe == timeframes.MINUTE_15: return '15m' elif timeframe == timeframes.MINUTE_30: return '30m' elif timeframe == timeframes.HOUR_1: return '1h' elif timeframe == timeframes.HOUR_2: return '2h' elif timeframe == timeframes.HOUR_4: return '4h' elif timeframe == timeframes.HOUR_6: return '6h' elif timeframe == timeframes.HOUR_8: return '8h' elif timeframe == timeframes.HOUR_12: return '12h' elif timeframe == timeframes.DAY_1: return '1d' elif timeframe == timeframes.DAY_3: return '3d' elif timeframe == timeframes.WEEK_1: return '1w' else: raise ValueError('Invalid timeframe: {}'.format(timeframe)) def interval_to_timeframe(interval: str) -> str: """ Convert an interval in seconds to a timeframe string. """ if interval == '1': return timeframes.MINUTE_1 elif interval == '3': return timeframes.MINUTE_3 elif interval == '5': return timeframes.MINUTE_5 elif interval == '15': return timeframes.MINUTE_15 elif interval == '30': return timeframes.MINUTE_30 elif interval == '60': return timeframes.HOUR_1 elif interval == '120': return timeframes.HOUR_2 elif interval == '240': return timeframes.HOUR_4 elif interval == '360': return timeframes.HOUR_6 elif interval == '480': return timeframes.HOUR_8 elif interval == '720': return timeframes.HOUR_12 elif interval == 'D': return timeframes.DAY_1 elif interval == 'W': return timeframes.WEEK_1 else: raise ValueError('Invalid interval: {}'.format(interval)) ================================================ FILE: jesse/modes/import_candles_mode/drivers/__init__.py ================================================ from jesse.enums import exchanges from jesse.modes.import_candles_mode.drivers.Binance.BinanceSpot import BinanceSpot from jesse.modes.import_candles_mode.drivers.Binance.BinanceUSSpot import BinanceUSSpot from jesse.modes.import_candles_mode.drivers.Binance.BinancePerpetualFutures import BinancePerpetualFutures from jesse.modes.import_candles_mode.drivers.Bitfinex.BitfinexSpot import BitfinexSpot from jesse.modes.import_candles_mode.drivers.Coinbase.CoinbaseSpot import CoinbaseSpot from jesse.modes.import_candles_mode.drivers.Binance.BinancePerpetualFuturesTestnet import BinancePerpetualFuturesTestnet from jesse.modes.import_candles_mode.drivers.Bybit.BybitUSDTPerpetual import BybitUSDTPerpetual from jesse.modes.import_candles_mode.drivers.Bybit.BybitUSDTPerpetualTestnet import BybitUSDTPerpetualTestnet from jesse.modes.import_candles_mode.drivers.Bybit.BybitUSDCPerpetual import BybitUSDCPerpetual from jesse.modes.import_candles_mode.drivers.Bybit.BybitUSDCPerpetualTestnet import BybitUSDCPerpetualTestnet from jesse.modes.import_candles_mode.drivers.Bybit.BybitSpotTestnet import BybitSpotTestnet from jesse.modes.import_candles_mode.drivers.Bybit.BybitSpot import BybitSpot from jesse.modes.import_candles_mode.drivers.Apex.ApexOmniPerpetualTestnet import ApexOmniPerpetualTestnet from jesse.modes.import_candles_mode.drivers.Apex.ApexOmniPerpetual import ApexOmniPerpetual from jesse.modes.import_candles_mode.drivers.Gate.GateUSDTPerpetual import GateUSDTPerpetual from jesse.modes.import_candles_mode.drivers.Gate.GateSpot import GateSpot from jesse.modes.import_candles_mode.drivers.Hyperliquid.HyperliquidPerpetual import HyperliquidPerpetual from jesse.modes.import_candles_mode.drivers.Hyperliquid.HyperliquidPerpetualTestnet import HyperliquidPerpetualTestnet drivers = { # Perpetual Futures exchanges.BINANCE_PERPETUAL_FUTURES: BinancePerpetualFutures, exchanges.BINANCE_PERPETUAL_FUTURES_TESTNET: BinancePerpetualFuturesTestnet, exchanges.BITFINEX_SPOT: BitfinexSpot, exchanges.COINBASE_SPOT: CoinbaseSpot, exchanges.BYBIT_USDT_PERPETUAL: BybitUSDTPerpetual, exchanges.BYBIT_USDT_PERPETUAL_TESTNET: BybitUSDTPerpetualTestnet, exchanges.BYBIT_USDC_PERPETUAL: BybitUSDCPerpetual, exchanges.BYBIT_USDC_PERPETUAL_TESTNET: BybitUSDCPerpetualTestnet, exchanges.APEX_OMNI_PERPETUAL_TESTNET: ApexOmniPerpetualTestnet, exchanges.APEX_OMNI_PERPETUAL: ApexOmniPerpetual, exchanges.GATE_USDT_PERPETUAL: GateUSDTPerpetual, exchanges.GATE_SPOT: GateSpot, exchanges.HYPERLIQUID_PERPETUAL: HyperliquidPerpetual, exchanges.HYPERLIQUID_PERPETUAL_TESTNET: HyperliquidPerpetualTestnet, # Spot exchanges.BINANCE_SPOT: BinanceSpot, exchanges.BINANCE_US_SPOT: BinanceUSSpot, exchanges.BYBIT_SPOT_TESTNET: BybitSpotTestnet, exchanges.BYBIT_SPOT: BybitSpot, } driver_names = list(drivers.keys()) ================================================ FILE: jesse/modes/import_candles_mode/drivers/interface.py ================================================ from abc import ABC, abstractmethod import requests from jesse import exceptions class CandleExchange(ABC): def __init__(self, name: str, count: int, rate_limit_per_second: float, backup_exchange_class): self.name = name self.count = count self.sleep_time = 1 / rate_limit_per_second self._backup_exchange_class = backup_exchange_class self._backup_exchange = None @property def backup_exchange(self): if self._backup_exchange_class is None: return None if self._backup_exchange is None: self._backup_exchange = self._backup_exchange_class() return self._backup_exchange @abstractmethod def fetch(self, symbol: str, start_timestamp: int, timeframe: str) -> list: pass @abstractmethod def get_starting_time(self, symbol: str) -> int: pass @abstractmethod def get_available_symbols(self) -> list: pass @staticmethod def validate_response(response: requests.Response) -> None: if response.status_code == 502: raise exceptions.ExchangeInMaintenance('ERROR: 502 Bad Gateway. Please try again later') elif response.status_code // 100 == 5: raise ConnectionError('ERROR: {} {}'.format(response.status_code, response.reason)) # unsupported inputs if response.status_code == 400: raise ValueError(response.content) # unsupported inputs if response.status_code == 404: raise ValueError(f'ERROR {response.status_code} {response.reason}. Check the symbol') # if the response code is not in the 200-299, raise an exception if response.status_code // 100 != 2: raise ConnectionError(f'ERROR {response.status_code} {response.reason}') ================================================ FILE: jesse/modes/monte_carlo_mode/MonteCarloRunner.py ================================================ from datetime import timedelta from multiprocessing import cpu_count from typing import Dict, List, Optional import os import ray import numpy as np import jesse.helpers as jh import jesse.services.logger as logger from jesse import exceptions from jesse.services.redis import sync_publish, is_process_active from jesse.services.progressbar import Progressbar from jesse.research.monte_carlo import ( monte_carlo_trades, monte_carlo_candles, GaussianNoiseCandlesPipeline, MovingBlockBootstrapCandlesPipeline ) from jesse.models.MonteCarloSession import ( update_monte_carlo_session_status, store_trades_session, update_trades_session_progress, update_trades_session_status, store_candles_session, update_candles_session_progress, update_candles_session_status, store_session_exception, append_session_logs, get_monte_carlo_session_by_id ) import traceback class MonteCarloRunner: def __init__( self, session_id: str, user_config: dict, routes: List[Dict[str, str]], data_routes: List[Dict[str, str]], candles: dict, warmup_candles: dict, run_trades: bool, run_candles: bool, num_scenarios: int, fast_mode: bool, cpu_cores: int, pipeline_type: Optional[str], pipeline_params: Optional[dict], ): if jh.python_version() == (3, 13): raise ValueError( 'Monte Carlo mode is not supported on Python 3.13. The Ray library does not support Python 3.13 yet. Please use Python 3.12 or lower.') self.session_id = session_id self.user_config = user_config self.routes = routes self.data_routes = data_routes self.candles = candles self.warmup_candles = warmup_candles self.run_trades = run_trades self.run_candles = run_candles self.num_scenarios = num_scenarios self.fast_mode = fast_mode self.pipeline_type = pipeline_type self.pipeline_params = pipeline_params or {} # Validate and set CPU cores if cpu_cores < 1: raise ValueError('cpu_cores must be an integer value greater than 0.') available = cpu_count() self.cpu_cores = cpu_cores if cpu_cores <= available else available self.start_time = jh.now_to_timestamp() # Create progress bar for tracking self.progressbar = Progressbar(num_scenarios) # Initialize Ray if not already self.ray_started_here = False if not ray.is_initialized(): try: ray.init(num_cpus=self.cpu_cores, ignore_reinit_error=True) logger.log_monte_carlo(f"Successfully started Monte Carlo session with {self.cpu_cores} CPU cores", session_id=self.session_id) self.ray_started_here = True except Exception as e: logger.log_monte_carlo(f"Error initializing Ray: {e}. Falling back to 1 CPU.", session_id=self.session_id) self.cpu_cores = 1 ray.init(num_cpus=1, ignore_reinit_error=True) self.ray_started_here = True # Setup periodic termination check client_id = jh.get_session_id() from timeloop import Timeloop self.tl = Timeloop() @self.tl.job(interval=timedelta(seconds=1)) def check_for_termination(): if is_process_active(client_id) is False: # Update session status to 'stopped' in the database if get_monte_carlo_session_by_id(self.session_id).status != 'terminated': update_monte_carlo_session_status(self.session_id, 'stopped') raise exceptions.Termination self.tl.start() # Track session IDs self.trades_session_id = None self.candles_session_id = None def run(self) -> None: logger.log_monte_carlo(f"Monte Carlo session started with {self.cpu_cores} CPU cores", session_id=self.session_id) logger.log_monte_carlo(f"Run trades: {self.run_trades}, Run candles: {self.run_candles}", session_id=self.session_id) try: # Publish general info self._publish_general_info() # Run trades first (faster) if self.run_trades: logger.log_monte_carlo("Starting trades simulation...", session_id=self.session_id) self._run_trades_simulation() logger.log_monte_carlo("Trades simulation completed", session_id=self.session_id) # Then run candles if self.run_candles: logger.log_monte_carlo("Starting candles simulation...", session_id=self.session_id) self._run_candles_simulation() logger.log_monte_carlo("Candles simulation completed", session_id=self.session_id) # Update parent session status to 'finished' update_monte_carlo_session_status(self.session_id, 'finished') # Publish completion alert sync_publish('alert', { 'message': f"Monte Carlo simulation completed successfully!", 'type': 'success' }) except exceptions.Termination: logger.log_monte_carlo("Monte Carlo simulation terminated by user", session_id=self.session_id) update_monte_carlo_session_status(self.session_id, 'stopped') raise except Exception as e: error_traceback = traceback.format_exc() error_type = type(e).__name__ logger.log_monte_carlo(f"ERROR: Monte Carlo simulation failed with {error_type}: {str(e)}", session_id=self.session_id) logger.log_monte_carlo(f"Traceback:\n{error_traceback}", session_id=self.session_id) update_monte_carlo_session_status(self.session_id, 'stopped') # Store exception in the appropriate child session if self.trades_session_id and not self.candles_session_id: store_session_exception(self.trades_session_id, 'trades', str(e), error_traceback) elif self.candles_session_id: store_session_exception(self.candles_session_id, 'candles', str(e), error_traceback) # Publish exception to frontend sync_publish('exception', { 'error': str(e), 'traceback': error_traceback }) raise finally: if self.ray_started_here and ray.is_initialized(): ray.shutdown() def _publish_general_info(self): general_info = { 'started_at': jh.timestamp_to_arrow(self.start_time).humanize(), 'run_trades': self.run_trades, 'run_candles': self.run_candles, 'num_scenarios': self.num_scenarios, 'exchange_type': self.user_config['exchange']['type'], 'leverage_mode': self.user_config['exchange'].get('futures_leverage_mode', 'N/A'), 'leverage': self.user_config['exchange'].get('futures_leverage', 'N/A'), 'cpu_cores': self.cpu_cores, } sync_publish('general_info', general_info) def _run_trades_simulation(self): # Create trades child session in DB self.trades_session_id = store_trades_session( parent_id=self.session_id, num_scenarios=self.num_scenarios ) # Publish initial progress for trades sync_publish('trades_progressbar', { 'current': 0, 'total': self.num_scenarios, 'estimated_remaining_seconds': 0 }) # Prepare config - flatten the structure from settings config = { 'starting_balance': self.user_config.get('starting_balance', 10000), 'fee': self.user_config.get('fee', 0.0005), 'type': self.user_config.get('exchange', {}).get('type', 'futures'), 'futures_leverage': self.user_config.get('exchange', {}).get('futures_leverage', 1), 'futures_leverage_mode': self.user_config.get('exchange', {}).get('futures_leverage_mode', 'cross'), 'warm_up_candles': self.user_config.get('warm_up_candles', 210), 'exchange': self.routes[0]['exchange'] } try: # Call monte_carlo_trades from research module with progress tracking results = self._run_trades_with_progress(config) # Extract summary metrics for display summary_metrics = self._extract_trades_summary_metrics(results) # Store results update_trades_session_progress( id=self.trades_session_id, completed=results.get('num_scenarios', self.num_scenarios), results=results ) update_trades_session_status(self.trades_session_id, 'finished') # Publish results sync_publish('monte_carlo_trades_summary', summary_metrics) sync_publish('monte_carlo_trades_results', results) # Log completion log_msg = f"Trades simulation completed: {results.get('num_scenarios', 0)} scenarios" append_session_logs(self.trades_session_id, 'trades', log_msg) except Exception as e: error_traceback = traceback.format_exc() error_type = type(e).__name__ logger.log_monte_carlo(f"ERROR: Trades simulation failed with {error_type}: {str(e)}", session_id=self.session_id) logger.log_monte_carlo(f"Traceback:\n{error_traceback}", session_id=self.session_id) # Store exception in database store_session_exception(self.trades_session_id, 'trades', str(e), error_traceback) update_trades_session_status(self.trades_session_id, 'stopped') # Publish exception to frontend sync_publish('exception', { 'error': str(e), 'traceback': error_traceback }) raise def _run_candles_simulation(self): # Create candles child session in DB self.candles_session_id = store_candles_session( parent_id=self.session_id, num_scenarios=self.num_scenarios, pipeline_type=self.pipeline_type, pipeline_params=self.pipeline_params ) # Publish initial progress for candles sync_publish('candles_progressbar', { 'current': 0, 'total': self.num_scenarios, 'estimated_remaining_seconds': 0 }) # Prepare config - flatten the structure from settings config = { 'starting_balance': self.user_config.get('starting_balance', 10000), 'fee': self.user_config.get('fee', 0.0005), 'type': self.user_config.get('exchange', {}).get('type', 'futures'), 'futures_leverage': self.user_config.get('exchange', {}).get('futures_leverage', 1), 'futures_leverage_mode': self.user_config.get('exchange', {}).get('futures_leverage_mode', 'cross'), 'warm_up_candles': self.user_config.get('warm_up_candles', 210), 'exchange': self.routes[0]['exchange'] } # Prepare pipeline pipeline_class = None pipeline_kwargs = self.pipeline_params.copy() if self.pipeline_type == 'gaussian': pipeline_class = GaussianNoiseCandlesPipeline # Set defaults if not provided if 'close_sigma' not in pipeline_kwargs: pipeline_kwargs['close_sigma'] = 0.001 if 'high_sigma' not in pipeline_kwargs: pipeline_kwargs['high_sigma'] = 0.0001 if 'low_sigma' not in pipeline_kwargs: pipeline_kwargs['low_sigma'] = 0.0001 else: # moving_block_bootstrap pipeline_class = MovingBlockBootstrapCandlesPipeline # Ensure batch_size is set if 'batch_size' not in pipeline_kwargs: pipeline_kwargs['batch_size'] = 10080 # 7 days try: logger.log_monte_carlo(f"Calling _run_candles_with_progress with {self.num_scenarios} scenarios", session_id=self.session_id) logger.log_monte_carlo(f"Pipeline: {self.pipeline_type}, kwargs: {pipeline_kwargs}", session_id=self.session_id) # Call monte_carlo_candles from research module with progress tracking results = self._run_candles_with_progress(config, pipeline_class, pipeline_kwargs) logger.log_monte_carlo(f"Candles simulation returned {len(results.get('scenarios', []))} scenarios", session_id=self.session_id) # Extract summary metrics for display summary_metrics = self._extract_candles_summary_metrics(results) # Store results update_candles_session_progress( id=self.candles_session_id, completed=results.get('num_scenarios', self.num_scenarios), results=results ) update_candles_session_status(self.candles_session_id, 'finished') # Publish results sync_publish('monte_carlo_candles_summary', summary_metrics) sync_publish('monte_carlo_candles_results', results) # Log completion log_msg = f"Candles simulation completed: {results.get('num_scenarios', 0)} scenarios" append_session_logs(self.candles_session_id, 'candles', log_msg) except Exception as e: error_traceback = traceback.format_exc() error_type = type(e).__name__ logger.log_monte_carlo(f"ERROR: Candles simulation failed with {error_type}: {str(e)}", session_id=self.session_id) logger.log_monte_carlo(f"Traceback:\n{error_traceback}", session_id=self.session_id) # Store exception in database store_session_exception(self.candles_session_id, 'candles', str(e), error_traceback) update_candles_session_status(self.candles_session_id, 'stopped') # Publish exception to frontend sync_publish('exception', { 'error': str(e), 'traceback': error_traceback }) raise def _run_trades_with_progress(self, config: dict) -> dict: """Run trades simulation with progress tracking""" import time # Reset progressbar for this simulation self.progressbar = Progressbar(self.num_scenarios) self.start_time = jh.now_to_timestamp() last_update_time = None throttle_interval = 0.5 # Only publish every 0.5 seconds def progress_callback(completed_count: int): """Called when scenarios complete to update progress""" nonlocal last_update_time if completed_count <= self.num_scenarios: current_time = time.time() # Only publish if enough time has passed or it's the last update should_publish = ( last_update_time is None or (current_time - last_update_time) >= throttle_interval or completed_count == self.num_scenarios ) if should_publish: # Calculate estimated remaining time elapsed = jh.now_to_timestamp() - self.start_time if completed_count > 0: avg_time_per_scenario = elapsed / completed_count remaining_scenarios = self.num_scenarios - completed_count estimated_remaining = int(avg_time_per_scenario * remaining_scenarios) else: estimated_remaining = 0 sync_publish('trades_progressbar', { 'current': completed_count, 'total': self.num_scenarios, 'estimated_remaining_seconds': estimated_remaining }) last_update_time = current_time results = monte_carlo_trades( config=config, routes=self.routes, data_routes=self.data_routes, candles=self.candles, warmup_candles=self.warmup_candles, benchmark=False, hyperparameters=None, fast_mode=self.fast_mode, num_scenarios=self.num_scenarios, progress_bar=False, cpu_cores=self.cpu_cores, progress_callback=progress_callback, result_callback=None ) # Publish completion sync_publish('trades_progressbar', { 'current': self.num_scenarios, 'total': self.num_scenarios, 'estimated_remaining_seconds': 0 }) return results def _run_candles_with_progress(self, config: dict, pipeline_class, pipeline_kwargs: dict) -> dict: """Run candles simulation with progress tracking""" import time logger.log_monte_carlo("Inside _run_candles_with_progress", session_id=self.session_id) # Reset start time for this simulation self.start_time = jh.now_to_timestamp() last_update_time = None throttle_interval = 0.5 # Only publish every 0.5 seconds def progress_callback(completed_count: int): """Called when scenarios complete to update progress""" nonlocal last_update_time if completed_count <= self.num_scenarios: current_time = time.time() # Only publish if enough time has passed or it's the last update should_publish = ( last_update_time is None or (current_time - last_update_time) >= throttle_interval or completed_count == self.num_scenarios ) if should_publish: # Calculate estimated remaining time elapsed = jh.now_to_timestamp() - self.start_time if completed_count > 0: avg_time_per_scenario = elapsed / completed_count remaining_scenarios = self.num_scenarios - completed_count estimated_remaining = int(avg_time_per_scenario * remaining_scenarios) else: estimated_remaining = 0 sync_publish('candles_progressbar', { 'current': completed_count, 'total': self.num_scenarios, 'estimated_remaining_seconds': estimated_remaining }) last_update_time = current_time logger.log_monte_carlo(f"About to call monte_carlo_candles with {len(self.candles)} candle datasets", session_id=self.session_id) results = monte_carlo_candles( config=config, routes=self.routes, data_routes=self.data_routes, candles=self.candles, warmup_candles=self.warmup_candles, hyperparameters=None, fast_mode=self.fast_mode, num_scenarios=self.num_scenarios, progress_bar=False, candles_pipeline_class=pipeline_class, candles_pipeline_kwargs=pipeline_kwargs, cpu_cores=self.cpu_cores, progress_callback=progress_callback, result_callback=None ) # Publish completion sync_publish('candles_progressbar', { 'current': self.num_scenarios, 'total': self.num_scenarios, 'estimated_remaining_seconds': 0 }) return results def _extract_trades_summary_metrics(self, results: dict) -> list: """Extract summary metrics from trades results for table display""" metrics = [] if 'confidence_analysis' not in results or 'metrics' not in results['confidence_analysis']: return metrics ca_metrics = results['confidence_analysis']['metrics'] # Define metrics to display (in order) metric_keys = ['total_return', 'max_drawdown', 'sharpe_ratio', 'calmar_ratio'] for key in metric_keys: if key not in ca_metrics: continue analysis = ca_metrics[key] original = analysis.get('original', None) percentiles = analysis.get('percentiles', {}) # Get percentiles p5 = percentiles.get('5th', None) p50 = percentiles.get('50th', None) p95 = percentiles.get('95th', None) metrics.append({ 'metric': key, 'original': original, 'worst_5': p5, 'median': p50, 'best_5': p95 }) return metrics def _extract_candles_summary_metrics(self, results: dict) -> list: """Extract summary metrics from candles results for table display""" metrics = [] if 'scenarios' not in results or not results['scenarios']: return metrics original_result = results.get('original') simulation_results = results.get('scenarios', []) if not simulation_results: return metrics # Metrics to display (in order) metric_keys = [ 'net_profit_percentage', 'max_drawdown', 'sharpe_ratio', 'win_rate', 'total', 'annual_return', 'calmar_ratio' ] # Collect values for each metric for key in metric_keys: values = [] for scenario in simulation_results: if 'metrics' in scenario and key in scenario['metrics']: val = scenario['metrics'][key] if isinstance(val, (int, float)) and np.isfinite(val): values.append(float(val)) if not values: continue arr = np.array(values) p5 = np.percentile(arr, 5) p50 = np.percentile(arr, 50) p95 = np.percentile(arr, 95) # Get original value from original backtest and normalize if needed original = None if original_result and 'metrics' in original_result and key in original_result['metrics']: original = original_result['metrics'][key] if isinstance(original, (int, float)) and np.isfinite(original): original = float(original) metrics.append({ 'metric': key, 'original': original, 'worst_5': p5, 'median': p50, 'best_5': p95 }) return metrics ================================================ FILE: jesse/modes/monte_carlo_mode/__init__.py ================================================ from multiprocessing import cpu_count from typing import Dict, List, Optional import arrow import jesse.helpers as jh from jesse.modes.backtest_mode import load_candles from jesse.services.validators import validate_routes from jesse.store import store from .MonteCarloRunner import MonteCarloRunner from jesse.services.failure import register_custom_exception_handler from jesse.routes import router from jesse.models.MonteCarloSession import ( store_monte_carlo_session, get_monte_carlo_session_by_id, update_monte_carlo_session_status, update_monte_carlo_session_state ) def run( session_id: str, user_config: dict, exchange: str, routes: List[Dict[str, str]], data_routes: List[Dict[str, str]], start_date: str, finish_date: str, run_trades: bool, run_candles: bool, num_scenarios: int, fast_mode: bool, cpu_cores: int, pipeline_type: Optional[str], pipeline_params: Optional[dict], state: dict, ) -> None: if jh.python_version() == (3, 13): raise ValueError( 'Monte Carlo mode is not supported on Python 3.13. The "Ray" library used for Monte Carlo does not support Python 3.13 yet. Please use Python 3.12 or lower.') from jesse.config import config, set_config config['app']['trading_mode'] = 'monte-carlo' # Validate at least one type is selected if not run_trades and not run_candles: raise ValueError('At least one Monte Carlo type (trades or candles) must be selected.') # Validate cpu_cores if cpu_cores < 1: raise ValueError('cpu_cores must be an integer value greater than 0. Please check your settings page.') max_cpu_cores = cpu_count() if cpu_cores > max_cpu_cores: raise ValueError(f'cpu_cores must be less than or equal to {max_cpu_cores} which is the number of cores on your machine.') # Inject config set_config(user_config) # Add exchange to routes for r in routes: r['exchange'] = exchange for r in data_routes: r['exchange'] = exchange # Set routes router.initiate(routes, data_routes) store.app.set_session_id(session_id) register_custom_exception_handler() # Validate routes validate_routes(router) # Capture strategy codes for each route (fast operation) BEFORE expensive work import os strategy_codes = {} for r in router.routes: key = f"{r.exchange}-{r.symbol}" if key not in strategy_codes: try: strategy_path = f'strategies/{r.strategy_name}/__init__.py' if os.path.exists(strategy_path): with open(strategy_path, 'r') as f: content = f.read() strategy_codes[key] = content except Exception: pass # Ensure the parent session exists in DB BEFORE loading candles so the UI can query it existing_session = get_monte_carlo_session_by_id(session_id) if existing_session: update_monte_carlo_session_status(session_id, 'running') update_monte_carlo_session_state(session_id, state, strategy_codes) if jh.is_debugging(): jh.debug(f"Resuming existing Monte Carlo session with ID: {session_id}") else: store_monte_carlo_session( id=session_id, status='running', state=state, strategy_codes=strategy_codes if strategy_codes else None ) if jh.is_debugging(): jh.debug(f"Created new Monte Carlo session with ID: {session_id}") # Load historical candles AFTER session is persisted start_date_timestamp = jh.arrow_to_timestamp(arrow.get(start_date, 'YYYY-MM-DD')) finish_date_timestamp = jh.arrow_to_timestamp(arrow.get(finish_date, 'YYYY-MM-DD')) warmup_candles, candles = load_candles(start_date_timestamp, finish_date_timestamp) # Create and run Monte Carlo runner runner = MonteCarloRunner( session_id=session_id, user_config=user_config, routes=routes, data_routes=data_routes, candles=candles, warmup_candles=warmup_candles, run_trades=run_trades, run_candles=run_candles, num_scenarios=num_scenarios, fast_mode=fast_mode, cpu_cores=cpu_cores, pipeline_type=pipeline_type, pipeline_params=pipeline_params ) runner.run() ================================================ FILE: jesse/modes/notification_api_keys.py ================================================ import json from starlette.responses import JSONResponse import jesse.helpers as jh from jesse.services import transformers def get_notification_api_keys() -> JSONResponse: from jesse.services.db import database database.open_connection() from jesse.models.NotificationApiKeys import NotificationApiKeys try: # fetch all the notification api keys api_keys = NotificationApiKeys.select() except Exception as e: database.close_connection() return JSONResponse({ 'status': 'error', 'message': str(e) }, status_code=500) # transform each api_key using transformers.get_notification_api_key() api_keys = [transformers.get_notification_api_key(api_key) for api_key in api_keys] database.close_connection() return JSONResponse({ 'data': api_keys }, status_code=200) def store_notification_api_keys( name: str, driver: str, fields: dict ) -> JSONResponse: from jesse.services.db import database database.open_connection() from jesse.models.NotificationApiKeys import NotificationApiKeys # check if the api key already exists if NotificationApiKeys.select().where(NotificationApiKeys.name == name).exists(): database.close_connection() return JSONResponse({ 'status': 'error', 'message': f'API key for the name "{name}" already exists. Please choose another driver.' }, status_code=400) try: # create the record notification_api_key: NotificationApiKeys = NotificationApiKeys.create( id=jh.generate_unique_id(), name=name, driver=driver, fields=json.dumps(fields), created_at=jh.now_to_datetime() ) except ValueError as e: database.close_connection() return JSONResponse({ 'status': 'error', 'message': str(e) }, status_code=400) except Exception as e: database.close_connection() return JSONResponse({ 'status': 'error', 'message': str(e) }, status_code=500) database.close_connection() return JSONResponse({ 'status': 'success', 'message': 'Notification API key has been stored successfully.', 'data': transformers.get_notification_api_key(notification_api_key) }, status_code=200) def delete_notification_api_keys(notification_api_key_id: str) -> JSONResponse: from jesse.services.db import database database.open_connection() from jesse.models.NotificationApiKeys import NotificationApiKeys try: # delete the record NotificationApiKeys.delete().where(NotificationApiKeys.id == notification_api_key_id).execute() except Exception as e: database.close_connection() return JSONResponse({ 'status': 'error', 'message': str(e) }, status_code=500) database.close_connection() return JSONResponse({ 'status': 'success', 'message': 'Notification API key has been deleted successfully.' }, status_code=200) ================================================ FILE: jesse/modes/optimize_mode/Optimize.py ================================================ import os import json import base64 from datetime import timedelta from multiprocessing import cpu_count import optuna import ray import numpy as np import jesse.helpers as jh import jesse.services.logger as logger from jesse import exceptions from jesse.services.redis import sync_publish from jesse.modes.optimize_mode.fitness import get_fitness from jesse.routes import router from jesse.services.progressbar import Progressbar from jesse.services.redis import is_process_active from jesse.models.OptimizationSession import update_optimization_session_status, update_optimization_session_trials, get_optimization_session, get_optimization_session_by_id import traceback # Define a Ray-compatible remote function @ray.remote def ray_evaluate_trial( user_config, formatted_routes, formatted_data_routes, strategy_hp, hp, training_warmup_candles, training_candles, testing_warmup_candles, testing_candles, optimal_total, fast_mode, trial_number, session_id ): """Ray remote function to evaluate a trial""" try: # Calculate the fitness score using the provided hyperparameters score, training_metrics, testing_metrics = get_fitness( user_config, formatted_routes, formatted_data_routes, strategy_hp, hp, training_warmup_candles, training_candles, testing_warmup_candles, testing_candles, optimal_total, fast_mode, session_id ) # Log the trial details if debugging is enabled if jh.is_debugging(): logger.log_optimize_mode(f"Ray Trial {trial_number}: Score={score}, Params={hp}", session_id ) return { 'trial_number': trial_number, 'score': score, 'params': hp, 'training_metrics': training_metrics, 'testing_metrics': testing_metrics } except exceptions.RouteNotFound as e: # Convert RouteNotFound to a standard RuntimeError to avoid serialization issues error_msg = str(e) logger.log_optimize_mode(f"Ray Trial {trial_number} failed with RouteNotFound: {error_msg}", session_id ) logger.log_optimize_mode(f"Trial {trial_number} hyperparameters: {hp}", session_id ) raise RuntimeError(f"RouteNotFound: {error_msg}") except Exception as e: # Log and re-raise other exceptions logger.log_optimize_mode(f"Ray Trial {trial_number} failed with exception: {str(e)}", session_id ) raise # Optimizer class that uses Ray for hyperparameter optimization class Optimizer: def __init__( self, session_id: str, user_config: dict, training_warmup_candles: dict, training_candles: dict, testing_warmup_candles: dict, testing_candles: dict, fast_mode: bool, optimal_total: int, cpu_cores: int, ) -> None: # Check for Python 3.13 first thing if jh.python_version() == (3, 13): raise ValueError( 'Optimization is not supported on Python 3.13. The Ray library used for optimization does not support Python 3.13 yet. Please use Python 3.12 or lower.') self.session_id = session_id # Retrieve the target strategy and its hyperparameter configuration strategy_class = jh.get_strategy_class(router.routes[0].strategy_name) self.strategy_hp = strategy_class.hyperparameters(None) if not self.strategy_hp: update_optimization_session_status(self.session_id, 'stopped') raise exceptions.InvalidStrategy('Targeted strategy does not implement a valid hyperparameters() method.') # Create study storage for persistence os.makedirs('./storage/temp/optuna', exist_ok=True) self.storage_url = f"sqlite:///./storage/temp/optuna/optuna_study.db" # The study_name uniquely identifies the optimization session - changing it will create a new session self.study_name = f"{router.routes[0].strategy_name}_optuna_ray_{self.session_id}" self.solution_len = len(self.strategy_hp) self.start_time = jh.now_to_timestamp() self.fast_mode = fast_mode self.optimal_total = optimal_total self.training_warmup_candles = training_warmup_candles self.training_candles = training_candles self.testing_warmup_candles = testing_warmup_candles self.testing_candles = testing_candles self.user_config = user_config # Validate and set the number of CPU cores to use if cpu_cores < 1: raise ValueError('cpu_cores must be an integer value greater than 0.') available = cpu_count() self.cpu_cores = cpu_cores if cpu_cores <= available else available # Get number of trials from settings self.n_trials = self.solution_len * jh.get_config('env.optimization.trials', 200) # Create a progress bar instance to update the front end about optimization progress self.progressbar = Progressbar(self.n_trials) # Initialize best trials tracking self.best_trials = [] # Trial counter and completed trials self.trial_counter = 0 self.completed_trials = 0 # Create or load the Optuna study for persistence self.study = optuna.create_study( direction='maximize', storage=self.storage_url, study_name=self.study_name, load_if_exists=True ) # Buffer to accumulate objective curve data points (one point per trial) self.objective_curve_buffer = [] self.total_objective_curve_buffer = [] # Initialize Ray if not already if not ray.is_initialized(): try: ray.init(num_cpus=self.cpu_cores, ignore_reinit_error=True) logger.log_optimize_mode(f"Successfully started optimization session with {self.cpu_cores} CPU cores", self.session_id ) except Exception as e: logger.log_optimize_mode(f"Error initializing Ray: {e}. Falling back to 1 CPU.", self.session_id ) self.cpu_cores = 1 ray.init(num_cpus=1, ignore_reinit_error=True) # Setup a periodic termination check in case the user ends the session client_id = jh.get_session_id() from timeloop import Timeloop self.tl = Timeloop() @self.tl.job(interval=timedelta(seconds=1)) def check_for_termination(): if is_process_active(client_id) is False: # Update session status to 'stopped' in the database if get_optimization_session(self.session_id)['status'] != 'terminated': update_optimization_session_status(self.session_id, 'stopped') raise exceptions.Termination self.tl.start() # Load existing trials from the Optuna study self._load_study_trials() def _load_study_trials(self): """Load trials from the database session""" session_data = get_optimization_session_by_id(self.session_id) def replace_inf_with_null(obj): if isinstance(obj, dict): return {k: replace_inf_with_null(v) for k, v in obj.items()} elif isinstance(obj, list): return [replace_inf_with_null(item) for item in obj] elif isinstance(obj, float) and (obj == float('inf') or obj == float('-inf')): return None return obj try: # Get completed trials from the Optuna study completed_trials = session_data.completed_trials if not completed_trials: logger.log_optimize_mode("No previous trials found. Starting new optimization session.", self.session_id ) return # Update completed trials count self.completed_trials = completed_trials logger.log_optimize_mode(f"Loaded {self.completed_trials} completed trials from previous session", self.session_id ) self.best_trials = replace_inf_with_null(json.loads(session_data.best_trials)) # Update best candidates display self._update_best_candidates() # Update progress bar efficiently self._set_progressbar_index(self.completed_trials) # Set trial counter to start from after the last trial self.trial_counter = completed_trials self.total_objective_curve_buffer = json.loads(session_data.objective_curve.replace('-Infinity', 'null').replace('Infinity', 'null')) # Update the database with loaded trials update_optimization_session_trials( self.session_id, self.completed_trials, self.best_trials, self.total_objective_curve_buffer, self.n_trials ) except Exception as e: logger.log_optimize_mode(f"Error loading previous trials: {e}", self.session_id ) # Reset counters in case of failure self.completed_trials = 0 self.trial_counter = 0 def _generate_trial_params(self): """Generate random hyperparameters for a trial""" hp = {} for param in self.strategy_hp: param_name = str(param['name']) param_type = param['type'] # Convert to string whether input is type class or string if isinstance(param_type, type): param_type = param_type.__name__ else: # Remove quotes if they exist param_type = param_type.strip("'").strip('"') if param_type == 'int': if 'step' in param and param['step'] is not None: steps = (param['max'] - param['min']) // param['step'] + 1 value = param['min'] + np.random.randint(0, steps) * param['step'] else: value = np.random.randint(param['min'], param['max'] + 1) hp[param_name] = value elif param_type == 'float': if 'step' in param and param['step'] is not None: steps = int((param['max'] - param['min']) / param['step']) + 1 value = param['min'] + np.random.randint(0, steps) * param['step'] else: value = np.random.uniform(param['min'], param['max']) hp[param_name] = value elif param_type == 'categorical': options = param['options'] hp[param_name] = options[np.random.randint(0, len(options))] else: raise ValueError(f"Unsupported hyperparameter type: {param_type}") return hp def _create_optuna_trial(self, trial_number, params, score, training_metrics, testing_metrics): """Create and store an Optuna trial for persistence""" try: # Create distributions for the parameters distributions = {} for param in self.strategy_hp: param_name = str(param['name']) param_type = param['type'] if isinstance(param_type, type): param_type = param_type.__name__ else: param_type = param_type.strip("'").strip('"') if param_type == 'int': if 'step' in param and param['step'] is not None: distributions[param_name] = optuna.distributions.IntDistribution( low=param['min'], high=param['max'], step=param['step'] ) else: distributions[param_name] = optuna.distributions.IntDistribution( low=param['min'], high=param['max'] ) elif param_type == 'float': if 'step' in param and param['step'] is not None: distributions[param_name] = optuna.distributions.FloatDistribution( low=param['min'], high=param['max'], step=param['step'] ) else: distributions[param_name] = optuna.distributions.FloatDistribution( low=param['min'], high=param['max'] ) elif param_type == 'categorical': distributions[param_name] = optuna.distributions.CategoricalDistribution(param['options']) # Create a new trial trial = optuna.create_trial( params=params, distributions=distributions, value=score, user_attrs={ 'training_metrics': training_metrics, 'testing_metrics': testing_metrics } ) # Add the trial to the study self.study.add_trial(trial) return True except Exception as e: logger.log_optimize_mode(f"Error creating Optuna trial: {e}", self.session_id ) return False def _process_trial_result(self, result): """Process the result of a completed trial""" trial_number = result['trial_number'] score = result['score'] params = result['params'] training_metrics = result['training_metrics'] testing_metrics = result['testing_metrics'] # Update progress self.completed_trials += 1 self.progressbar.update() # Store trial in Optuna for persistence self._create_optuna_trial(trial_number, params, score, training_metrics, testing_metrics) # Update the dashboard with general information about the progress general_info = { 'started_at': jh.timestamp_to_arrow(self.start_time).humanize(), 'trial': f'{self.completed_trials}/{self.n_trials}', 'objective_function': jh.get_config('env.optimization.objective_function', 'sharpe'), 'exchange_type': self.user_config['exchange']['type'], 'leverage_mode': self.user_config['exchange']['futures_leverage_mode'], 'leverage': self.user_config['exchange']['futures_leverage'], 'cpu_cores': self.cpu_cores, } sync_publish('general_info', general_info) # Update the progress bar and publish the current progress to the dashboard sync_publish('progressbar', { 'current': self.progressbar.current, 'estimated_remaining_seconds': self.progressbar.estimated_remaining_seconds }) # Process trial metrics for objective curve self._process_trial_metrics(trial_number, training_metrics, testing_metrics) # Add to best trials if the score is valid if score > 0.0001: # Convert parameters to DNA (base64) params_str = json.dumps(params, sort_keys=True) dna = base64.b64encode(params_str.encode()).decode() # Create trial info dict current_trial_info = { 'trial': trial_number, 'params': params, 'fitness': round(score, 4), 'value': score, # Used for sorting, not sent to frontend 'dna': dna, 'training_metrics': training_metrics, 'testing_metrics': testing_metrics } # Debug log trial metrics if jh.is_debugging(): jh.debug(f"Trial {trial_number} processed - fitness: {score}") jh.debug(f"Trial {trial_number} has training metrics: {bool(training_metrics)}") jh.debug(f"Trial {trial_number} has testing metrics: {bool(testing_metrics)}") # Get best candidates count from config best_candidates_count = jh.get_config('env.optimization.best_candidates_count', 20) # Insert into best_trials maintaining sorted order insert_idx = 0 for idx, t in enumerate(self.best_trials): if score > t['value']: insert_idx = idx break else: insert_idx = idx + 1 if insert_idx < best_candidates_count or len(self.best_trials) < best_candidates_count: self.best_trials.insert(insert_idx, current_trial_info) # Keep only top candidates as configured self.best_trials = self.best_trials[:best_candidates_count] # Update best candidates table self._update_best_candidates() # Update the database with the latest trials data # We do this every 5 trials to avoid too many database writes if self.completed_trials % 5 == 0: update_optimization_session_trials( self.session_id, self.completed_trials, self.best_trials, self.total_objective_curve_buffer, self.n_trials ) def _update_best_candidates(self): """Update the best candidates table in the dashboard""" # Get the objective function configuration objective_function_config = jh.get_config('env.optimization.objective_function', 'sharpe').lower() mapping = { 'sharpe': 'sharpe_ratio', 'calmar': 'calmar_ratio', 'sortino': 'sortino_ratio', 'omega': 'omega_ratio', 'serenity': 'serenity_index', 'smart sharpe': 'smart_sharpe', 'smart sortino': 'smart_sortino' } metric_key = mapping.get(objective_function_config, objective_function_config) best_candidates = [] for idx, t in enumerate(self.best_trials): train_value = t.get('training_metrics', {}).get(metric_key, None) test_value = t.get('testing_metrics', {}).get(metric_key, None) if isinstance(train_value, (int, float)): train_value = round(train_value, 2) if isinstance(test_value, (int, float)): test_value = round(test_value, 2) if train_value is None: train_value = "N/A" if test_value is None: test_value = "N/A" candidate_objective_metric = f"{train_value} / {test_value}" best_candidates.append({ 'rank': f"#{idx + 1}", 'trial': f"Trial {t['trial']}", 'params': t['params'], 'fitness': t['fitness'], 'dna': t['dna'], 'training_metrics': t.get('training_metrics', {}), 'testing_metrics': t.get('testing_metrics', {}), 'objective_metric': candidate_objective_metric }) # Send top candidates to the dashboard sync_publish('best_candidates', best_candidates) def _process_trial_metrics(self, trial_number, training_metrics, testing_metrics): """Process metrics from a completed trial to update objective curve""" # Only add to buffer if both metrics exist and are not empty if training_metrics and testing_metrics: data_point = { 'trial': trial_number + 1, 'training': training_metrics, 'testing': testing_metrics } self.objective_curve_buffer.append(data_point) if jh.is_debugging(): jh.debug(f"Added trial {trial_number + 1} to objective curve buffer with metrics") else: if jh.is_debugging(): jh.debug(f"Skipped trial {trial_number + 1} - missing metrics. Training: {bool(training_metrics)}, Testing: {bool(testing_metrics)}") # Publish a batch every 5 trials or when buffer reaches 10 items buffer_size = len(self.objective_curve_buffer) if buffer_size >= 10 or (buffer_size > 0 and self.completed_trials % 5 == 0): if jh.is_debugging(): jh.debug(f"Publishing objective curve LEN: {len(self.objective_curve_buffer)}") sync_publish('objective_curve', self.objective_curve_buffer) if len(self.objective_curve_buffer) > 0 and len(self.total_objective_curve_buffer) > 0: if self.objective_curve_buffer[0]['trial'] > self.total_objective_curve_buffer[-1]['trial']: self.total_objective_curve_buffer.extend(self.objective_curve_buffer) else: self.total_objective_curve_buffer.extend(self.objective_curve_buffer) self.objective_curve_buffer = [] def _set_progressbar_index(self, index): """Manually set the progressbar index for resuming sessions efficiently""" self.progressbar.index = index # Update UI to reflect progress sync_publish('progressbar', { 'current': self.progressbar.current, 'estimated_remaining_seconds': self.progressbar.estimated_remaining_seconds }) def run(self) -> optuna.trial.FrozenTrial: # Log the start of the optimization session logger.log_optimize_mode(f"Optimization session started with {self.cpu_cores} CPU cores", self.session_id ) if self.completed_trials > 0: logger.log_optimize_mode(f"Resuming from previous session with {self.completed_trials} trials already completed", self.session_id ) # Make sure the progress bar is synchronized self._set_progressbar_index(self.completed_trials) # Track the best trial - handle empty study gracefully try: best_trial_value = self.study.best_value if self.study.trials else 0.0 best_trial_params = self.study.best_params if self.study.trials else None except (ValueError, AttributeError) as e: logger.log_optimize_mode(f"Could not access best trial: {e}. Using default values.", self.session_id ) best_trial_value = 0.0 best_trial_params = None try: # Maximum number of active workers (slightly higher than CPU cores to keep CPUs busy) max_workers = min(self.cpu_cores * 2, self.n_trials - self.completed_trials) # Dictionary to keep track of active workers active_refs = {} # Begin optimization loop while self.completed_trials < self.n_trials: if self.completed_trials == 0: update_optimization_session_trials( self.session_id, 0, [], [], self.n_trials ) # Launch new trials if we have capacity while len(active_refs) < max_workers and self.trial_counter < self.n_trials: # Generate parameters for this trial hp = self._generate_trial_params() # Launch the trial evaluation ref = ray_evaluate_trial.options(num_cpus=1).remote( self.user_config, router.formatted_routes, router.formatted_data_routes, self.strategy_hp, hp, self.training_warmup_candles, self.training_candles, self.testing_warmup_candles, self.testing_candles, self.optimal_total, self.fast_mode, self.trial_counter, self.session_id ) # Store the reference active_refs[ref] = self.trial_counter self.trial_counter += 1 # No more workers to launch, wait for results if not active_refs: break # Wait for any trial to complete (with timeout to ensure responsiveness) done_refs, _ = ray.wait(list(active_refs.keys()), num_returns=1, timeout=0.5) # Process completed trials for ref in done_refs: trial_number = active_refs.pop(ref) try: result = ray.get(ref) # Process the result self._process_trial_result(result) # Update best trial if better if result['score'] > best_trial_value: best_trial_value = result['score'] best_trial_params = result['params'] except ray.exceptions.RayTaskError as e: # Check if this is a RouteNotFound error converted to RuntimeError if hasattr(e, 'cause') and isinstance(e.cause, RuntimeError) and 'RouteNotFound:' in str(e.cause): raise e.cause else: jh.debug(f'Ray task error for trial {trial_number}: {e}') original_exception = e.cause raise except Exception as e: jh.debug(f'Exception raised in the ray method for trial {trial_number}: {e}') raise e # Publish any remaining data in the buffer if self.objective_curve_buffer: jh.debug(f"Publishing remaining {len(self.objective_curve_buffer)} data points in buffer") sync_publish('objective_curve', self.objective_curve_buffer) self.objective_curve_buffer = [] # Get the best trial from the study try: best_trial = self.study.best_trial except (ValueError, AttributeError) as e: logger.log_optimize_mode(f"Could not access best trial at the end: {e}", self.session_id ) # Create a dummy trial if no best trial exists best_trial = None # Update the database with final results update_optimization_session_trials( self.session_id, self.completed_trials, self.best_trials, self.total_objective_curve_buffer, self.n_trials ) # Update session status to 'finished' update_optimization_session_status(self.session_id, 'finished') # Publish completion alert sync_publish('alert', { 'message': f"Finished {self.n_trials} trials. Check the \"Best Trials\" table for the best performing parameters.", 'type': 'success' }) except exceptions.Termination: # Handle user-initiated termination logger.log_optimize_mode("Optimization terminated by user", self.session_id ) # Update session status to 'stopped' update_optimization_session_status(self.session_id, 'stopped') raise except Exception as e: logger.log_optimize_mode(f"Error during optimization: {e}", self.session_id ) # Update session status to 'stopped' due to error update_optimization_session_status(self.session_id, 'stopped') from jesse.models.OptimizationSession import add_session_exception add_session_exception(self.session_id, str(e), str(traceback.format_exc())) raise finally: # Shutdown Ray ray.shutdown() # Create an empty FrozenTrial if best_trial is None if best_trial is None: logger.log_optimize_mode("No best trial found. Returning empty result.", self.session_id ) from optuna.trial import FrozenTrial return FrozenTrial( number=0, trial_id=0, state=optuna.trial.TrialState.COMPLETE, value=0.0, datetime_start=None, datetime_complete=None, params={}, distributions={}, user_attrs={}, system_attrs={}, intermediate_values={}, ) return best_trial ================================================ FILE: jesse/modes/optimize_mode/__init__.py ================================================ from multiprocessing import cpu_count from typing import Dict, List, Tuple import arrow import jesse.helpers as jh from jesse.modes.backtest_mode import load_candles from jesse.services.validators import validate_routes from jesse.store import store from .Optimize import Optimizer from jesse.services.failure import register_custom_exception_handler from jesse.routes import router from jesse.models.OptimizationSession import store_optimization_session, get_optimization_session_by_id, update_optimization_session_status, update_optimization_session_state def run( session_id: str, user_config: dict, exchange: str, routes: List[Dict[str, str]], data_routes: List[Dict[str, str]], training_start_date: str, training_finish_date: str, testing_start_date: str, testing_finish_date: str, optimal_total: int, fast_mode: bool, cpu_cores: int, state: dict, ) -> None: if jh.python_version() == (3, 13): raise ValueError( 'Optimization is not supported on Python 3.13. The "Ray" library used for optimization does not support Python 3.13 yet. Please use Python 3.12 or lower.') from jesse.config import config, set_config config['app']['trading_mode'] = 'optimize' # validate cpu_cores if cpu_cores < 1: raise ValueError('cpu_cores must be an integer value greater than 0. Please check your settings page for optimization.') # get the max number of cores max_cpu_cores = cpu_count() if cpu_cores > max_cpu_cores: raise ValueError(f'cpu_cores must be less than or equal to {max_cpu_cores} which is the number of cores on your machine.') # inject config set_config(user_config) # add exchange to routes for r in routes: r['exchange'] = exchange for r in data_routes: r['exchange'] = exchange # set routes router.initiate(routes, data_routes) store.app.set_session_id(session_id) register_custom_exception_handler() # validate routes validate_routes(router) # load historical candles training_warmup_candles, training_candles, testing_warmup_candles, testing_candles = _get_training_and_testing_candles( training_start_date, training_finish_date, testing_start_date, testing_finish_date ) # Capture strategy codes for each route import os strategy_codes = {} for r in router.routes: key = f"{r.exchange}-{r.symbol}" if key not in strategy_codes: try: strategy_path = f'strategies/{r.strategy_name}/__init__.py' if os.path.exists(strategy_path): with open(strategy_path, 'r') as f: content = f.read() strategy_codes[key] = content except Exception: pass # Check if we're resuming an existing session existing_session = get_optimization_session_by_id(session_id) if existing_session: # Session exists, update it for resuming update_optimization_session_status(session_id, 'running') update_optimization_session_state(session_id, state, strategy_codes) if jh.is_debugging(): jh.debug(f"Resuming existing optimization session with ID: {session_id}") else: # Session doesn't exist, create a new one store_optimization_session( id=session_id, status='running', strategy_codes=strategy_codes if strategy_codes else None ) update_optimization_session_state(session_id, state) if jh.is_debugging(): jh.debug(f"Created new optimization session with ID: {session_id}") optimizer = Optimizer( session_id, user_config, training_warmup_candles, training_candles, testing_warmup_candles, testing_candles, fast_mode, optimal_total, cpu_cores ) optimizer.run() def _get_training_and_testing_candles( training_start_date: str, training_finish_date: str, testing_start_date: str, testing_finish_date: str ) -> Tuple[dict, dict, dict, dict]: training_start_date_timestamp = jh.arrow_to_timestamp(arrow.get(training_start_date, 'YYYY-MM-DD')) training_finish_date_timestamp = jh.arrow_to_timestamp(arrow.get(training_finish_date, 'YYYY-MM-DD')) testing_start_date_timestamp = jh.arrow_to_timestamp(arrow.get(testing_start_date, 'YYYY-MM-DD')) testing_finish_date_timestamp = jh.arrow_to_timestamp(arrow.get(testing_finish_date, 'YYYY-MM-DD')) # fetch training candles training_warmup_candles, training_candles = load_candles(training_start_date_timestamp, training_finish_date_timestamp) # fetch testing candles testing_warmup_candles, testing_candles = load_candles(testing_start_date_timestamp, testing_finish_date_timestamp) return training_warmup_candles, training_candles, testing_warmup_candles, testing_candles ================================================ FILE: jesse/modes/optimize_mode/fitness.py ================================================ import sys from math import log10 import jesse.helpers as jh from jesse.research.backtest import _isolated_backtest as isolated_backtest from jesse.services import logger import numpy as np from jesse import exceptions def _formatted_inputs_for_isolated_backtest(user_config, routes): # Format input parameters required for backtest simulation return { 'starting_balance': user_config['exchange']['balance'], 'fee': user_config['exchange']['fee'], 'type': user_config['exchange']['type'], 'futures_leverage': user_config['exchange']['futures_leverage'], 'futures_leverage_mode': user_config['exchange']['futures_leverage_mode'], 'exchange': routes[0]['exchange'], 'warm_up_candles': jh.get_config('env.data.warmup_candles_num') } def get_fitness( user_config: dict, routes: list, data_routes: list, strategy_hp, hp: dict, training_warmup_candles: dict, training_candles: dict, testing_warmup_candles: dict, testing_candles: dict, optimal_total: int, fast_mode: bool, session_id ) -> tuple: """ Evaluates the fitness (i.e. backtest performance) of the strategy using the given hyperparameters (hp). The fitness score is calculated based on the backtest results. """ try: inputs = _formatted_inputs_for_isolated_backtest(user_config, routes) # Run backtest simulation for the training data using the suggested hyperparameters training_metrics = isolated_backtest( inputs, routes, data_routes, candles=training_candles, warmup_candles=training_warmup_candles, hyperparameters=hp, fast_mode=fast_mode )['metrics'] # Calculate fitness score if training_metrics['total'] > 5: total_effect_rate = log10(training_metrics['total']) / log10(optimal_total) total_effect_rate = min(total_effect_rate, 1) objective_function_config = jh.get_config('env.optimization.objective_function', 'sharpe') # Get the ratio based on objective function if objective_function_config == 'sharpe': ratio = training_metrics['sharpe_ratio'] ratio_normalized = jh.normalize(ratio, -.5, 5) elif objective_function_config == 'calmar': ratio = training_metrics['calmar_ratio'] ratio_normalized = jh.normalize(ratio, -.5, 30) elif objective_function_config == 'sortino': ratio = training_metrics['sortino_ratio'] ratio_normalized = jh.normalize(ratio, -.5, 15) elif objective_function_config == 'omega': ratio = training_metrics['omega_ratio'] ratio_normalized = jh.normalize(ratio, -.5, 5) elif objective_function_config == 'serenity': ratio = training_metrics['serenity_index'] ratio_normalized = jh.normalize(ratio, -.5, 15) elif objective_function_config == 'smart sharpe': ratio = training_metrics['smart_sharpe'] ratio_normalized = jh.normalize(ratio, -.5, 5) elif objective_function_config == 'smart sortino': ratio = training_metrics['smart_sortino'] ratio_normalized = jh.normalize(ratio, -.5, 15) else: raise ValueError( f'The entered ratio configuration `{objective_function_config}` for the optimization is unknown. ' f'Choose between sharpe, calmar, sortino, serenity, smart sharpe, smart sortino and omega.' ) # If the ratio is negative then the configuration is not usable if ratio < 0: score = 0.0001 logger.log_optimize_mode(f"NEGATIVE RATIO: hp is not usable => {objective_function_config}: {ratio}, total: {training_metrics['total']}", session_id ) return score, training_metrics, {} # Run backtest for testing period testing_metrics = isolated_backtest( inputs, routes, data_routes, candles=testing_candles, warmup_candles=testing_warmup_candles, hyperparameters=hp, fast_mode=fast_mode )['metrics'] # Calculate fitness score score = total_effect_rate * ratio_normalized if np.isnan(score): logger.log_optimize_mode(f'Score is nan. hp configuration is invalid', session_id) score = 0.0001 else: logger.log_optimize_mode(f"hp config is usable => {objective_function_config}: {round(ratio, 2)}, total: {training_metrics['total']}, " f"pnl%: {round(training_metrics['net_profit_percentage'], 2)}%, win-rate: {round(training_metrics['win_rate']*100, 2)}%", session_id) else: logger.log_optimize_mode('Less than 5 trades in the training data. hp configuration is invalid', session_id) score = 0.0001 training_metrics = {} testing_metrics = {} return score, training_metrics, testing_metrics except exceptions.RouteNotFound as e: raise e except Exception as e: import sys, traceback exc_type, exc_value, exc_traceback = sys.exc_info() traceback_details = { "filename": exc_traceback.tb_frame.f_code.co_filename, "line": exc_traceback.tb_lineno, "name": exc_traceback.tb_frame.f_code.co_name, "type": exc_type.__name__, "message": str(e) } logger.log_optimize_mode(f"Trial evaluation failed: {traceback_details}", session_id) return 0.0001, {}, {} ================================================ FILE: jesse/modes/utils.py ================================================ import jesse.helpers as jh from jesse.services import logger from jesse.info import exchange_info def save_daily_portfolio_balance(is_initial=False) -> None: if is_initial: logger.reset() from jesse.store import store # # store daily_balance of assets into database # if jh.is_livetrading(): # for asset_key, asset_value in e.assets.items(): # store_daily_balance_into_db({ # 'id': jh.generate_unique_id(), # 'timestamp': jh.now(), # 'identifier': jh.get_config('env.identifier', 'main'), # 'exchange': e.name, # 'asset': asset_key, # 'balance': asset_value, # }) total_balances = 0 # select the first item in store.exchanges.storage.items() try: e, = store.exchanges.storage.values() except ValueError: raise ValueError('Multiple exchange support is not supported at the moment') if e.type == 'futures': # For futures, add wallet balance and sum of all PNLs total_balances = e.assets[jh.app_currency()] for key, pos in store.positions.storage.items(): if pos.is_open: total_balances += pos.pnl else: # For spot, just get portfolio_value from any strategy (they all share the same wallet) # Get the first strategy we can find for key, pos in store.positions.storage.items(): total_balances = pos.strategy.portfolio_value break store.app.daily_balance.append(total_balances) if not jh.is_livetrading(): logger.info(f'Saved daily portfolio balance: {round(total_balances, 2)}') def get_exchange_type(exchange_name: str) -> str: """ a helper for getting the exchange_type for the running session """ # in live trading, exchange type is not configurable, hence we hardcode it if jh.is_live(): return exchange_info[exchange_name]['type'] # for other trading modes, we can get the exchange type from the config file return jh.get_config(f'env.exchanges.{exchange_name}.type') ================================================ FILE: jesse/repositories/__init__.py ================================================ from . import order_repository from . import closed_trade_repository from . import candle_repository from . import live_equity_repository ================================================ FILE: jesse/repositories/candle_repository.py ================================================ from jesse.models.Candle import Candle import jesse.helpers as jh from typing import List import numpy as np import arrow def delete_candles_from_db(exchange: str, symbol: str) -> None: """ Deletes all candles for the given exchange and symbol """ Candle.delete().where( Candle.exchange == exchange, Candle.symbol == symbol ).execute() def get_existing_candles() -> List[dict]: """ Returns a list of all existing candles grouped by exchange and symbol """ results = [] # Get unique exchange-symbol combinations pairs = Candle.select( Candle.exchange, Candle.symbol ).distinct().tuples() for exchange, symbol in pairs: # Get first and last candle for this pair first = Candle.select( Candle.timestamp ).where( Candle.exchange == exchange, Candle.symbol == symbol ).order_by( Candle.timestamp.asc() ).first() last = Candle.select( Candle.timestamp ).where( Candle.exchange == exchange, Candle.symbol == symbol ).order_by( Candle.timestamp.desc() ).first() if first and last: results.append({ 'exchange': exchange, 'symbol': symbol, 'start_date': arrow.get(first.timestamp / 1000).format('YYYY-MM-DD'), 'end_date': arrow.get(last.timestamp / 1000).format('YYYY-MM-DD') }) return results def fetch_candles_from_db(exchange: str, symbol: str, timeframe: str, start_date: int, finish_date: int) -> tuple: res = tuple( Candle.select( Candle.timestamp, Candle.open, Candle.close, Candle.high, Candle.low, Candle.volume ).where( Candle.exchange == exchange, Candle.symbol == symbol, Candle.timeframe == timeframe, Candle.timestamp.between(start_date, finish_date) ).order_by(Candle.timestamp.asc()).tuples() ) return res def store_candles_into_db(exchange: str, symbol: str, timeframe: str, candles: np.ndarray, on_conflict='ignore') -> None: # make sure the number of candles is more than 0 if len(candles) == 0: raise Exception(f'No candles to store for {exchange}-{symbol}-{timeframe}') # convert candles to list of dicts candles_list = [] for candle in candles: d = { 'id': jh.generate_unique_id(), 'symbol': symbol, 'exchange': exchange, 'timestamp': candle[0], 'open': candle[1], 'high': candle[3], 'low': candle[4], 'close': candle[2], 'volume': candle[5], 'timeframe': timeframe, } candles_list.append(d) if on_conflict == 'ignore': Candle.insert_many(candles_list).on_conflict_ignore().execute() elif on_conflict == 'replace': Candle.insert_many(candles_list).on_conflict( conflict_target=['exchange', 'symbol', 'timeframe', 'timestamp'], preserve=(Candle.open, Candle.high, Candle.low, Candle.close, Candle.volume), ).execute() elif on_conflict == 'error': Candle.insert_many(candles_list).execute() else: raise Exception(f'Unknown on_conflict value: {on_conflict}') def store_candle_into_db(exchange: str, symbol: str, timeframe: str, candle: np.ndarray, on_conflict='ignore') -> None: d = { 'id': jh.generate_unique_id(), 'exchange': exchange, 'symbol': symbol, 'timeframe': timeframe, 'timestamp': candle[0], 'open': candle[1], 'high': candle[3], 'low': candle[4], 'close': candle[2], 'volume': candle[5] } if on_conflict == 'ignore': Candle.insert(**d).on_conflict_ignore().execute() elif on_conflict == 'replace': Candle.insert(**d).on_conflict( conflict_target=['exchange', 'symbol', 'timeframe', 'timestamp'], preserve=(Candle.open, Candle.high, Candle.low, Candle.close, Candle.volume), ).execute() elif on_conflict == 'error': Candle.insert(**d).execute() else: raise Exception(f'Unknown on_conflict value: {on_conflict}') ================================================ FILE: jesse/repositories/closed_trade_repository.py ================================================ from typing import List, Optional import numpy as np from peewee import Cast import jesse.helpers as jh from jesse.config import config from jesse.enums import order_statuses, sides from jesse.models.ClosedTrade import ClosedTrade from jesse.models.Order import Order from jesse.services.db import database def _ensure_db_open() -> None: if not database.is_open(): database.open_connection() def populate_order_arrays(trade: ClosedTrade) -> ClosedTrade: """ Populate buy_orders and sell_orders arrays from the Order table. This is needed when loading trades from the database so that computed properties like entry_price, exit_price, qty, pnl, etc. work correctly. """ orders = list( Order.select() .where(Order.trade_id == trade.id) .where(Order.status == order_statuses.EXECUTED) .order_by(Order.executed_at) ) trade.orders = orders for o in orders: if o.side == sides.BUY: trade.buy_orders.append(np.array([abs(o.filled_qty), o.price])) elif o.side == sides.SELL: trade.sell_orders.append(np.array([abs(o.filled_qty), o.price])) return trade def find_by_id(trade_id: str) -> Optional[ClosedTrade]: if jh.is_unit_testing(): return None _ensure_db_open() try: trade = ClosedTrade.select().where(ClosedTrade.id == trade_id).first() # add orders to trade if trade: populate_order_arrays(trade) return trade except Exception: return None def find_by_session_id(session_id: str, limit: int = None) -> List[ClosedTrade]: if jh.is_unit_testing(): return [] _ensure_db_open() query = ( ClosedTrade.select() .where(ClosedTrade.session_id == session_id) # Sort by: open trades first (closed_at IS NULL), then by most recent opened_at .order_by(ClosedTrade.closed_at.is_null(False), ClosedTrade.opened_at.desc()) ) if limit is not None: query = query.limit(limit) trades = list(query) for trade in trades: populate_order_arrays(trade) return trades def create(trade_data: dict) -> Optional[ClosedTrade]: if jh.is_unit_testing(): return None _ensure_db_open() d = { "id": trade_data.get("id"), "session_id": trade_data.get("session_id"), "strategy_name": trade_data.get("strategy_name"), "symbol": trade_data.get("symbol"), "exchange": trade_data.get("exchange"), "type": trade_data.get("type"), "timeframe": trade_data.get("timeframe"), "leverage": trade_data.get("leverage"), "created_at": trade_data.get("created_at", jh.now_to_timestamp()), "updated_at": trade_data.get("updated_at", jh.now_to_timestamp()), "session_mode": config["app"]["trading_mode"], "opened_at": trade_data.get("opened_at"), } if trade_data.get("closed_at") is not None: d["closed_at"] = trade_data.get("closed_at") try: ClosedTrade.insert(**d).execute() return ClosedTrade.get(ClosedTrade.id == d["id"]) except Exception as e: try: database.db.rollback() except Exception: pass jh.dump(f"Error storing closed trade in database: {e}") raise def update(trade: ClosedTrade) -> None: if jh.is_unit_testing(): return _ensure_db_open() d = { "updated_at": jh.now_to_timestamp(), } if trade.closed_at is not None: d["closed_at"] = trade.closed_at if trade.opened_at is not None: d['opened_at'] = trade.opened_at try: ClosedTrade.update(**d).where(ClosedTrade.id == trade.id).execute() except Exception as e: try: database.db.rollback() except Exception: pass jh.dump(f"Error updating closed trade in database: {e}") raise def store_or_update(trade: ClosedTrade) -> None: if jh.is_unit_testing(): return _ensure_db_open() db_trade = ClosedTrade.select().where(ClosedTrade.id == trade.id).first() if db_trade: update(trade) return d = { "id": trade.id, "session_id": trade.session_id, "strategy_name": trade.strategy_name, "symbol": trade.symbol, "exchange": trade.exchange, "type": trade.type, "timeframe": trade.timeframe, "leverage": trade.leverage, "created_at": trade.created_at if hasattr(trade, "created_at") and trade.created_at else jh.now_to_timestamp(), "updated_at": trade.updated_at if hasattr(trade, "updated_at") and trade.updated_at else jh.now_to_timestamp(), "session_mode": config["app"]["trading_mode"], "opened_at": trade.opened_at, } if trade.closed_at is not None: d["closed_at"] = trade.closed_at try: ClosedTrade.insert(**d).execute() except Exception as e: try: database.db.rollback() except Exception: pass jh.dump(f"Error storing closed trade in database: {e}") def close_trade(trade: ClosedTrade, opened_at: int = None) -> None: if jh.is_unit_testing(): return _ensure_db_open() d = { "closed_at": trade.closed_at if trade.closed_at else jh.now_to_timestamp(), "updated_at": jh.now_to_timestamp(), } if opened_at: d["opened_at"] = opened_at try: ClosedTrade.update(**d).where(ClosedTrade.id == trade.id).execute() except Exception as e: try: database.db.rollback() except Exception: pass jh.dump(f"Error closing trade in database: {e}") def disable_trade(trade_id: str) -> None: if jh.is_unit_testing(): return _ensure_db_open() d = { "soft_deleted_at": jh.now_to_timestamp(), } ClosedTrade.update(**d).where(ClosedTrade.id == trade_id).execute() def find_by_filters( id_search: str = None, status_filter: str = None, symbol_filter: str = None, date_filter: str = None, exchange_filter: str = None, type_filter: str = None, limit: int = 50, offset: int = 0 ) -> List[ClosedTrade]: if jh.is_unit_testing(): return [] _ensure_db_open() # If a previous query failed, the connection can be left in an aborted transaction state. # Rolling back here ensures subsequent SELECTs work. try: database.db.rollback() except Exception: pass query = ClosedTrade.select() if id_search: # UUID fields can't be searched with ILIKE directly; cast to text first. query = query.where( (Cast(ClosedTrade.id, 'text').contains(id_search)) | (Cast(ClosedTrade.session_id, 'text').contains(id_search)) ) if status_filter: if status_filter == 'open': query = query.where(ClosedTrade.closed_at == None) elif status_filter == 'closed': query = query.where(ClosedTrade.closed_at != None) if symbol_filter: query = query.where(ClosedTrade.symbol.contains(symbol_filter)) if exchange_filter: query = query.where(ClosedTrade.exchange.contains(exchange_filter)) if type_filter: query = query.where(ClosedTrade.type.contains(type_filter)) if date_filter: cutoff_timestamp = jh.now_to_timestamp() if date_filter == '7_days': cutoff_timestamp -= 7 * 24 * 60 * 60 * 1000 elif date_filter == '30_days': cutoff_timestamp -= 30 * 24 * 60 * 60 * 1000 elif date_filter == '90_days': cutoff_timestamp -= 90 * 24 * 60 * 60 * 1000 if date_filter != 'all_time': query = query.where(ClosedTrade.opened_at >= cutoff_timestamp) query = query.order_by(ClosedTrade.closed_at.is_null(False), ClosedTrade.opened_at.desc()).limit(limit).offset(offset) try: trades = list(query) for trade in trades: populate_order_arrays(trade) return trades except Exception: # Ensure we don't poison the connection for subsequent requests. try: database.db.rollback() except Exception: pass raise def get_open_trade(exchange_name: str, symbol: str, is_initial: bool = False) -> Optional[ClosedTrade]: if jh.is_unit_testing(): return None _ensure_db_open() trade = ( ClosedTrade.select() .where(ClosedTrade.soft_deleted_at == None) .where(ClosedTrade.session_mode == "livetrade") .where(ClosedTrade.exchange == exchange_name) .where(ClosedTrade.symbol == symbol) .where(ClosedTrade.closed_at == None) .order_by(ClosedTrade.opened_at.desc()) .first() ) if trade is None or not is_initial: return trade exchange_orders = list( Order.select() .where(Order.trade_id == trade.id) .where(Order.status == order_statuses.EXECUTED) .where(Order.order_exist_in_exchange == True) .order_by(Order.executed_at) ) simulated_orders = list( Order.select() .where(Order.trade_id == trade.id) .where(Order.status == order_statuses.EXECUTED) .where(Order.order_exist_in_exchange == False) .order_by(Order.executed_at) ) trade.is_simulated = False if len(exchange_orders) == 0: if len(simulated_orders) > 0: for simulated_order in simulated_orders: if simulated_order.side == sides.BUY: trade.buy_orders.append(np.array([abs(simulated_order.filled_qty), simulated_order.price])) elif simulated_order.side == sides.SELL: trade.sell_orders.append(np.array([abs(simulated_order.filled_qty), simulated_order.price])) trade.is_simulated = True return trade trade.orders = {order.exchange_id: order for order in exchange_orders if order.exchange_id} for o in exchange_orders + simulated_orders: if o.side == sides.BUY: trade.buy_orders.append(np.array([abs(o.filled_qty), o.price])) elif o.side == sides.SELL: trade.sell_orders.append(np.array([abs(o.filled_qty), o.price])) if trade.current_qty == 0: close_trade(trade) return None else: return trade ================================================ FILE: jesse/repositories/live_equity_repository.py ================================================ from typing import Optional, List import math import jesse.helpers as jh from jesse.models.LiveEquitySnapshot import LiveEquitySnapshot from jesse.services.db import database def _ensure_db_open() -> None: if not database.is_open(): database.open_connection() def upsert_snapshot(session_id: str, timestamp: int, currency: str, equity: float) -> None: """ Insert or update a single equity snapshot for the given session and minute bucket. Uses ON CONFLICT to ensure only one row per (session_id, timestamp). """ if jh.is_unit_testing(): return _ensure_db_open() # Peewee doesn't have native UPSERT, so we use raw SQL # NOTE: Backwards compatible with older schema using bucket_ms query_ts = """ INSERT INTO liveequitysnapshot (session_id, "timestamp", currency, equity) VALUES (%s, %s, %s, %s) ON CONFLICT (session_id, "timestamp") DO UPDATE SET equity = EXCLUDED.equity, currency = EXCLUDED.currency """ try: database.db.execute_sql(query_ts, (session_id, timestamp, currency, equity)) return except Exception: query_bucket = """ INSERT INTO liveequitysnapshot (session_id, bucket_ms, currency, equity) VALUES (%s, %s, %s, %s) ON CONFLICT (session_id, bucket_ms) DO UPDATE SET equity = EXCLUDED.equity, currency = EXCLUDED.currency """ database.db.execute_sql(query_bucket, (session_id, timestamp, currency, equity)) def _choose_step_ms(from_ms: int, to_ms: int, timeframe: str, max_points: int = 1000) -> int: """ Choose the step size in milliseconds based on timeframe or auto-resolution. """ if timeframe == 'auto': # Calculate raw step needed duration_ms = to_ms - from_ms if duration_ms <= 0: return 60_000 # default to 1m raw_step = math.ceil(duration_ms / max_points / 60_000) * 60_000 # Snap to friendly steps if raw_step <= 60_000: return 60_000 # 1m elif raw_step <= 300_000: return 300_000 # 5m elif raw_step <= 900_000: return 900_000 # 15m elif raw_step <= 3_600_000: return 3_600_000 # 1h else: return 86_400_000 # 1d # Fixed timeframes timeframe_map = { '1m': 60_000, '5m': 300_000, '15m': 900_000, '1h': 3_600_000, '1d': 86_400_000, } return timeframe_map.get(timeframe, 60_000) def query_equity_curve( session_id: str, from_ms: Optional[int] = None, to_ms: Optional[int] = None, timeframe: str = 'auto', max_points: int = 1000 ) -> dict: """ Query equity curve with downsampling. Returns dict with currency and data points. Uses DISTINCT ON to return the last value per bucket. """ if jh.is_unit_testing(): return {'currency': 'USD', 'data': []} _ensure_db_open() # Default time range if from_ms is None: from_ms = 0 if to_ms is None: # IMPORTANT: in API/server context jh.now() can return store.app.time (stale). # We need a fresh wall-clock timestamp for querying DB time-series. to_ms = jh.now(True) step_ms = _choose_step_ms(from_ms, to_ms, timeframe, max_points) # Query using DISTINCT ON for downsampling (avoid relying on SELECT alias in DISTINCT ON) query_ts = """ SELECT DISTINCT ON ((( "timestamp" / %s) * %s)) (( "timestamp" / %s) * %s) AS grp_ms, "timestamp", currency, equity FROM liveequitysnapshot WHERE session_id = %s AND "timestamp" >= %s AND "timestamp" <= %s ORDER BY (( "timestamp" / %s) * %s), "timestamp" DESC """ try: cursor = database.db.execute_sql( query_ts, (step_ms, step_ms, step_ms, step_ms, session_id, from_ms, to_ms, step_ms, step_ms) ) except Exception: # Backwards compatible with older schema using bucket_ms query_bucket = """ SELECT DISTINCT ON ((( bucket_ms / %s) * %s)) (( bucket_ms / %s) * %s) AS grp_ms, bucket_ms, currency, equity FROM liveequitysnapshot WHERE session_id = %s AND bucket_ms >= %s AND bucket_ms <= %s ORDER BY (( bucket_ms / %s) * %s), bucket_ms DESC """ cursor = database.db.execute_sql( query_bucket, (step_ms, step_ms, step_ms, step_ms, session_id, from_ms, to_ms, step_ms, step_ms) ) rows = cursor.fetchall() if not rows: return {'currency': 'USD', 'data': []} # Extract currency from first row currency = rows[0][2] if len(rows) > 0 else 'USD' # Build data points data = [] for row in rows: data.append({ 'time': int(row[1] / 1000), # Convert ms to seconds for chart 'value': round(row[3], 2), # Match backtest equity curve primary color (Portfolio series) 'color': '#818CF8' }) return { 'currency': currency, 'data': data } def get_session_equity_count(session_id: str) -> int: """ Get the total number of equity snapshots for a session. Useful for debugging/monitoring. """ if jh.is_unit_testing(): return 0 _ensure_db_open() try: return LiveEquitySnapshot.select().where( LiveEquitySnapshot.session_id == session_id ).count() except Exception: return 0 ================================================ FILE: jesse/repositories/live_session_repository.py ================================================ from typing import List, Optional import json import jesse.helpers as jh from jesse.models.LiveSession import LiveSession from jesse.services.db import database from jesse.enums import live_session_statuses from jesse.enums import live_session_modes def _ensure_db_open() -> None: if not database.is_open(): database.open_connection() def get_live_session_by_id(session_id: str) -> Optional[LiveSession]: """ Get a single live session by ID """ if jh.is_unit_testing(): return None _ensure_db_open() try: return LiveSession.select().where(LiveSession.id == session_id).first() except Exception: return None def get_live_sessions( limit: int = 50, offset: int = 0, title_search: str = None, status_filter: str = None, date_filter: str = None, mode_filter: str = None ) -> List[LiveSession]: """ Returns a list of LiveSession objects sorted by most recently updated with pagination and filters. Excludes draft sessions by default. """ if jh.is_unit_testing(): return [] _ensure_db_open() query = LiveSession.select().where(LiveSession.status != live_session_statuses.DRAFT).order_by(LiveSession.updated_at.desc()) # Apply title filter (case-insensitive) if title_search: query = query.where(LiveSession.title.contains(title_search)) # Apply status filter if status_filter and status_filter != 'all': query = query.where(LiveSession.status == status_filter) # Apply mode filter if mode_filter and mode_filter != 'all': query = query.where(LiveSession.session_mode == mode_filter) # Apply date filter if date_filter and date_filter != 'all_time': current_timestamp = jh.now_to_timestamp(True) if date_filter == '7_days': threshold = current_timestamp - (7 * 24 * 60 * 60 * 1000) elif date_filter == '30_days': threshold = current_timestamp - (30 * 24 * 60 * 60 * 1000) elif date_filter == '90_days': threshold = current_timestamp - (90 * 24 * 60 * 60 * 1000) else: threshold = 0 if threshold > 0: query = query.where(LiveSession.created_at >= threshold) return list(query.limit(limit).offset(offset)) def store_live_session( id: str, status: str, session_mode: str, exchange: str, state: dict = None ) -> None: """ Create or update a live session record """ if jh.is_unit_testing(): return _ensure_db_open() # Check if session already exists existing_session = get_live_session_by_id(id) if existing_session: # Update existing session - reset it to fresh state d = { 'status': status, 'session_mode': session_mode, 'exchange': exchange, 'state': None, 'finished_at': None, 'exception': None, 'traceback': None, 'updated_at': jh.now_to_timestamp(True) } if state: if isinstance(state, dict) and 'form' in state and isinstance(state['form'], dict): for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']: if key in state['form']: state['form'][key] = jh.normalize_bool(state['form'].get(key)) d['state'] = json.dumps(state) LiveSession.update(**d).where(LiveSession.id == id).execute() else: # Create a new session d = { 'id': id, 'status': status, 'session_mode': session_mode, 'exchange': exchange, 'state': None, 'created_at': jh.now_to_timestamp(True), 'updated_at': jh.now_to_timestamp(True) } if state: if isinstance(state, dict) and 'form' in state and isinstance(state['form'], dict): for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']: if key in state['form']: state['form'][key] = jh.normalize_bool(state['form'].get(key)) d['state'] = json.dumps(state) LiveSession.insert(**d).execute() def update_live_session_status(id: str, status: str) -> None: """ Update the status of a live session """ if jh.is_unit_testing(): return _ensure_db_open() d = { 'status': status, 'updated_at': jh.now_to_timestamp(True) } LiveSession.update(**d).where(LiveSession.id == id).execute() def update_live_session_state(id: str, state: dict) -> None: """ Update the state of a live session """ if jh.is_unit_testing(): return _ensure_db_open() if isinstance(state, dict) and 'form' in state and isinstance(state['form'], dict): for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']: if key in state['form']: state['form'][key] = jh.normalize_bool(state['form'].get(key)) d = { 'state': json.dumps(state), 'updated_at': jh.now_to_timestamp(True) } LiveSession.update(**d).where(LiveSession.id == id).execute() def upsert_live_session_state(id: str, state: dict) -> None: """ Create or update the state of a live session. If session doesn't exist, creates as draft. """ if jh.is_unit_testing(): return _ensure_db_open() if isinstance(state, dict) and 'form' in state and isinstance(state['form'], dict): for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']: if key in state['form']: state['form'][key] = jh.normalize_bool(state['form'].get(key)) existing_session = get_live_session_by_id(id) if existing_session: # Update existing session's state d = { 'state': json.dumps(state), 'updated_at': jh.now_to_timestamp(True) } LiveSession.update(**d).where(LiveSession.id == id).execute() else: # Extract exchange from state.form if available exchange = state.get('form', {}).get('exchange', '') session_mode = live_session_modes.PAPERTRADE if state.get('form', {}).get('paper_mode', True) else live_session_modes.LIVETRADE d = { 'id': id, 'status': live_session_statuses.DRAFT, 'session_mode': session_mode, 'exchange': exchange, 'state': json.dumps(state), 'created_at': jh.now_to_timestamp(True), 'updated_at': jh.now_to_timestamp(True) } LiveSession.insert(**d).execute() def update_live_session_notes( id: str, title: str = None, description: str = None, strategy_codes: dict = None ) -> None: """ Update the notes (title, description, strategy_codes) of a live session """ if jh.is_unit_testing(): return _ensure_db_open() d = { 'updated_at': jh.now_to_timestamp(True) } if title is not None: d['title'] = title if description is not None: d['description'] = description if strategy_codes is not None: d['strategy_codes'] = json.dumps(strategy_codes) LiveSession.update(**d).where(LiveSession.id == id).execute() def update_live_session_finished(id: str, finished_at: int = None) -> None: """ Mark a live session as finished with the finish timestamp """ if jh.is_unit_testing(): return _ensure_db_open() d = { 'finished_at': finished_at if finished_at else jh.now_to_timestamp(True), 'updated_at': jh.now_to_timestamp(True) } LiveSession.update(**d).where(LiveSession.id == id).execute() def store_live_session_exception(id: str, exception: str, traceback: str) -> None: """ Store exception information for a live session """ if jh.is_unit_testing(): return _ensure_db_open() d = { 'exception': exception, 'traceback': traceback, 'updated_at': jh.now_to_timestamp(True) } LiveSession.update(**d).where(LiveSession.id == id).execute() def delete_live_session(session_id: str) -> bool: """ Delete a live session from the database """ if jh.is_unit_testing(): return True _ensure_db_open() try: LiveSession.delete().where(LiveSession.id == session_id).execute() return True except Exception as e: jh.debug(f"Error deleting live session: {e}") return False def purge_live_sessions(days_old: int = None) -> int: """ Purge live sessions older than specified days Returns the number of sessions deleted """ if jh.is_unit_testing(): return 0 _ensure_db_open() try: current_timestamp = jh.now_to_timestamp(True) if days_old is not None: days_old = int(days_old) if days_old is not None and days_old > 0: threshold = current_timestamp - (days_old * 24 * 60 * 60 * 1000) all_sessions = LiveSession.select() sessions_to_delete = [] for session in all_sessions: try: session_updated_at = int(session.updated_at) if session.updated_at else 0 if session_updated_at < threshold: sessions_to_delete.append(session.id) except (ValueError, TypeError): continue deleted_count = 0 for session_id in sessions_to_delete: try: LiveSession.delete().where(LiveSession.id == session_id).execute() deleted_count += 1 except Exception: pass else: # Delete all sessions deleted_count = LiveSession.delete().execute() return deleted_count except Exception as e: jh.debug(f"Error purging live sessions: {e}") return 0 ================================================ FILE: jesse/repositories/open_tab_repository.py ================================================ from typing import List import jesse.helpers as jh from jesse.models.OpenTab import OpenTab from jesse.services.db import database import peewee def _ensure_db_open() -> None: if not database.is_open(): database.open_connection() def get_open_tabs(module: str) -> List[OpenTab]: """ Get all open tabs for a module, ordered by order_index """ if jh.is_unit_testing(): return [] _ensure_db_open() try: return list(OpenTab.select().where(OpenTab.module == module).order_by(OpenTab.order_index.asc())) except Exception: return [] def get_open_tab_session_ids(module: str) -> List[str]: """ Get session IDs of all open tabs for a module, ordered by order_index """ tabs = get_open_tabs(module) return [str(tab.session_id) for tab in tabs] def add_open_tab(module: str, session_id: str) -> List[str]: """ Add a new tab (or update if exists). Returns ordered list of session IDs. For singleton modules (optimization, monte_carlo), ensures only 1 tab exists. """ if jh.is_unit_testing(): return [] _ensure_db_open() singleton_modules = ['optimization', 'monte_carlo'] # For singleton modules, remove all existing tabs first if module in singleton_modules: OpenTab.delete().where(OpenTab.module == module).execute() order_index = 0 else: # Check if tab already exists existing = OpenTab.select().where( (OpenTab.module == module) & (OpenTab.session_id == session_id) ).first() if existing: # Already exists, just return current order return get_open_tab_session_ids(module) # Get max order_index for this module max_order = OpenTab.select(peewee.fn.MAX(OpenTab.order_index)).where( OpenTab.module == module ).scalar() order_index = (max_order + 1) if max_order is not None else 0 # Create new tab now = jh.now_to_timestamp(True) OpenTab.create( id=jh.generate_unique_id(), module=module, session_id=session_id, order_index=order_index, created_at=now, updated_at=now ) return get_open_tab_session_ids(module) def remove_open_tab(module: str, session_id: str) -> List[str]: """ Remove a tab and reorder remaining tabs. Returns ordered list of session IDs. """ if jh.is_unit_testing(): return [] _ensure_db_open() # Delete the tab OpenTab.delete().where( (OpenTab.module == module) & (OpenTab.session_id == session_id) ).execute() # Reorder remaining tabs tabs = get_open_tabs(module) for idx, tab in enumerate(tabs): if tab.order_index != idx: tab.order_index = idx tab.updated_at = jh.now_to_timestamp(True) tab.save() return get_open_tab_session_ids(module) def reorder_open_tabs(module: str, session_ids: List[str]) -> List[str]: """ Reorder tabs to match the provided session_ids list. For singleton modules, ensures only 1 tab exists. Returns ordered list of session IDs. """ if jh.is_unit_testing(): return [] _ensure_db_open() singleton_modules = ['optimization', 'monte_carlo'] # For singleton modules, keep only the first ID if module in singleton_modules: session_ids = session_ids[:1] if session_ids else [] # Remove all tabs that aren't in the singleton list if session_ids: OpenTab.delete().where( (OpenTab.module == module) & (OpenTab.session_id != session_ids[0]) ).execute() else: OpenTab.delete().where(OpenTab.module == module).execute() now = jh.now_to_timestamp(True) # Update order_index for each tab for idx, session_id in enumerate(session_ids): tab = OpenTab.select().where( (OpenTab.module == module) & (OpenTab.session_id == session_id) ).first() if tab: tab.order_index = idx tab.updated_at = now tab.save() else: # Create if doesn't exist OpenTab.create( id=jh.generate_unique_id(), module=module, session_id=session_id, order_index=idx, created_at=now, updated_at=now ) # Remove tabs that aren't in the provided list OpenTab.delete().where( (OpenTab.module == module) & (OpenTab.session_id.not_in(session_ids)) ).execute() return get_open_tab_session_ids(module) def clear_open_tabs(module: str) -> None: """ Remove all open tabs for a module """ if jh.is_unit_testing(): return _ensure_db_open() OpenTab.delete().where(OpenTab.module == module).execute() ================================================ FILE: jesse/repositories/order_repository.py ================================================ from typing import Optional, List, Tuple import uuid import numpy as np import jesse.helpers as jh from peewee import Cast from jesse.models import Candle from jesse.models.Order import Order from jesse.enums import order_statuses from jesse.config import config from jesse.store import store from jesse.services.db import database def create(order_data: dict) -> Order: if jh.is_unit_testing(): return None if not database.is_open(): database.open_connection() d = { 'id': order_data.get('id'), 'session_id': store.app.session_id, 'symbol': order_data.get('symbol'), 'exchange': order_data.get('exchange'), 'side': order_data.get('side'), 'type': order_data.get('type'), 'reduce_only': order_data.get('reduce_only'), 'qty': order_data.get('qty'), 'status': order_data.get('status'), 'created_at': order_data.get('created_at', jh.now_to_timestamp()), 'updated_at': order_data.get('updated_at', jh.now_to_timestamp()), 'session_mode': config['app']['trading_mode'], } if 'trade_id' in order_data and order_data.get('trade_id'): d['trade_id'] = order_data['trade_id'] if 'executed_at' in order_data and order_data.get('executed_at'): d['executed_at'] = order_data['executed_at'] if 'filled_qty' in order_data: d['filled_qty'] = order_data.get('filled_qty') if 'price' in order_data: d['price'] = order_data.get('price') if 'submitted_via' in order_data and order_data.get('submitted_via'): d['submitted_via'] = order_data['submitted_via'] if 'jesse_submitted' in order_data: d['jesse_submitted'] = order_data.get('jesse_submitted') if 'exchange_id' in order_data and order_data.get('exchange_id'): d['exchange_id'] = order_data['exchange_id'] if 'order_exist_in_exchange' in order_data: d['order_exist_in_exchange'] = order_data.get('order_exist_in_exchange') if 'canceled_at' in order_data and order_data.get('canceled_at'): d['canceled_at'] = order_data['canceled_at'] try: Order.insert(**d).execute() return Order.get(Order.id == d['id']) except Exception as e: try: database.db.rollback() except Exception: pass jh.dump(f"Error storing order in database: {e}") raise def update(order: Order) -> None: if jh.is_unit_testing(): return if not database.is_open(): database.open_connection() db_order = None if order.exchange_id: db_order = Order.select().where(Order.exchange_id == str(order.exchange_id)).first() if db_order is None and order.id: try: db_order = Order.select().where(Order.id == order.id).first() except Exception: try: database.db.rollback() except Exception: pass matches = find_by_partial_id(str(order.id), order.exchange, order.symbol) if matches and len(matches) == 1: db_order = matches[0] if db_order: d = { 'updated_at': jh.now_to_timestamp(), 'status': order.status, 'filled_qty': order.filled_qty, 'price': db_order.price if order.price == 0 else order.price, 'exchange_id': order.exchange_id, } if order.vars: d['vars'] = order.vars if order.is_executed: d['executed_at'] = getattr(order, 'executed_at', jh.now_to_timestamp()) if order.is_canceled: d['canceled_at'] = jh.now_to_timestamp() if order.trade_id: d['trade_id'] = order.trade_id if order.submitted_via: d['submitted_via'] = order.submitted_via if order.qty != 0: d['qty'] = order.qty if order.fee: d['fee'] = order.fee try: Order.update(**d).where(Order.id == db_order.id).execute() except Exception as e: try: database.db.rollback() except Exception: pass jh.dump(f"Error updating order in database: {e}") raise def store_or_update(order: Order) -> None: if jh.is_unit_testing(): return if not database.is_open(): database.open_connection() order_exist = False try: if order.exchange_id: order_exist = Order.select().where(Order.exchange_id == str(order.exchange_id)).first() if not order_exist and order.id: order_exist = Order.select().where(Order.id == order.id).first() if not order_exist and order.vars: if 'algo_id' in order.vars: order_exist = Order.select().where(Order.vars['algo_id'].cast('bigint') == order.vars['algo_id']).first() if not order_exist and order.id and len(str(order.id)) <= 25: potential_matches = find_by_partial_id(str(order.id), order.exchange, order.symbol) if potential_matches and len(potential_matches) == 1: order_exist = potential_matches[0] except Exception as e: order_exist = False if order_exist: order.id = order_exist.id update(order) return d = { 'id': order.id, 'session_id': store.app.session_id, 'symbol': order.symbol, 'exchange': order.exchange, 'side': order.side, 'type': order.type, 'reduce_only': order.reduce_only, 'qty': order.qty, 'status': order.status, 'created_at': order.created_at if order.created_at else jh.now_to_timestamp(), 'updated_at': order.updated_at if order.updated_at else jh.now_to_timestamp(), 'session_mode': config['app']['trading_mode'], } if hasattr(order, 'trade_id'): d['trade_id'] = order.trade_id if hasattr(order, 'executed_at'): d['executed_at'] = order.executed_at if hasattr(order, 'filled_qty'): d['filled_qty'] = order.filled_qty if hasattr(order, 'price'): d['price'] = order.price if order.submitted_via: d['submitted_via'] = order.submitted_via if hasattr(order, 'jesse_submitted'): d['jesse_submitted'] = order.jesse_submitted if hasattr(order, 'exchange_id'): d['exchange_id'] = order.exchange_id if hasattr(order, 'order_exist_in_exchange'): d['order_exist_in_exchange'] = order.order_exist_in_exchange if hasattr(order, 'canceled_at'): d['canceled_at'] = order.canceled_at if hasattr(order, 'fee'): d['fee'] = order.fee if hasattr(order, 'vars'): d['vars'] = order.vars try: Order.insert(**d).execute() except Exception as e: try: database.db.rollback() except Exception: pass jh.dump(f"Error storing order in database: {e}") def find_by_id(order_id: str) -> Optional[Order]: if jh.is_unit_testing(): return None if not database.is_open(): database.open_connection() try: return Order.select().where(Order.id == order_id).first() except Exception: return None def find_by_exchange_id(exchange_id: str) -> Optional[Order]: if jh.is_unit_testing(): return None if not database.is_open(): database.open_connection() try: return Order.select().where(Order.exchange_id == exchange_id).first() except Exception: return None def find_by_exchange_or_client_id(order_dict: dict) -> Optional[Order]: if jh.is_unit_testing(): return None if not database.is_open(): database.open_connection() exchange_id = order_dict.get('exchange_id') if 'exchange_id' in order_dict else None client_id = order_dict.get('client_id') if 'client_id' in order_dict else None order = None if exchange_id: order = Order.select().where(Order.exchange_id == exchange_id).first() if not order and client_id: # check if the client_id is a valid UUID, if it is, use it as is, otherwise, search for the partial id try: uuid.UUID(client_id) is_valid_uuid = True except (ValueError, AttributeError): is_valid_uuid = False if is_valid_uuid: order = Order.select().where(Order.id == client_id).first() if not order: # UUID fields can't be searched with ILIKE directly; cast to text first. order = Order.select().where(Cast(Order.id, 'text').contains(client_id)).first() return order def find_by_vars(exchange: str, symbol: str, vars: dict) -> Optional[Order]: if jh.is_unit_testing(): return None if not database.is_open(): database.open_connection() if 'algo_id' in vars: return Order.select().where(Order.exchange == exchange, Order.symbol == symbol, Order.vars['algo_id'].cast('bigint') == vars['algo_id']).first() return None def find_by_partial_id(partial_id: str, exchange: str = None, symbol: str = None) -> List[Order]: if jh.is_unit_testing(): return [] if not database.is_open(): database.open_connection() # UUID fields can't be searched with ILIKE directly; cast to text first. query = Order.select().where(Cast(Order.id, 'text').contains(partial_id)) if exchange: query = query.where(Order.exchange == exchange) if symbol: query = query.where(Order.symbol == symbol) return list(query) def find_by_trade_id(trade_id: str) -> List[Order]: if jh.is_unit_testing(): return [] if not database.is_open(): database.open_connection() return list(Order.select().where(Order.trade_id == trade_id)) def get_active_orders(symbol: str, exchange: str) -> List[Order]: if jh.is_unit_testing(): return [] if not database.is_open(): database.open_connection() from jesse.models.ClosedTrade import ClosedTrade orders = Order.select().where( Order.symbol == symbol, Order.status == order_statuses.ACTIVE, Order.exchange == exchange ) for order in orders: if order.trade_id: order.trade = ClosedTrade.get_trade_by_id(order.trade_id) return list(orders) def get_executed_and_active_orders_without_trade_id(symbol: str, exchange: str) -> Tuple[List[Order], List[Order]]: if jh.is_unit_testing(): return [], [] if not database.is_open(): database.open_connection() executed_orders = list(Order.select().where( Order.symbol == symbol, (Order.status == order_statuses.EXECUTED), Order.exchange == exchange, Order.trade_id == None, Order.order_exist_in_exchange == True ).order_by( Order.executed_at.asc() )) active_orders = list(Order.select().where( Order.symbol == symbol, (Order.status == order_statuses.ACTIVE), Order.exchange == exchange, Order.order_exist_in_exchange == True ).order_by( Order.created_at.asc() )) return executed_orders, active_orders def get_session_orders(session_id: str, exchange: str, symbol: str) -> List[Order]: if jh.is_unit_testing(): return [] if not database.is_open(): database.open_connection() return list(Order.select().where( Order.session_id == session_id, Order.exchange == exchange, Order.symbol == symbol )) def get_last_exchange_order(exchange: str, symbol: str) -> Optional[Order]: if jh.is_unit_testing(): return None if not database.is_open(): database.open_connection() return Order.select().where( Order.exchange == exchange, Order.symbol == symbol ).where( Order.trade_id != None ).where( Order.order_exist_in_exchange == True ).order_by( Order.created_at.desc() ).first() def get_simulated_orders(exchange: str, symbol: str, qty: float = None) -> List[Order]: if jh.is_unit_testing(): return [] if not database.is_open(): database.open_connection() query = Order.select().where( Order.exchange == exchange, Order.symbol == symbol, Order.order_exist_in_exchange == False ) if qty: query = query.where(Order.qty == qty) return list(query.order_by(Order.created_at.desc())) def find_by_filters( id_search: str = None, status_filter: str = None, symbol_filter: str = None, date_filter: str = None, exchange_filter: str = None, type_filter: str = None, side_filter: str = None, limit: int = 50, offset: int = 0 ) -> List[Order]: if jh.is_unit_testing(): return [] if not database.is_open(): database.open_connection() # If a previous query failed, the connection can be left in an aborted transaction state. # Rolling back here ensures subsequent SELECTs work. try: database.db.rollback() except Exception: pass query = Order.select() if id_search: # UUID fields can't be searched with ILIKE directly; cast to text first. query = query.where( (Cast(Order.id, 'text').contains(id_search)) | (Cast(Order.session_id, 'text').contains(id_search)) | (Order.exchange_id.contains(id_search)) ) if status_filter: query = query.where(Order.status == status_filter) if symbol_filter: query = query.where(Order.symbol.contains(symbol_filter)) if exchange_filter: query = query.where(Order.exchange.contains(exchange_filter)) if type_filter: query = query.where(Order.type.contains(type_filter)) if side_filter: query = query.where(Order.side.contains(side_filter)) if date_filter: cutoff_timestamp = jh.now_to_timestamp() if date_filter == '7_days': cutoff_timestamp -= 7 * 24 * 60 * 60 * 1000 elif date_filter == '30_days': cutoff_timestamp -= 30 * 24 * 60 * 60 * 1000 elif date_filter == '90_days': cutoff_timestamp -= 90 * 24 * 60 * 60 * 1000 if date_filter != 'all_time': query = query.where(Order.created_at >= cutoff_timestamp) query = query.order_by(Order.created_at.desc()).limit(limit).offset(offset) try: return list(query) except Exception: # Ensure we don't poison the connection for subsequent requests. try: database.db.rollback() except Exception: pass raise def delete(order_id: str) -> None: if jh.is_unit_testing(): return if not database.is_open(): database.open_connection() Order.delete().where(Order.id == order_id).execute() ================================================ FILE: jesse/research/__init__.py ================================================ from .candles import get_candles, store_candles, fake_candle, fake_range_candles, candles_from_close_prices from .backtest import backtest from .monte_carlo import monte_carlo_trades, monte_carlo_candles from .import_candles import import_candles from .ml import gather_ml_data, train_model, load_ml_data_csv, load_ml_model ================================================ FILE: jesse/research/backtest.py ================================================ from typing import List, Dict import copy from jesse.services import candle_service, exchange_service, order_service, position_service from jesse.services.validators import validate_routes from jesse.modes.backtest_mode import simulator from jesse.config import config as jesse_config, reset_config, set_config from jesse.routes import router from jesse.store import store import jesse.helpers as jh def backtest( config: dict, routes: List[Dict[str, str]], data_routes: List[Dict[str, str]], candles: dict, warmup_candles: dict = None, generate_tradingview: bool = False, generate_hyperparameters: bool = False, generate_equity_curve: bool = False, benchmark: bool = False, generate_csv: bool = False, generate_json: bool = False, generate_logs: bool = False, hyperparameters: dict = None, fast_mode: bool = False, candles_pipeline_class = None, candles_pipeline_kwargs: dict = None, ) -> dict: """ An isolated backtest() function which is perfect for using in research, and AI training such as our own optimization mode. Because of it being a pure function, it can be used in Python's multiprocessing without worrying about pickling issues. Example `config`: { 'starting_balance': 5_000, 'fee': 0.005, 'type': 'futures', 'futures_leverage': 3, 'futures_leverage_mode': 'cross', 'exchange': 'Binance', 'warm_up_candles': 0 } Example `route`: [{'exchange': 'Bybit USDT Perpetual', 'strategy': 'A1', 'symbol': 'BTC-USDT', 'timeframe': '1m'}] Example `data_route`: [{'exchange': 'Bybit USDT Perpetual', 'symbol': 'BTC-USDT', 'timeframe': '3m'}] Example `candles`: { 'Binance-BTC-USDT': { 'exchange': 'Binance', 'symbol': 'BTC-USDT', 'candles': np.array([]), }, } """ return _isolated_backtest( config, routes, data_routes, candles, warmup_candles, run_silently=True, hyperparameters=hyperparameters, generate_tradingview=generate_tradingview, generate_csv=generate_csv, generate_json=generate_json, generate_equity_curve=generate_equity_curve, benchmark=benchmark, generate_hyperparameters=generate_hyperparameters, generate_logs=generate_logs, fast_mode=fast_mode, candles_pipeline_class=candles_pipeline_class, candles_pipeline_kwargs=candles_pipeline_kwargs, ) def _isolated_backtest( config: dict, routes: List[Dict[str, str]], data_routes: List[Dict[str, str]], candles: dict, warmup_candles: dict = None, run_silently: bool = True, hyperparameters: dict = None, generate_tradingview: bool = False, generate_csv: bool = False, generate_json: bool = False, generate_equity_curve: bool = False, benchmark: bool = False, generate_hyperparameters: bool = False, generate_logs: bool = False, fast_mode: bool = False, candles_pipeline_class = None, candles_pipeline_kwargs: dict = None, ) -> dict: jesse_config['app']['trading_mode'] = 'backtest' # inject (formatted) configuration values set_config(_format_config(config)) # set routes router.initiate(routes, data_routes) # reset store store.reset() # validate routes validate_routes(router) # initiate candle store store.candles.init_storage(5000) # initialize exchanges state exchange_service.initialize_exchanges_state() # initialize orders state order_service.initialize_orders_state() # initialize positions state position_service.initialize_positions_state() # assert that the passed candles are 1m candles for key, value in candles.items(): candle_set = value['candles'] if candle_set[1][0] - candle_set[0][0] != 60_000: raise ValueError( f'Candles passed to the research.backtest() must be 1m candles. ' f'\nIf you wish to trade other timeframes, notice that you need to pass it through ' f'the timeframe option in your routes. ' f'\nThe difference between your candles are {candle_set[1][0] - candle_set[0][0]} milliseconds which more than ' f'the accepted 60000 milliseconds.' ) # make a copy to make sure we don't mutate the past data causing some issues for multiprocessing tasks trading_candles_dict = copy.deepcopy(candles) warmup_candles_dict = copy.deepcopy(warmup_candles) # if warmup_candles is passed, use it if warmup_candles: for c in jesse_config['app']['considering_candles']: key = jh.key(c[0], c[1]) # inject warm-up candles candle_service.inject_warmup_candles_to_store( warmup_candles_dict[key]['candles'], c[0], c[1] ) # run backtest simulation backtest_result = simulator( trading_candles_dict, run_silently, hyperparameters=hyperparameters, generate_tradingview=generate_tradingview, generate_csv=generate_csv, generate_json=generate_json, generate_equity_curve=generate_equity_curve, benchmark=benchmark, generate_hyperparameters=generate_hyperparameters, generate_logs=generate_logs, fast_mode=fast_mode, candles_pipeline_class=candles_pipeline_class, candles_pipeline_kwargs=candles_pipeline_kwargs ) result = { 'metrics': {'total': 0, 'win_rate': 0, 'net_profit_percentage': 0}, 'logs': None, } if backtest_result['metrics'] is None: result['metrics'] = {'total': 0, 'win_rate': 0, 'net_profit_percentage': 0} else: result['metrics'] = backtest_result['metrics'] if generate_tradingview: result['tradingview'] = backtest_result['tradingview'] if generate_csv: result['csv'] = backtest_result['csv'] if generate_json: result['json'] = backtest_result['json'] if generate_equity_curve: result['equity_curve'] = backtest_result['equity_curve'] if generate_hyperparameters: result['hyperparameters'] = backtest_result['hyperparameters'] if generate_logs: result['logs'] = backtest_result['logs'] # Always include trades if available (needed for trade-shuffling Monte Carlo) if 'trades' in backtest_result: result['trades'] = backtest_result['trades'] # reset store and config so rerunning would be flawlessly possible reset_config() store.reset() return result def _format_config(config): """ Jesse's required format for user_config is different from what this function accepts (so it would be easier to write for the researcher). Hence, we need to reformat the config_dict: """ exchange_config = { 'balance': config['starting_balance'], 'fee': config['fee'], 'type': config['type'], 'name': config['exchange'], } # futures exchange has different config, so: if exchange_config['type'] == 'futures': exchange_config['futures_leverage'] = config['futures_leverage'] exchange_config['futures_leverage_mode'] = config['futures_leverage_mode'] return { 'exchanges': { config['exchange']: exchange_config }, 'logging': { 'balance_update': True, 'order_cancellation': True, 'order_execution': True, 'order_submission': True, 'position_closed': True, 'position_increased': True, 'position_opened': True, 'position_reduced': True, 'shorter_period_candles': False, 'trading_candles': True }, 'warm_up_candles': config['warm_up_candles'] } ================================================ FILE: jesse/research/candles.py ================================================ import numpy as np from typing import Union, Tuple from jesse import factories import jesse.helpers as jh from jesse.services.candle_service import get_candles_from_db as _get_candles def get_candles( exchange: str, symbol: str, timeframe: str, start_date_timestamp: int, finish_date_timestamp: int, warmup_candles_num: int = 0, caching: bool = False, is_for_jesse: bool = False ) -> Tuple[np.ndarray, np.ndarray]: if not jh.is_jesse_project(): raise FileNotFoundError( 'Invalid directory: ".env" file not found. To use Jesse inside notebooks, create notebooks inside the root of a Jesse project.' ) return _get_candles(exchange, symbol, timeframe, start_date_timestamp, finish_date_timestamp, warmup_candles_num, caching, is_for_jesse) def store_candles(candles: np.ndarray, exchange: str, symbol: str) -> None: """ Stores candles in the database. The stored data can later be used for being fetched again via get_candles or even for running backtests on them. A common use case for this function is for importing candles from a CSV file so you can later use them for backtesting. """ from jesse.modes.import_candles_mode import store_candles_list as store_candles_from_list import jesse.helpers as jh # check if .env file exists if not jh.is_unit_testing() and not jh.is_jesse_project(): raise FileNotFoundError( 'Invalid directory: ".env" file not found. To use Jesse inside notebooks, create notebooks inside the root of a Jesse project.' ) # validate that candles type must be np.ndarray if not isinstance(candles, np.ndarray): raise TypeError('candles must be a numpy array.') # add validation for timeframe to make sure it's `1m` if candles[1][0] - candles[0][0] != 60_000: raise ValueError( f'Candles passed to the research.store_candles() must be 1m candles. ' f'\nThe difference between your candle timestamps is {candles[1][0] - candles[0][0]} milliseconds which is ' f'more than the accepted 60000 milliseconds.' ) arr = [{ 'id': jh.generate_unique_id(), 'exchange': exchange, 'symbol': symbol, 'timeframe': '1m', 'timestamp': c[0], 'open': c[1], 'close': c[2], 'high': c[3], 'low': c[4], 'volume': c[5] } for c in candles] if not jh.is_unit_testing(): store_candles_from_list(arr) def fake_candle(attributes: dict = None, reset: bool = False) -> np.ndarray: """ Generates a fake candle. """ return factories.fake_candle(attributes, reset) def fake_range_candles(count: int) -> np.ndarray: """ Generates a range of candles with random values. """ return factories.range_candles(count) def candles_from_close_prices(prices: Union[list, range]) -> np.ndarray: """ Generates a range of candles from a list of close prices. The first candle has the timestamp of "2021-01-01T00:00:00+00:00" """ return factories.candles_from_close_prices(prices) ================================================ FILE: jesse/research/import_candles.py ================================================ def import_candles( exchange: str, symbol: str, start_date: str, show_progressbar: bool = True, ) -> str: from jesse.modes.import_candles_mode import run return run( client_id='', exchange=exchange, symbol=symbol, start_date_str=start_date, running_via_dashboard=False, show_progressbar=show_progressbar ) ================================================ FILE: jesse/research/ml.py ================================================ """ jesse/research/ml.py Machine-learning utilities for the Jesse research module. Public API ---------- gather_ml_data – run a backtest and collect labelled feature data train_model – train any sklearn-compatible estimator on that data load_ml_data_csv – reload previously saved data points from CSV load_ml_model – reload a previously saved model + scaler + importance """ from __future__ import annotations import csv import datetime import os from collections import Counter from typing import Any, Dict, List, Optional import joblib import numpy as np from scipy.stats import rankdata, spearmanr from sklearn.base import clone from sklearn.feature_selection import RFE, f_classif, f_regression from sklearn.metrics import ( accuracy_score, confusion_matrix, matthews_corrcoef, mean_absolute_error, mean_squared_error, precision_recall_fscore_support, r2_score, roc_auc_score, ) from sklearn.model_selection import TimeSeriesSplit, cross_val_score from sklearn.preprocessing import StandardScaler from sklearn.svm import SVC, SVR # ─── Print width ────────────────────────────────────────────────────────────── W = 64 # ═══════════════════════════════════════════════════════════════════════════════ # Public API # ═══════════════════════════════════════════════════════════════════════════════ def gather_ml_data( config: dict, routes: List[Dict], data_routes: List[Dict], candles: dict, warmup_candles: Optional[dict] = None, csv_path: Optional[str] = "auto", verbose: bool = True, ) -> dict: """Run a backtest and collect ML training data recorded by the strategy. The strategy must be in its ML gather mode (e.g. ``ML_MODE = "gather"``) and must call ``record_features({...})`` and ``record_label(name, value)`` at the appropriate points in its lifecycle. Parameters ---------- config: Jesse exchange/backtest config dict – same format as ``research.backtest()``. routes: Strategy routes – same format as ``research.backtest()``. data_routes: Extra data routes for additional timeframes / symbols. candles: Trading candles dict – same format as ``research.backtest()``. warmup_candles: Warm-up candles dict. csv_path: Where to write the collected data points. Defaults to ``"auto"``, which saves to ``strategies//ml_data/_data.csv`` inside the current Jesse project. Pass an explicit path string to override, or ``None`` to skip writing entirely. verbose: If True (default) prints a formatted summary to stdout. Returns ------- dict ``data_points`` – ``list[dict]`` where each dict has ``{time, features, label: {name, value}}`` ``backtest_metrics`` – standard Jesse metrics dict """ from .backtest import backtest as _run_backtest from jesse.routes import router backtest_result = _run_backtest( config, routes, data_routes, candles, warmup_candles, fast_mode=True, ) data_points: List[dict] = [] if router.routes: strategy = router.routes[0].strategy if hasattr(strategy, "_ml_data_points"): data_points = [ p for p in strategy._ml_data_points if p.get("label") is not None ] metrics = backtest_result.get("metrics", {}) if not data_points: if verbose: print("\n ⚠ No ML data points were collected.") print(" Make sure your strategy is in gather mode and calls") print(" self.record_features({...}) and self.record_label(name, value).") return {"data_points": [], "backtest_metrics": metrics} if csv_path == "auto": strategy_name = routes[0]["strategy"] csv_path = os.path.join( "strategies", strategy_name, "ml_data", f"{strategy_name}_data.csv" ) if csv_path: _write_csv(data_points, csv_path) if verbose: _print_gather_report(data_points, metrics, csv_path, routes) return {"data_points": data_points, "backtest_metrics": metrics} def train_model( data: List[dict], estimator: Any, task: str = "binary", test_ratio: float = 0.2, save_to: Optional[str] = None, verbose: bool = True, name: Optional[str] = None, ) -> dict: """Train an sklearn-compatible estimator on data collected by a Jesse strategy. Accepts **any scikit-learn–compatible estimator** and dispatches training, metrics, and reporting based on the ``task`` parameter. Parameters ---------- data: Data points from ``gather_ml_data()`` or ``load_ml_data_csv()``. Each dict must have ``{time, features, label: {name, value}}``. estimator: A scikit-learn–compatible estimator. For classifiers, it must implement ``predict_proba`` (set ``probability=True`` for SVC). task: One of: ``"binary"`` – Two-class classification. Label is mapped to ``0`` / ``1`` via the positive-class rule (value ``> 0`` or boolean ``True``). Reports: accuracy, ROC AUC, MCC, confusion matrix, calibration, threshold sweep. ``"multiclass"`` – Three-or-more class classification. Raw integer label values are passed directly to the estimator (e.g. ``-1``, ``0``, ``+1`` from triple-barrier). Reports: accuracy, macro F1, MCC, per-class precision/recall/F1, full NxN confusion matrix. ``"regression"`` – Continuous-output prediction. Raw float label values are passed directly to the estimator. Reports: MAE, RMSE, R², Spearman ρ. test_ratio: Fraction of samples held out as the chronological test set. save_to: Directory path. When provided, three files are written: ``model.pkl``, ``scaler.pkl``, ``feature_importance.pkl``. verbose: Print a full training report (default: True). name: Optional display name shown in the report header. Returns ------- dict with keys: ``model`` – fitted estimator ``scaler`` – fitted ``StandardScaler`` ``feature_names`` – ``list[str]`` ``metrics`` – task-specific metrics dict ``feature_importance`` – RFE ranks, ANOVA/F-reg values, correlations, CV impacts, consensus ranks ``train_test_info`` – split sizes and date ranges For ``"binary"`` only: ``calibration`` – probability calibration bucket list ``feature_impact`` – per-feature accuracy delta on the test set ``class_weights`` – suggested ``{0: float, 1: float}`` """ if task not in ("binary", "multiclass", "regression"): raise ValueError(f"task must be 'binary', 'multiclass', or 'regression'; got {task!r}") if not data: raise ValueError("data is empty — nothing to train on.") sorted_data = sorted(data, key=lambda p: p["time"]) feature_names = sorted(sorted_data[0]["features"].keys()) X = np.array( [[p["features"].get(f, 0.0) for f in feature_names] for p in sorted_data], dtype=float, ) # ── Build y depending on task ───────────────────────────────────────────── if task == "binary": y = np.array( [1 if _label_is_positive(p["label"]["value"]) else 0 for p in sorted_data], dtype=int, ) elif task == "multiclass": y = np.array( [int(p["label"]["value"]) for p in sorted_data], dtype=int, ) else: # regression y = np.array( [float(p["label"]["value"]) for p in sorted_data], dtype=float, ) times = [p["time"] for p in sorted_data] # ── Chronological split ─────────────────────────────────────────────────── split = int(len(X) * (1.0 - test_ratio)) if split == 0 or split >= len(X): raise ValueError( f"test_ratio={test_ratio} produces an empty train or test set " f"for {len(X)} samples." ) X_train, X_test = X[:split], X[split:] y_train, y_test = y[:split], y[split:] train_test_info = { "train_size": len(X_train), "test_size": len(X_test), "train_start": _ts_to_date(times[0]), "train_end": _ts_to_date(times[split - 1]), "test_start": _ts_to_date(times[split]), "test_end": _ts_to_date(times[-1]), } # ── Scale features ──────────────────────────────────────────────────────── scaler = StandardScaler() X_train_scaled = scaler.fit_transform(X_train) X_test_scaled = scaler.transform(X_test) label_name = sorted_data[0]["label"].get("name", "label") # ── Class weights (binary only, informational) ──────────────────────────── class_weights: Optional[dict] = None if task == "binary": counts = np.bincount(y_train) if len(counts) >= 2: class_weights = {0: 1.0, 1: float(counts[0]) / float(counts[1])} # ── Header ──────────────────────────────────────────────────────────────── if verbose: title = f"MODEL TRAINING · {name}" if name else "MODEL TRAINING" _header(f"{title} [{task.upper()}]") # ── Dataset overview ────────────────────────────────────────────────────── if verbose: _print_dataset_section( task, feature_names, y_train, y_test, train_test_info, class_weights, label_name, ) # ── Feature importance ──────────────────────────────────────────────────── fi = _compute_feature_importance( X_train_scaled, y_train, feature_names, estimator, task ) if verbose: _section("FEATURE IMPORTANCE") _print_feature_importance_table(fi, task) # ── Fit the model ───────────────────────────────────────────────────────── if verbose: _section("FIT") print(f"\n Fitting {type(estimator).__name__} on {len(X_train):,} samples …") fitted: Any = clone(estimator) fitted.fit(X_train_scaled, y_train) y_pred = fitted.predict(X_test_scaled) # ── Task-specific metrics + reporting ───────────────────────────────────── if task == "binary": y_probs = fitted.predict_proba(X_test_scaled)[:, 1] metrics = _compute_binary_metrics(y_test, y_pred, y_probs) if verbose: _print_binary_performance(metrics, label_name) calibration = _compute_calibration(y_test, y_probs) if verbose: _print_calibration(calibration) feature_impact = _compute_feature_impact( X_train_scaled, X_test_scaled, y_train, y_test, feature_names, estimator, baseline_metric=metrics["accuracy"], task=task, ) if verbose: _print_feature_impact(feature_impact, metrics["accuracy"], task) base_rate = float(y_test.sum()) / len(y_test) if verbose: _print_threshold_sweep(y_test, y_probs, base_rate) elif task == "multiclass": y_probs_mc = fitted.predict_proba(X_test_scaled) classes = fitted.classes_ metrics = _compute_multiclass_metrics(y_test, y_pred, y_probs_mc, classes) if verbose: _print_multiclass_performance(metrics, label_name, classes) feature_impact = _compute_feature_impact( X_train_scaled, X_test_scaled, y_train, y_test, feature_names, estimator, baseline_metric=metrics["accuracy"], task=task, ) if verbose: _print_feature_impact(feature_impact, metrics["accuracy"], task) # no calibration / threshold sweep for multiclass calibration = None else: # regression metrics = _compute_regression_metrics(y_test, y_pred) if verbose: _print_regression_performance(metrics, label_name) feature_impact = _compute_feature_impact( X_train_scaled, X_test_scaled, y_train, y_test, feature_names, estimator, baseline_metric=metrics["mae"], task=task, ) if verbose: _print_feature_impact(feature_impact, metrics["mae"], task) calibration = None # ── Save artefacts ──────────────────────────────────────────────────────── if save_to: os.makedirs(save_to, exist_ok=True) joblib.dump(fitted, os.path.join(save_to, "model.pkl")) joblib.dump(scaler, os.path.join(save_to, "scaler.pkl")) joblib.dump(fi, os.path.join(save_to, "feature_importance.pkl")) if verbose: print() _footer() print(f" Model → {os.path.join(save_to, 'model.pkl')}") print(f" Scaler → {os.path.join(save_to, 'scaler.pkl')}") _footer() elif verbose: print() _footer() result = { "model": fitted, "scaler": scaler, "feature_names": list(feature_names), "metrics": metrics, "feature_importance": fi, "feature_impact": feature_impact, "train_test_info": train_test_info, } if task == "binary": result["calibration"] = calibration result["class_weights"] = class_weights return result def load_ml_data_csv(path_or_name: str) -> List[dict]: """Reload data points previously saved by ``gather_ml_data``. Parameters ---------- path_or_name: Either a **strategy name** (e.g. ``"MyStrategy"``) or an explicit path to a CSV file. When a bare name is given (no path separators, no ``.csv`` suffix), the file is resolved automatically to ``strategies//ml_data/_data.csv`` inside the current Jesse project directory. Returns ------- list[dict] Same format as the ``data_points`` key returned by ``gather_ml_data`` – suitable for passing directly to ``train_model``. """ if ( os.sep not in path_or_name and "/" not in path_or_name and not path_or_name.endswith(".csv") ): path = os.path.join( "strategies", path_or_name, "ml_data", f"{path_or_name}_data.csv" ) else: path = path_or_name if not os.path.exists(path): raise FileNotFoundError(f"ML data CSV not found: {path}") data_points: List[dict] = [] with open(path, newline="") as f: # type: ignore[arg-type] reader = csv.DictReader(f) for row in reader: feature_names = [ k for k in row.keys() if k not in ("time", "label_name", "label_value") ] data_points.append({ "time": int(row["time"]), "features": {fn: float(row[fn]) for fn in feature_names}, "label": { "name": row["label_name"], "value": _parse_label_value(row["label_value"].strip()), }, }) return data_points def load_ml_model(directory: str) -> dict: """Load a previously saved model, scaler, and feature importance data. Parameters ---------- directory: The directory passed as ``save_to`` when ``train_model`` was called. Returns ------- dict with keys: ``model`` – fitted estimator ``scaler`` – fitted ``StandardScaler`` ``feature_importance`` – feature importance dict (if present) """ model_path = os.path.join(directory, "model.pkl") scaler_path = os.path.join(directory, "scaler.pkl") fi_path = os.path.join(directory, "feature_importance.pkl") for p in (model_path, scaler_path): if not os.path.exists(p): raise FileNotFoundError(f"Expected file not found: {p}") result = { "model": joblib.load(model_path), "scaler": joblib.load(scaler_path), } if os.path.exists(fi_path): result["feature_importance"] = joblib.load(fi_path) return result # ═══════════════════════════════════════════════════════════════════════════════ # Private: gathering helpers # ═══════════════════════════════════════════════════════════════════════════════ def _write_csv(data_points: List[dict], path: str) -> None: all_features: set = set() for p in data_points: all_features.update(p["features"].keys()) sorted_features = sorted(all_features) ordered = sorted(data_points, key=lambda p: p["time"]) os.makedirs(os.path.dirname(os.path.abspath(path)), exist_ok=True) with open(path, "w", newline="") as f: writer = csv.writer(f) writer.writerow(["time", "label_name", "label_value"] + sorted_features) for p in ordered: writer.writerow( [p["time"], p["label"]["name"], str(p["label"]["value"])] + [str(p["features"].get(fn, "")) for fn in sorted_features] ) def _print_gather_report( data_points: List[dict], metrics: dict, csv_path: Optional[str], routes: List[Dict], ) -> None: strategy_name = routes[0].get("strategy", "") if routes else "" title = f"ML DATA COLLECTION · {strategy_name}" if strategy_name else "ML DATA COLLECTION" _header(title) _section("BACKTEST RESULTS") if metrics and metrics.get("total", 0) > 0: pnl = metrics.get("net_profit_percentage", 0) annual = metrics.get("annual_return", 0) drawdown = metrics.get("max_drawdown", 0) win_rate = metrics.get("win_rate", 0) * 100 trades = int(metrics.get("total", 0)) sharpe = metrics.get("sharpe_ratio", 0) col_w = 28 rows = [ ("PNL", f"{pnl:+.2f}%", "Win Rate", f"{win_rate:.2f}%"), ("Annual Return", f"{annual:+.2f}%", "Total Trades", f"{trades:,}"), ("Max Drawdown", f"{drawdown:+.2f}%", "Sharpe Ratio", f"{sharpe:.2f}"), ] print() for ll, lv, rl, rv in rows: left = f" {ll:<16} {lv:>8}" right = f" {rl:<16} {rv:>8}" print(f"{left:<{col_w}} {right}") else: print("\n No trades were opened during the backtest.") print(" The ML gather mode runs on entry signals, not closed trades.") _section("DATASET COLLECTED") total = len(data_points) features = len(sorted(set(k for p in data_points for k in p["features"]))) label_name = data_points[0]["label"].get("name", "label") if data_points else "label" timestamps = [p["time"] for p in data_points] date_from = _ts_to_date(min(timestamps)) date_to = _ts_to_date(max(timestamps)) label_counts = Counter(p["label"]["value"] for p in data_points) print() print(f" {'Data points':<28} {total:>6,}") for lv, cnt in sorted(label_counts.items(), key=lambda x: -x[1]): print(f" {f'{label_name} = {lv}':<28} {cnt:>6,} ({cnt / total * 100:.1f}%)") print(f" {'Features per sample':<28} {features:>6,}") print(f" {'Date range':<28} {date_from} → {date_to}") if csv_path: try: display = os.path.relpath(csv_path) except ValueError: display = csv_path print(f" {'Saved to':<28} {display}") print() _footer() # ═══════════════════════════════════════════════════════════════════════════════ # Private: label helpers # ═══════════════════════════════════════════════════════════════════════════════ def _parse_label_value(raw: str): """Return the most natural Python type for a label value read from CSV. - ``"True"`` / ``"False"`` (case-insensitive) → ``bool`` - Integer strings (``"1"``, ``"-1"``, ``"0"``) → ``int`` - Anything else that looks numeric → ``float`` - Fallback → the original string """ lower = raw.lower() if lower == "true": return True if lower == "false": return False try: return int(raw) except ValueError: pass try: return float(raw) except ValueError: return raw def _label_is_positive(value) -> bool: """Map any label value to the binary positive class (1). - ``True`` (bool) → positive - Positive numbers (``> 0``) → positive - Everything else → negative """ if isinstance(value, bool): return value try: return float(value) > 0 except (TypeError, ValueError): return str(value).lower() == "true" # ═══════════════════════════════════════════════════════════════════════════════ # Private: metrics # ═══════════════════════════════════════════════════════════════════════════════ def _compute_binary_metrics( y_test: np.ndarray, y_pred: np.ndarray, y_probs: np.ndarray, ) -> dict: acc = accuracy_score(y_test, y_pred) auc = roc_auc_score(y_test, y_probs) mcc = matthews_corrcoef(y_test, y_pred) cm = confusion_matrix(y_test, y_pred) tn, fp, fn, tp = cm.ravel() prec, rec, f1, sup = precision_recall_fscore_support(y_test, y_pred, zero_division=0) # type: ignore[call-overload] return { "accuracy": float(acc), "roc_auc": float(auc), "mcc": float(mcc), "confusion_matrix": cm.tolist(), "precision": prec.tolist(), "recall": rec.tolist(), "f1": f1.tolist(), "support": sup.tolist(), "tn": int(tn), "fp": int(fp), "fn": int(fn), "tp": int(tp), } def _compute_multiclass_metrics( y_test: np.ndarray, y_pred: np.ndarray, y_probs: np.ndarray, classes: np.ndarray, ) -> dict: acc = accuracy_score(y_test, y_pred) mcc = matthews_corrcoef(y_test, y_pred) cm = confusion_matrix(y_test, y_pred, labels=classes) prec, rec, f1, sup = precision_recall_fscore_support( y_test, y_pred, labels=classes, zero_division=0 # type: ignore[call-overload] ) try: auc = roc_auc_score( y_test, y_probs, multi_class="ovr", average="macro", labels=classes ) except Exception: auc = float("nan") return { "accuracy": float(acc), "roc_auc_macro": float(auc), "mcc": float(mcc), "confusion_matrix": cm.tolist(), "classes": classes.tolist(), "precision": prec.tolist(), "recall": rec.tolist(), "f1": f1.tolist(), "support": sup.tolist(), } def _compute_regression_metrics( y_test: np.ndarray, y_pred: np.ndarray, ) -> dict: mae = mean_absolute_error(y_test, y_pred) rmse = float(np.sqrt(mean_squared_error(y_test, y_pred))) r2 = r2_score(y_test, y_pred) _sr = spearmanr(y_test, y_pred) _sr_any: Any = _sr spearman = float(_sr_any.statistic if hasattr(_sr_any, "statistic") else _sr_any.correlation) return { "mae": float(mae), "rmse": float(rmse), "r2": float(r2), "spearman": spearman, } # ═══════════════════════════════════════════════════════════════════════════════ # Private: feature importance # ═══════════════════════════════════════════════════════════════════════════════ def _compute_feature_importance( X_train: np.ndarray, y_train: np.ndarray, feature_names: List[str], estimator: Any, task: str, n_splits: int = 5, ) -> dict: """Four-method consensus feature importance. For classification tasks (binary / multiclass): RFE with a linear SVC proxy, ANOVA F-values, absolute Pearson correlation, and CV-impact. For regression: RFE with an SVR proxy, F-regression values, absolute Pearson correlation, and CV-impact. """ n_features = len(feature_names) tscv = TimeSeriesSplit(n_splits=n_splits) if task == "regression": proxy_rfe = SVR(kernel="linear") proxy_cv = SVR(kernel="rbf", C=1.0, gamma="scale") scoring = "r2" rfe = RFE(proxy_rfe, n_features_to_select=1, step=1) rfe.fit(X_train, y_train) rfe_ranking = rfe.ranking_.astype(float) f_values, _ = f_regression(X_train, y_train) else: proxy_rfe = SVC(kernel="linear") proxy_cv = SVC(kernel="rbf", C=1.0, gamma="scale") scoring = "accuracy" rfe = RFE(proxy_rfe, n_features_to_select=1, step=1) rfe.fit(X_train, y_train) rfe_ranking = rfe.ranking_.astype(float) f_values, _ = f_classif(X_train, y_train) correlations = np.array( [abs(np.corrcoef(X_train[:, i], y_train)[0, 1]) for i in range(n_features)] ) baseline_cv = cross_val_score(proxy_cv, X_train, y_train, cv=tscv, scoring=scoring).mean() cv_without = np.empty(n_features) for i in range(n_features): X_r = np.delete(X_train, i, axis=1) cv_without[i] = cross_val_score( clone(proxy_cv), X_r, y_train, cv=tscv, scoring=scoring ).mean() cv_impacts = baseline_cv - cv_without rfe_ranks = rfe_ranking anova_ranks = rankdata(-f_values) corr_ranks = rankdata(-correlations) cv_ranks = rankdata(-cv_impacts) consensus = (rfe_ranks + anova_ranks + corr_ranks + cv_ranks) / 4.0 return { "feature_names": list(feature_names), "rfe_ranking": rfe_ranking.tolist(), "anova_f_values": f_values.tolist(), "correlations": correlations.tolist(), "cv_baseline": float(baseline_cv), "cv_impacts": {feature_names[i]: float(cv_impacts[i]) for i in range(n_features)}, "cv_scores_without_feature": {feature_names[i]: float(cv_without[i]) for i in range(n_features)}, "consensus_ranks": {feature_names[i]: float(consensus[i]) for i in range(n_features)}, "_order": np.argsort(consensus).tolist(), } def _compute_calibration( y_test: np.ndarray, y_probs: np.ndarray, ) -> List[dict]: """Bucket predicted probabilities and measure actual positive rate per bin.""" bins = [(0.3, 0.4), (0.4, 0.5), (0.5, 0.6), (0.6, 0.7), (0.7, 0.8), (0.8, 1.01)] buckets = [] for lo, hi in bins: mask = (y_probs >= lo) & (y_probs < hi) n = int(mask.sum()) if n == 0: continue actual = float(y_test[mask].mean()) mid = (lo + min(hi, 1.0)) / 2.0 buckets.append({ "range": f"[{lo:.1f}–{min(hi, 1.0):.1f})", "n": n, "actual_rate": actual, "expected": mid, "diff": actual - mid, }) return buckets def _compute_feature_impact( X_train: np.ndarray, X_test: np.ndarray, # type: ignore[type-arg] y_train: np.ndarray, y_test: np.ndarray, feature_names: List[str], estimator: Any, baseline_metric: float, task: str, ) -> List[dict]: """Retrain the model with each feature removed; measure metric delta. For classification tasks: accuracy delta (positive = feature helps). For regression: MAE delta (negative = feature helps, since lower MAE is better). """ impacts = [] for i, fname in enumerate(feature_names): X_tr_r = np.delete(X_train, i, axis=1) X_te_r = np.delete(X_test, i, axis=1) m: Any = clone(estimator) m.fit(X_tr_r, y_train) y_p = m.predict(X_te_r) if task == "regression": metric_i = mean_absolute_error(y_test, y_p) else: metric_i = accuracy_score(y_test, y_p) impacts.append({ "feature": fname, "metric": float(metric_i), "delta": float(metric_i - baseline_metric), }) impacts.sort(key=lambda x: x["delta"]) return impacts # ═══════════════════════════════════════════════════════════════════════════════ # Private: verbose print helpers — shared # ═══════════════════════════════════════════════════════════════════════════════ def _print_dataset_section( task: str, feature_names, y_train: np.ndarray, y_test: np.ndarray, train_test_info: dict, class_weights: Optional[dict], label_name: str, ) -> None: _section("DATASET") y_all = np.concatenate([y_train, y_test]) total = len(y_all) n_features = len(feature_names) print(f"\n {'Samples':<28} {total:>6,} ({n_features} features)") print(f" {'Train set':<28} {train_test_info['train_size']:>6,} " f"{train_test_info['train_start']} → {train_test_info['train_end']}") print(f" {'Test set':<28} {train_test_info['test_size']:>6,} " f"{train_test_info['test_start']} → {train_test_info['test_end']}") if task == "binary": n_pos = int((y_all == 1).sum()) n_neg = total - n_pos print(f" {f'{label_name} = positive':<28} {n_pos:>6,} ({n_pos / total * 100:.1f}%)") print(f" {f'{label_name} = negative':<28} {n_neg:>6,} ({n_neg / total * 100:.1f}%)") if class_weights is not None: print(f" {'Suggested class weights':<28} " f"0: {class_weights[0]:.2f} / 1: {class_weights[1]:.2f}") print() print(" ℹ Class weights are not applied automatically. Configure them") print(" directly on your estimator (e.g. class_weight={0:1.0, 1:2.3}).") else: print(f" {'Suggested class weights':<28} N/A (only one class present)") elif task == "multiclass": counts = Counter(int(v) for v in y_all) for cls, cnt in sorted(counts.items(), key=lambda x: -x[1]): print(f" {f'{label_name} = {cls}':<28} {cnt:>6,} ({cnt / total * 100:.1f}%)") else: # regression print(f" {'Label mean':<28} {float(y_all.mean()):>10.4f}") print(f" {'Label std':<28} {float(y_all.std()):>10.4f}") print(f" {'Label min':<28} {float(y_all.min()):>10.4f}") print(f" {'Label max':<28} {float(y_all.max()):>10.4f}") def _print_feature_importance_table(fi: dict, task: str) -> None: feature_names = fi["feature_names"] rfe_ranking = fi["rfe_ranking"] f_values = fi["anova_f_values"] correlations = fi["correlations"] cv_impacts = fi["cv_impacts"] order = fi["_order"] consensus = fi["consensus_ranks"] f_label = "F-val" if task != "regression" else "F-reg" print( f"\n {'Rank':<5} {'Feature':<24} {'RFE':>4} " f"{f_label:>6} {'|Corr|':>6} {'CV-Impact':>9} {'Score':>6}" ) print( f" {'─'*4} {'─'*24} {'─'*4} " f"{'─'*6} {'─'*6} {'─'*9} {'─'*6}" ) for rank_pos, i in enumerate(order, start=1): name = feature_names[i] print( f" {rank_pos:<5} {name:<24} {int(rfe_ranking[i]):>4} " f"{f_values[i]:>6.2f} {correlations[i]:>6.3f} " f"{cv_impacts[name]:>+9.4f} {consensus[name]:>6.2f}" ) print(f""" Column guide: ┌─────────────┬──────────────────────────────────────────────────────────┐ │ RFE │ Recursive Feature Elimination rank (proxy estimator). │ │ │ 1 = most important. Lower is better. │ │ {f_label:<11} │ {"ANOVA F-statistic (classification)." if task != "regression" else "F-regression statistic.":<56} │ │ │ Higher = more discriminative. │ │ |Corr| │ Absolute Pearson correlation with the label. │ │ │ Higher = stronger linear relationship. │ │ CV-Impact │ Baseline CV metric minus CV metric without this feature. │ │ │ Positive = feature helps {"(regression: lower MAE = better)." if task == "regression" else "(classification: higher acc)." :<33} │ │ Score │ Consensus rank (lower = more consistently important). │ └─────────────┴──────────────────────────────────────────────────────────┘""") # ═══════════════════════════════════════════════════════════════════════════════ # Private: verbose print helpers — binary # ═══════════════════════════════════════════════════════════════════════════════ def _print_binary_performance(metrics: dict, label_name: str) -> None: _section("MODEL PERFORMANCE") acc = metrics["accuracy"] auc = metrics["roc_auc"] mcc = metrics["mcc"] tn = metrics["tn"] fp = metrics["fp"] fn = metrics["fn"] tp = metrics["tp"] prec = metrics["precision"] rec = metrics["recall"] f1 = metrics["f1"] sup = metrics["support"] print(f"\n Accuracy {acc * 100:>5.1f}% ROC AUC {auc:.3f} MCC {mcc:+.3f}") print() print(f" {'Confusion Matrix':<28} Predicted 0 Predicted 1") print(f" {f'Actual 0 ({label_name}=neg)':<28} {tn:>11,} {fp:>11,}") print(f" {f'Actual 1 ({label_name}=pos)':<28} {fn:>11,} {tp:>11,}") print() print(f" {'Class':<14} {'Precision':>9} {'Recall':>6} {'F1':>6} {'Support':>7}") print(f" {'─'*14} {'─'*9} {'─'*6} {'─'*6} {'─'*7}") print(f" {'Negative (0)':<14} {prec[0]:>9.3f} {rec[0]:>6.3f} {f1[0]:>6.3f} {sup[0]:>7,}") print(f" {'Positive (1)':<14} {prec[1]:>9.3f} {rec[1]:>6.3f} {f1[1]:>6.3f} {sup[1]:>7,}") def _print_calibration(calibration: List[dict]) -> None: _section("PROBABILITY CALIBRATION") print(f"\n {'Confidence':<14} {'Count':>7} {'Actual Rate':>11} {'vs Expected':>12}") print(f" {'─'*14} {'─'*7} {'─'*11} {'─'*12}") if not calibration: print(" Not enough predictions to populate any bucket.") else: for b in calibration: print( f" {b['range']:<14} {b['n']:>7,} " f"{b['actual_rate']:>10.1%} {b['diff']:>+11.1%}" ) print() print(" A well-calibrated model shows Actual Rate ≈ midpoint of each bin.") print(" Systematic over-confidence → apply Platt scaling or isotonic regression.") print(" Use these numbers to choose a confidence threshold for live trading.") def _print_threshold_sweep( y_test: np.ndarray, y_probs: np.ndarray, base_rate: float, ) -> None: _section("PRECISION vs CONFIDENCE THRESHOLD (class 1 only)") print(f"\n {'Threshold':>10} {'Allowed':>8} {'Precision':>9} {'Coverage':>9}") print(f" {'─'*10} {'─'*8} {'─'*9} {'─'*9}") total = len(y_test) for thresh in [0.45, 0.50, 0.55, 0.60, 0.65, 0.70, 0.75, 0.80]: mask = y_probs >= thresh n = int(mask.sum()) if n == 0: print(f" {thresh:>10.2f} {'—':>8} {'—':>9} {'0.0%':>9}") continue precision = float(y_test[mask].mean()) coverage = n / total * 100 print(f" {thresh:>10.2f} {n:>8,} {precision:>9.1%} {coverage:>8.1f}%") print() print(f" Base rate (no filter): {base_rate:.1%}") print(" Threshold = minimum predicted probability to allow a trade through.") print(" Precision = fraction of allowed signals that are truly class 1.") print(" Coverage = % of all test signals the model lets through.") print() print(" A useful operating point is where Precision exceeds the base rate") print(" by a meaningful margin while Coverage remains tradeable.") # ═══════════════════════════════════════════════════════════════════════════════ # Private: verbose print helpers — multiclass # ═══════════════════════════════════════════════════════════════════════════════ def _print_multiclass_performance( metrics: dict, label_name: str, classes: np.ndarray, ) -> None: _section("MODEL PERFORMANCE") acc = metrics["accuracy"] mcc = metrics["mcc"] auc = metrics["roc_auc_macro"] cm = np.array(metrics["confusion_matrix"]) prec = metrics["precision"] rec = metrics["recall"] f1 = metrics["f1"] sup = metrics["support"] auc_str = f"{auc:.3f}" if not np.isnan(auc) else "n/a" print(f"\n Accuracy {acc * 100:>5.1f}% ROC AUC (macro OVR) {auc_str} MCC {mcc:+.3f}") # Confusion matrix print() header_cells = " " + " " * 20 + "".join(f" Pred {c:>3}" for c in classes) print(header_cells) for i, cls in enumerate(classes): row_cells = " " + f"Actual {cls:>3} ({label_name})" .ljust(18) + "".join( f" {cm[i, j]:>8,}" for j in range(len(classes)) ) print(row_cells) # Per-class report print() print(f" {'Class':<14} {'Precision':>9} {'Recall':>6} {'F1':>6} {'Support':>7}") print(f" {'─'*14} {'─'*9} {'─'*6} {'─'*6} {'─'*7}") for i, cls in enumerate(classes): print(f" {str(cls):<14} {prec[i]:>9.3f} {rec[i]:>6.3f} {f1[i]:>6.3f} {sup[i]:>7,}") # ═══════════════════════════════════════════════════════════════════════════════ # Private: verbose print helpers — regression # ═══════════════════════════════════════════════════════════════════════════════ def _print_regression_performance(metrics: dict, label_name: str) -> None: _section("MODEL PERFORMANCE") mae = metrics["mae"] rmse = metrics["rmse"] r2 = metrics["r2"] spearman = metrics["spearman"] print(f"\n MAE {mae:>10.6f}") print(f" RMSE {rmse:>10.6f}") print(f" R² {r2:>10.4f}") print(f" Spearman ρ {spearman:>9.4f}") print() print(" MAE / RMSE: lower is better. R² and Spearman ρ: higher is better.") print(" Spearman ρ measures rank correlation (robust to non-linearity).") print(" R² < 0 means the model is worse than simply predicting the mean.") # ═══════════════════════════════════════════════════════════════════════════════ # Private: verbose print helpers — feature impact (shared) # ═══════════════════════════════════════════════════════════════════════════════ def _print_feature_impact( feature_impact: List[dict], baseline_metric: float, task: str, ) -> None: if task == "regression": _section("FEATURE IMPACT (retrain without each feature, test set MAE)") baseline_label = f"Baseline MAE: {baseline_metric:.6f}" verdict_help = "↓ important — keep" verdict_noise = "↑ noisy — consider dropping" # For regression, lower MAE = better, so delta < 0 means feature helped # (removing it raised MAE). We invert the sort so most impactful first. sorted_impact = sorted(feature_impact, key=lambda x: x["delta"]) else: _section("FEATURE IMPACT (retrain without each feature, test set accuracy)") baseline_label = f"Baseline accuracy: {baseline_metric * 100:.2f}%" verdict_help = "↓ important — keep" verdict_noise = "↑ noisy — consider dropping" sorted_impact = feature_impact # already sorted ascending (drops come first) print(f"\n {baseline_label}\n") metric_label = "MAE" if task == "regression" else "Accuracy" print(f" {'Feature':<24} {metric_label:>10} {'Change':>8} Verdict") print(f" {'─'*24} {'─'*10} {'─'*8} {'─'*22}") for item in sorted_impact: delta = item["delta"] m_val = item["metric"] if task == "regression": # delta > 0: removing the feature raised MAE → feature was helpful # delta < 0: removing it lowered MAE → feature was noisy if delta > 0.0: verdict = verdict_help elif delta < 0.0: verdict = verdict_noise else: verdict = " neutral" print( f" {item['feature']:<24} {m_val:>10.6f} {delta:>+8.6f} {verdict}" ) else: if delta < -0.015: verdict = verdict_help elif delta > 0.015: verdict = verdict_noise else: verdict = " neutral" print( f" {item['feature']:<24} {m_val * 100:>9.1f}% {delta:>+7.1%} {verdict}" ) # ═══════════════════════════════════════════════════════════════════════════════ # Private: formatting # ═══════════════════════════════════════════════════════════════════════════════ def _header(title: str) -> None: print("\n" + "═" * W) pad = (W - len(title)) // 2 print(" " * max(0, pad) + title) print("═" * W) def _section(title: str) -> None: filler = W - len(title) - 5 print(f"\n─── {title} {'─' * max(0, filler)}") def _footer() -> None: print("─" * W) def _ts_to_date(ts: int) -> str: return datetime.datetime.fromtimestamp(int(ts), datetime.UTC).strftime("%Y-%m-%d") ================================================ FILE: jesse/research/monte_carlo/__init__.py ================================================ """ Aggregator for Monte Carlo package. Re-exports: - monte_carlo_trades: trade-order shuffle Monte Carlo (from monte_carlo_trades) - monte_carlo_candles: candles-based Monte Carlo (from monte_carlo_candles) - All plotting and summary functions for easy access - Candle pipelines for Monte Carlo simulations - Helper functions for chart creation """ from .monte_carlo_trades import ( monte_carlo_trades, print_monte_carlo_trades_summary, plot_monte_carlo_trades_chart ) from .monte_carlo_candles import ( monte_carlo_candles, print_monte_carlo_candles_summary, plot_monte_carlo_candles_chart ) from jesse.candle_pipelines import ( GaussianNoiseCandlesPipeline, MovingBlockBootstrapCandlesPipeline ) __all__ = [ 'monte_carlo_trades', 'monte_carlo_candles', 'print_monte_carlo_trades_summary', 'plot_monte_carlo_trades_chart', 'print_monte_carlo_candles_summary', 'plot_monte_carlo_candles_chart', 'GaussianNoiseCandlesPipeline', 'MovingBlockBootstrapCandlesPipeline', ] ================================================ FILE: jesse/research/monte_carlo/common.py ================================================ from typing import List, Dict, Any import ray import jesse.helpers as jh import jesse.services.logger as logger # ============================================================================= # SHARED CONSTANTS # ============================================================================= # CPU and performance constants DEFAULT_CPU_USAGE_RATIO = 0.8 # Use 80% of available CPU cores by default MIN_CPU_CORES = 1 # Minimum number of CPU cores to use RAY_WAIT_TIMEOUT = 0.5 # Timeout for Ray wait operations (seconds) # Random seed constants BASE_RANDOM_SEED = 42 # Base seed for reproducible results # Statistical constants ANNUALIZATION_FACTOR = 365 # Trading days per year for volatility calculation MAX_DRAWDOWN_LIMIT = 1.0 # Maximum possible drawdown (100%) # Confidence interval percentiles CONFIDENCE_PERCENTILES = { 'extreme_low': 2.5, 'low': 5, 'low_quartile': 25, 'median': 50, 'high_quartile': 75, 'high': 95, 'extreme_high': 97.5 } # Statistical significance levels ALPHA_5_PERCENT = 0.05 ALPHA_1_PERCENT = 0.01 # ============================================================================= # SHARED UTILITIES # ============================================================================= def _setup_progress_bar(progress_bar: bool, total_scenarios: int, description: str): if not progress_bar: return None if jh.is_notebook(): from tqdm.notebook import tqdm else: from tqdm import tqdm return tqdm(total=total_scenarios, desc=description) def _safe_log_message(message: str, pbar, is_error: bool = False) -> None: formatted_message = message if is_error: formatted_message = f"{'='*80}\n🚨 ERROR: {message}\n{'='*80}" if pbar: if jh.is_notebook(): print(formatted_message) else: from tqdm import tqdm tqdm.write(formatted_message) if jh.app_mode() == 'monte-carlo': logger.log_monte_carlo(message if not is_error else f"ERROR: {message}", session_id=jh.get_session_id()) def _process_scenario_results( scenario_refs: List[Any], pbar, progress_callback=None, result_callback=None ) -> List[Dict[str, Any]]: results: List[Dict[str, Any]] = [] remaining_refs = scenario_refs.copy() total_scenarios = len(scenario_refs) completed_count = 0 while remaining_refs: completed_refs, remaining_refs = ray.wait(remaining_refs, num_returns=1, timeout=RAY_WAIT_TIMEOUT) for ref in completed_refs: try: response = ray.get(ref) if isinstance(response, dict) and 'result' in response: if response['result'] is not None: results.append(response['result']) # Stream the result immediately to the caller (for progressive UI updates) if result_callback is not None: try: result_callback(response['result']) except Exception: # Do not crash the loop due to callback errors pass if response.get('log'): is_error = response.get('error', False) _safe_log_message(response['log'], pbar, is_error=is_error) else: results.append(response) except Exception as e: error_msg = f"Error processing scenario result: {str(e)}" _safe_log_message(error_msg, pbar, is_error=True) if pbar: pbar.update(1) # Call progress callback with actual completion count completed_count += 1 if progress_callback: progress_callback(completed_count) return results def _create_ray_shared_objects( config: dict, routes: List[Dict[str, str]], data_routes: List[Dict[str, str]], candles: dict, warmup_candles: dict, hyperparameters: dict ) -> Dict[str, Any]: return { 'config': ray.put(config), 'routes': ray.put(routes), 'data_routes': ray.put(data_routes), 'candles': ray.put(candles), 'warmup_candles': ray.put(warmup_candles), 'hyperparameters': ray.put(hyperparameters) } ================================================ FILE: jesse/research/monte_carlo/monte_carlo_candles.py ================================================ from typing import List, Dict, Optional, Tuple, Any, TypedDict import ray from multiprocessing import cpu_count import numpy as np import os from datetime import datetime import jesse.helpers as jh from jesse.research import backtest from .common import ( DEFAULT_CPU_USAGE_RATIO, MIN_CPU_CORES, CONFIDENCE_PERCENTILES, ALPHA_5_PERCENT, ALPHA_1_PERCENT, _setup_progress_bar, _process_scenario_results, _create_ray_shared_objects, ) # ============================================================================ # Typed return structures for candles-based Monte Carlo # ============================================================================ class EquityCurvePoint(TypedDict): time: int value: float class EquityCurveSeries(TypedDict): name: str data: List[EquityCurvePoint] class MonteCarloCandlesScenarioResult(TypedDict, total=False): scenario_index: int metrics: Dict[str, Any] # Backtest metrics dict equity_curve: List[EquityCurveSeries] trades: List[Dict[str, Any]] class MonteCarloCandlesReturn(TypedDict): original: MonteCarloCandlesScenarioResult | None scenarios: List[MonteCarloCandlesScenarioResult] num_scenarios: int total_requested: int @ray.remote def _ray_run_scenario_monte_carlo_candles( config: dict, routes: List[Dict[str, str]], data_routes: List[Dict[str, str]], candles: dict, warmup_candles: dict, hyperparameters: dict, fast_mode: bool, scenario_index: int, candles_pipeline_class = None, candles_pipeline_kwargs: dict = None ) -> Dict[str, Any]: """ Ray remote function to execute a single Monte Carlo candles scenario. """ try: # Always apply the pipeline for Monte Carlo scenarios (except scenario 0 which is original) should_use_pipeline = candles_pipeline_class is not None and scenario_index > 0 result = backtest( config=config, routes=routes, data_routes=data_routes, candles=candles, warmup_candles=warmup_candles, generate_equity_curve=True, hyperparameters=hyperparameters, fast_mode=fast_mode, benchmark=False, # Never use benchmark mode candles_pipeline_class=candles_pipeline_class if should_use_pipeline else None, candles_pipeline_kwargs=candles_pipeline_kwargs if should_use_pipeline else None ) # Tag the result with its scenario index so downstream consumers can # reliably identify the original vs simulated scenarios regardless of completion order result['scenario_index'] = scenario_index if 'equity_curve' not in result or result['equity_curve'] is None: return { 'result': result, 'log': f"Info: Scenario {scenario_index} missing equity_curve - will be filtered out", 'error': False } return {'result': result, 'log': None, 'error': False} except Exception as e: import traceback full_traceback = traceback.format_exc() error_type = type(e).__name__ error_msg = str(e) detailed_error = ( f"Scenario {scenario_index} failed with {error_type}: {error_msg}\n" f"{full_traceback}" ) return {'result': None, 'log': detailed_error, 'error': True} def monte_carlo_candles( config: dict, routes: List[Dict[str, str]], data_routes: List[Dict[str, str]], candles: dict, warmup_candles: Optional[dict] = None, hyperparameters: Optional[dict] = None, fast_mode: bool = True, num_scenarios: int = 1000, progress_bar: bool = False, candles_pipeline_class = None, candles_pipeline_kwargs: Optional[dict] = None, cpu_cores: Optional[int] = None, progress_callback = None, result_callback = None, ) -> MonteCarloCandlesReturn: if cpu_cores is None: available_cores = cpu_count() cpu_cores = max(MIN_CPU_CORES, int(available_cores * DEFAULT_CPU_USAGE_RATIO)) else: available_cores = cpu_count() cpu_cores = max(MIN_CPU_CORES, min(cpu_cores, available_cores)) ray_started_here = False if not ray.is_initialized(): try: ray.init(num_cpus=cpu_cores, ignore_reinit_error=True) print(f"Successfully started Monte Carlo simulation with {cpu_cores} CPU cores") ray_started_here = True except Exception as e: raise RuntimeError(f"Error initializing Ray: {e}") try: return _run_monte_carlo_candles_simulation( config, routes, data_routes, candles, warmup_candles, hyperparameters, fast_mode, num_scenarios, progress_bar, candles_pipeline_class, candles_pipeline_kwargs, cpu_cores, ray_started_here, progress_callback, result_callback ) except Exception as e: jh.debug(f"Error during Monte Carlo simulation: {e}") raise finally: if ray_started_here and ray.is_initialized(): ray.shutdown() def _launch_monte_carlo_candles_scenarios( num_scenarios: int, shared_objects: Dict[str, Any], fast_mode: bool, candles_pipeline_class, candles_pipeline_kwargs: dict ) -> List[Any]: scenario_refs = [] for i in range(num_scenarios): ref = _ray_run_scenario_monte_carlo_candles.remote( config=shared_objects['config'], routes=shared_objects['routes'], data_routes=shared_objects['data_routes'], candles=shared_objects['candles'], warmup_candles=shared_objects['warmup_candles'], hyperparameters=shared_objects['hyperparameters'], fast_mode=fast_mode, scenario_index=i, candles_pipeline_class=candles_pipeline_class, candles_pipeline_kwargs=candles_pipeline_kwargs ) scenario_refs.append(ref) return scenario_refs def _filter_valid_results(results: List[dict]) -> Tuple[List[dict], int]: valid_results = [ r for r in results if 'equity_curve' in r and r['equity_curve'] is not None ] filtered_count = len(results) - len(valid_results) return valid_results, filtered_count def _log_monte_carlo_candles_simulation_summary(valid_results: List[dict], filtered_count: int, num_scenarios: int) -> None: if filtered_count > 0: print(f"Filtered out {filtered_count} scenarios with missing equity curves") print(f"Returned {len(valid_results)} valid scenarios out of {num_scenarios} total") def _calculate_confidence_intervals_candles(original_result: dict, simulation_results: list) -> dict: if not simulation_results: return {'error': 'No simulation results to analyze'} # Collect metrics from simulation results (candles scenarios return full backtest results) metrics = { 'net_profit_percentage': [], 'max_drawdown': [], 'sharpe_ratio': [], 'win_rate': [], 'total': [], 'annual_return': [], 'calmar_ratio': [] } for result in simulation_results: if 'metrics' in result: scenario_metrics = result['metrics'] for key in metrics.keys(): if key in scenario_metrics and isinstance(scenario_metrics[key], (int, float)): metrics[key].append(scenario_metrics[key]) original_metrics = original_result.get('metrics', {}) if original_result else {} confidence_analysis: Dict[str, Any] = {} for metric_name, values in metrics.items(): if not values: continue values_array = np.array(values) # For candles, metrics are already in percentage format (like original backtest) # But for dashboard consistency, we keep them as percentages in confidence analysis original_value = original_metrics.get(metric_name, 0) percentiles = { '5th': np.percentile(values_array, 5), '25th': np.percentile(values_array, 25), '50th': np.percentile(values_array, 50), '75th': np.percentile(values_array, 75), '95th': np.percentile(values_array, 95) } ci_95 = { 'lower': np.percentile(values_array, CONFIDENCE_PERCENTILES['extreme_low']), 'upper': np.percentile(values_array, CONFIDENCE_PERCENTILES['extreme_high']) } ci_90 = { 'lower': np.percentile(values_array, CONFIDENCE_PERCENTILES['low']), 'upper': np.percentile(values_array, CONFIDENCE_PERCENTILES['high']) } # For max_drawdown, p_value logic is reversed (lower values are better) if metric_name == 'max_drawdown': p_value = np.sum(values_array <= original_value) / len(values_array) else: p_value = np.sum(values_array >= original_value) / len(values_array) mean_sim = np.mean(values_array) std_sim = np.std(values_array) confidence_analysis[metric_name] = { 'original': original_value, 'simulations': { 'mean': mean_sim, 'std': std_sim, 'min': np.min(values_array), 'max': np.max(values_array), 'count': len(values_array) }, 'percentiles': percentiles, 'confidence_intervals': { '90%': ci_90, '95%': ci_95 }, 'p_value': p_value, 'is_significant_5pct': p_value < ALPHA_5_PERCENT, 'is_significant_1pct': p_value < ALPHA_1_PERCENT } summary = { 'num_simulations': len(simulation_results), 'significant_metrics_5pct': sum(1 for m in confidence_analysis.values() if m.get('is_significant_5pct', False)), 'significant_metrics_1pct': sum(1 for m in confidence_analysis.values() if m.get('is_significant_1pct', False)), 'total_metrics': len(confidence_analysis) } return { 'summary': summary, 'metrics': confidence_analysis, 'interpretation': _generate_interpretation_candles(confidence_analysis) } def _generate_interpretation_candles(confidence_analysis: dict) -> dict: interpretations = [] for metric_name, analysis in confidence_analysis.items(): original = analysis['original'] p_value = analysis['p_value'] percentiles = analysis['percentiles'] if analysis['is_significant_1pct']: significance = "highly significant (p < 0.01)" elif analysis['is_significant_5pct']: significance = "significant (p < 0.05)" else: significance = "not significant (p >= 0.05)" if metric_name == 'max_drawdown': # For max_drawdown, lower percentiles are better if original <= percentiles['5th']: rank = "top 5% (lowest drawdowns)" elif original <= percentiles['25th']: rank = "top 25% (low drawdowns)" elif original <= percentiles['50th']: rank = "above median" elif original <= percentiles['75th']: rank = "below median" else: rank = "bottom 25% (high drawdowns)" else: # For other metrics, higher percentiles are better if original >= percentiles['95th']: rank = "top 5%" elif original >= percentiles['75th']: rank = "top 25%" elif original >= percentiles['50th']: rank = "above median" elif original >= percentiles['25th']: rank = "below median" else: rank = "bottom 25%" interpretations.append({ 'metric': metric_name, 'significance': significance, 'rank': rank, 'p_value': p_value, 'message': f"{metric_name}: {significance}, original result in {rank} of simulations" }) return { 'detailed': interpretations, 'overall': f"Strategy shows {sum(1 for i in interpretations if 'significant' in i['significance'])} out of {len(interpretations)} metrics being statistically significant." } def _run_monte_carlo_candles_simulation( config: dict, routes: List[Dict[str, str]], data_routes: List[Dict[str, str]], candles: dict, warmup_candles: dict, hyperparameters: dict, fast_mode: bool, num_scenarios: int, progress_bar: bool, candles_pipeline_class, candles_pipeline_kwargs: dict, cpu_cores: int, started_ray_here: bool, progress_callback=None, result_callback=None ) -> dict: try: pbar = _setup_progress_bar(progress_bar, num_scenarios, "Monte Carlo Candles Scenarios") shared_objects = _create_ray_shared_objects( config, routes, data_routes, candles, warmup_candles, hyperparameters ) scenario_refs = _launch_monte_carlo_candles_scenarios( num_scenarios, shared_objects, fast_mode, candles_pipeline_class, candles_pipeline_kwargs ) results = _process_scenario_results(scenario_refs, pbar, progress_callback, result_callback) if pbar: pbar.close() valid_results, filtered_count = _filter_valid_results(results) _log_monte_carlo_candles_simulation_summary(valid_results, filtered_count, num_scenarios) # Separate original result (scenario_index == 0) from Monte Carlo simulations original_result = next((r for r in valid_results if r.get('scenario_index') == 0), None) simulation_results = [r for r in valid_results if r.get('scenario_index', -1) > 0] # Calculate confidence intervals confidence_analysis = _calculate_confidence_intervals_candles(original_result, simulation_results) return { 'original': original_result, 'scenarios': simulation_results, 'confidence_analysis': confidence_analysis, 'num_scenarios': len(simulation_results), 'total_requested': num_scenarios } except Exception as e: print(f"Error during Monte Carlo candles simulation: {e}") raise def _get_timestamped_filename(base_name: str) -> str: """Generate a timestamped filename.""" timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") name, ext = os.path.splitext(base_name) return f"{name}_{timestamp}{ext}" def _create_charts_folder(): """Create a charts folder for all outputs.""" folder_path = os.path.abspath("charts") os.makedirs(folder_path, exist_ok=True) return folder_path def print_monte_carlo_candles_summary(results: dict) -> None: """Print a robustness table for Monte Carlo candles scenarios. Args: results: The full results dict returned by monte_carlo_candles(). Must contain 'original' and 'scenarios'. """ if 'confidence_analysis' not in results: print("No confidence analysis available") return ca = results['confidence_analysis'] summary = ca['summary'] metrics = ca['metrics'] print(f"\n📈 MONTE CARLO CANDLES (market-path robustness test)") print(f" Valid scenarios: {summary['num_simulations']}") headers = ["Metric", "Original", "Worst 5%", "Median", "Best 5%"] rows = [] for metric_name, a in metrics.items(): if 'original' not in a: continue orig = a['original'] percentiles = a.get('percentiles', {}) p5 = percentiles.get('5th', 0) p50 = percentiles.get('50th', 0) p95 = percentiles.get('95th', 0) display_name = metric_name.replace('_', ' ').title() if 'percentage' in metric_name or 'return' in metric_name: orig_disp = f"{orig:.1f}%" if orig is not None else "—" p5_disp = f"{p5:.1f}%"; p50_disp = f"{p50:.1f}%"; p95_disp = f"{p95:.1f}%" elif metric_name == 'max_drawdown': display_name = "Max Drawdown (%)" orig_disp = f"-{abs(orig):.1f}%" if orig is not None else "—" p5_disp = f"-{abs(p5):.1f}%"; p50_disp = f"-{abs(p50):.1f}%"; p95_disp = f"-{abs(p95):.1f}%" elif metric_name in ['sharpe_ratio', 'calmar_ratio']: orig_disp = f"{orig:.2f}" if orig is not None else "—" p5_disp = f"{p5:.2f}"; p50_disp = f"{p50:.2f}"; p95_disp = f"{p95:.2f}" elif metric_name == 'win_rate': display_name = "Win Rate (%)" orig_disp = f"{orig*100:.1f}%" if orig is not None else "—" p5_disp = f"{p5*100:.1f}%"; p50_disp = f"{p50*100:.1f}%"; p95_disp = f"{p95*100:.1f}%" else: orig_disp = f"{orig:.1f}" if orig is not None else "—" p5_disp = f"{p5:.1f}"; p50_disp = f"{p50:.1f}"; p95_disp = f"{p95:.1f}" rows.append([display_name, orig_disp, p5_disp, p50_disp, p95_disp]) if not rows: print("❌ No numeric metrics to summarize") return col_widths = [max(len(str(x)) for x in [h] + [r[i] for r in rows]) for i, h in enumerate(headers)] line = " | ".join(h.ljust(col_widths[i]) for i, h in enumerate(headers)) sep = "-+-".join("-" * w for w in col_widths) print(" " + line); print(" " + sep) for r in rows: print(" " + " | ".join(str(r[i]).ljust(col_widths[i]) for i in range(len(headers)))) print(f"\n 📊 Interpretation:") print(f" • This tests how your strategy performs across different market conditions under resampled candles") def plot_monte_carlo_candles_chart(results: dict, charts_folder: str = None) -> None: """Plot equity curves from Monte Carlo candles results. Args: results: The full results dict returned by monte_carlo_candles(). Must contain 'original' and 'scenarios'. charts_folder: Optional folder to save charts in. """ import matplotlib matplotlib.use('Agg') # Use non-interactive backend from matplotlib import pyplot as plt if not results or 'scenarios' not in results or not results['scenarios']: print("No simulation results to plot") return original_result = results.get('original') simulation_results = results.get('scenarios', []) print(f"Number of Monte Carlo candles scenarios found: {len(simulation_results)}") for simulation in simulation_results: if "equity_curve" in simulation and simulation["equity_curve"]: for equity_curve in simulation["equity_curve"]: if equity_curve["name"] == "Portfolio": values = [item["value"] for item in equity_curve["data"]] plt.plot(values, color="cornflowerblue", alpha=0.5, linewidth=0.8) if original_result and "equity_curve" in original_result and original_result["equity_curve"]: for equity_curve in original_result["equity_curve"]: if equity_curve["name"] == "Portfolio": values = [item["value"] for item in equity_curve["data"]] plt.plot(values, color="green", linewidth=2, label="Original Strategy") plt.title("Monte Carlo Candles - Equity Curve") plt.legend(); plt.tight_layout() if charts_folder is None: charts_folder = _create_charts_folder() filename = _get_timestamped_filename("monte_carlo_candles_chart.png") chart_path = os.path.join(charts_folder, filename) plt.savefig(chart_path, dpi=150, bbox_inches='tight'); plt.close() print(f"Saved Monte Carlo candles chart to: {chart_path}") ================================================ FILE: jesse/research/monte_carlo/monte_carlo_trades.py ================================================ from typing import List, Dict, Optional, Tuple, Any, TypedDict import ray from multiprocessing import cpu_count import numpy as np import random import os from datetime import datetime import jesse.helpers as jh from jesse.research import backtest from .common import ( DEFAULT_CPU_USAGE_RATIO, MIN_CPU_CORES, BASE_RANDOM_SEED, CONFIDENCE_PERCENTILES, ALPHA_5_PERCENT, ALPHA_1_PERCENT, ANNUALIZATION_FACTOR, MAX_DRAWDOWN_LIMIT, _setup_progress_bar, _process_scenario_results, ) # ============================================================================ # Typed return structures for clearer docs and IDE support # ============================================================================ class EquityCurvePoint(TypedDict): time: int value: float class EquityCurveSeries(TypedDict): name: str # 'Portfolio' data: List[EquityCurvePoint] class MonteCarloTradeScenarioResult(TypedDict, total=False): # Metrics reconstructed from shuffled trades total_return: float final_value: float max_drawdown: float volatility: float sharpe_ratio: float calmar_ratio: float starting_balance: float # Added by ray_run_scenario_monte_carlo trades: List[Dict[str, Any]] equity_curve: List[EquityCurveSeries] class ConfidenceIntervalBounds(TypedDict): lower: float upper: float class ConfidenceIntervals(TypedDict): _90: ConfidenceIntervalBounds # stored as '90%' _95: ConfidenceIntervalBounds # stored as '95%' class MetricPercentiles(TypedDict): _5th: float # stored as '5th' _25th: float # stored as '25th' _50th: float # stored as '50th' _75th: float # stored as '75th' _95th: float # stored as '95th' class SimulationAggregate(TypedDict): mean: float std: float min: float max: float count: int class ConfidenceMetricAnalysis(TypedDict): original: float simulations: SimulationAggregate percentiles: Dict[str, float] confidence_intervals: Dict[str, ConfidenceIntervalBounds] p_value: float is_significant_5pct: bool is_significant_1pct: bool class ConfidenceAnalysis(TypedDict): summary: Dict[str, int] metrics: Dict[str, ConfidenceMetricAnalysis] interpretation: Dict[str, Any] class MonteCarloTradesReturn(TypedDict): original: Dict[str, Any] scenarios: List[MonteCarloTradeScenarioResult] confidence_analysis: ConfidenceAnalysis num_scenarios: int total_requested: int @ray.remote def _ray_run_scenario_monte_carlo( original_trades: list, original_equity_curve: list, starting_balance: float, scenario_index: int, seed: Optional[int] = None ) -> Dict[str, Any]: try: if seed is not None: scenario_seed = seed + scenario_index random.seed(scenario_seed) np.random.seed(scenario_seed) shuffled_trades = original_trades.copy() random.shuffle(shuffled_trades) equity_curve = _reconstruct_equity_curve_from_trades( shuffled_trades, original_equity_curve, starting_balance ) result = _calculate_metrics_from_equity_curve(equity_curve, starting_balance) result['trades'] = shuffled_trades result['equity_curve'] = equity_curve return {'result': result, 'log': None, 'error': False} except Exception as e: import traceback full_traceback = traceback.format_exc() error_type = type(e).__name__ error_msg = str(e) detailed_error = ( f"Scenario {scenario_index} failed with {error_type}: {error_msg}\n" f"{full_traceback}" ) return {'result': None, 'log': detailed_error, 'error': True} def monte_carlo_trades( config: dict, routes: List[Dict[str, str]], data_routes: List[Dict[str, str]], candles: dict, warmup_candles: Optional[dict] = None, benchmark: bool = False, hyperparameters: Optional[dict] = None, fast_mode: bool = True, num_scenarios: int = 1000, progress_bar: bool = False, cpu_cores: Optional[int] = None, progress_callback = None, result_callback = None, ) -> MonteCarloTradesReturn: if cpu_cores is None: available_cores = cpu_count() cpu_cores = max(MIN_CPU_CORES, int(available_cores * DEFAULT_CPU_USAGE_RATIO)) else: available_cores = cpu_count() cpu_cores = max(MIN_CPU_CORES, min(cpu_cores, available_cores)) ray_started_here = False if not ray.is_initialized(): try: ray.init(num_cpus=cpu_cores, ignore_reinit_error=True) print(f"Successfully started Monte Carlo simulation with {cpu_cores} CPU cores") ray_started_here = True except Exception as e: raise RuntimeError(f"Error initializing Ray: {e}") try: return _run_monte_carlo_simulation( config, routes, data_routes, candles, warmup_candles, benchmark, hyperparameters, fast_mode, num_scenarios, progress_bar, cpu_cores, ray_started_here, progress_callback, result_callback ) except Exception as e: jh.debug(f"Error during Monte Carlo simulation: {e}") raise finally: if ray_started_here and ray.is_initialized(): ray.shutdown() def _run_monte_carlo_simulation( config: dict, routes: List[Dict[str, str]], data_routes: List[Dict[str, str]], candles: dict, warmup_candles: dict, benchmark: bool, hyperparameters: dict, fast_mode: bool, num_scenarios: int, progress_bar: bool, cpu_cores: int, started_ray_here: bool, progress_callback=None, result_callback=None ) -> dict: try: original_result = _run_original_backtest( config, routes, data_routes, candles, warmup_candles, hyperparameters, fast_mode, benchmark ) original_trades, original_equity_curve, starting_balance = _extract_trade_data( original_result, config ) pbar = _setup_progress_bar(progress_bar, num_scenarios, "Monte Carlo Scenarios") trades_ref = ray.put(original_trades) equity_curve_ref = ray.put(original_equity_curve) scenario_refs = _launch_monte_carlo_scenarios( num_scenarios, trades_ref, equity_curve_ref, starting_balance ) results = _process_scenario_results(scenario_refs, pbar, progress_callback, result_callback) if pbar: pbar.close() print(f"Completed {len(results)} Monte Carlo scenarios out of {num_scenarios} requested") confidence_analysis = _calculate_confidence_intervals(original_result, results) return { 'original': original_result, 'scenarios': results, 'confidence_analysis': confidence_analysis, 'num_scenarios': len(results), 'total_requested': num_scenarios } except Exception as e: print(f"Error during Monte Carlo simulation: {e}") raise def _run_original_backtest( config: dict, routes: List[Dict[str, str]], data_routes: List[Dict[str, str]], candles: dict, warmup_candles: dict, hyperparameters: dict, fast_mode: bool, benchmark: bool ) -> dict: return backtest( config=config, routes=routes, data_routes=data_routes, candles=candles, warmup_candles=warmup_candles, generate_equity_curve=True, hyperparameters=hyperparameters, fast_mode=fast_mode, benchmark=benchmark ) def _extract_trade_data(original_result: dict, config: dict) -> Tuple[list, list, float]: if 'trades' not in original_result: available_keys = list(original_result.keys()) print(f"Available keys in backtest result: {available_keys}") raise ValueError("No 'trades' key found in backtest result. Cannot perform trade-shuffling Monte Carlo.") trades_list = original_result['trades'] if not trades_list: _diagnose_empty_trades(original_result) raise ValueError("No trades found in original backtest. Cannot perform trade-shuffling Monte Carlo.") original_equity_curve = original_result['equity_curve'] starting_balance = config.get('starting_balance', 10000) return trades_list, original_equity_curve, starting_balance def _diagnose_empty_trades(original_result: dict) -> None: print("Trades list is empty. This could happen if:") print("1. The strategy didn't generate any trades") print("2. The time period was too short") print("3. The strategy conditions were never met") if 'metrics' in original_result: total_trades = original_result['metrics'].get('total', 0) print(f" Metrics shows total trades: {total_trades}") def _launch_monte_carlo_scenarios( num_scenarios: int, trades_ref: Any, equity_curve_ref: Any, starting_balance: float ) -> List[Any]: scenario_refs: List[Any] = [] for i in range(num_scenarios): ref = _ray_run_scenario_monte_carlo.remote( original_trades=trades_ref, original_equity_curve=equity_curve_ref, starting_balance=starting_balance, scenario_index=i, seed=BASE_RANDOM_SEED ) scenario_refs.append(ref) return scenario_refs def _reconstruct_equity_curve_from_trades(shuffled_trades: list, original_equity_curve: list, starting_balance: float) -> list: if not original_equity_curve or not original_equity_curve[0].get('data'): raise ValueError("Invalid original equity curve format") original_data = original_equity_curve[0]['data'] time_points = [item.get('time', item.get('timestamp', 0)) for item in original_data] new_equity_curve = [{ 'name': 'Portfolio', 'data': [] }] current_balance = starting_balance trade_index = 0 total_trades = len(shuffled_trades) total_time_points = len(time_points) trades_per_point = total_trades / total_time_points if total_time_points > 0 else 1 for i, timestamp in enumerate(time_points): target_trades_completed = int((i + 1) * trades_per_point) trades_to_add = target_trades_completed - trade_index for _ in range(trades_to_add): if trade_index < total_trades: current_balance += shuffled_trades[trade_index]['PNL'] trade_index += 1 new_equity_curve[0]['data'].append({ 'time': timestamp, 'value': current_balance }) return new_equity_curve def _calculate_metrics_from_equity_curve(equity_curve: list, starting_balance: float) -> dict: if not equity_curve or not equity_curve[0].get('data'): return {'error': 'Invalid equity curve'} data = equity_curve[0]['data'] values = [item['value'] for item in data] if not values: return {'error': 'No data in equity curve'} final_value = values[-1] total_return = ((final_value - starting_balance) / starting_balance) * 100 max_drawdown = _calculate_max_drawdown(values) volatility, sharpe_ratio = _calculate_volatility_metrics(values) calmar_ratio = total_return / abs(max_drawdown) if max_drawdown < 0 else 0 return { 'total_return': total_return, 'final_value': final_value, 'max_drawdown': max_drawdown, 'volatility': volatility, 'sharpe_ratio': sharpe_ratio, 'calmar_ratio': calmar_ratio, 'starting_balance': starting_balance } def _calculate_max_drawdown(values: List[float]) -> float: """ Calculates the maximum drawdown from equity curve values (prices) Same approach as metrics.py: (prices / prices.expanding(min_periods=0).max()).min() - 1 """ if not values: return 0.0 # Find running maximum running_max = values[0] max_drawdown = 0.0 for price in values: running_max = max(running_max, price) drawdown = price / running_max - 1 max_drawdown = min(max_drawdown, drawdown) return max_drawdown * 100 def _calculate_volatility_metrics(values: List[float]) -> Tuple[float, float]: if len(values) <= 1: return 0.0, 0.0 returns: List[float] = [] for i in range(1, len(values)): if values[i-1] != 0: daily_return = (values[i] - values[i-1]) / values[i-1] returns.append(daily_return) if not returns: return 0.0, 0.0 daily_std = np.std(returns) annualized_volatility = daily_std * np.sqrt(ANNUALIZATION_FACTOR) avg_daily_return = np.mean(returns) annualized_return = avg_daily_return * ANNUALIZATION_FACTOR sharpe_ratio = annualized_return / annualized_volatility if annualized_volatility > 0 else 0 return annualized_volatility, sharpe_ratio def _calculate_confidence_intervals(original_result: dict, simulation_results: list) -> dict: if not simulation_results: return {'error': 'No simulation results to analyze'} metrics = { 'total_return': [], 'max_drawdown': [], 'sharpe_ratio': [], 'calmar_ratio': [] } for result in simulation_results: for key in metrics.keys(): if key in result and isinstance(result[key], (int, float)): metrics[key].append(result[key]) original_metrics = original_result.get('metrics', {}) confidence_analysis: Dict[str, Any] = {} for metric_name, values in metrics.items(): if not values: continue values_array = np.array(values) # Normalize original metrics to match Monte Carlo scenario format (decimal, not percentage) if metric_name == 'total_return': # Calculate from net_profit_percentage (which is in percentage form) net_profit_pct = original_metrics.get('net_profit_percentage', 0) original_value = net_profit_pct # Convert to decimal elif metric_name == 'max_drawdown': # Original backtest returns max_drawdown already multiplied by 100 max_dd = original_metrics.get('max_drawdown', 0) original_value = max_dd # Convert to decimal else: original_value = original_metrics.get(metric_name, 0) percentiles = { '5th': np.percentile(values_array, 5), '25th': np.percentile(values_array, 25), '50th': np.percentile(values_array, 50), '75th': np.percentile(values_array, 75), '95th': np.percentile(values_array, 95) } ci_95 = { 'lower': np.percentile(values_array, CONFIDENCE_PERCENTILES['extreme_low']), 'upper': np.percentile(values_array, CONFIDENCE_PERCENTILES['extreme_high']) } ci_90 = { 'lower': np.percentile(values_array, CONFIDENCE_PERCENTILES['low']), 'upper': np.percentile(values_array, CONFIDENCE_PERCENTILES['high']) } if metric_name in ['total_return', 'sharpe_ratio', 'calmar_ratio']: p_value = np.sum(values_array >= original_value) / len(values_array) else: p_value = np.sum(values_array <= original_value) / len(values_array) mean_sim = np.mean(values_array) std_sim = np.std(values_array) confidence_analysis[metric_name] = { 'original': original_value, 'simulations': { 'mean': mean_sim, 'std': std_sim, 'min': np.min(values_array), 'max': np.max(values_array), 'count': len(values_array) }, 'percentiles': percentiles, 'confidence_intervals': { '90%': ci_90, '95%': ci_95 }, 'p_value': p_value, 'is_significant_5pct': p_value < ALPHA_5_PERCENT, 'is_significant_1pct': p_value < ALPHA_1_PERCENT } summary = { 'num_simulations': len(simulation_results), 'significant_metrics_5pct': sum(1 for m in confidence_analysis.values() if m.get('is_significant_5pct', False)), 'significant_metrics_1pct': sum(1 for m in confidence_analysis.values() if m.get('is_significant_1pct', False)), 'total_metrics': len(confidence_analysis) } return { 'summary': summary, 'metrics': confidence_analysis, 'interpretation': _generate_interpretation(confidence_analysis) } def _generate_interpretation(confidence_analysis: dict) -> dict: interpretations = [] for metric_name, analysis in confidence_analysis.items(): original = analysis['original'] p_value = analysis['p_value'] percentiles = analysis['percentiles'] if analysis['is_significant_1pct']: significance = "highly significant (p < 0.01)" elif analysis['is_significant_5pct']: significance = "significant (p < 0.05)" else: significance = "not significant (p >= 0.05)" if original >= percentiles['95th']: rank = "top 5%" elif original >= percentiles['75th']: rank = "top 25%" elif original >= percentiles['50th']: rank = "above median" elif original >= percentiles['25th']: rank = "below median" else: rank = "bottom 25%" interpretations.append({ 'metric': metric_name, 'significance': significance, 'rank': rank, 'p_value': p_value, 'message': f"{metric_name}: {significance}, original result in {rank} of simulations" }) return { 'detailed': interpretations, 'overall': f"Strategy shows {significance} performance with {len([i for i in interpretations if 'significant' in i['significance']])} out of {len(interpretations)} metrics being statistically significant." } def _get_timestamped_filename(base_name: str) -> str: """Generate a timestamped filename.""" timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") name, ext = os.path.splitext(base_name) return f"{name}_{timestamp}{ext}" def _create_charts_folder(): """Create a charts folder for all outputs.""" folder_path = os.path.abspath("charts") os.makedirs(folder_path, exist_ok=True) return folder_path def print_monte_carlo_trades_summary(results: dict) -> None: """Print a summary table for Monte Carlo trades scenarios. Args: results: The full results dict returned by monte_carlo_trades(). """ if 'confidence_analysis' not in results: print("No confidence analysis available") return ca = results['confidence_analysis'] summary = ca['summary'] metrics = ca['metrics'] print(f"\n🔀 MONTE CARLO TRADES (trade-order shuffle test)") print(f" Simulations: {summary['num_simulations']}") headers = ["Metric", "Original", "Worst 5%", "Median", "Best 5%"] rows = [] for metric_name, a in metrics.items(): if 'original' not in a: continue orig = a['original'] sim = a.get('simulations', {}) percentiles = a.get('percentiles', {}) invariant = (sim.get('std', 0) is not None and sim.get('std', 0) < 1e-12) if invariant: continue p5 = percentiles.get('5th', 0) p50 = percentiles.get('50th', 0) p95 = percentiles.get('95th', 0) display_name = metric_name.replace('_', ' ').title() if display_name == "Total Return": display_name = "Return (%)" orig_display = f"{orig*100:.1f}%"; p5_disp = f"{p5*100:.1f}%"; p50_disp = f"{p50*100:.1f}%"; p95_disp = f"{p95*100:.1f}%" elif display_name == "Max Drawdown": display_name = "Max Drawdown (%)" orig_display = f"{(orig):.1f}%" p5_disp = f"{(p5):.1f}%"; p50_disp = f"{(p50):.1f}%"; p95_disp = f"{(p95):.1f}%" elif display_name in ["Sharpe Ratio", "Calmar Ratio"]: orig_display = f"{orig:.2f}"; p5_disp = f"{p5:.2f}"; p50_disp = f"{p50:.2f}"; p95_disp = f"{p95:.2f}" else: orig_display = f"{orig:.2f}" if isinstance(orig, (int, float)) else str(orig) p5_disp = f"{p5:.2f}"; p50_disp = f"{p50:.2f}"; p95_disp = f"{p95:.2f}" rows.append([display_name, orig_display, p5_disp, p50_disp, p95_disp]) if rows: col_widths = [max(len(str(x)) for x in [h] + [r[i] for r in rows]) for i, h in enumerate(headers)] line = " | ".join(h.ljust(col_widths[i]) for i, h in enumerate(headers)) sep = "-+-".join("-" * w for w in col_widths) print(" " + line); print(" " + sep) for r in rows: print(" " + " | ".join(str(r[i]).ljust(col_widths[i]) for i in range(len(headers)))) print(f"\n 📊 Interpretation:") print(f" • This tests whether trade timing affects performance") else: print("No metrics rows to display") def plot_monte_carlo_trades_chart(results: dict, charts_folder: str = None) -> None: """Plot equity curves from Monte Carlo trades results. Args: results: The full results dict returned by monte_carlo_trades(). charts_folder: Optional folder to save charts in. """ import matplotlib matplotlib.use('Agg') # Use non-interactive backend from matplotlib import pyplot as plt if 'scenarios' not in results or not results['scenarios']: print("No trade shuffle scenarios to plot") return plt.figure(figsize=(12, 8)) for i, scenario in enumerate(results['scenarios'][:50]): # Limit to 50 for visibility if 'equity_curve' in scenario and scenario['equity_curve']: values = [item['value'] for item in scenario['equity_curve'][0]['data']] plt.plot(values, color="cornflowerblue", alpha=0.5, linewidth=0.8) if 'original' in results and 'equity_curve' in results['original']: original_values = [item['value'] for item in results['original']['equity_curve'][0]['data']] plt.plot(original_values, color="green", linewidth=2, label="Original Strategy") plt.title("Monte Carlo Trades - Equity Curve (Shuffled Order)") plt.xlabel("Time"); plt.ylabel("Portfolio Value"); plt.legend(); plt.grid(True, alpha=0.3); plt.tight_layout() if charts_folder is None: charts_folder = _create_charts_folder() filename = _get_timestamped_filename("monte_carlo_trades_chart.png") chart_path = os.path.join(charts_folder, filename) plt.savefig(chart_path, dpi=150, bbox_inches='tight'); plt.close() print(f" 💾 Trades chart saved: {chart_path}") ================================================ FILE: jesse/routes/__init__.py ================================================ import sys from typing import Dict, List, Any from jesse.config import config import jesse.helpers as jh from jesse import exceptions from jesse.models.Route import Route from jesse import exceptions class RouterClass: def __init__(self) -> None: self.routes: List[Route] = [] self.data_routes: List[Route] = [] def _reset(self) -> None: self.routes = [] self.data_routes = [] def initiate(self, routes: list, data_routes: list = None): if data_routes is None: data_routes = [] self.set_routes(routes) self.set_data_routes(data_routes) considering_candles = set() # validate routes for duplicates: # each exchange-symbol pair can be traded only once. for r in router.routes: considering_candles.add((r.exchange, r.symbol)) exchange = r.exchange symbol = r.symbol count = sum( ro.exchange == exchange and ro.symbol == symbol for ro in router.routes ) if count != 1: raise exceptions.InvalidRoutes( 'each exchange-symbol pair can be traded only once. \nMore info: https://docs.jesse.trade/docs/routes.html#trading-multiple-routes') # check to make sure if trading more than one route, they all have the same quote # currency because otherwise we cannot calculate the correct performance metrics first_routes_quote = jh.quote_asset(router.routes[0].symbol) for r in router.routes: if jh.quote_asset(r.symbol) != first_routes_quote: raise exceptions.InvalidRoutes('All trading routes must have the same quote asset.') trading_exchanges = set() trading_timeframes = set() trading_symbols = set() for r in router.routes: trading_exchanges.add(r.exchange) trading_timeframes.add(r.timeframe) trading_symbols.add(r.symbol) considering_exchanges = trading_exchanges.copy() considering_timeframes = trading_timeframes.copy() considering_symbols = trading_symbols.copy() for e in router.data_routes: considering_candles.add((e.exchange, e.symbol)) considering_exchanges.add(e.exchange) considering_symbols.add(e.symbol) considering_timeframes.add(e.timeframe) # 1m must be present at all times considering_timeframes.add('1m') config['app']['considering_candles'] = tuple(considering_candles) config['app']['considering_exchanges'] = tuple(considering_exchanges) config['app']['considering_symbols'] = tuple(considering_symbols) config['app']['considering_timeframes'] = tuple(considering_timeframes) config['app']['trading_exchanges'] = tuple(trading_exchanges) config['app']['trading_symbols'] = tuple(trading_symbols) config['app']['trading_timeframes'] = tuple(trading_timeframes) def set_routes(self, routes: List[Any]) -> None: self._reset() self.routes = [] for r in routes: # validate strategy that the strategy file exists (if sent as a string) if isinstance(r["strategy"], str): strategy_name = r["strategy"] if jh.is_unit_testing(): path = sys.path[0] # live plugin if path.endswith('jesse-live'): strategies_dir = f'{sys.path[0]}/tests/strategies' # main framework else: strategies_dir = f'{sys.path[0]}/jesse/strategies' exists = jh.file_exists(f"{strategies_dir}/{strategy_name}/__init__.py") else: exists = jh.file_exists(f'strategies/{strategy_name}/__init__.py') else: exists = True if not exists and isinstance(r["strategy"], str): raise exceptions.InvalidRoutes( f'A strategy with the name of "{r["strategy"]}" could not be found.') self.routes.append(Route(r["exchange"], r["symbol"], r["timeframe"], r["strategy"], None)) def set_data_routes(self, routes: List[Dict[str, str]]) -> None: self.data_routes: List[Route] = [] for r in routes: self.data_routes.append(Route(r['exchange'], r['symbol'], r['timeframe'], None, None)) @property def formatted_routes(self) -> list: """ Example: [{'exchange': 'Binance', 'strategy': 'A1', 'symbol': 'BTC-USDT', 'timeframe': '1m'}] """ return [ { 'exchange': r.exchange, 'symbol': r.symbol, 'timeframe': r.timeframe, 'strategy': r.strategy_name, } for r in self.routes ] @property def formatted_data_routes(self) -> list: """ Example: [{'exchange': 'Binance', 'symbol': 'BTC-USD', 'timeframe': '3m'}] """ return [{ 'exchange': r.exchange, 'symbol': r.symbol, 'timeframe': r.timeframe } for r in self.data_routes] @property def all_formatted_routes(self) -> list: return self.formatted_routes + self.formatted_data_routes @property def trading_routes_count(self) -> int: return len(self.routes) @property def data_routes_count(self) -> int: return len(self.data_routes) @property def all_routes_count(self) -> int: return self.trading_routes_count + self.data_routes_count router: RouterClass = RouterClass() ================================================ FILE: jesse/services/__init__.py ================================================ ================================================ FILE: jesse/services/api.py ================================================ import threading from typing import Union import jesse.helpers as jh from jesse.models.Order import Order from jesse.services import logger class API: def __init__(self) -> None: self.drivers = {} if not jh.is_live(): self.initiate_drivers() def initiate_drivers(self) -> None: considering_exchanges = jh.get_config('app.considering_exchanges') # A helpful assertion if not len(considering_exchanges): raise Exception('No exchange is available for initiating in the API class') for e in considering_exchanges: if jh.is_live(): def initiate_ws(exchange_name: str) -> None: exchange_class = jh.get_config(f'app.live_drivers.{exchange_name}') self.drivers[exchange_name] = exchange_class() threading.Thread(target=initiate_ws, args=[e]).start() else: from jesse.exchanges import Sandbox self.drivers[e] = Sandbox(e) def market_order( self, exchange: str, symbol: str, qty: float, current_price: float, side: str, reduce_only: bool ) -> Union[Order, None]: if exchange not in self.drivers: logger.info(f'Exchange "{exchange}" driver not initiated yet. Trying again in the next candle') return None return self.drivers[exchange].market_order(symbol, qty, current_price, side, reduce_only) def limit_order( self, exchange: str, symbol: str, qty: float, price: float, side: str, reduce_only: bool ) -> Union[Order, None]: if exchange not in self.drivers: logger.info(f'Exchange "{exchange}" driver not initiated yet. Trying again in the next candle') return None return self.drivers[exchange].limit_order(symbol, qty, price, side, reduce_only) def stop_order( self, exchange: str, symbol: str, qty: float, price: float, side: str, reduce_only: bool ) -> Union[Order, None]: if exchange not in self.drivers: logger.info(f'Exchange "{exchange}" driver not initiated yet. Trying again in the next candle') return None return self.drivers[exchange].stop_order(symbol, qty, price, side, reduce_only) def cancel_all_orders(self, exchange: str, symbol: str) -> bool: if exchange not in self.drivers: logger.info(f'Exchange "{exchange}" driver not initiated yet. Trying again in the next candle') return False return self.drivers[exchange].cancel_all_orders(symbol) def cancel_order(self, exchange: str, symbol: str, order_id: str) -> bool: if exchange not in self.drivers: logger.info(f'Exchange "{exchange}" driver not initiated yet. Trying again in the next candle') return False return self.drivers[exchange].cancel_order(symbol, order_id) api = API() ================================================ FILE: jesse/services/auth.py ================================================ from hashlib import sha256 from fastapi.responses import JSONResponse from jesse.services.env import ENV_VALUES def password_to_token(password: str) -> JSONResponse: if password != ENV_VALUES['PASSWORD']: return unauthorized_response() auth_token = sha256(password.encode('utf-8')).hexdigest() return JSONResponse({ 'auth_token': auth_token, }, status_code=200) def is_valid_token(auth_token: str) -> bool: hashed_local_pass = sha256(ENV_VALUES['PASSWORD'].encode('utf-8')).hexdigest() return auth_token == hashed_local_pass def unauthorized_response() -> JSONResponse: return JSONResponse({ 'message': "Invalid password", }, status_code=401) def get_access_token(): from jesse.services.env import ENV_VALUES if 'LICENSE_API_TOKEN' not in ENV_VALUES: return None if not ENV_VALUES['LICENSE_API_TOKEN']: return None return ENV_VALUES['LICENSE_API_TOKEN'] def user_validation(password: str) -> JSONResponse: if password != ENV_VALUES['PASSWORD']: return unauthorized_response() auth_token = sha256(password.encode('utf-8')).hexdigest() return JSONResponse({ 'auth_token': auth_token, }, status_code=200) ================================================ FILE: jesse/services/broker.py ================================================ from typing import Union import jesse.helpers as jh from jesse.enums import sides from jesse.exceptions import OrderNotAllowed, InvalidStrategy from jesse.models.Order import Order from jesse.models import Position class Broker: def __init__(self, position: Position, exchange: str, symbol: str, timeframe: str) -> None: self.position = position self.symbol = symbol self.timeframe = timeframe self.exchange = exchange from jesse.services.api import api self.api = api @staticmethod def _validate_qty(qty: float) -> None: if qty == 0: raise InvalidStrategy('qty cannot be 0. \nRead more: https://jesse.trade/help/faq/i-keep-getting-invalidstrategy') def sell_at_market(self, qty: float) -> Union[Order, None]: self._validate_qty(qty) return self.api.market_order( self.exchange, self.symbol, abs(qty), self.position.current_price, sides.SELL, reduce_only=False ) def sell_at(self, qty: float, price: float) -> Union[Order, None]: self._validate_qty(qty) if price < 0: raise ValueError('price cannot be negative.') return self.api.limit_order( self.exchange, self.symbol, abs(qty), price, sides.SELL, reduce_only=False ) def buy_at_market(self, qty: float) -> Union[Order, None]: self._validate_qty(qty) return self.api.market_order( self.exchange, self.symbol, abs(qty), self.position.current_price, sides.BUY, reduce_only=False ) def buy_at(self, qty: float, price: float) -> Union[Order, None]: self._validate_qty(qty) if price < 0: raise ValueError('price cannot be negative.') return self.api.limit_order( self.exchange, self.symbol, abs(qty), price, sides.BUY, reduce_only=False ) def reduce_position_at(self, qty: float, price: float, current_price: float) -> Union[Order, None]: self._validate_qty(qty) qty = abs(qty) # validation if price < 0: raise ValueError(f'order price cannot be negative. You passed {price}') # validation if self.position.is_close: raise OrderNotAllowed( 'Cannot submit a reduce_position order when there is no open position' ) side = jh.opposite_side(jh.type_to_side(self.position.type)) # MARKET order # if the price difference is bellow 0.01% of the current price, then we submit a market order if jh.is_price_near(price, current_price): return self.api.market_order( self.exchange, self.symbol, qty, price, side, reduce_only=True ) # LIMIT order elif (side == 'sell' and self.position.type == 'long' and price > current_price) or ( side == 'buy' and self.position.type == 'short' and price < current_price): return self.api.limit_order( self.exchange, self.symbol, qty, price, side, reduce_only=True ) # STOP order elif (side == 'sell' and self.position.type == 'long' and price < current_price) or ( side == 'buy' and self.position.type == 'short' and price > current_price): return self.api.stop_order( self.exchange, self.symbol, abs(qty), price, side, reduce_only=True ) else: raise OrderNotAllowed("This order doesn't seem to be for reducing the position.") def start_profit_at(self, side: str, qty: float, price: float) -> Union[Order, None]: self._validate_qty(qty) if price < 0: raise ValueError('price cannot be negative.') if side == 'buy' and price < self.position.current_price: raise OrderNotAllowed( f'A buy start_profit({price}) order must have a price higher than current_price({self.position.current_price}).' ) if side == 'sell' and price > self.position.current_price: raise OrderNotAllowed( f'A sell start_profit({price}) order must have a price lower than current_price({self.position.current_price}).' ) return self.api.stop_order( self.exchange, self.symbol, abs(qty), price, side, reduce_only=False ) def cancel_all_orders(self) -> bool: return self.api.cancel_all_orders(self.exchange, self.symbol) def cancel_order(self, order_id: str) -> bool: return self.api.cancel_order(self.exchange, self.symbol, order_id) ================================================ FILE: jesse/services/cache.py ================================================ import os import pickle from time import time from typing import Any from functools import lru_cache import jesse.helpers as jh class Cache: def __init__(self, path: str) -> None: self.path = path self.driver = jh.get_config('env.caching.driver', 'pickle') if self.driver == 'pickle': # make sure path exists os.makedirs(path, exist_ok=True) # if cache_database exists, load the dictionary if os.path.isfile(f"{self.path}cache_database.pickle"): with open(f"{self.path}cache_database.pickle", 'rb') as f: try: self.db = pickle.load(f) except (EOFError, pickle.UnpicklingError, UnicodeDecodeError): # File got broken self.db = {} # if not, create a dict object. We'll create the file when using set_value() else: self.db = {} def set_value(self, key: str, data: Any, expire_seconds: int = 60 * 60) -> None: if self.driver is None: return # add record into the database expire_at = None if expire_seconds is None else time() + expire_seconds data_path = f"{self.path}{key}.pickle" self.db[key] = { 'expire_seconds': expire_seconds, 'expire_at': expire_at, 'path': data_path, } self._update_db() # store file with open(data_path, 'wb') as f: pickle.dump(data, f, protocol=pickle.HIGHEST_PROTOCOL) def get_value(self, key: str) -> Any: if self.driver is None: raise ValueError('Caching driver is not set.') try: item = self.db[key] except KeyError: return False # if expired, remove file, and database record if item['expire_at'] is not None and time() > item['expire_at']: try: os.remove(item['path']) except FileNotFoundError: pass del self.db[key] self._update_db() return False # If the cache file doesn't exist, remove the database record if not os.path.exists(item['path']): del self.db[key] self._update_db() return False # renew cache expiration time if item['expire_at'] is not None: item['expire_at'] = time() + item['expire_seconds'] self._update_db() try: with open(item['path'], 'rb') as f: cache_value = pickle.load(f) except (EOFError, pickle.UnpicklingError, FileNotFoundError): # If there's any error reading the file, remove the record and return False try: os.remove(item['path']) except FileNotFoundError: pass del self.db[key] self._update_db() return False return cache_value def _update_db(self) -> None: # store/update database with open(f"{self.path}cache_database.pickle", 'wb') as f: pickle.dump(self.db, f, protocol=pickle.HIGHEST_PROTOCOL) def flush(self) -> None: if self.driver is None: return # Create a list of keys to remove to avoid modifying dict during iteration keys_to_remove = list(self.db.keys()) for key in keys_to_remove: item = self.db[key] try: os.remove(item['path']) except FileNotFoundError: pass del self.db[key] # Update the database file after clearing self._update_db() cache = Cache("storage/temp/") # Using functools.lru_cache def cached(method): def decorated(self, *args, **kwargs): cached_method = self._cached_methods.get(method) if cached_method is None: cached_method = lru_cache()(method) self._cached_methods[method] = cached_method return cached_method(self, *args, **kwargs) return decorated ================================================ FILE: jesse/services/candle_service.py ================================================ from typing import Tuple import numpy as np import arrow from jesse.exceptions import CandleNotFoundInDatabase, InvalidDateRange import jesse.helpers as jh from jesse.services import logger from jesse.routes import router from timeloop import Timeloop from datetime import timedelta from jesse.store import store from jesse.config import config from jesse.repositories import candle_repository from jesse.libs.dynamic_numpy_array import DynamicNumpyArray def generate_candle_from_one_minutes( timeframe: str, candles: np.ndarray, accept_forming_candles: bool = False ) -> np.ndarray: if len(candles) == 0: raise ValueError('No candles were passed') if not accept_forming_candles and len(candles) != jh.timeframe_to_one_minutes(timeframe): raise ValueError( f'Sent only {len(candles)} candles but {jh.timeframe_to_one_minutes(timeframe)} is required to create a "{timeframe}" candle.' ) return np.array([ candles[0][0], candles[0][1], candles[-1][2], candles[:, 3].max(), candles[:, 4].min(), candles[:, 5].sum(), ]) def candle_dict_to_np_array(candle: dict) -> np.ndarray: return np.array([ candle['timestamp'], candle['open'], candle['close'], candle['high'], candle['low'], candle['volume'] ]) def print_candle(candle: np.ndarray, is_partial: bool, symbol: str) -> None: """ Ever since the new GUI dashboard, this function should log instead of actually printing :param candle: np.ndarray :param is_partial: bool :param symbol: str """ if jh.should_execute_silently(): return candle_form = ' ==' if is_partial else '====' candle_info = f' {symbol} | {str(arrow.get(candle[0] / 1000))[:-9]} | {candle[1]} | {candle[2]} | {candle[3]} | {candle[4]} | {round(candle[5], 2)}' msg = candle_form + candle_info # store it in the log file logger.info(msg) def is_bullish(candle: np.ndarray) -> bool: return candle[2] >= candle[1] def is_bearish(candle: np.ndarray) -> bool: return candle[2] < candle[1] def candle_includes_price(candle: np.ndarray, price: float) -> bool: return (price >= candle[4]) and (price <= candle[3]) def split_candle(candle: np.ndarray, price: float) -> tuple: """ splits a single candle into two candles: earlier + later :param candle: np.ndarray :param price: float :return: tuple """ timestamp = candle[0] o = candle[1] c = candle[2] h = candle[3] l = candle[4] v = candle[5] if is_bullish(candle) and l < price < o: return np.array([ timestamp, o, price, o, price, v ]), np.array([ timestamp, price, c, h, l, v ]) elif price == o: return candle, candle elif is_bearish(candle) and o < price < h: return np.array([ timestamp, o, price, price, o, v ]), np.array([ timestamp, price, c, h, l, v ]) elif is_bearish(candle) and l < price < c: return np.array([ timestamp, o, price, h, price, v ]), np.array([ timestamp, price, c, c, l, v ]) elif is_bullish(candle) and c < price < h: return np.array([ timestamp, o, price, price, l, v ]), np.array([ timestamp, price, c, h, c, v ]), elif is_bearish(candle) and price == c: return np.array([ timestamp, o, c, h, c, v ]), np.array([ timestamp, price, price, price, l, v ]) elif is_bullish(candle) and price == c: return np.array([ timestamp, o, c, c, l, v ]), np.array([ timestamp, price, price, h, price, v ]) elif is_bearish(candle) and price == h: return np.array([ timestamp, o, h, h, o, v ]), np.array([ timestamp, h, c, h, l, v ]) elif is_bullish(candle) and price == l: return np.array([ timestamp, o, l, o, l, v ]), np.array([ timestamp, l, c, h, l, v ]) elif is_bearish(candle) and price == l: return np.array([ timestamp, o, l, h, l, v ]), np.array([ timestamp, l, c, c, l, v ]) elif is_bullish(candle) and price == h: return np.array([ timestamp, o, h, h, l, v ]), np.array([ timestamp, h, c, h, c, v ]) elif is_bearish(candle) and c < price < o: return np.array([ timestamp, o, price, h, price, v ]), np.array([ timestamp, price, c, price, l, v ]) elif is_bullish(candle) and o < price < c: return np.array([ timestamp, o, price, price, l, v ]), np.array([ timestamp, price, c, h, price, v ]) def inject_warmup_candles_to_store(candles: np.ndarray, exchange: str, symbol: str) -> None: if candles is None or candles.size == 0: raise ValueError(f'Could not inject warmup candles because the passed candles are empty. Have you imported enough warmup candles for {exchange}/{symbol}?') from jesse.config import config from jesse.store import store # batch add 1m candles: batch_add_candle(candles, exchange, symbol, '1m', with_generation=False) # loop to generate, and add candles (without execution) for i in range(len(candles)): for timeframe in config['app']['considering_timeframes']: # skip 1m. already added if timeframe == '1m': continue num = jh.timeframe_to_one_minutes(timeframe) if (i + 1) % num == 0: generated_candle = generate_candle_from_one_minutes( timeframe, candles[(i - (num - 1)):(i + 1)], True ) add_candle( generated_candle, exchange, symbol, timeframe, with_execution=False, with_generation=False ) def get_candles_from_db( exchange: str, symbol: str, timeframe: str, start_date_timestamp: int, finish_date_timestamp: int, warmup_candles_num: int = 0, caching: bool = False, is_for_jesse: bool = False ) -> Tuple[np.ndarray, np.ndarray]: symbol = symbol.upper() # convert start_date and finish_date to timestamps trading_start_date_timestamp = jh.timestamp_to_arrow(start_date_timestamp).floor( 'day').int_timestamp * 1000 trading_finish_date_timestamp = (jh.timestamp_to_arrow(finish_date_timestamp).floor( 'day').int_timestamp * 1000) - 60_000 # if warmup_candles is set, calculate the warmup start and finish timestamps if warmup_candles_num > 0: warmup_finish_timestamp = trading_start_date_timestamp warmup_start_timestamp = warmup_finish_timestamp - ( warmup_candles_num * jh.timeframe_to_one_minutes(timeframe) * 60_000) warmup_finish_timestamp -= 60_000 warmup_candles = _get_candles_from_db(exchange, symbol, warmup_start_timestamp, warmup_finish_timestamp, caching=caching) else: warmup_candles = None # fetch trading candles from database trading_candles = _get_candles_from_db(exchange, symbol, trading_start_date_timestamp, trading_finish_date_timestamp, caching=caching) # if timeframe is 1m or is_for_jesse is True, return the candles as is because they # are already 1m candles which is the accepted format for practicing with Jesse. if timeframe == '1m' or is_for_jesse: return warmup_candles, trading_candles # if the timeframe is not 1m, generate the candles for the requested timeframe if warmup_candles_num > 0: warmup_candles = _get_generated_candles(timeframe, warmup_candles) else: warmup_candles = None trading_candles = _get_generated_candles(timeframe, trading_candles) return warmup_candles, trading_candles def _get_candles_from_db( exchange, symbol, start_date_timestamp, finish_date_timestamp, caching: bool = False ) -> np.ndarray: from jesse.models.Candle import Candle from jesse.services.cache import cache if caching: key = jh.key(exchange, symbol) cache_key = f"{start_date_timestamp}-{finish_date_timestamp}-{key}" cached_value = cache.get_value(cache_key) if cached_value: return np.array(cached_value) # validate the dates if start_date_timestamp == finish_date_timestamp: raise InvalidDateRange('start_date and finish_date cannot be the same.') if start_date_timestamp > finish_date_timestamp: raise InvalidDateRange(f'start_date ({jh.timestamp_to_date(start_date_timestamp)}) is greater than finish_date ({jh.timestamp_to_date(finish_date_timestamp)}).') # validate finish_date is not in the future current_timestamp = arrow.utcnow().int_timestamp * 1000 if finish_date_timestamp > current_timestamp: yesterday_date = jh.timestamp_to_date(current_timestamp - 86400000) raise InvalidDateRange(f'The finish date "{jh.timestamp_to_time(finish_date_timestamp)[:19]}" cannot be in the future. Please select a date up to "{yesterday_date}".') # validate start_date is not in the future if start_date_timestamp > current_timestamp: raise InvalidDateRange(f'Can\'t backtest the future! start_date ({jh.timestamp_to_date(start_date_timestamp)}) is greater than the current time ({jh.timestamp_to_date(current_timestamp)}).') # Always materialize the database results immediately candles_tuple = list(Candle.select( Candle.timestamp, Candle.open, Candle.close, Candle.high, Candle.low, Candle.volume ).where( Candle.exchange == exchange, Candle.symbol == symbol, Candle.timeframe == '1m' or Candle.timeframe.is_null(), Candle.timestamp.between(start_date_timestamp, finish_date_timestamp) ).order_by(Candle.timestamp.asc()).tuples()) # Check if we got any candles if not candles_tuple: raise CandleNotFoundInDatabase(f"No candles found for {symbol} on {exchange} between {jh.timestamp_to_date(start_date_timestamp)} and {jh.timestamp_to_date(finish_date_timestamp)}.") # Convert to numpy array for easier timestamp extraction candles_array = np.array(candles_tuple) # Verify the retrieved data covers the requested range if len(candles_array) > 0: earliest_available = candles_array[0][0] # First timestamp latest_available = candles_array[-1][0] # Last timestamp # Check if earliest available timestamp is after the requested start date if earliest_available > start_date_timestamp + 60_000: # Allow 1 minute tolerance raise CandleNotFoundInDatabase( f"Missing candles for {symbol} on {exchange}. " f"Requested data from {jh.timestamp_to_date(start_date_timestamp)}, " f"but earliest available candle is from {jh.timestamp_to_date(earliest_available)}." ) # For finish date validation, we need to check if we have candles up to exactly one minute # before the start of the requested finish date # Check if the latest available candle timestamp is before the required last candle if latest_available < finish_date_timestamp: # Missing candles at the end of the requested range raise CandleNotFoundInDatabase( f"Missing recent candles for \"{symbol}\" on \"{exchange}\". " f"Requested data until \"{jh.timestamp_to_time(finish_date_timestamp)[:19]}\", " f"but latest available candle is up to \"{jh.timestamp_to_time(latest_available)[:19]}\"." ) if caching: # cache for 1 week it for near future calls cache.set_value(cache_key, candles_tuple, expire_seconds=60 * 60 * 24 * 7) return candles_array def _get_generated_candles(timeframe, trading_candles) -> np.ndarray: # generate candles for the requested timeframe generated_candles = [] for i in range(len(trading_candles)): num = jh.timeframe_to_one_minutes(timeframe) if (i + 1) % num == 0: generated_candles.append( generate_candle_from_one_minutes( timeframe, trading_candles[(i - (num - 1)):(i + 1)], True ) ) return np.array(generated_candles) def generate_new_candles_loop() -> None: """ to prevent the issue of missing candles when no volume is traded on the live exchange """ t = Timeloop() @t.job(interval=timedelta(seconds=1)) def time_loop_per_second(): # make sure all candles are already initiated if not store.candles.are_all_initiated: return # only at first second on each minute if jh.now() % 60_000 != 1000: return for c in router.all_formatted_routes: exchange, symbol, timeframe = c['exchange'], c['symbol'], c['timeframe'] current_candle = get_current_candle(exchange, symbol, timeframe) # fix for a bug if current_candle[0] <= 60_000: continue # if a missing candle is found, generate an empty candle from the # last one this is useful when the exchange doesn't stream an empty # candle when no volume is traded at the period of the candle if jh.next_candle_timestamp(current_candle, timeframe) < jh.now(): new_candle = _generate_empty_candle_from_previous_candle(current_candle, timeframe=timeframe) add_candle(new_candle, exchange, symbol, timeframe) t.start() def _generate_empty_candle_from_previous_candle( previous_candle: np.ndarray, timeframe: str = '1m' ) -> np.ndarray: """ generate an empty candle from the previous candle """ new_candle = previous_candle.copy() candles_count = jh.timeframe_to_one_minutes(timeframe) * 60_000 new_candle[0] = previous_candle[0] + candles_count # new candle's open, close, high, and low all equal to previous candle's close new_candle[1] = previous_candle[2] new_candle[2] = previous_candle[2] new_candle[3] = previous_candle[2] new_candle[4] = previous_candle[2] # set volume to 0 new_candle[5] = 0 return new_candle def add_candle( candle: np.ndarray, exchange: str, symbol: str, timeframe: str, with_execution: bool = True, with_generation: bool = True, with_skip: bool = True ) -> None: # overwrite with_generation based on the config value for live sessions if jh.is_live() and not jh.get_config('env.data.generate_candles_from_1m'): with_generation = False if candle[0] == 0: if jh.is_debugging(): logger.error( f"DEBUGGING-VALUE: please report to Saleh: candle[0] is zero. \nFull candle: {candle}\n" ) return arr: DynamicNumpyArray = store.candles.get_storage(exchange, symbol, timeframe) if jh.is_live(): # ignore if candle is still being initially imported if with_skip and f'{exchange}-{symbol}' not in store.candles.initiated_pairs: return # if it's not an old candle, update the related position's current_price if jh.next_candle_timestamp(candle, timeframe) > jh.now(): _update_position_current_price(exchange, symbol, candle[2]) # ignore new candle at the time of execution because it messes # the count of candles without actually having an impact if candle[0] >= jh.now(): return _store_or_update_candle_into_db(exchange, symbol, timeframe, candle) # initial if len(arr) == 0: arr.append(candle) # if it's new, add elif candle[0] > arr[-1][0]: arr.append(candle) # generate other timeframes if with_generation and timeframe == '1m': _generate_bigger_timeframes(candle, exchange, symbol, with_execution) # if it's the last candle again, update elif candle[0] == arr[-1][0]: arr[-1] = candle # regenerate other timeframes if with_generation and timeframe == '1m': _generate_bigger_timeframes(candle, exchange, symbol, with_execution) # allow updating of the previous candle. elif candle[0] < arr[-1][0]: # loop through the last 20 items in arr to find it. If so, update it. for i in range(max(20, len(arr) - 1)): if arr[-i][0] == candle[0]: arr[-i] = candle break else: logger.info( f"Could not find the candle with timestamp {jh.timestamp_to_time(candle[0])} in the storage. Last candle's timestamp: {jh.timestamp_to_time(arr[-1])}. timeframe: {timeframe}, exchange: {exchange}, symbol: {symbol}" ) def _store_or_update_candle_into_db(exchange: str, symbol: str, timeframe: str, candle: np.ndarray) -> None: # if it's not an initial candle, add it to the storage, if already exists, update it if f'{exchange}-{symbol}' in store.candles.initiated_pairs: candle_repository.store_candle_into_db(exchange, symbol, timeframe, candle, on_conflict='replace') def _update_position_current_price(exchange: str, symbol: str, price: float) -> None: # get position object p = store.positions.get_position(exchange, symbol) # for data_route candles, p == None, hence no further action is required if p is None: return if jh.is_live(): price_precision = store.exchanges.get_exchange(exchange).vars['precisions'][symbol]['price_precision'] # update position.current_price p.current_price = jh.round_price_for_live_mode(price, price_precision) else: p.current_price = price def add_candle_from_trade(trade, exchange: str, symbol: str) -> np.ndarray | None: """ In few exchanges, there's no candle stream over the WS, for those we have to use cases the trades stream """ if not jh.is_live(): raise Exception('add_candle_from_trade() is for live modes only') # ignore if candle is still being initially imported if f'{exchange}-{symbol}' not in store.candles.initiated_pairs: return None # update position's current price _update_position_current_price(exchange, symbol, trade['price']) def do(t) -> np.ndarray: # in some cases we might be missing the current forming candle like it is on FTX, hence # if that is the case, generate the current forming candle (it won't be super accurate) current_candle = get_current_candle(exchange, symbol, t) if jh.next_candle_timestamp(current_candle, t) < jh.now(): new_candle = _generate_empty_candle_from_previous_candle(current_candle, t) add_candle(new_candle, exchange, symbol, t) current_candle = get_current_candle(exchange, symbol, t) new_candle = current_candle.copy() # close new_candle[2] = trade['price'] # high new_candle[3] = max(new_candle[3], trade['price']) # low new_candle[4] = min(new_candle[4], trade['price']) # volume new_candle[5] += trade['volume'] add_candle(new_candle, exchange, symbol, t) return new_candle # to support both candle generation and ... if jh.get_config('env.data.generate_candles_from_1m'): return do('1m') else: for r in router.all_formatted_routes: if r['exchange'] != exchange or r['symbol'] != symbol: return None return do(r['timeframe']) def _generate_bigger_timeframes(candle: np.ndarray, exchange: str, symbol: str, with_execution: bool) -> None: if not jh.is_live(): return for timeframe in config['app']['considering_timeframes']: # skip '1m' if timeframe == '1m': continue last_candle = get_current_candle(exchange, symbol, timeframe) generate_from_count = int((candle[0] - last_candle[0]) / 60_000) number_of_candles = len(get_candles(exchange, symbol, '1m')) short_candles = get_candles(exchange, symbol, '1m')[-1 - generate_from_count:] if generate_from_count == -1: # it's receiving an slightly older candle than the last one. Ignore it return if generate_from_count < 0: current_1m = get_current_candle(exchange, symbol, '1m') raise ValueError( f'generate_from_count cannot be negative! ' f'generate_from_count:{generate_from_count}, candle[0]:{candle[0]}, ' f'last_candle[0]:{last_candle[0]}, current_1m:{current_1m[0]}, number_of_candles:{number_of_candles}') if len(short_candles) == 0: raise ValueError( f'No candles were passed. More info:' f'\nexchange:{exchange}, symbol:{symbol}, timeframe:{timeframe}, generate_from_count:{generate_from_count}' f'\nlast_candle\'s timestamp: {last_candle[0]}' f'\ncurrent timestamp: {jh.now()}' ) # update latest candle generated_candle = generate_candle_from_one_minutes( timeframe, short_candles, accept_forming_candles=True ) add_candle( generated_candle, exchange, symbol, timeframe, with_execution, with_generation=False ) def batch_add_candle( candles: np.ndarray, exchange: str, symbol: str, timeframe: str, with_generation: bool = True ) -> None: for c in candles: add_candle(c, exchange, symbol, timeframe, with_execution=False, with_generation=with_generation, with_skip=False) def get_candles(exchange: str, symbol: str, timeframe: str) -> np.ndarray: # no need to worry for forming candles when timeframe == 1m if timeframe == '1m': arr: DynamicNumpyArray = store.candles.get_storage(exchange, symbol, '1m') if len(arr) == 0: return np.zeros((0, 6)) else: return arr[:] # other timeframes dif, long_key, short_key = store.candles.forming_estimation(exchange, symbol, timeframe) long_count = len(store.candles.get_storage(exchange, symbol, timeframe)) short_count = len(store.candles.get_storage(exchange, symbol, '1m')) if dif == 0 and long_count == 0: return np.zeros((0, 6)) # complete candle if dif == 0: return store.candles.storage[long_key][:long_count] # generate forming candle only if NOT in live mode elif not jh.is_live(): forming_candle = generate_candle_from_one_minutes( timeframe, store.candles.storage[short_key][short_count - dif:short_count], True ) existing_candles_arr: DynamicNumpyArray = store.candles.storage[long_key] add_candle(forming_candle, exchange, symbol, timeframe, with_execution=False, with_generation=False, with_skip=False) return existing_candles_arr[:] # in live mode, just return the complete candles else: return store.candles.storage[long_key][:long_count] def get_current_candle(exchange: str, symbol: str, timeframe: str) -> np.ndarray: # no need to worry for forming candles when timeframe == 1m if timeframe == '1m': arr: DynamicNumpyArray = store.candles.get_storage(exchange, symbol, '1m') if len(arr) == 0: return np.zeros((0, 6)) else: return arr[-1] # other timeframes dif, long_key, short_key = store.candles.forming_estimation(exchange, symbol, timeframe) long_count = len(store.candles.get_storage(exchange, symbol, timeframe)) short_count = len(store.candles.get_storage(exchange, symbol, '1m')) # forming candle if dif != 0: return generate_candle_from_one_minutes( timeframe, store.candles.storage[short_key][short_count - dif:short_count], True ) if long_count == 0: return np.zeros((0, 6)) else: return store.candles.storage[long_key][-1] def add_multiple_1m_candles( candles: np.ndarray, exchange: str, symbol: str, ) -> None: if not (jh.is_backtesting() or jh.is_optimizing()): raise Exception('add_multiple_1m_candles() is for backtesting or optimizing only') arr: DynamicNumpyArray = store.candles.get_storage(exchange, symbol, '1m') # initial if len(arr) == 0: arr.append_multiple(candles) # if it's new, add elif candles[0, 0] > arr[-1][0]: arr.append_multiple(candles) # if it's the last candle again, update elif candles[0, 0] >= arr[-len(candles)][0] and candles[-1, 0] >= arr[-1][0]: override_candles = int( len(candles) - ((candles[-1, 0] - arr[-1][0]) / 60000) ) arr[-override_candles:] = candles # Otherwise,it's true and error. else: raise IndexError(f"Could not find the candle with timestamp {jh.timestamp_to_time(candles[0, 0])} in the storage. Last candle's timestamp: {jh.timestamp_to_time(arr[-1][0])}. exchange: {exchange}, symbol: {symbol}") ================================================ FILE: jesse/services/charts.py ================================================ from datetime import datetime, timedelta from jesse.routes import router from jesse.store import store from jesse.services.candle_service import get_candles_from_db from jesse.utils import prices_to_returns def _calculate_equity_curve(daily_balance, start_date, name: str, color: str): date_list = [start_date + timedelta(days=x) for x in range(len(daily_balance))] eq = [{ 'time': date.timestamp(), 'value': balance, 'color': color } for date, balance in zip(date_list, daily_balance)] return { 'name': name, 'data': eq, 'color': color, } def _generate_color(previous_color): # Convert the previous color from hex to RGB previous_color = previous_color.lstrip('#') r, g, b = tuple(int(previous_color[i:i+2], 16) for i in (0, 2, 4)) # Modify the RGB values to generate a new color r = (r + 50) % 256 g = (g + 50) % 256 b = (b + 50) % 256 # Convert the new color from RGB to hex new_color = '#{:02x}{:02x}{:02x}'.format(r, g, b) return new_color def equity_curve(benchmark: bool = False) -> list: if store.closed_trades.count == 0: return None result = [] start_date = datetime.fromtimestamp(store.app.starting_time / 1000) daily_balance = store.app.daily_balance # Define the first 10 colors colors = ['#818CF8', '#fbbf24', '#fb7185', '#60A5FA', '#f472b6', '#A78BFA', '#f87171', '#6EE7B7', '#93C5FD', '#FCA5A5'] result.append(_calculate_equity_curve(daily_balance, start_date, 'Portfolio', colors[0])) if benchmark: initial_balance = daily_balance[0] for i, r in enumerate(router.routes): _, daily_candles = get_candles_from_db( r.exchange, r.symbol, '1D', store.app.starting_time, store.app.ending_time + 1000 * 60 * 60 * 24, is_for_jesse=False, warmup_candles_num=0, caching=True ) daily_returns = prices_to_returns(daily_candles[:, 2]) daily_returns[0] = 0 daily_balance_benchmark = initial_balance * (1 + daily_returns/100).cumprod() # If there are more than 10 routes, generate new colors if i + 1 >= 10: colors.append(_generate_color(colors[-1])) result.append(_calculate_equity_curve(daily_balance_benchmark, start_date, r.symbol, colors[(i + 1) % len(colors)])) return result ================================================ FILE: jesse/services/closed_trade_service.py ================================================ import jesse.helpers as jh from jesse.services import logger from jesse.repositories import closed_trade_repository, order_repository from jesse.store import store from jesse.enums import sides import numpy as np from jesse.models import ClosedTrade, Order, Position def create_trade_from_dict(attributes: dict) -> ClosedTrade: if attributes.get('created_at') is None: attributes['created_at'] = jh.now_to_timestamp() trade = ClosedTrade(attributes) # if it's live/paper trading, we store the trade in the database. if jh.is_live(): closed_trade_repository.store_or_update(trade) return trade def add_executed_order(executed_order: Order) -> None: t = store.closed_trades._get_current_trade(executed_order.exchange, executed_order.symbol) # if the order is not partially filled, we add it to the trade orders. if not executed_order.is_partially_filled: executed_order.trade_id = t.id t.orders.append(executed_order) add_order_record_only(executed_order) if jh.is_live(): order_repository.store_or_update(executed_order) def add_order_record_only(order: Order) -> None: """ used in add_executed_order() and for when initially adding open positions in live mode. used for correct trade-metrics calculations in persistency support for live mode. """ t = store.closed_trades._get_current_trade(order.exchange, order.symbol) if order.side == sides.BUY: t.buy_orders.append(np.array([abs(order.filled_qty), order.price])) elif order.side == sides.SELL: t.sell_orders.append(np.array([abs(order.filled_qty), order.price])) else: raise Exception(f"Invalid order side: {order.side}") def open_trade(position, p_orders: list = None) -> None: t = store.closed_trades._get_current_trade(position.exchange_name, position.symbol) t.opened_at = position.opened_at t.leverage = position.leverage try: t.timeframe = position.strategy.timeframe t.strategy_name = position.strategy.name except AttributeError: if not jh.is_unit_testing(): raise # if some unit tests, we don't need to set the timeframe and strategy name. t.timeframe = None t.strategy_name = None t.exchange = position.exchange_name t.symbol = position.symbol t.type = position.type t.session_id = store.app.session_id if jh.is_live() or jh.is_paper_trading(): closed_trade_repository.store_or_update(t) if p_orders: for order in p_orders: order.trade_id = t.id order_repository.store_or_update(order) add_order_record_only(order) def close_trade(position: Position) -> None: t: ClosedTrade = store.closed_trades._get_current_trade(position.exchange_name, position.symbol) if not t.is_open: logger.info( "Unable to close a trade that is not yet open. If you're getting this in the live mode, it is likely due" " to an unstable connection to the exchange, either on your side or the exchange's side. Please submit a" " report using the report button so that Jesse's support team can investigate the issue." ) return t.closed_at = position.closed_at try: position.strategy.trades_count += 1 except AttributeError: if not jh.is_unit_testing(): raise if jh.is_livetrading(): closed_trade_repository.store_or_update(t) store.closed_trades.trades.append(t) closed_trade_repository.close_trade(t) if not jh.is_unit_testing(): logger.info( f"CLOSED a {t.type} trade for {t.exchange}-{t.symbol}: qty: {t.qty}," f" entry_price: {t.entry_price}, exit_price: {t.exit_price}, " f"PNL: {round(t.pnl, 2)} ({round(t.pnl_percentage, 2)}%)" ) store.closed_trades._reset_current_trade(position.exchange_name, position.symbol) ================================================ FILE: jesse/services/color.py ================================================ import random _generated_colors = set() def generate_unique_hex_color(): def random_color(): return "#{:06x}".format(random.randint(0, 0xFFFFFF)) def luminance(hex_color): hex_color = hex_color.lstrip('#') r, g, b = int(hex_color[0:2], 16), int(hex_color[2:4], 16), int(hex_color[4:6], 16) return 0.2126 * r + 0.7152 * g + 0.0722 * b while True: color = random_color() if color not in _generated_colors: lum = luminance(color) if 50 < lum < 200: # Ensuring the color is neither too dark nor too light _generated_colors.add(color) return color ================================================ FILE: jesse/services/db.py ================================================ from playhouse.postgres_ext import PostgresqlExtDatabase import jesse.helpers as jh from jesse.services.env import ENV_VALUES # refactor above code into a class class Database: def __init__(self): self.db: PostgresqlExtDatabase = None def is_closed(self) -> bool: if self.db is None: return True return self.db.is_closed() def is_open(self) -> bool: if self.db is None: return False return not self.db.is_closed() def close_connection(self) -> None: if self.db: self.db.close() self.db = None def open_connection(self) -> None: if not jh.is_jesse_project() or jh.is_unit_testing(): return # if it's not None, then we already have a connection if self.db is not None: return options = { "keepalives": 1, "keepalives_idle": 60, "keepalives_interval": 10, "keepalives_count": 5 } self.db = PostgresqlExtDatabase( ENV_VALUES['POSTGRES_NAME'], user=ENV_VALUES['POSTGRES_USERNAME'], password=ENV_VALUES['POSTGRES_PASSWORD'], host=ENV_VALUES['POSTGRES_HOST'], port=int(ENV_VALUES['POSTGRES_PORT']), sslmode=ENV_VALUES.get('POSTGRES_SSLMODE', 'disable'), **options ) # connect to the database self.db.connect() database = Database() ================================================ FILE: jesse/services/env.py ================================================ from dotenv import load_dotenv, dotenv_values import jesse.helpers as jh import os import sys # fix directory issue sys.path.insert(0, os.getcwd()) ENV_VALUES = {} if jh.is_unit_testing(): ENV_VALUES['POSTGRES_HOST'] = '127.0.0.1' ENV_VALUES['POSTGRES_NAME'] = 'jesse_db' ENV_VALUES['POSTGRES_PORT'] = '5432' ENV_VALUES['POSTGRES_USERNAME'] = 'jesse_user' ENV_VALUES['POSTGRES_PASSWORD'] = 'password' ENV_VALUES['REDIS_HOST'] = 'localhost' ENV_VALUES['REDIS_PORT'] = '6379' ENV_VALUES['REDIS_DB'] = 0 ENV_VALUES['REDIS_PASSWORD'] = '' ENV_VALUES['APP_PORT'] = 3000 ENV_VALUES['IS_DEV_ENV'] = 'TRUE' ENV_VALUES['LSP_PORT'] = 9001 if jh.is_jesse_project(): # load env load_dotenv() # create and expose ENV_VALUES ENV_VALUES = dotenv_values('.env') # validation for existence of .env file if len(list(ENV_VALUES.keys())) == 0: jh.error( '.env file is missing from within your local project. ' 'This usually happens when you\'re in the wrong directory. ' '\n\nIf you haven\'t created a Jesse project yet, do that by running: \n' 'jesse make-project {name}\n' 'And then go into that project, and run the same command.', force_print=True ) os._exit(1) jh.terminate_app() # raise FileNotFoundError('.env file is missing from within your local project. This usually happens when you\'re in the wrong directory. You can create one by running "cp .env.example .env"') if not jh.is_unit_testing() and ENV_VALUES['PASSWORD'] == '': raise EnvironmentError('You forgot to set the PASSWORD in your .env file') def is_dev_env() -> bool: return ENV_VALUES.get('IS_DEV_ENV', '').upper() == 'TRUE' ================================================ FILE: jesse/services/exchange_service.py ================================================ from jesse.config import config from jesse.exceptions import InvalidConfig from jesse.models import SpotExchange, FuturesExchange, Exchange from jesse.modes.utils import get_exchange_type from jesse.store import store def initialize_exchanges_state() -> None: for name in config['app']['considering_exchanges']: starting_assets = config['env']['exchanges'][name]['balance'] fee = config['env']['exchanges'][name]['fee'] exchange_type = get_exchange_type(name) if exchange_type == 'spot': store.exchanges.storage[name] = SpotExchange(name, starting_assets, fee) elif exchange_type == 'futures': store.exchanges.storage[name] = FuturesExchange( name, starting_assets, fee, futures_leverage_mode=config['env']['exchanges'][name]['futures_leverage_mode'], futures_leverage=config['env']['exchanges'][name]['futures_leverage'], ) else: raise InvalidConfig( f'Value for exchange type in your config file in not valid. Supported values are "spot" and "futures". Your value is "{exchange_type}"' ) ================================================ FILE: jesse/services/failure.py ================================================ import jesse.helpers as jh from jesse.services import logger as jesse_logger import threading import traceback from jesse.services.redis import sync_publish from jesse.repositories import live_session_repository from jesse.store import store from jesse.enums import live_session_statuses def register_custom_exception_handler() -> None: # other threads def handle_thread_exception(args) -> None: if args.exc_type == SystemExit: return if args.exc_type.__name__ == 'Termination': sync_publish('termination', {}) jh.terminate_app() else: # send notifications if it's a live session if jh.is_live(): jesse_logger.error( f'{args.exc_type.__name__}: {args.exc_value}' ) jesse_logger.info( str(traceback.format_exc()) ) # Store exception in live session try: live_session_repository.store_live_session_exception( store.app.session_id, f"{args.exc_type.__name__}: {str(args.exc_value)}", str(traceback.format_exc()) ) live_session_repository.update_live_session_status(store.app.session_id, live_session_statuses.STOPPED) live_session_repository.update_live_session_finished(store.app.session_id) except Exception as e: jh.debug(f'Error storing live session exception: {e}') sync_publish('exception', { 'error': f"{args.exc_type.__name__}: {str(args.exc_value)}", 'traceback': str(traceback.format_exc()) }) terminate_session() threading.excepthook = handle_thread_exception def terminate_session(): sync_publish('unexpectedTermination', { 'message': "Session terminated as the result of an uncaught exception", }) jesse_logger.error('Session terminated as the result of an uncaught exception') jh.terminate_app() ================================================ FILE: jesse/services/file.py ================================================ import csv import json import os import arrow from jesse.config import config from jesse.services.tradingview import tradingview_logs from jesse.store import store import jesse.helpers as jh def store_logs(export_json: bool = False, export_tradingview: bool = False, export_csv: bool = False) -> dict: if store.closed_trades.count == 0: return { 'json': None, 'tradingview': None, 'csv': None } result = {} file_name = jh.get_session_id() trades_json = {'trades': [], 'considering_timeframes': config['app']['considering_timeframes']} for t in store.closed_trades.trades: trades_json['trades'].append(t.to_json) if export_json: path = f'storage/json/{file_name}.json' os.makedirs('./storage/json', exist_ok=True) with open(path, 'w+') as outfile: def set_default(obj): if isinstance(obj, set): return list(obj) raise TypeError json.dump(trades_json, outfile, default=set_default) result['json'] = path # store output for TradingView.com's pine-editor if export_tradingview: result['tradingview'] = tradingview_logs(file_name) # also write a CSV file if export_csv: path = f'storage/csv/{file_name}.csv' os.makedirs('./storage/csv', exist_ok=True) with open(path, 'w', newline='') as outfile: wr = csv.writer(outfile, quoting=csv.QUOTE_ALL) for i, t in enumerate(trades_json['trades']): if i == 0: # header of CSV file wr.writerow(t.keys()) wr.writerow(t.values()) result['csv'] = path return result ================================================ FILE: jesse/services/general_info.py ================================================ import os import requests import jesse.helpers as jh from jesse.info import exchange_info, jesse_supported_timeframes, JESSE_API_URL from jesse.services.env import is_dev_env def get_general_info(has_live=False) -> dict: from jesse.version import __version__ as jesse_version system_info = { 'jesse_version': jesse_version } plan_info = {'plan': 'guest'} limits = {} if has_live: from jesse.services.auth import get_access_token access_token = get_access_token() if not access_token: has_live = False # version info from jesse_live.version import __version__ as live_version system_info['live_plugin_version'] = live_version if access_token: # get the account plan info via the access_token try: response = requests.post( JESSE_API_URL + '/v2/user-info', headers={'Authorization': f'Bearer {access_token}'}, timeout=10 ) # Check if response is JSON content_type = response.headers.get('Content-Type', '') if 'application/json' not in content_type: raise Exception( f"Jesse API returned unexpected content type '{content_type}'. " f"The service might be temporarily unavailable. Please try again later." ) if response.status_code != 200: try: error_message = response.json().get('message', 'Unknown error') except: error_message = f"Received status code {response.status_code}" raise Exception( f"Failed to get user info from Jesse API: {error_message}" ) plan_info = response.json() limits = plan_info['limits'] except requests.exceptions.RequestException as e: raise Exception( f"Failed to connect to Jesse API. The service might be temporarily unavailable. " f"Error: {str(e)}" ) except ValueError as e: raise Exception( f"Jesse API returned invalid JSON response. The service might be temporarily unavailable. " f"Error: {str(e)}" ) strategies_path = os.getcwd() + "/strategies/" strategies = list(sorted([name for name in os.listdir(strategies_path) if os.path.isdir(strategies_path + name) and not name.startswith('.')])) if "__pycache__" in strategies: strategies.remove("__pycache__") system_info['python_version'] = '{}.{}'.format(*jh.python_version()) system_info['operating_system'] = jh.get_os() system_info['cpu_cores'] = jh.cpu_cores_count() system_info['is_docker'] = jh.is_docker() update_info = {} try: # if we are in local dev, consider offline if is_dev_env(): raise ValueError("jesse is running locally, so don't check for updates from pypi") response = requests.get('https://pypi.org/pypi/jesse/json', timeout=10) if response.status_code == 200 and 'application/json' in response.headers.get('Content-Type', ''): update_info['jesse_latest_version'] = response.json()['info']['version'] else: raise ValueError("Invalid response from PyPI") response = requests.get( JESSE_API_URL + '/plugins/live/releases/info', timeout=10 ) if response.status_code == 200 and 'application/json' in response.headers.get('Content-Type', ''): update_info['jesse_live_latest_version'] = response.json()[0]['version'] else: raise ValueError("Invalid response from Jesse API") update_info['is_update_info_available'] = True except Exception as e: update_info['is_update_info_available'] = False # Log the error for debugging purposes jh.debug(f"Failed to fetch update info: {str(e)}") res = { 'exchanges': exchange_info, 'strategies': strategies, 'jesse_supported_timeframes': jesse_supported_timeframes, 'has_live_plugin_installed': has_live, 'system_info': system_info, 'update_info': update_info, 'plan': plan_info['plan'], } if has_live: res['limits'] = { 'ip_limit': limits['ip_limit'], 'live_trading_tabs': limits['live_trading_tabs'], 'trading_routes': limits['trading_routes'], 'data_routes': limits['data_routes'], 'timeframes': limits['timeframes'], 'exchanges': list(limits['exchanges'].keys()), } return res ================================================ FILE: jesse/services/installer.py ================================================ from jesse.services.env import ENV_VALUES import jesse.helpers as jh import platform import requests import subprocess import sys import click import os from jesse.info import JESSE_API_URL def _pip_install(package): subprocess.check_call([sys.executable, "-m", "pip", "install", package]) def install(is_live_plugin_already_installed: bool, strict: bool): if is_live_plugin_already_installed: from jesse_live.version import __version__ click.clear() print(f'Version "{__version__}" of the live-trade plugin is already installed.') if strict: txt = '\nIf you meant to update, first delete the existing version by running "pip uninstall jesse_live -y" and then run "jesse install-live" one more time.' print(jh.color(txt, 'yellow')) return if 'LICENSE_API_TOKEN' not in ENV_VALUES: if strict: print('ERROR: You need to set the LICENSE_API_TOKEN environment variable in your .env') return # if no value is set for LICENSE_API_TOKEN, then no need to continue if not ENV_VALUES['LICENSE_API_TOKEN']: if strict: print("No license API token set. Please set the LICENSE_API_TOKEN environment variable to continue. If you don't have one yet, create one at https://jesse.trade/user/api-tokens" ) return else: access_token = ENV_VALUES['LICENSE_API_TOKEN'] if platform.system() == 'Darwin': os_name = 'mac' elif platform.system() == 'Linux': os_name = 'linux' elif platform.system() == 'Windows': os_name = 'windows' else: raise NotImplementedError(f'Unsupported OS: "{platform.system()}"') is_64_bit = platform.machine().endswith('64') print('is_64_bit', is_64_bit) if not is_64_bit: raise NotImplementedError(f'Only 64-bit machines are supported') is_arm = platform.machine().startswith('arm') print('is_arm', is_arm) # arm versions of linux and windows are not supported if is_arm and (os_name in ['linux', 'windows']): raise NotImplementedError(f'ARM versions of {os_name} are not supported. If you need them, send a request to contact@jesse.trade') # format os_name to something acceptable for the API if os_name == 'mac': formatted_os_name = 'macOS - M1' if is_arm else 'macOS - Intel' elif os_name == 'linux': formatted_os_name = 'Linux - x86_64' # windows else: formatted_os_name = 'Windows 10 - 64 bit' from jesse.version import __version__ as jesse_version print('Downloading the latest version of the live-trade plugin...') try: response = requests.post( JESSE_API_URL + '/download-release', headers={'Authorization': 'Bearer ' + access_token}, params={ 'os': formatted_os_name, 'python_version': '{}.{}'.format(*jh.python_version()), 'beta': True, 'jesse_version': jesse_version } ) except requests.exceptions.RequestException: response = requests.post( 'https://api1.jesse.trade/api/download-release', headers={'Authorization': 'Bearer ' + access_token}, params={ 'os': formatted_os_name, 'python_version': '{}.{}'.format(*jh.python_version()), 'beta': True, 'jesse_version': jesse_version } ) if response.status_code != 200: raise Exception('Error: ' + response.text) # store the downloaded file in 'storage/downloads' using the name of the downloaded file filename = response.headers['Content-Disposition'].split('=')[1] filepath = 'storage/' + filename with open(filepath, 'wb') as f: f.write(response.content) # The downloaded file is a whl file. Install it with pip print(f'Installing {filename}...') _pip_install(filepath) # remove the raw installation file os.remove(filepath) ================================================ FILE: jesse/services/jesse_trade.py ================================================ import requests from fastapi.responses import JSONResponse from jesse.services.auth import get_access_token import jesse.helpers as jh import json from jesse.info import JESSE_API_URL def feedback(description: str, email: str = None) -> JSONResponse: access_token = get_access_token() res = requests.post( JESSE_API_URL + '/feedback', { 'description': description, 'email': email }, headers={'Authorization': f'Bearer {access_token}'} ) success_message = 'Feedback submitted successfully' error_message = f"{res.status_code} error: {res.json()['message']}" return JSONResponse({ 'status': 'success' if res.status_code == 200 else 'error', 'message': success_message if res.status_code == 200 else error_message }, status_code=200) def report_exception( description: str, traceback: str, mode: str, attach_logs: bool, session_id: str, email: str = None, has_live: bool = False ) -> JSONResponse: access_token = get_access_token() if attach_logs and session_id: path_exchange_log = None if mode == 'backtest': path_log = f'storage/logs/backtest-mode/{session_id}.txt' elif mode == 'live': path_log = f'storage/logs/live-mode/{session_id}.txt' path_exchange_log = f'storage/logs/live-mode/{session_id}-raw-exchange-logs.txt' else: raise ValueError('Invalid mode') # attach exchange_log if there's any files = {'log_file': open(path_log, 'rb')} if path_exchange_log and jh.file_exists(path_exchange_log): files['exchange_log'] = open(path_exchange_log, 'rb') else: files = None from jesse.version import __version__ as jesse_version info = { 'os': jh.get_os(), 'python_version': '{}.{}'.format(*jh.python_version()), 'is_docker': jh.is_docker(), 'jesse_version': jesse_version } if has_live: from jesse_live.version import __version__ as live_plugin_version info['live_plugin_version'] = live_plugin_version params = { 'description': description, 'traceback': traceback, 'email': email, 'info': json.dumps(info) } res = requests.post( JESSE_API_URL + '/exception', data=params, files=files, headers={'Authorization': f'Bearer {access_token}'} ) success_message = 'Exception report submitted successfully' error_message = f"{res.status_code} error: {res.json()['message']}" return JSONResponse({ 'status': 'success' if res.status_code == 200 else 'error', 'message': success_message if res.status_code == 200 else error_message }, status_code=200) ================================================ FILE: jesse/services/logger.py ================================================ import jesse.helpers as jh from jesse.services.notifier import notify from jesse.services.redis import sync_publish import logging import os # store loggers in the dict because we might want to add more later LOGGERS = {} def _init_main_logger(): session_id = jh.get_session_id() jh.make_directory('storage/logs/live-mode') jh.make_directory('storage/logs/backtest-mode') jh.make_directory('storage/logs/optimize-mode') jh.make_directory('storage/logs/collect-mode') jh.make_directory('storage/logs/monte-carlo-mode') if jh.is_live(): filename = f'storage/logs/live-mode/{session_id}.txt' elif jh.is_optimizing(): filename = f'storage/logs/optimize-mode/{session_id}.txt' elif jh.is_backtesting(): filename = f'storage/logs/backtest-mode/{session_id}.txt' else: filename = 'storage/logs/etc.txt' new_logger = logging.getLogger(jh.app_mode()) new_logger.setLevel(logging.INFO) new_logger.addHandler(logging.FileHandler(filename, mode='w')) LOGGERS[jh.app_mode()] = new_logger def create_logger_file(name): """Creates a logger file that appends to existing logs""" log_file = f"storage/logs/{name}.txt" os.makedirs(os.path.dirname(log_file), exist_ok=True) new_logger = logging.getLogger(name) new_logger.setLevel(logging.INFO) new_logger.addHandler(logging.FileHandler(log_file, mode='a')) LOGGERS[name] = new_logger def reset(): LOGGERS.clear() def info(msg: str, send_notification=False, webhook=None) -> None: if jh.app_mode() not in LOGGERS and (jh.is_live() or (jh.is_backtesting() and jh.is_debugging())): _init_main_logger() msg = str(msg) from jesse.store import store log_id = jh.generate_unique_id() log_dict = { 'id': log_id, 'session_id': store.app.session_id, 'timestamp': jh.now_to_timestamp(), 'message': msg } store.logs.info.append(log_dict) if jh.is_live(): sync_publish('info_log', log_dict) if jh.is_live() or (jh.is_backtesting() and jh.is_debugging()): msg = f"[INFO | {jh.timestamp_to_time(jh.now_to_timestamp())[:19]}] {msg}" logger = LOGGERS[jh.app_mode()] logger.info(msg) if jh.is_live(): from jesse.models.Log import store_log_into_db store_log_into_db(log_dict, 'info') if send_notification: notify(msg, webhook=webhook) def error(msg: str, send_notification=True) -> None: if jh.app_mode() not in LOGGERS: _init_main_logger() # error logs should be logged as info logs as well info(msg) msg = str(msg) from jesse.store import store log_id = jh.generate_unique_id() log_dict = { 'id': log_id, 'session_id': store.app.session_id, 'timestamp': jh.now_to_timestamp(), 'message': msg } if jh.is_live() and jh.get_config('env.notifications.events.errors', True) and send_notification: notify(f'ERROR:\n{msg}') if (jh.is_backtesting() and jh.is_debugging()) or jh.is_live(): sync_publish('error_log', log_dict) store.logs.errors.append(log_dict) if jh.is_live() or jh.is_optimizing(): msg = f"[ERROR | {jh.timestamp_to_time(jh.now_to_timestamp())[:19]}] {msg}" logger = LOGGERS[jh.app_mode()] logger.error(msg) if jh.is_live(): from jesse.models.Log import store_log_into_db store_log_into_db(log_dict, 'error') def log_exchange_message(exchange, message): # if the type of message is not str, convert it to str if not isinstance(message, str): message = str(message) formatted_time = jh.timestamp_to_time(jh.now())[:19] message = f'[{formatted_time} - {exchange}]: ' + message session_id = jh.get_session_id() logger_name = f'live-mode/{session_id}-raw-exchange-logs' if logger_name not in LOGGERS: # Create the logger with write mode to clear previous session's logs log_file = f"storage/logs/{logger_name}.txt" os.makedirs(os.path.dirname(log_file), exist_ok=True) new_logger = logging.getLogger(logger_name) new_logger.setLevel(logging.INFO) new_logger.addHandler(logging.FileHandler(log_file, mode='w')) LOGGERS[logger_name] = new_logger LOGGERS[logger_name].info(message) def log_optimize_mode(message, session_id: str): # if the type of message is not str, convert it to str if not isinstance(message, str): message = str(message) formatted_time = jh.timestamp_to_time(jh.now())[:19] message = f'[{formatted_time}]: ' + message # Check if we're in a Ray worker process import ray is_ray_worker = False try: if ray.is_initialized(): runtime_ctx = ray.get_runtime_context() is_ray_worker = runtime_ctx.worker.mode == ray.WORKER_MODE except Exception as e: print(f"Error checking Ray worker status: {e}") # Only create file logger from main process (not workers) if not is_ray_worker: try: # Append to log file directly instead of using global logger log_file = f"storage/logs/optimize-mode/{session_id}.txt" os.makedirs(os.path.dirname(log_file), exist_ok=True) # Append the message to the file with open(log_file, 'a', encoding='utf-8') as f: f.write(message + '\n') f.flush() # Ensure it's written immediately except Exception as e: jh.dump('error') print(f"Warning: Failed to write to optimize mode log file {log_file}: {e}") # also, publish to redis sync_publish('log', { 'id': jh.generate_unique_id(), 'timestamp': jh.now_to_timestamp(), 'message': message }) def log_monte_carlo(message, session_id: str): """Log a message for Monte Carlo mode. Only creates file logs from main process.""" # if the type of message is not str, convert it to str if not isinstance(message, str): message = str(message) formatted_time = jh.timestamp_to_time(jh.now())[:19] message = f'[{formatted_time}]: ' + message # Check if we're in a Ray worker process # Workers should not create file loggers as they can't share the LOGGERS dict properly import ray is_ray_worker = False try: if ray.is_initialized(): runtime_ctx = ray.get_runtime_context() is_ray_worker = runtime_ctx.worker.mode == ray.WORKER_MODE except Exception as e: print(f"Error checking Ray worker status: {e}") # Only create file logger from main process (not workers) if not is_ray_worker: try: # Append to log file directly instead of using global logger log_file = f"storage/logs/monte-carlo-mode/{session_id}.txt" os.makedirs(os.path.dirname(log_file), exist_ok=True) # Append the message to the file with open(log_file, 'a', encoding='utf-8') as f: f.write(message + '\n') f.flush() # Ensure it's written immediately except Exception as e: print(f"Warning: Failed to write to monte carlo log file {log_file}: {e}") # Always publish to redis for real-time updates sync_publish('log', { 'id': jh.generate_unique_id(), 'timestamp': jh.now_to_timestamp(), 'message': message }) def broadcast_error_without_logging(msg: str): msg = str(msg) sync_publish('error_log', { 'id': jh.generate_unique_id(), 'timestamp': jh.now_to_timestamp(), 'message': msg }) ================================================ FILE: jesse/services/lsp.py ================================================ import os import platform import requests import shutil import tarfile import zipfile import tempfile import jesse.helpers as jh #Global variable to store the LSP default port LSP_DEFAULT_PORT = 9001 # Global variable to store/track the lsp process LSP_PROCESS = None LSP_RELEASE_URL = "https://api.github.com/repos/jesse-ai/python-language-server/releases/latest" def _get_platform_package_name() -> str: """ Determines the appropriate package name based on the current platform and architecture. Returns: str: Package name (e.g., 'darwin-arm64.tar.gz', 'linux-x64.tar.gz', 'win32-x64.zip') """ system = platform.system().lower() machine = platform.machine().lower() # Normalize architecture names if machine in ('x86_64', 'amd64'): arch = 'x64' elif machine in ('aarch64', 'arm64'): arch = 'arm64' else: raise Exception(f"Unsupported architecture: {machine}") # Map system to package name format if system == 'darwin': # macOS return f'darwin-{arch}.tar.gz' elif system == 'linux': return f'linux-{arch}.tar.gz' elif system == 'windows': # Windows packages only have x64 available return 'win32-x64.zip' else: raise Exception(f"Unsupported operating system: {system}") def _save_lsp_version(lsp_version: str) -> None: """ Saves the Python Language Server version to a file. """ from jesse import JESSE_DIR version_file = os.path.join(JESSE_DIR, 'lsp', 'VERSION') with open(version_file, 'w') as f: f.write(lsp_version) def _get_lsp_version() -> str: """ Reads the Python Language Server version from a file. Returns empty string if file doesn't exist. """ from jesse import JESSE_DIR version_file = os.path.join(JESSE_DIR, 'lsp', 'VERSION') if not os.path.exists(version_file): return '' with open(version_file, 'r') as f: return f.read().strip() def _compare_versions(version1: str, version2: str) -> int: """ Compares two semantic version strings. Args: version1: First version string (e.g., '1.2.3') version2: Second version string (e.g., '1.2.4') Returns: int: -1 if version1 < version2, 0 if equal, 1 if version1 > version2 """ def normalize_version(v: str) -> list: """Convert version string to list of integers for comparison.""" parts = [] for part in v.split('.'): try: parts.append(int(part)) except ValueError: parts.append(0) return parts v1_parts = normalize_version(version1) v2_parts = normalize_version(version2) max_len = max(len(v1_parts), len(v2_parts)) v1_parts.extend([0] * (max_len - len(v1_parts))) v2_parts.extend([0] * (max_len - len(v2_parts))) for i in range(max_len): if v1_parts[i] < v2_parts[i]: return -1 elif v1_parts[i] > v2_parts[i]: return 1 return 0 def is_lsp_update_available() -> bool: """ Checks if an update is available for the Python Language Server. """ try: # Get the current installed version lsp_version = _get_lsp_version() # If the current version is not set, return False if lsp_version == '': return False # Get the latest version info global LSP_RELEASE_URL response = requests.get(LSP_RELEASE_URL, timeout=10) response.raise_for_status() release_data = response.json() latest_version = release_data.get('tag_name', '').lstrip('v') # Compare versions return _compare_versions(lsp_version, latest_version) < 0 except Exception as e: raise Exception(f"Error checking for LSP update: {str(e)}") def install_lsp_server() -> None: """ Downloads and installs the Python Language Server from GitHub releases based on the current platform and architecture. """ # Define the target directory from jesse import JESSE_DIR target_dir = os.path.join(JESSE_DIR, 'lsp') #Update process # If the lsp directory exists(installed), check if an update is available, if so, delete the lsp directory and all its contents and re-install it if os.path.exists(target_dir): try: should_update_lsp = is_lsp_update_available() # Check if an update is available if should_update_lsp: # Delete the lsp directory and all its contents shutil.rmtree(target_dir, ignore_errors=True) # Re-install the Python Language Server return install_lsp_server() except Exception as e: print(jh.color(f"Error checking for LSP update: {str(e)}", 'yellow')) pass #Normal installation process #Define the start script based on the platform start_script = None if platform.system().lower() == 'windows': start_script = os.path.join(target_dir, 'start.bat') else: start_script = os.path.join(target_dir, 'start.sh') # Skip if already exists if os.path.exists(target_dir) and os.path.exists(start_script): if jh.is_debuggable('lsp_installer'): print(f"Python Language Server already exists at {target_dir}") return # If the start script does not exist, delete the lsp directory and all its contents and re-install it if not os.path.exists(start_script): try: #delete the lsp directory and all its contents shutil.rmtree(target_dir, ignore_errors=True) except Exception as e: pass # Install the Python Language Server try: # Determine the platform-specific package name try: package_name = _get_platform_package_name() except Exception as e: raise Exception(f"Cannot determine platform package name: {str(e)}") print(f"Detected platform package: {package_name}") # Get the latest release global LSP_RELEASE_URL response = requests.get(LSP_RELEASE_URL, timeout=10) response.raise_for_status() release_data = response.json() # Find the appropriate asset for this platform download_url = None for asset in release_data.get('assets', []): if asset['name'] == package_name: download_url = asset['browser_download_url'] break if not download_url: raise Exception(f"Package '{package_name}' not found in latest release") print(f"Downloading Python Language Server from {download_url}...") # Download the package with tempfile.TemporaryDirectory() as temp_dir: temp_file = os.path.join(temp_dir, package_name) extract_temp_dir = os.path.join(temp_dir, 'extracted') with requests.get(download_url, stream=True, timeout=30) as r: r.raise_for_status() with open(temp_file, 'wb') as f: for chunk in r.iter_content(chunk_size=8192): f.write(chunk) # Extract to temporary directory first os.makedirs(extract_temp_dir, exist_ok=True) if package_name.endswith('.tar.gz'): with tarfile.open(temp_file, 'r:gz') as tar: tar.extractall(extract_temp_dir) elif package_name.endswith('.zip'): with zipfile.ZipFile(temp_file, 'r') as zip_ref: zip_ref.extractall(extract_temp_dir) # Flatten the directory structure # If there's a single top-level directory, move its contents up extracted_items = os.listdir(extract_temp_dir) if len(extracted_items) == 1 and os.path.isdir(os.path.join(extract_temp_dir, extracted_items[0])): # Single directory - move its contents source_dir = os.path.join(extract_temp_dir, extracted_items[0]) else: # Multiple items at top level - use as is source_dir = extract_temp_dir # Create target directory and move contents os.makedirs(target_dir, exist_ok=True) for item in os.listdir(source_dir): source_path = os.path.join(source_dir, item) dest_path = os.path.join(target_dir, item) if os.path.isdir(source_path): shutil.copytree(source_path, dest_path) else: shutil.copy2(source_path, dest_path) # Save the lsp version to file lsp_version = release_data.get('tag_name', '').lstrip('v') _save_lsp_version(lsp_version) print(jh.color("✓ Python Language Server installed successfully", 'green')) except requests.RequestException as e: raise Exception(f"Failed to download LSP server: {str(e)}") except Exception as e: raise Exception(f"Error installing LSP server: {str(e)}") def run_lsp_server(): """ Runs the Python Language Server. """ global LSP_PROCESS if LSP_PROCESS: print(jh.color("Python Language Server is already running", 'yellow')) return from jesse import JESSE_DIR lsp_dir = os.path.join(JESSE_DIR, 'lsp') #Define the start script based on the platform start_script = None if platform.system().lower() == 'windows': start_script = os.path.join(lsp_dir, 'start.bat') else: start_script = os.path.join(lsp_dir, 'start.sh') if not os.path.exists(lsp_dir): raise Exception("LSP directory not found. Please re-install it first by restarting the jesse.") if not os.path.exists(start_script): raise Exception("Python Language Server start script not found. Please re-install it first by restarting the jesse.") # Get the port from the .env file from jesse.services.env import ENV_VALUES port = None if 'LSP_PORT' in ENV_VALUES: port = int(ENV_VALUES['LSP_PORT']) else: print(jh.color(f"LSP_PORT is not set in the .env file. Using default port {LSP_DEFAULT_PORT}", 'yellow')) port = LSP_DEFAULT_PORT # Get the workspace root (Jesse Bot root) (e.g., /home/king/jesse/jesse-ai-jesse-bot) jesse_bot_root = os.getcwd() # Get the parent directory of the Jesse framework (e.g., /home/king/jesse/jesse-ai/jesse) jesse_framework_parent = os.path.dirname(JESSE_DIR) # /home/king/jesse/jesse-ai/jesse print("Starting Python Language Server...") print(f"LSP WS started at ws://localhost:{port}/lsp\n") # Start the lsp process and return the handle try: import subprocess with open(os.devnull, 'w') as devnull: process = subprocess.Popen( [ start_script, '--port', str(port), '--bot-root', jesse_bot_root, '--jesse-root', jesse_framework_parent ], stdout=devnull, # redirect stdout to devnull to suppress LSP output stderr=devnull, # redirect stderr to devnull to suppress LSP errors shell=False # since we are using array arguments, we need to set shell to False ) LSP_PROCESS = process # wait for 0.2 seconds to make sure the process is started import time time.sleep(0.2) if process.poll() is not None: raise Exception(f"LSP server exited immediately with code {process.poll()}") except Exception as e: LSP_PROCESS = None raise Exception(f"Failed to start LSP server: {str(e)}") def terminate_lsp_server(): """ Terminates the Python Language Server. """ # Stop LSP server if running global LSP_PROCESS if LSP_PROCESS: try: print(jh.color("Stopping Python Language Server...", 'yellow')) LSP_PROCESS.terminate() LSP_PROCESS.wait(timeout=5) print(jh.color("✓ Python Language Server stopped", 'green')) except Exception as e: print(jh.color(f"⚠ Error stopping LSP: {str(e)}", 'yellow')) try: print(jh.color("Force killing Python Language Server...", 'yellow')) LSP_PROCESS.kill() # Force kill if terminate fails except: pass finally: LSP_PROCESS = None print(jh.color("✓ Python Language Server terminated", 'green')) ================================================ FILE: jesse/services/metrics.py ================================================ from datetime import datetime from typing import List import numpy as np import pandas as pd import jesse.helpers as jh from jesse.models import ClosedTrade from jesse.store import store from jesse.routes import router def candles_info(candles_array: np.ndarray) -> dict: period = jh.date_diff_in_days( jh.timestamp_to_arrow(candles_array[0][0]), jh.timestamp_to_arrow(candles_array[-1][0])) + 1 if period > 365: duration = f'{period} days ({round(period / 365, 2)} years)' elif period > 30: duration = f'{period} days ({round(period / 30, 2)} months)' else: duration = f'{period} days' # type of the exchange trading_exchange = store.exchanges.trading_exchange info = { 'duration': duration, 'starting_time': candles_array[0][0], 'finishing_time': (candles_array[-1][0] + 60_000), 'exchange_type': trading_exchange.type, 'exchange': trading_exchange.name, } # if the exchange type is futures, also display leverage if trading_exchange.type == 'futures': info['leverage'] = trading_exchange.futures_leverage info['leverage_mode'] = trading_exchange.futures_leverage_mode return info def routes(routes_arr: list) -> list: return [{ 'exchange': r.exchange, 'symbol': r.symbol, 'timeframe': r.timeframe, 'strategy_name': r.strategy_name, } for r in routes_arr] def _prepare_returns(returns, rf=0.0, periods=252): """ Helper function to prepare returns data by converting to pandas Series and adjusting for risk-free rate if provided """ if rf != 0: returns = returns - (rf / periods) if isinstance(returns, pd.DataFrame): returns = returns[returns.columns[0]] return returns def sharpe_ratio(returns, rf=0.0, periods=365, annualize=True, smart=False): """ Calculates the sharpe ratio of access returns """ returns = _prepare_returns(returns, rf, periods) divisor = returns.std(ddof=1) if smart: divisor = divisor * autocorr_penalty(returns) res = returns.mean() / divisor if annualize: res = res * np.sqrt(1 if periods is None else periods) # Always convert to pandas Series return pd.Series([res]) def sortino_ratio(returns, rf=0, periods=365, annualize=True, smart=False): """ Calculates the sortino ratio of access returns """ returns = _prepare_returns(returns, rf, periods) downside = np.sqrt((returns[returns < 0] ** 2).sum() / len(returns)) # Handle division by zero if downside == 0: res = np.inf if returns.mean() > 0 else -np.inf else: if smart: downside = downside * autocorr_penalty(returns) res = returns.mean() / downside if annualize: res = res * np.sqrt(1 if periods is None else periods) # Always convert to pandas Series return pd.Series([res]) def autocorr_penalty(returns): """ Calculates the autocorrelation penalty for returns """ num = len(returns) coef = np.abs(np.corrcoef(returns[:-1], returns[1:])[0, 1]) corr = [((num - x) / num) * coef**x for x in range(1, num)] return np.sqrt(1 + 2 * np.sum(corr)) def calmar_ratio(returns): """ Calculates the calmar ratio (CAGR% / MaxDD%) """ # Get daily returns returns = _prepare_returns(returns) # Calculate CAGR exactly as in cagr() function first_value = 1 last_value = (1 + returns).prod() days = (returns.index[-1] - returns.index[0]).days years = float(days) / 365 if years == 0: return pd.Series([0.0]) # Prevent overflow by limiting the ratio ratio = last_value / first_value # Clip ratio to prevent overflow in power calculation ratio = np.clip(ratio, 1e-10, 1e10) with np.errstate(over='ignore', under='ignore'): cagr_ratio = ratio ** (1 / years) - 1 # Calculate Max Drawdown using cumulative returns cum_returns = (1 + returns).cumprod() rolling_max = cum_returns.expanding(min_periods=1).max() drawdown = cum_returns / rolling_max - 1 max_dd = abs(drawdown.min()) # Calculate Calmar result = cagr_ratio / max_dd if max_dd != 0 else 0 # Always convert to pandas Series return pd.Series([result]) def max_drawdown(returns): """ Calculates the maximum drawdown """ prices = (returns + 1).cumprod() result = (prices / prices.expanding(min_periods=0).max()).min() - 1 # Always convert to pandas Series return pd.Series([result]) def calculate_max_underwater_period(daily_balance: list) -> int: """ Calculate the maximum time it takes for balance to recover from a drawdown Args: daily_balance: List of daily balances Returns: Maximum underwater period in days """ if len(daily_balance) < 2: return 0 max_period = 0 current_peak = daily_balance[0] peak_date_index = 0 for i in range(1, len(daily_balance)): current_balance = daily_balance[i] # if we've recovered to or above the previous peak, update the peak if current_balance >= current_peak: current_peak = current_balance peak_date_index = i # if we're below the previous peak, calculate underwater period else: days_underwater = i - peak_date_index # update max period if this is the longest underwater period so far if days_underwater > max_period: max_period = days_underwater return max_period def cagr(returns, rf=0.0, compounded=True, periods=365): """ Calculates the communicative annualized growth return (CAGR%) """ returns = _prepare_returns(returns, rf) # Get first and last values of cumulative returns first_value = 1 last_value = (1 + returns).prod() # Calculate years exactly as quantstats does days = (returns.index[-1] - returns.index[0]).days years = float(days) / 365 # Handle edge case if years == 0: return pd.Series([0.0]) # Prevent overflow by limiting the ratio ratio = last_value / first_value # Clip ratio to prevent overflow in power calculation ratio = np.clip(ratio, 1e-10, 1e10) # Calculate CAGR using quantstats formula with np.errstate(over='ignore', under='ignore'): result = ratio ** (1 / years) - 1 return pd.Series([result]) def omega_ratio(returns, rf=0.0, required_return=0.0, periods=365): """ Determines the Omega ratio of a strategy """ returns = _prepare_returns(returns, rf, periods) if periods == 1: return_threshold = required_return else: return_threshold = (1 + required_return) ** (1.0 / periods) - 1 returns_less_thresh = returns - return_threshold numer = returns_less_thresh[returns_less_thresh > 0.0].sum() denom = -1.0 * returns_less_thresh[returns_less_thresh < 0.0].sum() result = numer / denom if denom > 0.0 else np.nan # Always convert to pandas Series return pd.Series([result]) def serenity_index(returns, rf=0): """ Calculates the serenity index score """ dd = to_drawdown_series(returns) pitfall = -conditional_value_at_risk(dd) / returns.std() result = (returns.sum() - rf) / (ulcer_index(returns) * pitfall) # Always convert to pandas Series return pd.Series([result]) def ulcer_index(returns): """ Calculates the ulcer index score (downside risk measurement) """ dd = to_drawdown_series(returns) return np.sqrt(np.divide((dd**2).sum(), returns.shape[0] - 1)) def to_drawdown_series(returns): """ Convert returns series to drawdown series """ prices = (1 + returns).cumprod() dd = prices / np.maximum.accumulate(prices) - 1.0 return dd.replace([np.inf, -np.inf, -0], 0) def conditional_value_at_risk(returns, sigma=1, confidence=0.95): """ Calculates the conditional daily value-at-risk (aka expected shortfall) """ if len(returns) < 2: return 0 returns = _prepare_returns(returns) # Sort returns from worst to best sorted_returns = np.sort(returns) # Find the index based on confidence level index = int((1 - confidence) * len(sorted_returns)) # Handle empty slice warning if index == 0: return sorted_returns[0] if len(sorted_returns) > 0 else 0 # Calculate CVaR as the mean of worst losses c_var = sorted_returns[:index].mean() return c_var if ~np.isnan(c_var) else 0 def trades(trades_list: List[ClosedTrade], daily_balance: list, final: bool = True) -> dict: starting_balance = 0 current_balance = 0 for e in store.exchanges.storage: starting_balance += store.exchanges.storage[e].starting_assets[jh.app_currency()] current_balance += store.exchanges.storage[e].assets[jh.app_currency()] if not trades_list: return {'total': 0, 'win_rate': 0, 'net_profit_percentage': 0} df = pd.DataFrame.from_records([t.to_dict for t in trades_list]) total_completed = len(df) winning_trades = df.loc[df['PNL'] > 0] total_winning_trades = len(winning_trades) losing_trades = df.loc[df['PNL'] < 0] total_losing_trades = len(losing_trades) arr = df['PNL'].to_numpy() pos = np.clip(arr, 0, 1).astype(bool).cumsum() neg = np.clip(arr, -1, 0).astype(bool).cumsum() current_streak = np.where(arr >= 0, pos - np.maximum.accumulate(np.where(arr <= 0, pos, 0)), -neg + np.maximum.accumulate(np.where(arr >= 0, neg, 0))) s_min = current_streak.min() losing_streak = 0 if s_min > 0 else abs(s_min) s_max = current_streak.max() winning_streak = max(s_max, 0) largest_losing_trade = 0 if total_losing_trades == 0 else losing_trades['PNL'].min() largest_winning_trade = 0 if total_winning_trades == 0 else winning_trades['PNL'].max() if len(winning_trades) == 0: win_rate = 0 else: win_rate = len(winning_trades) / (len(losing_trades) + len(winning_trades)) # calculate the long and short win rate winning_longs = df.loc[(df['type'] == 'long') & (df['PNL'] > 0)] losing_longs = df.loc[(df['type'] == 'long') & (df['PNL'] < 0)] win_rate_longs = len(winning_longs) / (len(losing_longs) + len(winning_longs)) if (len(losing_longs) + len(winning_longs)) > 0 else 0 winning_shorts = df.loc[(df['type'] == 'short') & (df['PNL'] > 0)] losing_shorts = df.loc[(df['type'] == 'short') & (df['PNL'] < 0)] win_rate_shorts = len(winning_shorts) / (len(losing_shorts) + len(winning_shorts)) if (len(losing_shorts) + len(winning_shorts)) > 0 else 0 longs_count = len(df.loc[df['type'] == 'long']) shorts_count = len(df.loc[df['type'] == 'short']) longs_percentage = longs_count / (longs_count + shorts_count) * 100 shorts_percentage = 100 - longs_percentage fee = df['fee'].sum() net_profit = df['PNL'].sum() net_profit_percentage = (net_profit / starting_balance) * 100 average_win = winning_trades['PNL'].mean() average_loss = abs(losing_trades['PNL'].mean()) ratio_avg_win_loss = average_win / average_loss expectancy = (0 if np.isnan(average_win) else average_win) * win_rate - ( 0 if np.isnan(average_loss) else average_loss) * (1 - win_rate) expectancy = expectancy expectancy_percentage = (expectancy / starting_balance) * 100 expected_net_profit_every_100_trades = expectancy_percentage * 100 average_holding_period = df['holding_period'].mean() average_winning_holding_period = winning_trades['holding_period'].mean() average_losing_holding_period = losing_trades['holding_period'].mean() gross_profit = winning_trades['PNL'].sum() gross_loss = losing_trades['PNL'].sum() start_date = datetime.fromtimestamp(store.app.starting_time / 1000) date_index = pd.date_range(start=start_date, periods=len(daily_balance)) daily_return = pd.DataFrame(daily_balance, index=date_index).pct_change(1) total_open_trades = store.app.total_open_trades open_pl = store.app.total_open_pl # Helper function to safely convert values def safe_convert(value, convert_type=float): try: if isinstance(value, pd.Series): value = value.iloc[0] if np.isnan(value): return np.nan return convert_type(value) except BaseException: return np.nan # Calculate metrics using 365 days for crypto markets max_dd = np.nan if len(daily_return) < 2 else max_drawdown(daily_return).iloc[0] * 100 max_underwater_period = np.nan if len(daily_balance) < 2 else calculate_max_underwater_period(daily_balance) annual_return = np.nan if len(daily_return) < 2 else cagr(daily_return, periods=365).iloc[0] * 100 sharpe = np.nan if len(daily_return) < 2 else sharpe_ratio(daily_return, periods=365).iloc[0] calmar = np.nan if len(daily_return) < 2 else calmar_ratio(daily_return).iloc[0] sortino = np.nan if len(daily_return) < 2 else sortino_ratio(daily_return, periods=365).iloc[0] omega = np.nan if len(daily_return) < 2 else omega_ratio(daily_return, periods=365).iloc[0] serenity = np.nan if len(daily_return) < 2 else serenity_index(daily_return).iloc[0] return { 'total': safe_convert(total_completed, int), 'total_winning_trades': safe_convert(total_winning_trades, int), 'total_losing_trades': safe_convert(total_losing_trades, int), 'starting_balance': safe_convert(starting_balance), 'finishing_balance': safe_convert(current_balance), 'win_rate': safe_convert(win_rate), 'win_rate_longs': safe_convert(win_rate_longs), 'win_rate_shorts': safe_convert(win_rate_shorts), 'ratio_avg_win_loss': safe_convert(ratio_avg_win_loss), 'longs_count': safe_convert(longs_count, int), 'longs_percentage': safe_convert(longs_percentage), 'shorts_percentage': safe_convert(shorts_percentage), 'shorts_count': safe_convert(shorts_count, int), 'fee': safe_convert(fee), 'net_profit': safe_convert(net_profit), 'net_profit_percentage': safe_convert(net_profit_percentage), 'average_win': safe_convert(average_win), 'average_loss': safe_convert(average_loss), 'expectancy': safe_convert(expectancy), 'expectancy_percentage': safe_convert(expectancy_percentage), 'expected_net_profit_every_100_trades': safe_convert(expected_net_profit_every_100_trades), 'average_holding_period': safe_convert(average_holding_period), 'average_winning_holding_period': safe_convert(average_winning_holding_period), 'average_losing_holding_period': safe_convert(average_losing_holding_period), 'gross_profit': safe_convert(gross_profit), 'gross_loss': safe_convert(gross_loss), 'max_drawdown': safe_convert(max_dd), 'max_underwater_period': safe_convert(max_underwater_period), 'annual_return': safe_convert(annual_return), 'sharpe_ratio': safe_convert(sharpe), 'calmar_ratio': safe_convert(calmar), 'sortino_ratio': safe_convert(sortino), 'omega_ratio': safe_convert(omega), 'serenity_index': safe_convert(serenity), 'total_open_trades': safe_convert(total_open_trades, int), 'open_pl': safe_convert(open_pl), 'winning_streak': safe_convert(winning_streak, int), 'losing_streak': safe_convert(losing_streak, int), 'largest_losing_trade': safe_convert(largest_losing_trade), 'largest_winning_trade': safe_convert(largest_winning_trade), 'current_streak': safe_convert(current_streak[-1], int), } def hyperparameters(routes_arr: list) -> list: if routes_arr[0].strategy.hp is None: return [] # only for the first route hp = [] # add DNA dna_value = routes_arr[0].strategy.dna() if dna_value is not None and len(dna_value) > 16: formatted_dna = f"{dna_value[:5]}*****{dna_value[-5:]}" hp.append(['DNA', formatted_dna]) else: hp.append(['DNA', dna_value]) # add hyperparameters for key in routes_arr[0].strategy.hp: hp.append([ key, routes_arr[0].strategy.hp[key] ]) return hp ================================================ FILE: jesse/services/migrator.py ================================================ from jesse.services.db import database from playhouse.migrate import * from jesse.enums import migration_actions def run(): """ Runs migrations per each table and adds new fields in case they have not been added yet. Accepted action types: add, drop, rename, modify_type, allow_null, deny_null If actions type is 'rename', you must add new field with 'old_name' key. To make column to not nullable, you must clean all null value of columns. """ print('Checking for new database migrations...\n') database.open_connection() # create migrator migrator = PostgresqlMigrator(database.db) # run migrations _candle(migrator) _completed_trade(migrator) _closed_trade(migrator) _log(migrator) _order(migrator) _orderbook(migrator) _ticker(migrator) _trade(migrator) _exchange_api_keys(migrator) _optimization_session(migrator) _monte_carlo_session(migrator) # create initial tables from jesse.models import Candle, ClosedTrade, Log, Order, OpenTab, LiveEquitySnapshot database.db.create_tables([Candle, ClosedTrade, Log, Order, OpenTab, LiveEquitySnapshot]) database.close_connection() def _candle(migrator): fields = [ {'action': migration_actions.ADD, 'name': 'timeframe', 'type': CharField(index=False, null=True)}, {'action': migration_actions.DROP_INDEX, 'indexes': ('exchange', 'symbol', 'timestamp')}, {'action': migration_actions.ADD_INDEX, 'indexes': ('exchange', 'symbol', 'timeframe', 'timestamp'), 'is_unique': True}, ] if 'candle' in database.db.get_tables(): candle_columns = database.db.get_columns('candle') _migrate(migrator, fields, candle_columns, 'candle') def _completed_trade(migrator): fields = [] if 'completedtrade' in database.db.get_tables(): completedtrade_columns = database.db.get_columns('completedtrade') _migrate(migrator, fields, completedtrade_columns, 'completedtrade') def _closed_trade(migrator): fields = [ {'action': migration_actions.ADD, 'name': 'session_id', 'type': UUIDField(null=True)}, {'action': migration_actions.ADD, 'name': 'created_at', 'type': BigIntegerField(null=True)}, {'action': migration_actions.ADD, 'name': 'updated_at', 'type': BigIntegerField(null=True)}, {'action': migration_actions.ADD, 'name': 'session_mode', 'type': CharField(null=True)}, {'action': migration_actions.ADD, 'name': 'soft_deleted_at', 'type': BigIntegerField(null=True)}, {'action': migration_actions.ALLOW_NULL, 'name': 'closed_at', 'type': BigIntegerField(null=True)}, {'action': migration_actions.ADD_INDEX, 'indexes': ('session_id',), 'is_unique': False}, ] if 'closedtrade' in database.db.get_tables(): closedtrade_columns = database.db.get_columns('closedtrade') _migrate(migrator, fields, closedtrade_columns, 'closedtrade') def _log(migrator): fields = [] if 'log' in database.db.get_tables(): log_columns = database.db.get_columns('log') _migrate(migrator, fields, log_columns, 'log') def _order(migrator): fields = [ {'action': migration_actions.ADD, 'name': 'updated_at', 'type': BigIntegerField(null=True)}, {'action': migration_actions.ADD, 'name': 'session_mode', 'type': CharField(null=True)}, {'action': migration_actions.ADD, 'name': 'jesse_submitted', 'type': BooleanField(default=True)}, {'action': migration_actions.ADD, 'name': 'submitted_via', 'type': CharField(null=True)}, {'action': migration_actions.ADD, 'name': 'order_exist_in_exchange', 'type': BooleanField(default=True)}, {'action': migration_actions.ADD, 'name': 'fee', 'type': FloatField(null=True)}, {'action': migration_actions.ADD_INDEX, 'indexes': ('session_id',), 'is_unique': False}, ] if 'order' in database.db.get_tables(): order_columns = database.db.get_columns('order') _migrate(migrator, fields, order_columns, 'order') def _orderbook(migrator): fields = [] if 'orderbook' in database.db.get_tables(): orderbook_columns = database.db.get_columns('orderbook') _migrate(migrator, fields, orderbook_columns, 'orderbook') def _ticker(migrator): fields = [] if 'ticker' in database.db.get_tables(): ticker_columns = database.db.get_columns('ticker') _migrate(migrator, fields, ticker_columns, 'ticker') def _trade(migrator): fields = [] if 'trade' in database.db.get_tables(): trade_columns = database.db.get_columns('trade') _migrate(migrator, fields, trade_columns, 'trade') def _exchange_api_keys(migrator): fields = [] if 'exchange_api_keys' in database.db.get_tables(): exchange_api_keys_columns = database.db.get_columns('exchange_api_keys') _migrate(migrator, fields, exchange_api_keys_columns, 'exchange_api_keys') def _optimization_session(migrator): fields = [ {'action': migration_actions.ADD, 'name': 'title', 'type': CharField(max_length=255, null=True)}, {'action': migration_actions.ADD, 'name': 'description', 'type': TextField(null=True)}, {'action': migration_actions.ADD, 'name': 'strategy_codes', 'type': TextField(null=True)}, ] if 'optimizationsession' in database.db.get_tables(): optimization_session_columns = database.db.get_columns('optimizationsession') _migrate(migrator, fields, optimization_session_columns, 'optimizationsession') def _monte_carlo_session(migrator): fields = [ {'action': migration_actions.ADD, 'name': 'strategy_codes', 'type': TextField(null=True)}, ] if 'montecarlosession' in database.db.get_tables(): monte_carlo_session_columns = database.db.get_columns('montecarlosession') _migrate(migrator, fields, monte_carlo_session_columns, 'montecarlosession') def _migrate(migrator, fields, columns, table): for field in fields: if field['action'] in [migration_actions.ADD_INDEX, migration_actions.DROP_INDEX]: indexes: list = database.db.get_indexes(table) to_migrate_indexes: list = field['indexes'] to_migrate_indexes_str = f'{table}_' for t in to_migrate_indexes: to_migrate_indexes_str += f'{t}_' to_migrate_indexes_str = to_migrate_indexes_str[:-1] already_exists = False for index in indexes: existing_indexes_str: list = index.name if to_migrate_indexes_str == existing_indexes_str: already_exists = True break if field['action'] == migration_actions.ADD_INDEX: if not already_exists: migrate( migrator.add_index(table, field['indexes'], field['is_unique']) ) print(f'Added index {field["indexes"]} to {table}') if field['action'] == migration_actions.DROP_INDEX: if already_exists: migrate( migrator.drop_index(table, to_migrate_indexes_str) ) print(f'Dropped index {field["indexes"]} from the "{table}" table') else: # else, fist check if the field exists column_name_exist = any(field['name'] == item.name for item in columns) if column_name_exist: if field['action'] == migration_actions.ADD: pass elif field['action'] == migration_actions.DROP: migrate( migrator.drop_column(table, field['name']) ) print(f"Successfully dropped '{field['name']}' column from the "'{table}'" table.") elif field['action'] == migration_actions.RENAME: migrate( migrator.rename_column(table, field['name'], field['new_name']) ) print(f"'{field['name']}' column successfully changed to {field['new_name']} in the '{table}' table.") elif field['action'] == migration_actions.MODIFY_TYPE: migrate( migrator.alter_column_type(table, field['name'], field['type']) ) print( f"'{field['name']}' field's type was successfully changed to {field['type']} in the '{table}' table.") elif field['action'] == migration_actions.ALLOW_NULL: # Check if column is already nullable column = next(item for item in columns if item.name == field['name']) if not column.null: migrate( migrator.drop_not_null(table, field['name']) ) print(f"'{field['name']}' column successfully updated to accept nullable values in the '{table}' table.") elif field['action'] == migration_actions.DENY_NULL: # Check if column is already non-nullable column = next(item for item in columns if item.name == field['name']) if column.null: migrate( migrator.add_not_null(table, field['name']) ) print( f"'{field['name']}' column successfully updated to accept to reject nullable values in the '{table}' table.") # if column name doesn't not already exist else: if field['action'] == migration_actions.ADD: migrate( migrator.add_column(table, field['name'], field['type']) ) print(f"'{field['name']}' column successfully added to '{table}' table.") else: print(f"'{field['name']}' field does not exist in '{table}' table.") ================================================ FILE: jesse/services/multiprocessing.py ================================================ import threading import time from typing import List import multiprocessing as mp import traceback from jesse.services.redis import sync_publish, sync_redis from jesse.services.failure import terminate_session import jesse.helpers as jh from jesse.services.env import ENV_VALUES import os import signal # set multiprocessing process type to spawn mp.set_start_method('spawn', force=True) class Process(mp.Process): def __init__(self, *args, **kwargs): mp.Process.__init__(self, *args, **kwargs) def run(self): try: mp.Process.run(self) except Exception as e: if type(e).__name__ == 'Termination': sync_publish('termination', {}) jh.terminate_app() else: sync_publish( 'exception', { 'error': f'{type(e).__name__}: {e}', 'traceback': str(traceback.format_exc()), }, ) print('Unhandled exception in the process:') print(traceback.format_exc()) terminate_session() class ProcessManager: def __init__(self): self._workers: List[Process] = [] self._pid_to_client_id_map = {} self.client_id_to_pid_to_map = {} try: port = ENV_VALUES.get('APP_PORT', '9000') except: port = '9000' self._active_workers_key = f"{port}|active-processes" self._cleanup_thread = threading.Thread(target=self._cleanup_finished_workers, daemon=True) self._cleanup_thread.start() def _reset(self): self._workers = [] self._pid_to_client_id_map = {} self.client_id_to_pid_to_map = {} # clear all process status sync_redis.delete(self._active_workers_key) @staticmethod def _prefixed_pid(pid): return f"{ENV_VALUES['APP_PORT']}|{pid}" @staticmethod def _prefixed_client_id(client_id): return f"{ENV_VALUES['APP_PORT']}|{client_id}" def _add_process(self, client_id): sync_redis.sadd(self._active_workers_key, client_id) def add_task(self, function, *args): client_id = args[0] w = Process(target=function, args=args) self._workers.append(w) w.start() self._pid_to_client_id_map[self._prefixed_pid(w.pid)] = self._prefixed_client_id(client_id) self.client_id_to_pid_to_map[self._prefixed_client_id(client_id)] = self._prefixed_pid(w.pid) self._add_process(client_id) def get_client_id(self, pid): try: client_id: str = self._pid_to_client_id_map[self._prefixed_pid(pid)] except KeyError: return None return jh.string_after_character(client_id, '|') def get_pid(self, client_id): return self.client_id_to_pid_to_map[self._prefixed_client_id(client_id)] def cancel_process(self, client_id): sync_redis.srem(self._active_workers_key, client_id) def flush(self): for w in self._workers: try: # Try terminate first w.terminate() # Give it a moment to terminate gracefully w.join(timeout=3) # If still alive, wait a brief moment then force kill if w.is_alive(): time.sleep(0.5) # Give terminate a chance to complete os.kill(w.pid, signal.SIGKILL) w.close() except Exception as e: jh.debug(f"Error while terminating process: {str(e)}") self._reset() def _cleanup_finished_workers(self): while True: try: for w in self._workers[:]: # Create a copy of the list to avoid modification during iteration if not w.is_alive(): try: # Get the client_id for this worker before removing it client_id = self.get_client_id(w.pid) w.join(timeout=1) w.close() self._workers.remove(w) # Remove from Redis active workers set if client_id: sync_redis.srem(self._active_workers_key, client_id) jh.debug(f"Removed finished worker {client_id} from active workers") except Exception as e: jh.debug(f"Error during worker cleanup: {str(e)}") except Exception as e: jh.debug(f"Error in cleanup thread: {str(e)}") time.sleep(5) @property def active_workers(self) -> set: """ Returns the set of all the processes client_id as a list of strings """ return {client_id.decode('utf-8') for client_id in sync_redis.smembers(self._active_workers_key)} process_manager = ProcessManager() ================================================ FILE: jesse/services/notifier.py ================================================ import requests import jesse.helpers as jh from timeloop import Timeloop from datetime import timedelta MSG_QUEUE = [] def start_notifier_loop(): """ a constant running loop that runs in a separate thread and checks for new messages in the msg_queue. If there are any, it sends them by calling _telegram() and _discord() """ from jesse.store import store from jesse.services.transformers import get_notification_api_key tl = Timeloop() @tl.job(interval=timedelta(seconds=0.5)) def handle_time(): if len(MSG_QUEUE) > 0: msg = MSG_QUEUE.pop(0) notification_keys = get_notification_api_key(store.app.notifications_api_key, protect_sensitive_data=False) if store.app.notifications_api_key else None if msg['type'] == 'info': if msg['webhook'] is None and notification_keys: if notification_keys['driver'] == 'telegram': _telegram(msg['content'], notification_keys['bot_token'], notification_keys['chat_id']) elif notification_keys['driver'] == 'discord': _discord(msg['content'], webhook_address=notification_keys['webhook']) elif notification_keys['driver'] == 'slack': _slack(msg['content'], webhook_address=notification_keys['webhook']) elif notification_keys: _custom_channel_notification(msg) # elif msg['type'] == 'error' and error_notifications: # if error_notifications['driver'] == 'telegram': # _telegram_errors(msg['content'], error_notifications['bot_token'], error_notifications['chat_id']) # elif error_notifications['driver'] == 'discord': # _discord(msg['content'], webhook_address=error_notifications['webhook']) # elif error_notifications['driver'] == 'slack': # _slack(msg['content'], webhook_address=error_notifications['webhook']) else: raise ValueError(f'Unknown message type: {msg["type"]}') tl.start() def notify(msg: str, webhook=None) -> None: """ sends notifications to "main_telegram_bot" which is supposed to receive messages. """ msg = _format_msg(msg) # Notification drivers don't accept text with more than 2000 characters. # So if that's the case limit it to the last 2000 characters. if len(msg) > 2000: msg = msg[-2000:] MSG_QUEUE.append({'type': 'info', 'content': msg, 'webhook': webhook}) def _telegram(msg: str, token: str, chat_id: str) -> None: from jesse.services import logger if not token or not jh.get_config('env.notifications.enabled'): return try: response = requests.get( f'https://api.telegram.org/bot{token}/sendMessage?chat_id={chat_id}&parse_mode=Markdown&text={msg}' ) if response.status_code // 100 != 2: err_msg = f'Telegram ERROR [{response.status_code}]: {response.text}' if response.status_code // 100 == 4: err_msg += f'\nParameters: {msg}' logger.error(err_msg, send_notification=False) except requests.exceptions.ConnectionError: logger.error('Telegram ERROR: ConnectionError', send_notification=False) def _discord(msg: str, webhook_address=None) -> None: from jesse.services import logger if not jh.get_config('env.notifications.enabled'): return try: response = requests.post(webhook_address, {'content': msg}) if response.status_code // 100 != 2: err_msg = f'Discord ERROR [{response.status_code}]: {response.text}' if response.status_code // 100 == 4: err_msg += f'\nParameters: {msg}' logger.error(err_msg, send_notification=False) except requests.exceptions.ConnectionError: logger.error('Discord ERROR: ConnectionError', send_notification=False) def _slack(msg: str, webhook_address) -> None: from jesse.services import logger if not jh.get_config('env.notifications.enabled'): return payload = { "text": msg } try: response = requests.post(webhook_address, json=payload) if response.status_code // 100 != 2: err_msg = f'Slack ERROR [{response.status_code}]: {response.text}' if response.status_code // 100 == 4: err_msg += f'\nParameters: {msg}' logger.error(err_msg, send_notification=False) except requests.exceptions.ConnectionError: logger.error('Slack ERROR: ConnectionError', send_notification=False) def _custom_channel_notification(msg: dict): webhook = msg['webhook'] if webhook.startswith('https://hooks.slack.com'): # a slack webhook _slack(msg['content'], webhook) elif webhook.startswith('https://discord.com/api/webhooks'): # a discord webhook _discord(msg['content'], webhook) else: raise ValueError(f'Custom Webhook {webhook}. seems to be neither a discord or slack webhook') def _format_msg(msg: str) -> str: # if "_" exists in the message, replace it with "\_" msg = msg.replace('_', '\_') # # if "*" exists in the message, replace it with "\*" # msg = msg.replace('*', '\*') # # if "[" exists in the message, replace it with "\[" # msg = msg.replace('[', '\[') # # if "]" exists in the message, replace it with "\}" # msg = msg.replace(']', '\]') return msg ================================================ FILE: jesse/services/order_service.py ================================================ from typing import List import jesse.helpers as jh import jesse.services.logger as logger from jesse.config import config from jesse.services.notifier import notify from jesse.enums import order_statuses from jesse.models.Order import Order from jesse.store import store from jesse.repositories import order_repository from jesse.enums import order_types from jesse.services import closed_trade_service from jesse.services import position_service def create_order(attributes: dict, should_silent: bool = False, should_store: bool = True) -> Order: if attributes.get('created_at') is None: attributes['created_at'] = jh.now_to_timestamp() order = Order(attributes) # if for example we are in a live trade mode: if not should_silent: if jh.is_live(): _notify_submission(order) if jh.is_debuggable('order_submission') and (order.is_active or order.is_queued): txt: str = f'{"QUEUED" if order.is_queued else "SUBMITTED"} order: {order.symbol}, {order.type}, {order.side}, {order.qty}' if order.price: txt += f', ${jh.format_price(order.price)}' logger.info(txt) # If it's an order to close pre-existing positions, we don't want to include it in calculations. if should_store: e = store.exchanges.get_exchange(order.exchange) e.on_order_submission(order) store.orders.add_order(order) # if it's paper trading or backtesting (basicly not live trading), we add the order to the to_execute list to later simulate the execution. if not jh.is_livetrading() and order.type == order_types.MARKET: store.orders.to_execute.append(order) # if it's live/paper trading, we store the order in the database. if jh.is_live(): order_repository.store_or_update(order) return order def execute_order(order: Order, silent: bool = False) -> None: if order.is_canceled or order.is_executed: return order.executed_at = jh.now_to_timestamp() order.status = order_statuses.EXECUTED order.fee = order.fee or None # if it's not live trading, we set the filled qty to the qty. if not jh.is_livetrading(): order.filled_qty = order.qty # set order fee for non-live modes if not already set. In live trading, the fee is fetched by the exchange. if not jh.is_livetrading() and order.fee is None: fee_rate = jh.get_config(f'env.exchanges.{order.exchange}.fee') notional = abs(order.filled_qty or order.qty) * order.price order.fee = fee_rate * notional if not silent: txt = f'EXECUTED order: {order.symbol}, {order.type}, {order.side}, {order.qty}' if order.price: txt += f', ${jh.format_price(order.price)}' if jh.is_debuggable('order_execution'): logger.info(txt) if jh.is_live(): if config['env']['notifications']['events']['executed_orders']: notify(txt) closed_trade_service.add_executed_order(order) e = store.exchanges.get_exchange(order.exchange) e.on_order_execution(order) p = store.positions.get_position(order.exchange, order.symbol) if p: position_service.on_executed_order(p, order) def execute_order_partially(order: Order, silent: bool = False) -> None: order.executed_at = jh.now_to_timestamp() order.status = order_statuses.PARTIALLY_FILLED # set order fee for non-live modes if not already set. In live trading, the fee is fetched by the exchange. if not jh.is_livetrading() and order.fee is None: fee_rate = jh.get_config(f'env.exchanges.{order.exchange}.fee') notional = abs(order.filled_qty or order.qty) * order.price order.fee = fee_rate * notional if not silent: txt = f"PARTIALLY FILLED: {order.symbol}, {order.type}, {order.side}, filled qty: {order.filled_qty}, remaining qty: {order.remaining_qty}, price: {jh.format_price(order.price)}" if jh.is_debuggable('order_execution'): logger.info(txt) if jh.is_live(): if config['env']['notifications']['events']['executed_orders']: notify(txt) closed_trade_service.add_executed_order(order) p = store.positions.get_position(order.exchange, order.symbol) if p: position_service.on_executed_order(p, order) def execute_simulated_market_orders() -> None: if not store.orders.to_execute: return for o in store.orders.to_execute: execute_order(o) store.orders.to_execute = [] def cancel_order(order: Order, silent: bool = False, source: str = '') -> None: if order.is_canceled or order.is_executed: return if source == 'stream' and order.is_queued: return order.canceled_at = jh.now_to_timestamp() order.status = order_statuses.CANCELED if not silent: txt = f'CANCELED order: {order.symbol}, {order.type}, {order.side}, {order.qty}' if order.price: txt += f', ${jh.format_price(order.price)}' if jh.is_debuggable('order_cancellation'): logger.info(txt) if jh.is_live(): if config['env']['notifications']['events']['cancelled_orders']: notify(txt) e = store.exchanges.get_exchange(order.exchange) e.on_order_cancellation(order) def queue_order(order: Order) -> None: order.status = order_statuses.QUEUED order.canceled_at = None if jh.is_debuggable('order_submission'): txt = f'QUEUED order: {order.symbol}, {order.type}, {order.side}, {order.qty}' if order.price: txt += f', ${jh.format_price(order.price)}' logger.info(txt) _notify_submission(order) def resubmit_order(order: Order) -> None: if not order.is_queued: raise Exception(f'Cannot resubmit an order that is not queued. Current status: {order.status}') order.id = jh.generate_unique_id() order.status = order_statuses.ACTIVE order.canceled_at = None if jh.is_debuggable('order_submission'): txt: str = f'SUBMITTED order: {order.symbol}, {order.type}, {order.side}, {order.qty}' if order.price: txt += f', ${jh.format_price(order.price)}' logger.info(txt) _notify_submission(order) def _notify_submission(order: Order) -> None: if config['env']['notifications']['events']['submitted_orders'] and (order.is_active or order.is_queued): txt = f'{"QUEUED" if order.is_queued else "SUBMITTED"} order: {order.symbol}, {order.type}, {order.side}, {order.qty}' if order.price: txt += f', ${jh.format_price(order.price)}' notify(txt) def initialize_orders_state() -> None: for exchange in config['app']['trading_exchanges']: for symbol in config['app']['trading_symbols']: key = f'{exchange}-{symbol}' store.orders.storage[key] = [] store.orders.active_storage[key] = [] def get_entry_orders(exchange: str, symbol: str) -> List[Order]: p = store.positions.get_position(exchange, symbol) # return all orders if position is not opened yet if p.is_close: return store.orders.get_orders(exchange, symbol).copy() all_orders = store.orders.get_active_orders(exchange, symbol) p_side = jh.type_to_side(p.type) entry_orders = [o for o in all_orders if (o.side == p_side and not o.is_canceled)] return entry_orders def get_exit_orders(exchange: str, symbol: str) -> List[Order]: """ excludes cancel orders but includes executed orders """ all_orders = store.orders.get_orders(exchange, symbol) # return empty if no orders if len(all_orders) == 0: return [] # return empty if position is not opened yet p = store.positions.get_position(exchange, symbol) if p.is_close: return [] else: exit_orders = [o for o in all_orders if o.side != jh.type_to_side(p.type)] # exclude cancelled orders exit_orders = [o for o in exit_orders if not o.is_canceled] return exit_orders def get_active_exit_orders(exchange: str, symbol: str) -> List[Order]: """ excludes cancel orders but includes executed orders """ all_orders = store.orders.get_active_orders(exchange, symbol) # return empty if no orders if len(all_orders) == 0: return [] # return empty if position is not opened yet p = store.positions.get_position(exchange, symbol) if p.is_close: return [] else: exit_orders = [o for o in all_orders if o.side != jh.type_to_side(p.type)] # exclude cancelled orders exit_orders = [o for o in exit_orders if not o.is_canceled] return exit_orders def update_active_orders(exchange: str, symbol: str): key = f'{exchange}-{symbol}' active_orders = [ order for order in store.orders.get_active_orders(exchange, symbol) if not order.is_canceled and not order.is_executed ] store.orders.active_storage[key] = active_orders ================================================ FILE: jesse/services/position_service.py ================================================ from jesse.config import config from jesse.models import Position from jesse.store import store import jesse.helpers as jh from jesse.exceptions import EmptyPosition, OpenPositionError from jesse.services import closed_trade_service from jesse.enums import trade_types from jesse.utils import sum_floats, subtract_floats from jesse.enums import order_types from jesse.models import Order from jesse.services import logger def initialize_positions_state() -> None: for exchange in config['app']['trading_exchanges']: for symbol in config['app']['trading_symbols']: key: str = f'{exchange}-{symbol}' store.positions.storage[key] = create_position(exchange, symbol) def create_position(exchange_name: str, symbol: str, attributes: dict = None) -> Position: p = Position(attributes) if p.id is None: p.id = jh.generate_unique_id() p.exchange_name = exchange_name p.exchange = store.exchanges.get_exchange(exchange_name) p.symbol = symbol return p def _mutating_close(position: Position, close_price: float) -> None: if position.is_close and position._can_mutate_qty: raise EmptyPosition('The position is already closed.') position.exit_price = close_price position.closed_at = jh.now_to_timestamp() if position.exchange and position.exchange.type == 'futures': # just to prevent confusion close_qty = abs(position.qty) estimated_profit = jh.estimate_PNL( close_qty, position.entry_price, close_price, position.type ) position.exchange.add_realized_pnl(estimated_profit) position.exchange.temp_reduced_amount[jh.base_asset(position.symbol)] += abs(close_qty * close_price) if position._can_mutate_qty: _update_qty(position, 0, operation='set') # reset entry_price position.entry_price = None _close(position) def _close(position: Position): closed_trade_service.close_trade(position) def _mutating_reduce(position: Position, qty: float, price: float) -> None: if not position._can_mutate_qty: return if position.is_open is False: raise EmptyPosition('The position is closed.') # just to prevent confusion qty = abs(qty) estimated_profit = jh.estimate_PNL(qty, position.entry_price, price, position.type) if position.exchange and position.exchange.type == 'futures': # position.exchange.increase_futures_balance(qty * position.entry_price + estimated_profit) position.exchange.add_realized_pnl(estimated_profit) position.exchange.temp_reduced_amount[jh.base_asset(position.symbol)] += abs(qty * price) if position.type == trade_types.LONG: _update_qty(position, qty, operation='subtract') elif position.type == trade_types.SHORT: _update_qty(position, qty, operation='add') def _mutating_increase(position: Position, qty: float, price: float) -> None: if not position.is_open: raise OpenPositionError('position must be already open in order to increase its size') qty = abs(qty) position.entry_price = jh.estimate_average_price( qty, price, position.qty, position.entry_price ) if position._can_mutate_qty: if position.type == trade_types.LONG: _update_qty(position, qty, operation='add') elif position.type == trade_types.SHORT: _update_qty(position, qty, operation='subtract') def _mutating_open(position: Position, qty: float, price: float) -> None: if position.is_open and position._can_mutate_qty: raise OpenPositionError('an already open position cannot be opened') position.entry_price = price position.exit_price = None if position._can_mutate_qty: _update_qty(position, qty, operation='set') position.opened_at = jh.now_to_timestamp() _open(position) def _update_qty(position: Position, qty: float, operation='set'): position.previous_qty = position.qty if position.exchange_type == 'spot': if operation == 'set': position.qty = qty * (1 - position.exchange.fee_rate) elif operation == 'add': position.qty = sum_floats(position.qty, qty * (1 - position.exchange.fee_rate)) elif operation == 'subtract': # fees are taken from the quote currency. in spot mode, sell orders cause # the qty to reduce but fees are handled on the exchange balance stuff position.qty = subtract_floats(position.qty, qty) elif position.exchange_type == 'futures': if operation == 'set': position.qty = qty elif operation == 'add': position.qty = sum_floats(position.qty, qty) elif operation == 'subtract': position.qty = subtract_floats(position.qty, qty) else: raise NotImplementedError('exchange type not implemented') def _open(position: Position, p_orders: list = None): closed_trade_service.open_trade(position, p_orders) def on_executed_order(position: Position, order: Order) -> None: # futures (live) if jh.is_livetrading() and position.exchange_type == 'futures': # if position got closed because of this order if order.is_partially_filled: before_qty = position.qty - order.filled_qty else: before_qty = position.qty - order.qty after_qty = position.qty if before_qty != 0 and after_qty == 0: _close(position) # spot (live) elif jh.is_livetrading() and position.exchange_type == 'spot': # if position got closed because of this order before_qty = position.previous_qty after_qty = position.qty qty = order.qty price = order.price closing_position = before_qty > position._min_qty > after_qty if closing_position: _mutating_close(position, price) opening_position = before_qty < position._min_qty < after_qty if opening_position: _mutating_open(position, qty, price) increasing_position = after_qty > before_qty > position._min_qty if increasing_position: _mutating_increase(position, qty, price) reducing_position = position._min_qty < after_qty < before_qty if reducing_position: _mutating_reduce(position, qty, price) else: # backtest (both futures and spot) qty = order.qty price = order.price if position.exchange and position.exchange.type == 'futures': position.exchange.charge_fee(qty * price) # order opens position if position.qty == 0: change_balance = order.type == order_types.MARKET _mutating_open(position, qty, price) # order closes position elif (sum_floats(position.qty, qty)) == 0: _mutating_close(position, price) # order increases the size of the position elif position.qty * qty > 0: if order.reduce_only: logger.info('Did not increase position because order is a reduce_only order') else: _mutating_increase(position, qty, price) # order reduces the size of the position elif position.qty * qty < 0: # if size of the order is big enough to both close the # position AND open it on the opposite side if abs(qty) > abs(position.qty): if order.reduce_only: logger.info( f'Executed order is bigger than the current position size but it is a reduce_only order so it just closes it. Order QTY: {qty}, Position QTY: {position.qty}') _mutating_close(position, price) else: logger.info( f'Executed order is big enough to not close, but flip the position type. Order QTY: {qty}, Position QTY: {position.qty}') diff_qty = sum_floats(position.qty, qty) _mutating_close(position, price) _mutating_open(position, diff_qty, price) else: _mutating_reduce(position, qty, price) if position.strategy: position.strategy._on_updated_position(order) def update_from_stream(position: Position, data: dict, is_initial: bool, open_trade: dict = None, p_orders: list = None) -> None: """ Used for updating the position from the WS stream (only for live trading) """ before_qty = abs(position.qty) after_qty = abs(data['qty']) if position.exchange_type == 'futures': position.entry_price = data['entry_price'] position._liquidation_price = data['liquidation_price'] else: # spot if after_qty > position._min_qty and position.entry_price is None: position.entry_price = position.current_price # if the new qty (data['qty']) is different than the current (self.qty) then update it: if position.qty != data['qty']: position.previous_qty = position.qty position.qty = data['qty'] opening_position = before_qty <= position._min_qty < after_qty closing_position = before_qty > position._min_qty >= after_qty if opening_position: # if is_initial: # from jesse.store import store # store.closed_trades.add_order_record_only( # self.exchange_name, self.symbol, jh.type_to_side(self.type), # self.qty, self.entry_price # ) position.opened_at = jh.now_to_timestamp() if not open_trade: _open(position, p_orders) elif closing_position: position.closed_at = jh.now_to_timestamp() ================================================ FILE: jesse/services/progressbar.py ================================================ from time import time import numpy as np from jesse.libs import DynamicNumpyArray class Progressbar: def __init__(self, length: int, step=1): self.length = length self.index = 0 # validation if self.length <= self.index: raise ValueError('length must be greater than 0') self._time = time() self._execution_times = DynamicNumpyArray((3, 1), 3) self.step = step self.is_finished = False def update(self): if not self.is_finished: self.index += self.step if self.index == self.length: self.is_finished = True now = time() self._execution_times.append(np.array([now - self._time])) self._time = now @property def current(self): if self.is_finished: return 100 return round(self.index / self.length * 100, 1) @property def average_execution_seconds(self): return self._execution_times[:].mean() @property def remaining_index(self): if self.is_finished: return 0 return self.length - self.index @property def estimated_remaining_seconds(self): if self.is_finished: return 0 return self.average_execution_seconds * self.remaining_index / self.step def finish(self): self.is_finished = True ================================================ FILE: jesse/services/redis.py ================================================ import aioredis import redis as sync_redis_lib import simplejson as json import asyncio import jesse.helpers as jh from jesse.libs.custom_json import NpEncoder import os import base64 from jesse.services.env import ENV_VALUES async def init_redis(): return await aioredis.create_redis_pool( address=(ENV_VALUES['REDIS_HOST'], ENV_VALUES['REDIS_PORT']), password=ENV_VALUES['REDIS_PASSWORD'] or None, db=int(ENV_VALUES.get('REDIS_DB') or 0), ) async_redis = None sync_redis = None if jh.is_jesse_project(): if not jh.is_notebook(): async_redis = asyncio.run(init_redis()) sync_redis = sync_redis_lib.Redis( host=ENV_VALUES['REDIS_HOST'], port=ENV_VALUES['REDIS_PORT'], db=int(ENV_VALUES.get('REDIS_DB') or 0), password=ENV_VALUES['REDIS_PASSWORD'] if ENV_VALUES['REDIS_PASSWORD'] else None ) def sync_publish(event: str, msg, compression: bool = False): if jh.is_unit_testing(): raise EnvironmentError('sync_publish() should be NOT called during testing. There must be something wrong') if compression: msg = jh.gzip_compress(msg) # Encode the compressed message using Base64 msg = base64.b64encode(msg).decode('utf-8') try: sync_redis.publish( f"{ENV_VALUES['APP_PORT']}:channel:1", json.dumps({ 'id': os.getpid(), 'event': f'{jh.app_mode()}.{event}', 'is_compressed': compression, 'data': msg }, ignore_nan=True, cls=NpEncoder) ) except Exception as e: # Log publish errors so we can diagnose Redis outages without crashing the worker jh.terminal_debug(f"Redis publish error: {e}") async def async_publish(event: str, msg, compression: bool = False): if jh.is_unit_testing(): raise EnvironmentError('sync_publish() should be NOT called during testing. There must be something wrong') if compression: msg = jh.gzip_compress(msg) # Encode the compressed message using Base64 msg = base64.b64encode(msg).decode('utf-8') await async_redis.publish( f"{ENV_VALUES['APP_PORT']}:channel:1", json.dumps({ 'id': os.getpid(), 'event': f'{jh.app_mode()}.{event}', 'is_compressed': compression, 'data': msg }, ignore_nan=True, cls=NpEncoder) ) def is_process_active(client_id: str) -> bool: if jh.is_unit_testing(): return False return sync_redis.sismember(f"{ENV_VALUES['APP_PORT']}|active-processes", client_id) ================================================ FILE: jesse/services/report.py ================================================ import warnings from typing import List, Any, Union, Dict import pandas as pd import jesse.helpers as jh from jesse.config import config from jesse.routes import router from jesse.services import metrics as stats from jesse.store import store from jesse.models import Position from jesse.services import candle_service # silent (pandas) warnings warnings.filterwarnings("ignore") def positions() -> list: arr = [] for r in router.routes: if r.strategy is None: continue p: Position = r.strategy.position arr.append({ 'currency': jh.app_currency(), 'type': p.type, 'strategy_name': p.strategy.name, 'symbol': p.symbol, 'leverage': p.leverage, 'opened_at': p.opened_at, 'qty': p.qty, 'value': p.value, 'entry': None if p.is_close else p.entry_price, 'current_price': p.current_price, 'liquidation_price': p.liquidation_price, 'pnl': p.pnl, 'pnl_perc': p.pnl_percentage }) return arr def candles() -> dict: candles_dict = {} candle_keys = [] # add routes for e in router.routes: if e.strategy is None: return {} candle_keys.append({ 'exchange': e.exchange, 'symbol': e.symbol, 'timeframe': e.timeframe }) for k in candle_keys: try: c = candle_service.get_current_candle(k['exchange'], k['symbol'], k['timeframe']) key = jh.key(k['exchange'], k['symbol'], k['timeframe']) candles_dict[key] = { 'time': int(c[0] / 1000), 'open': c[1], 'close': c[2], 'high': c[3], 'low': c[4], 'volume': c[5], } except IndexError: return {} except Exception: raise return candles_dict def livetrade(): starting_balance = 0 current_balance = 0 exchange_name = '' leverage = 1 leverage_type = 'spot' available_margin = 0 for e in store.exchanges.storage: starting_balance = round(store.exchanges.storage[e].started_balance, 2) current_balance = round(store.exchanges.storage[e].wallet_balance, 2) exchange_name = e if store.exchanges.storage[e].type == 'futures': leverage = store.exchanges.storage[e].futures_leverage leverage_type = store.exchanges.storage[e].futures_leverage_mode available_margin = round(store.exchanges.storage[e].available_margin, 2) # there's only one exchange, so we can break break # short trades summary if len(store.closed_trades.trades): df = pd.DataFrame.from_records([t.to_dict for t in store.closed_trades.trades]) total = len(df) winning_trades = len(df.loc[df['PNL'] > 0]) losing_trades = len(df.loc[df['PNL'] < 0]) pnl = round(df['PNL'].sum(), 2) pnl_perc = round((pnl / starting_balance) * 100, 2) else: pnl, pnl_perc, total, winning_trades, losing_trades = 0, 0, 0, 0, 0 routes = [ { 'symbol': r.symbol, 'timeframe': r.timeframe, 'strategy': r.strategy_name } for r in router.routes ] return { 'session_id': store.app.session_id, 'started_at': str(store.app.starting_time), 'current_time': str(jh.now_to_timestamp()), 'started_balance': str(starting_balance), 'current_balance': str(current_balance), 'debug_mode': str(config['app']['debug_mode']), 'paper_mode': str(jh.is_paper_trading()), 'count_error_logs': str(len(store.logs.errors)), 'count_info_logs': str(len(store.logs.info)), 'count_active_orders': str(store.orders.count_all_active_orders()), 'open_positions': str(store.positions.count_open_positions()), 'pnl': str(pnl), 'pnl_perc': str(pnl_perc), 'count_trades': str(total), 'count_winning_trades': str(winning_trades), 'count_losing_trades': str(losing_trades), 'routes': routes, 'exchange': exchange_name, 'leverage': leverage, "leverage_type": leverage_type, 'available_margin': available_margin } def portfolio_metrics() -> Union[dict, None]: if store.closed_trades.count == 0: return None return stats.trades(store.closed_trades.trades, store.app.daily_balance) def trades() -> List[dict]: if store.closed_trades.count == 0: return [] return [t.to_dict_with_orders for t in store.closed_trades.trades] def info() -> List[List[Union[str, Any]]]: return [ [ jh.timestamp_to_time(w['time'])[11:19], f"{w['message'][:70]}.." if len(w['message']) > 70 else w['message'], ] for w in store.logs.info[::-1][0:5] ] def watch_list() -> Dict[str, List[List[Union[str, str]]]]: """ Returns a dictionary of watch lists for all routes keyed by route key (exchange-symbol-timeframe). This allows frontend to display watch list for the currently selected route without server-side knowledge of the selection. """ results: Dict[str, List[List[Union[str, str]]]] = {} for r in router.routes: strategy = r.strategy # skip if strategy object is not initialized yet if strategy is None or not store.candles.are_all_initiated: results[jh.key(r.exchange, r.symbol, r.timeframe)] = [] continue try: watch_list_array = strategy.watch_list() except Exception: import traceback watch_list_array = [ ('', "The watch list is not available because an error occurred while getting it. Please check your strategy code's watch_list() method."), ('', f'ERROR: ```{traceback.format_exc()}```') ] # loop through the watch list and convert each item into a string for index, value in enumerate(watch_list_array): if not isinstance(value, tuple) or len(value) != 2: raise ValueError("watch_list() must return a list of tuples with 2 values in each. Example: [(key1, value1), (key2, value2)]") watch_list_array[index] = (str(value[0]), str(value[1])) results[jh.key(r.exchange, r.symbol, r.timeframe)] = watch_list_array if len(watch_list_array) else [] return results def errors() -> List[List[Union[str, Any]]]: return [ [ jh.timestamp_to_time(w['time'])[11:19], f"{w['message'][:70]}.." if len(w['message']) > 70 else w['message'], ] for w in store.logs.errors[::-1][0:5] ] def orders() -> List[dict]: route_orders = [] for r in router.routes: r_orders = store.orders.get_orders(r.exchange, r.symbol) for o in r_orders: o.trade_id = str(o.trade_id) if o.trade_id else None o.id = str(o.id) if o.id else None route_orders.append(o.to_dict) return route_orders ================================================ FILE: jesse/services/strategy_handler/ExampleStrategy/__init__.py ================================================ from jesse.strategies import Strategy import jesse.indicators as ta from jesse import utils class ExampleStrategy(Strategy): def should_long(self) -> bool: return False def should_short(self) -> bool: # For futures trading only return False def go_long(self): pass def go_short(self): # For futures trading only pass ================================================ FILE: jesse/services/strategy_handler/__init__.py ================================================ import os import shutil from starlette.responses import JSONResponse def generate(name: str) -> JSONResponse: path = f'strategies/{name}' # validation for name duplication exists = os.path.isdir(path) if exists: return JSONResponse({ 'status': 'error', 'message': f'Strategy "{name}" already exists.' }, status_code=409) # generate from ExampleStrategy dirname, filename = os.path.split(os.path.abspath(__file__)) shutil.copytree(f'{dirname}/ExampleStrategy', path) # replace 'ExampleStrategy' with the name of the new strategy with open(f"{path}/__init__.py", "rt") as fin: data = fin.read() data = data.replace('ExampleStrategy', name) with open(f"{path}/__init__.py", "wt") as fin: fin.write(data) # return the location of generated strategy directory return JSONResponse({ 'status': 'success', 'message': path }) def get_strategies() -> JSONResponse: path = 'strategies' directories = [] # Iterate through the items in the specified path for item in os.listdir(path): # Construct full path full_path = os.path.join(path, item) # Check if the item is a directory if os.path.isdir(full_path): directories.append(item) return JSONResponse({ 'status': 'success', 'strategies': directories }) def get_strategy(name: str) -> JSONResponse: path = f'strategies/{name}' exists = os.path.isdir(path) if not exists: return JSONResponse({ 'status': 'error', 'message': f'Strategy "{name}" does not exist.' }, status_code=404) with open(f"{path}/__init__.py", "rt") as fin: content = fin.read() return JSONResponse({ 'status': 'success', 'content': content }) def save_strategy(name: str, content: str) -> JSONResponse: path = f'strategies/{name}' exists = os.path.isdir(path) if not exists: return JSONResponse({ 'status': 'error', 'message': f'Strategy "{name}" does not exist.' }, status_code=404) with open(f"{path}/__init__.py", "wt") as fin: fin.write(content) return JSONResponse({ 'status': 'success', 'message': f'Strategy "{name}" has been saved.' }) def import_strategy(name: str, code: str) -> JSONResponse: import re # Sanitize strategy name to create valid folder name # Remove any characters that aren't alphanumeric, underscore, or hyphen sanitized_name = re.sub(r'[^a-zA-Z0-9_-]', '_', name) # Replace multiple underscores with a single one sanitized_name = re.sub(r'_+', '_', sanitized_name) # Remove leading/trailing underscores sanitized_name = sanitized_name.strip('_') # Ensure name is not empty after sanitization if not sanitized_name: return JSONResponse({ 'status': 'error', 'message': 'Invalid strategy name' }, status_code=400) path = f'strategies/{sanitized_name}' # Check if strategy already exists exists = os.path.isdir(path) if exists: return JSONResponse({ 'status': 'error', 'message': f'Strategy "{sanitized_name}" already exists.' }, status_code=409) # Create strategy directory os.makedirs(path, exist_ok=True) # Write the strategy code to __init__.py with open(f"{path}/__init__.py", "wt") as f: f.write(code) return JSONResponse({ 'status': 'success', 'message': f'Strategy "{sanitized_name}" has been imported.', 'path': path, 'name': sanitized_name }) def delete_strategy(name: str) -> JSONResponse: path = f'strategies/{name}' exists = os.path.isdir(path) if not exists: return JSONResponse({ 'status': 'error', 'message': f'Strategy "{name}" does not exist.' }, status_code=404) shutil.rmtree(path) return JSONResponse({ 'status': 'success', 'message': f'Strategy "{name}" has been deleted.' }) ================================================ FILE: jesse/services/strategy_service.py ================================================ from typing import Any from jesse.routes import router def get_strategy(exchange: str, symbol: str) -> Any: if exchange is None or symbol is None: raise ValueError(f"exchange and symbol cannot be None. exchange: {exchange}, symbol: {symbol}") r = next(r for r in router.routes if r.exchange == exchange and r.symbol == symbol) return r.strategy ================================================ FILE: jesse/services/table.py ================================================ from tabulate import tabulate from typing import Union def key_value(data, title: str, alignments: Union[list, tuple] = None, uppercase_title: bool = True) -> None: table = [d for d in data] if alignments is None: print(tabulate(table, headers=[title.upper() if uppercase_title else title, ''], tablefmt="presto")) else: print(tabulate(table, headers=[title.upper() if uppercase_title else title, ''], tablefmt="presto", colalign=alignments)) def multi_value(data, with_headers: bool = True, alignments: Union[list, tuple] = None) -> None: """ :param data: :param with_headers: :param alignments: :return: """ if data is None: return headers = data.pop(0) if with_headers else () table = data if alignments is None: print(tabulate(table, headers=headers, tablefmt="presto")) else: print(tabulate(table, headers=headers, tablefmt="presto", colalign=alignments)) ================================================ FILE: jesse/services/tradingview.py ================================================ import os import jesse.helpers as jh from jesse.store import store def tradingview_logs(study_name: str) -> str: starting_balance = sum( store.exchanges.storage[e].starting_assets[jh.app_currency()] for e in store.exchanges.storage ) tv_text = f'//@version=4\nstrategy("{study_name}", overlay=true, initial_capital={starting_balance}, commission_type=strategy.commission.percent, commission_value=0.2)\n' for i, t in enumerate(store.closed_trades.trades[::-1][:]): tv_text += '\n' for j, o in enumerate(t.orders): when = f"time_close == {int(o.executed_at)}" if int(o.executed_at) % (jh.timeframe_to_one_minutes(t.timeframe) * 60_000) != 0: when = f"time_close >= {int(o.executed_at)} and time_close - {int(o.executed_at) + jh.timeframe_to_one_minutes(t.timeframe) * 60_000} < {jh.timeframe_to_one_minutes(t.timeframe) * 60_000}" if j == len(t.orders) - 1: tv_text += f'strategy.close("{i}", when = {when})\n' else: tv_text += f'strategy.order("{i}", {1 if t.type == "long" else 0}, {abs(o.qty)}, {o.price}, when = {when})\n' path = f'storage/trading-view-pine-editor/{jh.get_session_id()}.txt'.replace(":", "-") os.makedirs('./storage/trading-view-pine-editor', exist_ok=True) with open(path, 'w+') as outfile: outfile.write(tv_text) return path ================================================ FILE: jesse/services/transformers.py ================================================ from jesse.models.ExchangeApiKeys import ExchangeApiKeys from jesse.models.NotificationApiKeys import NotificationApiKeys from jesse.models.OptimizationSession import OptimizationSession from jesse.models.BacktestSession import BacktestSession from jesse.models.MonteCarloSession import MonteCarloSession from jesse.models.LiveSession import LiveSession from jesse.models.Order import Order from jesse.enums import live_session_statuses from jesse.repositories import order_repository, live_session_repository from jesse.services.multiprocessing import process_manager import json import math import jesse.helpers as jh def get_exchange_api_key(exchange_api_key: ExchangeApiKeys) -> dict: result = { 'id': str(exchange_api_key.id), 'exchange': exchange_api_key.exchange_name, 'name': exchange_api_key.name, 'api_key': exchange_api_key.api_key[0:4] + '***...***' + exchange_api_key.api_key[-4:], 'api_secret': exchange_api_key.api_secret[0:4] + '***...***' + exchange_api_key.api_secret[-4:], 'created_at': exchange_api_key.created_at.isoformat(), } if type(exchange_api_key.additional_fields) == str: exchange_api_key.additional_fields = json.loads(exchange_api_key.additional_fields) # additional fields if exchange_api_key.additional_fields: for key, value in exchange_api_key.additional_fields.items(): result[key] = value[0:4] + '***...***' + value[-4:] return result def get_notification_api_key(api_key: NotificationApiKeys, protect_sensitive_data=True) -> dict: result = { 'id': str(api_key.id), 'name': api_key.name, 'driver': api_key.driver, 'created_at': api_key.created_at.isoformat() } # Parse the fields from the JSON string fields = json.loads(api_key.fields) # Add each field to the result for key, value in fields.items(): if protect_sensitive_data: result[key] = value[0:4] + '***...***' + value[-4:] else: result[key] = value return result def get_optimization_session(session: OptimizationSession) -> dict: """ Transform an OptimizationSession model instance into a dictionary for API responses """ return { 'id': str(session.id), 'status': session.status, 'completed_trials': session.completed_trials, 'total_trials': session.total_trials, 'created_at': session.created_at, 'updated_at': session.updated_at, 'best_score': session.best_score, 'state': json.loads(session.state) if session.state else None, 'title': session.title, 'description': session.description, 'strategy_codes': json.loads(session.strategy_codes) if session.strategy_codes else {} } def get_optimization_session_for_load_more(session: OptimizationSession) -> dict: objective_function_config = jh.get_config('env.optimization.objective_function', 'sharpe').lower() mapping = { 'sharpe': 'sharpe_ratio', 'calmar': 'calmar_ratio', 'sortino': 'sortino_ratio', 'omega': 'omega_ratio', 'serenity': 'serenity_index', 'smart sharpe': 'smart_sharpe', 'smart sortino': 'smart_sortino' } metric_key = mapping.get(objective_function_config, objective_function_config) best_candidates = [] def replace_inf_with_null(obj): if isinstance(obj, dict): return {k: replace_inf_with_null(v) for k, v in obj.items()} elif isinstance(obj, list): return [replace_inf_with_null(item) for item in obj] elif isinstance(obj, float) and (obj == float('inf') or obj == float('-inf')): return None return obj best_trials_list = replace_inf_with_null(json.loads(session.best_trials)) if session.best_trials else [] for idx, t in enumerate(best_trials_list): training_metrics = t.get('training_metrics', {}) testing_metrics = t.get('testing_metrics', {}) train_value = training_metrics.get(metric_key, None) test_value = testing_metrics.get(metric_key, None) if isinstance(train_value, (int, float)): train_value = round(train_value, 2) if isinstance(test_value, (int, float)): test_value = round(test_value, 2) if train_value is None: train_value = "N/A" if test_value is None: test_value = "N/A" candidate_objective_metric = f"{train_value} / {test_value}" best_candidates.append({ 'rank': f"#{idx + 1}", 'trial': f"Trial {t['trial']}", 'params': t['params'], 'fitness': t['fitness'], 'dna': t['dna'], 'training_metrics': training_metrics, # Use the already fetched metrics 'testing_metrics': testing_metrics, # Use the already fetched metrics 'objective_metric': candidate_objective_metric }) best_candidates = json.dumps(best_candidates).replace('NaN', 'null') best_candidates = json.loads(best_candidates) objective_curve = None if session.objective_curve: objective_curve = session.objective_curve.replace('-Infinity', 'null').replace('Infinity', 'null') objective_curve = objective_curve.replace('NaN', 'null') objective_curve = json.loads(objective_curve) return { 'id': str(session.id), 'status': session.status, 'completed_trials': session.completed_trials, 'total_trials': session.total_trials, 'created_at': session.created_at, 'updated_at': session.updated_at, 'best_score': session.best_score, 'best_candidates': best_candidates, 'objective_curve': objective_curve, 'state': session.state_json, 'exception': session.exception, 'traceback': session.traceback, 'title': session.title, 'description': session.description, 'strategy_codes': json.loads(session.strategy_codes) if session.strategy_codes else {} } def get_backtest_session(session: BacktestSession) -> dict: """ Transform a BacktestSession model instance into a dictionary for API responses (listing) """ result = { 'id': str(session.id), 'status': session.status, 'created_at': session.created_at, 'updated_at': session.updated_at, 'execution_duration': session.execution_duration, 'net_profit_percentage': session.net_profit_percentage, 'state': session.state_json if session.state else None, 'title': session.title, 'description': session.description, 'strategy_codes': session.strategy_codes_json } return jh.clean_nan_values(jh.clean_infinite_values(result)) def get_backtest_session_for_load_more(session: BacktestSession) -> dict: """ Transform a BacktestSession model instance with full data for detailed view """ # Parse JSON fields and clean infinite values metrics = jh.clean_infinite_values(json.loads(session.metrics)) if session.metrics else None equity_curve = jh.clean_infinite_values(json.loads(session.equity_curve)) if session.equity_curve else [] trades = jh.clean_infinite_values(json.loads(session.trades)) if session.trades else [] hyperparameters = jh.clean_infinite_values(json.loads(session.hyperparameters)) if session.hyperparameters else None result = { 'id': str(session.id), 'status': session.status, 'metrics': metrics, 'equity_curve': equity_curve, 'trades': trades, 'hyperparameters': hyperparameters, 'has_chart_data': bool(session.chart_data), 'created_at': session.created_at, 'updated_at': session.updated_at, 'execution_duration': session.execution_duration, 'state': session.state_json, 'exception': session.exception, 'traceback': session.traceback, 'title': session.title, 'description': session.description, 'strategy_codes': session.strategy_codes_json } return jh.clean_nan_values(jh.clean_infinite_values(result)) def get_live_session(session: LiveSession) -> dict: """ Transform a LiveSession model instance into a dictionary for API responses. Reconciles status with actual worker state. """ try: is_active = str(session.id) in process_manager.active_workers except Exception: is_active = False status = (session.status or '').lower() # Reconcile status: if DB says starting/running but worker is not active, mark as stopped if status in [live_session_statuses.STARTING, live_session_statuses.RUNNING] and not is_active: status = live_session_statuses.STOPPED # Update DB to reflect the reconciled status try: live_session_repository.update_live_session_status(str(session.id), live_session_statuses.STOPPED) if not session.finished_at: from jesse.models.LiveSession import LiveSession LiveSession.update(finished_at=jh.now_to_timestamp(True)).where(LiveSession.id == session.id).execute() except Exception as e: jh.debug(f"Error reconciling live session status: {str(e)}") result = { 'id': str(session.id), 'status': status or session.status, 'is_active': is_active, 'session_mode': session.session_mode, 'exchange': session.exchange, 'created_at': session.created_at, 'updated_at': session.updated_at, 'finished_at': session.finished_at, 'state': json.loads(session.state) if session.state else None, 'title': session.title, 'description': session.description, 'strategy_codes': session.strategy_codes_json, 'exception': session.exception, 'traceback': session.traceback } return jh.clean_nan_values(jh.clean_infinite_values(result)) def get_monte_carlo_session(session: MonteCarloSession) -> dict: """ Transform a MonteCarloSession model instance into a dictionary for API responses (listing) """ trades_session = session.trades_session candles_session = session.candles_session return { 'id': str(session.id), 'status': session.status, 'has_trades': trades_session is not None, 'has_candles': candles_session is not None, 'trades_status': trades_session.status if trades_session else None, 'candles_status': candles_session.status if candles_session else None, 'created_at': session.created_at, 'updated_at': session.updated_at, 'title': session.title, 'description': session.description, 'strategy_codes': json.loads(session.strategy_codes) if session.strategy_codes else {}, 'state': session.state_json } def _percentile(arr: list, p: float) -> float: """Calculate the p-th percentile of a list of numbers.""" if not arr: return 0.0 sorted_arr = sorted(arr) index = (p / 100.0) * (len(sorted_arr) - 1) lower = int(index) upper = min(lower + 1, len(sorted_arr) - 1) weight = index % 1 return sorted_arr[lower] * (1 - weight) + sorted_arr[upper] * weight def _extract_candles_summary_metrics(results: dict) -> list: """Extract summary metrics from Monte Carlo candles results.""" metrics = [] results = json.loads(results) if not results or 'confidence_analysis' not in results: return metrics ca_metrics = results['confidence_analysis']['metrics'] # Define metrics to display (in order) metric_keys = ['net_profit_percentage', 'max_drawdown', 'sharpe_ratio', 'win_rate', 'total', 'annual_return', 'calmar_ratio'] for key in metric_keys: if key not in ca_metrics: continue analysis = ca_metrics[key] original = analysis.get('original') percentiles = analysis.get('percentiles', {}) # Get percentiles p5 = percentiles.get('5th') p50 = percentiles.get('50th') p95 = percentiles.get('95th') metrics.append({ 'metric': key, 'original': original, 'worst_5': p5, 'median': p50, 'best_5': p95 }) return metrics def _extract_trades_summary_metrics(results: dict) -> list: """Extract summary metrics from Monte Carlo trades confidence analysis.""" metrics = [] results = json.loads(results) if not results or 'confidence_analysis' not in results: return metrics ca_metrics = results['confidence_analysis']['metrics'] # Define metrics to display (in order) metric_keys = ['total_return', 'max_drawdown', 'sharpe_ratio', 'calmar_ratio'] for key in metric_keys: if key not in ca_metrics: continue analysis = ca_metrics[key] original = analysis.get('original') percentiles = analysis.get('percentiles', {}) # Get percentiles p5 = percentiles.get('5th') p50 = percentiles.get('50th') p95 = percentiles.get('95th') metrics.append({ 'metric': key, 'original': original, 'worst_5': p5, 'median': p50, 'best_5': p95 }) return metrics def get_monte_carlo_session_for_load_more(session: MonteCarloSession) -> dict: """ Transform a MonteCarloSession model instance with full data for detailed view """ trades_session = session.trades_session candles_session = session.candles_session trades_data = None if trades_session: trades_data = { 'id': str(trades_session.id), 'status': trades_session.status, 'num_scenarios': trades_session.num_scenarios, 'completed_scenarios': trades_session.completed_scenarios, 'summary_metrics': _extract_trades_summary_metrics(trades_session.results) if trades_session.results else [], 'logs': trades_session.logs, 'exception': trades_session.exception, 'traceback': trades_session.traceback, } candles_data = None if candles_session: candles_data = { 'id': str(candles_session.id), 'status': candles_session.status, 'num_scenarios': candles_session.num_scenarios, 'completed_scenarios': candles_session.completed_scenarios, 'pipeline_type': candles_session.pipeline_type, 'pipeline_params': json.loads(candles_session.pipeline_params) if candles_session.pipeline_params else None, 'logs': candles_session.logs, 'exception': candles_session.exception, 'traceback': candles_session.traceback, 'summary_metrics': _extract_candles_summary_metrics(candles_session.results) if candles_session.results else [], } # Sanitize nested NaN/Inf across entire candles_data structure candles_data = jh.clean_nan_values(candles_data) # Sanitize trades_data as well for completeness if trades_data is not None: trades_data = jh.clean_nan_values(trades_data) return { 'id': str(session.id), 'status': session.status, 'trades_session': trades_data, 'candles_session': candles_data, 'created_at': session.created_at, 'updated_at': session.updated_at, 'title': session.title, 'description': session.description, 'state': session.state_json, } def get_closed_trade_for_list(trade) -> dict: """ Transform a ClosedTrade model instance for list view """ result = { 'id': str(trade.id), 'symbol': trade.symbol, 'exchange': trade.exchange, 'type': trade.type, 'entry_price': trade.entry_price, 'exit_price': trade.exit_price if trade.closed_at else None, 'qty': trade.qty, 'pnl': trade.pnl if trade.closed_at else None, 'pnl_percentage': trade.pnl_percentage if trade.closed_at else None, 'opened_at': trade.opened_at, 'closed_at': trade.closed_at, 'status': 'closed' if trade.closed_at else 'open' } return jh.clean_nan_values(jh.clean_infinite_values(result)) def get_closed_trade_details(trade) -> dict: """ Transform a ClosedTrade model instance for detailed view with orders """ # Get all orders for this trade orders: list[Order] = order_repository.find_by_trade_id(trade.id) orders_list = [get_order_details(order) for order in orders] result = { 'id': str(trade.id), 'symbol': trade.symbol, 'type': trade.type, 'entry_price': trade.entry_price, 'exit_price': trade.exit_price if trade.closed_at else None, 'qty': trade.qty, 'pnl': trade.pnl if trade.closed_at else None, 'pnl_percentage': trade.pnl_percentage if trade.closed_at else None, 'opened_at': trade.opened_at, 'closed_at': trade.closed_at, 'status': 'closed' if trade.closed_at else 'open', 'strategy_name': jh.get_class_name(trade.strategy_name), 'exchange': trade.exchange, 'timeframe': trade.timeframe, 'leverage': trade.leverage, 'fee': trade.fee if trade.closed_at else None, 'size': trade.size, 'holding_period': trade.holding_period if trade.closed_at else None, 'orders': orders_list } return jh.clean_nan_values(jh.clean_infinite_values(result)) def get_order_details(order) -> dict: """ Transform an Order model instance for detail/list view """ result = { 'id': str(order.id), 'trade_id': str(order.trade_id) if order.trade_id else None, 'exchange_id': order.exchange_id, 'symbol': order.symbol, 'exchange': order.exchange, 'side': order.side, 'type': order.type, 'qty': order.qty, 'filled_qty': order.filled_qty, 'price': order.price, 'status': order.status, 'reduce_only': order.reduce_only, 'created_at': order.created_at, 'executed_at': order.executed_at, 'canceled_at': order.canceled_at, 'submitted_via': order.submitted_via, 'fee': order.fee } return jh.clean_nan_values(jh.clean_infinite_values(result)) ================================================ FILE: jesse/services/validators.py ================================================ from jesse import exceptions import jesse.helpers as jh from jesse.services import logger def validate_routes(router) -> None: if not router.routes: raise exceptions.RouteNotFound( 'No routes found. Please add at least one route at: routes.py\nMore info: https://docs.jesse.trade/docs/routes.html#routing') # validation for number of routes in the live mode if jh.is_live(): if len(router.routes) > 10: logger.broadcast_error_without_logging('Too many routes (not critical, but use at your own risk): Using that more than 5 routes in live/paper trading is not recommended because exchange WS connections are often not reliable for handling that much traffic.') ================================================ FILE: jesse/services/web.py ================================================ from typing import List, Dict, Optional from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from pydantic import BaseModel fastapi_app = FastAPI() origins = [ "*", ] fastapi_app.add_middleware( CORSMiddleware, allow_origins=origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) class BacktestRequestJson(BaseModel): id: str exchange: str routes: List[Dict[str, str]] data_routes: List[Dict[str, str]] config: dict start_date: str finish_date: str debug_mode: bool export_csv: bool export_json: bool export_chart: bool export_tradingview: bool fast_mode: bool benchmark: bool class OptimizationRequestJson(BaseModel): id: Optional[str] = None exchange: str routes: List[Dict[str, str]] data_routes: List[Dict[str, str]] config: dict training_start_date: str training_finish_date: str testing_start_date: str testing_finish_date: str optimal_total: int fast_mode: bool cpu_cores: int state: dict class ImportCandlesRequestJson(BaseModel): id: str exchange: str symbol: str start_date: str class ExchangeSupportedSymbolsRequestJson(BaseModel): exchange: str class CancelRequestJson(BaseModel): id: str class LiveRequestJson(BaseModel): id: str config: dict exchange: str exchange_api_key_id: str notification_api_key_id: str routes: List[Dict[str, str]] data_routes: List[Dict[str, str]] debug_mode: bool paper_mode: bool class LiveCancelRequestJson(BaseModel): id: str paper_mode: bool class GetCandlesRequestJson(BaseModel): id: str exchange: str symbol: str timeframe: str class GetLogsRequestJson(BaseModel): id: str type: str start_time: int class GetOrdersRequestJson(BaseModel): id: str session_id: str class StoreExchangeApiKeyRequestJson(BaseModel): exchange: str name: str api_key: str api_secret: str additional_fields: Optional[dict] = None general_notifications_id: Optional[str] = None error_notifications_id: Optional[str] = None class StoreNotificationApiKeyRequestJson(BaseModel): name: str driver: str fields: dict class DeleteExchangeApiKeyRequestJson(BaseModel): id: str class DeleteNotificationApiKeyRequestJson(BaseModel): id: str class ConfigRequestJson(BaseModel): current_config: dict class LoginRequestJson(BaseModel): password: str class LoginJesseTradeRequestJson(BaseModel): email: str password: str class NewStrategyRequestJson(BaseModel): name: str class GetStrategyRequestJson(BaseModel): name: str class SaveStrategyRequestJson(BaseModel): name: str content: str class DeleteStrategyRequestJson(BaseModel): name: str class ImportStrategyRequestJson(BaseModel): slug: str class FeedbackRequestJson(BaseModel): description: str email: Optional[str] = None class ReportExceptionRequestJson(BaseModel): description: str traceback: str mode: str attach_logs: bool session_id: Optional[str] = None email: Optional[str] = None class HelpSearchRequestJson(BaseModel): query: str class DeleteCandlesRequestJson(BaseModel): exchange: str symbol: str class UpdateOptimizationSessionStateRequestJson(BaseModel): id: str state: dict class UpdateOptimizationSessionStatusRequestJson(BaseModel): id: str status: str class TerminateOptimizationRequestJson(BaseModel): id: str class UpdateOptimizationSessionNotesRequestJson(BaseModel): id: str title: Optional[str] = None description: Optional[str] = None strategy_codes: Optional[dict] = None class GetOptimizationSessionsRequestJson(BaseModel): limit: int = 50 offset: int = 0 title_search: Optional[str] = None status_filter: Optional[str] = None date_filter: Optional[str] = None class UpdateBacktestSessionStateRequestJson(BaseModel): id: str state: dict class GetBacktestSessionsRequestJson(BaseModel): limit: int = 50 offset: int = 0 title_search: Optional[str] = None status_filter: Optional[str] = None date_filter: Optional[str] = None class UpdateBacktestSessionNotesRequestJson(BaseModel): id: str title: Optional[str] = None description: Optional[str] = None strategy_codes: Optional[dict] = None class GetLiveSessionsRequestJson(BaseModel): limit: int = 50 offset: int = 0 title_search: Optional[str] = None status_filter: Optional[str] = None date_filter: Optional[str] = None mode_filter: Optional[str] = None class UpdateLiveSessionNotesRequestJson(BaseModel): title: Optional[str] = None description: Optional[str] = None strategy_codes: Optional[dict] = None class UpdateLiveSessionStateRequestJson(BaseModel): id: str state: dict class GetEquityCurveRequestJson(BaseModel): session_id: str from_ms: Optional[int] = None to_ms: Optional[int] = None timeframe: str = 'auto' max_points: int = 1000 class MonteCarloRequestJson(BaseModel): id: Optional[str] = None exchange: str routes: List[Dict[str, str]] data_routes: List[Dict[str, str]] config: dict start_date: str finish_date: str run_trades: bool run_candles: bool num_scenarios: int fast_mode: bool cpu_cores: int pipeline_type: Optional[str] = 'moving_block_bootstrap' pipeline_params: Optional[dict] = None state: dict class UpdateMonteCarloSessionStateRequestJson(BaseModel): id: str state: dict class TerminateMonteCarloRequestJson(BaseModel): id: str class CancelMonteCarloRequestJson(BaseModel): id: str class UpdateMonteCarloSessionNotesRequestJson(BaseModel): id: str title: Optional[str] = None description: Optional[str] = None strategy_codes: Optional[dict] = None class GetMonteCarloSessionsRequestJson(BaseModel): limit: int = 50 offset: int = 0 title_search: Optional[str] = None status_filter: Optional[str] = None date_filter: Optional[str] = None class GetOrdersHistoryRequestJson(BaseModel): limit: int = 50 offset: int = 0 id_search: Optional[str] = None status_filter: Optional[str] = None symbol_filter: Optional[str] = None date_filter: Optional[str] = None exchange_filter: Optional[str] = None type_filter: Optional[str] = None side_filter: Optional[str] = None class GetTradesHistoryRequestJson(BaseModel): limit: int = 50 offset: int = 0 id_search: Optional[str] = None status_filter: Optional[str] = None symbol_filter: Optional[str] = None date_filter: Optional[str] = None exchange_filter: Optional[str] = None type_filter: Optional[str] = None class ImportApiKeyRequestJson(BaseModel): content: str ================================================ FILE: jesse/services/ws_manager.py ================================================ import asyncio import json import time from typing import Set from starlette.websockets import WebSocket from jesse.services.redis import async_redis from jesse.services.multiprocessing import process_manager import jesse.helpers as jh class ConnectionManager: def __init__(self): self.active_connections: Set[WebSocket] = set() self.is_subscribed = False self.redis_subscriber = None self.reader_task = None self.heartbeat_task = None self.heartbeat_interval = 30 async def connect(self, websocket: WebSocket): await websocket.accept() self.active_connections.add(websocket) await self.start_heartbeat() def disconnect(self, websocket: WebSocket): # Use discard to avoid KeyError if already removed self.active_connections.discard(websocket) async def broadcast(self, message: dict): # Process id with the manager for each websocket separately # Be resilient to per-connection send failures so a single bad client # does not stop the Redis listener loop. for connection in list(self.active_connections): message_copy = dict(message) message_copy['id'] = process_manager.get_client_id(message_copy['id']) try: await connection.send_json(message_copy) except Exception as e: # Drop the failing connection and continue broadcasting jh.terminal_debug(f"WebSocket send error: {str(e)}") self.disconnect(connection) async def start_redis_listener(self, channel_pattern): # Start or restart the listener task if missing or completed if self.reader_task is None or self.reader_task.done(): self.is_subscribed = True # Start the resilient listener task which will (re)subscribe internally self.reader_task = asyncio.create_task(self._redis_listener(channel_pattern)) async def _redis_listener(self, channel_pattern): # Keep the subscription alive and resubscribe on failures with backoff backoff_seconds = 0.1 while self.is_subscribed: try: self.redis_subscriber, = await async_redis.psubscribe(channel_pattern) # Reset backoff after a successful subscribe backoff_seconds = 0.1 async for ch, message in self.redis_subscriber.iter(): # Parse the message and broadcast to all clients message_dict = json.loads(message) await self.broadcast(message_dict) except asyncio.CancelledError: # Task was cancelled as part of shutdown break except Exception as e: jh.terminal_debug(f"Redis listener error: {str(e)}") # Exponential backoff to avoid tight retry loops await asyncio.sleep(backoff_seconds) backoff_seconds = min(backoff_seconds * 2, 5.0) async def start_heartbeat(self): if self.heartbeat_task is None or self.heartbeat_task.done(): self.heartbeat_task = asyncio.create_task(self._heartbeat_loop()) async def _heartbeat_loop(self): while len(self.active_connections) > 0: try: ping_message = { 'event': 'ping', 'timestamp': time.time(), 'id': 0, 'data': None } await self.broadcast(ping_message) await asyncio.sleep(self.heartbeat_interval) except asyncio.CancelledError: break except Exception as e: jh.terminal_debug(f"Heartbeat error: {str(e)}") await asyncio.sleep(self.heartbeat_interval) async def stop_redis_listener(self): if self.is_subscribed and len(self.active_connections) == 0: # Only unsubscribe if no clients are connected self.is_subscribed = False if self.reader_task and not self.reader_task.done(): self.reader_task.cancel() try: await self.reader_task except asyncio.CancelledError: pass if self.heartbeat_task and not self.heartbeat_task.done(): self.heartbeat_task.cancel() try: await self.heartbeat_task except asyncio.CancelledError: pass from jesse.services.env import ENV_VALUES try: await async_redis.punsubscribe(f"{ENV_VALUES['APP_PORT']}:channel:*") except Exception as e: jh.terminal_debug(f"Redis punsubscribe error: {str(e)}") jh.terminal_debug("Redis unsubscribed - no more active connections") # Create a global instance ws_manager = ConnectionManager() ================================================ FILE: jesse/static/200.html ================================================
================================================ FILE: jesse/static/404.html ================================================
================================================ FILE: jesse/static/_nuxt/-30QC5Em.js ================================================ const a=Object.freeze(JSON.parse(`{"displayName":"Gherkin","fileTypes":["feature"],"firstLineMatch":"기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Особина|Функция|Функциональность|Свойство|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Ability|Business Need|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd(.*)","foldingStartMarker":"^\\\\s*\\\\b(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Wharrimean is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Example|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dis is what went down|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario|Rule|Regla|Règle|Regel|Regra)","foldingStopMarker":"^\\\\s*$","name":"gherkin","patterns":[{"include":"#feature_element_keyword"},{"include":"#feature_keyword"},{"include":"#step_keyword"},{"include":"#strings_triple_quote"},{"include":"#strings_single_quote"},{"include":"#strings_double_quote"},{"include":"#comments"},{"include":"#tags"},{"include":"#scenario_outline_variable"},{"include":"#table"}],"repository":{"comments":{"captures":{"0":{"name":"comment.line.number-sign"}},"match":"^\\\\s*(#.*)"},"feature_element_keyword":{"captures":{"1":{"name":"keyword.language.gherkin.feature.scenario"},"2":{"name":"string.language.gherkin.scenario.title.title"}},"match":"^\\\\s*(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Wharrimean is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Example|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dis is what went down|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario|Rule|Regla|Règle|Regel|Regra):(.*)"},"feature_keyword":{"captures":{"1":{"name":"keyword.language.gherkin.feature"},"2":{"name":"string.language.gherkin.feature.title"}},"match":"^\\\\s*(기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Особина|Функция|Функциональность|Свойство|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Ability|Business Need|Feature|Ability|Egenskap|Egenskab|Crikey|Característica|Arwedd):(.*)\\\\b"},"scenario_outline_variable":{"match":"<[a-zA-Z0-9 _-]*>","name":"variable.other"},"step_keyword":{"captures":{"1":{"name":"keyword.language.gherkin.feature.step"}},"match":"^\\\\s*(En |و |Y |E |Եվ |Ya |Too right |Və |Həm |A |И |而且 |并且 |同时 |並且 |同時 |Ak |Epi |A také |Og |😂 |And |Kaj |Ja |Et que |Et qu' |Et |და |Und |Και |અને |וגם |और |तथा |És |Dan |Agus |かつ |Lan |ಮತ್ತು |'ej |latlh |그리고 |AN |Un |Ir |an |a |Мөн |Тэгээд |Ond |7 |ਅਤੇ |Aye |Oraz |Si |Și |Şi |К тому же |Также |An |A tiež |A taktiež |A zároveň |In |Ter |Och |மேலும் |மற்றும் |Һәм |Вә |మరియు |และ |Ve |І |А також |Та |اور |Ва |Và |Maar |لكن |Pero |Բայց |Peru |Yeah nah |Amma |Ancaq |Ali |Но |Però |但是 |Men |Ale |😔 |But |Sed |Kuid |Mutta |Mais que |Mais qu' |Mais |მაგ­რამ |Aber |Αλλά |પણ |אבל |पर |परन्तु |किन्तु |De |En |Tapi |Ach |Ma |しかし |但し |ただし |Nanging |Ananging |ಆದರೆ |'ach |'a |하지만 |단 |BUT |Bet |awer |mä |No |Tetapi |Гэхдээ |Харин |Ac |ਪਰ |اما |Avast! |Mas |Dar |А |Иначе |Buh |Али |Toda |Ampak |Vendar |ஆனால் |Ләкин |Әмма |కాని |แต่ |Fakat |Ama |Але |لیکن |Лекин |Бирок |Аммо |Nhưng |Ond |Dan |اذاً |ثم |Alavez |Allora |Antonces |Ապա |Entós |But at the end of the day I reckon |O halda |Zatim |То |Aleshores |Cal |那么 |那麼 |Lè sa a |Le sa a |Onda |Pak |Så |🙏 |Then |Do |Siis |Niin |Alors |Entón |Logo |მაშინ |Dann |Τότε |પછી |אז |אזי |तब |तदा |Akkor |Þá |Maka |Ansin |ならば |Njuk |Banjur |ನಂತರ |vaj |그러면 |DEN |Tad |Tada |dann |Тогаш |Togash |Kemudian |Тэгэхэд |Үүний дараа |Tha |Þa |Ða |Tha the |Þa þe |Ða ðe |ਤਦ |آنگاه |Let go and haul |Wtedy |Então |Entao |Atunci |Затем |Тогда |Dun |Den youse gotta |Онда |Tak |Potom |Nato |Potem |Takrat |Entonces |அப்பொழுது |Нәтиҗәдә |అప్పుడు |ดังนั้น |O zaman |Тоді |پھر |تب |Унда |Thì |Yna |Wanneer |متى |عندما |Cuan |Եթե |Երբ |Cuando |It's just unbelievable |Əgər |Nə vaxt ki |Kada |Когато |Quan |当 |當 |Lè |Le |Kad |Když |Når |Als |🎬 |When |Se |Kui |Kun |Quand |Lorsque |Lorsqu' |Cando |როდესაც |Wenn |Όταν |ક્યારે |כאשר |जब |कदा |Majd |Ha |Amikor |Þegar |Ketika |Nuair a |Nuair nach |Nuair ba |Nuair nár |Quando |もし |Manawa |Menawa |ಸ್ಥಿತಿಯನ್ನು |qaSDI' |만일 |만약 |WEN |Ja |Kai |wann |Кога |Koga |Apabila |Хэрэв |Tha |Þa |Ða |ਜਦੋਂ |هنگامی |Blimey! |Jeżeli |Jeśli |Gdy |Kiedy |Cand |Când |Когда |Если |Wun |Youse know like when |Када |Кад |Keď |Ak |Ko |Ce |Če |Kadar |När |எப்போது |Әгәр |ఈ పరిస్థితిలో |เมื่อ |Eğer ki |Якщо |Коли |جب |Агар |Khi |Pryd |Gegewe |بفرض |Dau |Dada |Daus |Dadas |Դիցուք |Dáu |Daos |Daes |Y'know |Tutaq ki |Verilir |Dato |Дадено |Donat |Donada |Atès |Atesa |假如 |假设 |假定 |假設 |Sipoze |Sipoze ke |Sipoze Ke |Zadan |Zadani |Zadano |Pokud |Za předpokladu |Givet |Gegeven |Stel |😐 |Given |Donitaĵo |Komence |Eeldades |Oletetaan |Soit |Etant donné que |Etant donné qu' |Etant donné |Etant donnée |Etant donnés |Etant données |Étant donné que |Étant donné qu' |Étant donné |Étant donnée |Étant donnés |Étant données |Dado |Dados |მოცემული |Angenommen |Gegeben sei |Gegeben seien |Δεδομένου |આપેલ છે |בהינתן |अगर |यदि |चूंकि |Amennyiben |Adott |Ef |Dengan |Cuir i gcás go |Cuir i gcás nach |Cuir i gcás gur |Cuir i gcás nár |Data |Dati |Date |前提 |Nalika |Nalikaning |ನೀಡಿದ |ghu' noblu' |DaH ghu' bejlu' |조건 |먼저 |I CAN HAZ |Kad |Duota |ugeholl |Дадена |Dadeno |Dadena |Diberi |Bagi |Өгөгдсөн нь |Анх |Gitt |Thurh |Þurh |Ðurh |ਜੇਕਰ |ਜਿਵੇਂ ਕਿ |با فرض |Gangway! |Zakładając |Mając |Zakładając, że |Date fiind |Dat fiind |Dată fiind |Dati fiind |Dați fiind |Daţi fiind |Допустим |Дано |Пусть |Givun |Youse know when youse got |За дато |За дате |За дати |Za dato |Za date |Za dati |Pokiaľ |Za predpokladu |Dano |Podano |Zaradi |Privzeto |கொடுக்கப்பட்ட |Әйтик |చెప్పబడినది |กำหนดให้ |Diyelim ki |Припустимо |Припустимо, що |Нехай |اگر |بالفرض |فرض کیا |Агар |Biết |Cho |Anrhegedig a |\\\\* )"},"strings_double_quote":{"begin":"(?"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"<",close:">"},{open:"(",close:")"}],surroundingPairs:[{open:"[",close:"]"},{open:"<",close:">"},{open:"(",close:")"}]},o={defaultToken:"",tokenPostfix:".pla",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"<",close:">",token:"delimiter.angle"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:[".i",".o",".mv",".ilb",".ob",".label",".type",".phase",".pair",".symbolic",".symbolic-output",".kiss",".p",".e",".end"],comment:/#.*$/,identifier:/[a-zA-Z]+[a-zA-Z0-9_\-]*/,plaContent:/[01\-~\|]+/,tokenizer:{root:[{include:"@whitespace"},[/@comment/,"comment"],[/\.([a-zA-Z_\-]+)/,{cases:{"@eos":{token:"keyword.$1"},"@keywords":{cases:{".type":{token:"keyword.$1",next:"@type"},"@default":{token:"keyword.$1",next:"@keywordArg"}}},"@default":{token:"keyword.$1"}}}],[/@identifier/,"identifier"],[/@plaContent/,"string"]],whitespace:[[/[ \t\r\n]+/,""]],type:[{include:"@whitespace"},[/\w+/,{token:"type",next:"@pop"}]],keywordArg:[[/[ \t\r\n]+/,{cases:{"@eos":{token:"",next:"@pop"},"@default":""}}],[/@comment/,"comment","@pop"],[/[<>()\[\]]/,{cases:{"@eos":{token:"@brackets",next:"@pop"},"@default":"@brackets"}}],[/\-?\d+/,{cases:{"@eos":{token:"number",next:"@pop"},"@default":"number"}}],[/@identifier/,{cases:{"@eos":{token:"identifier",next:"@pop"},"@default":"identifier"}}],[/[;=]/,{cases:{"@eos":{token:"delimiter",next:"@pop"},"@default":"delimiter"}}]]}};export{e as conf,o as language}; ================================================ FILE: jesse/static/_nuxt/3TATJI7h.js ================================================ /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},t={defaultToken:"",tokenPostfix:".java",keywords:["abstract","continue","for","new","switch","assert","default","goto","package","synchronized","boolean","do","if","private","this","break","double","implements","protected","throw","byte","else","import","public","throws","case","enum","instanceof","return","transient","catch","extends","int","short","try","char","final","interface","static","void","class","finally","long","strictfp","volatile","const","float","native","super","while","true","false","yield","record","sealed","non-sealed","permits"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/0[xX](@hexdigits)[Ll]?/,"number.hex"],[/0(@octaldigits)[Ll]?/,"number.octal"],[/0[bB](@binarydigits)[Ll]?/,"number.binary"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string","@multistring"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@javadoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],javadoc:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],multistring:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"""/,"string","@pop"],[/./,"string"]]}};export{e as conf,t as language}; ================================================ FILE: jesse/static/_nuxt/3cNudfSz.js ================================================ import{a2 as O,a1 as I}from"./CU_MfyYc.js";/*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var N=Object.defineProperty,M=Object.getOwnPropertyDescriptor,R=Object.getOwnPropertyNames,K=Object.prototype.hasOwnProperty,E=(e,t,i,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of R(t))!K.call(e,n)&&n!==i&&N(e,n,{get:()=>t[n],enumerable:!(o=M(t,n))||o.enumerable});return e},H=(e,t,i)=>(E(e,t,"default"),i),a={};H(a,I);var V=class{constructor(e,t){this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker()),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange(()=>this._updateExtraLibs())}dispose(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}async _updateExtraLibs(){if(!this._worker)return;const e=++this._updateExtraLibsToken,t=await this._worker.getProxy();this._updateExtraLibsToken===e&&t.updateExtraLibs(this._defaults.getExtraLibs())}_getClient(){return this._client||(this._client=(async()=>(this._worker=a.editor.createWebWorker({moduleId:"vs/language/typescript/tsWorker",label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs(),customWorkerPath:this._defaults.workerOptions.customWorkerPath,inlayHintsOptions:this._defaults.inlayHintsOptions}}),this._defaults.getEagerModelSync()?await this._worker.withSyncedResources(a.editor.getModels().filter(e=>e.getLanguageId()===this._modeId).map(e=>e.uri)):await this._worker.getProxy()))()),this._client}async getLanguageServiceWorker(...e){const t=await this._getClient();return this._worker&&await this._worker.withSyncedResources(e),t}},r={};r["lib.d.ts"]=!0;r["lib.decorators.d.ts"]=!0;r["lib.decorators.legacy.d.ts"]=!0;r["lib.dom.asynciterable.d.ts"]=!0;r["lib.dom.d.ts"]=!0;r["lib.dom.iterable.d.ts"]=!0;r["lib.es2015.collection.d.ts"]=!0;r["lib.es2015.core.d.ts"]=!0;r["lib.es2015.d.ts"]=!0;r["lib.es2015.generator.d.ts"]=!0;r["lib.es2015.iterable.d.ts"]=!0;r["lib.es2015.promise.d.ts"]=!0;r["lib.es2015.proxy.d.ts"]=!0;r["lib.es2015.reflect.d.ts"]=!0;r["lib.es2015.symbol.d.ts"]=!0;r["lib.es2015.symbol.wellknown.d.ts"]=!0;r["lib.es2016.array.include.d.ts"]=!0;r["lib.es2016.d.ts"]=!0;r["lib.es2016.full.d.ts"]=!0;r["lib.es2016.intl.d.ts"]=!0;r["lib.es2017.d.ts"]=!0;r["lib.es2017.date.d.ts"]=!0;r["lib.es2017.full.d.ts"]=!0;r["lib.es2017.intl.d.ts"]=!0;r["lib.es2017.object.d.ts"]=!0;r["lib.es2017.sharedmemory.d.ts"]=!0;r["lib.es2017.string.d.ts"]=!0;r["lib.es2017.typedarrays.d.ts"]=!0;r["lib.es2018.asyncgenerator.d.ts"]=!0;r["lib.es2018.asynciterable.d.ts"]=!0;r["lib.es2018.d.ts"]=!0;r["lib.es2018.full.d.ts"]=!0;r["lib.es2018.intl.d.ts"]=!0;r["lib.es2018.promise.d.ts"]=!0;r["lib.es2018.regexp.d.ts"]=!0;r["lib.es2019.array.d.ts"]=!0;r["lib.es2019.d.ts"]=!0;r["lib.es2019.full.d.ts"]=!0;r["lib.es2019.intl.d.ts"]=!0;r["lib.es2019.object.d.ts"]=!0;r["lib.es2019.string.d.ts"]=!0;r["lib.es2019.symbol.d.ts"]=!0;r["lib.es2020.bigint.d.ts"]=!0;r["lib.es2020.d.ts"]=!0;r["lib.es2020.date.d.ts"]=!0;r["lib.es2020.full.d.ts"]=!0;r["lib.es2020.intl.d.ts"]=!0;r["lib.es2020.number.d.ts"]=!0;r["lib.es2020.promise.d.ts"]=!0;r["lib.es2020.sharedmemory.d.ts"]=!0;r["lib.es2020.string.d.ts"]=!0;r["lib.es2020.symbol.wellknown.d.ts"]=!0;r["lib.es2021.d.ts"]=!0;r["lib.es2021.full.d.ts"]=!0;r["lib.es2021.intl.d.ts"]=!0;r["lib.es2021.promise.d.ts"]=!0;r["lib.es2021.string.d.ts"]=!0;r["lib.es2021.weakref.d.ts"]=!0;r["lib.es2022.array.d.ts"]=!0;r["lib.es2022.d.ts"]=!0;r["lib.es2022.error.d.ts"]=!0;r["lib.es2022.full.d.ts"]=!0;r["lib.es2022.intl.d.ts"]=!0;r["lib.es2022.object.d.ts"]=!0;r["lib.es2022.regexp.d.ts"]=!0;r["lib.es2022.sharedmemory.d.ts"]=!0;r["lib.es2022.string.d.ts"]=!0;r["lib.es2023.array.d.ts"]=!0;r["lib.es2023.collection.d.ts"]=!0;r["lib.es2023.d.ts"]=!0;r["lib.es2023.full.d.ts"]=!0;r["lib.es5.d.ts"]=!0;r["lib.es6.d.ts"]=!0;r["lib.esnext.collection.d.ts"]=!0;r["lib.esnext.d.ts"]=!0;r["lib.esnext.decorators.d.ts"]=!0;r["lib.esnext.disposable.d.ts"]=!0;r["lib.esnext.full.d.ts"]=!0;r["lib.esnext.intl.d.ts"]=!0;r["lib.esnext.object.d.ts"]=!0;r["lib.esnext.promise.d.ts"]=!0;r["lib.scripthost.d.ts"]=!0;r["lib.webworker.asynciterable.d.ts"]=!0;r["lib.webworker.d.ts"]=!0;r["lib.webworker.importscripts.d.ts"]=!0;r["lib.webworker.iterable.d.ts"]=!0;function D(e,t,i=0){if(typeof e=="string")return e;if(e===void 0)return"";let o="";if(i){o+=t;for(let n=0;nt.text).join(""):""}var _=class{constructor(e){this._worker=e}_textSpanToRange(e,t){let i=e.getPositionAt(t.start),o=e.getPositionAt(t.start+t.length),{lineNumber:n,column:c}=i,{lineNumber:u,column:s}=o;return{startLineNumber:n,startColumn:c,endLineNumber:u,endColumn:s}}},W=class{constructor(e){this._worker=e,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}isLibFile(e){return e&&e.path.indexOf("/lib.")===0?!!r[e.path.slice(1)]:!1}getOrCreateModel(e){const t=a.Uri.parse(e),i=a.editor.getModel(t);if(i)return i;if(this.isLibFile(t)&&this._hasFetchedLibFiles)return a.editor.createModel(this._libFiles[t.path.slice(1)],"typescript",t);const o=O.getExtraLibs()[e];return o?a.editor.createModel(o.content,"typescript",t):null}_containsLibFile(e){for(let t of e)if(this.isLibFile(t))return!0;return!1}async fetchLibFilesIfNecessary(e){this._containsLibFile(e)&&await this._fetchLibFiles()}_fetchLibFiles(){return this._fetchLibFilesPromise||(this._fetchLibFilesPromise=this._worker().then(e=>e.getLibFiles()).then(e=>{this._hasFetchedLibFiles=!0,this._libFiles=e})),this._fetchLibFilesPromise}},j=class extends _{constructor(e,t,i,o){super(o),this._libFiles=e,this._defaults=t,this._selector=i,this._disposables=[],this._listener=Object.create(null);const n=s=>{if(s.getLanguageId()!==i)return;const l=()=>{const{onlyVisible:h}=this._defaults.getDiagnosticsOptions();h?s.isAttachedToEditor()&&this._doValidate(s):this._doValidate(s)};let g;const d=s.onDidChangeContent(()=>{clearTimeout(g),g=window.setTimeout(l,500)}),b=s.onDidChangeAttached(()=>{const{onlyVisible:h}=this._defaults.getDiagnosticsOptions();h&&(s.isAttachedToEditor()?l():a.editor.setModelMarkers(s,this._selector,[]))});this._listener[s.uri.toString()]={dispose(){d.dispose(),b.dispose(),clearTimeout(g)}},l()},c=s=>{a.editor.setModelMarkers(s,this._selector,[]);const l=s.uri.toString();this._listener[l]&&(this._listener[l].dispose(),delete this._listener[l])};this._disposables.push(a.editor.onDidCreateModel(s=>n(s))),this._disposables.push(a.editor.onWillDisposeModel(c)),this._disposables.push(a.editor.onDidChangeModelLanguage(s=>{c(s.model),n(s.model)})),this._disposables.push({dispose(){for(const s of a.editor.getModels())c(s)}});const u=()=>{for(const s of a.editor.getModels())c(s),n(s)};this._disposables.push(this._defaults.onDidChange(u)),this._disposables.push(this._defaults.onDidExtraLibsChange(u)),a.editor.getModels().forEach(s=>n(s))}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables=[]}async _doValidate(e){const t=await this._worker(e.uri);if(e.isDisposed())return;const i=[],{noSyntaxValidation:o,noSemanticValidation:n,noSuggestionDiagnostics:c}=this._defaults.getDiagnosticsOptions();o||i.push(t.getSyntacticDiagnostics(e.uri.toString())),n||i.push(t.getSemanticDiagnostics(e.uri.toString())),c||i.push(t.getSuggestionDiagnostics(e.uri.toString()));const u=await Promise.all(i);if(!u||e.isDisposed())return;const s=u.reduce((g,d)=>d.concat(g),[]).filter(g=>(this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(g.code)===-1),l=s.map(g=>g.relatedInformation||[]).reduce((g,d)=>d.concat(g),[]).map(g=>g.file?a.Uri.parse(g.file.fileName):null);await this._libFiles.fetchLibFilesIfNecessary(l),!e.isDisposed()&&a.editor.setModelMarkers(e,this._selector,s.map(g=>this._convertDiagnostics(e,g)))}_convertDiagnostics(e,t){const i=t.start||0,o=t.length||1,{lineNumber:n,column:c}=e.getPositionAt(i),{lineNumber:u,column:s}=e.getPositionAt(i+o),l=[];return t.reportsUnnecessary&&l.push(a.MarkerTag.Unnecessary),t.reportsDeprecated&&l.push(a.MarkerTag.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:n,startColumn:c,endLineNumber:u,endColumn:s,message:D(t.messageText,` `),code:t.code.toString(),tags:l,relatedInformation:this._convertRelatedInformation(e,t.relatedInformation)}}_convertRelatedInformation(e,t){if(!t)return[];const i=[];return t.forEach(o=>{let n=e;if(o.file&&(n=this._libFiles.getOrCreateModel(o.file.fileName)),!n)return;const c=o.start||0,u=o.length||1,{lineNumber:s,column:l}=n.getPositionAt(c),{lineNumber:g,column:d}=n.getPositionAt(c+u);i.push({resource:n.uri,startLineNumber:s,startColumn:l,endLineNumber:g,endColumn:d,message:D(o.messageText,` `)})}),i}_tsDiagnosticCategoryToMarkerSeverity(e){switch(e){case 1:return a.MarkerSeverity.Error;case 3:return a.MarkerSeverity.Info;case 0:return a.MarkerSeverity.Warning;case 2:return a.MarkerSeverity.Hint}return a.MarkerSeverity.Info}},B=class C extends _{get triggerCharacters(){return["."]}async provideCompletionItems(t,i,o,n){const c=t.getWordUntilPosition(i),u=new a.Range(i.lineNumber,c.startColumn,i.lineNumber,c.endColumn),s=t.uri,l=t.getOffsetAt(i),g=await this._worker(s);if(t.isDisposed())return;const d=await g.getCompletionsAtPosition(s.toString(),l);return!d||t.isDisposed()?void 0:{suggestions:d.entries.map(h=>{let y=u;if(h.replacementSpan){const S=t.getPositionAt(h.replacementSpan.start),x=t.getPositionAt(h.replacementSpan.start+h.replacementSpan.length);y=new a.Range(S.lineNumber,S.column,x.lineNumber,x.column)}const v=[];return h.kindModifiers!==void 0&&h.kindModifiers.indexOf("deprecated")!==-1&&v.push(a.languages.CompletionItemTag.Deprecated),{uri:s,position:i,offset:l,range:y,label:h.name,insertText:h.name,sortText:h.sortText,kind:C.convertKind(h.kind),tags:v}})}}async resolveCompletionItem(t,i){const o=t,n=o.uri,c=o.position,u=o.offset,l=await(await this._worker(n)).getCompletionEntryDetails(n.toString(),u,o.label);return l?{uri:n,position:c,label:l.name,kind:C.convertKind(l.kind),detail:w(l.displayParts),documentation:{value:C.createDocumentationString(l)}}:o}static convertKind(t){switch(t){case f.primitiveType:case f.keyword:return a.languages.CompletionItemKind.Keyword;case f.variable:case f.localVariable:return a.languages.CompletionItemKind.Variable;case f.memberVariable:case f.memberGetAccessor:case f.memberSetAccessor:return a.languages.CompletionItemKind.Field;case f.function:case f.memberFunction:case f.constructSignature:case f.callSignature:case f.indexSignature:return a.languages.CompletionItemKind.Function;case f.enum:return a.languages.CompletionItemKind.Enum;case f.module:return a.languages.CompletionItemKind.Module;case f.class:return a.languages.CompletionItemKind.Class;case f.interface:return a.languages.CompletionItemKind.Interface;case f.warning:return a.languages.CompletionItemKind.File}return a.languages.CompletionItemKind.Property}static createDocumentationString(t){let i=w(t.documentation);if(t.tags)for(const o of t.tags)i+=` ${T(o)}`;return i}};function T(e){let t=`*@${e.name}*`;if(e.name==="param"&&e.text){const[i,...o]=e.text;t+=`\`${i.text}\``,o.length>0&&(t+=` — ${o.map(n=>n.text).join(" ")}`)}else Array.isArray(e.text)?t+=` — ${e.text.map(i=>i.text).join(" ")}`:e.text&&(t+=` — ${e.text}`);return t}var U=class P extends _{constructor(){super(...arguments),this.signatureHelpTriggerCharacters=["(",","]}static _toSignatureHelpTriggerReason(t){switch(t.triggerKind){case a.languages.SignatureHelpTriggerKind.TriggerCharacter:return t.triggerCharacter?t.isRetrigger?{kind:"retrigger",triggerCharacter:t.triggerCharacter}:{kind:"characterTyped",triggerCharacter:t.triggerCharacter}:{kind:"invoked"};case a.languages.SignatureHelpTriggerKind.ContentChange:return t.isRetrigger?{kind:"retrigger"}:{kind:"invoked"};case a.languages.SignatureHelpTriggerKind.Invoke:default:return{kind:"invoked"}}}async provideSignatureHelp(t,i,o,n){const c=t.uri,u=t.getOffsetAt(i),s=await this._worker(c);if(t.isDisposed())return;const l=await s.getSignatureHelpItems(c.toString(),u,{triggerReason:P._toSignatureHelpTriggerReason(n)});if(!l||t.isDisposed())return;const g={activeSignature:l.selectedItemIndex,activeParameter:l.argumentIndex,signatures:[]};return l.items.forEach(d=>{const b={label:"",parameters:[]};b.documentation={value:w(d.documentation)},b.label+=w(d.prefixDisplayParts),d.parameters.forEach((h,y,v)=>{const S=w(h.displayParts),x={label:S,documentation:{value:w(h.documentation)}};b.label+=S,b.parameters.push(x),yT(d)).join(` `):"",g=w(u.displayParts);return{range:this._textSpanToRange(e,u.textSpan),contents:[{value:"```typescript\n"+g+"\n```\n"},{value:s+(l?` `+l:"")}]}}},z=class extends _{async provideDocumentHighlights(e,t,i){const o=e.uri,n=e.getOffsetAt(t),c=await this._worker(o);if(e.isDisposed())return;const u=await c.getDocumentHighlights(o.toString(),n,[o.toString()]);if(!(!u||e.isDisposed()))return u.flatMap(s=>s.highlightSpans.map(l=>({range:this._textSpanToRange(e,l.textSpan),kind:l.kind==="writtenReference"?a.languages.DocumentHighlightKind.Write:a.languages.DocumentHighlightKind.Text})))}},G=class extends _{constructor(e,t){super(t),this._libFiles=e}async provideDefinition(e,t,i){const o=e.uri,n=e.getOffsetAt(t),c=await this._worker(o);if(e.isDisposed())return;const u=await c.getDefinitionAtPosition(o.toString(),n);if(!u||e.isDisposed()||(await this._libFiles.fetchLibFilesIfNecessary(u.map(l=>a.Uri.parse(l.fileName))),e.isDisposed()))return;const s=[];for(let l of u){const g=this._libFiles.getOrCreateModel(l.fileName);g&&s.push({uri:g.uri,range:this._textSpanToRange(g,l.textSpan)})}return s}},J=class extends _{constructor(e,t){super(t),this._libFiles=e}async provideReferences(e,t,i,o){const n=e.uri,c=e.getOffsetAt(t),u=await this._worker(n);if(e.isDisposed())return;const s=await u.getReferencesAtPosition(n.toString(),c);if(!s||e.isDisposed()||(await this._libFiles.fetchLibFilesIfNecessary(s.map(g=>a.Uri.parse(g.fileName))),e.isDisposed()))return;const l=[];for(let g of s){const d=this._libFiles.getOrCreateModel(g.fileName);d&&l.push({uri:d.uri,range:this._textSpanToRange(d,g.textSpan)})}return l}},Q=class extends _{async provideDocumentSymbols(e,t){const i=e.uri,o=await this._worker(i);if(e.isDisposed())return;const n=await o.getNavigationTree(i.toString());if(!n||e.isDisposed())return;const c=(s,l)=>{var d;return{name:s.text,detail:"",kind:m[s.kind]||a.languages.SymbolKind.Variable,range:this._textSpanToRange(e,s.spans[0]),selectionRange:this._textSpanToRange(e,s.spans[0]),tags:[],children:(d=s.childItems)==null?void 0:d.map(b=>c(b,s.text)),containerName:l}};return n.childItems?n.childItems.map(s=>c(s)):[]}},p,f=(p=class{},p.unknown="",p.keyword="keyword",p.script="script",p.module="module",p.class="class",p.interface="interface",p.type="type",p.enum="enum",p.variable="var",p.localVariable="local var",p.function="function",p.localFunction="local function",p.memberFunction="method",p.memberGetAccessor="getter",p.memberSetAccessor="setter",p.memberVariable="property",p.constructorImplementation="constructor",p.callSignature="call",p.indexSignature="index",p.constructSignature="construct",p.parameter="parameter",p.typeParameter="type parameter",p.primitiveType="primitive type",p.label="label",p.alias="alias",p.const="const",p.let="let",p.warning="warning",p),m=Object.create(null);m[f.module]=a.languages.SymbolKind.Module;m[f.class]=a.languages.SymbolKind.Class;m[f.enum]=a.languages.SymbolKind.Enum;m[f.interface]=a.languages.SymbolKind.Interface;m[f.memberFunction]=a.languages.SymbolKind.Method;m[f.memberVariable]=a.languages.SymbolKind.Property;m[f.memberGetAccessor]=a.languages.SymbolKind.Property;m[f.memberSetAccessor]=a.languages.SymbolKind.Property;m[f.variable]=a.languages.SymbolKind.Variable;m[f.const]=a.languages.SymbolKind.Variable;m[f.localVariable]=a.languages.SymbolKind.Variable;m[f.variable]=a.languages.SymbolKind.Variable;m[f.function]=a.languages.SymbolKind.Function;m[f.localFunction]=a.languages.SymbolKind.Function;var k=class extends _{static _convertOptions(e){return{ConvertTabsToSpaces:e.insertSpaces,TabSize:e.tabSize,IndentSize:e.tabSize,IndentStyle:2,NewLineCharacter:` `,InsertSpaceAfterCommaDelimiter:!0,InsertSpaceAfterSemicolonInForStatements:!0,InsertSpaceBeforeAndAfterBinaryOperators:!0,InsertSpaceAfterKeywordsInControlFlowStatements:!0,InsertSpaceAfterFunctionKeywordForAnonymousFunctions:!0,InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,PlaceOpenBraceOnNewLineForControlBlocks:!1,PlaceOpenBraceOnNewLineForFunctions:!1}}_convertTextChanges(e,t){return{text:t.newText,range:this._textSpanToRange(e,t.span)}}},q=class extends k{constructor(){super(...arguments),this.canFormatMultipleRanges=!1}async provideDocumentRangeFormattingEdits(e,t,i,o){const n=e.uri,c=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),u=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),s=await this._worker(n);if(e.isDisposed())return;const l=await s.getFormattingEditsForRange(n.toString(),c,u,k._convertOptions(i));if(!(!l||e.isDisposed()))return l.map(g=>this._convertTextChanges(e,g))}},X=class extends k{get autoFormatTriggerCharacters(){return[";","}",` `]}async provideOnTypeFormattingEdits(e,t,i,o,n){const c=e.uri,u=e.getOffsetAt(t),s=await this._worker(c);if(e.isDisposed())return;const l=await s.getFormattingEditsAfterKeystroke(c.toString(),u,i,k._convertOptions(o));if(!(!l||e.isDisposed()))return l.map(g=>this._convertTextChanges(e,g))}},Y=class extends k{async provideCodeActions(e,t,i,o){const n=e.uri,c=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),u=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),s=k._convertOptions(e.getOptions()),l=i.markers.filter(h=>h.code).map(h=>h.code).map(Number),g=await this._worker(n);if(e.isDisposed())return;const d=await g.getCodeFixesAtPosition(n.toString(),c,u,l,s);return!d||e.isDisposed()?{actions:[],dispose:()=>{}}:{actions:d.filter(h=>h.changes.filter(y=>y.isNewFile).length===0).map(h=>this._tsCodeFixActionToMonacoCodeAction(e,i,h)),dispose:()=>{}}}_tsCodeFixActionToMonacoCodeAction(e,t,i){const o=[];for(const c of i.changes)for(const u of c.textChanges)o.push({resource:e.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(e,u.span),text:u.newText}});return{title:i.description,edit:{edits:o},diagnostics:t.markers,kind:"quickfix"}}},Z=class extends _{constructor(e,t){super(t),this._libFiles=e}async provideRenameEdits(e,t,i,o){const n=e.uri,c=n.toString(),u=e.getOffsetAt(t),s=await this._worker(n);if(e.isDisposed())return;const l=await s.getRenameInfo(c,u,{allowRenameOfImportPath:!1});if(l.canRename===!1)return{edits:[],rejectReason:l.localizedErrorMessage};if(l.fileToRename!==void 0)throw new Error("Renaming files is not supported.");const g=await s.findRenameLocations(c,u,!1,!1,!1);if(!g||e.isDisposed())return;const d=[];for(const b of g){const h=this._libFiles.getOrCreateModel(b.fileName);if(h)d.push({resource:h.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(h,b.textSpan),text:i}});else throw new Error(`Unknown file ${b.fileName}.`)}return{edits:d}}},ee=class extends _{async provideInlayHints(e,t,i){const o=e.uri,n=o.toString(),c=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),u=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),s=await this._worker(o);return e.isDisposed()?null:{hints:(await s.provideInlayHints(n,c,u)).map(d=>({...d,label:d.text,position:e.getPositionAt(d.position),kind:this._convertHintKind(d.kind)})),dispose:()=>{}}}_convertHintKind(e){switch(e){case"Parameter":return a.languages.InlayHintKind.Parameter;case"Type":return a.languages.InlayHintKind.Type;default:return a.languages.InlayHintKind.Type}}},A,F;function re(e){F=L(e,"typescript")}function ie(e){A=L(e,"javascript")}function ne(){return new Promise((e,t)=>{if(!A)return t("JavaScript not registered!");e(A)})}function ae(){return new Promise((e,t)=>{if(!F)return t("TypeScript not registered!");e(F)})}function L(e,t){const i=[],o=new V(t,e),n=(...s)=>o.getLanguageServiceWorker(...s),c=new W(n);function u(){const{modeConfiguration:s}=e;te(i),s.completionItems&&i.push(a.languages.registerCompletionItemProvider(t,new B(n))),s.signatureHelp&&i.push(a.languages.registerSignatureHelpProvider(t,new U(n))),s.hovers&&i.push(a.languages.registerHoverProvider(t,new $(n))),s.documentHighlights&&i.push(a.languages.registerDocumentHighlightProvider(t,new z(n))),s.definitions&&i.push(a.languages.registerDefinitionProvider(t,new G(c,n))),s.references&&i.push(a.languages.registerReferenceProvider(t,new J(c,n))),s.documentSymbols&&i.push(a.languages.registerDocumentSymbolProvider(t,new Q(n))),s.rename&&i.push(a.languages.registerRenameProvider(t,new Z(c,n))),s.documentRangeFormattingEdits&&i.push(a.languages.registerDocumentRangeFormattingEditProvider(t,new q(n))),s.onTypeFormattingEdits&&i.push(a.languages.registerOnTypeFormattingEditProvider(t,new X(n))),s.codeActions&&i.push(a.languages.registerCodeActionProvider(t,new Y(n))),s.inlayHints&&i.push(a.languages.registerInlayHintsProvider(t,new ee(n))),s.diagnostics&&i.push(new j(c,e,t,n))}return u(),n}function te(e){for(;e.length;)e.pop().dispose()}export{_ as Adapter,Y as CodeActionAdaptor,G as DefinitionAdapter,j as DiagnosticsAdapter,z as DocumentHighlightAdapter,q as FormatAdapter,k as FormatHelper,X as FormatOnTypeAdapter,ee as InlayHintsAdapter,f as Kind,W as LibFiles,Q as OutlineAdapter,$ as QuickInfoAdapter,J as ReferenceAdapter,Z as RenameAdapter,U as SignatureHelpAdapter,B as SuggestAdapter,V as WorkerManager,D as flattenDiagnosticMessageText,ne as getJavaScriptWorker,ae as getTypeScriptWorker,ie as setupJavaScript,re as setupTypeScript}; ================================================ FILE: jesse/static/_nuxt/3e1v2bzS.js ================================================ const r=Object.freeze(JSON.parse('{"colors":{"activityBar.activeBorder":"#1085FF","activityBar.background":"#21252B","activityBar.border":"#0D1117","activityBar.foreground":"#C6CCD7","activityBar.inactiveForeground":"#5F6672","activityBarBadge.background":"#E06C75","activityBarBadge.foreground":"#ffffff","breadcrumb.focusForeground":"#C6CCD7","breadcrumb.foreground":"#5F6672","button.background":"#E06C75","button.foreground":"#ffffff","button.hoverBackground":"#E48189","button.secondaryBackground":"#0D1117","button.secondaryForeground":"#ffffff","checkbox.background":"#61AFEF","checkbox.foreground":"#ffffff","contrastBorder":"#0D1117","debugToolBar.background":"#181A1F","diffEditor.border":"#0D1117","diffEditor.diagonalFill":"#0D1117","diffEditor.insertedLineBackground":"#CBF6AC0D","diffEditor.insertedTextBackground":"#CBF6AC1A","diffEditor.removedLineBackground":"#FF9FA80D","diffEditor.removedTextBackground":"#FF9FA81A","dropdown.background":"#181A1F","dropdown.border":"#0D1117","editor.background":"#21252B","editor.findMatchBackground":"#00000000","editor.findMatchBorder":"#1085FF","editor.findMatchHighlightBackground":"#00000000","editor.findMatchHighlightBorder":"#C6CCD7","editor.foreground":"#A9B2C3","editor.lineHighlightBackground":"#A9B2C31A","editor.lineHighlightBorder":"#00000000","editor.linkedEditingBackground":"#0D1117","editor.rangeHighlightBorder":"#C6CCD7","editor.selectionBackground":"#A9B2C333","editor.selectionHighlightBackground":"#A9B2C31A","editor.selectionHighlightBorder":"#C6CCD7","editor.wordHighlightBackground":"#00000000","editor.wordHighlightBorder":"#1085FF","editor.wordHighlightStrongBackground":"#00000000","editor.wordHighlightStrongBorder":"#1085FF","editorBracketHighlight.foreground1":"#A9B2C3","editorBracketHighlight.foreground2":"#61AFEF","editorBracketHighlight.foreground3":"#E5C07B","editorBracketHighlight.foreground4":"#E06C75","editorBracketHighlight.foreground5":"#98C379","editorBracketHighlight.foreground6":"#B57EDC","editorBracketHighlight.unexpectedBracket.foreground":"#D74E42","editorBracketMatch.background":"#00000000","editorBracketMatch.border":"#1085FF","editorCursor.foreground":"#A9B2C3","editorError.foreground":"#D74E42","editorGroup.border":"#0D1117","editorGroup.emptyBackground":"#181A1F","editorGroupHeader.tabsBackground":"#181A1F","editorGutter.addedBackground":"#98C379","editorGutter.deletedBackground":"#E06C75","editorGutter.modifiedBackground":"#D19A66","editorHoverWidget.background":"#181A1F","editorHoverWidget.border":"#1085FF","editorIndentGuide.activeBackground":"#A9B2C333","editorIndentGuide.background":"#0D1117","editorInfo.foreground":"#1085FF","editorInlayHint.background":"#00000000","editorInlayHint.foreground":"#5F6672","editorLightBulb.foreground":"#E9D16C","editorLightBulbAutoFix.foreground":"#1085FF","editorLineNumber.activeForeground":"#C6CCD7","editorLineNumber.foreground":"#5F6672","editorOverviewRuler.addedForeground":"#98C379","editorOverviewRuler.border":"#0D1117","editorOverviewRuler.deletedForeground":"#E06C75","editorOverviewRuler.errorForeground":"#D74E42","editorOverviewRuler.findMatchForeground":"#1085FF","editorOverviewRuler.infoForeground":"#1085FF","editorOverviewRuler.modifiedForeground":"#D19A66","editorOverviewRuler.warningForeground":"#E9D16C","editorRuler.foreground":"#0D1117","editorStickyScroll.background":"#181A1F","editorStickyScrollHover.background":"#21252B","editorSuggestWidget.background":"#181A1F","editorSuggestWidget.border":"#1085FF","editorSuggestWidget.selectedBackground":"#A9B2C31A","editorWarning.foreground":"#E9D16C","editorWhitespace.foreground":"#A9B2C31A","editorWidget.background":"#181A1F","errorForeground":"#D74E42","focusBorder":"#1085FF","gitDecoration.deletedResourceForeground":"#E06C75","gitDecoration.ignoredResourceForeground":"#5F6672","gitDecoration.modifiedResourceForeground":"#D19A66","gitDecoration.untrackedResourceForeground":"#98C379","input.background":"#0D1117","inputOption.activeBorder":"#1085FF","inputValidation.errorBackground":"#D74E42","inputValidation.errorBorder":"#D74E42","inputValidation.infoBackground":"#1085FF","inputValidation.infoBorder":"#1085FF","inputValidation.infoForeground":"#0D1117","inputValidation.warningBackground":"#E9D16C","inputValidation.warningBorder":"#E9D16C","inputValidation.warningForeground":"#0D1117","list.activeSelectionBackground":"#A9B2C333","list.activeSelectionForeground":"#ffffff","list.errorForeground":"#D74E42","list.focusBackground":"#A9B2C333","list.hoverBackground":"#A9B2C31A","list.inactiveFocusOutline":"#5F6672","list.inactiveSelectionBackground":"#A9B2C333","list.inactiveSelectionForeground":"#C6CCD7","list.warningForeground":"#E9D16C","minimap.findMatchHighlight":"#1085FF","minimap.selectionHighlight":"#C6CCD7","minimapGutter.addedBackground":"#98C379","minimapGutter.deletedBackground":"#E06C75","minimapGutter.modifiedBackground":"#D19A66","notificationCenter.border":"#0D1117","notificationCenterHeader.background":"#181A1F","notificationToast.border":"#0D1117","notifications.background":"#181A1F","notifications.border":"#0D1117","panel.background":"#181A1F","panel.border":"#0D1117","panelTitle.inactiveForeground":"#5F6672","peekView.border":"#1085FF","peekViewEditor.background":"#181A1F","peekViewEditor.matchHighlightBackground":"#A9B2C333","peekViewResult.background":"#181A1F","peekViewResult.matchHighlightBackground":"#A9B2C333","peekViewResult.selectionBackground":"#A9B2C31A","peekViewResult.selectionForeground":"#C6CCD7","peekViewTitle.background":"#181A1F","sash.hoverBorder":"#A9B2C333","scrollbar.shadow":"#00000000","scrollbarSlider.activeBackground":"#A9B2C333","scrollbarSlider.background":"#A9B2C31A","scrollbarSlider.hoverBackground":"#A9B2C333","sideBar.background":"#181A1F","sideBar.border":"#0D1117","sideBar.foreground":"#C6CCD7","sideBarSectionHeader.background":"#21252B","statusBar.background":"#21252B","statusBar.border":"#0D1117","statusBar.debuggingBackground":"#21252B","statusBar.debuggingBorder":"#56B6C2","statusBar.debuggingForeground":"#A9B2C3","statusBar.focusBorder":"#A9B2C3","statusBar.foreground":"#A9B2C3","statusBar.noFolderBackground":"#181A1F","statusBarItem.activeBackground":"#0D1117","statusBarItem.errorBackground":"#21252B","statusBarItem.errorForeground":"#D74E42","statusBarItem.focusBorder":"#A9B2C3","statusBarItem.hoverBackground":"#181A1F","statusBarItem.hoverForeground":"#A9B2C3","statusBarItem.remoteBackground":"#21252B","statusBarItem.remoteForeground":"#B57EDC","statusBarItem.warningBackground":"#21252B","statusBarItem.warningForeground":"#E9D16C","tab.activeBackground":"#21252B","tab.activeBorderTop":"#1085FF","tab.activeForeground":"#C6CCD7","tab.border":"#0D1117","tab.inactiveBackground":"#181A1F","tab.inactiveForeground":"#5F6672","tab.lastPinnedBorder":"#A9B2C333","terminal.ansiBlack":"#5F6672","terminal.ansiBlue":"#61AFEF","terminal.ansiBrightBlack":"#5F6672","terminal.ansiBrightBlue":"#61AFEF","terminal.ansiBrightCyan":"#56B6C2","terminal.ansiBrightGreen":"#98C379","terminal.ansiBrightMagenta":"#B57EDC","terminal.ansiBrightRed":"#E06C75","terminal.ansiBrightWhite":"#A9B2C3","terminal.ansiBrightYellow":"#E5C07B","terminal.ansiCyan":"#56B6C2","terminal.ansiGreen":"#98C379","terminal.ansiMagenta":"#B57EDC","terminal.ansiRed":"#E06C75","terminal.ansiWhite":"#A9B2C3","terminal.ansiYellow":"#E5C07B","terminal.foreground":"#A9B2C3","titleBar.activeBackground":"#21252B","titleBar.activeForeground":"#C6CCD7","titleBar.border":"#0D1117","titleBar.inactiveBackground":"#21252B","titleBar.inactiveForeground":"#5F6672","toolbar.hoverBackground":"#A9B2C333","widget.shadow":"#00000000"},"displayName":"Plastic","name":"plastic","semanticHighlighting":true,"semanticTokenColors":{},"tokenColors":[{"scope":["comment","punctuation.definition.comment","source.diff"],"settings":{"foreground":"#5F6672"}},{"scope":["entity.name.function","support.function","meta.diff.range","punctuation.definition.range.diff"],"settings":{"foreground":"#B57EDC"}},{"scope":["keyword","punctuation.definition.keyword","variable.language","markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted","punctuation.definition.from-file.diff"],"settings":{"foreground":"#E06C75"}},{"scope":["constant","support.constant"],"settings":{"foreground":"#56B6C2"}},{"scope":["storage","support.class","entity.name.namespace","meta.diff.header"],"settings":{"foreground":"#61AFEF"}},{"scope":["markup.inline.raw.string","string","markup.inserted","punctuation.definition.inserted","meta.diff.header.to-file","punctuation.definition.to-file.diff"],"settings":{"foreground":"#98C379"}},{"scope":["entity.name.section","entity.name.tag","entity.name.type","support.type"],"settings":{"foreground":"#E5C07B"}},{"scope":["support.type.property-name","support.variable","variable"],"settings":{"foreground":"#C6CCD7"}},{"scope":["entity.other","punctuation.definition.entity","support.other"],"settings":{"foreground":"#D19A66"}},{"scope":["meta.brace","punctuation"],"settings":{"foreground":"#A9B2C3"}},{"scope":["markup.bold","punctuation.definition.bold","entity.other.attribute-name.id"],"settings":{"fontStyle":"bold"}},{"scope":["comment","markup.italic","punctuation.definition.italic"],"settings":{"fontStyle":"italic"}}],"type":"dark"}'));export{r as default}; ================================================ FILE: jesse/static/_nuxt/3kbuJQcV.js ================================================ import e from"./BMYPR7BL.js";import"./ySlJ1b_l.js";import"./BPhBrDlE.js";const a=Object.freeze(JSON.parse(`{"displayName":"jinja-html","firstLineMatch":"^{% extends [\\"'][^\\"']+[\\"'] %}","foldingStartMarker":"(<(?i:(head|table|tr|div|style|script|ul|ol|form|dl))\\\\b.*?>|{%\\\\s*(block|filter|for|if|macro|raw))","foldingStopMarker":"(|{%\\\\s*(endblock|endfilter|endfor|endif|endmacro|endraw)\\\\s*%})","name":"jinja-html","patterns":[{"include":"source.jinja"},{"include":"text.html.basic"}],"scopeName":"text.html.jinja","embeddedLangs":["html"]}`)),n=[...e,a],t=Object.freeze(JSON.parse(`{"displayName":"Jinja","foldingStartMarker":"({%\\\\s*(block|filter|for|if|macro|raw))","foldingStopMarker":"({%\\\\s*(endblock|endfilter|endfor|endif|endmacro|endraw)\\\\s*%})","name":"jinja","patterns":[{"begin":"({%)\\\\s*(raw)\\\\s*(%})","captures":{"1":{"name":"entity.other.jinja.delimiter.tag"},"2":{"name":"keyword.control.jinja"},"3":{"name":"entity.other.jinja.delimiter.tag"}},"end":"({%)\\\\s*(endraw)\\\\s*(%})","name":"comment.block.jinja.raw"},{"include":"#comments"},{"begin":"{{-?","captures":[{"name":"variable.entity.other.jinja.delimiter"}],"end":"-?}}","name":"variable.meta.scope.jinja","patterns":[{"include":"#expression"}]},{"begin":"{%-?","captures":[{"name":"entity.other.jinja.delimiter.tag"}],"end":"-?%}","name":"meta.scope.jinja.tag","patterns":[{"include":"#expression"}]}],"repository":{"comments":{"begin":"{#-?","captures":[{"name":"entity.other.jinja.delimiter.comment"}],"end":"-?#}","name":"comment.block.jinja","patterns":[{"include":"#comments"}]},"escaped_char":{"match":"\\\\\\\\x[0-9A-F]{2}","name":"constant.character.escape.hex.jinja"},"escaped_unicode_char":{"captures":{"1":{"name":"constant.character.escape.unicode.16-bit-hex.jinja"},"2":{"name":"constant.character.escape.unicode.32-bit-hex.jinja"},"3":{"name":"constant.character.escape.unicode.name.jinja"}},"match":"(\\\\\\\\U[0-9A-Fa-f]{8})|(\\\\\\\\u[0-9A-Fa-f]{4})|(\\\\\\\\N\\\\{[a-zA-Z ]+\\\\})"},"expression":{"patterns":[{"captures":{"1":{"name":"keyword.control.jinja"},"2":{"name":"variable.other.jinja.block"}},"match":"\\\\s*\\\\b(block)\\\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\\\b"},{"captures":{"1":{"name":"keyword.control.jinja"},"2":{"name":"variable.other.jinja.filter"}},"match":"\\\\s*\\\\b(filter)\\\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\\\b"},{"captures":{"1":{"name":"keyword.control.jinja"},"2":{"name":"variable.other.jinja.test"}},"match":"\\\\s*\\\\b(is)\\\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\\\b"},{"captures":{"1":{"name":"keyword.control.jinja"}},"match":"(?<=\\\\{\\\\%-|\\\\{\\\\%)\\\\s*\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\b(?!\\\\s*[,=])"},{"match":"\\\\b(and|else|if|in|import|not|or|recursive|with(out)?\\\\s+context)\\\\b","name":"keyword.control.jinja"},{"match":"\\\\b(true|false|none)\\\\b","name":"constant.language.jinja"},{"match":"\\\\b(loop|super|self|varargs|kwargs)\\\\b","name":"variable.language.jinja"},{"match":"[a-zA-Z_][a-zA-Z0-9_]*","name":"variable.other.jinja"},{"match":"(\\\\+|\\\\-|\\\\*\\\\*|\\\\*|//|/|%)","name":"keyword.operator.arithmetic.jinja"},{"captures":{"1":{"name":"punctuation.other.jinja"},"2":{"name":"variable.other.jinja.filter"}},"match":"(\\\\|)([a-zA-Z_][a-zA-Z0-9_]*)"},{"captures":{"1":{"name":"punctuation.other.jinja"},"2":{"name":"variable.other.jinja.attribute"}},"match":"(\\\\.)([a-zA-Z_][a-zA-Z0-9_]*)"},{"begin":"\\\\[","captures":[{"name":"punctuation.other.jinja"}],"end":"\\\\]","patterns":[{"include":"#expression"}]},{"begin":"\\\\(","captures":[{"name":"punctuation.other.jinja"}],"end":"\\\\)","patterns":[{"include":"#expression"}]},{"begin":"\\\\{","captures":[{"name":"punctuation.other.jinja"}],"end":"\\\\}","patterns":[{"include":"#expression"}]},{"match":"(\\\\.|:|\\\\||,)","name":"punctuation.other.jinja"},{"match":"(==|<=|=>|<|>|!=)","name":"keyword.operator.comparison.jinja"},{"match":"=","name":"keyword.operator.assignment.jinja"},{"begin":"\\"","beginCaptures":[{"name":"punctuation.definition.string.begin.jinja"}],"end":"\\"","endCaptures":[{"name":"punctuation.definition.string.end.jinja"}],"name":"string.quoted.double.jinja","patterns":[{"include":"#string"}]},{"begin":"'","beginCaptures":[{"name":"punctuation.definition.string.begin.jinja"}],"end":"'","endCaptures":[{"name":"punctuation.definition.string.end.jinja"}],"name":"string.quoted.single.jinja","patterns":[{"include":"#string"}]},{"begin":"@/","beginCaptures":[{"name":"punctuation.definition.regexp.begin.jinja"}],"end":"/","endCaptures":[{"name":"punctuation.definition.regexp.end.jinja"}],"name":"string.regexp.jinja","patterns":[{"include":"#simple_escapes"}]}]},"simple_escapes":{"captures":{"1":{"name":"constant.character.escape.newline.jinja"},"2":{"name":"constant.character.escape.backlash.jinja"},"3":{"name":"constant.character.escape.double-quote.jinja"},"4":{"name":"constant.character.escape.single-quote.jinja"},"5":{"name":"constant.character.escape.bell.jinja"},"6":{"name":"constant.character.escape.backspace.jinja"},"7":{"name":"constant.character.escape.formfeed.jinja"},"8":{"name":"constant.character.escape.linefeed.jinja"},"9":{"name":"constant.character.escape.return.jinja"},"10":{"name":"constant.character.escape.tab.jinja"},"11":{"name":"constant.character.escape.vertical-tab.jinja"}},"match":"(\\\\\\\\\\\\n)|(\\\\\\\\\\\\\\\\)|(\\\\\\\\\\\\\\")|(\\\\\\\\')|(\\\\\\\\a)|(\\\\\\\\b)|(\\\\\\\\f)|(\\\\\\\\n)|(\\\\\\\\r)|(\\\\\\\\t)|(\\\\\\\\v)"},"string":{"patterns":[{"include":"#simple_escapes"},{"include":"#escaped_char"},{"include":"#escaped_unicode_char"}]}},"scopeName":"source.jinja","embeddedLangs":["jinja-html"]}`)),s=[...n,t];export{s as default}; ================================================ FILE: jesse/static/_nuxt/3xVqZejG.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"Berry","name":"berry","patterns":[{"include":"#controls"},{"include":"#strings"},{"include":"#comment-block"},{"include":"#comments"},{"include":"#keywords"},{"include":"#function"},{"include":"#member"},{"include":"#identifier"},{"include":"#number"},{"include":"#operator"}],"repository":{"comment-block":{"begin":"\\\\#\\\\-","end":"\\\\-#","name":"comment.berry","patterns":[{}]},"comments":{"begin":"\\\\#","end":"\\\\n","name":"comment.line.berry","patterns":[{}]},"controls":{"patterns":[{"match":"\\\\b(if|elif|else|for|while|do|end|break|continue|return|try|except|raise)\\\\b","name":"keyword.control.berry"}]},"function":{"patterns":[{"match":"\\\\b([a-zA-Z_][a-zA-Z0-9_]*(?=\\\\s*\\\\())","name":"entity.name.function.berry"}]},"identifier":{"patterns":[{"match":"\\\\b[_A-Za-z]\\\\w+\\\\b","name":"identifier.berry"}]},"keywords":{"patterns":[{"match":"\\\\b(var|static|def|class|true|false|nil|self|super|import|as|_class)\\\\b","name":"keyword.berry"}]},"member":{"patterns":[{"captures":{"0":{"name":"entity.other.attribute-name.berry"}},"match":"\\\\.([a-zA-Z_][a-zA-Z0-9_]*)"}]},"number":{"patterns":[{"match":"0x[a-fA-F0-9]+|\\\\d+|(\\\\d+\\\\.?|\\\\.\\\\d)\\\\d*([eE][+-]?\\\\d+)?","name":"constant.numeric.berry"}]},"operator":{"patterns":[{"match":"\\\\(|\\\\)|\\\\[|\\\\]|\\\\.|-|\\\\!|~|\\\\*|/|%|\\\\+|&|\\\\^|\\\\||<|>|=|:","name":"keyword.operator.berry"}]},"strings":{"patterns":[{"begin":"(\\"|')","end":"\\\\1","name":"string.quoted.double.berry","patterns":[{"match":"(\\\\\\\\x[\\\\h]{2})|(\\\\\\\\[0-7]{3})|(\\\\\\\\\\\\\\\\)|(\\\\\\\\\\")|(\\\\\\\\')|(\\\\\\\\a)|(\\\\\\\\b)|(\\\\\\\\f)|(\\\\\\\\n)|(\\\\\\\\r)|(\\\\\\\\t)|(\\\\\\\\v)","name":"constant.character.escape.berry"}]},{"begin":"f(\\"|')","end":"\\\\1","name":"string.quoted.other.berry","patterns":[{"match":"(\\\\\\\\x[\\\\h]{2})|(\\\\\\\\[0-7]{3})|(\\\\\\\\\\\\\\\\)|(\\\\\\\\\\")|(\\\\\\\\')|(\\\\\\\\a)|(\\\\\\\\b)|(\\\\\\\\f)|(\\\\\\\\n)|(\\\\\\\\r)|(\\\\\\\\t)|(\\\\\\\\v)","name":"constant.character.escape.berry"},{"match":"\\\\{\\\\{[^\\\\}]*\\\\}\\\\}","name":"string.quoted.other.berry"},{"begin":"\\\\{","end":"\\\\}","name":"keyword.other.unit.berry","patterns":[{"include":"#keywords"},{"include":"#numbers"},{"include":"#identifier"},{"include":"#operator"},{"include":"#member"},{"include":"#function"}]}]}]}},"scopeName":"source.berry","aliases":["be"]}`)),r=[e];export{r as default}; ================================================ FILE: jesse/static/_nuxt/5LuOXUq_.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"Windows Registry Script","fileTypes":["reg","REG"],"name":"reg","patterns":[{"match":"Windows Registry Editor Version 5\\\\.00|REGEDIT4","name":"keyword.control.import.reg"},{"captures":{"1":{"name":"punctuation.definition.comment.reg"}},"match":"(;).*$","name":"comment.line.semicolon.reg"},{"captures":{"1":{"name":"punctuation.definition.section.reg"},"2":{"name":"entity.section.reg"},"3":{"name":"punctuation.definition.section.reg"}},"match":"^\\\\s*(\\\\[(?!-))(.*?)(\\\\])","name":"entity.name.function.section.add.reg"},{"captures":{"1":{"name":"punctuation.definition.section.reg"},"2":{"name":"entity.section.reg"},"3":{"name":"punctuation.definition.section.reg"}},"match":"^\\\\s*(\\\\[-)(.*?)(\\\\])","name":"entity.name.function.section.delete.reg"},{"captures":{"2":{"name":"punctuation.definition.quote.reg"},"3":{"name":"support.function.regname.ini"},"4":{"name":"punctuation.definition.quote.reg"},"5":{"name":"punctuation.definition.equals.reg"},"7":{"name":"keyword.operator.arithmetic.minus.reg"},"9":{"name":"punctuation.definition.quote.reg"},"10":{"name":"string.name.regdata.reg"},"11":{"name":"punctuation.definition.quote.reg"},"13":{"name":"support.type.dword.reg"},"14":{"name":"keyword.operator.arithmetic.colon.reg"},"15":{"name":"constant.numeric.dword.reg"},"17":{"name":"support.type.dword.reg"},"18":{"name":"keyword.operator.arithmetic.parenthesis.reg"},"19":{"name":"keyword.operator.arithmetic.parenthesis.reg"},"20":{"name":"constant.numeric.hex.size.reg"},"21":{"name":"keyword.operator.arithmetic.parenthesis.reg"},"22":{"name":"keyword.operator.arithmetic.colon.reg"},"23":{"name":"constant.numeric.hex.reg"},"24":{"name":"keyword.operator.arithmetic.linecontinuation.reg"},"25":{"name":"comment.declarationline.semicolon.reg"}},"match":"^(\\\\s*([\\"']?)(.+?)([\\"']?)\\\\s*(=))?\\\\s*((-)|(([\\"'])(.*?)([\\"']))|(((?i:dword))(\\\\:)\\\\s*([\\\\dabcdefABCDEF]{1,8}))|(((?i:hex))((\\\\()([\\\\d]*)(\\\\)))?(\\\\:)(.*?)(\\\\\\\\?)))\\\\s*(;.*)?$","name":"meta.declaration.reg"},{"match":"[0-9]+","name":"constant.numeric.reg"},{"match":"[a-fA-F]+","name":"constant.numeric.hex.reg"},{"match":",+","name":"constant.numeric.hex.comma.reg"},{"match":"\\\\\\\\","name":"keyword.operator.arithmetic.linecontinuation.reg"}],"scopeName":"source.reg"}`)),n=[e];export{n as default}; ================================================ FILE: jesse/static/_nuxt/727ZlQH0.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"Ada","name":"ada","patterns":[{"include":"#library_unit"},{"include":"#comment"},{"include":"#use_clause"},{"include":"#with_clause"},{"include":"#pragma"},{"include":"#keyword"}],"repository":{"abort_statement":{"begin":"(?i)\\\\babort\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.statement.abort.ada","patterns":[{"match":",","name":"punctuation.ada"},{"match":"\\\\b(\\\\w|\\\\d|\\\\.|_)+\\\\b","name":"entity.name.task.ada"}]},"accept_statement":{"begin":"(?i)\\\\b(accept)\\\\s+((?:\\\\w|\\\\d|\\\\.|_)+)\\\\b","beginCaptures":{"1":{"name":"keyword.control.ada"},"2":{"name":"entity.name.accept.ada"}},"end":"(?i)(?:\\\\b(end)\\\\s*(\\\\s\\\\2)?\\\\s*)?(;)","endCaptures":{"1":{"name":"keyword.control.ada"},"2":{"name":"entity.name.accept.ada"},"3":{"name":"punctuation.ada"}},"name":"meta.statement.accept.ada","patterns":[{"begin":"(?i)\\\\bdo\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)\\\\b(?=end)\\\\b","patterns":[{"include":"#statement"}]},{"include":"#parameter_profile"}]},"access_definition":{"captures":{"1":{"name":"storage.visibility.ada"},"2":{"name":"storage.visibility.ada"},"3":{"name":"storage.modifier.ada"},"4":{"name":"entity.name.type.ada"}},"match":"(?i)(not\\\\s+null\\\\s+)?(access)\\\\s+(constant\\\\s+)?((?:\\\\w|\\\\d|\\\\.|_)+)\\\\b","name":"meta.declaration.access.definition.ada"},"access_type_definition":{"begin":"(?i)\\\\b(not\\\\s+null\\\\s+)?(access)\\\\b","beginCaptures":{"1":{"name":"storage.visibility.ada"},"2":{"name":"storage.visibility.ada"}},"end":"(?i)(?=(with|;))","name":"meta.declaration.type.definition.access.ada","patterns":[{"match":"(?i)\\\\ball\\\\b","name":"storage.visibility.ada"},{"match":"(?i)\\\\bconstant\\\\b","name":"storage.modifier.ada"},{"include":"#subtype_mark"}]},"actual_parameter_part":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.ada"}},"end":"\\\\)","patterns":[{"match":",","name":"punctuation.ada"},{"include":"#parameter_association"}]},"adding_operator":{"match":"(\\\\+|-|\\\\&)","name":"keyword.operator.adding.ada"},"array_aggregate":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.ada"}},"end":"\\\\)","name":"meta.definition.array.aggregate.ada","patterns":[{"match":",","name":"punctuation.ada"},{"include":"#positional_array_aggregate"},{"include":"#array_component_association"}]},"array_component_association":{"captures":{"1":{"name":"variable.name.ada"},"2":{"name":"keyword.other.ada"},"3":{"patterns":[{"match":"<>","name":"keyword.modifier.unknown.ada"},{"include":"#expression"}]}},"match":"(?i)\\\\b([^(=>)]*)\\\\s*(=>)\\\\s*([^,\\\\)]+)","name":"meta.definition.array.aggregate.component.ada"},"array_dimensions":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.ada"}},"end":"\\\\)","name":"meta.declaration.type.definition.array.dimensions.ada","patterns":[{"match":",","name":"punctuation.ada"},{"match":"(?i)\\\\brange\\\\b","name":"storage.modifier.ada"},{"match":"<>","name":"keyword.modifier.unknown.ada"},{"match":"\\\\.\\\\.","name":"keyword.ada"},{"include":"#expression"},{"patterns":[{"include":"#subtype_mark"}]}]},"array_type_definition":{"begin":"(?i)\\\\barray\\\\b","beginCaptures":{"0":{"name":"storage.modifier.ada"}},"end":"(?i)(?=(with|;))","name":"meta.declaration.type.definition.array.ada","patterns":[{"include":"#array_dimensions"},{"match":"(?i)\\\\bof\\\\b","name":"storage.modifier.ada"},{"match":"(?i)\\\\baliased\\\\b","name":"storage.visibility.ada"},{"include":"#access_definition"},{"include":"#subtype_mark"}]},"aspect_clause":{"begin":"(?i)\\\\b(for)\\\\b","beginCaptures":{"1":{"name":"keyword.ada"},"2":{"patterns":[{"include":"#subtype_mark"}]},"3":{"name":"punctuation.ada"},"5":{"name":"keyword.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.aspect.clause.ada","patterns":[{"begin":"(?i)\\\\buse\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?=;)","endCaptures":{"0":{"name":"punctuation.ada"}},"patterns":[{"include":"#record_representation_clause"},{"include":"#array_aggregate"},{"include":"#expression"}]},{"begin":"(?i)(?<=for)","captures":{"0":{"name":"keyword.ada"}},"end":"(?i)(?=use)","patterns":[{"captures":{"1":{"patterns":[{"include":"#subtype_mark"}]},"2":{"patterns":[{"include":"#attribute"}]}},"match":"((?:\\\\w|\\\\d|_)+)('((?:\\\\w|\\\\d|_)+))?"}]}]},"aspect_definition":{"begin":"=>","beginCaptures":{"0":{"name":"keyword.other.ada"}},"end":"(?i)(?=(,|;|\\\\bis\\\\b))","name":"meta.aspect.definition.ada","patterns":[{"include":"#expression"}]},"aspect_mark":{"captures":{"1":{"name":"keyword.control.directive.ada"},"2":{"name":"punctuation.ada"},"3":{"name":"entity.other.attribute-name.ada"}},"match":"(?i)\\\\b((?:\\\\w|\\\\d|\\\\.|_)+)(?:(')(class))?\\\\b","name":"meta.aspect.mark.ada"},"aspect_specification":{"begin":"(?i)\\\\bwith\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)(?=(;|\\\\bis\\\\b))","name":"meta.aspect.specification.ada","patterns":[{"match":",","name":"punctuation.ada"},{"captures":{"1":{"name":"storage.modifier.ada"},"2":{"name":"storage.modifier.ada"}},"match":"(?i)\\\\b(null)\\\\s+(record)\\\\b"},{"begin":"(?i)\\\\brecord\\\\b","beginCaptures":{"0":{"name":"storage.modifier.ada"}},"end":"(?i)\\\\b(end)\\\\s+(record)\\\\b","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"storage.modifier.ada"}},"patterns":[{"include":"#component_item"}]},{"captures":{"0":{"name":"storage.visibility.ada"}},"match":"(?i)\\\\bprivate\\\\b"},{"include":"#aspect_definition"},{"include":"#aspect_mark"},{"include":"#comment"}]},"assignment_statement":{"begin":"\\\\b((?:\\\\w|\\\\d|\\\\.|_|\\\\(|\\\\)|\\"|'|\\\\s)+)\\\\s*(:=)","beginCaptures":{"1":{"patterns":[{"match":"((?:\\\\w|\\\\d|\\\\.|_)+)","name":"variable.name.ada"},{"begin":"\\\\(","captures":{"0":{"name":"punctuation.ada"}},"end":"\\\\)","patterns":[{"include":"#expression"}]}]},"2":{"name":"keyword.operator.new.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.statement.assignment.ada","patterns":[{"include":"#expression"},{"include":"#comment"}]},"attribute":{"captures":{"1":{"name":"punctuation.ada"},"2":{"name":"entity.other.attribute-name.ada"}},"match":"(')((?:\\\\w|\\\\d|_)+)\\\\b","name":"meta.attribute.ada"},"based_literal":{"captures":{"1":{"name":"constant.numeric.base.ada"},"2":{"name":"punctuation.ada"},"3":{"name":"punctuation.ada"},"4":{"name":"punctuation.radix-point.ada"},"5":{"name":"punctuation.ada"},"6":{"name":"constant.numeric.base.ada"},"7":{"patterns":[{"include":"#exponent_part"}]}},"match":"(?i)(\\\\d(?:(_)?\\\\d)*#)[0-9a-f](?:(_)?[0-9a-f])*(?:(\\\\.)[0-9a-f](?:(_)?[0-9a-f])*)?(#)([eE](?:\\\\+|\\\\-)?\\\\d(?:_?\\\\d)*)?","name":"constant.numeric.ada"},"basic_declaration":{"patterns":[{"include":"#type_declaration"},{"include":"#subtype_declaration"},{"include":"#exception_declaration"},{"include":"#object_declaration"},{"include":"#single_protected_declaration"},{"include":"#single_task_declaration"},{"include":"#subprogram_specification"},{"include":"#package_declaration"},{"include":"#pragma"},{"include":"#comment"}]},"basic_declarative_item":{"patterns":[{"include":"#basic_declaration"},{"include":"#aspect_clause"},{"include":"#use_clause"},{"include":"#keyword"}]},"block_statement":{"begin":"(?i)\\\\bdeclare\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(end)(\\\\s+(?:\\\\w|\\\\d|_)+)?\\\\s*(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.label.ada"},"3":{"name":"punctuation.ada"}},"name":"meta.statement.block.ada","patterns":[{"begin":"(?i)(?<=declare)","end":"(?i)\\\\bbegin\\\\b","endCaptures":{"0":{"name":"keyword.ada"}},"patterns":[{"include":"#body"},{"include":"#basic_declarative_item"}]},{"begin":"(?i)(?<=begin)","end":"(?i)(?=end)","patterns":[{"include":"#statement"}]}]},"body":{"patterns":[{"include":"#subprogram_body"},{"include":"#package_body"},{"include":"#task_body"},{"include":"#protected_body"}]},"case_statement":{"begin":"(?i)\\\\bcase\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)\\\\b(end)\\\\s+(case)\\\\s*(;)","endCaptures":{"1":{"name":"keyword.control.ada"},"2":{"name":"keyword.control.ada"},"3":{"name":"punctuation.ada"}},"name":"meta.statement.case.ada","patterns":[{"begin":"(?i)(?<=case)\\\\b","end":"(?i)\\\\bis\\\\b","endCaptures":{"0":{"name":"keyword.control.ada"}},"patterns":[{"include":"#expression"}]},{"begin":"(?i)\\\\bwhen\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"=>","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.statement.case.alternative.ada","patterns":[{"match":"(?i)\\\\bothers\\\\b","name":"keyword.modifier.unknown.ada"},{"match":"\\\\|","name":"punctuation.ada"},{"include":"#expression"}]},{"include":"#statement"}]},"character_literal":{"captures":{"0":{"patterns":[{"match":"'","name":"punctuation.definition.string.ada"}]}},"match":"'.'","name":"string.quoted.single.ada"},"comment":{"patterns":[{"include":"#preprocessor"},{"include":"#comment-section"},{"include":"#comment-doc"},{"include":"#comment-line"}]},"comment-doc":{"captures":{"1":{"name":"comment.line.double-dash.ada"},"2":{"name":"punctuation.definition.tag.ada"},"3":{"name":"entity.name.tag.ada"},"4":{"name":"comment.line.double-dash.ada"}},"match":"(--)\\\\s*(@)(\\\\w+)\\\\s+(.*)$","name":"comment.block.documentation.ada"},"comment-line":{"match":"--.*$","name":"comment.line.double-dash.ada"},"comment-section":{"captures":{"1":{"name":"entity.name.section.ada"}},"match":"--\\\\s*([^-].*?[^-])\\\\s*--\\\\s*$","name":"comment.line.double-dash.ada"},"component_clause":{"begin":"(?i)\\\\b((?:\\\\w|\\\\d|_)+)\\\\b","beginCaptures":{"0":{"name":"variable.name.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.aspect.clause.record.representation.component.ada","patterns":[{"begin":"(?i)\\\\bat\\\\b","beginCaptures":{"0":{"name":"storage.modifier.ada"}},"end":"(?i)\\\\b(?=range)\\\\b","patterns":[{"include":"#expression"}]},{"include":"#range_constraint"}]},"component_declaration":{"begin":"(?i)\\\\b((?:\\\\w|\\\\d|_)+(?:\\\\s*,\\\\s*(?:\\\\w|\\\\d|_)+)?)\\\\s*(:)","beginCaptures":{"1":{"patterns":[{"match":",","name":"punctuation.ada"},{"match":"\\\\b(\\\\w|\\\\d|_)+\\\\b","name":"variable.name.ada"}]},"2":{"name":"punctuation.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.declaration.type.definition.record.component.ada","patterns":[{"patterns":[{"match":":=","name":"keyword.operator.new.ada"},{"include":"#expression"}]},{"include":"#component_definition"}]},"component_definition":{"patterns":[{"match":"(?i)\\\\baliased\\\\b","name":"storage.visibility.ada"},{"match":"(?i)\\\\brange\\\\b","name":"storage.modifier.ada"},{"match":"\\\\.\\\\.","name":"keyword.ada"},{"include":"#access_definition"},{"include":"#subtype_mark"}]},"component_item":{"patterns":[{"include":"#component_declaration"},{"include":"#variant_part"},{"include":"#comment"},{"include":"#aspect_clause"},{"captures":{"1":{"name":"keyword.ada"},"2":{"name":"punctuation.ada"}},"match":"(?i)\\\\b(null)\\\\s*(;)"}]},"composite_constraint":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.ada"}},"end":"\\\\)","name":"meta.declaration.constraint.composite.ada","patterns":[{"match":",","name":"punctuation.ada"},{"match":"\\\\.\\\\.","name":"keyword.ada"},{"captures":{"1":{"name":"variable.name.ada"},"2":{"name":"keyword.other.ada"},"3":{"patterns":[{"include":"#expression"}]}},"match":"(?i)\\\\b((?:\\\\w|\\\\d|_)+)\\\\s*(=>)\\\\s*([^,\\\\)])+\\\\b"},{"include":"#expression"}]},"decimal_literal":{"captures":{"1":{"name":"punctuation.ada"},"2":{"name":"punctuation.radix-point.ada"},"3":{"name":"punctuation.ada"},"4":{"patterns":[{"include":"#exponent_part"}]}},"match":"\\\\d(?:(_)?\\\\d)*(?:(\\\\.)\\\\d(?:(_)?\\\\d)*)?([eE](?:\\\\+|\\\\-)?\\\\d(?:_?\\\\d)*)?","name":"constant.numeric.ada"},"declarative_item":{"patterns":[{"include":"#body"},{"include":"#basic_declarative_item"}]},"delay_relative_statement":{"begin":"(?i)\\\\b(delay)\\\\b","beginCaptures":{"1":{"name":"keyword.control.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"patterns":[{"include":"#expression"}]},"delay_statement":{"patterns":[{"include":"#delay_until_statement"},{"include":"#delay_relative_statement"}]},"delay_until_statement":{"begin":"(?i)\\\\b(delay)\\\\s+(until)\\\\b","beginCaptures":{"1":{"name":"keyword.control.ada"},"2":{"name":"keyword.control.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.statement.delay.until.ada","patterns":[{"include":"#expression"}]},"derived_type_definition":{"name":"meta.declaration.type.definition.derived.ada","patterns":[{"begin":"(?i)\\\\bnew\\\\b","beginCaptures":{"0":{"name":"storage.modifier.ada"}},"end":"(?i)(?=(\\\\bwith\\\\b|;))","patterns":[{"match":"(?i)\\\\band\\\\b","name":"storage.modifier.ada"},{"include":"#subtype_mark"}]},{"match":"(?i)\\\\b(abstract|and|limited|tagged)\\\\b","name":"storage.modifier.ada"},{"match":"(?i)\\\\bprivate\\\\b","name":"storage.visibility.ada"},{"include":"#subtype_mark"}]},"discriminant_specification":{"begin":"(?i)\\\\b((?:\\\\w|\\\\d|_)+(?:\\\\s*,\\\\s*(?:\\\\w|\\\\d|_)+)?)\\\\s*(:)","beginCaptures":{"1":{"patterns":[{"match":",","name":"punctuation.ada"},{"match":"\\\\b(\\\\w|\\\\d|_)+\\\\b","name":"variable.name.ada"}]},"2":{"name":"punctuation.ada"}},"end":"(?=(;|\\\\)))","patterns":[{"begin":":=","beginCaptures":{"0":{"name":"keyword.operator.new.ada"}},"end":"(?=(;|\\\\)))","patterns":[{"include":"#expression"}]},{"captures":{"1":{"name":"storage.visibility.ada"},"2":{"patterns":[{"include":"#subtype_mark"}]}},"match":"(?i)(not\\\\s+null\\\\s+)?((?:\\\\w|\\\\d|\\\\.|_)+)\\\\b"},{"include":"#access_definition"}]},"entry_body":{"begin":"(?i)\\\\b(entry)\\\\s+((?:\\\\w|\\\\d|_)+)\\\\b","beginCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.entry.ada"}},"end":"(?i)\\\\b(end)\\\\s*(\\\\s\\\\2)\\\\s*(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.entry.ada"},"3":{"name":"punctuation.ada"}},"patterns":[{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(?=begin)\\\\b","patterns":[{"include":"#declarative_item"}]},{"begin":"(?i)\\\\bbegin\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(?=end)\\\\b","patterns":[{"include":"#statement"}]},{"begin":"(?i)\\\\bwhen\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(?=is)\\\\b","patterns":[{"include":"#expression"}]},{"include":"#parameter_profile"}]},"entry_declaration":{"begin":"(?i)\\\\b(?:(not)?\\\\s+(overriding)\\\\s+)?(entry)\\\\s+((?:\\\\w|\\\\d|_)+)\\\\b","beginCaptures":{"1":{"name":"storage.modifier.ada"},"2":{"name":"storage.modifier.ada"},"3":{"name":"keyword.ada"},"4":{"name":"entity.name.entry.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"patterns":[{"include":"#parameter_profile"}]},"enumeration_type_definition":{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.ada"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.declaration.type.definition.enumeration.ada","patterns":[{"match":",","name":"punctuation.ada"},{"match":"\\\\b(\\\\w|\\\\d|_)+\\\\b","name":"variable.name.ada"},{"include":"#comment"}]},"exception_declaration":{"begin":"(?i)\\\\b((?:\\\\w|\\\\d|_)+(?:\\\\s*,\\\\s*(?:\\\\w|\\\\d|_)+)?)\\\\s*(:)\\\\s*(exception)","beginCaptures":{"1":{"patterns":[{"match":",","name":"punctuation.ada"},{"match":"\\\\b(\\\\w|\\\\d|_)+\\\\b","name":"entity.name.exception.ada"}]},"2":{"name":"punctuation.ada"},"3":{"name":"storage.type.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.declaration.exception.ada","patterns":[{"match":"(?i)\\\\b(renames)\\\\s+((\\\\w|\\\\d|_|\\\\.)+)","name":"entity.name.exception.ada"}]},"exit_statement":{"begin":"(?i)\\\\bexit\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.statement.exit.ada","patterns":[{"begin":"(?i)\\\\bwhen\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?=;)","patterns":[{"include":"#expression"}]},{"match":"(?:\\\\w|\\\\d|_)+","name":"entity.name.label.ada"}]},"exponent_part":{"captures":{"1":{"name":"punctuation.exponent-mark.ada"},"2":{"name":"keyword.operator.unary.ada"},"3":{"name":"punctuation.ada"}},"match":"([eE])(\\\\+|\\\\-)?\\\\d(?:(_)?\\\\d)*"},"expression":{"name":"meta.expression.ada","patterns":[{"match":"(?i)\\\\bnull\\\\b","name":"constant.language.ada"},{"match":"=>(\\\\+)?","name":"keyword.other.ada"},{"begin":"\\\\(","captures":{"0":{"name":"punctuation.ada"}},"end":"\\\\)","patterns":[{"include":"#expression"}]},{"match":",","name":"punctuation.ada"},{"match":"\\\\.\\\\.","name":"keyword.ada"},{"include":"#value"},{"include":"#attribute"},{"include":"#comment"},{"include":"#operator"},{"match":"(?i)\\\\b(and|or|xor)\\\\b","name":"keyword.ada"},{"match":"(?i)\\\\b(if|then|else|elsif|in|for|(?","endCaptures":{"0":{"name":"keyword.other.ada"}},"patterns":[{"include":"#expression"}]},"handled_sequence_of_statements":{"patterns":[{"begin":"(?i)\\\\bexception\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(?=end)\\\\b","name":"meta.handler.exception.ada","patterns":[{"begin":"(?i)\\\\bwhen\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"=>","endCaptures":{"0":{"name":"keyword.other.ada"}},"patterns":[{"captures":{"1":{"name":"variable.name.ada"},"2":{"name":"punctuation.ada"}},"match":"\\\\b((?:\\\\w|\\\\d|\\\\.|_)+)\\\\s*(:)"},{"match":"\\\\|","name":"punctuation.ada"},{"match":"(?i)\\\\bothers\\\\b","name":"keyword.ada"},{"match":"(?:\\\\w|\\\\d|\\\\.|_)+","name":"entity.name.exception.ada"}]},{"include":"#statement"}]},{"include":"#statement"}]},"highest_precedence_operator":{"match":"(?i)(\\\\*\\\\*|\\\\babs\\\\b|\\\\bnot\\\\b)","name":"keyword.operator.highest-precedence.ada"},"if_statement":{"begin":"(?i)\\\\bif\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)\\\\b(end)\\\\s+(if)\\\\s*(;)","endCaptures":{"1":{"name":"keyword.control.ada"},"2":{"name":"keyword.control.ada"},"3":{"name":"punctuation.ada"}},"name":"meta.statement.if.ada","patterns":[{"begin":"(?i)\\\\belsif\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)(?:(?","name":"keyword.modifier.unknown.ada"},{"match":"(\\\\+|-|\\\\*|/)","name":"keyword.operator.arithmetic.ada"},{"match":":=","name":"keyword.operator.assignment.ada"},{"match":"(=|/=|<|>|<=|>=)","name":"keyword.operator.logic.ada"},{"match":"\\\\&","name":"keyword.operator.concatenation.ada"}]},"known_discriminant_part":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.ada"}},"end":"\\\\)","name":"meta.declaration.type.discriminant.ada","patterns":[{"match":";","name":"punctuation.ada"},{"include":"#discriminant_specification"}]},"label":{"captures":{"1":{"name":"punctuation.label.ada"},"2":{"name":"entity.name.label.ada"},"3":{"name":"punctuation.label.ada"}},"match":"(<<)?((?:\\\\w|\\\\d|_)+)\\\\s*(:[^=]|>>)","name":"meta.label.ada"},"library_unit":{"name":"meta.library.unit.ada","patterns":[{"include":"#package_body"},{"include":"#package_specification"},{"include":"#subprogram_body"}]},"loop_statement":{"patterns":[{"include":"#simple_loop_statement"},{"include":"#while_loop_statement"},{"include":"#for_loop_statement"}]},"modular_type_definition":{"begin":"(?i)\\\\b(mod)\\\\b","beginCaptures":{"1":{"name":"storage.modifier.ada"}},"end":"(?i)(?=(with|;))","patterns":[{"match":"<>","name":"keyword.modifier.unknown.ada"},{"include":"#expression"}]},"multiplying_operator":{"match":"(?i)(\\\\*|/|\\\\bmod\\\\b|\\\\brem\\\\b)","name":"keyword.operator.multiplying.ada"},"null_statement":{"captures":{"1":{"name":"keyword.ada"},"2":{"name":"punctuation.ada"}},"match":"(?i)\\\\b(null)\\\\s*(;)","name":"meta.statement.null.ada"},"object_declaration":{"begin":"(?i)\\\\b((?:\\\\w|\\\\d|_)+(?:\\\\s*,\\\\s*(?:\\\\w|\\\\d|_)+)*)\\\\s*(:)","beginCaptures":{"1":{"patterns":[{"match":",","name":"punctuation.ada"},{"match":"\\\\b(\\\\w|\\\\d|_)+\\\\b","name":"variable.name.ada"}]},"2":{"name":"punctuation.ada"}},"end":"(;)","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.declaration.object.ada","patterns":[{"begin":"(?<=:)","end":"(?:(?=;)|(:=)|(\\\\brenames\\\\b))","endCaptures":{"1":{"name":"keyword.operator.new.ada"},"2":{"name":"keyword.ada"}},"patterns":[{"match":"(?i)\\\\bconstant\\\\b","name":"storage.modifier.ada"},{"match":"(?i)\\\\baliased\\\\b","name":"storage.visibility.ada"},{"include":"#aspect_specification"},{"include":"#subtype_mark"}]},{"begin":"(?<=:=)","end":"(?=;)","patterns":[{"include":"#aspect_specification"},{"include":"#expression"}]},{"begin":"(?<=renames)","end":"(?=;)","patterns":[{"include":"#aspect_specification"}]}]},"operator":{"patterns":[{"include":"#highest_precedence_operator"},{"include":"#multiplying_operator"},{"include":"#adding_operator"},{"include":"#relational_operator"},{"include":"#logical_operator"}]},"package_body":{"begin":"(?i)\\\\b(package)\\\\s+(body)\\\\s+((?:\\\\w|\\\\d|\\\\.|_)+)\\\\b","beginCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"keyword.ada"},"3":{"patterns":[{"include":"#package_mark"}]}},"end":"(?i)\\\\b(end)\\\\s+(\\\\3)\\\\s*(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"patterns":[{"include":"#package_mark"}]},"3":{"name":"punctuation.ada"}},"name":"meta.declaration.package.body.ada","patterns":[{"begin":"(?i)\\\\bbegin\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(?=end)\\\\b","patterns":[{"include":"#handled_sequence_of_statements"}]},{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)(?=(\\\\bbegin\\\\b|\\\\bend\\\\b))","patterns":[{"match":"(?i)\\\\bprivate\\\\b","name":"keyword.ada"},{"include":"#declarative_item"},{"include":"#comment"}]},{"include":"#aspect_specification"}]},"package_declaration":{"patterns":[{"include":"#package_specification"}]},"package_mark":{"match":"\\\\b(\\\\w|\\\\d|\\\\.|_)+\\\\b","name":"entity.name.package.ada"},"package_specification":{"begin":"(?i)\\\\b(package)\\\\s+((?:\\\\w|\\\\d|\\\\.|_)+)\\\\b","beginCaptures":{"1":{"name":"keyword.ada"},"2":{"patterns":[{"include":"#package_mark"}]}},"end":"(?i)(?:\\\\b(end)\\\\s+(\\\\2)\\\\s*)?(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"patterns":[{"include":"#package_mark"}]},"3":{"name":"punctuation.ada"}},"name":"meta.declaration.package.specification.ada","patterns":[{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?=(end|;))","patterns":[{"begin":"(?i)\\\\bnew\\\\b","beginCaptures":{"0":{"name":"keyword.operator.new.ada"}},"end":"(?=;)","name":"meta.declaration.package.generic.ada","patterns":[{"include":"#package_mark"},{"include":"#actual_parameter_part"}]},{"match":"(?i)\\\\bprivate\\\\b","name":"keyword.ada"},{"include":"#basic_declarative_item"},{"include":"#comment"}]},{"include":"#aspect_specification"}]},"parameter_association":{"patterns":[{"captures":{"1":{"name":"variable.parameter.ada"},"2":{"name":"keyword.other.ada"}},"match":"((?:\\\\w|\\\\d|_)+)\\\\s*(=>)"},{"include":"#expression"}]},"parameter_profile":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.ada"}},"end":"\\\\)","patterns":[{"match":";","name":"punctuation.ada"},{"include":"#parameter_specification"}]},"parameter_specification":{"patterns":[{"begin":":(?!=)","beginCaptures":{"0":{"name":"punctuation.ada"}},"end":"(?=[:;)])","name":"meta.type.annotation.ada","patterns":[{"match":"(?i)\\\\b(in|out)\\\\b","name":"keyword.ada"},{"include":"#subtype_mark"}]},{"begin":":=","beginCaptures":{"0":{"name":"keyword.operator.new.ada"}},"end":"(?=[:;)])","patterns":[{"include":"#expression"}]},{"match":",","name":"punctuation.ada"},{"match":"\\\\b(?:\\\\w|\\\\d|\\\\.|_)+\\\\b","name":"variable.parameter.ada"},{"include":"#comment"}]},"positional_array_aggregate":{"name":"meta.definition.array.aggregate.positional.ada","patterns":[{"captures":{"1":{"name":"keyword.ada"},"2":{"name":"keyword.other.ada"},"3":{"patterns":[{"match":"<>","name":"keyword.modifier.unknown.ada"},{"include":"#expression"}]}},"match":"(?i)\\\\b(others)\\\\s*(=>)\\\\s*([^,\\\\)]+)"},{"include":"#expression"}]},"pragma":{"begin":"(?i)\\\\b(pragma)\\\\s+((?:\\\\w|\\\\d|_)+)\\\\b","beginCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"keyword.control.directive.ada"}},"end":"(;)","endCaptures":{"1":{"name":"punctuation.ada"}},"name":"meta.pragma.ada","patterns":[{"include":"#expression"}]},"preprocessor":{"name":"meta.preprocessor.ada","patterns":[{"captures":{"1":{"name":"punctuation.definition.directive.ada"},"2":{"name":"keyword.control.directive.conditional.ada"},"3":{"patterns":[{"include":"#expression"}]}},"match":"^\\\\s*(#)(if|elsif)\\\\s+(.*)$"},{"captures":{"1":{"name":"punctuation.definition.directive.ada"},"2":{"name":"keyword.control.directive.conditional"},"3":{"name":"punctuation.ada"}},"match":"^\\\\s*(#)(end if)(;)"},{"captures":{"1":{"name":"punctuation.definition.directive.ada"},"2":{"name":"keyword.control.directive.conditional"}},"match":"^\\\\s*(#)(else)"}]},"procedure_body":{"begin":"(?i)\\\\b(overriding\\\\s+)?(procedure)\\\\s+((?:\\\\w|\\\\d|\\\\.|_)+)\\\\b","beginCaptures":{"1":{"name":"storage.visibility.ada"},"2":{"name":"keyword.ada"},"3":{"name":"entity.name.function.ada"}},"end":"(?i)(?:\\\\b(end)\\\\s+(\\\\3)\\\\s*)?(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.function.ada"},"3":{"name":"punctuation.ada"}},"name":"meta.declaration.procedure.body.ada","patterns":[{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)(?=(with|begin|;))","patterns":[{"begin":"(?i)\\\\bnew\\\\b","beginCaptures":{"0":{"name":"keyword.operator.new.ada"}},"end":"(?=;)","name":"meta.declaration.package.generic.ada","patterns":[{"match":"((?:\\\\w|\\\\d|\\\\.|_)+)","name":"entity.name.function.ada"},{"include":"#actual_parameter_part"}]},{"match":"(?i)\\\\b(null|abstract)\\\\b","name":"storage.modifier.ada"},{"include":"#declarative_item"}]},{"begin":"(?i)\\\\bbegin\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)(?=\\\\bend\\\\b)","patterns":[{"include":"#handled_sequence_of_statements"}]},{"include":"#subprogram_renaming_declaration"},{"include":"#aspect_specification"},{"include":"#parameter_profile"},{"include":"#comment"}]},"procedure_call_statement":{"begin":"(?i)\\\\b((?:\\\\w|\\\\d|_|\\\\.)+)\\\\b","beginCaptures":{"1":{"name":"entity.name.function.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.statement.call.ada","patterns":[{"include":"#attribute"},{"include":"#actual_parameter_part"},{"include":"#comment"}]},"procedure_specification":{"patterns":[{"include":"#procedure_body"}]},"protected_body":{"begin":"(?i)\\\\b(protected)\\\\s+(body)\\\\s+((?:\\\\w|\\\\d|\\\\.|_)+)\\\\b","beginCaptures":{"1":{"name":"storage.modifier.ada"},"2":{"name":"keyword.ada"},"3":{"name":"entity.name.body.ada"}},"end":"(?i)(?:\\\\b(end)\\\\s*(\\\\s\\\\3)\\\\s*)(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.body.ada"},"3":{"name":"punctuation.ada"}},"name":"meta.declaration.procedure.body.ada","patterns":[{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(?=end)\\\\b","patterns":[{"include":"#protected_operation_item"}]}]},"protected_element_declaration":{"patterns":[{"include":"#subprogram_specification"},{"include":"#aspect_clause"},{"include":"#entry_declaration"},{"include":"#component_declaration"},{"include":"#pragma"}]},"protected_operation_item":{"patterns":[{"include":"#subprogram_specification"},{"include":"#subprogram_body"},{"include":"#aspect_clause"},{"include":"#entry_body"}]},"raise_expression":{"begin":"(?i)\\\\braise\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?=;)","name":"meta.expression.raise.ada","patterns":[{"begin":"(?i)\\\\bwith\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?=(;|\\\\)))","patterns":[{"include":"#expression"}]},{"match":"\\\\b(\\\\w|\\\\d|_)+\\\\b","name":"entity.name.exception.ada"}]},"raise_statement":{"begin":"(?i)\\\\braise\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.statement.raise.ada","patterns":[{"begin":"(?i)\\\\bwith\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?=;)","patterns":[{"include":"#expression"}]},{"match":"\\\\b(\\\\w|\\\\d|\\\\.|_)+\\\\b","name":"entity.name.exception.ada"}]},"range_constraint":{"begin":"(?i)\\\\brange\\\\b","beginCaptures":{"0":{"name":"storage.modifier.ada"}},"end":"(?=(\\\\bwith\\\\b|;))","patterns":[{"match":"\\\\.\\\\.","name":"keyword.ada"},{"match":"<>","name":"keyword.modifier.unknown.ada"},{"include":"#expression"}]},"real_type_definition":{"name":"meta.declaration.type.definition.real-type.ada","patterns":[{"include":"#scalar_constraint"}]},"record_representation_clause":{"begin":"(?i)\\\\b(record)\\\\b","beginCaptures":{"1":{"name":"storage.modifier.ada"}},"end":"(?i)\\\\b(end)\\\\s+(record)\\\\b","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"storage.modifier.ada"}},"name":"meta.aspect.clause.record.representation.ada","patterns":[{"include":"#component_clause"},{"include":"#comment"}]},"record_type_definition":{"patterns":[{"captures":{"1":{"name":"storage.modifier.ada"},"2":{"name":"storage.modifier.ada"},"3":{"name":"storage.modifier.ada"},"4":{"name":"storage.modifier.ada"},"5":{"name":"storage.modifier.ada"}},"match":"(?i)\\\\b(?:(abstract)\\\\s+)?(?:(tagged)\\\\s+)?(?:(limited)\\\\s+)?(null)\\\\s+(record)\\\\b","name":"meta.declaration.type.definition.record.null.ada","patterns":[{"include":"#component_item"}]},{"begin":"(?i)\\\\b(?:(abstract)\\\\s+)?(?:(tagged)\\\\s+)?(?:(limited)\\\\s+)?(record)\\\\b","beginCaptures":{"1":{"name":"storage.modifier.ada"},"2":{"name":"storage.modifier.ada"},"3":{"name":"storage.modifier.ada"},"4":{"name":"storage.modifier.ada"}},"end":"(?i)\\\\b(end)\\\\s+(record)\\\\b","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"storage.modifier.ada"}},"name":"meta.declaration.type.definition.record.ada","patterns":[{"include":"#component_item"}]}]},"regular_type_declaration":{"begin":"(?i)\\\\b(type)\\\\b","beginCaptures":{"1":{"name":"keyword.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.declaration.type.definition.regular.ada","patterns":[{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)(?=(with(?!\\\\s+(private))|;))","patterns":[{"include":"#type_definition"}]},{"begin":"(?i)\\\\b(?<=type)\\\\b","end":"(?i)(?=(is|;))","patterns":[{"include":"#known_discriminant_part"},{"include":"#subtype_mark"}]},{"include":"#aspect_specification"}]},"relational_operator":{"match":"(=|/=|<|<=|>|>=)","name":"keyword.operator.relational.ada"},"requeue_statement":{"begin":"(?i)\\\\brequeue\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.statement.requeue.ada","patterns":[{"match":"(?i)\\\\b(with|abort)\\\\b","name":"keyword.control.ada"},{"match":"\\\\b(\\\\w|\\\\d|\\\\.|_)+\\\\b","name":"entity.name.function.ada"}]},"result_profile":{"begin":"(?i)\\\\breturn\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?=(is|with|renames|;))","patterns":[{"include":"#subtype_mark"}]},"return_statement":{"begin":"(?i)\\\\breturn\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.statement.return.ada","patterns":[{"begin":"(?i)\\\\bdo\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)\\\\b(end)\\\\s+(return)\\\\s*(?=;)","endCaptures":{"1":{"name":"keyword.control.ada"},"2":{"name":"keyword.control.ada"}},"patterns":[{"include":"#label"},{"include":"#statement"}]},{"captures":{"1":{"name":"variable.name.ada"},"2":{"name":"punctuation.ada"},"3":{"name":"entity.name.type.ada"}},"match":"\\\\b((?:\\\\w|\\\\d|_)+)\\\\s*(:)\\\\s*((?:\\\\w|\\\\d|\\\\.|_)+)\\\\b"},{"match":":=","name":"keyword.operator.new.ada"},{"include":"#expression"}]},"scalar_constraint":{"name":"meta.declaration.constraint.scalar.ada","patterns":[{"begin":"(?i)\\\\b(digits|delta)\\\\b","beginCaptures":{"1":{"name":"storage.modifier.ada"}},"end":"(?i)(?=\\\\brange\\\\b|\\\\bdigits\\\\b|\\\\bwith\\\\b|;)","patterns":[{"include":"#expression"}]},{"include":"#range_constraint"},{"include":"#expression"}]},"select_alternative":{"patterns":[{"begin":"(?i)\\\\bterminate\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}}},{"include":"#statement"}]},"select_statement":{"begin":"(?i)\\\\bselect\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)\\\\b(end)\\\\s+(select)\\\\b","endCaptures":{"1":{"name":"keyword.control.ada"},"2":{"name":"keyword.control.ada"}},"name":"meta.statement.select.ada","patterns":[{"begin":"(?i)\\\\b(?:(or)|(?<=select))\\\\b","beginCaptures":{"1":{"name":"keyword.control.ada"}},"end":"(?i)\\\\b(?=(or|else|end))\\\\b","patterns":[{"include":"#guard"},{"include":"#select_alternative"}]},{"begin":"(?i)\\\\belse\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)\\\\b(?=end)\\\\b","patterns":[{"include":"#statement"}]}]},"signed_integer_type_definition":{"patterns":[{"include":"#range_constraint"}]},"simple_loop_statement":{"begin":"(?i)\\\\bloop\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)\\\\b(end)\\\\s+(loop)(\\\\s+(?:\\\\w|\\\\d|_)+)?\\\\s*(;)","endCaptures":{"1":{"name":"keyword.control.ada"},"2":{"name":"keyword.control.ada"},"3":{"name":"entity.name.label.ada"},"4":{"name":"punctuation.ada"}},"name":"meta.statement.loop.ada","patterns":[{"include":"#statement"}]},"single_protected_declaration":{"begin":"(?i)\\\\b(protected)\\\\s+((?:\\\\w|\\\\d|_)+)\\\\b","beginCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.protected.ada"}},"end":"(?i)(?:\\\\b(end)\\\\s*(\\\\s\\\\2)?\\\\s*)?(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.protected.ada"},"3":{"name":"punctuation.ada"}},"name":"meta.declaration.protected.ada","patterns":[{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)(?=(\\\\bend\\\\b|;))","patterns":[{"begin":"(?i)\\\\bnew\\\\b","captures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\bwith\\\\b","patterns":[{"match":"(?i)\\\\band\\\\b","name":"keyword.ada"},{"include":"#subtype_mark"},{"include":"#comment"}]},{"match":"(?i)\\\\bprivate\\\\b","name":"keyword.ada"},{"include":"#protected_element_declaration"},{"include":"#comment"}]},{"include":"#comment"}]},"single_task_declaration":{"begin":"(?i)\\\\b(task)\\\\s+((?:\\\\w|\\\\d|_)+)\\\\b","beginCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.task.ada"}},"end":"(?i)(?:\\\\b(end)\\\\s*(\\\\s\\\\2)?\\\\s*)?(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.task.ada"},"3":{"name":"punctuation.ada"}},"patterns":[{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(?=end)\\\\b","patterns":[{"begin":"(?i)\\\\bnew\\\\b","captures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\bwith\\\\b","patterns":[{"match":"(?i)\\\\band\\\\b","name":"keyword.ada"},{"include":"#subtype_mark"},{"include":"#comment"}]},{"match":"(?i)\\\\bprivate\\\\b","name":"keyword.ada"},{"include":"#task_item"},{"include":"#comment"}]},{"include":"#comment"}]},"statement":{"patterns":[{"begin":"(?i)\\\\bbegin\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(end)\\\\s*(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"punctuation.ada"}},"patterns":[{"include":"#handled_sequence_of_statements"}]},{"include":"#label"},{"include":"#null_statement"},{"include":"#return_statement"},{"include":"#assignment_statement"},{"include":"#exit_statement"},{"include":"#goto_statement"},{"include":"#requeue_statement"},{"include":"#delay_statement"},{"include":"#abort_statement"},{"include":"#raise_statement"},{"include":"#if_statement"},{"include":"#case_statement"},{"include":"#loop_statement"},{"include":"#block_statement"},{"include":"#select_statement"},{"include":"#accept_statement"},{"include":"#pragma"},{"include":"#procedure_call_statement"},{"include":"#comment"}]},"string_literal":{"captures":{"1":{"name":"punctuation.definition.string.ada"},"2":{"name":"punctuation.definition.string.ada"}},"match":"(\\").*?(\\")","name":"string.quoted.double.ada"},"subprogram_body":{"name":"meta.declaration.subprogram.body.ada","patterns":[{"include":"#procedure_body"},{"include":"#function_body"}]},"subprogram_renaming_declaration":{"begin":"(?i)\\\\brenames\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?=(with|;))","patterns":[{"match":"(?:\\\\w|\\\\d|_|\\\\.)+","name":"entity.name.function.ada"}]},"subprogram_specification":{"name":"meta.declaration.subprogram.specification.ada","patterns":[{"include":"#procedure_specification"},{"include":"#function_specification"}]},"subtype_declaration":{"begin":"(?i)\\\\bsubtype\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.declaration.subtype.ada","patterns":[{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?=;)","patterns":[{"match":"(?i)\\\\b(not\\\\s+null)\\\\b","name":"storage.modifier.ada"},{"include":"#composite_constraint"},{"include":"#aspect_specification"},{"include":"#subtype_indication"}]},{"begin":"(?i)(?<=subtype)","end":"(?i)\\\\b(?=is)\\\\b","patterns":[{"include":"#subtype_mark"}]}]},"subtype_indication":{"name":"meta.declaration.indication.subtype.ada","patterns":[{"include":"#scalar_constraint"},{"include":"#subtype_mark"}]},"subtype_mark":{"patterns":[{"match":"(?i)\\\\b(access|aliased|not\\\\s+null|constant)\\\\b","name":"storage.visibility.ada"},{"include":"#attribute"},{"include":"#actual_parameter_part"},{"begin":"(?i)\\\\b(procedure|function)\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?=(;|\\\\)))","patterns":[{"include":"#parameter_profile"},{"begin":"(?i)\\\\breturn\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?=(;|\\\\)))","patterns":[{"include":"#subtype_mark"}]}]},{"captures":{"0":{"patterns":[{"match":"[_.]","name":"punctuation.ada"}]}},"match":"\\\\b(?:\\\\w|\\\\d|\\\\.|_)+\\\\b","name":"entity.name.type.ada"},{"include":"#comment"}]},"task_body":{"begin":"(?i)\\\\b(task)\\\\s+(body)\\\\s+((\\\\w|\\\\d|\\\\.|_)+)\\\\b","beginCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"keyword.ada"},"3":{"name":"entity.name.task.ada"}},"end":"(?i)(?:\\\\b(end)\\\\s*(?:\\\\s(\\\\3))?\\\\s*)?(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.task.ada"},"3":{"name":"punctuation.ada"}},"name":"meta.declaration.task.body.ada","patterns":[{"begin":"(?i)\\\\bbegin\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)(?=end)","patterns":[{"include":"#handled_sequence_of_statements"}]},{"include":"#aspect_specification"},{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)(?=(with|begin))","patterns":[{"include":"#declarative_item"}]}]},"task_item":{"patterns":[{"include":"#aspect_clause"},{"include":"#entry_declaration"}]},"task_type_declaration":{"begin":"(?i)\\\\b(task)\\\\s+(type)\\\\s+((\\\\w|\\\\d|\\\\.|_)+)\\\\b","beginCaptures":{"1":{"name":"storage.modifier.ada"},"2":{"name":"keyword.ada"},"3":{"name":"entity.name.task.ada"}},"end":"(?i)(?:\\\\b(end)\\\\s*(?:\\\\s(\\\\3))?\\\\s*)?(;)","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"entity.name.task.ada"},"3":{"name":"punctuation.ada"}},"name":"meta.declaration.type.task.ada","patterns":[{"include":"#known_discriminant_part"},{"begin":"(?i)\\\\bis\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(?=end)\\\\b","patterns":[{"begin":"(?i)\\\\bnew\\\\b","captures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\bwith\\\\b","patterns":[{"match":"(?i)\\\\band\\\\b","name":"keyword.ada"},{"include":"#subtype_mark"},{"include":"#comment"}]},{"match":"(?i)\\\\bprivate\\\\b","name":"keyword.ada"},{"include":"#task_item"},{"include":"#comment"}]},{"include":"#comment"}]},"type_declaration":{"name":"meta.declaration.type.ada","patterns":[{"include":"#full_type_declaration"}]},"type_definition":{"name":"meta.declaration.type.definition.ada","patterns":[{"include":"#enumeration_type_definition"},{"include":"#integer_type_definition"},{"include":"#real_type_definition"},{"include":"#array_type_definition"},{"include":"#record_type_definition"},{"include":"#access_type_definition"},{"include":"#interface_type_definition"},{"include":"#derived_type_definition"}]},"use_clause":{"name":"meta.context.use.ada","patterns":[{"include":"#use_type_clause"},{"include":"#use_package_clause"}]},"use_package_clause":{"begin":"(?i)\\\\buse\\\\b","beginCaptures":{"0":{"name":"keyword.other.using.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.context.use.package.ada","patterns":[{"match":",","name":"punctuation.ada"},{"include":"#package_mark"}]},"use_type_clause":{"begin":"(?i)\\\\b(use)\\\\s+(?:(all)\\\\s+)?(type)\\\\b","beginCaptures":{"1":{"name":"keyword.other.using.ada"},"2":{"name":"keyword.modifier.ada"},"3":{"name":"keyword.modifier.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.context.use.type.ada","patterns":[{"match":",","name":"punctuation.ada"},{"include":"#subtype_mark"}]},"value":{"patterns":[{"include":"#based_literal"},{"include":"#decimal_literal"},{"include":"#character_literal"},{"include":"#string_literal"}]},"variant_part":{"begin":"(?i)\\\\bcase\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"(?i)\\\\b(end)\\\\s+(case);","endCaptures":{"1":{"name":"keyword.ada"},"2":{"name":"keyword.ada"},"3":{"name":"punctuation.ada"}},"name":"meta.declaration.variant.ada","patterns":[{"begin":"(?i)\\\\b(?<=case)\\\\b","end":"(?i)\\\\bis\\\\b","endCaptures":{"0":{"name":"keyword.ada"}},"patterns":[{"match":"(?:\\\\w|\\\\d|_)+","name":"variable.name.ada"},{"include":"#comment"}]},{"begin":"(?i)\\\\b(?<=is)\\\\b","end":"(?i)\\\\b(?=end)\\\\b","patterns":[{"begin":"(?i)\\\\bwhen\\\\b","beginCaptures":{"0":{"name":"keyword.ada"}},"end":"=>","endCaptures":{"0":{"name":"keyword.other.ada"}},"patterns":[{"match":"\\\\|","name":"punctuation.ada"},{"match":"(?i)\\\\bothers\\\\b","name":"keyword.ada"},{"include":"#expression"}]},{"include":"#component_item"}]}]},"while_loop_statement":{"begin":"(?i)\\\\bwhile\\\\b","beginCaptures":{"0":{"name":"keyword.control.ada"}},"end":"(?i)\\\\b(end)\\\\s+(loop)(\\\\s+(?:\\\\w|\\\\d|_)+)?\\\\s*(;)","endCaptures":{"1":{"name":"keyword.control.ada"},"2":{"name":"keyword.control.ada"},"3":{"name":"entity.name.label.ada"},"4":{"name":"punctuation.ada"}},"name":"meta.statement.loop.while.ada","patterns":[{"begin":"(?i)(?<=while)\\\\b","end":"(?i)\\\\bloop\\\\b","endCaptures":{"0":{"name":"keyword.control.ada"}},"patterns":[{"include":"#expression"}]},{"include":"#statement"}]},"with_clause":{"begin":"(?i)\\\\b(?:(limited)\\\\s+)?(?:(private)\\\\s+)?(with)\\\\b","beginCaptures":{"1":{"name":"keyword.modifier.ada"},"2":{"name":"storage.visibility.ada"},"3":{"name":"keyword.other.using.ada"}},"end":";","endCaptures":{"0":{"name":"punctuation.ada"}},"name":"meta.context.with.ada","patterns":[{"match":",","name":"punctuation.ada"},{"include":"#package_mark"}]}},"scopeName":"source.ada"}`)),a=[e];export{a as default}; ================================================ FILE: jesse/static/_nuxt/7A4Fjokl.js ================================================ const e=Object.freeze(JSON.parse('{"displayName":"Wenyan","name":"wenyan","patterns":[{"include":"#keywords"},{"include":"#constants"},{"include":"#operators"},{"include":"#symbols"},{"include":"#expression"},{"include":"#comment-blocks"},{"include":"#comment-lines"}],"repository":{"comment-blocks":{"begin":"(注曰|疏曰|批曰)。?(「「|『)","end":"(」」|』)","name":"comment.block","patterns":[{"match":"\\\\\\\\.","name":"constant.character"}]},"comment-lines":{"begin":"注曰|疏曰|批曰","end":"$","name":"comment.line","patterns":[{"match":"\\\\\\\\.","name":"constant.character"}]},"constants":{"patterns":[{"match":"負|·|又|零|〇|一|二|三|四|五|六|七|八|九|十|百|千|萬|億|兆|京|垓|秭|穰|溝|澗|正|載|極|分|釐|毫|絲|忽|微|纖|沙|塵|埃|渺|漠","name":"constant.numeric"},{"match":"其|陰|陽","name":"constant.language"},{"begin":"「「|『","end":"」」|』","name":"string.quoted","patterns":[{"match":"\\\\\\\\.","name":"constant.character"}]}]},"expression":{"patterns":[{"include":"#variables"}]},"keywords":{"patterns":[{"match":"數|列|言|術|爻|物|元","name":"storage.type"},{"match":"乃行是術曰|若其不然者|乃歸空無|欲行是術|乃止是遍|若其然者|其物如是|乃得矣|之術也|必先得|是術曰|恆為是|之物也|乃得|是謂|云云|中之|為是|乃止|若非|或若|之長|其餘","name":"keyword.control"},{"match":"或云|蓋謂","name":"keyword.control"},{"match":"中有陽乎|中無陰乎|所餘幾何|不等於|不大於|不小於|等於|大於|小於|加|減|乘|除|變|以|於","name":"keyword.operator"},{"match":"不知何禍歟|不復存矣|姑妄行此|如事不諧|名之曰|吾嘗觀|之禍歟|乃作罷|吾有|今有|物之|書之|以施|昔之|是矣|之書|方悟|之義|嗚呼|之禍|有|施|曰|噫|取|今|夫|中|豈","name":"keyword.other"},{"match":"也|凡|遍|若|者|之|充|銜","name":"keyword.control"}]},"symbols":{"patterns":[{"match":"。|、","name":"punctuation.separator"}]},"variables":{"begin":"「","end":"」","name":"variable.other","patterns":[{"match":"\\\\\\\\.","name":"constant.character"}]}},"scopeName":"source.wenyan","aliases":["文言"]}')),n=[e];export{n as default}; ================================================ FILE: jesse/static/_nuxt/7O62HKoU.js ================================================ const a=Object.freeze(JSON.parse(`{"displayName":"Ara","fileTypes":["ara"],"name":"ara","patterns":[{"include":"#namespace"},{"include":"#named-arguments"},{"include":"#comments"},{"include":"#keywords"},{"include":"#strings"},{"include":"#numbers"},{"include":"#operators"},{"include":"#type"},{"include":"#function-call"}],"repository":{"class-name":{"patterns":[{"begin":"\\\\b(?i)(?=|&=|\\\\|=|<<=|>>=|\\\\?\\\\?=)","name":"keyword.assignments.ara"},{"comment":"logical operators","match":"(\\\\^|\\\\||\\\\|\\\\||&&|>>|<<|&|~|<<|>>|>|<|<=>|\\\\?\\\\?|\\\\?|:|\\\\?:)(?!=)","name":"keyword.operators.ara"},{"comment":"comparison operators","match":"(==|===|!==|!=|<=|>=|<|>)(?!=)","name":"keyword.operator.comparison.ara"},{"comment":"math operators","match":"(([+%]|(\\\\*(?!\\\\w)))(?!=))|(-(?!>))|(/(?!/))","name":"keyword.operator.math.ara"},{"comment":"single equal assignment operator","match":"(?])=(?!=|>)","name":"keyword.operator.assignment.ara"},{"captures":{"1":{"name":"punctuation.brackets.round.ara"},"2":{"name":"punctuation.brackets.square.ara"},"3":{"name":"punctuation.brackets.curly.ara"},"4":{"name":"keyword.operator.comparison.ara"},"5":{"name":"punctuation.brackets.round.ara"},"6":{"name":"punctuation.brackets.square.ara"},"7":{"name":"punctuation.brackets.curly.ara"}},"comment":"less than, greater than (special case)","match":"(?:\\\\b|(?:(\\\\))|(\\\\])|(\\\\})))[ \\\\t]+([<>])[ \\\\t]+(?:\\\\b|(?:(\\\\()|(\\\\[)|(\\\\{)))"},{"comment":"arrow method call, arrow property access","match":"(?:->|\\\\?->)","name":"keyword.operator.arrow.ara"},{"comment":"double arrow key-value pair","match":"(?:=>)","name":"keyword.operator.double-arrow.ara"},{"comment":"static method call, static property access","match":"(?:::)","name":"keyword.operator.static.ara"},{"comment":"closure creation","match":"(?:\\\\(\\\\.\\\\.\\\\.\\\\))","name":"keyword.operator.closure.ara"},{"comment":"spread operator","match":"(?:\\\\.\\\\.\\\\.)","name":"keyword.operator.spread.ara"},{"comment":"namespace operator","match":"\\\\\\\\","name":"keyword.operator.namespace.ara"}]},"strings":{"patterns":[{"begin":"'","end":"'","name":"string.quoted.single.ara","patterns":[{"match":"\\\\\\\\[\\\\\\\\']","name":"constant.character.escape.ara"}]},{"begin":"\\"","end":"\\"","name":"string.quoted.double.ara","patterns":[{"include":"#interpolation"}]}]},"type":{"name":"support.type.php","patterns":[{"match":"\\\\b(?:void|true|false|null|never|float|bool|int|string|dict|vec|object|mixed|nonnull|resource|self|static|parent|iterable)\\\\b","name":"support.type.php"},{"begin":"([A-Za-z_][A-Za-z0-9_]*)<","beginCaptures":{"1":{"name":"support.class.php"}},"end":">","patterns":[{"include":"#type-annotation"}]},{"begin":"(shape\\\\()","end":"((,|\\\\.\\\\.\\\\.)?\\\\s*\\\\))","endCaptures":{"1":{"name":"keyword.operator.key.php"}},"name":"storage.type.shape.php","patterns":[{"include":"#type-annotation"},{"include":"#strings"},{"include":"#constants"}]},{"begin":"\\\\(","end":"\\\\)","patterns":[{"include":"#type-annotation"}]},{"begin":"\\\\(fn\\\\(","end":"\\\\)","patterns":[{"include":"#type-annotation"}]},{"include":"#class-name"},{"include":"#comments"}]},"user-function-call":{"begin":"(?i)(?=[a-z_0-9\\\\\\\\]*[a-z_][a-z0-9_]*\\\\s*\\\\()","end":"(?i)[a-z_][a-z_0-9]*(?=\\\\s*\\\\()","endCaptures":{"0":{"name":"entity.name.function.php"}},"name":"meta.function-call.php","patterns":[{"include":"#namespace"}]}},"scopeName":"source.ara"}`)),e=[a];export{e as default}; ================================================ FILE: jesse/static/_nuxt/9C6ErRqt.js ================================================ import e from"./Dbxjm_CC.js";import"./C3t2pwGQ.js";const n=Object.freeze(JSON.parse(`{"displayName":"Nginx","fileTypes":["conf.erb","conf","ngx","nginx.conf","mime.types","fastcgi_params","scgi_params","uwsgi_params"],"foldingStartMarker":"\\\\{\\\\s*$","foldingStopMarker":"^\\\\s*\\\\}","name":"nginx","patterns":[{"match":"\\\\#.*","name":"comment.line.number-sign"},{"begin":"\\\\b((?:content|rewrite|access|init_worker|init|set|log|balancer|ssl_(?:client_hello|session_fetch|certificate))_by_lua(?:_block)?)\\\\s*\\\\{","beginCaptures":{"1":{"name":"storage.type.directive.context.nginx"}},"contentName":"meta.embedded.block.lua","end":"\\\\}","name":"meta.context.lua.nginx","patterns":[{"include":"source.lua"}]},{"begin":"\\\\b((?:content|rewrite|access|init_worker|init|set|log|balancer|ssl_(?:client_hello|session_fetch|certificate))_by_lua)\\\\s*'","beginCaptures":{"1":{"name":"storage.type.directive.context.nginx"}},"contentName":"meta.embedded.block.lua","end":"'","name":"meta.context.lua.nginx","patterns":[{"include":"source.lua"}]},{"begin":"\\\\b(events) +\\\\{","beginCaptures":{"1":{"name":"storage.type.directive.context.nginx"}},"end":"\\\\}","name":"meta.context.events.nginx","patterns":[{"include":"$self"}]},{"begin":"\\\\b(http) +\\\\{","beginCaptures":{"1":{"name":"storage.type.directive.context.nginx"}},"end":"\\\\}","name":"meta.context.http.nginx","patterns":[{"include":"$self"}]},{"begin":"\\\\b(mail) +\\\\{","beginCaptures":{"1":{"name":"storage.type.directive.context.nginx"}},"end":"\\\\}","name":"meta.context.mail.nginx","patterns":[{"include":"$self"}]},{"begin":"\\\\b(stream) +\\\\{","beginCaptures":{"1":{"name":"storage.type.directive.context.nginx"}},"end":"\\\\}","name":"meta.context.stream.nginx","patterns":[{"include":"$self"}]},{"begin":"\\\\b(server) +\\\\{","beginCaptures":{"1":{"name":"storage.type.directive.context.nginx"}},"end":"\\\\}","name":"meta.context.server.nginx","patterns":[{"include":"$self"}]},{"begin":"\\\\b(location) +([\\\\^]?~[\\\\*]?|=) +(.*?)\\\\{","beginCaptures":{"1":{"name":"storage.type.directive.context.nginx"},"2":{"name":"keyword.operator.nginx"},"3":{"name":"string.regexp.nginx"}},"end":"\\\\}","name":"meta.context.location.nginx","patterns":[{"include":"$self"}]},{"begin":"\\\\b(location) +(.*?)\\\\{","beginCaptures":{"1":{"name":"storage.type.directive.context.nginx"},"2":{"name":"entity.name.context.location.nginx"}},"end":"\\\\}","name":"meta.context.location.nginx","patterns":[{"include":"$self"}]},{"begin":"\\\\b(limit_except) +\\\\{","beginCaptures":{"1":{"name":"storage.type.directive.context.nginx"}},"end":"\\\\}","name":"meta.context.limit_except.nginx","patterns":[{"include":"$self"}]},{"begin":"\\\\b(if) +\\\\(","beginCaptures":{"1":{"name":"keyword.control.nginx"}},"end":"\\\\)","name":"meta.context.if.nginx","patterns":[{"include":"#if_condition"}]},{"begin":"\\\\b(upstream) +(.*?)\\\\{","beginCaptures":{"1":{"name":"storage.type.directive.context.nginx"},"2":{"name":"entity.name.context.location.nginx"}},"end":"\\\\}","name":"meta.context.upstream.nginx","patterns":[{"include":"$self"}]},{"begin":"\\\\b(types) +\\\\{","beginCaptures":{"1":{"name":"storage.type.directive.context.nginx"}},"end":"\\\\}","name":"meta.context.types.nginx","patterns":[{"include":"$self"}]},{"begin":"\\\\b(map) +(\\\\$)([A-Za-z0-9\\\\_]+) +(\\\\$)([A-Za-z0-9\\\\_]+) *\\\\{","beginCaptures":{"1":{"name":"storage.type.directive.context.nginx"},"2":{"name":"punctuation.definition.variable.nginx"},"3":{"name":"variable.parameter.nginx"},"4":{"name":"punctuation.definition.variable.nginx"},"5":{"name":"variable.other.nginx"}},"end":"\\\\}","name":"meta.context.map.nginx","patterns":[{"include":"#values"},{"match":";","name":"punctuation.terminator.nginx"},{"match":"\\\\#.*","name":"comment.line.number-sign"}]},{"begin":"\\\\{","end":"\\\\}","name":"meta.block.nginx","patterns":[{"include":"$self"}]},{"begin":"\\\\b(return)\\\\b","beginCaptures":{"1":{"name":"keyword.control.nginx"}},"end":";","patterns":[{"include":"#values"}]},{"begin":"\\\\b(rewrite)\\\\s+","beginCaptures":{"1":{"name":"keyword.directive.nginx"}},"end":"(last|break|redirect|permanent)?(;)","endCaptures":{"1":{"name":"keyword.other.nginx"},"2":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"\\\\b(server)\\\\s+","beginCaptures":{"1":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"1":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#server_parameters"}]},{"begin":"\\\\b(internal|empty_gif|f4f|flv|hls|mp4|break|status|stub_status|ip_hash|ntlm|least_conn|upstream_conf|least_conn|zone_sync)\\\\b","beginCaptures":{"1":{"name":"keyword.directive.nginx"}},"end":"(;|$)","endCaptures":{"1":{"name":"punctuation.terminator.nginx"}}},{"begin":"([\\"'\\\\s]|^)(accept_)(mutex|mutex_delay)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(debug_)(connection|points)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(error_)(log|page)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(ssl_)(engine|buffer_size|certificate|certificate_key|ciphers|client_certificate|conf_command|crl|dhparam|early_data|ecdh_curve|ocsp|ocsp_cache|ocsp_responder|password_file|prefer_server_ciphers|protocols|reject_handshake|session_cache|session_ticket_key|session_tickets|session_timeout|stapling|stapling_file|stapling_responder|stapling_verify|trusted_certificate|verify_client|verify_depth|alpn|handshake_timeout|preread)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(worker_)(aio_requests|connections|cpu_affinity|priority|processes|rlimit_core|rlimit_nofile|shutdown_timeout)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(auth_)(delay|basic|basic_user_file|jwt|jwt_claim_set|jwt_header_set|jwt_key_cache|jwt_key_file|jwt_key_request|jwt_leeway|jwt_type|jwt_require|request|request_set|http|http_header|http_pass_client_cert|http_timeout)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(client_)(body_buffer_size|body_in_file_only|body_in_single_buffer|body_temp_path|body_timeout|header_buffer_size|header_timeout|max_body_size)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(keepalive_)(disable|requests|time|timeout)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(limit_)(rate|rate_after|conn|conn_dry_run|conn_log_level|conn_status|conn_zone|zone|req|req_dry_run|req_log_level|req_status|req_zone)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(lingering_)(close|time|timeout)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(log_)(not_found|subrequest|format)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(max_)(ranges|errors)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(msie_)(padding|refresh)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(open_)(file_cache|file_cache_errors|file_cache_min_uses|file_cache_valid|log_file_cache)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(send_)(lowat|timeout)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(server_)(name|name_in_redirect|names_hash_bucket_size|names_hash_max_size|tokens)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(tcp_)(nodelay|nopush)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(types_)(hash_bucket_size|hash_max_size)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(variables_)(hash_bucket_size|hash_max_size)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(add_)(before_body|after_body|header|trailer)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(status_)(zone|format)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(autoindex_)(exact_size|format|localtime)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(ancient_)(browser|browser_value)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(modern_)(browser|browser_value)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(charset_)(map|types)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(dav_)(access|methods)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(fastcgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|catch_stderr|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|index|intercept_errors|keep_conn|limit_rate|max_temp_file_size|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_lowat|send_timeout|socket_keepalive|split_path_info|store|store_access|temp_file_write_size|temp_path)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(geoip_)(country|city|org|proxy|proxy_recursive)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(grpc_)(bind|buffer_size|connect_timeout|hide_header|ignore_headers|intercept_errors|next_upstream|next_upstream_timeout|next_upstream_tries|pass|pass_header|read_timeout|send_timeout|set_header|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(gzip_)(buffers|comp_level|disable|http_version|min_length|proxied|types|vary|static)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(hls_)(buffers|forward_args|fragment|mp4_buffer_size|mp4_max_buffer_size)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(image_)(filter|filter_buffer|filter_interlace|filter_jpeg_quality|filter_sharpen|filter_transparency|filter_webp_quality)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(map_)(hash_bucket_size|hash_max_size)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(memcached_)(bind|buffer_size|connect_timeout|gzip_flag|next_upstream|next_upstream_timeout|next_upstream_tries|pass|read_timeout|send_timeout|socket_keepalive)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(mp4_)(buffer_size|max_buffer_size|limit_rate|limit_rate_after|start_key_frame)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(perl_)(modules|require|set)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(proxy_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_convert_head|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|cookie_domain|cookie_flags|cookie_path|force_ranges|headers_hash_bucket_size|headers_hash_max_size|hide_header|http_version|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|method|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|redirect|request_buffering|send_lowat|send_timeout|set_body|set_header|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth|store|store_access|temp_file_write_size|temp_path|buffer|pass_error_message|protocol|smtp_auth|timeout|protocol_timeout|download_rate|half_close|requests|responses|session_drop|ssl|upload_rate)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(real_)(ip_header|ip_recursive)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(referer_)(hash_bucket_size|hash_max_size)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(scgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_timeout|socket_keepalive|store|store_access|temp_file_write_size|temp_path)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(secure_)(link|link_md5|link_secret)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(session_)(log|log_format|log_zone)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(ssi_)(last_modified|min_file_chunk|silent_errors|types|value_length)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(sub_)(filter|filter_last_modified|filter_once|filter_types)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(health_)(check|check_timeout)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(userid_)(domain|expires|flags|mark|name|p3p|path|service)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(uwsgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|modifier1|modifier2|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_timeout|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth|store|store_access|temp_file_write_size|temp_path)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(http2_)(body_preread_size|chunk_size|idle_timeout|max_concurrent_pushes|max_concurrent_streams|max_field_size|max_header_size|max_requests|push|push_preload|recv_buffer_size|recv_timeout)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(http3_)(hq|max_concurrent_streams|stream_buffer_size)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(quic_)(active_connection_id_limit|bpf|gso|host_key|retry)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(xslt_)(last_modified|param|string_param|stylesheet|types)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(imap_)(auth|capabilities|client_buffer)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(pop3_)(auth|capabilities)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(smtp_)(auth|capabilities|client_buffer|greeting_delay)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(preread_)(buffer_size|timeout)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(mqtt_)(preread|buffers|rewrite_buffer_size|set_connect)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(zone_)(sync_buffers|sync_connect_retry_interval|sync_connect_timeout|sync_interval|sync_recv_buffer_size|sync_server|sync_ssl|sync_ssl_certificate|sync_ssl_certificate_key|sync_ssl_ciphers|sync_ssl_conf_command|sync_ssl_crl|sync_ssl_name|sync_ssl_password_file|sync_ssl_protocols|sync_ssl_server_name|sync_ssl_trusted_certificate|sync_ssl_verify|sync_ssl_verify_depth|sync_timeout)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(otel_)(exporter|service_name|trace|trace_context|span_name|span_attr)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(js_)(body_filter|content|fetch_buffer_size|fetch_ciphers|fetch_max_response_buffer_size|fetch_protocols|fetch_timeout|fetch_trusted_certificate|fetch_verify|fetch_verify_depth|header_filter|import|include|path|periodic|preload_object|set|shared_dict_zone|var|access|filter|preread)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"},"4":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"([\\"'\\\\s]|^)(daemon|env|include|pid|use|user|aio|alias|directio|etag|listen|resolver|root|satisfy|sendfile|allow|deny|api|autoindex|charset|geo|gunzip|gzip|expires|index|keyval|mirror|perl|set|slice|ssi|ssl|zone|state|hash|keepalive|queue|random|sticky|match|userid|http2|http3|protocol|timeout|xclient|starttls|mqtt|load_module|lock_file|master_process|multi_accept|pcre_jit|thread_pool|timer_resolution|working_directory|absolute_redirect|aio_write|chunked_transfer_encoding|connection_pool_size|default_type|directio_alignment|disable_symlinks|if_modified_since|ignore_invalid_headers|large_client_header_buffers|merge_slashes|output_buffers|port_in_redirect|postpone_output|read_ahead|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver_timeout|sendfile_max_chunk|subrequest_output_buffer_size|try_files|underscores_in_headers|addition_types|override_charset|source_charset|create_full_put_path|min_delete_depth|f4f_buffer_size|gunzip_buffers|internal_redirect|keyval_zone|access_log|mirror_request_body|random_index|set_real_ip_from|valid_referers|rewrite_log|uninitialized_variable_warn|split_clients|least_time|sticky_cookie_insert|xml_entities|google_perftools_profiles)([\\"'\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.directive.nginx"},"2":{"name":"keyword.directive.nginx"},"3":{"name":"keyword.directive.nginx"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"\\\\b([a-zA-Z0-9\\\\_]+)\\\\s+","beginCaptures":{"1":{"name":"keyword.directive.unknown.nginx"}},"end":"(;|$)","endCaptures":{"1":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]},{"begin":"\\\\b([a-z]+\\\\/[A-Za-z0-9\\\\-\\\\.\\\\+]+)\\\\b","beginCaptures":{"1":{"name":"constant.other.mediatype.nginx"}},"end":"(;)","endCaptures":{"1":{"name":"punctuation.terminator.nginx"}},"patterns":[{"include":"#values"}]}],"repository":{"if_condition":{"patterns":[{"include":"#variables"},{"match":"\\\\!?\\\\~\\\\*?\\\\s","name":"keyword.operator.nginx"},{"match":"\\\\!?\\\\-[fdex]\\\\s","name":"keyword.operator.nginx"},{"match":"\\\\!?=[^=]","name":"keyword.operator.nginx"},{"include":"#regexp_and_string"}]},"regexp_and_string":{"patterns":[{"match":"\\\\^.*?\\\\$","name":"string.regexp.nginx"},{"begin":"\\"","end":"\\"","name":"string.quoted.double.nginx","patterns":[{"match":"\\\\\\\\[\\"'nt\\\\\\\\]","name":"constant.character.escape.nginx"},{"include":"#variables"}]},{"begin":"'","end":"'","name":"string.quoted.single.nginx","patterns":[{"match":"\\\\\\\\[\\"'nt\\\\\\\\]","name":"constant.character.escape.nginx"},{"include":"#variables"}]}]},"server_parameters":{"patterns":[{"captures":{"1":{"name":"variable.parameter.nginx"},"2":{"name":"keyword.operator.nginx"},"3":{"name":"constant.numeric.nginx"}},"match":"(?:^|\\\\s)(weight|max_conn|max_fails|fail_timeout|slow_start)(=)(\\\\d[\\\\d\\\\.]*[bBkKmMgGtTsShHdD]?)(?:\\\\s|;|$)"},{"include":"#values"}]},"values":{"patterns":[{"include":"#variables"},{"match":"\\\\#.*","name":"comment.line.number-sign"},{"captures":{"1":{"name":"constant.numeric.nginx"}},"match":"(?<=\\\\G|\\\\s)(=?[0-9][0-9\\\\.]*[bBkKmMgGtTsShHdD]?)(?=[\\\\t ;])"},{"match":"(?<=\\\\G|\\\\s)(on|off|true|false)(?=[\\\\t ;])","name":"constant.language.nginx"},{"match":"(?<=\\\\G|\\\\s)(kqueue|rtsig|epoll|\\\\/dev\\\\/poll|select|poll|eventport|max|all|default_server|default|main|crit|error|debug|warn|notice|last)(?=[\\\\t ;])","name":"constant.language.nginx"},{"match":"\\\\\\\\.*\\\\ |\\\\~\\\\*|\\\\~|\\\\!\\\\~\\\\*|\\\\!\\\\~","name":"keyword.operator.nginx"},{"include":"#regexp_and_string"}]},"variables":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.variable.nginx"},"2":{"name":"variable.other.nginx"}},"match":"(\\\\$)([A-Za-z0-9\\\\_]+)\\\\b"},{"captures":{"1":{"name":"punctuation.definition.variable.nginx"},"2":{"name":"variable.other.nginx"},"3":{"name":"punctuation.definition.variable.nginx"}},"match":"(\\\\$\\\\{)([A-Za-z0-9\\\\_]+)(\\\\})"}]}},"scopeName":"source.nginx","embeddedLangs":["lua"]}`)),r=[...e,n];export{r as default}; ================================================ FILE: jesse/static/_nuxt/9VOnL4Iz.js ================================================ function S(h){var t=h.width,i=h.height;if(t<0)throw new Error("Negative width is not allowed for Size");if(i<0)throw new Error("Negative height is not allowed for Size");return{width:t,height:i}}function F(h,t){return h.width===t.width&&h.height===t.height}var js=function(){function h(t){var i=this;this._resolutionListener=function(){return i._onResolutionChanged()},this._resolutionMediaQueryList=null,this._observers=[],this._window=t,this._installResolutionListener()}return h.prototype.dispose=function(){this._uninstallResolutionListener(),this._window=null},Object.defineProperty(h.prototype,"value",{get:function(){return this._window.devicePixelRatio},enumerable:!1,configurable:!0}),h.prototype.subscribe=function(t){var i=this,s={next:t};return this._observers.push(s),{unsubscribe:function(){i._observers=i._observers.filter(function(e){return e!==s})}}},h.prototype._installResolutionListener=function(){if(this._resolutionMediaQueryList!==null)throw new Error("Resolution listener is already installed");var t=this._window.devicePixelRatio;this._resolutionMediaQueryList=this._window.matchMedia("all and (resolution: ".concat(t,"dppx)")),this._resolutionMediaQueryList.addListener(this._resolutionListener)},h.prototype._uninstallResolutionListener=function(){this._resolutionMediaQueryList!==null&&(this._resolutionMediaQueryList.removeListener(this._resolutionListener),this._resolutionMediaQueryList=null)},h.prototype._reinstallResolutionListener=function(){this._uninstallResolutionListener(),this._installResolutionListener()},h.prototype._onResolutionChanged=function(){var t=this;this._observers.forEach(function(i){return i.next(t._window.devicePixelRatio)}),this._reinstallResolutionListener()},h}();function Us(h){return new js(h)}var Zs=function(){function h(t,i,s){var e;this._canvasElement=null,this._bitmapSizeChangedListeners=[],this._suggestedBitmapSize=null,this._suggestedBitmapSizeChangedListeners=[],this._devicePixelRatioObservable=null,this._canvasElementResizeObserver=null,this._canvasElement=t,this._canvasElementClientSize=S({width:this._canvasElement.clientWidth,height:this._canvasElement.clientHeight}),this._transformBitmapSize=i??function(n){return n},this._allowResizeObserver=(e=s==null?void 0:s.allowResizeObserver)!==null&&e!==void 0?e:!0,this._chooseAndInitObserver()}return h.prototype.dispose=function(){var t,i;if(this._canvasElement===null)throw new Error("Object is disposed");(t=this._canvasElementResizeObserver)===null||t===void 0||t.disconnect(),this._canvasElementResizeObserver=null,(i=this._devicePixelRatioObservable)===null||i===void 0||i.dispose(),this._devicePixelRatioObservable=null,this._suggestedBitmapSizeChangedListeners.length=0,this._bitmapSizeChangedListeners.length=0,this._canvasElement=null},Object.defineProperty(h.prototype,"canvasElement",{get:function(){if(this._canvasElement===null)throw new Error("Object is disposed");return this._canvasElement},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"canvasElementClientSize",{get:function(){return this._canvasElementClientSize},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"bitmapSize",{get:function(){return S({width:this.canvasElement.width,height:this.canvasElement.height})},enumerable:!1,configurable:!0}),h.prototype.resizeCanvasElement=function(t){this._canvasElementClientSize=S(t),this.canvasElement.style.width="".concat(this._canvasElementClientSize.width,"px"),this.canvasElement.style.height="".concat(this._canvasElementClientSize.height,"px"),this._invalidateBitmapSize()},h.prototype.subscribeBitmapSizeChanged=function(t){this._bitmapSizeChangedListeners.push(t)},h.prototype.unsubscribeBitmapSizeChanged=function(t){this._bitmapSizeChangedListeners=this._bitmapSizeChangedListeners.filter(function(i){return i!==t})},Object.defineProperty(h.prototype,"suggestedBitmapSize",{get:function(){return this._suggestedBitmapSize},enumerable:!1,configurable:!0}),h.prototype.subscribeSuggestedBitmapSizeChanged=function(t){this._suggestedBitmapSizeChangedListeners.push(t)},h.prototype.unsubscribeSuggestedBitmapSizeChanged=function(t){this._suggestedBitmapSizeChangedListeners=this._suggestedBitmapSizeChangedListeners.filter(function(i){return i!==t})},h.prototype.applySuggestedBitmapSize=function(){if(this._suggestedBitmapSize!==null){var t=this._suggestedBitmapSize;this._suggestedBitmapSize=null,this._resizeBitmap(t),this._emitSuggestedBitmapSizeChanged(t,this._suggestedBitmapSize)}},h.prototype._resizeBitmap=function(t){var i=this.bitmapSize;F(i,t)||(this.canvasElement.width=t.width,this.canvasElement.height=t.height,this._emitBitmapSizeChanged(i,t))},h.prototype._emitBitmapSizeChanged=function(t,i){var s=this;this._bitmapSizeChangedListeners.forEach(function(e){return e.call(s,t,i)})},h.prototype._suggestNewBitmapSize=function(t){var i=this._suggestedBitmapSize,s=S(this._transformBitmapSize(t,this._canvasElementClientSize)),e=F(this.bitmapSize,s)?null:s;i===null&&e===null||i!==null&&e!==null&&F(i,e)||(this._suggestedBitmapSize=e,this._emitSuggestedBitmapSizeChanged(i,e))},h.prototype._emitSuggestedBitmapSizeChanged=function(t,i){var s=this;this._suggestedBitmapSizeChangedListeners.forEach(function(e){return e.call(s,t,i)})},h.prototype._chooseAndInitObserver=function(){var t=this;if(!this._allowResizeObserver){this._initDevicePixelRatioObservable();return}Qs().then(function(i){return i?t._initResizeObserver():t._initDevicePixelRatioObservable()})},h.prototype._initDevicePixelRatioObservable=function(){var t=this;if(this._canvasElement!==null){var i=xi(this._canvasElement);if(i===null)throw new Error("No window is associated with the canvas");this._devicePixelRatioObservable=Us(i),this._devicePixelRatioObservable.subscribe(function(){return t._invalidateBitmapSize()}),this._invalidateBitmapSize()}},h.prototype._invalidateBitmapSize=function(){var t,i;if(this._canvasElement!==null){var s=xi(this._canvasElement);if(s!==null){var e=(i=(t=this._devicePixelRatioObservable)===null||t===void 0?void 0:t.value)!==null&&i!==void 0?i:s.devicePixelRatio,n=this._canvasElement.getClientRects(),r=n[0]!==void 0?Xs(n[0],e):S({width:this._canvasElementClientSize.width*e,height:this._canvasElementClientSize.height*e});this._suggestNewBitmapSize(r)}}},h.prototype._initResizeObserver=function(){var t=this;this._canvasElement!==null&&(this._canvasElementResizeObserver=new ResizeObserver(function(i){var s=i.find(function(r){return r.target===t._canvasElement});if(!(!s||!s.devicePixelContentBoxSize||!s.devicePixelContentBoxSize[0])){var e=s.devicePixelContentBoxSize[0],n=S({width:e.inlineSize,height:e.blockSize});t._suggestNewBitmapSize(n)}}),this._canvasElementResizeObserver.observe(this._canvasElement,{box:"device-pixel-content-box"}))},h}();function Ys(h,t){return new Zs(h,t.transform,t.options)}function xi(h){return h.ownerDocument.defaultView}function Qs(){return new Promise(function(h){var t=new ResizeObserver(function(i){h(i.every(function(s){return"devicePixelContentBoxSize"in s})),t.disconnect()});t.observe(document.body,{box:"device-pixel-content-box"})}).catch(function(){return!1})}function Xs(h,t){return S({width:Math.round(h.left*t+h.width*t)-Math.round(h.left*t),height:Math.round(h.top*t+h.height*t)-Math.round(h.top*t)})}var qs=function(){function h(t,i,s){if(i.width===0||i.height===0)throw new TypeError("Rendering target could only be created on a media with positive width and height");if(this._mediaSize=i,s.width===0||s.height===0)throw new TypeError("Rendering target could only be created using a bitmap with positive integer width and height");this._bitmapSize=s,this._context=t}return h.prototype.useMediaCoordinateSpace=function(t){try{return this._context.save(),this._context.setTransform(1,0,0,1,0,0),this._context.scale(this._horizontalPixelRatio,this._verticalPixelRatio),t({context:this._context,mediaSize:this._mediaSize})}finally{this._context.restore()}},h.prototype.useBitmapCoordinateSpace=function(t){try{return this._context.save(),this._context.setTransform(1,0,0,1,0,0),t({context:this._context,mediaSize:this._mediaSize,bitmapSize:this._bitmapSize,horizontalPixelRatio:this._horizontalPixelRatio,verticalPixelRatio:this._verticalPixelRatio})}finally{this._context.restore()}},Object.defineProperty(h.prototype,"_horizontalPixelRatio",{get:function(){return this._bitmapSize.width/this._mediaSize.width},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"_verticalPixelRatio",{get:function(){return this._bitmapSize.height/this._mediaSize.height},enumerable:!1,configurable:!0}),h}();function H(h,t){var i=h.canvasElementClientSize;if(i.width===0||i.height===0)return null;var s=h.bitmapSize;if(s.width===0||s.height===0)return null;var e=h.canvasElement.getContext("2d",t);return e===null?null:new qs(e,i,s)}/*! * @license * TradingView Lightweight Charts™ v4.1.3 * Copyright (c) 2024 TradingView, Inc. * Licensed under Apache License 2.0 https://www.apache.org/licenses/LICENSE-2.0 */const Js={upColor:"#26a69a",downColor:"#ef5350",wickVisible:!0,borderVisible:!0,borderColor:"#378658",borderUpColor:"#26a69a",borderDownColor:"#ef5350",wickColor:"#737375",wickUpColor:"#26a69a",wickDownColor:"#ef5350"},Ks={upColor:"#26a69a",downColor:"#ef5350",openVisible:!0,thinBars:!0},Gs={color:"#2196f3",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:"",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:"",lastPriceAnimation:0,pointMarkersVisible:!1},te={topColor:"rgba( 46, 220, 135, 0.4)",bottomColor:"rgba( 40, 221, 100, 0)",invertFilledArea:!1,lineColor:"#33D778",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:"",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:"",lastPriceAnimation:0,pointMarkersVisible:!1},ie={baseValue:{type:"price",price:0},topFillColor1:"rgba(38, 166, 154, 0.28)",topFillColor2:"rgba(38, 166, 154, 0.05)",topLineColor:"rgba(38, 166, 154, 1)",bottomFillColor1:"rgba(239, 83, 80, 0.05)",bottomFillColor2:"rgba(239, 83, 80, 0.28)",bottomLineColor:"rgba(239, 83, 80, 1)",lineWidth:3,lineStyle:0,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:"",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:"",lastPriceAnimation:0,pointMarkersVisible:!1},se={color:"#26a69a",base:0},gs={color:"#2196f3"},ws={title:"",visible:!0,lastValueVisible:!0,priceLineVisible:!0,priceLineSource:0,priceLineWidth:1,priceLineColor:"",priceLineStyle:2,baseLineVisible:!0,baseLineWidth:1,baseLineColor:"#B2B5BE",baseLineStyle:0,priceFormat:{type:"price",precision:2,minMove:.01}};var Ci,Ei;function j(h,t){const i={0:[],1:[h.lineWidth,h.lineWidth],2:[2*h.lineWidth,2*h.lineWidth],3:[6*h.lineWidth,6*h.lineWidth],4:[h.lineWidth,4*h.lineWidth]}[t];h.setLineDash(i)}function _s(h,t,i,s){h.beginPath();const e=h.lineWidth%2?.5:0;h.moveTo(i,t+e),h.lineTo(s,t+e),h.stroke()}function A(h,t){if(!h)throw new Error("Assertion failed"+(t?": "+t:""))}function O(h){if(h===void 0)throw new Error("Value is undefined");return h}function p(h){if(h===null)throw new Error("Value is null");return h}function X(h){return p(O(h))}(function(h){h[h.Simple=0]="Simple",h[h.WithSteps=1]="WithSteps",h[h.Curved=2]="Curved"})(Ci||(Ci={})),function(h){h[h.Solid=0]="Solid",h[h.Dotted=1]="Dotted",h[h.Dashed=2]="Dashed",h[h.LargeDashed=3]="LargeDashed",h[h.SparseDotted=4]="SparseDotted"}(Ei||(Ei={}));const Oi={khaki:"#f0e68c",azure:"#f0ffff",aliceblue:"#f0f8ff",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",gray:"#808080",green:"#008000",honeydew:"#f0fff0",floralwhite:"#fffaf0",lightblue:"#add8e6",lightcoral:"#f08080",lemonchiffon:"#fffacd",hotpink:"#ff69b4",lightyellow:"#ffffe0",greenyellow:"#adff2f",lightgoldenrodyellow:"#fafad2",limegreen:"#32cd32",linen:"#faf0e6",lightcyan:"#e0ffff",magenta:"#f0f",maroon:"#800000",olive:"#808000",orange:"#ffa500",oldlace:"#fdf5e6",mediumblue:"#0000cd",transparent:"#0000",lime:"#0f0",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",midnightblue:"#191970",orchid:"#da70d6",mediumorchid:"#ba55d3",mediumturquoise:"#48d1cc",orangered:"#ff4500",royalblue:"#4169e1",powderblue:"#b0e0e6",red:"#f00",coral:"#ff7f50",turquoise:"#40e0d0",white:"#fff",whitesmoke:"#f5f5f5",wheat:"#f5deb3",teal:"#008080",steelblue:"#4682b4",bisque:"#ffe4c4",aquamarine:"#7fffd4",aqua:"#0ff",sienna:"#a0522d",silver:"#c0c0c0",springgreen:"#00ff7f",antiquewhite:"#faebd7",burlywood:"#deb887",brown:"#a52a2a",beige:"#f5f5dc",chocolate:"#d2691e",chartreuse:"#7fff00",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cadetblue:"#5f9ea0",tomato:"#ff6347",fuchsia:"#f0f",blue:"#00f",salmon:"#fa8072",blanchedalmond:"#ffebcd",slateblue:"#6a5acd",slategray:"#708090",thistle:"#d8bfd8",tan:"#d2b48c",cyan:"#0ff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",blueviolet:"#8a2be2",black:"#000",darkmagenta:"#8b008b",darkslateblue:"#483d8b",darkkhaki:"#bdb76b",darkorchid:"#9932cc",darkorange:"#ff8c00",darkgreen:"#006400",darkred:"#8b0000",dodgerblue:"#1e90ff",darkslategray:"#2f4f4f",dimgray:"#696969",deepskyblue:"#00bfff",firebrick:"#b22222",forestgreen:"#228b22",indigo:"#4b0082",ivory:"#fffff0",lavenderblush:"#fff0f5",feldspar:"#d19275",indianred:"#cd5c5c",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightskyblue:"#87cefa",lightslategray:"#789",lightslateblue:"#8470ff",snow:"#fffafa",lightseagreen:"#20b2aa",lightsalmon:"#ffa07a",darksalmon:"#e9967a",darkviolet:"#9400d3",mediumpurple:"#9370d8",mediumaquamarine:"#66cdaa",skyblue:"#87ceeb",lavender:"#e6e6fa",lightsteelblue:"#b0c4de",mediumvioletred:"#c71585",mintcream:"#f5fffa",navajowhite:"#ffdead",navy:"#000080",olivedrab:"#6b8e23",palevioletred:"#d87093",violetred:"#d02090",yellow:"#ff0",yellowgreen:"#9acd32",lawngreen:"#7cfc00",pink:"#ffc0cb",paleturquoise:"#afeeee",palegoldenrod:"#eee8aa",darkolivegreen:"#556b2f",darkseagreen:"#8fbc8f",darkturquoise:"#00ced1",peachpuff:"#ffdab9",deeppink:"#ff1493",violet:"#ee82ee",palegreen:"#98fb98",mediumseagreen:"#3cb371",peru:"#cd853f",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",purple:"#800080",seagreen:"#2e8b57",seashell:"#fff5ee",papayawhip:"#ffefd5",mediumslateblue:"#7b68ee",plum:"#dda0dd",mediumspringgreen:"#00fa9a"};function N(h){return h<0?0:h>255?255:Math.round(h)||0}function Ss(h){return h<=0||h>0?h<0?0:h>1?1:Math.round(1e4*h)/1e4:0}const ee=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,he=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,ne=/^rgb\(\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*\)$/,re=/^rgba\(\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?[\d]{0,10}(?:\.\d+)?)\s*\)$/;function zt(h){(h=h.toLowerCase())in Oi&&(h=Oi[h]);{const t=re.exec(h)||ne.exec(h);if(t)return[N(parseInt(t[1],10)),N(parseInt(t[2],10)),N(parseInt(t[3],10)),Ss(t.length<5?1:parseFloat(t[4]))]}{const t=he.exec(h);if(t)return[N(parseInt(t[1],16)),N(parseInt(t[2],16)),N(parseInt(t[3],16)),1]}{const t=ee.exec(h);if(t)return[N(17*parseInt(t[1],16)),N(17*parseInt(t[2],16)),N(17*parseInt(t[3],16)),1]}throw new Error(`Cannot parse color: ${h}`)}function Et(h){const t=zt(h);return{t:`rgb(${t[0]}, ${t[1]}, ${t[2]})`,i:(i=t,.199*i[0]+.687*i[1]+.114*i[2]>160?"black":"white")};var i}class M{constructor(){this.h=[]}l(t,i,s){const e={o:t,_:i,u:s===!0};this.h.push(e)}v(t){const i=this.h.findIndex(s=>t===s.o);i>-1&&this.h.splice(i,1)}p(t){this.h=this.h.filter(i=>i._!==t)}m(t,i,s){const e=[...this.h];this.h=this.h.filter(n=>!n.u),e.forEach(n=>n.o(t,i,s))}M(){return this.h.length>0}S(){this.h=[]}}function R(h,...t){for(const i of t)for(const s in i)i[s]!==void 0&&(typeof i[s]!="object"||h[s]===void 0||Array.isArray(i[s])?h[s]=i[s]:R(h[s],i[s]));return h}function P(h){return typeof h=="number"&&isFinite(h)}function rt(h){return typeof h=="number"&&h%1==0}function ut(h){return typeof h=="string"}function dt(h){return typeof h=="boolean"}function W(h){const t=h;if(!t||typeof t!="object")return t;let i,s,e;for(s in i=Array.isArray(t)?[]:{},t)t.hasOwnProperty(s)&&(e=t[s],i[s]=e&&typeof e=="object"?W(e):e);return i}function oe(h){return h!==null}function ot(h){return h===null?void 0:h}const ai="-apple-system, BlinkMacSystemFont, 'Trebuchet MS', Roboto, Ubuntu, sans-serif";function K(h,t,i){return t===void 0&&(t=ai),`${i=i!==void 0?`${i} `:""}${h}px ${t}`}class le{constructor(t){this.k={C:1,T:5,P:NaN,R:"",D:"",O:"",A:"",V:0,B:0,I:0,L:0,N:0},this.F=t}W(){const t=this.k,i=this.j(),s=this.H();return t.P===i&&t.D===s||(t.P=i,t.D=s,t.R=K(i,s),t.L=2.5/12*i,t.V=t.L,t.B=i/12*t.T,t.I=i/12*t.T,t.N=0),t.O=this.$(),t.A=this.U(),this.k}$(){return this.F.W().layout.textColor}U(){return this.F.q()}j(){return this.F.W().layout.fontSize}H(){return this.F.W().layout.fontFamily}}class ui{constructor(){this.Y=[]}X(t){this.Y=t}K(t,i,s){this.Y.forEach(e=>{e.K(t,i,s)})}}class B{K(t,i,s){t.useBitmapCoordinateSpace(e=>this.Z(e,i,s))}}class ae extends B{constructor(){super(...arguments),this.G=null}J(t){this.G=t}Z({context:t,horizontalPixelRatio:i,verticalPixelRatio:s}){if(this.G===null||this.G.tt===null)return;const e=this.G.tt,n=this.G,r=Math.max(1,Math.floor(i))%2/2,o=l=>{t.beginPath();for(let a=e.to-1;a>=e.from;--a){const u=n.it[a],c=Math.round(u.nt*i)+r,f=u.st*s,d=l*s+r;t.moveTo(c,f),t.arc(c,f,d,0,2*Math.PI)}t.fill()};n.et>0&&(t.fillStyle=n.rt,o(n.ht+n.et)),t.fillStyle=n.lt,o(n.ht)}}function ue(){return{it:[{nt:0,st:0,ot:0,_t:0}],lt:"",rt:"",ht:0,et:0,tt:null}}const ce={from:0,to:1};class fe{constructor(t,i){this.ut=new ui,this.ct=[],this.dt=[],this.ft=!0,this.F=t,this.vt=i,this.ut.X(this.ct)}bt(t){const i=this.F.wt();i.length!==this.ct.length&&(this.dt=i.map(ue),this.ct=this.dt.map(s=>{const e=new ae;return e.J(s),e}),this.ut.X(this.ct)),this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.ut}Mt(){const t=this.vt.W().mode===2,i=this.F.wt(),s=this.vt.xt(),e=this.F.St();i.forEach((n,r)=>{var o;const l=this.dt[r],a=n.kt(s);if(t||a===null||!n.yt())return void(l.tt=null);const u=p(n.Ct());l.lt=a.Tt,l.ht=a.ht,l.et=a.Pt,l.it[0]._t=a._t,l.it[0].st=n.Dt().Rt(a._t,u.Ot),l.rt=(o=a.At)!==null&&o!==void 0?o:this.F.Vt(l.it[0].st/n.Dt().Bt()),l.it[0].ot=s,l.it[0].nt=e.It(s),l.tt=ce})}}class de extends B{constructor(t){super(),this.zt=t}Z({context:t,bitmapSize:i,horizontalPixelRatio:s,verticalPixelRatio:e}){if(this.zt===null)return;const n=this.zt.Lt.yt,r=this.zt.Et.yt;if(!n&&!r)return;const o=Math.round(this.zt.nt*s),l=Math.round(this.zt.st*e);t.lineCap="butt",n&&o>=0&&(t.lineWidth=Math.floor(this.zt.Lt.et*s),t.strokeStyle=this.zt.Lt.O,t.fillStyle=this.zt.Lt.O,j(t,this.zt.Lt.Nt),function(a,u,c,f){a.beginPath();const d=a.lineWidth%2?.5:0;a.moveTo(u+d,c),a.lineTo(u+d,f),a.stroke()}(t,o,0,i.height)),r&&l>=0&&(t.lineWidth=Math.floor(this.zt.Et.et*e),t.strokeStyle=this.zt.Et.O,t.fillStyle=this.zt.Et.O,j(t,this.zt.Et.Nt),_s(t,l,0,i.width))}}class me{constructor(t){this.ft=!0,this.Ft={Lt:{et:1,Nt:0,O:"",yt:!1},Et:{et:1,Nt:0,O:"",yt:!1},nt:0,st:0},this.Wt=new de(this.Ft),this.jt=t}bt(){this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.Wt}Mt(){const t=this.jt.yt(),i=p(this.jt.Ht()),s=i.$t().W().crosshair,e=this.Ft;if(s.mode===2)return e.Et.yt=!1,void(e.Lt.yt=!1);e.Et.yt=t&&this.jt.Ut(i),e.Lt.yt=t&&this.jt.qt(),e.Et.et=s.horzLine.width,e.Et.Nt=s.horzLine.style,e.Et.O=s.horzLine.color,e.Lt.et=s.vertLine.width,e.Lt.Nt=s.vertLine.style,e.Lt.O=s.vertLine.color,e.nt=this.jt.Yt(),e.st=this.jt.Xt()}}function ve(h,t,i,s,e,n){h.fillRect(t+n,i,s-2*n,n),h.fillRect(t+n,i+e-n,s-2*n,n),h.fillRect(t,i,n,e),h.fillRect(t+s-n,i,n,e)}function Ot(h,t,i,s,e,n){h.save(),h.globalCompositeOperation="copy",h.fillStyle=n,h.fillRect(t,i,s,e),h.restore()}function ki(h,t){return h.map(i=>i===0?i:i+t)}function It(h,t,i,s,e,n){h.beginPath(),h.lineTo(t+s-n[1],i),n[1]!==0&&h.arcTo(t+s,i,t+s,i+n[1],n[1]),h.lineTo(t+s,i+e-n[2]),n[2]!==0&&h.arcTo(t+s,i+e,t+s-n[2],i+e,n[2]),h.lineTo(t+n[3],i+e),n[3]!==0&&h.arcTo(t,i+e,t,i+e-n[3],n[3]),h.lineTo(t,i+n[0]),n[0]!==0&&h.arcTo(t,i,t+n[0],i,n[0])}function Ti(h,t,i,s,e,n,r=0,o=[0,0,0,0],l=""){if(h.save(),!r||!l||l===n)return It(h,t,i,s,e,o),h.fillStyle=n,h.fill(),void h.restore();const a=r/2;n!=="transparent"&&(It(h,t+r,i+r,s-2*r,e-2*r,ki(o,-r)),h.fillStyle=n,h.fill()),l!=="transparent"&&(It(h,t+a,i+a,s-r,e-r,ki(o,-a)),h.lineWidth=r,h.strokeStyle=l,h.closePath(),h.stroke()),h.restore()}function ys(h,t,i,s,e,n,r){h.save(),h.globalCompositeOperation="copy";const o=h.createLinearGradient(0,0,0,e);o.addColorStop(0,n),o.addColorStop(1,r),h.fillStyle=o,h.fillRect(t,i,s,e),h.restore()}class Ni{constructor(t,i){this.J(t,i)}J(t,i){this.zt=t,this.Kt=i}Bt(t,i){return this.zt.yt?t.P+t.L+t.V:0}K(t,i,s,e){if(!this.zt.yt||this.zt.Zt.length===0)return;const n=this.zt.O,r=this.Kt.t,o=t.useBitmapCoordinateSpace(l=>{const a=l.context;a.font=i.R;const u=this.Gt(l,i,s,e),c=u.Jt,f=(d,m)=>{u.Qt?Ti(a,c.ti,c.ii,c.ni,c.si,d,c.ei,[c.ht,0,0,c.ht],m):Ti(a,c.ri,c.ii,c.ni,c.si,d,c.ei,[0,c.ht,c.ht,0],m)};return f(r,"transparent"),this.zt.hi&&(a.fillStyle=n,a.fillRect(c.ri,c.li,c.ai-c.ri,c.oi)),f("transparent",r),this.zt._i&&(a.fillStyle=i.A,a.fillRect(u.Qt?c.ui-c.ei:0,c.ii,c.ei,c.ci-c.ii)),u});t.useMediaCoordinateSpace(({context:l})=>{const a=o.di;l.font=i.R,l.textAlign=o.Qt?"right":"left",l.textBaseline="middle",l.fillStyle=n,l.fillText(this.zt.Zt,a.fi,(a.ii+a.ci)/2+a.vi)})}Gt(t,i,s,e){var n;const{context:r,bitmapSize:o,mediaSize:l,horizontalPixelRatio:a,verticalPixelRatio:u}=t,c=this.zt.hi||!this.zt.pi?i.T:0,f=this.zt.mi?i.C:0,d=i.L+this.Kt.bi,m=i.V+this.Kt.wi,v=i.B,b=i.I,g=this.zt.Zt,w=i.P,y=s.gi(r,g),_=Math.ceil(s.Mi(r,g)),z=w+d+m,T=i.C+v+b+_+c,E=Math.max(1,Math.floor(u));let C=Math.round(z*u);C%2!=E%2&&(C+=1);const D=f>0?Math.max(1,Math.floor(f*a)):0,Y=Math.round(T*a),Si=Math.round(c*a),Hs=(n=this.Kt.xi)!==null&&n!==void 0?n:this.Kt.Si,yi=Math.round(Hs*u)-Math.floor(.5*u),Bt=Math.floor(yi+E/2-C/2),Mi=Bt+C,ft=e==="right",zi=ft?l.width-f:f,tt=ft?o.width-D:D;let Lt,Pt,Wt;return ft?(Lt=tt-Y,Pt=tt-Si,Wt=zi-c-v-f):(Lt=tt+Y,Pt=tt+Si,Wt=zi+c+v),{Qt:ft,Jt:{ii:Bt,li:yi,ci:Mi,ni:Y,si:C,ht:2*a,ei:D,ti:Lt,ri:tt,ai:Pt,oi:E,ui:o.width},di:{ii:Bt/u,ci:Mi/u,fi:Wt,vi:y}}}}class kt{constructor(t){this.ki={Si:0,t:"#000",wi:0,bi:0},this.yi={Zt:"",yt:!1,hi:!0,pi:!1,At:"",O:"#FFF",_i:!1,mi:!1},this.Ci={Zt:"",yt:!1,hi:!1,pi:!0,At:"",O:"#FFF",_i:!0,mi:!0},this.ft=!0,this.Ti=new(t||Ni)(this.yi,this.ki),this.Pi=new(t||Ni)(this.Ci,this.ki)}Zt(){return this.Ri(),this.yi.Zt}Si(){return this.Ri(),this.ki.Si}bt(){this.ft=!0}Bt(t,i=!1){return Math.max(this.Ti.Bt(t,i),this.Pi.Bt(t,i))}Di(){return this.ki.xi||0}Oi(t){this.ki.xi=t}Ai(){return this.Ri(),this.yi.yt||this.Ci.yt}Vi(){return this.Ri(),this.yi.yt}gt(t){return this.Ri(),this.yi.hi=this.yi.hi&&t.W().ticksVisible,this.Ci.hi=this.Ci.hi&&t.W().ticksVisible,this.Ti.J(this.yi,this.ki),this.Pi.J(this.Ci,this.ki),this.Ti}Bi(){return this.Ri(),this.Ti.J(this.yi,this.ki),this.Pi.J(this.Ci,this.ki),this.Pi}Ri(){this.ft&&(this.yi.hi=!0,this.Ci.hi=!1,this.Ii(this.yi,this.Ci,this.ki))}}class pe extends kt{constructor(t,i,s){super(),this.jt=t,this.zi=i,this.Li=s}Ii(t,i,s){if(t.yt=!1,this.jt.W().mode===2)return;const e=this.jt.W().horzLine;if(!e.labelVisible)return;const n=this.zi.Ct();if(!this.jt.yt()||this.zi.Ei()||n===null)return;const r=Et(e.labelBackgroundColor);s.t=r.t,t.O=r.i;const o=2/12*this.zi.P();s.bi=o,s.wi=o;const l=this.Li(this.zi);s.Si=l.Si,t.Zt=this.zi.Ni(l._t,n),t.yt=!0}}const be=/[1-9]/g;class Ms{constructor(){this.zt=null}J(t){this.zt=t}K(t,i){if(this.zt===null||this.zt.yt===!1||this.zt.Zt.length===0)return;const s=t.useMediaCoordinateSpace(({context:f})=>(f.font=i.R,Math.round(i.Fi.Mi(f,p(this.zt).Zt,be))));if(s<=0)return;const e=i.Wi,n=s+2*e,r=n/2,o=this.zt.ji;let l=this.zt.Si,a=Math.floor(l-r)+.5;a<0?(l+=Math.abs(0-a),a=Math.floor(l-r)+.5):a+n>o&&(l-=Math.abs(o-(a+n)),a=Math.floor(l-r)+.5);const u=a+n,c=Math.ceil(0+i.C+i.T+i.L+i.P+i.V);t.useBitmapCoordinateSpace(({context:f,horizontalPixelRatio:d,verticalPixelRatio:m})=>{const v=p(this.zt);f.fillStyle=v.t;const b=Math.round(a*d),g=Math.round(0*m),w=Math.round(u*d),y=Math.round(c*m),_=Math.round(2*d);if(f.beginPath(),f.moveTo(b,g),f.lineTo(b,y-_),f.arcTo(b,y,b+_,y,_),f.lineTo(w-_,y),f.arcTo(w,y,w,y-_,_),f.lineTo(w,g),f.fill(),v.hi){const z=Math.round(v.Si*d),T=g,E=Math.round((T+i.T)*m);f.fillStyle=v.O;const C=Math.max(1,Math.floor(d)),D=Math.floor(.5*d);f.fillRect(z-D,T,C,E-T)}}),t.useMediaCoordinateSpace(({context:f})=>{const d=p(this.zt),m=0+i.C+i.T+i.L+i.P/2;f.font=i.R,f.textAlign="left",f.textBaseline="middle",f.fillStyle=d.O;const v=i.Fi.gi(f,"Apr0");f.translate(a+e,m+v),f.fillText(d.Zt,0,0)})}}class ge{constructor(t,i,s){this.ft=!0,this.Wt=new Ms,this.Ft={yt:!1,t:"#4c525e",O:"white",Zt:"",ji:0,Si:NaN,hi:!0},this.vt=t,this.Hi=i,this.Li=s}bt(){this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.Wt.J(this.Ft),this.Wt}Mt(){const t=this.Ft;if(t.yt=!1,this.vt.W().mode===2)return;const i=this.vt.W().vertLine;if(!i.labelVisible)return;const s=this.Hi.St();if(s.Ei())return;t.ji=s.ji();const e=this.Li();if(e===null)return;t.Si=e.Si;const n=s.$i(this.vt.xt());t.Zt=s.Ui(p(n)),t.yt=!0;const r=Et(i.labelBackgroundColor);t.t=r.t,t.O=r.i,t.hi=s.W().ticksVisible}}class ci{constructor(){this.qi=null,this.Yi=0}Xi(){return this.Yi}Ki(t){this.Yi=t}Dt(){return this.qi}Zi(t){this.qi=t}Gi(t){return[]}Ji(){return[]}yt(){return!0}}var Ri;(function(h){h[h.Normal=0]="Normal",h[h.Magnet=1]="Magnet",h[h.Hidden=2]="Hidden"})(Ri||(Ri={}));class we extends ci{constructor(t,i){super(),this.Qi=null,this.tn=NaN,this.nn=0,this.sn=!0,this.en=new Map,this.rn=!1,this.hn=NaN,this.ln=NaN,this.an=NaN,this.on=NaN,this.Hi=t,this._n=i,this.un=new fe(t,this),this.cn=((e,n)=>r=>{const o=n(),l=e();if(r===p(this.Qi).dn())return{_t:l,Si:o};{const a=p(r.Ct());return{_t:r.fn(o,a),Si:o}}})(()=>this.tn,()=>this.ln);const s=((e,n)=>()=>{const r=this.Hi.St().vn(e()),o=n();return r&&Number.isFinite(o)?{ot:r,Si:o}:null})(()=>this.nn,()=>this.Yt());this.pn=new ge(this,t,s),this.mn=new me(this)}W(){return this._n}bn(t,i){this.an=t,this.on=i}wn(){this.an=NaN,this.on=NaN}gn(){return this.an}Mn(){return this.on}xn(t,i,s){this.rn||(this.rn=!0),this.sn=!0,this.Sn(t,i,s)}xt(){return this.nn}Yt(){return this.hn}Xt(){return this.ln}yt(){return this.sn}kn(){this.sn=!1,this.yn(),this.tn=NaN,this.hn=NaN,this.ln=NaN,this.Qi=null,this.wn()}Cn(t){return this.Qi!==null?[this.mn,this.un]:[]}Ut(t){return t===this.Qi&&this._n.horzLine.visible}qt(){return this._n.vertLine.visible}Tn(t,i){this.sn&&this.Qi===t||this.en.clear();const s=[];return this.Qi===t&&s.push(this.Pn(this.en,i,this.cn)),s}Ji(){return this.sn?[this.pn]:[]}Ht(){return this.Qi}Rn(){this.mn.bt(),this.en.forEach(t=>t.bt()),this.pn.bt(),this.un.bt()}Dn(t){return t&&!t.dn().Ei()?t.dn():null}Sn(t,i,s){this.On(t,i,s)&&this.Rn()}On(t,i,s){const e=this.hn,n=this.ln,r=this.tn,o=this.nn,l=this.Qi,a=this.Dn(s);this.nn=t,this.hn=isNaN(t)?NaN:this.Hi.St().It(t),this.Qi=s;const u=a!==null?a.Ct():null;return a!==null&&u!==null?(this.tn=i,this.ln=a.Rt(i,u)):(this.tn=NaN,this.ln=NaN),e!==this.hn||n!==this.ln||o!==this.nn||r!==this.tn||l!==this.Qi}yn(){const t=this.Hi.wt().map(s=>s.Vn().An()).filter(oe),i=t.length===0?null:Math.max(...t);this.nn=i!==null?i:NaN}Pn(t,i,s){let e=t.get(i);return e===void 0&&(e=new pe(this,i,s),t.set(i,e)),e}}function Tt(h){return h==="left"||h==="right"}class x{constructor(t){this.Bn=new Map,this.In=[],this.zn=t}Ln(t,i){const s=function(e,n){return e===void 0?n:{En:Math.max(e.En,n.En),Nn:e.Nn||n.Nn}}(this.Bn.get(t),i);this.Bn.set(t,s)}Fn(){return this.zn}Wn(t){const i=this.Bn.get(t);return i===void 0?{En:this.zn}:{En:Math.max(this.zn,i.En),Nn:i.Nn}}jn(){this.Hn(),this.In=[{$n:0}]}Un(t){this.Hn(),this.In=[{$n:1,Ot:t}]}qn(t){this.Yn(),this.In.push({$n:5,Ot:t})}Hn(){this.Yn(),this.In.push({$n:6})}Xn(){this.Hn(),this.In=[{$n:4}]}Kn(t){this.Hn(),this.In.push({$n:2,Ot:t})}Zn(t){this.Hn(),this.In.push({$n:3,Ot:t})}Gn(){return this.In}Jn(t){for(const i of t.In)this.Qn(i);this.zn=Math.max(this.zn,t.zn),t.Bn.forEach((i,s)=>{this.Ln(s,i)})}static ts(){return new x(2)}static ns(){return new x(3)}Qn(t){switch(t.$n){case 0:this.jn();break;case 1:this.Un(t.Ot);break;case 2:this.Kn(t.Ot);break;case 3:this.Zn(t.Ot);break;case 4:this.Xn();break;case 5:this.qn(t.Ot);break;case 6:this.Yn()}}Yn(){const t=this.In.findIndex(i=>i.$n===5);t!==-1&&this.In.splice(t,1)}}const Bi=".";function I(h,t){if(!P(h))return"n/a";if(!rt(t))throw new TypeError("invalid length");if(t<0||t>16)throw new TypeError("invalid length");return t===0?h.toString():("0000000000000000"+h.toString()).slice(-t)}class Nt{constructor(t,i){if(i||(i=1),P(t)&&rt(t)||(t=100),t<0)throw new TypeError("invalid base");this.zi=t,this.ss=i,this.es()}format(t){const i=t<0?"−":"";return t=Math.abs(t),i+this.rs(t)}es(){if(this.hs=0,this.zi>0&&this.ss>0){let t=this.zi;for(;t>1;)t/=10,this.hs++}}rs(t){const i=this.zi/this.ss;let s=Math.floor(t),e="";const n=this.hs!==void 0?this.hs:NaN;if(i>1){let r=+(Math.round(t*i)-s*i).toFixed(this.hs);r>=i&&(r-=i,s+=1),e=Bi+I(+r.toFixed(this.hs)*this.ss,n)}else s=Math.round(s*i)/i,n>0&&(e=Bi+I(0,n));return s.toFixed(0)+e}}class zs extends Nt{constructor(t=100){super(t)}format(t){return`${super.format(t)}%`}}class _e{constructor(t){this.ls=t}format(t){let i="";return t<0&&(i="-",t=-t),t<995?i+this.os(t):t<999995?i+this.os(t/1e3)+"K":t<999999995?(t=1e3*Math.round(t/1e3),i+this.os(t/1e6)+"M"):(t=1e6*Math.round(t/1e6),i+this.os(t/1e9)+"B")}os(t){let i;const s=Math.pow(10,this.ls);return i=(t=Math.round(t*s)/s)>=1e-15&&t<1?t.toFixed(this.ls).replace(/\.?0+$/,""):String(t),i.replace(/(\.[1-9]*)0+$/,(e,n)=>n)}}function xs(h,t,i,s,e,n,r){if(t.length===0||s.from>=t.length||s.to<=0)return;const{context:o,horizontalPixelRatio:l,verticalPixelRatio:a}=h,u=t[s.from];let c=n(h,u),f=u;if(s.to-s.from<2){const d=e/2;o.beginPath();const m={nt:u.nt-d,st:u.st},v={nt:u.nt+d,st:u.st};o.moveTo(m.nt*l,m.st*a),o.lineTo(v.nt*l,v.st*a),r(h,c,m,v)}else{const d=(v,b)=>{r(h,c,f,b),o.beginPath(),c=v,f=b};let m=f;o.beginPath(),o.moveTo(u.nt*l,u.st*a);for(let v=s.from+1;v=m.from;--T){const E=f[T];if(E){const C=v(c,E);C!==y&&(w.beginPath(),y!==null&&w.fill(),w.fillStyle=C,y=C);const D=Math.round(E.nt*b)+_,Y=E.st*g;w.moveTo(D,Y),w.arc(D,Y,z,0,2*Math.PI)}}w.fill()}(t,i,l,s,u)}}class ks extends Os{Ps(t,i){return i.lt}}function Ts(h,t,i,s,e=0,n=t.length){let r=n-e;for(;0>1,l=e+o;s(t[l],i)===h?(e=l+1,r-=o+1):r=o}return e}const ct=Ts.bind(null,!0),Ns=Ts.bind(null,!1);function xe(h,t){return h.ot0&&n=s&&(o=n-1),r>0&&rObject.assign(Object.assign({},t),this.Is.js().Ws(t.ot)))}Hs(){this.Bs=null}Es(){this.Os&&(this.$s(),this.Os=!1),this.As&&(this.Fs(),this.As=!1),this.Ds&&(this.Us(),this.Ds=!1)}Us(){const t=this.Is.Dt(),i=this.zs.St();if(this.Hs(),i.Ei()||t.Ei())return;const s=i.qs();if(s===null||this.Is.Vn().Ys()===0)return;const e=this.Is.Ct();e!==null&&(this.Bs=Rs(this.Vs,s,this.Ls),this.Xs(t,i,e.Ot),this.Ks())}}class Rt extends di{constructor(t,i){super(t,i,!0)}Xs(t,i,s){i.Zs(this.Vs,ot(this.Bs)),t.Gs(this.Vs,s,ot(this.Bs))}Js(t,i){return{ot:t,_t:i,nt:NaN,st:NaN}}$s(){const t=this.Is.js();this.Vs=this.Is.Vn().Qs().map(i=>{const s=i.Ot[3];return this.te(i.ie,s,t)})}}class Ee extends Rt{constructor(t,i){super(t,i),this.Ns=new ui,this.ne=new Me,this.se=new ks,this.Ns.X([this.ne,this.se])}te(t,i,s){return Object.assign(Object.assign({},this.Js(t,i)),s.Ws(t))}Ks(){const t=this.Is.W();this.ne.J({us:t.lineType,it:this.Vs,Nt:t.lineStyle,et:t.lineWidth,cs:null,ds:t.invertFilledArea,tt:this.Bs,_s:this.zs.St().ee()}),this.se.J({us:t.lineVisible?t.lineType:void 0,it:this.Vs,Nt:t.lineStyle,et:t.lineWidth,tt:this.Bs,_s:this.zs.St().ee(),Ts:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0})}}class Oe extends B{constructor(){super(...arguments),this.zt=null,this.re=0,this.he=0}J(t){this.zt=t}Z({context:t,horizontalPixelRatio:i,verticalPixelRatio:s}){if(this.zt===null||this.zt.Vn.length===0||this.zt.tt===null)return;this.re=this.le(i),this.re>=2&&Math.max(1,Math.floor(i))%2!=this.re%2&&this.re--,this.he=this.zt.ae?Math.min(this.re,Math.floor(i)):this.re;let e=null;const n=this.he<=this.re&&this.zt.ee>=Math.floor(1.5*i);for(let r=this.zt.tt.from;rv+g-1&&(C=v+g-1,E=C-c+1),t.fillRect(T,E,u-T,C-E+1)}const y=a+w;let _=Math.max(v,Math.round(o.fe*s)-l),z=_+c-1;z>v+g-1&&(z=v+g-1,_=z-c+1),t.fillRect(f+1,_,y-f,z-_+1)}}}le(t){const i=Math.floor(t);return Math.max(i,Math.floor(function(s,e){return Math.floor(.3*s*e)}(p(this.zt).ee,t)))}}class Bs extends di{constructor(t,i){super(t,i,!1)}Xs(t,i,s){i.Zs(this.Vs,ot(this.Bs)),t.ve(this.Vs,s,ot(this.Bs))}pe(t,i,s){return{ot:t,me:i.Ot[0],be:i.Ot[1],we:i.Ot[2],ge:i.Ot[3],nt:NaN,de:NaN,_e:NaN,ue:NaN,fe:NaN}}$s(){const t=this.Is.js();this.Vs=this.Is.Vn().Qs().map(i=>this.te(i.ie,i,t))}}class ke extends Bs{constructor(){super(...arguments),this.Ns=new Oe}te(t,i,s){return Object.assign(Object.assign({},this.pe(t,i,s)),s.Ws(t))}Ks(){const t=this.Is.W();this.Ns.J({Vn:this.Vs,ee:this.zs.St().ee(),ce:t.openVisible,ae:t.thinBars,tt:this.Bs})}}class Te extends Cs{constructor(){super(...arguments),this.ks=new fi}fs(t,i){const s=this.G;return this.ks.vs(t,{bs:i.Me,ws:i.xe,gs:i.Se,Ms:i.ke,xs:t.bitmapSize.height,cs:s.cs})}}class Ne extends Os{constructor(){super(...arguments),this.ye=new fi}Ps(t,i){const s=this.G;return this.ye.vs(t,{bs:i.Ce,ws:i.Ce,gs:i.Te,Ms:i.Te,xs:t.bitmapSize.height,cs:s.cs})}}class Re extends Rt{constructor(t,i){super(t,i),this.Ns=new ui,this.Pe=new Te,this.Re=new Ne,this.Ns.X([this.Pe,this.Re])}te(t,i,s){return Object.assign(Object.assign({},this.Js(t,i)),s.Ws(t))}Ks(){const t=this.Is.Ct();if(t===null)return;const i=this.Is.W(),s=this.Is.Dt().Rt(i.baseValue.price,t.Ot),e=this.zs.St().ee();this.Pe.J({it:this.Vs,et:i.lineWidth,Nt:i.lineStyle,us:i.lineType,cs:s,ds:!1,tt:this.Bs,_s:e}),this.Re.J({it:this.Vs,et:i.lineWidth,Nt:i.lineStyle,us:i.lineVisible?i.lineType:void 0,Ts:i.pointMarkersVisible?i.pointMarkersRadius||i.lineWidth/2+2:void 0,cs:s,tt:this.Bs,_s:e})}}class Be extends B{constructor(){super(...arguments),this.zt=null,this.re=0}J(t){this.zt=t}Z(t){if(this.zt===null||this.zt.Vn.length===0||this.zt.tt===null)return;const{horizontalPixelRatio:i}=t;this.re=function(n,r){if(n>=2.5&&n<=4)return Math.floor(3*r);const o=1-.2*Math.atan(Math.max(4,n)-4)/(.5*Math.PI),l=Math.floor(n*o*r),a=Math.floor(n*r),u=Math.min(l,a);return Math.max(Math.floor(r),u)}(this.zt.ee,i),this.re>=2&&Math.floor(i)%2!=this.re%2&&this.re--;const s=this.zt.Vn;this.zt.De&&this.Oe(t,s,this.zt.tt),this.zt._i&&this.Ae(t,s,this.zt.tt);const e=this.Ve(i);(!this.zt._i||this.re>2*e)&&this.Be(t,s,this.zt.tt)}Oe(t,i,s){if(this.zt===null)return;const{context:e,horizontalPixelRatio:n,verticalPixelRatio:r}=t;let o="",l=Math.min(Math.floor(n),Math.floor(this.zt.ee*n));l=Math.max(Math.floor(n),Math.min(l,this.re));const a=Math.floor(.5*l);let u=null;for(let c=s.from;c2*l)ve(e,f,m,d-f+1,v-m+1,l);else{const b=d-f+1;e.fillRect(f,m,b,v-m+1)}a=d}}Be(t,i,s){if(this.zt===null)return;const{context:e,horizontalPixelRatio:n,verticalPixelRatio:r}=t;let o="";const l=this.Ve(n);for(let a=s.from;af||e.fillRect(d,c,m-d+1,f-c+1)}}}class Le extends Bs{constructor(){super(...arguments),this.Ns=new Be}te(t,i,s){return Object.assign(Object.assign({},this.pe(t,i,s)),s.Ws(t))}Ks(){const t=this.Is.W();this.Ns.J({Vn:this.Vs,ee:this.zs.St().ee(),De:t.wickVisible,_i:t.borderVisible,tt:this.Bs})}}class Pe{constructor(t,i){this.Le=t,this.zi=i}K(t,i,s){this.Le.draw(t,this.zi,i,s)}}class Vt extends di{constructor(t,i,s){super(t,i,!1),this.mn=s,this.Ns=new Pe(this.mn.renderer(),e=>{const n=t.Ct();return n===null?null:t.Dt().Rt(e,n.Ot)})}Ee(t){return this.mn.priceValueBuilder(t)}Ne(t){return this.mn.isWhitespace(t)}$s(){const t=this.Is.js();this.Vs=this.Is.Vn().Qs().map(i=>Object.assign(Object.assign({ot:i.ie,nt:NaN},t.Ws(i.ie)),{Fe:i.We}))}Xs(t,i){i.Zs(this.Vs,ot(this.Bs))}Ks(){this.mn.update({bars:this.Vs.map(We),barSpacing:this.zs.St().ee(),visibleRange:this.Bs},this.Is.W())}}function We(h){return{x:h.nt,time:h.ot,originalData:h.Fe,barColor:h.oe}}class Ie extends B{constructor(){super(...arguments),this.zt=null,this.je=[]}J(t){this.zt=t,this.je=[]}Z({context:t,horizontalPixelRatio:i,verticalPixelRatio:s}){if(this.zt===null||this.zt.it.length===0||this.zt.tt===null)return;this.je.length||this.He(i);const e=Math.max(1,Math.floor(s)),n=Math.round(this.zt.$e*s)-Math.floor(e/2),r=n+e;for(let o=this.zt.tt.from;oo.qe?o.ui=r.Rs-i-1:r.Rs=o.ui+i+1)}let e=Math.ceil(this.zt.ee*t);for(let n=this.zt.tt.from;n0&&e<4)for(let n=this.zt.tt.from;ne&&(r.Ue>r.qe?r.ui-=1:r.Rs+=1)}}}class De extends Rt{constructor(){super(...arguments),this.Ns=new Ie}te(t,i,s){return Object.assign(Object.assign({},this.Js(t,i)),s.Ws(t))}Ks(){const t={it:this.Vs,ee:this.zs.St().ee(),tt:this.Bs,$e:this.Is.Dt().Rt(this.Is.W().base,p(this.Is.Ct()).Ot)};this.Ns.J(t)}}class Ve extends Rt{constructor(){super(...arguments),this.Ns=new ks}te(t,i,s){return Object.assign(Object.assign({},this.Js(t,i)),s.Ws(t))}Ks(){const t=this.Is.W(),i={it:this.Vs,Nt:t.lineStyle,us:t.lineVisible?t.lineType:void 0,et:t.lineWidth,Ts:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0,tt:this.Bs,_s:this.zs.St().ee()};this.Ns.J(i)}}const Ae=/[2-9]/g;class lt{constructor(t=50){this.Ye=0,this.Xe=1,this.Ke=1,this.Ze={},this.Ge=new Map,this.Je=t}Qe(){this.Ye=0,this.Ge.clear(),this.Xe=1,this.Ke=1,this.Ze={}}Mi(t,i,s){return this.tr(t,i,s).width}gi(t,i,s){const e=this.tr(t,i,s);return((e.actualBoundingBoxAscent||0)-(e.actualBoundingBoxDescent||0))/2}tr(t,i,s){const e=s||Ae,n=String(i).replace(e,"0");if(this.Ge.has(n))return O(this.Ge.get(n)).ir;if(this.Ye===this.Je){const o=this.Ze[this.Ke];delete this.Ze[this.Ke],this.Ge.delete(o),this.Ke++,this.Ye--}t.save(),t.textBaseline="middle";const r=t.measureText(n);return t.restore(),r.width===0&&i.length||(this.Ge.set(n,{ir:r,nr:this.Xe}),this.Ze[this.Xe]=n,this.Ye++,this.Xe++),r}}class $e{constructor(t){this.sr=null,this.k=null,this.er="right",this.rr=t}hr(t,i,s){this.sr=t,this.k=i,this.er=s}K(t){this.k!==null&&this.sr!==null&&this.sr.K(t,this.k,this.rr,this.er)}}class Ls{constructor(t,i,s){this.lr=t,this.rr=new lt(50),this.ar=i,this.F=s,this.j=-1,this.Wt=new $e(this.rr)}gt(){const t=this.F._r(this.ar);if(t===null)return null;const i=t.ur(this.ar)?t.cr():this.ar.Dt();if(i===null)return null;const s=t.dr(i);if(s==="overlay")return null;const e=this.F.vr();return e.P!==this.j&&(this.j=e.P,this.rr.Qe()),this.Wt.hr(this.lr.Bi(),e,s),this.Wt}}class Fe extends B{constructor(){super(...arguments),this.zt=null}J(t){this.zt=t}pr(t,i){var s;if(!(!((s=this.zt)===null||s===void 0)&&s.yt))return null;const{st:e,et:n,mr:r}=this.zt;return i>=e-n-7&&i<=e+n+7?{br:this.zt,mr:r}:null}Z({context:t,bitmapSize:i,horizontalPixelRatio:s,verticalPixelRatio:e}){if(this.zt===null||this.zt.yt===!1)return;const n=Math.round(this.zt.st*e);n<0||n>i.height||(t.lineCap="butt",t.strokeStyle=this.zt.O,t.lineWidth=Math.floor(this.zt.et*s),j(t,this.zt.Nt),_s(t,n,0,i.width))}}class mi{constructor(t){this.wr={st:0,O:"rgba(0, 0, 0, 0)",et:1,Nt:0,yt:!1},this.gr=new Fe,this.ft=!0,this.Is=t,this.zs=t.$t(),this.gr.J(this.wr)}bt(){this.ft=!0}gt(){return this.Is.yt()?(this.ft&&(this.Mr(),this.ft=!1),this.gr):null}}class He extends mi{constructor(t){super(t)}Mr(){this.wr.yt=!1;const t=this.Is.Dt(),i=t.Sr().Sr;if(i!==2&&i!==3)return;const s=this.Is.W();if(!s.baseLineVisible||!this.Is.yt())return;const e=this.Is.Ct();e!==null&&(this.wr.yt=!0,this.wr.st=t.Rt(e.Ot,e.Ot),this.wr.O=s.baseLineColor,this.wr.et=s.baseLineWidth,this.wr.Nt=s.baseLineStyle)}}class je extends B{constructor(){super(...arguments),this.zt=null}J(t){this.zt=t}We(){return this.zt}Z({context:t,horizontalPixelRatio:i,verticalPixelRatio:s}){const e=this.zt;if(e===null)return;const n=Math.max(1,Math.floor(i)),r=n%2/2,o=Math.round(e.qe.x*i)+r,l=e.qe.y*s;t.fillStyle=e.kr,t.beginPath();const a=Math.max(2,1.5*e.yr)*i;t.arc(o,l,a,0,2*Math.PI,!1),t.fill(),t.fillStyle=e.Cr,t.beginPath(),t.arc(o,l,e.ht*i,0,2*Math.PI,!1),t.fill(),t.lineWidth=n,t.strokeStyle=e.Tr,t.beginPath(),t.arc(o,l,e.ht*i+n/2,0,2*Math.PI,!1),t.stroke()}}const Ue=[{Pr:0,Rr:.25,Dr:4,Or:10,Ar:.25,Vr:0,Br:.4,Ir:.8},{Pr:.25,Rr:.525,Dr:10,Or:14,Ar:0,Vr:0,Br:.8,Ir:0},{Pr:.525,Rr:1,Dr:14,Or:14,Ar:0,Vr:0,Br:0,Ir:0}];function Wi(h,t,i,s){return function(e,n){if(e==="transparent")return e;const r=zt(e),o=r[3];return`rgba(${r[0]}, ${r[1]}, ${r[2]}, ${n*o})`}(h,i+(s-i)*t)}function Ii(h,t){const i=h%2600/2600;let s;for(const l of Ue)if(i>=l.Pr&&i<=l.Rr){s=l;break}A(s!==void 0,"Last price animation internal logic error");const e=(i-s.Pr)/(s.Rr-s.Pr);return{Cr:Wi(t,e,s.Ar,s.Vr),Tr:Wi(t,e,s.Br,s.Ir),ht:(n=e,r=s.Dr,o=s.Or,r+(o-r)*n)};var n,r,o}class Ze{constructor(t){this.Wt=new je,this.ft=!0,this.zr=!0,this.Lr=performance.now(),this.Er=this.Lr-1,this.Nr=t}Fr(){this.Er=this.Lr-1,this.bt()}Wr(){if(this.bt(),this.Nr.W().lastPriceAnimation===2){const t=performance.now(),i=this.Er-t;if(i>0)return void(i<650&&(this.Er+=2600));this.Lr=t,this.Er=t+2600}}bt(){this.ft=!0}jr(){this.zr=!0}yt(){return this.Nr.W().lastPriceAnimation!==0}Hr(){switch(this.Nr.W().lastPriceAnimation){case 0:return!1;case 1:return!0;case 2:return performance.now()<=this.Er}}gt(){return this.ft?(this.Mt(),this.ft=!1,this.zr=!1):this.zr&&(this.$r(),this.zr=!1),this.Wt}Mt(){this.Wt.J(null);const t=this.Nr.$t().St(),i=t.qs(),s=this.Nr.Ct();if(i===null||s===null)return;const e=this.Nr.Ur(!0);if(e.qr||!i.Yr(e.ie))return;const n={x:t.It(e.ie),y:this.Nr.Dt().Rt(e._t,s.Ot)},r=e.O,o=this.Nr.W().lineWidth,l=Ii(this.Xr(),r);this.Wt.J({kr:r,yr:o,Cr:l.Cr,Tr:l.Tr,ht:l.ht,qe:n})}$r(){const t=this.Wt.We();if(t!==null){const i=Ii(this.Xr(),t.kr);t.Cr=i.Cr,t.Tr=i.Tr,t.ht=i.ht}}Xr(){return this.Hr()?performance.now()-this.Lr:2599}}function st(h,t){return Es(Math.min(Math.max(h,12),30)*t)}function at(h,t){switch(h){case"arrowDown":case"arrowUp":return st(t,1);case"circle":return st(t,.8);case"square":return st(t,.7)}}function Ps(h){return function(t){const i=Math.ceil(t);return i%2!=0?i-1:i}(st(h,1))}function Di(h){return Math.max(st(h,.1),3)}function Ws(h,t,i,s,e){const n=at("square",i),r=(n-1)/2,o=h-r,l=t-r;return s>=o&&s<=o+n&&e>=l&&e<=l+n}function Vi(h,t,i,s){const e=(at("arrowUp",s)-1)/2*i.Kr,n=(Es(s/2)-1)/2*i.Kr;t.beginPath(),h?(t.moveTo(i.nt-e,i.st),t.lineTo(i.nt,i.st-e),t.lineTo(i.nt+e,i.st),t.lineTo(i.nt+n,i.st),t.lineTo(i.nt+n,i.st+e),t.lineTo(i.nt-n,i.st+e),t.lineTo(i.nt-n,i.st)):(t.moveTo(i.nt-e,i.st),t.lineTo(i.nt,i.st+e),t.lineTo(i.nt+e,i.st),t.lineTo(i.nt+n,i.st),t.lineTo(i.nt+n,i.st-e),t.lineTo(i.nt-n,i.st-e),t.lineTo(i.nt-n,i.st)),t.fill()}function Ye(h,t,i,s,e,n){return Ws(t,i,s,e,n)}class Qe extends B{constructor(){super(...arguments),this.zt=null,this.rr=new lt,this.j=-1,this.H="",this.Zr=""}J(t){this.zt=t}hr(t,i){this.j===t&&this.H===i||(this.j=t,this.H=i,this.Zr=K(t,i),this.rr.Qe())}pr(t,i){if(this.zt===null||this.zt.tt===null)return null;for(let s=this.zt.tt.from;s=s&&o<=s+n&&l>=e-a&&l<=e+a}(h.Zt.nt,h.Zt.st,h.Zt.ji,h.Zt.Bt,t,i))||function(s,e,n){if(s.Ys===0)return!1;switch(s.Qr){case"arrowDown":case"arrowUp":return Ye(0,s.nt,s.st,s.Ys,e,n);case"circle":return function(r,o,l,a,u){const c=2+at("circle",l)/2,f=r-a,d=o-u;return Math.sqrt(f*f+d*d)<=c}(s.nt,s.st,s.Ys,e,n);case"square":return Ws(s.nt,s.st,s.Ys,e,n)}}(h,t,i)}function Je(h,t,i,s,e,n,r,o,l){const a=P(i)?i:i.ge,u=P(i)?i:i.be,c=P(i)?i:i.we,f=P(t.size)?Math.max(t.size,0):1,d=Ps(o.ee())*f,m=d/2;switch(h.Ys=d,t.position){case"inBar":return h.st=r.Rt(a,l),void(h.Zt!==void 0&&(h.Zt.st=h.st+m+n+.6*e));case"aboveBar":return h.st=r.Rt(u,l)-m-s.th,h.Zt!==void 0&&(h.Zt.st=h.st-m-.6*e,s.th+=1.2*e),void(s.th+=d+n);case"belowBar":return h.st=r.Rt(c,l)+m+s.ih,h.Zt!==void 0&&(h.Zt.st=h.st+m+n+.6*e,s.ih+=1.2*e),void(s.ih+=d+n)}t.position}class Ke{constructor(t,i){this.ft=!0,this.nh=!0,this.sh=!0,this.eh=null,this.Wt=new Qe,this.Nr=t,this.Hi=i,this.zt={it:[],tt:null}}bt(t){this.ft=!0,this.sh=!0,t==="data"&&(this.nh=!0)}gt(t){if(!this.Nr.yt())return null;this.ft&&this.rh();const i=this.Hi.W().layout;return this.Wt.hr(i.fontSize,i.fontFamily),this.Wt.J(this.zt),this.Wt}hh(){if(this.sh){if(this.Nr.lh().length>0){const t=this.Hi.St().ee(),i=Di(t),s=1.5*Ps(t)+2*i;this.eh={above:s,below:s}}else this.eh=null;this.sh=!1}return this.eh}rh(){const t=this.Nr.Dt(),i=this.Hi.St(),s=this.Nr.lh();this.nh&&(this.zt.it=s.map(u=>({ot:u.time,nt:0,st:0,Ys:0,Qr:u.shape,O:u.color,Gr:u.Gr,mr:u.id,Zt:void 0})),this.nh=!1);const e=this.Hi.W().layout;this.zt.tt=null;const n=i.qs();if(n===null)return;const r=this.Nr.Ct();if(r===null||this.zt.it.length===0)return;let o=NaN;const l=Di(i.ee()),a={th:l,ih:l};this.zt.tt=Rs(this.zt.it,n,!0);for(let u=this.zt.tt.from;u0&&(f.Zt={Jr:c.text,nt:0,st:0,ji:0,Bt:0});const d=this.Nr.ah(c.time);d!==null&&Je(f,c,d,a,e.fontSize,l,t,i,r.Ot)}this.ft=!1}}class Ge extends mi{constructor(t){super(t)}Mr(){const t=this.wr;t.yt=!1;const i=this.Is.W();if(!i.priceLineVisible||!this.Is.yt())return;const s=this.Is.Ur(i.priceLineSource===0);s.qr||(t.yt=!0,t.st=s.Si,t.O=this.Is.oh(s.O),t.et=i.priceLineWidth,t.Nt=i.priceLineStyle)}}class th extends kt{constructor(t){super(),this.jt=t}Ii(t,i,s){t.yt=!1,i.yt=!1;const e=this.jt;if(!e.yt())return;const n=e.W(),r=n.lastValueVisible,o=e._h()!=="",l=n.seriesLastValueMode===0,a=e.Ur(!1);if(a.qr)return;r&&(t.Zt=this.uh(a,r,l),t.yt=t.Zt.length!==0),(o||l)&&(i.Zt=this.dh(a,r,o,l),i.yt=i.Zt.length>0);const u=e.oh(a.O),c=Et(u);s.t=c.t,s.Si=a.Si,i.At=e.$t().Vt(a.Si/e.Dt().Bt()),t.At=u,t.O=c.i,i.O=c.i}dh(t,i,s,e){let n="";const r=this.jt._h();return s&&r.length!==0&&(n+=`${r} `),i&&e&&(n+=this.jt.Dt().fh()?t.ph:t.mh),n.trim()}uh(t,i,s){return i?s?this.jt.Dt().fh()?t.mh:t.ph:t.Zt:""}}function Ai(h,t,i,s){const e=Number.isFinite(t),n=Number.isFinite(i);return e&&n?h(t,i):e||n?e?t:i:s}class k{constructor(t,i){this.bh=t,this.wh=i}gh(t){return t!==null&&this.bh===t.bh&&this.wh===t.wh}Mh(){return new k(this.bh,this.wh)}xh(){return this.bh}Sh(){return this.wh}kh(){return this.wh-this.bh}Ei(){return this.wh===this.bh||Number.isNaN(this.wh)||Number.isNaN(this.bh)}Jn(t){return t===null?this:new k(Ai(Math.min,this.xh(),t.xh(),-1/0),Ai(Math.max,this.Sh(),t.Sh(),1/0))}yh(t){if(!P(t)||this.wh-this.bh===0)return;const i=.5*(this.wh+this.bh);let s=this.wh-i,e=this.bh-i;s*=t,e*=t,this.wh=i+s,this.bh=i+e}Ch(t){P(t)&&(this.wh+=t,this.bh+=t)}Th(){return{minValue:this.bh,maxValue:this.wh}}static Ph(t){return t===null?null:new k(t.minValue,t.maxValue)}}class xt{constructor(t,i){this.Rh=t,this.Dh=i||null}Oh(){return this.Rh}Ah(){return this.Dh}Th(){return this.Rh===null?null:{priceRange:this.Rh.Th(),margins:this.Dh||void 0}}static Ph(t){return t===null?null:new xt(k.Ph(t.priceRange),t.margins)}}class ih extends mi{constructor(t,i){super(t),this.Vh=i}Mr(){const t=this.wr;t.yt=!1;const i=this.Vh.W();if(!this.Is.yt()||!i.lineVisible)return;const s=this.Vh.Bh();s!==null&&(t.yt=!0,t.st=s,t.O=i.color,t.et=i.lineWidth,t.Nt=i.lineStyle,t.mr=this.Vh.W().id)}}class sh extends kt{constructor(t,i){super(),this.Nr=t,this.Vh=i}Ii(t,i,s){t.yt=!1,i.yt=!1;const e=this.Vh.W(),n=e.axisLabelVisible,r=e.title!=="",o=this.Nr;if(!n||!o.yt())return;const l=this.Vh.Bh();if(l===null)return;r&&(i.Zt=e.title,i.yt=!0),i.At=o.$t().Vt(l/o.Dt().Bt()),t.Zt=this.Ih(e.price),t.yt=!0;const a=Et(e.axisLabelColor||e.color);s.t=a.t;const u=e.axisLabelTextColor||a.i;t.O=u,i.O=u,s.Si=l}Ih(t){const i=this.Nr.Ct();return i===null?"":this.Nr.Dt().Ni(t,i.Ot)}}class eh{constructor(t,i){this.Nr=t,this._n=i,this.zh=new ih(t,this),this.lr=new sh(t,this),this.Lh=new Ls(this.lr,t,t.$t())}Eh(t){R(this._n,t),this.bt(),this.Nr.$t().Nh()}W(){return this._n}Fh(){return this.zh}Wh(){return this.Lh}jh(){return this.lr}bt(){this.zh.bt(),this.lr.bt()}Bh(){const t=this.Nr,i=t.Dt();if(t.$t().St().Ei()||i.Ei())return null;const s=t.Ct();return s===null?null:i.Rt(this._n.price,s.Ot)}}class hh extends ci{constructor(t){super(),this.Hi=t}$t(){return this.Hi}}const nh={Bar:(h,t,i,s)=>{var e;const n=t.upColor,r=t.downColor,o=p(h(i,s)),l=X(o.Ot[0])<=X(o.Ot[3]);return{oe:(e=o.O)!==null&&e!==void 0?e:l?n:r}},Candlestick:(h,t,i,s)=>{var e,n,r;const o=t.upColor,l=t.downColor,a=t.borderUpColor,u=t.borderDownColor,c=t.wickUpColor,f=t.wickDownColor,d=p(h(i,s)),m=X(d.Ot[0])<=X(d.Ot[3]);return{oe:(e=d.O)!==null&&e!==void 0?e:m?o:l,ze:(n=d.At)!==null&&n!==void 0?n:m?a:u,Ie:(r=d.Hh)!==null&&r!==void 0?r:m?c:f}},Custom:(h,t,i,s)=>{var e;return{oe:(e=p(h(i,s)).O)!==null&&e!==void 0?e:t.color}},Area:(h,t,i,s)=>{var e,n,r,o;const l=p(h(i,s));return{oe:(e=l.lt)!==null&&e!==void 0?e:t.lineColor,lt:(n=l.lt)!==null&&n!==void 0?n:t.lineColor,ys:(r=l.ys)!==null&&r!==void 0?r:t.topColor,Cs:(o=l.Cs)!==null&&o!==void 0?o:t.bottomColor}},Baseline:(h,t,i,s)=>{var e,n,r,o,l,a;const u=p(h(i,s));return{oe:u.Ot[3]>=t.baseValue.price?t.topLineColor:t.bottomLineColor,Ce:(e=u.Ce)!==null&&e!==void 0?e:t.topLineColor,Te:(n=u.Te)!==null&&n!==void 0?n:t.bottomLineColor,Me:(r=u.Me)!==null&&r!==void 0?r:t.topFillColor1,xe:(o=u.xe)!==null&&o!==void 0?o:t.topFillColor2,Se:(l=u.Se)!==null&&l!==void 0?l:t.bottomFillColor1,ke:(a=u.ke)!==null&&a!==void 0?a:t.bottomFillColor2}},Line:(h,t,i,s)=>{var e,n;const r=p(h(i,s));return{oe:(e=r.O)!==null&&e!==void 0?e:t.color,lt:(n=r.O)!==null&&n!==void 0?n:t.color}},Histogram:(h,t,i,s)=>{var e;return{oe:(e=p(h(i,s)).O)!==null&&e!==void 0?e:t.color}}};class rh{constructor(t){this.$h=(i,s)=>s!==void 0?s.Ot:this.Nr.Vn().Uh(i),this.Nr=t,this.qh=nh[t.Yh()]}Ws(t,i){return this.qh(this.$h,this.Nr.W(),t,i)}}var $i;(function(h){h[h.NearestLeft=-1]="NearestLeft",h[h.None=0]="None",h[h.NearestRight=1]="NearestRight"})($i||($i={}));const V=30;class oh{constructor(){this.Xh=[],this.Kh=new Map,this.Zh=new Map}Gh(){return this.Ys()>0?this.Xh[this.Xh.length-1]:null}Jh(){return this.Ys()>0?this.Qh(0):null}An(){return this.Ys()>0?this.Qh(this.Xh.length-1):null}Ys(){return this.Xh.length}Ei(){return this.Ys()===0}Yr(t){return this.tl(t,0)!==null}Uh(t){return this.il(t)}il(t,i=0){const s=this.tl(t,i);return s===null?null:Object.assign(Object.assign({},this.nl(s)),{ie:this.Qh(s)})}Qs(){return this.Xh}sl(t,i,s){if(this.Ei())return null;let e=null;for(const n of s)e=vt(e,this.el(t,i,n));return e}J(t){this.Zh.clear(),this.Kh.clear(),this.Xh=t}Qh(t){return this.Xh[t].ie}nl(t){return this.Xh[t]}tl(t,i){const s=this.rl(t);if(s===null&&i!==0)switch(i){case-1:return this.hl(t);case 1:return this.ll(t);default:throw new TypeError("Unknown search mode")}return s}hl(t){let i=this.al(t);return i>0&&(i-=1),i!==this.Xh.length&&this.Qh(i)i.iei.ie>s)}_l(t,i,s){let e=null;for(let n=t;ne.cl&&(e.cl=r)))}return e}el(t,i,s){if(this.Ei())return null;let e=null;const n=p(this.Jh()),r=p(this.An()),o=Math.max(t,n),l=Math.min(i,r),a=Math.ceil(o/V)*V,u=Math.max(a,Math.floor(l/V)*V);{const f=this.al(o),d=this.ol(Math.min(l,a,i));e=vt(e,this._l(f,d,s))}let c=this.Kh.get(s);c===void 0&&(c=new Map,this.Kh.set(s,c));for(let f=Math.max(a+1,o);fnew At(o));return this.gl={vl:n,pl:r},r}Ji(){var t,i,s,e;const n=(s=(i=(t=this.yl).timeAxisViews)===null||i===void 0?void 0:i.call(t))!==null&&s!==void 0?s:[];if(((e=this.Ml)===null||e===void 0?void 0:e.vl)===n)return this.Ml.pl;const r=this.Nr.$t().St(),o=n.map(l=>new ah(l,r));return this.Ml={vl:n,pl:o},o}Tn(){var t,i,s,e;const n=(s=(i=(t=this.yl).priceAxisViews)===null||i===void 0?void 0:i.call(t))!==null&&s!==void 0?s:[];if(((e=this.xl)===null||e===void 0?void 0:e.vl)===n)return this.xl.pl;const r=this.Nr.Dt(),o=n.map(l=>new uh(l,r));return this.xl={vl:n,pl:o},o}Tl(){var t,i,s,e;const n=(s=(i=(t=this.yl).priceAxisPaneViews)===null||i===void 0?void 0:i.call(t))!==null&&s!==void 0?s:[];if(((e=this.Sl)===null||e===void 0?void 0:e.vl)===n)return this.Sl.pl;const r=n.map(o=>new At(o));return this.Sl={vl:n,pl:r},r}Pl(){var t,i,s,e;const n=(s=(i=(t=this.yl).timeAxisPaneViews)===null||i===void 0?void 0:i.call(t))!==null&&s!==void 0?s:[];if(((e=this.kl)===null||e===void 0?void 0:e.vl)===n)return this.kl.pl;const r=n.map(o=>new At(o));return this.kl={vl:n,pl:r},r}Rl(t,i){var s,e,n;return(n=(e=(s=this.yl).autoscaleInfo)===null||e===void 0?void 0:e.call(s,t,i))!==null&&n!==void 0?n:null}pr(t,i){var s,e,n;return(n=(e=(s=this.yl).hitTest)===null||e===void 0?void 0:e.call(s,t,i))!==null&&n!==void 0?n:null}}function $t(h,t,i,s){h.forEach(e=>{t(e).forEach(n=>{n.ml()===i&&s.push(n)})})}function Ft(h){return h.Cn()}function fh(h){return h.Tl()}function dh(h){return h.Pl()}class vi extends hh{constructor(t,i,s,e,n){super(t),this.zt=new oh,this.zh=new Ge(this),this.Dl=[],this.Ol=new He(this),this.Al=null,this.Vl=null,this.Bl=[],this.Il=[],this.zl=null,this.Ll=[],this._n=i,this.El=s;const r=new th(this);this.en=[r],this.Lh=new Ls(r,this,t),s!=="Area"&&s!=="Line"&&s!=="Baseline"||(this.Al=new Ze(this)),this.Nl(),this.Fl(n)}S(){this.zl!==null&&clearTimeout(this.zl)}oh(t){return this._n.priceLineColor||t}Ur(t){const i={qr:!0},s=this.Dt();if(this.$t().St().Ei()||s.Ei()||this.zt.Ei())return i;const e=this.$t().St().qs(),n=this.Ct();if(e===null||n===null)return i;let r,o;if(t){const c=this.zt.Gh();if(c===null)return i;r=c,o=c.ie}else{const c=this.zt.il(e.ui(),-1);if(c===null||(r=this.zt.Uh(c.ie),r===null))return i;o=c.ie}const l=r.Ot[3],a=this.js().Ws(o,{Ot:r}),u=s.Rt(l,n.Ot);return{qr:!1,_t:l,Zt:s.Ni(l,n.Ot),ph:s.Wl(l),mh:s.jl(l,n.Ot),O:a.oe,Si:u,ie:o}}js(){return this.Vl!==null||(this.Vl=new rh(this)),this.Vl}W(){return this._n}Eh(t){const i=t.priceScaleId;i!==void 0&&i!==this._n.priceScaleId&&this.$t().Hl(this,i),R(this._n,t),t.priceFormat!==void 0&&(this.Nl(),this.$t().$l()),this.$t().Ul(this),this.$t().ql(),this.mn.bt("options")}J(t,i){this.zt.J(t),this.Yl(),this.mn.bt("data"),this.un.bt("data"),this.Al!==null&&(i&&i.Xl?this.Al.Wr():t.length===0&&this.Al.Fr());const s=this.$t()._r(this);this.$t().Kl(s),this.$t().Ul(this),this.$t().ql(),this.$t().Nh()}Zl(t){this.Bl=t,this.Yl();const i=this.$t()._r(this);this.un.bt("data"),this.$t().Kl(i),this.$t().Ul(this),this.$t().ql(),this.$t().Nh()}Gl(){return this.Bl}lh(){return this.Il}Jl(t){const i=new eh(this,t);return this.Dl.push(i),this.$t().Ul(this),i}Ql(t){const i=this.Dl.indexOf(t);i!==-1&&this.Dl.splice(i,1),this.$t().Ul(this)}Yh(){return this.El}Ct(){const t=this.ta();return t===null?null:{Ot:t.Ot[3],ia:t.ot}}ta(){const t=this.$t().St().qs();if(t===null)return null;const i=t.Rs();return this.zt.il(i,1)}Vn(){return this.zt}ah(t){const i=this.zt.Uh(t);return i===null?null:this.El==="Bar"||this.El==="Candlestick"||this.El==="Custom"?{me:i.Ot[0],be:i.Ot[1],we:i.Ot[2],ge:i.Ot[3]}:i.Ot[3]}na(t){const i=[];$t(this.Ll,Ft,"top",i);const s=this.Al;return s!==null&&s.yt()&&(this.zl===null&&s.Hr()&&(this.zl=setTimeout(()=>{this.zl=null,this.$t().sa()},0)),s.jr(),i.push(s)),i}Cn(){const t=[];this.ea()||t.push(this.Ol),t.push(this.mn,this.zh,this.un);const i=this.Dl.map(s=>s.Fh());return t.push(...i),$t(this.Ll,Ft,"normal",t),t}ra(){return this.ha(Ft,"bottom")}la(t){return this.ha(fh,t)}aa(t){return this.ha(dh,t)}oa(t,i){return this.Ll.map(s=>s.pr(t,i)).filter(s=>s!==null)}Gi(t){return[this.Lh,...this.Dl.map(i=>i.Wh())]}Tn(t,i){if(i!==this.qi&&!this.ea())return[];const s=[...this.en];for(const e of this.Dl)s.push(e.jh());return this.Ll.forEach(e=>{s.push(...e.Tn())}),s}Ji(){const t=[];return this.Ll.forEach(i=>{t.push(...i.Ji())}),t}Rl(t,i){if(this._n.autoscaleInfoProvider!==void 0){const s=this._n.autoscaleInfoProvider(()=>{const e=this._a(t,i);return e===null?null:e.Th()});return xt.Ph(s)}return this._a(t,i)}ua(){return this._n.priceFormat.minMove}ca(){return this.da}Rn(){var t;this.mn.bt(),this.un.bt();for(const i of this.en)i.bt();for(const i of this.Dl)i.bt();this.zh.bt(),this.Ol.bt(),(t=this.Al)===null||t===void 0||t.bt(),this.Ll.forEach(i=>i.Rn())}Dt(){return p(super.Dt())}kt(t){if(!((this.El==="Line"||this.El==="Area"||this.El==="Baseline")&&this._n.crosshairMarkerVisible))return null;const i=this.zt.Uh(t);return i===null?null:{_t:i.Ot[3],ht:this.fa(),At:this.va(),Pt:this.pa(),Tt:this.ma(t)}}_h(){return this._n.title}yt(){return this._n.visible}ba(t){this.Ll.push(new ch(t,this))}wa(t){this.Ll=this.Ll.filter(i=>i.Cl()!==t)}ga(){if(this.mn instanceof Vt)return t=>this.mn.Ee(t)}Ma(){if(this.mn instanceof Vt)return t=>this.mn.Ne(t)}ea(){return!Tt(this.Dt().xa())}_a(t,i){if(!rt(t)||!rt(i)||this.zt.Ei())return null;const s=this.El==="Line"||this.El==="Area"||this.El==="Baseline"||this.El==="Histogram"?[3]:[2,1],e=this.zt.sl(t,i,s);let n=e!==null?new k(e.ul,e.cl):null;if(this.Yh()==="Histogram"){const o=this._n.base,l=new k(o,o);n=n!==null?n.Jn(l):l}let r=this.un.hh();return this.Ll.forEach(o=>{const l=o.Rl(t,i);if(l!=null&&l.priceRange){const d=new k(l.priceRange.minValue,l.priceRange.maxValue);n=n!==null?n.Jn(d):d}var a,u,c,f;l!=null&&l.margins&&(a=r,u=l.margins,r={above:Math.max((c=a==null?void 0:a.above)!==null&&c!==void 0?c:0,u.above),below:Math.max((f=a==null?void 0:a.below)!==null&&f!==void 0?f:0,u.below)})}),new xt(n,r)}fa(){switch(this.El){case"Line":case"Area":case"Baseline":return this._n.crosshairMarkerRadius}return 0}va(){switch(this.El){case"Line":case"Area":case"Baseline":{const t=this._n.crosshairMarkerBorderColor;if(t.length!==0)return t}}return null}pa(){switch(this.El){case"Line":case"Area":case"Baseline":return this._n.crosshairMarkerBorderWidth}return 0}ma(t){switch(this.El){case"Line":case"Area":case"Baseline":{const i=this._n.crosshairMarkerBackgroundColor;if(i.length!==0)return i}}return this.js().Ws(t).oe}Nl(){switch(this._n.priceFormat.type){case"custom":this.da={format:this._n.priceFormat.formatter};break;case"volume":this.da=new _e(this._n.priceFormat.precision);break;case"percent":this.da=new zs(this._n.priceFormat.precision);break;default:{const t=Math.pow(10,this._n.priceFormat.precision);this.da=new Nt(t,this._n.priceFormat.minMove*t)}}this.qi!==null&&this.qi.Sa()}Yl(){const t=this.$t().St();if(!t.ka()||this.zt.Ei())return void(this.Il=[]);const i=p(this.zt.Jh());this.Il=this.Bl.map((s,e)=>{const n=p(t.ya(s.time,!0)),r=nu instanceof vi).reduce((u,c)=>{if(s.ur(c)||!c.yt())return u;const f=c.Dt(),d=c.Vn();if(f.Ei()||!d.Yr(i))return u;const m=d.Uh(i);if(m===null)return u;const v=X(c.Ct());return u.concat([f.Rt(m.Ot[3],v.Ot)])},[]);if(l.length===0)return e;l.sort((u,c)=>Math.abs(u-o)-Math.abs(c-o));const a=l[0];return e=n.fn(a,r),e}}class vh extends B{constructor(){super(...arguments),this.zt=null}J(t){this.zt=t}Z({context:t,bitmapSize:i,horizontalPixelRatio:s,verticalPixelRatio:e}){if(this.zt===null)return;const n=Math.max(1,Math.floor(s));t.lineWidth=n,function(r,o){r.save(),r.lineWidth%2&&r.translate(.5,.5),o(),r.restore()}(t,()=>{const r=p(this.zt);if(r.Pa){t.strokeStyle=r.Ra,j(t,r.Da),t.beginPath();for(const o of r.Oa){const l=Math.round(o.Aa*s);t.moveTo(l,-n),t.lineTo(l,i.height+n)}t.stroke()}if(r.Va){t.strokeStyle=r.Ba,j(t,r.Ia),t.beginPath();for(const o of r.za){const l=Math.round(o.Aa*e);t.moveTo(-n,l),t.lineTo(i.width+n,l)}t.stroke()}})}}class ph{constructor(t){this.Wt=new vh,this.ft=!0,this.Qi=t}bt(){this.ft=!0}gt(){if(this.ft){const t=this.Qi.$t().W().grid,i={Va:t.horzLines.visible,Pa:t.vertLines.visible,Ba:t.horzLines.color,Ra:t.vertLines.color,Ia:t.horzLines.style,Da:t.vertLines.style,za:this.Qi.dn().La(),Oa:(this.Qi.$t().St().La()||[]).map(s=>({Aa:s.coord}))};this.Wt.J(i),this.ft=!1}return this.Wt}}class bh{constructor(t){this.mn=new ph(t)}Fh(){return this.mn}}const Ht={Ea:4,Na:1e-4};function q(h,t){const i=100*(h-t)/t;return t<0?-i:i}function gh(h,t){const i=q(h.xh(),t),s=q(h.Sh(),t);return new k(i,s)}function et(h,t){const i=100*(h-t)/t+100;return t<0?-i:i}function wh(h,t){const i=et(h.xh(),t),s=et(h.Sh(),t);return new k(i,s)}function Ct(h,t){const i=Math.abs(h);if(i<1e-15)return 0;const s=Math.log10(i+t.Na)+t.Ea;return h<0?-s:s}function ht(h,t){const i=Math.abs(h);if(i<1e-15)return 0;const s=Math.pow(10,i-t.Ea)-t.Na;return h<0?-s:s}function it(h,t){if(h===null)return null;const i=Ct(h.xh(),t),s=Ct(h.Sh(),t);return new k(i,s)}function pt(h,t){if(h===null)return null;const i=ht(h.xh(),t),s=ht(h.Sh(),t);return new k(i,s)}function jt(h){if(h===null)return Ht;const t=Math.abs(h.Sh()-h.xh());if(t>=1||t<1e-15)return Ht;const i=Math.ceil(Math.abs(Math.log10(t))),s=Ht.Ea+i;return{Ea:s,Na:1/Math.pow(10,s)}}class Ut{constructor(t,i){if(this.Fa=t,this.Wa=i,function(s){if(s<0)return!1;for(let e=s;e>1;e/=10)if(e%10!=0)return!1;return!0}(this.Fa))this.ja=[2,2.5,2];else{this.ja=[];for(let s=this.Fa;s!==1;){if(s%2==0)this.ja.push(2),s/=2;else{if(s%5!=0)throw new Error("unexpected base");this.ja.push(2,2.5),s/=5}if(this.ja.length>100)throw new Error("something wrong with base")}}}Ha(t,i,s){const e=this.Fa===0?0:1/this.Fa;let n=Math.pow(10,Math.max(0,Math.ceil(Math.log10(t-i)))),r=0,o=this.Wa[0];for(;;){const c=mt(n,e,1e-14)&&n>e+1e-14,f=mt(n,s*o,1e-14),d=mt(n,1,1e-14);if(!(c&&f&&d))break;n/=o,o=this.Wa[++r%this.Wa.length]}if(n<=e+1e-14&&(n=e),n=Math.max(1,n),this.ja.length>0&&(l=n,a=1,u=1e-14,Math.abs(l-a)e+1e-14;)n/=o,o=this.ja[++r%this.ja.length];var l,a,u;return n}}class Fi{constructor(t,i,s,e){this.$a=[],this.zi=t,this.Fa=i,this.Ua=s,this.qa=e}Ha(t,i){if(t=u?1:-1;let m=null,v=0;for(let b=a-f;b>u;b-=c){const g=this.qa(b,i,!0);m!==null&&Math.abs(g-m)l||(vp(t.Xi())-p(i.Xi()))}var Hi;(function(h){h[h.Normal=0]="Normal",h[h.Logarithmic=1]="Logarithmic",h[h.Percentage=2]="Percentage",h[h.IndexedTo100=3]="IndexedTo100"})(Hi||(Hi={}));const ji=new zs,Ui=new Nt(100,1);class _h{constructor(t,i,s,e){this.Qa=0,this.io=null,this.Rh=null,this.no=null,this.so={eo:!1,ro:null},this.ho=0,this.lo=0,this.ao=new M,this.oo=new M,this._o=[],this.uo=null,this.co=null,this.do=null,this.fo=null,this.da=Ui,this.vo=jt(null),this.po=t,this._n=i,this.mo=s,this.bo=e,this.wo=new Fi(this,100,this.Mo.bind(this),this.xo.bind(this))}xa(){return this.po}W(){return this._n}Eh(t){if(R(this._n,t),this.Sa(),t.mode!==void 0&&this.So({Sr:t.mode}),t.scaleMargins!==void 0){const i=O(t.scaleMargins.top),s=O(t.scaleMargins.bottom);if(i<0||i>1)throw new Error(`Invalid top margin - expect value between 0 and 1, given=${i}`);if(s<0||s>1)throw new Error(`Invalid bottom margin - expect value between 0 and 1, given=${s}`);if(i+s>1)throw new Error(`Invalid margins - sum of margins must be less than 1, given=${i+s}`);this.ko(),this.co=null}}yo(){return this._n.autoScale}Ja(){return this._n.mode===1}fh(){return this._n.mode===2}Co(){return this._n.mode===3}Sr(){return{Nn:this._n.autoScale,To:this._n.invertScale,Sr:this._n.mode}}So(t){const i=this.Sr();let s=null;t.Nn!==void 0&&(this._n.autoScale=t.Nn),t.Sr!==void 0&&(this._n.mode=t.Sr,t.Sr!==2&&t.Sr!==3||(this._n.autoScale=!0),this.so.eo=!1),i.Sr===1&&t.Sr!==i.Sr&&(function(n,r){if(n===null)return!1;const o=ht(n.xh(),r),l=ht(n.Sh(),r);return isFinite(o)&&isFinite(l)}(this.Rh,this.vo)?(s=pt(this.Rh,this.vo),s!==null&&this.Po(s)):this._n.autoScale=!0),t.Sr===1&&t.Sr!==i.Sr&&(s=it(this.Rh,this.vo),s!==null&&this.Po(s));const e=i.Sr!==this._n.mode;e&&(i.Sr===2||this.fh())&&this.Sa(),e&&(i.Sr===3||this.Co())&&this.Sa(),t.To!==void 0&&i.To!==t.To&&(this._n.invertScale=t.To,this.Ro()),this.oo.m(i,this.Sr())}Do(){return this.oo}P(){return this.mo.fontSize}Bt(){return this.Qa}Oo(t){this.Qa!==t&&(this.Qa=t,this.ko(),this.co=null)}Ao(){if(this.io)return this.io;const t=this.Bt()-this.Vo()-this.Bo();return this.io=t,t}Oh(){return this.Io(),this.Rh}Po(t,i){const s=this.Rh;(i||s===null&&t!==null||s!==null&&!s.gh(t))&&(this.co=null,this.Rh=t)}Ei(){return this.Io(),this.Qa===0||!this.Rh||this.Rh.Ei()}zo(t){return this.To()?t:this.Bt()-1-t}Rt(t,i){return this.fh()?t=q(t,i):this.Co()&&(t=et(t,i)),this.xo(t,i)}Gs(t,i,s){this.Io();const e=this.Bo(),n=p(this.Oh()),r=n.xh(),o=n.Sh(),l=this.Ao()-1,a=this.To(),u=l/(o-r),c=s===void 0?0:s.from,f=s===void 0?t.length:s.to,d=this.Lo();for(let m=c;mt.Rn())}Sa(){this.co=null;const t=this.Jo();let i=100;t!==null&&(i=Math.round(1/t.ua())),this.da=Ui,this.fh()?(this.da=ji,i=100):this.Co()?(this.da=new Nt(100,1),i=100):t!==null&&(this.da=t.ca()),this.wo=new Fi(this,i,this.Mo.bind(this),this.xo.bind(this)),this.wo.Xa()}Wo(){this.uo=null}Jo(){return this._o[0]||null}Vo(){return this.To()?this._n.scaleMargins.bottom*this.Bt()+this.lo:this._n.scaleMargins.top*this.Bt()+this.ho}Bo(){return this.To()?this._n.scaleMargins.top*this.Bt()+this.ho:this._n.scaleMargins.bottom*this.Bt()+this.lo}Io(){this.so.eo||(this.so.eo=!0,this.i_())}ko(){this.io=null}xo(t,i){if(this.Io(),this.Ei())return 0;t=this.Ja()&&t?Ct(t,this.vo):t;const s=p(this.Oh()),e=this.Bo()+(this.Ao()-1)*(t-s.xh())/s.kh();return this.zo(e)}Mo(t,i){if(this.Io(),this.Ei())return 0;const s=this.zo(t),e=p(this.Oh()),n=e.xh()+e.kh()*((s-this.Bo())/(this.Ao()-1));return this.Ja()?ht(n,this.vo):n}Ro(){this.co=null,this.wo.Xa()}i_(){const t=this.so.ro;if(t===null)return;let i=null;const s=this.Qo();let e=0,n=0;for(const l of s){if(!l.yt())continue;const a=l.Ct();if(a===null)continue;const u=l.Rl(t.Rs(),t.ui());let c=u&&u.Oh();if(c!==null){switch(this._n.mode){case 1:c=it(c,this.vo);break;case 2:c=gh(c,a.Ot);break;case 3:c=wh(c,a.Ot)}if(i=i===null?c:i.Jn(p(c)),u!==null){const f=u.Ah();f!==null&&(e=Math.max(e,f.above),n=Math.max(e,f.below))}}}if(e===this.ho&&n===this.lo||(this.ho=e,this.lo=n,this.co=null,this.ko()),i!==null){if(i.xh()===i.Sh()){const l=this.Jo(),a=5*(l===null||this.fh()||this.Co()?1:l.ua());this.Ja()&&(i=pt(i,this.vo)),i=new k(i.xh()-a,i.Sh()+a),this.Ja()&&(i=it(i,this.vo))}if(this.Ja()){const l=pt(i,this.vo),a=jt(l);if(r=a,o=this.vo,r.Ea!==o.Ea||r.Na!==o.Na){const u=this.no!==null?pt(this.no,this.vo):null;this.vo=a,i=it(l,a),u!==null&&(this.no=it(u,a))}}this.Po(i)}else this.Rh===null&&(this.Po(new k(-.5,.5)),this.vo=jt(null));var r,o;this.so.eo=!0}Lo(){return this.fh()?q:this.Co()?et:this.Ja()?t=>Ct(t,this.vo):null}n_(t,i,s){return i===void 0?(s===void 0&&(s=this.ca()),s.format(t)):i(t)}Ih(t,i){return this.n_(t,this.bo.priceFormatter,i)}Go(t,i){return this.n_(t,this.bo.percentageFormatter,i)}}class Sh{constructor(t,i){this._o=[],this.s_=new Map,this.Qa=0,this.e_=0,this.r_=1e3,this.uo=null,this.h_=new M,this.wl=t,this.Hi=i,this.l_=new bh(this);const s=i.W();this.a_=this.o_("left",s.leftPriceScale),this.__=this.o_("right",s.rightPriceScale),this.a_.Do().l(this.u_.bind(this,this.a_),this),this.__.Do().l(this.u_.bind(this,this.__),this),this.c_(s)}c_(t){if(t.leftPriceScale&&this.a_.Eh(t.leftPriceScale),t.rightPriceScale&&this.__.Eh(t.rightPriceScale),t.localization&&(this.a_.Sa(),this.__.Sa()),t.overlayPriceScales){const i=Array.from(this.s_.values());for(const s of i){const e=p(s[0].Dt());e.Eh(t.overlayPriceScales),t.localization&&e.Sa()}}}d_(t){switch(t){case"left":return this.a_;case"right":return this.__}return this.s_.has(t)?O(this.s_.get(t))[0].Dt():null}S(){this.$t().f_().p(this),this.a_.Do().p(this),this.__.Do().p(this),this._o.forEach(t=>{t.S&&t.S()}),this.h_.m()}v_(){return this.r_}p_(t){this.r_=t}$t(){return this.Hi}ji(){return this.e_}Bt(){return this.Qa}m_(t){this.e_=t,this.b_()}Oo(t){this.Qa=t,this.a_.Oo(t),this.__.Oo(t),this._o.forEach(i=>{if(this.ur(i)){const s=i.Dt();s!==null&&s.Oo(t)}}),this.b_()}Ta(){return this._o}ur(t){const i=t.Dt();return i===null||this.a_!==i&&this.__!==i}Fo(t,i,s){const e=s!==void 0?s:this.g_().w_+1;this.M_(t,i,e)}jo(t){const i=this._o.indexOf(t);A(i!==-1,"removeDataSource: invalid data source"),this._o.splice(i,1);const s=p(t.Dt()).xa();if(this.s_.has(s)){const n=O(this.s_.get(s)),r=n.indexOf(t);r!==-1&&(n.splice(r,1),n.length===0&&this.s_.delete(s))}const e=t.Dt();e&&e.Ta().indexOf(t)>=0&&e.jo(t),e!==null&&(e.Wo(),this.x_(e)),this.uo=null}dr(t){return t===this.a_?"left":t===this.__?"right":"overlay"}S_(){return this.a_}k_(){return this.__}y_(t,i){t.Uo(i)}C_(t,i){t.qo(i),this.b_()}T_(t){t.Yo()}P_(t,i){t.Xo(i)}R_(t,i){t.Ko(i),this.b_()}D_(t){t.Zo()}b_(){this._o.forEach(t=>{t.Rn()})}dn(){let t=null;return this.Hi.W().rightPriceScale.visible&&this.__.Ta().length!==0?t=this.__:this.Hi.W().leftPriceScale.visible&&this.a_.Ta().length!==0?t=this.a_:this._o.length!==0&&(t=this._o[0].Dt()),t===null&&(t=this.__),t}cr(){let t=null;return this.Hi.W().rightPriceScale.visible?t=this.__:this.Hi.W().leftPriceScale.visible&&(t=this.a_),t}x_(t){t!==null&&t.yo()&&this.O_(t)}A_(t){const i=this.wl.qs();t.So({Nn:!0}),i!==null&&t.t_(i),this.b_()}V_(){this.O_(this.a_),this.O_(this.__)}B_(){this.x_(this.a_),this.x_(this.__),this._o.forEach(t=>{this.ur(t)&&this.x_(t.Dt())}),this.b_(),this.Hi.Nh()}No(){return this.uo===null&&(this.uo=Ds(this._o)),this.uo}I_(){return this.h_}z_(){return this.l_}O_(t){const i=t.Qo();if(i&&i.length>0&&!this.wl.Ei()){const s=this.wl.qs();s!==null&&t.t_(s)}t.Rn()}g_(){const t=this.No();if(t.length===0)return{L_:0,w_:0};let i=0,s=0;for(let e=0;es&&(s=n))}return{L_:i,w_:s}}M_(t,i,s){let e=this.d_(i);if(e===null&&(e=this.o_(i,this.Hi.W().overlayPriceScales)),this._o.push(t),!Tt(i)){const n=this.s_.get(i)||[];n.push(t),this.s_.set(i,n)}e.Fo(t),t.Zi(e),t.Ki(s),this.x_(e),this.uo=null}u_(t,i,s){i.Sr!==s.Sr&&this.O_(t)}o_(t,i){const s=Object.assign({visible:!0,autoScale:!0},W(i)),e=new _h(t,s,this.Hi.W().layout,this.Hi.W().localization);return e.Oo(this.Bt()),e}}class yh{constructor(t,i,s=50){this.Ye=0,this.Xe=1,this.Ke=1,this.Ge=new Map,this.Ze=new Map,this.E_=t,this.N_=i,this.Je=s}F_(t){const i=t.time,s=this.N_.cacheKey(i),e=this.Ge.get(s);if(e!==void 0)return e.W_;if(this.Ye===this.Je){const r=this.Ze.get(this.Ke);this.Ze.delete(this.Ke),this.Ge.delete(O(r)),this.Ke++,this.Ye--}const n=this.E_(t);return this.Ge.set(s,{W_:n,nr:this.Xe}),this.Ze.set(this.Xe,s),this.Ye++,this.Xe++,n}}class nt{constructor(t,i){A(t<=i,"right should be >= left"),this.j_=t,this.H_=i}Rs(){return this.j_}ui(){return this.H_}U_(){return this.H_-this.j_+1}Yr(t){return this.j_<=t&&t<=this.H_}gh(t){return this.j_===t.Rs()&&this.H_===t.ui()}}function Zi(h,t){return h===null||t===null?h===t:h.gh(t)}class Mh{constructor(){this.q_=new Map,this.Ge=null,this.Y_=!1}X_(t){this.Y_=t,this.Ge=null}K_(t,i){this.Z_(i),this.Ge=null;for(let s=i;s{t<=s[0].index?i.push(e):s.splice(ct(s,t,n=>n.indexn-e)){if(!this.q_.get(s))continue;const e=i;i=[];const n=e.length;let r=0;const o=O(this.q_.get(s)),l=o.length;let a=1/0,u=-1/0;for(let c=0;c=t&&d-u>=t)i.push(f),u=d;else if(this.Y_)return e}for(;rt.weight?h:t}class xh{constructor(t,i,s,e){this.e_=0,this.eu=null,this.ru=[],this.fo=null,this.do=null,this.hu=new Mh,this.lu=new Map,this.au=J.su(),this.ou=!0,this._u=new M,this.uu=new M,this.cu=new M,this.du=null,this.fu=null,this.vu=[],this._n=i,this.bo=s,this.pu=i.rightOffset,this.mu=i.barSpacing,this.Hi=t,this.N_=e,this.bu(),this.hu.X_(i.uniformDistribution)}W(){return this._n}wu(t){R(this.bo,t),this.gu(),this.bu()}Eh(t,i){var s;R(this._n,t),this._n.fixLeftEdge&&this.Mu(),this._n.fixRightEdge&&this.xu(),t.barSpacing!==void 0&&this.Hi.Kn(t.barSpacing),t.rightOffset!==void 0&&this.Hi.Zn(t.rightOffset),t.minBarSpacing!==void 0&&this.Hi.Kn((s=t.barSpacing)!==null&&s!==void 0?s:this.mu),this.gu(),this.bu(),this.cu.m()}vn(t){var i,s;return(s=(i=this.ru[t])===null||i===void 0?void 0:i.time)!==null&&s!==void 0?s:null}$i(t){var i;return(i=this.ru[t])!==null&&i!==void 0?i:null}ya(t,i){if(this.ru.length<1)return null;if(this.N_.key(t)>this.N_.key(this.ru[this.ru.length-1].time))return i?this.ru.length-1:null;const s=ct(this.ru,this.N_.key(t),(e,n)=>this.N_.key(e.time)0}qs(){return this.Su(),this.au.iu()}ku(){return this.Su(),this.au.nu()}yu(){const t=this.qs();if(t===null)return null;const i={from:t.Rs(),to:t.ui()};return this.Cu(i)}Cu(t){const i=Math.round(t.from),s=Math.round(t.to),e=p(this.Tu()),n=p(this.Pu());return{from:p(this.$i(Math.max(e,i))),to:p(this.$i(Math.min(n,s)))}}Ru(t){return{from:p(this.ya(t.from,!0)),to:p(this.ya(t.to,!0))}}ji(){return this.e_}m_(t){if(!isFinite(t)||t<=0||this.e_===t)return;const i=this.ku(),s=this.e_;if(this.e_=t,this.ou=!0,this._n.lockVisibleTimeRangeOnResize&&s!==0){const e=this.mu*t/s;this.mu=e}if(this._n.fixLeftEdge&&i!==null&&i.Rs()<=0){const e=s-t;this.pu-=Math.round(e/this.mu)+1,this.ou=!0}this.Du(),this.Ou()}It(t){if(this.Ei()||!rt(t))return 0;const i=this.Au()+this.pu-t;return this.e_-(i+.5)*this.mu-1}Zs(t,i){const s=this.Au(),e=i===void 0?0:i.from,n=i===void 0?t.length:i.to;for(let r=e;ri/2&&!u?v.needAlignCoordinate=!1:v.needAlignCoordinate=c&&m.index<=l||f&&m.index>=a,d++}return this.vu.length=d,this.fu=this.vu,this.vu}Fu(){this.ou=!0,this.Kn(this._n.barSpacing),this.Zn(this._n.rightOffset)}Wu(t){this.ou=!0,this.eu=t,this.Ou(),this.Mu()}ju(t,i){const s=this.Bu(t),e=this.ee(),n=e+i*(e/10);this.Kn(n),this._n.rightBarStaysOnScroll||this.Zn(this.Lu()+(s-this.Bu(t)))}Uo(t){this.fo&&this.Zo(),this.do===null&&this.du===null&&(this.Ei()||(this.do=t,this.Hu()))}qo(t){if(this.du===null)return;const i=ei(this.e_-t,0,this.e_),s=ei(this.e_-p(this.do),0,this.e_);i!==0&&s!==0&&this.Kn(this.du.ee*i/s)}Yo(){this.do!==null&&(this.do=null,this.$u())}Xo(t){this.fo===null&&this.du===null&&(this.Ei()||(this.fo=t,this.Hu()))}Ko(t){if(this.fo===null)return;const i=(this.fo-t)/this.ee();this.pu=p(this.du).Lu+i,this.ou=!0,this.Ou()}Zo(){this.fo!==null&&(this.fo=null,this.$u())}Uu(){this.qu(this._n.rightOffset)}qu(t,i=400){if(!isFinite(t))throw new RangeError("offset is required and must be finite number");if(!isFinite(i)||i<=0)throw new RangeError("animationDuration (optional) must be finite positive number");const s=this.pu,e=performance.now();this.Hi.qn({Yu:n=>(n-e)/i>=1,Xu:n=>{const r=(n-e)/i;return r>=1?t:s+(t-s)*r}})}bt(t,i){this.ou=!0,this.ru=t,this.hu.K_(t,i),this.Ou()}Ku(){return this._u}Zu(){return this.uu}Gu(){return this.cu}Au(){return this.eu||0}Ju(t){const i=t.U_();this.zu(this.e_/i),this.pu=t.ui()-this.Au(),this.Ou(),this.ou=!0,this.Hi.Iu(),this.Hi.Nh()}Qu(){const t=this.Tu(),i=this.Pu();t!==null&&i!==null&&this.Ju(new nt(t,i+this._n.rightOffset))}tc(t){const i=new nt(t.from,t.to);this.Ju(i)}Ui(t){return this.bo.timeFormatter!==void 0?this.bo.timeFormatter(t.originalTime):this.N_.formatHorzItem(t.time)}Eu(){const{handleScroll:t,handleScale:i}=this.Hi.W();return!(t.horzTouchDrag||t.mouseWheel||t.pressedMouseMove||t.vertTouchDrag||i.axisDoubleClickReset.time||i.axisPressedMouseMove.time||i.mouseWheel||i.pinch)}Tu(){return this.ru.length===0?null:0}Pu(){return this.ru.length===0?null:this.ru.length-1}ic(t){return(this.e_-1-t)/this.mu}Bu(t){const i=this.ic(t),s=this.Au()+this.pu-i;return Math.round(1e6*s)/1e6}zu(t){const i=this.mu;this.mu=t,this.Du(),i!==this.mu&&(this.ou=!0,this.nc())}Su(){if(!this.ou)return;if(this.ou=!1,this.Ei())return void this.sc(J.su());const t=this.Au(),i=this.e_/this.mu,s=this.pu+t,e=new nt(s-i+1,s);this.sc(new J(e))}Du(){const t=this.ec();if(this.mui&&(this.mu=i,this.ou=!0)}}ec(){return this._n.fixLeftEdge&&this._n.fixRightEdge&&this.ru.length!==0?this.e_/this.ru.length:this._n.minBarSpacing}Ou(){const t=this.rc();this.pu>t&&(this.pu=t,this.ou=!0);const i=this.hc();i!==null&&this.puthis.lc(s),this.N_),this.lu.set(t.weight,i)),i.F_(t)}lc(t){return this.N_.formatTickmark(t,this.bo)}sc(t){const i=this.au;this.au=t,Zi(i.iu(),this.au.iu())||this._u.m(),Zi(i.nu(),this.au.nu())||this.uu.m(),this.nc()}nc(){this.fu=null}gu(){this.nc(),this.lu.clear()}bu(){this.N_.updateFormatter(this.bo)}Mu(){if(!this._n.fixLeftEdge)return;const t=this.Tu();if(t===null)return;const i=this.qs();if(i===null)return;const s=i.Rs()-t;if(s<0){const e=this.pu-s-1;this.Zn(e)}this.Du()}xu(){this.Ou(),this.Du()}}class Ch{K(t,i,s){t.useMediaCoordinateSpace(e=>this.Z(e,i,s))}fl(t,i,s){t.useMediaCoordinateSpace(e=>this.ac(e,i,s))}ac(t,i,s){}}class Eh extends Ch{constructor(t){super(),this.oc=new Map,this.zt=t}Z(t){}ac(t){if(!this.zt.yt)return;const{context:i,mediaSize:s}=t;let e=0;for(const r of this.zt._c){if(r.Zt.length===0)continue;i.font=r.R;const o=this.uc(i,r.Zt);o>s.width?r.ju=s.width/o:r.ju=1,e+=r.cc*r.ju}let n=0;switch(this.zt.dc){case"top":n=0;break;case"center":n=Math.max((s.height-e)/2,0);break;case"bottom":n=Math.max(s.height-e,0)}i.fillStyle=this.zt.O;for(const r of this.zt._c){i.save();let o=0;switch(this.zt.fc){case"left":i.textAlign="left",o=r.cc/2;break;case"center":i.textAlign="center",o=s.width/2;break;case"right":i.textAlign="right",o=s.width-1-r.cc/2}i.translate(o,n),i.textBaseline="top",i.font=r.R,i.scale(r.ju,r.ju),i.fillText(r.Zt,0,r.vc),i.restore(),n+=r.cc*r.ju}}uc(t,i){const s=this.mc(t.font);let e=s.get(i);return e===void 0&&(e=t.measureText(i).width,s.set(i,e)),e}mc(t){let i=this.oc.get(t);return i===void 0&&(i=new Map,this.oc.set(t,i)),i}}class Oh{constructor(t){this.ft=!0,this.Ft={yt:!1,O:"",_c:[],dc:"center",fc:"center"},this.Wt=new Eh(this.Ft),this.jt=t}bt(){this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.Wt}Mt(){const t=this.jt.W(),i=this.Ft;i.yt=t.visible,i.yt&&(i.O=t.color,i.fc=t.horzAlign,i.dc=t.vertAlign,i._c=[{Zt:t.text,R:K(t.fontSize,t.fontFamily,t.fontStyle),cc:1.2*t.fontSize,vc:0,ju:0}])}}class kh extends ci{constructor(t,i){super(),this._n=i,this.mn=new Oh(this)}Tn(){return[]}Cn(){return[this.mn]}W(){return this._n}Rn(){this.mn.bt()}}var Yi,Qi,Xi,qi,Ji;(function(h){h[h.OnTouchEnd=0]="OnTouchEnd",h[h.OnNextTap=1]="OnNextTap"})(Yi||(Yi={}));class Th{constructor(t,i,s){this.bc=[],this.wc=[],this.e_=0,this.gc=null,this.Mc=new M,this.xc=new M,this.Sc=null,this.kc=t,this._n=i,this.N_=s,this.yc=new le(this),this.wl=new xh(this,i.timeScale,this._n.localization,s),this.vt=new we(this,i.crosshair),this.Cc=new mh(i.crosshair),this.Tc=new kh(this,i.watermark),this.Pc(),this.bc[0].p_(2e3),this.Rc=this.Dc(0),this.Oc=this.Dc(1)}$l(){this.Ac(x.ns())}Nh(){this.Ac(x.ts())}sa(){this.Ac(new x(1))}Ul(t){const i=this.Vc(t);this.Ac(i)}Bc(){return this.gc}Ic(t){const i=this.gc;this.gc=t,i!==null&&this.Ul(i.zc),t!==null&&this.Ul(t.zc)}W(){return this._n}Eh(t){R(this._n,t),this.bc.forEach(i=>i.c_(t)),t.timeScale!==void 0&&this.wl.Eh(t.timeScale),t.localization!==void 0&&this.wl.wu(t.localization),(t.leftPriceScale||t.rightPriceScale)&&this.Mc.m(),this.Rc=this.Dc(0),this.Oc=this.Dc(1),this.$l()}Lc(t,i){if(t==="left")return void this.Eh({leftPriceScale:i});if(t==="right")return void this.Eh({rightPriceScale:i});const s=this.Ec(t);s!==null&&(s.Dt.Eh(i),this.Mc.m())}Ec(t){for(const i of this.bc){const s=i.d_(t);if(s!==null)return{Ht:i,Dt:s}}return null}St(){return this.wl}Nc(){return this.bc}Fc(){return this.Tc}Wc(){return this.vt}jc(){return this.xc}Hc(t,i){t.Oo(i),this.Iu()}m_(t){this.e_=t,this.wl.m_(this.e_),this.bc.forEach(i=>i.m_(t)),this.Iu()}Pc(t){const i=new Sh(this.wl,this);t!==void 0?this.bc.splice(t,0,i):this.bc.push(i);const s=t===void 0?this.bc.length-1:t,e=x.ns();return e.Ln(s,{En:0,Nn:!0}),this.Ac(e),i}y_(t,i,s){t.y_(i,s)}C_(t,i,s){t.C_(i,s),this.ql(),this.Ac(this.$c(t,2))}T_(t,i){t.T_(i),this.Ac(this.$c(t,2))}P_(t,i,s){i.yo()||t.P_(i,s)}R_(t,i,s){i.yo()||(t.R_(i,s),this.ql(),this.Ac(this.$c(t,2)))}D_(t,i){i.yo()||(t.D_(i),this.Ac(this.$c(t,2)))}A_(t,i){t.A_(i),this.Ac(this.$c(t,2))}Uc(t){this.wl.Uo(t)}qc(t,i){const s=this.St();if(s.Ei()||i===0)return;const e=s.ji();t=Math.max(1,Math.min(t,e)),s.ju(t,i),this.Iu()}Yc(t){this.Xc(0),this.Kc(t),this.Zc()}Gc(t){this.wl.qo(t),this.Iu()}Jc(){this.wl.Yo(),this.Nh()}Xc(t){this.wl.Xo(t)}Kc(t){this.wl.Ko(t),this.Iu()}Zc(){this.wl.Zo(),this.Nh()}wt(){return this.wc}Qc(t,i,s,e,n){this.vt.bn(t,i);let r=NaN,o=this.wl.Vu(t);const l=this.wl.qs();l!==null&&(o=Math.min(Math.max(l.Rs(),o),l.ui()));const a=e.dn(),u=a.Ct();u!==null&&(r=a.fn(i,u)),r=this.Cc.Ca(r,o,e),this.vt.xn(o,r,e),this.sa(),n||this.xc.m(this.vt.xt(),{x:t,y:i},s)}td(t,i,s){const e=s.dn(),n=e.Ct(),r=e.Rt(t,p(n)),o=this.wl.ya(i,!0),l=this.wl.It(p(o));this.Qc(l,r,null,s,!0)}nd(t){this.Wc().kn(),this.sa(),t||this.xc.m(null,null,null)}ql(){const t=this.vt.Ht();if(t!==null){const i=this.vt.gn(),s=this.vt.Mn();this.Qc(i,s,null,t)}this.vt.Rn()}sd(t,i,s){const e=this.wl.vn(0);i!==void 0&&s!==void 0&&this.wl.bt(i,s);const n=this.wl.vn(0),r=this.wl.Au(),o=this.wl.qs();if(o!==null&&e!==null&&n!==null){const l=o.Yr(r),a=this.N_.key(e)>this.N_.key(n),u=t!==null&&t>r&&!a,c=this.wl.W().allowShiftVisibleRangeOnWhitespaceReplacement,f=l&&(s!==void 0||c)&&this.wl.W().shiftVisibleRangeOnNewBar;if(u&&!f){const d=t-r;this.wl.Zn(this.wl.Lu()-d)}}this.wl.Wu(t)}Kl(t){t!==null&&t.B_()}_r(t){const i=this.bc.find(s=>s.No().includes(t));return i===void 0?null:i}Iu(){this.Tc.Rn(),this.bc.forEach(t=>t.B_()),this.ql()}S(){this.bc.forEach(t=>t.S()),this.bc.length=0,this._n.localization.priceFormatter=void 0,this._n.localization.percentageFormatter=void 0,this._n.localization.timeFormatter=void 0}ed(){return this.yc}vr(){return this.yc.W()}f_(){return this.Mc}rd(t,i,s){const e=this.bc[0],n=this.hd(i,t,e,s);return this.wc.push(n),this.wc.length===1?this.$l():this.Nh(),n}ld(t){const i=this._r(t),s=this.wc.indexOf(t);A(s!==-1,"Series not found"),this.wc.splice(s,1),p(i).jo(t),t.S&&t.S()}Hl(t,i){const s=p(this._r(t));s.jo(t);const e=this.Ec(i);if(e===null){const n=t.Xi();s.Fo(t,i,n)}else{const n=e.Ht===s?t.Xi():void 0;e.Ht.Fo(t,i,n)}}Qu(){const t=x.ts();t.jn(),this.Ac(t)}ad(t){const i=x.ts();i.Un(t),this.Ac(i)}Xn(){const t=x.ts();t.Xn(),this.Ac(t)}Kn(t){const i=x.ts();i.Kn(t),this.Ac(i)}Zn(t){const i=x.ts();i.Zn(t),this.Ac(i)}qn(t){const i=x.ts();i.qn(t),this.Ac(i)}Hn(){const t=x.ts();t.Hn(),this.Ac(t)}od(){return this._n.rightPriceScale.visible?"right":"left"}_d(){return this.Oc}q(){return this.Rc}Vt(t){const i=this.Oc,s=this.Rc;if(i===s)return i;if(t=Math.max(0,Math.min(100,Math.round(100*t))),this.Sc===null||this.Sc.ys!==s||this.Sc.Cs!==i)this.Sc={ys:s,Cs:i,ud:new Map};else{const n=this.Sc.ud.get(t);if(n!==void 0)return n}const e=function(n,r,o){const[l,a,u,c]=zt(n),[f,d,m,v]=zt(r),b=[N(l+o*(f-l)),N(a+o*(d-a)),N(u+o*(m-u)),Ss(c+o*(v-c))];return`rgba(${b[0]}, ${b[1]}, ${b[2]}, ${b[3]})`}(s,i,t/100);return this.Sc.ud.set(t,e),e}$c(t,i){const s=new x(i);if(t!==null){const e=this.bc.indexOf(t);s.Ln(e,{En:i})}return s}Vc(t,i){return i===void 0&&(i=2),this.$c(this._r(t),i)}Ac(t){this.kc&&this.kc(t),this.bc.forEach(i=>i.z_().Fh().bt())}hd(t,i,s,e){const n=new vi(this,t,i,s,e),r=t.priceScaleId!==void 0?t.priceScaleId:this.od();return s.Fo(n,r),Tt(r)||n.Eh(t),n}Dc(t){const i=this._n.layout;return i.background.type==="gradient"?t===0?i.background.topColor:i.background.bottomColor:i.background.color}}function hi(h){return!P(h)&&!ut(h)}function Vs(h){return P(h)}(function(h){h[h.Disabled=0]="Disabled",h[h.Continuous=1]="Continuous",h[h.OnDataUpdate=2]="OnDataUpdate"})(Qi||(Qi={})),function(h){h[h.LastBar=0]="LastBar",h[h.LastVisible=1]="LastVisible"}(Xi||(Xi={})),function(h){h.Solid="solid",h.VerticalGradient="gradient"}(qi||(qi={})),function(h){h[h.Year=0]="Year",h[h.Month=1]="Month",h[h.DayOfMonth=2]="DayOfMonth",h[h.Time=3]="Time",h[h.TimeWithSeconds=4]="TimeWithSeconds"}(Ji||(Ji={}));const Ki=h=>h.getUTCFullYear();function Nh(h,t,i){return t.replace(/yyyy/g,(s=>I(Ki(s),4))(h)).replace(/yy/g,(s=>I(Ki(s)%100,2))(h)).replace(/MMMM/g,((s,e)=>new Date(s.getUTCFullYear(),s.getUTCMonth(),1).toLocaleString(e,{month:"long"}))(h,i)).replace(/MMM/g,((s,e)=>new Date(s.getUTCFullYear(),s.getUTCMonth(),1).toLocaleString(e,{month:"short"}))(h,i)).replace(/MM/g,(s=>I((e=>e.getUTCMonth()+1)(s),2))(h)).replace(/dd/g,(s=>I((e=>e.getUTCDate())(s),2))(h))}class As{constructor(t="yyyy-MM-dd",i="default"){this.dd=t,this.fd=i}F_(t){return Nh(t,this.dd,this.fd)}}class Rh{constructor(t){this.vd=t||"%h:%m:%s"}F_(t){return this.vd.replace("%h",I(t.getUTCHours(),2)).replace("%m",I(t.getUTCMinutes(),2)).replace("%s",I(t.getUTCSeconds(),2))}}const Bh={pd:"yyyy-MM-dd",md:"%h:%m:%s",bd:" ",wd:"default"};class Lh{constructor(t={}){const i=Object.assign(Object.assign({},Bh),t);this.gd=new As(i.pd,i.wd),this.Md=new Rh(i.md),this.xd=i.bd}F_(t){return`${this.gd.F_(t)}${this.xd}${this.Md.F_(t)}`}}function bt(h){return 60*h*60*1e3}function Zt(h){return 60*h*1e3}const gt=[{Sd:(Gi=1,1e3*Gi),kd:10},{Sd:Zt(1),kd:20},{Sd:Zt(5),kd:21},{Sd:Zt(30),kd:22},{Sd:bt(1),kd:30},{Sd:bt(3),kd:31},{Sd:bt(6),kd:32},{Sd:bt(12),kd:33}];var Gi;function ts(h,t){if(h.getUTCFullYear()!==t.getUTCFullYear())return 70;if(h.getUTCMonth()!==t.getUTCMonth())return 60;if(h.getUTCDate()!==t.getUTCDate())return 50;for(let i=gt.length-1;i>=0;--i)if(Math.floor(t.getTime()/gt[i].Sd)!==Math.floor(h.getTime()/gt[i].Sd))return gt[i].kd;return 0}function Yt(h){let t=h;if(ut(h)&&(t=pi(h)),!hi(t))throw new Error("time must be of type BusinessDay");const i=new Date(Date.UTC(t.year,t.month-1,t.day,0,0,0,0));return{yd:Math.round(i.getTime()/1e3),Cd:t}}function is(h){if(!Vs(h))throw new Error("time must be of type isUTCTimestamp");return{yd:h}}function pi(h){const t=new Date(h);if(isNaN(t.getTime()))throw new Error(`Invalid date string=${h}, expected format=yyyy-mm-dd`);return{day:t.getUTCDate(),month:t.getUTCMonth()+1,year:t.getUTCFullYear()}}function ss(h){ut(h.time)&&(h.time=pi(h.time))}class es{options(){return this._n}setOptions(t){this._n=t,this.updateFormatter(t.localization)}preprocessData(t){Array.isArray(t)?function(i){i.forEach(ss)}(t):ss(t)}createConverterToInternalObj(t){return p(function(i){return i.length===0?null:hi(i[0].time)||ut(i[0].time)?Yt:is}(t))}key(t){return typeof t=="object"&&"yd"in t?t.yd:this.key(this.convertHorzItemToInternal(t))}cacheKey(t){const i=t;return i.Cd===void 0?new Date(1e3*i.yd).getTime():new Date(Date.UTC(i.Cd.year,i.Cd.month-1,i.Cd.day)).getTime()}convertHorzItemToInternal(t){return Vs(i=t)?is(i):hi(i)?Yt(i):Yt(pi(i));var i}updateFormatter(t){if(!this._n)return;const i=t.dateFormat;this._n.timeScale.timeVisible?this.Td=new Lh({pd:i,md:this._n.timeScale.secondsVisible?"%h:%m:%s":"%h:%m",bd:" ",wd:t.locale}):this.Td=new As(i,t.locale)}formatHorzItem(t){const i=t;return this.Td.F_(new Date(1e3*i.yd))}formatTickmark(t,i){const s=function(n,r,o){switch(n){case 0:case 10:return r?o?4:3:2;case 20:case 21:case 22:case 30:case 31:case 32:case 33:return r?3:2;case 50:return 2;case 60:return 1;case 70:return 0}}(t.weight,this._n.timeScale.timeVisible,this._n.timeScale.secondsVisible),e=this._n.timeScale;if(e.tickMarkFormatter!==void 0){const n=e.tickMarkFormatter(t.originalTime,s,i.locale);if(n!==null)return n}return function(n,r,o){const l={};switch(r){case 0:l.year="numeric";break;case 1:l.month="short";break;case 2:l.day="numeric";break;case 3:l.hour12=!1,l.hour="2-digit",l.minute="2-digit";break;case 4:l.hour12=!1,l.hour="2-digit",l.minute="2-digit",l.second="2-digit"}const a=n.Cd===void 0?new Date(1e3*n.yd):new Date(Date.UTC(n.Cd.year,n.Cd.month-1,n.Cd.day));return new Date(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate(),a.getUTCHours(),a.getUTCMinutes(),a.getUTCSeconds(),a.getUTCMilliseconds()).toLocaleString(o,l)}(t.time,s,i.locale)}maxTickMarkWeight(t){let i=t.reduce(zh,t[0]).weight;return i>30&&i<50&&(i=30),i}fillWeightsForPoints(t,i){(function(s,e=0){if(s.length===0)return;let n=e===0?null:s[e-1].time.yd,r=n!==null?new Date(1e3*n):null,o=0;for(let l=e;l1){const l=Math.ceil(o/(s.length-1)),a=new Date(1e3*(s[0].time.yd-l));s[0].timeWeight=ts(new Date(1e3*s[0].time.yd),a)}})(t,i)}static Pd(t){return R({localization:{dateFormat:"dd MMM 'yy"}},t??{})}}const G=typeof window<"u";function hs(){return!!G&&window.navigator.userAgent.toLowerCase().indexOf("firefox")>-1}function Qt(){return!!G&&/iPhone|iPad|iPod/.test(window.navigator.platform)}function ni(h){return h+h%2}function Xt(h,t){return h.Rd-t.Rd}function qt(h,t,i){const s=(h.Rd-t.Rd)/(h.ot-t.ot);return Math.sign(s)*Math.min(Math.abs(s),i)}class Ph{constructor(t,i,s,e){this.Dd=null,this.Od=null,this.Ad=null,this.Vd=null,this.Bd=null,this.Id=0,this.zd=0,this.Ld=t,this.Ed=i,this.Nd=s,this.ss=e}Fd(t,i){if(this.Dd!==null){if(this.Dd.ot===i)return void(this.Dd.Rd=t);if(Math.abs(this.Dd.Rd-t)50)return;let s=0;const e=qt(this.Dd,this.Od,this.Ed),n=Xt(this.Dd,this.Od),r=[e],o=[n];if(s+=n,this.Ad!==null){const a=qt(this.Od,this.Ad,this.Ed);if(Math.sign(a)===Math.sign(e)){const u=Xt(this.Od,this.Ad);if(r.push(a),o.push(u),s+=u,this.Vd!==null){const c=qt(this.Ad,this.Vd,this.Ed);if(Math.sign(c)===Math.sign(e)){const f=Xt(this.Ad,this.Vd);r.push(c),o.push(f),s+=f}}}}let l=0;for(let a=0;a({width:Math.max(e.width,n.width),height:Math.max(e.height,n.height)})});return s.resizeCanvasElement(t),s}function Z(h){var t;h.width=1,h.height=1,(t=h.getContext("2d"))===null||t===void 0||t.clearRect(0,0,1,1)}function ri(h,t,i,s){h.fl&&h.fl(t,i,s)}function Mt(h,t,i,s){h.K(t,i,s)}function oi(h,t,i,s){const e=h(i,s);for(const n of e){const r=n.gt();r!==null&&t(r)}}function Wh(h){G&&window.chrome!==void 0&&h.addEventListener("mousedown",t=>{if(t.button===1)return t.preventDefault(),!1})}class bi{constructor(t,i,s){this.jd=0,this.Hd=null,this.$d={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY},this.Ud=0,this.qd=null,this.Yd={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY},this.Xd=null,this.Kd=!1,this.Zd=null,this.Gd=null,this.Jd=!1,this.Qd=!1,this.tf=!1,this.if=null,this.nf=null,this.sf=null,this.ef=null,this.rf=null,this.hf=null,this.lf=null,this.af=0,this._f=!1,this.uf=!1,this.cf=!1,this.df=0,this.ff=null,this.vf=!Qt(),this.pf=e=>{this.mf(e)},this.bf=e=>{if(this.wf(e)){const n=this.gf(e);if(++this.Ud,this.qd&&this.Ud>1){const{Mf:r}=this.xf(L(e),this.Yd);r<30&&!this.tf&&this.Sf(n,this.yf.kf),this.Cf()}}else{const n=this.gf(e);if(++this.jd,this.Hd&&this.jd>1){const{Mf:r}=this.xf(L(e),this.$d);r<5&&!this.Qd&&this.Tf(n,this.yf.Pf),this.Rf()}}},this.Df=t,this.yf=i,this._n=s,this.Of()}S(){this.if!==null&&(this.if(),this.if=null),this.nf!==null&&(this.nf(),this.nf=null),this.ef!==null&&(this.ef(),this.ef=null),this.rf!==null&&(this.rf(),this.rf=null),this.hf!==null&&(this.hf(),this.hf=null),this.sf!==null&&(this.sf(),this.sf=null),this.Af(),this.Rf()}Vf(t){this.ef&&this.ef();const i=this.Bf.bind(this);if(this.ef=()=>{this.Df.removeEventListener("mousemove",i)},this.Df.addEventListener("mousemove",i),this.wf(t))return;const s=this.gf(t);this.Tf(s,this.yf.If),this.vf=!0}Rf(){this.Hd!==null&&clearTimeout(this.Hd),this.jd=0,this.Hd=null,this.$d={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY}}Cf(){this.qd!==null&&clearTimeout(this.qd),this.Ud=0,this.qd=null,this.Yd={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY}}Bf(t){if(this.cf||this.Gd!==null||this.wf(t))return;const i=this.gf(t);this.Tf(i,this.yf.zf),this.vf=!0}Lf(t){const i=Jt(t.changedTouches,p(this.ff));if(i===null||(this.df=wt(t),this.lf!==null)||this.uf)return;this._f=!0;const s=this.xf(L(i),p(this.Gd)),{Ef:e,Nf:n,Mf:r}=s;if(this.Jd||!(r<5)){if(!this.Jd){const o=.5*e,l=n>=o&&!this._n.Ff(),a=o>n&&!this._n.Wf();l||a||(this.uf=!0),this.Jd=!0,this.tf=!0,this.Af(),this.Cf()}if(!this.uf){const o=this.gf(t,i);this.Sf(o,this.yf.jf),Q(t)}}}Hf(t){if(t.button!==0)return;const i=this.xf(L(t),p(this.Zd)),{Mf:s}=i;if(s>=5&&(this.Qd=!0,this.Rf()),this.Qd){const e=this.gf(t);this.Tf(e,this.yf.$f)}}xf(t,i){const s=Math.abs(i.nt-t.nt),e=Math.abs(i.st-t.st);return{Ef:s,Nf:e,Mf:s+e}}Uf(t){let i=Jt(t.changedTouches,p(this.ff));if(i===null&&t.touches.length===0&&(i=t.changedTouches[0]),i===null)return;this.ff=null,this.df=wt(t),this.Af(),this.Gd=null,this.hf&&(this.hf(),this.hf=null);const s=this.gf(t,i);if(this.Sf(s,this.yf.qf),++this.Ud,this.qd&&this.Ud>1){const{Mf:e}=this.xf(L(i),this.Yd);e<30&&!this.tf&&this.Sf(s,this.yf.kf),this.Cf()}else this.tf||(this.Sf(s,this.yf.Yf),this.yf.Yf&&Q(t));this.Ud===0&&Q(t),t.touches.length===0&&this.Kd&&(this.Kd=!1,Q(t))}mf(t){if(t.button!==0)return;const i=this.gf(t);if(this.Zd=null,this.cf=!1,this.rf&&(this.rf(),this.rf=null),hs()&&this.Df.ownerDocument.documentElement.removeEventListener("mouseleave",this.pf),!this.wf(t))if(this.Tf(i,this.yf.Xf),++this.jd,this.Hd&&this.jd>1){const{Mf:s}=this.xf(L(t),this.$d);s<5&&!this.Qd&&this.Tf(i,this.yf.Pf),this.Rf()}else this.Qd||this.Tf(i,this.yf.Kf)}Af(){this.Xd!==null&&(clearTimeout(this.Xd),this.Xd=null)}Zf(t){if(this.ff!==null)return;const i=t.changedTouches[0];this.ff=i.identifier,this.df=wt(t);const s=this.Df.ownerDocument.documentElement;this.tf=!1,this.Jd=!1,this.uf=!1,this.Gd=L(i),this.hf&&(this.hf(),this.hf=null);{const n=this.Lf.bind(this),r=this.Uf.bind(this);this.hf=()=>{s.removeEventListener("touchmove",n),s.removeEventListener("touchend",r)},s.addEventListener("touchmove",n,{passive:!1}),s.addEventListener("touchend",r,{passive:!1}),this.Af(),this.Xd=setTimeout(this.Gf.bind(this,t),240)}const e=this.gf(t,i);this.Sf(e,this.yf.Jf),this.qd||(this.Ud=0,this.qd=setTimeout(this.Cf.bind(this),500),this.Yd=L(i))}Qf(t){if(t.button!==0)return;const i=this.Df.ownerDocument.documentElement;hs()&&i.addEventListener("mouseleave",this.pf),this.Qd=!1,this.Zd=L(t),this.rf&&(this.rf(),this.rf=null);{const e=this.Hf.bind(this),n=this.mf.bind(this);this.rf=()=>{i.removeEventListener("mousemove",e),i.removeEventListener("mouseup",n)},i.addEventListener("mousemove",e),i.addEventListener("mouseup",n)}if(this.cf=!0,this.wf(t))return;const s=this.gf(t);this.Tf(s,this.yf.tv),this.Hd||(this.jd=0,this.Hd=setTimeout(this.Rf.bind(this),500),this.$d=L(t))}Of(){this.Df.addEventListener("mouseenter",this.Vf.bind(this)),this.Df.addEventListener("touchcancel",this.Af.bind(this));{const t=this.Df.ownerDocument,i=s=>{this.yf.iv&&(s.composed&&this.Df.contains(s.composedPath()[0])||s.target&&this.Df.contains(s.target)||this.yf.iv())};this.nf=()=>{t.removeEventListener("touchstart",i)},this.if=()=>{t.removeEventListener("mousedown",i)},t.addEventListener("mousedown",i),t.addEventListener("touchstart",i,{passive:!0})}Qt()&&(this.sf=()=>{this.Df.removeEventListener("dblclick",this.bf)},this.Df.addEventListener("dblclick",this.bf)),this.Df.addEventListener("mouseleave",this.nv.bind(this)),this.Df.addEventListener("touchstart",this.Zf.bind(this),{passive:!0}),Wh(this.Df),this.Df.addEventListener("mousedown",this.Qf.bind(this)),this.sv(),this.Df.addEventListener("touchmove",()=>{},{passive:!1})}sv(){this.yf.ev===void 0&&this.yf.rv===void 0&&this.yf.hv===void 0||(this.Df.addEventListener("touchstart",t=>this.lv(t.touches),{passive:!0}),this.Df.addEventListener("touchmove",t=>{if(t.touches.length===2&&this.lf!==null&&this.yf.rv!==void 0){const i=ns(t.touches[0],t.touches[1])/this.af;this.yf.rv(this.lf,i),Q(t)}},{passive:!1}),this.Df.addEventListener("touchend",t=>{this.lv(t.touches)}))}lv(t){t.length===1&&(this._f=!1),t.length!==2||this._f||this.Kd?this.av():this.ov(t)}ov(t){const i=this.Df.getBoundingClientRect()||{left:0,top:0};this.lf={nt:(t[0].clientX-i.left+(t[1].clientX-i.left))/2,st:(t[0].clientY-i.top+(t[1].clientY-i.top))/2},this.af=ns(t[0],t[1]),this.yf.ev!==void 0&&this.yf.ev(),this.Af()}av(){this.lf!==null&&(this.lf=null,this.yf.hv!==void 0&&this.yf.hv())}nv(t){if(this.ef&&this.ef(),this.wf(t)||!this.vf)return;const i=this.gf(t);this.Tf(i,this.yf._v),this.vf=!Qt()}Gf(t){const i=Jt(t.touches,p(this.ff));if(i===null)return;const s=this.gf(t,i);this.Sf(s,this.yf.uv),this.tf=!0,this.Kd=!0}wf(t){return t.sourceCapabilities&&t.sourceCapabilities.firesTouchEvents!==void 0?t.sourceCapabilities.firesTouchEvents:wt(t){t.type!=="touchstart"&&Q(t)}}}}function ns(h,t){const i=h.clientX-t.clientX,s=h.clientY-t.clientY;return Math.sqrt(i*i+s*s)}function Q(h){h.cancelable&&h.preventDefault()}function L(h){return{nt:h.pageX,st:h.pageY}}function wt(h){return h.timeStamp||performance.now()}function Jt(h,t){for(let i=0;i{var s,e,n,r;return((e=(s=i.Dt())===null||s===void 0?void 0:s.xa())!==null&&e!==void 0?e:"")!==t?[]:(r=(n=i.la)===null||n===void 0?void 0:n.call(i,h))!==null&&r!==void 0?r:[]}}class rs{constructor(t,i,s,e){this.zi=null,this.gv=null,this.Mv=!1,this.xv=new lt(200),this.Zr=null,this.Sv=0,this.kv=!1,this.yv=()=>{this.kv||this.Qi.Cv().$t().Nh()},this.Tv=()=>{this.kv||this.Qi.Cv().$t().Nh()},this.Qi=t,this._n=i,this.mo=i.layout,this.yc=s,this.Pv=e==="left",this.Rv=Kt("normal",e),this.Dv=Kt("top",e),this.Ov=Kt("bottom",e),this.Av=document.createElement("div"),this.Av.style.height="100%",this.Av.style.overflow="hidden",this.Av.style.width="25px",this.Av.style.left="0",this.Av.style.position="relative",this.Vv=U(this.Av,S({width:16,height:16})),this.Vv.subscribeSuggestedBitmapSizeChanged(this.yv);const n=this.Vv.canvasElement;n.style.position="absolute",n.style.zIndex="1",n.style.left="0",n.style.top="0",this.Bv=U(this.Av,S({width:16,height:16})),this.Bv.subscribeSuggestedBitmapSizeChanged(this.Tv);const r=this.Bv.canvasElement;r.style.position="absolute",r.style.zIndex="2",r.style.left="0",r.style.top="0";const o={tv:this.Iv.bind(this),Jf:this.Iv.bind(this),$f:this.zv.bind(this),jf:this.zv.bind(this),iv:this.Lv.bind(this),Xf:this.Ev.bind(this),qf:this.Ev.bind(this),Pf:this.Nv.bind(this),kf:this.Nv.bind(this),If:this.Fv.bind(this),_v:this.Wv.bind(this)};this.jv=new bi(this.Bv.canvasElement,o,{Ff:()=>!this._n.handleScroll.vertTouchDrag,Wf:()=>!0})}S(){this.jv.S(),this.Bv.unsubscribeSuggestedBitmapSizeChanged(this.Tv),Z(this.Bv.canvasElement),this.Bv.dispose(),this.Vv.unsubscribeSuggestedBitmapSizeChanged(this.yv),Z(this.Vv.canvasElement),this.Vv.dispose(),this.zi!==null&&this.zi.$o().p(this),this.zi=null}Hv(){return this.Av}P(){return this.mo.fontSize}$v(){const t=this.yc.W();return this.Zr!==t.R&&(this.xv.Qe(),this.Zr=t.R),t}Uv(){if(this.zi===null)return 0;let t=0;const i=this.$v(),s=p(this.Vv.canvasElement.getContext("2d"));s.save();const e=this.zi.La();s.font=this.qv(),e.length>0&&(t=Math.max(this.xv.Mi(s,e[0].Za),this.xv.Mi(s,e[e.length-1].Za)));const n=this.Yv();for(let l=n.length;l--;){const a=this.xv.Mi(s,n[l].Zt());a>t&&(t=a)}const r=this.zi.Ct();if(r!==null&&this.gv!==null){const l=this.zi.fn(1,r),a=this.zi.fn(this.gv.height-2,r);t=Math.max(t,this.xv.Mi(s,this.zi.Ni(Math.floor(Math.min(l,a))+.11111111111111,r)),this.xv.Mi(s,this.zi.Ni(Math.ceil(Math.max(l,a))-.11111111111111,r)))}s.restore();const o=t||34;return ni(Math.ceil(i.C+i.T+i.B+i.I+5+o))}Xv(t){this.gv!==null&&F(this.gv,t)||(this.gv=t,this.kv=!0,this.Vv.resizeCanvasElement(t),this.Bv.resizeCanvasElement(t),this.kv=!1,this.Av.style.width=`${t.width}px`,this.Av.style.height=`${t.height}px`)}Kv(){return p(this.gv).width}Zi(t){this.zi!==t&&(this.zi!==null&&this.zi.$o().p(this),this.zi=t,t.$o().l(this.ao.bind(this),this))}Dt(){return this.zi}Qe(){const t=this.Qi.Zv();this.Qi.Cv().$t().A_(t,p(this.Dt()))}Gv(t){if(this.gv===null)return;if(t!==1){this.Jv(),this.Vv.applySuggestedBitmapSize();const s=H(this.Vv);s!==null&&(s.useBitmapCoordinateSpace(e=>{this.Qv(e),this.Ae(e)}),this.Qi.tp(s,this.Ov),this.ip(s),this.Qi.tp(s,this.Rv),this.np(s))}this.Bv.applySuggestedBitmapSize();const i=H(this.Bv);i!==null&&(i.useBitmapCoordinateSpace(({context:s,bitmapSize:e})=>{s.clearRect(0,0,e.width,e.height)}),this.sp(i),this.Qi.tp(i,this.Dv))}ep(){return this.Vv.bitmapSize}rp(t,i,s){const e=this.ep();e.width>0&&e.height>0&&t.drawImage(this.Vv.canvasElement,i,s)}bt(){var t;(t=this.zi)===null||t===void 0||t.La()}Iv(t){if(this.zi===null||this.zi.Ei()||!this._n.handleScale.axisPressedMouseMove.price)return;const i=this.Qi.Cv().$t(),s=this.Qi.Zv();this.Mv=!0,i.y_(s,this.zi,t.localY)}zv(t){if(this.zi===null||!this._n.handleScale.axisPressedMouseMove.price)return;const i=this.Qi.Cv().$t(),s=this.Qi.Zv(),e=this.zi;i.C_(s,e,t.localY)}Lv(){if(this.zi===null||!this._n.handleScale.axisPressedMouseMove.price)return;const t=this.Qi.Cv().$t(),i=this.Qi.Zv(),s=this.zi;this.Mv&&(this.Mv=!1,t.T_(i,s))}Ev(t){if(this.zi===null||!this._n.handleScale.axisPressedMouseMove.price)return;const i=this.Qi.Cv().$t(),s=this.Qi.Zv();this.Mv=!1,i.T_(s,this.zi)}Nv(t){this._n.handleScale.axisDoubleClickReset.price&&this.Qe()}Fv(t){this.zi!==null&&(!this.Qi.Cv().$t().W().handleScale.axisPressedMouseMove.price||this.zi.fh()||this.zi.Co()||this.hp(1))}Wv(t){this.hp(0)}Yv(){const t=[],i=this.zi===null?void 0:this.zi;return(s=>{for(let e=0;e{r.fillStyle=s.borderColor;const a=Math.max(1,Math.floor(l)),u=Math.floor(.5*l),c=Math.round(e.T*o);r.beginPath();for(const f of i)r.rect(Math.floor(n*o),Math.round(f.Aa*l)-u,c,a);r.fill()}),t.useMediaCoordinateSpace(({context:r})=>{var o;r.font=this.qv(),r.fillStyle=(o=s.textColor)!==null&&o!==void 0?o:this.mo.textColor,r.textAlign=this.Pv?"right":"left",r.textBaseline="middle";const l=this.Pv?Math.round(n-e.B):Math.round(n+e.T+e.B),a=i.map(u=>this.xv.gi(r,u.Za));for(let u=i.length;u--;){const c=i[u];r.fillText(c.Za,l,c.Aa+a[u])}})}Jv(){if(this.gv===null||this.zi===null)return;let t=this.gv.height/2;const i=[],s=this.zi.No().slice(),e=this.Qi.Zv(),n=this.$v();this.zi===e.cr()&&this.Qi.Zv().No().forEach(l=>{e.ur(l)&&s.push(l)});const r=this.zi.Ta()[0],o=this.zi;s.forEach(l=>{const a=l.Tn(e,o);a.forEach(u=>{u.Oi(null),u.Ai()&&i.push(u)}),r===l&&a.length>0&&(t=a[0].Si())}),i.forEach(l=>l.Oi(l.Si())),this.zi.W().alignLabels&&this.lp(i,n,t)}lp(t,i,s){if(this.gv===null)return;const e=t.filter(r=>r.Si()<=s),n=t.filter(r=>r.Si()>s);e.sort((r,o)=>o.Si()-r.Si()),e.length&&n.length&&n.push(e[0]),n.sort((r,o)=>r.Si()-o.Si());for(const r of t){const o=Math.floor(r.Bt(i)/2),l=r.Si();l>-o&&lthis.gv.height-o&&lc-a&&o.Oi(c-a)}for(let r=1;r{n.Vi()&&n.gt(p(this.zi)).K(t,s,this.xv,e)})}sp(t){if(this.gv===null||this.zi===null)return;const i=this.Qi.Cv().$t(),s=[],e=this.Qi.Zv(),n=i.Wc().Tn(e,this.zi);n.length&&s.push(n);const r=this.$v(),o=this.Pv?"right":"left";s.forEach(l=>{l.forEach(a=>{a.gt(p(this.zi)).K(t,r,this.xv,o)})})}hp(t){this.Av.style.cursor=t===1?"ns-resize":"default"}ao(){const t=this.Uv();this.Sv{this.kv||this.gp===null||this.Hi().Nh()},this.Tv=()=>{this.kv||this.gp===null||this.Hi().Nh()},this.Mp=t,this.gp=i,this.gp.I_().l(this.xp.bind(this),this,!0),this.Sp=document.createElement("td"),this.Sp.style.padding="0",this.Sp.style.position="relative";const s=document.createElement("div");s.style.width="100%",s.style.height="100%",s.style.position="relative",s.style.overflow="hidden",this.kp=document.createElement("td"),this.kp.style.padding="0",this.yp=document.createElement("td"),this.yp.style.padding="0",this.Sp.appendChild(s),this.Vv=U(s,S({width:16,height:16})),this.Vv.subscribeSuggestedBitmapSizeChanged(this.yv);const e=this.Vv.canvasElement;e.style.position="absolute",e.style.zIndex="1",e.style.left="0",e.style.top="0",this.Bv=U(s,S({width:16,height:16})),this.Bv.subscribeSuggestedBitmapSizeChanged(this.Tv);const n=this.Bv.canvasElement;n.style.position="absolute",n.style.zIndex="2",n.style.left="0",n.style.top="0",this.Cp=document.createElement("tr"),this.Cp.appendChild(this.kp),this.Cp.appendChild(this.Sp),this.Cp.appendChild(this.yp),this.Tp(),this.jv=new bi(this.Bv.canvasElement,this,{Ff:()=>this.pp===null&&!this.Mp.W().handleScroll.vertTouchDrag,Wf:()=>this.pp===null&&!this.Mp.W().handleScroll.horzTouchDrag})}S(){this.ap!==null&&this.ap.S(),this.op!==null&&this.op.S(),this.Bv.unsubscribeSuggestedBitmapSizeChanged(this.Tv),Z(this.Bv.canvasElement),this.Bv.dispose(),this.Vv.unsubscribeSuggestedBitmapSizeChanged(this.yv),Z(this.Vv.canvasElement),this.Vv.dispose(),this.gp!==null&&this.gp.I_().p(this),this.jv.S()}Zv(){return p(this.gp)}Pp(t){this.gp!==null&&this.gp.I_().p(this),this.gp=t,this.gp!==null&&this.gp.I_().l(gi.prototype.xp.bind(this),this,!0),this.Tp()}Cv(){return this.Mp}Hv(){return this.Cp}Tp(){if(this.gp!==null&&(this.Rp(),this.Hi().wt().length!==0)){if(this.ap!==null){const t=this.gp.S_();this.ap.Zi(p(t))}if(this.op!==null){const t=this.gp.k_();this.op.Zi(p(t))}}}Dp(){this.ap!==null&&this.ap.bt(),this.op!==null&&this.op.bt()}v_(){return this.gp!==null?this.gp.v_():0}p_(t){this.gp&&this.gp.p_(t)}If(t){if(!this.gp)return;this.Op();const i=t.localX,s=t.localY;this.Ap(i,s,t)}tv(t){this.Op(),this.Vp(),this.Ap(t.localX,t.localY,t)}zf(t){var i;if(!this.gp)return;this.Op();const s=t.localX,e=t.localY;this.Ap(s,e,t);const n=this.pr(s,e);this.Mp.Bp((i=n==null?void 0:n.wv)!==null&&i!==void 0?i:null),this.Hi().Ic(n&&{zc:n.zc,mv:n.mv})}Kf(t){this.gp!==null&&(this.Op(),this.Ip(t))}Pf(t){this.gp!==null&&this.zp(this.dp,t)}kf(t){this.Pf(t)}$f(t){this.Op(),this.Lp(t),this.Ap(t.localX,t.localY,t)}Xf(t){this.gp!==null&&(this.Op(),this.vp=!1,this.Ep(t))}Yf(t){this.gp!==null&&this.Ip(t)}uv(t){if(this.vp=!0,this.pp===null){const i={x:t.localX,y:t.localY};this.Np(i,i,t)}}_v(t){this.gp!==null&&(this.Op(),this.gp.$t().Ic(null),this.Fp())}Wp(){return this.cp}jp(){return this.dp}ev(){this.fp=1,this.Hi().Hn()}rv(t,i){if(!this.Mp.W().handleScale.pinch)return;const s=5*(i-this.fp);this.fp=i,this.Hi().qc(t.nt,s)}Jf(t){this.vp=!1,this.mp=this.pp!==null,this.Vp();const i=this.Hi().Wc();this.pp!==null&&i.yt()&&(this.bp={x:i.Yt(),y:i.Xt()},this.pp={x:t.localX,y:t.localY})}jf(t){if(this.gp===null)return;const i=t.localX,s=t.localY;if(this.pp===null)this.Lp(t);else{this.mp=!1;const e=p(this.bp),n=e.x+(i-this.pp.x),r=e.y+(s-this.pp.y);this.Ap(n,r,t)}}qf(t){this.Cv().W().trackingMode.exitMode===0&&(this.mp=!0),this.Hp(),this.Ep(t)}pr(t,i){const s=this.gp;return s===null?null:function(e,n,r){const o=e.No(),l=function(a,u,c){var f,d;let m,v;for(const w of a){const y=(d=(f=w.oa)===null||f===void 0?void 0:f.call(w,u,c))!==null&&d!==void 0?d:[];for(const _ of y)b=_.zOrder,(!(g=m==null?void 0:m.zOrder)||b==="top"&&g!=="top"||b==="normal"&&g==="bottom")&&(m=_,v=w)}var b,g;return m&&v?{bv:m,zc:v}:null}(o,n,r);if((l==null?void 0:l.bv.zOrder)==="top")return _t(l);for(const a of o){if(l&&l.zc===a&&l.bv.zOrder!=="bottom"&&!l.bv.isBackground)return _t(l);const u=Ih(a.Cn(e),n,r);if(u!==null)return{zc:a,vv:u.vv,mv:u.mv};if(l&&l.zc===a&&l.bv.zOrder!=="bottom"&&l.bv.isBackground)return _t(l)}return l!=null&&l.bv?_t(l):null}(s,t,i)}$p(t,i){p(i==="left"?this.ap:this.op).Xv(S({width:t,height:this.gv.height}))}Up(){return this.gv}Xv(t){F(this.gv,t)||(this.gv=t,this.kv=!0,this.Vv.resizeCanvasElement(t),this.Bv.resizeCanvasElement(t),this.kv=!1,this.Sp.style.width=t.width+"px",this.Sp.style.height=t.height+"px")}qp(){const t=p(this.gp);t.x_(t.S_()),t.x_(t.k_());for(const i of t.Ta())if(t.ur(i)){const s=i.Dt();s!==null&&t.x_(s),i.Rn()}}ep(){return this.Vv.bitmapSize}rp(t,i,s){const e=this.ep();e.width>0&&e.height>0&&t.drawImage(this.Vv.canvasElement,i,s)}Gv(t){if(t===0||this.gp===null)return;if(t>1&&this.qp(),this.ap!==null&&this.ap.Gv(t),this.op!==null&&this.op.Gv(t),t!==1){this.Vv.applySuggestedBitmapSize();const s=H(this.Vv);s!==null&&(s.useBitmapCoordinateSpace(e=>{this.Qv(e)}),this.gp&&(this.Yp(s,Dh),this.Xp(s),this.Kp(s),this.Yp(s,St),this.Yp(s,Vh)))}this.Bv.applySuggestedBitmapSize();const i=H(this.Bv);i!==null&&(i.useBitmapCoordinateSpace(({context:s,bitmapSize:e})=>{s.clearRect(0,0,e.width,e.height)}),this.Zp(i),this.Yp(i,Ah))}Gp(){return this.ap}Jp(){return this.op}tp(t,i){this.Yp(t,i)}xp(){this.gp!==null&&this.gp.I_().p(this),this.gp=null}Ip(t){this.zp(this.cp,t)}zp(t,i){const s=i.localX,e=i.localY;t.M()&&t.m(this.Hi().St().Vu(s),{x:s,y:e},i)}Qv({context:t,bitmapSize:i}){const{width:s,height:e}=i,n=this.Hi(),r=n.q(),o=n._d();r===o?Ot(t,0,0,s,e,o):ys(t,0,0,s,e,r,o)}Xp(t){const i=p(this.gp).z_().Fh().gt();i!==null&&i.K(t,!1)}Kp(t){const i=this.Hi().Fc();this.Qp(t,St,ri,i),this.Qp(t,St,Mt,i)}Zp(t){this.Qp(t,St,Mt,this.Hi().Wc())}Yp(t,i){const s=p(this.gp).No();for(const e of s)this.Qp(t,i,ri,e);for(const e of s)this.Qp(t,i,Mt,e)}Qp(t,i,s,e){const n=p(this.gp),r=n.$t().Bc(),o=r!==null&&r.zc===e,l=r!==null&&o&&r.mv!==void 0?r.mv.br:void 0;oi(i,a=>s(a,t,o,l),e,n)}Rp(){if(this.gp===null)return;const t=this.Mp,i=this.gp.S_().W().visible,s=this.gp.k_().W().visible;i||this.ap===null||(this.kp.removeChild(this.ap.Hv()),this.ap.S(),this.ap=null),s||this.op===null||(this.yp.removeChild(this.op.Hv()),this.op.S(),this.op=null);const e=t.$t().ed();i&&this.ap===null&&(this.ap=new rs(this,t.W(),e,"left"),this.kp.appendChild(this.ap.Hv())),s&&this.op===null&&(this.op=new rs(this,t.W(),e,"right"),this.yp.appendChild(this.op.Hv()))}tm(t){return t.cv&&this.vp||this.pp!==null}im(t){return Math.max(0,Math.min(t,this.gv.width-1))}nm(t){return Math.max(0,Math.min(t,this.gv.height-1))}Ap(t,i,s){this.Hi().Qc(this.im(t),this.nm(i),s,p(this.gp))}Fp(){this.Hi().nd()}Hp(){this.mp&&(this.pp=null,this.Fp())}Np(t,i,s){this.pp=t,this.mp=!1,this.Ap(i.x,i.y,s);const e=this.Hi().Wc();this.bp={x:e.Yt(),y:e.Xt()}}Hi(){return this.Mp.$t()}Ep(t){if(!this.up)return;const i=this.Hi(),s=this.Zv();if(i.D_(s,s.dn()),this._p=null,this.up=!1,i.Zc(),this.wp!==null){const e=performance.now(),n=i.St();this.wp.Pr(n.Lu(),e),this.wp.Yu(e)||i.qn(this.wp)}}Op(){this.pp=null}Vp(){if(this.gp){if(this.Hi().Hn(),document.activeElement!==document.body&&document.activeElement!==document.documentElement)p(document.activeElement).blur();else{const t=document.getSelection();t!==null&&t.removeAllRanges()}!this.gp.dn().Ei()&&this.Hi().St().Ei()}}Lp(t){if(this.gp===null)return;const i=this.Hi(),s=i.St();if(s.Ei())return;const e=this.Mp.W(),n=e.handleScroll,r=e.kineticScroll;if((!n.pressedMouseMove||t.cv)&&(!n.horzTouchDrag&&!n.vertTouchDrag||!t.cv))return;const o=this.gp.dn(),l=performance.now();if(this._p!==null||this.tm(t)||(this._p={x:t.clientX,y:t.clientY,yd:l,sm:t.localX,rm:t.localY}),this._p!==null&&!this.up&&(this._p.x!==t.clientX||this._p.y!==t.clientY)){if(t.cv&&r.touch||!t.cv&&r.mouse){const a=s.ee();this.wp=new Ph(.2/a,7/a,.997,15/a),this.wp.Fd(s.Lu(),this._p.yd)}else this.wp=null;o.Ei()||i.P_(this.gp,o,t.localY),i.Xc(t.localX),this.up=!0}this.up&&(o.Ei()||i.R_(this.gp,o,t.localY),i.Kc(t.localX),this.wp!==null&&this.wp.Fd(s.Lu(),l))}}class os{constructor(t,i,s,e,n){this.ft=!0,this.gv=S({width:0,height:0}),this.yv=()=>this.Gv(3),this.Pv=t==="left",this.yc=s.ed,this._n=i,this.hm=e,this.lm=n,this.Av=document.createElement("div"),this.Av.style.width="25px",this.Av.style.height="100%",this.Av.style.overflow="hidden",this.Vv=U(this.Av,S({width:16,height:16})),this.Vv.subscribeSuggestedBitmapSizeChanged(this.yv)}S(){this.Vv.unsubscribeSuggestedBitmapSizeChanged(this.yv),Z(this.Vv.canvasElement),this.Vv.dispose()}Hv(){return this.Av}Up(){return this.gv}Xv(t){F(this.gv,t)||(this.gv=t,this.Vv.resizeCanvasElement(t),this.Av.style.width=`${t.width}px`,this.Av.style.height=`${t.height}px`,this.ft=!0)}Gv(t){if(t<3&&!this.ft||this.gv.width===0||this.gv.height===0)return;this.ft=!1,this.Vv.applySuggestedBitmapSize();const i=H(this.Vv);i!==null&&i.useBitmapCoordinateSpace(s=>{this.Qv(s),this.Ae(s)})}ep(){return this.Vv.bitmapSize}rp(t,i,s){const e=this.ep();e.width>0&&e.height>0&&t.drawImage(this.Vv.canvasElement,i,s)}Ae({context:t,bitmapSize:i,horizontalPixelRatio:s,verticalPixelRatio:e}){if(!this.hm())return;t.fillStyle=this._n.timeScale.borderColor;const n=Math.floor(this.yc.W().C*s),r=Math.floor(this.yc.W().C*e),o=this.Pv?i.width-n:0;t.fillRect(o,0,n,r)}Qv({context:t,bitmapSize:i}){Ot(t,0,0,i.width,i.height,this.lm())}}function wi(h){return t=>{var i,s;return(s=(i=t.aa)===null||i===void 0?void 0:i.call(t,h))!==null&&s!==void 0?s:[]}}const $h=wi("normal"),Fh=wi("top"),Hh=wi("bottom");class jh{constructor(t,i){this.am=null,this.om=null,this.k=null,this._m=!1,this.gv=S({width:0,height:0}),this.um=new M,this.xv=new lt(5),this.kv=!1,this.yv=()=>{this.kv||this.Mp.$t().Nh()},this.Tv=()=>{this.kv||this.Mp.$t().Nh()},this.Mp=t,this.N_=i,this._n=t.W().layout,this.dm=document.createElement("tr"),this.fm=document.createElement("td"),this.fm.style.padding="0",this.vm=document.createElement("td"),this.vm.style.padding="0",this.Av=document.createElement("td"),this.Av.style.height="25px",this.Av.style.padding="0",this.pm=document.createElement("div"),this.pm.style.width="100%",this.pm.style.height="100%",this.pm.style.position="relative",this.pm.style.overflow="hidden",this.Av.appendChild(this.pm),this.Vv=U(this.pm,S({width:16,height:16})),this.Vv.subscribeSuggestedBitmapSizeChanged(this.yv);const s=this.Vv.canvasElement;s.style.position="absolute",s.style.zIndex="1",s.style.left="0",s.style.top="0",this.Bv=U(this.pm,S({width:16,height:16})),this.Bv.subscribeSuggestedBitmapSizeChanged(this.Tv);const e=this.Bv.canvasElement;e.style.position="absolute",e.style.zIndex="2",e.style.left="0",e.style.top="0",this.dm.appendChild(this.fm),this.dm.appendChild(this.Av),this.dm.appendChild(this.vm),this.bm(),this.Mp.$t().f_().l(this.bm.bind(this),this),this.jv=new bi(this.Bv.canvasElement,this,{Ff:()=>!0,Wf:()=>!this.Mp.W().handleScroll.horzTouchDrag})}S(){this.jv.S(),this.am!==null&&this.am.S(),this.om!==null&&this.om.S(),this.Bv.unsubscribeSuggestedBitmapSizeChanged(this.Tv),Z(this.Bv.canvasElement),this.Bv.dispose(),this.Vv.unsubscribeSuggestedBitmapSizeChanged(this.yv),Z(this.Vv.canvasElement),this.Vv.dispose()}Hv(){return this.dm}wm(){return this.am}gm(){return this.om}tv(t){if(this._m)return;this._m=!0;const i=this.Mp.$t();!i.St().Ei()&&this.Mp.W().handleScale.axisPressedMouseMove.time&&i.Uc(t.localX)}Jf(t){this.tv(t)}iv(){const t=this.Mp.$t();!t.St().Ei()&&this._m&&(this._m=!1,this.Mp.W().handleScale.axisPressedMouseMove.time&&t.Jc())}$f(t){const i=this.Mp.$t();!i.St().Ei()&&this.Mp.W().handleScale.axisPressedMouseMove.time&&i.Gc(t.localX)}jf(t){this.$f(t)}Xf(){this._m=!1;const t=this.Mp.$t();t.St().Ei()&&!this.Mp.W().handleScale.axisPressedMouseMove.time||t.Jc()}qf(){this.Xf()}Pf(){this.Mp.W().handleScale.axisDoubleClickReset.time&&this.Mp.$t().Xn()}kf(){this.Pf()}If(){this.Mp.$t().W().handleScale.axisPressedMouseMove.time&&this.hp(1)}_v(){this.hp(0)}Up(){return this.gv}Mm(){return this.um}xm(t,i,s){F(this.gv,t)||(this.gv=t,this.kv=!0,this.Vv.resizeCanvasElement(t),this.Bv.resizeCanvasElement(t),this.kv=!1,this.Av.style.width=`${t.width}px`,this.Av.style.height=`${t.height}px`,this.um.m(t)),this.am!==null&&this.am.Xv(S({width:i,height:t.height})),this.om!==null&&this.om.Xv(S({width:s,height:t.height}))}Sm(){const t=this.km();return Math.ceil(t.C+t.T+t.P+t.L+t.V+t.ym)}bt(){this.Mp.$t().St().La()}ep(){return this.Vv.bitmapSize}rp(t,i,s){const e=this.ep();e.width>0&&e.height>0&&t.drawImage(this.Vv.canvasElement,i,s)}Gv(t){if(t===0)return;if(t!==1){this.Vv.applySuggestedBitmapSize();const s=H(this.Vv);s!==null&&(s.useBitmapCoordinateSpace(e=>{this.Qv(e),this.Ae(e),this.Cm(s,Hh)}),this.ip(s),this.Cm(s,$h)),this.am!==null&&this.am.Gv(t),this.om!==null&&this.om.Gv(t)}this.Bv.applySuggestedBitmapSize();const i=H(this.Bv);i!==null&&(i.useBitmapCoordinateSpace(({context:s,bitmapSize:e})=>{s.clearRect(0,0,e.width,e.height)}),this.Tm([...this.Mp.$t().wt(),this.Mp.$t().Wc()],i),this.Cm(i,Fh))}Cm(t,i){const s=this.Mp.$t().wt();for(const e of s)oi(i,n=>ri(n,t,!1,void 0),e,void 0);for(const e of s)oi(i,n=>Mt(n,t,!1,void 0),e,void 0)}Qv({context:t,bitmapSize:i}){Ot(t,0,0,i.width,i.height,this.Mp.$t()._d())}Ae({context:t,bitmapSize:i,verticalPixelRatio:s}){if(this.Mp.W().timeScale.borderVisible){t.fillStyle=this.Pm();const e=Math.max(1,Math.floor(this.km().C*s));t.fillRect(0,0,i.width,e)}}ip(t){const i=this.Mp.$t().St(),s=i.La();if(!s||s.length===0)return;const e=this.N_.maxTickMarkWeight(s),n=this.km(),r=i.W();r.borderVisible&&r.ticksVisible&&t.useBitmapCoordinateSpace(({context:o,horizontalPixelRatio:l,verticalPixelRatio:a})=>{o.strokeStyle=this.Pm(),o.fillStyle=this.Pm();const u=Math.max(1,Math.floor(l)),c=Math.floor(.5*l);o.beginPath();const f=Math.round(n.T*a);for(let d=s.length;d--;){const m=Math.round(s[d].coord*l);o.rect(m-c,0,u,f)}o.fill()}),t.useMediaCoordinateSpace(({context:o})=>{const l=n.C+n.T+n.L+n.P/2;o.textAlign="center",o.textBaseline="middle",o.fillStyle=this.$(),o.font=this.qv();for(const a of s)if(a.weight=e){const u=a.needAlignCoordinate?this.Rm(o,a.coord,a.label):a.coord;o.fillText(a.label,u,l)}})}Rm(t,i,s){const e=this.xv.Mi(t,s),n=e/2,r=Math.floor(i-n)+.5;return r<0?i+=Math.abs(0-r):r+e>this.gv.width&&(i-=Math.abs(this.gv.width-(r+e))),i}Tm(t,i){const s=this.km();for(const e of t)for(const n of e.Ji())n.gt().K(i,s)}Pm(){return this.Mp.W().timeScale.borderColor}$(){return this._n.textColor}j(){return this._n.fontSize}qv(){return K(this.j(),this._n.fontFamily)}Dm(){return K(this.j(),this._n.fontFamily,"bold")}km(){this.k===null&&(this.k={C:1,N:NaN,L:NaN,V:NaN,Wi:NaN,T:5,P:NaN,R:"",Fi:new lt,ym:0});const t=this.k,i=this.qv();if(t.R!==i){const s=this.j();t.P=s,t.R=i,t.L=3*s/12,t.V=3*s/12,t.Wi=9*s/12,t.N=0,t.ym=4*s/12,t.Fi.Qe()}return this.k}hp(t){this.Av.style.cursor=t===1?"ew-resize":"default"}bm(){const t=this.Mp.$t(),i=t.W();i.leftPriceScale.visible||this.am===null||(this.fm.removeChild(this.am.Hv()),this.am.S(),this.am=null),i.rightPriceScale.visible||this.om===null||(this.vm.removeChild(this.om.Hv()),this.om.S(),this.om=null);const s={ed:this.Mp.$t().ed()},e=()=>i.leftPriceScale.borderVisible&&t.St().W().borderVisible,n=()=>t._d();i.leftPriceScale.visible&&this.am===null&&(this.am=new os("left",i,s,e,n),this.fm.appendChild(this.am.Hv())),i.rightPriceScale.visible&&this.om===null&&(this.om=new os("right",i,s,e,n),this.vm.appendChild(this.om.Hv()))}}const Uh=!!G&&!!navigator.userAgentData&&navigator.userAgentData.brands.some(h=>h.brand.includes("Chromium"))&&!!G&&(!((Gt=navigator==null?void 0:navigator.userAgentData)===null||Gt===void 0)&&Gt.platform?navigator.userAgentData.platform==="Windows":navigator.userAgent.toLowerCase().indexOf("win")>=0);var Gt;class Zh{constructor(t,i,s){var e;this.Om=[],this.Am=0,this.Qa=0,this.e_=0,this.Vm=0,this.Bm=0,this.Im=null,this.zm=!1,this.cp=new M,this.dp=new M,this.xc=new M,this.Lm=null,this.Em=null,this.Nm=t,this._n=i,this.N_=s,this.dm=document.createElement("div"),this.dm.classList.add("tv-lightweight-charts"),this.dm.style.overflow="hidden",this.dm.style.direction="ltr",this.dm.style.width="100%",this.dm.style.height="100%",(e=this.dm).style.userSelect="none",e.style.webkitUserSelect="none",e.style.msUserSelect="none",e.style.MozUserSelect="none",e.style.webkitTapHighlightColor="transparent",this.Fm=document.createElement("table"),this.Fm.setAttribute("cellspacing","0"),this.dm.appendChild(this.Fm),this.Wm=this.jm.bind(this),ti(this._n)&&this.Hm(!0),this.Hi=new Th(this.kc.bind(this),this._n,s),this.$t().jc().l(this.$m.bind(this),this),this.Um=new jh(this,this.N_),this.Fm.appendChild(this.Um.Hv());const n=i.autoSize&&this.qm();let r=this._n.width,o=this._n.height;if(n||r===0||o===0){const l=t.getBoundingClientRect();r=r||l.width,o=o||l.height}this.Ym(r,o),this.Xm(),t.appendChild(this.dm),this.Km(),this.Hi.St().Gu().l(this.Hi.$l.bind(this.Hi),this),this.Hi.f_().l(this.Hi.$l.bind(this.Hi),this)}$t(){return this.Hi}W(){return this._n}Zm(){return this.Om}Gm(){return this.Um}S(){this.Hm(!1),this.Am!==0&&window.cancelAnimationFrame(this.Am),this.Hi.jc().p(this),this.Hi.St().Gu().p(this),this.Hi.f_().p(this),this.Hi.S();for(const t of this.Om)this.Fm.removeChild(t.Hv()),t.Wp().p(this),t.jp().p(this),t.S();this.Om=[],p(this.Um).S(),this.dm.parentElement!==null&&this.dm.parentElement.removeChild(this.dm),this.xc.S(),this.cp.S(),this.dp.S(),this.Jm()}Ym(t,i,s=!1){if(this.Qa===i&&this.e_===t)return;const e=function(o){const l=Math.floor(o.width),a=Math.floor(o.height);return S({width:l-l%2,height:a-a%2})}(S({width:t,height:i}));this.Qa=e.height,this.e_=e.width;const n=this.Qa+"px",r=this.e_+"px";p(this.dm).style.height=n,p(this.dm).style.width=r,this.Fm.style.height=n,this.Fm.style.width=r,s?this.Qm(x.ns(),performance.now()):this.Hi.$l()}Gv(t){t===void 0&&(t=x.ns());for(let i=0;i{let a=0;for(let u=0;u{p(o==="left"?this.Um.wm():this.Um.gm()).rp(p(t),l,a)};if(this._n.timeScale.visible){const o=this.Um.ep();if(t!==null){let l=0;this.eb()&&(r("left",l,s),l=p(e.Gp()).ep().width),this.Um.rp(t,l,s),l+=o.width,this.rb()&&r("right",l,s)}s+=o.height}return S({width:i,height:s})}_b(){let t=0,i=0,s=0;for(const m of this.Om)this.eb()&&(i=Math.max(i,p(m.Gp()).Uv(),this._n.leftPriceScale.minimumWidth)),this.rb()&&(s=Math.max(s,p(m.Jp()).Uv(),this._n.rightPriceScale.minimumWidth)),t+=m.v_();i=ni(i),s=ni(s);const e=this.e_,n=this.Qa,r=Math.max(e-i-s,0),o=this._n.timeScale.visible;let l=o?Math.max(this.Um.Sm(),this._n.timeScale.minimumHeight):0;var a;l=(a=l)+a%2;const u=0+l,c=n{n.Dp()}),((s=this.Im)===null||s===void 0?void 0:s.Fn())===3&&(this.Im.Jn(t),this.cb(),this.fb(this.Im),this.vb(this.Im,i),t=this.Im,this.Im=null)),this.Gv(t)}vb(t,i){for(const s of t.Gn())this.Qn(s,i)}fb(t){const i=this.Hi.Nc();for(let s=0;s{if(this.zm=!1,this.Am=0,this.Im!==null){const s=this.Im;this.Im=null,this.Qm(s,i);for(const e of s.Gn())if(e.$n===5&&!e.Ot.Yu(i)){this.$t().qn(e.Ot);break}}}))}cb(){this.Xm()}Xm(){const t=this.Hi.Nc(),i=t.length,s=this.Om.length;for(let e=i;e{const c=u.Vn().il(t);c!==null&&n.set(u,c)});let r;if(t!==null){const u=(e=this.Hi.St().$i(t))===null||e===void 0?void 0:e.originalTime;u!==void 0&&(r=u)}const o=this.$t().Bc(),l=o!==null&&o.zc instanceof vi?o.zc:void 0,a=o!==null&&o.mv!==void 0?o.mv.mr:void 0;return{wb:r,ie:t??void 0,gb:i??void 0,Mb:l,xb:n,Sb:a,kb:s??void 0}}pb(t,i,s){this.cp.m(()=>this.bb(t,i,s))}mb(t,i,s){this.dp.m(()=>this.bb(t,i,s))}$m(t,i,s){this.xc.m(()=>this.bb(t,i,s))}Km(){const t=this._n.timeScale.visible?"":"none";this.Um.Hv().style.display=t}eb(){return this.Om[0].Zv().S_().W().visible}rb(){return this.Om[0].Zv().k_().W().visible}qm(){return"ResizeObserver"in window&&(this.Lm=new ResizeObserver(t=>{const i=t.find(s=>s.target===this.Nm);i&&this.Ym(i.contentRect.width,i.contentRect.height)}),this.Lm.observe(this.Nm,{box:"border-box"}),!0)}Jm(){this.Lm!==null&&this.Lm.disconnect(),this.Lm=null}}function ti(h){return!!(h.handleScroll.mouseWheel||h.handleScale.mouseWheel)}function $s(h,t){var i={};for(var s in h)Object.prototype.hasOwnProperty.call(h,s)&&t.indexOf(s)<0&&(i[s]=h[s]);if(h!=null&&typeof Object.getOwnPropertySymbols=="function"){var e=0;for(s=Object.getOwnPropertySymbols(h);efunction(o,l){return l?l(o):(a=o).open===void 0&&a.value===void 0;var a}(s,r)?as({ot:t,ie:i,wb:e},s):as(h(t,i,s,e,n),s)}function us(h){return{Candlestick:$(qh),Bar:$(Xh),Area:$(Yh),Baseline:$(Qh),Histogram:$(ls),Line:$(ls),Custom:$(Jh)}[h]}function cs(h){return{ie:0,Cb:new Map,ia:h}}function fs(h,t){if(h!==void 0&&h.length!==0)return{Tb:t.key(h[0].ot),Pb:t.key(h[h.length-1].ot)}}function ds(h){let t;return h.forEach(i=>{t===void 0&&(t=i.wb)}),O(t)}class Kh{constructor(t){this.Rb=new Map,this.Db=new Map,this.Ob=new Map,this.Ab=[],this.N_=t}S(){this.Rb.clear(),this.Db.clear(),this.Ob.clear(),this.Ab=[]}Vb(t,i){let s=this.Rb.size!==0,e=!1;const n=this.Db.get(t);if(n!==void 0)if(this.Db.size===1)s=!1,e=!0,this.Rb.clear();else for(const l of this.Ab)l.pointData.Cb.delete(t)&&(e=!0);let r=[];if(i.length!==0){const l=i.map(d=>d.time),a=this.N_.createConverterToInternalObj(i),u=us(t.Yh()),c=t.ga(),f=t.Ma();r=i.map((d,m)=>{const v=a(d.time),b=this.N_.key(v);let g=this.Rb.get(b);g===void 0&&(g=cs(v),this.Rb.set(b,g),e=!0);const w=u(v,g.ie,d,l[m],c,f);return g.Cb.set(t,w),w})}s&&this.Bb(),this.Ib(t,r);let o=-1;if(e){const l=[];this.Rb.forEach(a=>{l.push({timeWeight:0,time:a.ia,pointData:a,originalTime:ds(a.Cb)})}),l.sort((a,u)=>this.N_.key(a.time)-this.N_.key(u.time)),o=this.zb(l)}return this.Lb(t,o,function(l,a,u){const c=fs(l,u),f=fs(a,u);if(c!==void 0&&f!==void 0)return{Xl:c.Pb>=f.Pb&&c.Tb>=f.Tb}}(this.Db.get(t),n,this.N_))}ld(t){return this.Vb(t,[])}Eb(t,i){const s=i;(function(v){v.wb===void 0&&(v.wb=v.time)})(s),this.N_.preprocessData(i);const e=this.N_.createConverterToInternalObj([i])(i.time),n=this.Ob.get(t);if(n!==void 0&&this.N_.key(e)this.N_.key(v.time)this.N_.key(e.ot)?yt(i)&&s.push(i):yt(i)?s[s.length-1]=i:s.splice(-1,1),this.Ob.set(t,i.ot)}Ib(t,i){i.length!==0?(this.Db.set(t,i.filter(yt)),this.Ob.set(t,i[i.length-1].ot)):(this.Db.delete(t),this.Ob.delete(t))}Bb(){for(const t of this.Ab)t.pointData.Cb.size===0&&this.Rb.delete(this.N_.key(t.time))}zb(t){let i=-1;for(let s=0;s{i.length!==0&&(t=Math.max(t,i[i.length-1].ie))}),t}Lb(t,i,s){const e={Wb:new Map,St:{Au:this.Fb()}};if(i!==-1)this.Db.forEach((n,r)=>{e.Wb.set(r,{We:n,jb:r===t?s:void 0})}),this.Db.has(t)||e.Wb.set(t,{We:[],jb:s}),e.St.Hb=this.Ab,e.St.$b=i;else{const n=this.Db.get(t);e.Wb.set(t,{We:n||[],jb:s})}return e}}function ii(h,t){h.ie=t,h.Cb.forEach(i=>{i.ie=t})}function _i(h){const t={value:h.Ot[3],time:h.wb};return h.yb!==void 0&&(t.customValues=h.yb),t}function ms(h){const t=_i(h);return h.O!==void 0&&(t.color=h.O),t}function Gh(h){const t=_i(h);return h.lt!==void 0&&(t.lineColor=h.lt),h.ys!==void 0&&(t.topColor=h.ys),h.Cs!==void 0&&(t.bottomColor=h.Cs),t}function tn(h){const t=_i(h);return h.Ce!==void 0&&(t.topLineColor=h.Ce),h.Te!==void 0&&(t.bottomLineColor=h.Te),h.Me!==void 0&&(t.topFillColor1=h.Me),h.xe!==void 0&&(t.topFillColor2=h.xe),h.Se!==void 0&&(t.bottomFillColor1=h.Se),h.ke!==void 0&&(t.bottomFillColor2=h.ke),t}function Fs(h){const t={open:h.Ot[0],high:h.Ot[1],low:h.Ot[2],close:h.Ot[3],time:h.wb};return h.yb!==void 0&&(t.customValues=h.yb),t}function sn(h){const t=Fs(h);return h.O!==void 0&&(t.color=h.O),t}function en(h){const t=Fs(h),{O:i,At:s,Hh:e}=h;return i!==void 0&&(t.color=i),s!==void 0&&(t.borderColor=s),e!==void 0&&(t.wickColor=e),t}function li(h){return{Area:Gh,Line:ms,Baseline:tn,Histogram:ms,Bar:sn,Candlestick:en,Custom:hn}[h]}function hn(h){const t=h.wb;return Object.assign(Object.assign({},h.We),{time:t})}const nn={vertLine:{color:"#9598A1",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:"#131722"},horzLine:{color:"#9598A1",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:"#131722"},mode:1},rn={vertLines:{color:"#D6DCDE",style:0,visible:!0},horzLines:{color:"#D6DCDE",style:0,visible:!0}},on={background:{type:"solid",color:"#FFFFFF"},textColor:"#191919",fontSize:12,fontFamily:ai},si={autoScale:!0,mode:0,invertScale:!1,alignLabels:!0,borderVisible:!0,borderColor:"#2B2B43",entireTextOnly:!1,visible:!1,ticksVisible:!1,scaleMargins:{bottom:.1,top:.2},minimumWidth:0},ln={rightOffset:0,barSpacing:6,minBarSpacing:.5,fixLeftEdge:!1,fixRightEdge:!1,lockVisibleTimeRangeOnResize:!1,rightBarStaysOnScroll:!1,borderVisible:!0,borderColor:"#2B2B43",visible:!0,timeVisible:!1,secondsVisible:!0,shiftVisibleRangeOnNewBar:!0,allowShiftVisibleRangeOnWhitespaceReplacement:!1,ticksVisible:!1,uniformDistribution:!1,minimumHeight:0,allowBoldLabels:!0},an={color:"rgba(0, 0, 0, 0)",visible:!1,fontSize:48,fontFamily:ai,fontStyle:"",text:"",horzAlign:"center",vertAlign:"center"};function vs(){return{width:0,height:0,autoSize:!1,layout:on,crosshair:nn,grid:rn,overlayPriceScales:Object.assign({},si),leftPriceScale:Object.assign(Object.assign({},si),{visible:!1}),rightPriceScale:Object.assign(Object.assign({},si),{visible:!0}),timeScale:ln,watermark:an,localization:{locale:G?navigator.language:"",dateFormat:"dd MMM 'yy"},handleScroll:{mouseWheel:!0,pressedMouseMove:!0,horzTouchDrag:!0,vertTouchDrag:!0},handleScale:{axisPressedMouseMove:{time:!0,price:!0},axisDoubleClickReset:{time:!0,price:!0},mouseWheel:!0,pinch:!0},kineticScroll:{mouse:!1,touch:!0},trackingMode:{exitMode:1}}}class un{constructor(t,i){this.Ub=t,this.qb=i}applyOptions(t){this.Ub.$t().Lc(this.qb,t)}options(){return this.zi().W()}width(){return Tt(this.qb)?this.Ub.sb(this.qb):0}zi(){return p(this.Ub.$t().Ec(this.qb)).Dt}}function ps(h,t,i){const s=$s(h,["time","originalTime"]),e=Object.assign({time:t},s);return i!==void 0&&(e.originalTime=i),e}const cn={color:"#FF0000",price:0,lineStyle:2,lineWidth:1,lineVisible:!0,axisLabelVisible:!0,title:"",axisLabelColor:"",axisLabelTextColor:""};class fn{constructor(t){this.Vh=t}applyOptions(t){this.Vh.Eh(t)}options(){return this.Vh.W()}Yb(){return this.Vh}}class dn{constructor(t,i,s,e,n){this.Xb=new M,this.Is=t,this.Kb=i,this.Zb=s,this.N_=n,this.Gb=e}S(){this.Xb.S()}priceFormatter(){return this.Is.ca()}priceToCoordinate(t){const i=this.Is.Ct();return i===null?null:this.Is.Dt().Rt(t,i.Ot)}coordinateToPrice(t){const i=this.Is.Ct();return i===null?null:this.Is.Dt().fn(t,i.Ot)}barsInLogicalRange(t){if(t===null)return null;const i=new J(new nt(t.from,t.to)).iu(),s=this.Is.Vn();if(s.Ei())return null;const e=s.il(i.Rs(),1),n=s.il(i.ui(),-1),r=p(s.Jh()),o=p(s.An());if(e!==null&&n!==null&&e.ie>n.ie)return{barsBefore:t.from-r,barsAfter:o-t.to};const l={barsBefore:e===null||e.ie===r?t.from-r:e.ie-r,barsAfter:n===null||n.ie===o?o-t.to:o-n.ie};return e!==null&&n!==null&&(l.from=e.wb,l.to=n.wb),l}setData(t){this.N_,this.Is.Yh(),this.Kb.Jb(this.Is,t),this.Qb("full")}update(t){this.Is.Yh(),this.Kb.tw(this.Is,t),this.Qb("update")}dataByIndex(t,i){const s=this.Is.Vn().il(t,i);return s===null?null:li(this.seriesType())(s)}data(){const t=li(this.seriesType());return this.Is.Vn().Qs().map(i=>t(i))}subscribeDataChanged(t){this.Xb.l(t)}unsubscribeDataChanged(t){this.Xb.v(t)}setMarkers(t){this.N_;const i=t.map(s=>ps(s,this.N_.convertHorzItemToInternal(s.time),s.time));this.Is.Zl(i)}markers(){return this.Is.Gl().map(t=>ps(t,t.originalTime,void 0))}applyOptions(t){this.Is.Eh(t)}options(){return W(this.Is.W())}priceScale(){return this.Zb.priceScale(this.Is.Dt().xa())}createPriceLine(t){const i=R(W(cn),t),s=this.Is.Jl(i);return new fn(s)}removePriceLine(t){this.Is.Ql(t.Yb())}seriesType(){return this.Is.Yh()}attachPrimitive(t){this.Is.ba(t),t.attached&&t.attached({chart:this.Gb,series:this,requestUpdate:()=>this.Is.$t().$l()})}detachPrimitive(t){this.Is.wa(t),t.detached&&t.detached()}Qb(t){this.Xb.M()&&this.Xb.m(t)}}class mn{constructor(t,i,s){this.iw=new M,this.uu=new M,this.um=new M,this.Hi=t,this.wl=t.St(),this.Um=i,this.wl.Ku().l(this.nw.bind(this)),this.wl.Zu().l(this.sw.bind(this)),this.Um.Mm().l(this.ew.bind(this)),this.N_=s}S(){this.wl.Ku().p(this),this.wl.Zu().p(this),this.Um.Mm().p(this),this.iw.S(),this.uu.S(),this.um.S()}scrollPosition(){return this.wl.Lu()}scrollToPosition(t,i){i?this.wl.qu(t,1e3):this.Hi.Zn(t)}scrollToRealTime(){this.wl.Uu()}getVisibleRange(){const t=this.wl.yu();return t===null?null:{from:t.from.originalTime,to:t.to.originalTime}}setVisibleRange(t){const i={from:this.N_.convertHorzItemToInternal(t.from),to:this.N_.convertHorzItemToInternal(t.to)},s=this.wl.Ru(i);this.Hi.ad(s)}getVisibleLogicalRange(){const t=this.wl.ku();return t===null?null:{from:t.Rs(),to:t.ui()}}setVisibleLogicalRange(t){A(t.from<=t.to,"The from index cannot be after the to index."),this.Hi.ad(t)}resetTimeScale(){this.Hi.Xn()}fitContent(){this.Hi.Qu()}logicalToCoordinate(t){const i=this.Hi.St();return i.Ei()?null:i.It(t)}coordinateToLogical(t){return this.wl.Ei()?null:this.wl.Vu(t)}timeToCoordinate(t){const i=this.N_.convertHorzItemToInternal(t),s=this.wl.ya(i,!1);return s===null?null:this.wl.It(s)}coordinateToTime(t){const i=this.Hi.St(),s=i.Vu(t),e=i.$i(s);return e===null?null:e.originalTime}width(){return this.Um.Up().width}height(){return this.Um.Up().height}subscribeVisibleTimeRangeChange(t){this.iw.l(t)}unsubscribeVisibleTimeRangeChange(t){this.iw.v(t)}subscribeVisibleLogicalRangeChange(t){this.uu.l(t)}unsubscribeVisibleLogicalRangeChange(t){this.uu.v(t)}subscribeSizeChange(t){this.um.l(t)}unsubscribeSizeChange(t){this.um.v(t)}applyOptions(t){this.wl.Eh(t)}options(){return Object.assign(Object.assign({},W(this.wl.W())),{barSpacing:this.wl.ee()})}nw(){this.iw.M()&&this.iw.m(this.getVisibleRange())}sw(){this.uu.M()&&this.uu.m(this.getVisibleLogicalRange())}ew(t){this.um.m(t.width,t.height)}}function vn(h){if(h===void 0||h.type==="custom")return;const t=h;t.minMove!==void 0&&t.precision===void 0&&(t.precision=function(i){if(i>=1)return 0;let s=0;for(;s<8;s++){const e=Math.round(i);if(Math.abs(e-i)<1e-8)return s;i*=10}return s}(t.minMove))}function bs(h){return function(t){if(dt(t.handleScale)){const s=t.handleScale;t.handleScale={axisDoubleClickReset:{time:s,price:s},axisPressedMouseMove:{time:s,price:s},mouseWheel:s,pinch:s}}else if(t.handleScale!==void 0){const{axisPressedMouseMove:s,axisDoubleClickReset:e}=t.handleScale;dt(s)&&(t.handleScale.axisPressedMouseMove={time:s,price:s}),dt(e)&&(t.handleScale.axisDoubleClickReset={time:e,price:e})}const i=t.handleScroll;dt(i)&&(t.handleScroll={horzTouchDrag:i,vertTouchDrag:i,mouseWheel:i,pressedMouseMove:i})}(h),h}class pn{constructor(t,i,s){this.rw=new Map,this.hw=new Map,this.lw=new M,this.aw=new M,this.ow=new M,this._w=new Kh(i);const e=s===void 0?W(vs()):R(W(vs()),bs(s));this.N_=i,this.Ub=new Zh(t,e,i),this.Ub.Wp().l(r=>{this.lw.M()&&this.lw.m(this.uw(r()))},this),this.Ub.jp().l(r=>{this.aw.M()&&this.aw.m(this.uw(r()))},this),this.Ub.jc().l(r=>{this.ow.M()&&this.ow.m(this.uw(r()))},this);const n=this.Ub.$t();this.cw=new mn(n,this.Ub.Gm(),this.N_)}remove(){this.Ub.Wp().p(this),this.Ub.jp().p(this),this.Ub.jc().p(this),this.cw.S(),this.Ub.S(),this.rw.clear(),this.hw.clear(),this.lw.S(),this.aw.S(),this.ow.S(),this._w.S()}resize(t,i,s){this.autoSizeActive()||this.Ub.Ym(t,i,s)}addCustomSeries(t,i){const s=X(t),e=Object.assign(Object.assign({},gs),s.defaultOptions());return this.dw("Custom",e,i,s)}addAreaSeries(t){return this.dw("Area",te,t)}addBaselineSeries(t){return this.dw("Baseline",ie,t)}addBarSeries(t){return this.dw("Bar",Ks,t)}addCandlestickSeries(t={}){return function(i){i.borderColor!==void 0&&(i.borderUpColor=i.borderColor,i.borderDownColor=i.borderColor),i.wickColor!==void 0&&(i.wickUpColor=i.wickColor,i.wickDownColor=i.wickColor)}(t),this.dw("Candlestick",Js,t)}addHistogramSeries(t){return this.dw("Histogram",se,t)}addLineSeries(t){return this.dw("Line",Gs,t)}removeSeries(t){const i=O(this.rw.get(t)),s=this._w.ld(i);this.Ub.$t().ld(i),this.fw(s),this.rw.delete(t),this.hw.delete(i)}Jb(t,i){this.fw(this._w.Vb(t,i))}tw(t,i){this.fw(this._w.Eb(t,i))}subscribeClick(t){this.lw.l(t)}unsubscribeClick(t){this.lw.v(t)}subscribeCrosshairMove(t){this.ow.l(t)}unsubscribeCrosshairMove(t){this.ow.v(t)}subscribeDblClick(t){this.aw.l(t)}unsubscribeDblClick(t){this.aw.v(t)}priceScale(t){return new un(this.Ub,t)}timeScale(){return this.cw}applyOptions(t){this.Ub.Eh(bs(t))}options(){return this.Ub.W()}takeScreenshot(){return this.Ub.ib()}autoSizeActive(){return this.Ub.hb()}chartElement(){return this.Ub.lb()}paneSize(){const t=this.Ub.ob();return{height:t.height,width:t.width}}setCrosshairPosition(t,i,s){const e=this.rw.get(s);if(e===void 0)return;const n=this.Ub.$t()._r(e);n!==null&&this.Ub.$t().td(t,i,n)}clearCrosshairPosition(){this.Ub.$t().nd(!0)}dw(t,i,s={},e){vn(s.priceFormat);const n=R(W(ws),W(i),s),r=this.Ub.$t().rd(t,n,e),o=new dn(r,this,this,this,this.N_);return this.rw.set(o,r),this.hw.set(r,o),o}fw(t){const i=this.Ub.$t();i.sd(t.St.Au,t.St.Hb,t.St.$b),t.Wb.forEach((s,e)=>e.J(s.We,s.jb)),i.Iu()}pw(t){return O(this.hw.get(t))}uw(t){const i=new Map;t.xb.forEach((e,n)=>{const r=n.Yh(),o=li(r)(e);if(r!=="Custom")A(function(l){return l.open!==void 0||l.value!==void 0}(o));else{const l=n.Ma();A(!l||l(o)===!1)}i.set(this.pw(n),o)});const s=t.Mb===void 0?void 0:this.pw(t.Mb);return{time:t.wb,logical:t.ie,point:t.gb,hoveredSeries:s,hoveredObjectId:t.Sb,seriesData:i,sourceEvent:t.kb}}}function bn(h,t,i){let s;if(ut(h)){const n=document.getElementById(h);A(n!==null,`Cannot find element in DOM with id=${h}`),s=n}else s=h;const e=new pn(s,t,i);return t.setOptions(e.options()),e}function gn(h,t){return bn(h,new es,es.Pd(t))}Object.assign(Object.assign({},ws),gs);const wn={width:800,height:300,rightPriceScale:{borderColor:"rgba(197, 203, 206, 1)"},timeScale:{borderColor:"rgba(197, 203, 206, 1)",timeVisible:!0,secondsVisible:!1}},_n={chart:{layout:{background:{color:"#ffffff"},textColor:"rgba(33, 56, 77, 1)"},grid:{vertLines:{color:"#f1f1f1",visible:!1},horzLines:{color:"#f1f1f1",visible:!1}},rightPriceScale:{borderColor:"rgba(197, 203, 206, 0.6)"},timeScale:{borderColor:"rgba(197, 203, 206, 0.6)",timeVisible:!0,secondsVisible:!1}},series:{color:"#4f46e5"}},Sn={chart:{layout:{background:{color:"rgb(28 25 23)"},textColor:"#D1D5DB"},grid:{vertLines:{color:"#525252",visible:!1},horzLines:{color:"#525252",visible:!1}},rightPriceScale:{borderColor:"#525252"},timeScale:{borderColor:"#525252",timeVisible:!0,secondsVisible:!1}},series:{color:"#818CF8"}};export{gn as T,Ri as a,Sn as d,_n as l,wn as s}; ================================================ FILE: jesse/static/_nuxt/B-DoSBHF.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"Erlang","fileTypes":["erl","escript","hrl","xrl","yrl"],"name":"erlang","patterns":[{"include":"#module-directive"},{"include":"#import-export-directive"},{"include":"#behaviour-directive"},{"include":"#record-directive"},{"include":"#define-directive"},{"include":"#macro-directive"},{"include":"#directive"},{"include":"#function"},{"include":"#everything-else"}],"repository":{"atom":{"patterns":[{"begin":"(')","beginCaptures":{"1":{"name":"punctuation.definition.symbol.begin.erlang"}},"end":"(')","endCaptures":{"1":{"name":"punctuation.definition.symbol.end.erlang"}},"name":"constant.other.symbol.quoted.single.erlang","patterns":[{"captures":{"1":{"name":"punctuation.definition.escape.erlang"},"3":{"name":"punctuation.definition.escape.erlang"}},"match":"(\\\\\\\\)([bdefnrstv\\\\\\\\'\\"]|(\\\\^)[@-_a-z]|[0-7]{1,3}|x[\\\\da-fA-F]{2})","name":"constant.other.symbol.escape.erlang"},{"match":"\\\\\\\\\\\\^?.?","name":"invalid.illegal.atom.erlang"}]},{"match":"[a-z][a-zA-Z\\\\d@_]*+","name":"constant.other.symbol.unquoted.erlang"}]},"behaviour-directive":{"captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.behaviour.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.type.class.behaviour.definition.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}},"match":"^\\\\s*+(-)\\\\s*+(behaviour)\\\\s*+(\\\\()\\\\s*+([a-z][a-zA-Z\\\\d@_]*+)\\\\s*+(\\\\))\\\\s*+(\\\\.)","name":"meta.directive.behaviour.erlang"},"binary":{"begin":"(<<)","beginCaptures":{"1":{"name":"punctuation.definition.binary.begin.erlang"}},"end":"(>>)","endCaptures":{"1":{"name":"punctuation.definition.binary.end.erlang"}},"name":"meta.structure.binary.erlang","patterns":[{"captures":{"1":{"name":"punctuation.separator.binary.erlang"},"2":{"name":"punctuation.separator.value-size.erlang"}},"match":"(,)|(:)"},{"include":"#internal-type-specifiers"},{"include":"#everything-else"}]},"character":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.character.erlang"},"2":{"name":"constant.character.escape.erlang"},"3":{"name":"punctuation.definition.escape.erlang"},"5":{"name":"punctuation.definition.escape.erlang"}},"match":"(\\\\$)((\\\\\\\\)([bdefnrstv\\\\\\\\'\\"]|(\\\\^)[@-_a-z]|[0-7]{1,3}|x[\\\\da-fA-F]{2}))","name":"constant.character.erlang"},{"match":"\\\\$\\\\\\\\\\\\^?.?","name":"invalid.illegal.character.erlang"},{"captures":{"1":{"name":"punctuation.definition.character.erlang"}},"match":"(\\\\$)[ \\\\S]","name":"constant.character.erlang"},{"match":"\\\\$.?","name":"invalid.illegal.character.erlang"}]},"comment":{"begin":"(^[ \\\\t]+)?(?=%)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.erlang"}},"end":"(?!\\\\G)","patterns":[{"begin":"%","beginCaptures":{"0":{"name":"punctuation.definition.comment.erlang"}},"end":"\\\\n","name":"comment.line.percentage.erlang"}]},"define-directive":{"patterns":[{"begin":"^\\\\s*+(-)\\\\s*+(define)\\\\s*+(\\\\()\\\\s*+([a-zA-Z\\\\d@_]++)\\\\s*+","beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.define.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.definition.erlang"}},"end":"(\\\\))\\\\s*+(\\\\.)","endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}},"name":"meta.directive.define.erlang","patterns":[{"include":"#everything-else"}]},{"begin":"(?=^\\\\s*+-\\\\s*+define\\\\s*+\\\\(\\\\s*+[a-zA-Z\\\\d@_]++\\\\s*+\\\\()","end":"(\\\\))\\\\s*+(\\\\.)","endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}},"name":"meta.directive.define.erlang","patterns":[{"begin":"^\\\\s*+(-)\\\\s*+(define)\\\\s*+(\\\\()\\\\s*+([a-zA-Z\\\\d@_]++)\\\\s*+(\\\\()","beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.define.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.definition.erlang"},"5":{"name":"punctuation.definition.parameters.begin.erlang"}},"end":"(\\\\))\\\\s*(,)","endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.separator.parameters.erlang"}},"patterns":[{"match":",","name":"punctuation.separator.parameters.erlang"},{"include":"#everything-else"}]},{"match":"\\\\|\\\\||\\\\||:|;|,|\\\\.|->","name":"punctuation.separator.define.erlang"},{"include":"#everything-else"}]}]},"directive":{"patterns":[{"begin":"^\\\\s*+(-)\\\\s*+([a-z][a-zA-Z\\\\d@_]*+)\\\\s*+(\\\\(?)","beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"}},"end":"(\\\\)?)\\\\s*+(\\\\.)","endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}},"name":"meta.directive.erlang","patterns":[{"include":"#everything-else"}]},{"captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.erlang"},"3":{"name":"punctuation.section.directive.end.erlang"}},"match":"^\\\\s*+(-)\\\\s*+([a-z][a-zA-Z\\\\d@_]*+)\\\\s*+(\\\\.)","name":"meta.directive.erlang"}]},"docstring":{"begin":"(?)|(;)|(,)"},"internal-function-list":{"begin":"(\\\\[)","beginCaptures":{"1":{"name":"punctuation.definition.list.begin.erlang"}},"end":"(\\\\])","endCaptures":{"1":{"name":"punctuation.definition.list.end.erlang"}},"name":"meta.structure.list.function.erlang","patterns":[{"begin":"([a-z][a-zA-Z\\\\d@_]*+|'[^']*+')\\\\s*+(/)","beginCaptures":{"1":{"name":"entity.name.function.erlang"},"2":{"name":"punctuation.separator.function-arity.erlang"}},"end":"(,)|(?=\\\\])","endCaptures":{"1":{"name":"punctuation.separator.list.erlang"}},"patterns":[{"include":"#everything-else"}]},{"include":"#everything-else"}]},"internal-function-parts":{"patterns":[{"begin":"(?=\\\\()","end":"(->)","endCaptures":{"1":{"name":"punctuation.separator.clause-head-body.erlang"}},"patterns":[{"begin":"(\\\\()","beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.erlang"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"}},"patterns":[{"match":",","name":"punctuation.separator.parameters.erlang"},{"include":"#everything-else"}]},{"match":",|;","name":"punctuation.separator.guards.erlang"},{"include":"#everything-else"}]},{"match":",","name":"punctuation.separator.expressions.erlang"},{"include":"#everything-else"}]},"internal-record-body":{"begin":"(\\\\{)","beginCaptures":{"1":{"name":"punctuation.definition.class.record.begin.erlang"}},"end":"(\\\\})","endCaptures":{"1":{"name":"punctuation.definition.class.record.end.erlang"}},"name":"meta.structure.record.erlang","patterns":[{"begin":"(([a-z][a-zA-Z\\\\d@_]*+|'[^']*+')|(_))","beginCaptures":{"2":{"name":"variable.other.field.erlang"},"3":{"name":"variable.language.omitted.field.erlang"}},"end":"(,)|(?=\\\\})","endCaptures":{"1":{"name":"punctuation.separator.class.record.erlang"}},"patterns":[{"include":"#everything-else"}]},{"include":"#everything-else"}]},"internal-string-body":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.escape.erlang"},"3":{"name":"punctuation.definition.escape.erlang"}},"comment":"escape sequence","match":"(\\\\\\\\)([bdefnrstv\\\\\\\\'\\"]|(\\\\^)[@-_a-z]|[0-7]{1,3}|x[\\\\da-fA-F]{2})","name":"constant.character.escape.erlang"},{"match":"\\\\\\\\\\\\^?.?","name":"invalid.illegal.string.erlang"},{"captures":{"1":{"name":"punctuation.definition.placeholder.erlang"},"6":{"name":"punctuation.separator.placeholder-parts.erlang"},"10":{"name":"punctuation.separator.placeholder-parts.erlang"}},"comment":"io:fwrite format control sequence","match":"(~)((\\\\-)?\\\\d++|(\\\\*))?((\\\\.)(\\\\d++|(\\\\*))?((\\\\.)((\\\\*)|.))?)?[tlkK]*[~cfegswpWPBX#bx\\\\+ni]","name":"constant.character.format.placeholder.other.erlang"},{"captures":{"1":{"name":"punctuation.definition.placeholder.erlang"}},"comment":"io:fread format control sequence","match":"(~)(\\\\*)?(\\\\d++)?(t)?[~du\\\\-#fsacl]","name":"constant.character.format.placeholder.other.erlang"},{"match":"~[^\\"]?","name":"invalid.illegal.string.erlang"}]},"internal-type-specifiers":{"begin":"(/)","beginCaptures":{"1":{"name":"punctuation.separator.value-type.erlang"}},"end":"(?=,|:|>>)","patterns":[{"captures":{"1":{"name":"storage.type.erlang"},"2":{"name":"storage.modifier.signedness.erlang"},"3":{"name":"storage.modifier.endianness.erlang"},"4":{"name":"storage.modifier.unit.erlang"},"5":{"name":"punctuation.separator.unit-specifiers.erlang"},"6":{"name":"constant.numeric.integer.decimal.erlang"},"7":{"name":"punctuation.separator.type-specifiers.erlang"}},"match":"(integer|float|binary|bytes|bitstring|bits|utf8|utf16|utf32)|(signed|unsigned)|(big|little|native)|(unit)(:)(\\\\d++)|(-)"}]},"keyword":{"match":"\\\\b(after|begin|case|catch|cond|end|fun|if|let|of|try|receive|when|maybe|else)\\\\b","name":"keyword.control.erlang"},"language-constant":{"match":"\\\\b(false|true|undefined)\\\\b","name":"constant.language"},"list":{"begin":"(\\\\[)","beginCaptures":{"1":{"name":"punctuation.definition.list.begin.erlang"}},"end":"(\\\\])","endCaptures":{"1":{"name":"punctuation.definition.list.end.erlang"}},"name":"meta.structure.list.erlang","patterns":[{"match":"\\\\||\\\\|\\\\||,","name":"punctuation.separator.list.erlang"},{"include":"#everything-else"}]},"macro-directive":{"patterns":[{"captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.ifdef.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}},"match":"^\\\\s*+(-)\\\\s*+(ifdef)\\\\s*+(\\\\()\\\\s*+([a-zA-z\\\\d@_]++)\\\\s*+(\\\\))\\\\s*+(\\\\.)","name":"meta.directive.ifdef.erlang"},{"captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.ifndef.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}},"match":"^\\\\s*+(-)\\\\s*+(ifndef)\\\\s*+(\\\\()\\\\s*+([a-zA-z\\\\d@_]++)\\\\s*+(\\\\))\\\\s*+(\\\\.)","name":"meta.directive.ifndef.erlang"},{"captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.undef.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.function.macro.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}},"match":"^\\\\s*+(-)\\\\s*+(undef)\\\\s*+(\\\\()\\\\s*+([a-zA-z\\\\d@_]++)\\\\s*+(\\\\))\\\\s*+(\\\\.)","name":"meta.directive.undef.erlang"}]},"macro-usage":{"captures":{"1":{"name":"keyword.operator.macro.erlang"},"2":{"name":"entity.name.function.macro.erlang"}},"match":"(\\\\?\\\\??)\\\\s*+([a-zA-Z\\\\d@_]++)","name":"meta.macro-usage.erlang"},"module-directive":{"captures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.module.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.type.class.module.definition.erlang"},"5":{"name":"punctuation.definition.parameters.end.erlang"},"6":{"name":"punctuation.section.directive.end.erlang"}},"match":"^\\\\s*+(-)\\\\s*+(module)\\\\s*+(\\\\()\\\\s*+([a-z][a-zA-Z\\\\d@_]*+)\\\\s*+(\\\\))\\\\s*+(\\\\.)","name":"meta.directive.module.erlang"},"number":{"begin":"(?=\\\\d)","end":"(?!\\\\d)","patterns":[{"captures":{"1":{"name":"punctuation.separator.integer-float.erlang"},"2":{"name":"punctuation.separator.float-exponent.erlang"}},"match":"\\\\d++(\\\\.)\\\\d++([eE][\\\\+\\\\-]?\\\\d++)?","name":"constant.numeric.float.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"2(#)([0-1]++_)*[0-1]++","name":"constant.numeric.integer.binary.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"3(#)([0-2]++_)*[0-2]++","name":"constant.numeric.integer.base-3.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"4(#)([0-3]++_)*[0-3]++","name":"constant.numeric.integer.base-4.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"5(#)([0-4]++_)*[0-4]++","name":"constant.numeric.integer.base-5.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"6(#)([0-5]++_)*[0-5]++","name":"constant.numeric.integer.base-6.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"7(#)([0-6]++_)*[0-6]++","name":"constant.numeric.integer.base-7.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"8(#)([0-7]++_)*[0-7]++","name":"constant.numeric.integer.octal.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"9(#)([0-8]++_)*[0-8]++","name":"constant.numeric.integer.base-9.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"10(#)(\\\\d++_)*\\\\d++","name":"constant.numeric.integer.decimal.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"11(#)([\\\\daA]++_)*[\\\\daA]++","name":"constant.numeric.integer.base-11.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"12(#)([\\\\da-bA-B]++_)*[\\\\da-bA-B]++","name":"constant.numeric.integer.base-12.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"13(#)([\\\\da-cA-C]++_)*[\\\\da-cA-C]++","name":"constant.numeric.integer.base-13.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"14(#)([\\\\da-dA-D]++_)*[\\\\da-dA-D]++","name":"constant.numeric.integer.base-14.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"15(#)([\\\\da-eA-E]++_)*[\\\\da-eA-E]++","name":"constant.numeric.integer.base-15.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"16(#)([\\\\da-fA-F]++_)*[\\\\da-fA-F]++","name":"constant.numeric.integer.hexadecimal.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"17(#)([\\\\da-gA-G]++_)*[\\\\da-gA-G]++","name":"constant.numeric.integer.base-17.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"18(#)([\\\\da-hA-H]++_)*[\\\\da-hA-H]++","name":"constant.numeric.integer.base-18.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"19(#)([\\\\da-iA-I]++_)*[\\\\da-iA-I]++","name":"constant.numeric.integer.base-19.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"20(#)([\\\\da-jA-J]++_)*[\\\\da-jA-J]++","name":"constant.numeric.integer.base-20.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"21(#)([\\\\da-kA-K]++_)*[\\\\da-kA-K]++","name":"constant.numeric.integer.base-21.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"22(#)([\\\\da-lA-L]++_)*[\\\\da-lA-L]++","name":"constant.numeric.integer.base-22.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"23(#)([\\\\da-mA-M]++_)*[\\\\da-mA-M]++","name":"constant.numeric.integer.base-23.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"24(#)([\\\\da-nA-N]++_)*[\\\\da-nA-N]++","name":"constant.numeric.integer.base-24.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"25(#)([\\\\da-oA-O]++_)*[\\\\da-oA-O]++","name":"constant.numeric.integer.base-25.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"26(#)([\\\\da-pA-P]++_)*[\\\\da-pA-P]++","name":"constant.numeric.integer.base-26.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"27(#)([\\\\da-qA-Q]++_)*[\\\\da-qA-Q]++","name":"constant.numeric.integer.base-27.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"28(#)([\\\\da-rA-R]++_)*[\\\\da-rA-R]++","name":"constant.numeric.integer.base-28.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"29(#)([\\\\da-sA-S]++_)*[\\\\da-sA-S]++","name":"constant.numeric.integer.base-29.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"30(#)([\\\\da-tA-T]++_)*[\\\\da-tA-T]++","name":"constant.numeric.integer.base-30.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"31(#)([\\\\da-uA-U]++_)*[\\\\da-uA-U]++","name":"constant.numeric.integer.base-31.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"32(#)([\\\\da-vA-V]++_)*[\\\\da-vA-V]++","name":"constant.numeric.integer.base-32.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"33(#)([\\\\da-wA-W]++_)*[\\\\da-wA-W]++","name":"constant.numeric.integer.base-33.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"34(#)([\\\\da-xA-X]++_)*[\\\\da-xA-X]++","name":"constant.numeric.integer.base-34.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"35(#)([\\\\da-yA-Y]++_)*[\\\\da-yA-Y]++","name":"constant.numeric.integer.base-35.erlang"},{"captures":{"1":{"name":"punctuation.separator.base-integer.erlang"}},"match":"36(#)([\\\\da-zA-Z]++_)*[\\\\da-zA-Z]++","name":"constant.numeric.integer.base-36.erlang"},{"match":"\\\\d++#([\\\\da-zA-Z]++_)*[\\\\da-zA-Z]++","name":"invalid.illegal.integer.erlang"},{"match":"(\\\\d++_)*\\\\d++","name":"constant.numeric.integer.decimal.erlang"}]},"parenthesized-expression":{"begin":"(\\\\()","beginCaptures":{"1":{"name":"punctuation.section.expression.begin.erlang"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.section.expression.end.erlang"}},"name":"meta.expression.parenthesized","patterns":[{"include":"#everything-else"}]},"record-directive":{"begin":"^\\\\s*+(-)\\\\s*+(record)\\\\s*+(\\\\()\\\\s*+([a-z][a-zA-Z\\\\d@_]*+|'[^']*+')\\\\s*+(,)","beginCaptures":{"1":{"name":"punctuation.section.directive.begin.erlang"},"2":{"name":"keyword.control.directive.import.erlang"},"3":{"name":"punctuation.definition.parameters.begin.erlang"},"4":{"name":"entity.name.type.class.record.definition.erlang"},"5":{"name":"punctuation.separator.parameters.erlang"}},"end":"(\\\\))\\\\s*+(\\\\.)","endCaptures":{"1":{"name":"punctuation.definition.parameters.end.erlang"},"2":{"name":"punctuation.section.directive.end.erlang"}},"name":"meta.directive.record.erlang","patterns":[{"include":"#internal-record-body"},{"include":"#comment"}]},"record-usage":{"patterns":[{"captures":{"1":{"name":"keyword.operator.record.erlang"},"2":{"name":"entity.name.type.class.record.erlang"},"3":{"name":"punctuation.separator.record-field.erlang"},"4":{"name":"variable.other.field.erlang"}},"match":"(#)\\\\s*+([a-z][a-zA-Z\\\\d@_]*+|'[^']*+')\\\\s*+(\\\\.)\\\\s*+([a-z][a-zA-Z\\\\d@_]*+|'[^']*+')","name":"meta.record-usage.erlang"},{"begin":"(#)\\\\s*+([a-z][a-zA-Z\\\\d@_]*+|'[^']*+')","beginCaptures":{"1":{"name":"keyword.operator.record.erlang"},"2":{"name":"entity.name.type.class.record.erlang"}},"end":"(?<=\\\\})","name":"meta.record-usage.erlang","patterns":[{"include":"#internal-record-body"}]}]},"sigil-docstring":{"begin":"(~[bBsS]?)(([\\"]{3,})\\\\s*)(\\\\S.*)?$","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"meta.string.quoted.triple.begin.erlang"},"3":{"name":"punctuation.definition.string.begin.erlang"},"4":{"name":"invalid.illegal.string.erlang"}},"comment":"Only whitespace characters are allowed after the beggining and before the closing sequences and those cannot be in the same line","end":"^(\\\\s*(\\\\3))(?!\\")","endCaptures":{"1":{"name":"meta.string.quoted.triple.end.erlang"},"2":{"name":"punctuation.definition.string.end.erlang"}},"name":"string.quoted.tripple.sigil.erlang"},"sigil-string":{"patterns":[{"include":"#sigil-string-parenthesis"},{"include":"#sigil-string-parenthesis-verbatim"},{"include":"#sigil-string-curly-brackets"},{"include":"#sigil-string-curly-brackets-verbatim"},{"include":"#sigil-string-square-brackets"},{"include":"#sigil-string-square-brackets-verbatim"},{"include":"#sigil-string-less-greater"},{"include":"#sigil-string-less-greater-verbatim"},{"include":"#sigil-string-single-character"},{"include":"#sigil-string-single-character-verbatim"},{"include":"#sigil-string-single-quote"},{"include":"#sigil-string-single-quote-verbatim"},{"include":"#sigil-string-double-quote"},{"include":"#sigil-string-double-quote-verbatim"}]},"sigil-string-curly-brackets":{"begin":"(~[bs]?)([{])","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"end":"([}])","endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}},"name":"string.quoted.curly-brackets.sigil.erlang","patterns":[{"include":"#internal-string-body"}]},"sigil-string-curly-brackets-verbatim":{"begin":"(~[BS])([{])","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"end":"([}])","endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}},"name":"string.quoted.curly-brackets.sigil.erlang"},"sigil-string-double-quote":{"begin":"(~[bs]?)(\\")","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"end":"(\\\\2)","endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}},"name":"string.quoted.double.sigil.erlang","patterns":[{"include":"#internal-string-body"}]},"sigil-string-double-quote-verbatim":{"begin":"(~[BS])(\\")","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"end":"(\\\\2)","endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}},"name":"string.quoted.double.sigil.erlang"},"sigil-string-less-greater":{"begin":"(~[bs]?)(<)","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"end":"(>)","endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}},"name":"string.quoted.less-greater.sigil.erlang","patterns":[{"include":"#internal-string-body"}]},"sigil-string-less-greater-verbatim":{"begin":"(~[BS])(<)","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"end":"(>)","endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}},"name":"string.quoted.less-greater.sigil.erlang"},"sigil-string-parenthesis":{"begin":"(~[bs]?)([(])","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"end":"([)])","endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}},"name":"string.quoted.parenthesis.sigil.erlang","patterns":[{"include":"#internal-string-body"}]},"sigil-string-parenthesis-verbatim":{"begin":"(~[BS])([(])","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"end":"([)])","endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}},"name":"string.quoted.parenthesis.sigil.erlang"},"sigil-string-single-character":{"begin":"(~[bs]?)([/\\\\|\`#])","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"end":"(\\\\2)","endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}},"name":"string.quoted.other.sigil.erlang","patterns":[{"include":"#internal-string-body"}]},"sigil-string-single-character-verbatim":{"begin":"(~[BS])([/\\\\|\`#])","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"end":"(\\\\2)","endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}},"name":"string.quoted.other.sigil.erlang"},"sigil-string-single-quote":{"begin":"(~[bs]?)(')","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"end":"(\\\\2)","endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}},"name":"string.quoted.single.sigil.erlang","patterns":[{"include":"#internal-string-body"}]},"sigil-string-single-quote-verbatim":{"begin":"(~[BS])(')","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"end":"(\\\\2)","endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}},"name":"string.quoted.single.sigil.erlang"},"sigil-string-square-brackets":{"begin":"(~[bs]?)([\\\\[])","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"end":"([\\\\]])","endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}},"name":"string.quoted.square-brackets.sigil.erlang","patterns":[{"include":"#internal-string-body"}]},"sigil-string-square-brackets-verbatim":{"begin":"(~[BS])([\\\\[])","beginCaptures":{"1":{"name":"storage.type.string.erlang"},"2":{"name":"punctuation.definition.string.begin.erlang"}},"end":"([\\\\]])","endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}},"name":"string.quoted.square-brackets.sigil.erlang"},"string":{"begin":"(\\")","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.erlang"}},"end":"(\\")","endCaptures":{"1":{"name":"punctuation.definition.string.end.erlang"}},"name":"string.quoted.double.erlang","patterns":[{"include":"#internal-string-body"}]},"symbolic-operator":{"match":"\\\\+\\\\+|\\\\+|--|-|\\\\*|/=|/|=/=|=:=|==|=<|=|<-|<|>=|>|!|::|\\\\?=","name":"keyword.operator.symbolic.erlang"},"textual-operator":{"match":"\\\\b(andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\\\b","name":"keyword.operator.textual.erlang"},"tuple":{"begin":"(\\\\{)","beginCaptures":{"1":{"name":"punctuation.definition.tuple.begin.erlang"}},"end":"(\\\\})","endCaptures":{"1":{"name":"punctuation.definition.tuple.end.erlang"}},"name":"meta.structure.tuple.erlang","patterns":[{"match":",","name":"punctuation.separator.tuple.erlang"},{"include":"#everything-else"}]},"variable":{"captures":{"1":{"name":"variable.other.erlang"},"2":{"name":"variable.language.omitted.erlang"}},"match":"(_[a-zA-Z\\\\d@_]++|[A-Z][a-zA-Z\\\\d@_]*+)|(_)"}},"scopeName":"source.erlang","aliases":["erl"]}`)),n=[e];export{n as default}; ================================================ FILE: jesse/static/_nuxt/B-k3dvlD.js ================================================ import e from"./BQoSv7ci.js";import t from"./ySlJ1b_l.js";import r from"./Dj6nwHGl.js";import a from"./BPhBrDlE.js";import n from"./B3ZDOciz.js";const s=Object.freeze(JSON.parse(`{"displayName":"Astro","fileTypes":["astro"],"injections":{"L:(meta.script.astro) (meta.lang.js | meta.lang.javascript | meta.lang.partytown | meta.lang.node) - (meta source)":{"patterns":[{"begin":"(?<=>)(?!)(?!)(?!)(?!)(?!)(?!)(?!)(?!)(?!)(?!)(?!)","patterns":[{"include":"#interpolation"},{"include":"#attribute-literal"},{"begin":"(?=[^\\\\s=<>\`/]|/(?!>))","end":"(?!\\\\G)","name":"meta.embedded.line.js","patterns":[{"captures":{"0":{"name":"source.js"},"1":{"patterns":[{"include":"source.js"}]}},"match":"(([^\\\\s\\\\\\"'=<>\`/]|/(?!>))+)","name":"string.unquoted.astro"},{"begin":"([\\"])","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.astro"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.definition.string.end.astro"}},"name":"string.quoted.astro","patterns":[{"captures":{"0":{"patterns":[{"include":"source.js"}]}},"match":"([^\\\\n\\\\\\"/]|/(?![/*]))+"},{"begin":"//","beginCaptures":{"0":{"name":"punctuation.definition.comment.js"}},"end":"(?=\\\\\\")|\\\\n","name":"comment.line.double-slash.js"},{"begin":"/\\\\*","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.js"}},"end":"(?=\\\\\\")|\\\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.end.js"}},"name":"comment.block.js"}]},{"begin":"(['])","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.astro"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.definition.string.end.astro"}},"name":"string.quoted.astro","patterns":[{"captures":{"0":{"patterns":[{"include":"source.js"}]}},"match":"([^\\\\n\\\\'/]|/(?![/*]))+"},{"begin":"//","beginCaptures":{"0":{"name":"punctuation.definition.comment.js"}},"end":"(?=\\\\')|\\\\n","name":"comment.line.double-slash.js"},{"begin":"/\\\\*","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.js"}},"end":"(?=\\\\')|\\\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.end.js"}},"name":"comment.block.js"}]}]}]}]},"attributes-interpolated":{"begin":"(?)","patterns":[{"include":"#attributes-value"}]}]},"attributes-value":{"patterns":[{"include":"#interpolation"},{"match":"([^\\\\s\\"'=<>\`/]|/(?!>))+","name":"string.unquoted.astro"},{"begin":"(['\\"])","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.astro"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.definition.string.end.astro"}},"name":"string.quoted.astro"},{"include":"#attribute-literal"}]},"comments":{"begin":"","name":"comment.block.astro","patterns":[{"match":"\\\\G-?>|)|--!>","name":"invalid.illegal.characters-not-allowed-here.astro"}]},"entities":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.entity.astro"},"912":{"name":"punctuation.definition.entity.astro"}},"match":"(&)(?=[a-zA-Z])((a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve))|(B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?))|(c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross))|(d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger)))|(e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr)))|(f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr))|(G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve))|(h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy))|(i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?))|(j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr))|(k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa))|(l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot))|(M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker)))|(n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute))|(o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr)))|(p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?))|(q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr))|(R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr)))|(s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle))|(t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot))|(u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve)))|(v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar))|(w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr))|(X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map))|(y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy))|(z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute)))(;)","name":"constant.character.entity.named.$2.astro"},{"captures":{"1":{"name":"punctuation.definition.entity.astro"},"3":{"name":"punctuation.definition.entity.astro"}},"match":"(&)#[0-9]+(;)","name":"constant.character.entity.numeric.decimal.astro"},{"captures":{"1":{"name":"punctuation.definition.entity.astro"},"3":{"name":"punctuation.definition.entity.astro"}},"match":"(&)#[xX][0-9a-fA-F]+(;)","name":"constant.character.entity.numeric.hexadecimal.astro"},{"match":"&(?=[a-zA-Z0-9]+;)","name":"invalid.illegal.ambiguous-ampersand.astro"}]},"frontmatter":{"begin":"\\\\A(-{3})\\\\s*$","beginCaptures":{"1":{"name":"comment"}},"contentName":"source.ts","end":"(^|\\\\G)(-{3})|\\\\.{3}\\\\s*$","endCaptures":{"2":{"name":"comment"}},"patterns":[{"include":"source.ts"}]},"interpolation":{"patterns":[{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.astro"}},"contentName":"meta.embedded.expression.astro source.tsx","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.section.embedded.end.astro"}},"patterns":[{"begin":"\\\\G\\\\s*(?={)","end":"(?<=})","patterns":[{"include":"source.tsx#object-literal"}]},{"include":"source.tsx"}]}]},"scope":{"patterns":[{"include":"#comments"},{"include":"#tags"},{"include":"#interpolation"},{"include":"#entities"}]},"tags":{"patterns":[{"include":"#tags-raw"},{"include":"#tags-lang"},{"include":"#tags-void"},{"include":"#tags-general-end"},{"include":"#tags-general-start"}]},"tags-end-node":{"captures":{"1":{"name":"meta.tag.end.astro punctuation.definition.tag.begin.astro"},"2":{"name":"meta.tag.end.astro","patterns":[{"include":"#tags-name"}]},"3":{"name":"meta.tag.end.astro punctuation.definition.tag.end.astro"},"4":{"name":"meta.tag.start.astro punctuation.definition.tag.end.astro"}},"match":"()|(/>)"},"tags-general-end":{"begin":"(]*)","beginCaptures":{"1":{"name":"meta.tag.end.astro punctuation.definition.tag.begin.astro"},"2":{"name":"meta.tag.end.astro","patterns":[{"include":"#tags-name"}]}},"end":"(>)","endCaptures":{"1":{"name":"meta.tag.end.astro punctuation.definition.tag.end.astro"}},"name":"meta.scope.tag.$2.astro"},"tags-general-start":{"begin":"(<)([^/\\\\s>/]*)","beginCaptures":{"0":{"patterns":[{"include":"#tags-start-node"}]}},"end":"(/?>)","endCaptures":{"1":{"name":"meta.tag.start.astro punctuation.definition.tag.end.astro"}},"name":"meta.scope.tag.$2.astro","patterns":[{"include":"#tags-start-attributes"}]},"tags-lang":{"begin":"<(script|style)","beginCaptures":{"0":{"patterns":[{"include":"#tags-start-node"}]}},"end":"|/>","endCaptures":{"0":{"patterns":[{"include":"#tags-end-node"}]}},"name":"meta.scope.tag.$1.astro meta.$1.astro","patterns":[{"begin":"\\\\G(?=\\\\s*[^>]*?(type|lang)\\\\s*=\\\\s*(['\\"]|)(?:text\\\\/)?(application\\\\/ld\\\\+json)\\\\2)","end":"(?=)","name":"meta.lang.json.astro","patterns":[{"include":"#tags-lang-start-attributes"}]},{"begin":"\\\\G(?=\\\\s*[^>]*?(type|lang)\\\\s*=\\\\s*(['\\"]|)(module)\\\\2)","end":"(?=)","name":"meta.lang.javascript.astro","patterns":[{"include":"#tags-lang-start-attributes"}]},{"begin":"\\\\G(?=\\\\s*[^>]*?(type|lang)\\\\s*=\\\\s*(['\\"]|)(?:text/|application/)?([\\\\w\\\\/+]+)\\\\2)","end":"(?=)","name":"meta.lang.$3.astro","patterns":[{"include":"#tags-lang-start-attributes"}]},{"include":"#tags-lang-start-attributes"}]},"tags-lang-start-attributes":{"begin":"\\\\G","end":"(?=/>)|>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.astro"}},"name":"meta.tag.start.astro","patterns":[{"include":"#attributes"}]},"tags-name":{"patterns":[{"match":"[A-Z][a-zA-Z0-9_]*","name":"support.class.component.astro"},{"match":"[a-z][\\\\w0-9:]*-[\\\\w0-9:-]*","name":"meta.tag.custom.astro entity.name.tag.astro"},{"match":"[a-z][\\\\w0-9:-]*","name":"entity.name.tag.astro"}]},"tags-raw":{"begin":"<([^/?!\\\\s<>]+)(?=[^>]+is:raw).*?","beginCaptures":{"0":{"patterns":[{"include":"#tags-start-node"}]}},"contentName":"source.unknown","end":"|/>","endCaptures":{"0":{"patterns":[{"include":"#tags-end-node"}]}},"name":"meta.scope.tag.$1.astro meta.raw.astro","patterns":[{"include":"#tags-lang-start-attributes"}]},"tags-start-attributes":{"begin":"\\\\G","end":"(?=/?>)","name":"meta.tag.start.astro","patterns":[{"include":"#attributes"}]},"tags-start-node":{"captures":{"1":{"name":"punctuation.definition.tag.begin.astro"},"2":{"patterns":[{"include":"#tags-name"}]}},"match":"(<)([^/\\\\s>/]*)","name":"meta.tag.start.astro"},"tags-void":{"begin":"(<)(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?=\\\\s|/?>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.astro"},"2":{"name":"entity.name.tag.astro"}},"end":"/?>","endCaptures":{"0":{"name":"punctuation.definition.tag.begin.astro"}},"name":"meta.tag.void.astro","patterns":[{"include":"#attributes"}]},"text":{"patterns":[{"begin":"(?<=^|---|>|})","end":"(?=<|{|$)","name":"text.astro","patterns":[{"include":"#entities"}]}]}},"scopeName":"source.astro","embeddedLangs":["json","javascript","typescript","css","postcss"],"embeddedLangsLazy":["stylus","sass","scss","less","tsx"]}`)),p=[...e,...t,...r,...a,...n,s];export{p as default}; ================================================ FILE: jesse/static/_nuxt/B-k8r3hf.js ================================================ import{a1 as et}from"./CU_MfyYc.js";/*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var tt=Object.defineProperty,rt=Object.getOwnPropertyDescriptor,nt=Object.getOwnPropertyNames,it=Object.prototype.hasOwnProperty,ot=(e,n,i,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of nt(n))!it.call(e,t)&&t!==i&&tt(e,t,{get:()=>n[t],enumerable:!(r=rt(n,t))||r.enumerable});return e},at=(e,n,i)=>(ot(e,n,"default"),i),d={};at(d,et);var st=2*60*1e3,ut=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>st&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=d.editor.createWebWorker({moduleId:"vs/language/css/cssWorker",label:this._defaults.languageId,createData:{options:this._defaults.options,languageId:this._defaults.languageId}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let n;return this._getClient().then(i=>{n=i}).then(i=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(i=>n)}},T;(function(e){function n(i){return typeof i=="string"}e.is=n})(T||(T={}));var O;(function(e){function n(i){return typeof i=="string"}e.is=n})(O||(O={}));var Y;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function n(i){return typeof i=="number"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=n})(Y||(Y={}));var M;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function n(i){return typeof i=="number"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=n})(M||(M={}));var w;(function(e){function n(r,t){return r===Number.MAX_VALUE&&(r=M.MAX_VALUE),t===Number.MAX_VALUE&&(t=M.MAX_VALUE),{line:r,character:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&a.uinteger(t.line)&&a.uinteger(t.character)}e.is=i})(w||(w={}));var h;(function(e){function n(r,t,o,s){if(a.uinteger(r)&&a.uinteger(t)&&a.uinteger(o)&&a.uinteger(s))return{start:w.create(r,t),end:w.create(o,s)};if(w.is(r)&&w.is(t))return{start:r,end:t};throw new Error(`Range#create called with invalid arguments[${r}, ${t}, ${o}, ${s}]`)}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&w.is(t.start)&&w.is(t.end)}e.is=i})(h||(h={}));var C;(function(e){function n(r,t){return{uri:r,range:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.range)&&(a.string(t.uri)||a.undefined(t.uri))}e.is=i})(C||(C={}));var Z;(function(e){function n(r,t,o,s){return{targetUri:r,targetRange:t,targetSelectionRange:o,originSelectionRange:s}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.targetRange)&&a.string(t.targetUri)&&h.is(t.targetSelectionRange)&&(h.is(t.originSelectionRange)||a.undefined(t.originSelectionRange))}e.is=i})(Z||(Z={}));var S;(function(e){function n(r,t,o,s){return{red:r,green:t,blue:o,alpha:s}}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&a.numberRange(t.red,0,1)&&a.numberRange(t.green,0,1)&&a.numberRange(t.blue,0,1)&&a.numberRange(t.alpha,0,1)}e.is=i})(S||(S={}));var K;(function(e){function n(r,t){return{range:r,color:t}}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&h.is(t.range)&&S.is(t.color)}e.is=i})(K||(K={}));var ee;(function(e){function n(r,t,o){return{label:r,textEdit:t,additionalTextEdits:o}}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&a.string(t.label)&&(a.undefined(t.textEdit)||E.is(t))&&(a.undefined(t.additionalTextEdits)||a.typedArray(t.additionalTextEdits,E.is))}e.is=i})(ee||(ee={}));var A;(function(e){e.Comment="comment",e.Imports="imports",e.Region="region"})(A||(A={}));var te;(function(e){function n(r,t,o,s,u,f){const c={startLine:r,endLine:t};return a.defined(o)&&(c.startCharacter=o),a.defined(s)&&(c.endCharacter=s),a.defined(u)&&(c.kind=u),a.defined(f)&&(c.collapsedText=f),c}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&a.uinteger(t.startLine)&&a.uinteger(t.startLine)&&(a.undefined(t.startCharacter)||a.uinteger(t.startCharacter))&&(a.undefined(t.endCharacter)||a.uinteger(t.endCharacter))&&(a.undefined(t.kind)||a.string(t.kind))}e.is=i})(te||(te={}));var U;(function(e){function n(r,t){return{location:r,message:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&C.is(t.location)&&a.string(t.message)}e.is=i})(U||(U={}));var x;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(x||(x={}));var re;(function(e){e.Unnecessary=1,e.Deprecated=2})(re||(re={}));var ne;(function(e){function n(i){const r=i;return a.objectLiteral(r)&&a.string(r.href)}e.is=n})(ne||(ne={}));var y;(function(e){function n(r,t,o,s,u,f){let c={range:r,message:t};return a.defined(o)&&(c.severity=o),a.defined(s)&&(c.code=s),a.defined(u)&&(c.source=u),a.defined(f)&&(c.relatedInformation=f),c}e.create=n;function i(r){var t;let o=r;return a.defined(o)&&h.is(o.range)&&a.string(o.message)&&(a.number(o.severity)||a.undefined(o.severity))&&(a.integer(o.code)||a.string(o.code)||a.undefined(o.code))&&(a.undefined(o.codeDescription)||a.string((t=o.codeDescription)===null||t===void 0?void 0:t.href))&&(a.string(o.source)||a.undefined(o.source))&&(a.undefined(o.relatedInformation)||a.typedArray(o.relatedInformation,U.is))}e.is=i})(y||(y={}));var I;(function(e){function n(r,t,...o){let s={title:r,command:t};return a.defined(o)&&o.length>0&&(s.arguments=o),s}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.title)&&a.string(t.command)}e.is=i})(I||(I={}));var E;(function(e){function n(o,s){return{range:o,newText:s}}e.replace=n;function i(o,s){return{range:{start:o,end:o},newText:s}}e.insert=i;function r(o){return{range:o,newText:""}}e.del=r;function t(o){const s=o;return a.objectLiteral(s)&&a.string(s.newText)&&h.is(s.range)}e.is=t})(E||(E={}));var V;(function(e){function n(r,t,o){const s={label:r};return t!==void 0&&(s.needsConfirmation=t),o!==void 0&&(s.description=o),s}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&a.string(t.label)&&(a.boolean(t.needsConfirmation)||t.needsConfirmation===void 0)&&(a.string(t.description)||t.description===void 0)}e.is=i})(V||(V={}));var L;(function(e){function n(i){const r=i;return a.string(r)}e.is=n})(L||(L={}));var ie;(function(e){function n(o,s,u){return{range:o,newText:s,annotationId:u}}e.replace=n;function i(o,s,u){return{range:{start:o,end:o},newText:s,annotationId:u}}e.insert=i;function r(o,s){return{range:o,newText:"",annotationId:s}}e.del=r;function t(o){const s=o;return E.is(s)&&(V.is(s.annotationId)||L.is(s.annotationId))}e.is=t})(ie||(ie={}));var W;(function(e){function n(r,t){return{textDocument:r,edits:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&B.is(t.textDocument)&&Array.isArray(t.edits)}e.is=i})(W||(W={}));var H;(function(e){function n(r,t,o){let s={kind:"create",uri:r};return t!==void 0&&(t.overwrite!==void 0||t.ignoreIfExists!==void 0)&&(s.options=t),o!==void 0&&(s.annotationId=o),s}e.create=n;function i(r){let t=r;return t&&t.kind==="create"&&a.string(t.uri)&&(t.options===void 0||(t.options.overwrite===void 0||a.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||a.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||L.is(t.annotationId))}e.is=i})(H||(H={}));var X;(function(e){function n(r,t,o,s){let u={kind:"rename",oldUri:r,newUri:t};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(u.options=o),s!==void 0&&(u.annotationId=s),u}e.create=n;function i(r){let t=r;return t&&t.kind==="rename"&&a.string(t.oldUri)&&a.string(t.newUri)&&(t.options===void 0||(t.options.overwrite===void 0||a.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||a.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||L.is(t.annotationId))}e.is=i})(X||(X={}));var $;(function(e){function n(r,t,o){let s={kind:"delete",uri:r};return t!==void 0&&(t.recursive!==void 0||t.ignoreIfNotExists!==void 0)&&(s.options=t),o!==void 0&&(s.annotationId=o),s}e.create=n;function i(r){let t=r;return t&&t.kind==="delete"&&a.string(t.uri)&&(t.options===void 0||(t.options.recursive===void 0||a.boolean(t.options.recursive))&&(t.options.ignoreIfNotExists===void 0||a.boolean(t.options.ignoreIfNotExists)))&&(t.annotationId===void 0||L.is(t.annotationId))}e.is=i})($||($={}));var z;(function(e){function n(i){let r=i;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(t=>a.string(t.kind)?H.is(t)||X.is(t)||$.is(t):W.is(t)))}e.is=n})(z||(z={}));var oe;(function(e){function n(r){return{uri:r}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)}e.is=i})(oe||(oe={}));var ae;(function(e){function n(r,t){return{uri:r,version:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&a.integer(t.version)}e.is=i})(ae||(ae={}));var B;(function(e){function n(r,t){return{uri:r,version:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&(t.version===null||a.integer(t.version))}e.is=i})(B||(B={}));var se;(function(e){function n(r,t,o,s){return{uri:r,languageId:t,version:o,text:s}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&a.string(t.languageId)&&a.integer(t.version)&&a.string(t.text)}e.is=i})(se||(se={}));var q;(function(e){e.PlainText="plaintext",e.Markdown="markdown";function n(i){const r=i;return r===e.PlainText||r===e.Markdown}e.is=n})(q||(q={}));var P;(function(e){function n(i){const r=i;return a.objectLiteral(i)&&q.is(r.kind)&&a.string(r.value)}e.is=n})(P||(P={}));var v;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(v||(v={}));var Q;(function(e){e.PlainText=1,e.Snippet=2})(Q||(Q={}));var ue;(function(e){e.Deprecated=1})(ue||(ue={}));var ce;(function(e){function n(r,t,o){return{newText:r,insert:t,replace:o}}e.create=n;function i(r){const t=r;return t&&a.string(t.newText)&&h.is(t.insert)&&h.is(t.replace)}e.is=i})(ce||(ce={}));var de;(function(e){e.asIs=1,e.adjustIndentation=2})(de||(de={}));var le;(function(e){function n(i){const r=i;return r&&(a.string(r.detail)||r.detail===void 0)&&(a.string(r.description)||r.description===void 0)}e.is=n})(le||(le={}));var fe;(function(e){function n(i){return{label:i}}e.create=n})(fe||(fe={}));var ge;(function(e){function n(i,r){return{items:i||[],isIncomplete:!!r}}e.create=n})(ge||(ge={}));var F;(function(e){function n(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}e.fromPlainText=n;function i(r){const t=r;return a.string(t)||a.objectLiteral(t)&&a.string(t.language)&&a.string(t.value)}e.is=i})(F||(F={}));var he;(function(e){function n(i){let r=i;return!!r&&a.objectLiteral(r)&&(P.is(r.contents)||F.is(r.contents)||a.typedArray(r.contents,F.is))&&(i.range===void 0||h.is(i.range))}e.is=n})(he||(he={}));var ve;(function(e){function n(i,r){return r?{label:i,documentation:r}:{label:i}}e.create=n})(ve||(ve={}));var pe;(function(e){function n(i,r,...t){let o={label:i};return a.defined(r)&&(o.documentation=r),a.defined(t)?o.parameters=t:o.parameters=[],o}e.create=n})(pe||(pe={}));var R;(function(e){e.Text=1,e.Read=2,e.Write=3})(R||(R={}));var me;(function(e){function n(i,r){let t={range:i};return a.number(r)&&(t.kind=r),t}e.create=n})(me||(me={}));var p;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(p||(p={}));var _e;(function(e){e.Deprecated=1})(_e||(_e={}));var be;(function(e){function n(i,r,t,o,s){let u={name:i,kind:r,location:{uri:o,range:t}};return s&&(u.containerName=s),u}e.create=n})(be||(be={}));var we;(function(e){function n(i,r,t,o){return o!==void 0?{name:i,kind:r,location:{uri:t,range:o}}:{name:i,kind:r,location:{uri:t}}}e.create=n})(we||(we={}));var ke;(function(e){function n(r,t,o,s,u,f){let c={name:r,detail:t,kind:o,range:s,selectionRange:u};return f!==void 0&&(c.children=f),c}e.create=n;function i(r){let t=r;return t&&a.string(t.name)&&a.number(t.kind)&&h.is(t.range)&&h.is(t.selectionRange)&&(t.detail===void 0||a.string(t.detail))&&(t.deprecated===void 0||a.boolean(t.deprecated))&&(t.children===void 0||Array.isArray(t.children))&&(t.tags===void 0||Array.isArray(t.tags))}e.is=i})(ke||(ke={}));var xe;(function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"})(xe||(xe={}));var j;(function(e){e.Invoked=1,e.Automatic=2})(j||(j={}));var Ie;(function(e){function n(r,t,o){let s={diagnostics:r};return t!=null&&(s.only=t),o!=null&&(s.triggerKind=o),s}e.create=n;function i(r){let t=r;return a.defined(t)&&a.typedArray(t.diagnostics,y.is)&&(t.only===void 0||a.typedArray(t.only,a.string))&&(t.triggerKind===void 0||t.triggerKind===j.Invoked||t.triggerKind===j.Automatic)}e.is=i})(Ie||(Ie={}));var Ee;(function(e){function n(r,t,o){let s={title:r},u=!0;return typeof t=="string"?(u=!1,s.kind=t):I.is(t)?s.command=t:s.edit=t,u&&o!==void 0&&(s.kind=o),s}e.create=n;function i(r){let t=r;return t&&a.string(t.title)&&(t.diagnostics===void 0||a.typedArray(t.diagnostics,y.is))&&(t.kind===void 0||a.string(t.kind))&&(t.edit!==void 0||t.command!==void 0)&&(t.command===void 0||I.is(t.command))&&(t.isPreferred===void 0||a.boolean(t.isPreferred))&&(t.edit===void 0||z.is(t.edit))}e.is=i})(Ee||(Ee={}));var Le;(function(e){function n(r,t){let o={range:r};return a.defined(t)&&(o.data=t),o}e.create=n;function i(r){let t=r;return a.defined(t)&&h.is(t.range)&&(a.undefined(t.command)||I.is(t.command))}e.is=i})(Le||(Le={}));var Ae;(function(e){function n(r,t){return{tabSize:r,insertSpaces:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.uinteger(t.tabSize)&&a.boolean(t.insertSpaces)}e.is=i})(Ae||(Ae={}));var Re;(function(e){function n(r,t,o){return{range:r,target:t,data:o}}e.create=n;function i(r){let t=r;return a.defined(t)&&h.is(t.range)&&(a.undefined(t.target)||a.string(t.target))}e.is=i})(Re||(Re={}));var Pe;(function(e){function n(r,t){return{range:r,parent:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.range)&&(t.parent===void 0||e.is(t.parent))}e.is=i})(Pe||(Pe={}));var De;(function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator"})(De||(De={}));var Me;(function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"})(Me||(Me={}));var Ce;(function(e){function n(i){const r=i;return a.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}e.is=n})(Ce||(Ce={}));var ye;(function(e){function n(r,t){return{range:r,text:t}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&a.string(t.text)}e.is=i})(ye||(ye={}));var Fe;(function(e){function n(r,t,o){return{range:r,variableName:t,caseSensitiveLookup:o}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&a.boolean(t.caseSensitiveLookup)&&(a.string(t.variableName)||t.variableName===void 0)}e.is=i})(Fe||(Fe={}));var je;(function(e){function n(r,t){return{range:r,expression:t}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&(a.string(t.expression)||t.expression===void 0)}e.is=i})(je||(je={}));var Ne;(function(e){function n(r,t){return{frameId:r,stoppedLocation:t}}e.create=n;function i(r){const t=r;return a.defined(t)&&h.is(r.stoppedLocation)}e.is=i})(Ne||(Ne={}));var G;(function(e){e.Type=1,e.Parameter=2;function n(i){return i===1||i===2}e.is=n})(G||(G={}));var J;(function(e){function n(r){return{value:r}}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&(t.tooltip===void 0||a.string(t.tooltip)||P.is(t.tooltip))&&(t.location===void 0||C.is(t.location))&&(t.command===void 0||I.is(t.command))}e.is=i})(J||(J={}));var Oe;(function(e){function n(r,t,o){const s={position:r,label:t};return o!==void 0&&(s.kind=o),s}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&w.is(t.position)&&(a.string(t.label)||a.typedArray(t.label,J.is))&&(t.kind===void 0||G.is(t.kind))&&t.textEdits===void 0||a.typedArray(t.textEdits,E.is)&&(t.tooltip===void 0||a.string(t.tooltip)||P.is(t.tooltip))&&(t.paddingLeft===void 0||a.boolean(t.paddingLeft))&&(t.paddingRight===void 0||a.boolean(t.paddingRight))}e.is=i})(Oe||(Oe={}));var Se;(function(e){function n(i){return{kind:"snippet",value:i}}e.createSnippet=n})(Se||(Se={}));var Ue;(function(e){function n(i,r,t,o){return{insertText:i,filterText:r,range:t,command:o}}e.create=n})(Ue||(Ue={}));var Ve;(function(e){function n(i){return{items:i}}e.create=n})(Ve||(Ve={}));var We;(function(e){e.Invoked=0,e.Automatic=1})(We||(We={}));var He;(function(e){function n(i,r){return{range:i,text:r}}e.create=n})(He||(He={}));var Xe;(function(e){function n(i,r){return{triggerKind:i,selectedCompletionInfo:r}}e.create=n})(Xe||(Xe={}));var $e;(function(e){function n(i){const r=i;return a.objectLiteral(r)&&O.is(r.uri)&&a.string(r.name)}e.is=n})($e||($e={}));var ze;(function(e){function n(o,s,u,f){return new ct(o,s,u,f)}e.create=n;function i(o){let s=o;return!!(a.defined(s)&&a.string(s.uri)&&(a.undefined(s.languageId)||a.string(s.languageId))&&a.uinteger(s.lineCount)&&a.func(s.getText)&&a.func(s.positionAt)&&a.func(s.offsetAt))}e.is=i;function r(o,s){let u=o.getText(),f=t(s,(g,_)=>{let b=g.range.start.line-_.range.start.line;return b===0?g.range.start.character-_.range.start.character:b}),c=u.length;for(let g=f.length-1;g>=0;g--){let _=f[g],b=o.offsetAt(_.range.start),l=o.offsetAt(_.range.end);if(l<=c)u=u.substring(0,b)+_.newText+u.substring(l,u.length);else throw new Error("Overlapping edit");c=b}return u}e.applyEdits=r;function t(o,s){if(o.length<=1)return o;const u=o.length/2|0,f=o.slice(0,u),c=o.slice(u);t(f,s),t(c,s);let g=0,_=0,b=0;for(;g0&&e.push(n.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let n=this.getLineOffsets(),i=0,r=n.length;if(r===0)return w.create(0,e);for(;ie?r=o:i=o+1}let t=i-1;return w.create(t,e-n[t])}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let i=n[e.line],r=e.line+1"u"}e.undefined=r;function t(l){return l===!0||l===!1}e.boolean=t;function o(l){return n.call(l)==="[object String]"}e.string=o;function s(l){return n.call(l)==="[object Number]"}e.number=s;function u(l,N,Ke){return n.call(l)==="[object Number]"&&N<=l&&l<=Ke}e.numberRange=u;function f(l){return n.call(l)==="[object Number]"&&-2147483648<=l&&l<=2147483647}e.integer=f;function c(l){return n.call(l)==="[object Number]"&&0<=l&&l<=2147483647}e.uinteger=c;function g(l){return n.call(l)==="[object Function]"}e.func=g;function _(l){return l!==null&&typeof l=="object"}e.objectLiteral=_;function b(l,N){return Array.isArray(l)&&l.every(N)}e.typedArray=b})(a||(a={}));var dt=class{constructor(e,n,i){this._languageId=e,this._worker=n,this._disposables=[],this._listener=Object.create(null);const r=o=>{let s=o.getLanguageId();if(s!==this._languageId)return;let u;this._listener[o.uri.toString()]=o.onDidChangeContent(()=>{window.clearTimeout(u),u=window.setTimeout(()=>this._doValidate(o.uri,s),500)}),this._doValidate(o.uri,s)},t=o=>{d.editor.setModelMarkers(o,this._languageId,[]);let s=o.uri.toString(),u=this._listener[s];u&&(u.dispose(),delete this._listener[s])};this._disposables.push(d.editor.onDidCreateModel(r)),this._disposables.push(d.editor.onWillDisposeModel(t)),this._disposables.push(d.editor.onDidChangeModelLanguage(o=>{t(o.model),r(o.model)})),this._disposables.push(i(o=>{d.editor.getModels().forEach(s=>{s.getLanguageId()===this._languageId&&(t(s),r(s))})})),this._disposables.push({dispose:()=>{d.editor.getModels().forEach(t);for(let o in this._listener)this._listener[o].dispose()}}),d.editor.getModels().forEach(r)}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables.length=0}_doValidate(e,n){this._worker(e).then(i=>i.doValidation(e.toString())).then(i=>{const r=i.map(o=>ft(e,o));let t=d.editor.getModel(e);t&&t.getLanguageId()===n&&d.editor.setModelMarkers(t,n,r)}).then(void 0,i=>{console.error(i)})}};function lt(e){switch(e){case x.Error:return d.MarkerSeverity.Error;case x.Warning:return d.MarkerSeverity.Warning;case x.Information:return d.MarkerSeverity.Info;case x.Hint:return d.MarkerSeverity.Hint;default:return d.MarkerSeverity.Info}}function ft(e,n){let i=typeof n.code=="number"?String(n.code):n.code;return{severity:lt(n.severity),startLineNumber:n.range.start.line+1,startColumn:n.range.start.character+1,endLineNumber:n.range.end.line+1,endColumn:n.range.end.character+1,message:n.message,code:i,source:n.source}}var gt=class{constructor(e,n){this._worker=e,this._triggerCharacters=n}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(e,n,i,r){const t=e.uri;return this._worker(t).then(o=>o.doComplete(t.toString(),k(n))).then(o=>{if(!o)return;const s=e.getWordUntilPosition(n),u=new d.Range(n.lineNumber,s.startColumn,n.lineNumber,s.endColumn),f=o.items.map(c=>{const g={label:c.label,insertText:c.insertText||c.label,sortText:c.sortText,filterText:c.filterText,documentation:c.documentation,detail:c.detail,command:pt(c.command),range:u,kind:vt(c.kind)};return c.textEdit&&(ht(c.textEdit)?g.range={insert:m(c.textEdit.insert),replace:m(c.textEdit.replace)}:g.range=m(c.textEdit.range),g.insertText=c.textEdit.newText),c.additionalTextEdits&&(g.additionalTextEdits=c.additionalTextEdits.map(D)),c.insertTextFormat===Q.Snippet&&(g.insertTextRules=d.languages.CompletionItemInsertTextRule.InsertAsSnippet),g});return{isIncomplete:o.isIncomplete,suggestions:f}})}};function k(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function Qe(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function m(e){if(e)return new d.Range(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function ht(e){return typeof e.insert<"u"&&typeof e.replace<"u"}function vt(e){const n=d.languages.CompletionItemKind;switch(e){case v.Text:return n.Text;case v.Method:return n.Method;case v.Function:return n.Function;case v.Constructor:return n.Constructor;case v.Field:return n.Field;case v.Variable:return n.Variable;case v.Class:return n.Class;case v.Interface:return n.Interface;case v.Module:return n.Module;case v.Property:return n.Property;case v.Unit:return n.Unit;case v.Value:return n.Value;case v.Enum:return n.Enum;case v.Keyword:return n.Keyword;case v.Snippet:return n.Snippet;case v.Color:return n.Color;case v.File:return n.File;case v.Reference:return n.Reference}return n.Property}function D(e){if(e)return{range:m(e.range),text:e.newText}}function pt(e){return e&&e.command==="editor.action.triggerSuggest"?{id:e.command,title:e.title,arguments:e.arguments}:void 0}var mt=class{constructor(e){this._worker=e}provideHover(e,n,i){let r=e.uri;return this._worker(r).then(t=>t.doHover(r.toString(),k(n))).then(t=>{if(t)return{range:m(t.range),contents:bt(t.contents)}})}};function _t(e){return e&&typeof e=="object"&&typeof e.kind=="string"}function Be(e){return typeof e=="string"?{value:e}:_t(e)?e.kind==="plaintext"?{value:e.value.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}:{value:e.value}:{value:"```"+e.language+` `+e.value+"\n```\n"}}function bt(e){if(e)return Array.isArray(e)?e.map(Be):[Be(e)]}var wt=class{constructor(e){this._worker=e}provideDocumentHighlights(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.findDocumentHighlights(r.toString(),k(n))).then(t=>{if(t)return t.map(o=>({range:m(o.range),kind:kt(o.kind)}))})}};function kt(e){switch(e){case R.Read:return d.languages.DocumentHighlightKind.Read;case R.Write:return d.languages.DocumentHighlightKind.Write;case R.Text:return d.languages.DocumentHighlightKind.Text}return d.languages.DocumentHighlightKind.Text}var xt=class{constructor(e){this._worker=e}provideDefinition(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.findDefinition(r.toString(),k(n))).then(t=>{if(t)return[Ge(t)]})}};function Ge(e){return{uri:d.Uri.parse(e.uri),range:m(e.range)}}var It=class{constructor(e){this._worker=e}provideReferences(e,n,i,r){const t=e.uri;return this._worker(t).then(o=>o.findReferences(t.toString(),k(n))).then(o=>{if(o)return o.map(Ge)})}},Et=class{constructor(e){this._worker=e}provideRenameEdits(e,n,i,r){const t=e.uri;return this._worker(t).then(o=>o.doRename(t.toString(),k(n),i)).then(o=>Lt(o))}};function Lt(e){if(!e||!e.changes)return;let n=[];for(let i in e.changes){const r=d.Uri.parse(i);for(let t of e.changes[i])n.push({resource:r,versionId:void 0,textEdit:{range:m(t.range),text:t.newText}})}return{edits:n}}var At=class{constructor(e){this._worker=e}provideDocumentSymbols(e,n){const i=e.uri;return this._worker(i).then(r=>r.findDocumentSymbols(i.toString())).then(r=>{if(r)return r.map(t=>Rt(t)?Je(t):{name:t.name,detail:"",containerName:t.containerName,kind:Te(t.kind),range:m(t.location.range),selectionRange:m(t.location.range),tags:[]})})}};function Rt(e){return"children"in e}function Je(e){return{name:e.name,detail:e.detail??"",kind:Te(e.kind),range:m(e.range),selectionRange:m(e.selectionRange),tags:e.tags??[],children:(e.children??[]).map(n=>Je(n))}}function Te(e){let n=d.languages.SymbolKind;switch(e){case p.File:return n.File;case p.Module:return n.Module;case p.Namespace:return n.Namespace;case p.Package:return n.Package;case p.Class:return n.Class;case p.Method:return n.Method;case p.Property:return n.Property;case p.Field:return n.Field;case p.Constructor:return n.Constructor;case p.Enum:return n.Enum;case p.Interface:return n.Interface;case p.Function:return n.Function;case p.Variable:return n.Variable;case p.Constant:return n.Constant;case p.String:return n.String;case p.Number:return n.Number;case p.Boolean:return n.Boolean;case p.Array:return n.Array}return n.Function}var Nt=class{constructor(e){this._worker=e}provideLinks(e,n){const i=e.uri;return this._worker(i).then(r=>r.findDocumentLinks(i.toString())).then(r=>{if(r)return{links:r.map(t=>({range:m(t.range),url:t.target}))}})}},Pt=class{constructor(e){this._worker=e}provideDocumentFormattingEdits(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.format(r.toString(),null,Ye(n)).then(o=>{if(!(!o||o.length===0))return o.map(D)}))}},Dt=class{constructor(e){this._worker=e,this.canFormatMultipleRanges=!1}provideDocumentRangeFormattingEdits(e,n,i,r){const t=e.uri;return this._worker(t).then(o=>o.format(t.toString(),Qe(n),Ye(i)).then(s=>{if(!(!s||s.length===0))return s.map(D)}))}};function Ye(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}var Mt=class{constructor(e){this._worker=e}provideDocumentColors(e,n){const i=e.uri;return this._worker(i).then(r=>r.findDocumentColors(i.toString())).then(r=>{if(r)return r.map(t=>({color:t.color,range:m(t.range)}))})}provideColorPresentations(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.getColorPresentations(r.toString(),n.color,Qe(n.range))).then(t=>{if(t)return t.map(o=>{let s={label:o.label};return o.textEdit&&(s.textEdit=D(o.textEdit)),o.additionalTextEdits&&(s.additionalTextEdits=o.additionalTextEdits.map(D)),s})})}},Ct=class{constructor(e){this._worker=e}provideFoldingRanges(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.getFoldingRanges(r.toString(),n)).then(t=>{if(t)return t.map(o=>{const s={start:o.startLine+1,end:o.endLine+1};return typeof o.kind<"u"&&(s.kind=yt(o.kind)),s})})}};function yt(e){switch(e){case A.Comment:return d.languages.FoldingRangeKind.Comment;case A.Imports:return d.languages.FoldingRangeKind.Imports;case A.Region:return d.languages.FoldingRangeKind.Region}}var Ft=class{constructor(e){this._worker=e}provideSelectionRanges(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.getSelectionRanges(r.toString(),n.map(k))).then(t=>{if(t)return t.map(o=>{const s=[];for(;o;)s.push({range:m(o.range)}),o=o.parent;return s})})}};function Ot(e){const n=[],i=[],r=new ut(e);n.push(r);const t=(...s)=>r.getLanguageServiceWorker(...s);function o(){const{languageId:s,modeConfiguration:u}=e;Ze(i),u.completionItems&&i.push(d.languages.registerCompletionItemProvider(s,new gt(t,["/","-",":"]))),u.hovers&&i.push(d.languages.registerHoverProvider(s,new mt(t))),u.documentHighlights&&i.push(d.languages.registerDocumentHighlightProvider(s,new wt(t))),u.definitions&&i.push(d.languages.registerDefinitionProvider(s,new xt(t))),u.references&&i.push(d.languages.registerReferenceProvider(s,new It(t))),u.documentSymbols&&i.push(d.languages.registerDocumentSymbolProvider(s,new At(t))),u.rename&&i.push(d.languages.registerRenameProvider(s,new Et(t))),u.colors&&i.push(d.languages.registerColorProvider(s,new Mt(t))),u.foldingRanges&&i.push(d.languages.registerFoldingRangeProvider(s,new Ct(t))),u.diagnostics&&i.push(new dt(s,t,e.onDidChange)),u.selectionRanges&&i.push(d.languages.registerSelectionRangeProvider(s,new Ft(t))),u.documentFormattingEdits&&i.push(d.languages.registerDocumentFormattingEditProvider(s,new Pt(t))),u.documentRangeFormattingEdits&&i.push(d.languages.registerDocumentRangeFormattingEditProvider(s,new Dt(t)))}return o(),n.push(qe(i)),qe(n)}function qe(e){return{dispose:()=>Ze(e)}}function Ze(e){for(;e.length;)e.pop().dispose()}export{gt as CompletionAdapter,xt as DefinitionAdapter,dt as DiagnosticsAdapter,Mt as DocumentColorAdapter,Pt as DocumentFormattingEditProvider,wt as DocumentHighlightAdapter,Nt as DocumentLinkAdapter,Dt as DocumentRangeFormattingEditProvider,At as DocumentSymbolAdapter,Ct as FoldingRangeAdapter,mt as HoverAdapter,It as ReferenceAdapter,Et as RenameAdapter,Ft as SelectionRangeAdapter,ut as WorkerManager,k as fromPosition,Qe as fromRange,Ot as setupMode,m as toRange,D as toTextEdit}; ================================================ FILE: jesse/static/_nuxt/B-lZjTdr.js ================================================ /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var g={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"}]};function e(i){let o=[];const a=i.split(/\t+|\r+|\n+| +/);for(let r=0;r0&&o.push(a[r]);return o}var s=e("true false"),c=e(` alias break case const const_assert continue continuing default diagnostic discard else enable fn for if let loop override requires return struct switch var while `),m=e(` NULL Self abstract active alignas alignof as asm asm_fragment async attribute auto await become binding_array cast catch class co_await co_return co_yield coherent column_major common compile compile_fragment concept const_cast consteval constexpr constinit crate debugger decltype delete demote demote_to_helper do dynamic_cast enum explicit export extends extern external fallthrough filter final finally friend from fxgroup get goto groupshared highp impl implements import inline instanceof interface layout lowp macro macro_rules match mediump meta mod module move mut mutable namespace new nil noexcept noinline nointerpolation noperspective null nullptr of operator package packoffset partition pass patch pixelfragment precise precision premerge priv protected pub public readonly ref regardless register reinterpret_cast require resource restrict self set shared sizeof smooth snorm static static_assert static_cast std subroutine super target template this thread_local throw trait try type typedef typeid typename typeof union unless unorm unsafe unsized use using varying virtual volatile wgsl where with writeonly yield `),l=e(` read write read_write function private workgroup uniform storage perspective linear flat center centroid sample vertex_index instance_index position front_facing frag_depth local_invocation_id local_invocation_index global_invocation_id workgroup_id num_workgroups sample_index sample_mask rgba8unorm rgba8snorm rgba8uint rgba8sint rgba16uint rgba16sint rgba16float r32uint r32sint r32float rg32uint rg32sint rg32float rgba32uint rgba32sint rgba32float bgra8unorm `),u=e(` bool f16 f32 i32 sampler sampler_comparison texture_depth_2d texture_depth_2d_array texture_depth_cube texture_depth_cube_array texture_depth_multisampled_2d texture_external texture_external u32 `),p=e(` array atomic mat2x2 mat2x3 mat2x4 mat3x2 mat3x3 mat3x4 mat4x2 mat4x3 mat4x4 ptr texture_1d texture_2d texture_2d_array texture_3d texture_cube texture_cube_array texture_multisampled_2d texture_storage_1d texture_storage_2d texture_storage_2d_array texture_storage_3d vec2 vec3 vec4 `),d=e(` vec2i vec3i vec4i vec2u vec3u vec4u vec2f vec3f vec4f vec2h vec3h vec4h mat2x2f mat2x3f mat2x4f mat3x2f mat3x3f mat3x4f mat4x2f mat4x3f mat4x4f mat2x2h mat2x3h mat2x4h mat3x2h mat3x3h mat3x4h mat4x2h mat4x3h mat4x4h `),x=e(` bitcast all any select arrayLength abs acos acosh asin asinh atan atanh atan2 ceil clamp cos cosh countLeadingZeros countOneBits countTrailingZeros cross degrees determinant distance dot exp exp2 extractBits faceForward firstLeadingBit firstTrailingBit floor fma fract frexp inverseBits inverseSqrt ldexp length log log2 max min mix modf normalize pow quantizeToF16 radians reflect refract reverseBits round saturate sign sin sinh smoothstep sqrt step tan tanh transpose trunc dpdx dpdxCoarse dpdxFine dpdy dpdyCoarse dpdyFine fwidth fwidthCoarse fwidthFine textureDimensions textureGather textureGatherCompare textureLoad textureNumLayers textureNumLevels textureNumSamples textureSample textureSampleBias textureSampleCompare textureSampleCompareLevel textureSampleGrad textureSampleLevel textureSampleBaseClampToEdge textureStore atomicLoad atomicStore atomicAdd atomicSub atomicMax atomicMin atomicAnd atomicOr atomicXor atomicExchange atomicCompareExchangeWeak pack4x8snorm pack4x8unorm pack2x16snorm pack2x16unorm pack2x16float unpack4x8snorm unpack4x8unorm unpack2x16snorm unpack2x16unorm unpack2x16float storageBarrier workgroupBarrier workgroupUniformLoad `),f=e(` & && -> / = == != > >= < <= % - -- + ++ | || * << >> += -= *= /= %= &= |= ^= >>= <<= `),_=/enable|requires|diagnostic/,n=new RegExp("[_\\p{XID_Start}]\\p{XID_Continue}*","u"),t="variable.predefined",h={tokenPostfix:".wgsl",defaultToken:"invalid",unicode:!0,atoms:s,keywords:c,reserved:m,predeclared_enums:l,predeclared_types:u,predeclared_type_generators:p,predeclared_type_aliases:d,predeclared_intrinsics:x,operators:f,symbols:/[!%&*+\-\.\/:;<=>^|_~,]+/,tokenizer:{root:[[_,"keyword","@directive"],[n,{cases:{"@atoms":t,"@keywords":"keyword","@reserved":"invalid","@predeclared_enums":t,"@predeclared_types":t,"@predeclared_type_generators":t,"@predeclared_type_aliases":t,"@predeclared_intrinsics":t,"@default":"identifier"}}],{include:"@commentOrSpace"},{include:"@numbers"},[/[{}()\[\]]/,"@brackets"],["@","annotation","@attribute"],[/@symbols/,{cases:{"@operators":"operator","@default":"delimiter"}}],[/./,"invalid"]],commentOrSpace:[[/\s+/,"white"],[/\/\*/,"comment","@blockComment"],[/\/\/.*$/,"comment"]],blockComment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],attribute:[{include:"@commentOrSpace"},[/\w+/,"annotation","@pop"]],directive:[{include:"@commentOrSpace"},[/[()]/,"@brackets"],[/,/,"delimiter"],[n,"meta.content"],[/;/,"delimiter","@pop"]],numbers:[[/0[fh]/,"number.float"],[/[1-9][0-9]*[fh]/,"number.float"],[/[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/,"number.float"],[/[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/,"number.float"],[/[0-9]+[eE][+-]?[0-9]+[fh]?/,"number.float"],[/0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+(?:[pP][+-]?[0-9]+[fh]?)?/,"number.hex"],[/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*(?:[pP][+-]?[0-9]+[fh]?)?/,"number.hex"],[/0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/,"number.hex"],[/0[xX][0-9a-fA-F]+[iu]?/,"number.hex"],[/[1-9][0-9]*[iu]?/,"number"],[/0[iu]?/,"number"]]}};export{g as conf,h as language}; ================================================ FILE: jesse/static/_nuxt/B0XVJmRM.js ================================================ const e=Object.freeze(JSON.parse('{"displayName":"Nextflow","name":"nextflow","patterns":[{"include":"#nextflow"}],"repository":{"enum-def":{"begin":"^\\\\s*(enum)\\\\s+(\\\\w+)\\\\s*{","beginCaptures":{"1":{"name":"keyword.nextflow"},"2":{"name":"storage.type.groovy"}},"end":"}","patterns":[{"include":"source.nextflow-groovy#comments"},{"include":"#enum-values"}]},"enum-values":{"patterns":[{"begin":"(?<=;|^)\\\\s*\\\\b([A-Z0-9_]+)(?=\\\\s*(?:,|}|\\\\(|$))","beginCaptures":{"1":{"name":"constant.enum.name.groovy"}},"end":",|(?=})|^(?!\\\\s*\\\\w+\\\\s*(?:,|$))","patterns":[{"begin":"\\\\(","end":"\\\\)","name":"meta.enum.value.groovy","patterns":[{"match":",","name":"punctuation.definition.seperator.parameter.groovy"},{"include":"#groovy-code"}]}]}]},"function-body":{"patterns":[{"match":"\\\\s"},{"begin":"(?=(?:\\\\w|<)[^\\\\(]*\\\\s+(?:[\\\\w$]|<)+\\\\s*\\\\()","end":"(?=[\\\\w$]+\\\\s*\\\\()","name":"meta.method.return-type.java","patterns":[{"include":"source.nextflow-groovy#types"}]},{"begin":"([\\\\w$]+)\\\\s*\\\\(","beginCaptures":{"1":{"name":"entity.name.function.nextflow"}},"end":"\\\\)","name":"meta.definition.method.signature.java","patterns":[{"begin":"(?=[^)])","end":"(?=\\\\))","name":"meta.method.parameters.groovy","patterns":[{"begin":"(?=[^,)])","end":"(?=,|\\\\))","name":"meta.method.parameter.groovy","patterns":[{"match":",","name":"punctuation.definition.separator.groovy"},{"begin":"=","beginCaptures":{"0":{"name":"keyword.operator.assignment.groovy"}},"end":"(?=,|\\\\))","name":"meta.parameter.default.groovy","patterns":[{"include":"source.nextflow-groovy#groovy-code"}]},{"include":"source.nextflow-groovy#parameters"}]}]}]},{"begin":"(?=<)","end":"(?=\\\\s)","name":"meta.method.paramerised-type.groovy","patterns":[{"begin":"<","end":">","name":"storage.type.parameters.groovy","patterns":[{"include":"source.nextflow-groovy#types"},{"match":",","name":"punctuation.definition.seperator.groovy"}]}]},{"begin":"{","end":"(?=})","name":"meta.method.body.java","patterns":[{"include":"source.nextflow-groovy#groovy-code"}]}]},"function-def":{"applyEndPatternLast":1,"begin":"(?:(?<=;|^|{)(?=\\\\s*(?:(?:def)|(?:(?:(?:boolean|byte|char|short|int|float|long|double)|(?:@?(?:[a-zA-Z]\\\\w*\\\\.)*[A-Z]+\\\\w*))[\\\\[\\\\]]*(?:<.*>)?)n)\\\\s+([^=]+\\\\s+)?\\\\w+\\\\s*\\\\())","end":"}|(?=[^{])","name":"meta.definition.method.groovy","patterns":[{"include":"#function-body"}]},"include-decl":{"patterns":[{"match":"^\\\\b(include)\\\\b","name":"keyword.nextflow"},{"match":"\\\\b(from)\\\\b","name":"keyword.nextflow"}]},"nextflow":{"patterns":[{"include":"#enum-def"},{"include":"#function-def"},{"include":"#process-def"},{"include":"#workflow-def"},{"include":"#output-def"},{"include":"#include-decl"},{"include":"source.nextflow-groovy"}]},"output-def":{"begin":"^\\\\s*(output)\\\\s*{","beginCaptures":{"1":{"name":"keyword.nextflow"}},"end":"}","name":"output.nextflow","patterns":[{"include":"source.nextflow-groovy#groovy"}]},"process-body":{"patterns":[{"match":"(?:input|output|when|script|shell|exec):","name":"constant.block.nextflow"},{"match":"\\\\b(val|env|file|path|stdin|stdout|tuple)(\\\\(|\\\\s)","name":"entity.name.function.nextflow"},{"include":"source.nextflow-groovy#groovy"}]},"process-def":{"begin":"^\\\\s*(process)\\\\s+(\\\\w+)\\\\s*{","beginCaptures":{"1":{"name":"keyword.nextflow"},"2":{"name":"entity.name.function.nextflow"}},"end":"}","name":"process.nextflow","patterns":[{"include":"#process-body"}]},"workflow-body":{"patterns":[{"match":"(?:take|main|emit|publish):","name":"constant.block.nextflow"},{"include":"source.nextflow-groovy#groovy"}]},"workflow-def":{"begin":"^\\\\s*(workflow)(?:\\\\s+(\\\\w+))?\\\\s*{","beginCaptures":{"1":{"name":"keyword.nextflow"},"2":{"name":"entity.name.function.nextflow"}},"end":"}","name":"workflow.nextflow","patterns":[{"include":"#workflow-body"}]}},"scopeName":"source.nextflow","aliases":["nf"]}')),n=[e];export{n as default}; ================================================ FILE: jesse/static/_nuxt/B0m2ddpp.js ================================================ const e=Object.freeze(JSON.parse('{"colors":{"activityBar.activeBorder":"#80CBC4","activityBar.background":"#FAFAFA","activityBar.border":"#FAFAFA60","activityBar.dropBackground":"#E5393580","activityBar.foreground":"#90A4AE","activityBarBadge.background":"#80CBC4","activityBarBadge.foreground":"#000000","badge.background":"#CCD7DA30","badge.foreground":"#90A4AE","breadcrumb.activeSelectionForeground":"#80CBC4","breadcrumb.background":"#FAFAFA","breadcrumb.focusForeground":"#90A4AE","breadcrumb.foreground":"#758a95","breadcrumbPicker.background":"#FAFAFA","button.background":"#80CBC440","button.foreground":"#ffffff","debugConsole.errorForeground":"#E53935","debugConsole.infoForeground":"#39ADB5","debugConsole.warningForeground":"#E2931D","debugToolBar.background":"#FAFAFA","diffEditor.insertedTextBackground":"#39ADB520","diffEditor.removedTextBackground":"#FF537020","dropdown.background":"#FAFAFA","dropdown.border":"#00000010","editor.background":"#FAFAFA","editor.findMatchBackground":"#00000020","editor.findMatchBorder":"#80CBC4","editor.findMatchHighlight":"#90A4AE","editor.findMatchHighlightBackground":"#00000010","editor.findMatchHighlightBorder":"#00000030","editor.findRangeHighlightBackground":"#E2931D30","editor.foreground":"#90A4AE","editor.lineHighlightBackground":"#CCD7DA50","editor.lineHighlightBorder":"#CCD7DA00","editor.rangeHighlightBackground":"#FFFFFF0d","editor.selectionBackground":"#80CBC440","editor.selectionHighlightBackground":"#27272720","editor.wordHighlightBackground":"#FF537030","editor.wordHighlightStrongBackground":"#91B85930","editorBracketMatch.background":"#FAFAFA","editorBracketMatch.border":"#27272750","editorCursor.foreground":"#272727","editorError.foreground":"#E5393570","editorGroup.border":"#00000020","editorGroup.dropBackground":"#E5393580","editorGroup.focusedEmptyBorder":"#E53935","editorGroupHeader.tabsBackground":"#FAFAFA","editorGutter.addedBackground":"#91B85960","editorGutter.deletedBackground":"#E5393560","editorGutter.modifiedBackground":"#6182B860","editorHoverWidget.background":"#FAFAFA","editorHoverWidget.border":"#00000010","editorIndentGuide.activeBackground":"#B0BEC5","editorIndentGuide.background":"#B0BEC570","editorInfo.foreground":"#6182B870","editorLineNumber.activeForeground":"#758a95","editorLineNumber.foreground":"#CFD8DC","editorLink.activeForeground":"#90A4AE","editorMarkerNavigation.background":"#90A4AE05","editorOverviewRuler.border":"#FAFAFA","editorOverviewRuler.errorForeground":"#E5393540","editorOverviewRuler.findMatchForeground":"#80CBC4","editorOverviewRuler.infoForeground":"#6182B840","editorOverviewRuler.warningForeground":"#E2931D40","editorRuler.foreground":"#B0BEC5","editorSuggestWidget.background":"#FAFAFA","editorSuggestWidget.border":"#00000010","editorSuggestWidget.foreground":"#90A4AE","editorSuggestWidget.highlightForeground":"#80CBC4","editorSuggestWidget.selectedBackground":"#CCD7DA50","editorWarning.foreground":"#E2931D70","editorWhitespace.foreground":"#90A4AE40","editorWidget.background":"#FAFAFA","editorWidget.border":"#80CBC4","editorWidget.resizeBorder":"#80CBC4","extensionBadge.remoteForeground":"#90A4AE","extensionButton.prominentBackground":"#91B85990","extensionButton.prominentForeground":"#90A4AE","extensionButton.prominentHoverBackground":"#91B859","focusBorder":"#FFFFFF00","foreground":"#90A4AE","gitDecoration.conflictingResourceForeground":"#E2931D90","gitDecoration.deletedResourceForeground":"#E5393590","gitDecoration.ignoredResourceForeground":"#758a9590","gitDecoration.modifiedResourceForeground":"#6182B890","gitDecoration.untrackedResourceForeground":"#91B85990","input.background":"#EEEEEE","input.border":"#00000010","input.foreground":"#90A4AE","input.placeholderForeground":"#90A4AE60","inputOption.activeBackground":"#90A4AE30","inputOption.activeBorder":"#90A4AE30","inputValidation.errorBorder":"#E53935","inputValidation.infoBorder":"#6182B8","inputValidation.warningBorder":"#E2931D","list.activeSelectionBackground":"#FAFAFA","list.activeSelectionForeground":"#80CBC4","list.dropBackground":"#E5393580","list.focusBackground":"#90A4AE20","list.focusForeground":"#90A4AE","list.highlightForeground":"#80CBC4","list.hoverBackground":"#FAFAFA","list.hoverForeground":"#B1C7D3","list.inactiveSelectionBackground":"#CCD7DA50","list.inactiveSelectionForeground":"#80CBC4","listFilterWidget.background":"#CCD7DA50","listFilterWidget.noMatchesOutline":"#CCD7DA50","listFilterWidget.outline":"#CCD7DA50","menu.background":"#FAFAFA","menu.foreground":"#90A4AE","menu.selectionBackground":"#CCD7DA50","menu.selectionBorder":"#CCD7DA50","menu.selectionForeground":"#80CBC4","menu.separatorBackground":"#90A4AE","menubar.selectionBackground":"#CCD7DA50","menubar.selectionBorder":"#CCD7DA50","menubar.selectionForeground":"#80CBC4","notebook.focusedCellBorder":"#80CBC4","notebook.inactiveFocusedCellBorder":"#80CBC450","notificationLink.foreground":"#80CBC4","notifications.background":"#FAFAFA","notifications.foreground":"#90A4AE","panel.background":"#FAFAFA","panel.border":"#FAFAFA60","panel.dropBackground":"#90A4AE","panelTitle.activeBorder":"#80CBC4","panelTitle.activeForeground":"#000000","panelTitle.inactiveForeground":"#90A4AE","peekView.border":"#00000020","peekViewEditor.background":"#EEEEEE","peekViewEditor.matchHighlightBackground":"#80CBC440","peekViewEditorGutter.background":"#EEEEEE","peekViewResult.background":"#EEEEEE","peekViewResult.matchHighlightBackground":"#80CBC440","peekViewResult.selectionBackground":"#758a9570","peekViewTitle.background":"#EEEEEE","peekViewTitleDescription.foreground":"#90A4AE60","pickerGroup.border":"#FFFFFF1a","pickerGroup.foreground":"#80CBC4","progressBar.background":"#80CBC4","quickInput.background":"#FAFAFA","quickInput.foreground":"#758a95","quickInput.list.focusBackground":"#90A4AE20","sash.hoverBorder":"#80CBC450","scrollbar.shadow":"#00000020","scrollbarSlider.activeBackground":"#80CBC4","scrollbarSlider.background":"#90A4AE20","scrollbarSlider.hoverBackground":"#90A4AE10","selection.background":"#CCD7DA80","settings.checkboxBackground":"#FAFAFA","settings.checkboxForeground":"#90A4AE","settings.dropdownBackground":"#FAFAFA","settings.dropdownForeground":"#90A4AE","settings.headerForeground":"#80CBC4","settings.modifiedItemIndicator":"#80CBC4","settings.numberInputBackground":"#FAFAFA","settings.numberInputForeground":"#90A4AE","settings.textInputBackground":"#FAFAFA","settings.textInputForeground":"#90A4AE","sideBar.background":"#FAFAFA","sideBar.border":"#FAFAFA60","sideBar.foreground":"#758a95","sideBarSectionHeader.background":"#FAFAFA","sideBarSectionHeader.border":"#FAFAFA60","sideBarTitle.foreground":"#90A4AE","statusBar.background":"#FAFAFA","statusBar.border":"#FAFAFA60","statusBar.debuggingBackground":"#9C3EDA","statusBar.debuggingForeground":"#FFFFFF","statusBar.foreground":"#7E939E","statusBar.noFolderBackground":"#FAFAFA","statusBarItem.activeBackground":"#E5393580","statusBarItem.hoverBackground":"#90A4AE20","statusBarItem.remoteBackground":"#80CBC4","statusBarItem.remoteForeground":"#000000","tab.activeBackground":"#FAFAFA","tab.activeBorder":"#80CBC4","tab.activeForeground":"#000000","tab.activeModifiedBorder":"#758a95","tab.border":"#FAFAFA","tab.inactiveBackground":"#FAFAFA","tab.inactiveForeground":"#758a95","tab.inactiveModifiedBorder":"#89221f","tab.unfocusedActiveBorder":"#90A4AE","tab.unfocusedActiveForeground":"#90A4AE","tab.unfocusedActiveModifiedBorder":"#b72d2a","tab.unfocusedInactiveModifiedBorder":"#89221f","terminal.ansiBlack":"#000000","terminal.ansiBlue":"#6182B8","terminal.ansiBrightBlack":"#90A4AE","terminal.ansiBrightBlue":"#6182B8","terminal.ansiBrightCyan":"#39ADB5","terminal.ansiBrightGreen":"#91B859","terminal.ansiBrightMagenta":"#9C3EDA","terminal.ansiBrightRed":"#E53935","terminal.ansiBrightWhite":"#FFFFFF","terminal.ansiBrightYellow":"#E2931D","terminal.ansiCyan":"#39ADB5","terminal.ansiGreen":"#91B859","terminal.ansiMagenta":"#9C3EDA","terminal.ansiRed":"#E53935","terminal.ansiWhite":"#FFFFFF","terminal.ansiYellow":"#E2931D","terminalCursor.background":"#000000","terminalCursor.foreground":"#E2931D","textLink.activeForeground":"#90A4AE","textLink.foreground":"#80CBC4","titleBar.activeBackground":"#FAFAFA","titleBar.activeForeground":"#90A4AE","titleBar.border":"#FAFAFA60","titleBar.inactiveBackground":"#FAFAFA","titleBar.inactiveForeground":"#758a95","tree.indentGuidesStroke":"#B0BEC5","widget.shadow":"#00000020"},"displayName":"Material Theme Lighter","name":"material-theme-lighter","semanticHighlighting":true,"tokenColors":[{"settings":{"background":"#FAFAFA","foreground":"#90A4AE"}},{"scope":"string","settings":{"foreground":"#91B859"}},{"scope":"punctuation, constant.other.symbol","settings":{"foreground":"#39ADB5"}},{"scope":"constant.character.escape, text.html constant.character.entity.named","settings":{"foreground":"#90A4AE"}},{"scope":"constant.language.boolean","settings":{"foreground":"#FF5370"}},{"scope":"constant.numeric","settings":{"foreground":"#F76D47"}},{"scope":"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments","settings":{"foreground":"#90A4AE"}},{"scope":"keyword.other","settings":{"foreground":"#F76D47"}},{"scope":"keyword, modifier, variable.language.this, support.type.object, constant.language","settings":{"foreground":"#39ADB5"}},{"scope":"entity.name.function, support.function","settings":{"foreground":"#6182B8"}},{"scope":"storage.type, storage.modifier, storage.control","settings":{"foreground":"#9C3EDA"}},{"scope":"support.module, support.node","settings":{"fontStyle":"italic","foreground":"#E53935"}},{"scope":"support.type, constant.other.key","settings":{"foreground":"#E2931D"}},{"scope":"entity.name.type, entity.other.inherited-class, entity.other","settings":{"foreground":"#E2931D"}},{"scope":"comment","settings":{"fontStyle":"italic","foreground":"#90A4AE"}},{"scope":"comment punctuation.definition.comment, string.quoted.docstring","settings":{"fontStyle":"italic","foreground":"#90A4AE"}},{"scope":"punctuation","settings":{"foreground":"#39ADB5"}},{"scope":"entity.name, entity.name.type.class, support.type, support.class, meta.use","settings":{"foreground":"#E2931D"}},{"scope":"variable.object.property, meta.field.declaration entity.name.function","settings":{"foreground":"#E53935"}},{"scope":"meta.definition.method entity.name.function","settings":{"foreground":"#E53935"}},{"scope":"meta.function entity.name.function","settings":{"foreground":"#6182B8"}},{"scope":"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end","settings":{"foreground":"#39ADB5"}},{"scope":"meta.embedded, source.groovy.embedded, meta.template.expression","settings":{"foreground":"#90A4AE"}},{"scope":"entity.name.tag.yaml","settings":{"foreground":"#E53935"}},{"scope":"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json","settings":{"foreground":"#E53935"}},{"scope":"constant.language.json","settings":{"foreground":"#39ADB5"}},{"scope":"entity.other.attribute-name.class","settings":{"foreground":"#E2931D"}},{"scope":"entity.other.attribute-name.id","settings":{"foreground":"#F76D47"}},{"scope":"source.css entity.name.tag","settings":{"foreground":"#E2931D"}},{"scope":"support.type.property-name.css","settings":{"foreground":"#8796B0"}},{"scope":"meta.tag, punctuation.definition.tag","settings":{"foreground":"#39ADB5"}},{"scope":"entity.name.tag","settings":{"foreground":"#E53935"}},{"scope":"entity.other.attribute-name","settings":{"foreground":"#9C3EDA"}},{"scope":"punctuation.definition.entity.html","settings":{"foreground":"#90A4AE"}},{"scope":"markup.heading","settings":{"foreground":"#39ADB5"}},{"scope":"text.html.markdown meta.link.inline, meta.link.reference","settings":{"foreground":"#E53935"}},{"scope":"text.html.markdown beginning.punctuation.definition.list","settings":{"foreground":"#39ADB5"}},{"scope":"markup.italic","settings":{"fontStyle":"italic","foreground":"#E53935"}},{"scope":"markup.bold","settings":{"fontStyle":"bold","foreground":"#E53935"}},{"scope":"markup.bold markup.italic, markup.italic markup.bold","settings":{"fontStyle":"italic bold","foreground":"#E53935"}},{"scope":"markup.fenced_code.block.markdown punctuation.definition.markdown","settings":{"foreground":"#91B859"}},{"scope":"markup.inline.raw.string.markdown","settings":{"foreground":"#91B859"}},{"scope":"keyword.other.definition.ini","settings":{"foreground":"#E53935"}},{"scope":"entity.name.section.group-title.ini","settings":{"foreground":"#39ADB5"}},{"scope":"source.cs meta.class.identifier storage.type","settings":{"foreground":"#E2931D"}},{"scope":"source.cs meta.method.identifier entity.name.function","settings":{"foreground":"#E53935"}},{"scope":"source.cs meta.method-call meta.method, source.cs entity.name.function","settings":{"foreground":"#6182B8"}},{"scope":"source.cs storage.type","settings":{"foreground":"#E2931D"}},{"scope":"source.cs meta.method.return-type","settings":{"foreground":"#E2931D"}},{"scope":"source.cs meta.preprocessor","settings":{"foreground":"#90A4AE"}},{"scope":"source.cs entity.name.type.namespace","settings":{"foreground":"#90A4AE"}},{"scope":"meta.jsx.children, SXNested","settings":{"foreground":"#90A4AE"}},{"scope":"support.class.component","settings":{"foreground":"#E2931D"}},{"scope":"source.cpp meta.block variable.other","settings":{"foreground":"#90A4AE"}},{"scope":"source.python meta.member.access.python","settings":{"foreground":"#E53935"}},{"scope":"source.python meta.function-call.python, meta.function-call.arguments","settings":{"foreground":"#6182B8"}},{"scope":"meta.block","settings":{"foreground":"#E53935"}},{"scope":"entity.name.function.call","settings":{"foreground":"#6182B8"}},{"scope":"source.php support.other.namespace, source.php meta.use support.class","settings":{"foreground":"#90A4AE"}},{"scope":"constant.keyword","settings":{"fontStyle":"italic","foreground":"#39ADB5"}},{"scope":"entity.name.function","settings":{"foreground":"#6182B8"}},{"settings":{"background":"#FAFAFA","foreground":"#90A4AE"}},{"scope":["constant.other.placeholder"],"settings":{"foreground":"#E53935"}},{"scope":["markup.deleted"],"settings":{"foreground":"#E53935"}},{"scope":["markup.inserted"],"settings":{"foreground":"#91B859"}},{"scope":["markup.underline"],"settings":{"fontStyle":"underline"}},{"scope":["keyword.control"],"settings":{"fontStyle":"italic","foreground":"#39ADB5"}},{"scope":["variable.parameter"],"settings":{"fontStyle":"italic"}},{"scope":["variable.parameter.function.language.special.self.python"],"settings":{"fontStyle":"italic","foreground":"#E53935"}},{"scope":["constant.character.format.placeholder.other.python"],"settings":{"foreground":"#F76D47"}},{"scope":["markup.quote"],"settings":{"fontStyle":"italic","foreground":"#39ADB5"}},{"scope":["markup.fenced_code.block"],"settings":{"foreground":"#90A4AE90"}},{"scope":["punctuation.definition.quote"],"settings":{"foreground":"#FF5370"}},{"scope":["meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#9C3EDA"}},{"scope":["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#E2931D"}},{"scope":["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#F76D47"}},{"scope":["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#E53935"}},{"scope":["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#916b53"}},{"scope":["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#6182B8"}},{"scope":["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#FF5370"}},{"scope":["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#9C3EDA"}},{"scope":["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#91B859"}}],"type":"light"}'));export{e as default}; ================================================ FILE: jesse/static/_nuxt/B0qRVHPH.js ================================================ const a=Object.freeze(JSON.parse('{"displayName":"CSV","fileTypes":["csv"],"name":"csv","patterns":[{"captures":{"1":{"name":"rainbow1"},"2":{"name":"keyword.rainbow2"},"3":{"name":"entity.name.function.rainbow3"},"4":{"name":"comment.rainbow4"},"5":{"name":"string.rainbow5"},"6":{"name":"variable.parameter.rainbow6"},"7":{"name":"constant.numeric.rainbow7"},"8":{"name":"entity.name.type.rainbow8"},"9":{"name":"markup.bold.rainbow9"},"10":{"name":"invalid.rainbow10"}},"match":"((?: *\\"(?:[^\\"]*\\"\\")*[^\\"]*\\" *(?:,|$))|(?:[^,]*(?:,|$)))?((?: *\\"(?:[^\\"]*\\"\\")*[^\\"]*\\" *(?:,|$))|(?:[^,]*(?:,|$)))?((?: *\\"(?:[^\\"]*\\"\\")*[^\\"]*\\" *(?:,|$))|(?:[^,]*(?:,|$)))?((?: *\\"(?:[^\\"]*\\"\\")*[^\\"]*\\" *(?:,|$))|(?:[^,]*(?:,|$)))?((?: *\\"(?:[^\\"]*\\"\\")*[^\\"]*\\" *(?:,|$))|(?:[^,]*(?:,|$)))?((?: *\\"(?:[^\\"]*\\"\\")*[^\\"]*\\" *(?:,|$))|(?:[^,]*(?:,|$)))?((?: *\\"(?:[^\\"]*\\"\\")*[^\\"]*\\" *(?:,|$))|(?:[^,]*(?:,|$)))?((?: *\\"(?:[^\\"]*\\"\\")*[^\\"]*\\" *(?:,|$))|(?:[^,]*(?:,|$)))?((?: *\\"(?:[^\\"]*\\"\\")*[^\\"]*\\" *(?:,|$))|(?:[^,]*(?:,|$)))?((?: *\\"(?:[^\\"]*\\"\\")*[^\\"]*\\" *(?:,|$))|(?:[^,]*(?:,|$)))?","name":"rainbowgroup"}],"scopeName":"text.csv"}')),n=[a];export{n as default}; ================================================ FILE: jesse/static/_nuxt/B14Poo8t.js ================================================ import a from"./ifBTmRxC.js";const e=Object.freeze(JSON.parse('{"displayName":"ShaderLab","name":"shaderlab","patterns":[{"begin":"//","end":"$","name":"comment.line.double-slash.shaderlab"},{"match":"\\\\b(?i:Range|Float|Int|Color|Vector|2D|3D|Cube|Any)\\\\b","name":"support.type.basic.shaderlab"},{"include":"#numbers"},{"match":"\\\\b(?i:Shader|Properties|SubShader|Pass|Category)\\\\b","name":"storage.type.structure.shaderlab"},{"match":"\\\\b(?i:Name|Tags|Fallback|CustomEditor|Cull|ZWrite|ZTest|Offset|Blend|BlendOp|ColorMask|AlphaToMask|LOD|Lighting|Stencil|Ref|ReadMask|WriteMask|Comp|CompBack|CompFront|Fail|ZFail|UsePass|GrabPass|Dependency|Material|Diffuse|Ambient|Shininess|Specular|Emission|Fog|Mode|Density|SeparateSpecular|SetTexture|Combine|ConstantColor|Matrix|AlphaTest|ColorMaterial|BindChannels|Bind)\\\\b","name":"support.type.propertyname.shaderlab"},{"match":"\\\\b(?i:Back|Front|On|Off|[RGBA]{1,3}|AmbientAndDiffuse|Emission)\\\\b","name":"support.constant.property-value.shaderlab"},{"match":"\\\\b(?i:Less|Greater|LEqual|GEqual|Equal|NotEqual|Always|Never)\\\\b","name":"support.constant.property-value.comparisonfunction.shaderlab"},{"match":"\\\\b(?i:Keep|Zero|Replace|IncrSat|DecrSat|Invert|IncrWrap|DecrWrap)\\\\b","name":"support.constant.property-value.stenciloperation.shaderlab"},{"match":"\\\\b(?i:Previous|Primary|Texture|Constant|Lerp|Double|Quad|Alpha)\\\\b","name":"support.constant.property-value.texturecombiners.shaderlab"},{"match":"\\\\b(?i:Global|Linear|Exp2|Exp)\\\\b","name":"support.constant.property-value.fog.shaderlab"},{"match":"\\\\b(?i:Vertex|Normal|Tangent|TexCoord0|TexCoord1)\\\\b","name":"support.constant.property-value.bindchannels.shaderlab"},{"match":"\\\\b(?i:Add|Sub|RevSub|Min|Max|LogicalClear|LogicalSet|LogicalCopyInverted|LogicalCopy|LogicalNoop|LogicalInvert|LogicalAnd|LogicalNand|LogicalOr|LogicalNor|LogicalXor|LogicalEquiv|LogicalAndReverse|LogicalAndInverted|LogicalOrReverse|LogicalOrInverted)\\\\b","name":"support.constant.property-value.blendoperations.shaderlab"},{"match":"\\\\b(?i:One|Zero|SrcColor|SrcAlpha|DstColor|DstAlpha|OneMinusSrcColor|OneMinusSrcAlpha|OneMinusDstColor|OneMinusDstAlpha)\\\\b","name":"support.constant.property-value.blendfactors.shaderlab"},{"match":"\\\\[([a-zA-Z_][a-zA-Z0-9_]*)\\\\](?!\\\\s*[a-zA-Z_][a-zA-Z0-9_]*\\\\s*\\\\(\\")","name":"support.variable.reference.shaderlab"},{"begin":"(\\\\[)","end":"(\\\\])","name":"meta.attribute.shaderlab","patterns":[{"match":"\\\\G([a-zA-Z]+)\\\\b","name":"support.type.attributename.shaderlab"},{"include":"#numbers"}]},{"match":"\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\s*\\\\(","name":"support.variable.declaration.shaderlab"},{"begin":"\\\\b(CGPROGRAM|CGINCLUDE)\\\\b","beginCaptures":{"1":{"name":"keyword.other"}},"end":"\\\\b(ENDCG)\\\\b","endCaptures":{"1":{"name":"keyword.other"}},"name":"meta.cgblock","patterns":[{"include":"#hlsl-embedded"}]},{"begin":"\\\\b(HLSLPROGRAM|HLSLINCLUDE)\\\\b","beginCaptures":{"1":{"name":"keyword.other"}},"end":"\\\\b(ENDHLSL)\\\\b","endCaptures":{"1":{"name":"keyword.other"}},"name":"meta.hlslblock","patterns":[{"include":"#hlsl-embedded"}]},{"begin":"\\"","end":"\\"","name":"string.quoted.double.shaderlab"}],"repository":{"hlsl-embedded":{"patterns":[{"include":"source.hlsl"},{"match":"\\\\b(fixed([1-4](x[1-4])?)?)\\\\b","name":"storage.type.basic.shaderlab"},{"match":"\\\\b(UNITY_MATRIX_MVP|UNITY_MATRIX_MV|UNITY_MATRIX_M|UNITY_MATRIX_V|UNITY_MATRIX_P|UNITY_MATRIX_VP|UNITY_MATRIX_T_MV|UNITY_MATRIX_I_V|UNITY_MATRIX_IT_MV|_Object2World|_World2Object|unity_ObjectToWorld|unity_WorldToObject)\\\\b","name":"support.variable.transformations.shaderlab"},{"match":"\\\\b(_WorldSpaceCameraPos|_ProjectionParams|_ScreenParams|_ZBufferParams|unity_OrthoParams|unity_CameraProjection|unity_CameraInvProjection|unity_CameraWorldClipPlanes)\\\\b","name":"support.variable.camera.shaderlab"},{"match":"\\\\b(_Time|_SinTime|_CosTime|unity_DeltaTime)\\\\b","name":"support.variable.time.shaderlab"},{"match":"\\\\b(_LightColor0|_WorldSpaceLightPos0|_LightMatrix0|unity_4LightPosX0|unity_4LightPosY0|unity_4LightPosZ0|unity_4LightAtten0|unity_LightColor|_LightColor|unity_LightPosition|unity_LightAtten|unity_SpotDirection)\\\\b","name":"support.variable.lighting.shaderlab"},{"match":"\\\\b(unity_AmbientSky|unity_AmbientEquator|unity_AmbientGround|UNITY_LIGHTMODEL_AMBIENT|unity_FogColor|unity_FogParams)\\\\b","name":"support.variable.fog.shaderlab"},{"match":"\\\\b(unity_LODFade)\\\\b","name":"support.variable.various.shaderlab"},{"match":"\\\\b(SHADER_API_D3D9|SHADER_API_D3D11|SHADER_API_GLCORE|SHADER_API_OPENGL|SHADER_API_GLES|SHADER_API_GLES3|SHADER_API_METAL|SHADER_API_D3D11_9X|SHADER_API_PSSL|SHADER_API_XBOXONE|SHADER_API_PSP2|SHADER_API_WIIU|SHADER_API_MOBILE|SHADER_API_GLSL)\\\\b","name":"support.variable.preprocessor.targetplatform.shaderlab"},{"match":"\\\\b(SHADER_TARGET)\\\\b","name":"support.variable.preprocessor.targetmodel.shaderlab"},{"match":"\\\\b(UNITY_VERSION)\\\\b","name":"support.variable.preprocessor.unityversion.shaderlab"},{"match":"\\\\b(UNITY_BRANCH|UNITY_FLATTEN|UNITY_NO_SCREENSPACE_SHADOWS|UNITY_NO_LINEAR_COLORSPACE|UNITY_NO_RGBM|UNITY_NO_DXT5nm|UNITY_FRAMEBUFFER_FETCH_AVAILABLE|UNITY_USE_RGBA_FOR_POINT_SHADOWS|UNITY_ATTEN_CHANNEL|UNITY_HALF_TEXEL_OFFSET|UNITY_UV_STARTS_AT_TOP|UNITY_MIGHT_NOT_HAVE_DEPTH_Texture|UNITY_NEAR_CLIP_VALUE|UNITY_VPOS_TYPE|UNITY_CAN_COMPILE_TESSELLATION|UNITY_COMPILER_HLSL|UNITY_COMPILER_HLSL2GLSL|UNITY_COMPILER_CG|UNITY_REVERSED_Z)\\\\b","name":"support.variable.preprocessor.platformdifference.shaderlab"},{"match":"\\\\b(UNITY_PASS_FORWARDBASE|UNITY_PASS_FORWARDADD|UNITY_PASS_DEFERRED|UNITY_PASS_SHADOWCASTER|UNITY_PASS_PREPASSBASE|UNITY_PASS_PREPASSFINAL)\\\\b","name":"support.variable.preprocessor.texture2D.shaderlab"},{"match":"\\\\b(appdata_base|appdata_tan|appdata_full|appdata_img)\\\\b","name":"support.class.structures.shaderlab"},{"match":"\\\\b(SurfaceOutputStandardSpecular|SurfaceOutputStandard|SurfaceOutput|Input)\\\\b","name":"support.class.surface.shaderlab"}]},"numbers":{"patterns":[{"match":"\\\\b([0-9]+\\\\.?[0-9]*)\\\\b","name":"constant.numeric.shaderlab"}]}},"scopeName":"source.shaderlab","embeddedLangs":["hlsl"],"aliases":["shader"]}')),t=[...a,e];export{t as default}; ================================================ FILE: jesse/static/_nuxt/B1SYOhNW.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"Go","name":"go","patterns":[{"include":"#statements"}],"repository":{"after_control_variables":{"captures":{"1":{"patterns":[{"include":"#type-declarations-without-brackets"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"(?:\\\\w+)","name":"variable.other.go"}]}},"comment":"After control variables, to not highlight as a struct/interface (before formatting with gofmt)","match":"(?:(?<=\\\\brange\\\\b|\\\\bswitch\\\\b|\\\\;|\\\\bif\\\\b|\\\\bfor\\\\b|\\\\<|\\\\>|\\\\<\\\\=|\\\\>\\\\=|\\\\=\\\\=|\\\\!\\\\=|\\\\w(?:\\\\+|/|\\\\-|\\\\*|\\\\%)|\\\\w(?:\\\\+|/|\\\\-|\\\\*|\\\\%)\\\\=|\\\\|\\\\||\\\\&\\\\&)(?:\\\\s*)((?![\\\\[\\\\]]+)[[:alnum:]\\\\-\\\\_\\\\!\\\\.\\\\[\\\\]\\\\<\\\\>\\\\=\\\\*/\\\\+\\\\%\\\\:]+)(?:\\\\s*)(?=\\\\{))"},"brackets":{"patterns":[{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.curly.go"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.curly.go"}},"patterns":[{"include":"$self"}]},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"$self"}]},{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.square.go"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.square.go"}},"patterns":[{"include":"$self"}]}]},"built_in_functions":{"comment":"Built-in functions","patterns":[{"match":"\\\\b(append|cap|close|complex|copy|delete|imag|len|panic|print|println|real|recover|min|max|clear)\\\\b(?=\\\\()","name":"entity.name.function.support.builtin.go"},{"begin":"(?:(\\\\bnew\\\\b)(\\\\())","beginCaptures":{"1":{"name":"entity.name.function.support.builtin.go"},"2":{"name":"punctuation.definition.begin.bracket.round.go"}},"comment":"new keyword","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#functions"},{"include":"#struct_variables_types"},{"include":"#type-declarations"},{"include":"#generic_types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"},{"include":"$self"}]},{"begin":"(?:(\\\\bmake\\\\b)(?:(\\\\()((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+(?:\\\\([^\\\\)]+\\\\))?)?(?:[\\\\[\\\\]\\\\*]+)?(?:(?!\\\\bmap\\\\b)(?:[\\\\w\\\\.]+))?(\\\\[(?:(?:[\\\\S]+)(?:(?:\\\\,\\\\s*(?:[\\\\S]+))*))?\\\\])?(?:\\\\,)?)?))","beginCaptures":{"1":{"name":"entity.name.function.support.builtin.go"},"2":{"name":"punctuation.definition.begin.bracket.round.go"},"3":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"make keyword","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"$self"}]}]},"comments":{"patterns":[{"begin":"(\\\\/\\\\*)","beginCaptures":{"1":{"name":"punctuation.definition.comment.go"}},"end":"(\\\\*\\\\/)","endCaptures":{"1":{"name":"punctuation.definition.comment.go"}},"name":"comment.block.go"},{"begin":"(\\\\/\\\\/)","beginCaptures":{"1":{"name":"punctuation.definition.comment.go"}},"end":"(?:\\\\n|$)","name":"comment.line.double-slash.go"}]},"const_assignment":{"comment":"constant assignment with const keyword","patterns":[{"captures":{"1":{"patterns":[{"include":"#delimiters"},{"match":"\\\\w+","name":"variable.other.constant.go"}]},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#generic_types"},{"match":"\\\\(","name":"punctuation.definition.begin.bracket.round.go"},{"match":"\\\\)","name":"punctuation.definition.end.bracket.round.go"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"single assignment","match":"(?:(?<=\\\\bconst\\\\b)(?:\\\\s*)(\\\\b[\\\\w\\\\.]+(?:\\\\,\\\\s*[\\\\w\\\\.]+)*)(?:\\\\s*)((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+(?:\\\\([^\\\\)]+\\\\))?)?(?!(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|func|map)\\\\b)(?:[\\\\w\\\\.\\\\[\\\\]\\\\*]+(?:\\\\,\\\\s*[\\\\w\\\\.\\\\[\\\\]\\\\*]+)*)?(?:\\\\s*)(?:\\\\=)?)?)"},{"begin":"(?:(?<=\\\\bconst\\\\b)(?:\\\\s*)(\\\\())","beginCaptures":{"1":{"name":"punctuation.definition.begin.bracket.round.go"}},"comment":"multi assignment","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"captures":{"1":{"patterns":[{"include":"#delimiters"},{"match":"\\\\w+","name":"variable.other.constant.go"}]},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#generic_types"},{"match":"\\\\(","name":"punctuation.definition.begin.bracket.round.go"},{"match":"\\\\)","name":"punctuation.definition.end.bracket.round.go"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"match":"(?:(?:^\\\\s*)(\\\\b[\\\\w\\\\.]+(?:\\\\,\\\\s*[\\\\w\\\\.]+)*)(?:\\\\s*)((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+(?:\\\\([^\\\\)]+\\\\))?)?(?!(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|func|map)\\\\b)(?:[\\\\w\\\\.\\\\[\\\\]\\\\*]+(?:\\\\,\\\\s*[\\\\w\\\\.\\\\[\\\\]\\\\*]+)*)?(?:\\\\s*)(?:\\\\=)?)?)"},{"include":"$self"}]}]},"delimiters":{"patterns":[{"match":"\\\\,","name":"punctuation.other.comma.go"},{"match":"\\\\.(?!\\\\.\\\\.)","name":"punctuation.other.period.go"},{"match":":(?!=)","name":"punctuation.other.colon.go"}]},"double_parentheses_types":{"captures":{"1":{"patterns":[{"include":"#type-declarations-without-brackets"},{"match":"\\\\(","name":"punctuation.definition.begin.bracket.round.go"},{"match":"\\\\)","name":"punctuation.definition.end.bracket.round.go"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"double parentheses types","match":"(?:(?\\\\-]+(?:\\\\s*)(?:\\\\/(?:\\\\/|\\\\*).*)?)$)"},{"include":"$self"}]},"function_param_types":{"comment":"function parameter variables and types","patterns":[{"include":"#struct_variables_types"},{"include":"#interface_variables_types"},{"include":"#type-declarations-without-brackets"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.parameter.go"}]}},"comment":"struct/interface type declaration","match":"((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)?\\\\b\\\\w+)\\\\s+(?=(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+)?(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|interface)\\\\b\\\\s*\\\\{)"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.parameter.go"}]}},"comment":"multiple parameters one type -with multilines","match":"(?:(?:(?<=\\\\()|^\\\\s*)((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)(?:/(?:/|\\\\*).*)?)$)"},{"captures":{"1":{"patterns":[{"include":"#delimiters"},{"match":"\\\\w+","name":"variable.parameter.go"}]},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"multiple params and types | multiple params one type | one param one type","match":"(?:((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)?\\\\b\\\\w+)(?:\\\\s+)((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+)?(?:(?:(?:[\\\\w\\\\[\\\\]\\\\.\\\\*]+)?(?:(?:\\\\bfunc\\\\b\\\\((?:[^\\\\)]+)?\\\\))(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+)?(?:\\\\s*))+(?:(?:(?:[\\\\w\\\\*\\\\.\\\\[\\\\]]+)|(?:\\\\((?:[^\\\\)]+)?\\\\))))?)|(?:(?:[\\\\[\\\\]\\\\*]+)?[\\\\w\\\\*\\\\.]+(?:\\\\[(?:[^\\\\]]+)\\\\])?(?:[\\\\w\\\\.\\\\*]+)?)+)))"},{"begin":"(?:([\\\\w\\\\.\\\\*]+)?(\\\\[))","beginCaptures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]},"2":{"name":"punctuation.definition.begin.bracket.square.go"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.square.go"}},"patterns":[{"include":"#generic_param_types"}]},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#function_param_types"}]},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"other types","match":"([\\\\w\\\\.]+)"},{"include":"$self"}]},"functions":{"begin":"(?:(\\\\bfunc\\\\b)(?=\\\\())","beginCaptures":{"1":{"name":"keyword.function.go"}},"comment":"Functions","end":"(?:(?<=\\\\))(\\\\s*(?:(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+)?((?:(?:\\\\s*(?:(?:[\\\\[\\\\]\\\\*]+)?[\\\\w\\\\.\\\\*]+)?(?:(?:\\\\[(?:(?:[\\\\w\\\\.\\\\*]+)?(?:\\\\[(?:[^\\\\]]+)?\\\\])?(?:\\\\,\\\\s+)?)+\\\\])|(?:\\\\((?:[^\\\\)]+)?\\\\)))?(?:[\\\\w\\\\.\\\\*]+)?)(?:\\\\s*)(?=\\\\{))|(?:\\\\s*(?:(?:(?:[\\\\[\\\\]\\\\*]+)?(?!\\\\bfunc\\\\b)(?:[\\\\w\\\\.\\\\*]+)(?:\\\\[(?:(?:[\\\\w\\\\.\\\\*]+)?(?:\\\\[(?:[^\\\\]]+)?\\\\])?(?:\\\\,\\\\s+)?)+\\\\])?(?:[\\\\w\\\\.\\\\*]+)?)|(?:\\\\((?:[^\\\\)]+)?\\\\)))))?)","endCaptures":{"1":{"patterns":[{"include":"#type-declarations"}]},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"patterns":[{"include":"#parameter-variable-types"}]},"functions_inline":{"captures":{"1":{"name":"keyword.function.go"},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#function_param_types"},{"include":"$self"}]},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\{","name":"punctuation.definition.begin.bracket.curly.go"},{"match":"\\\\}","name":"punctuation.definition.end.bracket.curly.go"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"functions in-line with multi return types","match":"(?:(\\\\bfunc\\\\b)((?:\\\\((?:[^/]*?)\\\\))(?:\\\\s+)(?:\\\\((?:[^/]*?)\\\\)))(?:\\\\s+)(?=\\\\{))"},"generic_param_types":{"comment":"generic parameter variables and types","patterns":[{"include":"#struct_variables_types"},{"include":"#interface_variables_types"},{"include":"#type-declarations-without-brackets"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.parameter.go"}]}},"comment":"struct/interface type declaration","match":"((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)?\\\\b\\\\w+)\\\\s+(?=(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+)?(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|interface)\\\\b\\\\s*\\\\{)"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.parameter.go"}]}},"comment":"multiple parameters one type -with multilines","match":"(?:(?:(?<=\\\\()|^\\\\s*)((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)(?:/(?:/|\\\\*).*)?)$)"},{"captures":{"1":{"patterns":[{"include":"#delimiters"},{"match":"\\\\w+","name":"variable.parameter.go"}]},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]},"3":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"multiple params and types | multiple types one param","match":"(?:((?:(?:\\\\b\\\\w+\\\\,\\\\s*)+)?\\\\b\\\\w+)(?:\\\\s+)((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+)?(?:(?:(?:[\\\\w\\\\[\\\\]\\\\.\\\\*]+)?(?:(?:\\\\bfunc\\\\b\\\\((?:[^\\\\)]+)?\\\\))(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+)?(?:\\\\s*))+(?:(?:(?:[\\\\w\\\\*\\\\.]+)|(?:\\\\((?:[^\\\\)]+)?\\\\))))?)|(?:(?:(?:[\\\\w\\\\*\\\\.\\\\~]+)|(?:\\\\[(?:(?:[\\\\w\\\\.\\\\*]+)?(?:\\\\[(?:[^\\\\]]+)?\\\\])?(?:\\\\,\\\\s+)?)+\\\\]))(?:[\\\\w\\\\.\\\\*]+)?)+)))"},{"begin":"(?:([\\\\w\\\\.\\\\*]+)?(\\\\[))","beginCaptures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]},"2":{"name":"punctuation.definition.begin.bracket.square.go"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.square.go"}},"patterns":[{"include":"#generic_param_types"}]},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#function_param_types"}]},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"other types","match":"(?:\\\\b([\\\\w\\\\.]+))"},{"include":"$self"}]},"generic_types":{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"}]},"2":{"patterns":[{"include":"#parameter-variable-types"}]}},"comment":"Generic support for all types","match":"(?:([\\\\w\\\\.\\\\*]+)(\\\\[(?:[^\\\\]]+)?\\\\]))"},"group-functions":{"comment":"all statements related to functions","patterns":[{"include":"#function_declaration"},{"include":"#functions_inline"},{"include":"#functions"},{"include":"#built_in_functions"},{"include":"#support_functions"}]},"group-types":{"comment":"all statements related to types","patterns":[{"include":"#other_struct_interface_expressions"},{"include":"#type_assertion_inline"},{"include":"#struct_variables_types"},{"include":"#interface_variables_types"},{"include":"#single_type"},{"include":"#multi_types"},{"include":"#struct_interface_declaration"},{"include":"#double_parentheses_types"},{"include":"#switch_types"},{"include":"#type-declarations"}]},"group-variables":{"comment":"all statements related to variables","patterns":[{"include":"#const_assignment"},{"include":"#var_assignment"},{"include":"#variable_assignment"},{"include":"#label_loop_variables"},{"include":"#slice_index_variables"},{"include":"#property_variables"},{"include":"#switch_select_case_variables"},{"include":"#other_variables"}]},"import":{"comment":"import","patterns":[{"begin":"\\\\b(import)\\\\s+","beginCaptures":{"1":{"name":"keyword.control.import.go"}},"comment":"import","end":"(?!\\\\G)","patterns":[{"include":"#imports"}]}]},"imports":{"comment":"import package(s)","patterns":[{"captures":{"1":{"patterns":[{"include":"#delimiters"},{"match":"(?:\\\\w+)","name":"variable.other.import.go"}]},"2":{"name":"string.quoted.double.go"},"3":{"name":"punctuation.definition.string.begin.go"},"4":{"name":"entity.name.import.go"},"5":{"name":"punctuation.definition.string.end.go"}},"match":"(\\\\s*[\\\\w\\\\.]+)?\\\\s*((\\")([^\\"]*)(\\"))"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.imports.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.imports.end.bracket.round.go"}},"patterns":[{"include":"#comments"},{"include":"#imports"}]},{"include":"$self"}]},"interface_variables_types":{"begin":"(\\\\binterface\\\\b)\\\\s*(\\\\{)","beginCaptures":{"1":{"name":"keyword.interface.go"},"2":{"name":"punctuation.definition.begin.bracket.curly.go"}},"comment":"interface variable types","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.curly.go"}},"patterns":[{"include":"#interface_variables_types_field"},{"include":"$self"}]},"interface_variables_types_field":{"comment":"interface variable type fields","patterns":[{"include":"#support_functions"},{"include":"#type-declarations-without-brackets"},{"begin":"(?:([\\\\w\\\\.\\\\*]+)?(\\\\[))","beginCaptures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]},"2":{"name":"punctuation.definition.begin.bracket.square.go"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.square.go"}},"patterns":[{"include":"#generic_param_types"}]},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.go"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#function_param_types"}]},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"other types","match":"([\\\\w\\\\.]+)"}]},"keywords":{"patterns":[{"comment":"Flow control keywords","match":"\\\\b(break|case|continue|default|defer|else|fallthrough|for|go|goto|if|range|return|select|switch)\\\\b","name":"keyword.control.go"},{"match":"\\\\bchan\\\\b","name":"keyword.channel.go"},{"match":"\\\\bconst\\\\b","name":"keyword.const.go"},{"match":"\\\\bvar\\\\b","name":"keyword.var.go"},{"match":"\\\\bfunc\\\\b","name":"keyword.function.go"},{"match":"\\\\binterface\\\\b","name":"keyword.interface.go"},{"match":"\\\\bmap\\\\b","name":"keyword.map.go"},{"match":"\\\\bstruct\\\\b","name":"keyword.struct.go"},{"match":"\\\\bimport\\\\b","name":"keyword.control.import.go"},{"match":"\\\\btype\\\\b","name":"keyword.type.go"}]},"label_loop_variables":{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.label.go"}]}},"comment":"labeled loop variable name","match":"((?:^\\\\s*\\\\w+:\\\\s*$)|(?:^\\\\s*(?:\\\\bbreak\\\\b|\\\\bgoto\\\\b|\\\\bcontinue\\\\b)\\\\s+\\\\w+(?:\\\\s*/(?:/|\\\\*)\\\\s*.*)?$))"},"language_constants":{"captures":{"1":{"name":"constant.language.boolean.go"},"2":{"name":"constant.language.null.go"},"3":{"name":"constant.language.iota.go"}},"comment":"Language constants","match":"\\\\b(?:(true|false)|(nil)|(iota))\\\\b"},"map_types":{"begin":"(?:(\\\\bmap\\\\b)(\\\\[))","beginCaptures":{"1":{"name":"keyword.map.go"},"2":{"name":"punctuation.definition.begin.bracket.square.go"}},"comment":"map types","end":"(?:(\\\\])((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+)?(?!(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:func|struct|map)\\\\b)(?:[\\\\*\\\\[\\\\]]+)?(?:[\\\\w\\\\.]+)(?:\\\\[(?:(?:[\\\\w\\\\.\\\\*\\\\[\\\\]\\\\{\\\\}]+)(?:(?:\\\\,\\\\s*(?:[\\\\w\\\\.\\\\*\\\\[\\\\]\\\\{\\\\}]+))*))?\\\\])?)?)","endCaptures":{"1":{"name":"punctuation.definition.end.bracket.square.go"},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"include":"#functions"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\{","name":"punctuation.definition.begin.bracket.curly.go"},{"match":"\\\\}","name":"punctuation.definition.end.bracket.curly.go"},{"match":"\\\\(","name":"punctuation.definition.begin.bracket.round.go"},{"match":"\\\\)","name":"punctuation.definition.end.bracket.round.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]},"multi_types":{"begin":"(\\\\btype\\\\b)\\\\s*(\\\\()","beginCaptures":{"1":{"name":"keyword.type.go"},"2":{"name":"punctuation.definition.begin.bracket.round.go"}},"comment":"multi type declaration","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#struct_variables_types"},{"include":"#interface_variables_types"},{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]},"numeric_literals":{"captures":{"0":{"patterns":[{"begin":"(?=.)","end":"(?:\\\\n|$)","patterns":[{"captures":{"1":{"name":"constant.numeric.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"2":{"name":"punctuation.separator.constant.numeric.go"},"3":{"name":"constant.numeric.decimal.point.go"},"4":{"name":"constant.numeric.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"5":{"name":"punctuation.separator.constant.numeric.go"},"6":{"name":"keyword.other.unit.exponent.decimal.go"},"7":{"name":"keyword.operator.plus.exponent.decimal.go"},"8":{"name":"keyword.operator.minus.exponent.decimal.go"},"9":{"name":"constant.numeric.exponent.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"10":{"name":"keyword.other.unit.imaginary.go"},"11":{"name":"constant.numeric.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"12":{"name":"punctuation.separator.constant.numeric.go"},"13":{"name":"keyword.other.unit.exponent.decimal.go"},"14":{"name":"keyword.operator.plus.exponent.decimal.go"},"15":{"name":"keyword.operator.minus.exponent.decimal.go"},"16":{"name":"constant.numeric.exponent.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"17":{"name":"keyword.other.unit.imaginary.go"},"18":{"name":"constant.numeric.decimal.point.go"},"19":{"name":"constant.numeric.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"20":{"name":"punctuation.separator.constant.numeric.go"},"21":{"name":"keyword.other.unit.exponent.decimal.go"},"22":{"name":"keyword.operator.plus.exponent.decimal.go"},"23":{"name":"keyword.operator.minus.exponent.decimal.go"},"24":{"name":"constant.numeric.exponent.decimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"25":{"name":"keyword.other.unit.imaginary.go"},"26":{"name":"keyword.other.unit.hexadecimal.go"},"27":{"name":"constant.numeric.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"28":{"name":"punctuation.separator.constant.numeric.go"},"29":{"name":"constant.numeric.hexadecimal.go"},"30":{"name":"constant.numeric.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"31":{"name":"punctuation.separator.constant.numeric.go"},"32":{"name":"keyword.other.unit.exponent.hexadecimal.go"},"33":{"name":"keyword.operator.plus.exponent.hexadecimal.go"},"34":{"name":"keyword.operator.minus.exponent.hexadecimal.go"},"35":{"name":"constant.numeric.exponent.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"36":{"name":"keyword.other.unit.imaginary.go"},"37":{"name":"keyword.other.unit.hexadecimal.go"},"38":{"name":"constant.numeric.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"39":{"name":"punctuation.separator.constant.numeric.go"},"40":{"name":"keyword.other.unit.exponent.hexadecimal.go"},"41":{"name":"keyword.operator.plus.exponent.hexadecimal.go"},"42":{"name":"keyword.operator.minus.exponent.hexadecimal.go"},"43":{"name":"constant.numeric.exponent.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"44":{"name":"keyword.other.unit.imaginary.go"},"45":{"name":"keyword.other.unit.hexadecimal.go"},"46":{"name":"constant.numeric.hexadecimal.go"},"47":{"name":"constant.numeric.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"48":{"name":"punctuation.separator.constant.numeric.go"},"49":{"name":"keyword.other.unit.exponent.hexadecimal.go"},"50":{"name":"keyword.operator.plus.exponent.hexadecimal.go"},"51":{"name":"keyword.operator.minus.exponent.hexadecimal.go"},"52":{"name":"constant.numeric.exponent.hexadecimal.go","patterns":[{"match":"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.go"}]},"53":{"name":"keyword.other.unit.imaginary.go"}},"match":"(?:(?:(?:(?:(?:\\\\G(?=[0-9.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?<=[0-9])\\\\.|\\\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?(?:(?=|<(?!<)|>(?!>))","name":"keyword.operator.comparison.go"},{"match":"(&&|\\\\|\\\\||!)","name":"keyword.operator.logical.go"},{"match":"(=|\\\\+=|\\\\-=|\\\\|=|\\\\^=|\\\\*=|/=|:=|%=|<<=|>>=|&\\\\^=|&=)","name":"keyword.operator.assignment.go"},{"match":"(\\\\+|\\\\-|\\\\*|/|%)","name":"keyword.operator.arithmetic.go"},{"match":"(&(?!\\\\^)|\\\\||\\\\^|&\\\\^|<<|>>|\\\\~)","name":"keyword.operator.arithmetic.bitwise.go"},{"match":"\\\\.\\\\.\\\\.","name":"keyword.operator.ellipsis.go"}]},"other_struct_interface_expressions":{"comment":"struct and interface expression in-line (before curly bracket)","patterns":[{"comment":"after control variables must be added exactly here, do not move it! (changing may not affect tests, so be careful!)","include":"#after_control_variables"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"}]},"2":{"patterns":[{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.square.go"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.square.go"}},"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"},{"include":"$self"}]}]}},"match":"(\\\\b[\\\\w\\\\.]+)(\\\\[(?:[^\\\\]]+)?\\\\])?(?=\\\\{)(?\\\\|\\\\&]+\\\\:)|(?:\\\\:\\\\b[\\\\w\\\\.\\\\*\\\\+/\\\\-\\\\%\\\\<\\\\>\\\\|\\\\&]+))(?:\\\\b[\\\\w\\\\.\\\\*\\\\+/\\\\-\\\\%\\\\<\\\\>\\\\|\\\\&]+)?(?:\\\\:\\\\b[\\\\w\\\\.\\\\*\\\\+/\\\\-\\\\%\\\\<\\\\>\\\\|\\\\&]+)?)(?=\\\\])"},"statements":{"patterns":[{"include":"#package_name"},{"include":"#import"},{"include":"#syntax_errors"},{"include":"#group-functions"},{"include":"#group-types"},{"include":"#group-variables"},{"include":"#field_hover"}]},"storage_types":{"patterns":[{"match":"\\\\bbool\\\\b","name":"storage.type.boolean.go"},{"match":"\\\\bbyte\\\\b","name":"storage.type.byte.go"},{"match":"\\\\berror\\\\b","name":"storage.type.error.go"},{"match":"\\\\b(complex(64|128)|float(32|64)|u?int(8|16|32|64)?)\\\\b","name":"storage.type.numeric.go"},{"match":"\\\\brune\\\\b","name":"storage.type.rune.go"},{"match":"\\\\bstring\\\\b","name":"storage.type.string.go"},{"match":"\\\\buintptr\\\\b","name":"storage.type.uintptr.go"},{"match":"\\\\bany\\\\b","name":"entity.name.type.any.go"}]},"string_escaped_char":{"patterns":[{"match":"\\\\\\\\([0-7]{3}|[abfnrtv\\\\\\\\'\\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})","name":"constant.character.escape.go"},{"match":"\\\\\\\\[^0-7xuUabfnrtv\\\\'\\"]","name":"invalid.illegal.unknown-escape.go"}]},"string_literals":{"patterns":[{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.go"}},"comment":"Interpreted string literals","end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.go"}},"name":"string.quoted.double.go","patterns":[{"include":"#string_escaped_char"},{"include":"#string_placeholder"}]}]},"string_placeholder":{"patterns":[{"match":"%(\\\\[\\\\d+\\\\])?([\\\\+#\\\\-0\\\\x20]{,2}((\\\\d+|\\\\*)?(\\\\.?(\\\\d+|\\\\*|(\\\\[\\\\d+\\\\])\\\\*?)?(\\\\[\\\\d+\\\\])?)?))?[vT%tbcdoqxXUbeEfFgGspw]","name":"constant.other.placeholder.go"}]},"struct_interface_declaration":{"captures":{"1":{"name":"keyword.type.go"},"2":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"struct, interface type declarations (related to: struct_variables_types, interface_variables_types)","match":"(?:(?:^\\\\s*)(\\\\btype\\\\b)(?:\\\\s*)([\\\\w\\\\.]+))"},"struct_variable_types_fields_multi":{"comment":"struct variable and type fields with multi lines","patterns":[{"begin":"(?:((?:\\\\w+(?:\\\\,\\\\s*\\\\w+)*)(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+)?(?:\\\\s+)(?:[\\\\[\\\\]\\\\*]+)?)(\\\\bstruct\\\\b)(?:\\\\s*)(\\\\{))","beginCaptures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.property.go"}]},"2":{"name":"keyword.struct.go"},"3":{"name":"punctuation.definition.begin.bracket.curly.go"}},"comment":"struct in struct types","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.curly.go"}},"patterns":[{"include":"#struct_variables_types_fields"},{"include":"$self"}]},{"begin":"(?:((?:\\\\w+(?:\\\\,\\\\s*\\\\w+)*)(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+)?(?:\\\\s+)(?:[\\\\[\\\\]\\\\*]+)?)(\\\\binterface\\\\b)(?:\\\\s*)(\\\\{))","beginCaptures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.property.go"}]},"2":{"name":"keyword.interface.go"},"3":{"name":"punctuation.definition.begin.bracket.curly.go"}},"comment":"interface in struct types","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.curly.go"}},"patterns":[{"include":"#interface_variables_types_field"},{"include":"$self"}]},{"begin":"(?:((?:\\\\w+(?:\\\\,\\\\s*\\\\w+)*)(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+)?(?:\\\\s+)(?:[\\\\[\\\\]\\\\*]+)?)(\\\\bfunc\\\\b)(?:\\\\s*)(\\\\())","beginCaptures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.property.go"}]},"2":{"name":"keyword.function.go"},"3":{"name":"punctuation.definition.begin.bracket.round.go"}},"comment":"function in struct types","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"include":"#function_param_types"},{"include":"$self"}]},{"include":"#parameter-variable-types"}]},"struct_variables_types":{"begin":"(\\\\bstruct\\\\b)\\\\s*(\\\\{)","beginCaptures":{"1":{"name":"keyword.struct.go"},"2":{"name":"punctuation.definition.begin.bracket.curly.go"}},"comment":"Struct variable type","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.curly.go"}},"patterns":[{"include":"#struct_variables_types_fields"},{"include":"$self"}]},"struct_variables_types_fields":{"comment":"Struct variable type fields","patterns":[{"include":"#struct_variable_types_fields_multi"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"one line - single type","match":"(?:(?<=\\\\{)\\\\s*((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+)?(?:[\\\\w\\\\.\\\\*\\\\[\\\\]]+))\\\\s*(?=\\\\}))"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"variable.other.property.go"}]},"2":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"one line - property variables and types","match":"(?:(?<=\\\\{)\\\\s*((?:(?:\\\\w+\\\\,\\\\s*)+)?(?:\\\\w+\\\\s+))((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+)?(?:[\\\\w\\\\.\\\\*\\\\[\\\\]]+))\\\\s*(?=\\\\}))"},{"captures":{"1":{"patterns":[{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"variable.other.property.go"}]},"2":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"match":"(?:((?:(?:\\\\w+\\\\,\\\\s*)+)?(?:\\\\w+\\\\s+))?((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+)?(?:[\\\\S]+)(?:\\\\;)?))"}]}},"comment":"one line with semicolon(;) without formatting gofmt - single type | property variables and types","match":"(?:(?<=\\\\{)((?:\\\\s*(?:(?:(?:\\\\w+\\\\,\\\\s*)+)?(?:\\\\w+\\\\s+))?(?:(?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+)?(?:[\\\\S]+)(?:\\\\;)?))+)\\\\s*(?=\\\\}))"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"one type only","match":"(?:((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+)?(?:[\\\\w\\\\.\\\\*]+)\\\\s*)(?:(?=\\\\\`|\\\\/|\\")|$))"},{"captures":{"1":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"variable.other.property.go"}]},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#parameter-variable-types"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"property variables and types","match":"(?:((?:(?:\\\\w+\\\\,\\\\s*)+)?(?:\\\\w+\\\\s+))([^\\\\\`\\"\\\\/]+))"}]},"support_functions":{"captures":{"1":{"name":"entity.name.function.support.go"},"2":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\d\\\\w*","name":"invalid.illegal.identifier.go"},{"match":"\\\\w+","name":"entity.name.function.support.go"}]},"3":{"patterns":[{"include":"#type-declarations-without-brackets"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\{","name":"punctuation.definition.begin.bracket.curly.go"},{"match":"\\\\}","name":"punctuation.definition.end.bracket.curly.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"Support Functions","match":"(?:(?:((?<=\\\\.)\\\\b\\\\w+)|(\\\\b\\\\w+))(\\\\[(?:(?:[\\\\w\\\\.\\\\*\\\\[\\\\]\\\\{\\\\}\\"\\\\']+)(?:(?:\\\\,\\\\s*(?:[\\\\w\\\\.\\\\*\\\\[\\\\]\\\\{\\\\}]+))*))?\\\\])?(?=\\\\())"},"switch_select_case_variables":{"captures":{"1":{"name":"keyword.control.go"},"2":{"patterns":[{"include":"#type-declarations"},{"include":"#support_functions"},{"include":"#variable_assignment"},{"match":"\\\\w+","name":"variable.other.go"}]}},"comment":"variables after case control keyword in switch/select expression, to not scope them as property variables","match":"(?:(?:^\\\\s*(\\\\bcase\\\\b))(?:\\\\s+)([\\\\s\\\\S]+(?:\\\\:)\\\\s*(?:/(?:/|\\\\*).*)?)$)"},"switch_types":{"begin":"(?<=\\\\bswitch\\\\b)(?:\\\\s*)(?:(\\\\w+\\\\s*\\\\:\\\\=)?\\\\s*([\\\\w\\\\.\\\\*\\\\(\\\\)\\\\[\\\\]\\\\+/\\\\-\\\\%\\\\<\\\\>\\\\|\\\\&]+))(\\\\.\\\\(\\\\btype\\\\b\\\\)\\\\s*)(\\\\{)","beginCaptures":{"1":{"patterns":[{"include":"#operators"},{"match":"\\\\w+","name":"variable.other.assignment.go"}]},"2":{"patterns":[{"include":"#support_functions"},{"include":"#type-declarations"},{"match":"\\\\w+","name":"variable.other.go"}]},"3":{"patterns":[{"include":"#delimiters"},{"include":"#brackets"},{"match":"\\\\btype\\\\b","name":"keyword.type.go"}]},"4":{"name":"punctuation.definition.begin.bracket.curly.go"}},"comment":"switch type assertions, only highlights types after case keyword","end":"(?:\\\\})","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.curly.go"}},"patterns":[{"captures":{"1":{"name":"keyword.control.go"},"2":{"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"}]},"3":{"name":"punctuation.other.colon.go"},"4":{"patterns":[{"include":"#comments"}]}},"comment":"types after case keyword with single line","match":"(?:^\\\\s*(\\\\bcase\\\\b))(?:\\\\s+)([\\\\w\\\\.\\\\,\\\\*\\\\=\\\\<\\\\>\\\\!\\\\s]+)(:)(\\\\s*/(?:/|\\\\*)\\\\s*.*)?$"},{"begin":"\\\\bcase\\\\b","beginCaptures":{"0":{"name":"keyword.control.go"}},"comment":"types after case keyword with multi lines","end":"\\\\:","endCaptures":{"0":{"name":"punctuation.other.colon.go"}},"patterns":[{"include":"#type-declarations"},{"match":"\\\\w+","name":"entity.name.type.go"}]},{"include":"$self"}]},"syntax_errors":{"patterns":[{"captures":{"1":{"name":"invalid.illegal.slice.go"}},"comment":"Syntax error using slices","match":"\\\\[\\\\](\\\\s+)"},{"comment":"Syntax error numeric literals","match":"\\\\b0[0-7]*[89]\\\\d*\\\\b","name":"invalid.illegal.numeric.go"}]},"terminators":{"comment":"Terminators","match":";","name":"punctuation.terminator.go"},"type-declarations":{"comment":"includes all type declarations","patterns":[{"include":"#language_constants"},{"include":"#comments"},{"include":"#map_types"},{"include":"#brackets"},{"include":"#delimiters"},{"include":"#keywords"},{"include":"#operators"},{"include":"#runes"},{"include":"#storage_types"},{"include":"#raw_string_literals"},{"include":"#string_literals"},{"include":"#numeric_literals"},{"include":"#terminators"}]},"type-declarations-without-brackets":{"comment":"includes all type declarations without brackets (in some cases, brackets need to be captured manually)","patterns":[{"include":"#language_constants"},{"include":"#comments"},{"include":"#map_types"},{"include":"#delimiters"},{"include":"#keywords"},{"include":"#operators"},{"include":"#runes"},{"include":"#storage_types"},{"include":"#raw_string_literals"},{"include":"#string_literals"},{"include":"#numeric_literals"},{"include":"#terminators"}]},"type_assertion_inline":{"captures":{"1":{"name":"keyword.type.go"},"2":{"patterns":[{"include":"#type-declarations"},{"match":"(?:\\\\w+)","name":"entity.name.type.go"}]}},"comment":"struct/interface types in-line (type assertion) | switch type keyword","match":"(?:(?<=\\\\.\\\\()(?:(\\\\btype\\\\b)|((?:(?:\\\\s*(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+)?[\\\\w\\\\.\\\\[\\\\]\\\\*]+))(?=\\\\)))"},"var_assignment":{"comment":"variable assignment with var keyword","patterns":[{"captures":{"1":{"patterns":[{"include":"#delimiters"},{"match":"\\\\w+","name":"variable.other.assignment.go"}]},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#generic_types"},{"match":"\\\\(","name":"punctuation.definition.begin.bracket.round.go"},{"match":"\\\\)","name":"punctuation.definition.end.bracket.round.go"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"comment":"single assignment","match":"(?:(?<=\\\\bvar\\\\b)(?:\\\\s*)(\\\\b[\\\\w\\\\.]+(?:\\\\,\\\\s*[\\\\w\\\\.]+)*)(?:\\\\s*)((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+(?:\\\\([^\\\\)]+\\\\))?)?(?!(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|func|map)\\\\b)(?:[\\\\w\\\\.\\\\[\\\\]\\\\*]+(?:\\\\,\\\\s*[\\\\w\\\\.\\\\[\\\\]\\\\*]+)*)?(?:\\\\s*)(?:\\\\=)?)?)"},{"begin":"(?:(?<=\\\\bvar\\\\b)(?:\\\\s*)(\\\\())","beginCaptures":{"1":{"name":"punctuation.definition.begin.bracket.round.go"}},"comment":"multi assignment","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.go"}},"patterns":[{"captures":{"1":{"patterns":[{"include":"#delimiters"},{"match":"\\\\w+","name":"variable.other.assignment.go"}]},"2":{"patterns":[{"include":"#type-declarations-without-brackets"},{"include":"#generic_types"},{"match":"\\\\(","name":"punctuation.definition.begin.bracket.round.go"},{"match":"\\\\)","name":"punctuation.definition.end.bracket.round.go"},{"match":"\\\\[","name":"punctuation.definition.begin.bracket.square.go"},{"match":"\\\\]","name":"punctuation.definition.end.bracket.square.go"},{"match":"\\\\w+","name":"entity.name.type.go"}]}},"match":"(?:(?:^\\\\s*)(\\\\b[\\\\w\\\\.]+(?:\\\\,\\\\s*[\\\\w\\\\.]+)*)(?:\\\\s*)((?:(?:(?:[\\\\*\\\\[\\\\]]+)?(?:\\\\<\\\\-\\\\s*)?\\\\bchan\\\\b(?:\\\\s*\\\\<\\\\-)?\\\\s*)+(?:\\\\([^\\\\)]+\\\\))?)?(?!(?:[\\\\[\\\\]\\\\*]+)?\\\\b(?:struct|func|map)\\\\b)(?:[\\\\w\\\\.\\\\[\\\\]\\\\*]+(?:\\\\,\\\\s*[\\\\w\\\\.\\\\[\\\\]\\\\*]+)*)?(?:\\\\s*)(?:\\\\=)?)?)"},{"include":"$self"}]}]},"variable_assignment":{"comment":"variable assignment","patterns":[{"captures":{"0":{"patterns":[{"include":"#delimiters"},{"match":"\\\\d\\\\w*","name":"invalid.illegal.identifier.go"},{"match":"\\\\w+","name":"variable.other.assignment.go"}]}},"comment":"variable assignment with :=","match":"\\\\b\\\\w+(?:\\\\,\\\\s*\\\\w+)*(?=\\\\s*:=)"},{"captures":{"0":{"patterns":[{"include":"#delimiters"},{"include":"#operators"},{"match":"\\\\d\\\\w*","name":"invalid.illegal.identifier.go"},{"match":"\\\\w+","name":"variable.other.assignment.go"}]}},"comment":"variable assignment with =","match":"\\\\b[\\\\w\\\\.\\\\*]+(?:\\\\,\\\\s*[\\\\w\\\\.\\\\*]+)*(?=\\\\s*=(?!=))"}]}},"scopeName":"source.go"}`)),t=[e];export{t as default}; ================================================ FILE: jesse/static/_nuxt/B1bQXN8T.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"Raku","name":"raku","patterns":[{"begin":"^=begin","end":"^=end","name":"comment.block.perl"},{"begin":"(^[ \\\\t]+)?(?=#)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.perl"}},"end":"(?!\\\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.perl"}},"end":"\\\\n","name":"comment.line.number-sign.perl"}]},{"captures":{"1":{"name":"storage.type.class.perl.6"},"3":{"name":"entity.name.type.class.perl.6"}},"match":"(class|enum|grammar|knowhow|module|package|role|slang|subset)(\\\\s+)(((?:::|')?(?:([a-zA-Z_\\\\x{C0}-\\\\x{FF}\\\\$])([a-zA-Z0-9_\\\\x{C0}-\\\\x{FF}\\\\\\\\$]|[\\\\-'][a-zA-Z0-9_\\\\x{C0}-\\\\x{FF}\\\\$])*))+)","name":"meta.class.perl.6"},{"begin":"(?<=\\\\s)'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.quoted.single.perl","patterns":[{"match":"\\\\\\\\['\\\\\\\\]","name":"constant.character.escape.perl"}]},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.perl"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.perl"}},"name":"string.quoted.double.perl","patterns":[{"match":"\\\\\\\\[abtnfre\\"\\\\\\\\]","name":"constant.character.escape.perl"}]},{"begin":"q(q|to|heredoc)*\\\\s*:?(q|to|heredoc)*\\\\s*/(.+)/","end":"\\\\3","name":"string.quoted.single.heredoc.perl"},{"begin":"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\s*{{","end":"}}","name":"string.quoted.double.heredoc.brace.perl","patterns":[{"include":"#qq_brace_string_content"}]},{"begin":"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\s*\\\\(\\\\(","end":"\\\\)\\\\)","name":"string.quoted.double.heredoc.paren.perl","patterns":[{"include":"#qq_paren_string_content"}]},{"begin":"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\s*\\\\[\\\\[","end":"\\\\]\\\\]","name":"string.quoted.double.heredoc.bracket.perl","patterns":[{"include":"#qq_bracket_string_content"}]},{"begin":"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\s*{","end":"}","name":"string.quoted.single.heredoc.brace.perl","patterns":[{"include":"#qq_brace_string_content"}]},{"begin":"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\s*/","end":"/","name":"string.quoted.single.heredoc.slash.perl","patterns":[{"include":"#qq_slash_string_content"}]},{"begin":"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\s*\\\\(","end":"\\\\)","name":"string.quoted.single.heredoc.paren.perl","patterns":[{"include":"#qq_paren_string_content"}]},{"begin":"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\s*\\\\[","end":"\\\\]","name":"string.quoted.single.heredoc.bracket.perl","patterns":[{"include":"#qq_bracket_string_content"}]},{"begin":"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\s*'","end":"'","name":"string.quoted.single.heredoc.single.perl","patterns":[{"include":"#qq_single_string_content"}]},{"begin":"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\s*\\"","end":"\\"","name":"string.quoted.single.heredoc.double.perl","patterns":[{"include":"#qq_double_string_content"}]},{"match":"\\\\b\\\\$\\\\w+\\\\b","name":"variable.other.perl"},{"match":"\\\\b(macro|sub|submethod|method|multi|proto|only|rule|token|regex|category)\\\\b","name":"storage.type.declare.routine.perl"},{"match":"\\\\b(self)\\\\b","name":"variable.language.perl"},{"match":"\\\\b(use|require)\\\\b","name":"keyword.other.include.perl"},{"match":"\\\\b(if|else|elsif|unless)\\\\b","name":"keyword.control.conditional.perl"},{"match":"\\\\b(let|my|our|state|temp|has|constant)\\\\b","name":"storage.type.variable.perl"},{"match":"\\\\b(for|loop|repeat|while|until|gather|given)\\\\b","name":"keyword.control.repeat.perl"},{"match":"\\\\b(take|do|when|next|last|redo|return|contend|maybe|defer|default|exit|make|continue|break|goto|leave|async|lift)\\\\b","name":"keyword.control.flowcontrol.perl"},{"match":"\\\\b(is|as|but|trusts|of|returns|handles|where|augment|supersede)\\\\b","name":"storage.modifier.type.constraints.perl"},{"match":"\\\\b(BEGIN|CHECK|INIT|START|FIRST|ENTER|LEAVE|KEEP|UNDO|NEXT|LAST|PRE|POST|END|CATCH|CONTROL|TEMP)\\\\b","name":"meta.function.perl"},{"match":"\\\\b(die|fail|try|warn)\\\\b","name":"keyword.control.control-handlers.perl"},{"match":"\\\\b(prec|irs|ofs|ors|export|deep|binary|unary|reparsed|rw|parsed|cached|readonly|defequiv|will|ref|copy|inline|tighter|looser|equiv|assoc|required)\\\\b","name":"storage.modifier.perl"},{"match":"\\\\b(NaN|Inf)\\\\b","name":"constant.numeric.perl"},{"match":"\\\\b(oo|fatal)\\\\b","name":"keyword.other.pragma.perl"},{"match":"\\\\b(Object|Any|Junction|Whatever|Capture|MatchSignature|Proxy|Matcher|Package|Module|ClassGrammar|Scalar|Array|Hash|KeyHash|KeySet|KeyBagPair|List|Seq|Range|Set|Bag|Mapping|Void|UndefFailure|Exception|Code|Block|Routine|Sub|MacroMethod|Submethod|Regex|Str|str|Blob|Char|ByteCodepoint|Grapheme|StrPos|StrLen|Version|NumComplex|num|complex|Bit|bit|bool|True|FalseIncreasing|Decreasing|Ordered|Callable|AnyCharPositional|Associative|Ordering|KeyExtractorComparator|OrderingPair|IO|KitchenSink|RoleInt|int|int1|int2|int4|int8|int16|int32|int64Rat|rat|rat1|rat2|rat4|rat8|rat16|rat32|rat64Buf|buf|buf1|buf2|buf4|buf8|buf16|buf32|buf64UInt|uint|uint1|uint2|uint4|uint8|uint16|uint32uint64|Abstraction|utf8|utf16|utf32)\\\\b","name":"support.type.perl6"},{"match":"\\\\b(div|xx|x|mod|also|leg|cmp|before|after|eq|ne|le|lt|not|gt|ge|eqv|ff|fff|and|andthen|or|xor|orelse|extra|lcm|gcd)\\\\b","name":"keyword.operator.perl"},{"match":"(\\\\$|@|%|&)(\\\\*|:|!|\\\\^|~|=|\\\\?|(<(?=.+>)))?([a-zA-Z_\\\\x{C0}-\\\\x{FF}\\\\$])([a-zA-Z0-9_\\\\x{C0}-\\\\x{FF}\\\\$]|[\\\\-'][a-zA-Z0-9_\\\\x{C0}-\\\\x{FF}\\\\$])*","name":"variable.other.identifier.perl.6"},{"match":"\\\\b(eager|hyper|substr|index|rindex|grep|map|sort|join|lines|hints|chmod|split|reduce|min|max|reverse|truncate|zip|cat|roundrobin|classify|first|sum|keys|values|pairs|defined|delete|exists|elems|end|kv|any|all|one|wrap|shape|key|value|name|pop|push|shift|splice|unshift|floor|ceiling|abs|exp|log|log10|rand|sign|sqrt|sin|cos|tan|round|strand|roots|cis|unpolar|polar|atan2|pick|chop|p5chop|chomp|p5chomp|lc|lcfirst|uc|ucfirst|capitalize|normalize|pack|unpack|quotemeta|comb|samecase|sameaccent|chars|nfd|nfc|nfkd|nfkc|printf|sprintf|caller|evalfile|run|runinstead|nothing|want|bless|chr|ord|gmtime|time|eof|localtime|gethost|getpw|chroot|getlogin|getpeername|kill|fork|wait|perl|graphs|codes|bytes|clone|print|open|read|write|readline|say|seek|close|opendir|readdir|slurp|spurt|shell|run|pos|fmt|vec|link|unlink|symlink|uniq|pair|asin|atan|sec|cosec|cotan|asec|acosec|acotan|sinh|cosh|tanh|asinh|done|acos|acosh|atanh|sech|cosech|cotanh|sech|acosech|acotanh|asech|ok|nok|plan_ok|dies_ok|lives_ok|skip|todo|pass|flunk|force_todo|use_ok|isa_ok|diag|is_deeply|isnt|like|skip_rest|unlike|cmp_ok|eval_dies_ok|nok_error|eval_lives_ok|approx|is_approx|throws_ok|version_lt|plan|EVAL|succ|pred|times|nonce|once|signature|new|connect|operator|undef|undefine|sleep|from|to|infix|postfix|prefix|circumfix|postcircumfix|minmax|lazy|count|unwrap|getc|pi|e|context|void|quasi|body|each|contains|rewinddir|subst|can|isa|flush|arity|assuming|rewind|callwith|callsame|nextwith|nextsame|attr|eval_elsewhere|none|srand|trim|trim_start|trim_end|lastcall|WHAT|WHERE|HOW|WHICH|VAR|WHO|WHENCE|ACCEPTS|REJECTS|not|true|iterator|by|re|im|invert|flip|gist|flat|tree|is-prime|throws_like|trans)\\\\b","name":"support.function.perl"}],"repository":{"qq_brace_string_content":{"begin":"{","end":"}","patterns":[{"include":"#qq_brace_string_content"}]},"qq_bracket_string_content":{"begin":"\\\\[","end":"\\\\]","patterns":[{"include":"#qq_bracket_string_content"}]},"qq_double_string_content":{"begin":"\\"","end":"\\"","patterns":[{"include":"#qq_double_string_content"}]},"qq_paren_string_content":{"begin":"\\\\(","end":"\\\\)","patterns":[{"include":"#qq_paren_string_content"}]},"qq_single_string_content":{"begin":"'","end":"'","patterns":[{"include":"#qq_single_string_content"}]},"qq_slash_string_content":{"begin":"\\\\\\\\/","end":"\\\\\\\\/","patterns":[{"include":"#qq_slash_string_content"}]}},"scopeName":"source.perl.6","aliases":["perl6"]}`)),a=[e];export{a as default}; ================================================ FILE: jesse/static/_nuxt/B1vp6HhI.js ================================================ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./CMt9yHYq.js","./BMYPR7BL.js","./ySlJ1b_l.js","./BPhBrDlE.js","./Drsz93k2.js","./Bl1h29GH.js","./CGVVOGHx.js","./cPjAOO0u.js","./xI-RfyKK.js","./BQoSv7ci.js","./B-k3dvlD.js","./Dj6nwHGl.js","./B3ZDOciz.js","./CZe0XNBd.js","./COK4E0Yg.js","./Bu73EIfS.js","./BLhTXw86.js","./D8mZ0lfy.js","./DhUJRlN_.js","./BK9xJ97g.js","./DKOGybHv.js","./BEhvmC7f.js","./DWJ3fJO_.js","./COyJrUc7.js","./C3t2pwGQ.js","./CQ0soPOq.js","./atvbtKCR.js","./BsOYHjMa.js","./e4jU7D2d.js","./B5auBHZD.js","./BdxkyMLR.js","./UL5zprDm.js","./CYFUjXW1.js","./m4gc_qpA.js","./DjHMNizO.js","./BAng5TT0.js","./B6W0miNI.js","./Dbxjm_CC.js","./CVw76BM1.js","./DRNBmV_Q.js","./DKXYxT9g.js","./Dmy2k9nq.js","./UIAJJxZW.js","./BQwtg7Y-.js","./SKMF96pI.js","./DfxzS6Rs.js","./CKg9tqCS.js","./BgYniUM_.js","./CyIGOvEh.js","./C-wny61x.js","./C5Y8tDhP.js","./C30yJ1fx.js","./C0nbwVuJ.js","./din0uRiO.js","./YJb9dmdj.js","./C5wWYbrZ.js","./DPvbFsQx.js","./3kbuJQcV.js","./CsSk9TLD.js","./Bw0wYZmb.js","./CwjWoCRV.js","./DsWjAdsX.js","./qmhIZ77x.js","./BVr_1_27.js","./Cz8P-rqG.js","./BfCpw3nA.js","./BE9QQhgF.js","./9C6ErRqt.js","./D5pd2Owo.js","./C1tVc3UG.js","./HNqc6WRo.js","./DYvnoCeB.js","./Bid6LQhH.js","./CYgUR4L5.js","./D9R-vmeu.js","./CSp6iqVD.js","./DbXoA79R.js","./BiFfXF7O.js","./B14Poo8t.js","./ifBTmRxC.js","./BNHBcdi1.js","./qpfuy3xp.js","./SPD3sf1n.js","./BMR_PYu6.js","./R900dpIa.js","./BXW1EomU.js","./B2vK47Ag.js","./B1SYOhNW.js","./wI6OXr6j.js","./DDtJtuOZ.js","./DRhBOlRY.js","./BlxRB_8X.js","./ahYVQIuB.js"])))=>i.map(i=>d[i]); var Un=Object.defineProperty;var Gn=(e,t,u)=>t in e?Un(e,t,{enumerable:!0,configurable:!0,writable:!0,value:u}):e[t]=u;var b=(e,t,u)=>Gn(e,typeof t!="symbol"?t+"":t,u);import{bR as f,d as It,r as q,a as Hn,B as kr,w as yt,s as Ne,C as F,g as O,j as C,x as R,Q as Wn,c as Ce,e as he,E as se,F as Ee,O as we,i as T,z as Ar,f as L,q as V,G as U,au as Zn,a0 as me,t as vr,ar as Jn,ab as Cr,D as qt,_ as Kn,n as Yn,I as Qn,bS as Xn,k as ei,ac as ti}from"./CU_MfyYc.js";import{_ as ui}from"./DMFWKIsW.js";import{_ as Dr}from"./CqvT4tPC.js";import{_ as bu}from"./CvhZxjKo.js";import{S as ri}from"./BKENxkRn.js";import{_ as wr}from"./Cw4FHd9N.js";import{_ as Sr}from"./DZb6Dd70.js";import{_ as ni}from"./s0YP2YF7.js";import{u as ii}from"./Cwg39VG_.js";import"./9VOnL4Iz.js";const Tr=[{id:"abap",name:"ABAP",import:()=>f(()=>import("./DsBKuouk.js"),[],import.meta.url)},{id:"actionscript-3",name:"ActionScript",import:()=>f(()=>import("./D_z4Izcz.js"),[],import.meta.url)},{id:"ada",name:"Ada",import:()=>f(()=>import("./727ZlQH0.js"),[],import.meta.url)},{id:"angular-html",name:"Angular HTML",import:()=>f(()=>import("./CMt9yHYq.js").then(e=>e.f),__vite__mapDeps([0,1,2,3]),import.meta.url)},{id:"angular-ts",name:"Angular TypeScript",import:()=>f(()=>import("./Drsz93k2.js"),__vite__mapDeps([4,0,1,2,3,5]),import.meta.url)},{id:"apache",name:"Apache Conf",import:()=>f(()=>import("./Dn00JSTd.js"),[],import.meta.url)},{id:"apex",name:"Apex",import:()=>f(()=>import("./COJ4H7py.js"),[],import.meta.url)},{id:"apl",name:"APL",import:()=>f(()=>import("./CGVVOGHx.js"),__vite__mapDeps([6,1,2,3,7,8,9]),import.meta.url)},{id:"applescript",name:"AppleScript",import:()=>f(()=>import("./Bu5BbsvL.js"),[],import.meta.url)},{id:"ara",name:"Ara",import:()=>f(()=>import("./7O62HKoU.js"),[],import.meta.url)},{id:"asciidoc",name:"AsciiDoc",aliases:["adoc"],import:()=>f(()=>import("./BPT9niGB.js"),[],import.meta.url)},{id:"asm",name:"Assembly",import:()=>f(()=>import("./Dhn9LcZ4.js"),[],import.meta.url)},{id:"astro",name:"Astro",import:()=>f(()=>import("./B-k3dvlD.js"),__vite__mapDeps([10,9,2,11,3,12]),import.meta.url)},{id:"awk",name:"AWK",import:()=>f(()=>import("./eg146-Ew.js"),[],import.meta.url)},{id:"ballerina",name:"Ballerina",import:()=>f(()=>import("./Du268qiB.js"),[],import.meta.url)},{id:"bat",name:"Batch File",aliases:["batch"],import:()=>f(()=>import("./fje9CFhw.js"),[],import.meta.url)},{id:"beancount",name:"Beancount",import:()=>f(()=>import("./BwXTMy5W.js"),[],import.meta.url)},{id:"berry",name:"Berry",aliases:["be"],import:()=>f(()=>import("./3xVqZejG.js"),[],import.meta.url)},{id:"bibtex",name:"BibTeX",import:()=>f(()=>import("./xW4inM5L.js"),[],import.meta.url)},{id:"bicep",name:"Bicep",import:()=>f(()=>import("./DHo0CJ0O.js"),[],import.meta.url)},{id:"blade",name:"Blade",import:()=>f(()=>import("./CZe0XNBd.js"),__vite__mapDeps([13,1,2,3,7,8,14,9]),import.meta.url)},{id:"bsl",name:"1C (Enterprise)",aliases:["1c"],import:()=>f(()=>import("./Bu73EIfS.js"),__vite__mapDeps([15,16]),import.meta.url)},{id:"c",name:"C",import:()=>f(()=>import("./C3t2pwGQ.js"),[],import.meta.url)},{id:"cadence",name:"Cadence",aliases:["cdc"],import:()=>f(()=>import("./DNquZEk8.js"),[],import.meta.url)},{id:"cairo",name:"Cairo",import:()=>f(()=>import("./D8mZ0lfy.js"),__vite__mapDeps([17,18]),import.meta.url)},{id:"clarity",name:"Clarity",import:()=>f(()=>import("./BHOwM8T6.js"),[],import.meta.url)},{id:"clojure",name:"Clojure",aliases:["clj"],import:()=>f(()=>import("./DxSadP1t.js"),[],import.meta.url)},{id:"cmake",name:"CMake",import:()=>f(()=>import("./DbXoA79R.js"),[],import.meta.url)},{id:"cobol",name:"COBOL",import:()=>f(()=>import("./BK9xJ97g.js"),__vite__mapDeps([19,1,2,3,8]),import.meta.url)},{id:"codeowners",name:"CODEOWNERS",import:()=>f(()=>import("./Bp6g37R7.js"),[],import.meta.url)},{id:"codeql",name:"CodeQL",aliases:["ql"],import:()=>f(()=>import("./sacFqUAJ.js"),[],import.meta.url)},{id:"coffee",name:"CoffeeScript",aliases:["coffeescript"],import:()=>f(()=>import("./DKOGybHv.js"),__vite__mapDeps([20,2]),import.meta.url)},{id:"common-lisp",name:"Common Lisp",aliases:["lisp"],import:()=>f(()=>import("./C7gG9l05.js"),[],import.meta.url)},{id:"coq",name:"Coq",import:()=>f(()=>import("./Dsg_Bt_b.js"),[],import.meta.url)},{id:"cpp",name:"C++",aliases:["c++"],import:()=>f(()=>import("./BEhvmC7f.js"),__vite__mapDeps([21,22,23,24,14]),import.meta.url)},{id:"crystal",name:"Crystal",import:()=>f(()=>import("./CQ0soPOq.js"),__vite__mapDeps([25,1,2,3,14,24,26]),import.meta.url)},{id:"csharp",name:"C#",aliases:["c#","cs"],import:()=>f(()=>import("./D9R-vmeu.js"),[],import.meta.url)},{id:"css",name:"CSS",import:()=>f(()=>import("./BPhBrDlE.js"),[],import.meta.url)},{id:"csv",name:"CSV",import:()=>f(()=>import("./B0qRVHPH.js"),[],import.meta.url)},{id:"cue",name:"CUE",import:()=>f(()=>import("./DtFQj3wx.js"),[],import.meta.url)},{id:"cypher",name:"Cypher",aliases:["cql"],import:()=>f(()=>import("./m2LEI-9-.js"),[],import.meta.url)},{id:"d",name:"D",import:()=>f(()=>import("./BoXegm-a.js"),[],import.meta.url)},{id:"dart",name:"Dart",import:()=>f(()=>import("./B9wLZaAG.js"),[],import.meta.url)},{id:"dax",name:"DAX",import:()=>f(()=>import("./ClGRhx96.js"),[],import.meta.url)},{id:"desktop",name:"Desktop",import:()=>f(()=>import("./DEIpsLCJ.js"),[],import.meta.url)},{id:"diff",name:"Diff",import:()=>f(()=>import("./BgYniUM_.js"),[],import.meta.url)},{id:"docker",name:"Dockerfile",aliases:["dockerfile"],import:()=>f(()=>import("./COcR7UxN.js"),[],import.meta.url)},{id:"dotenv",name:"dotEnv",import:()=>f(()=>import("./BjQB5zDj.js"),[],import.meta.url)},{id:"dream-maker",name:"Dream Maker",import:()=>f(()=>import("./C-nORZOA.js"),[],import.meta.url)},{id:"edge",name:"Edge",import:()=>f(()=>import("./BsOYHjMa.js"),__vite__mapDeps([27,11,1,2,3,28]),import.meta.url)},{id:"elixir",name:"Elixir",import:()=>f(()=>import("./B5auBHZD.js"),__vite__mapDeps([29,1,2,3]),import.meta.url)},{id:"elm",name:"Elm",import:()=>f(()=>import("./BdxkyMLR.js"),__vite__mapDeps([30,23,24]),import.meta.url)},{id:"emacs-lisp",name:"Emacs Lisp",aliases:["elisp"],import:()=>f(()=>import("./BX77sIaO.js"),[],import.meta.url)},{id:"erb",name:"ERB",import:()=>f(()=>import("./UL5zprDm.js"),__vite__mapDeps([31,1,2,3,32,33,7,8,14,34,11,35,36,21,22,23,24,26,37,38]),import.meta.url)},{id:"erlang",name:"Erlang",aliases:["erl"],import:()=>f(()=>import("./B-DoSBHF.js"),[],import.meta.url)},{id:"fennel",name:"Fennel",import:()=>f(()=>import("./bCA53EVm.js"),[],import.meta.url)},{id:"fish",name:"Fish",import:()=>f(()=>import("./w-ucz2PV.js"),[],import.meta.url)},{id:"fluent",name:"Fluent",aliases:["ftl"],import:()=>f(()=>import("./Dayu4EKP.js"),[],import.meta.url)},{id:"fortran-fixed-form",name:"Fortran (Fixed Form)",aliases:["f","for","f77"],import:()=>f(()=>import("./DRNBmV_Q.js"),__vite__mapDeps([39,40]),import.meta.url)},{id:"fortran-free-form",name:"Fortran (Free Form)",aliases:["f90","f95","f03","f08","f18"],import:()=>f(()=>import("./DKXYxT9g.js"),[],import.meta.url)},{id:"fsharp",name:"F#",aliases:["f#","fs"],import:()=>f(()=>import("./Dmy2k9nq.js"),__vite__mapDeps([41,42]),import.meta.url)},{id:"gdresource",name:"GDResource",import:()=>f(()=>import("./BQwtg7Y-.js"),__vite__mapDeps([43,44,45]),import.meta.url)},{id:"gdscript",name:"GDScript",import:()=>f(()=>import("./DfxzS6Rs.js"),[],import.meta.url)},{id:"gdshader",name:"GDShader",import:()=>f(()=>import("./SKMF96pI.js"),[],import.meta.url)},{id:"genie",name:"Genie",import:()=>f(()=>import("./ajMbGru0.js"),[],import.meta.url)},{id:"gherkin",name:"Gherkin",import:()=>f(()=>import("./-30QC5Em.js"),[],import.meta.url)},{id:"git-commit",name:"Git Commit Message",import:()=>f(()=>import("./CKg9tqCS.js"),__vite__mapDeps([46,47]),import.meta.url)},{id:"git-rebase",name:"Git Rebase Message",import:()=>f(()=>import("./CyIGOvEh.js"),__vite__mapDeps([48,26]),import.meta.url)},{id:"gleam",name:"Gleam",import:()=>f(()=>import("./B430Bg39.js"),[],import.meta.url)},{id:"glimmer-js",name:"Glimmer JS",aliases:["gjs"],import:()=>f(()=>import("./C-wny61x.js"),__vite__mapDeps([49,2,11,3,1]),import.meta.url)},{id:"glimmer-ts",name:"Glimmer TS",aliases:["gts"],import:()=>f(()=>import("./C5Y8tDhP.js"),__vite__mapDeps([50,11,3,2,1]),import.meta.url)},{id:"glsl",name:"GLSL",import:()=>f(()=>import("./COyJrUc7.js"),__vite__mapDeps([23,24]),import.meta.url)},{id:"gnuplot",name:"Gnuplot",import:()=>f(()=>import("./CM8KxXT1.js"),[],import.meta.url)},{id:"go",name:"Go",import:()=>f(()=>import("./B1SYOhNW.js"),[],import.meta.url)},{id:"graphql",name:"GraphQL",aliases:["gql"],import:()=>f(()=>import("./DjHMNizO.js"),__vite__mapDeps([34,2,11,35,36]),import.meta.url)},{id:"groovy",name:"Groovy",import:()=>f(()=>import("./DkBy-JyN.js"),[],import.meta.url)},{id:"hack",name:"Hack",import:()=>f(()=>import("./C30yJ1fx.js"),__vite__mapDeps([51,1,2,3,14]),import.meta.url)},{id:"haml",name:"Ruby Haml",import:()=>f(()=>import("./m4gc_qpA.js"),__vite__mapDeps([33,2,3]),import.meta.url)},{id:"handlebars",name:"Handlebars",aliases:["hbs"],import:()=>f(()=>import("./C0nbwVuJ.js"),__vite__mapDeps([52,1,2,3,38]),import.meta.url)},{id:"haskell",name:"Haskell",aliases:["hs"],import:()=>f(()=>import("./BILxekzW.js"),[],import.meta.url)},{id:"haxe",name:"Haxe",import:()=>f(()=>import("./C5wWYbrZ.js"),[],import.meta.url)},{id:"hcl",name:"HashiCorp HCL",import:()=>f(()=>import("./HzYwdGDm.js"),[],import.meta.url)},{id:"hjson",name:"Hjson",import:()=>f(()=>import("./T-Tgc4AT.js"),[],import.meta.url)},{id:"hlsl",name:"HLSL",import:()=>f(()=>import("./ifBTmRxC.js"),[],import.meta.url)},{id:"html",name:"HTML",import:()=>f(()=>import("./BMYPR7BL.js"),__vite__mapDeps([1,2,3]),import.meta.url)},{id:"html-derivative",name:"HTML (Derivative)",import:()=>f(()=>import("./e4jU7D2d.js"),__vite__mapDeps([28,1,2,3]),import.meta.url)},{id:"http",name:"HTTP",import:()=>f(()=>import("./din0uRiO.js"),__vite__mapDeps([53,26,9,7,8,34,2,11,35,36]),import.meta.url)},{id:"hxml",name:"HXML",import:()=>f(()=>import("./YJb9dmdj.js"),__vite__mapDeps([54,55]),import.meta.url)},{id:"hy",name:"Hy",import:()=>f(()=>import("./BMj5Y0dO.js"),[],import.meta.url)},{id:"imba",name:"Imba",import:()=>f(()=>import("./DPvbFsQx.js"),__vite__mapDeps([56,11]),import.meta.url)},{id:"ini",name:"INI",aliases:["properties"],import:()=>f(()=>import("./BjABl1g7.js"),[],import.meta.url)},{id:"java",name:"Java",import:()=>f(()=>import("./xI-RfyKK.js"),[],import.meta.url)},{id:"javascript",name:"JavaScript",aliases:["js"],import:()=>f(()=>import("./ySlJ1b_l.js"),[],import.meta.url)},{id:"jinja",name:"Jinja",import:()=>f(()=>import("./3kbuJQcV.js"),__vite__mapDeps([57,1,2,3]),import.meta.url)},{id:"jison",name:"Jison",import:()=>f(()=>import("./CsSk9TLD.js"),__vite__mapDeps([58,2]),import.meta.url)},{id:"json",name:"JSON",import:()=>f(()=>import("./BQoSv7ci.js"),[],import.meta.url)},{id:"json5",name:"JSON5",import:()=>f(()=>import("./w8dY5SsB.js"),[],import.meta.url)},{id:"jsonc",name:"JSON with Comments",import:()=>f(()=>import("./TU54ms6u.js"),[],import.meta.url)},{id:"jsonl",name:"JSON Lines",import:()=>f(()=>import("./DREVFZK8.js"),[],import.meta.url)},{id:"jsonnet",name:"Jsonnet",import:()=>f(()=>import("./BfivnA6A.js"),[],import.meta.url)},{id:"jssm",name:"JSSM",aliases:["fsl"],import:()=>f(()=>import("./P4WzXJd0.js"),[],import.meta.url)},{id:"jsx",name:"JSX",import:()=>f(()=>import("./BAng5TT0.js"),[],import.meta.url)},{id:"julia",name:"Julia",aliases:["jl"],import:()=>f(()=>import("./Bw0wYZmb.js"),__vite__mapDeps([59,21,22,23,24,14,18,2,60]),import.meta.url)},{id:"kotlin",name:"Kotlin",aliases:["kt","kts"],import:()=>f(()=>import("./B5lbUyaz.js"),[],import.meta.url)},{id:"kusto",name:"Kusto",aliases:["kql"],import:()=>f(()=>import("./mebxcVVE.js"),[],import.meta.url)},{id:"latex",name:"LaTeX",import:()=>f(()=>import("./DsWjAdsX.js"),__vite__mapDeps([61,62,60]),import.meta.url)},{id:"lean",name:"Lean 4",aliases:["lean4"],import:()=>f(()=>import("./XBlWyCtg.js"),[],import.meta.url)},{id:"less",name:"Less",import:()=>f(()=>import("./BfCpw3nA.js"),[],import.meta.url)},{id:"liquid",name:"Liquid",import:()=>f(()=>import("./BVr_1_27.js"),__vite__mapDeps([63,1,2,3,9]),import.meta.url)},{id:"log",name:"Log file",import:()=>f(()=>import("./Cc5clBb7.js"),[],import.meta.url)},{id:"logo",name:"Logo",import:()=>f(()=>import("./IuBKFhSY.js"),[],import.meta.url)},{id:"lua",name:"Lua",import:()=>f(()=>import("./Dbxjm_CC.js"),__vite__mapDeps([37,24]),import.meta.url)},{id:"luau",name:"Luau",import:()=>f(()=>import("./Du5NY7AG.js"),[],import.meta.url)},{id:"make",name:"Makefile",aliases:["makefile"],import:()=>f(()=>import("./Bvotw-X0.js"),[],import.meta.url)},{id:"markdown",name:"Markdown",aliases:["md"],import:()=>f(()=>import("./UIAJJxZW.js"),[],import.meta.url)},{id:"marko",name:"Marko",import:()=>f(()=>import("./Cz8P-rqG.js"),__vite__mapDeps([64,3,65,5,2]),import.meta.url)},{id:"matlab",name:"MATLAB",import:()=>f(()=>import("./D9-PGadD.js"),[],import.meta.url)},{id:"mdc",name:"MDC",import:()=>f(()=>import("./BE9QQhgF.js"),__vite__mapDeps([66,42,38,28,1,2,3]),import.meta.url)},{id:"mdx",name:"MDX",import:()=>f(()=>import("./sdHcTMYB.js"),[],import.meta.url)},{id:"mermaid",name:"Mermaid",aliases:["mmd"],import:()=>f(()=>import("./Ci6OQyBP.js"),[],import.meta.url)},{id:"mipsasm",name:"MIPS Assembly",aliases:["mips"],import:()=>f(()=>import("./BC5c_5Pe.js"),[],import.meta.url)},{id:"mojo",name:"Mojo",import:()=>f(()=>import("./Tz6hzZYG.js"),[],import.meta.url)},{id:"move",name:"Move",import:()=>f(()=>import("./DB_GagMm.js"),[],import.meta.url)},{id:"narrat",name:"Narrat Language",aliases:["nar"],import:()=>f(()=>import("./DLbgOhZU.js"),[],import.meta.url)},{id:"nextflow",name:"Nextflow",aliases:["nf"],import:()=>f(()=>import("./B0XVJmRM.js"),[],import.meta.url)},{id:"nginx",name:"Nginx",import:()=>f(()=>import("./9C6ErRqt.js"),__vite__mapDeps([67,37,24]),import.meta.url)},{id:"nim",name:"Nim",import:()=>f(()=>import("./D5pd2Owo.js"),__vite__mapDeps([68,24,1,2,3,7,8,23,42]),import.meta.url)},{id:"nix",name:"Nix",import:()=>f(()=>import("./shcSOmrb.js"),[],import.meta.url)},{id:"nushell",name:"nushell",aliases:["nu"],import:()=>f(()=>import("./D4Tzg5kh.js"),[],import.meta.url)},{id:"objective-c",name:"Objective-C",aliases:["objc"],import:()=>f(()=>import("./Deuh7S70.js"),[],import.meta.url)},{id:"objective-cpp",name:"Objective-C++",import:()=>f(()=>import("./BUEGK8hf.js"),[],import.meta.url)},{id:"ocaml",name:"OCaml",import:()=>f(()=>import("./BNioltXt.js"),[],import.meta.url)},{id:"pascal",name:"Pascal",import:()=>f(()=>import("./JqZropPD.js"),[],import.meta.url)},{id:"perl",name:"Perl",import:()=>f(()=>import("./C1tVc3UG.js"),__vite__mapDeps([69,1,2,3,7,8,14]),import.meta.url)},{id:"php",name:"PHP",import:()=>f(()=>import("./HNqc6WRo.js"),__vite__mapDeps([70,1,2,3,7,8,14,9]),import.meta.url)},{id:"plsql",name:"PL/SQL",import:()=>f(()=>import("./LKU2TuZ1.js"),[],import.meta.url)},{id:"po",name:"Gettext PO",aliases:["pot","potx"],import:()=>f(()=>import("./BFLt1xDp.js"),[],import.meta.url)},{id:"polar",name:"Polar",import:()=>f(()=>import("./DKykz6zU.js"),[],import.meta.url)},{id:"postcss",name:"PostCSS",import:()=>f(()=>import("./B3ZDOciz.js"),[],import.meta.url)},{id:"powerquery",name:"PowerQuery",import:()=>f(()=>import("./CSHBycmS.js"),[],import.meta.url)},{id:"powershell",name:"PowerShell",aliases:["ps","ps1"],import:()=>f(()=>import("./BIEUsx6d.js"),[],import.meta.url)},{id:"prisma",name:"Prisma",import:()=>f(()=>import("./B48N-Iqd.js"),[],import.meta.url)},{id:"prolog",name:"Prolog",import:()=>f(()=>import("./BY-TUvya.js"),[],import.meta.url)},{id:"proto",name:"Protocol Buffer 3",aliases:["protobuf"],import:()=>f(()=>import("./zocC4JxJ.js"),[],import.meta.url)},{id:"pug",name:"Pug",aliases:["jade"],import:()=>f(()=>import("./DYvnoCeB.js"),__vite__mapDeps([71,2,3,1]),import.meta.url)},{id:"puppet",name:"Puppet",import:()=>f(()=>import("./Cza_XSSt.js"),[],import.meta.url)},{id:"purescript",name:"PureScript",import:()=>f(()=>import("./Bg-kzb6g.js"),[],import.meta.url)},{id:"python",name:"Python",aliases:["py"],import:()=>f(()=>import("./DhUJRlN_.js"),[],import.meta.url)},{id:"qml",name:"QML",import:()=>f(()=>import("./Bid6LQhH.js"),__vite__mapDeps([72,2]),import.meta.url)},{id:"qmldir",name:"QML Directory",import:()=>f(()=>import("./C8lEn-DE.js"),[],import.meta.url)},{id:"qss",name:"Qt Style Sheets",import:()=>f(()=>import("./DhMKtDLN.js"),[],import.meta.url)},{id:"r",name:"R",import:()=>f(()=>import("./CwjWoCRV.js"),[],import.meta.url)},{id:"racket",name:"Racket",import:()=>f(()=>import("./CzouJOBO.js"),[],import.meta.url)},{id:"raku",name:"Raku",aliases:["perl6"],import:()=>f(()=>import("./B1bQXN8T.js"),[],import.meta.url)},{id:"razor",name:"ASP.NET Razor",import:()=>f(()=>import("./CYgUR4L5.js"),__vite__mapDeps([73,1,2,3,74]),import.meta.url)},{id:"reg",name:"Windows Registry Script",import:()=>f(()=>import("./5LuOXUq_.js"),[],import.meta.url)},{id:"regexp",name:"RegExp",aliases:["regex"],import:()=>f(()=>import("./DWJ3fJO_.js"),[],import.meta.url)},{id:"rel",name:"Rel",import:()=>f(()=>import("./DJlmqQ1C.js"),[],import.meta.url)},{id:"riscv",name:"RISC-V",import:()=>f(()=>import("./QhoSD0DR.js"),[],import.meta.url)},{id:"rst",name:"reStructuredText",import:()=>f(()=>import("./CSp6iqVD.js"),__vite__mapDeps([75,28,1,2,3,21,22,23,24,14,18,26,38,76,32,33,7,8,34,11,35,36,37]),import.meta.url)},{id:"ruby",name:"Ruby",aliases:["rb"],import:()=>f(()=>import("./CYFUjXW1.js"),__vite__mapDeps([32,1,2,3,33,7,8,14,34,11,35,36,21,22,23,24,26,37,38]),import.meta.url)},{id:"rust",name:"Rust",aliases:["rs"],import:()=>f(()=>import("./Be6lgOlo.js"),[],import.meta.url)},{id:"sas",name:"SAS",import:()=>f(()=>import("./BiFfXF7O.js"),__vite__mapDeps([77,14]),import.meta.url)},{id:"sass",name:"Sass",import:()=>f(()=>import("./BJ4Li9vH.js"),[],import.meta.url)},{id:"scala",name:"Scala",import:()=>f(()=>import("./DQVVAn-B.js"),[],import.meta.url)},{id:"scheme",name:"Scheme",import:()=>f(()=>import("./BJGe-b2p.js"),[],import.meta.url)},{id:"scss",name:"SCSS",import:()=>f(()=>import("./Bl1h29GH.js"),__vite__mapDeps([5,3]),import.meta.url)},{id:"sdbl",name:"1C (Query)",aliases:["1c-query"],import:()=>f(()=>import("./BLhTXw86.js"),[],import.meta.url)},{id:"shaderlab",name:"ShaderLab",aliases:["shader"],import:()=>f(()=>import("./B14Poo8t.js"),__vite__mapDeps([78,79]),import.meta.url)},{id:"shellscript",name:"Shell",aliases:["bash","sh","shell","zsh"],import:()=>f(()=>import("./atvbtKCR.js"),[],import.meta.url)},{id:"shellsession",name:"Shell Session",aliases:["console"],import:()=>f(()=>import("./BNHBcdi1.js"),__vite__mapDeps([80,26]),import.meta.url)},{id:"smalltalk",name:"Smalltalk",import:()=>f(()=>import("./DkLiglaE.js"),[],import.meta.url)},{id:"solidity",name:"Solidity",import:()=>f(()=>import("./C1w2a3ep.js"),[],import.meta.url)},{id:"soy",name:"Closure Templates",aliases:["closure-templates"],import:()=>f(()=>import("./qpfuy3xp.js"),__vite__mapDeps([81,1,2,3]),import.meta.url)},{id:"sparql",name:"SPARQL",import:()=>f(()=>import("./SPD3sf1n.js"),__vite__mapDeps([82,83]),import.meta.url)},{id:"splunk",name:"Splunk Query Language",aliases:["spl"],import:()=>f(()=>import("./Cf8iN4DR.js"),[],import.meta.url)},{id:"sql",name:"SQL",import:()=>f(()=>import("./COK4E0Yg.js"),[],import.meta.url)},{id:"ssh-config",name:"SSH Config",import:()=>f(()=>import("./BknIz3MU.js"),[],import.meta.url)},{id:"stata",name:"Stata",import:()=>f(()=>import("./R900dpIa.js"),__vite__mapDeps([84,14]),import.meta.url)},{id:"stylus",name:"Stylus",aliases:["styl"],import:()=>f(()=>import("./BeQkCIfX.js"),[],import.meta.url)},{id:"svelte",name:"Svelte",import:()=>f(()=>import("./BXW1EomU.js"),__vite__mapDeps([85,2,11,3,12]),import.meta.url)},{id:"swift",name:"Swift",import:()=>f(()=>import("./BSxZ-RaX.js"),[],import.meta.url)},{id:"system-verilog",name:"SystemVerilog",import:()=>f(()=>import("./C7L56vO4.js"),[],import.meta.url)},{id:"systemd",name:"Systemd Units",import:()=>f(()=>import("./CUnW07Te.js"),[],import.meta.url)},{id:"talonscript",name:"TalonScript",aliases:["talon"],import:()=>f(()=>import("./C1XDQQGZ.js"),[],import.meta.url)},{id:"tasl",name:"Tasl",import:()=>f(()=>import("./CQjiPCtT.js"),[],import.meta.url)},{id:"tcl",name:"Tcl",import:()=>f(()=>import("./DQ1-QYvQ.js"),[],import.meta.url)},{id:"templ",name:"Templ",import:()=>f(()=>import("./B2vK47Ag.js"),__vite__mapDeps([86,87,2,3]),import.meta.url)},{id:"terraform",name:"Terraform",aliases:["tf","tfvars"],import:()=>f(()=>import("./BbSNqyBO.js"),[],import.meta.url)},{id:"tex",name:"TeX",import:()=>f(()=>import("./qmhIZ77x.js"),__vite__mapDeps([62,60]),import.meta.url)},{id:"toml",name:"TOML",import:()=>f(()=>import("./CB2ApiWb.js"),[],import.meta.url)},{id:"ts-tags",name:"TypeScript with Tags",aliases:["lit"],import:()=>f(()=>import("./wI6OXr6j.js"),__vite__mapDeps([88,11,3,2,23,24,1,14,7,8]),import.meta.url)},{id:"tsv",name:"TSV",import:()=>f(()=>import("./B_m7g4N7.js"),[],import.meta.url)},{id:"tsx",name:"TSX",import:()=>f(()=>import("./B6W0miNI.js"),[],import.meta.url)},{id:"turtle",name:"Turtle",import:()=>f(()=>import("./BMR_PYu6.js"),[],import.meta.url)},{id:"twig",name:"Twig",import:()=>f(()=>import("./DDtJtuOZ.js"),__vite__mapDeps([89,3,2,5,70,1,7,8,14,9,18,32,33,34,11,35,36,21,22,23,24,26,37,38]),import.meta.url)},{id:"typescript",name:"TypeScript",aliases:["ts"],import:()=>f(()=>import("./Dj6nwHGl.js"),[],import.meta.url)},{id:"typespec",name:"TypeSpec",aliases:["tsp"],import:()=>f(()=>import("./BpWG_bgh.js"),[],import.meta.url)},{id:"typst",name:"Typst",aliases:["typ"],import:()=>f(()=>import("./BVUVsWT6.js"),[],import.meta.url)},{id:"v",name:"V",import:()=>f(()=>import("./CAQ2eGtk.js"),[],import.meta.url)},{id:"vala",name:"Vala",import:()=>f(()=>import("./BFOHcciG.js"),[],import.meta.url)},{id:"vb",name:"Visual Basic",aliases:["cmd"],import:()=>f(()=>import("./CdO5JTpU.js"),[],import.meta.url)},{id:"verilog",name:"Verilog",import:()=>f(()=>import("./CJaU5se_.js"),[],import.meta.url)},{id:"vhdl",name:"VHDL",import:()=>f(()=>import("./DYoNaHQp.js"),[],import.meta.url)},{id:"viml",name:"Vim Script",aliases:["vim","vimscript"],import:()=>f(()=>import("./m4uW47V2.js"),[],import.meta.url)},{id:"vue",name:"Vue",import:()=>f(()=>import("./DRhBOlRY.js"),__vite__mapDeps([90,1,2,3,11,9,28]),import.meta.url)},{id:"vue-html",name:"Vue HTML",import:()=>f(()=>import("./BlxRB_8X.js"),__vite__mapDeps([91,90,1,2,3,11,9,28]),import.meta.url)},{id:"vyper",name:"Vyper",aliases:["vy"],import:()=>f(()=>import("./nyqBNV6O.js"),[],import.meta.url)},{id:"wasm",name:"WebAssembly",import:()=>f(()=>import("./C6j12Q_x.js"),[],import.meta.url)},{id:"wenyan",name:"Wenyan",aliases:["文言"],import:()=>f(()=>import("./7A4Fjokl.js"),[],import.meta.url)},{id:"wgsl",name:"WGSL",import:()=>f(()=>import("./CB0Krxn9.js"),[],import.meta.url)},{id:"wikitext",name:"Wikitext",aliases:["mediawiki","wiki"],import:()=>f(()=>import("./DCE3LsBG.js"),[],import.meta.url)},{id:"wolfram",name:"Wolfram",aliases:["wl"],import:()=>f(()=>import("./C3FkfJm5.js"),[],import.meta.url)},{id:"xml",name:"XML",import:()=>f(()=>import("./cPjAOO0u.js"),__vite__mapDeps([7,8]),import.meta.url)},{id:"xsl",name:"XSL",import:()=>f(()=>import("./ahYVQIuB.js"),__vite__mapDeps([92,7,8]),import.meta.url)},{id:"yaml",name:"YAML",aliases:["yml"],import:()=>f(()=>import("./CVw76BM1.js"),[],import.meta.url)},{id:"zenscript",name:"ZenScript",import:()=>f(()=>import("./HnGAYVZD.js"),[],import.meta.url)},{id:"zig",name:"Zig",import:()=>f(()=>import("./BVz_zdnA.js"),[],import.meta.url)}],oi=Object.fromEntries(Tr.map(e=>[e.id,e.import])),ai=Object.fromEntries(Tr.flatMap(e=>{var t;return((t=e.aliases)==null?void 0:t.map(u=>[u,e.import]))||[]})),Rr={...oi,...ai},si=[{id:"andromeeda",displayName:"Andromeeda",type:"dark",import:()=>f(()=>import("./C3khCPGq.js"),[],import.meta.url)},{id:"aurora-x",displayName:"Aurora X",type:"dark",import:()=>f(()=>import("./D-2ljcwZ.js"),[],import.meta.url)},{id:"ayu-dark",displayName:"Ayu Dark",type:"dark",import:()=>f(()=>import("./Cv9koXgw.js"),[],import.meta.url)},{id:"catppuccin-frappe",displayName:"Catppuccin Frappé",type:"dark",import:()=>f(()=>import("./CD_QflpE.js"),[],import.meta.url)},{id:"catppuccin-latte",displayName:"Catppuccin Latte",type:"light",import:()=>f(()=>import("./DRW-0cLl.js"),[],import.meta.url)},{id:"catppuccin-macchiato",displayName:"Catppuccin Macchiato",type:"dark",import:()=>f(()=>import("./C-_shW-Y.js"),[],import.meta.url)},{id:"catppuccin-mocha",displayName:"Catppuccin Mocha",type:"dark",import:()=>f(()=>import("./LGGdnPYs.js"),[],import.meta.url)},{id:"dark-plus",displayName:"Dark Plus",type:"dark",import:()=>f(()=>import("./C3mMm8J8.js"),[],import.meta.url)},{id:"dracula",displayName:"Dracula Theme",type:"dark",import:()=>f(()=>import("./BzJJZx-M.js"),[],import.meta.url)},{id:"dracula-soft",displayName:"Dracula Theme Soft",type:"dark",import:()=>f(()=>import("./BXkSAIEj.js"),[],import.meta.url)},{id:"everforest-dark",displayName:"Everforest Dark",type:"dark",import:()=>f(()=>import("./BgDCqdQA.js"),[],import.meta.url)},{id:"everforest-light",displayName:"Everforest Light",type:"light",import:()=>f(()=>import("./C8M2exoo.js"),[],import.meta.url)},{id:"github-dark",displayName:"GitHub Dark",type:"dark",import:()=>f(()=>import("./DHJKELXO.js"),[],import.meta.url)},{id:"github-dark-default",displayName:"GitHub Dark Default",type:"dark",import:()=>f(()=>import("./Cuk6v7N8.js"),[],import.meta.url)},{id:"github-dark-dimmed",displayName:"GitHub Dark Dimmed",type:"dark",import:()=>f(()=>import("./DH5Ifo-i.js"),[],import.meta.url)},{id:"github-dark-high-contrast",displayName:"GitHub Dark High Contrast",type:"dark",import:()=>f(()=>import("./E3gJ1_iC.js"),[],import.meta.url)},{id:"github-light",displayName:"GitHub Light",type:"light",import:()=>f(()=>import("./DAi9KRSo.js"),[],import.meta.url)},{id:"github-light-default",displayName:"GitHub Light Default",type:"light",import:()=>f(()=>import("./D7oLnXFd.js"),[],import.meta.url)},{id:"github-light-high-contrast",displayName:"GitHub Light High Contrast",type:"light",import:()=>f(()=>import("./BfjtVDDH.js"),[],import.meta.url)},{id:"houston",displayName:"Houston",type:"dark",import:()=>f(()=>import("./DnULxvSX.js"),[],import.meta.url)},{id:"kanagawa-dragon",displayName:"Kanagawa Dragon",type:"dark",import:()=>f(()=>import("./CkXjmgJE.js"),[],import.meta.url)},{id:"kanagawa-lotus",displayName:"Kanagawa Lotus",type:"light",import:()=>f(()=>import("./CfQXZHmo.js"),[],import.meta.url)},{id:"kanagawa-wave",displayName:"Kanagawa Wave",type:"dark",import:()=>f(()=>import("./DWedfzmr.js"),[],import.meta.url)},{id:"laserwave",displayName:"LaserWave",type:"dark",import:()=>f(()=>import("./DUszq2jm.js"),[],import.meta.url)},{id:"light-plus",displayName:"Light Plus",type:"light",import:()=>f(()=>import("./B7mTdjB0.js"),[],import.meta.url)},{id:"material-theme",displayName:"Material Theme",type:"dark",import:()=>f(()=>import("./D5KoaKCx.js"),[],import.meta.url)},{id:"material-theme-darker",displayName:"Material Theme Darker",type:"dark",import:()=>f(()=>import("./BfHTSMKl.js"),[],import.meta.url)},{id:"material-theme-lighter",displayName:"Material Theme Lighter",type:"light",import:()=>f(()=>import("./B0m2ddpp.js"),[],import.meta.url)},{id:"material-theme-ocean",displayName:"Material Theme Ocean",type:"dark",import:()=>f(()=>import("./CyktbL80.js"),[],import.meta.url)},{id:"material-theme-palenight",displayName:"Material Theme Palenight",type:"dark",import:()=>f(()=>import("./Csfq5Kiy.js"),[],import.meta.url)},{id:"min-dark",displayName:"Min Dark",type:"dark",import:()=>f(()=>import("./CafNBF8u.js"),[],import.meta.url)},{id:"min-light",displayName:"Min Light",type:"light",import:()=>f(()=>import("./CTRr51gU.js"),[],import.meta.url)},{id:"monokai",displayName:"Monokai",type:"dark",import:()=>f(()=>import("./D4h5O-jR.js"),[],import.meta.url)},{id:"night-owl",displayName:"Night Owl",type:"dark",import:()=>f(()=>import("./C39BiMTA.js"),[],import.meta.url)},{id:"nord",displayName:"Nord",type:"dark",import:()=>f(()=>import("./Ddv68eIx.js"),[],import.meta.url)},{id:"one-dark-pro",displayName:"One Dark Pro",type:"dark",import:()=>f(()=>import("./GBQ2dnAY.js"),[],import.meta.url)},{id:"one-light",displayName:"One Light",type:"light",import:()=>f(()=>import("./PoHY5YXO.js"),[],import.meta.url)},{id:"plastic",displayName:"Plastic",type:"dark",import:()=>f(()=>import("./3e1v2bzS.js"),[],import.meta.url)},{id:"poimandres",displayName:"Poimandres",type:"dark",import:()=>f(()=>import("./CS3Unz2-.js"),[],import.meta.url)},{id:"red",displayName:"Red",type:"dark",import:()=>f(()=>import("./bN70gL4F.js"),[],import.meta.url)},{id:"rose-pine",displayName:"Rosé Pine",type:"dark",import:()=>f(()=>import("./CmCqftbK.js"),[],import.meta.url)},{id:"rose-pine-dawn",displayName:"Rosé Pine Dawn",type:"light",import:()=>f(()=>import("./Ds-gbosJ.js"),[],import.meta.url)},{id:"rose-pine-moon",displayName:"Rosé Pine Moon",type:"dark",import:()=>f(()=>import("./CjDtw9vr.js"),[],import.meta.url)},{id:"slack-dark",displayName:"Slack Dark",type:"dark",import:()=>f(()=>import("./BthQWCQV.js"),[],import.meta.url)},{id:"slack-ochin",displayName:"Slack Ochin",type:"light",import:()=>f(()=>import("./DqwNpetd.js"),[],import.meta.url)},{id:"snazzy-light",displayName:"Snazzy Light",type:"light",import:()=>f(()=>import("./Bw305WKR.js"),[],import.meta.url)},{id:"solarized-dark",displayName:"Solarized Dark",type:"dark",import:()=>f(()=>import("./DXbdFlpD.js"),[],import.meta.url)},{id:"solarized-light",displayName:"Solarized Light",type:"light",import:()=>f(()=>import("./L9t79GZl.js"),[],import.meta.url)},{id:"synthwave-84",displayName:"Synthwave '84",type:"dark",import:()=>f(()=>import("./CbfX1IO0.js"),[],import.meta.url)},{id:"tokyo-night",displayName:"Tokyo Night",type:"dark",import:()=>f(()=>import("./DBQeEorK.js"),[],import.meta.url)},{id:"vesper",displayName:"Vesper",type:"dark",import:()=>f(()=>import("./BEBZ7ncR.js"),[],import.meta.url)},{id:"vitesse-black",displayName:"Vitesse Black",type:"dark",import:()=>f(()=>import("./Bkuqu6BP.js"),[],import.meta.url)},{id:"vitesse-dark",displayName:"Vitesse Dark",type:"dark",import:()=>f(()=>import("./D0r3Knsf.js"),[],import.meta.url)},{id:"vitesse-light",displayName:"Vitesse Light",type:"light",import:()=>f(()=>import("./CVO1_9PV.js"),[],import.meta.url)}],li=Object.fromEntries(si.map(e=>[e.id,e.import]));let Ae=class extends Error{constructor(t){super(t),this.name="ShikiError"}},yu=class extends Error{constructor(t){super(t),this.name="ShikiError"}};function ci(){return 2147483648}function di(){return typeof performance<"u"?performance.now():Date.now()}const fi=(e,t)=>e+(t-e%t)%t;async function pi(e){let t,u;const r={};function n(p){u=p,r.HEAPU8=new Uint8Array(p),r.HEAPU32=new Uint32Array(p)}function i(p,m,x){r.HEAPU8.copyWithin(p,m,m+x)}function o(p){try{return t.grow(p-u.byteLength+65535>>>16),n(t.buffer),1}catch{}}function a(p){const m=r.HEAPU8.length;p=p>>>0;const x=ci();if(p>x)return!1;for(let g=1;g<=4;g*=2){let E=m*(1+.2/g);E=Math.min(E,p+100663296);const _=Math.min(x,fi(Math.max(p,E),65536));if(o(_))return!0}return!1}const s=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function l(p,m,x=1024){const g=m+x;let E=m;for(;p[E]&&!(E>=g);)++E;if(E-m>16&&p.buffer&&s)return s.decode(p.subarray(m,E));let _="";for(;m>10,56320|S&1023)}}return _}function d(p,m){return p?l(r.HEAPU8,p,m):""}const c={emscripten_get_now:di,emscripten_memcpy_big:i,emscripten_resize_heap:a,fd_write:()=>0};async function h(){const m=await e({env:c,wasi_snapshot_preview1:c});t=m.memory,n(t.buffer),Object.assign(r,m),r.UTF8ToString=d}return await h(),r}var mi=Object.defineProperty,hi=(e,t,u)=>t in e?mi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:u}):e[t]=u,G=(e,t,u)=>(hi(e,typeof t!="symbol"?t+"":t,u),u);let Z=null;function _i(e){throw new yu(e.UTF8ToString(e.getLastOnigError()))}class Ot{constructor(t){G(this,"utf16Length"),G(this,"utf8Length"),G(this,"utf16Value"),G(this,"utf8Value"),G(this,"utf16OffsetToUtf8"),G(this,"utf8OffsetToUtf16");const u=t.length,r=Ot._utf8ByteLength(t),n=r!==u,i=n?new Uint32Array(u+1):null;n&&(i[u]=r);const o=n?new Uint32Array(r+1):null;n&&(o[r]=u);const a=new Uint8Array(r);let s=0;for(let l=0;l=55296&&d<=56319&&l+1=56320&&p<=57343&&(c=(d-55296<<10)+65536|p-56320,h=!0)}n&&(i[l]=s,h&&(i[l+1]=s),c<=127?o[s+0]=l:c<=2047?(o[s+0]=l,o[s+1]=l):c<=65535?(o[s+0]=l,o[s+1]=l,o[s+2]=l):(o[s+0]=l,o[s+1]=l,o[s+2]=l,o[s+3]=l)),c<=127?a[s++]=c:c<=2047?(a[s++]=192|(c&1984)>>>6,a[s++]=128|(c&63)>>>0):c<=65535?(a[s++]=224|(c&61440)>>>12,a[s++]=128|(c&4032)>>>6,a[s++]=128|(c&63)>>>0):(a[s++]=240|(c&1835008)>>>18,a[s++]=128|(c&258048)>>>12,a[s++]=128|(c&4032)>>>6,a[s++]=128|(c&63)>>>0),h&&l++}this.utf16Length=u,this.utf8Length=r,this.utf16Value=t,this.utf8Value=a,this.utf16OffsetToUtf8=i,this.utf8OffsetToUtf16=o}static _utf8ByteLength(t){let u=0;for(let r=0,n=t.length;r=55296&&i<=56319&&r+1=56320&&s<=57343&&(o=(i-55296<<10)+65536|s-56320,a=!0)}o<=127?u+=1:o<=2047?u+=2:o<=65535?u+=3:u+=4,a&&r++}return u}createString(t){const u=t.omalloc(this.utf8Length);return t.HEAPU8.set(this.utf8Value,u),u}}const fe=class{constructor(e){if(G(this,"id",++fe.LAST_ID),G(this,"_onigBinding"),G(this,"content"),G(this,"utf16Length"),G(this,"utf8Length"),G(this,"utf16OffsetToUtf8"),G(this,"utf8OffsetToUtf16"),G(this,"ptr"),!Z)throw new yu("Must invoke loadWasm first.");this._onigBinding=Z,this.content=e;const t=new Ot(e);this.utf16Length=t.utf16Length,this.utf8Length=t.utf8Length,this.utf16OffsetToUtf8=t.utf16OffsetToUtf8,this.utf8OffsetToUtf16=t.utf8OffsetToUtf16,this.utf8Length<1e4&&!fe._sharedPtrInUse?(fe._sharedPtr||(fe._sharedPtr=Z.omalloc(1e4)),fe._sharedPtrInUse=!0,Z.HEAPU8.set(t.utf8Value,fe._sharedPtr),this.ptr=fe._sharedPtr):this.ptr=t.createString(Z)}convertUtf8OffsetToUtf16(e){return this.utf8OffsetToUtf16?e<0?0:e>this.utf8Length?this.utf16Length:this.utf8OffsetToUtf16[e]:e}convertUtf16OffsetToUtf8(e){return this.utf16OffsetToUtf8?e<0?0:e>this.utf16Length?this.utf8Length:this.utf16OffsetToUtf8[e]:e}dispose(){this.ptr===fe._sharedPtr?fe._sharedPtrInUse=!1:this._onigBinding.ofree(this.ptr)}};let it=fe;G(it,"LAST_ID",0);G(it,"_sharedPtr",0);G(it,"_sharedPtrInUse",!1);class gi{constructor(t){if(G(this,"_onigBinding"),G(this,"_ptr"),!Z)throw new yu("Must invoke loadWasm first.");const u=[],r=[];for(let a=0,s=t.length;a{let r=e;return r=await r,typeof r=="function"&&(r=await r(u)),typeof r=="function"&&(r=await r(u)),bi(r)?r=await r.instantiator(u):yi(r)?r=await r.default(u):(xi(r)&&(r=r.data),Ei(r)?typeof WebAssembly.instantiateStreaming=="function"?r=await vi(r)(u):r=await Ci(r)(u):ki(r)?r=await Ut(r)(u):r instanceof WebAssembly.Module?r=await Ut(r)(u):"default"in r&&r.default instanceof WebAssembly.Module&&(r=await Ut(r.default)(u))),"instance"in r&&(r=r.instance),"exports"in r&&(r=r.exports),r})}return dt=t(),dt}function Ut(e){return t=>WebAssembly.instantiate(e,t)}function vi(e){return t=>WebAssembly.instantiateStreaming(e,t)}function Ci(e){return async t=>{const u=await e.arrayBuffer();return WebAssembly.instantiate(u,t)}}let Di;function wi(){return Di}async function Lr(e){return e&&await Ai(e),{createScanner(t){return new gi(t.map(u=>typeof u=="string"?u:u.source))},createString(t){return new it(t)}}}function Si(e){return xu(e)}function xu(e){return Array.isArray(e)?Ti(e):e instanceof RegExp?e:typeof e=="object"?Ri(e):e}function Ti(e){let t=[];for(let u=0,r=e.length;u{for(let r in u)e[r]=u[r]}),e}function Ir(e){const t=~e.lastIndexOf("/")||~e.lastIndexOf("\\");return t===0?e:~t===e.length-1?Ir(e.substring(0,e.length-1)):e.substr(~t+1)}var Gt=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g,ft=class{static hasCaptures(e){return e===null?!1:(Gt.lastIndex=0,Gt.test(e))}static replaceCaptures(e,t,u){return e.replace(Gt,(r,n,i,o)=>{let a=u[parseInt(n||i,10)];if(a){let s=t.substring(a.start,a.end);for(;s[0]===".";)s=s.substring(1);switch(o){case"downcase":return s.toLowerCase();case"upcase":return s.toUpperCase();default:return s}}else return r})}};function Or(e,t){return et?1:0}function Fr(e,t){if(e===null&&t===null)return 0;if(!e)return-1;if(!t)return 1;let u=e.length,r=t.length;if(u===r){for(let n=0;nthis._root.match(e)));this._colorMap=e,this._defaults=t,this._root=u}static createFromRawTheme(e,t){return this.createFromParsedTheme(Ii(e),t)}static createFromParsedTheme(e,t){return Fi(e,t)}getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(e){if(e===null)return this._defaults;const t=e.scopeName,r=this._cachedMatchRoot.get(t).find(n=>Li(e.parent,n.parentScopes));return r?new Vr(r.fontStyle,r.foreground,r.background):null}},Ht=class gt{constructor(t,u){this.parent=t,this.scopeName=u}static push(t,u){for(const r of u)t=new gt(t,r);return t}static from(...t){let u=null;for(let r=0;r"){if(u===t.length-1)return!1;r=t[++u],n=!0}for(;e&&!Pi(e.scopeName,r);){if(n)return!1;e=e.parent}if(!e)return!1;e=e.parent}return!0}function Pi(e,t){return t===e||e.startsWith(t)&&e[t.length]==="."}var Vr=class{constructor(e,t,u){this.fontStyle=e,this.foregroundId=t,this.backgroundId=u}};function Ii(e){if(!e)return[];if(!e.settings||!Array.isArray(e.settings))return[];let t=e.settings,u=[],r=0;for(let n=0,i=t.length;n1&&(g=m.slice(0,m.length-1),g.reverse()),u[r++]=new Oi(x,g,n,s,l,d)}}return u}var Oi=class{constructor(e,t,u,r,n,i){this.scope=e,this.parentScopes=t,this.index=u,this.fontStyle=r,this.foreground=n,this.background=i}},ke=(e=>(e[e.NotSet=-1]="NotSet",e[e.None=0]="None",e[e.Italic=1]="Italic",e[e.Bold=2]="Bold",e[e.Underline=4]="Underline",e[e.Strikethrough=8]="Strikethrough",e))(ke||{});function Fi(e,t){e.sort((s,l)=>{let d=Or(s.scope,l.scope);return d!==0||(d=Fr(s.parentScopes,l.parentScopes),d!==0)?d:s.index-l.index});let u=0,r="#000000",n="#ffffff";for(;e.length>=1&&e[0].scope==="";){let s=e.shift();s.fontStyle!==-1&&(u=s.fontStyle),s.foreground!==null&&(r=s.foreground),s.background!==null&&(n=s.background)}let i=new Mi(t),o=new Vr(u,i.getId(r),i.getId(n)),a=new Vi(new iu(0,null,-1,0,0),[]);for(let s=0,l=e.length;st?console.log("how did this happen?"):this.scopeDepth=t,u!==-1&&(this.fontStyle=u),r!==0&&(this.foreground=r),n!==0&&(this.background=n)}},Vi=class ou{constructor(t,u=[],r={}){b(this,"_rulesWithParentScopes");this._mainRule=t,this._children=r,this._rulesWithParentScopes=u}static _cmpBySpecificity(t,u){if(t.scopeDepth!==u.scopeDepth)return u.scopeDepth-t.scopeDepth;let r=0,n=0;for(;t.parentScopes[r]===">"&&r++,u.parentScopes[n]===">"&&n++,!(r>=t.parentScopes.length||n>=u.parentScopes.length);){const i=u.parentScopes[n].length-t.parentScopes[r].length;if(i!==0)return i;r++,n++}return u.parentScopes.length-t.parentScopes.length}match(t){if(t!==""){let r=t.indexOf("."),n,i;if(r===-1?(n=t,i=""):(n=t.substring(0,r),i=t.substring(r+1)),this._children.hasOwnProperty(n))return this._children[n].match(i)}const u=this._rulesWithParentScopes.concat(this._mainRule);return u.sort(ou._cmpBySpecificity),u}insert(t,u,r,n,i,o){if(u===""){this._doInsertHere(t,r,n,i,o);return}let a=u.indexOf("."),s,l;a===-1?(s=u,l=""):(s=u.substring(0,a),l=u.substring(a+1));let d;this._children.hasOwnProperty(s)?d=this._children[s]:(d=new ou(this._mainRule.clone(),iu.cloneArr(this._rulesWithParentScopes)),this._children[s]=d),d.insert(t+1,l,r,n,i,o)}_doInsertHere(t,u,r,n,i){if(u===null){this._mainRule.acceptOverwrite(t,r,n,i);return}for(let o=0,a=this._rulesWithParentScopes.length;o>>0}static getTokenType(t){return(t&768)>>>8}static containsBalancedBrackets(t){return(t&1024)!==0}static getFontStyle(t){return(t&30720)>>>11}static getForeground(t){return(t&16744448)>>>15}static getBackground(t){return(t&4278190080)>>>24}static set(t,u,r,n,i,o,a){let s=oe.getLanguageId(t),l=oe.getTokenType(t),d=oe.containsBalancedBrackets(t)?1:0,c=oe.getFontStyle(t),h=oe.getForeground(t),p=oe.getBackground(t);return u!==0&&(s=u),r!==8&&(l=r),n!==null&&(d=n?1:0),i!==-1&&(c=i),o!==0&&(h=o),a!==0&&(p=a),(s<<0|l<<8|d<<10|c<<11|h<<15|p<<24)>>>0}};function Et(e,t){const u=[],r=Bi(e);let n=r.next();for(;n!==null;){let s=0;if(n.length===2&&n.charAt(1)===":"){switch(n.charAt(0)){case"R":s=1;break;case"L":s=-1;break;default:console.log(`Unknown priority ${n} in scope selector`)}n=r.next()}let l=o();if(u.push({matcher:l,priority:s}),n!==",")break;n=r.next()}return u;function i(){if(n==="-"){n=r.next();const s=i();return l=>!!s&&!s(l)}if(n==="("){n=r.next();const s=a();return n===")"&&(n=r.next()),s}if(Nu(n)){const s=[];do s.push(n),n=r.next();while(Nu(n));return l=>t(s,l)}return null}function o(){const s=[];let l=i();for(;l;)s.push(l),l=i();return d=>s.every(c=>c(d))}function a(){const s=[];let l=o();for(;l&&(s.push(l),n==="|"||n===",");){do n=r.next();while(n==="|"||n===",");l=o()}return d=>s.some(c=>c(d))}}function Nu(e){return!!e&&!!e.match(/[\w\.:]+/)}function Bi(e){let t=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,u=t.exec(e);return{next:()=>{if(!u)return null;const r=u[0];return u=t.exec(e),r}}}function zr(e){typeof e.dispose=="function"&&e.dispose()}var Ye=class{constructor(e){this.scopeName=e}toKey(){return this.scopeName}},zi=class{constructor(e,t){this.scopeName=e,this.ruleName=t}toKey(){return`${this.scopeName}#${this.ruleName}`}},ji=class{constructor(){b(this,"_references",[]);b(this,"_seenReferenceKeys",new Set);b(this,"visitedRule",new Set)}get references(){return this._references}add(e){const t=e.toKey();this._seenReferenceKeys.has(t)||(this._seenReferenceKeys.add(t),this._references.push(e))}},$i=class{constructor(e,t){b(this,"seenFullScopeRequests",new Set);b(this,"seenPartialScopeRequests",new Set);b(this,"Q");this.repo=e,this.initialScopeName=t,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new Ye(this.initialScopeName)]}processQueue(){const e=this.Q;this.Q=[];const t=new ji;for(const u of e)qi(u,this.initialScopeName,this.repo,t);for(const u of t.references)if(u instanceof Ye){if(this.seenFullScopeRequests.has(u.scopeName))continue;this.seenFullScopeRequests.add(u.scopeName),this.Q.push(u)}else{if(this.seenFullScopeRequests.has(u.scopeName)||this.seenPartialScopeRequests.has(u.toKey()))continue;this.seenPartialScopeRequests.add(u.toKey()),this.Q.push(u)}}};function qi(e,t,u,r){const n=u.lookup(e.scopeName);if(!n){if(e.scopeName===t)throw new Error(`No grammar provided for <${t}>`);return}const i=u.lookup(t);e instanceof Ye?bt({baseGrammar:i,selfGrammar:n},r):au(e.ruleName,{baseGrammar:i,selfGrammar:n,repository:n.repository},r);const o=u.injections(e.scopeName);if(o)for(const a of o)r.add(new Ye(a))}function au(e,t,u){if(t.repository&&t.repository[e]){const r=t.repository[e];kt([r],t,u)}}function bt(e,t){e.selfGrammar.patterns&&Array.isArray(e.selfGrammar.patterns)&&kt(e.selfGrammar.patterns,{...e,repository:e.selfGrammar.repository},t),e.selfGrammar.injections&&kt(Object.values(e.selfGrammar.injections),{...e,repository:e.selfGrammar.repository},t)}function kt(e,t,u){for(const r of e){if(u.visitedRule.has(r))continue;u.visitedRule.add(r);const n=r.repository?Pr({},t.repository,r.repository):t.repository;Array.isArray(r.patterns)&&kt(r.patterns,{...t,repository:n},u);const i=r.include;if(!i)continue;const o=jr(i);switch(o.kind){case 0:bt({...t,selfGrammar:t.baseGrammar},u);break;case 1:bt(t,u);break;case 2:au(o.ruleName,{...t,repository:n},u);break;case 3:case 4:const a=o.scopeName===t.selfGrammar.scopeName?t.selfGrammar:o.scopeName===t.baseGrammar.scopeName?t.baseGrammar:void 0;if(a){const s={baseGrammar:t.baseGrammar,selfGrammar:a,repository:n};o.kind===4?au(o.ruleName,s,u):bt(s,u)}else o.kind===4?u.add(new zi(o.scopeName,o.ruleName)):u.add(new Ye(o.scopeName));break}}}var Ui=class{constructor(){b(this,"kind",0)}},Gi=class{constructor(){b(this,"kind",1)}},Hi=class{constructor(e){b(this,"kind",2);this.ruleName=e}},Wi=class{constructor(e){b(this,"kind",3);this.scopeName=e}},Zi=class{constructor(e,t){b(this,"kind",4);this.scopeName=e,this.ruleName=t}};function jr(e){if(e==="$base")return new Ui;if(e==="$self")return new Gi;const t=e.indexOf("#");if(t===-1)return new Wi(e);if(t===0)return new Hi(e.substring(1));{const u=e.substring(0,t),r=e.substring(t+1);return new Zi(u,r)}}var Ji=/\\(\d+)/,Vu=/\\(\d+)/g,Ki=-1,$r=-2;var ot=class{constructor(e,t,u,r){b(this,"$location");b(this,"id");b(this,"_nameIsCapturing");b(this,"_name");b(this,"_contentNameIsCapturing");b(this,"_contentName");this.$location=e,this.id=t,this._name=u||null,this._nameIsCapturing=ft.hasCaptures(this._name),this._contentName=r||null,this._contentNameIsCapturing=ft.hasCaptures(this._contentName)}get debugName(){const e=this.$location?`${Ir(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${e}`}getName(e,t){return!this._nameIsCapturing||this._name===null||e===null||t===null?this._name:ft.replaceCaptures(this._name,e,t)}getContentName(e,t){return!this._contentNameIsCapturing||this._contentName===null?this._contentName:ft.replaceCaptures(this._contentName,e,t)}},Yi=class extends ot{constructor(t,u,r,n,i){super(t,u,r,n);b(this,"retokenizeCapturedWithRuleId");this.retokenizeCapturedWithRuleId=i}dispose(){}collectPatterns(t,u){throw new Error("Not supported!")}compile(t,u){throw new Error("Not supported!")}compileAG(t,u,r,n){throw new Error("Not supported!")}},Qi=class extends ot{constructor(t,u,r,n,i){super(t,u,r,null);b(this,"_match");b(this,"captures");b(this,"_cachedCompiledPatterns");this._match=new Qe(n,this.id),this.captures=i,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(t,u){u.push(this._match)}compile(t,u){return this._getCachedCompiledPatterns(t).compile(t)}compileAG(t,u,r,n){return this._getCachedCompiledPatterns(t).compileAG(t,r,n)}_getCachedCompiledPatterns(t){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new Xe,this.collectPatterns(t,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},Bu=class extends ot{constructor(t,u,r,n,i){super(t,u,r,n);b(this,"hasMissingPatterns");b(this,"patterns");b(this,"_cachedCompiledPatterns");this.patterns=i.patterns,this.hasMissingPatterns=i.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(t,u){for(const r of this.patterns)t.getRule(r).collectPatterns(t,u)}compile(t,u){return this._getCachedCompiledPatterns(t).compile(t)}compileAG(t,u,r,n){return this._getCachedCompiledPatterns(t).compileAG(t,r,n)}_getCachedCompiledPatterns(t){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new Xe,this.collectPatterns(t,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},su=class extends ot{constructor(t,u,r,n,i,o,a,s,l,d){super(t,u,r,n);b(this,"_begin");b(this,"beginCaptures");b(this,"_end");b(this,"endHasBackReferences");b(this,"endCaptures");b(this,"applyEndPatternLast");b(this,"hasMissingPatterns");b(this,"patterns");b(this,"_cachedCompiledPatterns");this._begin=new Qe(i,this.id),this.beginCaptures=o,this._end=new Qe(a||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=s,this.applyEndPatternLast=l||!1,this.patterns=d.patterns,this.hasMissingPatterns=d.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(t,u){return this._end.resolveBackReferences(t,u)}collectPatterns(t,u){u.push(this._begin)}compile(t,u){return this._getCachedCompiledPatterns(t,u).compile(t)}compileAG(t,u,r,n){return this._getCachedCompiledPatterns(t,u).compileAG(t,r,n)}_getCachedCompiledPatterns(t,u){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new Xe;for(const r of this.patterns)t.getRule(r).collectPatterns(t,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,u):this._cachedCompiledPatterns.setSource(0,u)),this._cachedCompiledPatterns}},At=class extends ot{constructor(t,u,r,n,i,o,a,s,l){super(t,u,r,n);b(this,"_begin");b(this,"beginCaptures");b(this,"whileCaptures");b(this,"_while");b(this,"whileHasBackReferences");b(this,"hasMissingPatterns");b(this,"patterns");b(this,"_cachedCompiledPatterns");b(this,"_cachedCompiledWhilePatterns");this._begin=new Qe(i,this.id),this.beginCaptures=o,this.whileCaptures=s,this._while=new Qe(a,$r),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=l.patterns,this.hasMissingPatterns=l.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(t,u){return this._while.resolveBackReferences(t,u)}collectPatterns(t,u){u.push(this._begin)}compile(t,u){return this._getCachedCompiledPatterns(t).compile(t)}compileAG(t,u,r,n){return this._getCachedCompiledPatterns(t).compileAG(t,r,n)}_getCachedCompiledPatterns(t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new Xe;for(const u of this.patterns)t.getRule(u).collectPatterns(t,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(t,u){return this._getCachedCompiledWhilePatterns(t,u).compile(t)}compileWhileAG(t,u,r,n){return this._getCachedCompiledWhilePatterns(t,u).compileAG(t,r,n)}_getCachedCompiledWhilePatterns(t,u){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new Xe,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,u||"￿"),this._cachedCompiledWhilePatterns}},qr=class Y{static createCaptureRule(t,u,r,n,i){return t.registerRule(o=>new Yi(u,o,r,n,i))}static getCompiledRuleId(t,u,r){return t.id||u.registerRule(n=>{if(t.id=n,t.match)return new Qi(t.$vscodeTextmateLocation,t.id,t.name,t.match,Y._compileCaptures(t.captures,u,r));if(typeof t.begin>"u"){t.repository&&(r=Pr({},r,t.repository));let i=t.patterns;return typeof i>"u"&&t.include&&(i=[{include:t.include}]),new Bu(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,Y._compilePatterns(i,u,r))}return t.while?new At(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,Y._compileCaptures(t.beginCaptures||t.captures,u,r),t.while,Y._compileCaptures(t.whileCaptures||t.captures,u,r),Y._compilePatterns(t.patterns,u,r)):new su(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,Y._compileCaptures(t.beginCaptures||t.captures,u,r),t.end,Y._compileCaptures(t.endCaptures||t.captures,u,r),t.applyEndPatternLast,Y._compilePatterns(t.patterns,u,r))}),t.id}static _compileCaptures(t,u,r){let n=[];if(t){let i=0;for(const o in t){if(o==="$vscodeTextmateLocation")continue;const a=parseInt(o,10);a>i&&(i=a)}for(let o=0;o<=i;o++)n[o]=null;for(const o in t){if(o==="$vscodeTextmateLocation")continue;const a=parseInt(o,10);let s=0;t[o].patterns&&(s=Y.getCompiledRuleId(t[o],u,r)),n[a]=Y.createCaptureRule(u,t[o].$vscodeTextmateLocation,t[o].name,t[o].contentName,s)}}return n}static _compilePatterns(t,u,r){let n=[];if(t)for(let i=0,o=t.length;it.substring(n.start,n.end));return Vu.lastIndex=0,this.source.replace(Vu,(n,i)=>Mr(r[parseInt(i,10)]||""))}_buildAnchorCache(){if(typeof this.source!="string")throw new Error("This method should only be called if the source is a string");let t=[],u=[],r=[],n=[],i,o,a,s;for(i=0,o=this.source.length;iu.source);this._cached=new zu(e,t,this._items.map(u=>u.ruleId))}return this._cached}compileAG(e,t,u){return this._hasAnchors?t?u?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(e,t,u)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(e,t,u)),this._anchorCache.A1_G0):u?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(e,t,u)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(e,t,u)),this._anchorCache.A0_G0):this.compile(e)}_resolveAnchors(e,t,u){let r=this._items.map(n=>n.resolveAnchors(t,u));return new zu(e,r,this._items.map(n=>n.ruleId))}},zu=class{constructor(e,t,u){b(this,"scanner");this.regExps=t,this.rules=u,this.scanner=e.createOnigScanner(t)}dispose(){typeof this.scanner.dispose=="function"&&this.scanner.dispose()}toString(){const e=[];for(let t=0,u=this.rules.length;t{const u=this._scopeToLanguage(t),r=this._toStandardTokenType(t);return new Wt(u,r)}));this._defaultAttributes=new Wt(t,8),this._embeddedLanguagesMatcher=new eo(Object.entries(u||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(t){return t===null?xe._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(t)}_scopeToLanguage(t){return this._embeddedLanguagesMatcher.match(t)||0}_toStandardTokenType(t){const u=t.match(xe.STANDARD_TOKEN_TYPE_REGEXP);if(!u)return 8;switch(u[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}},b(xe,"_NULL_SCOPE_METADATA",new Wt(0,0)),b(xe,"STANDARD_TOKEN_TYPE_REGEXP",/\b(comment|string|regex|meta\.embedded)\b/),xe),eo=class{constructor(e){b(this,"values");b(this,"scopesRegExp");if(e.length===0)this.values=null,this.scopesRegExp=null;else{this.values=new Map(e);const t=e.map(([u,r])=>Mr(u));t.sort(),t.reverse(),this.scopesRegExp=new RegExp(`^((${t.join(")|(")}))($|\\.)`,"")}}match(e){if(!this.scopesRegExp)return;const t=e.match(this.scopesRegExp);if(t)return this.values.get(t[1])}},ju=class{constructor(e,t){this.stack=e,this.stoppedEarly=t}};function Gr(e,t,u,r,n,i,o,a){const s=t.content.length;let l=!1,d=-1;if(o){const p=to(e,t,u,r,n,i);n=p.stack,r=p.linePos,u=p.isFirstLine,d=p.anchorPosition}const c=Date.now();for(;!l;){if(a!==0&&Date.now()-c>a)return new ju(n,!0);h()}return new ju(n,!1);function h(){const p=uo(e,t,u,r,n,d);if(!p){i.produce(n,s),l=!0;return}const m=p.captureIndices,x=p.matchedRuleId,g=m&&m.length>0?m[0].end>r:!1;if(x===Ki){const E=n.getRule(e);i.produce(n,m[0].start),n=n.withContentNameScopesList(n.nameScopesList),Je(e,t,u,n,i,E.endCaptures,m),i.produce(n,m[0].end);const _=n;if(n=n.parent,d=_.getAnchorPos(),!g&&_.getEnterPos()===r){n=_,i.produce(n,s),l=!0;return}}else{const E=e.getRule(x);i.produce(n,m[0].start);const _=n,y=E.getName(t.content,m),k=n.contentNameScopesList.pushAttributed(y,e);if(n=n.push(x,r,d,m[0].end===s,null,k,k),E instanceof su){const D=E;Je(e,t,u,n,i,D.beginCaptures,m),i.produce(n,m[0].end),d=m[0].end;const S=D.getContentName(t.content,m),I=k.pushAttributed(S,e);if(n=n.withContentNameScopesList(I),D.endHasBackReferences&&(n=n.withEndRule(D.getEndWithResolvedBackReferences(t.content,m))),!g&&_.hasSameRuleAs(n)){n=n.pop(),i.produce(n,s),l=!0;return}}else if(E instanceof At){const D=E;Je(e,t,u,n,i,D.beginCaptures,m),i.produce(n,m[0].end),d=m[0].end;const S=D.getContentName(t.content,m),I=k.pushAttributed(S,e);if(n=n.withContentNameScopesList(I),D.whileHasBackReferences&&(n=n.withEndRule(D.getWhileWithResolvedBackReferences(t.content,m))),!g&&_.hasSameRuleAs(n)){n=n.pop(),i.produce(n,s),l=!0;return}}else if(Je(e,t,u,n,i,E.captures,m),i.produce(n,m[0].end),n=n.pop(),!g){n=n.safePop(),i.produce(n,s),l=!0;return}}m[0].end>r&&(r=m[0].end,u=!1)}}function to(e,t,u,r,n,i){let o=n.beginRuleCapturedEOL?0:-1;const a=[];for(let s=n;s;s=s.pop()){const l=s.getRule(e);l instanceof At&&a.push({rule:l,stack:s})}for(let s=a.pop();s;s=a.pop()){const{ruleScanner:l,findOptions:d}=io(s.rule,e,s.stack.endRule,u,r===o),c=l.findNextMatchSync(t,r,d);if(c){if(c.ruleId!==$r){n=s.stack.pop();break}c.captureIndices&&c.captureIndices.length&&(i.produce(s.stack,c.captureIndices[0].start),Je(e,t,u,s.stack,i,s.rule.whileCaptures,c.captureIndices),i.produce(s.stack,c.captureIndices[0].end),o=c.captureIndices[0].end,c.captureIndices[0].end>r&&(r=c.captureIndices[0].end,u=!1))}else{n=s.stack.pop();break}}return{stack:n,linePos:r,anchorPosition:o,isFirstLine:u}}function uo(e,t,u,r,n,i){const o=ro(e,t,u,r,n,i),a=e.getInjections();if(a.length===0)return o;const s=no(a,e,t,u,r,n,i);if(!s)return o;if(!o)return s;const l=o.captureIndices[0].start,d=s.captureIndices[0].start;return d=a)&&(a=y,s=_.captureIndices,l=_.ruleId,d=m.priority,a===n))break}return s?{priorityMatch:d===-1,captureIndices:s,matchedRuleId:l}:null}function Hr(e,t,u,r,n){return{ruleScanner:e.compileAG(t,u,r,n),findOptions:0}}function io(e,t,u,r,n){return{ruleScanner:e.compileWhileAG(t,u,r,n),findOptions:0}}function Je(e,t,u,r,n,i,o){if(i.length===0)return;const a=t.content,s=Math.min(i.length,o.length),l=[],d=o[0].end;for(let c=0;cd)break;for(;l.length>0&&l[l.length-1].endPos<=p.start;)n.produceFromScopes(l[l.length-1].scopes,l[l.length-1].endPos),l.pop();if(l.length>0?n.produceFromScopes(l[l.length-1].scopes,p.start):n.produce(r,p.start),h.retokenizeCapturedWithRuleId){const x=h.getName(a,o),g=r.contentNameScopesList.pushAttributed(x,e),E=h.getContentName(a,o),_=g.pushAttributed(E,e),y=r.push(h.retokenizeCapturedWithRuleId,p.start,-1,!1,null,g,_),k=e.createOnigString(a.substring(0,p.end));Gr(e,k,u&&p.start===0,p.start,y,n,!1,0),zr(k);continue}const m=h.getName(a,o);if(m!==null){const g=(l.length>0?l[l.length-1].scopes:r.contentNameScopesList).pushAttributed(m,e);l.push(new oo(g,p.end))}}for(;l.length>0;)n.produceFromScopes(l[l.length-1].scopes,l[l.length-1].endPos),l.pop()}var oo=class{constructor(e,t){b(this,"scopes");b(this,"endPos");this.scopes=e,this.endPos=t}};function ao(e,t,u,r,n,i,o,a){return new lo(e,t,u,r,n,i,o,a)}function $u(e,t,u,r,n){const i=Et(t,vt),o=qr.getCompiledRuleId(u,r,n.repository);for(const a of i)e.push({debugSelector:t,matcher:a.matcher,ruleId:o,grammar:n,priority:a.priority})}function vt(e,t){if(t.length{for(let n=u;nu&&e.substr(0,u)===t&&e[u]==="."}var lo=class{constructor(e,t,u,r,n,i,o,a){b(this,"_rootId");b(this,"_lastRuleId");b(this,"_ruleId2desc");b(this,"_includedGrammars");b(this,"_grammarRepository");b(this,"_grammar");b(this,"_injections");b(this,"_basicScopeAttributesProvider");b(this,"_tokenTypeMatchers");if(this._rootScopeName=e,this.balancedBracketSelectors=i,this._onigLib=a,this._basicScopeAttributesProvider=new Xi(u,r),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=o,this._grammar=qu(t,null),this._injections=null,this._tokenTypeMatchers=[],n)for(const s of Object.keys(n)){const l=Et(s,vt);for(const d of l)this._tokenTypeMatchers.push({matcher:d.matcher,type:n[s]})}}get themeProvider(){return this._grammarRepository}dispose(){for(const e of this._ruleId2desc)e&&e.dispose()}createOnigScanner(e){return this._onigLib.createOnigScanner(e)}createOnigString(e){return this._onigLib.createOnigString(e)}getMetadataForScope(e){return this._basicScopeAttributesProvider.getBasicScopeAttributes(e)}_collectInjections(){const e={lookup:n=>n===this._rootScopeName?this._grammar:this.getExternalGrammar(n),injections:n=>this._grammarRepository.injections(n)},t=[],u=this._rootScopeName,r=e.lookup(u);if(r){const n=r.injections;if(n)for(let o in n)$u(t,o,n[o],this,r);const i=this._grammarRepository.injections(u);i&&i.forEach(o=>{const a=this.getExternalGrammar(o);if(a){const s=a.injectionSelector;s&&$u(t,s,a,this,a)}})}return t.sort((n,i)=>n.priority-i.priority),t}getInjections(){return this._injections===null&&(this._injections=this._collectInjections()),this._injections}registerRule(e){const t=++this._lastRuleId,u=e(t);return this._ruleId2desc[t]=u,u}getRule(e){return this._ruleId2desc[e]}getExternalGrammar(e,t){if(this._includedGrammars[e])return this._includedGrammars[e];if(this._grammarRepository){const u=this._grammarRepository.lookup(e);if(u)return this._includedGrammars[e]=qu(u,t&&t.$base),this._includedGrammars[e]}}tokenizeLine(e,t,u=0){const r=this._tokenize(e,t,!1,u);return{tokens:r.lineTokens.getResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}tokenizeLine2(e,t,u=0){const r=this._tokenize(e,t,!0,u);return{tokens:r.lineTokens.getBinaryResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}_tokenize(e,t,u,r){this._rootId===-1&&(this._rootId=qr.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections());let n;if(!t||t===lu.NULL){n=!0;const l=this._basicScopeAttributesProvider.getDefaultAttributes(),d=this.themeProvider.getDefaults(),c=je.set(0,l.languageId,l.tokenType,null,d.fontStyle,d.foregroundId,d.backgroundId),h=this.getRule(this._rootId).getName(null,null);let p;h?p=Ke.createRootAndLookUpScopeName(h,c,this):p=Ke.createRoot("unknown",c),t=new lu(null,this._rootId,-1,-1,!1,null,p,p)}else n=!1,t.reset();e=e+` `;const i=this.createOnigString(e),o=i.content.length,a=new fo(u,e,this._tokenTypeMatchers,this.balancedBracketSelectors),s=Gr(this,i,n,0,t,a,!0,r);return zr(i),{lineLength:o,lineTokens:a,ruleStack:s.stack,stoppedEarly:s.stoppedEarly}}};function qu(e,t){return e=Si(e),e.repository=e.repository||{},e.repository.$self={$vscodeTextmateLocation:e.$vscodeTextmateLocation,patterns:e.patterns,name:e.scopeName},e.repository.$base=t||e.repository.$self,e}var Ke=class pe{constructor(t,u,r){this.parent=t,this.scopePath=u,this.tokenAttributes=r}static fromExtension(t,u){let r=t,n=(t==null?void 0:t.scopePath)??null;for(const i of u)n=Ht.push(n,i.scopeNames),r=new pe(r,n,i.encodedTokenAttributes);return r}static createRoot(t,u){return new pe(null,new Ht(null,t),u)}static createRootAndLookUpScopeName(t,u,r){const n=r.getMetadataForScope(t),i=new Ht(null,t),o=r.themeProvider.themeMatch(i),a=pe.mergeAttributes(u,n,o);return new pe(null,i,a)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(" ")}equals(t){return pe.equals(this,t)}static equals(t,u){do{if(t===u||!t&&!u)return!0;if(!t||!u||t.scopeName!==u.scopeName||t.tokenAttributes!==u.tokenAttributes)return!1;t=t.parent,u=u.parent}while(!0)}static mergeAttributes(t,u,r){let n=-1,i=0,o=0;return r!==null&&(n=r.fontStyle,i=r.foregroundId,o=r.backgroundId),je.set(t,u.languageId,u.tokenType,null,n,i,o)}pushAttributed(t,u){if(t===null)return this;if(t.indexOf(" ")===-1)return pe._pushAttributed(this,t,u);const r=t.split(/ /g);let n=this;for(const i of r)n=pe._pushAttributed(n,i,u);return n}static _pushAttributed(t,u,r){const n=r.getMetadataForScope(u),i=t.scopePath.push(u),o=r.themeProvider.themeMatch(i),a=pe.mergeAttributes(t.tokenAttributes,n,o);return new pe(t,i,a)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(t){var n;const u=[];let r=this;for(;r&&r!==t;)u.push({encodedTokenAttributes:r.tokenAttributes,scopeNames:r.scopePath.getExtensionIfDefined(((n=r.parent)==null?void 0:n.scopePath)??null)}),r=r.parent;return r===t?u.reverse():void 0}},ae,lu=(ae=class{constructor(t,u,r,n,i,o,a,s){b(this,"_stackElementBrand");b(this,"_enterPos");b(this,"_anchorPos");b(this,"depth");this.parent=t,this.ruleId=u,this.beginRuleCapturedEOL=i,this.endRule=o,this.nameScopesList=a,this.contentNameScopesList=s,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=r,this._anchorPos=n}equals(t){return t===null?!1:ae._equals(this,t)}static _equals(t,u){return t===u?!0:this._structuralEquals(t,u)?Ke.equals(t.contentNameScopesList,u.contentNameScopesList):!1}static _structuralEquals(t,u){do{if(t===u||!t&&!u)return!0;if(!t||!u||t.depth!==u.depth||t.ruleId!==u.ruleId||t.endRule!==u.endRule)return!1;t=t.parent,u=u.parent}while(!0)}clone(){return this}static _reset(t){for(;t;)t._enterPos=-1,t._anchorPos=-1,t=t.parent}reset(){ae._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(t,u,r,n,i,o,a){return new ae(this,t,u,r,n,i,o,a)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(t){return t.getRule(this.ruleId)}toString(){const t=[];return this._writeString(t,0),"["+t.join(",")+"]"}_writeString(t,u){var r,n;return this.parent&&(u=this.parent._writeString(t,u)),t[u++]=`(${this.ruleId}, ${(r=this.nameScopesList)==null?void 0:r.toString()}, ${(n=this.contentNameScopesList)==null?void 0:n.toString()})`,u}withContentNameScopesList(t){return this.contentNameScopesList===t?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,t)}withEndRule(t){return this.endRule===t?this:new ae(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,t,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(t){let u=this;for(;u&&u._enterPos===t._enterPos;){if(u.ruleId===t.ruleId)return!0;u=u.parent}return!1}toStateStackFrame(){var t,u,r;return{ruleId:this.ruleId,beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:((u=this.nameScopesList)==null?void 0:u.getExtensionIfDefined(((t=this.parent)==null?void 0:t.nameScopesList)??null))??[],contentNameScopesList:((r=this.contentNameScopesList)==null?void 0:r.getExtensionIfDefined(this.nameScopesList))??[]}}static pushFrame(t,u){const r=Ke.fromExtension((t==null?void 0:t.nameScopesList)??null,u.nameScopesList);return new ae(t,u.ruleId,u.enterPos??-1,u.anchorPos??-1,u.beginRuleCapturedEOL,u.endRule,r,Ke.fromExtension(r,u.contentNameScopesList))}},b(ae,"NULL",new ae(null,0,0,0,!1,null,null,null)),ae),co=class{constructor(e,t){b(this,"balancedBracketScopes");b(this,"unbalancedBracketScopes");b(this,"allowAny",!1);this.balancedBracketScopes=e.flatMap(u=>u==="*"?(this.allowAny=!0,[]):Et(u,vt).map(r=>r.matcher)),this.unbalancedBracketScopes=t.flatMap(u=>Et(u,vt).map(r=>r.matcher))}get matchesAlways(){return this.allowAny&&this.unbalancedBracketScopes.length===0}get matchesNever(){return this.balancedBracketScopes.length===0&&!this.allowAny}match(e){for(const t of this.unbalancedBracketScopes)if(t(e))return!1;for(const t of this.balancedBracketScopes)if(t(e))return!0;return this.allowAny}},fo=class{constructor(e,t,u,r){b(this,"_emitBinaryTokens");b(this,"_lineText");b(this,"_tokens");b(this,"_binaryTokens");b(this,"_lastTokenEndIndex");b(this,"_tokenTypeOverrides");this.balancedBracketSelectors=r,this._emitBinaryTokens=e,this._tokenTypeOverrides=u,this._lineText=null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}produce(e,t){this.produceFromScopes(e.contentNameScopesList,t)}produceFromScopes(e,t){var r;if(this._lastTokenEndIndex>=t)return;if(this._emitBinaryTokens){let n=(e==null?void 0:e.tokenAttributes)??0,i=!1;if((r=this.balancedBracketSelectors)!=null&&r.matchesAlways&&(i=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const o=(e==null?void 0:e.getScopeNames())??[];for(const a of this._tokenTypeOverrides)a.matcher(o)&&(n=je.set(n,0,a.type,null,-1,0,0));this.balancedBracketSelectors&&(i=this.balancedBracketSelectors.match(o))}if(i&&(n=je.set(n,0,8,i,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===n){this._lastTokenEndIndex=t;return}this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(n),this._lastTokenEndIndex=t;return}const u=(e==null?void 0:e.getScopeNames())??[];this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:t,scopes:u}),this._lastTokenEndIndex=t}getResult(e,t){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===t-1&&this._tokens.pop(),this._tokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(e,t){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===t-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),this._binaryTokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._binaryTokens[this._binaryTokens.length-2]=0);const u=new Uint32Array(this._binaryTokens.length);for(let r=0,n=this._binaryTokens.length;r0;)o.Q.map(a=>this._loadSingleGrammar(a.scopeName)),o.processQueue();return this._grammarForScopeName(t,u,r,n,i)}_loadSingleGrammar(t){this._ensureGrammarCache.has(t)||(this._doLoadSingleGrammar(t),this._ensureGrammarCache.set(t,!0))}_doLoadSingleGrammar(t){const u=this._options.loadGrammar(t);if(u){const r=typeof this._options.getInjections=="function"?this._options.getInjections(t):void 0;this._syncRegistry.addGrammar(u,r)}}addGrammar(t,u=[],r=0,n=null){return this._syncRegistry.addGrammar(t,u),this._grammarForScopeName(t.scopeName,r,n)}_grammarForScopeName(t,u=0,r=null,n=null,i=null){return this._syncRegistry.grammarForScopeName(t,u,r,n,i)}},cu=lu.NULL;const ho=["area","base","basefont","bgsound","br","col","command","embed","frame","hr","image","img","input","keygen","link","meta","param","source","track","wbr"];class at{constructor(t,u,r){this.normal=u,this.property=t,r&&(this.space=r)}}at.prototype.normal={};at.prototype.property={};at.prototype.space=void 0;function Wr(e,t){const u={},r={};for(const n of e)Object.assign(u,n.property),Object.assign(r,n.normal);return new at(u,r,t)}function du(e){return e.toLowerCase()}class ue{constructor(t,u){this.attribute=u,this.property=t}}ue.prototype.attribute="";ue.prototype.booleanish=!1;ue.prototype.boolean=!1;ue.prototype.commaOrSpaceSeparated=!1;ue.prototype.commaSeparated=!1;ue.prototype.defined=!1;ue.prototype.mustUseProperty=!1;ue.prototype.number=!1;ue.prototype.overloadedBoolean=!1;ue.prototype.property="";ue.prototype.spaceSeparated=!1;ue.prototype.space=void 0;let _o=0;const P=Pe(),$=Pe(),fu=Pe(),A=Pe(),M=Pe(),Ve=Pe(),ne=Pe();function Pe(){return 2**++_o}const pu=Object.freeze(Object.defineProperty({__proto__:null,boolean:P,booleanish:$,commaOrSpaceSeparated:ne,commaSeparated:Ve,number:A,overloadedBoolean:fu,spaceSeparated:M},Symbol.toStringTag,{value:"Module"})),Zt=Object.keys(pu);class Eu extends ue{constructor(t,u,r,n){let i=-1;if(super(t,u),Uu(this,"space",n),typeof r=="number")for(;++i4&&u.slice(0,4)==="data"&&xo.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(Gu,Ao);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!Gu.test(i)){let o=i.replace(yo,ko);o.charAt(0)!=="-"&&(o="-"+o),t="data"+o}}n=Eu}return new n(r,t)}function ko(e){return"-"+e.toLowerCase()}function Ao(e){return e.charAt(1).toUpperCase()}const vo=Wr([Zr,go,Yr,Qr,Xr],"html"),en=Wr([Zr,bo,Yr,Qr,Xr],"svg"),Hu={}.hasOwnProperty;function Co(e,t){const u=t||{};function r(n,...i){let o=r.invalid;const a=r.handlers;if(n&&Hu.call(n,e)){const s=String(n[e]);o=Hu.call(a,s)?a[s]:r.unknown}if(o)return o.call(this,n,...i)}return r.handlers=u.handlers||{},r.invalid=u.invalid,r.unknown=u.unknown,r}const Do=/["&'<>`]/g,wo=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,So=/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,To=/[|\\{}()[\]^$+*?.]/g,Wu=new WeakMap;function Ro(e,t){if(e=e.replace(t.subset?Lo(t.subset):Do,r),t.subset||t.escapeOnly)return e;return e.replace(wo,u).replace(So,r);function u(n,i,o){return t.format((n.charCodeAt(0)-55296)*1024+n.charCodeAt(1)-56320+65536,o.charCodeAt(i+2),t)}function r(n,i,o){return t.format(n.charCodeAt(0),o.charCodeAt(i+1),t)}}function Lo(e){let t=Wu.get(e);return t||(t=Po(e),Wu.set(e,t)),t}function Po(e){const t=[];let u=-1;for(;++u",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",permil:"‰",lsaquo:"‹",rsaquo:"›",euro:"€"},Vo=["cent","copy","divide","gt","lt","not","para","times"],tn={}.hasOwnProperty,mu={};let pt;for(pt in Jt)tn.call(Jt,pt)&&(mu[Jt[pt]]=pt);const Bo=/[^\dA-Za-z]/;function zo(e,t,u,r){const n=String.fromCharCode(e);if(tn.call(mu,n)){const i=mu[n],o="&"+i;return u&&No.includes(i)&&!Vo.includes(i)&&(!r||t&&t!==61&&Bo.test(String.fromCharCode(t)))?o:o+";"}return""}function jo(e,t,u){let r=Oo(e,t,u.omitOptionalSemicolons),n;if((u.useNamedReferences||u.useShortestReferences)&&(n=zo(e,t,u.omitOptionalSemicolons,u.attribute)),(u.useShortestReferences||!n)&&u.useShortestReferences){const i=Mo(e,t,u.omitOptionalSemicolons);i.length|^->||--!>|"],Uo=["<",">"];function Go(e,t,u,r){return r.settings.bogusComments?"":"";function n(i){return Be(i,Object.assign({},r.settings.characterReferences,{subset:Uo}))}}function Ho(e,t,u,r){return""}function Zu(e,t){const u=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,n=u.indexOf(t);for(;n!==-1;)r++,n=u.indexOf(t,n+t.length);return r}function Wo(e,t){const u=t||{};return(e[e.length-1]===""?[...e,""]:e).join((u.padRight?" ":"")+","+(u.padLeft===!1?"":" ")).trim()}function Zo(e){return e.join(" ").trim()}const Jo=/[ \t\n\f\r]/g;function ku(e){return typeof e=="object"?e.type==="text"?Ju(e.value):!1:Ju(e)}function Ju(e){return e.replace(Jo,"")===""}const H=rn(1),un=rn(-1),Ko=[];function rn(e){return t;function t(u,r,n){const i=u?u.children:Ko;let o=(r||0)+e,a=i[o];if(!n)for(;a&&ku(a);)o+=e,a=i[o];return a}}const Yo={}.hasOwnProperty;function nn(e){return t;function t(u,r,n){return Yo.call(e,u.tagName)&&e[u.tagName](u,r,n)}}const Au=nn({body:Xo,caption:Kt,colgroup:Kt,dd:ra,dt:ua,head:Kt,html:Qo,li:ta,optgroup:na,option:ia,p:ea,rp:Ku,rt:Ku,tbody:aa,td:Yu,tfoot:sa,th:Yu,thead:oa,tr:la});function Kt(e,t,u){const r=H(u,t,!0);return!r||r.type!=="comment"&&!(r.type==="text"&&ku(r.value.charAt(0)))}function Qo(e,t,u){const r=H(u,t);return!r||r.type!=="comment"}function Xo(e,t,u){const r=H(u,t);return!r||r.type!=="comment"}function ea(e,t,u){const r=H(u,t);return r?r.type==="element"&&(r.tagName==="address"||r.tagName==="article"||r.tagName==="aside"||r.tagName==="blockquote"||r.tagName==="details"||r.tagName==="div"||r.tagName==="dl"||r.tagName==="fieldset"||r.tagName==="figcaption"||r.tagName==="figure"||r.tagName==="footer"||r.tagName==="form"||r.tagName==="h1"||r.tagName==="h2"||r.tagName==="h3"||r.tagName==="h4"||r.tagName==="h5"||r.tagName==="h6"||r.tagName==="header"||r.tagName==="hgroup"||r.tagName==="hr"||r.tagName==="main"||r.tagName==="menu"||r.tagName==="nav"||r.tagName==="ol"||r.tagName==="p"||r.tagName==="pre"||r.tagName==="section"||r.tagName==="table"||r.tagName==="ul"):!u||!(u.type==="element"&&(u.tagName==="a"||u.tagName==="audio"||u.tagName==="del"||u.tagName==="ins"||u.tagName==="map"||u.tagName==="noscript"||u.tagName==="video"))}function ta(e,t,u){const r=H(u,t);return!r||r.type==="element"&&r.tagName==="li"}function ua(e,t,u){const r=H(u,t);return!!(r&&r.type==="element"&&(r.tagName==="dt"||r.tagName==="dd"))}function ra(e,t,u){const r=H(u,t);return!r||r.type==="element"&&(r.tagName==="dt"||r.tagName==="dd")}function Ku(e,t,u){const r=H(u,t);return!r||r.type==="element"&&(r.tagName==="rp"||r.tagName==="rt")}function na(e,t,u){const r=H(u,t);return!r||r.type==="element"&&r.tagName==="optgroup"}function ia(e,t,u){const r=H(u,t);return!r||r.type==="element"&&(r.tagName==="option"||r.tagName==="optgroup")}function oa(e,t,u){const r=H(u,t);return!!(r&&r.type==="element"&&(r.tagName==="tbody"||r.tagName==="tfoot"))}function aa(e,t,u){const r=H(u,t);return!r||r.type==="element"&&(r.tagName==="tbody"||r.tagName==="tfoot")}function sa(e,t,u){return!H(u,t)}function la(e,t,u){const r=H(u,t);return!r||r.type==="element"&&r.tagName==="tr"}function Yu(e,t,u){const r=H(u,t);return!r||r.type==="element"&&(r.tagName==="td"||r.tagName==="th")}const ca=nn({body:pa,colgroup:ma,head:fa,html:da,tbody:ha});function da(e){const t=H(e,-1);return!t||t.type!=="comment"}function fa(e){const t=new Set;for(const r of e.children)if(r.type==="element"&&(r.tagName==="base"||r.tagName==="title")){if(t.has(r.tagName))return!1;t.add(r.tagName)}const u=e.children[0];return!u||u.type==="element"}function pa(e){const t=H(e,-1,!0);return!t||t.type!=="comment"&&!(t.type==="text"&&ku(t.value.charAt(0)))&&!(t.type==="element"&&(t.tagName==="meta"||t.tagName==="link"||t.tagName==="script"||t.tagName==="style"||t.tagName==="template"))}function ma(e,t,u){const r=un(u,t),n=H(e,-1,!0);return u&&r&&r.type==="element"&&r.tagName==="colgroup"&&Au(r,u.children.indexOf(r),u)?!1:!!(n&&n.type==="element"&&n.tagName==="col")}function ha(e,t,u){const r=un(u,t),n=H(e,-1);return u&&r&&r.type==="element"&&(r.tagName==="thead"||r.tagName==="tbody")&&Au(r,u.children.indexOf(r),u)?!1:!!(n&&n.type==="element"&&n.tagName==="tr")}const mt={name:[[` \f\r &/=>`.split(""),` \f\r "&'/=>\``.split("")],[`\0 \f\r "&'/<=>`.split(""),`\0 \f\r "&'/<=>\``.split("")]],unquoted:[[` \f\r &>`.split(""),`\0 \f\r "&'<=>\``.split("")],[`\0 \f\r "&'<=>\``.split(""),`\0 \f\r "&'<=>\``.split("")]],single:[["&'".split(""),"\"&'`".split("")],["\0&'".split(""),"\0\"&'`".split("")]],double:[['"&'.split(""),"\"&'`".split("")],['\0"&'.split(""),"\0\"&'`".split("")]]};function _a(e,t,u,r){const n=r.schema,i=n.space==="svg"?!1:r.settings.omitOptionalTags;let o=n.space==="svg"?r.settings.closeEmptyElements:r.settings.voids.includes(e.tagName.toLowerCase());const a=[];let s;n.space==="html"&&e.tagName==="svg"&&(r.schema=en);const l=ga(r,e.properties),d=r.all(n.space==="html"&&e.tagName==="template"?e.content:e);return r.schema=n,d&&(o=!1),(l||!i||!ca(e,t,u))&&(a.push("<",e.tagName,l?" "+l:""),o&&(n.space==="svg"||r.settings.closeSelfClosing)&&(s=l.charAt(l.length-1),(!r.settings.tightSelfClosing||s==="/"||s&&s!=='"'&&s!=="'")&&a.push(" "),a.push("/")),a.push(">")),a.push(d),!o&&(!i||!Au(e,t,u))&&a.push(""),a.join("")}function ga(e,t){const u=[];let r=-1,n;if(t){for(n in t)if(t[n]!==null&&t[n]!==void 0){const i=ba(e,n,t[n]);i&&u.push(i)}}for(;++rZu(u,e.alternative)&&(o=e.alternative),a=o+Be(u,Object.assign({},e.settings.characterReferences,{subset:(o==="'"?mt.single:mt.double)[n][i],attribute:!0}))+o),s+(a&&"="+a))}const ya=["<","&"];function on(e,t,u,r){return u&&u.type==="element"&&(u.tagName==="script"||u.tagName==="style")?e.value:Be(e.value,Object.assign({},r.settings.characterReferences,{subset:ya}))}function xa(e,t,u,r){return r.settings.allowDangerousHtml?e.value:on(e,t,u,r)}function Ea(e,t,u,r){return r.all(e)}const ka=Co("type",{invalid:Aa,unknown:va,handlers:{comment:Go,doctype:Ho,element:_a,raw:xa,root:Ea,text:on}});function Aa(e){throw new Error("Expected node, not `"+e+"`")}function va(e){const t=e;throw new Error("Cannot compile unknown node `"+t.type+"`")}const Ca={},Da={},wa=[];function Sa(e,t){const u=Ca,r=u.quote||'"',n=r==='"'?"'":'"';if(r!=='"'&&r!=="'")throw new Error("Invalid quote `"+r+"`, expected `'` or `\"`");return{one:Ta,all:Ra,settings:{omitOptionalTags:u.omitOptionalTags||!1,allowParseErrors:u.allowParseErrors||!1,allowDangerousCharacters:u.allowDangerousCharacters||!1,quoteSmart:u.quoteSmart||!1,preferUnquoted:u.preferUnquoted||!1,tightAttributes:u.tightAttributes||!1,upperDoctype:u.upperDoctype||!1,tightDoctype:u.tightDoctype||!1,bogusComments:u.bogusComments||!1,tightCommaSeparatedLists:u.tightCommaSeparatedLists||!1,tightSelfClosing:u.tightSelfClosing||!1,collapseEmptyAttributes:u.collapseEmptyAttributes||!1,allowDangerousHtml:u.allowDangerousHtml||!1,voids:u.voids||ho,characterReferences:u.characterReferences||Da,closeSelfClosing:u.closeSelfClosing||!1,closeEmptyElements:u.closeEmptyElements||!1},schema:u.space==="svg"?en:vo,quote:r,alternative:n}.one(Array.isArray(e)?{type:"root",children:e}:e,void 0,void 0)}function Ta(e,t,u){return ka(e,t,u,this)}function Ra(e){const t=[],u=e&&e.children||wa;let r=-1;for(;++ru&&r.push({...e,content:e.content.slice(u,n),offset:e.offset+u}),u=n;return ur-n);return u.length?e.map(r=>r.flatMap(n=>{const i=u.filter(o=>n.offseto-n.offset).sort((o,a)=>o-a);return i.length?Pa(n,i):n})):e}async function cn(e){return Promise.resolve(typeof e=="function"?e():e).then(t=>t.default||t)}function Ct(e,t){const u=typeof e=="string"?{}:{...e.colorReplacements},r=typeof e=="string"?e:e.name;for(const[n,i]of Object.entries((t==null?void 0:t.colorReplacements)||{}))typeof i=="string"?u[n]=i:n===r&&Object.assign(u,i);return u}function Re(e,t){return e&&((t==null?void 0:t[e==null?void 0:e.toLowerCase()])||e)}function dn(e){const t={};return e.color&&(t.color=e.color),e.bgColor&&(t["background-color"]=e.bgColor),e.fontStyle&&(e.fontStyle&ke.Italic&&(t["font-style"]="italic"),e.fontStyle&ke.Bold&&(t["font-weight"]="bold"),e.fontStyle&ke.Underline&&(t["text-decoration"]="underline")),t}function Oa(e){return typeof e=="string"?e:Object.entries(e).map(([t,u])=>`${t}:${u}`).join(";")}function Fa(e){const t=Ft(e,!0).map(([n])=>n);function u(n){if(n===e.length)return{line:t.length-1,character:t[t.length-1].length};let i=n,o=0;for(const a of t){if(i[r,cu])),t)}getInternalStack(t=this.theme){return this._stacks[t]}get scopes(){return Qu(this._stacks[this.theme])}getScopes(t=this.theme){return Qu(this._stacks[t])}toJSON(){return{lang:this.lang,theme:this.theme,themes:this.themes,scopes:this.scopes}}}function Qu(e){const t=[],u=new Set;function r(n){var o;if(u.has(n))return;u.add(n);const i=(o=n==null?void 0:n.nameScopesList)==null?void 0:o.scopeName;i&&t.push(i),n.parent&&r(n.parent)}return r(e),t}function Ma(e,t){if(!(e instanceof Ge))throw new ee("Invalid grammar state");return e.getInternalStack(t)}function Na(){const e=new WeakMap;function t(u){if(!e.has(u.meta)){let r=function(o){if(typeof o=="number"){if(o<0||o>u.source.length)throw new ee(`Invalid decoration offset: ${o}. Code length: ${u.source.length}`);return{...n.indexToPos(o),offset:o}}else{const a=n.lines[o.line];if(a===void 0)throw new ee(`Invalid decoration position ${JSON.stringify(o)}. Lines length: ${n.lines.length}`);if(o.character<0||o.character>a.length)throw new ee(`Invalid decoration position ${JSON.stringify(o)}. Line ${o.line} length: ${a.length}`);return{...o,offset:n.posToIndex(o.line,o.character)}}};const n=Fa(u.source),i=(u.options.decorations||[]).map(o=>({...o,start:r(o.start),end:r(o.end)}));Va(i),e.set(u.meta,{decorations:i,converter:n,source:u.source})}return e.get(u.meta)}return{name:"shiki:decorations",tokens(u){var o;if(!((o=this.options.decorations)!=null&&o.length))return;const n=t(this).decorations.flatMap(a=>[a.start.offset,a.end.offset]);return Ia(u,n)},code(u){var d;if(!((d=this.options.decorations)!=null&&d.length))return;const r=t(this),n=Array.from(u.children).filter(c=>c.type==="element"&&c.tagName==="span");if(n.length!==r.converter.lines.length)throw new ee(`Number of lines in code element (${n.length}) does not match the number of lines in the source (${r.converter.lines.length}). Failed to apply decorations.`);function i(c,h,p,m){const x=n[c];let g="",E=-1,_=-1;if(h===0&&(E=0),p===0&&(_=0),p===Number.POSITIVE_INFINITY&&(_=x.children.length),E===-1||_===-1)for(let k=0;kE);return c.tagName=h.tagName||"span",c.properties={...c.properties,...m,class:c.properties.class},(g=h.properties)!=null&&g.class&&ln(c,h.properties.class),c=x(c,p)||c,c}const s=[],l=r.decorations.sort((c,h)=>h.start.offset-c.start.offset);for(const c of l){const{start:h,end:p}=c;if(h.line===p.line)i(h.line,h.character,p.character,c);else if(h.lineo(m,c));i(p.line,0,p.character,c)}}s.forEach(c=>c())}}}function Va(e){for(let t=0;tu.end.offset)throw new ee(`Invalid decoration range: ${JSON.stringify(u.start)} - ${JSON.stringify(u.end)}`);for(let r=t+1;rNumber.parseInt(o));i.length===3&&!i.some(o=>Number.isNaN(o))&&(n={type:"rgb",rgb:i})}else if(r==="5"){const i=Number.parseInt(e[t+u]);Number.isNaN(i)||(n={type:"table",index:Number(i)})}return[u,n]}function ja(e){const t=[];for(let u=0;u=90&&n<=97?t.push({type:"setForegroundColor",value:{type:"named",name:Le[n-90+8]}}):n>=100&&n<=107&&t.push({type:"setBackgroundColor",value:{type:"named",name:Le[n-100+8]}})}return t}function $a(){let e=null,t=null,u=new Set;return{parse(r){const n=[];let i=0;do{const o=za(r,i),a=o.sequence?r.substring(i,o.startPosition):r.substring(i);if(a.length>0&&n.push({value:a,foreground:e,background:t,decorations:new Set(u)}),o.sequence){const s=ja(o.sequence);for(const l of s)l.type==="resetAll"?(e=null,t=null,u.clear()):l.type==="resetForegroundColor"?e=null:l.type==="resetBackgroundColor"?t=null:l.type==="resetDecoration"&&u.delete(l.value);for(const l of s)l.type==="setForegroundColor"?e=l.value:l.type==="setBackgroundColor"?t=l.value:l.type==="setDecoration"&&u.add(l.value)}i=o.position}while(iMath.max(0,Math.min(s,255)).toString(16).padStart(2,"0")).join("")}`}let r;function n(){if(r)return r;r=[];for(let l=0;l{var s;return[a,(s=e.colors)==null?void 0:s[`terminal.ansi${a[0].toUpperCase()}${a.substring(1)}`]]}))),o=$a();return n.map(a=>o.parse(a[0]).map(s=>{let l,d;s.decorations.has("reverse")?(l=s.background?i.value(s.background):e.bg,d=s.foreground?i.value(s.foreground):e.fg):(l=s.foreground?i.value(s.foreground):e.fg,d=s.background?i.value(s.background):void 0),l=Re(l,r),d=Re(d,r),s.decorations.has("dim")&&(l=Ha(l));let c=ke.None;return s.decorations.has("bold")&&(c|=ke.Bold),s.decorations.has("italic")&&(c|=ke.Italic),s.decorations.has("underline")&&(c|=ke.Underline),{content:s.value,offset:a[1],color:l,bgColor:d,fontStyle:c}}))}function Ha(e){const t=e.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/);if(t)if(t[3]){const r=Math.round(Number.parseInt(t[3],16)/2).toString(16).padStart(2,"0");return`#${t[1]}${t[2]}${r}`}else return t[2]?`#${t[1]}${t[2]}80`:`#${Array.from(t[1]).map(r=>`${r}${r}`).join("")}80`;const u=e.match(/var\((--[\w-]+-ansi-[\w-]+)\)/);return u?`var(${u[1]}-dim)`:e}function Du(e,t,u={}){const{lang:r="text",theme:n=e.getLoadedThemes()[0]}=u;if(vu(r)||Cu(n))return Ft(t).map(s=>[{content:s[0],offset:s[1]}]);const{theme:i,colorMap:o}=e.setTheme(n);if(r==="ansi")return Ga(i,t,u);const a=e.getLanguage(r);if(u.grammarState){if(u.grammarState.lang!==a.name)throw new Ae(`Grammar state language "${u.grammarState.lang}" does not match highlight language "${a.name}"`);if(!u.grammarState.themes.includes(i.name))throw new Ae(`Grammar state themes "${u.grammarState.themes}" do not contain highlight theme "${i.name}"`)}return Za(t,a,i,o,u)}function Wa(...e){if(e.length===2)return et(e[1]);const[t,u,r={}]=e,{lang:n="text",theme:i=t.getLoadedThemes()[0]}=r;if(vu(n)||Cu(i))throw new Ae("Plain language does not have grammar state");if(n==="ansi")throw new Ae("ANSI language does not have grammar state");const{theme:o,colorMap:a}=t.setTheme(i),s=t.getLanguage(n);return new Ge(wt(u,s,o,a,r).stateStack,s.name,o.name)}function Za(e,t,u,r,n){const i=wt(e,t,u,r,n),o=new Ge(wt(e,t,u,r,n).stateStack,t.name,u.name);return Mt(i.tokens,o),i.tokens}function wt(e,t,u,r,n){const i=Ct(u,n),{tokenizeMaxLineLength:o=0,tokenizeTimeLimit:a=500}=n,s=Ft(e);let l=n.grammarState?Ma(n.grammarState,u.name)??cu:n.grammarContextCode!=null?wt(n.grammarContextCode,t,u,r,{...n,grammarState:void 0,grammarContextCode:void 0}).stateStack:cu,d=[];const c=[];for(let h=0,p=s.length;h0&&m.length>=o){d=[],c.push([{content:m,offset:x,color:"",fontStyle:0}]);continue}let g,E,_;n.includeExplanation&&(g=t.tokenizeLine(m,l),E=g.tokens,_=0);const y=t.tokenizeLine2(m,l,a),k=y.tokens.length/2;for(let D=0;DK.trim());break;case"object":B=v.scope;break;default:continue}Ie.push({settings:v,selectors:B.map(K=>K.split(/ /))})}de.explanation=[];let w=0;for(;S+w({scopeName:t}))}function Ka(e,t){const u=[];for(let r=0,n=t.length;r=0&&n>=0;)er(e[r],u[n])&&(r-=1),n-=1;return r===-1}function Qa(e,t,u){const r=[];for(const{selectors:n,settings:i}of e)for(const o of n)if(Ya(o,t,u)){r.push(i);break}return r}function mn(e,t,u){const r=Object.entries(u.themes).filter(s=>s[1]).map(s=>({color:s[0],theme:s[1]})),n=r.map(s=>{const l=Du(e,t,{...u,theme:s.theme}),d=et(l),c=typeof s.theme=="string"?s.theme:s.theme.name;return{tokens:l,state:d,theme:c}}),i=Xa(...n.map(s=>s.tokens)),o=i[0].map((s,l)=>s.map((d,c)=>{const h={content:d.content,variants:{},offset:d.offset};return"includeExplanation"in u&&u.includeExplanation&&(h.explanation=d.explanation),i.forEach((p,m)=>{const{content:x,explanation:g,offset:E,..._}=p[l][c];h.variants[r[m].color]=_}),h})),a=n[0].state?new Ge(Object.fromEntries(n.map(s=>{var l;return[s.theme,(l=s.state)==null?void 0:l.getInternalStack(s.theme)]})),n[0].state.lang):void 0;return a&&Mt(o,a),o}function Xa(...e){const t=e.map(()=>[]),u=e.length;for(let r=0;rs[r]),i=t.map(()=>[]);t.forEach((s,l)=>s.push(i[l]));const o=n.map(()=>0),a=n.map(s=>s[0]);for(;a.every(s=>s);){const s=Math.min(...a.map(l=>l.content.length));for(let l=0;lg[1]).map(g=>({color:g[0],theme:g[1]})).sort((g,E)=>g.color===l?-1:E.color===l?1:0);if(c.length===0)throw new Ae("`themes` option must not be empty");const h=mn(e,t,u);if(s=et(h),l&&!c.find(g=>g.color===l))throw new Ae(`\`themes\` option must contain the defaultColor key \`${l}\``);const p=c.map(g=>e.getTheme(g.theme)),m=c.map(g=>g.color);i=h.map(g=>g.map(E=>es(E,m,d,l))),s&&Mt(i,s);const x=c.map(g=>Ct(g.theme,u));n=c.map((g,E)=>(E===0&&l?"":`${d+g.color}:`)+(Re(p[E].fg,x[E])||"inherit")).join(";"),r=c.map((g,E)=>(E===0&&l?"":`${d+g.color}-bg:`)+(Re(p[E].bg,x[E])||"inherit")).join(";"),o=`shiki-themes ${p.map(g=>g.name).join(" ")}`,a=l?void 0:[n,r].join(";")}else if("theme"in u){const l=Ct(u.theme,u);i=Du(e,t,u);const d=e.getTheme(u.theme);r=Re(d.bg,l),n=Re(d.fg,l),o=d.name,s=et(i)}else throw new Ae("Invalid options, either `theme` or `themes` must be provided");return{tokens:i,fg:n,bg:r,themeName:o,rootStyle:a,grammarState:s}}function es(e,t,u,r){const n={content:e.content,explanation:e.explanation,offset:e.offset},i=t.map(s=>dn(e.variants[s])),o=new Set(i.flatMap(s=>Object.keys(s))),a={};return i.forEach((s,l)=>{for(const d of o){const c=s[d]||"inherit";if(l===0&&r)a[d]=c;else{const h=d==="color"?"":d==="background-color"?"-bg":`-${d}`,p=u+t[l]+(d==="color"?"":h);a[p]=c}}}),n.htmlStyle=a,n}function Tt(e,t,u,r={meta:{},options:u,codeToHast:(n,i)=>Tt(e,n,i),codeToTokens:(n,i)=>St(e,n,i)}){var p,m;let n=t;for(const x of Dt(u))n=((p=x.preprocess)==null?void 0:p.call(r,n,u))||n;let{tokens:i,fg:o,bg:a,themeName:s,rootStyle:l,grammarState:d}=St(e,n,u);const{mergeWhitespaces:c=!0}=u;c===!0?i=us(i):c==="never"&&(i=rs(i));const h={...r,get source(){return n}};for(const x of Dt(u))i=((m=x.tokens)==null?void 0:m.call(h,i))||i;return ts(i,{...u,fg:o,bg:a,themeName:s,rootStyle:l},h,d)}function ts(e,t,u,r=et(e)){var m,x,g;const n=Dt(t),i=[],o={type:"root",children:[]},{structure:a="classic",tabindex:s="0"}=t;let l={type:"element",tagName:"pre",properties:{class:`shiki ${t.themeName||""}`,style:t.rootStyle||`background-color:${t.bg};color:${t.fg}`,...s!==!1&&s!=null?{tabindex:s.toString()}:{},...Object.fromEntries(Array.from(Object.entries(t.meta||{})).filter(([E])=>!E.startsWith("_")))},children:[]},d={type:"element",tagName:"code",properties:{},children:i};const c=[],h={...u,structure:a,addClassToHast:ln,get source(){return u.source},get tokens(){return e},get options(){return t},get root(){return o},get pre(){return l},get code(){return d},get lines(){return c}};if(e.forEach((E,_)=>{var D,S;_&&(a==="inline"?o.children.push({type:"element",tagName:"br",properties:{},children:[]}):a==="classic"&&i.push({type:"text",value:` `}));let y={type:"element",tagName:"span",properties:{class:"line"},children:[]},k=0;for(const I of E){let z={type:"element",tagName:"span",properties:{...I.htmlAttrs},children:[{type:"text",value:I.content}]};I.htmlStyle;const Q=Oa(I.htmlStyle||dn(I));Q&&(z.properties.style=Q);for(const re of n)z=((D=re==null?void 0:re.span)==null?void 0:D.call(h,z,_+1,k,y,I))||z;a==="inline"?o.children.push(z):a==="classic"&&y.children.push(z),k+=I.content.length}if(a==="classic"){for(const I of n)y=((S=I==null?void 0:I.line)==null?void 0:S.call(h,y,_+1))||y;c.push(y),i.push(y)}}),a==="classic"){for(const E of n)d=((m=E==null?void 0:E.code)==null?void 0:m.call(h,d))||d;l.children.push(d);for(const E of n)l=((x=E==null?void 0:E.pre)==null?void 0:x.call(h,l))||l;o.children.push(l)}let p=o;for(const E of n)p=((g=E==null?void 0:E.root)==null?void 0:g.call(h,p))||p;return r&&Mt(p,r),p}function us(e){return e.map(t=>{const u=[];let r="",n=0;return t.forEach((i,o)=>{const s=!(i.fontStyle&&i.fontStyle&ke.Underline);s&&i.content.match(/^\s+$/)&&t[o+1]?(n||(n=i.offset),r+=i.content):r?(s?u.push({...i,offset:n,content:r+i.content}):u.push({content:r,offset:n},i),n=0,r=""):u.push(i)}),u})}function rs(e){return e.map(t=>t.flatMap(u=>{if(u.content.match(/^\s+$/))return u;const r=u.content.match(/^(\s*)(.*?)(\s*)$/);if(!r)return u;const[,n,i,o]=r;if(!n&&!o)return u;const a=[{...u,offset:u.offset+n.length,content:i}];return n&&a.unshift({content:n,offset:u.offset}),o&&a.push({content:o,offset:u.offset+n.length+i.length}),a}))}function ns(e,t,u){var i;const r={meta:{},options:u,codeToHast:(o,a)=>Tt(e,o,a),codeToTokens:(o,a)=>St(e,o,a)};let n=Sa(Tt(e,t,u,r));for(const o of Dt(u))n=((i=o.postprocess)==null?void 0:i.call(r,n,u))||n;return n}const tr={light:"#333333",dark:"#bbbbbb"},ur={light:"#fffffe",dark:"#1e1e1e"},rr="__shiki_resolved";function wu(e){var a,s,l,d,c;if(e!=null&&e[rr])return e;const t={...e};t.tokenColors&&!t.settings&&(t.settings=t.tokenColors,delete t.tokenColors),t.type||(t.type="dark"),t.colorReplacements={...t.colorReplacements},t.settings||(t.settings=[]);let{bg:u,fg:r}=t;if(!u||!r){const h=t.settings?t.settings.find(p=>!p.name&&!p.scope):void 0;(a=h==null?void 0:h.settings)!=null&&a.foreground&&(r=h.settings.foreground),(s=h==null?void 0:h.settings)!=null&&s.background&&(u=h.settings.background),!r&&((l=t==null?void 0:t.colors)!=null&&l["editor.foreground"])&&(r=t.colors["editor.foreground"]),!u&&((d=t==null?void 0:t.colors)!=null&&d["editor.background"])&&(u=t.colors["editor.background"]),r||(r=t.type==="light"?tr.light:tr.dark),u||(u=t.type==="light"?ur.light:ur.dark),t.fg=r,t.bg=u}t.settings[0]&&t.settings[0].settings&&!t.settings[0].scope||t.settings.unshift({settings:{foreground:t.fg,background:t.bg}});let n=0;const i=new Map;function o(h){var m;if(i.has(h))return i.get(h);n+=1;const p=`#${n.toString(16).padStart(8,"0").toLowerCase()}`;return(m=t.colorReplacements)!=null&&m[`#${p}`]?o(h):(i.set(h,p),p)}t.settings=t.settings.map(h=>{var g,E;const p=((g=h.settings)==null?void 0:g.foreground)&&!h.settings.foreground.startsWith("#"),m=((E=h.settings)==null?void 0:E.background)&&!h.settings.background.startsWith("#");if(!p&&!m)return h;const x={...h,settings:{...h.settings}};if(p){const _=o(h.settings.foreground);t.colorReplacements[_]=h.settings.foreground,x.settings.foreground=_}if(m){const _=o(h.settings.background);t.colorReplacements[_]=h.settings.background,x.settings.background=_}return x});for(const h of Object.keys(t.colors||{}))if((h==="editor.foreground"||h==="editor.background"||h.startsWith("terminal.ansi"))&&!((c=t.colors[h])!=null&&c.startsWith("#"))){const p=o(t.colors[h]);t.colorReplacements[p]=t.colors[h],t.colors[h]=p}return Object.defineProperty(t,rr,{enumerable:!1,writable:!1,value:!0}),t}async function hn(e){return Array.from(new Set((await Promise.all(e.filter(t=>!an(t)).map(async t=>await cn(t).then(u=>Array.isArray(u)?u:[u])))).flat()))}async function _n(e){return(await Promise.all(e.map(async u=>sn(u)?null:wu(await cn(u))))).filter(u=>!!u)}class is extends mo{constructor(u,r,n,i={}){super(u);b(this,"_resolvedThemes",new Map);b(this,"_resolvedGrammars",new Map);b(this,"_langMap",new Map);b(this,"_langGraph",new Map);b(this,"_textmateThemeCache",new WeakMap);b(this,"_loadedThemesCache",null);b(this,"_loadedLanguagesCache",null);this._resolver=u,this._themes=r,this._langs=n,this._alias=i,this._themes.map(o=>this.loadTheme(o)),this.loadLanguages(this._langs)}getTheme(u){return typeof u=="string"?this._resolvedThemes.get(u):this.loadTheme(u)}loadTheme(u){const r=wu(u);return r.name&&(this._resolvedThemes.set(r.name,r),this._loadedThemesCache=null),r}getLoadedThemes(){return this._loadedThemesCache||(this._loadedThemesCache=[...this._resolvedThemes.keys()]),this._loadedThemesCache}setTheme(u){let r=this._textmateThemeCache.get(u);r||(r=xt.createFromRawTheme(u),this._textmateThemeCache.set(u,r)),this._syncRegistry.setTheme(r)}getGrammar(u){if(this._alias[u]){const r=new Set([u]);for(;this._alias[u];){if(u=this._alias[u],r.has(u))throw new ee(`Circular alias \`${Array.from(r).join(" -> ")} -> ${u}\``);r.add(u)}}return this._resolvedGrammars.get(u)}loadLanguage(u){var o,a,s,l;if(this.getGrammar(u.name))return;const r=new Set([...this._langMap.values()].filter(d=>{var c;return(c=d.embeddedLangsLazy)==null?void 0:c.includes(u.name)}));this._resolver.addLanguage(u);const n={balancedBracketSelectors:u.balancedBracketSelectors||["*"],unbalancedBracketSelectors:u.unbalancedBracketSelectors||[]};this._syncRegistry._rawGrammars.set(u.scopeName,u);const i=this.loadGrammarWithConfiguration(u.scopeName,1,n);if(i.name=u.name,this._resolvedGrammars.set(u.name,i),u.aliases&&u.aliases.forEach(d=>{this._alias[d]=u.name}),this._loadedLanguagesCache=null,r.size)for(const d of r)this._resolvedGrammars.delete(d.name),this._loadedLanguagesCache=null,(a=(o=this._syncRegistry)==null?void 0:o._injectionGrammars)==null||a.delete(d.scopeName),(l=(s=this._syncRegistry)==null?void 0:s._grammars)==null||l.delete(d.scopeName),this.loadLanguage(this._langMap.get(d.name))}dispose(){super.dispose(),this._resolvedThemes.clear(),this._resolvedGrammars.clear(),this._langMap.clear(),this._langGraph.clear(),this._loadedThemesCache=null}loadLanguages(u){for(const i of u)this.resolveEmbeddedLanguages(i);const r=Array.from(this._langGraph.entries()),n=r.filter(([i,o])=>!o);if(n.length){const i=r.filter(([o,a])=>{var s;return a&&((s=a.embeddedLangs)==null?void 0:s.some(l=>n.map(([d])=>d).includes(l)))}).filter(o=>!n.includes(o));throw new ee(`Missing languages ${n.map(([o])=>`\`${o}\``).join(", ")}, required by ${i.map(([o])=>`\`${o}\``).join(", ")}`)}for(const[i,o]of r)this._resolver.addLanguage(o);for(const[i,o]of r)this.loadLanguage(o)}getLoadedLanguages(){return this._loadedLanguagesCache||(this._loadedLanguagesCache=[...new Set([...this._resolvedGrammars.keys(),...Object.keys(this._alias)])]),this._loadedLanguagesCache}resolveEmbeddedLanguages(u){if(this._langMap.set(u.name,u),this._langGraph.set(u.name,u),u.embeddedLangs)for(const r of u.embeddedLangs)this._langGraph.set(r,this._langMap.get(r))}}class os{constructor(t,u){b(this,"_langs",new Map);b(this,"_scopeToLang",new Map);b(this,"_injections",new Map);b(this,"_onigLib");this._onigLib={createOnigScanner:r=>t.createScanner(r),createOnigString:r=>t.createString(r)},u.forEach(r=>this.addLanguage(r))}get onigLib(){return this._onigLib}getLangRegistration(t){return this._langs.get(t)}loadGrammar(t){return this._scopeToLang.get(t)}addLanguage(t){this._langs.set(t.name,t),t.aliases&&t.aliases.forEach(u=>{this._langs.set(u,t)}),this._scopeToLang.set(t.scopeName,t),t.injectTo&&t.injectTo.forEach(u=>{this._injections.get(u)||this._injections.set(u,[]),this._injections.get(u).push(t.scopeName)})}getInjections(t){const u=t.split(".");let r=[];for(let n=1;n<=u.length;n++){const i=u.slice(0,n).join(".");r=[...r,...this._injections.get(i)||[]]}return r}}let We=0;function as(e){We+=1,e.warnings!==!1&&We>=10&&We%10===0&&console.warn(`[Shiki] ${We} instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call \`highlighter.dispose()\` to release unused instances.`);let t=!1;if(!e.engine)throw new ee("`engine` option is required for synchronous mode");const u=(e.langs||[]).flat(1),r=(e.themes||[]).flat(1).map(wu),n=new os(e.engine,u),i=new is(n,r,u,e.langAlias);let o;function a(_){g();const y=i.getGrammar(typeof _=="string"?_:_.name);if(!y)throw new ee(`Language \`${_}\` not found, you may need to load it first`);return y}function s(_){if(_==="none")return{bg:"",fg:"",name:"none",settings:[],type:"dark"};g();const y=i.getTheme(_);if(!y)throw new ee(`Theme \`${_}\` not found, you may need to load it first`);return y}function l(_){g();const y=s(_);o!==_&&(i.setTheme(y),o=_);const k=i.getColorMap();return{theme:y,colorMap:k}}function d(){return g(),i.getLoadedThemes()}function c(){return g(),i.getLoadedLanguages()}function h(..._){g(),i.loadLanguages(_.flat(1))}async function p(..._){return h(await hn(_))}function m(..._){g();for(const y of _.flat(1))i.loadTheme(y)}async function x(..._){return g(),m(await _n(_))}function g(){if(t)throw new ee("Shiki instance has been disposed")}function E(){t||(t=!0,i.dispose(),We-=1)}return{setTheme:l,getTheme:s,getLanguage:a,getLoadedThemes:d,getLoadedLanguages:c,loadLanguage:p,loadLanguageSync:h,loadTheme:x,loadThemeSync:m,dispose:E,[Symbol.dispose]:E}}async function ss(e={}){e.loadWasm;const[t,u,r]=await Promise.all([_n(e.themes||[]),hn(e.langs||[]),e.engine||Lr(e.loadWasm||wi())]);return as({...e,themes:t,langs:u,engine:r})}async function ls(e={}){const t=await ss(e);return{getLastGrammarState:(...u)=>Wa(t,...u),codeToTokensBase:(u,r)=>Du(t,u,r),codeToTokensWithThemes:(u,r)=>mn(t,u,r),codeToTokens:(u,r)=>St(t,u,r),codeToHast:(u,r)=>Tt(t,u,r),codeToHtml:(u,r)=>ns(t,u,r),...t,getInternalContext:()=>t}}function cs(e,t,u){let r,n,i;{const a=e;r=a.langs,n=a.themes,i=a.engine}async function o(a){function s(p){if(typeof p=="string"){if(an(p))return[];const m=r[p];if(!m)throw new Ae(`Language \`${p}\` is not included in this bundle. You may want to load it from external source.`);return m}return p}function l(p){if(sn(p))return"none";if(typeof p=="string"){const m=n[p];if(!m)throw new Ae(`Theme \`${p}\` is not included in this bundle. You may want to load it from external source.`);return m}return p}const d=(a.themes??[]).map(p=>l(p)),c=(a.langs??[]).map(p=>s(p)),h=await ls({engine:a.engine??i(),...a,themes:d,langs:c});return{...h,loadLanguage(...p){return h.loadLanguage(...p.map(s))},loadTheme(...p){return h.loadTheme(...p.map(l))}}}return o}const ds=cs({langs:Rr,themes:li,engine:()=>Lr(f(()=>import("./CG6Dc4jp.js"),[],import.meta.url))});function fs(e,t,u){const{parseMetaString:r,trimEndingNewline:n=!0,defaultLanguage:i="text",fallbackLanguage:o}=u,a=t.getLoadedLanguages();e.options.highlight=(s,l="text",d)=>{l===""&&(l=i),o&&!a.includes(l)&&(l=o);const c=(r==null?void 0:r(d,s,l))||{},h={...u,lang:l,meta:{...u.meta,...c,__raw:d}},p=[];return p.push({name:"@shikijs/markdown-it:block-class",code(m){m.properties.class=`language-${l}`}}),n&&s.endsWith(` `)&&(s=s.slice(0,-1)),t.codeToHtml(s,{...h,transformers:[...p,...h.transformers||[]]})}}async function ps(e){const t=("themes"in e?Object.values(e.themes):[e.theme]).filter(Boolean),u=await ds({themes:t,langs:e.langs||Object.keys(Rr)});return function(r){fs(r,u,e)}}const nr={};function ms(e){let t=nr[e];if(t)return t;t=nr[e]=[];for(let u=0;u<128;u++){const r=String.fromCharCode(u);t.push(r)}for(let u=0;u=55296&&d<=57343?n+="���":n+=String.fromCharCode(d),i+=6;continue}}if((a&248)===240&&i+91114111?n+="����":(c-=65536,n+=String.fromCharCode(55296+(c>>10),56320+(c&1023))),i+=9;continue}}n+="�"}return n})}$e.defaultChars=";/?:@&=+$,#";$e.componentChars="";const ir={};function hs(e){let t=ir[e];if(t)return t;t=ir[e]=[];for(let u=0;u<128;u++){const r=String.fromCharCode(u);/^[0-9a-z]$/i.test(r)?t.push(r):t.push("%"+("0"+u.toString(16).toUpperCase()).slice(-2))}for(let u=0;u"u"&&(u=!0);const r=hs(t);let n="";for(let i=0,o=e.length;i=55296&&a<=57343){if(a>=55296&&a<=56319&&i+1=56320&&s<=57343){n+=encodeURIComponent(e[i]+e[i+1]),i++;continue}}n+="%EF%BF%BD";continue}n+=encodeURIComponent(e[i])}return n}st.defaultChars=";/?:@&=+$,-_.!~*'()#";st.componentChars="-_.!~*'()";function Su(e){let t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&e.hostname.indexOf(":")!==-1?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||"",t}function Rt(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}const _s=/^([a-z0-9.+-]+:)/i,gs=/:[0-9]*$/,bs=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,ys=["<",">",'"',"`"," ","\r",` `," "],xs=["{","}","|","\\","^","`"].concat(ys),Es=["'"].concat(xs),or=["%","/","?",";","#"].concat(Es),ar=["/","?","#"],ks=255,sr=/^[+a-z0-9A-Z_-]{0,63}$/,As=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,lr={javascript:!0,"javascript:":!0},cr={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function Tu(e,t){if(e&&e instanceof Rt)return e;const u=new Rt;return u.parse(e,t),u}Rt.prototype.parse=function(e,t){let u,r,n,i=e;if(i=i.trim(),!t&&e.split("#").length===1){const l=bs.exec(i);if(l)return this.pathname=l[1],l[2]&&(this.search=l[2]),this}let o=_s.exec(i);if(o&&(o=o[0],u=o.toLowerCase(),this.protocol=o,i=i.substr(o.length)),(t||o||i.match(/^\/\/[^@\/]+@[^@\/]+/))&&(n=i.substr(0,2)==="//",n&&!(o&&lr[o])&&(i=i.substr(2),this.slashes=!0)),!lr[o]&&(n||o&&!cr[o])){let l=-1;for(let m=0;m127?_+="x":_+=E[y];if(!_.match(sr)){const y=m.slice(0,x),k=m.slice(x+1),D=E.match(As);D&&(y.push(D[1]),k.unshift(D[2])),k.length&&(i=k.join(".")+i),this.hostname=y.join(".");break}}}}this.hostname.length>ks&&(this.hostname=""),p&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}const a=i.indexOf("#");a!==-1&&(this.hash=i.substr(a),i=i.slice(0,a));const s=i.indexOf("?");return s!==-1&&(this.search=i.substr(s),i=i.slice(0,s)),i&&(this.pathname=i),cr[u]&&this.hostname&&!this.pathname&&(this.pathname=""),this};Rt.prototype.parseHost=function(e){let t=gs.exec(e);t&&(t=t[0],t!==":"&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};const vs=Object.freeze(Object.defineProperty({__proto__:null,decode:$e,encode:st,format:Su,parse:Tu},Symbol.toStringTag,{value:"Module"})),gn=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,bn=/[\0-\x1F\x7F-\x9F]/,Cs=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,Ru=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,yn=/[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/,xn=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,Ds=Object.freeze(Object.defineProperty({__proto__:null,Any:gn,Cc:bn,Cf:Cs,P:Ru,S:yn,Z:xn},Symbol.toStringTag,{value:"Module"})),ws=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(e=>e.charCodeAt(0))),Ss=new Uint16Array("Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(e=>e.charCodeAt(0)));var Qt;const Ts=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),Rs=(Qt=String.fromCodePoint)!==null&&Qt!==void 0?Qt:function(e){let t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t};function Ls(e){var t;return e>=55296&&e<=57343||e>1114111?65533:(t=Ts.get(e))!==null&&t!==void 0?t:e}var J;(function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"})(J||(J={}));const Ps=32;var Se;(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(Se||(Se={}));function hu(e){return e>=J.ZERO&&e<=J.NINE}function Is(e){return e>=J.UPPER_A&&e<=J.UPPER_F||e>=J.LOWER_A&&e<=J.LOWER_F}function Os(e){return e>=J.UPPER_A&&e<=J.UPPER_Z||e>=J.LOWER_A&&e<=J.LOWER_Z||hu(e)}function Fs(e){return e===J.EQUALS||Os(e)}var W;(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(W||(W={}));var De;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(De||(De={}));class Ms{constructor(t,u,r){this.decodeTree=t,this.emitCodePoint=u,this.errors=r,this.state=W.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=De.Strict}startEntity(t){this.decodeMode=t,this.state=W.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,u){switch(this.state){case W.EntityStart:return t.charCodeAt(u)===J.NUM?(this.state=W.NumericStart,this.consumed+=1,this.stateNumericStart(t,u+1)):(this.state=W.NamedEntity,this.stateNamedEntity(t,u));case W.NumericStart:return this.stateNumericStart(t,u);case W.NumericDecimal:return this.stateNumericDecimal(t,u);case W.NumericHex:return this.stateNumericHex(t,u);case W.NamedEntity:return this.stateNamedEntity(t,u)}}stateNumericStart(t,u){return u>=t.length?-1:(t.charCodeAt(u)|Ps)===J.LOWER_X?(this.state=W.NumericHex,this.consumed+=1,this.stateNumericHex(t,u+1)):(this.state=W.NumericDecimal,this.stateNumericDecimal(t,u))}addToNumericResult(t,u,r,n){if(u!==r){const i=r-u;this.result=this.result*Math.pow(n,i)+parseInt(t.substr(u,i),n),this.consumed+=i}}stateNumericHex(t,u){const r=u;for(;u>14;for(;u>14,i!==0){if(o===J.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==De.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var t;const{result:u,decodeTree:r}=this,n=(r[u]&Se.VALUE_LENGTH)>>14;return this.emitNamedEntityData(u,n,this.consumed),(t=this.errors)===null||t===void 0||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,u,r){const{decodeTree:n}=this;return this.emitCodePoint(u===1?n[t]&~Se.VALUE_LENGTH:n[t+1],r),u===3&&this.emitCodePoint(n[t+2],r),r}end(){var t;switch(this.state){case W.NamedEntity:return this.result!==0&&(this.decodeMode!==De.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case W.NumericDecimal:return this.emitNumericEntity(0,2);case W.NumericHex:return this.emitNumericEntity(0,3);case W.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case W.EntityStart:return 0}}}function En(e){let t="";const u=new Ms(e,r=>t+=Rs(r));return function(n,i){let o=0,a=0;for(;(a=n.indexOf("&",a))>=0;){t+=n.slice(o,a),u.startEntity(i);const l=u.write(n,a+1);if(l<0){o=a+u.end();break}o=a+l,a=l===0?o+1:o}const s=t+n.slice(o);return t="",s}}function Ns(e,t,u,r){const n=(t&Se.BRANCH_LENGTH)>>7,i=t&Se.JUMP_TABLE;if(n===0)return i!==0&&r===i?u:-1;if(i){const s=r-i;return s<0||s>=n?-1:e[u+s]-1}let o=u,a=o+n-1;for(;o<=a;){const s=o+a>>>1,l=e[s];if(lr)a=s-1;else return e[s+n]}return-1}const Vs=En(ws);En(Ss);function kn(e,t=De.Legacy){return Vs(e,t)}function Bs(e){return Object.prototype.toString.call(e)}function Lu(e){return Bs(e)==="[object String]"}const zs=Object.prototype.hasOwnProperty;function js(e,t){return zs.call(e,t)}function Nt(e){return Array.prototype.slice.call(arguments,1).forEach(function(u){if(u){if(typeof u!="object")throw new TypeError(u+"must be object");Object.keys(u).forEach(function(r){e[r]=u[r]})}}),e}function An(e,t,u){return[].concat(e.slice(0,t),u,e.slice(t+1))}function Pu(e){return!(e>=55296&&e<=57343||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534||e>=0&&e<=8||e===11||e>=14&&e<=31||e>=127&&e<=159||e>1114111)}function Lt(e){if(e>65535){e-=65536;const t=55296+(e>>10),u=56320+(e&1023);return String.fromCharCode(t,u)}return String.fromCharCode(e)}const vn=/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,$s=/&([a-z#][a-z0-9]{1,31});/gi,qs=new RegExp(vn.source+"|"+$s.source,"gi"),Us=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function Gs(e,t){if(t.charCodeAt(0)===35&&Us.test(t)){const r=t[1].toLowerCase()==="x"?parseInt(t.slice(2),16):parseInt(t.slice(1),10);return Pu(r)?Lt(r):e}const u=kn(e);return u!==e?u:e}function Hs(e){return e.indexOf("\\")<0?e:e.replace(vn,"$1")}function qe(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(qs,function(t,u,r){return u||Gs(t,r)})}const Ws=/[&<>"]/,Zs=/[&<>"]/g,Js={"&":"&","<":"<",">":">",'"':"""};function Ks(e){return Js[e]}function Te(e){return Ws.test(e)?e.replace(Zs,Ks):e}const Ys=/[.?*+^$[\]\\(){}|-]/g;function Qs(e){return e.replace(Ys,"\\$&")}function N(e){switch(e){case 9:case 32:return!0}return!1}function tt(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}function ut(e){return Ru.test(e)||yn.test(e)}function rt(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function Vt(e){return e=e.trim().replace(/\s+/g," "),"ẞ".toLowerCase()==="Ṿ"&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}const Xs={mdurl:vs,ucmicro:Ds},el=Object.freeze(Object.defineProperty({__proto__:null,arrayReplaceAt:An,assign:Nt,escapeHtml:Te,escapeRE:Qs,fromCodePoint:Lt,has:js,isMdAsciiPunct:rt,isPunctChar:ut,isSpace:N,isString:Lu,isValidEntityCode:Pu,isWhiteSpace:tt,lib:Xs,normalizeReference:Vt,unescapeAll:qe,unescapeMd:Hs},Symbol.toStringTag,{value:"Module"}));function tl(e,t,u){let r,n,i,o;const a=e.posMax,s=e.pos;for(e.pos=t+1,r=1;e.pos32))return i;if(r===41){if(o===0)break;o--}n++}return t===n||o!==0||(i.str=qe(e.slice(t,n)),i.pos=n,i.ok=!0),i}function rl(e,t,u,r){let n,i=t;const o={ok:!1,can_continue:!1,pos:0,str:"",marker:0};if(r)o.str=r.str,o.marker=r.marker;else{if(i>=u)return o;let a=e.charCodeAt(i);if(a!==34&&a!==39&&a!==40)return o;t++,i++,a===40&&(a=41),o.marker=a}for(;i"+Te(i.content)+""};be.code_block=function(e,t,u,r,n){const i=e[t];return""+Te(e[t].content)+` `};be.fence=function(e,t,u,r,n){const i=e[t],o=i.info?qe(i.info).trim():"";let a="",s="";if(o){const d=o.split(/(\s+)/g);a=d[0],s=d.slice(2).join("")}let l;if(u.highlight?l=u.highlight(i.content,a,s)||Te(i.content):l=Te(i.content),l.indexOf("${l} `}return`
${l}
`};be.image=function(e,t,u,r,n){const i=e[t];return i.attrs[i.attrIndex("alt")][1]=n.renderInlineAsText(i.children,u,r),n.renderToken(e,t,u)};be.hardbreak=function(e,t,u){return u.xhtmlOut?`
`:`
`};be.softbreak=function(e,t,u){return u.breaks?u.xhtmlOut?`
`:`
`:` `};be.text=function(e,t){return Te(e[t].content)};be.html_block=function(e,t){return e[t].content};be.html_inline=function(e,t){return e[t].content};function He(){this.rules=Nt({},be)}He.prototype.renderAttrs=function(t){let u,r,n;if(!t.attrs)return"";for(n="",u=0,r=t.attrs.length;u `:">",i};He.prototype.renderInline=function(e,t,u){let r="";const n=this.rules;for(let i=0,o=e.length;i=0&&(r=this.attrs[u][1]),r};ce.prototype.attrJoin=function(t,u){const r=this.attrIndex(t);r<0?this.attrPush([t,u]):this.attrs[r][1]=this.attrs[r][1]+" "+u};function Cn(e,t,u){this.src=e,this.env=u,this.tokens=[],this.inlineMode=!1,this.md=t}Cn.prototype.Token=ce;const il=/\r\n?|\n/g,ol=/\0/g;function al(e){let t;t=e.src.replace(il,` `),t=t.replace(ol,"�"),e.src=t}function sl(e){let t;e.inlineMode?(t=new e.Token("inline","",0),t.content=e.src,t.map=[0,1],t.children=[],e.tokens.push(t)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}function ll(e){const t=e.tokens;for(let u=0,r=t.length;u\s]/i.test(e)}function dl(e){return/^<\/a\s*>/i.test(e)}function fl(e){const t=e.tokens;if(e.md.options.linkify)for(let u=0,r=t.length;u=0;o--){const a=n[o];if(a.type==="link_close"){for(o--;n[o].level!==a.level&&n[o].type!=="link_open";)o--;continue}if(a.type==="html_inline"&&(cl(a.content)&&i>0&&i--,dl(a.content)&&i++),!(i>0)&&a.type==="text"&&e.md.linkify.test(a.content)){const s=a.content;let l=e.md.linkify.match(s);const d=[];let c=a.level,h=0;l.length>0&&l[0].index===0&&o>0&&n[o-1].type==="text_special"&&(l=l.slice(1));for(let p=0;ph){const D=new e.Token("text","",0);D.content=s.slice(h,E),D.level=c,d.push(D)}const _=new e.Token("link_open","a",1);_.attrs=[["href",x]],_.level=c++,_.markup="linkify",_.info="auto",d.push(_);const y=new e.Token("text","",0);y.content=g,y.level=c,d.push(y);const k=new e.Token("link_close","a",-1);k.level=--c,k.markup="linkify",k.info="auto",d.push(k),h=l[p].lastIndex}if(h=0;u--){const r=e[u];r.type==="text"&&!t&&(r.content=r.content.replace(ml,_l)),r.type==="link_open"&&r.info==="auto"&&t--,r.type==="link_close"&&r.info==="auto"&&t++}}function bl(e){let t=0;for(let u=e.length-1;u>=0;u--){const r=e[u];r.type==="text"&&!t&&Dn.test(r.content)&&(r.content=r.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/mg,"$1—").replace(/(^|\s)--(?=\s|$)/mg,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/mg,"$1–")),r.type==="link_open"&&r.info==="auto"&&t--,r.type==="link_close"&&r.info==="auto"&&t++}}function yl(e){let t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)e.tokens[t].type==="inline"&&(pl.test(e.tokens[t].content)&&gl(e.tokens[t].children),Dn.test(e.tokens[t].content)&&bl(e.tokens[t].children))}const xl=/['"]/,dr=/['"]/g,fr="’";function ht(e,t,u){return e.slice(0,t)+u+e.slice(t+1)}function El(e,t){let u;const r=[];for(let n=0;n=0&&!(r[u].level<=o);u--);if(r.length=u+1,i.type!=="text")continue;let a=i.content,s=0,l=a.length;e:for(;s=0)m=a.charCodeAt(d.index-1);else for(u=n-1;u>=0&&!(e[u].type==="softbreak"||e[u].type==="hardbreak");u--)if(e[u].content){m=e[u].content.charCodeAt(e[u].content.length-1);break}let x=32;if(s=48&&m<=57&&(h=c=!1),c&&h&&(c=g,h=E),!c&&!h){p&&(i.content=ht(i.content,d.index,fr));continue}if(h)for(u=r.length-1;u>=0;u--){let k=r[u];if(r[u].level=0;t--)e.tokens[t].type!=="inline"||!xl.test(e.tokens[t].content)||El(e.tokens[t].children,e)}function Al(e){let t,u;const r=e.tokens,n=r.length;for(let i=0;i0&&this.level++,this.tokens.push(r),r};ye.prototype.isEmpty=function(t){return this.bMarks[t]+this.tShift[t]>=this.eMarks[t]};ye.prototype.skipEmptyLines=function(t){for(let u=this.lineMax;tu;)if(!N(this.src.charCodeAt(--t)))return t+1;return t};ye.prototype.skipChars=function(t,u){for(let r=this.src.length;tr;)if(u!==this.src.charCodeAt(--t))return t+1;return t};ye.prototype.getLines=function(t,u,r,n){if(t>=u)return"";const i=new Array(u-t);for(let o=0,a=t;ar?i[o]=new Array(s-r+1).join(" ")+this.src.slice(d,c):i[o]=this.src.slice(d,c)}return i.join("")};ye.prototype.Token=ce;const vl=65536;function eu(e,t){const u=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];return e.src.slice(u,r)}function pr(e){const t=[],u=e.length;let r=0,n=e.charCodeAt(r),i=!1,o=0,a="";for(;ru)return!1;let n=t+1;if(e.sCount[n]=4)return!1;let i=e.bMarks[n]+e.tShift[n];if(i>=e.eMarks[n])return!1;const o=e.src.charCodeAt(i++);if(o!==124&&o!==45&&o!==58||i>=e.eMarks[n])return!1;const a=e.src.charCodeAt(i++);if(a!==124&&a!==45&&a!==58&&!N(a)||o===45&&N(a))return!1;for(;i=4)return!1;l=pr(s),l.length&&l[0]===""&&l.shift(),l.length&&l[l.length-1]===""&&l.pop();const c=l.length;if(c===0||c!==d.length)return!1;if(r)return!0;const h=e.parentType;e.parentType="table";const p=e.md.block.ruler.getRules("blockquote"),m=e.push("table_open","table",1),x=[t,0];m.map=x;const g=e.push("thead_open","thead",1);g.map=[t,t+1];const E=e.push("tr_open","tr",1);E.map=[t,t+1];for(let k=0;k=4||(l=pr(s),l.length&&l[0]===""&&l.shift(),l.length&&l[l.length-1]===""&&l.pop(),y+=c-l.length,y>vl))break;if(n===t+2){const S=e.push("tbody_open","tbody",1);S.map=_=[t+2,0]}const D=e.push("tr_open","tr",1);D.map=[n,n+1];for(let S=0;S=4){r++,n=r;continue}break}e.line=n;const i=e.push("code_block","code",0);return i.content=e.getLines(t,n,4+e.blkIndent,!1)+` `,i.map=[t,e.line],!0}function wl(e,t,u,r){let n=e.bMarks[t]+e.tShift[t],i=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4||n+3>i)return!1;const o=e.src.charCodeAt(n);if(o!==126&&o!==96)return!1;let a=n;n=e.skipChars(n,o);let s=n-a;if(s<3)return!1;const l=e.src.slice(a,n),d=e.src.slice(n,i);if(o===96&&d.indexOf(String.fromCharCode(o))>=0)return!1;if(r)return!0;let c=t,h=!1;for(;c++,!(c>=u||(n=a=e.bMarks[c]+e.tShift[c],i=e.eMarks[c],n=4)&&(n=e.skipChars(n,o),!(n-a=4||e.src.charCodeAt(n)!==62)return!1;if(r)return!0;const a=[],s=[],l=[],d=[],c=e.md.block.ruler.getRules("blockquote"),h=e.parentType;e.parentType="blockquote";let p=!1,m;for(m=t;m=i)break;if(e.src.charCodeAt(n++)===62&&!y){let D=e.sCount[m]+1,S,I;e.src.charCodeAt(n)===32?(n++,D++,I=!1,S=!0):e.src.charCodeAt(n)===9?(S=!0,(e.bsCount[m]+D)%4===3?(n++,D++,I=!1):I=!0):S=!1;let z=D;for(a.push(e.bMarks[m]),e.bMarks[m]=n;n=i,s.push(e.bsCount[m]),e.bsCount[m]=e.sCount[m]+1+(S?1:0),l.push(e.sCount[m]),e.sCount[m]=z-D,d.push(e.tShift[m]),e.tShift[m]=n-e.bMarks[m];continue}if(p)break;let k=!1;for(let D=0,S=c.length;D";const E=[t,0];g.map=E,e.md.block.tokenize(e,t,m);const _=e.push("blockquote_close","blockquote",-1);_.markup=">",e.lineMax=o,e.parentType=h,E[1]=e.line;for(let y=0;y=4)return!1;let i=e.bMarks[t]+e.tShift[t];const o=e.src.charCodeAt(i++);if(o!==42&&o!==45&&o!==95)return!1;let a=1;for(;i=r)return-1;let i=e.src.charCodeAt(n++);if(i<48||i>57)return-1;for(;;){if(n>=r)return-1;if(i=e.src.charCodeAt(n++),i>=48&&i<=57){if(n-u>=10)return-1;continue}if(i===41||i===46)break;return-1}return n=4||e.listIndent>=0&&e.sCount[s]-e.listIndent>=4&&e.sCount[s]=e.blkIndent&&(d=!0);let c,h,p;if((p=hr(e,s))>=0){if(c=!0,o=e.bMarks[s]+e.tShift[s],h=Number(e.src.slice(o,p-1)),d&&h!==1)return!1}else if((p=mr(e,s))>=0)c=!1;else return!1;if(d&&e.skipSpaces(p)>=e.eMarks[s])return!1;if(r)return!0;const m=e.src.charCodeAt(p-1),x=e.tokens.length;c?(a=e.push("ordered_list_open","ol",1),h!==1&&(a.attrs=[["start",h]])):a=e.push("bullet_list_open","ul",1);const g=[s,0];a.map=g,a.markup=String.fromCharCode(m);let E=!1;const _=e.md.block.ruler.getRules("list"),y=e.parentType;for(e.parentType="list";s=n?I=1:I=D-k,I>4&&(I=1);const z=k+I;a=e.push("list_item_open","li",1),a.markup=String.fromCharCode(m);const Q=[s,0];a.map=Q,c&&(a.info=e.src.slice(o,p-1));const re=e.tight,de=e.tShift[s],Ie=e.sCount[s],w=e.listIndent;if(e.listIndent=e.blkIndent,e.blkIndent=z,e.tight=!0,e.tShift[s]=S-e.bMarks[s],e.sCount[s]=D,S>=n&&e.isEmpty(s+1)?e.line=Math.min(e.line+2,u):e.md.block.tokenize(e,s,u,!0),(!e.tight||E)&&(l=!1),E=e.line-s>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=w,e.tShift[s]=de,e.sCount[s]=Ie,e.tight=re,a=e.push("list_item_close","li",-1),a.markup=String.fromCharCode(m),s=e.line,Q[1]=s,s>=u||e.sCount[s]=4)break;let v=!1;for(let B=0,K=_.length;B=4||e.src.charCodeAt(n)!==91)return!1;function a(_){const y=e.lineMax;if(_>=y||e.isEmpty(_))return null;let k=!1;if(e.sCount[_]-e.blkIndent>3&&(k=!0),e.sCount[_]<0&&(k=!0),!k){const I=e.md.block.ruler.getRules("reference"),z=e.parentType;e.parentType="reference";let Q=!1;for(let re=0,de=I.length;re"u"&&(e.env.references={}),typeof e.env.references[E]>"u"&&(e.env.references[E]={title:g,href:c}),e.line=o),!0):!1}const Il=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Ol="[a-zA-Z_:][a-zA-Z0-9:._-]*",Fl="[^\"'=<>`\\x00-\\x20]+",Ml="'[^']*'",Nl='"[^"]*"',Vl="(?:"+Fl+"|"+Ml+"|"+Nl+")",Bl="(?:\\s+"+Ol+"(?:\\s*=\\s*"+Vl+")?)",wn="<[A-Za-z][A-Za-z0-9\\-]*"+Bl+"*\\s*\\/?>",Sn="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",zl="",jl="<[?][\\s\\S]*?[?]>",$l="]*>",ql="",Ul=new RegExp("^(?:"+wn+"|"+Sn+"|"+zl+"|"+jl+"|"+$l+"|"+ql+")"),Gl=new RegExp("^(?:"+wn+"|"+Sn+")"),Me=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(Gl.source+"\\s*$"),/^$/,!1]];function Hl(e,t,u,r){let n=e.bMarks[t]+e.tShift[t],i=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4||!e.md.options.html||e.src.charCodeAt(n)!==60)return!1;let o=e.src.slice(n,i),a=0;for(;a=4)return!1;let o=e.src.charCodeAt(n);if(o!==35||n>=i)return!1;let a=1;for(o=e.src.charCodeAt(++n);o===35&&n6||nn&&N(e.src.charCodeAt(s-1))&&(i=s),e.line=t+1;const l=e.push("heading_open","h"+String(a),1);l.markup="########".slice(0,a),l.map=[t,e.line];const d=e.push("inline","",0);d.content=e.src.slice(n,i).trim(),d.map=[t,e.line],d.children=[];const c=e.push("heading_close","h"+String(a),-1);return c.markup="########".slice(0,a),!0}function Zl(e,t,u){const r=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;const n=e.parentType;e.parentType="paragraph";let i=0,o,a=t+1;for(;a3)continue;if(e.sCount[a]>=e.blkIndent){let p=e.bMarks[a]+e.tShift[a];const m=e.eMarks[a];if(p=m))){i=o===61?1:2;break}}if(e.sCount[a]<0)continue;let h=!1;for(let p=0,m=r.length;p3||e.sCount[i]<0)continue;let l=!1;for(let d=0,c=r.length;d=u||e.sCount[o]=i){e.line=u;break}const s=e.line;let l=!1;for(let d=0;d=e.line)throw new Error("block rule didn't increment state.line");break}if(!l)throw new Error("none of the block rules matched");e.tight=!a,e.isEmpty(e.line-1)&&(a=!0),o=e.line,o0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],n={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(r),this.tokens_meta.push(n),r};lt.prototype.scanDelims=function(e,t){const u=this.posMax,r=this.src.charCodeAt(e),n=e>0?this.src.charCodeAt(e-1):32;let i=e;for(;i0)return!1;const u=e.pos,r=e.posMax;if(u+3>r||e.src.charCodeAt(u)!==58||e.src.charCodeAt(u+1)!==47||e.src.charCodeAt(u+2)!==47)return!1;const n=e.pending.match(Ql);if(!n)return!1;const i=n[1],o=e.md.linkify.matchAtStart(e.src.slice(u-i.length));if(!o)return!1;let a=o.url;if(a.length<=i.length)return!1;a=a.replace(/\*+$/,"");const s=e.md.normalizeLink(a);if(!e.md.validateLink(s))return!1;if(!t){e.pending=e.pending.slice(0,-i.length);const l=e.push("link_open","a",1);l.attrs=[["href",s]],l.markup="linkify",l.info="auto";const d=e.push("text","",0);d.content=e.md.normalizeLinkText(a);const c=e.push("link_close","a",-1);c.markup="linkify",c.info="auto"}return e.pos+=a.length-i.length,!0}function ec(e,t){let u=e.pos;if(e.src.charCodeAt(u)!==10)return!1;const r=e.pending.length-1,n=e.posMax;if(!t)if(r>=0&&e.pending.charCodeAt(r)===32)if(r>=1&&e.pending.charCodeAt(r-1)===32){let i=r-1;for(;i>=1&&e.pending.charCodeAt(i-1)===32;)i--;e.pending=e.pending.slice(0,i),e.push("hardbreak","br",0)}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);for(u++;u?@[]^_`{|}~-".split("").forEach(function(e){Ou[e.charCodeAt(0)]=1});function tc(e,t){let u=e.pos;const r=e.posMax;if(e.src.charCodeAt(u)!==92||(u++,u>=r))return!1;let n=e.src.charCodeAt(u);if(n===10){for(t||e.push("hardbreak","br",0),u++;u=55296&&n<=56319&&u+1=56320&&a<=57343&&(i+=e.src[u+1],u++)}const o="\\"+i;if(!t){const a=e.push("text_special","",0);n<256&&Ou[n]!==0?a.content=i:a.content=o,a.markup=o,a.info="escape"}return e.pos=u+1,!0}function uc(e,t){let u=e.pos;if(e.src.charCodeAt(u)!==96)return!1;const n=u;u++;const i=e.posMax;for(;u=0;r--){const n=t[r];if(n.marker!==95&&n.marker!==42||n.end===-1)continue;const i=t[n.end],o=r>0&&t[r-1].end===n.end+1&&t[r-1].marker===n.marker&&t[r-1].token===n.token-1&&t[n.end+1].token===i.token+1,a=String.fromCharCode(n.marker),s=e.tokens[n.token];s.type=o?"strong_open":"em_open",s.tag=o?"strong":"em",s.nesting=1,s.markup=o?a+a:a,s.content="";const l=e.tokens[i.token];l.type=o?"strong_close":"em_close",l.tag=o?"strong":"em",l.nesting=-1,l.markup=o?a+a:a,l.content="",o&&(e.tokens[t[r-1].token].content="",e.tokens[t[n.end+1].token].content="",r--)}}function oc(e){const t=e.tokens_meta,u=e.tokens_meta.length;gr(e,e.delimiters);for(let r=0;r=c)return!1;if(s=m,n=e.md.helpers.parseLinkDestination(e.src,m,e.posMax),n.ok){for(o=e.md.normalizeLink(n.str),e.md.validateLink(o)?m=n.pos:o="",s=m;m=c||e.src.charCodeAt(m)!==41)&&(l=!0),m++}if(l){if(typeof e.env.references>"u")return!1;if(m=0?r=e.src.slice(s,m++):m=p+1):m=p+1,r||(r=e.src.slice(h,p)),i=e.env.references[Vt(r)],!i)return e.pos=d,!1;o=i.href,a=i.title}if(!t){e.pos=h,e.posMax=p;const x=e.push("link_open","a",1),g=[["href",o]];x.attrs=g,a&&g.push(["title",a]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push("link_close","a",-1)}return e.pos=m,e.posMax=c,!0}function sc(e,t){let u,r,n,i,o,a,s,l,d="";const c=e.pos,h=e.posMax;if(e.src.charCodeAt(e.pos)!==33||e.src.charCodeAt(e.pos+1)!==91)return!1;const p=e.pos+2,m=e.md.helpers.parseLinkLabel(e,e.pos+1,!1);if(m<0)return!1;if(i=m+1,i=h)return!1;for(l=i,a=e.md.helpers.parseLinkDestination(e.src,i,e.posMax),a.ok&&(d=e.md.normalizeLink(a.str),e.md.validateLink(d)?i=a.pos:d=""),l=i;i=h||e.src.charCodeAt(i)!==41)return e.pos=c,!1;i++}else{if(typeof e.env.references>"u")return!1;if(i=0?n=e.src.slice(l,i++):i=m+1):i=m+1,n||(n=e.src.slice(p,m)),o=e.env.references[Vt(n)],!o)return e.pos=c,!1;d=o.href,s=o.title}if(!t){r=e.src.slice(p,m);const x=[];e.md.inline.parse(r,e.md,e.env,x);const g=e.push("image","img",0),E=[["src",d],["alt",""]];g.attrs=E,g.children=x,g.content=r,s&&E.push(["title",s])}return e.pos=i,e.posMax=h,!0}const lc=/^([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,cc=/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^<>\x00-\x20]*)$/;function dc(e,t){let u=e.pos;if(e.src.charCodeAt(u)!==60)return!1;const r=e.pos,n=e.posMax;for(;;){if(++u>=n)return!1;const o=e.src.charCodeAt(u);if(o===60)return!1;if(o===62)break}const i=e.src.slice(r+1,u);if(cc.test(i)){const o=e.md.normalizeLink(i);if(!e.md.validateLink(o))return!1;if(!t){const a=e.push("link_open","a",1);a.attrs=[["href",o]],a.markup="autolink",a.info="auto";const s=e.push("text","",0);s.content=e.md.normalizeLinkText(i);const l=e.push("link_close","a",-1);l.markup="autolink",l.info="auto"}return e.pos+=i.length+2,!0}if(lc.test(i)){const o=e.md.normalizeLink("mailto:"+i);if(!e.md.validateLink(o))return!1;if(!t){const a=e.push("link_open","a",1);a.attrs=[["href",o]],a.markup="autolink",a.info="auto";const s=e.push("text","",0);s.content=e.md.normalizeLinkText(i);const l=e.push("link_close","a",-1);l.markup="autolink",l.info="auto"}return e.pos+=i.length+2,!0}return!1}function fc(e){return/^\s]/i.test(e)}function pc(e){return/^<\/a\s*>/i.test(e)}function mc(e){const t=e|32;return t>=97&&t<=122}function hc(e,t){if(!e.md.options.html)return!1;const u=e.posMax,r=e.pos;if(e.src.charCodeAt(r)!==60||r+2>=u)return!1;const n=e.src.charCodeAt(r+1);if(n!==33&&n!==63&&n!==47&&!mc(n))return!1;const i=e.src.slice(r).match(Ul);if(!i)return!1;if(!t){const o=e.push("html_inline","",0);o.content=i[0],fc(o.content)&&e.linkLevel++,pc(o.content)&&e.linkLevel--}return e.pos+=i[0].length,!0}const _c=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,gc=/^&([a-z][a-z0-9]{1,31});/i;function bc(e,t){const u=e.pos,r=e.posMax;if(e.src.charCodeAt(u)!==38||u+1>=r)return!1;if(e.src.charCodeAt(u+1)===35){const i=e.src.slice(u).match(_c);if(i){if(!t){const o=i[1][0].toLowerCase()==="x"?parseInt(i[1].slice(1),16):parseInt(i[1],10),a=e.push("text_special","",0);a.content=Pu(o)?Lt(o):Lt(65533),a.markup=i[0],a.info="entity"}return e.pos+=i[0].length,!0}}else{const i=e.src.slice(u).match(gc);if(i){const o=kn(i[0]);if(o!==i[0]){if(!t){const a=e.push("text_special","",0);a.content=o,a.markup=i[0],a.info="entity"}return e.pos+=i[0].length,!0}}}return!1}function br(e){const t={},u=e.length;if(!u)return;let r=0,n=-2;const i=[];for(let o=0;os;l-=i[l]+1){const c=e[l];if(c.marker===a.marker&&c.open&&c.end<0){let h=!1;if((c.close||a.open)&&(c.length+a.length)%3===0&&(c.length%3!==0||a.length%3!==0)&&(h=!0),!h){const p=l>0&&!e[l-1].open?i[l-1]+1:0;i[o]=o-l+p,i[l]=p,a.open=!1,c.end=o,c.close=!1,d=-1,n=-2;break}}}d!==-1&&(t[a.marker][(a.open?3:0)+(a.length||0)%3]=d)}}function yc(e){const t=e.tokens_meta,u=e.tokens_meta.length;br(e.delimiters);for(let r=0;r0&&r++,n[t].type==="text"&&t+1=e.pos)throw new Error("inline rule didn't increment state.pos");break}}else e.pos=e.posMax;o||e.pos++,i[t]=e.pos};ct.prototype.tokenize=function(e){const t=this.ruler.getRules(""),u=t.length,r=e.posMax,n=e.md.options.maxNesting;for(;e.pos=e.pos)throw new Error("inline rule didn't increment state.pos");break}}if(o){if(e.pos>=r)break;continue}e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()};ct.prototype.parse=function(e,t,u,r){const n=new this.State(e,t,u,r);this.tokenize(n);const i=this.ruler2.getRules(""),o=i.length;for(let a=0;a|$))",t.tpl_email_fuzzy="(^|"+u+'|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}function _u(e){return Array.prototype.slice.call(arguments,1).forEach(function(u){u&&Object.keys(u).forEach(function(r){e[r]=u[r]})}),e}function zt(e){return Object.prototype.toString.call(e)}function kc(e){return zt(e)==="[object String]"}function Ac(e){return zt(e)==="[object Object]"}function vc(e){return zt(e)==="[object RegExp]"}function yr(e){return zt(e)==="[object Function]"}function Cc(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}const Ln={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function Dc(e){return Object.keys(e||{}).reduce(function(t,u){return t||Ln.hasOwnProperty(u)},!1)}const wc={"http:":{validate:function(e,t,u){const r=e.slice(t);return u.re.http||(u.re.http=new RegExp("^\\/\\/"+u.re.src_auth+u.re.src_host_port_strict+u.re.src_path,"i")),u.re.http.test(r)?r.match(u.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,u){const r=e.slice(t);return u.re.no_http||(u.re.no_http=new RegExp("^"+u.re.src_auth+"(?:localhost|(?:(?:"+u.re.src_domain+")\\.)+"+u.re.src_domain_root+")"+u.re.src_port+u.re.src_host_terminator+u.re.src_path,"i")),u.re.no_http.test(r)?t>=3&&e[t-3]===":"||t>=3&&e[t-3]==="/"?0:r.match(u.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,u){const r=e.slice(t);return u.re.mailto||(u.re.mailto=new RegExp("^"+u.re.src_email_name+"@"+u.re.src_host_strict,"i")),u.re.mailto.test(r)?r.match(u.re.mailto)[0].length:0}}},Sc="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",Tc="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function Rc(e){e.__index__=-1,e.__text_cache__=""}function Lc(e){return function(t,u){const r=t.slice(u);return e.test(r)?r.match(e)[0].length:0}}function xr(){return function(e,t){t.normalize(e)}}function Pt(e){const t=e.re=Ec(e.__opts__),u=e.__tlds__.slice();e.onCompile(),e.__tlds_replaced__||u.push(Sc),u.push(t.src_xn),t.src_tlds=u.join("|");function r(a){return a.replace("%TLDS%",t.src_tlds)}t.email_fuzzy=RegExp(r(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(r(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(r(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(r(t.tpl_host_fuzzy_test),"i");const n=[];e.__compiled__={};function i(a,s){throw new Error('(LinkifyIt) Invalid schema "'+a+'": '+s)}Object.keys(e.__schemas__).forEach(function(a){const s=e.__schemas__[a];if(s===null)return;const l={validate:null,link:null};if(e.__compiled__[a]=l,Ac(s)){vc(s.validate)?l.validate=Lc(s.validate):yr(s.validate)?l.validate=s.validate:i(a,s),yr(s.normalize)?l.normalize=s.normalize:s.normalize?i(a,s):l.normalize=xr();return}if(kc(s)){n.push(a);return}i(a,s)}),n.forEach(function(a){e.__compiled__[e.__schemas__[a]]&&(e.__compiled__[a].validate=e.__compiled__[e.__schemas__[a]].validate,e.__compiled__[a].normalize=e.__compiled__[e.__schemas__[a]].normalize)}),e.__compiled__[""]={validate:null,normalize:xr()};const o=Object.keys(e.__compiled__).filter(function(a){return a.length>0&&e.__compiled__[a]}).map(Cc).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+o+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+o+")","ig"),e.re.schema_at_start=RegExp("^"+e.re.schema_search.source,"i"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),Rc(e)}function Pc(e,t){const u=e.__index__,r=e.__last_index__,n=e.__text_cache__.slice(u,r);this.schema=e.__schema__.toLowerCase(),this.index=u+t,this.lastIndex=r+t,this.raw=n,this.text=n,this.url=n}function gu(e,t){const u=new Pc(e,t);return e.__compiled__[u.schema].normalize(u,e),u}function ie(e,t){if(!(this instanceof ie))return new ie(e,t);t||Dc(e)&&(t=e,e={}),this.__opts__=_u({},Ln,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=_u({},wc,e),this.__compiled__={},this.__tlds__=Tc,this.__tlds_replaced__=!1,this.re={},Pt(this)}ie.prototype.add=function(t,u){return this.__schemas__[t]=u,Pt(this),this};ie.prototype.set=function(t){return this.__opts__=_u(this.__opts__,t),this};ie.prototype.test=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return!1;let u,r,n,i,o,a,s,l,d;if(this.re.schema_test.test(t)){for(s=this.re.schema_search,s.lastIndex=0;(u=s.exec(t))!==null;)if(i=this.testSchemaAt(t,u[2],s.lastIndex),i){this.__schema__=u[2],this.__index__=u.index+u[1].length,this.__last_index__=u.index+u[0].length+i;break}}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(l=t.search(this.re.host_fuzzy_test),l>=0&&(this.__index__<0||l=0&&(n=t.match(this.re.email_fuzzy))!==null&&(o=n.index+n[1].length,a=n.index+n[0].length,(this.__index__<0||othis.__last_index__)&&(this.__schema__="mailto:",this.__index__=o,this.__last_index__=a))),this.__index__>=0};ie.prototype.pretest=function(t){return this.re.pretest.test(t)};ie.prototype.testSchemaAt=function(t,u,r){return this.__compiled__[u.toLowerCase()]?this.__compiled__[u.toLowerCase()].validate(t,r,this):0};ie.prototype.match=function(t){const u=[];let r=0;this.__index__>=0&&this.__text_cache__===t&&(u.push(gu(this,r)),r=this.__last_index__);let n=r?t.slice(r):t;for(;this.test(n);)u.push(gu(this,r)),n=n.slice(this.__last_index__),r+=this.__last_index__;return u.length?u:null};ie.prototype.matchAtStart=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return null;const u=this.re.schema_at_start.exec(t);if(!u)return null;const r=this.testSchemaAt(t,u[2],u[0].length);return r?(this.__schema__=u[2],this.__index__=u.index+u[1].length,this.__last_index__=u.index+u[0].length+r,gu(this,0)):null};ie.prototype.tlds=function(t,u){return t=Array.isArray(t)?t:[t],u?(this.__tlds__=this.__tlds__.concat(t).sort().filter(function(r,n,i){return r!==i[n-1]}).reverse(),Pt(this),this):(this.__tlds__=t.slice(),this.__tlds_replaced__=!0,Pt(this),this)};ie.prototype.normalize=function(t){t.schema||(t.url="http://"+t.url),t.schema==="mailto:"&&!/^mailto:/i.test(t.url)&&(t.url="mailto:"+t.url)};ie.prototype.onCompile=function(){};const ze=2147483647,_e=36,Fu=1,nt=26,Ic=38,Oc=700,Pn=72,In=128,On="-",Fc=/^xn--/,Mc=/[^\0-\x7F]/,Nc=/[\x2E\u3002\uFF0E\uFF61]/g,Vc={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},ru=_e-Fu,ge=Math.floor,nu=String.fromCharCode;function ve(e){throw new RangeError(Vc[e])}function Bc(e,t){const u=[];let r=e.length;for(;r--;)u[r]=t(e[r]);return u}function Fn(e,t){const u=e.split("@");let r="";u.length>1&&(r=u[0]+"@",e=u[1]),e=e.replace(Nc,".");const n=e.split("."),i=Bc(n,t).join(".");return r+i}function Mn(e){const t=[];let u=0;const r=e.length;for(;u=55296&&n<=56319&&uString.fromCodePoint(...e),jc=function(e){return e>=48&&e<58?26+(e-48):e>=65&&e<91?e-65:e>=97&&e<123?e-97:_e},Er=function(e,t){return e+22+75*(e<26)-((t!=0)<<5)},Nn=function(e,t,u){let r=0;for(e=u?ge(e/Oc):e>>1,e+=ge(e/t);e>ru*nt>>1;r+=_e)e=ge(e/ru);return ge(r+(ru+1)*e/(e+Ic))},Vn=function(e){const t=[],u=e.length;let r=0,n=In,i=Pn,o=e.lastIndexOf(On);o<0&&(o=0);for(let a=0;a=128&&ve("not-basic"),t.push(e.charCodeAt(a));for(let a=o>0?o+1:0;a=u&&ve("invalid-input");const h=jc(e.charCodeAt(a++));h>=_e&&ve("invalid-input"),h>ge((ze-r)/d)&&ve("overflow"),r+=h*d;const p=c<=i?Fu:c>=i+nt?nt:c-i;if(hge(ze/m)&&ve("overflow"),d*=m}const l=t.length+1;i=Nn(r-s,l,s==0),ge(r/l)>ze-n&&ve("overflow"),n+=ge(r/l),r%=l,t.splice(r++,0,n)}return String.fromCodePoint(...t)},Bn=function(e){const t=[];e=Mn(e);const u=e.length;let r=In,n=0,i=Pn;for(const s of e)s<128&&t.push(nu(s));const o=t.length;let a=o;for(o&&t.push(On);a=r&&dge((ze-n)/l)&&ve("overflow"),n+=(s-r)*l,r=s;for(const d of e)if(dze&&ve("overflow"),d===r){let c=n;for(let h=_e;;h+=_e){const p=h<=i?Fu:h>=i+nt?nt:h-i;if(c=0))try{t.hostname=zn.toASCII(t.hostname)}catch{}return st(Su(t))}function Qc(e){const t=Tu(e,!0);if(t.hostname&&(!t.protocol||jn.indexOf(t.protocol)>=0))try{t.hostname=zn.toUnicode(t.hostname)}catch{}return $e(Su(t),$e.defaultChars+"%")}function le(e,t){if(!(this instanceof le))return new le(e,t);t||Lu(e)||(t=e||{},e="default"),this.inline=new ct,this.block=new Bt,this.core=new Iu,this.renderer=new He,this.linkify=new ie,this.validateLink=Kc,this.normalizeLink=Yc,this.normalizeLinkText=Qc,this.utils=el,this.helpers=Nt({},nl),this.options={},this.configure(e),t&&this.set(t)}le.prototype.set=function(e){return Nt(this.options,e),this};le.prototype.configure=function(e){const t=this;if(Lu(e)){const u=e;if(e=Wc[u],!e)throw new Error('Wrong `markdown-it` preset "'+u+'", check name')}if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(u){e.components[u].rules&&t[u].ruler.enableOnly(e.components[u].rules),e.components[u].rules2&&t[u].ruler2.enableOnly(e.components[u].rules2)}),this};le.prototype.enable=function(e,t){let u=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(n){u=u.concat(this[n].ruler.enable(e,!0))},this),u=u.concat(this.inline.ruler2.enable(e,!0));const r=e.filter(function(n){return u.indexOf(n)<0});if(r.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+r);return this};le.prototype.disable=function(e,t){let u=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(n){u=u.concat(this[n].ruler.disable(e,!0))},this),u=u.concat(this.inline.ruler2.disable(e,!0));const r=e.filter(function(n){return u.indexOf(n)<0});if(r.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+r);return this};le.prototype.use=function(e){const t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this};le.prototype.parse=function(e,t){if(typeof e!="string")throw new Error("Input data should be a String");const u=new this.core.State(e,this,t);return this.core.process(u),u.tokens};le.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)};le.prototype.parseInline=function(e,t){const u=new this.core.State(e,this,t);return u.inlineMode=!0,this.core.process(u),u.tokens};le.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};let Ze=null;async function Xc(e){const t=e==="light"?"github-light":"github-dark";return(!Ze||Ze.theme!==t)&&(Ze=le().use(await ps({theme:t,langs:["python","py","sh"]})),Ze.theme=t),Ze}function e0(e){return e.trim()}const t0={class:"break-words w-full"},u0=["innerHTML"],r0=It({__name:"Markdown",props:{content:{},stream:{}},setup(e){const t=e,u=q(""),r=Hn(),n=q(null);kr(()=>{o("content"),setTimeout(()=>{a()},20)});async function i(){return n.value||(n.value=await Xc(r.preference)),n.value}function o(l){setTimeout(async()=>{const d=await i();if(l=="stream"&&(u.value=d.render(t.stream)),l=="content"){const c=e0(t.content);u.value=d.render(c),a()}},20)}yt(()=>t.content,()=>{o("content")}),yt(()=>t.stream,()=>{o("stream")});function a(){setTimeout(()=>{document.querySelectorAll("pre.shiki").forEach(d=>{if(d.style.fontSize="15px",d.style.background="#333",!d.querySelector("button.copy-button")){const c=document.createElement("button");c.className="copy-button",c.innerText="Copy",c.style.position="absolute",c.style.top="5px",c.style.right="5px",c.style.padding="5px",c.style.fontSize="12px",c.style.cursor="pointer",c.addEventListener("click",()=>{const h=d.querySelector("code");if(h){const p=h.innerText;s(p)}}),d.style.position="relative",d.appendChild(c)}})},200)}function s(l){navigator.clipboard.writeText(l).then(()=>{Ne("success","Copied to clipboard")}).catch(d=>{console.error("Failed to copy: ",d)})}return(l,d)=>(O(),F("div",t0,[C("div",{innerHTML:R(u)},null,8,u0)]))}}),n0=Wn(r0,[["__scopeId","data-v-31f9d0a7"]]),i0={key:0,class:"text-center py-12"},o0={key:5},a0={class:"flex justify-between items-center"},s0={class:"space-x-2"},l0={class:"text-3xl mb-4 font-serif break-words"},c0={class:"mb-4 text-xs text-left"},d0={key:0},f0=["href"],p0={key:1,class:"mx-2"},m0={key:2,class:"opacity-75"},h0={key:0,class:"w-full prose dark:prose-invert"},_0={class:"mb-4 grid grid-cols-1 gap-5 sm:grid-cols-3"},g0=It({__name:"StrategyMetrics",props:{strategy:{},strategyMetrics:{},loading:{type:Boolean}},setup(e){const t=e,u=Ce(()=>[{name:"PNL",stat:`${t.strategyMetrics.net_profit.toFixed(2)} (${t.strategyMetrics.net_profit_percentage.toFixed(2)}%)`},{name:"Win rate",stat:`${(t.strategyMetrics.win_rate*100).toFixed(2)}%`},{name:"Sharpe ratio",stat:t.strategyMetrics.sharpe_ratio.toFixed(2)},{name:"Smart Sharpe",stat:t.strategyMetrics.smart_sharpe.toFixed(2)},{name:"Sortino ratio",stat:t.strategyMetrics.sortino_ratio.toFixed(2)},{name:"Smart Sortino",stat:t.strategyMetrics.smart_sortino.toFixed(2)},{name:"Calmar ratio",stat:t.strategyMetrics.calmar_ratio.toFixed(2)},{name:"Omega ratio",stat:t.strategyMetrics.omega_ratio.toFixed(2)},{name:"Serenity index",stat:t.strategyMetrics.serenity_index.toFixed(2)},{name:"Average win/loss",stat:t.strategyMetrics.average_win_loss.toFixed(2)},{name:"Average win",stat:t.strategyMetrics.average_win.toFixed(2)},{name:"Average loss",stat:t.strategyMetrics.average_loss.toFixed(2)}]),r=Ce(()=>[{name:"Total trades",stat:t.strategyMetrics.total_completed_trades},{name:"Total winning trades",stat:t.strategyMetrics.total_winning_trades},{name:"Total losing trades",stat:t.strategyMetrics.total_losing_trades},{name:"Starting balance",stat:t.strategyMetrics.starting_balance.toFixed(2)},{name:"Finishing balance",stat:t.strategyMetrics.finishing_balance.toFixed(2)},{name:"Longs count",stat:t.strategyMetrics.longs_count},{name:"Longs percentage",stat:t.strategyMetrics.longs_percentage.toFixed(2)},{name:"Shorts percentage",stat:t.strategyMetrics.shorts_percentage.toFixed(2)},{name:"Shorts count",stat:t.strategyMetrics.shorts_count},{name:"Fee",stat:t.strategyMetrics.fee.toFixed(2)},{name:"Total open trades",stat:t.strategyMetrics.total_open_trades},{name:"Open PL",stat:t.strategyMetrics.open_pl.toFixed(2)}]),n=Ce(()=>[{name:"Total losing streak",stat:t.strategyMetrics.losing_streak},{name:"Largest losing trade",stat:t.strategyMetrics.largest_losing_trade.toFixed(2)},{name:"Largest winning trade",stat:t.strategyMetrics.largest_winning_trade.toFixed(2)},{name:"Total winning streak",stat:t.strategyMetrics.winning_streak},{name:"Current streak",stat:t.strategyMetrics.current_streak},{name:"Expectancy",stat:`${t.strategyMetrics.expectancy.toFixed(2)} (${t.strategyMetrics.expectancy_percentage.toFixed(2)}%)`},{name:"Expected net profit",stat:t.strategyMetrics.expected_net_profit.toFixed(2)},{name:"Average holding period",stat:t.strategyMetrics.average_holding_period.toFixed(2)},{name:"Gross profit",stat:t.strategyMetrics.gross_profit.toFixed(2)},{name:"Gross loss",stat:t.strategyMetrics.gross_loss.toFixed(2)},{name:"Max drawdown",stat:t.strategyMetrics.max_drawdown.toFixed(2)}]);return(i,o)=>{const a=bu,s=Sr,l=wr,d=ni,c=Ar,h=n0;return i.loading?(O(),F("div",i0,[(O(),F(Ee,null,we(3,p=>T(a,{key:p,class:"h-48 mb-4"})),64))])):i.strategyMetrics.id?i.strategyMetrics.id&&i.strategyMetrics.status==="failed"?(O(),he(s,{key:2,icon:"i-heroicons-x-circle",color:"rose",variant:"subtle",title:"This strategy has failed to generate metrics for the selected period, symbol and timeframe. Please try another one."})):i.strategyMetrics.id&&(i.strategyMetrics.status==="pending"||i.strategyMetrics.status==="running")?(O(),he(s,{key:3,icon:"i-heroicons-clock",color:"amber",variant:"subtle",title:"This strategy is still generating metrics for the selected period, symbol and timeframe. Please try again in a few minutes."})):i.strategyMetrics.id&&i.strategyMetrics.status==="completed"&&i.strategyMetrics.total_completed_trades==0?(O(),he(s,{key:4,icon:"i-heroicons-clock",color:"amber",variant:"subtle",title:`No trades were executed for this strategy in the selected period(${i.strategyMetrics.starting_date} - ${i.strategyMetrics.finishing_date}), symbol(${i.strategyMetrics.symbol}) and timeframe(${i.strategyMetrics.timeframe}).`},null,8,["title"])):i.strategyMetrics.id?(O(),F("div",o0,[T(c,{class:"mb-4"},{header:L(()=>[C("div",a0,[o[0]||(o[0]=C("h2",{class:"text-center font-serif font-semibold text-xl hidden md:block"}," Equity Curve ",-1)),C("div",s0,[T(l,{class:"text-lg font-semibold",color:"gray",variant:"soft"},{default:L(()=>[V(U(new Date(i.strategyMetrics.starting_date).toISOString().split("T")[0]+" => "+new Date(i.strategyMetrics.finishing_date).toISOString().split("T")[0]),1)]),_:1}),T(l,{class:"text-lg font-semibold",color:"gray",variant:"soft"},{default:L(()=>[V(U(i.strategyMetrics.symbol),1)]),_:1}),T(l,{class:"text-lg font-semibold",color:"gray",variant:"soft"},{default:L(()=>[V(U(i.strategyMetrics.timeframe),1)]),_:1})])])]),default:L(()=>[i.strategyMetrics.total_completed_trades&&i.strategyMetrics.equity_curve&&i.strategyMetrics.equity_curve.length?(O(),he(d,{key:0,data:i.strategyMetrics.equity_curve},null,8,["data"])):(O(),he(s,{key:1,variant:"subtle",title:"The equity curve for this strategy at this period, symbol and timeframe is not available."}))]),_:1}),T(c,{class:"mb-4"},{default:L(()=>[C("h1",l0,U(i.strategy.name),1),C("div",c0,[i.strategy.user?(O(),F("span",d0,[o[1]||(o[1]=V(" by ")),C("a",{href:`https://jesse.trade/u/${i.strategy.user.username}`,target:"_blank",class:"hover:underline"},"@"+U(i.strategy.user.username),9,f0)])):se("",!0),i.strategy.user&&i.strategy.created_at?(O(),F("span",p0,"•")):se("",!0),i.strategy.created_at?(O(),F("span",m0,U(R(Zn)(i.strategy.created_at).value),1)):se("",!0)]),i.strategy.description?(O(),F("div",h0,[T(h,{content:i.strategy.description},null,8,["content"])])):se("",!0)]),_:1}),C("dl",_0,[T(c,null,{header:L(()=>o[2]||(o[2]=[C("h2",{class:"text-center font-serif font-semibold text-xl"}," Performance Metrics ",-1)])),default:L(()=>[(O(!0),F(Ee,null,we(R(u),p=>(O(),F("div",{key:p.name,class:"flex justify-between text-sm opacity-75 mb-4"},[C("dt",null,U(p.name)+":",1),C("dd",null,U(p.stat),1)]))),128))]),_:1}),T(c,null,{header:L(()=>o[3]||(o[3]=[C("h2",{class:"text-center font-serif font-semibold text-xl"}," Risk Metrics ",-1)])),default:L(()=>[(O(!0),F(Ee,null,we(R(n),p=>(O(),F("div",{key:p.name,class:"flex justify-between text-sm opacity-75 mb-4"},[C("dt",null,U(p.name)+":",1),C("dd",null,U(p.stat),1)]))),128))]),_:1}),T(c,null,{header:L(()=>o[4]||(o[4]=[C("h2",{class:"text-center font-serif font-semibold text-xl"}," Trade Metrics ",-1)])),default:L(()=>[(O(!0),F(Ee,null,we(R(r),p=>(O(),F("div",{key:p.name,class:"flex justify-between text-sm opacity-75 mb-4"},[C("dt",null,U(p.name)+":",1),C("dd",null,U(p.stat),1)]))),128))]),_:1})])])):se("",!0):(O(),he(s,{key:1,variant:"subtle",icon:"i-heroicons-information-circle",title:"No metrics found for this strategy in the selected period, symbol and timeframe"}))}}}),b0={class:"flex-1 flex flex-col"},y0={class:"mb-2 font-serif text-xl text-center font-semibold"},x0={class:"mb-2 text-xs text-center opacity-75"},E0={key:0},k0={class:"text-center mt-2 mb-4"},A0={key:0,class:"mb-6 flex-1"},v0={key:0,class:"text-sm font-medium"},C0={class:"flex items-center justify-between"},D0={class:"text-center font-semibold text-xl font-serif"},w0={class:"flex flex-col md:flex-row flex-1 min-h-0 overflow-hidden bg-gray-50 dark:bg-gray-900"},S0={class:"border-2 py-4 px-4 rounded border-dashed dark:border-gray-700 mb-4"},T0={class:"w-full space-y-4"},R0={class:"space-y-2"},L0={key:1,class:"text-center py-12"},P0={class:"flex items-center justify-between"},I0={class:"flex justify-end"},O0={class:"flex items-center justify-between"},F0={class:"space-y-4"},M0={class:"bold"},N0={class:"flex justify-end gap-2"},V0=It({__name:"JesseTradeStrategy",props:{strategy:{}},emits:["imported"],setup(e,{emit:t}){const u=e,r=t,n=q(!1),i=q(!1),o=q(null),a=q(!1),s=q({}),l=q(!0),d=q(!1),c=q(!1),h=q(null),p=q(null);function m(w){let v=w.target;for(;v&&v!==h.value;){const K=window.getComputedStyle(v).overflowY;if((K==="auto"||K==="scroll")&&v.scrollHeight>v.clientHeight)return;v=v.parentElement}window.innerWidth>=768&&p.value&&(w.preventDefault(),p.value.scrollTop+=w.deltaY)}const x=q([]),g=q(!0),E=Ce(()=>{var w;return((w=o.value)==null?void 0:w.backtest_timeframes)||u.strategy.backtest_timeframes||["5m","15m","30m","1h","4h","6h","1D"]}),_=Ce(()=>{var w;return((w=o.value)==null?void 0:w.backtest_symbols)||u.strategy.backtest_symbols||["BTC-USDT"]}),y=q({period:"",symbol:"",timeframe:""});async function k(){g.value=!0;try{const w=await me().fetchJesseTradePeriods();x.value=w||[],x.value.length>0&&(y.value.period=x.value[0])}catch(w){console.error("Failed to load periods:",w),Ne("error","Failed to load periods")}finally{g.value=!1}}const D=Ce(()=>{var v,B,K,X;if(!u.strategy.strategy_metrics)return[];const w=u.strategy.strategy_metrics;return[{key:"PNL",value:`$${((v=w.net_profit)==null?void 0:v.toFixed(2))||0} (${((B=w.net_profit_percentage)==null?void 0:B.toFixed(2))||0}%)`},{key:"Max Drawdown",value:((K=w.max_drawdown)==null?void 0:K.toFixed(2))||0},{key:"Sharpe Ratio",value:((X=w.sharpe_ratio)==null?void 0:X.toFixed(2))||0},{key:"Win-rate",value:`${((w.win_rate||0)*100).toFixed(2)}%`}]}),S=Ce(()=>{const w=me().jesseTradeUser;return w?w.premium_until&&new Date(w.premium_until)>new Date?"Premium":w.license_plan||"Free":"Guest"}),I=Ce(()=>{if(!me().jesseTradeBearer)return!1;if(u.strategy.type==="free")return!0;if(u.strategy.type==="premium"){const w=me().jesseTradeUser;return w&&w.premium_until?new Date(w.premium_until)>new Date:!1}return!0});async function z(){var w;n.value=!0,x.value.length===0&&await k(),o.value||(o.value=await me().getJesseTradeStrategy(u.strategy.slug),(w=o.value)!=null&&w.strategy_metrics?(l.value=!0,s.value=o.value.strategy_metrics,Yn(()=>{y.value={period:re(o.value.strategy_metrics),symbol:o.value.strategy_metrics.symbol,timeframe:o.value.strategy_metrics.timeframe},l.value=!1})):(l.value=!1,y.value={period:x.value[0]||"",symbol:_.value[0]||"",timeframe:E.value[0]||""}))}async function Q(){a.value=!0,s.value={};const w=await me().getJesseTradeStrategyMetrics(u.strategy.slug,y.value.period,y.value.symbol,y.value.timeframe);a.value=!1,w?s.value=w:s.value={}}function re(w){const v=new Date(w.starting_date),B=new Date(w.finishing_date),K=v.getFullYear(),X=v.getMonth()+1,Oe=B.getFullYear(),Fe=B.getMonth()+1;return Fe-X>9?`${K} - ${Oe+1}`:Fe-X==2?`Q${(X-1)/3+1} of ${K}`:x.value.length>0?x.value[0]:""}yt(y,()=>{o.value&&!l.value&&Q()},{deep:!0});async function de(){if(!me().jesseTradeBearer){d.value=!0;return}if(u.strategy.type==="premium"&&!I.value){c.value=!0;return}i.value=!0;const w=await me().importStrategy(u.strategy.slug);i.value=!1,w&&w.status==="success"&&(Ne("success",`Strategy "${w.name}" imported successfully!`),r("imported",w.name),n.value=!1,Qn(`/strategies/${w.name}`))}function Ie(){window.open("https://jesse.trade/pricing","_blank")}return(w,v)=>{const B=wr,K=Sr,X=vr,Oe=Ar,Fe=Dr,jt=Cr,$n=g0,qn=bu,$t=Kn;return O(),F(Ee,null,[T(Oe,{class:"mb-4 hover:border-primary-500 flex flex-col",ui:{background:"bg-white dark:bg-gray-800",base:"cursor-pointer hover:!bg-gray-50 dark:hover:!bg-gray-700 transition-colors h-full",body:{base:"flex flex-col flex-1"}},onClick:z},{default:L(()=>[C("div",b0,[C("h2",y0,U(w.strategy.name),1),C("div",x0,[w.strategy.user?(O(),F("span",E0," by @"+U(w.strategy.user.username),1)):se("",!0)]),C("div",k0,[T(B,{variant:"soft",color:w.strategy.type==="free"?"gray":"teal",size:"xs",class:"uppercase"},{default:L(()=>[V(U(w.strategy.type),1)]),_:1},8,["color"])]),w.strategy.admin_status==="approved"&&w.strategy.strategy_metrics?(O(),F("div",A0,[(O(!0),F(Ee,null,we(R(D),j=>(O(),F("div",{key:j.key,class:"flex justify-between text-sm opacity-75 mb-2"},[C("div",null,U(j.key)+":",1),C("div",null,U(j.value),1)]))),128))])):se("",!0),w.strategy.admin_status==="rejected"?(O(),he(K,{key:1,class:"mb-4",color:"red",variant:"soft",title:"This strategy has been rejected"},{description:L(()=>[w.strategy.admin_rejection_reason?(O(),F("p",v0,[v[11]||(v[11]=C("strong",null,"Reason:",-1)),V(" "+U(w.strategy.admin_rejection_reason),1)])):se("",!0)]),_:1})):w.strategy.admin_status!=="approved"?(O(),he(K,{key:2,class:"mb-4",color:"orange",variant:"soft",title:"This strategy is under review and not approved yet."})):se("",!0)]),T(X,{block:"",loading:R(i),color:"primary",variant:"soft",class:"mt-auto",onClick:Jn(de,["stop"])},{default:L(()=>v[12]||(v[12]=[V(" Import Strategy ")])),_:1},8,["loading"])]),_:1}),T($t,{modelValue:R(n),"onUpdate:modelValue":v[4]||(v[4]=j=>qt(n)?n.value=j:null),fullscreen:""},{default:L(()=>[T(Oe,{ui:{base:"flex flex-col h-full",header:{base:"border-b border-gray-200 dark:border-gray-700 flex-shrink-0"},body:{padding:"p-0 sm:p-0",base:"bg-gray-50 dark:bg-gray-900 flex flex-col flex-1 min-h-0 overflow-hidden"},ring:"",divide:""}},{header:L(()=>[C("div",C0,[C("h2",D0,U(w.strategy.name),1),T(X,{color:"gray",icon:"i-heroicons-x-mark-20-solid",onClick:v[0]||(v[0]=j=>n.value=!1)},{default:L(()=>v[13]||(v[13]=[V(" Close ")])),_:1})])]),default:L(()=>[C("div",w0,[C("div",{ref_key:"sidebarRef",ref:h,class:"md:w-1/4 md:flex-shrink-0 p-4 md:border-r border-b md:border-b-0 border-gray-200 dark:border-gray-700",onWheel:m},[C("div",S0,[v[14]||(v[14]=C("h2",{class:"mb-4 text-xl font-serif text-center"}," Filter Metrics ",-1)),v[15]||(v[15]=C("p",{class:"mb-4 text-sm"}," Select the info for the backtest metrics that you want to see: ",-1)),C("div",T0,[T(jt,{label:"Trading period"},{default:L(()=>[T(Fe,{modelValue:R(y).period,"onUpdate:modelValue":v[1]||(v[1]=j=>R(y).period=j),searchable:"","searchable-placeholder":"Search period...",class:"w-full",placeholder:"Select period",options:R(x),loading:R(g)},null,8,["modelValue","options","loading"])]),_:1}),T(jt,{label:"Symbol"},{default:L(()=>[T(Fe,{modelValue:R(y).symbol,"onUpdate:modelValue":v[2]||(v[2]=j=>R(y).symbol=j),class:"w-full",placeholder:"Symbol",options:R(_)},null,8,["modelValue","options"])]),_:1}),T(jt,{label:"Timeframe"},{default:L(()=>[T(Fe,{modelValue:R(y).timeframe,"onUpdate:modelValue":v[3]||(v[3]=j=>R(y).timeframe=j),class:"w-full",placeholder:"Timeframe",options:R(E)},null,8,["modelValue","options"])]),_:1})])]),C("div",R0,[T(X,{block:"",loading:R(i),color:"primary",onClick:de},{default:L(()=>v[16]||(v[16]=[V(" Import Strategy ")])),_:1},8,["loading"])])],544),C("div",{ref_key:"contentRef",ref:p,class:"flex-1 min-w-0 overflow-y-auto p-4"},[R(o)?(O(),he($n,{key:0,strategy:R(o),"strategy-metrics":R(s),loading:R(a)},null,8,["strategy","strategy-metrics","loading"])):(O(),F("div",L0,[(O(),F(Ee,null,we(3,j=>T(qn,{key:j,class:"h-48 mb-4"})),64))]))],512)])]),_:1})]),_:1},8,["modelValue"]),T($t,{modelValue:R(d),"onUpdate:modelValue":v[7]||(v[7]=j=>qt(d)?d.value=j:null)},{default:L(()=>[T(Oe,null,{header:L(()=>[C("div",P0,[v[17]||(v[17]=C("h3",{class:"text-lg font-semibold"}," Authentication Required ",-1)),T(X,{color:"gray",variant:"ghost",icon:"i-heroicons-x-mark-20-solid",onClick:v[5]||(v[5]=j=>d.value=!1)})])]),footer:L(()=>[C("div",I0,[T(X,{color:"primary",onClick:v[6]||(v[6]=j=>d.value=!1)},{default:L(()=>v[18]||(v[18]=[V(" Got it ")])),_:1})])]),default:L(()=>[v[19]||(v[19]=C("div",{class:"space-y-4"},[C("p",null,[V(" To import strategies from jesse.trade, you need to authenticate with your "),C("code",{class:"px-1 py-0.5 bg-gray-100 dark:bg-gray-800 rounded"},"LICENSE_API_TOKEN"),V(". This applies to both free and premium users. ")]),C("div",{class:"space-y-2"},[C("h4",{class:"font-semibold"}," How to get started: "),C("ol",{class:"list-decimal list-inside space-y-2"},[C("li",null,[V("Visit "),C("a",{href:"https://jesse.trade/user/api-tokens",target:"_blank",class:"text-primary-500 hover:underline"},"jesse.trade/user/api-tokens")]),C("li",null,[V("Generate a new "),C("code",{class:"px-1 py-0.5 bg-gray-100 dark:bg-gray-800 rounded"},"LICENSE_API_TOKEN")]),C("li",null,[V("Copy the token and add it to your project's "),C("code",{class:"px-1 py-0.5 bg-gray-100 dark:bg-gray-800 rounded"},".env"),V(" file:")])])]),C("div",{class:"bg-gray-50 dark:bg-gray-800 p-3 rounded-lg"},[C("code",{class:"text-gray-800 dark:text-gray-200"}," LICENSE_API_TOKEN=your-token-here ")]),C("p",null,[V(" After adding the token to your "),C("code",{class:"px-1 py-0.5 bg-gray-100 dark:bg-gray-800 rounded"},".env"),V(" file, restart Jesse and you'll be authenticated automatically. ")])],-1))]),_:1})]),_:1},8,["modelValue"]),T($t,{modelValue:R(c),"onUpdate:modelValue":v[10]||(v[10]=j=>qt(c)?c.value=j:null)},{default:L(()=>[T(Oe,null,{header:L(()=>[C("div",O0,[v[20]||(v[20]=C("h3",{class:"text-lg font-semibold"}," Premium Plan Required ",-1)),T(X,{color:"gray",variant:"ghost",icon:"i-heroicons-x-mark-20-solid",onClick:v[8]||(v[8]=j=>c.value=!1)})])]),footer:L(()=>[C("div",N0,[T(X,{color:"gray",variant:"ghost",onClick:v[9]||(v[9]=j=>c.value=!1)},{default:L(()=>v[26]||(v[26]=[V(" Maybe Later ")])),_:1}),T(X,{color:"primary",onClick:Ie},{default:L(()=>v[27]||(v[27]=[V(" View Pricing ")])),_:1})])]),default:L(()=>[C("div",F0,[C("p",null,[v[21]||(v[21]=V(" This is a premium strategy. Your current plan is ")),C("strong",M0,'"'+U(R(S))+'"',1),v[22]||(v[22]=V(". "))]),v[23]||(v[23]=C("p",{class:"text-gray-600 dark:text-gray-400"}," To import premium strategies and unlock all premium features, you need to upgrade to a Premium plan. ",-1)),v[24]||(v[24]=C("div",{class:"space-y-2"},[C("h4",{class:"font-semibold"}," How to upgrade: "),C("ol",{class:"list-decimal list-inside space-y-2"},[C("li",null,[V("Visit "),C("a",{href:"https://jesse.trade/pricing",target:"_blank",class:"text-primary-500 hover:underline"},"jesse.trade/pricing")]),C("li",null,"Choose a Premium plan that fits your needs"),C("li",null,"Complete the purchase"),C("li",null,"Your account will be upgraded immediately")])],-1)),v[25]||(v[25]=C("p",null," After upgrading, restart Jesse to refresh your authentication and access premium strategies. ",-1))])]),_:1})]),_:1},8,["modelValue"])],64)}}}),B0={class:"grid items-start lg:grid-cols-5"},z0={class:"grid grid-cols-1 lg:col-span-4 bg-gray-100 dark:bg-backdrop-dark overflow-y-auto",style:{height:"calc(100vh - 4rem - 4px)"}},j0={class:"p-8"},$0={class:"flex items-center justify-between mb-8"},q0={class:"grid grid-cols-1 md:grid-cols-3 gap-4 mb-6"},U0={key:0,class:"mb-6"},G0={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},H0={key:1,class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"},W0={key:2,class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 items-stretch"},Z0={key:3,class:"flex flex-col items-center justify-center py-16"},ld=It({__name:"index",setup(e){ii({title:"Strategies - Jesse"});const t=["Sharpe Ratio","PNL","Sortino Ratio","Calmar Ratio","Win Rate"],u=["All time","Last 7 days","Last 30 days","Last 6 months","Last year","Custom"],r=q([]),n=q(!0),i=q({sortBy:t[0],period:"",submissionDate:u[0],customStartDate:"",customEndDate:""});async function o(){n.value=!0;try{const c=await me().fetchJesseTradePeriods();r.value=c||[],r.value.length>0&&(i.value.period=r.value[0],await l())}catch(c){console.error("Failed to load periods:",c),Ne("error","Failed to load periods")}finally{n.value=!1}}const a=q([]),s=q(!1);async function l(){if(i.value.period){s.value=!0,a.value=[];try{let c,h;if(i.value.submissionDate!=="All time")if(i.value.submissionDate==="Custom")c=i.value.customStartDate||void 0,h=i.value.customEndDate||void 0;else{const m=new Date;let x=null;const g=m;switch(i.value.submissionDate){case"Last 7 days":x=new Date(m.getTime()-7*24*60*60*1e3);break;case"Last 30 days":x=new Date(m.getTime()-30*24*60*60*1e3);break;case"Last 6 months":x=new Date(m),x.setMonth(m.getMonth()-6);break;case"Last year":x=new Date(m),x.setFullYear(m.getFullYear()-1);break}x&&(c=x.toISOString().split("T")[0]),h=g.toISOString().split("T")[0]}const p=await me().fetchJesseTradeStrategies(i.value.period,i.value.sortBy,c,h);a.value=p||[]}catch{Ne("error","Failed to fetch strategies")}finally{s.value=!1}}}function d(c){Ne("success",`Strategy "${c}" is now available in your strategies list`)}return yt(i,l,{deep:!0}),kr(()=>{setTimeout(async()=>{await o()},20)}),(c,h)=>{const p=vr,m=ui,x=Dr,g=Cr,E=ei,_=bu,y=ti;return O(),F("section",B0,[T(ri),C("div",z0,[C("div",j0,[C("div",$0,[h[7]||(h[7]=C("h1",{class:"text-3xl font-bold text-gray-900 dark:text-white"}," Strategies ",-1)),T(p,{icon:"i-heroicons-plus",onClick:h[0]||(h[0]=k=>("useTempStore"in c?c.useTempStore:R(Xn))().makeStrategy=!0)},{default:L(()=>h[6]||(h[6]=[V(" Create a new strategy ")])),_:1})]),T(m,{class:"my-8"},{default:L(()=>h[8]||(h[8]=[V(" Browse strategies from our community or create your own custom strategy. ")])),_:1}),C("div",q0,[T(g,{label:"Sort by"},{default:L(()=>[T(x,{modelValue:R(i).sortBy,"onUpdate:modelValue":h[1]||(h[1]=k=>R(i).sortBy=k),options:t,class:"w-full"},null,8,["modelValue"])]),_:1}),T(g,{label:"Trading period"},{default:L(()=>[T(x,{modelValue:R(i).period,"onUpdate:modelValue":h[2]||(h[2]=k=>R(i).period=k),options:R(r),searchable:"","searchable-placeholder":"Search period...",loading:R(n),class:"w-full"},null,8,["modelValue","options","loading"])]),_:1}),T(g,{label:"Submission date"},{default:L(()=>[T(x,{modelValue:R(i).submissionDate,"onUpdate:modelValue":h[3]||(h[3]=k=>R(i).submissionDate=k),options:u,class:"w-full"},null,8,["modelValue"])]),_:1})]),R(i).submissionDate==="Custom"?(O(),F("div",U0,[C("div",G0,[T(g,{label:"From date"},{default:L(()=>[T(E,{modelValue:R(i).customStartDate,"onUpdate:modelValue":h[4]||(h[4]=k=>R(i).customStartDate=k),type:"date",class:"w-full"},null,8,["modelValue"])]),_:1}),T(g,{label:"To date"},{default:L(()=>[T(E,{modelValue:R(i).customEndDate,"onUpdate:modelValue":h[5]||(h[5]=k=>R(i).customEndDate=k),type:"date",class:"w-full"},null,8,["modelValue"])]),_:1})])])):se("",!0),R(s)?(O(),F("div",H0,[(O(),F(Ee,null,we(6,k=>T(_,{key:k,class:"h-64 bg-white dark:bg-gray-800"})),64))])):se("",!0),!R(s)&&R(a).length>0?(O(),F("div",W0,[(O(!0),F(Ee,null,we(R(a),k=>(O(),he(V0,{key:k.slug,strategy:k,onImported:d},null,8,["strategy"]))),128))])):!R(s)&&R(a).length===0?(O(),F("div",Z0,[T(y,{name:"i-heroicons-magnifying-glass",class:"w-16 h-16 text-gray-400 dark:text-gray-600 mb-4"}),h[9]||(h[9]=C("h3",{class:"text-lg font-semibold text-gray-700 dark:text-gray-300 mb-2"}," No Strategies Found ",-1)),h[10]||(h[10]=C("p",{class:"text-gray-500 dark:text-gray-400 text-center max-w-md"}," No strategies were found for the selected period. Try selecting a different period or check back later for new strategies. ",-1))])):se("",!0)])])])}}});export{ld as default}; ================================================ FILE: jesse/static/_nuxt/B2Cf9XSq.js ================================================ /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var e={comments:{blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"(*",close:"*)"},{open:"<*",close:"*>"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}]},o={defaultToken:"",tokenPostfix:".m3",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["AND","ANY","ARRAY","AS","BEGIN","BITS","BRANDED","BY","CASE","CONST","DIV","DO","ELSE","ELSIF","END","EVAL","EXCEPT","EXCEPTION","EXIT","EXPORTS","FINALLY","FOR","FROM","GENERIC","IF","IMPORT","IN","INTERFACE","LOCK","LOOP","METHODS","MOD","MODULE","NOT","OBJECT","OF","OR","OVERRIDES","PROCEDURE","RAISE","RAISES","READONLY","RECORD","REF","REPEAT","RETURN","REVEAL","SET","THEN","TO","TRY","TYPE","TYPECASE","UNSAFE","UNTIL","UNTRACED","VALUE","VAR","WHILE","WITH"],reservedConstNames:["ABS","ADR","ADRSIZE","BITSIZE","BYTESIZE","CEILING","DEC","DISPOSE","FALSE","FIRST","FLOAT","FLOOR","INC","ISTYPE","LAST","LOOPHOLE","MAX","MIN","NARROW","NEW","NIL","NUMBER","ORD","ROUND","SUBARRAY","TRUE","TRUNC","TYPECODE","VAL"],reservedTypeNames:["ADDRESS","ANY","BOOLEAN","CARDINAL","CHAR","EXTENDED","INTEGER","LONGCARD","LONGINT","LONGREAL","MUTEX","NULL","REAL","REFANY","ROOT","TEXT"],operators:["+","-","*","/","&","^","."],relations:["=","#","<","<=",">",">=","<:",":"],delimiters:["|","..","=>",",",";",":="],symbols:/[>=<#.,:;+\-*/&^]+/,escapes:/\\(?:[\\fnrt"']|[0-7]{3})/,tokenizer:{root:[[/_\w*/,"invalid"],[/[a-zA-Z][a-zA-Z0-9_]*/,{cases:{"@keywords":{token:"keyword.$0"},"@reservedConstNames":{token:"constant.reserved.$0"},"@reservedTypeNames":{token:"type.reserved.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[0-9]+\.[0-9]+(?:[DdEeXx][\+\-]?[0-9]+)?/,"number.float"],[/[0-9]+(?:\_[0-9a-fA-F]+)?L?/,"number"],[/@symbols/,{cases:{"@operators":"operators","@relations":"operators","@delimiters":"delimiter","@default":"invalid"}}],[/'[^\\']'/,"string.char"],[/(')(@escapes)(')/,["string.char","string.escape","string.char"]],[/'/,"invalid"],[/"([^"\\]|\\.)*$/,"invalid"],[/"/,"string.text","@text"]],text:[[/[^\\"]+/,"string.text"],[/@escapes/,"string.escape"],[/\\./,"invalid"],[/"/,"string.text","@pop"]],comment:[[/\(\*/,"comment","@push"],[/\*\)/,"comment","@pop"],[/./,"comment"]],pragma:[[/<\*/,"keyword.pragma","@push"],[/\*>/,"keyword.pragma","@pop"],[/./,"keyword.pragma"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/<\*/,"keyword.pragma","@pragma"]]}};export{e as conf,o as language}; ================================================ FILE: jesse/static/_nuxt/B2nSH5Xk.js ================================================ import{a1 as o}from"./CU_MfyYc.js";/*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var a=Object.defineProperty,l=Object.getOwnPropertyDescriptor,p=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,g=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of p(e))!c.call(t,r)&&r!==n&&a(t,r,{get:()=>e[r],enumerable:!(s=l(e,r))||s.enumerable});return t},d=(t,e,n)=>(g(t,e,"default"),n),i={};d(i,o);var f={comments:{lineComment:"#",blockComment:["'''","'''"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp("^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async|match|case).*?:\\s*$"),action:{indentAction:i.languages.IndentAction.Indent}}],folding:{offSide:!0,markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},m={defaultToken:"",tokenPostfix:".python",keywords:["False","None","True","_","and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","exec","finally","for","from","global","if","import","in","is","lambda","match","nonlocal","not","or","pass","print","raise","return","try","type","while","with","yield","int","float","long","complex","hex","abs","all","any","apply","basestring","bin","bool","buffer","bytearray","callable","chr","classmethod","cmp","coerce","compile","complex","delattr","dict","dir","divmod","enumerate","eval","execfile","file","filter","format","frozenset","getattr","globals","hasattr","hash","help","id","input","intern","isinstance","issubclass","iter","len","locals","list","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","reversed","range","raw_input","reduce","reload","repr","reversed","round","self","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","unichr","unicode","vars","xrange","zip","__dict__","__methods__","__members__","__class__","__bases__","__name__","__mro__","__subclasses__","__init__","__import__"],brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"}],tokenizer:{root:[{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},[/[,:;]/,"delimiter"],[/[{}\[\]()]/,"@brackets"],[/@[a-zA-Z_]\w*/,"tag"],[/[a-zA-Z_]\w*/,{cases:{"@keywords":"keyword","@default":"identifier"}}]],whitespace:[[/\s+/,"white"],[/(^#.*$)/,"comment"],[/'''/,"string","@endDocString"],[/"""/,"string","@endDblDocString"]],endDocString:[[/[^']+/,"string"],[/\\'/,"string"],[/'''/,"string","@popall"],[/'/,"string"]],endDblDocString:[[/[^"]+/,"string"],[/\\"/,"string"],[/"""/,"string","@popall"],[/"/,"string"]],numbers:[[/-?0x([abcdef]|[ABCDEF]|\d)+[lL]?/,"number.hex"],[/-?(\d*\.)?\d+([eE][+\-]?\d+)?[jJ]?[lL]?/,"number"]],strings:[[/'$/,"string.escape","@popall"],[/f'{1,3}/,"string.escape","@fStringBody"],[/'/,"string.escape","@stringBody"],[/"$/,"string.escape","@popall"],[/f"{1,3}/,"string.escape","@fDblStringBody"],[/"/,"string.escape","@dblStringBody"]],fStringBody:[[/[^\\'\{\}]+$/,"string","@popall"],[/[^\\'\{\}]+/,"string"],[/\{[^\}':!=]+/,"identifier","@fStringDetail"],[/\\./,"string"],[/'/,"string.escape","@popall"],[/\\$/,"string"]],stringBody:[[/[^\\']+$/,"string","@popall"],[/[^\\']+/,"string"],[/\\./,"string"],[/'/,"string.escape","@popall"],[/\\$/,"string"]],fDblStringBody:[[/[^\\"\{\}]+$/,"string","@popall"],[/[^\\"\{\}]+/,"string"],[/\{[^\}':!=]+/,"identifier","@fStringDetail"],[/\\./,"string"],[/"/,"string.escape","@popall"],[/\\$/,"string"]],dblStringBody:[[/[^\\"]+$/,"string","@popall"],[/[^\\"]+/,"string"],[/\\./,"string"],[/"/,"string.escape","@popall"],[/\\$/,"string"]],fStringDetail:[[/[:][^}]+/,"string"],[/[!][ars]/,"string"],[/=/,"string"],[/\}/,"identifier","@pop"]]}};export{f as conf,m as language}; ================================================ FILE: jesse/static/_nuxt/B2vK47Ag.js ================================================ import e from"./B1SYOhNW.js";import t from"./ySlJ1b_l.js";import n from"./BPhBrDlE.js";const i=Object.freeze(JSON.parse(`{"displayName":"Templ","name":"templ","patterns":[{"include":"#script-template"},{"include":"#css-template"},{"include":"#html-template"},{"include":"source.go"}],"repository":{"block-element":{"begin":"())","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.block.any.html"}},"end":"(>)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.block.any.html","patterns":[{"include":"#tag-stuff"}]},"call-expression":{"begin":"({\\\\!)\\\\s+","beginCaptures":{"0":{"name":"start.call-expression.templ"},"1":{"name":"punctuation.brace.open"}},"end":"(})","endCaptures":{"0":{"name":"end.call-expression.templ"},"1":{"name":"punctuation.brace.close"}},"name":"call-expression.templ","patterns":[{"include":"source.go"}]},"case-expression":{"begin":"^\\\\s*case .+?:$","captures":{"0":{"name":"case.switch.html-template.templ","patterns":[{"include":"source.go"}]}},"end":"(^\\\\s*case .+?:$)|(^\\\\s*default:$)|(\\\\s*$)","patterns":[{"include":"#template-node"}]},"close-element":{"begin":"()","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.other.html","patterns":[{"include":"#tag-stuff"}]},"css-template":{"begin":"^(css) ([A-z_][A-z_0-9]*\\\\()","beginCaptures":{"1":{"name":"keyword.control.go"},"2":{"patterns":[{"include":"source.go"}]}},"end":"(?<=^}$)","name":"css-template.templ","patterns":[{"begin":"(?<=\\\\()","end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.definition.end.bracket.round.go"}},"name":"params.css-template.templ","patterns":[{"include":"source.go"}]},{"begin":"(?<=\\\\)) ({)$","beginCaptures":{"1":{"name":"punctuation.definition.begin.bracket.curly.go"}},"end":"^(})$","endCaptures":{"1":{"name":"punctuation.definition.end.bracket.curly.go"}},"name":"block.css-template.templ","patterns":[{"begin":"\\\\s*((?:-(?:webkit|moz|o|ms|khtml)-)?(?:zoom|z-index|y|x|writing-mode|wrap|wrap-through|wrap-inside|wrap-flow|wrap-before|wrap-after|word-wrap|word-spacing|word-break|word|will-change|width|widows|white-space-collapse|white-space|white|weight|volume|voice-volume|voice-stress|voice-rate|voice-pitch-range|voice-pitch|voice-family|voice-duration|voice-balance|voice|visibility|vertical-align|vector-effect|variant|user-zoom|user-select|up|unicode-(bidi|range)|trim|translate|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform-box|transform|touch-action|top-width|top-style|top-right-radius|top-left-radius|top-color|top|timing-function|text-wrap|text-underline-position|text-transform|text-spacing|text-space-trim|text-space-collapse|text-size-adjust|text-shadow|text-replace|text-rendering|text-overflow|text-outline|text-orientation|text-justify|text-indent|text-height|text-emphasis-style|text-emphasis-skip|text-emphasis-position|text-emphasis-color|text-emphasis|text-decoration-style|text-decoration-stroke|text-decoration-skip|text-decoration-line|text-decoration-fill|text-decoration-color|text-decoration|text-combine-upright|text-anchor|text-align-last|text-align-all|text-align|text|target-position|target-new|target-name|target|table-layout|tab-size|system|symbols|suffix|style-type|style-position|style-image|style|stroke-width|stroke-opacity|stroke-miterlimit|stroke-linejoin|stroke-linecap|stroke-dashoffset|stroke-dasharray|stroke|string-set|stretch|stress|stop-opacity|stop-color|stacking-strategy|stacking-shift|stacking-ruby|stacking|src|speed|speech-rate|speech|speak-punctuation|speak-numeral|speak-header|speak-as|speak|span|spacing|space-collapse|space|solid-opacity|solid-color|sizing|size-adjust|size|shape-rendering|shape-padding|shape-outside|shape-margin|shape-inside|shape-image-threshold|shadow|scroll-snap-type|scroll-snap-points-y|scroll-snap-points-x|scroll-snap-destination|scroll-snap-coordinate|scroll-behavior|scale|ry|rx|respond-to|rule-width|rule-style|rule-color|rule|ruby-span|ruby-position|ruby-overhang|ruby-merge|ruby-align|ruby|rows|rotation-point|rotation|rotate|role|right-width|right-style|right-color|right|richness|rest-before|rest-after|rest|resource|resolution|resize|reset|replace|repeat|rendering-intent|region-fragment|rate|range|radius|r|quotes|punctuation-trim|punctuation|property|profile|presentation-level|presentation|prefix|position|pointer-events|point|play-state|play-during|play-count|pitch-range|pitch|phonemes|perspective-origin|perspective|pause-before|pause-after|pause|page-policy|page-break-inside|page-break-before|page-break-after|page|padding-top|padding-right|padding-left|padding-inline-start|padding-inline-end|padding-bottom|padding-block-start|padding-block-end|padding|pad|pack|overhang|overflow-y|overflow-x|overflow-wrap|overflow-style|overflow-inline|overflow-block|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|origin|orientation|orient|ordinal-group|order|opacity|offset-start|offset-inline-start|offset-inline-end|offset-end|offset-block-start|offset-block-end|offset-before|offset-after|offset|object-position|object-fit|numeral|new|negative|nav-up|nav-right|nav-left|nav-index|nav-down|nav|name|move-to|motion-rotation|motion-path|motion-offset|motion|model|mix-blend-mode|min-zoom|min-width|min-inline-size|min-height|min-block-size|min|max-zoom|max-width|max-lines|max-inline-size|max-height|max-block-size|max|mask-type|mask-size|mask-repeat|mask-position|mask-origin|mask-mode|mask-image|mask-composite|mask-clip|mask-border-width|mask-border-source|mask-border-slice|mask-border-repeat|mask-border-outset|mask-border-mode|mask-border|mask|marquee-style|marquee-speed|marquee-play-count|marquee-loop|marquee-direction|marquee|marks|marker-start|marker-side|marker-mid|marker-end|marker|margin-top|margin-right|margin-left|margin-inline-start|margin-inline-end|margin-bottom|margin-block-start|margin-block-end|margin|list-style-type|list-style-position|list-style-image|list-style|list|lines|line-stacking-strategy|line-stacking-shift|line-stacking-ruby|line-stacking|line-snap|line-height|line-grid|line-break|line|lighting-color|level|letter-spacing|length|left-width|left-style|left-color|left|label|kerning|justify-self|justify-items|justify-content|justify|iteration-count|isolation|inline-size|inline-box-align|initial-value|initial-size|initial-letter-wrap|initial-letter-align|initial-letter|initial-before-align|initial-before-adjust|initial-after-align|initial-after-adjust|index|indent|increment|image-rendering|image-resolution|image-orientation|image|icon|hyphens|hyphenate-limit-zone|hyphenate-limit-lines|hyphenate-limit-last|hyphenate-limit-chars|hyphenate-character|hyphenate|height|header|hanging-punctuation|grid-template-rows|grid-template-columns|grid-template-areas|grid-template|grid-row-start|grid-row-gap|grid-row-end|grid-row|grid-rows|grid-gap|grid-column-start|grid-column-gap|grid-column-end|grid-column|grid-columns|grid-auto-rows|grid-auto-flow|grid-auto-columns|grid-area|grid|glyph-orientation-vertical|glyph-orientation-horizontal|gap|font-weight|font-variant-position|font-variant-numeric|font-variant-ligatures|font-variant-east-asian|font-variant-caps|font-variant-alternates|font-variant|font-synthesis|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|flow-into|flow-from|flow|flood-opacity|flood-color|float-offset|float|flex-wrap|flex-shrink|flex-grow|flex-group|flex-flow|flex-direction|flex-basis|flex|fit-position|fit|filter|fill-rule|fill-opacity|fill|family|fallback|enable-background|empty-cells|emphasis|elevation|duration|drop-initial-value|drop-initial-size|drop-initial-before-align|drop-initial-before-adjust|drop-initial-after-align|drop-initial-after-adjust|drop|down|dominant-baseline|display-role|display-model|display|direction|delay|decoration-break|decoration|cy|cx|cursor|cue-before|cue-after|cue|crop|counter-set|counter-reset|counter-increment|counter|count|corner-shape|corners|continue|content|contain|columns|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|column-break-before|column-break-after|column|color-rendering|color-profile|color-interpolation-filters|color-interpolation|color-adjust|color|collapse|clip-rule|clip-path|clip|clear|character|caret-shape|caret-color|caret|caption-side|buffered-rendering|break-inside|break-before|break-after|break|box-suppress|box-snap|box-sizing|box-shadow|box-pack|box-orient|box-ordinal-group|box-lines|box-flex-group|box-flex|box-direction|box-decoration-break|box-align|box|bottom-width|bottom-style|bottom-right-radius|bottom-left-radius|bottom-color|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-limit|border-length|border-left-width|border-left-style|border-left-color|border-left|border-inline-start-width|border-inline-start-style|border-inline-start-color|border-inline-start|border-inline-end-width|border-inline-end-style|border-inline-end-color|border-inline-end|border-image-width|border-image-transform|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-clip-top|border-clip-right|border-clip-left|border-clip-bottom|border-clip|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border-block-start-width|border-block-start-style|border-block-start-color|border-block-start|border-block-end-width|border-block-end-style|border-block-end-color|border-block-end|border|bookmark-target|bookmark-level|bookmark-label|bookmark|block-size|binding|bidi|before|baseline-shift|baseline|balance|background-size|background-repeat|background-position-y|background-position-x|background-position-inline|background-position-block|background-position|background-origin|background-image|background-color|background-clip|background-blend-mode|background-attachment|background|backface-visibility|backdrop-filter|azimuth|attachment|appearance|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|alt|all|alignment-baseline|alignment-adjust|alignment|align-last|align-self|align-items|align-content|align|after|adjust|additive-symbols)):\\\\s+","beginCaptures":{"1":{"name":"support.type.property-name.css"}},"end":"(?<=;$)","name":"property.css-template.templ","patterns":[{"begin":"({)","beginCaptures":{"1":{"name":"punctuation.definition.begin.bracket.curly.go"}},"end":"(})(;)$","endCaptures":{"1":{"name":"punctuation.definition.end.bracket.curly.go"},"2":{"name":"punctuation.terminator.rule.css"}},"name":"expression.property.css-template.templ","patterns":[{"include":"source.go"}]},{"captures":{"1":{"name":"support.type.property-value.css"},"2":{"name":"punctuation.terminator.rule.css"}},"match":"(.*)(;)$","name":"constant.property.css-template.templ"}]}]}]},"default-expression":{"begin":"^\\\\s*default:$","captures":{"0":{"name":"default.switch.html-template.templ","patterns":[{"include":"source.go"}]}},"end":"(^\\\\s*case .+?:$)|(^\\\\s*default:$)|(\\\\s*$)","patterns":[{"include":"#template-node"}]},"element":{"begin":"(<)([a-zA-Z0-9:\\\\-]++)(?=[^>]*>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.html"},"2":{"name":"entity.name.tag.html"}},"end":"(>(<)/)(\\\\2)(>)","endCaptures":{"1":{"name":"punctuation.definition.tag.html"},"2":{"name":"meta.scope.between-tag-pair.html"},"3":{"name":"entity.name.tag.html"},"4":{"name":"punctuation.definition.tag.html"}},"name":"meta.tag.any.html","patterns":[{"include":"#tag-stuff"}]},"else-expression":{"begin":"\\\\s+(else)\\\\s+({)\\\\s*$","beginCaptures":{"1":{"name":"keyword.control.go"},"2":{"name":"punctuation.definition.begin.bracket.curly.go"}},"end":"^\\\\s*(})$","endCaptures":{"1":{"name":"punctuation.definition.end.bracket.curly.go"}},"name":"else.html-template.templ","patterns":[{"include":"#template-node"}]},"else-if-expression":{"begin":"\\\\s(else if)\\\\s","beginCaptures":{"1":{"name":"keyword.control.go"}},"end":"(?<=})","name":"else-if.html-template.templ","patterns":[{"begin":"(?<=if\\\\s)","end":"({)$","endCaptures":{"1":{"name":"punctuation.definition.begin.bracket.curly.go"}},"name":"expression.else-if.html-template.templ","patterns":[{"include":"source.go"}]},{"begin":"(?<={)$","end":"^\\\\s*(})","endCaptures":{"1":{"name":"punctuation.definition.end.bracket.curly.go"}},"name":"block.else-if.html-template.templ","patterns":[{"include":"#template-node"}]}]},"entities":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.entity.html"},"3":{"name":"punctuation.definition.entity.html"}},"match":"(&)([a-zA-Z0-9]+|#[0-9]+|#[xX][0-9a-fA-F]+)(;)","name":"constant.character.entity.html"},{"match":"&","name":"invalid.illegal.bad-ampersand.html"}]},"for-expression":{"begin":"^\\\\s*for .+{","captures":{"0":{"name":"meta.embedded.block.go","patterns":[{"include":"source.go"}]}},"end":"\\\\s*}\\\\s*\\n","name":"for.html-template.templ","patterns":[{"include":"#template-node"}]},"go-comment-block":{"begin":"(\\\\/\\\\*)","beginCaptures":{"1":{"name":"punctuation.definition.comment.go"}},"end":"(\\\\*\\\\/)","endCaptures":{"1":{"name":"punctuation.definition.comment.go"}},"name":"comment.block.go"},"go-comment-double-slash":{"begin":"(\\\\/\\\\/)","beginCaptures":{"1":{"name":"punctuation.definition.comment.go"}},"end":"(?:\\\\n|$)","name":"comment.line.double-slash.go"},"html-comment":{"begin":"","endCaptures":{"0":{"name":"punctuation.definition.comment.html"}},"name":"comment.block.html"},"html-template":{"begin":"^(templ) ((?:\\\\([A-z_][A-z_0-9]* \\\\*?[A-z_][A-z_0-9]*\\\\) )?[A-z_][A-z_0-9]*(\\\\(|\\\\[))","beginCaptures":{"1":{"name":"keyword.control.go"},"2":{"patterns":[{"include":"source.go"}]}},"end":"(?<=^}$)","name":"html-template.templ","patterns":[{"begin":"(?<=\\\\()","end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.definition.end.bracket.round.go"}},"name":"params.html-template.templ","patterns":[{"include":"source.go"}]},{"begin":"(?<=\\\\[)","end":"(\\\\])","endCaptures":{"1":{"name":"punctuation.definition.end.bracket.square.go"}},"name":"type-params.html-template.templ","patterns":[{"include":"source.go"}]},{"begin":"(?<=\\\\)) ({)$","beginCaptures":{"1":{"name":"punctuation.definition.begin.bracket.curly.go"}},"end":"^(})$","endCaptures":{"1":{"name":"punctuation.definition.end.bracket.curly.go"}},"name":"block.html-template.templ","patterns":[{"include":"#template-node"}]}]},"if-expression":{"begin":"^\\\\s*(if)\\\\s","beginCaptures":{"1":{"name":"keyword.control.go"}},"end":"(?<=})","name":"if.html-template.templ","patterns":[{"begin":"(?<=if\\\\s)","end":"({)$","endCaptures":{"1":{"name":"punctuation.definition.begin.bracket.curly.go"}},"name":"expression.if.html-template.templ","patterns":[{"include":"source.go"}]},{"begin":"(?<={)$","end":"^\\\\s*(})","endCaptures":{"1":{"name":"punctuation.definition.end.bracket.curly.go"}},"name":"block.if.html-template.templ","patterns":[{"include":"#template-node"}]}]},"import-expression":{"patterns":[{"begin":"(@)((?:[A-z_][A-z_0-9]*\\\\.)?[A-z_][A-z_0-9]*(?:\\\\(|{|$))","beginCaptures":{"1":{"name":"keyword.control.go"},"2":{"patterns":[{"include":"source.go"}]}},"end":"(?<=\\\\))$|(?<=})$|(?<=$)","name":"import-expression.templ","patterns":[{"begin":"(?<=[A-z_0-9]{)","end":"\\\\s*(})(\\\\.[A-z_][A-z_0-9]*\\\\()","endCaptures":{"1":{"name":"punctuation.definition.end.bracket.curly.go"},"2":{"patterns":[{"include":"source.go"}]}},"name":"struct-method.import-expression.templ","patterns":[{"include":"source.go"}]},{"begin":"(?<=\\\\()","end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.definition.end.bracket.round.go"}},"name":"params.import-expression.templ","patterns":[{"include":"source.go"}]},{"begin":"(?<=\\\\))\\\\s({)$","beginCaptures":{"1":{"name":"punctuation.brace.open"}},"end":"^\\\\s*(})$","endCaptures":{"1":{"name":"punctuation.brace.close"}},"name":"children.import-expression.templ","patterns":[{"include":"#template-node"}]}]}]},"inline-element":{"begin":"())","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.inline.any.html"}},"end":"((?: ?/)?>)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.inline.any.html","patterns":[{"include":"#tag-stuff"}]},"raw-go":{"begin":"{{","beginCaptures":{"0":{"name":"start.raw-go.templ"},"1":{"name":"punctuation.brace.open"}},"end":"}}","endCaptures":{"0":{"name":"end.raw-go.templ"},"1":{"name":"punctuation.brace.open"}},"name":"raw-go.templ","patterns":[{"include":"source.go"}]},"script-element":{"begin":"(<)(script)([^>]*)(>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.html"},"2":{"name":"entity.name.tag.html"},"3":{"patterns":[{"include":"#tag-stuff"}]},"4":{"name":"punctuation.definition.tag.html"}},"end":"<\/script>","endCaptures":{"0":{"patterns":[{"include":"#close-element"}]}},"name":"meta.tag.script.html","patterns":[{"include":"source.js"}]},"script-template":{"begin":"^(script) ([A-z_][A-z_0-9]*\\\\()","beginCaptures":{"1":{"name":"keyword.control.go"},"2":{"patterns":[{"include":"source.go"}]}},"end":"(?<=^}$)","name":"script-template.templ","patterns":[{"begin":"(?<=\\\\()","end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.definition.end.bracket.round.go"}},"name":"params.script-template.templ","patterns":[{"include":"source.go"}]},{"begin":"(?<=\\\\)) ({)$","beginCaptures":{"1":{"name":"punctuation.definition.begin.bracket.curly.go"}},"end":"^(})$","endCaptures":{"1":{"name":"punctuation.definition.end.bracket.curly.go"}},"name":"block.script-template.templ","patterns":[{"include":"source.js"}]}]},"sgml":{"begin":"","name":"meta.tag.sgml.html","patterns":[{"begin":"(?i:DOCTYPE)","captures":{"1":{"name":"entity.name.tag.doctype.html"}},"end":"(?=>)","name":"meta.tag.sgml.doctype.html","patterns":[{"match":"\\"[^\\">]*\\"","name":"string.quoted.double.doctype.identifiers-and-DTDs.html"}]},{"begin":"\\\\[CDATA\\\\[","end":"]](?=>)","name":"constant.other.inline-data.html"},{"match":"(\\\\s*)(?!--|>)\\\\S(\\\\s*)","name":"invalid.illegal.bad-comments-or-CDATA.html"}]},"string-double-quoted":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}},"name":"string.quoted.double.html","patterns":[{"include":"#entities"}]},"string-expression":{"begin":"{\\\\s+","beginCaptures":{"0":{"name":"start.string-expression.templ"}},"end":"}","endCaptures":{"0":{"name":"end.string-expression.templ"}},"name":"expression.html-template.templ","patterns":[{"include":"source.go"}]},"style-element":{"begin":"(<)(style)([^>]*)(>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.html"},"2":{"name":"entity.name.tag.html"},"3":{"patterns":[{"include":"#tag-stuff"}]},"4":{"name":"punctuation.definition.tag.html"}},"end":"","endCaptures":{"0":{"patterns":[{"include":"#close-element"}]}},"name":"meta.tag.style.html","patterns":[{"include":"source.css"}]},"switch-expression":{"begin":"^\\\\s*switch .+?{$","captures":{"0":{"name":"meta.embedded.block.go","patterns":[{"include":"source.go"}]}},"end":"^\\\\s*}$","name":"switch.html-template.templ","patterns":[{"include":"#template-node"},{"include":"#case-expression"},{"include":"#default-expression"}]},"tag-else-attribute":{"begin":"\\\\s(else)\\\\s({)$","beginCaptures":{"1":{"name":"keyword.control.go"},"2":{"name":"punctuation.brace.open"}},"end":"^\\\\s*(})$","endCaptures":{"1":{"name":"punctuation.brace.close"}},"name":"else.attribute.html","patterns":[{"include":"#tag-stuff"}]},"tag-else-if-attribute":{"begin":"\\\\s(else if)\\\\s","beginCaptures":{"1":{"name":"keyword.control.go"}},"end":"(?<=})","name":"else-if.attribute.html","patterns":[{"begin":"(?<=if\\\\s)","end":"({)$","endCaptures":{"1":{"name":"punctuation.brace.open"}},"name":"expression.else-if.attribute.html","patterns":[{"include":"source.go"}]},{"begin":"(?<={)$","end":"^\\\\s*(})","endCaptures":{"1":{"name":"punctuation.brace.close"}},"name":"block.else-if.attribute.html","patterns":[{"include":"#tag-stuff"}]}]},"tag-generic-attribute":{"match":"(?<=[^=])\\\\b([a-zA-Z0-9:-]+)","name":"entity.other.attribute-name.html"},"tag-id-attribute":{"begin":"\\\\b(id)\\\\b\\\\s*(=)","captures":{"1":{"name":"entity.other.attribute-name.id.html"},"2":{"name":"punctuation.separator.key-value.html"}},"end":"(?!\\\\G)(?<='|\\"|[^\\\\s<>/])","name":"meta.attribute-with-value.id.html","patterns":[{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"contentName":"meta.toc-list.id.html","end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}},"name":"string.quoted.double.html","patterns":[{"include":"#entities"}]},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"contentName":"meta.toc-list.id.html","end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}},"name":"string.quoted.single.html","patterns":[{"include":"#entities"}]},{"captures":{"0":{"name":"meta.toc-list.id.html"}},"match":"(?<==)(?:[^\\\\s{}<>/'\\"]|/(?!>))+","name":"string.unquoted.html"}]},"tag-if-attribute":{"begin":"^\\\\s*(if)\\\\s","beginCaptures":{"1":{"name":"keyword.control.go"}},"end":"(?<=})","name":"if.attribute.html","patterns":[{"begin":"(?<=if\\\\s)","end":"({)$","endCaptures":{"1":{"name":"punctuation.brace.open"}},"name":"expression.if.attribute.html","patterns":[{"include":"source.go"}]},{"begin":"(?<={)$","end":"^\\\\s*(})","endCaptures":{"1":{"name":"punctuation.brace.close"}},"name":"block.if.attribute.html","patterns":[{"include":"#tag-stuff"}]}]},"tag-stuff":{"patterns":[{"include":"#tag-id-attribute"},{"include":"#tag-generic-attribute"},{"include":"#string-double-quoted"},{"include":"#string-expression"},{"include":"#tag-if-attribute"},{"include":"#tag-else-if-attribute"},{"include":"#tag-else-attribute"}]},"template-node":{"patterns":[{"include":"#string-expression"},{"include":"#call-expression"},{"include":"#import-expression"},{"include":"#script-element"},{"include":"#style-element"},{"include":"#element"},{"include":"#html-comment"},{"include":"#go-comment-block"},{"include":"#go-comment-double-slash"},{"include":"#sgml"},{"include":"#block-element"},{"include":"#inline-element"},{"include":"#close-element"},{"include":"#else-if-expression"},{"include":"#if-expression"},{"include":"#else-expression"},{"include":"#for-expression"},{"include":"#switch-expression"},{"include":"#raw-go"}]}},"scopeName":"source.templ","embeddedLangs":["go","javascript","css"]}`)),s=[...e,...t,...n,i];export{s as default}; ================================================ FILE: jesse/static/_nuxt/B3ZDOciz.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"PostCSS","fileTypes":["pcss","postcss"],"foldingStartMarker":"/\\\\*|^#|^\\\\*|^\\\\b|^\\\\.","foldingStopMarker":"\\\\*/|^\\\\s*$","name":"postcss","patterns":[{"begin":"/\\\\*","end":"\\\\*/","name":"comment.block.postcss","patterns":[{"include":"#comment-tag"}]},{"include":"#double-slash"},{"include":"#double-quoted"},{"include":"#single-quoted"},{"include":"#interpolation"},{"include":"#placeholder-selector"},{"include":"#variable"},{"include":"#variable-root-css"},{"include":"#numeric"},{"include":"#unit"},{"include":"#flag"},{"include":"#dotdotdot"},{"begin":"@include","captures":{"0":{"name":"keyword.control.at-rule.css.postcss"}},"end":"(?=\\\\n|\\\\(|{|;)","name":"support.function.name.postcss.library"},{"begin":"@mixin|@function","captures":{"0":{"name":"keyword.control.at-rule.css.postcss"}},"end":"$\\\\n?|(?=\\\\(|{)","name":"support.function.name.postcss.no-completions","patterns":[{"match":"[\\\\w-]+","name":"entity.name.function"}]},{"match":"(?<=@import)\\\\s[\\\\w/.*-]+","name":"string.quoted.double.css.postcss"},{"begin":"@","end":"$\\\\n?|\\\\s(?!(all|braille|embossed|handheld|print|projection|screen|speech|tty|tv|if|only|not)(\\\\s|,))|(?=;)","name":"keyword.control.at-rule.css.postcss"},{"begin":"#","end":"$\\\\n?|(?=\\\\s|,|;|\\\\(|\\\\)|\\\\.|\\\\[|{|>)","name":"entity.other.attribute-name.id.css.postcss","patterns":[{"include":"#interpolation"},{"include":"#pseudo-class"}]},{"begin":"\\\\.|(?<=&)(-|_)","end":"$\\\\n?|(?=\\\\s|,|;|\\\\(|\\\\)|\\\\[|{|>)","name":"entity.other.attribute-name.class.css.postcss","patterns":[{"include":"#interpolation"},{"include":"#pseudo-class"}]},{"begin":"\\\\[","end":"\\\\]","name":"entity.other.attribute-selector.postcss","patterns":[{"include":"#double-quoted"},{"include":"#single-quoted"},{"match":"\\\\^|\\\\$|\\\\*|~","name":"keyword.other.regex.postcss"}]},{"match":"(?<=\\\\]|\\\\)|not\\\\(|\\\\*|>|>\\\\s):[a-z:-]+|(::|:-)[a-z:-]+","name":"entity.other.attribute-name.pseudo-class.css.postcss"},{"begin":":","end":"$\\\\n?|(?=;|\\\\s\\\\(|and\\\\(|{|}|\\\\),)","name":"meta.property-list.css.postcss","patterns":[{"include":"#double-slash"},{"include":"#double-quoted"},{"include":"#single-quoted"},{"include":"#interpolation"},{"include":"#variable"},{"include":"#rgb-value"},{"include":"#numeric"},{"include":"#unit"},{"include":"#flag"},{"include":"#function"},{"include":"#function-content"},{"include":"#function-content-var"},{"include":"#operator"},{"include":"#parent-selector"},{"include":"#property-value"}]},{"include":"#rgb-value"},{"include":"#function"},{"include":"#function-content"},{"begin":"(?|-|_)","name":"entity.name.tag.css.postcss.symbol","patterns":[{"include":"#interpolation"},{"include":"#pseudo-class"}]},{"include":"#operator"},{"match":"[a-z-]+((?=:|#{))","name":"support.type.property-name.css.postcss"},{"include":"#reserved-words"},{"include":"#property-value"}],"repository":{"comment-tag":{"begin":"{{","end":"}}","name":"comment.tags.postcss","patterns":[{"match":"[\\\\w-]+","name":"comment.tag.postcss"}]},"dotdotdot":{"match":"\\\\.{3}","name":"variable.other"},"double-quoted":{"begin":"\\"","end":"\\"","name":"string.quoted.double.css.postcss","patterns":[{"include":"#quoted-interpolation"}]},"double-slash":{"begin":"//","end":"$","name":"comment.line.postcss","patterns":[{"include":"#comment-tag"}]},"flag":{"match":"!(important|default|optional|global)","name":"keyword.other.important.css.postcss"},"function":{"match":"(?<=[\\\\s|\\\\(|,|:])(?!url|format|attr)[\\\\w-][\\\\w-]*(?=\\\\()","name":"support.function.name.postcss"},"function-content":{"match":"(?<=url\\\\(|format\\\\(|attr\\\\().+?(?=\\\\))","name":"string.quoted.double.css.postcss"},"function-content-var":{"match":"(?<=var\\\\()[\\\\w-]+(?=\\\\))","name":"variable.parameter.postcss"},"interpolation":{"begin":"#{","end":"}","name":"support.function.interpolation.postcss","patterns":[{"include":"#variable"},{"include":"#numeric"},{"include":"#operator"},{"include":"#unit"},{"include":"#double-quoted"},{"include":"#single-quoted"}]},"numeric":{"match":"(-|\\\\.)?[0-9]+(\\\\.[0-9]+)?","name":"constant.numeric.css.postcss"},"operator":{"match":"\\\\+|\\\\s-\\\\s|\\\\s-(?=\\\\$)|(?<=\\\\()-(?=\\\\$)|\\\\s-(?=\\\\()|\\\\*|/|%|=|!|<|>|~","name":"keyword.operator.postcss"},"parent-selector":{"match":"&","name":"entity.name.tag.css.postcss"},"placeholder-selector":{"begin":"(?)","name":"keyword.operator.arrow.gleam"},{"match":"\\\\|>","name":"keyword.operator.pipe.gleam"},{"match":"\\\\.\\\\.","name":"keyword.operator.splat.gleam"},{"match":"(==|!=)","name":"keyword.operator.comparison.gleam"},{"match":"(<=\\\\.|>=\\\\.|<\\\\.|>\\\\.)","name":"keyword.operator.comparison.float.gleam"},{"match":"(<=|>=|<|>)","name":"keyword.operator.comparison.int.gleam"},{"match":"(&&|\\\\|\\\\|)","name":"keyword.operator.logical.gleam"},{"match":"<>","name":"keyword.operator.string.gleam"},{"match":"\\\\|","name":"keyword.operator.other.gleam"},{"match":"(\\\\+\\\\.|\\\\-\\\\.|/\\\\.|\\\\*\\\\.)","name":"keyword.operator.arithmetic.float.gleam"},{"match":"(\\\\+|\\\\-|/|\\\\*|%)","name":"keyword.operator.arithmetic.int.gleam"},{"match":"=","name":"keyword.operator.assignment.gleam"}]},"octal_number":{"match":"\\\\b0[oO]0*[1-7][0-7]*\\\\b","name":"constant.numeric.octal.gleam","patterns":[]},"strings":{"begin":"\\"","end":"\\"","name":"string.quoted.double.gleam","patterns":[{"match":"\\\\\\\\.","name":"constant.character.escape.gleam"}]}},"scopeName":"source.gleam"}')),a=[e];export{a as default}; ================================================ FILE: jesse/static/_nuxt/B48N-Iqd.js ================================================ const e=Object.freeze(JSON.parse('{"displayName":"Prisma","fileTypes":["prisma"],"name":"prisma","patterns":[{"include":"#triple_comment"},{"include":"#double_comment"},{"include":"#multi_line_comment"},{"include":"#model_block_definition"},{"include":"#config_block_definition"},{"include":"#enum_block_definition"},{"include":"#type_definition"}],"repository":{"array":{"begin":"\\\\[","beginCaptures":{"1":{"name":"punctuation.definition.tag.prisma"}},"end":"\\\\]","endCaptures":{"1":{"name":"punctuation.definition.tag.prisma"}},"name":"source.prisma.array","patterns":[{"include":"#value"}]},"assignment":{"patterns":[{"begin":"^\\\\s*(\\\\w+)\\\\s*(=)\\\\s*","beginCaptures":{"1":{"name":"variable.other.assignment.prisma"},"2":{"name":"keyword.operator.terraform"}},"end":"\\\\n","patterns":[{"include":"#value"},{"include":"#double_comment_inline"}]}]},"attribute":{"captures":{"1":{"name":"entity.name.function.attribute.prisma"}},"match":"(@@?[\\\\w\\\\.]+)","name":"source.prisma.attribute"},"attribute_with_arguments":{"begin":"(@@?[\\\\w\\\\.]+)(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.attribute.prisma"},"2":{"name":"punctuation.definition.tag.prisma"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.tag.prisma"}},"name":"source.prisma.attribute.with_arguments","patterns":[{"include":"#named_argument"},{"include":"#value"}]},"boolean":{"match":"\\\\b(true|false)\\\\b","name":"constant.language.boolean.prisma"},"config_block_definition":{"begin":"^\\\\s*(generator|datasource)\\\\s+([A-Za-z][\\\\w]*)\\\\s+({)","beginCaptures":{"1":{"name":"storage.type.config.prisma"},"2":{"name":"entity.name.type.config.prisma"},"3":{"name":"punctuation.definition.tag.prisma"}},"end":"\\\\s*\\\\}","endCaptures":{"1":{"name":"punctuation.definition.tag.prisma"}},"name":"source.prisma.embedded.source","patterns":[{"include":"#triple_comment"},{"include":"#double_comment"},{"include":"#multi_line_comment"},{"include":"#assignment"}]},"double_comment":{"begin":"//","end":"$\\\\n?","name":"comment.prisma"},"double_comment_inline":{"match":"//[^\\\\n]*","name":"comment.prisma"},"double_quoted_string":{"begin":"\\"","beginCaptures":{"0":{"name":"string.quoted.double.start.prisma"}},"end":"\\"","endCaptures":{"0":{"name":"string.quoted.double.end.prisma"}},"name":"unnamed","patterns":[{"include":"#string_interpolation"},{"match":"([\\\\w\\\\-\\\\/\\\\._\\\\\\\\%@:\\\\?=]+)","name":"string.quoted.double.prisma"}]},"enum_block_definition":{"begin":"^\\\\s*(enum)\\\\s+([A-Za-z][\\\\w]*)\\\\s+({)","beginCaptures":{"1":{"name":"storage.type.enum.prisma"},"2":{"name":"entity.name.type.enum.prisma"},"3":{"name":"punctuation.definition.tag.prisma"}},"end":"\\\\s*\\\\}","endCaptures":{"0":{"name":"punctuation.definition.tag.prisma"}},"name":"source.prisma.embedded.source","patterns":[{"include":"#triple_comment"},{"include":"#double_comment"},{"include":"#multi_line_comment"},{"include":"#enum_value_definition"}]},"enum_value_definition":{"patterns":[{"captures":{"1":{"name":"variable.other.assignment.prisma"}},"match":"^\\\\s*(\\\\w+)\\\\s*"},{"include":"#attribute_with_arguments"},{"include":"#attribute"}]},"field_definition":{"name":"scalar.field","patterns":[{"captures":{"1":{"name":"variable.other.assignment.prisma"},"2":{"name":"invalid.illegal.colon.prisma"},"3":{"name":"variable.language.relations.prisma"},"4":{"name":"support.type.primitive.prisma"},"5":{"name":"keyword.operator.list_type.prisma"},"6":{"name":"keyword.operator.optional_type.prisma"},"7":{"name":"invalid.illegal.required_type.prisma"}},"match":"^\\\\s*(\\\\w+)(\\\\s*:)?\\\\s+((?!(?:Int|BigInt|String|DateTime|Bytes|Decimal|Float|Json|Boolean)\\\\b)\\\\b\\\\w+)?(Int|BigInt|String|DateTime|Bytes|Decimal|Float|Json|Boolean)?(\\\\[\\\\])?(\\\\?)?(\\\\!)?"},{"include":"#attribute_with_arguments"},{"include":"#attribute"}]},"functional":{"begin":"(\\\\w+)(\\\\()","beginCaptures":{"1":{"name":"support.function.functional.prisma"},"2":{"name":"punctuation.definition.tag.prisma"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.tag.prisma"}},"name":"source.prisma.functional","patterns":[{"include":"#value"}]},"identifier":{"patterns":[{"match":"\\\\b(\\\\w)+\\\\b","name":"support.constant.constant.prisma"}]},"literal":{"name":"source.prisma.literal","patterns":[{"include":"#boolean"},{"include":"#number"},{"include":"#double_quoted_string"},{"include":"#identifier"}]},"map_key":{"name":"source.prisma.key","patterns":[{"captures":{"1":{"name":"variable.parameter.key.prisma"},"2":{"name":"punctuation.definition.separator.key-value.prisma"}},"match":"(\\\\w+)\\\\s*(:)\\\\s*"}]},"model_block_definition":{"begin":"^\\\\s*(model|type|view)\\\\s+([A-Za-z][\\\\w]*)\\\\s*({)","beginCaptures":{"1":{"name":"storage.type.model.prisma"},"2":{"name":"entity.name.type.model.prisma"},"3":{"name":"punctuation.definition.tag.prisma"}},"end":"\\\\s*\\\\}","endCaptures":{"0":{"name":"punctuation.definition.tag.prisma"}},"name":"source.prisma.embedded.source","patterns":[{"include":"#triple_comment"},{"include":"#double_comment"},{"include":"#multi_line_comment"},{"include":"#field_definition"}]},"multi_line_comment":{"begin":"/\\\\*","end":"\\\\*/","name":"comment.prisma"},"named_argument":{"name":"source.prisma.named_argument","patterns":[{"include":"#map_key"},{"include":"#value"}]},"number":{"match":"((0(x|X)[0-9a-fA-F]*)|(\\\\+|-)?\\\\b(([0-9]+\\\\.?[0-9]*)|(\\\\.[0-9]+))((e|E)(\\\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\\\b","name":"constant.numeric.prisma"},"string_interpolation":{"patterns":[{"begin":"\\\\$\\\\{","beginCaptures":{"0":{"name":"keyword.control.interpolation.start.prisma"}},"end":"\\\\s*\\\\}","endCaptures":{"0":{"name":"keyword.control.interpolation.end.prisma"}},"name":"source.tag.embedded.source.prisma","patterns":[{"include":"#value"}]}]},"triple_comment":{"begin":"///","end":"$\\\\n?","name":"comment.prisma"},"type_definition":{"patterns":[{"captures":{"1":{"name":"storage.type.type.prisma"},"2":{"name":"entity.name.type.type.prisma"},"3":{"name":"support.type.primitive.prisma"}},"match":"^\\\\s*(type)\\\\s+(\\\\w+)\\\\s*=\\\\s*(\\\\w+)"},{"include":"#attribute_with_arguments"},{"include":"#attribute"}]},"value":{"name":"source.prisma.value","patterns":[{"include":"#array"},{"include":"#functional"},{"include":"#literal"}]}},"scopeName":"source.prisma"}')),n=[e];export{n as default}; ================================================ FILE: jesse/static/_nuxt/B4VqtPa2.js ================================================ /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var e={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},t={defaultToken:"",tokenPostfix:".aes",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["contract","library","entrypoint","function","stateful","state","hash","signature","tuple","list","address","string","bool","int","record","datatype","type","option","oracle","oracle_query","Call","Bits","Bytes","Oracle","String","Crypto","Address","Auth","Chain","None","Some","bits","bytes","event","let","map","private","public","true","false","var","if","else","throw"],operators:["=",">","<","!","~","?","::",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}};export{e as conf,t as language}; ================================================ FILE: jesse/static/_nuxt/B5auBHZD.js ================================================ import e from"./BMYPR7BL.js";import"./ySlJ1b_l.js";import"./BPhBrDlE.js";const i=Object.freeze(JSON.parse(`{"displayName":"Elixir","fileTypes":["ex","exs"],"firstLineMatch":"^#!/.*\\\\belixir","foldingStartMarker":"(after|else|catch|rescue|\\\\-\\\\>|\\\\{|\\\\[|do)\\\\s*$","foldingStopMarker":"^\\\\s*((\\\\}|\\\\]|after|else|catch|rescue)\\\\s*$|end\\\\b)","name":"elixir","patterns":[{"begin":"\\\\b(fn)\\\\b(?!.*->)","beginCaptures":{"1":{"name":"keyword.control.elixir"}},"end":"$","patterns":[{"include":"#core_syntax"}]},{"captures":{"1":{"name":"entity.name.type.class.elixir"},"2":{"name":"punctuation.separator.method.elixir"},"3":{"name":"entity.name.function.elixir"}},"match":"([A-Z]\\\\w+)\\\\s*(\\\\.)\\\\s*([a-z_]\\\\w*[!?]?)"},{"captures":{"1":{"name":"constant.other.symbol.elixir"},"2":{"name":"punctuation.separator.method.elixir"},"3":{"name":"entity.name.function.elixir"}},"match":"(\\\\:\\\\w+)\\\\s*(\\\\.)\\\\s*([_]?\\\\w*[!?]?)"},{"captures":{"1":{"name":"keyword.operator.other.elixir"},"2":{"name":"entity.name.function.elixir"}},"match":"(\\\\|\\\\>)\\\\s*([a-z_]\\\\w*[!?]?)"},{"match":"\\\\b[a-z_]\\\\w*[!?]?(?=\\\\s*\\\\.?\\\\s*\\\\()","name":"entity.name.function.elixir"},{"begin":"\\\\b(fn)\\\\b(?=.*->)","beginCaptures":{"1":{"name":"keyword.control.elixir"}},"end":"(?>(->)|(when)|(\\\\)))","endCaptures":{"1":{"name":"keyword.operator.other.elixir"},"2":{"name":"keyword.control.elixir"},"3":{"name":"punctuation.section.function.elixir"}},"patterns":[{"include":"#core_syntax"}]},{"include":"#core_syntax"},{"begin":"^(?=.*->)((?![^\\"']*(\\"|')[^\\"']*->)|(?=.*->[^\\"']*(\\"|')[^\\"']*->))((?!.*\\\\([^\\\\)]*->)|(?=[^\\\\(\\\\)]*->)|(?=\\\\s*\\\\(.*\\\\).*->))((?!.*\\\\b(fn)\\\\b)|(?=.*->.*\\\\bfn\\\\b))","beginCaptures":{"1":{"name":"keyword.control.elixir"}},"end":"(?>(->)|(when)|(\\\\)))","endCaptures":{"1":{"name":"keyword.operator.other.elixir"},"2":{"name":"keyword.control.elixir"},"3":{"name":"punctuation.section.function.elixir"}},"patterns":[{"include":"#core_syntax"}]}],"repository":{"core_syntax":{"patterns":[{"begin":"^\\\\s*(defmodule)\\\\b","beginCaptures":{"1":{"name":"keyword.control.module.elixir"}},"end":"\\\\b(do)\\\\b","endCaptures":{"1":{"name":"keyword.control.module.elixir"}},"name":"meta.module.elixir","patterns":[{"match":"\\\\b[A-Z]\\\\w*(?=\\\\.)","name":"entity.other.inherited-class.elixir"},{"match":"\\\\b[A-Z]\\\\w*\\\\b","name":"entity.name.type.class.elixir"}]},{"begin":"^\\\\s*(defprotocol)\\\\b","beginCaptures":{"1":{"name":"keyword.control.protocol.elixir"}},"end":"\\\\b(do)\\\\b","endCaptures":{"1":{"name":"keyword.control.protocol.elixir"}},"name":"meta.protocol_declaration.elixir","patterns":[{"match":"\\\\b[A-Z]\\\\w*\\\\b","name":"entity.name.type.protocol.elixir"}]},{"begin":"^\\\\s*(defimpl)\\\\b","beginCaptures":{"1":{"name":"keyword.control.protocol.elixir"}},"end":"\\\\b(do)\\\\b","endCaptures":{"1":{"name":"keyword.control.protocol.elixir"}},"name":"meta.protocol_implementation.elixir","patterns":[{"match":"\\\\b[A-Z]\\\\w*\\\\b","name":"entity.name.type.protocol.elixir"}]},{"begin":"^\\\\s*(def|defmacro|defdelegate|defguard)\\\\s+((?>[a-zA-Z_]\\\\w*(?>\\\\.|::))?(?>[a-zA-Z_]\\\\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&\`/\\\\|]|\\\\*\\\\*?|=?~|[-+]@?|\\\\[\\\\]=?))((\\\\()|\\\\s*)","beginCaptures":{"1":{"name":"keyword.control.module.elixir"},"2":{"name":"entity.name.function.public.elixir"},"4":{"name":"punctuation.section.function.elixir"}},"end":"(\\\\bdo:)|(\\\\bdo\\\\b)|(?=\\\\s+(def|defn|defmacro|defdelegate|defguard)\\\\b)","endCaptures":{"1":{"name":"constant.other.keywords.elixir"},"2":{"name":"keyword.control.module.elixir"}},"name":"meta.function.public.elixir","patterns":[{"include":"$self"},{"begin":"\\\\s(\\\\\\\\\\\\\\\\)","beginCaptures":{"1":{"name":"keyword.operator.other.elixir"}},"end":",|\\\\)|$","patterns":[{"include":"$self"}]},{"match":"\\\\b(is_atom|is_binary|is_bitstring|is_boolean|is_float|is_function|is_integer|is_list|is_map|is_nil|is_number|is_pid|is_port|is_record|is_reference|is_tuple|is_exception|abs|bit_size|byte_size|div|elem|hd|length|map_size|node|rem|round|tl|trunc|tuple_size)\\\\b","name":"keyword.control.elixir"}]},{"begin":"^\\\\s*(defp|defnp|defmacrop|defguardp)\\\\s+((?>[a-zA-Z_]\\\\w*(?>\\\\.|::))?(?>[a-zA-Z_]\\\\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&\`/\\\\|]|\\\\*\\\\*?|=?~|[-+]@?|\\\\[\\\\]=?))((\\\\()|\\\\s*)","beginCaptures":{"1":{"name":"keyword.control.module.elixir"},"2":{"name":"entity.name.function.private.elixir"},"4":{"name":"punctuation.section.function.elixir"}},"end":"(\\\\bdo:)|(\\\\bdo\\\\b)|(?=\\\\s+(defp|defmacrop|defguardp)\\\\b)","endCaptures":{"1":{"name":"constant.other.keywords.elixir"},"2":{"name":"keyword.control.module.elixir"}},"name":"meta.function.private.elixir","patterns":[{"include":"$self"},{"begin":"\\\\s(\\\\\\\\\\\\\\\\)","beginCaptures":{"1":{"name":"keyword.operator.other.elixir"}},"end":",|\\\\)|$","patterns":[{"include":"$self"}]},{"match":"\\\\b(is_atom|is_binary|is_bitstring|is_boolean|is_float|is_function|is_integer|is_list|is_map|is_nil|is_number|is_pid|is_port|is_record|is_reference|is_tuple|is_exception|abs|bit_size|byte_size|div|elem|hd|length|map_size|node|rem|round|tl|trunc|tuple_size)\\\\b","name":"keyword.control.elixir"}]},{"begin":"\\\\s*~L\\"\\"\\"","comment":"Leex Sigil","end":"\\\\s*\\"\\"\\"","name":"sigil.leex","patterns":[{"include":"text.elixir"},{"include":"text.html.basic"}]},{"begin":"\\\\s*~H\\"\\"\\"","comment":"HEEx Sigil","end":"\\\\s*\\"\\"\\"","name":"sigil.heex","patterns":[{"include":"text.elixir"},{"include":"text.html.basic"}]},{"begin":"@(module|type)?doc (~[a-z])?\\"\\"\\"","comment":"@doc with heredocs is treated as documentation","end":"\\\\s*\\"\\"\\"","name":"comment.block.documentation.heredoc","patterns":[{"include":"#interpolated_elixir"},{"include":"#escaped_char"}]},{"begin":"@(module|type)?doc ~[A-Z]\\"\\"\\"","comment":"@doc with heredocs is treated as documentation","end":"\\\\s*\\"\\"\\"","name":"comment.block.documentation.heredoc"},{"begin":"@(module|type)?doc (~[a-z])?'''","comment":"@doc with heredocs is treated as documentation","end":"\\\\s*'''","name":"comment.block.documentation.heredoc","patterns":[{"include":"#interpolated_elixir"},{"include":"#escaped_char"}]},{"begin":"@(module|type)?doc ~[A-Z]'''","comment":"@doc with heredocs is treated as documentation","end":"\\\\s*'''","name":"comment.block.documentation.heredoc"},{"comment":"@doc false is treated as documentation","match":"@(module|type)?doc false","name":"comment.block.documentation.false"},{"begin":"@(module|type)?doc \\"","comment":"@doc with string is treated as documentation","end":"\\"","name":"comment.block.documentation.string","patterns":[{"include":"#interpolated_elixir"},{"include":"#escaped_char"}]},{"match":"(?_?[0-9A-Fa-f])*\\\\b","name":"constant.numeric.hex.elixir"},{"match":"\\\\b\\\\d(?>_?\\\\d)*(\\\\.(?![^[:space:][:digit:]])(?>_?\\\\d)+)([eE][-+]?\\\\d(?>_?\\\\d)*)?\\\\b","name":"constant.numeric.float.elixir"},{"match":"\\\\b\\\\d(?>_?\\\\d)*\\\\b","name":"constant.numeric.integer.elixir"},{"match":"\\\\b0b[01](?>_?[01])*\\\\b","name":"constant.numeric.binary.elixir"},{"match":"\\\\b0o[0-7](?>_?[0-7])*\\\\b","name":"constant.numeric.octal.elixir"},{"begin":":'","captures":{"0":{"name":"punctuation.definition.constant.elixir"}},"end":"'","name":"constant.other.symbol.single-quoted.elixir","patterns":[{"include":"#interpolated_elixir"},{"include":"#escaped_char"}]},{"begin":":\\"","captures":{"0":{"name":"punctuation.definition.constant.elixir"}},"end":"\\"","name":"constant.other.symbol.double-quoted.elixir","patterns":[{"include":"#interpolated_elixir"},{"include":"#escaped_char"}]},{"begin":"(?>''')","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.elixir"}},"comment":"Single-quoted heredocs","end":"^\\\\s*'''","endCaptures":{"0":{"name":"punctuation.definition.string.end.elixir"}},"name":"string.quoted.single.heredoc.elixir","patterns":[{"include":"#interpolated_elixir"},{"include":"#escaped_char"}]},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.elixir"}},"comment":"single quoted string (allows for interpolation)","end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.elixir"}},"name":"string.quoted.single.elixir","patterns":[{"include":"#interpolated_elixir"},{"include":"#escaped_char"}]},{"begin":"(?>\\"\\"\\")","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.elixir"}},"comment":"Double-quoted heredocs","end":"^\\\\s*\\"\\"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.elixir"}},"name":"string.quoted.double.heredoc.elixir","patterns":[{"include":"#interpolated_elixir"},{"include":"#escaped_char"}]},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.elixir"}},"comment":"double quoted string (allows for interpolation)","end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.elixir"}},"name":"string.quoted.double.elixir","patterns":[{"include":"#interpolated_elixir"},{"include":"#escaped_char"}]},{"begin":"~[a-z](?>\\"\\"\\")","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.elixir"}},"comment":"Double-quoted heredocs sigils","end":"^\\\\s*\\"\\"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.elixir"}},"name":"string.quoted.other.sigil.heredoc.elixir","patterns":[{"include":"#interpolated_elixir"},{"include":"#escaped_char"}]},{"begin":"~[a-z]\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.elixir"}},"comment":"sigil (allow for interpolation)","end":"\\\\}[a-z]*","endCaptures":{"0":{"name":"punctuation.definition.string.end.elixir"}},"name":"string.quoted.other.sigil.elixir","patterns":[{"include":"#interpolated_elixir"},{"include":"#escaped_char"}]},{"begin":"~[a-z]\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.elixir"}},"comment":"sigil (allow for interpolation)","end":"\\\\][a-z]*","endCaptures":{"0":{"name":"punctuation.definition.string.end.elixir"}},"name":"string.quoted.other.sigil.elixir","patterns":[{"include":"#interpolated_elixir"},{"include":"#escaped_char"}]},{"begin":"~[a-z]\\\\<","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.elixir"}},"comment":"sigil (allow for interpolation)","end":"\\\\>[a-z]*","endCaptures":{"0":{"name":"punctuation.definition.string.end.elixir"}},"name":"string.quoted.other.sigil.elixir","patterns":[{"include":"#interpolated_elixir"},{"include":"#escaped_char"}]},{"begin":"~[a-z]\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.elixir"}},"comment":"sigil (allow for interpolation)","end":"\\\\)[a-z]*","endCaptures":{"0":{"name":"punctuation.definition.string.end.elixir"}},"name":"string.quoted.other.sigil.elixir","patterns":[{"include":"#interpolated_elixir"},{"include":"#escaped_char"}]},{"begin":"~[a-z]([^\\\\w])","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.elixir"}},"comment":"sigil (allow for interpolation)","end":"\\\\1[a-z]*","endCaptures":{"0":{"name":"punctuation.definition.string.end.elixir"}},"name":"string.quoted.other.sigil.elixir","patterns":[{"include":"#interpolated_elixir"},{"include":"#escaped_char"}]},{"begin":"~[A-Z](?>\\"\\"\\")","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.elixir"}},"comment":"Double-quoted heredocs sigils","end":"^\\\\s*\\"\\"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.elixir"}},"name":"string.quoted.other.sigil.heredoc.literal.elixir"},{"begin":"~[A-Z]\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.elixir"}},"comment":"sigil (without interpolation)","end":"\\\\}[a-z]*","endCaptures":{"0":{"name":"punctuation.definition.string.end.elixir"}},"name":"string.quoted.other.sigil.literal.elixir"},{"begin":"~[A-Z]\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.elixir"}},"comment":"sigil (without interpolation)","end":"\\\\][a-z]*","endCaptures":{"0":{"name":"punctuation.definition.string.end.elixir"}},"name":"string.quoted.other.sigil.literal.elixir"},{"begin":"~[A-Z]\\\\<","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.elixir"}},"comment":"sigil (without interpolation)","end":"\\\\>[a-z]*","endCaptures":{"0":{"name":"punctuation.definition.string.end.elixir"}},"name":"string.quoted.other.sigil.literal.elixir"},{"begin":"~[A-Z]\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.elixir"}},"comment":"sigil (without interpolation)","end":"\\\\)[a-z]*","endCaptures":{"0":{"name":"punctuation.definition.string.end.elixir"}},"name":"string.quoted.other.sigil.literal.elixir"},{"begin":"~[A-Z]([^\\\\w])","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.elixir"}},"comment":"sigil (without interpolation)","end":"\\\\1[a-z]*","endCaptures":{"0":{"name":"punctuation.definition.string.end.elixir"}},"name":"string.quoted.other.sigil.literal.elixir"},{"captures":{"1":{"name":"punctuation.definition.constant.elixir"}},"comment":"symbols","match":"(?[a-zA-Z_][\\\\w@]*(?>[?!]|=(?![>=]))?|\\\\<\\\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\\\-|\\\\|>|=>|=~|=|/|\\\\\\\\\\\\\\\\|\\\\*\\\\*?|\\\\.\\\\.?\\\\.?|\\\\.\\\\.//|>=?|<=?|&&?&?|\\\\+\\\\+?|\\\\-\\\\-?|\\\\|\\\\|?\\\\|?|\\\\!|@|\\\\%?\\\\{\\\\}|%|\\\\[\\\\]|\\\\^(\\\\^\\\\^)?)","name":"constant.other.symbol.elixir"},{"captures":{"1":{"name":"punctuation.definition.constant.elixir"}},"comment":"symbols","match":"(?>[a-zA-Z_][\\\\w@]*(?>[?!])?)(:)(?!:)","name":"constant.other.keywords.elixir"},{"begin":"(^[ \\\\t]+)?(?=##)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.elixir"}},"end":"(?!#)","patterns":[{"begin":"##","beginCaptures":{"0":{"name":"punctuation.definition.comment.elixir"}},"end":"\\\\n","name":"comment.line.section.elixir"}]},{"begin":"(^[ \\\\t]+)?(?=#)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.elixir"}},"end":"(?!#)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.elixir"}},"end":"\\\\n","name":"comment.line.number-sign.elixir"}]},{"match":"\\\\b_([^_][\\\\w]+[?!]?)","name":"comment.unused.elixir"},{"match":"\\\\b_\\\\b","name":"comment.wildcard.elixir"},{"comment":"\\n\\t\\t\\tmatches questionmark-letters.\\n\\n\\t\\t\\texamples (1st alternation = hex):\\n\\t\\t\\t?\\\\x1 ?\\\\x61\\n\\n\\t\\t\\texamples (2rd alternation = escaped):\\n\\t\\t\\t?\\\\n ?\\\\b\\n\\n\\t\\t\\texamples (3rd alternation = normal):\\n\\t\\t\\t?a ?A ?0\\n\\t\\t\\t?* ?\\" ?(\\n\\t\\t\\t?. ?#\\n\\n\\t\\t\\tthe negative lookbehind prevents against matching\\n\\t\\t\\tp(42.tainted?)\\n\\t\\t\\t","match":"(?","name":"keyword.operator.concatenation.elixir"},{"match":"\\\\|\\\\>|<~>|<>|<<<|>>>|~>>|<<~|~>|<~|<\\\\|>","name":"keyword.operator.sigils_1.elixir"},{"match":"&&&|&&","name":"keyword.operator.sigils_2.elixir"},{"match":"<\\\\-|\\\\\\\\\\\\\\\\","name":"keyword.operator.sigils_3.elixir"},{"match":"===?|!==?|<=?|>=?","name":"keyword.operator.comparison.elixir"},{"match":"(\\\\|\\\\|\\\\||&&&|\\\\^\\\\^\\\\^|<<<|>>>|~~~)","name":"keyword.operator.bitwise.elixir"},{"match":"(?<=[ \\\\t])!+|\\\\bnot\\\\b|&&|\\\\band\\\\b|\\\\|\\\\||\\\\bor\\\\b|\\\\bxor\\\\b","name":"keyword.operator.logical.elixir"},{"match":"(\\\\*|\\\\+|\\\\-|/)","name":"keyword.operator.arithmetic.elixir"},{"match":"\\\\||\\\\+\\\\+|\\\\-\\\\-|\\\\*\\\\*|\\\\\\\\\\\\\\\\|\\\\<\\\\-|\\\\<\\\\>|\\\\<\\\\<|\\\\>\\\\>|\\\\:\\\\:|\\\\.\\\\.|//|\\\\|>|~|=>|&","name":"keyword.operator.other.elixir"},{"match":"=","name":"keyword.operator.assignment.elixir"},{"match":":","name":"punctuation.separator.other.elixir"},{"match":"\\\\;","name":"punctuation.separator.statement.elixir"},{"match":",","name":"punctuation.separator.object.elixir"},{"match":"\\\\.","name":"punctuation.separator.method.elixir"},{"match":"\\\\{|\\\\}","name":"punctuation.section.scope.elixir"},{"match":"\\\\[|\\\\]","name":"punctuation.section.array.elixir"},{"match":"\\\\(|\\\\)","name":"punctuation.section.function.elixir"}]},"escaped_char":{"match":"\\\\\\\\(x[\\\\da-fA-F]{1,2}|.)","name":"constant.character.escaped.elixir"},"interpolated_elixir":{"begin":"#\\\\{","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.elixir"}},"contentName":"source.elixir","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.section.embedded.end.elixir"}},"name":"meta.embedded.line.elixir","patterns":[{"include":"#nest_curly_and_self"},{"include":"$self"}]},"nest_curly_and_self":{"patterns":[{"begin":"\\\\{","captures":{"0":{"name":"punctuation.section.scope.elixir"}},"end":"\\\\}","patterns":[{"include":"#nest_curly_and_self"}]},{"include":"$self"}]}},"scopeName":"source.elixir","embeddedLangs":["html"]}`)),r=[...e,i];export{r as default}; ================================================ FILE: jesse/static/_nuxt/B5lbUyaz.js ================================================ const e=Object.freeze(JSON.parse('{"displayName":"Kotlin","fileTypes":["kt","kts"],"name":"kotlin","patterns":[{"include":"#import"},{"include":"#package"},{"include":"#code"}],"repository":{"annotation-simple":{"match":"(?<([^<>]|\\\\g)+>)?"},"code":{"patterns":[{"include":"#comments"},{"include":"#keywords"},{"include":"#annotation-simple"},{"include":"#annotation-site-list"},{"include":"#annotation-site"},{"include":"#class-declaration"},{"include":"#object"},{"include":"#type-alias"},{"include":"#function"},{"include":"#variable-declaration"},{"include":"#type-constraint"},{"include":"#type-annotation"},{"include":"#function-call"},{"include":"#method-reference"},{"include":"#key"},{"include":"#string"},{"include":"#string-empty"},{"include":"#string-multiline"},{"include":"#character"},{"include":"#lambda-arrow"},{"include":"#operators"},{"include":"#self-reference"},{"include":"#decimal-literal"},{"include":"#hex-literal"},{"include":"#binary-literal"},{"include":"#boolean-literal"},{"include":"#null-literal"}]},"comment-block":{"begin":"/\\\\*(?!\\\\*)","end":"\\\\*/","name":"comment.block.kotlin"},"comment-javadoc":{"patterns":[{"begin":"/\\\\*\\\\*","end":"\\\\*/","name":"comment.block.javadoc.kotlin","patterns":[{"match":"@(return|constructor|receiver|sample|see|author|since|suppress)\\\\b","name":"keyword.other.documentation.javadoc.kotlin"},{"captures":{"1":{"name":"keyword.other.documentation.javadoc.kotlin"},"2":{"name":"variable.parameter.kotlin"}},"match":"(@param|@property)\\\\s+(\\\\S+)"},{"captures":{"1":{"name":"keyword.other.documentation.javadoc.kotlin"},"2":{"name":"variable.parameter.kotlin"}},"match":"(@param)\\\\[(\\\\S+)\\\\]"},{"captures":{"1":{"name":"keyword.other.documentation.javadoc.kotlin"},"2":{"name":"entity.name.type.class.kotlin"}},"match":"(@(?:exception|throws))\\\\s+(\\\\S+)"},{"captures":{"1":{"name":"keyword.other.documentation.javadoc.kotlin"},"2":{"name":"entity.name.type.class.kotlin"},"3":{"name":"variable.parameter.kotlin"}},"match":"{(@link)\\\\s+(\\\\S+)?#([\\\\w$]+\\\\s*\\\\([^\\\\(\\\\)]*\\\\)).*}"}]}]},"comment-line":{"begin":"//","end":"$","name":"comment.line.double-slash.kotlin"},"comments":{"patterns":[{"include":"#comment-line"},{"include":"#comment-block"},{"include":"#comment-javadoc"}]},"control-keywords":{"match":"\\\\b(if|else|while|do|when|try|throw|break|continue|return|for)\\\\b","name":"keyword.control.kotlin"},"decimal-literal":{"match":"\\\\b\\\\d[\\\\d_]*(\\\\.[\\\\d_]+)?((e|E)\\\\d+)?(u|U)?(L|F|f)?\\\\b","name":"constant.numeric.decimal.kotlin"},"function":{"captures":{"1":{"name":"keyword.hard.fun.kotlin"},"2":{"patterns":[{"include":"#type-parameter"}]},"4":{"name":"entity.name.type.class.extension.kotlin"},"5":{"name":"entity.name.function.declaration.kotlin"}},"match":"\\\\b(fun)\\\\b\\\\s*(?<([^<>]|\\\\g)+>)?\\\\s*(?:(?:(\\\\w+)\\\\.)?(\\\\b\\\\w+\\\\b|`[^`]+`))?"},"function-call":{"captures":{"1":{"name":"entity.name.function.call.kotlin"},"2":{"patterns":[{"include":"#type-parameter"}]}},"match":"\\\\??\\\\.?(\\\\b\\\\w+\\\\b|`[^`]+`)\\\\s*(?<([^<>]|\\\\g)+>)?\\\\s*(?=[({])"},"hard-keywords":{"match":"\\\\b(as|typeof|is|in)\\\\b","name":"keyword.hard.kotlin"},"hex-literal":{"match":"0(x|X)[A-Fa-f0-9][A-Fa-f0-9_]*(u|U)?","name":"constant.numeric.hex.kotlin"},"import":{"begin":"\\\\b(import)\\\\b\\\\s*","beginCaptures":{"1":{"name":"keyword.soft.kotlin"}},"contentName":"entity.name.package.kotlin","end":";|$","name":"meta.import.kotlin","patterns":[{"include":"#comments"},{"include":"#hard-keywords"},{"match":"\\\\*","name":"variable.language.wildcard.kotlin"}]},"key":{"captures":{"1":{"name":"variable.parameter.kotlin"},"2":{"name":"keyword.operator.assignment.kotlin"}},"match":"\\\\b(\\\\w=)\\\\s*(=)"},"keywords":{"patterns":[{"include":"#prefix-modifiers"},{"include":"#postfix-modifiers"},{"include":"#soft-keywords"},{"include":"#hard-keywords"},{"include":"#control-keywords"}]},"lambda-arrow":{"match":"->","name":"storage.type.function.arrow.kotlin"},"method-reference":{"captures":{"1":{"name":"entity.name.function.reference.kotlin"}},"match":"\\\\??::(\\\\b\\\\w+\\\\b|`[^`]+`)"},"null-literal":{"match":"\\\\bnull\\\\b","name":"constant.language.null.kotlin"},"object":{"captures":{"1":{"name":"keyword.hard.object.kotlin"},"2":{"name":"entity.name.type.object.kotlin"}},"match":"\\\\b(object)(?:\\\\s+(\\\\b\\\\w+\\\\b|`[^`]+`))?"},"operators":{"patterns":[{"match":"(===?|\\\\!==?|<=|>=|<|>)","name":"keyword.operator.comparison.kotlin"},{"match":"([+*/%-]=)","name":"keyword.operator.assignment.arithmetic.kotlin"},{"match":"(=)","name":"keyword.operator.assignment.kotlin"},{"match":"([+*/%-])","name":"keyword.operator.arithmetic.kotlin"},{"match":"(!|&&|\\\\|\\\\|)","name":"keyword.operator.logical.kotlin"},{"match":"(--|\\\\+\\\\+)","name":"keyword.operator.increment-decrement.kotlin"},{"match":"(\\\\.\\\\.)","name":"keyword.operator.range.kotlin"}]},"package":{"begin":"\\\\b(package)\\\\b\\\\s*","beginCaptures":{"1":{"name":"keyword.hard.package.kotlin"}},"contentName":"entity.name.package.kotlin","end":";|$","name":"meta.package.kotlin","patterns":[{"include":"#comments"}]},"postfix-modifiers":{"match":"\\\\b(where|by|get|set)\\\\b","name":"storage.modifier.other.kotlin"},"prefix-modifiers":{"match":"\\\\b(abstract|final|enum|open|annotation|sealed|data|override|final|lateinit|private|protected|public|internal|inner|companion|noinline|crossinline|vararg|reified|tailrec|operator|infix|inline|external|const|suspend|value)\\\\b","name":"storage.modifier.other.kotlin"},"self-reference":{"match":"\\\\b(this|super)(@\\\\w+)?\\\\b","name":"variable.language.this.kotlin"},"soft-keywords":{"match":"\\\\b(init|catch|finally|field)\\\\b","name":"keyword.soft.kotlin"},"string":{"begin":"(?<([^<>]|\\\\g)+>)?"},"type-annotation":{"captures":{"0":{"patterns":[{"include":"#type-parameter"}]}},"match":"(?|(?[<(]([^<>()\\"\']|\\\\g)+[)>]))+"},"type-parameter":{"patterns":[{"match":"\\\\b\\\\w+\\\\b","name":"entity.name.type.kotlin"},{"match":"\\\\b(in|out)\\\\b","name":"storage.modifier.kotlin"}]},"unescaped-annotation":{"match":"\\\\b[\\\\w\\\\.]+\\\\b","name":"entity.name.type.annotation.kotlin"},"variable-declaration":{"captures":{"1":{"name":"keyword.hard.kotlin"},"2":{"patterns":[{"include":"#type-parameter"}]}},"match":"\\\\b(val|var)\\\\b\\\\s*(?<([^<>]|\\\\g)+>)?"}},"scopeName":"source.kotlin","aliases":["kt","kts"]}')),n=[e];export{n as default}; ================================================ FILE: jesse/static/_nuxt/B5uW3Zvf.js ================================================ /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var E={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]}]},T={defaultToken:"",tokenPostfix:".msdax",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.brackets"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["VAR","RETURN","NOT","EVALUATE","DATATABLE","ORDER","BY","START","AT","DEFINE","MEASURE","ASC","DESC","IN","BOOLEAN","DOUBLE","INTEGER","DATETIME","CURRENCY","STRING"],functions:["CLOSINGBALANCEMONTH","CLOSINGBALANCEQUARTER","CLOSINGBALANCEYEAR","DATEADD","DATESBETWEEN","DATESINPERIOD","DATESMTD","DATESQTD","DATESYTD","ENDOFMONTH","ENDOFQUARTER","ENDOFYEAR","FIRSTDATE","FIRSTNONBLANK","LASTDATE","LASTNONBLANK","NEXTDAY","NEXTMONTH","NEXTQUARTER","NEXTYEAR","OPENINGBALANCEMONTH","OPENINGBALANCEQUARTER","OPENINGBALANCEYEAR","PARALLELPERIOD","PREVIOUSDAY","PREVIOUSMONTH","PREVIOUSQUARTER","PREVIOUSYEAR","SAMEPERIODLASTYEAR","STARTOFMONTH","STARTOFQUARTER","STARTOFYEAR","TOTALMTD","TOTALQTD","TOTALYTD","ADDCOLUMNS","ADDMISSINGITEMS","ALL","ALLEXCEPT","ALLNOBLANKROW","ALLSELECTED","CALCULATE","CALCULATETABLE","CALENDAR","CALENDARAUTO","CROSSFILTER","CROSSJOIN","CURRENTGROUP","DATATABLE","DETAILROWS","DISTINCT","EARLIER","EARLIEST","EXCEPT","FILTER","FILTERS","GENERATE","GENERATEALL","GROUPBY","IGNORE","INTERSECT","ISONORAFTER","KEEPFILTERS","LOOKUPVALUE","NATURALINNERJOIN","NATURALLEFTOUTERJOIN","RELATED","RELATEDTABLE","ROLLUP","ROLLUPADDISSUBTOTAL","ROLLUPGROUP","ROLLUPISSUBTOTAL","ROW","SAMPLE","SELECTCOLUMNS","SUBSTITUTEWITHINDEX","SUMMARIZE","SUMMARIZECOLUMNS","TOPN","TREATAS","UNION","USERELATIONSHIP","VALUES","SUM","SUMX","PATH","PATHCONTAINS","PATHITEM","PATHITEMREVERSE","PATHLENGTH","AVERAGE","AVERAGEA","AVERAGEX","COUNT","COUNTA","COUNTAX","COUNTBLANK","COUNTROWS","COUNTX","DISTINCTCOUNT","DIVIDE","GEOMEAN","GEOMEANX","MAX","MAXA","MAXX","MEDIAN","MEDIANX","MIN","MINA","MINX","PERCENTILE.EXC","PERCENTILE.INC","PERCENTILEX.EXC","PERCENTILEX.INC","PRODUCT","PRODUCTX","RANK.EQ","RANKX","STDEV.P","STDEV.S","STDEVX.P","STDEVX.S","VAR.P","VAR.S","VARX.P","VARX.S","XIRR","XNPV","DATE","DATEDIFF","DATEVALUE","DAY","EDATE","EOMONTH","HOUR","MINUTE","MONTH","NOW","SECOND","TIME","TIMEVALUE","TODAY","WEEKDAY","WEEKNUM","YEAR","YEARFRAC","CONTAINS","CONTAINSROW","CUSTOMDATA","ERROR","HASONEFILTER","HASONEVALUE","ISBLANK","ISCROSSFILTERED","ISEMPTY","ISERROR","ISEVEN","ISFILTERED","ISLOGICAL","ISNONTEXT","ISNUMBER","ISODD","ISSUBTOTAL","ISTEXT","USERNAME","USERPRINCIPALNAME","AND","FALSE","IF","IFERROR","NOT","OR","SWITCH","TRUE","ABS","ACOS","ACOSH","ACOT","ACOTH","ASIN","ASINH","ATAN","ATANH","BETA.DIST","BETA.INV","CEILING","CHISQ.DIST","CHISQ.DIST.RT","CHISQ.INV","CHISQ.INV.RT","COMBIN","COMBINA","CONFIDENCE.NORM","CONFIDENCE.T","COS","COSH","COT","COTH","CURRENCY","DEGREES","EVEN","EXP","EXPON.DIST","FACT","FLOOR","GCD","INT","ISO.CEILING","LCM","LN","LOG","LOG10","MOD","MROUND","ODD","PERMUT","PI","POISSON.DIST","POWER","QUOTIENT","RADIANS","RAND","RANDBETWEEN","ROUND","ROUNDDOWN","ROUNDUP","SIGN","SIN","SINH","SQRT","SQRTPI","TAN","TANH","TRUNC","BLANK","CONCATENATE","CONCATENATEX","EXACT","FIND","FIXED","FORMAT","LEFT","LEN","LOWER","MID","REPLACE","REPT","RIGHT","SEARCH","SUBSTITUTE","TRIM","UNICHAR","UNICODE","UPPER","VALUE"],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},[/[;,.]/,"delimiter"],[/[({})]/,"@brackets"],[/[a-z_][a-zA-Z0-9_]*/,{cases:{"@keywords":"keyword","@functions":"keyword","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/\/\/+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/N"/,{token:"string",next:"@string"}],[/"/,{token:"string",next:"@string"}]],string:[[/[^"]+/,"string"],[/""/,"string"],[/"/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/\[/,{token:"identifier.quote",next:"@bracketedIdentifier"}],[/'/,{token:"identifier.quote",next:"@quotedIdentifier"}]],bracketedIdentifier:[[/[^\]]+/,"identifier"],[/]]/,"identifier"],[/]/,{token:"identifier.quote",next:"@pop"}]],quotedIdentifier:[[/[^']+/,"identifier"],[/''/,"identifier"],[/'/,{token:"identifier.quote",next:"@pop"}]]}};export{E as conf,T as language}; ================================================ FILE: jesse/static/_nuxt/B6W0miNI.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"TSX","name":"tsx","patterns":[{"include":"#directives"},{"include":"#statements"},{"include":"#shebang"}],"repository":{"access-modifier":{"match":"(?]|^await|[^\\\\._$[:alnum:]]await|^return|[^\\\\._$[:alnum:]]return|^yield|[^\\\\._$[:alnum:]]yield|^throw|[^\\\\._$[:alnum:]]throw|^in|[^\\\\._$[:alnum:]]in|^of|[^\\\\._$[:alnum:]]of|^typeof|[^\\\\._$[:alnum:]]typeof|&&|\\\\|\\\\||\\\\*)\\\\s*(\\\\{)","beginCaptures":{"1":{"name":"punctuation.definition.block.tsx"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.block.tsx"}},"name":"meta.objectliteral.tsx","patterns":[{"include":"#object-member"}]},"array-binding-pattern":{"begin":"(?:(\\\\.\\\\.\\\\.)\\\\s*)?(\\\\[)","beginCaptures":{"1":{"name":"keyword.operator.rest.tsx"},"2":{"name":"punctuation.definition.binding-pattern.array.tsx"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.array.tsx"}},"patterns":[{"include":"#binding-element"},{"include":"#punctuation-comma"}]},"array-binding-pattern-const":{"begin":"(?:(\\\\.\\\\.\\\\.)\\\\s*)?(\\\\[)","beginCaptures":{"1":{"name":"keyword.operator.rest.tsx"},"2":{"name":"punctuation.definition.binding-pattern.array.tsx"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.array.tsx"}},"patterns":[{"include":"#binding-element-const"},{"include":"#punctuation-comma"}]},"array-literal":{"begin":"\\\\s*(\\\\[)","beginCaptures":{"1":{"name":"meta.brace.square.tsx"}},"end":"\\\\]","endCaptures":{"0":{"name":"meta.brace.square.tsx"}},"name":"meta.array.literal.tsx","patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}]},"arrow-function":{"patterns":[{"captures":{"1":{"name":"storage.modifier.async.tsx"},"2":{"name":"variable.parameter.tsx"}},"match":"(?:(?)","name":"meta.arrow.tsx"},{"begin":"(?:(?]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>)))","beginCaptures":{"1":{"name":"storage.modifier.async.tsx"}},"end":"(?==>|\\\\{|(^\\\\s*(export|function|class|interface|let|var|(?:\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[_$[:alpha:]])\\\\b)|(?:\\\\bawait\\\\s+(?:\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[_$[:alpha:]])\\\\b)\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\s+))","name":"meta.arrow.tsx","patterns":[{"include":"#comment"},{"include":"#type-parameters"},{"include":"#function-parameters"},{"include":"#arrow-return-type"},{"include":"#possibly-arrow-return-type"}]},{"begin":"=>","beginCaptures":{"0":{"name":"storage.type.function.arrow.tsx"}},"end":"((?<=\\\\}|\\\\S)(?)|((?!\\\\{)(?=\\\\S)))(?!\\\\/[\\\\/\\\\*])","name":"meta.arrow.tsx","patterns":[{"include":"#single-line-comment-consuming-line-ending"},{"include":"#decl-block"},{"include":"#expression"}]}]},"arrow-return-type":{"begin":"(?<=\\\\))\\\\s*(:)","beginCaptures":{"1":{"name":"keyword.operator.type.annotation.tsx"}},"end":"(?==>|\\\\{|(^\\\\s*(export|function|class|interface|let|var|(?:\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[_$[:alpha:]])\\\\b)|(?:\\\\bawait\\\\s+(?:\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[_$[:alpha:]])\\\\b)\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\s+))","name":"meta.return.type.arrow.tsx","patterns":[{"include":"#arrow-return-type-body"}]},"arrow-return-type-body":{"patterns":[{"begin":"(?<=[:])(?=\\\\s*\\\\{)","end":"(?<=\\\\})","patterns":[{"include":"#type-object"}]},{"include":"#type-predicate-operator"},{"include":"#type"}]},"async-modifier":{"match":"(?\\\\s*$)","beginCaptures":{"1":{"name":"punctuation.definition.comment.tsx"}},"end":"(?=$)","name":"comment.line.triple-slash.directive.tsx","patterns":[{"begin":"(<)(reference|amd-dependency|amd-module)","beginCaptures":{"1":{"name":"punctuation.definition.tag.directive.tsx"},"2":{"name":"entity.name.tag.directive.tsx"}},"end":"/>","endCaptures":{"0":{"name":"punctuation.definition.tag.directive.tsx"}},"name":"meta.tag.tsx","patterns":[{"match":"path|types|no-default-lib|lib|name|resolution-mode","name":"entity.other.attribute-name.directive.tsx"},{"match":"=","name":"keyword.operator.assignment.tsx"},{"include":"#string"}]}]},"docblock":{"patterns":[{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"constant.language.access-type.jsdoc"}},"match":"((@)(?:access|api))\\\\s+(private|protected|public)\\\\b"},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"entity.name.type.instance.jsdoc"},"4":{"name":"punctuation.definition.bracket.angle.begin.jsdoc"},"5":{"name":"constant.other.email.link.underline.jsdoc"},"6":{"name":"punctuation.definition.bracket.angle.end.jsdoc"}},"match":"((@)author)\\\\s+([^@\\\\s<>*/](?:[^@<>*/]|\\\\*[^/])*)(?:\\\\s*(<)([^>\\\\s]+)(>))?"},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"entity.name.type.instance.jsdoc"},"4":{"name":"keyword.operator.control.jsdoc"},"5":{"name":"entity.name.type.instance.jsdoc"}},"match":"((@)borrows)\\\\s+((?:[^@\\\\s*/]|\\\\*[^/])+)\\\\s+(as)\\\\s+((?:[^@\\\\s*/]|\\\\*[^/])+)"},{"begin":"((@)example)\\\\s+","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=@|\\\\*/)","name":"meta.example.jsdoc","patterns":[{"match":"^\\\\s\\\\*\\\\s+"},{"begin":"\\\\G(<)caption(>)","beginCaptures":{"0":{"name":"entity.name.tag.inline.jsdoc"},"1":{"name":"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{"name":"punctuation.definition.bracket.angle.end.jsdoc"}},"contentName":"constant.other.description.jsdoc","end":"()|(?=\\\\*/)","endCaptures":{"0":{"name":"entity.name.tag.inline.jsdoc"},"1":{"name":"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{"name":"punctuation.definition.bracket.angle.end.jsdoc"}}},{"captures":{"0":{"name":"source.embedded.tsx"}},"match":"[^\\\\s@*](?:[^*]|\\\\*[^/])*"}]},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"constant.language.symbol-type.jsdoc"}},"match":"((@)kind)\\\\s+(class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\\\\b"},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.link.underline.jsdoc"},"4":{"name":"entity.name.type.instance.jsdoc"}},"match":"((@)see)\\\\s+(?:((?=https?://)(?:[^\\\\s*]|\\\\*[^/])+)|((?!https?://|(?:\\\\[[^\\\\[\\\\]]*\\\\])?{@(?:link|linkcode|linkplain|tutorial)\\\\b)(?:[^@\\\\s*/]|\\\\*[^/])+))"},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.jsdoc"}},"match":"((@)template)\\\\s+([A-Za-z_$][\\\\w$.\\\\[\\\\]]*(?:\\\\s*,\\\\s*[A-Za-z_$][\\\\w$.\\\\[\\\\]]*)*)"},{"begin":"((@)template)\\\\s+(?={)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=\\\\s|\\\\*/|[^{}\\\\[\\\\]A-Za-z_$])","patterns":[{"include":"#jsdoctype"},{"match":"([A-Za-z_$][\\\\w$.\\\\[\\\\]]*)","name":"variable.other.jsdoc"}]},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.jsdoc"}},"match":"((@)(?:arg|argument|const|constant|member|namespace|param|var))\\\\s+([A-Za-z_$][\\\\w$.\\\\[\\\\]]*)"},{"begin":"((@)typedef)\\\\s+(?={)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=\\\\s|\\\\*/|[^{}\\\\[\\\\]A-Za-z_$])","patterns":[{"include":"#jsdoctype"},{"match":"(?:[^@\\\\s*/]|\\\\*[^/])+","name":"entity.name.type.instance.jsdoc"}]},{"begin":"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\\\s+(?={)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=\\\\s|\\\\*/|[^{}\\\\[\\\\]A-Za-z_$])","patterns":[{"include":"#jsdoctype"},{"match":"([A-Za-z_$][\\\\w$.\\\\[\\\\]]*)","name":"variable.other.jsdoc"},{"captures":{"1":{"name":"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},"2":{"name":"keyword.operator.assignment.jsdoc"},"3":{"name":"source.embedded.tsx"},"4":{"name":"punctuation.definition.optional-value.end.bracket.square.jsdoc"},"5":{"name":"invalid.illegal.syntax.jsdoc"}},"match":"(\\\\[)\\\\s*[\\\\w$]+(?:(?:\\\\[\\\\])?\\\\.[\\\\w$]+)*(?:\\\\s*(=)\\\\s*((?>\\"(?:(?:\\\\*(?!/))|(?:\\\\\\\\(?!\\"))|[^*\\\\\\\\])*?\\"|'(?:(?:\\\\*(?!/))|(?:\\\\\\\\(?!'))|[^*\\\\\\\\])*?'|\\\\[(?:(?:\\\\*(?!/))|[^*])*?\\\\]|(?:(?:\\\\*(?!/))|\\\\s(?!\\\\s*\\\\])|\\\\[.*?(?:\\\\]|(?=\\\\*/))|[^*\\\\s\\\\[\\\\]])*)*))?\\\\s*(?:(\\\\])((?:[^*\\\\s]|\\\\*[^\\\\s/])+)?|(?=\\\\*/))","name":"variable.other.jsdoc"}]},{"begin":"((@)(?:define|enum|exception|export|extends|lends|implements|modifies|namespace|private|protected|returns?|satisfies|suppress|this|throws|type|yields?))\\\\s+(?={)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=\\\\s|\\\\*/|[^{}\\\\[\\\\]A-Za-z_$])","patterns":[{"include":"#jsdoctype"}]},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"entity.name.type.instance.jsdoc"}},"match":"((@)(?:alias|augments|callback|constructs|emits|event|fires|exports?|extends|external|function|func|host|lends|listens|interface|memberof!?|method|module|mixes|mixin|name|requires|see|this|typedef|uses))\\\\s+((?:[^{}@\\\\s*]|\\\\*[^/])+)"},{"begin":"((@)(?:default(?:value)?|license|version))\\\\s+(([''\\"]))","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.jsdoc"},"4":{"name":"punctuation.definition.string.begin.jsdoc"}},"contentName":"variable.other.jsdoc","end":"(\\\\3)|(?=$|\\\\*/)","endCaptures":{"0":{"name":"variable.other.jsdoc"},"1":{"name":"punctuation.definition.string.end.jsdoc"}}},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.jsdoc"}},"match":"((@)(?:default(?:value)?|license|tutorial|variation|version))\\\\s+([^\\\\s*]+)"},{"captures":{"1":{"name":"punctuation.definition.block.tag.jsdoc"}},"match":"(@)(?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception|exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func|function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc|inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method|mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects|override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce|yields?)\\\\b","name":"storage.type.class.jsdoc"},{"include":"#inline-tags"},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"match":"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\\\s+)"}]},"enum-declaration":{"begin":"(?)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>)))))|(:\\\\s*((<)|([(]\\\\s*(([)])|(\\\\.\\\\.\\\\.)|([_$[:alnum:]]+\\\\s*(([:,?=])|([)]\\\\s*=>)))))))|(:\\\\s*(?\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))))))|(:\\\\s*(=>|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\s*(((async\\\\s+)?((function\\\\s*[(<*])|(function\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\s*=>)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>))))))"},{"captures":{"1":{"name":"storage.modifier.tsx"},"2":{"name":"keyword.operator.rest.tsx"},"3":{"name":"variable.parameter.tsx variable.language.this.tsx"},"4":{"name":"variable.parameter.tsx"},"5":{"name":"keyword.operator.optional.tsx"}},"match":"(?:(?]|\\\\|\\\\||\\\\&\\\\&|\\\\!\\\\=\\\\=|$|((?>=|>>>=|\\\\|=","name":"keyword.operator.assignment.compound.bitwise.tsx"},{"match":"<<|>>>|>>","name":"keyword.operator.bitwise.shift.tsx"},{"match":"===|!==|==|!=","name":"keyword.operator.comparison.tsx"},{"match":"<=|>=|<>|<|>","name":"keyword.operator.relational.tsx"},{"captures":{"1":{"name":"keyword.operator.logical.tsx"},"2":{"name":"keyword.operator.assignment.compound.tsx"},"3":{"name":"keyword.operator.arithmetic.tsx"}},"match":"(?<=[_$[:alnum:]])(\\\\!)\\\\s*(?:(/=)|(?:(/)(?![/*])))"},{"match":"\\\\!|&&|\\\\|\\\\||\\\\?\\\\?","name":"keyword.operator.logical.tsx"},{"match":"\\\\&|~|\\\\^|\\\\|","name":"keyword.operator.bitwise.tsx"},{"match":"\\\\=","name":"keyword.operator.assignment.tsx"},{"match":"--","name":"keyword.operator.decrement.tsx"},{"match":"\\\\+\\\\+","name":"keyword.operator.increment.tsx"},{"match":"%|\\\\*|/|-|\\\\+","name":"keyword.operator.arithmetic.tsx"},{"begin":"(?<=[_$[:alnum:])\\\\]])\\\\s*(?=(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)+(?:(/=)|(?:(/)(?![/*]))))","end":"(?:(/=)|(?:(/)(?!\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/)))","endCaptures":{"1":{"name":"keyword.operator.assignment.compound.tsx"},"2":{"name":"keyword.operator.arithmetic.tsx"}},"patterns":[{"include":"#comment"}]},{"captures":{"1":{"name":"keyword.operator.assignment.compound.tsx"},"2":{"name":"keyword.operator.arithmetic.tsx"}},"match":"(?<=[_$[:alnum:])\\\\]])\\\\s*(?:(/=)|(?:(/)(?![/*])))"}]},"expressionPunctuations":{"patterns":[{"include":"#punctuation-comma"},{"include":"#punctuation-accessor"}]},"expressionWithoutIdentifiers":{"patterns":[{"include":"#jsx"},{"include":"#string"},{"include":"#regex"},{"include":"#comment"},{"include":"#function-expression"},{"include":"#class-expression"},{"include":"#arrow-function"},{"include":"#paren-expression-possibly-arrow"},{"include":"#cast"},{"include":"#ternary-expression"},{"include":"#new-expr"},{"include":"#instanceof-expr"},{"include":"#object-literal"},{"include":"#expression-operators"},{"include":"#function-call"},{"include":"#literal"},{"include":"#support-objects"},{"include":"#paren-expression"}]},"field-declaration":{"begin":"(?)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>)))))|(:\\\\s*((<)|([(]\\\\s*(([)])|(\\\\.\\\\.\\\\.)|([_$[:alnum:]]+\\\\s*(([:,?=])|([)]\\\\s*=>)))))))|(:\\\\s*(?\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))))))|(:\\\\s*(=>|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\s*(((async\\\\s+)?((function\\\\s*[(<*])|(function\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\s*=>)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>))))))"},{"match":"\\\\#?[_$[:alpha:]][_$[:alnum:]]*","name":"meta.definition.property.tsx variable.object.property.tsx"},{"match":"\\\\?","name":"keyword.operator.optional.tsx"},{"match":"\\\\!","name":"keyword.operator.definiteassignment.tsx"}]},"for-loop":{"begin":"(?\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>)*(?))*(?)*(?\\\\s*)?\\\\())","end":"(?<=\\\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\s*\\\\??\\\\.\\\\s*(\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\??\\\\.\\\\s*\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\)]))\\\\s*(?:(\\\\?\\\\.\\\\s*)|(\\\\!))?((<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>)*(?))*(?)*(?\\\\s*)?\\\\())","patterns":[{"begin":"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\\\s*\\\\??\\\\.\\\\s*(\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\??\\\\.\\\\s*\\\\#?[_$[:alpha:]][_$[:alnum:]]*))","end":"(?=\\\\s*(?:(\\\\?\\\\.\\\\s*)|(\\\\!))?((<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>)*(?))*(?)*(?\\\\s*)?\\\\())","name":"meta.function-call.tsx","patterns":[{"include":"#function-call-target"}]},{"include":"#comment"},{"include":"#function-call-optionals"},{"include":"#type-arguments"},{"include":"#paren-expression"}]},{"begin":"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\s*\\\\??\\\\.\\\\s*(\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\??\\\\.\\\\s*\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\)]))(<\\\\s*[\\\\{\\\\[\\\\(]\\\\s*$))","end":"(?<=\\\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\s*\\\\??\\\\.\\\\s*(\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\??\\\\.\\\\s*\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\)]))(<\\\\s*[\\\\{\\\\[\\\\(]\\\\s*$))","patterns":[{"begin":"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\\\s*\\\\??\\\\.\\\\s*(\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\??\\\\.\\\\s*\\\\#?[_$[:alpha:]][_$[:alnum:]]*))","end":"(?=(<\\\\s*[\\\\{\\\\[\\\\(]\\\\s*$))","name":"meta.function-call.tsx","patterns":[{"include":"#function-call-target"}]},{"include":"#comment"},{"include":"#function-call-optionals"},{"include":"#type-arguments"}]}]},"function-call-optionals":{"patterns":[{"match":"\\\\?\\\\.","name":"meta.function-call.tsx punctuation.accessor.optional.tsx"},{"match":"\\\\!","name":"meta.function-call.tsx keyword.operator.definiteassignment.tsx"}]},"function-call-target":{"patterns":[{"include":"#support-function-call-identifiers"},{"match":"(\\\\#?[_$[:alpha:]][_$[:alnum:]]*)","name":"entity.name.function.tsx"}]},"function-declaration":{"begin":"(?)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>)))))"},{"captures":{"1":{"name":"punctuation.accessor.tsx"},"2":{"name":"punctuation.accessor.optional.tsx"},"3":{"name":"variable.other.constant.property.tsx"}},"match":"(?:(\\\\.)|(\\\\?\\\\.(?!\\\\s*[[:digit:]])))\\\\s*(\\\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{"captures":{"1":{"name":"punctuation.accessor.tsx"},"2":{"name":"punctuation.accessor.optional.tsx"},"3":{"name":"variable.other.property.tsx"}},"match":"(?:(\\\\.)|(\\\\?\\\\.(?!\\\\s*[[:digit:]])))\\\\s*(\\\\#?[_$[:alpha:]][_$[:alnum:]]*)"},{"match":"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])","name":"variable.other.constant.tsx"},{"match":"[_$[:alpha:]][_$[:alnum:]]*","name":"variable.other.readwrite.tsx"}]},"if-statement":{"patterns":[{"begin":"(?]|\\\\|\\\\||\\\\&\\\\&|\\\\!\\\\=\\\\=|$|(===|!==|==|!=)|(([\\\\&\\\\~\\\\^\\\\|]\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s+instanceof(?![_$[:alnum:]])(?:(?=\\\\.\\\\.\\\\.)|(?!\\\\.)))|((?))","end":"(/>)|(?:())","endCaptures":{"1":{"name":"punctuation.definition.tag.end.tsx"},"2":{"name":"punctuation.definition.tag.begin.tsx"},"3":{"name":"entity.name.tag.namespace.tsx"},"4":{"name":"punctuation.separator.namespace.tsx"},"5":{"name":"entity.name.tag.tsx"},"6":{"name":"support.class.component.tsx"},"7":{"name":"punctuation.definition.tag.end.tsx"}},"name":"meta.tag.tsx","patterns":[{"begin":"(<)\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.tsx"},"2":{"name":"entity.name.tag.namespace.tsx"},"3":{"name":"punctuation.separator.namespace.tsx"},"4":{"name":"entity.name.tag.tsx"},"5":{"name":"support.class.component.tsx"}},"end":"(?=[/]?>)","patterns":[{"include":"#comment"},{"include":"#type-arguments"},{"include":"#jsx-tag-attributes"}]},{"begin":"(>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.end.tsx"}},"contentName":"meta.jsx.children.tsx","end":"(?=|/\\\\*|//)"},"jsx-tag-attributes":{"begin":"\\\\s+","end":"(?=[/]?>)","name":"meta.tag.attributes.tsx","patterns":[{"include":"#comment"},{"include":"#jsx-tag-attribute-name"},{"include":"#jsx-tag-attribute-assignment"},{"include":"#jsx-string-double-quoted"},{"include":"#jsx-string-single-quoted"},{"include":"#jsx-evaluated-code"},{"include":"#jsx-tag-attributes-illegal"}]},"jsx-tag-attributes-illegal":{"match":"\\\\S+","name":"invalid.illegal.attribute.tsx"},"jsx-tag-in-expression":{"begin":"(?:*]|&&|\\\\|\\\\||\\\\?|\\\\*\\\\/|^await|[^\\\\._$[:alnum:]]await|^return|[^\\\\._$[:alnum:]]return|^default|[^\\\\._$[:alnum:]]default|^yield|[^\\\\._$[:alnum:]]yield|^)\\\\s*(?!<\\\\s*[_$[:alpha:]][_$[:alnum:]]*((\\\\s+extends\\\\s+[^=>])|,))(?=(<)\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))","end":"(?!(<)\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))","patterns":[{"include":"#jsx-tag"}]},"jsx-tag-without-attributes":{"begin":"(<)\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.tsx"},"2":{"name":"entity.name.tag.namespace.tsx"},"3":{"name":"punctuation.separator.namespace.tsx"},"4":{"name":"entity.name.tag.tsx"},"5":{"name":"support.class.component.tsx"},"6":{"name":"punctuation.definition.tag.end.tsx"}},"contentName":"meta.jsx.children.tsx","end":"()","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.tsx"},"2":{"name":"entity.name.tag.namespace.tsx"},"3":{"name":"punctuation.separator.namespace.tsx"},"4":{"name":"entity.name.tag.tsx"},"5":{"name":"support.class.component.tsx"},"6":{"name":"punctuation.definition.tag.end.tsx"}},"name":"meta.tag.without-attributes.tsx","patterns":[{"include":"#jsx-children"}]},"jsx-tag-without-attributes-in-expression":{"begin":"(?:*]|&&|\\\\|\\\\||\\\\?|\\\\*\\\\/|^await|[^\\\\._$[:alnum:]]await|^return|[^\\\\._$[:alnum:]]return|^default|[^\\\\._$[:alnum:]]default|^yield|[^\\\\._$[:alnum:]]yield|^)\\\\s*(?=(<)\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))","end":"(?!(<)\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))","patterns":[{"include":"#jsx-tag-without-attributes"}]},"label":{"patterns":[{"begin":"([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(:)(?=\\\\s*\\\\{)","beginCaptures":{"1":{"name":"entity.name.label.tsx"},"2":{"name":"punctuation.separator.label.tsx"}},"end":"(?<=\\\\})","patterns":[{"include":"#decl-block"}]},{"captures":{"1":{"name":"entity.name.label.tsx"},"2":{"name":"punctuation.separator.label.tsx"}},"match":"([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(:)"}]},"literal":{"patterns":[{"include":"#numeric-literal"},{"include":"#boolean-literal"},{"include":"#null-literal"},{"include":"#undefined-literal"},{"include":"#numericConstant-literal"},{"include":"#array-literal"},{"include":"#this-literal"},{"include":"#super-literal"}]},"method-declaration":{"patterns":[{"begin":"(?]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*))?[\\\\(])","beginCaptures":{"1":{"name":"storage.modifier.tsx"},"2":{"name":"storage.modifier.tsx"},"3":{"name":"storage.modifier.tsx"},"4":{"name":"storage.modifier.async.tsx"},"5":{"name":"keyword.operator.new.tsx"},"6":{"name":"keyword.generator.asterisk.tsx"}},"end":"(?=\\\\}|;|,|$)|(?<=\\\\})","name":"meta.method.declaration.tsx","patterns":[{"include":"#method-declaration-name"},{"include":"#function-body"}]},{"begin":"(?]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*))?[\\\\(])","beginCaptures":{"1":{"name":"storage.modifier.tsx"},"2":{"name":"storage.modifier.tsx"},"3":{"name":"storage.modifier.tsx"},"4":{"name":"storage.modifier.async.tsx"},"5":{"name":"storage.type.property.tsx"},"6":{"name":"keyword.generator.asterisk.tsx"}},"end":"(?=\\\\}|;|,|$)|(?<=\\\\})","name":"meta.method.declaration.tsx","patterns":[{"include":"#method-declaration-name"},{"include":"#function-body"}]}]},"method-declaration-name":{"begin":"(?=((\\\\b(?]|\\\\|\\\\||\\\\&\\\\&|\\\\!\\\\=\\\\=|$|((?]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*))?[\\\\(])","beginCaptures":{"1":{"name":"storage.modifier.async.tsx"},"2":{"name":"storage.type.property.tsx"},"3":{"name":"keyword.generator.asterisk.tsx"}},"end":"(?=\\\\}|;|,)|(?<=\\\\})","name":"meta.method.declaration.tsx","patterns":[{"include":"#method-declaration-name"},{"include":"#function-body"},{"begin":"(?]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*))?[\\\\(])","beginCaptures":{"1":{"name":"storage.modifier.async.tsx"},"2":{"name":"storage.type.property.tsx"},"3":{"name":"keyword.generator.asterisk.tsx"}},"end":"(?=\\\\(|\\\\<)","patterns":[{"include":"#method-declaration-name"}]}]},"object-member":{"patterns":[{"include":"#comment"},{"include":"#object-literal-method-declaration"},{"begin":"(?=\\\\[)","end":"(?=:)|((?<=[\\\\]])(?=\\\\s*[\\\\(\\\\<]))","name":"meta.object.member.tsx meta.object-literal.key.tsx","patterns":[{"include":"#comment"},{"include":"#array-literal"}]},{"begin":"(?=[\\\\'\\\\\\"\\\\\`])","end":"(?=:)|((?<=[\\\\'\\\\\\"\\\\\`])(?=((\\\\s*[\\\\(\\\\<,}])|(\\\\s+(as|satisifies)\\\\s+))))","name":"meta.object.member.tsx meta.object-literal.key.tsx","patterns":[{"include":"#comment"},{"include":"#string"}]},{"begin":"(?=(\\\\b(?)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>))))))","name":"meta.object.member.tsx"},{"captures":{"0":{"name":"meta.object-literal.key.tsx"}},"match":"(?:[_$[:alpha:]][_$[:alnum:]]*)\\\\s*(?=(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*:)","name":"meta.object.member.tsx"},{"begin":"\\\\.\\\\.\\\\.","beginCaptures":{"0":{"name":"keyword.operator.spread.tsx"}},"end":"(?=,|\\\\})","name":"meta.object.member.tsx","patterns":[{"include":"#expression"}]},{"captures":{"1":{"name":"variable.other.readwrite.tsx"}},"match":"([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(?=,|\\\\}|$|\\\\/\\\\/|\\\\/\\\\*)","name":"meta.object.member.tsx"},{"captures":{"1":{"name":"keyword.control.as.tsx"},"2":{"name":"storage.modifier.tsx"}},"match":"(?]|\\\\|\\\\||\\\\&\\\\&|\\\\!\\\\=\\\\=|$|^|((?]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)\\\\(\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))))","beginCaptures":{"1":{"name":"storage.modifier.async.tsx"}},"end":"(?<=\\\\))","patterns":[{"include":"#type-parameters"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"meta.brace.round.tsx"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.tsx"}},"patterns":[{"include":"#expression-inside-possibly-arrow-parens"}]}]},{"begin":"(?<=:)\\\\s*(async)?\\\\s*(\\\\()(?=\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))))","beginCaptures":{"1":{"name":"storage.modifier.async.tsx"},"2":{"name":"meta.brace.round.tsx"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.tsx"}},"patterns":[{"include":"#expression-inside-possibly-arrow-parens"}]},{"begin":"(?<=:)\\\\s*(async)?\\\\s*(?=\\\\<\\\\s*$)","beginCaptures":{"1":{"name":"storage.modifier.async.tsx"}},"end":"(?<=\\\\>)","patterns":[{"include":"#type-parameters"}]},{"begin":"(?<=\\\\>)\\\\s*(\\\\()(?=\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))))","beginCaptures":{"1":{"name":"meta.brace.round.tsx"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.tsx"}},"patterns":[{"include":"#expression-inside-possibly-arrow-parens"}]},{"include":"#possibly-arrow-return-type"},{"include":"#expression"}]},{"include":"#punctuation-comma"},{"include":"#decl-block"}]},"parameter-array-binding-pattern":{"begin":"(?:(\\\\.\\\\.\\\\.)\\\\s*)?(\\\\[)","beginCaptures":{"1":{"name":"keyword.operator.rest.tsx"},"2":{"name":"punctuation.definition.binding-pattern.array.tsx"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.array.tsx"}},"patterns":[{"include":"#parameter-binding-element"},{"include":"#punctuation-comma"}]},"parameter-binding-element":{"patterns":[{"include":"#comment"},{"include":"#string"},{"include":"#numeric-literal"},{"include":"#regex"},{"include":"#parameter-object-binding-pattern"},{"include":"#parameter-array-binding-pattern"},{"include":"#destructuring-parameter-rest"},{"include":"#variable-initializer"}]},"parameter-name":{"patterns":[{"captures":{"1":{"name":"storage.modifier.tsx"}},"match":"(?)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>)))))|(:\\\\s*((<)|([(]\\\\s*(([)])|(\\\\.\\\\.\\\\.)|([_$[:alnum:]]+\\\\s*(([:,?=])|([)]\\\\s*=>)))))))|(:\\\\s*(?\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))))))|(:\\\\s*(=>|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\s*(((async\\\\s+)?((function\\\\s*[(<*])|(function\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\s*=>)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>))))))"},{"captures":{"1":{"name":"storage.modifier.tsx"},"2":{"name":"keyword.operator.rest.tsx"},"3":{"name":"variable.parameter.tsx variable.language.this.tsx"},"4":{"name":"variable.parameter.tsx"},"5":{"name":"keyword.operator.optional.tsx"}},"match":"(?:(?])","name":"meta.type.annotation.tsx","patterns":[{"include":"#type"}]}]},"paren-expression":{"begin":"\\\\(","beginCaptures":{"0":{"name":"meta.brace.round.tsx"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.tsx"}},"patterns":[{"include":"#expression"}]},"paren-expression-possibly-arrow":{"patterns":[{"begin":"(?<=[(=,])\\\\s*(async)?(?=\\\\s*((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*))?\\\\(\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))))","beginCaptures":{"1":{"name":"storage.modifier.async.tsx"}},"end":"(?<=\\\\))","patterns":[{"include":"#paren-expression-possibly-arrow-with-typeparameters"}]},{"begin":"(?<=[(=,]|=>|^return|[^\\\\._$[:alnum:]]return)\\\\s*(async)?(?=\\\\s*((((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*))?\\\\()|(<)|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)))\\\\s*$)","beginCaptures":{"1":{"name":"storage.modifier.async.tsx"}},"end":"(?<=\\\\))","patterns":[{"include":"#paren-expression-possibly-arrow-with-typeparameters"}]},{"include":"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{"patterns":[{"include":"#type-parameters"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"meta.brace.round.tsx"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.tsx"}},"patterns":[{"include":"#expression-inside-possibly-arrow-parens"}]}]},"possibly-arrow-return-type":{"begin":"(?<=\\\\)|^)\\\\s*(:)(?=\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*=>)","beginCaptures":{"1":{"name":"meta.arrow.tsx meta.return.type.arrow.tsx keyword.operator.type.annotation.tsx"}},"contentName":"meta.arrow.tsx meta.return.type.arrow.tsx","end":"(?==>|\\\\{|(^\\\\s*(export|function|class|interface|let|var|(?:\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[_$[:alpha:]])\\\\b)|(?:\\\\bawait\\\\s+(?:\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[_$[:alpha:]])\\\\b)\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\s+))","patterns":[{"include":"#arrow-return-type-body"}]},"property-accessor":{"match":"(?|&&|\\\\|\\\\||\\\\*\\\\/)\\\\s*(\\\\/)(?![\\\\/*])(?=(?:[^\\\\/\\\\\\\\\\\\[\\\\()]|\\\\\\\\.|\\\\[([^\\\\]\\\\\\\\]|\\\\\\\\.)+\\\\]|\\\\(([^\\\\)\\\\\\\\]|\\\\\\\\.)+\\\\))+\\\\/([dgimsuvy]+|(?![\\\\/\\\\*])|(?=\\\\/\\\\*))(?!\\\\s*[a-zA-Z0-9_$]))","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.tsx"}},"end":"(/)([dgimsuvy]*)","endCaptures":{"1":{"name":"punctuation.definition.string.end.tsx"},"2":{"name":"keyword.other.tsx"}},"name":"string.regexp.tsx","patterns":[{"include":"#regexp"}]},{"begin":"((?"},{"match":"[?+*]|\\\\{(\\\\d+,\\\\d+|\\\\d+,|,\\\\d+|\\\\d+)\\\\}\\\\??","name":"keyword.operator.quantifier.regexp"},{"match":"\\\\|","name":"keyword.operator.or.regexp"},{"begin":"(\\\\()((\\\\?=)|(\\\\?!)|(\\\\?<=)|(\\\\?))?","beginCaptures":{"0":{"name":"punctuation.definition.group.regexp"},"1":{"name":"punctuation.definition.group.no-capture.regexp"},"2":{"name":"variable.other.regexp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.regexp"}},"name":"meta.group.regexp","patterns":[{"include":"#regexp"}]},{"begin":"(\\\\[)(\\\\^)?","beginCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"},"2":{"name":"keyword.operator.negation.regexp"}},"end":"(\\\\])","endCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"}},"name":"constant.other.character-class.set.regexp","patterns":[{"captures":{"1":{"name":"constant.character.numeric.regexp"},"2":{"name":"constant.character.control.regexp"},"3":{"name":"constant.character.escape.backslash.regexp"},"4":{"name":"constant.character.numeric.regexp"},"5":{"name":"constant.character.control.regexp"},"6":{"name":"constant.character.escape.backslash.regexp"}},"match":"(?:.|(\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\\\\\c[A-Z])|(\\\\\\\\.))\\\\-(?:[^\\\\]\\\\\\\\]|(\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\\\\\c[A-Z])|(\\\\\\\\.))","name":"constant.other.character-class.range.regexp"},{"include":"#regex-character-class"}]},{"include":"#regex-character-class"}]},"return-type":{"patterns":[{"begin":"(?<=\\\\))\\\\s*(:)(?=\\\\s*\\\\S)","beginCaptures":{"1":{"name":"keyword.operator.type.annotation.tsx"}},"end":"(?]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\())|(?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\\\b(?!\\\\$)))"},{"captures":{"1":{"name":"support.type.object.module.tsx"},"2":{"name":"support.type.object.module.tsx"},"3":{"name":"punctuation.accessor.tsx"},"4":{"name":"punctuation.accessor.optional.tsx"},"5":{"name":"support.type.object.module.tsx"}},"match":"(?\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>)*(?))*(?)*(?\\\\s*)?\`)","end":"(?=\`)","patterns":[{"begin":"(?=(([_$[:alpha:]][_$[:alnum:]]*\\\\s*\\\\??\\\\.\\\\s*)*|(\\\\??\\\\.\\\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))","end":"(?=(<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>)*(?))*(?)*(?\\\\s*)?\`)","patterns":[{"include":"#support-function-call-identifiers"},{"match":"([_$[:alpha:]][_$[:alnum:]]*)","name":"entity.name.function.tagged-template.tsx"}]},{"include":"#type-arguments"}]},{"begin":"([_$[:alpha:]][_$[:alnum:]]*)?\\\\s*(?=(<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>)*(?))*(?)*(?\\\\s*)\`)","beginCaptures":{"1":{"name":"entity.name.function.tagged-template.tsx"}},"end":"(?=\`)","patterns":[{"include":"#type-arguments"}]}]},"template-substitution-element":{"begin":"\\\\$\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin.tsx"}},"contentName":"meta.embedded.line.tsx","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.template-expression.end.tsx"}},"name":"meta.template.expression.tsx","patterns":[{"include":"#expression"}]},"template-type":{"patterns":[{"include":"#template-call"},{"begin":"([_$[:alpha:]][_$[:alnum:]]*)?(\`)","beginCaptures":{"1":{"name":"entity.name.function.tagged-template.tsx"},"2":{"name":"string.template.tsx punctuation.definition.string.template.begin.tsx"}},"contentName":"string.template.tsx","end":"\`","endCaptures":{"0":{"name":"string.template.tsx punctuation.definition.string.template.end.tsx"}},"patterns":[{"include":"#template-type-substitution-element"},{"include":"#string-character-escape"}]}]},"template-type-substitution-element":{"begin":"\\\\$\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin.tsx"}},"contentName":"meta.embedded.line.tsx","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.template-expression.end.tsx"}},"name":"meta.template.expression.tsx","patterns":[{"include":"#type"}]},"ternary-expression":{"begin":"(?!\\\\?\\\\.\\\\s*[^[:digit:]])(\\\\?)(?!\\\\?)","beginCaptures":{"1":{"name":"keyword.operator.ternary.tsx"}},"end":"\\\\s*(:)","endCaptures":{"1":{"name":"keyword.operator.ternary.tsx"}},"patterns":[{"include":"#expression"}]},"this-literal":{"match":"(?])|((?<=[\\\\}>\\\\]\\\\)]|[_$[:alpha:]])\\\\s*(?=\\\\{)))","name":"meta.type.annotation.tsx","patterns":[{"include":"#type"}]},{"begin":"(:)","beginCaptures":{"1":{"name":"keyword.operator.type.annotation.tsx"}},"end":"(?])|(?=^\\\\s*$)|((?<=[\\\\}>\\\\]\\\\)]|[_$[:alpha:]])\\\\s*(?=\\\\{)))","name":"meta.type.annotation.tsx","patterns":[{"include":"#type"}]}]},"type-arguments":{"begin":"\\\\<","beginCaptures":{"0":{"name":"punctuation.definition.typeparameters.begin.tsx"}},"end":"\\\\>","endCaptures":{"0":{"name":"punctuation.definition.typeparameters.end.tsx"}},"name":"meta.type.parameters.tsx","patterns":[{"include":"#type-arguments-body"}]},"type-arguments-body":{"patterns":[{"captures":{"0":{"name":"keyword.operator.type.tsx"}},"match":"(?)","patterns":[{"include":"#comment"},{"include":"#type-parameters"}]},{"begin":"(?))))))","end":"(?<=\\\\))","name":"meta.type.function.tsx","patterns":[{"include":"#function-parameters"}]}]},"type-function-return-type":{"patterns":[{"begin":"(=>)(?=\\\\s*\\\\S)","beginCaptures":{"1":{"name":"storage.type.function.arrow.tsx"}},"end":"(?)(?:\\\\?]|//|$)","name":"meta.type.function.return.tsx","patterns":[{"include":"#type-function-return-type-core"}]},{"begin":"=>","beginCaptures":{"0":{"name":"storage.type.function.arrow.tsx"}},"end":"(?)(?]|//|^\\\\s*$)|((?<=\\\\S)(?=\\\\s*$)))","name":"meta.type.function.return.tsx","patterns":[{"include":"#type-function-return-type-core"}]}]},"type-function-return-type-core":{"patterns":[{"include":"#comment"},{"begin":"(?<==>)(?=\\\\s*\\\\{)","end":"(?<=\\\\})","patterns":[{"include":"#type-object"}]},{"include":"#type-predicate-operator"},{"include":"#type"}]},"type-infer":{"patterns":[{"captures":{"1":{"name":"keyword.operator.expression.infer.tsx"},"2":{"name":"entity.name.type.tsx"},"3":{"name":"keyword.operator.expression.extends.tsx"}},"match":"(?)","endCaptures":{"1":{"name":"meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx"}},"patterns":[{"include":"#type-arguments-body"}]},{"begin":"([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(<)","beginCaptures":{"1":{"name":"entity.name.type.tsx"},"2":{"name":"meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx"}},"contentName":"meta.type.parameters.tsx","end":"(>)","endCaptures":{"1":{"name":"meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx"}},"patterns":[{"include":"#type-arguments-body"}]},{"captures":{"1":{"name":"entity.name.type.module.tsx"},"2":{"name":"punctuation.accessor.tsx"},"3":{"name":"punctuation.accessor.optional.tsx"}},"match":"([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(?:(\\\\.)|(\\\\?\\\\.(?!\\\\s*[[:digit:]])))"},{"match":"[_$[:alpha:]][_$[:alnum:]]*","name":"entity.name.type.tsx"}]},"type-object":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.tsx"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.block.tsx"}},"name":"meta.object.type.tsx","patterns":[{"include":"#comment"},{"include":"#method-declaration"},{"include":"#indexer-declaration"},{"include":"#indexer-mapped-type-declaration"},{"include":"#field-declaration"},{"include":"#type-annotation"},{"begin":"\\\\.\\\\.\\\\.","beginCaptures":{"0":{"name":"keyword.operator.spread.tsx"}},"end":"(?=\\\\}|;|,|$)|(?<=\\\\})","patterns":[{"include":"#type"}]},{"include":"#punctuation-comma"},{"include":"#punctuation-semicolon"},{"include":"#type"}]},"type-operators":{"patterns":[{"include":"#typeof-operator"},{"include":"#type-infer"},{"begin":"([&|])(?=\\\\s*\\\\{)","beginCaptures":{"0":{"name":"keyword.operator.type.tsx"}},"end":"(?<=\\\\})","patterns":[{"include":"#type-object"}]},{"begin":"[&|]","beginCaptures":{"0":{"name":"keyword.operator.type.tsx"}},"end":"(?=\\\\S)"},{"match":"(?)","endCaptures":{"1":{"name":"punctuation.definition.typeparameters.end.tsx"}},"name":"meta.type.parameters.tsx","patterns":[{"include":"#comment"},{"match":"(?)","name":"keyword.operator.assignment.tsx"}]},"type-paren-or-function-parameters":{"begin":"\\\\(","beginCaptures":{"0":{"name":"meta.brace.round.tsx"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.tsx"}},"name":"meta.type.paren.cover.tsx","patterns":[{"captures":{"1":{"name":"storage.modifier.tsx"},"2":{"name":"keyword.operator.rest.tsx"},"3":{"name":"entity.name.function.tsx variable.language.this.tsx"},"4":{"name":"entity.name.function.tsx"},"5":{"name":"keyword.operator.optional.tsx"}},"match":"(?:(?)))))))|(:\\\\s*(?\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))))"},{"captures":{"1":{"name":"storage.modifier.tsx"},"2":{"name":"keyword.operator.rest.tsx"},"3":{"name":"variable.parameter.tsx variable.language.this.tsx"},"4":{"name":"variable.parameter.tsx"},"5":{"name":"keyword.operator.optional.tsx"}},"match":"(?:(?:&|{\\\\?]|(extends\\\\s+)|$|;|^\\\\s*$|(?:^\\\\s*(?:abstract|async|(?:\\\\bawait\\\\s+(?:\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[_$[:alpha:]])\\\\b)\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[_$[:alpha:]])\\\\b)|var|while)\\\\b))","patterns":[{"include":"#type-arguments"},{"include":"#expression"}]},"undefined-literal":{"match":"(?)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>)))))|(:\\\\s*((<)|([(]\\\\s*(([)])|(\\\\.\\\\.\\\\.)|([_$[:alnum:]]+\\\\s*(([:,?=])|([)]\\\\s*=>)))))))|(:\\\\s*(?\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))))))|(:\\\\s*(=>|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\s*(((async\\\\s+)?((function\\\\s*[(<*])|(function\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\s*=>)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>))))))","beginCaptures":{"1":{"name":"meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx"}},"end":"(?=$|^|[;,=}]|((?)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>)))))|(:\\\\s*((<)|([(]\\\\s*(([)])|(\\\\.\\\\.\\\\.)|([_$[:alnum:]]+\\\\s*(([:,?=])|([)]\\\\s*=>)))))))|(:\\\\s*(?\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))))))|(:\\\\s*(=>|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\s*(((async\\\\s+)?((function\\\\s*[(<*])|(function\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\s*=>)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>))))))","beginCaptures":{"1":{"name":"meta.definition.variable.tsx entity.name.function.tsx"},"2":{"name":"keyword.operator.definiteassignment.tsx"}},"end":"(?=$|^|[;,=}]|((?\\\\s*$)","beginCaptures":{"1":{"name":"keyword.operator.assignment.tsx"}},"end":"(?=$|^|[,);}\\\\]]|((?"}],keywords:["add","as","asc","ask","base","by","clear","construct","copy","create","data","delete","desc","describe","distinct","drop","false","filter","from","graph","group","having","in","insert","limit","load","minus","move","named","not","offset","optional","order","prefix","reduced","select","service","silent","to","true","undef","union","using","values","where","with"],builtinFunctions:["a","abs","avg","bind","bnode","bound","ceil","coalesce","concat","contains","count","datatype","day","encode_for_uri","exists","floor","group_concat","hours","if","iri","isblank","isiri","isliteral","isnumeric","isuri","lang","langmatches","lcase","max","md5","min","minutes","month","now","rand","regex","replace","round","sameterm","sample","seconds","sha1","sha256","sha384","sha512","str","strafter","strbefore","strdt","strends","strlang","strlen","strstarts","struuid","substr","sum","timezone","tz","ucase","uri","uuid","year"],ignoreCase:!0,tokenizer:{root:[[/<[^\s\u00a0>]*>?/,"tag"],{include:"@strings"},[/#.*/,"comment"],[/[{}()\[\]]/,"@brackets"],[/[;,.]/,"delimiter"],[/[_\w\d]+:(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])*/,"tag"],[/:(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])+/,"tag"],[/[$?]?[_\w\d]+/,{cases:{"@keywords":{token:"keyword"},"@builtinFunctions":{token:"predefined.sql"},"@default":"identifier"}}],[/\^\^/,"operator.sql"],[/\^[*+\-<>=&|^\/!?]*/,"operator.sql"],[/[*+\-<>=&|\/!?]/,"operator.sql"],[/@[a-z\d\-]*/,"metatag.html"],[/\s+/,"white"]],strings:[[/'([^'\\]|\\.)*$/,"string.invalid"],[/'$/,"string.sql","@pop"],[/'/,"string.sql","@stringBody"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"$/,"string.sql","@pop"],[/"/,"string.sql","@dblStringBody"]],stringBody:[[/[^\\']+/,"string.sql"],[/\\./,"string.escape"],[/'/,"string.sql","@pop"]],dblStringBody:[[/[^\\"]+/,"string.sql"],[/\\./,"string.escape"],[/"/,"string.sql","@pop"]]}};export{e as conf,s as language}; ================================================ FILE: jesse/static/_nuxt/B7mTdjB0.js ================================================ const e=Object.freeze(JSON.parse('{"colors":{"actionBar.toggledBackground":"#dddddd","activityBarBadge.background":"#007ACC","checkbox.border":"#919191","diffEditor.unchangedRegionBackground":"#f8f8f8","editor.background":"#FFFFFF","editor.foreground":"#000000","editor.inactiveSelectionBackground":"#E5EBF1","editor.selectionHighlightBackground":"#ADD6FF80","editorIndentGuide.activeBackground1":"#939393","editorIndentGuide.background1":"#D3D3D3","editorSuggestWidget.background":"#F3F3F3","input.placeholderForeground":"#767676","list.activeSelectionIconForeground":"#FFF","list.focusAndSelectionOutline":"#90C2F9","list.hoverBackground":"#E8E8E8","menu.border":"#D4D4D4","notebook.cellBorderColor":"#E8E8E8","notebook.selectedCellBackground":"#c8ddf150","ports.iconRunningProcessForeground":"#369432","searchEditor.textInputBorder":"#CECECE","settings.numberInputBorder":"#CECECE","settings.textInputBorder":"#CECECE","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#61616130","sideBarTitle.foreground":"#6F6F6F","statusBarItem.errorBackground":"#c72e0f","statusBarItem.remoteBackground":"#16825D","statusBarItem.remoteForeground":"#FFF","tab.lastPinnedBorder":"#61616130","tab.selectedBackground":"#ffffffa5","tab.selectedForeground":"#333333b3","terminal.inactiveSelectionBackground":"#E5EBF1","widget.border":"#d4d4d4"},"displayName":"Light Plus","name":"light-plus","semanticHighlighting":true,"semanticTokenColors":{"customLiteral":"#795E26","newOperator":"#AF00DB","numberLiteral":"#098658","stringLiteral":"#a31515"},"tokenColors":[{"scope":["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown","variable.legacy.builtin.python"],"settings":{"foreground":"#000000ff"}},{"scope":"emphasis","settings":{"fontStyle":"italic"}},{"scope":"strong","settings":{"fontStyle":"bold"}},{"scope":"meta.diff.header","settings":{"foreground":"#000080"}},{"scope":"comment","settings":{"foreground":"#008000"}},{"scope":"constant.language","settings":{"foreground":"#0000ff"}},{"scope":["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],"settings":{"foreground":"#098658"}},{"scope":"constant.regexp","settings":{"foreground":"#811f3f"}},{"scope":"entity.name.tag","settings":{"foreground":"#800000"}},{"scope":"entity.name.selector","settings":{"foreground":"#800000"}},{"scope":"entity.other.attribute-name","settings":{"foreground":"#e50000"}},{"scope":["entity.other.attribute-name.class.css","source.css entity.other.attribute-name.class","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.parent.less","source.css entity.other.attribute-name.pseudo-class","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],"settings":{"foreground":"#800000"}},{"scope":"invalid","settings":{"foreground":"#cd3131"}},{"scope":"markup.underline","settings":{"fontStyle":"underline"}},{"scope":"markup.bold","settings":{"fontStyle":"bold","foreground":"#000080"}},{"scope":"markup.heading","settings":{"fontStyle":"bold","foreground":"#800000"}},{"scope":"markup.italic","settings":{"fontStyle":"italic"}},{"scope":"markup.strikethrough","settings":{"fontStyle":"strikethrough"}},{"scope":"markup.inserted","settings":{"foreground":"#098658"}},{"scope":"markup.deleted","settings":{"foreground":"#a31515"}},{"scope":"markup.changed","settings":{"foreground":"#0451a5"}},{"scope":["punctuation.definition.quote.begin.markdown","punctuation.definition.list.begin.markdown"],"settings":{"foreground":"#0451a5"}},{"scope":"markup.inline.raw","settings":{"foreground":"#800000"}},{"scope":"punctuation.definition.tag","settings":{"foreground":"#800000"}},{"scope":["meta.preprocessor","entity.name.function.preprocessor"],"settings":{"foreground":"#0000ff"}},{"scope":"meta.preprocessor.string","settings":{"foreground":"#a31515"}},{"scope":"meta.preprocessor.numeric","settings":{"foreground":"#098658"}},{"scope":"meta.structure.dictionary.key.python","settings":{"foreground":"#0451a5"}},{"scope":"storage","settings":{"foreground":"#0000ff"}},{"scope":"storage.type","settings":{"foreground":"#0000ff"}},{"scope":["storage.modifier","keyword.operator.noexcept"],"settings":{"foreground":"#0000ff"}},{"scope":["string","meta.embedded.assembly"],"settings":{"foreground":"#a31515"}},{"scope":["string.comment.buffered.block.pug","string.quoted.pug","string.interpolated.pug","string.unquoted.plain.in.yaml","string.unquoted.plain.out.yaml","string.unquoted.block.yaml","string.quoted.single.yaml","string.quoted.double.xml","string.quoted.single.xml","string.unquoted.cdata.xml","string.quoted.double.html","string.quoted.single.html","string.unquoted.html","string.quoted.single.handlebars","string.quoted.double.handlebars"],"settings":{"foreground":"#0000ff"}},{"scope":"string.regexp","settings":{"foreground":"#811f3f"}},{"scope":["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],"settings":{"foreground":"#0000ff"}},{"scope":["meta.template.expression"],"settings":{"foreground":"#000000"}},{"scope":["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],"settings":{"foreground":"#0451a5"}},{"scope":["support.type.vendored.property-name","support.type.property-name","source.css variable","source.coffee.embedded"],"settings":{"foreground":"#e50000"}},{"scope":["support.type.property-name.json"],"settings":{"foreground":"#0451a5"}},{"scope":"keyword","settings":{"foreground":"#0000ff"}},{"scope":"keyword.control","settings":{"foreground":"#0000ff"}},{"scope":"keyword.operator","settings":{"foreground":"#000000"}},{"scope":["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],"settings":{"foreground":"#0000ff"}},{"scope":"keyword.other.unit","settings":{"foreground":"#098658"}},{"scope":["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],"settings":{"foreground":"#800000"}},{"scope":"support.function.git-rebase","settings":{"foreground":"#0451a5"}},{"scope":"constant.sha.git-rebase","settings":{"foreground":"#098658"}},{"scope":["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],"settings":{"foreground":"#000000"}},{"scope":"variable.language","settings":{"foreground":"#0000ff"}},{"scope":["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member","entity.name.operator.custom-literal"],"settings":{"foreground":"#795E26"}},{"scope":["support.class","support.type","entity.name.type","entity.name.namespace","entity.other.attribute","entity.name.scope-resolution","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],"settings":{"foreground":"#267f99"}},{"scope":["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class","punctuation.separator.namespace.ruby"],"settings":{"foreground":"#267f99"}},{"scope":["keyword.control","source.cpp keyword.operator.new","source.cpp keyword.operator.delete","keyword.other.using","keyword.other.directive.using","keyword.other.operator","entity.name.operator"],"settings":{"foreground":"#AF00DB"}},{"scope":["variable","meta.definition.variable.name","support.variable","entity.name.variable","constant.other.placeholder"],"settings":{"foreground":"#001080"}},{"scope":["variable.other.constant","variable.other.enummember"],"settings":{"foreground":"#0070C1"}},{"scope":["meta.object-literal.key"],"settings":{"foreground":"#001080"}},{"scope":["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],"settings":{"foreground":"#0451a5"}},{"scope":["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],"settings":{"foreground":"#d16969"}},{"scope":["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],"settings":{"foreground":"#811f3f"}},{"scope":"keyword.operator.quantifier.regexp","settings":{"foreground":"#000000"}},{"scope":["keyword.operator.or.regexp","keyword.control.anchor.regexp"],"settings":{"foreground":"#EE0000"}},{"scope":["constant.character","constant.other.option"],"settings":{"foreground":"#0000ff"}},{"scope":"constant.character.escape","settings":{"foreground":"#EE0000"}},{"scope":"entity.name.label","settings":{"foreground":"#000000"}}],"type":"light"}'));export{e as default}; ================================================ FILE: jesse/static/_nuxt/B8ssZoUh.js ================================================ /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var E={comments:{lineComment:"--",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},T={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ACCESSIBLE","ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","BIGINT","BINARY","BLOB","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHAR","CHARACTER","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CUBE","CUME_DIST","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DEC","DECIMAL","DECLARE","DEFAULT","DELAYED","DELETE","DENSE_RANK","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DOUBLE","DROP","DUAL","EACH","ELSE","ELSEIF","EMPTY","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FIRST_VALUE","FLOAT","FLOAT4","FLOAT8","FOR","FORCE","FOREIGN","FROM","FULLTEXT","FUNCTION","GENERATED","GET","GRANT","GROUP","GROUPING","GROUPS","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","INTERVAL","INTO","IO_AFTER_GTIDS","IO_BEFORE_GTIDS","IS","ITERATE","JOIN","JSON_TABLE","KEY","KEYS","KILL","LAG","LAST_VALUE","LATERAL","LEAD","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LONG","LONGBLOB","LONGTEXT","LOOP","LOW_PRIORITY","MASTER_BIND","MASTER_SSL_VERIFY_SERVER_CERT","MATCH","MAXVALUE","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NTH_VALUE","NTILE","NULL","NUMERIC","OF","ON","OPTIMIZE","OPTIMIZER_COSTS","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PARTITION","PERCENT_RANK","PRECISION","PRIMARY","PROCEDURE","PURGE","RANGE","RANK","READ","READS","READ_WRITE","REAL","RECURSIVE","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESIGNAL","RESTRICT","RETURN","REVOKE","RIGHT","RLIKE","ROW","ROWS","ROW_NUMBER","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SMALLINT","SPATIAL","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STORED","STRAIGHT_JOIN","SYSTEM","TABLE","TERMINATED","THEN","TINYBLOB","TINYINT","TINYTEXT","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","VARBINARY","VARCHAR","VARCHARACTER","VARYING","VIRTUAL","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],operators:["AND","BETWEEN","IN","LIKE","NOT","OR","IS","NULL","INTERSECT","UNION","INNER","JOIN","LEFT","OUTER","RIGHT"],builtinFunctions:["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","Area","AsBinary","AsWKB","ASCII","ASIN","AsText","AsWKT","ASYMMETRIC_DECRYPT","ASYMMETRIC_DERIVE","ASYMMETRIC_ENCRYPT","ASYMMETRIC_SIGN","ASYMMETRIC_VERIFY","ATAN","ATAN2","ATAN","AVG","BENCHMARK","BIN","BIT_AND","BIT_COUNT","BIT_LENGTH","BIT_OR","BIT_XOR","Buffer","CAST","CEIL","CEILING","Centroid","CHAR","CHAR_LENGTH","CHARACTER_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COMPRESS","CONCAT","CONCAT_WS","CONNECTION_ID","Contains","CONV","CONVERT","CONVERT_TZ","ConvexHull","COS","COT","COUNT","CRC32","CREATE_ASYMMETRIC_PRIV_KEY","CREATE_ASYMMETRIC_PUB_KEY","CREATE_DH_PARAMETERS","CREATE_DIGEST","Crosses","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECODE","DEFAULT","DEGREES","DES_DECRYPT","DES_ENCRYPT","DENSE_RANK","Dimension","Disjoint","Distance","ELT","ENCODE","ENCRYPT","EndPoint","Envelope","Equals","EXP","EXPORT_SET","ExteriorRing","EXTRACT","ExtractValue","FIELD","FIND_IN_SET","FIRST_VALUE","FLOOR","FORMAT","FORMAT_BYTES","FORMAT_PICO_TIME","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GEN_RANGE","GEN_RND_EMAIL","GEN_RND_PAN","GEN_RND_SSN","GEN_RND_US_PHONE","GeomCollection","GeomCollFromText","GeometryCollectionFromText","GeomCollFromWKB","GeometryCollectionFromWKB","GeometryCollection","GeometryN","GeometryType","GeomFromText","GeometryFromText","GeomFromWKB","GeometryFromWKB","GET_FORMAT","GET_LOCK","GLength","GREATEST","GROUP_CONCAT","GROUPING","GTID_SUBSET","GTID_SUBTRACT","HEX","HOUR","ICU_VERSION","IF","IFNULL","INET_ATON","INET_NTOA","INET6_ATON","INET6_NTOA","INSERT","INSTR","InteriorRingN","Intersects","INTERVAL","IS_FREE_LOCK","IS_IPV4","IS_IPV4_COMPAT","IS_IPV4_MAPPED","IS_IPV6","IS_USED_LOCK","IS_UUID","IsClosed","IsEmpty","ISNULL","IsSimple","JSON_APPEND","JSON_ARRAY","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_ARRAYAGG","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_OBJECT","JSON_OBJECTAGG","JSON_OVERLAPS","JSON_PRETTY","JSON_QUOTE","JSON_REMOVE","JSON_REPLACE","JSON_SCHEMA_VALID","JSON_SCHEMA_VALIDATION_REPORT","JSON_SEARCH","JSON_SET","JSON_STORAGE_FREE","JSON_STORAGE_SIZE","JSON_TABLE","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","LAG","LAST_DAY","LAST_INSERT_ID","LAST_VALUE","LCASE","LEAD","LEAST","LEFT","LENGTH","LineFromText","LineStringFromText","LineFromWKB","LineStringFromWKB","LineString","LN","LOAD_FILE","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LTRIM","MAKE_SET","MAKEDATE","MAKETIME","MASK_INNER","MASK_OUTER","MASK_PAN","MASK_PAN_RELAXED","MASK_SSN","MASTER_POS_WAIT","MAX","MBRContains","MBRCoveredBy","MBRCovers","MBRDisjoint","MBREqual","MBREquals","MBRIntersects","MBROverlaps","MBRTouches","MBRWithin","MD5","MEMBER OF","MICROSECOND","MID","MIN","MINUTE","MLineFromText","MultiLineStringFromText","MLineFromWKB","MultiLineStringFromWKB","MOD","MONTH","MONTHNAME","MPointFromText","MultiPointFromText","MPointFromWKB","MultiPointFromWKB","MPolyFromText","MultiPolygonFromText","MPolyFromWKB","MultiPolygonFromWKB","MultiLineString","MultiPoint","MultiPolygon","NAME_CONST","NOT IN","NOW","NTH_VALUE","NTILE","NULLIF","NumGeometries","NumInteriorRings","NumPoints","OCT","OCTET_LENGTH","OLD_PASSWORD","ORD","Overlaps","PASSWORD","PERCENT_RANK","PERIOD_ADD","PERIOD_DIFF","PI","Point","PointFromText","PointFromWKB","PointN","PolyFromText","PolygonFromText","PolyFromWKB","PolygonFromWKB","Polygon","POSITION","POW","POWER","PS_CURRENT_THREAD_ID","PS_THREAD_ID","PROCEDURE ANALYSE","QUARTER","QUOTE","RADIANS","RAND","RANDOM_BYTES","RANK","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_REPLACE","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPEAT","REPLACE","REVERSE","RIGHT","ROLES_GRAPHML","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCHEMA","SEC_TO_TIME","SECOND","SESSION_USER","SHA1","SHA","SHA2","SIGN","SIN","SLEEP","SOUNDEX","SOURCE_POS_WAIT","SPACE","SQRT","SRID","ST_Area","ST_AsBinary","ST_AsWKB","ST_AsGeoJSON","ST_AsText","ST_AsWKT","ST_Buffer","ST_Buffer_Strategy","ST_Centroid","ST_Collect","ST_Contains","ST_ConvexHull","ST_Crosses","ST_Difference","ST_Dimension","ST_Disjoint","ST_Distance","ST_Distance_Sphere","ST_EndPoint","ST_Envelope","ST_Equals","ST_ExteriorRing","ST_FrechetDistance","ST_GeoHash","ST_GeomCollFromText","ST_GeometryCollectionFromText","ST_GeomCollFromTxt","ST_GeomCollFromWKB","ST_GeometryCollectionFromWKB","ST_GeometryN","ST_GeometryType","ST_GeomFromGeoJSON","ST_GeomFromText","ST_GeometryFromText","ST_GeomFromWKB","ST_GeometryFromWKB","ST_HausdorffDistance","ST_InteriorRingN","ST_Intersection","ST_Intersects","ST_IsClosed","ST_IsEmpty","ST_IsSimple","ST_IsValid","ST_LatFromGeoHash","ST_Length","ST_LineFromText","ST_LineStringFromText","ST_LineFromWKB","ST_LineStringFromWKB","ST_LineInterpolatePoint","ST_LineInterpolatePoints","ST_LongFromGeoHash","ST_Longitude","ST_MakeEnvelope","ST_MLineFromText","ST_MultiLineStringFromText","ST_MLineFromWKB","ST_MultiLineStringFromWKB","ST_MPointFromText","ST_MultiPointFromText","ST_MPointFromWKB","ST_MultiPointFromWKB","ST_MPolyFromText","ST_MultiPolygonFromText","ST_MPolyFromWKB","ST_MultiPolygonFromWKB","ST_NumGeometries","ST_NumInteriorRing","ST_NumInteriorRings","ST_NumPoints","ST_Overlaps","ST_PointAtDistance","ST_PointFromGeoHash","ST_PointFromText","ST_PointFromWKB","ST_PointN","ST_PolyFromText","ST_PolygonFromText","ST_PolyFromWKB","ST_PolygonFromWKB","ST_Simplify","ST_SRID","ST_StartPoint","ST_SwapXY","ST_SymDifference","ST_Touches","ST_Transform","ST_Union","ST_Validate","ST_Within","ST_X","ST_Y","StartPoint","STATEMENT_DIGEST","STATEMENT_DIGEST_TEXT","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","STRCMP","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUBTIME","SUM","SYSDATE","SYSTEM_USER","TAN","TIME","TIME_FORMAT","TIME_TO_SEC","TIMEDIFF","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TO_BASE64","TO_DAYS","TO_SECONDS","Touches","TRIM","TRUNCATE","UCASE","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UpdateXML","UPPER","USER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","UUID_SHORT","UUID_TO_BIN","VALIDATE_PASSWORD_STRENGTH","VALUES","VAR_POP","VAR_SAMP","VARIANCE","VERSION","WAIT_FOR_EXECUTED_GTID_SET","WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS","WEEK","WEEKDAY","WEEKOFYEAR","WEIGHT_STRING","Within","X","Y","YEAR","YEARWEEK"],builtinVariables:[],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@]+/,{cases:{"@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@keywords":"keyword","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/#+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}],[/"/,{token:"string.double",next:"@stringDouble"}]],string:[[/\\'/,"string"],[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],stringDouble:[[/[^"]+/,"string.double"],[/""/,"string.double"],[/"/,{token:"string.double",next:"@pop"}]],complexIdentifiers:[[/`/,{token:"identifier.quote",next:"@quotedIdentifier"}]],quotedIdentifier:[[/[^`]+/,"identifier"],[/``/,"identifier"],[/`/,{token:"identifier.quote",next:"@pop"}]],scopes:[]}};export{E as conf,T as language}; ================================================ FILE: jesse/static/_nuxt/B9wLZaAG.js ================================================ const e=Object.freeze(JSON.parse('{"displayName":"Dart","name":"dart","patterns":[{"match":"^(#!.*)$","name":"meta.preprocessor.script.dart"},{"begin":"^\\\\w*\\\\b(augment\\\\s+library|library|import\\\\s+augment|import|part\\\\s+of|part|export)\\\\b","beginCaptures":{"0":{"name":"keyword.other.import.dart"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.dart"}},"name":"meta.declaration.dart","patterns":[{"include":"#strings"},{"include":"#comments"},{"match":"\\\\b(as|show|hide)\\\\b","name":"keyword.other.import.dart"},{"match":"\\\\b(if)\\\\b","name":"keyword.control.dart"}]},{"include":"#comments"},{"include":"#punctuation"},{"include":"#annotations"},{"include":"#keywords"},{"include":"#constants-and-special-vars"},{"include":"#operators"},{"include":"#strings"}],"repository":{"annotations":{"patterns":[{"match":"@[a-zA-Z]+","name":"storage.type.annotation.dart"}]},"class-identifier":{"patterns":[{"match":"(??]|,\\\\s*|\\\\s+extends\\\\s+)+>)?[!?]?\\\\("}]},"keywords":{"patterns":[{"match":"(?>>?|~|\\\\^|\\\\||&)","name":"keyword.operator.bitwise.dart"},{"match":"((&|\\\\^|\\\\||<<|>>>?)=)","name":"keyword.operator.assignment.bitwise.dart"},{"match":"(=>)","name":"keyword.operator.closure.dart"},{"match":"(==|!=|<=?|>=?)","name":"keyword.operator.comparison.dart"},{"match":"(([+*/%-]|\\\\~)=)","name":"keyword.operator.assignment.arithmetic.dart"},{"match":"(=)","name":"keyword.operator.assignment.dart"},{"match":"(\\\\-\\\\-|\\\\+\\\\+)","name":"keyword.operator.increment-decrement.dart"},{"match":"(\\\\-|\\\\+|\\\\*|\\\\/|\\\\~\\\\/|%)","name":"keyword.operator.arithmetic.dart"},{"match":"(!|&&|\\\\|\\\\|)","name":"keyword.operator.logical.dart"}]},"punctuation":{"patterns":[{"match":",","name":"punctuation.comma.dart"},{"match":";","name":"punctuation.terminator.dart"},{"match":"\\\\.","name":"punctuation.dot.dart"}]},"string-interp":{"patterns":[{"captures":{"1":{"name":"variable.parameter.dart"}},"match":"\\\\$([a-zA-Z0-9_]+)","name":"meta.embedded.expression.dart"},{"begin":"\\\\$\\\\{","end":"\\\\}","name":"meta.embedded.expression.dart","patterns":[{"include":"#expression"}]},{"match":"\\\\\\\\.","name":"constant.character.escape.dart"}]},"strings":{"patterns":[{"begin":"(?)","endCaptures":{"1":{"name":"other.source.dart"}},"patterns":[{"include":"#class-identifier"},{"match":","},{"match":"extends","name":"keyword.declaration.dart"},{"include":"#comments"}]}},"scopeName":"source.dart"}')),t=[e];export{t as default}; ================================================ FILE: jesse/static/_nuxt/BAng5TT0.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"JSX","name":"jsx","patterns":[{"include":"#directives"},{"include":"#statements"},{"include":"#shebang"}],"repository":{"access-modifier":{"match":"(?]|^await|[^\\\\._$[:alnum:]]await|^return|[^\\\\._$[:alnum:]]return|^yield|[^\\\\._$[:alnum:]]yield|^throw|[^\\\\._$[:alnum:]]throw|^in|[^\\\\._$[:alnum:]]in|^of|[^\\\\._$[:alnum:]]of|^typeof|[^\\\\._$[:alnum:]]typeof|&&|\\\\|\\\\||\\\\*)\\\\s*(\\\\{)","beginCaptures":{"1":{"name":"punctuation.definition.block.js.jsx"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.block.js.jsx"}},"name":"meta.objectliteral.js.jsx","patterns":[{"include":"#object-member"}]},"array-binding-pattern":{"begin":"(?:(\\\\.\\\\.\\\\.)\\\\s*)?(\\\\[)","beginCaptures":{"1":{"name":"keyword.operator.rest.js.jsx"},"2":{"name":"punctuation.definition.binding-pattern.array.js.jsx"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.array.js.jsx"}},"patterns":[{"include":"#binding-element"},{"include":"#punctuation-comma"}]},"array-binding-pattern-const":{"begin":"(?:(\\\\.\\\\.\\\\.)\\\\s*)?(\\\\[)","beginCaptures":{"1":{"name":"keyword.operator.rest.js.jsx"},"2":{"name":"punctuation.definition.binding-pattern.array.js.jsx"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.array.js.jsx"}},"patterns":[{"include":"#binding-element-const"},{"include":"#punctuation-comma"}]},"array-literal":{"begin":"\\\\s*(\\\\[)","beginCaptures":{"1":{"name":"meta.brace.square.js.jsx"}},"end":"\\\\]","endCaptures":{"0":{"name":"meta.brace.square.js.jsx"}},"name":"meta.array.literal.js.jsx","patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}]},"arrow-function":{"patterns":[{"captures":{"1":{"name":"storage.modifier.async.js.jsx"},"2":{"name":"variable.parameter.js.jsx"}},"match":"(?:(?)","name":"meta.arrow.js.jsx"},{"begin":"(?:(?]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>)))","beginCaptures":{"1":{"name":"storage.modifier.async.js.jsx"}},"end":"(?==>|\\\\{|(^\\\\s*(export|function|class|interface|let|var|(?:\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[_$[:alpha:]])\\\\b)|(?:\\\\bawait\\\\s+(?:\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[_$[:alpha:]])\\\\b)\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\s+))","name":"meta.arrow.js.jsx","patterns":[{"include":"#comment"},{"include":"#type-parameters"},{"include":"#function-parameters"},{"include":"#arrow-return-type"},{"include":"#possibly-arrow-return-type"}]},{"begin":"=>","beginCaptures":{"0":{"name":"storage.type.function.arrow.js.jsx"}},"end":"((?<=\\\\}|\\\\S)(?)|((?!\\\\{)(?=\\\\S)))(?!\\\\/[\\\\/\\\\*])","name":"meta.arrow.js.jsx","patterns":[{"include":"#single-line-comment-consuming-line-ending"},{"include":"#decl-block"},{"include":"#expression"}]}]},"arrow-return-type":{"begin":"(?<=\\\\))\\\\s*(:)","beginCaptures":{"1":{"name":"keyword.operator.type.annotation.js.jsx"}},"end":"(?==>|\\\\{|(^\\\\s*(export|function|class|interface|let|var|(?:\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[_$[:alpha:]])\\\\b)|(?:\\\\bawait\\\\s+(?:\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[_$[:alpha:]])\\\\b)\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\s+))","name":"meta.return.type.arrow.js.jsx","patterns":[{"include":"#arrow-return-type-body"}]},"arrow-return-type-body":{"patterns":[{"begin":"(?<=[:])(?=\\\\s*\\\\{)","end":"(?<=\\\\})","patterns":[{"include":"#type-object"}]},{"include":"#type-predicate-operator"},{"include":"#type"}]},"async-modifier":{"match":"(?\\\\s*$)","beginCaptures":{"1":{"name":"punctuation.definition.comment.js.jsx"}},"end":"(?=$)","name":"comment.line.triple-slash.directive.js.jsx","patterns":[{"begin":"(<)(reference|amd-dependency|amd-module)","beginCaptures":{"1":{"name":"punctuation.definition.tag.directive.js.jsx"},"2":{"name":"entity.name.tag.directive.js.jsx"}},"end":"/>","endCaptures":{"0":{"name":"punctuation.definition.tag.directive.js.jsx"}},"name":"meta.tag.js.jsx","patterns":[{"match":"path|types|no-default-lib|lib|name|resolution-mode","name":"entity.other.attribute-name.directive.js.jsx"},{"match":"=","name":"keyword.operator.assignment.js.jsx"},{"include":"#string"}]}]},"docblock":{"patterns":[{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"constant.language.access-type.jsdoc"}},"match":"((@)(?:access|api))\\\\s+(private|protected|public)\\\\b"},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"entity.name.type.instance.jsdoc"},"4":{"name":"punctuation.definition.bracket.angle.begin.jsdoc"},"5":{"name":"constant.other.email.link.underline.jsdoc"},"6":{"name":"punctuation.definition.bracket.angle.end.jsdoc"}},"match":"((@)author)\\\\s+([^@\\\\s<>*/](?:[^@<>*/]|\\\\*[^/])*)(?:\\\\s*(<)([^>\\\\s]+)(>))?"},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"entity.name.type.instance.jsdoc"},"4":{"name":"keyword.operator.control.jsdoc"},"5":{"name":"entity.name.type.instance.jsdoc"}},"match":"((@)borrows)\\\\s+((?:[^@\\\\s*/]|\\\\*[^/])+)\\\\s+(as)\\\\s+((?:[^@\\\\s*/]|\\\\*[^/])+)"},{"begin":"((@)example)\\\\s+","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=@|\\\\*/)","name":"meta.example.jsdoc","patterns":[{"match":"^\\\\s\\\\*\\\\s+"},{"begin":"\\\\G(<)caption(>)","beginCaptures":{"0":{"name":"entity.name.tag.inline.jsdoc"},"1":{"name":"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{"name":"punctuation.definition.bracket.angle.end.jsdoc"}},"contentName":"constant.other.description.jsdoc","end":"()|(?=\\\\*/)","endCaptures":{"0":{"name":"entity.name.tag.inline.jsdoc"},"1":{"name":"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{"name":"punctuation.definition.bracket.angle.end.jsdoc"}}},{"captures":{"0":{"name":"source.embedded.js.jsx"}},"match":"[^\\\\s@*](?:[^*]|\\\\*[^/])*"}]},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"constant.language.symbol-type.jsdoc"}},"match":"((@)kind)\\\\s+(class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\\\\b"},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.link.underline.jsdoc"},"4":{"name":"entity.name.type.instance.jsdoc"}},"match":"((@)see)\\\\s+(?:((?=https?://)(?:[^\\\\s*]|\\\\*[^/])+)|((?!https?://|(?:\\\\[[^\\\\[\\\\]]*\\\\])?{@(?:link|linkcode|linkplain|tutorial)\\\\b)(?:[^@\\\\s*/]|\\\\*[^/])+))"},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.jsdoc"}},"match":"((@)template)\\\\s+([A-Za-z_$][\\\\w$.\\\\[\\\\]]*(?:\\\\s*,\\\\s*[A-Za-z_$][\\\\w$.\\\\[\\\\]]*)*)"},{"begin":"((@)template)\\\\s+(?={)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=\\\\s|\\\\*/|[^{}\\\\[\\\\]A-Za-z_$])","patterns":[{"include":"#jsdoctype"},{"match":"([A-Za-z_$][\\\\w$.\\\\[\\\\]]*)","name":"variable.other.jsdoc"}]},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.jsdoc"}},"match":"((@)(?:arg|argument|const|constant|member|namespace|param|var))\\\\s+([A-Za-z_$][\\\\w$.\\\\[\\\\]]*)"},{"begin":"((@)typedef)\\\\s+(?={)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=\\\\s|\\\\*/|[^{}\\\\[\\\\]A-Za-z_$])","patterns":[{"include":"#jsdoctype"},{"match":"(?:[^@\\\\s*/]|\\\\*[^/])+","name":"entity.name.type.instance.jsdoc"}]},{"begin":"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\\\s+(?={)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=\\\\s|\\\\*/|[^{}\\\\[\\\\]A-Za-z_$])","patterns":[{"include":"#jsdoctype"},{"match":"([A-Za-z_$][\\\\w$.\\\\[\\\\]]*)","name":"variable.other.jsdoc"},{"captures":{"1":{"name":"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},"2":{"name":"keyword.operator.assignment.jsdoc"},"3":{"name":"source.embedded.js.jsx"},"4":{"name":"punctuation.definition.optional-value.end.bracket.square.jsdoc"},"5":{"name":"invalid.illegal.syntax.jsdoc"}},"match":"(\\\\[)\\\\s*[\\\\w$]+(?:(?:\\\\[\\\\])?\\\\.[\\\\w$]+)*(?:\\\\s*(=)\\\\s*((?>\\"(?:(?:\\\\*(?!/))|(?:\\\\\\\\(?!\\"))|[^*\\\\\\\\])*?\\"|'(?:(?:\\\\*(?!/))|(?:\\\\\\\\(?!'))|[^*\\\\\\\\])*?'|\\\\[(?:(?:\\\\*(?!/))|[^*])*?\\\\]|(?:(?:\\\\*(?!/))|\\\\s(?!\\\\s*\\\\])|\\\\[.*?(?:\\\\]|(?=\\\\*/))|[^*\\\\s\\\\[\\\\]])*)*))?\\\\s*(?:(\\\\])((?:[^*\\\\s]|\\\\*[^\\\\s/])+)?|(?=\\\\*/))","name":"variable.other.jsdoc"}]},{"begin":"((@)(?:define|enum|exception|export|extends|lends|implements|modifies|namespace|private|protected|returns?|satisfies|suppress|this|throws|type|yields?))\\\\s+(?={)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=\\\\s|\\\\*/|[^{}\\\\[\\\\]A-Za-z_$])","patterns":[{"include":"#jsdoctype"}]},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"entity.name.type.instance.jsdoc"}},"match":"((@)(?:alias|augments|callback|constructs|emits|event|fires|exports?|extends|external|function|func|host|lends|listens|interface|memberof!?|method|module|mixes|mixin|name|requires|see|this|typedef|uses))\\\\s+((?:[^{}@\\\\s*]|\\\\*[^/])+)"},{"begin":"((@)(?:default(?:value)?|license|version))\\\\s+(([''\\"]))","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.jsdoc"},"4":{"name":"punctuation.definition.string.begin.jsdoc"}},"contentName":"variable.other.jsdoc","end":"(\\\\3)|(?=$|\\\\*/)","endCaptures":{"0":{"name":"variable.other.jsdoc"},"1":{"name":"punctuation.definition.string.end.jsdoc"}}},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"},"3":{"name":"variable.other.jsdoc"}},"match":"((@)(?:default(?:value)?|license|tutorial|variation|version))\\\\s+([^\\\\s*]+)"},{"captures":{"1":{"name":"punctuation.definition.block.tag.jsdoc"}},"match":"(@)(?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception|exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func|function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc|inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method|mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects|override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce|yields?)\\\\b","name":"storage.type.class.jsdoc"},{"include":"#inline-tags"},{"captures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"match":"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\\\s+)"}]},"enum-declaration":{"begin":"(?)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>)))))|(:\\\\s*((<)|([(]\\\\s*(([)])|(\\\\.\\\\.\\\\.)|([_$[:alnum:]]+\\\\s*(([:,?=])|([)]\\\\s*=>)))))))|(:\\\\s*(?\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))))))|(:\\\\s*(=>|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\s*(((async\\\\s+)?((function\\\\s*[(<*])|(function\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\s*=>)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>))))))"},{"captures":{"1":{"name":"storage.modifier.js.jsx"},"2":{"name":"keyword.operator.rest.js.jsx"},"3":{"name":"variable.parameter.js.jsx variable.language.this.js.jsx"},"4":{"name":"variable.parameter.js.jsx"},"5":{"name":"keyword.operator.optional.js.jsx"}},"match":"(?:(?]|\\\\|\\\\||\\\\&\\\\&|\\\\!\\\\=\\\\=|$|((?>=|>>>=|\\\\|=","name":"keyword.operator.assignment.compound.bitwise.js.jsx"},{"match":"<<|>>>|>>","name":"keyword.operator.bitwise.shift.js.jsx"},{"match":"===|!==|==|!=","name":"keyword.operator.comparison.js.jsx"},{"match":"<=|>=|<>|<|>","name":"keyword.operator.relational.js.jsx"},{"captures":{"1":{"name":"keyword.operator.logical.js.jsx"},"2":{"name":"keyword.operator.assignment.compound.js.jsx"},"3":{"name":"keyword.operator.arithmetic.js.jsx"}},"match":"(?<=[_$[:alnum:]])(\\\\!)\\\\s*(?:(/=)|(?:(/)(?![/*])))"},{"match":"\\\\!|&&|\\\\|\\\\||\\\\?\\\\?","name":"keyword.operator.logical.js.jsx"},{"match":"\\\\&|~|\\\\^|\\\\|","name":"keyword.operator.bitwise.js.jsx"},{"match":"\\\\=","name":"keyword.operator.assignment.js.jsx"},{"match":"--","name":"keyword.operator.decrement.js.jsx"},{"match":"\\\\+\\\\+","name":"keyword.operator.increment.js.jsx"},{"match":"%|\\\\*|/|-|\\\\+","name":"keyword.operator.arithmetic.js.jsx"},{"begin":"(?<=[_$[:alnum:])\\\\]])\\\\s*(?=(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)+(?:(/=)|(?:(/)(?![/*]))))","end":"(?:(/=)|(?:(/)(?!\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/)))","endCaptures":{"1":{"name":"keyword.operator.assignment.compound.js.jsx"},"2":{"name":"keyword.operator.arithmetic.js.jsx"}},"patterns":[{"include":"#comment"}]},{"captures":{"1":{"name":"keyword.operator.assignment.compound.js.jsx"},"2":{"name":"keyword.operator.arithmetic.js.jsx"}},"match":"(?<=[_$[:alnum:])\\\\]])\\\\s*(?:(/=)|(?:(/)(?![/*])))"}]},"expressionPunctuations":{"patterns":[{"include":"#punctuation-comma"},{"include":"#punctuation-accessor"}]},"expressionWithoutIdentifiers":{"patterns":[{"include":"#jsx"},{"include":"#string"},{"include":"#regex"},{"include":"#comment"},{"include":"#function-expression"},{"include":"#class-expression"},{"include":"#arrow-function"},{"include":"#paren-expression-possibly-arrow"},{"include":"#cast"},{"include":"#ternary-expression"},{"include":"#new-expr"},{"include":"#instanceof-expr"},{"include":"#object-literal"},{"include":"#expression-operators"},{"include":"#function-call"},{"include":"#literal"},{"include":"#support-objects"},{"include":"#paren-expression"}]},"field-declaration":{"begin":"(?)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>)))))|(:\\\\s*((<)|([(]\\\\s*(([)])|(\\\\.\\\\.\\\\.)|([_$[:alnum:]]+\\\\s*(([:,?=])|([)]\\\\s*=>)))))))|(:\\\\s*(?\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))))))|(:\\\\s*(=>|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\s*(((async\\\\s+)?((function\\\\s*[(<*])|(function\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\s*=>)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>))))))"},{"match":"\\\\#?[_$[:alpha:]][_$[:alnum:]]*","name":"meta.definition.property.js.jsx variable.object.property.js.jsx"},{"match":"\\\\?","name":"keyword.operator.optional.js.jsx"},{"match":"\\\\!","name":"keyword.operator.definiteassignment.js.jsx"}]},"for-loop":{"begin":"(?\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>)*(?))*(?)*(?\\\\s*)?\\\\())","end":"(?<=\\\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\s*\\\\??\\\\.\\\\s*(\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\??\\\\.\\\\s*\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\)]))\\\\s*(?:(\\\\?\\\\.\\\\s*)|(\\\\!))?((<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>)*(?))*(?)*(?\\\\s*)?\\\\())","patterns":[{"begin":"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\\\s*\\\\??\\\\.\\\\s*(\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\??\\\\.\\\\s*\\\\#?[_$[:alpha:]][_$[:alnum:]]*))","end":"(?=\\\\s*(?:(\\\\?\\\\.\\\\s*)|(\\\\!))?((<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>)*(?))*(?)*(?\\\\s*)?\\\\())","name":"meta.function-call.js.jsx","patterns":[{"include":"#function-call-target"}]},{"include":"#comment"},{"include":"#function-call-optionals"},{"include":"#type-arguments"},{"include":"#paren-expression"}]},{"begin":"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\s*\\\\??\\\\.\\\\s*(\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\??\\\\.\\\\s*\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\)]))(<\\\\s*[\\\\{\\\\[\\\\(]\\\\s*$))","end":"(?<=\\\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\s*\\\\??\\\\.\\\\s*(\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\??\\\\.\\\\s*\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\)]))(<\\\\s*[\\\\{\\\\[\\\\(]\\\\s*$))","patterns":[{"begin":"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\\\s*\\\\??\\\\.\\\\s*(\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\??\\\\.\\\\s*\\\\#?[_$[:alpha:]][_$[:alnum:]]*))","end":"(?=(<\\\\s*[\\\\{\\\\[\\\\(]\\\\s*$))","name":"meta.function-call.js.jsx","patterns":[{"include":"#function-call-target"}]},{"include":"#comment"},{"include":"#function-call-optionals"},{"include":"#type-arguments"}]}]},"function-call-optionals":{"patterns":[{"match":"\\\\?\\\\.","name":"meta.function-call.js.jsx punctuation.accessor.optional.js.jsx"},{"match":"\\\\!","name":"meta.function-call.js.jsx keyword.operator.definiteassignment.js.jsx"}]},"function-call-target":{"patterns":[{"include":"#support-function-call-identifiers"},{"match":"(\\\\#?[_$[:alpha:]][_$[:alnum:]]*)","name":"entity.name.function.js.jsx"}]},"function-declaration":{"begin":"(?)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>)))))"},{"captures":{"1":{"name":"punctuation.accessor.js.jsx"},"2":{"name":"punctuation.accessor.optional.js.jsx"},"3":{"name":"variable.other.constant.property.js.jsx"}},"match":"(?:(\\\\.)|(\\\\?\\\\.(?!\\\\s*[[:digit:]])))\\\\s*(\\\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{"captures":{"1":{"name":"punctuation.accessor.js.jsx"},"2":{"name":"punctuation.accessor.optional.js.jsx"},"3":{"name":"variable.other.property.js.jsx"}},"match":"(?:(\\\\.)|(\\\\?\\\\.(?!\\\\s*[[:digit:]])))\\\\s*(\\\\#?[_$[:alpha:]][_$[:alnum:]]*)"},{"match":"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])","name":"variable.other.constant.js.jsx"},{"match":"[_$[:alpha:]][_$[:alnum:]]*","name":"variable.other.readwrite.js.jsx"}]},"if-statement":{"patterns":[{"begin":"(?]|\\\\|\\\\||\\\\&\\\\&|\\\\!\\\\=\\\\=|$|(===|!==|==|!=)|(([\\\\&\\\\~\\\\^\\\\|]\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s+instanceof(?![_$[:alnum:]])(?:(?=\\\\.\\\\.\\\\.)|(?!\\\\.)))|((?))","end":"(/>)|(?:())","endCaptures":{"1":{"name":"punctuation.definition.tag.end.js.jsx"},"2":{"name":"punctuation.definition.tag.begin.js.jsx"},"3":{"name":"entity.name.tag.namespace.js.jsx"},"4":{"name":"punctuation.separator.namespace.js.jsx"},"5":{"name":"entity.name.tag.js.jsx"},"6":{"name":"support.class.component.js.jsx"},"7":{"name":"punctuation.definition.tag.end.js.jsx"}},"name":"meta.tag.js.jsx","patterns":[{"begin":"(<)\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.js.jsx"},"2":{"name":"entity.name.tag.namespace.js.jsx"},"3":{"name":"punctuation.separator.namespace.js.jsx"},"4":{"name":"entity.name.tag.js.jsx"},"5":{"name":"support.class.component.js.jsx"}},"end":"(?=[/]?>)","patterns":[{"include":"#comment"},{"include":"#type-arguments"},{"include":"#jsx-tag-attributes"}]},{"begin":"(>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.end.js.jsx"}},"contentName":"meta.jsx.children.js.jsx","end":"(?=|/\\\\*|//)"},"jsx-tag-attributes":{"begin":"\\\\s+","end":"(?=[/]?>)","name":"meta.tag.attributes.js.jsx","patterns":[{"include":"#comment"},{"include":"#jsx-tag-attribute-name"},{"include":"#jsx-tag-attribute-assignment"},{"include":"#jsx-string-double-quoted"},{"include":"#jsx-string-single-quoted"},{"include":"#jsx-evaluated-code"},{"include":"#jsx-tag-attributes-illegal"}]},"jsx-tag-attributes-illegal":{"match":"\\\\S+","name":"invalid.illegal.attribute.js.jsx"},"jsx-tag-in-expression":{"begin":"(?:*]|&&|\\\\|\\\\||\\\\?|\\\\*\\\\/|^await|[^\\\\._$[:alnum:]]await|^return|[^\\\\._$[:alnum:]]return|^default|[^\\\\._$[:alnum:]]default|^yield|[^\\\\._$[:alnum:]]yield|^)\\\\s*(?!<\\\\s*[_$[:alpha:]][_$[:alnum:]]*((\\\\s+extends\\\\s+[^=>])|,))(?=(<)\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))","end":"(?!(<)\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))","patterns":[{"include":"#jsx-tag"}]},"jsx-tag-without-attributes":{"begin":"(<)\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.js.jsx"},"2":{"name":"entity.name.tag.namespace.js.jsx"},"3":{"name":"punctuation.separator.namespace.js.jsx"},"4":{"name":"entity.name.tag.js.jsx"},"5":{"name":"support.class.component.js.jsx"},"6":{"name":"punctuation.definition.tag.end.js.jsx"}},"contentName":"meta.jsx.children.js.jsx","end":"()","endCaptures":{"1":{"name":"punctuation.definition.tag.begin.js.jsx"},"2":{"name":"entity.name.tag.namespace.js.jsx"},"3":{"name":"punctuation.separator.namespace.js.jsx"},"4":{"name":"entity.name.tag.js.jsx"},"5":{"name":"support.class.component.js.jsx"},"6":{"name":"punctuation.definition.tag.end.js.jsx"}},"name":"meta.tag.without-attributes.js.jsx","patterns":[{"include":"#jsx-children"}]},"jsx-tag-without-attributes-in-expression":{"begin":"(?:*]|&&|\\\\|\\\\||\\\\?|\\\\*\\\\/|^await|[^\\\\._$[:alnum:]]await|^return|[^\\\\._$[:alnum:]]return|^default|[^\\\\._$[:alnum:]]default|^yield|[^\\\\._$[:alnum:]]yield|^)\\\\s*(?=(<)\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))","end":"(?!(<)\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))","patterns":[{"include":"#jsx-tag-without-attributes"}]},"label":{"patterns":[{"begin":"([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(:)(?=\\\\s*\\\\{)","beginCaptures":{"1":{"name":"entity.name.label.js.jsx"},"2":{"name":"punctuation.separator.label.js.jsx"}},"end":"(?<=\\\\})","patterns":[{"include":"#decl-block"}]},{"captures":{"1":{"name":"entity.name.label.js.jsx"},"2":{"name":"punctuation.separator.label.js.jsx"}},"match":"([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(:)"}]},"literal":{"patterns":[{"include":"#numeric-literal"},{"include":"#boolean-literal"},{"include":"#null-literal"},{"include":"#undefined-literal"},{"include":"#numericConstant-literal"},{"include":"#array-literal"},{"include":"#this-literal"},{"include":"#super-literal"}]},"method-declaration":{"patterns":[{"begin":"(?]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*))?[\\\\(])","beginCaptures":{"1":{"name":"storage.modifier.js.jsx"},"2":{"name":"storage.modifier.js.jsx"},"3":{"name":"storage.modifier.js.jsx"},"4":{"name":"storage.modifier.async.js.jsx"},"5":{"name":"keyword.operator.new.js.jsx"},"6":{"name":"keyword.generator.asterisk.js.jsx"}},"end":"(?=\\\\}|;|,|$)|(?<=\\\\})","name":"meta.method.declaration.js.jsx","patterns":[{"include":"#method-declaration-name"},{"include":"#function-body"}]},{"begin":"(?]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*))?[\\\\(])","beginCaptures":{"1":{"name":"storage.modifier.js.jsx"},"2":{"name":"storage.modifier.js.jsx"},"3":{"name":"storage.modifier.js.jsx"},"4":{"name":"storage.modifier.async.js.jsx"},"5":{"name":"storage.type.property.js.jsx"},"6":{"name":"keyword.generator.asterisk.js.jsx"}},"end":"(?=\\\\}|;|,|$)|(?<=\\\\})","name":"meta.method.declaration.js.jsx","patterns":[{"include":"#method-declaration-name"},{"include":"#function-body"}]}]},"method-declaration-name":{"begin":"(?=((\\\\b(?]|\\\\|\\\\||\\\\&\\\\&|\\\\!\\\\=\\\\=|$|((?]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*))?[\\\\(])","beginCaptures":{"1":{"name":"storage.modifier.async.js.jsx"},"2":{"name":"storage.type.property.js.jsx"},"3":{"name":"keyword.generator.asterisk.js.jsx"}},"end":"(?=\\\\}|;|,)|(?<=\\\\})","name":"meta.method.declaration.js.jsx","patterns":[{"include":"#method-declaration-name"},{"include":"#function-body"},{"begin":"(?]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*))?[\\\\(])","beginCaptures":{"1":{"name":"storage.modifier.async.js.jsx"},"2":{"name":"storage.type.property.js.jsx"},"3":{"name":"keyword.generator.asterisk.js.jsx"}},"end":"(?=\\\\(|\\\\<)","patterns":[{"include":"#method-declaration-name"}]}]},"object-member":{"patterns":[{"include":"#comment"},{"include":"#object-literal-method-declaration"},{"begin":"(?=\\\\[)","end":"(?=:)|((?<=[\\\\]])(?=\\\\s*[\\\\(\\\\<]))","name":"meta.object.member.js.jsx meta.object-literal.key.js.jsx","patterns":[{"include":"#comment"},{"include":"#array-literal"}]},{"begin":"(?=[\\\\'\\\\\\"\\\\\`])","end":"(?=:)|((?<=[\\\\'\\\\\\"\\\\\`])(?=((\\\\s*[\\\\(\\\\<,}])|(\\\\s+(as|satisifies)\\\\s+))))","name":"meta.object.member.js.jsx meta.object-literal.key.js.jsx","patterns":[{"include":"#comment"},{"include":"#string"}]},{"begin":"(?=(\\\\b(?)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>))))))","name":"meta.object.member.js.jsx"},{"captures":{"0":{"name":"meta.object-literal.key.js.jsx"}},"match":"(?:[_$[:alpha:]][_$[:alnum:]]*)\\\\s*(?=(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*:)","name":"meta.object.member.js.jsx"},{"begin":"\\\\.\\\\.\\\\.","beginCaptures":{"0":{"name":"keyword.operator.spread.js.jsx"}},"end":"(?=,|\\\\})","name":"meta.object.member.js.jsx","patterns":[{"include":"#expression"}]},{"captures":{"1":{"name":"variable.other.readwrite.js.jsx"}},"match":"([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(?=,|\\\\}|$|\\\\/\\\\/|\\\\/\\\\*)","name":"meta.object.member.js.jsx"},{"captures":{"1":{"name":"keyword.control.as.js.jsx"},"2":{"name":"storage.modifier.js.jsx"}},"match":"(?]|\\\\|\\\\||\\\\&\\\\&|\\\\!\\\\=\\\\=|$|^|((?]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)\\\\(\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))))","beginCaptures":{"1":{"name":"storage.modifier.async.js.jsx"}},"end":"(?<=\\\\))","patterns":[{"include":"#type-parameters"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"meta.brace.round.js.jsx"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.js.jsx"}},"patterns":[{"include":"#expression-inside-possibly-arrow-parens"}]}]},{"begin":"(?<=:)\\\\s*(async)?\\\\s*(\\\\()(?=\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))))","beginCaptures":{"1":{"name":"storage.modifier.async.js.jsx"},"2":{"name":"meta.brace.round.js.jsx"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.js.jsx"}},"patterns":[{"include":"#expression-inside-possibly-arrow-parens"}]},{"begin":"(?<=:)\\\\s*(async)?\\\\s*(?=\\\\<\\\\s*$)","beginCaptures":{"1":{"name":"storage.modifier.async.js.jsx"}},"end":"(?<=\\\\>)","patterns":[{"include":"#type-parameters"}]},{"begin":"(?<=\\\\>)\\\\s*(\\\\()(?=\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))))","beginCaptures":{"1":{"name":"meta.brace.round.js.jsx"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.js.jsx"}},"patterns":[{"include":"#expression-inside-possibly-arrow-parens"}]},{"include":"#possibly-arrow-return-type"},{"include":"#expression"}]},{"include":"#punctuation-comma"},{"include":"#decl-block"}]},"parameter-array-binding-pattern":{"begin":"(?:(\\\\.\\\\.\\\\.)\\\\s*)?(\\\\[)","beginCaptures":{"1":{"name":"keyword.operator.rest.js.jsx"},"2":{"name":"punctuation.definition.binding-pattern.array.js.jsx"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.binding-pattern.array.js.jsx"}},"patterns":[{"include":"#parameter-binding-element"},{"include":"#punctuation-comma"}]},"parameter-binding-element":{"patterns":[{"include":"#comment"},{"include":"#string"},{"include":"#numeric-literal"},{"include":"#regex"},{"include":"#parameter-object-binding-pattern"},{"include":"#parameter-array-binding-pattern"},{"include":"#destructuring-parameter-rest"},{"include":"#variable-initializer"}]},"parameter-name":{"patterns":[{"captures":{"1":{"name":"storage.modifier.js.jsx"}},"match":"(?)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>)))))|(:\\\\s*((<)|([(]\\\\s*(([)])|(\\\\.\\\\.\\\\.)|([_$[:alnum:]]+\\\\s*(([:,?=])|([)]\\\\s*=>)))))))|(:\\\\s*(?\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))))))|(:\\\\s*(=>|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\s*(((async\\\\s+)?((function\\\\s*[(<*])|(function\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\s*=>)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>))))))"},{"captures":{"1":{"name":"storage.modifier.js.jsx"},"2":{"name":"keyword.operator.rest.js.jsx"},"3":{"name":"variable.parameter.js.jsx variable.language.this.js.jsx"},"4":{"name":"variable.parameter.js.jsx"},"5":{"name":"keyword.operator.optional.js.jsx"}},"match":"(?:(?])","name":"meta.type.annotation.js.jsx","patterns":[{"include":"#type"}]}]},"paren-expression":{"begin":"\\\\(","beginCaptures":{"0":{"name":"meta.brace.round.js.jsx"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.js.jsx"}},"patterns":[{"include":"#expression"}]},"paren-expression-possibly-arrow":{"patterns":[{"begin":"(?<=[(=,])\\\\s*(async)?(?=\\\\s*((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*))?\\\\(\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))))","beginCaptures":{"1":{"name":"storage.modifier.async.js.jsx"}},"end":"(?<=\\\\))","patterns":[{"include":"#paren-expression-possibly-arrow-with-typeparameters"}]},{"begin":"(?<=[(=,]|=>|^return|[^\\\\._$[:alnum:]]return)\\\\s*(async)?(?=\\\\s*((((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*))?\\\\()|(<)|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)))\\\\s*$)","beginCaptures":{"1":{"name":"storage.modifier.async.js.jsx"}},"end":"(?<=\\\\))","patterns":[{"include":"#paren-expression-possibly-arrow-with-typeparameters"}]},{"include":"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{"patterns":[{"include":"#type-parameters"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"meta.brace.round.js.jsx"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.js.jsx"}},"patterns":[{"include":"#expression-inside-possibly-arrow-parens"}]}]},"possibly-arrow-return-type":{"begin":"(?<=\\\\)|^)\\\\s*(:)(?=\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*=>)","beginCaptures":{"1":{"name":"meta.arrow.js.jsx meta.return.type.arrow.js.jsx keyword.operator.type.annotation.js.jsx"}},"contentName":"meta.arrow.js.jsx meta.return.type.arrow.js.jsx","end":"(?==>|\\\\{|(^\\\\s*(export|function|class|interface|let|var|(?:\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[_$[:alpha:]])\\\\b)|(?:\\\\bawait\\\\s+(?:\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[_$[:alpha:]])\\\\b)\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\s+))","patterns":[{"include":"#arrow-return-type-body"}]},"property-accessor":{"match":"(?|&&|\\\\|\\\\||\\\\*\\\\/)\\\\s*(\\\\/)(?![\\\\/*])(?=(?:[^\\\\/\\\\\\\\\\\\[\\\\()]|\\\\\\\\.|\\\\[([^\\\\]\\\\\\\\]|\\\\\\\\.)+\\\\]|\\\\(([^\\\\)\\\\\\\\]|\\\\\\\\.)+\\\\))+\\\\/([dgimsuvy]+|(?![\\\\/\\\\*])|(?=\\\\/\\\\*))(?!\\\\s*[a-zA-Z0-9_$]))","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.js.jsx"}},"end":"(/)([dgimsuvy]*)","endCaptures":{"1":{"name":"punctuation.definition.string.end.js.jsx"},"2":{"name":"keyword.other.js.jsx"}},"name":"string.regexp.js.jsx","patterns":[{"include":"#regexp"}]},{"begin":"((?"},{"match":"[?+*]|\\\\{(\\\\d+,\\\\d+|\\\\d+,|,\\\\d+|\\\\d+)\\\\}\\\\??","name":"keyword.operator.quantifier.regexp"},{"match":"\\\\|","name":"keyword.operator.or.regexp"},{"begin":"(\\\\()((\\\\?=)|(\\\\?!)|(\\\\?<=)|(\\\\?))?","beginCaptures":{"0":{"name":"punctuation.definition.group.regexp"},"1":{"name":"punctuation.definition.group.no-capture.regexp"},"2":{"name":"variable.other.regexp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.regexp"}},"name":"meta.group.regexp","patterns":[{"include":"#regexp"}]},{"begin":"(\\\\[)(\\\\^)?","beginCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"},"2":{"name":"keyword.operator.negation.regexp"}},"end":"(\\\\])","endCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"}},"name":"constant.other.character-class.set.regexp","patterns":[{"captures":{"1":{"name":"constant.character.numeric.regexp"},"2":{"name":"constant.character.control.regexp"},"3":{"name":"constant.character.escape.backslash.regexp"},"4":{"name":"constant.character.numeric.regexp"},"5":{"name":"constant.character.control.regexp"},"6":{"name":"constant.character.escape.backslash.regexp"}},"match":"(?:.|(\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\\\\\c[A-Z])|(\\\\\\\\.))\\\\-(?:[^\\\\]\\\\\\\\]|(\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\\\\\c[A-Z])|(\\\\\\\\.))","name":"constant.other.character-class.range.regexp"},{"include":"#regex-character-class"}]},{"include":"#regex-character-class"}]},"return-type":{"patterns":[{"begin":"(?<=\\\\))\\\\s*(:)(?=\\\\s*\\\\S)","beginCaptures":{"1":{"name":"keyword.operator.type.annotation.js.jsx"}},"end":"(?]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\())|(?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\\\b(?!\\\\$)))"},{"captures":{"1":{"name":"support.type.object.module.js.jsx"},"2":{"name":"support.type.object.module.js.jsx"},"3":{"name":"punctuation.accessor.js.jsx"},"4":{"name":"punctuation.accessor.optional.js.jsx"},"5":{"name":"support.type.object.module.js.jsx"}},"match":"(?\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>)*(?))*(?)*(?\\\\s*)?\`)","end":"(?=\`)","patterns":[{"begin":"(?=(([_$[:alpha:]][_$[:alnum:]]*\\\\s*\\\\??\\\\.\\\\s*)*|(\\\\??\\\\.\\\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))","end":"(?=(<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>)*(?))*(?)*(?\\\\s*)?\`)","patterns":[{"include":"#support-function-call-identifiers"},{"match":"([_$[:alpha:]][_$[:alnum:]]*)","name":"entity.name.function.tagged-template.js.jsx"}]},{"include":"#type-arguments"}]},{"begin":"([_$[:alpha:]][_$[:alnum:]]*)?\\\\s*(?=(<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))(([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>|\\\\<\\\\s*(((keyof|infer|typeof|readonly)\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))(?=\\\\s*([\\\\<\\\\>\\\\,\\\\.\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^<>\\\\(]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(?<==)\\\\>)*(?))*(?)*(?\\\\s*)\`)","beginCaptures":{"1":{"name":"entity.name.function.tagged-template.js.jsx"}},"end":"(?=\`)","patterns":[{"include":"#type-arguments"}]}]},"template-substitution-element":{"begin":"\\\\$\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin.js.jsx"}},"contentName":"meta.embedded.line.js.jsx","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.template-expression.end.js.jsx"}},"name":"meta.template.expression.js.jsx","patterns":[{"include":"#expression"}]},"template-type":{"patterns":[{"include":"#template-call"},{"begin":"([_$[:alpha:]][_$[:alnum:]]*)?(\`)","beginCaptures":{"1":{"name":"entity.name.function.tagged-template.js.jsx"},"2":{"name":"string.template.js.jsx punctuation.definition.string.template.begin.js.jsx"}},"contentName":"string.template.js.jsx","end":"\`","endCaptures":{"0":{"name":"string.template.js.jsx punctuation.definition.string.template.end.js.jsx"}},"patterns":[{"include":"#template-type-substitution-element"},{"include":"#string-character-escape"}]}]},"template-type-substitution-element":{"begin":"\\\\$\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin.js.jsx"}},"contentName":"meta.embedded.line.js.jsx","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.template-expression.end.js.jsx"}},"name":"meta.template.expression.js.jsx","patterns":[{"include":"#type"}]},"ternary-expression":{"begin":"(?!\\\\?\\\\.\\\\s*[^[:digit:]])(\\\\?)(?!\\\\?)","beginCaptures":{"1":{"name":"keyword.operator.ternary.js.jsx"}},"end":"\\\\s*(:)","endCaptures":{"1":{"name":"keyword.operator.ternary.js.jsx"}},"patterns":[{"include":"#expression"}]},"this-literal":{"match":"(?])|((?<=[\\\\}>\\\\]\\\\)]|[_$[:alpha:]])\\\\s*(?=\\\\{)))","name":"meta.type.annotation.js.jsx","patterns":[{"include":"#type"}]},{"begin":"(:)","beginCaptures":{"1":{"name":"keyword.operator.type.annotation.js.jsx"}},"end":"(?])|(?=^\\\\s*$)|((?<=[\\\\}>\\\\]\\\\)]|[_$[:alpha:]])\\\\s*(?=\\\\{)))","name":"meta.type.annotation.js.jsx","patterns":[{"include":"#type"}]}]},"type-arguments":{"begin":"\\\\<","beginCaptures":{"0":{"name":"punctuation.definition.typeparameters.begin.js.jsx"}},"end":"\\\\>","endCaptures":{"0":{"name":"punctuation.definition.typeparameters.end.js.jsx"}},"name":"meta.type.parameters.js.jsx","patterns":[{"include":"#type-arguments-body"}]},"type-arguments-body":{"patterns":[{"captures":{"0":{"name":"keyword.operator.type.js.jsx"}},"match":"(?)","patterns":[{"include":"#comment"},{"include":"#type-parameters"}]},{"begin":"(?))))))","end":"(?<=\\\\))","name":"meta.type.function.js.jsx","patterns":[{"include":"#function-parameters"}]}]},"type-function-return-type":{"patterns":[{"begin":"(=>)(?=\\\\s*\\\\S)","beginCaptures":{"1":{"name":"storage.type.function.arrow.js.jsx"}},"end":"(?)(?:\\\\?]|//|$)","name":"meta.type.function.return.js.jsx","patterns":[{"include":"#type-function-return-type-core"}]},{"begin":"=>","beginCaptures":{"0":{"name":"storage.type.function.arrow.js.jsx"}},"end":"(?)(?]|//|^\\\\s*$)|((?<=\\\\S)(?=\\\\s*$)))","name":"meta.type.function.return.js.jsx","patterns":[{"include":"#type-function-return-type-core"}]}]},"type-function-return-type-core":{"patterns":[{"include":"#comment"},{"begin":"(?<==>)(?=\\\\s*\\\\{)","end":"(?<=\\\\})","patterns":[{"include":"#type-object"}]},{"include":"#type-predicate-operator"},{"include":"#type"}]},"type-infer":{"patterns":[{"captures":{"1":{"name":"keyword.operator.expression.infer.js.jsx"},"2":{"name":"entity.name.type.js.jsx"},"3":{"name":"keyword.operator.expression.extends.js.jsx"}},"match":"(?)","endCaptures":{"1":{"name":"meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx"}},"patterns":[{"include":"#type-arguments-body"}]},{"begin":"([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(<)","beginCaptures":{"1":{"name":"entity.name.type.js.jsx"},"2":{"name":"meta.type.parameters.js.jsx punctuation.definition.typeparameters.begin.js.jsx"}},"contentName":"meta.type.parameters.js.jsx","end":"(>)","endCaptures":{"1":{"name":"meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx"}},"patterns":[{"include":"#type-arguments-body"}]},{"captures":{"1":{"name":"entity.name.type.module.js.jsx"},"2":{"name":"punctuation.accessor.js.jsx"},"3":{"name":"punctuation.accessor.optional.js.jsx"}},"match":"([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(?:(\\\\.)|(\\\\?\\\\.(?!\\\\s*[[:digit:]])))"},{"match":"[_$[:alpha:]][_$[:alnum:]]*","name":"entity.name.type.js.jsx"}]},"type-object":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.js.jsx"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.block.js.jsx"}},"name":"meta.object.type.js.jsx","patterns":[{"include":"#comment"},{"include":"#method-declaration"},{"include":"#indexer-declaration"},{"include":"#indexer-mapped-type-declaration"},{"include":"#field-declaration"},{"include":"#type-annotation"},{"begin":"\\\\.\\\\.\\\\.","beginCaptures":{"0":{"name":"keyword.operator.spread.js.jsx"}},"end":"(?=\\\\}|;|,|$)|(?<=\\\\})","patterns":[{"include":"#type"}]},{"include":"#punctuation-comma"},{"include":"#punctuation-semicolon"},{"include":"#type"}]},"type-operators":{"patterns":[{"include":"#typeof-operator"},{"include":"#type-infer"},{"begin":"([&|])(?=\\\\s*\\\\{)","beginCaptures":{"0":{"name":"keyword.operator.type.js.jsx"}},"end":"(?<=\\\\})","patterns":[{"include":"#type-object"}]},{"begin":"[&|]","beginCaptures":{"0":{"name":"keyword.operator.type.js.jsx"}},"end":"(?=\\\\S)"},{"match":"(?)","endCaptures":{"1":{"name":"punctuation.definition.typeparameters.end.js.jsx"}},"name":"meta.type.parameters.js.jsx","patterns":[{"include":"#comment"},{"match":"(?)","name":"keyword.operator.assignment.js.jsx"}]},"type-paren-or-function-parameters":{"begin":"\\\\(","beginCaptures":{"0":{"name":"meta.brace.round.js.jsx"}},"end":"\\\\)","endCaptures":{"0":{"name":"meta.brace.round.js.jsx"}},"name":"meta.type.paren.cover.js.jsx","patterns":[{"captures":{"1":{"name":"storage.modifier.js.jsx"},"2":{"name":"keyword.operator.rest.js.jsx"},"3":{"name":"entity.name.function.js.jsx variable.language.this.js.jsx"},"4":{"name":"entity.name.function.js.jsx"},"5":{"name":"keyword.operator.optional.js.jsx"}},"match":"(?:(?)))))))|(:\\\\s*(?\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))))"},{"captures":{"1":{"name":"storage.modifier.js.jsx"},"2":{"name":"keyword.operator.rest.js.jsx"},"3":{"name":"variable.parameter.js.jsx variable.language.this.js.jsx"},"4":{"name":"variable.parameter.js.jsx"},"5":{"name":"keyword.operator.optional.js.jsx"}},"match":"(?:(?:&|{\\\\?]|(extends\\\\s+)|$|;|^\\\\s*$|(?:^\\\\s*(?:abstract|async|(?:\\\\bawait\\\\s+(?:\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[_$[:alpha:]])\\\\b)\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\busing(?=\\\\s+(?!in\\\\b|of\\\\b(?!\\\\s*(?:of\\\\b|=)))[_$[:alpha:]])\\\\b)|var|while)\\\\b))","patterns":[{"include":"#type-arguments"},{"include":"#expression"}]},"undefined-literal":{"match":"(?)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>)))))|(:\\\\s*((<)|([(]\\\\s*(([)])|(\\\\.\\\\.\\\\.)|([_$[:alnum:]]+\\\\s*(([:,?=])|([)]\\\\s*=>)))))))|(:\\\\s*(?\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))))))|(:\\\\s*(=>|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\s*(((async\\\\s+)?((function\\\\s*[(<*])|(function\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\s*=>)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>))))))","beginCaptures":{"1":{"name":"meta.definition.variable.js.jsx variable.other.constant.js.jsx entity.name.function.js.jsx"}},"end":"(?=$|^|[;,=}]|((?)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>)))))|(:\\\\s*((<)|([(]\\\\s*(([)])|(\\\\.\\\\.\\\\.)|([_$[:alnum:]]+\\\\s*(([:,?=])|([)]\\\\s*=>)))))))|(:\\\\s*(?\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))))))|(:\\\\s*(=>|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\s*(((async\\\\s+)?((function\\\\s*[(<*])|(function\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\s*=>)))|((async\\\\s*)?(((<\\\\s*$)|([\\\\(]\\\\s*((([\\\\{\\\\[]\\\\s*)?$)|((\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})\\\\s*((:\\\\s*\\\\{?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*)))|((\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])\\\\s*((:\\\\s*\\\\[?$)|((\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+\\\\s*)?=\\\\s*))))))|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?[(]\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([)]\\\\s*:)|((\\\\.\\\\.\\\\.\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\s*:)))|([<]\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\s+extends\\\\s*[^=>])|((<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<]|\\\\<\\\\s*(((const\\\\s+)?[_$[:alpha:]])|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\]))([^=<>]|=[^<])*\\\\>)*\\\\>)*>\\\\s*)?\\\\(\\\\s*(\\\\/\\\\*([^\\\\*]|(\\\\*[^\\\\/]))*\\\\*\\\\/\\\\s*)*(([_$[:alpha:]]|(\\\\{([^\\\\{\\\\}]|(\\\\{([^\\\\{\\\\}]|\\\\{[^\\\\{\\\\}]*\\\\})*\\\\}))*\\\\})|(\\\\[([^\\\\[\\\\]]|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]*\\\\])*\\\\]))*\\\\])|(\\\\.\\\\.\\\\.\\\\s*[_$[:alpha:]]))([^()\\\\'\\\\\\"\\\\\`]|(\\\\(([^\\\\(\\\\)]|(\\\\(([^\\\\(\\\\)]|\\\\([^\\\\(\\\\)]*\\\\))*\\\\)))*\\\\))|(\\\\'([^\\\\'\\\\\\\\]|\\\\\\\\.)*\\\\')|(\\\\\\"([^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\")|(\\\\\`([^\\\\\`\\\\\\\\]|\\\\\\\\.)*\\\\\`))*)?\\\\)(\\\\s*:\\\\s*([^<>\\\\(\\\\)\\\\{\\\\}]|\\\\<([^<>]|\\\\<([^<>]|\\\\<[^<>]+\\\\>)+\\\\>)+\\\\>|\\\\([^\\\\(\\\\)]+\\\\)|\\\\{[^\\\\{\\\\}]+\\\\})+)?\\\\s*=>))))))","beginCaptures":{"1":{"name":"meta.definition.variable.js.jsx entity.name.function.js.jsx"},"2":{"name":"keyword.operator.definiteassignment.js.jsx"}},"end":"(?=$|^|[;,=}]|((?\\\\s*$)","beginCaptures":{"1":{"name":"keyword.operator.assignment.js.jsx"}},"end":"(?=$|^|[,);}\\\\]]|((?<\\\\s]*)(=[\\"]([^\\"]*)([\\"])|[']([^']*)(['])|=[^\\\\s'\\"}]*)?\\\\s*)"}]},"attribute-interior":{"patterns":[{"begin":"=","beginCaptures":{"0":{"name":"punctuation.separator.key-value.html"}},"end":"(?<=[^\\\\s=])(?!\\\\s*=)|(?=/?>)","patterns":[{"match":"([^\\\\s\\"'=<>\`/]|/(?!>))+","name":"string.unquoted.html"},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}},"name":"string.quoted.double.html","patterns":[{"include":"#entities"}]},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}},"name":"string.quoted.single.html","patterns":[{"include":"#entities"}]},{"match":"=","name":"invalid.illegal.unexpected-equals-sign.html"}]}]},"attributes":{"captures":{"1":{"name":"punctuation.definition.tag.start.component"},"3":{"patterns":[{"include":"#attribute"}]},"4":{"name":"punctuation.definition.tag.end.component"}},"match":"(({)([^{]*)(}))","name":"attributes.mdc"},"block":{"patterns":[{"include":"#component_block"},{"include":"text.html.markdown#separator"},{"include":"#heading"},{"include":"#blockquote"},{"include":"#lists"},{"include":"text.html.markdown#fenced_code_block"},{"include":"text.html.markdown#link-def"},{"include":"text.html.markdown#html"},{"include":"#paragraph"}]},"blockquote":{"begin":"(^|\\\\G)[ ]*(>) ?","captures":{"2":{"name":"punctuation.definition.quote.begin.markdown"}},"name":"markup.quote.markdown","patterns":[{"include":"#block"}],"while":"(^|\\\\G)\\\\s*(>) ?"},"component_block":{"begin":"(^|\\\\G)(\\\\s*)(:{2,})(?i:(\\\\w[\\\\w\\\\d-]+)(\\\\s*|\\\\s*({[^{]*}))$)","beginCaptures":{"3":{"name":"punctuation.definition.tag.start.mdc"},"4":{"name":"entity.name.tag.mdc"},"5":{"patterns":[{"include":"#attributes"}]}},"end":"(^|\\\\G)(\\\\2)(\\\\3)\\\\s*$","endCaptures":{"3":{"name":"punctuation.definition.tag.end.mdc"}},"name":"block.component.mdc","patterns":[{"captures":{"2":{"name":"punctuation.definition.tag.end.mdc"}},"match":"(^|\\\\G)\\\\s*([:]{2,})$"},{"begin":"(^|\\\\G)(\\\\s*)(-{3})(\\\\s*)$","end":"(^|\\\\G)(\\\\s*(-{3})(\\\\s*)$)","patterns":[{"include":"source.yaml"}]},{"captures":{"2":{"name":"entity.other.attribute-name.html"},"3":{"name":"comment.block.html"}},"match":"^(\\\\s*)(#[\\\\w\\\\-\\\\_]*)\\\\s*()?$"},{"include":"#block"}]},"component_inline":{"captures":{"2":{"name":"punctuation.definition.tag.start.component"},"3":{"name":"entity.name.tag.component"},"5":{"patterns":[{"include":"#attributes"}]},"6":{"patterns":[{"include":"#span"}]},"7":{"patterns":[{"include":"#span"}]},"8":{"patterns":[{"include":"#attributes"}]}},"match":"(^|\\\\G|\\\\s+)(:)(?i:(\\\\w[\\\\w\\\\d-]*))(({[^}]*})(\\\\[[^\\\\]]*\\\\])?|(\\\\[[^\\\\]]*\\\\])({[^}]*})?)?\\\\s","name":"inline.component.mdc"},"entities":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.entity.html"},"912":{"name":"punctuation.definition.entity.html"}},"match":"(&)(?=[a-zA-Z])((a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve))|(B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?))|(c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross))|(d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger)))|(e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr)))|(f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr))|(G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve))|(h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy))|(i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?))|(j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr))|(k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa))|(l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot))|(M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker)))|(n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute))|(o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr)))|(p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?))|(q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr))|(R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr)))|(s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle))|(t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot))|(u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve)))|(v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar))|(w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr))|(X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map))|(y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy))|(z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute)))(;)","name":"constant.character.entity.named.$2.html"},{"captures":{"1":{"name":"punctuation.definition.entity.html"},"3":{"name":"punctuation.definition.entity.html"}},"match":"(&)#[0-9]+(;)","name":"constant.character.entity.numeric.decimal.html"},{"captures":{"1":{"name":"punctuation.definition.entity.html"},"3":{"name":"punctuation.definition.entity.html"}},"match":"(&)#[xX][0-9a-fA-F]+(;)","name":"constant.character.entity.numeric.hexadecimal.html"},{"match":"&(?=[a-zA-Z0-9]+;)","name":"invalid.illegal.ambiguous-ampersand.html"}]},"heading":{"captures":{"1":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.heading.markdown"},"2":{"name":"entity.name.section.markdown","patterns":[{"include":"text.html.markdown#inline"},{"include":"text.html.derivative"}]},"3":{"name":"punctuation.definition.heading.markdown"}},"match":"(#{6})\\\\s+(.*?)(?:\\\\s+(#+))?\\\\s*$","name":"heading.6.markdown"},{"captures":{"1":{"name":"punctuation.definition.heading.markdown"},"2":{"name":"entity.name.section.markdown","patterns":[{"include":"text.html.markdown#inline"},{"include":"text.html.derivative"}]},"3":{"name":"punctuation.definition.heading.markdown"}},"match":"(#{5})\\\\s+(.*?)(?:\\\\s+(#+))?\\\\s*$","name":"heading.5.markdown"},{"captures":{"1":{"name":"punctuation.definition.heading.markdown"},"2":{"name":"entity.name.section.markdown","patterns":[{"include":"text.html.markdown#inline"},{"include":"text.html.derivative"}]},"3":{"name":"punctuation.definition.heading.markdown"}},"match":"(#{4})\\\\s+(.*?)(?:\\\\s+(#+))?\\\\s*$","name":"heading.4.markdown"},{"captures":{"1":{"name":"punctuation.definition.heading.markdown"},"2":{"name":"entity.name.section.markdown","patterns":[{"include":"text.html.markdown#inline"},{"include":"text.html.derivative"}]},"3":{"name":"punctuation.definition.heading.markdown"}},"match":"(#{3})\\\\s+(.*?)(?:\\\\s+(#+))?\\\\s*$","name":"heading.3.markdown"},{"captures":{"1":{"name":"punctuation.definition.heading.markdown"},"2":{"name":"entity.name.section.markdown","patterns":[{"include":"text.html.markdown#inline"},{"include":"text.html.derivative"}]},"3":{"name":"punctuation.definition.heading.markdown"}},"match":"(#{2})\\\\s+(.*?)(?:\\\\s+(#+))?\\\\s*$","name":"heading.2.markdown"},{"captures":{"1":{"name":"punctuation.definition.heading.markdown"},"2":{"name":"entity.name.section.markdown","patterns":[{"include":"text.html.markdown#inline"},{"include":"text.html.derivative"}]},"3":{"name":"punctuation.definition.heading.markdown"}},"match":"(#{1})\\\\s+(.*?)(?:\\\\s+(#+))?\\\\s*$","name":"heading.1.markdown"}]}},"match":"(?:^|\\\\G)[ ]*(#{1,6}\\\\s+(.*?)(\\\\s+#{1,6})?\\\\s*)$","name":"markup.heading.markdown","patterns":[{"include":"text.html.markdown#inline"}]},"heading-setext":{"patterns":[{"match":"^(={3,})(?=[ \\\\t]*$\\\\n?)","name":"markup.heading.setext.1.markdown"},{"match":"^(-{3,})(?=[ \\\\t]*$\\\\n?)","name":"markup.heading.setext.2.markdown"}]},"inline":{"patterns":[{"include":"#component_inline"},{"include":"#span"},{"include":"#attributes"}]},"lists":{"patterns":[{"begin":"(^|\\\\G)([ ]*)([*+-])([ \\\\t])","beginCaptures":{"3":{"name":"punctuation.definition.list.begin.markdown"}},"name":"markup.list.unnumbered.markdown","patterns":[{"include":"#block"},{"include":"text.html.markdown#list_paragraph"}],"while":"((^|\\\\G)([ ]*|\\\\t))|(^[ \\\\t]*$)"},{"begin":"(^|\\\\G)([ ]*)([0-9]+\\\\.)([ \\\\t])","beginCaptures":{"3":{"name":"punctuation.definition.list.begin.markdown"}},"name":"markup.list.numbered.markdown","patterns":[{"include":"#block"},{"include":"text.html.markdown#list_paragraph"}],"while":"((^|\\\\G)([ ]*|\\\\t))|(^[ \\\\t]*$)"}]},"paragraph":{"begin":"(^|\\\\G)[ ]*(?=\\\\S)","name":"meta.paragraph.markdown","patterns":[{"include":"text.html.markdown#inline"},{"include":"text.html.derivative"},{"include":"#heading-setext"}],"while":"(^|\\\\G)((?=\\\\s*[-=]{3,}\\\\s*$)|[ ]{4,}(?=\\\\S))"},"span":{"captures":{"1":{"name":"punctuation.definition.tag.start.component"},"2":{"name":"string.other.link.description.title.markdown"},"3":{"name":"punctuation.definition.tag.end.component"},"4":{"patterns":[{"include":"#attributes"}]}},"match":"(\\\\[)([^]]*)(\\\\])(({)([^{]*)(}))?\\\\s","name":"span.component.mdc"}},"scopeName":"text.markdown.mdc.standalone","embeddedLangs":["markdown","yaml","html-derivative"]}`)),u=[...r,...e,...t,a];export{u as default}; ================================================ FILE: jesse/static/_nuxt/BEBZ7ncR.js ================================================ const t=Object.freeze(JSON.parse('{"colors":{"activityBar.background":"#101010","activityBar.foreground":"#A0A0A0","activityBarBadge.background":"#FFC799","activityBarBadge.foreground":"#000","badge.background":"#FFC799","badge.foreground":"#000","button.background":"#FFC799","button.foreground":"#000","button.hoverBackground":"#FFCFA8","diffEditor.insertedLineBackground":"#99FFE415","diffEditor.insertedTextBackground":"#99FFE415","diffEditor.removedLineBackground":"#FF808015","diffEditor.removedTextBackground":"#FF808015","editor.background":"#101010","editor.foreground":"#FFF","editor.selectionBackground":"#FFFFFF25","editor.selectionHighlightBackground":"#FFFFFF25","editorBracketHighlight.foreground1":"#A0A0A0","editorBracketHighlight.foreground2":"#A0A0A0","editorBracketHighlight.foreground3":"#A0A0A0","editorBracketHighlight.foreground4":"#A0A0A0","editorBracketHighlight.foreground5":"#A0A0A0","editorBracketHighlight.foreground6":"#A0A0A0","editorBracketHighlight.unexpectedBracket.foreground":"#FF8080","editorError.foreground":"#FF8080","editorGroupHeader.tabsBackground":"#101010","editorGutter.addedBackground":"#99FFE4","editorGutter.deletedBackground":"#FF8080","editorGutter.modifiedBackground":"#FFC799","editorHoverWidget.background":"#161616","editorHoverWidget.border":"#282828","editorInlayHint.background":"#1C1C1C","editorInlayHint.foreground":"#A0A0A0","editorLineNumber.foreground":"#505050","editorOverviewRuler.border":"#101010","editorWarning.foreground":"#FFC799","editorWidget.background":"#101010","focusBorder":"#FFC799","icon.foreground":"#A0A0A0","input.background":"#1C1C1C","list.activeSelectionBackground":"#232323","list.activeSelectionForeground":"#FFC799","list.errorForeground":"#FF8080","list.highlightForeground":"#FFC799","list.hoverBackground":"#282828","list.inactiveSelectionBackground":"#232323","scrollbarSlider.background":"#34343480","scrollbarSlider.hoverBackground":"#343434","selection.background":"#666","settings.modifiedItemIndicator":"#FFC799","sideBar.background":"#101010","sideBarSectionHeader.background":"#101010","sideBarSectionHeader.foreground":"#A0A0A0","sideBarTitle.foreground":"#A0A0A0","statusBar.background":"#101010","statusBar.debuggingBackground":"#FF7300","statusBar.debuggingForeground":"#FFF","statusBar.foreground":"#A0A0A0","statusBarItem.remoteBackground":"#FFC799","statusBarItem.remoteForeground":"#000","tab.activeBackground":"#161616","tab.border":"#101010","tab.inactiveBackground":"#101010","textLink.activeForeground":"#FFCFA8","textLink.foreground":"#FFC799","titleBar.activeBackground":"#101010","titleBar.activeForeground":"#7E7E7E","titleBar.inactiveBackground":"#101010","titleBar.inactiveForeground":"#707070"},"displayName":"Vesper","name":"vesper","tokenColors":[{"scope":["comment","punctuation.definition.comment"],"settings":{"foreground":"#8b8b8b94"}},{"scope":["variable","string constant.other.placeholder","entity.name.tag"],"settings":{"foreground":"#FFF"}},{"scope":["constant.other.color"],"settings":{"foreground":"#FFF"}},{"scope":["invalid","invalid.illegal"],"settings":{"foreground":"#FF8080"}},{"scope":["keyword","storage.type","storage.modifier"],"settings":{"foreground":"#A0A0A0"}},{"scope":["keyword.control","constant.other.color","punctuation.definition.tag","punctuation.separator.inheritance.php","punctuation.definition.tag.html","punctuation.definition.tag.begin.html","punctuation.definition.tag.end.html","punctuation.section.embedded","keyword.other.template","keyword.other.substitution"],"settings":{"foreground":"#A0A0A0"}},{"scope":["entity.name.tag","meta.tag.sgml","markup.deleted.git_gutter"],"settings":{"foreground":"#FFC799"}},{"scope":["entity.name.function","variable.function","support.function","keyword.other.special-method"],"settings":{"foreground":"#FFC799"}},{"scope":["meta.block variable.other"],"settings":{"foreground":"#FFF"}},{"scope":["support.other.variable","string.other.link"],"settings":{"foreground":"#FFF"}},{"scope":["constant.numeric","support.constant","constant.character","constant.escape","keyword.other.unit","keyword.other","constant.language.boolean"],"settings":{"foreground":"#FFC799"}},{"scope":["string","constant.other.symbol","constant.other.key","meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js"],"settings":{"foreground":"#99FFE4"}},{"scope":["entity.name","support.type","support.class","support.other.namespace.use.php","meta.use.php","support.other.namespace.php","markup.changed.git_gutter","support.type.sys-types"],"settings":{"foreground":"#FFC799"}},{"scope":["source.css support.type.property-name","source.sass support.type.property-name","source.scss support.type.property-name","source.less support.type.property-name","source.stylus support.type.property-name","source.postcss support.type.property-name","source.postcss support.type.property-name","support.type.vendored.property-name.css","source.css.scss entity.name.tag","variable.parameter.keyframe-list.css","meta.property-name.css","variable.parameter.url.scss","meta.property-value.scss","meta.property-value.css"],"settings":{"foreground":"#FFF"}},{"scope":["entity.name.module.js","variable.import.parameter.js","variable.other.class.js"],"settings":{"foreground":"#FF8080"}},{"scope":["variable.language"],"settings":{"foreground":"#A0A0A0"}},{"scope":["entity.name.method.js"],"settings":{"foreground":"#FFFF"}},{"scope":["meta.class-method.js entity.name.function.js","variable.function.constructor"],"settings":{"foreground":"#FFFF"}},{"scope":["entity.other.attribute-name","meta.property-list.scss","meta.attribute-selector.scss","meta.property-value.css","entity.other.keyframe-offset.css","meta.selector.css","entity.name.tag.reference.scss","entity.name.tag.nesting.css","punctuation.separator.key-value.css"],"settings":{"foreground":"#A0A0A0"}},{"scope":["text.html.basic entity.other.attribute-name.html","text.html.basic entity.other.attribute-name"],"settings":{"foreground":"#FFC799"}},{"scope":["entity.other.attribute-name.class","entity.other.attribute-name.id","meta.attribute-selector.scss","variable.parameter.misc.css"],"settings":{"foreground":"#FFC799"}},{"scope":["source.sass keyword.control","meta.attribute-selector.scss"],"settings":{"foreground":"#99FFE4"}},{"scope":["markup.inserted"],"settings":{"foreground":"#99FFE4"}},{"scope":["markup.deleted"],"settings":{"foreground":"#FF8080"}},{"scope":["markup.changed"],"settings":{"foreground":"#A0A0A0"}},{"scope":["string.regexp"],"settings":{"foreground":"#A0A0A0"}},{"scope":["constant.character.escape"],"settings":{"foreground":"#A0A0A0"}},{"scope":["*url*","*link*","*uri*"],"settings":{"fontStyle":"underline"}},{"scope":["tag.decorator.js entity.name.tag.js","tag.decorator.js punctuation.definition.tag.js"],"settings":{"foreground":"#FFFF"}},{"scope":["source.js constant.other.object.key.js string.unquoted.label.js"],"settings":{"fontStyle":"italic","foreground":"#FF8080"}},{"scope":["source.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#FFC799"}},{"scope":["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#FFC799"}},{"scope":["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#FFC799"}},{"scope":["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#FFC799"}},{"scope":["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#FFC799"}},{"scope":["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#FFC799"}},{"scope":["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#FFC799"}},{"scope":["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#FFC799"}},{"scope":["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#FFC799"}},{"scope":["text.html.markdown","punctuation.definition.list_item.markdown"],"settings":{"foreground":"#FFF"}},{"scope":["text.html.markdown markup.inline.raw.markdown"],"settings":{"foreground":"#A0A0A0"}},{"scope":["text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown"],"settings":{"foreground":"#FFF"}},{"scope":["markdown.heading","markup.heading | markup.heading entity.name","markup.heading.markdown punctuation.definition.heading.markdown","markup.heading","markup.inserted.git_gutter"],"settings":{"foreground":"#FFC799"}},{"scope":["markup.italic"],"settings":{"fontStyle":"italic","foreground":"#FFF"}},{"scope":["markup.bold","markup.bold string"],"settings":{"fontStyle":"bold","foreground":"#FFF"}},{"scope":["markup.bold markup.italic","markup.italic markup.bold","markup.quote markup.bold","markup.bold markup.italic string","markup.italic markup.bold string","markup.quote markup.bold string"],"settings":{"fontStyle":"bold","foreground":"#FFF"}},{"scope":["markup.underline"],"settings":{"fontStyle":"underline","foreground":"#FFC799"}},{"scope":["markup.quote punctuation.definition.blockquote.markdown"],"settings":{"foreground":"#FFF"}},{"scope":["markup.quote"]},{"scope":["string.other.link.title.markdown"],"settings":{"foreground":"#FFFF"}},{"scope":["string.other.link.description.title.markdown"],"settings":{"foreground":"#A0A0A0"}},{"scope":["constant.other.reference.link.markdown"],"settings":{"foreground":"#FFC799"}},{"scope":["markup.raw.block"],"settings":{"foreground":"#A0A0A0"}},{"scope":["markup.raw.block.fenced.markdown"],"settings":{"foreground":"#00000050"}},{"scope":["punctuation.definition.fenced.markdown"],"settings":{"foreground":"#00000050"}},{"scope":["markup.raw.block.fenced.markdown","variable.language.fenced.markdown","punctuation.section.class.end"],"settings":{"foreground":"#FFF"}},{"scope":["variable.language.fenced.markdown"],"settings":{"foreground":"#FFF"}},{"scope":["meta.separator"],"settings":{"fontStyle":"bold","foreground":"#65737E"}},{"scope":["markup.table"],"settings":{"foreground":"#FFF"}}],"type":"dark"}'));export{t as default}; ================================================ FILE: jesse/static/_nuxt/BEhvmC7f.js ================================================ import e from"./DWJ3fJO_.js";import n from"./COyJrUc7.js";import t from"./COK4E0Yg.js";import"./C3t2pwGQ.js";const c=Object.freeze(JSON.parse(`{"displayName":"C++","name":"cpp-macro","patterns":[{"include":"#ever_present_context"},{"include":"#constructor_root"},{"include":"#destructor_root"},{"include":"#function_definition"},{"include":"#operator_overload"},{"include":"#using_namespace"},{"include":"source.cpp#type_alias"},{"include":"source.cpp#using_name"},{"include":"source.cpp#namespace_alias"},{"include":"#namespace_block"},{"include":"#extern_block"},{"include":"#typedef_class"},{"include":"#typedef_struct"},{"include":"#typedef_union"},{"include":"source.cpp#misc_keywords"},{"include":"source.cpp#standard_declares"},{"include":"#class_block"},{"include":"#struct_block"},{"include":"#union_block"},{"include":"#enum_block"},{"include":"source.cpp#template_isolated_definition"},{"include":"#template_definition"},{"include":"source.cpp#template_explicit_instantiation"},{"include":"source.cpp#access_control_keywords"},{"include":"#block"},{"include":"#static_assert"},{"include":"#assembly"},{"include":"#function_pointer"},{"include":"#evaluation_context"}],"repository":{"alignas_attribute":{"begin":"alignas\\\\(","beginCaptures":{"0":{"name":"punctuation.section.attribute.begin.cpp"}},"end":"\\\\)|(?=(?|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))|(?=(?|\\\\?\\\\?>|(?=(?|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)|(?=(?|%|\\"|\\\\.|=|::|\\\\||\\\\-\\\\-|\\\\-\\\\-\\\\-)\\\\b(?:\\\\{[^}]*\\\\})?","name":"storage.type.class.doxygen.cpp"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"name":"markup.italic.doxygen.cpp"}},"match":"((?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:a|em|e))\\\\s+(\\\\S+)"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"name":"markup.bold.doxygen.cpp"}},"match":"((?<=[\\\\s*!\\\\/])[\\\\\\\\@]b)\\\\s+(\\\\S+)"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"name":"markup.inline.raw.string.cpp"}},"match":"((?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:c|p))\\\\s+(\\\\S+)"},{"match":"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\\\b(?:\\\\{[^}]*\\\\})?","name":"storage.type.class.doxygen.cpp"},{"match":"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\\\b(?:\\\\{[^}]*\\\\})?","name":"storage.type.class.doxygen.cpp"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"patterns":[{"match":"in|out","name":"keyword.other.parameter.direction.$0.cpp"}]},"3":{"patterns":[{"match":"(?|%|\\"|\\\\.|=|::|\\\\||\\\\-\\\\-|\\\\-\\\\-\\\\-)\\\\b(?:\\\\{[^}]*\\\\})?","name":"storage.type.class.doxygen.cpp"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"name":"markup.italic.doxygen.cpp"}},"match":"((?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:a|em|e))\\\\s+(\\\\S+)"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"name":"markup.bold.doxygen.cpp"}},"match":"((?<=[\\\\s*!\\\\/])[\\\\\\\\@]b)\\\\s+(\\\\S+)"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"name":"markup.inline.raw.string.cpp"}},"match":"((?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:c|p))\\\\s+(\\\\S+)"},{"match":"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\\\b(?:\\\\{[^}]*\\\\})?","name":"storage.type.class.doxygen.cpp"},{"match":"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\\\b(?:\\\\{[^}]*\\\\})?","name":"storage.type.class.doxygen.cpp"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"patterns":[{"match":"in|out","name":"keyword.other.parameter.direction.$0.cpp"}]},"3":{"patterns":[{"match":"(?|%|\\"|\\\\.|=|::|\\\\||\\\\-\\\\-|\\\\-\\\\-\\\\-)\\\\b(?:\\\\{[^}]*\\\\})?","name":"storage.type.class.doxygen.cpp"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"name":"markup.italic.doxygen.cpp"}},"match":"((?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:a|em|e))\\\\s+(\\\\S+)"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"name":"markup.bold.doxygen.cpp"}},"match":"((?<=[\\\\s*!\\\\/])[\\\\\\\\@]b)\\\\s+(\\\\S+)"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"name":"markup.inline.raw.string.cpp"}},"match":"((?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:c|p))\\\\s+(\\\\S+)"},{"match":"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\\\b(?:\\\\{[^}]*\\\\})?","name":"storage.type.class.doxygen.cpp"},{"match":"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\\\b(?:\\\\{[^}]*\\\\})?","name":"storage.type.class.doxygen.cpp"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"patterns":[{"match":"in|out","name":"keyword.other.parameter.direction.$0.cpp"}]},"3":{"patterns":[{"match":"(?|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))|(?=(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.call.initializer.cpp"},"2":{"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_range"}]},"3":{},"4":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{"name":"comment.block.cpp"},"6":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"7":{"name":"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"}},"contentName":"meta.parameter.initialization","end":"\\\\)|(?=(?|\\\\?\\\\?>|(?=(?|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)|(?=(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)(((?>(?|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))|(?=(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.call.initializer.cpp"},"2":{"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_range"}]},"3":{},"4":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{"name":"comment.block.cpp"},"6":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"7":{"name":"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"}},"contentName":"meta.parameter.initialization","end":"\\\\)|(?=(?|\\\\?\\\\?>|(?=(?|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)|(?=(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\{)","beginCaptures":{"1":{"name":"meta.qualified_type.cpp","patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{"match":"(?|(?=(?|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))|(?=(?|\\\\?\\\\?>|(?=(?|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)|(?=(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)(((?>(?|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))|(?=(?|\\\\?\\\\?>|(?=(?|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)|(?=(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::))?(?:\\\\s+)?((?|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))|(?=(?|\\\\?\\\\?>|(?=(?|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)|(?=(?|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))|(?=(?|\\\\?\\\\?>|(?=(?|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)|(?=(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)\\\\b(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(\\\\()","beginCaptures":{"1":{"patterns":[{"include":"source.cpp#scope_resolution_function_call_inner_generated"}]},"2":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"},"3":{"patterns":[{"include":"#template_call_range"}]},"4":{},"5":{"name":"entity.name.function.call.cpp"},"6":{"patterns":[{"include":"source.cpp#inline_comment"}]},"7":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{"name":"comment.block.cpp"},"9":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"10":{"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_range"}]},"11":{},"12":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"13":{"name":"comment.block.cpp"},"14":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"15":{"name":"punctuation.section.arguments.begin.bracket.round.function.call.cpp"}},"end":"\\\\)|(?=(?|\\\\*\\\\/))\\\\s*+(?:((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)\\\\b(?|(?=(?|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))|(?=(?|(?=(?)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))"},{"include":"$self"}]},{"begin":"(?<=\\\\{|<%|\\\\?\\\\?<)","beginCaptures":{},"end":"\\\\}|%>|\\\\?\\\\?>|(?=(?|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)|(?=(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()(\\\\*)(?:\\\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)?)(?:\\\\s+)?(?:(\\\\[)(\\\\w*)(\\\\])(?:\\\\s+)?)*(\\\\))(?:\\\\s+)?(\\\\()","beginCaptures":{"1":{"name":"meta.qualified_type.cpp","patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{"match":"(?|(?=(?]|\\\\n)(?!\\\\()|(?=(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()(\\\\*)(?:\\\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)?)(?:\\\\s+)?(?:(\\\\[)(\\\\w*)(\\\\])(?:\\\\s+)?)*(\\\\))(?:\\\\s+)?(\\\\()","beginCaptures":{"1":{"name":"meta.qualified_type.cpp","patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{"match":"(?|(?=(?]|\\\\n)(?!\\\\()|(?=(?|(?=(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))"}]},"lambdas":{"begin":"(?:(?<=[^\\\\s]|^)(?])|(?<=\\\\Wreturn|^return))(?:\\\\s+)?(\\\\[(?!\\\\[| *+\\"| *+\\\\d))((?:[^\\\\[\\\\]]|((??)++\\\\]))*+)(\\\\](?!((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))[\\\\[\\\\];=]))","beginCaptures":{"1":{"name":"punctuation.definition.capture.begin.lambda.cpp"},"2":{"name":"meta.lambda.capture.cpp","patterns":[{"include":"source.cpp#the_this_keyword"},{"captures":{"1":{"name":"variable.parameter.capture.cpp"},"2":{"patterns":[{"include":"source.cpp#inline_comment"}]},"3":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{"name":"comment.block.cpp"},"5":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{"name":"punctuation.separator.delimiter.comma.cpp"},"7":{"name":"keyword.operator.assignment.cpp"}},"match":"((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?=\\\\]|\\\\z|$)|(,))|(\\\\=))"},{"include":"#evaluation_context"}]},"3":{},"4":{"name":"punctuation.definition.capture.end.lambda.cpp"},"5":{"patterns":[{"include":"source.cpp#inline_comment"}]},"6":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"7":{"name":"comment.block.cpp"},"8":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"end":"(?<=[;}])|(?=(?","beginCaptures":{"0":{"name":"punctuation.definition.lambda.return-type.cpp"}},"end":"(?=\\\\{)|(?=(?\\\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?:\\\\s+)?(?:(?:\\\\.\\\\*|\\\\.)|(?:->\\\\*|->))(?:\\\\s+)?)*)(?:\\\\s+)?(~?(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)(?:\\\\s+)?(\\\\()","beginCaptures":{"1":{"patterns":[{"include":"source.cpp#inline_comment"}]},"2":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{"name":"comment.block.cpp"},"4":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{"name":"variable.language.this.cpp"},"6":{"name":"variable.other.object.access.cpp"},"7":{"name":"punctuation.separator.dot-access.cpp"},"8":{"name":"punctuation.separator.pointer-access.cpp"},"9":{"patterns":[{"captures":{"1":{"patterns":[{"include":"source.cpp#inline_comment"}]},"2":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{"name":"comment.block.cpp"},"4":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{"name":"variable.language.this.cpp"},"6":{"name":"variable.other.object.property.cpp"},"7":{"name":"punctuation.separator.dot-access.cpp"},"8":{"name":"punctuation.separator.pointer-access.cpp"}},"match":"(?<=(?:\\\\.\\\\*|\\\\.|->|->\\\\*))(?:\\\\s+)?(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?\\\\*|->)))"},{"captures":{"1":{"patterns":[{"include":"source.cpp#inline_comment"}]},"2":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{"name":"comment.block.cpp"},"4":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{"name":"variable.language.this.cpp"},"6":{"name":"variable.other.object.access.cpp"},"7":{"name":"punctuation.separator.dot-access.cpp"},"8":{"name":"punctuation.separator.pointer-access.cpp"}},"match":"(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?\\\\*|->)))"},{"include":"source.cpp#member_access"},{"include":"#method_access"}]},"10":{"name":"entity.name.function.member.cpp"},"11":{"name":"punctuation.section.arguments.begin.bracket.round.function.member.cpp"}},"end":"\\\\)|(?=(?|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))|(?=(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)(?:\\\\s+)?((?|\\\\?\\\\?>|(?=(?|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)|(?=(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)(operator)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)(?:(?:((?:(?:delete\\\\[\\\\])|(?:delete)|(?:new\\\\[\\\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\\\->\\\\*)|(?:\\\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\\\|=)|(?:\\\\+\\\\+)|(?:\\\\-\\\\-)|(?:\\\\(\\\\))|(?:\\\\[\\\\])|(?:\\\\->)|(?:\\\\+\\\\+)|(?:<<)|(?:>>)|(?:\\\\-\\\\-)|(?:<=)|(?:\\\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\\\|\\\\|)|(?:\\\\+=)|(?:\\\\-=)|(?:\\\\*=)|,|\\\\+|\\\\-|!|~|\\\\*|&|\\\\*|\\\\/|%|\\\\+|\\\\-|<|>|&|\\\\^|\\\\||=))|((?|(?=(?|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))|(?=(?|\\\\?\\\\?>|(?=(?|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)|(?=(?>=|\\\\|=","name":"keyword.operator.assignment.compound.bitwise.cpp"},{"match":"<<|>>","name":"keyword.operator.bitwise.shift.cpp"},{"match":"!=|<=|>=|==|<|>","name":"keyword.operator.comparison.cpp"},{"match":"&&|!|\\\\|\\\\|","name":"keyword.operator.logical.cpp"},{"match":"&|\\\\||\\\\^|~","name":"keyword.operator.bitwise.cpp"},{"include":"source.cpp#assignment_operator"},{"match":"%|\\\\*|\\\\/|-|\\\\+","name":"keyword.operator.arithmetic.cpp"},{"include":"#ternary_operator"}]},"parameter":{"begin":"((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=\\\\w)","beginCaptures":{"1":{"patterns":[{"include":"source.cpp#inline_comment"}]},"2":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{"name":"comment.block.cpp"},"4":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"end":"(?:(?=\\\\))|(,))|(?=(?|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))|(?=(?|\\\\?\\\\?>|(?=(?|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)|(?=(?|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))|(?=(?|\\\\?\\\\?>|(?=(?|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)|(?=(?|(?=(?|(?=(?|(?=(?|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))|(?=(?|\\\\?\\\\?>|(?=(?|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)|(?=(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()(\\\\*)(?:\\\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)?)(?:\\\\s+)?(?:(\\\\[)(\\\\w*)(\\\\])(?:\\\\s+)?)*(\\\\))(?:\\\\s+)?(\\\\()","beginCaptures":{"1":{"name":"meta.qualified_type.cpp","patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{"match":"(?|(?=(?]|\\\\n)(?!\\\\()|(?=(?|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))|(?=(?|\\\\?\\\\?>|(?=(?|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)|(?=(?|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))|(?=(?|\\\\?\\\\?>|(?=(?|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)|(?=(?|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))|(?=(?|\\\\?\\\\?>|(?=(?|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)|(?=(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)?((?|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"name":"meta.block.class.cpp","patterns":[{"begin":"\\\\G ?","beginCaptures":{},"end":"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))","endCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.class.cpp"}},"name":"meta.head.class.cpp","patterns":[{"include":"#ever_present_context"},{"include":"#inheritance_context"},{"include":"#template_call_range"}]},{"begin":"(?<=\\\\{|<%|\\\\?\\\\?<)","beginCaptures":{},"end":"\\\\}|%>|\\\\?\\\\?>","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.class.cpp"}},"name":"meta.body.class.cpp","patterns":[{"include":"#function_pointer"},{"include":"#static_assert"},{"include":"#constructor_inline"},{"include":"#destructor_inline"},{"include":"$self"}]},{"begin":"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)","endCaptures":{},"name":"meta.tail.class.cpp","patterns":[{"include":"$self"}]}]},"class_declare":{"captures":{"1":{"name":"storage.type.class.declare.cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"4":{"name":"entity.name.type.class.cpp"},"5":{"patterns":[{"match":"\\\\*","name":"storage.modifier.pointer.cpp"},{"captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{"name":"comment.block.cpp"},"4":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&","name":"invalid.illegal.reference-type.cpp"},{"match":"\\\\&","name":"storage.modifier.reference.cpp"}]},"6":{"patterns":[{"include":"#inline_comment"}]},"7":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"8":{"patterns":[{"include":"#inline_comment"}]},"9":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"12":{"name":"variable.other.object.declare.cpp"},"13":{"patterns":[{"include":"#inline_comment"}]},"14":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]}},"match":"((?|%|\\"|\\\\.|=|::|\\\\||\\\\-\\\\-|\\\\-\\\\-\\\\-)\\\\b(?:\\\\{[^}]*\\\\})?","name":"storage.type.class.doxygen.cpp"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"name":"markup.italic.doxygen.cpp"}},"match":"((?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:a|em|e))\\\\s+(\\\\S+)"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"name":"markup.bold.doxygen.cpp"}},"match":"((?<=[\\\\s*!\\\\/])[\\\\\\\\@]b)\\\\s+(\\\\S+)"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"name":"markup.inline.raw.string.cpp"}},"match":"((?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:c|p))\\\\s+(\\\\S+)"},{"match":"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\\\b(?:\\\\{[^}]*\\\\})?","name":"storage.type.class.doxygen.cpp"},{"match":"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\\\b(?:\\\\{[^}]*\\\\})?","name":"storage.type.class.doxygen.cpp"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"patterns":[{"match":"in|out","name":"keyword.other.parameter.direction.$0.cpp"}]},"3":{"patterns":[{"match":"(?|%|\\"|\\\\.|=|::|\\\\||\\\\-\\\\-|\\\\-\\\\-\\\\-)\\\\b(?:\\\\{[^}]*\\\\})?","name":"storage.type.class.doxygen.cpp"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"name":"markup.italic.doxygen.cpp"}},"match":"((?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:a|em|e))\\\\s+(\\\\S+)"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"name":"markup.bold.doxygen.cpp"}},"match":"((?<=[\\\\s*!\\\\/])[\\\\\\\\@]b)\\\\s+(\\\\S+)"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"name":"markup.inline.raw.string.cpp"}},"match":"((?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:c|p))\\\\s+(\\\\S+)"},{"match":"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\\\b(?:\\\\{[^}]*\\\\})?","name":"storage.type.class.doxygen.cpp"},{"match":"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\\\b(?:\\\\{[^}]*\\\\})?","name":"storage.type.class.doxygen.cpp"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"patterns":[{"match":"in|out","name":"keyword.other.parameter.direction.$0.cpp"}]},"3":{"patterns":[{"match":"(?|%|\\"|\\\\.|=|::|\\\\||\\\\-\\\\-|\\\\-\\\\-\\\\-)\\\\b(?:\\\\{[^}]*\\\\})?","name":"storage.type.class.doxygen.cpp"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"name":"markup.italic.doxygen.cpp"}},"match":"((?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:a|em|e))\\\\s+(\\\\S+)"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"name":"markup.bold.doxygen.cpp"}},"match":"((?<=[\\\\s*!\\\\/])[\\\\\\\\@]b)\\\\s+(\\\\S+)"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"name":"markup.inline.raw.string.cpp"}},"match":"((?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:c|p))\\\\s+(\\\\S+)"},{"match":"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\\\b(?:\\\\{[^}]*\\\\})?","name":"storage.type.class.doxygen.cpp"},{"match":"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\\\b(?:\\\\{[^}]*\\\\})?","name":"storage.type.class.doxygen.cpp"},{"captures":{"1":{"name":"storage.type.class.doxygen.cpp"},"2":{"patterns":[{"match":"in|out","name":"keyword.other.parameter.direction.$0.cpp"}]},"3":{"patterns":[{"match":"(?|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))","endCaptures":{},"name":"meta.function.definition.special.constructor.cpp","patterns":[{"begin":"\\\\G ?","beginCaptures":{},"end":"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))","endCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"}},"name":"meta.head.function.definition.special.constructor.cpp","patterns":[{"include":"#ever_present_context"},{"captures":{"1":{"name":"keyword.operator.assignment.cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{"name":"comment.block.cpp"},"5":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{"name":"keyword.other.default.function.cpp keyword.other.default.constructor.cpp"},"7":{"name":"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp"}},"match":"(\\\\=)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(default)|(delete))"},{"include":"#functional_specifiers_pre_parameters"},{"begin":":","beginCaptures":{"0":{"name":"punctuation.separator.initializers.cpp"}},"end":"(?=\\\\{)","endCaptures":{},"patterns":[{"begin":"((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.call.initializer.cpp"},"2":{"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_range"}]},"3":{},"4":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{"name":"comment.block.cpp"},"6":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"7":{"name":"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"}},"contentName":"meta.parameter.initialization","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"}},"patterns":[{"include":"#evaluation_context"}]},{"begin":"((?|\\\\?\\\\?>","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"}},"name":"meta.body.function.definition.special.constructor.cpp","patterns":[{"include":"#function_body_context"}]},{"begin":"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)","endCaptures":{},"name":"meta.tail.function.definition.special.constructor.cpp","patterns":[{"include":"$self"}]}]},"constructor_root":{"begin":"\\\\s*+((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)(((?>(?|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))","endCaptures":{},"name":"meta.function.definition.special.constructor.cpp","patterns":[{"begin":"\\\\G ?","beginCaptures":{},"end":"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))","endCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"}},"name":"meta.head.function.definition.special.constructor.cpp","patterns":[{"include":"#ever_present_context"},{"captures":{"1":{"name":"keyword.operator.assignment.cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{"name":"comment.block.cpp"},"5":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{"name":"keyword.other.default.function.cpp keyword.other.default.constructor.cpp"},"7":{"name":"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp"}},"match":"(\\\\=)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(default)|(delete))"},{"include":"#functional_specifiers_pre_parameters"},{"begin":":","beginCaptures":{"0":{"name":"punctuation.separator.initializers.cpp"}},"end":"(?=\\\\{)","endCaptures":{},"patterns":[{"begin":"((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.call.initializer.cpp"},"2":{"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_range"}]},"3":{},"4":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{"name":"comment.block.cpp"},"6":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"7":{"name":"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"}},"contentName":"meta.parameter.initialization","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"}},"patterns":[{"include":"#evaluation_context"}]},{"begin":"((?|\\\\?\\\\?>","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"}},"name":"meta.body.function.definition.special.constructor.cpp","patterns":[{"include":"#function_body_context"}]},{"begin":"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)","endCaptures":{},"name":"meta.tail.function.definition.special.constructor.cpp","patterns":[{"include":"$self"}]}]},"control_flow_keywords":{"captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"3":{"name":"keyword.control.$3.cpp"}},"match":"((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\{)","beginCaptures":{"1":{"name":"meta.qualified_type.cpp","patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{"match":"(?","endCaptures":{"0":{"name":"punctuation.section.angle-brackets.end.template.call.cpp"}},"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_context"}]},{"match":"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*","name":"entity.name.type.cpp"}]},"2":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"3":{"patterns":[{"include":"#inline_comment"}]},"4":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{"name":"comment.block.cpp"},"6":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"7":{"patterns":[{"include":"#inline_comment"}]},"8":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{"name":"comment.block.cpp"},"10":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{"patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{"match":"(?]*(>?)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:\\\\n|$)|(?=\\\\/\\\\/)))|((\\\\\\")[^\\\\\\"]*(\\\\\\"?)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:\\\\n|$)|(?=\\\\/\\\\/))))|(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?:\\\\.(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:\\\\n|$)|(?=(?:\\\\/\\\\/|;)))))|((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:\\\\n|$)|(?=(?:\\\\/\\\\/|;))))(?:\\\\s+)?(;?)","name":"meta.preprocessor.import.cpp"},"d9bc4796b0b_preprocessor_number_literal":{"captures":{"0":{"patterns":[{"begin":"(?=.)","beginCaptures":{},"end":"$","endCaptures":{},"patterns":[{"captures":{"1":{"name":"keyword.other.unit.hexadecimal.cpp"},"2":{"name":"constant.numeric.hexadecimal.cpp","patterns":[{"match":"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.cpp"}]},"3":{"name":"punctuation.separator.constant.numeric.cpp"},"4":{"name":"constant.numeric.hexadecimal.cpp"},"5":{"name":"constant.numeric.hexadecimal.cpp","patterns":[{"match":"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.cpp"}]},"6":{"name":"punctuation.separator.constant.numeric.cpp"},"7":{"name":"keyword.other.unit.exponent.hexadecimal.cpp"},"8":{"name":"keyword.operator.plus.exponent.hexadecimal.cpp"},"9":{"name":"keyword.operator.minus.exponent.hexadecimal.cpp"},"10":{"name":"constant.numeric.exponent.hexadecimal.cpp","patterns":[{"match":"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])","name":"punctuation.separator.constant.numeric.cpp"}]},"11":{"name":"keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp"}},"match":"(\\\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\\\.|\\\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))","endCaptures":{},"name":"meta.function.definition.special.member.destructor.cpp","patterns":[{"begin":"\\\\G ?","beginCaptures":{},"end":"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))","endCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"}},"name":"meta.head.function.definition.special.member.destructor.cpp","patterns":[{"include":"#ever_present_context"},{"captures":{"1":{"name":"keyword.operator.assignment.cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{"name":"comment.block.cpp"},"5":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{"name":"keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp"},"7":{"name":"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp"}},"match":"(\\\\=)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(default)|(delete))"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"}},"contentName":"meta.function.definition.parameters.special.member.destructor","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"}},"patterns":[]},{"include":"#qualifiers_and_specifiers_post_parameters"},{"include":"$self"}]},{"begin":"(?<=\\\\{|<%|\\\\?\\\\?<)","beginCaptures":{},"end":"\\\\}|%>|\\\\?\\\\?>","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"}},"name":"meta.body.function.definition.special.member.destructor.cpp","patterns":[{"include":"#function_body_context"}]},{"begin":"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)","endCaptures":{},"name":"meta.tail.function.definition.special.member.destructor.cpp","patterns":[{"include":"$self"}]}]},"destructor_root":{"begin":"((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)(((?>(?|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))","endCaptures":{},"name":"meta.function.definition.special.member.destructor.cpp","patterns":[{"begin":"\\\\G ?","beginCaptures":{},"end":"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))","endCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"}},"name":"meta.head.function.definition.special.member.destructor.cpp","patterns":[{"include":"#ever_present_context"},{"captures":{"1":{"name":"keyword.operator.assignment.cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{"name":"comment.block.cpp"},"5":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{"name":"keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp"},"7":{"name":"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp"}},"match":"(\\\\=)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(default)|(delete))"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"}},"contentName":"meta.function.definition.parameters.special.member.destructor","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"}},"patterns":[]},{"include":"#qualifiers_and_specifiers_post_parameters"},{"include":"$self"}]},{"begin":"(?<=\\\\{|<%|\\\\?\\\\?<)","beginCaptures":{},"end":"\\\\}|%>|\\\\?\\\\?>","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"}},"name":"meta.body.function.definition.special.member.destructor.cpp","patterns":[{"include":"#function_body_context"}]},{"begin":"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)","endCaptures":{},"name":"meta.tail.function.definition.special.member.destructor.cpp","patterns":[{"include":"$self"}]}]},"diagnostic":{"begin":"(^((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(#)(?:\\\\s+)?((?:error|warning)))\\\\b(?:\\\\s+)?","beginCaptures":{"1":{"name":"keyword.control.directive.diagnostic.$7.cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{"name":"comment.block.cpp"},"5":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{"name":"punctuation.definition.directive.cpp"},"7":{}},"end":"(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::))?(?:\\\\s+)?((?|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"name":"meta.block.enum.cpp","patterns":[{"begin":"\\\\G ?","beginCaptures":{},"end":"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))","endCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.enum.cpp"}},"name":"meta.head.enum.cpp","patterns":[{"include":"$self"}]},{"begin":"(?<=\\\\{|<%|\\\\?\\\\?<)","beginCaptures":{},"end":"\\\\}|%>|\\\\?\\\\?>","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.enum.cpp"}},"name":"meta.body.enum.cpp","patterns":[{"include":"#ever_present_context"},{"include":"#enumerator_list"},{"include":"#comments"},{"include":"#comma"},{"include":"#semicolon"}]},{"begin":"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)","endCaptures":{},"name":"meta.tail.enum.cpp","patterns":[{"include":"$self"}]}]},"enum_declare":{"captures":{"1":{"name":"storage.type.enum.declare.cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"4":{"name":"entity.name.type.enum.cpp"},"5":{"patterns":[{"match":"\\\\*","name":"storage.modifier.pointer.cpp"},{"captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{"name":"comment.block.cpp"},"4":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&","name":"invalid.illegal.reference-type.cpp"},{"match":"\\\\&","name":"storage.modifier.reference.cpp"}]},"6":{"patterns":[{"include":"#inline_comment"}]},"7":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"8":{"patterns":[{"include":"#inline_comment"}]},"9":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"12":{"name":"variable.other.object.declare.cpp"},"13":{"patterns":[{"include":"#inline_comment"}]},"14":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]}},"match":"((?|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"name":"meta.block.extern.cpp","patterns":[{"begin":"\\\\G ?","beginCaptures":{},"end":"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))","endCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.extern.cpp"}},"name":"meta.head.extern.cpp","patterns":[{"include":"$self"}]},{"begin":"(?<=\\\\{|<%|\\\\?\\\\?<)","beginCaptures":{},"end":"\\\\}|%>|\\\\?\\\\?>","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.extern.cpp"}},"name":"meta.body.extern.cpp","patterns":[{"include":"$self"}]},{"begin":"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)","endCaptures":{},"name":"meta.tail.extern.cpp","patterns":[{"include":"$self"}]},{"include":"$self"}]},"function_body_context":{"patterns":[{"include":"#ever_present_context"},{"include":"#using_namespace"},{"include":"#type_alias"},{"include":"#using_name"},{"include":"#namespace_alias"},{"include":"#typedef_class"},{"include":"#typedef_struct"},{"include":"#typedef_union"},{"include":"#misc_keywords"},{"include":"#standard_declares"},{"include":"#class_block"},{"include":"#struct_block"},{"include":"#union_block"},{"include":"#enum_block"},{"include":"#access_control_keywords"},{"include":"#block"},{"include":"#static_assert"},{"include":"#assembly"},{"include":"#function_pointer"},{"include":"#switch_statement"},{"include":"#goto_statement"},{"include":"#evaluation_context"},{"include":"#label"}]},"function_call":{"begin":"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)\\\\b(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(\\\\()","beginCaptures":{"1":{"patterns":[{"include":"#scope_resolution_function_call_inner_generated"}]},"2":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"},"3":{"patterns":[{"include":"#template_call_range"}]},"4":{},"5":{"name":"entity.name.function.call.cpp"},"6":{"patterns":[{"include":"#inline_comment"}]},"7":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{"name":"comment.block.cpp"},"9":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"10":{"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_range"}]},"11":{},"12":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"13":{"name":"comment.block.cpp"},"14":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"15":{"name":"punctuation.section.arguments.begin.bracket.round.function.call.cpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.function.call.cpp"}},"patterns":[{"include":"#evaluation_context"}]},"function_definition":{"begin":"(?:(?:^|\\\\G|(?<=;|\\\\}))|(?<=>|\\\\*\\\\/))\\\\s*+(?:((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)\\\\b(?","endCaptures":{"0":{"name":"punctuation.section.angle-brackets.end.template.call.cpp"}},"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_context"}]},{"match":"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*","name":"entity.name.type.cpp"}]},"14":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"15":{"patterns":[{"include":"#inline_comment"}]},"16":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"17":{"name":"comment.block.cpp"},"18":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"19":{"patterns":[{"include":"#inline_comment"}]},"20":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"21":{"name":"comment.block.cpp"},"22":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"23":{"patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{"match":"(?|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))","endCaptures":{},"name":"meta.function.definition.cpp","patterns":[{"begin":"\\\\G ?","beginCaptures":{},"end":"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))","endCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.function.definition.cpp"}},"name":"meta.head.function.definition.cpp","patterns":[{"include":"#ever_present_context"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.section.parameters.begin.bracket.round.cpp"}},"contentName":"meta.function.definition.parameters","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.parameters.end.bracket.round.cpp"}},"patterns":[{"include":"#ever_present_context"},{"include":"#parameter_or_maybe_value"},{"include":"#comma"},{"include":"#evaluation_context"}]},{"captures":{"1":{"name":"punctuation.definition.function.return-type.cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{"name":"comment.block.cpp"},"5":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{"name":"meta.qualified_type.cpp","patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{"match":"(?","endCaptures":{"0":{"name":"punctuation.section.angle-brackets.end.template.call.cpp"}},"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_context"}]},{"match":"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*","name":"entity.name.type.cpp"}]},"7":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"8":{"patterns":[{"include":"#inline_comment"}]},"9":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"10":{"name":"comment.block.cpp"},"11":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"12":{"patterns":[{"include":"#inline_comment"}]},"13":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"14":{"name":"comment.block.cpp"},"15":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"16":{"patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{"match":"(?)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))"},{"include":"$self"}]},{"begin":"(?<=\\\\{|<%|\\\\?\\\\?<)","beginCaptures":{},"end":"\\\\}|%>|\\\\?\\\\?>","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.function.definition.cpp"}},"name":"meta.body.function.definition.cpp","patterns":[{"include":"#function_body_context"}]},{"begin":"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)","endCaptures":{},"name":"meta.tail.function.definition.cpp","patterns":[{"include":"$self"}]}]},"function_parameter_context":{"patterns":[{"include":"#ever_present_context"},{"include":"#parameter"},{"include":"#comma"}]},"function_pointer":{"begin":"(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()(\\\\*)(?:\\\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)?)(?:\\\\s+)?(?:(\\\\[)(\\\\w*)(\\\\])(?:\\\\s+)?)*(\\\\))(?:\\\\s+)?(\\\\()","beginCaptures":{"1":{"name":"meta.qualified_type.cpp","patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{"match":"(?","endCaptures":{"0":{"name":"punctuation.section.angle-brackets.end.template.call.cpp"}},"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_context"}]},{"match":"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*","name":"entity.name.type.cpp"}]},"2":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"3":{"patterns":[{"include":"#inline_comment"}]},"4":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{"name":"comment.block.cpp"},"6":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"7":{"patterns":[{"include":"#inline_comment"}]},"8":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{"name":"comment.block.cpp"},"10":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{"patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{"match":"(?]|\\\\n)(?!\\\\()","endCaptures":{"1":{"name":"punctuation.section.parameters.end.bracket.round.function.pointer.cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{"name":"comment.block.cpp"},"5":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"patterns":[{"include":"#function_parameter_context"}]},"function_pointer_parameter":{"begin":"(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()(\\\\*)(?:\\\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)?)(?:\\\\s+)?(?:(\\\\[)(\\\\w*)(\\\\])(?:\\\\s+)?)*(\\\\))(?:\\\\s+)?(\\\\()","beginCaptures":{"1":{"name":"meta.qualified_type.cpp","patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{"match":"(?","endCaptures":{"0":{"name":"punctuation.section.angle-brackets.end.template.call.cpp"}},"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_context"}]},{"match":"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*","name":"entity.name.type.cpp"}]},"2":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"3":{"patterns":[{"include":"#inline_comment"}]},"4":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{"name":"comment.block.cpp"},"6":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"7":{"patterns":[{"include":"#inline_comment"}]},"8":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{"name":"comment.block.cpp"},"10":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{"patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{"match":"(?]|\\\\n)(?!\\\\()","endCaptures":{"1":{"name":"punctuation.section.parameters.end.bracket.round.function.pointer.cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{"name":"comment.block.cpp"},"5":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"patterns":[{"include":"#function_parameter_context"}]},"functional_specifiers_pre_parameters":{"match":"(?]*(>?)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:\\\\n|$)|(?=\\\\/\\\\/)))|((\\\\\\")[^\\\\\\"]*(\\\\\\"?)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:\\\\n|$)|(?=\\\\/\\\\/))))|(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?:\\\\.(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:\\\\n|$)|(?=(?:\\\\/\\\\/|;)))))|((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:\\\\n|$)|(?=(?:\\\\/\\\\/|;))))","name":"meta.preprocessor.include.cpp"},"inheritance_context":{"patterns":[{"include":"#ever_present_context"},{"match":",","name":"punctuation.separator.delimiter.comma.inheritance.cpp"},{"match":"(?","endCaptures":{"0":{"name":"punctuation.section.angle-brackets.end.template.call.cpp"}},"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_context"}]},{"match":"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*","name":"entity.name.type.cpp"}]},"2":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"3":{"patterns":[{"include":"#inline_comment"}]},"4":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"5":{"patterns":[{"include":"#inline_comment"}]},"6":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"7":{"patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{"match":"(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))"}]},"inline_builtin_storage_type":{"captures":{"1":{"name":"storage.type.primitive.cpp storage.type.built-in.primitive.cpp"},"2":{"name":"storage.type.cpp storage.type.built-in.cpp"},"3":{"name":"support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"},"4":{"name":"support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"}},"match":"\\\\s*+(?])|(?<=\\\\Wreturn|^return))(?:\\\\s+)?(\\\\[(?!\\\\[| *+\\"| *+\\\\d))((?:[^\\\\[\\\\]]|((??)++\\\\]))*+)(\\\\](?!((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))[\\\\[\\\\];=]))","beginCaptures":{"1":{"name":"punctuation.definition.capture.begin.lambda.cpp"},"2":{"name":"meta.lambda.capture.cpp","patterns":[{"include":"#the_this_keyword"},{"captures":{"1":{"name":"variable.parameter.capture.cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{"name":"comment.block.cpp"},"5":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{"name":"punctuation.separator.delimiter.comma.cpp"},"7":{"name":"keyword.operator.assignment.cpp"}},"match":"((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?=\\\\]|\\\\z|$)|(,))|(\\\\=))"},{"include":"#evaluation_context"}]},"3":{},"4":{"name":"punctuation.definition.capture.end.lambda.cpp"},"5":{"patterns":[{"include":"#inline_comment"}]},"6":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"7":{"name":"comment.block.cpp"},"8":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"end":"(?<=[;}])","endCaptures":{},"patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.lambda.cpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.lambda.cpp"}},"name":"meta.function.definition.parameters.lambda.cpp","patterns":[{"include":"#function_parameter_context"}]},{"match":"(?","beginCaptures":{"0":{"name":"punctuation.definition.lambda.return-type.cpp"}},"end":"(?=\\\\{)","endCaptures":{},"patterns":[{"include":"#comments"},{"match":"\\\\S+","name":"storage.type.return-type.lambda.cpp"}]},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.lambda.cpp"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.lambda.cpp"}},"name":"meta.function.definition.body.lambda.cpp","patterns":[{"include":"$self"}]}]},"language_constants":{"match":"(?|->\\\\*))(?:\\\\s+)?(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?\\\\*|->)))"},{"captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{"name":"comment.block.cpp"},"4":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{"name":"variable.language.this.cpp"},"6":{"name":"variable.other.object.access.cpp"},"7":{"name":"punctuation.separator.dot-access.cpp"},"8":{"name":"punctuation.separator.pointer-access.cpp"}},"match":"(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?\\\\*|->)))"},{"include":"#member_access"},{"include":"#method_access"}]},"8":{"name":"variable.other.property.cpp"}},"match":"(?:((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?\\\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?:\\\\s+)?(?:(?:\\\\.\\\\*|\\\\.)|(?:->\\\\*|->))(?:\\\\s+)?)*)(?:\\\\s+)?(\\\\b(?!uint_least32_t[^\\\\w]|uint_least16_t[^\\\\w]|uint_least64_t[^\\\\w]|int_least32_t[^\\\\w]|int_least64_t[^\\\\w]|uint_fast32_t[^\\\\w]|uint_fast64_t[^\\\\w]|uint_least8_t[^\\\\w]|uint_fast16_t[^\\\\w]|int_least16_t[^\\\\w]|int_fast16_t[^\\\\w]|int_least8_t[^\\\\w]|uint_fast8_t[^\\\\w]|int_fast64_t[^\\\\w]|int_fast32_t[^\\\\w]|int_fast8_t[^\\\\w]|suseconds_t[^\\\\w]|useconds_t[^\\\\w]|in_addr_t[^\\\\w]|uintmax_t[^\\\\w]|uintmax_t[^\\\\w]|uintmax_t[^\\\\w]|in_port_t[^\\\\w]|uintptr_t[^\\\\w]|blksize_t[^\\\\w]|uint32_t[^\\\\w]|uint64_t[^\\\\w]|u_quad_t[^\\\\w]|intmax_t[^\\\\w]|intmax_t[^\\\\w]|unsigned[^\\\\w]|blkcnt_t[^\\\\w]|uint16_t[^\\\\w]|intptr_t[^\\\\w]|swblk_t[^\\\\w]|wchar_t[^\\\\w]|u_short[^\\\\w]|qaddr_t[^\\\\w]|caddr_t[^\\\\w]|daddr_t[^\\\\w]|fixpt_t[^\\\\w]|nlink_t[^\\\\w]|segsz_t[^\\\\w]|clock_t[^\\\\w]|ssize_t[^\\\\w]|int16_t[^\\\\w]|int32_t[^\\\\w]|int64_t[^\\\\w]|uint8_t[^\\\\w]|int8_t[^\\\\w]|mode_t[^\\\\w]|quad_t[^\\\\w]|ushort[^\\\\w]|u_long[^\\\\w]|u_char[^\\\\w]|double[^\\\\w]|signed[^\\\\w]|time_t[^\\\\w]|size_t[^\\\\w]|key_t[^\\\\w]|div_t[^\\\\w]|ino_t[^\\\\w]|uid_t[^\\\\w]|gid_t[^\\\\w]|off_t[^\\\\w]|pid_t[^\\\\w]|float[^\\\\w]|dev_t[^\\\\w]|u_int[^\\\\w]|short[^\\\\w]|bool[^\\\\w]|id_t[^\\\\w]|uint[^\\\\w]|long[^\\\\w]|char[^\\\\w]|void[^\\\\w]|auto[^\\\\w]|id_t[^\\\\w]|int[^\\\\w])(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b(?!\\\\())"},"memory_operators":{"captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"3":{"name":"keyword.operator.wordlike.cpp"},"4":{"name":"keyword.operator.delete.array.cpp"},"5":{"name":"keyword.operator.delete.array.bracket.cpp"},"6":{"name":"keyword.operator.delete.cpp"},"7":{"name":"keyword.operator.new.cpp"}},"match":"((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:(?:(delete)(?:\\\\s+)?(\\\\[\\\\])|(delete))|(new))(?!\\\\w))"},"method_access":{"begin":"(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?\\\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?:\\\\s+)?(?:(?:\\\\.\\\\*|\\\\.)|(?:->\\\\*|->))(?:\\\\s+)?)*)(?:\\\\s+)?(~?(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)(?:\\\\s+)?(\\\\()","beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{"name":"comment.block.cpp"},"4":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{"name":"variable.language.this.cpp"},"6":{"name":"variable.other.object.access.cpp"},"7":{"name":"punctuation.separator.dot-access.cpp"},"8":{"name":"punctuation.separator.pointer-access.cpp"},"9":{"patterns":[{"captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{"name":"comment.block.cpp"},"4":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{"name":"variable.language.this.cpp"},"6":{"name":"variable.other.object.property.cpp"},"7":{"name":"punctuation.separator.dot-access.cpp"},"8":{"name":"punctuation.separator.pointer-access.cpp"}},"match":"(?<=(?:\\\\.\\\\*|\\\\.|->|->\\\\*))(?:\\\\s+)?(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?\\\\*|->)))"},{"captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{"name":"comment.block.cpp"},"4":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{"name":"variable.language.this.cpp"},"6":{"name":"variable.other.object.access.cpp"},"7":{"name":"punctuation.separator.dot-access.cpp"},"8":{"name":"punctuation.separator.pointer-access.cpp"}},"match":"(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?\\\\*|->)))"},{"include":"#member_access"},{"include":"#method_access"}]},"10":{"name":"entity.name.function.member.cpp"},"11":{"name":"punctuation.section.arguments.begin.bracket.round.function.member.cpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.function.member.cpp"}},"patterns":[{"include":"#evaluation_context"}]},"misc_keywords":{"captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"3":{"name":"keyword.other.$3.cpp"}},"match":"((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)(?:\\\\s+)?((?|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))","endCaptures":{},"name":"meta.block.namespace.cpp","patterns":[{"begin":"\\\\G ?","beginCaptures":{},"end":"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))","endCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.namespace.cpp"}},"name":"meta.head.namespace.cpp","patterns":[{"include":"#ever_present_context"},{"include":"#attributes_context"},{"captures":{"1":{"patterns":[{"include":"#scope_resolution_namespace_block_inner_generated"}]},"2":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"},"3":{"patterns":[{"include":"#template_call_range"}]},"4":{},"5":{"name":"entity.name.namespace.cpp"},"6":{"name":"punctuation.separator.scope-resolution.namespace.block.cpp"},"7":{"name":"storage.modifier.inline.cpp"}},"match":"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)(?:\\\\s+)?((?|\\\\?\\\\?>","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.namespace.cpp"}},"name":"meta.body.namespace.cpp","patterns":[{"include":"$self"}]},{"begin":"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)","endCaptures":{},"name":"meta.tail.namespace.cpp","patterns":[{"include":"$self"}]}]},"noexcept_operator":{"begin":"((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)(operator)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)(?:(?:((?:(?:delete\\\\[\\\\])|(?:delete)|(?:new\\\\[\\\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\\\->\\\\*)|(?:\\\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\\\|=)|(?:\\\\+\\\\+)|(?:\\\\-\\\\-)|(?:\\\\(\\\\))|(?:\\\\[\\\\])|(?:\\\\->)|(?:\\\\+\\\\+)|(?:<<)|(?:>>)|(?:\\\\-\\\\-)|(?:<=)|(?:\\\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\\\|\\\\|)|(?:\\\\+=)|(?:\\\\-=)|(?:\\\\*=)|,|\\\\+|\\\\-|!|~|\\\\*|&|\\\\*|\\\\/|%|\\\\+|\\\\-|<|>|&|\\\\^|\\\\||=))|((?","endCaptures":{"0":{"name":"punctuation.section.angle-brackets.end.template.call.cpp"}},"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_context"}]},{"match":"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*","name":"entity.name.type.cpp"}]},"6":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"7":{"patterns":[{"include":"#inline_comment"}]},"8":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{"name":"comment.block.cpp"},"10":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{"patterns":[{"include":"#inline_comment"}]},"12":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"13":{"name":"comment.block.cpp"},"14":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"15":{"patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{"match":"(?|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))","endCaptures":{},"name":"meta.function.definition.special.operator-overload.cpp","patterns":[{"begin":"\\\\G ?","beginCaptures":{},"end":"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))","endCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp"}},"name":"meta.head.function.definition.special.operator-overload.cpp","patterns":[{"include":"#ever_present_context"},{"include":"#template_call_range"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp"}},"contentName":"meta.function.definition.parameters.special.operator-overload","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp"}},"patterns":[{"include":"#function_parameter_context"},{"include":"#evaluation_context"}]},{"include":"#qualifiers_and_specifiers_post_parameters"},{"captures":{"1":{"name":"keyword.operator.assignment.cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{"name":"comment.block.cpp"},"5":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{"name":"keyword.other.default.function.cpp"},"7":{"name":"keyword.other.delete.function.cpp"}},"match":"(\\\\=)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(default)|(delete))"},{"include":"$self"}]},{"begin":"(?<=\\\\{|<%|\\\\?\\\\?<)","beginCaptures":{},"end":"\\\\}|%>|\\\\?\\\\?>","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp"}},"name":"meta.body.function.definition.special.operator-overload.cpp","patterns":[{"include":"#function_body_context"}]},{"begin":"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)","endCaptures":{},"name":"meta.tail.function.definition.special.operator-overload.cpp","patterns":[{"include":"$self"}]}]},"operators":{"patterns":[{"begin":"((?>=|\\\\|=","name":"keyword.operator.assignment.compound.bitwise.cpp"},{"match":"<<|>>","name":"keyword.operator.bitwise.shift.cpp"},{"match":"!=|<=|>=|==|<|>","name":"keyword.operator.comparison.cpp"},{"match":"&&|!|\\\\|\\\\|","name":"keyword.operator.logical.cpp"},{"match":"&|\\\\||\\\\^|~","name":"keyword.operator.bitwise.cpp"},{"include":"#assignment_operator"},{"match":"%|\\\\*|\\\\/|-|\\\\+","name":"keyword.operator.arithmetic.cpp"},{"include":"#ternary_operator"}]},"over_qualified_types":{"patterns":[{"captures":{"1":{"name":"storage.type.struct.parameter.cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"4":{"name":"entity.name.type.struct.parameter.cpp"},"5":{"patterns":[{"include":"#inline_comment"}]},"6":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"7":{"patterns":[{"match":"\\\\*","name":"storage.modifier.pointer.cpp"},{"captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{"name":"comment.block.cpp"},"4":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&","name":"invalid.illegal.reference-type.cpp"},{"match":"\\\\&","name":"storage.modifier.reference.cpp"}]},"8":{"patterns":[{"include":"#inline_comment"}]},"9":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"12":{"patterns":[{"include":"#inline_comment"}]},"13":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"14":{"name":"variable.other.object.declare.cpp"},"15":{"patterns":[{"include":"#inline_comment"}]},"16":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"17":{"patterns":[{"include":"#inline_comment"}]},"18":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"19":{"patterns":[{"include":"#inline_comment"}]},"20":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]}},"match":"(\\\\bstruct)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?","endCaptures":{"0":{"name":"punctuation.section.angle-brackets.end.template.call.cpp"}},"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_context"}]},{"match":"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*","name":"entity.name.type.cpp"}]},"1":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"4":{"patterns":[{"include":"#inline_comment"}]},"5":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"6":{"patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{"match":"(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.])","name":"meta.qualified_type.cpp"},"qualifiers_and_specifiers_post_parameters":{"captures":{"1":{"patterns":[{"captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{"name":"comment.block.cpp"},"4":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{"name":"storage.modifier.specifier.functional.post-parameters.$5.cpp"}},"match":"((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+"},"scope_resolution_function_call":{"captures":{"0":{"patterns":[{"include":"#scope_resolution_function_call_inner_generated"}]},"1":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"},"2":{"patterns":[{"include":"#template_call_range"}]}},"match":"(::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+"},"scope_resolution_function_call_inner_generated":{"captures":{"1":{"patterns":[{"include":"#scope_resolution_function_call_inner_generated"}]},"2":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"},"3":{"patterns":[{"include":"#template_call_range"}]},"4":{},"5":{"name":"entity.name.scope-resolution.function.call.cpp"},"6":{"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_range"}]},"7":{},"8":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{"name":"comment.block.cpp"},"10":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"}},"match":"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::)"},"scope_resolution_function_definition":{"captures":{"0":{"patterns":[{"include":"#scope_resolution_function_definition_inner_generated"}]},"1":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"},"2":{"patterns":[{"include":"#template_call_range"}]}},"match":"(::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+"},"scope_resolution_function_definition_inner_generated":{"captures":{"1":{"patterns":[{"include":"#scope_resolution_function_definition_inner_generated"}]},"2":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"},"3":{"patterns":[{"include":"#template_call_range"}]},"4":{},"5":{"name":"entity.name.scope-resolution.function.definition.cpp"},"6":{"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_range"}]},"7":{},"8":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{"name":"comment.block.cpp"},"10":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"}},"match":"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::)"},"scope_resolution_function_definition_operator_overload":{"captures":{"0":{"patterns":[{"include":"#scope_resolution_function_definition_operator_overload_inner_generated"}]},"1":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"},"2":{"patterns":[{"include":"#template_call_range"}]}},"match":"(::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+"},"scope_resolution_function_definition_operator_overload_inner_generated":{"captures":{"1":{"patterns":[{"include":"#scope_resolution_function_definition_operator_overload_inner_generated"}]},"2":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"},"3":{"patterns":[{"include":"#template_call_range"}]},"4":{},"5":{"name":"entity.name.scope-resolution.function.definition.operator-overload.cpp"},"6":{"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_range"}]},"7":{},"8":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{"name":"comment.block.cpp"},"10":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"}},"match":"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::)"},"scope_resolution_inner_generated":{"captures":{"1":{"patterns":[{"include":"#scope_resolution_inner_generated"}]},"2":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},"3":{"patterns":[{"include":"#template_call_range"}]},"4":{},"5":{"name":"entity.name.scope-resolution.cpp"},"6":{"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_range"}]},"7":{},"8":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{"name":"comment.block.cpp"},"10":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"}},"match":"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::)"},"scope_resolution_namespace_alias":{"captures":{"0":{"patterns":[{"include":"#scope_resolution_namespace_alias_inner_generated"}]},"1":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"},"2":{"patterns":[{"include":"#template_call_range"}]}},"match":"(::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+"},"scope_resolution_namespace_alias_inner_generated":{"captures":{"1":{"patterns":[{"include":"#scope_resolution_namespace_alias_inner_generated"}]},"2":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"},"3":{"patterns":[{"include":"#template_call_range"}]},"4":{},"5":{"name":"entity.name.scope-resolution.namespace.alias.cpp"},"6":{"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_range"}]},"7":{},"8":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{"name":"comment.block.cpp"},"10":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"}},"match":"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::)"},"scope_resolution_namespace_block":{"captures":{"0":{"patterns":[{"include":"#scope_resolution_namespace_block_inner_generated"}]},"1":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"},"2":{"patterns":[{"include":"#template_call_range"}]}},"match":"(::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+"},"scope_resolution_namespace_block_inner_generated":{"captures":{"1":{"patterns":[{"include":"#scope_resolution_namespace_block_inner_generated"}]},"2":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"},"3":{"patterns":[{"include":"#template_call_range"}]},"4":{},"5":{"name":"entity.name.scope-resolution.namespace.block.cpp"},"6":{"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_range"}]},"7":{},"8":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{"name":"comment.block.cpp"},"10":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"}},"match":"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::)"},"scope_resolution_namespace_using":{"captures":{"0":{"patterns":[{"include":"#scope_resolution_namespace_using_inner_generated"}]},"1":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"},"2":{"patterns":[{"include":"#template_call_range"}]}},"match":"(::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+"},"scope_resolution_namespace_using_inner_generated":{"captures":{"1":{"patterns":[{"include":"#scope_resolution_namespace_using_inner_generated"}]},"2":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"},"3":{"patterns":[{"include":"#template_call_range"}]},"4":{},"5":{"name":"entity.name.scope-resolution.namespace.using.cpp"},"6":{"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_range"}]},"7":{},"8":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{"name":"comment.block.cpp"},"10":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"}},"match":"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::)"},"scope_resolution_parameter":{"captures":{"0":{"patterns":[{"include":"#scope_resolution_parameter_inner_generated"}]},"1":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"},"2":{"patterns":[{"include":"#template_call_range"}]}},"match":"(::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+"},"scope_resolution_parameter_inner_generated":{"captures":{"1":{"patterns":[{"include":"#scope_resolution_parameter_inner_generated"}]},"2":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"},"3":{"patterns":[{"include":"#template_call_range"}]},"4":{},"5":{"name":"entity.name.scope-resolution.parameter.cpp"},"6":{"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_range"}]},"7":{},"8":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{"name":"comment.block.cpp"},"10":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"}},"match":"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::)"},"scope_resolution_template_call":{"captures":{"0":{"patterns":[{"include":"#scope_resolution_template_call_inner_generated"}]},"1":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"},"2":{"patterns":[{"include":"#template_call_range"}]}},"match":"(::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+"},"scope_resolution_template_call_inner_generated":{"captures":{"1":{"patterns":[{"include":"#scope_resolution_template_call_inner_generated"}]},"2":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"},"3":{"patterns":[{"include":"#template_call_range"}]},"4":{},"5":{"name":"entity.name.scope-resolution.template.call.cpp"},"6":{"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_range"}]},"7":{},"8":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{"name":"comment.block.cpp"},"10":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"}},"match":"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::)"},"scope_resolution_template_definition":{"captures":{"0":{"patterns":[{"include":"#scope_resolution_template_definition_inner_generated"}]},"1":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"},"2":{"patterns":[{"include":"#template_call_range"}]}},"match":"(::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+"},"scope_resolution_template_definition_inner_generated":{"captures":{"1":{"patterns":[{"include":"#scope_resolution_template_definition_inner_generated"}]},"2":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"},"3":{"patterns":[{"include":"#template_call_range"}]},"4":{},"5":{"name":"entity.name.scope-resolution.template.definition.cpp"},"6":{"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_range"}]},"7":{},"8":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{"name":"comment.block.cpp"},"10":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{"name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"}},"match":"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::)"},"semicolon":{"match":";","name":"punctuation.terminator.statement.cpp"},"simple_type":{"captures":{"1":{"name":"meta.qualified_type.cpp","patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{"match":"(?","endCaptures":{"0":{"name":"punctuation.section.angle-brackets.end.template.call.cpp"}},"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_context"}]},{"match":"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*","name":"entity.name.type.cpp"}]},"2":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"3":{"patterns":[{"include":"#inline_comment"}]},"4":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"5":{"patterns":[{"include":"#inline_comment"}]},"6":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"7":{"patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{"match":"(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?"},"single_line_macro":{"captures":{"0":{"patterns":[{"include":"#macro"},{"include":"#comments"}]},"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]}},"match":"^((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))#define.*(?|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"name":"meta.block.struct.cpp","patterns":[{"begin":"\\\\G ?","beginCaptures":{},"end":"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))","endCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.struct.cpp"}},"name":"meta.head.struct.cpp","patterns":[{"include":"#ever_present_context"},{"include":"#inheritance_context"},{"include":"#template_call_range"}]},{"begin":"(?<=\\\\{|<%|\\\\?\\\\?<)","beginCaptures":{},"end":"\\\\}|%>|\\\\?\\\\?>","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.struct.cpp"}},"name":"meta.body.struct.cpp","patterns":[{"include":"#function_pointer"},{"include":"#static_assert"},{"include":"#constructor_inline"},{"include":"#destructor_inline"},{"include":"$self"}]},{"begin":"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)","endCaptures":{},"name":"meta.tail.struct.cpp","patterns":[{"include":"$self"}]}]},"struct_declare":{"captures":{"1":{"name":"storage.type.struct.declare.cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"4":{"name":"entity.name.type.struct.cpp"},"5":{"patterns":[{"match":"\\\\*","name":"storage.modifier.pointer.cpp"},{"captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{"name":"comment.block.cpp"},"4":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&","name":"invalid.illegal.reference-type.cpp"},{"match":"\\\\&","name":"storage.modifier.reference.cpp"}]},"6":{"patterns":[{"include":"#inline_comment"}]},"7":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"8":{"patterns":[{"include":"#inline_comment"}]},"9":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"12":{"name":"variable.other.object.declare.cpp"},"13":{"patterns":[{"include":"#inline_comment"}]},"14":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]}},"match":"((?|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))","endCaptures":{},"name":"meta.block.switch.cpp","patterns":[{"begin":"\\\\G ?","beginCaptures":{},"end":"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))","endCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.switch.cpp"}},"name":"meta.head.switch.cpp","patterns":[{"include":"#switch_conditional_parentheses"},{"include":"$self"}]},{"begin":"(?<=\\\\{|<%|\\\\?\\\\?<)","beginCaptures":{},"end":"\\\\}|%>|\\\\?\\\\?>","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.switch.cpp"}},"name":"meta.body.switch.cpp","patterns":[{"include":"#default_statement"},{"include":"#case_statement"},{"include":"$self"}]},{"begin":"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)","endCaptures":{},"name":"meta.tail.switch.cpp","patterns":[{"include":"$self"}]}]},"template_argument_defaulted":{"captures":{"1":{"name":"storage.type.template.argument.$1.cpp"},"2":{"name":"entity.name.type.template.cpp"},"3":{"name":"keyword.operator.assignment.cpp"}},"match":"(?<=<|,)(?:\\\\s+)?((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)\\\\s+((?:(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)?)(?:\\\\s+)?(\\\\=)"},"template_call_context":{"patterns":[{"include":"#ever_present_context"},{"include":"#template_call_range"},{"include":"#storage_types"},{"include":"#language_constants"},{"include":"#scope_resolution_template_call_inner_generated"},{"include":"#operators"},{"include":"#number_literal"},{"include":"#string_context"},{"include":"#comma_in_template_argument"},{"include":"#qualified_type"}]},"template_call_innards":{"captures":{"0":{"patterns":[{"include":"#template_call_range"}]},"2":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{"name":"comment.block.cpp"},"4":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+","name":"meta.template.call.cpp"},"template_call_range":{"begin":"<","beginCaptures":{"0":{"name":"punctuation.section.angle-brackets.begin.template.call.cpp"}},"end":">","endCaptures":{"0":{"name":"punctuation.section.angle-brackets.end.template.call.cpp"}},"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_context"}]},"template_definition":{"begin":"(?","endCaptures":{"0":{"name":"punctuation.section.angle-brackets.end.template.definition.cpp"}},"name":"meta.template.definition.cpp","patterns":[{"begin":"(?<=\\\\w)(?:\\\\s+)?<","beginCaptures":{"0":{"name":"punctuation.section.angle-brackets.begin.template.call.cpp"}},"end":">","endCaptures":{"0":{"name":"punctuation.section.angle-brackets.end.template.call.cpp"}},"patterns":[{"include":"#template_call_context"}]},{"include":"#template_definition_context"}]},"template_definition_argument":{"captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"3":{"name":"storage.type.template.argument.$3.cpp"},"4":{"patterns":[{"match":"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*","name":"storage.type.template.argument.$0.cpp"}]},"5":{"name":"entity.name.type.template.cpp"},"6":{"name":"storage.type.template.argument.$6.cpp"},"7":{"name":"punctuation.vararg-ellipses.template.definition.cpp"},"8":{"name":"entity.name.type.template.cpp"},"9":{"name":"storage.type.template.cpp"},"10":{"name":"punctuation.section.angle-brackets.begin.template.definition.cpp"},"11":{"name":"storage.type.template.argument.$11.cpp"},"12":{"name":"entity.name.type.template.cpp"},"13":{"name":"punctuation.section.angle-brackets.end.template.definition.cpp"},"14":{"name":"storage.type.template.argument.$14.cpp"},"15":{"name":"entity.name.type.template.cpp"},"16":{"name":"keyword.operator.assignment.cpp"},"17":{"name":"punctuation.separator.delimiter.comma.template.argument.cpp"}},"match":"((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)|((?:(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\s+)+)((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*))|((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)(?:\\\\s+)?(\\\\.\\\\.\\\\.)(?:\\\\s+)?((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*))|(?)(?:\\\\s+)?(class|typename)(?:\\\\s+((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*))?)(?:\\\\s+)?(?:(\\\\=)(?:\\\\s+)?(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)?(?:(,)|(?=>|$))"},"template_definition_context":{"patterns":[{"include":"#scope_resolution_template_definition_inner_generated"},{"include":"#template_definition_argument"},{"include":"#template_argument_defaulted"},{"include":"#template_call_innards"},{"include":"#evaluation_context"}]},"template_explicit_instantiation":{"captures":{"1":{"name":"storage.modifier.specifier.extern.cpp"},"2":{"name":"storage.type.template.cpp"}},"match":"(?)(?:\\\\s+)?$"},"ternary_operator":{"applyEndPatternLast":1,"begin":"\\\\?","beginCaptures":{"0":{"name":"keyword.operator.ternary.cpp"}},"end":":","endCaptures":{"0":{"name":"keyword.operator.ternary.cpp"}},"patterns":[{"include":"#ever_present_context"},{"include":"#string_context"},{"include":"#number_literal"},{"include":"#method_access"},{"include":"#member_access"},{"include":"#predefined_macros"},{"include":"#operators"},{"include":"#memory_operators"},{"include":"#wordlike_operators"},{"include":"#type_casting_operators"},{"include":"#control_flow_keywords"},{"include":"#exception_keywords"},{"include":"#the_this_keyword"},{"include":"#language_constants"},{"include":"#builtin_storage_type_initilizer"},{"include":"#qualifiers_and_specifiers_post_parameters"},{"include":"#functional_specifiers_pre_parameters"},{"include":"#storage_types"},{"include":"#lambdas"},{"include":"#attributes_context"},{"include":"#parentheses"},{"include":"#function_call"},{"include":"#scope_resolution_inner_generated"},{"include":"#square_brackets"},{"include":"#semicolon"},{"include":"#comma"}]},"the_this_keyword":{"captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"3":{"name":"variable.language.this.cpp"}},"match":"((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?","endCaptures":{"0":{"name":"punctuation.section.angle-brackets.end.template.call.cpp"}},"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_context"}]},{"match":"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*","name":"entity.name.type.cpp"}]},"9":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"12":{"patterns":[{"include":"#inline_comment"}]},"13":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"14":{"patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{"match":"(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))|(.*(?|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"name":"meta.block.class.cpp","patterns":[{"begin":"\\\\G ?","beginCaptures":{},"end":"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))","endCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.class.cpp"}},"name":"meta.head.class.cpp","patterns":[{"include":"#ever_present_context"},{"include":"#inheritance_context"},{"include":"#template_call_range"}]},{"begin":"(?<=\\\\{|<%|\\\\?\\\\?<)","beginCaptures":{},"end":"\\\\}|%>|\\\\?\\\\?>","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.class.cpp"}},"name":"meta.body.class.cpp","patterns":[{"include":"#function_pointer"},{"include":"#static_assert"},{"include":"#constructor_inline"},{"include":"#destructor_inline"},{"include":"$self"}]},{"begin":"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)","endCaptures":{},"name":"meta.tail.class.cpp","patterns":[{"captures":{"1":{"patterns":[{"match":"\\\\*","name":"storage.modifier.pointer.cpp"},{"captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{"name":"comment.block.cpp"},"4":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&","name":"invalid.illegal.reference-type.cpp"},{"match":"\\\\&","name":"storage.modifier.reference.cpp"}]},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{"name":"comment.block.cpp"},"5":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{"patterns":[{"include":"#inline_comment"}]},"7":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{"name":"comment.block.cpp"},"9":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"12":{"name":"comment.block.cpp"},"13":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"14":{"name":"entity.name.type.alias.cpp"}},"match":"(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()(\\\\*)(?:\\\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)?)(?:\\\\s+)?(?:(\\\\[)(\\\\w*)(\\\\])(?:\\\\s+)?)*(\\\\))(?:\\\\s+)?(\\\\()","beginCaptures":{"1":{"name":"meta.qualified_type.cpp","patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{"match":"(?","endCaptures":{"0":{"name":"punctuation.section.angle-brackets.end.template.call.cpp"}},"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_context"}]},{"match":"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*","name":"entity.name.type.cpp"}]},"2":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"3":{"patterns":[{"include":"#inline_comment"}]},"4":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{"name":"comment.block.cpp"},"6":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"7":{"patterns":[{"include":"#inline_comment"}]},"8":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{"name":"comment.block.cpp"},"10":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{"patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{"match":"(?]|\\\\n)(?!\\\\()","endCaptures":{"1":{"name":"punctuation.section.parameters.end.bracket.round.function.pointer.cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{"name":"comment.block.cpp"},"5":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"patterns":[{"include":"#function_parameter_context"}]}]},"typedef_struct":{"begin":"((?|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"name":"meta.block.struct.cpp","patterns":[{"begin":"\\\\G ?","beginCaptures":{},"end":"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))","endCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.struct.cpp"}},"name":"meta.head.struct.cpp","patterns":[{"include":"#ever_present_context"},{"include":"#inheritance_context"},{"include":"#template_call_range"}]},{"begin":"(?<=\\\\{|<%|\\\\?\\\\?<)","beginCaptures":{},"end":"\\\\}|%>|\\\\?\\\\?>","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.struct.cpp"}},"name":"meta.body.struct.cpp","patterns":[{"include":"#function_pointer"},{"include":"#static_assert"},{"include":"#constructor_inline"},{"include":"#destructor_inline"},{"include":"$self"}]},{"begin":"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)","endCaptures":{},"name":"meta.tail.struct.cpp","patterns":[{"captures":{"1":{"patterns":[{"match":"\\\\*","name":"storage.modifier.pointer.cpp"},{"captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{"name":"comment.block.cpp"},"4":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&","name":"invalid.illegal.reference-type.cpp"},{"match":"\\\\&","name":"storage.modifier.reference.cpp"}]},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{"name":"comment.block.cpp"},"5":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{"patterns":[{"include":"#inline_comment"}]},"7":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{"name":"comment.block.cpp"},"9":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"12":{"name":"comment.block.cpp"},"13":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"14":{"name":"entity.name.type.alias.cpp"}},"match":"(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"name":"meta.block.union.cpp","patterns":[{"begin":"\\\\G ?","beginCaptures":{},"end":"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))","endCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.union.cpp"}},"name":"meta.head.union.cpp","patterns":[{"include":"#ever_present_context"},{"include":"#inheritance_context"},{"include":"#template_call_range"}]},{"begin":"(?<=\\\\{|<%|\\\\?\\\\?<)","beginCaptures":{},"end":"\\\\}|%>|\\\\?\\\\?>","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.union.cpp"}},"name":"meta.body.union.cpp","patterns":[{"include":"#function_pointer"},{"include":"#static_assert"},{"include":"#constructor_inline"},{"include":"#destructor_inline"},{"include":"$self"}]},{"begin":"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)","endCaptures":{},"name":"meta.tail.union.cpp","patterns":[{"captures":{"1":{"patterns":[{"match":"\\\\*","name":"storage.modifier.pointer.cpp"},{"captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{"name":"comment.block.cpp"},"4":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&","name":"invalid.illegal.reference-type.cpp"},{"match":"\\\\&","name":"storage.modifier.reference.cpp"}]},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{"name":"comment.block.cpp"},"5":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{"patterns":[{"include":"#inline_comment"}]},"7":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{"name":"comment.block.cpp"},"9":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"12":{"name":"comment.block.cpp"},"13":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"},"14":{"name":"entity.name.type.alias.cpp"}},"match":"(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?","endCaptures":{"0":{"name":"punctuation.section.angle-brackets.end.template.call.cpp"}},"name":"meta.template.call.cpp","patterns":[{"include":"#template_call_context"}]},{"match":"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*","name":"entity.name.type.cpp"}]},"7":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"8":{"patterns":[{"include":"#inline_comment"}]},"9":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"12":{"patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{"match":"(?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))"},"undef":{"captures":{"1":{"name":"keyword.control.directive.undef.cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"4":{"name":"punctuation.definition.directive.cpp"},"5":{"patterns":[{"include":"#inline_comment"}]},"6":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"7":{"name":"entity.name.function.preprocessor.cpp"}},"match":"(^((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(#)(?:\\\\s+)?undef\\\\b)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))","endCaptures":{"1":{"name":"punctuation.terminator.statement.cpp"},"2":{"name":"punctuation.terminator.statement.cpp"}},"name":"meta.block.union.cpp","patterns":[{"begin":"\\\\G ?","beginCaptures":{},"end":"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))","endCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.union.cpp"}},"name":"meta.head.union.cpp","patterns":[{"include":"#ever_present_context"},{"include":"#inheritance_context"},{"include":"#template_call_range"}]},{"begin":"(?<=\\\\{|<%|\\\\?\\\\?<)","beginCaptures":{},"end":"\\\\}|%>|\\\\?\\\\?>","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.union.cpp"}},"name":"meta.body.union.cpp","patterns":[{"include":"#function_pointer"},{"include":"#static_assert"},{"include":"#constructor_inline"},{"include":"#destructor_inline"},{"include":"$self"}]},{"begin":"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*","beginCaptures":{},"end":"[\\\\s]*(?=;)","endCaptures":{},"name":"meta.tail.union.cpp","patterns":[{"include":"$self"}]}]},"union_declare":{"captures":{"1":{"name":"storage.type.union.declare.cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"4":{"name":"entity.name.type.union.cpp"},"5":{"patterns":[{"match":"\\\\*","name":"storage.modifier.pointer.cpp"},{"captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{"name":"comment.block.cpp"},"4":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&","name":"invalid.illegal.reference-type.cpp"},{"match":"\\\\&","name":"storage.modifier.reference.cpp"}]},"6":{"patterns":[{"include":"#inline_comment"}]},"7":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"8":{"patterns":[{"include":"#inline_comment"}]},"9":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]},"12":{"name":"variable.other.object.declare.cpp"},"13":{"patterns":[{"include":"#inline_comment"}]},"14":{"patterns":[{"captures":{"1":{"name":"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{"name":"comment.block.cpp"},"3":{"name":"comment.block.cpp punctuation.definition.comment.end.cpp"}},"match":"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+"}]}},"match":"((?|(?:(?:[^'\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)?((?\\\\s*)?\\\\()","name":"entity.name.function.vala"}]},"keywords":{"patterns":[{"match":"(?<=^|[^@\\\\w\\\\.])(as|do|if|in|is|not|or|and|for|get|new|out|ref|set|try|var|base|case|else|enum|lock|null|this|true|void|weak|async|break|catch|class|const|false|owned|throw|using|while|with|yield|delete|extern|inline|params|public|return|sealed|signal|sizeof|static|struct|switch|throws|typeof|unlock|default|dynamic|ensures|finally|foreach|private|unowned|virtual|abstract|continue|delegate|internal|override|requires|volatile|construct|interface|namespace|protected|errordomain)\\\\b","name":"keyword.vala"},{"match":"(?<=^|[^@\\\\w\\\\.])(bool|double|float|unichar|unichar2|char|uchar|int|uint|long|ulong|short|ushort|size_t|ssize_t|string|string16|string32|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64|va_list|time_t)\\\\b","name":"keyword.vala"},{"match":"(#if|#elif|#else|#endif)","name":"keyword.vala"}]},"strings":{"patterns":[{"begin":"\\"\\"\\"","end":"\\"\\"\\"","name":"string.quoted.triple.vala"},{"begin":"@\\"","end":"\\"","name":"string.quoted.interpolated.vala","patterns":[{"match":"\\\\\\\\.","name":"constant.character.escape.vala"},{"match":"\\\\$\\\\w+","name":"constant.character.escape.vala"},{"match":"\\\\$\\\\(([^)(]|\\\\(([^)(]|\\\\([^)]*\\\\))*\\\\))*\\\\)","name":"constant.character.escape.vala"}]},{"begin":"\\"","end":"\\"","name":"string.quoted.double.vala","patterns":[{"match":"\\\\\\\\.","name":"constant.character.escape.vala"}]},{"begin":"'","end":"'","name":"string.quoted.single.vala","patterns":[{"match":"\\\\\\\\.","name":"constant.character.escape.vala"}]},{"match":"/((\\\\\\\\/)|([^/]))*/(?=\\\\s*[,;)\\\\.\\\\n])","name":"string.regexp.vala"}]},"types":{"patterns":[{"match":"(?<=^|[^@\\\\w\\\\.])(bool|double|float|unichar|unichar2|char|uchar|int|uint|long|ulong|short|ushort|size_t|ssize_t|string|string16|string32|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64|va_list|time_t)\\\\b","name":"storage.type.primitive.vala"},{"match":"\\\\b([A-Z]+\\\\w*)\\\\b","name":"entity.name.type.vala"}]},"variables":{"patterns":[{"match":"\\\\b([_a-z]+\\\\w*)\\\\b","name":"variable.other.vala"}]}},"scopeName":"source.vala"}`)),e=[a];export{e as default}; ================================================ FILE: jesse/static/_nuxt/BFk92hFI.js ================================================ import{_ as C}from"./CvhZxjKo.js";import{d as E,a4 as I,S as b,c as w,r as p,a0 as _,B as M,e as O,f as V,g as i,C as f,i as e,t as j,j as o,N as D,x as L,k as P,q as F,af as J,ag as q,s as S}from"./CU_MfyYc.js";import{_ as A}from"./CqvT4tPC.js";import{_ as H}from"./CYcD1Eih.js";import{_ as G}from"./C4bX54si.js";import{u as K}from"./Cwg39VG_.js";const Q={key:0,class:"space-y-6"},W={class:"mb-4"},X={class:"space-y-4"},Y={class:"space-y-4"},Z={class:"space-y-3"},ee={class:"flex gap-2"},te={class:"flex gap-2"},se={class:"space-y-4"},ae={class:"space-y-2"},oe={class:"space-y-4"},le={key:1},ne={class:"mb-8"},ie={class:"flex items-center select-none flex-1 mb-4"},ue={class:"flex items-center select-none flex-1 mb-4"},re={class:"select-none"},me={class:"grid grid-cols-1 gap-6"},de={key:0,class:"space-y-4"},ce={key:1},ye=E({__name:"index",setup(pe){K({title:"Optimization - Jesse"});const k=I(),h=b(),a=w(()=>h.form),u=p(!1),v=p(!0),r=p([]),z=w(()=>_().jesseSupportedTimeframes.map(l=>({label:l,value:l})));M(()=>{setTimeout(async()=>{x();try{const t=(sessionStorage.getItem("previousRoute")||"").match(/\/optimization\/[^\/]+$/);if(sessionStorage.removeItem("previousRoute"),!t){const s=await h.getRunningSession();if(s){g(`/optimization/${s}`);return}}}finally{v.value=!1}},50)});const m=p([]);async function x(){m.value=await _().getExchangeSupportedSymbols(a.value.exchange);for(let l=0;l1){S("error","Optimization mode does not support multiple routes at the moment.");return}u.value=!0;const l=await b().start();l&&l.status==="success"&&g(`/optimization/${l.id}?status=running`),u.value=!1}function g(l){k.push(l)}return(l,t)=>{const s=C,d=D,N=A,R=H,c=P,T=J,$=q,y=j,B=G;return i(),O(B,null,{left:V(()=>[v.value?(i(),f("div",Q,[o("div",W,[e(s,{class:"h-4 w-20 mb-2"}),e(s,{class:"h-12 w-full"})]),o("div",X,[e(s,{class:"h-4 w-24"}),e(s,{class:"h-32 w-full"})]),o("div",Y,[e(s,{class:"h-4 w-20"}),o("div",Z,[e(s,{class:"h-4 w-32"}),o("div",ee,[e(s,{class:"h-12 flex-1"}),e(s,{class:"h-12 flex-1"})]),e(s,{class:"h-4 w-32"}),o("div",te,[e(s,{class:"h-12 flex-1"}),e(s,{class:"h-12 flex-1"})])])]),o("div",se,[e(s,{class:"h-4 w-32"}),o("div",ae,[e(s,{class:"h-3 w-full"}),e(s,{class:"h-3 w-3/4"}),e(s,{class:"h-3 w-1/2"})]),e(s,{class:"h-12 w-full"})]),o("div",oe,[e(s,{class:"h-4 w-16"}),e(s,{class:"h-16 w-full"})])])):(i(),f("div",le,[e(d,{class:"mb-4",title:"Exchange"}),e(N,{modelValue:a.value.exchange,"onUpdate:modelValue":t[0]||(t[0]=n=>a.value.exchange=n),placeholder:"Select an exchange...",searchable:"",options:L(_)().backtestingExchangeNames,size:"lg",class:"mt-2 mb-16",onChange:x},null,8,["modelValue","options"]),e(R,{"total-routes-error":r.value,form:a.value,mode:"optimization",symbols:m.value,timeframes:z.value},null,8,["total-routes-error","form","symbols","timeframes"]),e(d,{class:"mt-16 mb-4",title:"Duration"}),o("div",ne,[t[9]||(t[9]=o("h3",{class:"text-sm font-medium text-gray-700 dark:text-gray-200 mb-2"},"Training Period",-1)),o("div",ie,[e(c,{modelValue:a.value.training_start_date,"onUpdate:modelValue":t[1]||(t[1]=n=>a.value.training_start_date=n),type:"date",variant:"outline",size:"lg",class:"w-full mr-2"},null,8,["modelValue"]),e(c,{modelValue:a.value.training_finish_date,"onUpdate:modelValue":t[2]||(t[2]=n=>a.value.training_finish_date=n),type:"date",variant:"outline",size:"lg",class:"w-full ml-2"},null,8,["modelValue"])])]),o("div",null,[t[10]||(t[10]=o("h3",{class:"text-sm font-medium text-gray-700 dark:text-gray-200 mb-2"},"Testing Period",-1)),o("div",ue,[e(c,{modelValue:a.value.testing_start_date,"onUpdate:modelValue":t[3]||(t[3]=n=>a.value.testing_start_date=n),type:"date",variant:"outline",size:"lg",class:"w-full mr-2"},null,8,["modelValue"]),e(c,{modelValue:a.value.testing_finish_date,"onUpdate:modelValue":t[4]||(t[4]=n=>a.value.testing_finish_date=n),type:"date",variant:"outline",size:"lg",class:"w-full ml-2"},null,8,["modelValue"])])]),e(d,{class:"mt-16 mb-4",title:"Optimal Trades"}),o("div",re,[t[11]||(t[11]=o("p",{class:"text-sm text-gray-500 dark:text-gray-400"},[F(" The number that tells Jesse how many trades you would find optimal for your strategy in the targeted time period so that it can filter out those DNAs that cause too few trades. "),o("a",{href:"https://docs.jesse.trade/docs/optimize/executing-the-optimize-mode.html",target:"_blank",class:"font-semibold hover:underline italic"},"More Details...")],-1)),t[12]||(t[12]=o("br",null,null,-1)),e(T,{modelValue:a.value.optimal_total,"onUpdate:modelValue":t[5]||(t[5]=n=>a.value.optimal_total=n),title:"Optimal number of trades:"},null,8,["modelValue"])]),e(d,{class:"mt-16 mb-4",title:"Options"}),o("div",me,[e($,{modelValue:a.value.fast_mode,"onUpdate:modelValue":t[6]||(t[6]=n=>a.value.fast_mode=n),title:"Fast Mode",description:"Runs the backtest faster using an improved algorithm."},null,8,["modelValue"])])]))]),right:V(()=>[v.value?(i(),f("div",de,[e(s,{class:"h-16 w-full"}),e(s,{class:"h-16 w-full"})])):(i(),f("div",ce,[e(y,{class:"w-full flex justify-center",icon:"i-heroicons-bolt",size:"xl",variant:"solid",label:"Start",disabled:u.value,loading:u.value,trailing:!1,onClick:t[7]||(t[7]=n=>U())},null,8,["disabled","loading"]),e(y,{class:"w-full flex justify-center mt-4",icon:"i-heroicons-clock",size:"xl",variant:"solid",color:"gray",label:"History",trailing:!1,onClick:t[8]||(t[8]=n=>g("/optimization/history"))})]))]),_:1})}}});export{ye as default}; ================================================ FILE: jesse/static/_nuxt/BGLI1Hdo.js ================================================ /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var e={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"}]},o={defaultToken:"",tokenPostfix:".pascaligo",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["begin","block","case","const","else","end","fail","for","from","function","if","is","nil","of","remove","return","skip","then","type","var","while","with","option","None","transaction"],typeKeywords:["bool","int","list","map","nat","record","string","unit","address","map","mtz","xtz"],operators:["=",">","<","<=",">=","<>",":",":=","and","mod","or","+","-","*","/","@","&","^","%"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\(\*]+/,"comment"],[/\*\)/,"comment","@pop"],[/\(\*/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}};export{e as conf,o as language}; ================================================ FILE: jesse/static/_nuxt/BHOwM8T6.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"Clarity","name":"clarity","patterns":[{"include":"#expression"},{"include":"#define-constant"},{"include":"#define-data-var"},{"include":"#define-map"},{"include":"#define-function"},{"include":"#define-fungible-token"},{"include":"#define-non-fungible-token"},{"include":"#define-trait"},{"include":"#use-trait"}],"repository":{"built-in-func":{"begin":"(\\\\()\\\\s*(\\\\-|\\\\+|<\\\\=|>\\\\=|<|>|\\\\*|/|and|append|as-contract|as-max-len\\\\?|asserts!|at-block|begin|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|buff-to-int-be|buff-to-int-le|buff-to-uint-be|buff-to-uint-le|concat|contract-call\\\\?|contract-of|default-to|element-at|element-at\\\\?|filter|fold|from-consensus-buff\\\\?|ft-burn\\\\?|ft-get-balance|ft-get-supply|ft-mint\\\\?|ft-transfer\\\\?|get-block-info\\\\?|get-burn-block-info\\\\?|get-stacks-block-info\\\\?|get-tenure-info\\\\?|get-burn-block-info\\\\?|hash160|if|impl-trait|index-of|index-of\\\\?|int-to-ascii|int-to-utf8|is-eq|is-err|is-none|is-ok|is-some|is-standard|keccak256|len|log2|map|match|merge|mod|nft-burn\\\\?|nft-get-owner\\\\?|nft-mint\\\\?|nft-transfer\\\\?|not|or|pow|principal-construct\\\\?|principal-destruct\\\\?|principal-of\\\\?|print|replace-at\\\\?|secp256k1-recover\\\\?|secp256k1-verify|sha256|sha512|sha512/256|slice\\\\?|sqrti|string-to-int\\\\?|string-to-uint\\\\?|stx-account|stx-burn\\\\?|stx-get-balance|stx-transfer-memo\\\\?|stx-transfer\\\\?|to-consensus-buff\\\\?|to-int|to-uint|try!|unwrap!|unwrap-err!|unwrap-err-panic|unwrap-panic|xor)\\\\s+","beginCaptures":{"1":{"name":"punctuation.built-in-function.start.clarity"},"2":{"name":"keyword.declaration.built-in-function.clarity"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.built-in-function.end.clarity"}},"name":"meta.built-in-function","patterns":[{"include":"#expression"},{"include":"#user-func"}]},"comment":{"match":"(?<=^|[()\\\\[\\\\]{}\\",'\`;\\\\s])(;).*$","name":"comment.line.semicolon.clarity"},"data-type":{"patterns":[{"include":"#comment"},{"comment":"numerics","match":"\\\\b(uint|int)\\\\b","name":"entity.name.type.numeric.clarity"},{"comment":"principal","match":"\\\\b(principal)\\\\b","name":"entity.name.type.principal.clarity"},{"comment":"bool","match":"\\\\b(bool)\\\\b","name":"entity.name.type.bool.clarity"},{"captures":{"1":{"name":"punctuation.string_type-def.start.clarity"},"2":{"name":"entity.name.type.string_type.clarity"},"3":{"name":"constant.numeric.string_type-len.clarity"},"4":{"name":"punctuation.string_type-def.end.clarity"}},"match":"(\\\\()\\\\s*(?:(string-ascii|string-utf8)\\\\s+(\\\\d+))\\\\s*(\\\\))"},{"captures":{"1":{"name":"punctuation.buff-def.start.clarity"},"2":{"name":"entity.name.type.buff.clarity"},"3":{"name":"constant.numeric.buf-len.clarity"},"4":{"name":"punctuation.buff-def.end.clarity"}},"match":"(\\\\()\\\\s*(buff)\\\\s+(\\\\d+)\\\\s*(\\\\))"},{"begin":"(\\\\()\\\\s*(optional)\\\\s+","beginCaptures":{"1":{"name":"punctuation.optional-def.start.clarity"},"2":{"name":"storage.type.modifier"}},"comment":"optional","end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.optional-def.end.clarity"}},"name":"meta.optional-def","patterns":[{"include":"#data-type"}]},{"begin":"(\\\\()\\\\s*(response)\\\\s+","beginCaptures":{"1":{"name":"punctuation.response-def.start.clarity"},"2":{"name":"storage.type.modifier"}},"comment":"response","end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.response-def.end.clarity"}},"name":"meta.response-def","patterns":[{"include":"#data-type"}]},{"begin":"(\\\\()\\\\s*(list)\\\\s+(\\\\d+)\\\\s+","beginCaptures":{"1":{"name":"punctuation.list-def.start.clarity"},"2":{"name":"entity.name.type.list.clarity"},"3":{"name":"constant.numeric.list-len.clarity"}},"comment":"list","end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.list-def.end.clarity"}},"name":"meta.list-def","patterns":[{"include":"#data-type"}]},{"begin":"(\\\\{)","beginCaptures":{"1":{"name":"punctuation.tuple-def.start.clarity"}},"end":"(\\\\})","endCaptures":{"1":{"name":"punctuation.tuple-def.end.clarity"}},"name":"meta.tuple-def","patterns":[{"match":"([a-zA-Z][\\\\w\\\\?\\\\!\\\\-]*)(?=:)","name":"entity.name.tag.tuple-data-type-key.clarity"},{"include":"#data-type"}]}]},"define-constant":{"begin":"(\\\\()\\\\s*(define-constant)\\\\s+([a-zA-Z][\\\\w\\\\?\\\\!\\\\-]*)\\\\s+","beginCaptures":{"1":{"name":"punctuation.define-constant.start.clarity"},"2":{"name":"keyword.declaration.define-constant.clarity"},"3":{"name":"entity.name.constant-name.clarity variable.other.clarity"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.define-constant.end.clarity"}},"name":"meta.define-constant","patterns":[{"include":"#expression"}]},"define-data-var":{"begin":"(\\\\()\\\\s*(define-data-var)\\\\s+([a-zA-Z][\\\\w\\\\?\\\\!\\\\-]*)\\\\s+","beginCaptures":{"1":{"name":"punctuation.define-data-var.start.clarity"},"2":{"name":"keyword.declaration.define-data-var.clarity"},"3":{"name":"entity.name.data-var-name.clarity variable.other.clarity"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.define-data-var.end.clarity"}},"name":"meta.define-data-var","patterns":[{"include":"#data-type"},{"include":"#expression"}]},"define-function":{"begin":"(\\\\()\\\\s*(define-(?:public|private|read-only))\\\\s+","beginCaptures":{"1":{"name":"punctuation.define-function.start.clarity"},"2":{"name":"keyword.declaration.define-function.clarity"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.define-function.end.clarity"}},"name":"meta.define-function","patterns":[{"include":"#expression"},{"begin":"(\\\\()\\\\s*([a-zA-Z][\\\\w\\\\?\\\\!\\\\-]*)\\\\s*","beginCaptures":{"1":{"name":"punctuation.function-signature.start.clarity"},"2":{"name":"entity.name.function.clarity"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.function-signature.end.clarity"}},"name":"meta.define-function-signature","patterns":[{"begin":"(\\\\()\\\\s*([a-zA-Z][\\\\w\\\\?\\\\!\\\\-]*)\\\\s+","beginCaptures":{"1":{"name":"punctuation.function-argument.start.clarity"},"2":{"name":"variable.parameter.clarity"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.function-argument.end.clarity"}},"name":"meta.function-argument","patterns":[{"include":"#data-type"}]}]},{"include":"#user-func"}]},"define-fungible-token":{"captures":{"1":{"name":"punctuation.define-fungible-token.start.clarity"},"2":{"name":"keyword.declaration.define-fungible-token.clarity"},"3":{"name":"entity.name.fungible-token-name.clarity variable.other.clarity"},"4":{"name":"constant.numeric.fungible-token-total-supply.clarity"},"5":{"name":"punctuation.define-fungible-token.end.clarity"}},"match":"(\\\\()\\\\s*(define-fungible-token)\\\\s+([a-zA-Z][\\\\w\\\\?\\\\!\\\\-]*)(?:\\\\s+(u\\\\d+))?"},"define-map":{"begin":"(\\\\()\\\\s*(define-map)\\\\s+([a-zA-Z][\\\\w\\\\?\\\\!\\\\-]*)\\\\s+","beginCaptures":{"1":{"name":"punctuation.define-map.start.clarity"},"2":{"name":"keyword.declaration.define-map.clarity"},"3":{"name":"entity.name.map-name.clarity variable.other.clarity"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.define-map.end.clarity"}},"name":"meta.define-map","patterns":[{"include":"#data-type"},{"include":"#expression"}]},"define-non-fungible-token":{"begin":"(\\\\()\\\\s*(define-non-fungible-token)\\\\s+([a-zA-Z][\\\\w\\\\?\\\\!\\\\-]*)\\\\s+","beginCaptures":{"1":{"name":"punctuation.define-non-fungible-token.start.clarity"},"2":{"name":"keyword.declaration.define-non-fungible-token.clarity"},"3":{"name":"entity.name.non-fungible-token-name.clarity variable.other.clarity"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.define-non-fungible-token.end.clarity"}},"name":"meta.define-non-fungible-token","patterns":[{"include":"#data-type"}]},"define-trait":{"begin":"(\\\\()\\\\s*(define-trait)\\\\s+([a-zA-Z][\\\\w\\\\?\\\\!\\\\-]*)\\\\s+","beginCaptures":{"1":{"name":"punctuation.define-trait.start.clarity"},"2":{"name":"keyword.declaration.define-trait.clarity"},"3":{"name":"entity.name.trait-name.clarity variable.other.clarity"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.define-trait.end.clarity"}},"name":"meta.define-trait","patterns":[{"begin":"(\\\\()\\\\s*","beginCaptures":{"1":{"name":"punctuation.define-trait-body.start.clarity"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.define-trait-body.end.clarity"}},"name":"meta.define-trait-body","patterns":[{"include":"#expression"},{"begin":"(\\\\()\\\\s*([a-zA-Z][\\\\w\\\\!\\\\?\\\\-]*)\\\\s+","beginCaptures":{"1":{"name":"punctuation.trait-function.start.clarity"},"2":{"name":"entity.name.function.clarity"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.trait-function.end.clarity"}},"name":"meta.trait-function","patterns":[{"include":"#data-type"},{"begin":"(\\\\()\\\\s*","beginCaptures":{"1":{"name":"punctuation.trait-function-args.start.clarity"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.trait-function-args.end.clarity"}},"name":"meta.trait-function-args","patterns":[{"include":"#data-type"}]}]}]}]},"expression":{"patterns":[{"include":"#comment"},{"include":"#keyword"},{"include":"#literal"},{"include":"#let-func"},{"include":"#built-in-func"},{"include":"#get-set-func"}]},"get-set-func":{"begin":"(\\\\()\\\\s*(var-get|var-set|map-get\\\\?|map-set|map-insert|map-delete|get)\\\\s+([a-zA-Z][\\\\w\\\\?\\\\!\\\\-]*)\\\\s*","beginCaptures":{"1":{"name":"punctuation.get-set-func.start.clarity"},"2":{"name":"keyword.control.clarity"},"3":{"name":"variable.other.clarity"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.get-set-func.end.clarity"}},"name":"meta.get-set-func","patterns":[{"include":"#expression"}]},"keyword":{"match":"(?","endCaptures":{"0":{"name":"punctuation.definition.comment.block.end.powershell"}},"name":"comment.block.powershell","patterns":[{"include":"#commentEmbeddedDocs"}]},{"match":"[2-6]>&1|>>|>|<<|<|>|>\\\\||[1-6]>|[1-6]>>","name":"keyword.operator.redirection.powershell"},{"include":"#commands"},{"include":"#commentLine"},{"include":"#variable"},{"include":"#subexpression"},{"include":"#function"},{"include":"#attribute"},{"include":"#UsingDirective"},{"include":"#type"},{"include":"#hashtable"},{"include":"#doubleQuotedString"},{"include":"#scriptblock"},{"comment":"Needed to parse stuff correctly in 'argument mode'. (See about_parsing.)","include":"#doubleQuotedStringEscapes"},{"applyEndPatternLast":true,"begin":"['\\\\x{2018}-\\\\x{201B}]","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.powershell"}},"end":"['\\\\x{2018}-\\\\x{201B}]","endCaptures":{"0":{"name":"punctuation.definition.string.end.powershell"}},"name":"string.quoted.single.powershell","patterns":[{"match":"['\\\\x{2018}-\\\\x{201B}]{2}","name":"constant.character.escape.powershell"}]},{"begin":"(@[\\"\\\\x{201C}-\\\\x{201E}])\\\\s*$","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.powershell"}},"end":"^[\\"\\\\x{201C}-\\\\x{201E}]@","endCaptures":{"0":{"name":"punctuation.definition.string.end.powershell"}},"name":"string.quoted.double.heredoc.powershell","patterns":[{"include":"#variableNoProperty"},{"include":"#doubleQuotedStringEscapes"},{"include":"#interpolation"}]},{"begin":"(@['\\\\x{2018}-\\\\x{201B}])\\\\s*$","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.powershell"}},"end":"^['\\\\x{2018}-\\\\x{201B}]@","endCaptures":{"0":{"name":"punctuation.definition.string.end.powershell"}},"name":"string.quoted.single.heredoc.powershell"},{"include":"#numericConstant"},{"begin":"(@)(\\\\()","beginCaptures":{"1":{"name":"keyword.other.array.begin.powershell"},"2":{"name":"punctuation.section.group.begin.powershell"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.group.end.powershell"}},"name":"meta.group.array-expression.powershell","patterns":[{"include":"$self"}]},{"begin":"((\\\\$))(\\\\()","beginCaptures":{"1":{"name":"keyword.other.substatement.powershell"},"2":{"name":"punctuation.definition.subexpression.powershell"},"3":{"name":"punctuation.section.group.begin.powershell"}},"comment":"TODO: move to repo; make recursive.","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.group.end.powershell"}},"name":"meta.group.complex.subexpression.powershell","patterns":[{"include":"$self"}]},{"match":"(\\\\b(([A-Za-z0-9\\\\-_\\\\.]+)\\\\.(?i:exe|com|cmd|bat))\\\\b)","name":"support.function.powershell"},{"match":"(?{1,5})}","name":"constant.character.escape.powershell"},{"match":"\`u(?:\\\\{[0-9a-fA-F]{,6}.)?","name":"invalid.character.escape.powershell"}]},"variable":{"patterns":[{"captures":{"0":{"name":"constant.language.powershell"},"1":{"name":"punctuation.definition.variable.powershell"}},"comment":"These are special constants.","match":"(\\\\$)(?i:(False|Null|True))\\\\b"},{"captures":{"0":{"name":"support.constant.variable.powershell"},"1":{"name":"punctuation.definition.variable.powershell"},"3":{"name":"variable.other.member.powershell"}},"comment":"These are the other built-in constants.","match":"(\\\\$)(?i:(Error|ExecutionContext|Host|Home|PID|PsHome|PsVersionTable|ShellID))((?:\\\\.(?:\\\\p{L}|\\\\d|_)+)*\\\\b)?\\\\b"},{"captures":{"0":{"name":"support.variable.automatic.powershell"},"1":{"name":"punctuation.definition.variable.powershell"},"3":{"name":"variable.other.member.powershell"}},"comment":"Automatic variables are not constants, but they are read-only. In monokai (default) color schema support.variable doesn't have color, so we use constant.","match":"(\\\\$)((?:[$^?])|(?i:_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This)\\\\b)((?:\\\\.(?:\\\\p{L}|\\\\d|_)+)*\\\\b)?"},{"captures":{"0":{"name":"variable.language.powershell"},"1":{"name":"punctuation.definition.variable.powershell"},"3":{"name":"variable.other.member.powershell"}},"comment":"Style preference variables as language variables so that they stand out.","match":"(\\\\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|InformationPreference|LogCommandHealthEvent|LogCommandLifecycleEvent|LogEngineHealthEvent|LogEngineLifecycleEvent|LogProviderHealthEvent|LogProviderLifecycleEvent|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|PSCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoLoadingPreference|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|ProgressPreference|VerbosePreference|WarningPreference|WhatIfPreference))((?:\\\\.(?:\\\\p{L}|\\\\d|_)+)*\\\\b)?\\\\b"},{"captures":{"0":{"name":"variable.other.readwrite.powershell"},"1":{"name":"punctuation.definition.variable.powershell"},"2":{"name":"storage.modifier.scope.powershell"},"4":{"name":"variable.other.member.powershell"}},"match":"(?i:(\\\\$|@)(global|local|private|script|using|workflow):((?:\\\\p{L}|\\\\d|_)+))((?:\\\\.(?:\\\\p{L}|\\\\d|_)+)*\\\\b)?"},{"captures":{"0":{"name":"variable.other.readwrite.powershell"},"1":{"name":"punctuation.definition.variable.powershell"},"2":{"name":"punctuation.section.braces.begin.powershell"},"3":{"name":"storage.modifier.scope.powershell"},"5":{"name":"punctuation.section.braces.end.powershell"},"6":{"name":"variable.other.member.powershell"}},"match":"(?i:(\\\\$)(\\\\{)(global|local|private|script|using|workflow):([^}]*[^}\`])(\\\\}))((?:\\\\.(?:\\\\p{L}|\\\\d|_)+)*\\\\b)?"},{"captures":{"0":{"name":"variable.other.readwrite.powershell"},"1":{"name":"punctuation.definition.variable.powershell"},"2":{"name":"support.variable.drive.powershell"},"4":{"name":"variable.other.member.powershell"}},"match":"(?i:(\\\\$|@)((?:\\\\p{L}|\\\\d|_)+:)?((?:\\\\p{L}|\\\\d|_)+))((?:\\\\.(?:\\\\p{L}|\\\\d|_)+)*\\\\b)?"},{"captures":{"0":{"name":"variable.other.readwrite.powershell"},"1":{"name":"punctuation.definition.variable.powershell"},"2":{"name":"punctuation.section.braces.begin.powershell"},"3":{"name":"support.variable.drive.powershell"},"5":{"name":"punctuation.section.braces.end.powershell"},"6":{"name":"variable.other.member.powershell"}},"match":"(?i:(\\\\$)(\\\\{)((?:\\\\p{L}|\\\\d|_)+:)?([^}]*[^}\`])(\\\\}))((?:\\\\.(?:\\\\p{L}|\\\\d|_)+)*\\\\b)?"}]},"variableNoProperty":{"patterns":[{"captures":{"0":{"name":"constant.language.powershell"},"1":{"name":"punctuation.definition.variable.powershell"}},"comment":"These are special constants.","match":"(\\\\$)(?i:(False|Null|True))\\\\b"},{"captures":{"0":{"name":"support.constant.variable.powershell"},"1":{"name":"punctuation.definition.variable.powershell"},"3":{"name":"variable.other.member.powershell"}},"comment":"These are the other built-in constants.","match":"(\\\\$)(?i:(Error|ExecutionContext|Host|Home|PID|PsHome|PsVersionTable|ShellID))\\\\b"},{"captures":{"0":{"name":"support.variable.automatic.powershell"},"1":{"name":"punctuation.definition.variable.powershell"},"3":{"name":"variable.other.member.powershell"}},"comment":"Automatic variables are not constants, but they are read-only...","match":"(\\\\$)((?:[$^?])|(?i:_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This)\\\\b)"},{"captures":{"0":{"name":"variable.language.powershell"},"1":{"name":"punctuation.definition.variable.powershell"},"3":{"name":"variable.other.member.powershell"}},"comment":"Style preference variables as language variables so that they stand out.","match":"(\\\\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|InformationPreference|LogCommandHealthEvent|LogCommandLifecycleEvent|LogEngineHealthEvent|LogEngineLifecycleEvent|LogProviderHealthEvent|LogProviderLifecycleEvent|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|PSCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoLoadingPreference|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|ProgressPreference|VerbosePreference|WarningPreference|WhatIfPreference))\\\\b"},{"captures":{"0":{"name":"variable.other.readwrite.powershell"},"1":{"name":"punctuation.definition.variable.powershell"},"2":{"name":"storage.modifier.scope.powershell"},"4":{"name":"variable.other.member.powershell"}},"match":"(?i:(\\\\$)(global|local|private|script|using|workflow):((?:\\\\p{L}|\\\\d|_)+))"},{"captures":{"0":{"name":"variable.other.readwrite.powershell"},"1":{"name":"punctuation.definition.variable.powershell"},"2":{"name":"storage.modifier.scope.powershell"},"4":{"name":"keyword.other.powershell"},"5":{"name":"variable.other.member.powershell"}},"match":"(?i:(\\\\$)(\\\\{)(global|local|private|script|using|workflow):([^}]*[^}\`])(\\\\}))"},{"captures":{"0":{"name":"variable.other.readwrite.powershell"},"1":{"name":"punctuation.definition.variable.powershell"},"2":{"name":"support.variable.drive.powershell"},"4":{"name":"variable.other.member.powershell"}},"match":"(?i:(\\\\$)((?:\\\\p{L}|\\\\d|_)+:)?((?:\\\\p{L}|\\\\d|_)+))"},{"captures":{"0":{"name":"variable.other.readwrite.powershell"},"1":{"name":"punctuation.definition.variable.powershell"},"2":{"name":"punctuation.section.braces.begin"},"3":{"name":"support.variable.drive.powershell"},"5":{"name":"punctuation.section.braces.end"}},"match":"(?i:(\\\\$)(\\\\{)((?:\\\\p{L}|\\\\d|_)+:)?([^}]*[^}\`])(\\\\}))"}]}},"scopeName":"source.powershell","aliases":["ps","ps1"]}`)),t=[e];export{t as default}; ================================================ FILE: jesse/static/_nuxt/BILxekzW.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"Haskell","fileTypes":["hs","hs-boot","hsig"],"name":"haskell","patterns":[{"include":"#liquid_haskell"},{"include":"#comment_like"},{"include":"#numeric_literals"},{"include":"#string_literal"},{"include":"#char_literal"},{"match":"(?\\\\((?:[^\\\\(\\\\)]*|\\\\g)*\\\\)))|('?(?\\\\((?:[^\\\\[\\\\]]*|\\\\g)*\\\\])))\\\\s*(?:(?|⇒)(?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]\`{}_\\"']])"},"cpp":{"captures":{"1":{"name":"punctuation.definition.preprocessor.c"}},"comment":"In addition to Haskell's \\"native\\" syntax, GHC permits the C preprocessor to be run on a source file.","match":"^(#).*$","name":"meta.preprocessor.c"},"data_constructor":{"match":"\\\\b(?|→)","endCaptures":{"1":{"name":"keyword.operator.period.haskell"},"2":{"name":"keyword.operator.arrow.haskell"}},"patterns":[{"include":"#comment_like"},{"include":"#type_variable"},{"include":"#type_signature"}]},"fun_decl":{"begin":"^(\\\\s*)(?(?:[\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*\\\\#*|\\\\(\\\\s*(?!--+\\\\))[\\\\p{S}\\\\p{P}&&[^(),:;\\\\[\\\\]\`{}_\\"']][\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]\`{}_\\"']]*\\\\s*\\\\))(?:\\\\s*,\\\\s*\\\\g)?)\\\\s*(?[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(\\\\.\\\\g)?)","name":"entity.name.namespace.haskell"},"numeric_literals":{"patterns":[{"include":"#float_literals"},{"include":"#integer_literals"}]},"overloaded_label":{"patterns":[{"captures":{"1":{"name":"keyword.operator.prefix.hash.haskell"},"2":{"patterns":[{"include":"#string_literal"}]}},"match":"(?|→)|(-<|↢)|(-<<|⤛)|(>-|⤚)|(>>-|⤜)|(∀))(?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]\`{}_\\"'']])"},{"captures":{"1":{"name":"keyword.operator.postfix.hash.haskell"}},"match":"(?<=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}\\\\p{S}\\\\p{P}&&[^\\\\#,;\\\\[\`{]])(\\\\#+)(?![\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}\\\\p{S}\\\\p{P}&&[^),;\\\\]\`}]])"},{"captures":{"1":{"name":"keyword.operator.infix.tight.at.haskell"}},"match":"(?<=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}\\\\)\\\\}\\\\]])(@)(?=[\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}\\\\(\\\\[\\\\{])"},{"captures":{"1":{"name":"keyword.operator.prefix.tilde.haskell"},"2":{"name":"keyword.operator.prefix.bang.haskell"},"3":{"name":"keyword.operator.prefix.minus.haskell"},"4":{"name":"keyword.operator.prefix.dollar.haskell"},"5":{"name":"keyword.operator.prefix.double-dollar.haskell"}},"match":"(?|⇒","name":"keyword.operator.big-arrow.haskell"},{"include":"#string_literal"},{"match":"'[^']'","name":"invalid"},{"include":"#type_application"},{"include":"#reserved_symbol"},{"include":"#type_operator"},{"include":"#type_constructor"},{"begin":"(\\\\()(#)","beginCaptures":{"1":{"name":"punctuation.paren.haskell"},"2":{"name":"keyword.operator.hash.haskell"}},"end":"(#)(\\\\))","endCaptures":{"1":{"name":"keyword.operator.hash.haskell"},"2":{"name":"punctuation.paren.haskell"}},"patterns":[{"include":"#comma"},{"include":"#type_signature"}]},{"begin":"(')?(\\\\()","beginCaptures":{"1":{"name":"keyword.operator.promotion.haskell"},"2":{"name":"punctuation.paren.haskell"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.paren.haskell"}},"patterns":[{"include":"#comma"},{"include":"#type_signature"}]},{"begin":"(')?(\\\\[)","beginCaptures":{"1":{"name":"keyword.operator.promotion.haskell"},"2":{"name":"punctuation.bracket.haskell"}},"end":"(\\\\])","endCaptures":{"1":{"name":"punctuation.bracket.haskell"}},"patterns":[{"include":"#comma"},{"include":"#type_signature"}]},{"include":"#type_variable"}]},"type_variable":{"match":"\\\\b(?|-|_)","name":"entity.name.tag.css.sass.symbol","patterns":[{"include":"#interpolation"},{"include":"#pseudo-class"}]},{"begin":"#","end":"$\\\\n?|(?=\\\\s|,|\\\\(|\\\\)|\\\\.|\\\\[|>)","name":"entity.other.attribute-name.id.css.sass","patterns":[{"include":"#interpolation"},{"include":"#pseudo-class"}]},{"begin":"\\\\.|(?<=&)(-|_)","end":"$\\\\n?|(?=\\\\s|,|\\\\(|\\\\)|\\\\[|>)","name":"entity.other.attribute-name.class.css.sass","patterns":[{"include":"#interpolation"},{"include":"#pseudo-class"}]},{"begin":"\\\\[","end":"\\\\]","name":"entity.other.attribute-selector.sass","patterns":[{"include":"#double-quoted"},{"include":"#single-quoted"},{"match":"\\\\^|\\\\$|\\\\*|~","name":"keyword.other.regex.sass"}]},{"match":"^((?<=\\\\]|\\\\)|not\\\\(|\\\\*|>|>\\\\s)|\\n*):[a-z:-]+|(::|:-)[a-z:-]+","name":"entity.other.attribute-name.pseudo-class.css.sass"},{"include":"#module"},{"match":"[\\\\w-]*\\\\(","name":"entity.name.function"},{"match":"\\\\)","name":"entity.name.function.close"},{"begin":":","end":"$\\\\n?|(?=\\\\s\\\\(|and\\\\(|\\\\),)","name":"meta.property-list.css.sass.prop","patterns":[{"match":"(?<=:)[a-z-]+\\\\s","name":"support.type.property-name.css.sass.prop.name"},{"include":"#double-slash"},{"include":"#double-quoted"},{"include":"#single-quoted"},{"include":"#interpolation"},{"include":"#curly-brackets"},{"include":"#variable"},{"include":"#rgb-value"},{"include":"#numeric"},{"include":"#unit"},{"include":"#module"},{"match":"--.+?(?=\\\\))","name":"variable.css"},{"match":"[\\\\w-]*\\\\(","name":"entity.name.function"},{"match":"\\\\)","name":"entity.name.function.close"},{"include":"#flag"},{"include":"#comma"},{"include":"#semicolon"},{"include":"#function"},{"include":"#function-content"},{"include":"#operator"},{"include":"#parent-selector"},{"include":"#property-value"}]},{"include":"#rgb-value"},{"include":"#function"},{"include":"#function-content"},{"begin":"(?<=})(?!\\\\n|\\\\(|\\\\)|[a-zA-Z0-9_-]+:)","end":"\\\\s|(?=,|\\\\.|\\\\[|\\\\)|\\\\n)","name":"entity.name.tag.css.sass","patterns":[{"include":"#interpolation"},{"include":"#pseudo-class"}]},{"include":"#operator"},{"match":"[a-z-]+((?=:|#{))","name":"support.type.property-name.css.sass.prop.name"},{"include":"#reserved-words"},{"include":"#property-value"}],"repository":{"colon":{"match":":","name":"meta.property-list.css.sass.colon"},"comma":{"match":"\\\\band\\\\b|\\\\bor\\\\b|,","name":"comment.punctuation.comma.sass"},"comment-param":{"match":"\\\\@(\\\\w+)","name":"storage.type.class.jsdoc"},"comment-tag":{"begin":"(?<={{)","end":"(?=}})","name":"comment.tag.sass"},"curly-brackets":{"match":"{|}","name":"invalid"},"dotdotdot":{"match":"\\\\.\\\\.\\\\.","name":"variable.other"},"double-quoted":{"begin":"\\"","end":"\\"","name":"string.quoted.double.css.sass","patterns":[{"include":"#quoted-interpolation"}]},"double-slash":{"begin":"//","end":"$\\\\n?","name":"comment.line.sass","patterns":[{"include":"#comment-tag"}]},"flag":{"match":"!(important|default|optional|global)","name":"keyword.other.important.css.sass"},"function":{"match":"(?<=[\\\\s|\\\\(|,|:])(?!url|format|attr)[a-zA-Z0-9_-][\\\\w-]*(?=\\\\()","name":"support.function.name.sass"},"function-content":{"begin":"(?<=url\\\\(|format\\\\(|attr\\\\()","end":".(?=\\\\))","name":"string.quoted.double.css.sass"},"import-quotes":{"match":"[\\"']?\\\\.{0,2}[\\\\w/]+[\\"']?","name":"constant.character.css.sass"},"interpolation":{"begin":"#{","end":"}","name":"support.function.interpolation.sass","patterns":[{"include":"#variable"},{"include":"#numeric"},{"include":"#operator"},{"include":"#unit"},{"include":"#comma"},{"include":"#double-quoted"},{"include":"#single-quoted"}]},"module":{"captures":{"1":{"name":"constant.character.module.name"},"2":{"name":"constant.numeric.module.dot"}},"match":"([\\\\w-]+?)(\\\\.)","name":"constant.character.module"},"numeric":{"match":"(-|\\\\.)?[0-9]+(\\\\.[0-9]+)?","name":"constant.numeric.css.sass"},"operator":{"match":"\\\\+|\\\\s-\\\\s|\\\\s-(?=\\\\$)|(?<=\\\\()-(?=\\\\$)|\\\\s-(?=\\\\()|\\\\*|/|%|=|!|<|>|~","name":"keyword.operator.sass"},"parent-selector":{"match":"&","name":"entity.name.tag.css.sass"},"parenthesis-close":{"match":"\\\\)","name":"entity.name.function.parenthesis.close"},"parenthesis-open":{"match":"\\\\(","name":"entity.name.function.parenthesis.open"},"placeholder-selector":{"begin":"(?{w("close")},f=async()=>{if(S.value=!0,!b.value.description){oe("error","Please enter a description."),S.value=!1;return}const{data:d,error:r}=await at("/system/report-exception",{description:b.value.description,email:b.value.email,traceback:"manual report",mode:"live",attach_logs:!0,session_id:_.session},!0);if(S.value=!1,r.value&&r.value.statusCode!==200){oe("error",`[${r.value.statusCode}]: ${r.value.statusText}`);return}const k=d.value;k.status==="success"?(b.value.description="",b.value.email="",oe("success",k.message),c()):k.status==="error"&&oe("error",k.message)};return(d,r)=>{const k=nt,P=Be,D=lt,O=we,Q=ot;return a(),v(W,null,[r[5]||(r[5]=p("p",null," If you think something is wrong with your running live session, you can submit a report. By submitting this form, the logs of this session will be sent to Jesse's developers so we can see what's going on. ",-1)),r[6]||(r[6]=p("br",null,null,-1)),r[7]||(r[7]=p("p",null,[B("Your exchange API keys and strategies are safe and "),p("b",null,"are never sent to us.")],-1)),r[8]||(r[8]=p("br",null,null,-1)),m(Q,{state:u(b),class:"space-y-4",onSubmit:f},{default:C(()=>[m(P,{label:"Email (optional)",help:"Enter your email address for us to know who sent the email and possibly reply back to you."},{default:C(()=>[m(k,{modelValue:u(b).email,"onUpdate:modelValue":r[0]||(r[0]=H=>u(b).email=H),placeholder:"Email address...",type:"email"},null,8,["modelValue"])]),_:1}),r[3]||(r[3]=p("br",null,null,-1)),m(P,{label:"Description:",name:"Description"},{default:C(()=>[m(D,{modelValue:u(b).description,"onUpdate:modelValue":r[1]||(r[1]=H=>u(b).description=H),rows:10,placeholder:"Describe what you think is wrong in this session..."},null,8,["modelValue"])]),_:1}),r[4]||(r[4]=p("br",null,null,-1)),p("div",jt,[p("div",Dt,[m(O,{color:"gray",variant:"ghost",class:"mr-2",label:"Cancel",onClick:r[2]||(r[2]=H=>c())}),m(O,{type:"submit",class:"w-48 flex justify-center",label:"Submit",loading:u(S),disabled:u(S)},null,8,["loading","disabled"])])])]),_:1},8,["state"])],64)}}}),Nt={class:"mb-16"},qt={key:0,class:"rounded overflow-hidden border-2 border-gray-100 dark:border-gray-600 p-4"},Bt={key:2},Ft=ne({__name:"CandlesChart",props:{form:{},results:{}},setup(z){const o=it(),w=E(()=>ut().params.id),S=x(!0),_=x(2),b=x(null),c=z,f=x();let d=null,r=null;const k={orderEntries:{},positionEntry:null};let P=null,D=null;const O=x({}),Q=E(()=>o.value),H=E(()=>c.form.exchange),A=E(()=>{var t,i;return`${H.value}-${((t=c.results.selectedRoute)==null?void 0:t.symbol)||""}-${((i=c.results.selectedRoute)==null?void 0:i.timeframe)||""}`}),Y=E(()=>c.results.currentCandles),X=E(()=>{const t=c.results.positions.find(i=>i[0].value===c.results.selectedRoute.symbol);return t===void 0?[]:t}),Z=E(()=>{var t,i;return((i=(t=X.value)==null?void 0:t[2])==null?void 0:i.value)??0}),ee=E(()=>{var i,n;const t=Number(((n=(i=X.value)==null?void 0:i[1])==null?void 0:n.value)??0);return t>0?"long":t<0?"short":"close"});q(Q,t=>{ye(t)}),q(Z,(t,i)=>{r!==null&&t!==i&&pe()}),q(()=>c.results.orders,()=>{r!==null&&(fe(),me())},{deep:!0});let U=null;function M(){U||(U=setTimeout(async()=>{U=null,await J()},750))}const ce=E(()=>{var i,n;const t=c.results.generalInfo||{};return[c.results.phase,c.form.exchange,(i=c.results.selectedRoute)==null?void 0:i.symbol,(n=c.results.selectedRoute)==null?void 0:n.timeframe,t.count_trades,t.count_active_orders].join("|")});q(ce,()=>{r&&["running","stopping"].includes(c.results.phase)&&M()});function me(){var T;if(!r||!((T=c.results.selectedRoute)!=null&&T.symbol))return;const t=A.value,i=O.value[t]||[],n=new Set(i.map(y=>y.order_id)),l=c.results.orders.filter(y=>y.status==="EXECUTED"&&y.executed_at&&y.symbol===c.results.selectedRoute.symbol&&!n.has(y.id));if(l.length>0){const y=l.map(R=>ae(R,c.results.selectedRoute.timeframe));O.value[t]=[...i,...y],te()}}async function J(){var i;if(!r||!((i=c.results.selectedRoute)!=null&&i.symbol))return;const t=A.value;try{const l=await de().fetchOrdersHistory({limit:500,offset:0,id_search:w.value,status_filter:"EXECUTED",symbol_filter:c.results.selectedRoute.symbol,exchange_filter:c.form.exchange||null,date_filter:"90_days",type_filter:null,side_filter:null});if(l.orders&&l.orders.length>0){const T=l.orders.filter(y=>y.executed_at).map(y=>ae(y,c.results.selectedRoute.timeframe));O.value[t]=T,te()}}catch(n){console.error("Failed to refresh executed order markers:",n)}}q(Y,(t,i)=>{r!==null&&ge(t[A.value],t[A.value])}),Pe(async()=>{D=setTimeout(async()=>{await K()},200)});async function K(){var t,i;S.value=!0,b.value=null;try{await de().fetchCandles(w.value);const n=Se(c.results.candles);if(n){S.value=!1,b.value=n,console.error("Candle data validation failed:",n);return}S.value=!1,await dt();const l=f.value;if(!l)return;qe.width=l.clientWidth,d=Lt(l,qe),d.applyOptions({watermark:{visible:!0,fontSize:16,horzAlign:"left",vertAlign:"bottom",color:"#888",text:`${c.results.selectedRoute.symbol} • ${c.results.selectedRoute.timeframe}`}}),r=d.addCandlestickSeries();const T=(c.results.candles||[]).map(y=>{const R=ve(y==null?void 0:y.time);return R===null?null:{...y,time:R}}).filter(Boolean);if(r.setData(T),T.length>0){const y=T[T.length-1];P=y==null?void 0:y.time}else P=null;d.timeScale().fitContent(),r.applyOptions({priceFormat:{type:"price",precision:_.value,minMove:.01}}),ge((t=c.results.candles)==null?void 0:t[0],(i=c.results.candles)==null?void 0:i[1]),pe(),fe(),await Te(),ye(Q.value)}catch(n){S.value=!1,b.value=(n==null?void 0:n.message)||"An unexpected error occurred while loading the chart",console.error("Failed to initialize candle chart:",n),le()}}async function Te(){var i,n;if(!r||!((i=c.results.selectedRoute)!=null&&i.symbol))return;const t=A.value;if(((n=O.value[t])==null?void 0:n.length)>0){te();return}try{const T=await de().fetchOrdersHistory({limit:500,offset:0,id_search:w.value,status_filter:"EXECUTED",symbol_filter:c.results.selectedRoute.symbol,exchange_filter:c.form.exchange||null,date_filter:"90_days",type_filter:null,side_filter:null});if(T.orders&&T.orders.length>0){const y=T.orders.filter(R=>R.executed_at).map(R=>ae(R,c.results.selectedRoute.timeframe));O.value[t]=y,te()}}catch(l){console.error("Failed to load historical executed orders:",l)}}ct(()=>{le(),D&&(clearTimeout(D),D=null)});function le(){d!==null&&(d.remove(),d=null),r&&(r=null),P=null}function Ce(t){const i={m:60,h:3600,d:86400,w:604800},n=t.match(/^(\d+)([mhdw])$/);return n?parseInt(n[1])*i[n[2]]:60}function $e(t,i){const n=Math.floor(t/1e3),l=Ce(i);return Math.floor(n/l)*l}function ae(t,i){var l;const n=((l=t.side)==null?void 0:l.toLowerCase())||"buy";return{time:$e(t.executed_at,i),position:n==="buy"?"belowBar":"aboveBar",color:n==="buy"?"#2196F3":"#e91e63",shape:n==="buy"?"arrowUp":"arrowDown",text:n.toUpperCase(),order_id:t.id}}function te(){if(!r)return;const t=A.value,i=O.value[t]||[],n=Array.from(new Map(i.map(l=>[l.order_id,l])).values()).sort((l,T)=>l.time-T.time).slice(-500);O.value[t]=n,r.setMarkers(n)}function pe(){const t=ee.value==="long"?"#00AB5C":"#FF497D";if(k.positionEntry&&r.removePriceLine(k.positionEntry),Number(Z.value)>0){const i={price:Number(Z.value),color:t,lineWidth:1,lineStyle:0,axisLabelVisible:!0,title:"Entry Price"};k.positionEntry=r.createPriceLine(i)}}function fe(){var i,n;const t=(n=(i=X.value)==null?void 0:i[0])==null?void 0:n.value;if(t){for(const l in k.orderEntries)r.removePriceLine(k.orderEntries[l]),delete k.orderEntries[l];c.results.orders.forEach(l=>{const T=l.side==="buy"?"#00AB5C":"#FF497D",y=xe.startCase(xe.lowerCase(`${l.side} ${l.type}`));if((l.status==="ACTIVE"||l.status==="QUEUED")&&l.symbol===t){const R={price:Number(l.price),color:T,lineWidth:1,lineStyle:0,axisLabelVisible:!0,title:y};k.orderEntries[l.id]=r.createPriceLine(R)}})}}function ge(t,i){if(!(!t||!i)&&c.results.candles.length!==0&&!b.value)try{const n=String(t.open).indexOf("."),l=n===-1?0:String(t.open).length-n-1,T=String(i.open).indexOf("."),y=T===-1?0:String(i.open).length-T-1,R=l>y?l:y;_.value=R,(_.value<0||_.value>100)&&(_.value=0),r.applyOptions({priceFormat:{type:"price",precision:_.value,minMove:Math.pow(10,-R).toFixed(R)}});const e=c.results.currentCandles[A.value];if(!e)return;const s=be(e,-1);if(s){console.warn("Received invalid candle update, skipping:",s);return}const j=ve(e.time);if(j===null||P!==null&&jl),...t.slice(-5).map((n,l)=>t.length-5+l)].filter((n,l,T)=>T.indexOf(n)===l&&n>=0&&n{const n=Et,l=we,T=St;return a(),v("div",Nt,[u(S)?(a(),v("div",qt,[m(n,{class:"h-4 w-full mb-4"}),m(n,{class:"h-4 w-2/3 mb-4"}),m(n,{class:"h-4 w-1/2 mb-4"}),m(n,{class:"h-4 w-full mb-4"}),m(n,{class:"h-4 w-full mb-4"}),m(n,{class:"h-4 w-2/3 mb-4"}),m(n,{class:"h-4 w-full mb-4"}),m(n,{class:"h-4 w-full"})])):u(b)?(a(),$(T,{key:1,icon:"i-heroicons-exclamation-triangle",color:"amber",variant:"subtle",title:"Unable to display candle chart",description:u(b)},{actions:C(()=>[m(l,{variant:"solid",color:"white",size:"xs",icon:"i-heroicons-arrow-path",onClick:Le},{default:C(()=>i[0]||(i[0]=[B(" Retry ")])),_:1})]),_:1},8,["description"])):h("",!0),mt(p("div",{ref_key:"chartContainer",ref:f,class:"rounded overflow-hidden border-2 border-gray-100 dark:border-gray-600"},null,512),[[pt,!u(S)&&!u(b)]]),c.form.routes.length>1&&!u(b)?(a(),v("div",Bt,[(a(!0),v(W,null,re(c.form.routes,y=>(a(),$(l,{key:y.symbol,variant:"soft",color:"gray",disabled:t.results.selectedRoute.symbol===y.symbol&&t.results.selectedRoute.timeframe===y.timeframe,class:"mt-2 mr-2",onClick:R=>Ee(y)},{default:C(()=>[B(I(y.symbol)+" • "+I(y.timeframe),1)]),_:2},1032,["disabled","onClick"]))),128))])):h("",!0)])}}}),zt={class:"flex justify-end mb-4"},Ht=ne({__name:"LiveClosedTrades",props:{trades:{},sessionId:{}},emits:["trade-click","reload"],setup(z,{emit:o}){const w=z,S=o,_=x(!1),b=E(()=>{if(!w.trades.length)return[];const d=[];for(const r of w.trades)d.push([{value:r.symbol,style:"text-xs"},{value:r.type,style:F.colorBasedOnType(r.type)},{value:F.roundPrice(r.entry_price),style:"text-xs"},{value:r.exit_price?F.roundPrice(r.exit_price):"-",style:"text-xs"},{value:r.qty,style:"text-xs"},{value:r.pnl!==null?`${xe.round(r.pnl,2)} (${xe.round(r.pnl_percentage,2)}%)`:"-",style:r.pnl!==null?F.colorBasedOnNumber(r.pnl):""},{value:F.timestampToTimeOnly(r.opened_at),style:"text-xs",tooltip:F.timestampToTime(r.opened_at)},{value:r.status,style:r.status==="open"?"text-blue-600 dark:text-blue-400":"text-gray-600 dark:text-gray-400"}]);return d});function c(d){if(d>=0&&d{_.value=!1},1e3)}return(d,r)=>{const k=we,P=Ue,D=Fe;return a(),v("div",null,[p("div",zt,[m(k,{icon:"i-heroicons-arrow-path",size:"xs",variant:"soft",color:"gray",loading:u(_),label:"Reload Trades",class:"font-bold uppercase tracking-wider text-[10px]",onClick:f},null,8,["loading"])]),u(b).length?(a(),$(P,{key:0,data:u(b),"header-items":["Symbol","Type","Entry","Exit","QTY","PNL","Opened","Status"],header:"",clickable:!0,onRowClick:c},null,8,["data"])):(a(),$(D,{key:1,class:"mt-4"}))])}}}),Jt=ne({__name:"LiveOrders",props:{orders:{}},emits:["order-click"],setup(z,{emit:o}){const w=z,S=o,_=E(()=>{if(!w.orders.length)return[];const c=[];for(let f=w.orders.length-1;f>=0;f--){const d=w.orders[f];c.push([{value:d.id.slice(-12),style:"text-xs",tooltip:d.id,tag:"code"},{value:F.timestampToTimeOnly(d.created_at),style:"text-xs",tooltip:F.timestampToTime(d.created_at)},{value:d.symbol,style:"text-xs"},{value:d.type,style:"text-xs"},{value:d.side,style:F.colorBasedOnSide(d.side)},{value:d.price,style:"text-xs"},{value:d.qty,style:F.colorBasedOnSide(d.side)},{value:d.status,style:"text-xs"}])}return c});function b(c){const f=w.orders.length-1-c;if(f>=0&&f{const d=Ue,r=Fe;return u(_).length?(a(),$(d,{key:0,data:u(_),"header-items":["ID","Created","Symbol","Type","Side","Price","QTY","Status"],header:"",clickable:!0,onRowClick:b},null,8,["data"])):(a(),$(r,{key:1}))}}}),Wt={key:0,class:"flex flex-col items-center justify-center mt-[6%]"},Kt=["textContent"],Qt={class:"mt-8"},Yt={key:1,class:"mx-auto container mt-8"},Gt={key:0,"data-cy":"live-page-content"},Xt={class:"flex justify-between items-center"},Zt={class:"grid grid-cols-1 gap-6"},es={class:"flex justify-between items-center"},ts={key:1},ss={key:0,class:"mb-8"},rs={class:"flex justify-between items-center mb-4"},os={class:"flex gap-2"},ns=["onClick"],ls={key:0,class:"text-sm text-gray-500 dark:text-gray-400"},as={class:"mt-12 mb-6 p-1 bg-gray-50 dark:bg-gray-900/50 border dark:border-gray-700 rounded-2xl flex items-center gap-1"},is=["onClick"],us={key:0,class:"w-2 h-2 rounded-full shrink-0 bg-green-500"},ds={class:"truncate"},cs={key:0,class:"mt-8 lg:mt-0"},ms={key:3,class:"grid grid-cols-2 gap-4 mt-4"},ps={key:4,class:"grid grid-cols-2 gap-4 mt-4"},fs={key:1,"data-cy":"live-action-button"},gs={key:0,class:"my-8 border-2 dark:border-gray-600 rounded-full"},ys={key:1,class:"bg-white dark:bg-gray-800 border dark:border-gray-700 rounded-lg overflow-hidden"},vs={class:"px-6 py-4 space-y-3"},bs={class:"text-sm font-medium text-gray-500 dark:text-gray-400"},hs={key:2,class:"mt-8 bg-white dark:bg-gray-800 border dark:border-gray-700 rounded-lg overflow-hidden"},_s={class:"px-6 py-4 space-y-3"},ks={class:"text-sm font-medium text-gray-500 dark:text-gray-400 shrink-0"},xs={class:"text-sm font-semibold text-gray-900 dark:text-gray-100 sm:text-right whitespace-pre-wrap overflow-x-auto max-w-full"},ws={key:3,class:"mt-8 bg-white dark:bg-gray-800 border dark:border-gray-700 rounded-lg overflow-hidden select-none"},Ts={class:"px-6 py-4 space-y-4"},Cs={class:"text-sm font-bold text-gray-900 dark:text-gray-100 truncate pr-2"},$s={class:"text-sm text-gray-500 dark:text-gray-400 truncate text-center px-2"},Es={class:"flex justify-end ml-auto"},Ss={key:4,class:"mt-8 bg-white dark:bg-gray-800 border dark:border-gray-700 rounded-lg overflow-hidden select-none"},Ls={class:"px-6 py-4 border-b dark:border-gray-700 bg-gray-100 dark:bg-gray-700/50 flex justify-between items-center"},Rs={class:"text-xs font-bold text-gray-900 dark:text-gray-100 uppercase tracking-wider"},Vs={class:"px-6 py-4"},Is={key:0,class:"text-sm text-gray-600 dark:text-gray-300 whitespace-pre-wrap"},Ps={key:1,class:"text-sm text-gray-400 dark:text-gray-500 italic text-center py-2"},Us=ne({__name:"LiveTab",props:{form:{},results:{},session:{},tabs:{}},setup(z){const o=z,w=E(()=>o.results.generalInfo.title?`${o.results.generalInfo.title} - Live Session - Jesse`:"Live Session - Jesse");ze({title:w});const S=x([]),_=x(!1),b=x(!1),c=x(!1),f=x(!1),d=x(!1),r=x(!1),k=x(!1),P=x(!1),D=x(!1),O=x(!1),Q=x(null),H=x(null),A=x("positions"),Y=x(!1),X=x(null),Z=x(null),ee=x("auto"),U=De(),M=de(),ce=E(()=>["running","stopping"].includes(o.results.phase)&&!o.results.exception.error),me=e=>e?F.timestampToTime(e):"-",J=x([]);async function K(){if(o.results.phase==="editing"){if(!o.form.paper_mode){const e=U.exchangeApiKeys.find(s=>s.id===o.form.exchange_api_key_id);e&&(o.form.exchange=e.exchange)}try{J.value=await De().getExchangeSupportedSymbols(o.form.exchange);for(let e=0;e0)for(let e=0;e{setTimeout(async()=>{o.form.exchange&&(o.results.phase==="editing"||!J.value.length)&&await K()},200),["running","stopping","ended"].includes(o.results.phase)&&await M.fetchEquityCurve(o.session,ee.value)}),q(()=>o.form.exchange,async(e,s)=>{e!==s&&await K()}),q(()=>o.results.phase,async e=>{e==="editing"&&await K()});const Te=ft(()=>{o.results.phase==="editing"&&M.saveState(o.session)},1e3);q(()=>o.form,()=>{Te()},{deep:!0}),q(()=>o.form.exchange_api_key_id,async(e,s)=>{e!==s&&await K()}),q(Y,async e=>{if(e){const s=await M.getSessionData(o.session);s!=null&&s.session&&(X.value=s.session.title||null,Z.value=s.session.description||null)}});function le(e){o.results.generalInfo.title=e.title||null,o.results.generalInfo.description=e.description||null}const Ce=E(()=>{var V;const e=o.results.generalInfo||{},s=e.exchange||o.form.exchange||"-",j=e.started_at||((V=o.results.generalInfo)==null?void 0:V.started_at),N=e.pnl!==void 0&&e.pnl!==null&&e.pnl_perc!==void 0&&e.pnl_perc!==null,Re=e.started_balance!==void 0&&e.started_balance!==null&&e.current_balance!==void 0&&e.current_balance!==null,ie=N?e.pnl>0?"text-green-500":e.pnl<0?"text-rose-500":"":"",se=[{label:"Exchange",value:s},{label:"Current Time",value:me(e.current_time)},{label:"Debug Mode",value:e.debug_mode??o.form.debug_mode??"-"},{label:"Paper Trade",value:e.paper_mode??o.form.paper_mode??"-"},{label:"PNL",value:N?`${e.pnl} (${e.pnl_perc}%)`:"-",color:ie},{label:"Started",value:me(j)},{label:"Started/Current Balance",value:Re?`${e.started_balance} / ${e.current_balance}`:"-"},{label:"Trades",value:`${e.count_trades??0}`}],he=e.leverage_type||"spot";return he!=="spot"&&(se.push({label:"Available Margin",value:`${e.available_margin??"-"}`}),se.push({label:"Leverage",value:`${e.leverage??"-"}x (${he})`})),se}),$e=E(()=>U.notificationApiKeys.map(e=>({label:`${e.name} - ${e.driver}`,value:e.id}))),ae=E(()=>Math.round(o.results.progressbar.estimated_remaining_seconds)===0?"Please wait...":`${Math.round(o.results.progressbar.estimated_remaining_seconds)} seconds remaining...`),te=E(()=>{let e=[];const s=U.jesseSupportedTimeframes;return U.settings.live.generate_candles_from_1m||!o.form.exchange?e=s.map(j=>U.planLimits.timeframes.includes(j)?{label:j,value:j,disabled:!1}:{label:`${j} (Upgrade required)`,value:j,disabled:!0}):e=U.exchangeInfo[o.form.exchange].supported_timeframes.map(N=>U.planLimits.timeframes.includes(N)?{label:N,value:N,disabled:!1}:{label:`${N} (Upgrade required)`,value:N,disabled:!0}),e}),pe=E(()=>U.liveTradingExchangeNames.map(e=>U.planLimits.exchanges.includes(e)?{label:e,value:e,disabled:!1}:{label:`${e} (Upgrade required)`,value:e,disabled:!0})),fe=E(()=>U.exchangeApiKeys.map(e=>U.planLimits.exchanges.includes(e.exchange)?{label:`${e.exchange} - ${e.name}`,value:e.id,disabled:!1}:{label:`${e.exchange} - ${e.name} (Upgrade required)`,value:e.id,disabled:!0})),ge=M.cancel,ye=M.newLive;function Ee(e){M.start(e)}function ve(e){M.closeTab(e)}async function be(){o.results.infoLogs===""&&o.results.generalInfo.count_info_logs>0&&await M.fetchLogs(o.session),k.value=!0}async function Se(){o.results.errorLogs===""&&o.results.generalInfo.count_error_logs>0&&await M.fetchLogs(o.session),P.value=!0}function Le(){b.value=!0,navigator.clipboard.writeText(o.results.infoLogs),oe("success","Logs copied successfully"),f.value=!0,setTimeout(()=>{f.value=!1},3e3)}function t(){c.value=!0,navigator.clipboard.writeText(o.results.errorLogs),oe("success","Logs copied successfully"),d.value=!0,setTimeout(()=>{d.value=!1},3e3)}const i=E(()=>["basic","pro","enterprise","basic-lifetime","pro-lifetime","enterprise-lifetime","lifetime"].includes(U.plan));function n(e){Q.value=e,D.value=!0}function l(e){H.value=e,O.value=!0}function T(e){A.value=e,e==="trades"&&y()}async function y(){const e=await M.fetchTrades(o.session);e&&(o.results.trades=e)}async function R(e){ee.value=e,await M.fetchEquityCurve(o.session,e)}return q(()=>o.results.phase,async e=>{["running","stopping","ended"].includes(e)&&await M.fetchEquityCurve(o.session,ee.value)},{immediate:!0}),(e,s)=>{const j=st,N=rt,Re=At,ie=gt,se=xt,he=wt,V=we,Oe=Tt,Me=yt,Ve=Ct,He=$t,je=vt,Je=Be,We=Ft,Ke=It,Qe=bt,_e=Pt,Ye=Ue,Ge=Ht,Xe=Jt,Ze=Ut,et=Ot;return a(),v(W,null,[m(j,{modelValue:u(D),"onUpdate:modelValue":s[0]||(s[0]=g=>G(D)?D.value=g:null),"trade-id":u(Q),onOrderClick:l},null,8,["modelValue","trade-id"]),m(N,{modelValue:u(O),"onUpdate:modelValue":s[1]||(s[1]=g=>G(O)?O.value=g:null),"order-id":u(H)},null,8,["modelValue","order-id"]),m(ie,{modelValue:u(r),"onUpdate:modelValue":s[3]||(s[3]=g=>G(r)?r.value=g:null),size:"small",title:"Report An Issue"},{default:C(()=>[m(Re,{session:e.session,onClose:s[2]||(s[2]=g=>r.value=!1)},null,8,["session"])]),_:1},8,["modelValue"]),m(ie,{modelValue:u(k),"onUpdate:modelValue":s[4]||(s[4]=g=>G(k)?k.value=g:null),title:"Info Logs"},{default:C(()=>[m(se,{logs:e.results.infoLogs},null,8,["logs"])]),buttons:C(()=>[p("button",{class:"ml-2 p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full text-gray-400 hover:text-gray-500 dark:hover:text-gray-300 focus:outline-none",onClick:Le},[u(f)?(a(),$(u(Ae),{key:0,class:"h-6 w-6","aria-hidden":"true"})):h("",!0),!u(f)&&e.results.infoLogs.length!=0?(a(),$(u(Ne),{key:1,class:"h-6 w-6","aria-hidden":"true"})):h("",!0)])]),_:1},8,["modelValue"]),m(ie,{modelValue:u(P),"onUpdate:modelValue":s[5]||(s[5]=g=>G(P)?P.value=g:null),title:"Error Logs"},{default:C(()=>[m(se,{logs:e.results.errorLogs},null,8,["logs"])]),buttons:C(()=>[p("button",{class:"ml-2 p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full text-gray-400 hover:text-gray-500 dark:hover:text-gray-300 focus:outline-none",onClick:t},[u(d)?(a(),$(u(Ae),{key:0,class:"h-6 w-6","aria-hidden":"true"})):h("",!0),!u(d)&&e.results.errorLogs.length!=0?(a(),$(u(Ne),{key:1,class:"h-6 w-6","aria-hidden":"true"})):h("",!0)])]),_:1},8,["modelValue"]),e.results.phase==="starting"?(a(),v("div",Wt,[p("div",null,[m(he,{progress:e.results.progressbar.current},null,8,["progress"])]),e.results.exception.error?h("",!0):(a(),v("h3",{key:0,class:"mt-8 animate-pulse",textContent:I(u(ae))},null,8,Kt)),p("div",Qt,[e.form.debug_mode?(a(),$(V,{key:0,icon:"i-heroicons-clipboard-document-list",variant:"solid",label:"View Logs",class:"flex justify-center w-64",onClick:s[6]||(s[6]=g=>k.value=!0)})):h("",!0),m(V,{color:"gray",class:"w-64 flex justify-center mt-4",ui:{color:{gray:{soft:"text-rose-500 dark:text-rose-400"}}},icon:"i-heroicons-no-symbol",variant:"soft",label:"Cancel",trailing:!1,onClick:s[7]||(s[7]=g=>u(ge)((e._.provides[ue]||e.$route).params.id))})]),e.results.exception.error?(a(),v("div",Yt,[m(Oe,{modelValue:u(_),"onUpdate:modelValue":s[8]||(s[8]=g=>G(_)?_.value=g:null),title:e.results.exception.error,content:e.results.exception.traceback,mode:"live","debug-mode":e.form.debug_mode},null,8,["modelValue","title","content","debug-mode"])])):h("",!0)])):(a(),$(Ze,{key:1},{left:C(()=>[e.results.phase==="editing"?(a(),v("div",Gt,[m(Me,{class:"mb-4",title:"Exchange"}),e.form.paper_mode?(a(),$(Ve,{key:0,modelValue:e.form.exchange,"onUpdate:modelValue":s[9]||(s[9]=g=>e.form.exchange=g),placeholder:"Select an exchange...",searchable:"",options:u(pe),"value-attribute":"value",class:"mt-2 mb-16"},null,8,["modelValue","options"])):(a(),$(Ve,{key:1,modelValue:e.form.exchange_api_key_id,"onUpdate:modelValue":s[10]||(s[10]=g=>e.form.exchange_api_key_id=g),placeholder:"Select an exchange...",searchable:"",options:u(fe),"value-attribute":"value",class:"mt-2 mb-16"},{empty:C(()=>[p("div",Xt,[s[21]||(s[21]=p("span",null," No exchange API keys found. Please add at least one: ",-1)),m(V,{to:"/exchange-api-keys",icon:"i-heroicons-plus",type:"link",variant:"solid",size:"sm",label:"Add Exchange API Key"})])]),_:1},8,["modelValue","options"])),m(He,{"total-routes-error":u(S),form:e.form,results:e.results,mode:"live",symbols:u(J),timeframes:u(te)},null,8,["total-routes-error","form","results","symbols","timeframes"]),m(Me,{class:"mt-16 mb-4",title:"Options"}),p("div",Zt,[m(je,{modelValue:e.form.debug_mode,"onUpdate:modelValue":s[11]||(s[11]=g=>e.form.debug_mode=g),title:"Debug Mode",description:"Logs more details, helpful for debugging."},null,8,["modelValue"]),m(je,{modelValue:e.form.paper_mode,"onUpdate:modelValue":s[12]||(s[12]=g=>e.form.paper_mode=g),title:"Paper Trade",disabled:!u(i),"disabled-guide":u(i)?"":"Premium plan required",description:"Trade in real-time using actual exchange data with PAPER money."},null,8,["modelValue","disabled","disabled-guide"]),m(Je,{label:"Notifications:",help:"Select a notification driver to receive notifications"},{default:C(()=>[m(Ve,{modelValue:e.form.notification_api_key_id,"onUpdate:modelValue":s[13]||(s[13]=g=>e.form.notification_api_key_id=g),placeholder:"Select a notification driver",options:u($e),"value-attribute":"value"},{empty:C(()=>[p("div",es,[s[22]||(s[22]=p("span",null," No notification API keys found. Please add at least one: ",-1)),m(V,{to:"/notification-api-keys",icon:"i-heroicons-plus",type:"link",variant:"solid",size:"sm",label:"Add Notification API Key"})])]),_:1},8,["modelValue","options"])]),_:1})])])):h("",!0),["running","stopping","ended","error"].includes(e.results.phase)?(a(),v("div",ts,[e.results.exception.error?(a(),v("div",ss,[m(Oe,{title:e.results.exception.error,content:e.results.exception.traceback,mode:"live","debug-mode":e.form.debug_mode},null,8,["title","content","debug-mode"])])):h("",!0),u(ce)?(a(),$(We,{key:1,results:e.results,form:e.form,exchange:e.form.exchange},null,8,["results","form","exchange"])):h("",!0),["running","stopping","ended"].includes(e.results.phase)?(a(),v("div",{key:2,class:ke(u(ce)?"mt-12":"mt-0")},[p("div",rs,[s[23]||(s[23]=p("h3",{class:"text-lg font-bold text-gray-900 dark:text-gray-100"},"Equity Curve",-1)),p("div",os,[(a(),v(W,null,re(["1m","5m","15m","1h","1d","auto"],g=>p("button",{key:g,class:ke(["px-3 py-1.5 text-xs font-semibold rounded-lg transition-colors duration-200",[u(ee)===g?"bg-primary-500 text-white":"bg-gray-100 dark:bg-gray-700 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-600"]]),onClick:L=>R(g)},I(g.toUpperCase()),11,ns)),64))])]),e.results.charts.equity_curve.length===0?(a(),v("div",ls," No equity data yet. It should appear shortly after the session starts (usually within ~1 minute). ")):(a(),$(Ke,{key:1,data:e.results.charts.equity_curve},null,8,["data"]))],2)):h("",!0),p("div",as,[(a(!0),v(W,null,re([{id:"positions",label:"Positions",count:e.results.generalInfo.open_positions,icon:"i-heroicons-chart-bar"},{id:"trades",label:"Trades",count:e.results.generalInfo.count_trades,icon:"i-heroicons-arrows-right-left"},{id:"orders",label:"Orders",count:e.results.generalInfo.count_active_orders,icon:"i-heroicons-list-bullet"}],g=>(a(),v("button",{key:g.id,class:ke(["flex-1 flex items-center justify-center gap-2 px-4 py-2.5 text-xs font-bold rounded-xl select-none h-10 group focus:outline-none transition-colors duration-200",[u(A)===g.id?"bg-white dark:bg-gray-700 text-gray-900 dark:text-white border border-gray-200 dark:border-gray-600":"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-700/50 border border-transparent"]]),onClick:L=>T(g.id)},[g.id==="positions"&&g.count>0?(a(),v("div",us)):(a(),$(Qe,{key:1,name:g.icon,class:"w-4 h-4 shrink-0"},null,8,["name"])),p("span",ds,I(g.label.toUpperCase()),1),g.count>0?(a(),$(_e,{key:2,color:"gray",variant:"solid",size:"xs",class:"ml-1 px-1.5 py-0 min-w-[1.25rem] flex justify-center text-[10px] font-black rounded-md"},{default:C(()=>[B(I(g.count),1)]),_:2},1024)):h("",!0)],10,is))),128))]),p("div",null,[u(A)==="positions"?(a(),$(Ye,{key:0,data:e.results.positions,"header-items":["Symbol","QTY","Entry","Price","Liq Price","PNL"],header:""},null,8,["data"])):h("",!0),u(A)==="trades"?(a(),$(Ge,{key:1,trades:e.results.trades,"session-id":e.session,onTradeClick:n,onReload:y},null,8,["trades","session-id"])):h("",!0),u(A)==="orders"?(a(),$(Xe,{key:2,orders:e.results.orders,onOrderClick:l},null,8,["orders"])):h("",!0)])])):h("",!0)]),right:C(()=>{var g;return[p("div",null,[["running","stopping","ended","error"].includes(e.results.phase)?(a(),v("div",cs,[e.results.phase==="ended"||e.results.phase==="error"?(a(),$(V,{key:0,class:"w-full flex justify-center",variant:"solid",icon:"i-heroicons-plus",label:"New session",onClick:s[14]||(s[14]=L=>u(ye)((e._.provides[ue]||e.$route).params.id))})):(a(),$(V,{key:1,class:"w-full flex justify-center",variant:"soft",color:"gray",icon:"i-heroicons-no-symbol",label:e.results.phase==="stopping"?"Terminating...":"Terminate",ui:{color:{gray:{soft:"text-rose-500 dark:text-rose-400"}}},onClick:s[15]||(s[15]=L=>u(M).openStopConfirmModal((e._.provides[ue]||e.$route).params.id))},null,8,["label"])),["running","stopping","ended","error"].includes(e.results.phase)?(a(),$(V,{key:2,class:"w-full flex justify-center mt-4",variant:"soft",color:"gray",icon:"i-heroicons-flag",label:"Report",onClick:s[16]||(s[16]=L=>r.value=!0)})):h("",!0),["running","stopping","ended","error"].includes(e.results.phase)?(a(),v("div",ms,[m(V,{color:"gray",variant:"soft",icon:"i-heroicons-clipboard-document-list",class:"flex justify-center",onClick:be},{trailing:C(()=>[m(_e,{color:"gray",variant:"solid",size:"xs",class:"ml-1"},{default:C(()=>[B(I(e.results.generalInfo.count_info_logs),1)]),_:1})]),default:C(()=>[s[24]||(s[24]=B(" Logs "))]),_:1}),m(V,{color:"gray",variant:"soft",icon:"i-heroicons-exclamation-triangle",class:"flex justify-center",onClick:Se},{trailing:C(()=>[m(_e,{color:e.results.generalInfo.count_error_logs>0?"rose":"gray",variant:"solid",size:"xs",class:"ml-1"},{default:C(()=>[B(I(e.results.generalInfo.count_error_logs),1)]),_:1},8,["color"])]),default:C(()=>[s[25]||(s[25]=B(" Errors "))]),_:1})])):h("",!0),["running","stopping","ended","error"].includes(e.results.phase)?(a(),v("div",ps,[m(V,{to:`/live/orders-history?id=${e.session}`,color:"gray",variant:"soft",icon:"i-heroicons-list-bullet",class:"flex justify-center"},{default:C(()=>s[26]||(s[26]=[B(" Orders ")])),_:1},8,["to"]),m(V,{to:`/live/trades-history?id=${e.session}`,color:"gray",variant:"soft",icon:"i-heroicons-arrows-right-left",class:"flex justify-center"},{default:C(()=>s[27]||(s[27]=[B(" Trades ")])),_:1},8,["to"])])):h("",!0)])):(a(),v("div",fs,[m(V,{class:"w-full flex justify-center",icon:"i-heroicons-bolt",label:"Start",trailing:!1,onClick:s[17]||(s[17]=L=>Ee((e._.provides[ue]||e.$route).params.id))}),Object.keys(e.tabs).length>1?(a(),$(V,{key:0,class:"w-full md:hidden flex justify-center mt-2",icon:"i-heroicons-x-mark",variant:"soft",color:"gray",label:"Close Tab",trailing:!1,onClick:s[18]||(s[18]=L=>ve((e._.provides[ue]||e.$route).params.id))})):h("",!0)]))]),["running","stopping","ended","error"].includes(e.results.phase)?(a(),v("hr",gs)):h("",!0),["running","stopping","ended","error"].includes(e.results.phase)?(a(),v("div",ys,[s[28]||(s[28]=p("div",{class:"px-6 py-4 border-b dark:border-gray-700 bg-gray-100 dark:bg-gray-700/50"},[p("h3",{class:"text-xs font-bold text-gray-900 dark:text-gray-100 uppercase tracking-wider"},"Session Info")],-1)),p("dl",vs,[(a(!0),v(W,null,re(u(Ce),L=>(a(),v("div",{key:L.label,class:"flex justify-between items-center"},[p("dt",bs,I(L.label)+":",1),p("dd",{class:ke(["text-sm font-semibold truncate ml-4",L.color||"text-gray-900 dark:text-gray-100"])},I(L.value),3)]))),128))])])):h("",!0),["running","stopping","ended","error"].includes(e.results.phase)&&((g=e.results.watchlist[`${o.form.exchange}-${e.results.selectedRoute.symbol}-${e.results.selectedRoute.timeframe}`])!=null&&g.length)?(a(),v("div",hs,[s[29]||(s[29]=p("div",{class:"px-6 py-4 border-b dark:border-gray-700 bg-gray-100 dark:bg-gray-700/50"},[p("h3",{class:"text-xs font-bold text-gray-900 dark:text-gray-100 uppercase tracking-wider"},"Watch List")],-1)),p("dl",_s,[(a(!0),v(W,null,re(e.results.watchlist[`${o.form.exchange}-${e.results.selectedRoute.symbol}-${e.results.selectedRoute.timeframe}`],(L,Ie)=>(a(),v("div",{key:Ie,class:"flex flex-col sm:flex-row sm:justify-between sm:items-start gap-1"},[p("dt",ks,I(L[0])+":",1),p("dd",xs,I(L[1]),1)]))),128))])])):h("",!0),["running","stopping","ended","error"].includes(e.results.phase)&&e.results.routes.length?(a(),v("div",ws,[s[30]||(s[30]=p("div",{class:"px-6 py-4 border-b dark:border-gray-700 bg-gray-100 dark:bg-gray-700/50"},[p("h3",{class:"text-xs font-bold text-gray-900 dark:text-gray-100 uppercase tracking-wider"},"Routes")],-1)),p("div",Ts,[(a(!0),v(W,null,re(e.results.routes,(L,Ie)=>(a(),v("div",{key:Ie,class:"grid grid-cols-3 items-center"},[p("div",Cs,I(L[2].value),1),p("div",$s,I(L[0].value),1),p("div",Es,[m(_e,{color:"gray",variant:"soft",size:"xs"},{default:C(()=>[B(I(L[1].value),1)]),_:2},1024)])]))),128))])])):h("",!0),["running","stopping","ended","error"].includes(e.results.phase)?(a(),v("div",Ss,[p("div",Ls,[p("h3",Rs,I(e.results.generalInfo.title||"Session Notes"),1),m(V,{variant:"link",color:"gray",icon:"i-heroicons-pencil-square",size:"xs",onClick:s[19]||(s[19]=L=>Y.value=!0)})]),p("div",Vs,[e.results.generalInfo.description?(a(),v("div",Is,I(e.results.generalInfo.description),1)):(a(),v("div",Ps," No notes yet. Click the edit button to add notes. "))])])):h("",!0)]}),_:1})),m(et,{modelValue:u(Y),"onUpdate:modelValue":s[20]||(s[20]=g=>G(Y)?Y.value=g:null),"session-id":e.session,"initial-title":u(X),"initial-description":u(Z),onSaved:le},null,8,["modelValue","session-id","initial-title","initial-description"])],64)}}}),Os={class:"w-full"},nr=ne({__name:"[id]",setup(z){ze({title:"Live/Paper trading - Jesse"});const o=de(),w=E(()=>o.tabs),S=ht(),_=E(()=>S.params.id),b=E(()=>w.value[_.value]);Pe(async()=>{if(!b.value){if(o.recentlyClosedTabIds.includes(_.value))return;!await o.ensureTab(_.value)&&Object.keys(w.value).length===0&&await o.addTab()}}),q(_,f=>{if(!f||w.value[f]||!o.recentlyClosedTabIds.includes(f))return;const d=Object.keys(w.value)[0];if(d){_t(`/live/${d}`);return}o.addTab()},{immediate:!0}),kt(()=>{var r,k;const f=b.value;if(!f)return;const d=(r=f.form.routes)==null?void 0:r[0];!f.results.selectedRoute||Object.keys(f.results.selectedRoute).length===0?d&&(f.results.selectedRoute=d):d&&c(f.results.selectedRoute,d)&&(f.results.selectedRoute=d),f.form.exchange===""&&(f.form.exchange=((k=f.results.generalInfo)==null?void 0:k.exchange)||"")});function c(f,d){return!f||!d?!1:f.symbol===d.symbol&&f.timeframe===d.timeframe&&f.strategy===d.strategy}return Mt({w:()=>{const f=S.params.id;f&&o.requestCloseOrStopTab(f)},ArrowLeft:()=>o.goToPrevTab(_.value),ArrowRight:()=>o.goToNextTab(_.value)}),(f,d)=>{const r=tt,k=Us;return a(),v(W,null,[p("div",Os,[m(r,{"current-tab":b.value?b.value.id:null,tabs:w.value,onClose:u(o).closeTab,onCancel:u(o).cancel},null,8,["current-tab","tabs","onClose","onCancel"])]),b.value?(a(),$(k,{key:0,form:b.value.form,results:b.value.results,session:_.value,tabs:w.value},null,8,["form","results","session","tabs"])):h("",!0)],64)}}});export{nr as default}; ================================================ FILE: jesse/static/_nuxt/BJGe-b2p.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"Scheme","fileTypes":["scm","ss","sch","rkt"],"name":"scheme","patterns":[{"include":"#comment"},{"include":"#block-comment"},{"include":"#sexp"},{"include":"#string"},{"include":"#language-functions"},{"include":"#quote"},{"include":"#illegal"}],"repository":{"block-comment":{"begin":"\\\\#\\\\|","contentName":"comment","end":"\\\\|\\\\#","name":"comment","patterns":[{"include":"#block-comment","name":"comment"}]},"comment":{"begin":"(^[ \\\\t]+)?(?=;)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.scheme"}},"end":"(?!\\\\G)","patterns":[{"begin":";","beginCaptures":{"0":{"name":"punctuation.definition.comment.scheme"}},"end":"\\\\n","name":"comment.line.semicolon.scheme"}]},"constants":{"patterns":[{"match":"#[t|f]","name":"constant.language.boolean.scheme"},{"match":"(?<=[\\\\(\\\\s])((#e|#i)?[0-9]+(\\\\.[0-9]+)?|(#x)[0-9a-fA-F]+|(#o)[0-7]+|(#b)[01]+)(?=[\\\\s;()'\\",\\\\[\\\\]])","name":"constant.numeric.scheme"}]},"illegal":{"match":"[()\\\\[\\\\]]","name":"invalid.illegal.parenthesis.scheme"},"language-functions":{"patterns":[{"match":"(?<=(\\\\s|\\\\(|\\\\[))(do|or|and|else|quasiquote|begin|if|case|set!|cond|let|unquote|define|let\\\\*|unquote-splicing|delay|letrec)(?=(\\\\s|\\\\())","name":"keyword.control.scheme"},{"comment":"\\n\\t\\t\\t\\t\\t\\tThese functions run a test, and return a boolean\\n\\t\\t\\t\\t\\t\\tanswer.\\n\\t\\t\\t\\t\\t","match":"(?<=(\\\\s|\\\\())(char-alphabetic|char-lower-case|char-numeric|char-ready|char-upper-case|char-whitespace|(?:char|string)(?:-ci)?(?:=|<=?|>=?)|atom|boolean|bound-identifier=|char|complex|identifier|integer|symbol|free-identifier=|inexact|eof-object|exact|list|(?:input|output)-port|pair|real|rational|zero|vector|negative|odd|null|string|eq|equal|eqv|even|number|positive|procedure)(\\\\?)(?=(\\\\s|\\\\())","name":"support.function.boolean-test.scheme"},{"comment":"\\n\\t\\t\\t\\t\\t\\tThese functions change one type into another.\\n\\t\\t\\t\\t\\t","match":"(?<=(\\\\s|\\\\())(char->integer|exact->inexact|inexact->exact|integer->char|symbol->string|list->vector|list->string|identifier->symbol|vector->list|string->list|string->number|string->symbol|number->string)(?=(\\\\s|\\\\())","name":"support.function.convert-type.scheme"},{"comment":"\\n\\t\\t\\t\\t\\t\\tThese functions are potentially dangerous because\\n\\t\\t\\t\\t\\t\\tthey have side-effects which could affect other\\n\\t\\t\\t\\t\\t\\tparts of the program.\\n\\t\\t\\t\\t\\t","match":"(?<=(\\\\s|\\\\())(set-(?:car|cdr)|(?:vector|string)-(?:fill|set))(!)(?=(\\\\s|\\\\())","name":"support.function.with-side-effects.scheme"},{"comment":"\\n\\t\\t\\t\\t\\t\\t+, -, *, /, =, >, etc. \\n\\t\\t\\t\\t\\t","match":"(?<=(\\\\s|\\\\())(>=?|<=?|=|[*/+-])(?=(\\\\s|\\\\())","name":"keyword.operator.arithmetic.scheme"},{"match":"(?<=(\\\\s|\\\\())(append|apply|approximate|call-with-current-continuation|call/cc|catch|construct-identifier|define-syntax|display|foo|for-each|force|format|cd|gen-counter|gen-loser|generate-identifier|last-pair|length|let-syntax|letrec-syntax|list|list-ref|list-tail|load|log|macro|magnitude|map|map-streams|max|member|memq|memv|min|newline|nil|not|peek-char|rationalize|read|read-char|return|reverse|sequence|substring|syntax|syntax-rules|transcript-off|transcript-on|truncate|unwrap-syntax|values-list|write|write-char|cons|c(a|d){1,4}r|abs|acos|angle|asin|assoc|assq|assv|atan|ceiling|cos|floor|round|sin|sqrt|tan|(?:real|imag)-part|numerator|denominatormodulo|exp|expt|remainder|quotient|lcm|call-with-(?:input|output)-file|(?:close|current)-(?:input|output)-port|with-(?:input|output)-from-file|open-(?:input|output)-file|char-(?:downcase|upcase|ready)|make-(?:polar|promise|rectangular|string|vector)string(?:-(?:append|copy|length|ref))?|vector(?:-length|-ref))(?=(\\\\s|\\\\())","name":"support.function.general.scheme"}]},"quote":{"comment":"\\n\\t\\t\\t\\tWe need to be able to quote any kind of item, which creates\\n\\t\\t\\t\\ta tiny bit of complexity in our grammar. It is hopefully\\n\\t\\t\\t\\tnot overwhelming complexity.\\n\\t\\t\\t\\t\\n\\t\\t\\t\\tNote: the first two matches are special cases. quoted\\n\\t\\t\\t\\tsymbols, and quoted empty lists are considered constant.other\\n\\t\\t\\t\\t\\n\\t\\t\\t","patterns":[{"captures":{"1":{"name":"punctuation.section.quoted.symbol.scheme"}},"match":"(')\\\\s*([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)","name":"constant.other.symbol.scheme"},{"captures":{"1":{"name":"punctuation.section.quoted.empty-list.scheme"},"2":{"name":"meta.expression.scheme"},"3":{"name":"punctuation.section.expression.begin.scheme"},"4":{"name":"punctuation.section.expression.end.scheme"}},"match":"(')\\\\s*((\\\\()\\\\s*(\\\\)))","name":"constant.other.empty-list.schem"},{"begin":"(')\\\\s*","beginCaptures":{"1":{"name":"punctuation.section.quoted.scheme"}},"comment":"quoted double-quoted string or s-expression","end":"(?=[\\\\s()])|(?<=\\\\n)","name":"string.other.quoted-object.scheme","patterns":[{"include":"#quoted"}]}]},"quote-sexp":{"begin":"(?<=\\\\()\\\\s*(quote)\\\\s+","beginCaptures":{"1":{"name":"keyword.control.quote.scheme"}},"comment":"\\n\\t\\t\\t\\tSomething quoted with (quote «thing»). In this case «thing»\\n\\t\\t\\t\\twill not be evaluated, so we are considering it a string.\\n\\t\\t\\t","contentName":"string.other.quote.scheme","end":"(?=[\\\\s)])|(?<=\\\\n)","patterns":[{"include":"#quoted"}]},"quoted":{"patterns":[{"include":"#string"},{"begin":"(\\\\()","beginCaptures":{"1":{"name":"punctuation.section.expression.begin.scheme"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.section.expression.end.scheme"}},"name":"meta.expression.scheme","patterns":[{"include":"#quoted"}]},{"include":"#quote"},{"include":"#illegal"}]},"sexp":{"begin":"(\\\\()","beginCaptures":{"1":{"name":"punctuation.section.expression.begin.scheme"}},"end":"(\\\\))(\\\\n)?","endCaptures":{"1":{"name":"punctuation.section.expression.end.scheme"},"2":{"name":"meta.after-expression.scheme"}},"name":"meta.expression.scheme","patterns":[{"include":"#comment"},{"begin":"(?<=\\\\()(define)\\\\s+(\\\\()([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)((\\\\s+([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._]))*)\\\\s*(\\\\))","captures":{"1":{"name":"keyword.control.scheme"},"2":{"name":"punctuation.definition.function.scheme"},"3":{"name":"entity.name.function.scheme"},"4":{"name":"variable.parameter.function.scheme"},"7":{"name":"punctuation.definition.function.scheme"}},"end":"(?=\\\\))","name":"meta.declaration.procedure.scheme","patterns":[{"include":"#comment"},{"include":"#sexp"},{"include":"#illegal"}]},{"begin":"(?<=\\\\()(lambda)\\\\s+(\\\\()((?:([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._])\\\\s+)*(?:([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._]))?)(\\\\))","captures":{"1":{"name":"keyword.control.scheme"},"2":{"name":"punctuation.definition.variable.scheme"},"3":{"name":"variable.parameter.scheme"},"6":{"name":"punctuation.definition.variable.scheme"}},"comment":"\\n\\t\\t\\t\\t\\t\\tNot sure this one is quite correct. That \\\\s* is\\n\\t\\t\\t\\t\\t\\tparticularly troubling\\n\\t\\t\\t\\t\\t","end":"(?=\\\\))","name":"meta.declaration.procedure.scheme","patterns":[{"include":"#comment"},{"include":"#sexp"},{"include":"#illegal"}]},{"begin":"(?<=\\\\()(define)\\\\s([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)\\\\s*.*?","captures":{"1":{"name":"keyword.control.scheme"},"2":{"name":"variable.other.scheme"}},"end":"(?=\\\\))","name":"meta.declaration.variable.scheme","patterns":[{"include":"#comment"},{"include":"#sexp"},{"include":"#illegal"}]},{"include":"#quote-sexp"},{"include":"#quote"},{"include":"#language-functions"},{"include":"#string"},{"include":"#constants"},{"match":"(?<=[\\\\(\\\\s])(#\\\\\\\\)(space|newline|tab)(?=[\\\\s\\\\)])","name":"constant.character.named.scheme"},{"match":"(?<=[\\\\(\\\\s])(#\\\\\\\\)x[0-9A-F]{2,4}(?=[\\\\s\\\\)])","name":"constant.character.hex-literal.scheme"},{"match":"(?<=[\\\\(\\\\s])(#\\\\\\\\).(?=[\\\\s\\\\)])","name":"constant.character.escape.scheme"},{"comment":"\\n\\t\\t\\t\\t\\t\\tthe . in (a . b) which conses together two elements\\n\\t\\t\\t\\t\\t\\ta and b. (a b c) == (a . (b . (c . nil)))\\n\\t\\t\\t\\t\\t","match":"(?<=[ ()])\\\\.(?=[ ()])","name":"punctuation.separator.cons.scheme"},{"include":"#sexp"},{"include":"#illegal"}]},"string":{"begin":"(\\")","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.scheme"}},"end":"(\\")","endCaptures":{"1":{"name":"punctuation.definition.string.end.scheme"}},"name":"string.quoted.double.scheme","patterns":[{"match":"\\\\\\\\.","name":"constant.character.escape.scheme"}]}},"scopeName":"source.scheme"}`)),t=[e];export{t as default}; ================================================ FILE: jesse/static/_nuxt/BK9xJ97g.js ================================================ import e from"./BMYPR7BL.js";import t from"./xI-RfyKK.js";import"./ySlJ1b_l.js";import"./BPhBrDlE.js";const n=Object.freeze(JSON.parse(`{"displayName":"COBOL","fileTypes":["ccp","scbl","cobol","cbl","cblle","cblsrce","cblcpy","lks","pdv","cpy","copybook","cobcopy","fd","sel","scb","scbl","sqlcblle","cob","dds","def","src","ss","wks","bib","pco"],"name":"cobol","patterns":[{"match":"(^[ \\\\*][ \\\\*][ \\\\*][ \\\\*][ \\\\*][ \\\\*])([dD]\\\\s.*$)","name":"token.info-token.cobol"},{"captures":{"1":{"name":"constant.numeric.cobol"},"2":{"name":"comment.line.cobol.newpage"}},"match":"(^[ \\\\*][ \\\\*][ \\\\*][ \\\\*][ \\\\*][ \\\\*])(\\\\/.*$)"},{"captures":{"1":{"name":"constant.numeric.cobol"},"2":{"name":"comment.line.cobol.fixed"}},"match":"(^[ \\\\*][ \\\\*][ \\\\*][ \\\\*][ \\\\*][ \\\\*])(\\\\*.*$)"},{"captures":{"1":{"name":"constant.numeric.cobol"},"2":{"name":"comment.line.cobol.newpage"}},"match":"(^[0-9\\\\s][0-9\\\\s][0-9\\\\s][0-9\\\\s][0-9\\\\s][0-9\\\\s])(\\\\/.*$)"},{"match":"^[0-9\\\\s][0-9\\\\s][0-9\\\\s][0-9\\\\s][0-9\\\\s][0-9\\\\s]$","name":"constant.numeric.cobol"},{"captures":{"1":{"name":"constant.numeric.cobol"},"2":{"name":"comment.line.cobol.fixed"}},"match":"(^[0-9\\\\s][0-9\\\\s][0-9\\\\s][0-9\\\\s][0-9\\\\s][0-9\\\\s])(\\\\*.*$)"},{"captures":{"1":{"name":"constant.cobol"},"2":{"name":"comment.line.cobol.fixed"}},"match":"(^[0-9a-zA-Z\\\\s\\\\$#%\\\\.@\\\\- ][0-9a-zA-Z\\\\s\\\\$#%\\\\.@\\\\- ][0-9a-zA-Z\\\\s\\\\$#%\\\\.@\\\\- ][0-9a-zA-Z\\\\s\\\\$#%\\\\.@\\\\- ][0-9a-zA-Z\\\\s\\\\$#%\\\\.@\\\\- ][0-9a-zA-Z\\\\s\\\\$#%\\\\.@\\\\- ])(\\\\*.*$)"},{"captures":{"1":{"name":"constant.numeric.cobol"},"2":{"name":"variable.other.constant"}},"match":"^\\\\s+(78)\\\\s+([0-9a-zA-Z][a-zA-Z\\\\-0-9_]+)"},{"captures":{"1":{"name":"constant.numeric.cobol"},"2":{"name":"variable.other.constant"},"3":{"name":"keyword.identifers.cobol"}},"match":"^\\\\s+([0-9]+)\\\\s+([0-9a-zA-Z][a-zA-Z\\\\-0-9_]+)\\\\s+((?i:constant))"},{"captures":{"1":{"name":"constant.cobol"},"2":{"name":"comment.line.cobol.newpage"}},"match":"(^[0-9a-zA-Z\\\\s\\\\$#%\\\\.@][0-9a-zA-Z\\\\s\\\\$#%\\\\.@][0-9a-zA-Z\\\\s\\\\$#%\\\\.@][0-9a-zA-Z\\\\s\\\\$#%\\\\.@][0-9a-zA-Z\\\\s\\\\$#%\\\\.@][0-9a-zA-Z\\\\s\\\\$#%\\\\.@])(\\\\/.*$)"},{"match":"^\\\\*.*$","name":"comment.line.cobol.fixed"},{"captures":{"1":{"name":"keyword.control.directive.conditional.cobol"},"2":{"name":"entity.name.function.preprocessor.cobol"},"3":{"name":"entity.name.function.cobol"},"4":{"name":"keyword.control.directive.conditional.cobol"}},"match":"((?:^|\\\\s+)(?i:\\\\$set)\\\\s+)((?i:constant)\\\\s+)([0-9a-zA-Z][a-zA-Z\\\\-0-9]+\\\\s*)([a-zA-Z\\\\-0-9]*)"},{"captures":{"1":{"name":"entity.name.function.preprocessor.cobol"},"2":{"name":"storage.modifier.import.cobol"},"3":{"name":"punctuation.begin.bracket.round.cobol"},"4":{"name":"string.quoted.other.cobol"},"5":{"name":"punctuation.end.bracket.round.cobol"}},"match":"((?i:\\\\$\\\\s*set\\\\s+)(ilusing)(\\\\()(.*)(\\\\)))"},{"captures":{"1":{"name":"entity.name.function.preprocessor.cobol"},"2":{"name":"storage.modifier.import.cobol"},"3":{"name":"punctuation.definition.string.begin.cobol"},"4":{"name":"string.quoted.other.cobol"},"5":{"name":"punctuation.definition.string.begin.cobol"}},"match":"((?i:\\\\$\\\\s*set\\\\s+)(ilusing)(\\")(.*)(\\"))"},{"captures":{"1":{"name":"keyword.control.directive.conditional.cobol"},"2":{"name":"entity.name.function.preprocessor.cobol"},"3":{"name":"punctuation.definition.string.begin.cobol"},"4":{"name":"string.quoted.other.cobol"},"5":{"name":"punctuation.definition.string.begin.cobol"}},"match":"((?i:\\\\$set))\\\\s+(\\\\w+)\\\\s*(\\")(\\\\w*)(\\")"},{"captures":{"1":{"name":"keyword.control.directive.conditional.cobol"},"2":{"name":"entity.name.function.preprocessor.cobol"},"3":{"name":"punctuation.begin.bracket.round.cobol"},"4":{"name":"string.quoted.other.cobol"},"5":{"name":"punctuation.end.bracket.round.cobol"}},"match":"((?i:\\\\$set))\\\\s+(\\\\w+)\\\\s*(\\\\()(.*)(\\\\))"},{"captures":{"0":{"name":"keyword.control.directive.conditional.cobol"},"1":{"name":"invalid.illegal.directive"},"2":{"name":"comment.line.set.cobol"}},"match":"(?:^|\\\\s+)(?i:\\\\$\\\\s*set\\\\s)((?i:01SHUFFLE|64KPARA|64KSECT|AUXOPT|CHIP|DATALIT|EANIM|EXPANDDATA|FIXING|FLAG-CHIP|MASM|MODEL|OPTSIZE|OPTSPEED|PARAS|PROTMODE|REGPARM|SEGCROSS|SEGSIZE|SIGNCOMPARE|SMALLDD|TABLESEGCROSS|TRICKLECHECK|\\\\s)+).*$"},{"captures":{"1":{"name":"keyword.control.directive.cobol"},"2":{"name":"entity.other.attribute-name.preprocessor.cobol"}},"match":"(\\\\$region|\\\\$end-region)(.*$)"},{"begin":"\\\\$(?i:doc)(.*$)","end":"\\\\$(?i:end-doc)(.*$)","name":"invalid.illegal.iscobol"},{"match":">>\\\\s*(?i:turn|page|listing|leap-seconds|d)\\\\s+.*$","name":"invalid.illegal.meta.preprocessor.cobolit"},{"match":"(?i:substitute-case|substitute)\\\\s+","name":"invalid.illegal.functions.cobolit"},{"captures":{"1":{"name":"invalid.illegal.keyword.control.directive.conditional.cobol"},"2":{"name":"invalid.illegal.entity.name.function.preprocessor.cobol"},"3":{"name":"invalid.illegal.entity.name.function.preprocessor.cobol"}},"match":"((((>>|\\\\$)[\\\\s]*)(?i:elif))(.*$))"},{"captures":{"1":{"name":"keyword.control.directive.conditional.cobol"},"2":{"name":"entity.name.function.preprocessor.cobol"},"3":{"name":"entity.name.function.preprocessor.cobol"}},"match":"((((>>|\\\\$)[\\\\s]*)(?i:if|else|elif|end-if|end-evaluate|end|define|evaluate|when|display|call-convention|set))(.*$))"},{"captures":{"1":{"name":"comment.line.scantoken.cobol"},"2":{"name":"keyword.cobol"},"3":{"name":"string.cobol"}},"match":"(\\\\*>)\\\\s+(@[0-9a-zA-Z][a-zA-Z\\\\-0-9]+)\\\\s+(.*$)"},{"match":"(\\\\*>.*$)","name":"comment.line.modern"},{"match":"(>>.*)$","name":"strong comment.line.set.acucobol"},{"match":"([nNuU][xX]|[hHxX])'\\\\h*'","name":"constant.numeric.integer.hexadecimal.cobol"},{"match":"([nNuU][xX]|[hHxX])'.*'","name":"invalid.illegal.hexadecimal.cobol"},{"match":"([nNuU][xX]|[hHxX])\\"\\\\h*\\"","name":"constant.numeric.integer.hexadecimal.cobol"},{"match":"([nNuU][xX]|[hHxX])\\".*\\"","name":"invalid.illegal.hexadecimal.cobol"},{"match":"[bB]\\"[0-1]\\"","name":"constant.numeric.integer.boolean.cobol"},{"match":"[bB]'[0-1]'","name":"constant.numeric.integer.boolean.cobol"},{"match":"[oO]\\"[0-7]*\\"","name":"constant.numeric.integer.octal.cobol"},{"match":"[oO]\\".*\\"","name":"invalid.illegal.octal.cobol"},{"match":"(#)([0-9a-zA-Z][a-zA-Z\\\\-0-9]+)","name":"meta.symbol.forced.cobol"},{"begin":"((?.*$)","name":"comment.line.modern"},{"match":"(\\\\:([0-9a-zA-Z\\\\-_])*)","name":"variable.cobol"},{"include":"source.openesql"}]},{"begin":"(?i:exec\\\\s+cics)","contentName":"meta.embedded.block.cics","end":"(?i:end\\\\-exec)","name":"keyword.verb.cobol","patterns":[{"match":"(\\\\()","name":"meta.symbol.cobol"},{"include":"#cics-keywords"},{"include":"#string-double-quoted-constant"},{"include":"#string-quoted-constant"},{"include":"#number-complex-constant"},{"include":"#number-simple-constant"},{"match":"([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))","name":"variable.cobol"}]},{"begin":"(?i:exec\\\\s+dli)","contentName":"meta.embedded.block.dli","end":"(?i:end\\\\-exec)","name":"keyword.verb.cobol","patterns":[{"match":"(\\\\()","name":"meta.symbol.cobol"},{"include":"#dli-keywords"},{"include":"#dli-options"},{"include":"#string-double-quoted-constant"},{"include":"#string-quoted-constant"},{"include":"#number-complex-constant"},{"include":"#number-simple-constant"},{"match":"([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))","name":"variable.cobol"}]},{"begin":"(?i:exec\\\\s+sqlims)","contentName":"meta.embedded.block.openesql","end":"(?i:end\\\\-exec)","name":"keyword.verb.cobol","patterns":[{"match":"(\\\\*>.*$)","name":"comment.line.modern"},{"match":"(\\\\:([a-zA-Z\\\\-])*)","name":"variable.cobol"},{"include":"source.openesql"}]},{"begin":"(?i:exec\\\\s+ado)","contentName":"meta.embedded.block.openesql","end":"(?i:end\\\\-exec)","name":"keyword.verb.cobol","patterns":[{"match":"(--.*$)","name":"comment.line.sql"},{"match":"(\\\\*>.*$)","name":"comment.line.modern"},{"match":"(\\\\:([a-zA-Z\\\\-])*)","name":"variable.cobol"},{"include":"source.openesql"}]},{"begin":"(?i:exec\\\\s+html)","contentName":"meta.embedded.block.html","end":"(?i:end\\\\-exec)","name":"keyword.verb.cobol","patterns":[{"include":"text.html.basic"}]},{"begin":"(?i:exec\\\\s+java)","contentName":"meta.embedded.block.java","end":"(?i:end\\\\-exec)","name":"keyword.verb.cobol","patterns":[{"include":"source.java"}]},{"captures":{"1":{"name":"punctuation.definition.string.begin.cobol"},"2":{"name":"support.function.cobol"},"3":{"name":"punctuation.definition.string.end.cobol"}},"match":"(\\")(CBL_.*)(\\")"},{"captures":{"1":{"name":"punctuation.definition.string.begin.cobol"},"2":{"name":"support.function.cobol"},"3":{"name":"punctuation.definition.string.end.cobol"}},"match":"(\\")(PC_.*)(\\")"},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"end":"(\\"|$)","endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}},"name":"string.quoted.double.cobol"},{"captures":{"1":{"name":"punctuation.definition.string.begin.cobol"},"2":{"name":"support.function.cobol"},"3":{"name":"punctuation.definition.string.end.cobol"}},"match":"(\\\\')(CBL_.*)(\\\\')"},{"captures":{"1":{"name":"punctuation.definition.string.begin.cobol"},"2":{"name":"support.function.cobol"},"3":{"name":"punctuation.definition.string.end.cobol"}},"match":"(\\\\')(PC_.*)(\\\\')"},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.cobol"}},"end":"('|$)","endCaptures":{"0":{"name":"punctuation.definition.string.end.cobol"}},"name":"string.quoted.single.cobol"},{"begin":"(?|<=|>=|<>|\\\\+|\\\\-|\\\\*|\\\\/|(?({strategies:[]}),persist:{storage:z.localStorage},actions:{async getStrategies(){const{data:r,error:a}=await E("/strategy/all",!0);if(a.value&&a.value.statusCode!==200){p(a);return}const s=r.value;this.strategies=s.strategies},async getStrategy(r){const{data:a,error:s}=await h("/strategy/get",{name:r},!0);return s.value&&s.value.statusCode!==200?(p(s),""):a.value.content},async saveStrategy(r,a){const{data:s,error:e}=await h("/strategy/save",{name:r,content:a},!0);if(e.value&&e.value.statusCode!==200){p(e);return}const d=s.value;k("success",d.message)},async deleteStrategy(r){const{data:a,error:s}=await h("/strategy/delete",{name:r},!0);if(s.value&&s.value.statusCode!==200){p(s);return}const e=a.value;k("success",e.message),this.strategies=this.strategies.filter(d=>d!==r)}}}),ee={class:"flex flex-col border-r dark:border-gray-600",style:{height:"calc(100vh - 4rem - 4px)"}},te={class:"flex-shrink-0 flex justify-between items-center border-b dark:border-gray-600 relative"},ae={class:"flex-1 overflow-auto"},se={key:0,class:"flex flex-col items-center justify-center py-8 px-4 text-center"},re={class:"text-sm text-gray-600 dark:text-gray-400"},oe=["onMouseenter"],ne=F({__name:"StrategiesSidebar",setup(r){const a=S(),s=C(()=>x().strategies),e=f(""),d=f(null),v=f(!1),y=f(null),_=C(()=>s.value.filter(g=>g.toLowerCase().includes(e.value.toLowerCase())));function D(g){y.value=g,v.value=!0}async function N(){if(!y.value)return;const g=y.value;await x().deleteStrategy(g),v.value=!1,y.value=null,S().params.name===g&&J().push("/strategies")}return H(async()=>{setTimeout(async()=>{await x().getStrategies()},200)}),(g,l)=>{const Z=I,w=O,j=X;return c(),u(M,null,[n("div",ee,[n("div",te,[i(t(A),{class:"absolute left-3 w-4 h-4 text-gray-400 dark:text-gray-500 pointer-events-none"}),R(n("input",{"onUpdate:modelValue":l[0]||(l[0]=o=>V(e)?e.value=o:null),class:$(["w-full pl-10 pr-4 py-2 bg-gray-50 focus:outline-none dark:bg-backdrop-dark",{"pr-10":t(e)}]),placeholder:"Search strategies..."},null,2),[[U,t(e)]]),i(q,{name:"fade"},{default:m(()=>[t(e)?(c(),u("button",{key:0,class:"absolute right-2 p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded transition-colors",onClick:l[1]||(l[1]=o=>e.value="")},[i(t(Y),{class:"w-4 h-4 text-gray-500 dark:text-gray-400"})])):B("",!0)]),_:1})]),n("div",ae,[t(_).length===0&&t(e)?(c(),u("div",se,[i(t(A),{class:"w-12 h-12 text-gray-400 dark:text-gray-600 mb-3"}),n("p",re,' No matches for "'+L(t(e))+'" ',1)])):B("",!0),(c(!0),u(M,null,G(t(_),o=>(c(),u("div",{key:o,class:$(["group relative px-4 py-2 cursor-pointer select-none flex items-center justify-between",t(a).params.name===o?"bg-gray-100 dark:bg-gray-800":"bg-gray-50 dark:bg-backdrop-dark hover:bg-gray-100 dark:hover:bg-gray-800"]),onMouseenter:b=>d.value=o,onMouseleave:l[2]||(l[2]=b=>d.value=null)},[i(Z,{to:`/strategies/${o}`,class:"flex items-center flex-1"},{default:m(()=>[i(t(W),{class:"w-4 h-4 mr-2"}),n("span",null,L(o),1)]),_:2},1032,["to"]),i(w,{size:"xs",icon:"i-heroicons-trash",color:"gray",variant:"link",style:Q({visibility:t(d)===o?"visible":"hidden"}),onClick:P(b=>D(o),["prevent"])},null,8,["style","onClick"])],42,oe))),128))])]),i(j,{modelValue:t(v),"onUpdate:modelValue":l[3]||(l[3]=o=>V(v)?v.value=o:null),title:"Delete strategy",description:`Are you sure you want to delete the strategy '${t(y)}'?`,type:"info"},{default:m(()=>[i(w,{variant:"solid",color:"red",block:"",class:"sm:w-auto",label:"Delete",onClick:N})]),_:1},8,["modelValue","description"])],64)}}}),ie=K(ne,[["__scopeId","data-v-2e630b44"]]);export{ie as S,x as u}; ================================================ FILE: jesse/static/_nuxt/BLhTXw86.js ================================================ const e=Object.freeze(JSON.parse('{"displayName":"1C (Query)","fileTypes":["sdbl","query"],"firstLineMatch":"(?i)Выбрать|Select(\\\\s+Разрешенные|\\\\s+Allowed)?(\\\\s+Различные|\\\\s+Distinct)?(\\\\s+Первые|\\\\s+Top)?.*","name":"sdbl","patterns":[{"match":"(^\\\\s*//.*$)","name":"comment.line.double-slash.sdbl"},{"begin":"//","end":"$","name":"comment.line.double-slash.sdbl"},{"begin":"\\\\\\"","end":"\\\\\\"(?![\\\\\\"])","name":"string.quoted.double.sdbl","patterns":[{"match":"\\\\\\"\\\\\\"","name":"constant.character.escape.sdbl"},{"match":"(^\\\\s*//.*$)","name":"comment.line.double-slash.sdbl"}]},{"match":"(?i)(?<=[^\\\\wа-яё\\\\.]|^)(Неопределено|Undefined|Истина|True|Ложь|False|NULL)(?=[^\\\\wа-яё\\\\.]|$)","name":"constant.language.sdbl"},{"match":"(?<=[^\\\\wа-яё\\\\.]|^)(\\\\d+\\\\.?\\\\d*)(?=[^\\\\wа-яё\\\\.]|$)","name":"constant.numeric.sdbl"},{"match":"(?i)(?<=[^\\\\wа-яё\\\\.]|^)(Выбор|Case|Когда|When|Тогда|Then|Иначе|Else|Конец|End)(?=[^\\\\wа-яё\\\\.]|$)","name":"keyword.control.conditional.sdbl"},{"match":"(?i)(?=|=|<|>","name":"keyword.operator.comparison.sdbl"},{"match":"(\\\\+|-|\\\\*|/|%)","name":"keyword.operator.arithmetic.sdbl"},{"match":"(,|;)","name":"keyword.operator.sdbl"},{"match":"(?i)(?<=[^\\\\wа-яё\\\\.]|^)(Выбрать|Select|Разрешенные|Allowed|Различные|Distinct|Первые|Top|Как|As|ПустаяТаблица|EmptyTable|Поместить|Into|Уничтожить|Drop|Из|From|((Левое|Left|Правое|Right|Полное|Full)\\\\s+(Внешнее\\\\s+|Outer\\\\s+)?Соединение|Join)|((Внутреннее|Inner)\\\\s+Соединение|Join)|Где|Where|(Сгруппировать\\\\s+По(\\\\s+Группирующим\\\\s+Наборам)?)|(Group\\\\s+By(\\\\s+Grouping\\\\s+Set)?)|Имеющие|Having|Объединить(\\\\s+Все)?|Union(\\\\s+All)?|(Упорядочить\\\\s+По)|(Order\\\\s+By)|Автоупорядочивание|Autoorder|Итоги|Totals|По(\\\\s+Общие)?|By(\\\\s+Overall)?|(Только\\\\s+)?Иерархия|(Only\\\\s+)?Hierarchy|Периодами|Periods|Индексировать|Index|Выразить|Cast|Возр|Asc|Убыв|Desc|Для\\\\s+Изменения|(For\\\\s+Update(\\\\s+Of)?)|Спецсимвол|Escape|СгруппированоПо|GroupedBy)(?=[^\\\\wа-яё\\\\.]|$)","name":"keyword.control.sdbl"},{"comment":"Функции языка запросов","match":"(?i)(?<=[^\\\\wа-яё\\\\.]|^)(Значение|Value|ДатаВремя|DateTime|Тип|Type)(?=\\\\()","name":"support.function.sdbl"},{"comment":"Функции работы со строками","match":"(?i)(?<=[^\\\\wа-яё\\\\.]|^)(Подстрока|Substring|НРег|Lower|ВРег|Upper|Лев|Left|Прав|Right|ДлинаСтроки|StringLength|СтрНайти|StrFind|СтрЗаменить|StrReplace|СокрЛП|TrimAll|СокрЛ|TrimL|СокрП|TrimR)(?=\\\\()","name":"support.function.sdbl"},{"comment":"Функции работы с датами","match":"(?i)(?<=[^\\\\wа-яё\\\\.]|^)(Год|Year|Квартал|Quarter|Месяц|Month|ДеньГода|DayOfYear|День|Day|Неделя|Week|ДеньНедели|Weekday|Час|Hour|Минута|Minute|Секунда|Second|НачалоПериода|BeginOfPeriod|КонецПериода|EndOfPeriod|ДобавитьКДате|DateAdd|РазностьДат|DateDiff|Полугодие|HalfYear|Декада|TenDays)(?=\\\\()","name":"support.function.sdbl"},{"comment":"Функции работы с числами","match":"(?i)(?<=[^\\\\wа-яё\\\\.]|^)(ACOS|COS|ASIN|SIN|ATAN|TAN|EXP|POW|LOG|LOG10|Цел|Int|Окр|Round|SQRT)(?=\\\\()","name":"support.function.sdbl"},{"comment":"Агрегатные функции","match":"(?i)(?<=[^\\\\wа-яё\\\\.]|^)(Сумма|Sum|Среднее|Avg|Минимум|Min|Максимум|Max|Количество|Count)(?=\\\\()","name":"support.function.sdbl"},{"comment":"Прочие функции","match":"(?i)(?<=[^\\\\wа-яё\\\\.]|^)(ЕстьNULL|IsNULL|Представление|Presentation|ПредставлениеСсылки|RefPresentation|ТипЗначения|ValueType|АвтономерЗаписи|RecordAutoNumber|РазмерХранимыхДанных|StoredDataSize|УникальныйИдентификатор|UUID)(?=\\\\()","name":"support.function.sdbl"},{"match":"(?i)(?<=[^\\\\wа-яё\\\\.])(Число|Number|Строка|String|Дата|Date|Булево|Boolean)(?=[^\\\\wа-яё\\\\.]|$)","name":"support.type.sdbl"},{"match":"(&[\\\\wа-яё]+)","name":"variable.parameter.sdbl"}],"scopeName":"source.sdbl","aliases":["1c-query"]}')),s=[e];export{s as default}; ================================================ FILE: jesse/static/_nuxt/BLuZWbUW.js ================================================ /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var e={comments:{lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},t={keywords:["namespace","open","as","operation","function","body","adjoint","newtype","controlled","if","elif","else","repeat","until","fixup","for","in","while","return","fail","within","apply","Adjoint","Controlled","Adj","Ctl","is","self","auto","distribute","invert","intrinsic","let","set","w/","new","not","and","or","use","borrow","using","borrowing","mutable","internal"],typeKeywords:["Unit","Int","BigInt","Double","Bool","String","Qubit","Result","Pauli","Range"],invalidKeywords:["abstract","base","bool","break","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","do","double","enum","event","explicit","extern","finally","fixed","float","foreach","goto","implicit","int","interface","lock","long","null","object","operator","out","override","params","private","protected","public","readonly","ref","sbyte","sealed","short","sizeof","stackalloc","static","string","struct","switch","this","throw","try","typeof","unit","ulong","unchecked","unsafe","ushort","virtual","void","volatile"],constants:["true","false","PauliI","PauliX","PauliY","PauliZ","One","Zero"],builtin:["X","Y","Z","H","HY","S","T","SWAP","CNOT","CCNOT","MultiX","R","RFrac","Rx","Ry","Rz","R1","R1Frac","Exp","ExpFrac","Measure","M","MultiM","Message","Length","Assert","AssertProb","AssertEqual"],operators:["and=","<-","->","*","*=","@","!","^","^=",":","::","..","==","...","=","=>",">",">=","<","<=","-","-=","!=","or=","%","%=","|","+","+=","?","/","/=","&&&","&&&=","^^^","^^^=",">>>",">>>=","<<<","<<<=","|||","|||=","~~~","_","w/","w/="],namespaceFollows:["namespace","open"],symbols:/[=>\\"{}|^\`\\\\\\\\]*>","name":"entity.name.type.iriref.turtle"},"language-tag":{"captures":{"1":{"name":"entity.name.class.turtle"}},"match":"@(\\\\w+)","name":"meta.string-literal-language-tag.turtle"},"literals":{"patterns":[{"include":"#string"},{"include":"#numeric"},{"include":"#boolean"}]},"numeric":{"patterns":[{"include":"#integer"}]},"prefix":{"match":"(?i:@?base|@?prefix)\\\\s","name":"keyword.operator.turtle"},"prefixed-name":{"captures":{"1":{"name":"storage.type.PNAME_NS.turtle"},"2":{"name":"support.variable.PN_LOCAL.turtle"}},"match":"(\\\\w*:)(\\\\w*)","name":"constant.complex.turtle"},"rule-constraint":{"begin":"(rule:content) (\\"\\"\\")","beginCaptures":{"1":{"patterns":[{"include":"#prefixed-name"}]},"2":{"name":"string.quoted.triple.turtle"}},"end":"\\"\\"\\"","endCaptures":{"0":{"name":"string.quoted.triple.turtle"}},"name":"meta.rule-constraint.turtle","patterns":[{"include":"source.srs"}]},"single-dquote-string-literal":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.turtle"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.turtle"}},"name":"string.quoted.double.turtle","patterns":[{"include":"#string-character-escape"}]},"single-squote-string-literal":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.turtle"}},"end":"'","endCaptures":{"1":{"name":"punctuation.definition.string.end.turtle"},"2":{"name":"invalid.illegal.newline.turtle"}},"name":"string.quoted.single.turtle","patterns":[{"include":"#string-character-escape"}]},"special-predicate":{"captures":{"1":{"name":"keyword.control.turtle"}},"match":"\\\\s(a)\\\\s","name":"meta.specialPredicate.turtle"},"string":{"patterns":[{"include":"#triple-squote-string-literal"},{"include":"#triple-dquote-string-literal"},{"include":"#single-squote-string-literal"},{"include":"#single-dquote-string-literal"},{"include":"#triple-tick-string-literal"}]},"string-character-escape":{"match":"\\\\\\\\(x\\\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)","name":"constant.character.escape.turtle"},"triple-dquote-string-literal":{"begin":"\\"\\"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.turtle"}},"end":"\\"\\"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.turtle"}},"name":"string.quoted.triple.turtle","patterns":[{"include":"#string-character-escape"}]},"triple-squote-string-literal":{"begin":"'''","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.turtle"}},"end":"'''","endCaptures":{"0":{"name":"punctuation.definition.string.end.turtle"}},"name":"string.quoted.triple.turtle","patterns":[{"include":"#string-character-escape"}]},"triple-tick-string-literal":{"begin":"\`\`\`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.turtle"}},"end":"\`\`\`","endCaptures":{"0":{"name":"punctuation.definition.string.end.turtle"}},"name":"string.quoted.triple.turtle","patterns":[{"include":"#string-character-escape"}]}},"scopeName":"source.turtle"}`)),t=[e];export{t as default}; ================================================ FILE: jesse/static/_nuxt/BMYPR7BL.js ================================================ import t from"./ySlJ1b_l.js";import e from"./BPhBrDlE.js";const n=Object.freeze(JSON.parse(`{"displayName":"HTML","injections":{"R:text.html - (comment.block, text.html meta.embedded, meta.tag.*.*.html, meta.tag.*.*.*.html, meta.tag.*.*.*.*.html)":{"comment":"Uses R: to ensure this matches after any other injections.","patterns":[{"match":"<","name":"invalid.illegal.bad-angle-bracket.html"}]}},"name":"html","patterns":[{"include":"#xml-processing"},{"include":"#comment"},{"include":"#doctype"},{"include":"#cdata"},{"include":"#tags-valid"},{"include":"#tags-invalid"},{"include":"#entities"}],"repository":{"attribute":{"patterns":[{"begin":"(s(hape|cope|t(ep|art)|ize(s)?|p(ellcheck|an)|elected|lot|andbox|rc(set|doc|lang)?)|h(ttp-equiv|i(dden|gh)|e(ight|aders)|ref(lang)?)|n(o(nce|validate|module)|ame)|c(h(ecked|arset)|ite|o(nt(ent(editable)?|rols)|ords|l(s(pan)?|or))|lass|rossorigin)|t(ype(mustmatch)?|itle|a(rget|bindex)|ranslate)|i(s(map)?|n(tegrity|putmode)|tem(scope|type|id|prop|ref)|d)|op(timum|en)|d(i(sabled|r(name)?)|ownload|e(coding|f(er|ault))|at(etime|a)|raggable)|usemap|p(ing|oster|la(ysinline|ceholder)|attern|reload)|enctype|value|kind|for(m(novalidate|target|enctype|action|method)?)?|w(idth|rap)|l(ist|o(op|w)|a(ng|bel))|a(s(ync)?|c(ce(sskey|pt(-charset)?)|tion)|uto(c(omplete|apitalize)|play|focus)|l(t|low(usermedia|paymentrequest|fullscreen))|bbr)|r(ows(pan)?|e(versed|quired|ferrerpolicy|l|adonly))|m(in(length)?|u(ted|ltiple)|e(thod|dia)|a(nifest|x(length)?)))(?![\\\\w:-])","beginCaptures":{"0":{"name":"entity.other.attribute-name.html"}},"comment":"HTML5 attributes, not event handlers","end":"(?=\\\\s*+[^=\\\\s])","name":"meta.attribute.$1.html","patterns":[{"include":"#attribute-interior"}]},{"begin":"style(?![\\\\w:-])","beginCaptures":{"0":{"name":"entity.other.attribute-name.html"}},"comment":"HTML5 style attribute","end":"(?=\\\\s*+[^=\\\\s])","name":"meta.attribute.style.html","patterns":[{"begin":"=","beginCaptures":{"0":{"name":"punctuation.separator.key-value.html"}},"end":"(?<=[^\\\\s=])(?!\\\\s*=)|(?=/?>)","patterns":[{"begin":"(?=[^\\\\s=<>\`/]|/(?!>))","end":"(?!\\\\G)","name":"meta.embedded.line.css","patterns":[{"captures":{"0":{"name":"source.css"}},"match":"([^\\\\s\\"'=<>\`/]|/(?!>))+","name":"string.unquoted.html"},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"contentName":"source.css","end":"(\\")","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"},"1":{"name":"source.css"}},"name":"string.quoted.double.html","patterns":[{"include":"#entities"}]},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"contentName":"source.css","end":"(')","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"},"1":{"name":"source.css"}},"name":"string.quoted.single.html","patterns":[{"include":"#entities"}]}]},{"match":"=","name":"invalid.illegal.unexpected-equals-sign.html"}]}]},{"begin":"on(s(croll|t(orage|alled)|u(spend|bmit)|e(curitypolicyviolation|ek(ing|ed)|lect))|hashchange|c(hange|o(ntextmenu|py)|u(t|echange)|l(ick|ose)|an(cel|play(through)?))|t(imeupdate|oggle)|in(put|valid)|o(nline|ffline)|d(urationchange|r(op|ag(start|over|e(n(ter|d)|xit)|leave)?)|blclick)|un(handledrejection|load)|p(opstate|lay(ing)?|a(ste|use|ge(show|hide))|rogress)|e(nded|rror|mptied)|volumechange|key(down|up|press)|focus|w(heel|aiting)|l(oad(start|e(nd|d(data|metadata)))?|anguagechange)|a(uxclick|fterprint|bort)|r(e(s(ize|et)|jectionhandled)|atechange)|m(ouse(o(ut|ver)|down|up|enter|leave|move)|essage(error)?)|b(efore(unload|print)|lur))(?![\\\\w:-])","beginCaptures":{"0":{"name":"entity.other.attribute-name.html"}},"comment":"HTML5 attributes, event handlers","end":"(?=\\\\s*+[^=\\\\s])","name":"meta.attribute.event-handler.$1.html","patterns":[{"begin":"=","beginCaptures":{"0":{"name":"punctuation.separator.key-value.html"}},"end":"(?<=[^\\\\s=])(?!\\\\s*=)|(?=/?>)","patterns":[{"begin":"(?=[^\\\\s=<>\`/]|/(?!>))","end":"(?!\\\\G)","name":"meta.embedded.line.js","patterns":[{"captures":{"0":{"name":"source.js"},"1":{"patterns":[{"include":"source.js"}]}},"match":"(([^\\\\s\\"'=<>\`/]|/(?!>))+)","name":"string.unquoted.html"},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"contentName":"source.js","end":"(\\")","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"},"1":{"name":"source.js"}},"name":"string.quoted.double.html","patterns":[{"captures":{"0":{"patterns":[{"include":"source.js"}]}},"match":"([^\\\\n\\"/]|/(?![/*]))+"},{"begin":"//","beginCaptures":{"0":{"name":"punctuation.definition.comment.js"}},"end":"(?=\\")|\\\\n","name":"comment.line.double-slash.js"},{"begin":"/\\\\*","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.js"}},"end":"(?=\\")|\\\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.end.js"}},"name":"comment.block.js"}]},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"contentName":"source.js","end":"(')","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"},"1":{"name":"source.js"}},"name":"string.quoted.single.html","patterns":[{"captures":{"0":{"patterns":[{"include":"source.js"}]}},"match":"([^\\\\n'/]|/(?![/*]))+"},{"begin":"//","beginCaptures":{"0":{"name":"punctuation.definition.comment.js"}},"end":"(?=')|\\\\n","name":"comment.line.double-slash.js"},{"begin":"/\\\\*","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.js"}},"end":"(?=')|\\\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.end.js"}},"name":"comment.block.js"}]}]},{"match":"=","name":"invalid.illegal.unexpected-equals-sign.html"}]}]},{"begin":"(data-[a-z\\\\-]+)(?![\\\\w:-])","beginCaptures":{"0":{"name":"entity.other.attribute-name.html"}},"comment":"HTML5 attributes, data-*","end":"(?=\\\\s*+[^=\\\\s])","name":"meta.attribute.data-x.$1.html","patterns":[{"include":"#attribute-interior"}]},{"begin":"(align|bgcolor|border)(?![\\\\w:-])","beginCaptures":{"0":{"name":"invalid.deprecated.entity.other.attribute-name.html"}},"comment":"HTML attributes, deprecated","end":"(?=\\\\s*+[^=\\\\s])","name":"meta.attribute.$1.html","patterns":[{"include":"#attribute-interior"}]},{"begin":"([^\\\\x{0020}\\"'<>/=\\\\x{0000}-\\\\x{001F}\\\\x{007F}-\\\\x{009F}\\\\x{FDD0}-\\\\x{FDEF}\\\\x{FFFE}\\\\x{FFFF}\\\\x{1FFFE}\\\\x{1FFFF}\\\\x{2FFFE}\\\\x{2FFFF}\\\\x{3FFFE}\\\\x{3FFFF}\\\\x{4FFFE}\\\\x{4FFFF}\\\\x{5FFFE}\\\\x{5FFFF}\\\\x{6FFFE}\\\\x{6FFFF}\\\\x{7FFFE}\\\\x{7FFFF}\\\\x{8FFFE}\\\\x{8FFFF}\\\\x{9FFFE}\\\\x{9FFFF}\\\\x{AFFFE}\\\\x{AFFFF}\\\\x{BFFFE}\\\\x{BFFFF}\\\\x{CFFFE}\\\\x{CFFFF}\\\\x{DFFFE}\\\\x{DFFFF}\\\\x{EFFFE}\\\\x{EFFFF}\\\\x{FFFFE}\\\\x{FFFFF}\\\\x{10FFFE}\\\\x{10FFFF}]+)","beginCaptures":{"0":{"name":"entity.other.attribute-name.html"}},"comment":"Anything else that is valid","end":"(?=\\\\s*+[^=\\\\s])","name":"meta.attribute.unrecognized.$1.html","patterns":[{"include":"#attribute-interior"}]},{"match":"[^\\\\s>]+","name":"invalid.illegal.character-not-allowed-here.html"}]},"attribute-interior":{"patterns":[{"begin":"=","beginCaptures":{"0":{"name":"punctuation.separator.key-value.html"}},"end":"(?<=[^\\\\s=])(?!\\\\s*=)|(?=/?>)","patterns":[{"match":"([^\\\\s\\"'=<>\`/]|/(?!>))+","name":"string.unquoted.html"},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}},"name":"string.quoted.double.html","patterns":[{"include":"#entities"}]},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}},"name":"string.quoted.single.html","patterns":[{"include":"#entities"}]},{"match":"=","name":"invalid.illegal.unexpected-equals-sign.html"}]}]},"cdata":{"begin":"","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.metadata.cdata.html"},"comment":{"begin":"","name":"comment.block.html","patterns":[{"match":"\\\\G-?>","name":"invalid.illegal.characters-not-allowed-here.html"},{"match":")","name":"invalid.illegal.characters-not-allowed-here.html"},{"match":"--!>","name":"invalid.illegal.characters-not-allowed-here.html"}]},"core-minus-invalid":{"comment":"This should be the root pattern array includes minus #tags-invalid","patterns":[{"include":"#xml-processing"},{"include":"#comment"},{"include":"#doctype"},{"include":"#cdata"},{"include":"#tags-valid"},{"include":"#entities"}]},"doctype":{"begin":"","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.metadata.doctype.html","patterns":[{"match":"\\\\G(?i:DOCTYPE)","name":"entity.name.tag.html"},{"begin":"\\"","end":"\\"","name":"string.quoted.double.html"},{"match":"[^\\\\s>]+","name":"entity.other.attribute-name.html"}]},"entities":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.entity.html"},"912":{"name":"punctuation.definition.entity.html"}},"comment":"Yes this is a bit ridiculous, there are quite a lot of these","match":"(&)(?=[a-zA-Z])((a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve))|(B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?))|(c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross))|(d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger)))|(e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr)))|(f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr))|(G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve))|(h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy))|(i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?))|(j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr))|(k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa))|(l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot))|(M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker)))|(n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute))|(o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr)))|(p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?))|(q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr))|(R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr)))|(s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle))|(t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot))|(u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve)))|(v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar))|(w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr))|(X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map))|(y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy))|(z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute)))(;)","name":"constant.character.entity.named.$2.html"},{"captures":{"1":{"name":"punctuation.definition.entity.html"},"3":{"name":"punctuation.definition.entity.html"}},"match":"(&)#[0-9]+(;)","name":"constant.character.entity.numeric.decimal.html"},{"captures":{"1":{"name":"punctuation.definition.entity.html"},"3":{"name":"punctuation.definition.entity.html"}},"match":"(&)#[xX][0-9a-fA-F]+(;)","name":"constant.character.entity.numeric.hexadecimal.html"},{"match":"&(?=[a-zA-Z0-9]+;)","name":"invalid.illegal.ambiguous-ampersand.html"}]},"math":{"patterns":[{"begin":"(?i)(<)(math)(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(>))?","beginCaptures":{"0":{"name":"meta.tag.structure.$2.start.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"patterns":[{"include":"#attribute"}]},"5":{"name":"punctuation.definition.tag.end.html"}},"end":"(?i)()","endCaptures":{"0":{"name":"meta.tag.structure.$2.end.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.element.structure.$2.html","patterns":[{"begin":"(?)\\\\G","end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.structure.start.html","patterns":[{"include":"#attribute"}]},{"include":"#tags"}]}],"repository":{"attribute":{"patterns":[{"begin":"(s(hift|ymmetric|cript(sizemultiplier|level|minsize)|t(ackalign|retchy)|ide|u(pscriptshift|bscriptshift)|e(parator(s)?|lection)|rc)|h(eight|ref)|n(otation|umalign)|c(haralign|olumn(spa(n|cing)|width|lines|align)|lose|rossout)|i(n(dent(shift(first|last)?|target|align(first|last)?)|fixlinebreakstyle)|d)|o(pen|verflow)|d(i(splay(style)?|r)|e(nomalign|cimalpoint|pth))|position|e(dge|qual(columns|rows))|voffset|f(orm|ence|rame(spacing)?)|width|l(space|ine(thickness|leading|break(style|multchar)?)|o(ngdivstyle|cation)|ength|quote|argeop)|a(c(cent(under)?|tiontype)|l(t(text|img(-(height|valign|width))?)|ign(mentscope)?))|r(space|ow(spa(n|cing)|lines|align)|quote)|groupalign|x(link:href|mlns)|m(in(size|labelspacing)|ovablelimits|a(th(size|color|variant|background)|xsize))|bevelled)(?![\\\\w:-])","beginCaptures":{"0":{"name":"entity.other.attribute-name.html"}},"end":"(?=\\\\s*+[^=\\\\s])","name":"meta.attribute.$1.html","patterns":[{"include":"#attribute-interior"}]},{"begin":"([^\\\\x{0020}\\"'<>/=\\\\x{0000}-\\\\x{001F}\\\\x{007F}-\\\\x{009F}\\\\x{FDD0}-\\\\x{FDEF}\\\\x{FFFE}\\\\x{FFFF}\\\\x{1FFFE}\\\\x{1FFFF}\\\\x{2FFFE}\\\\x{2FFFF}\\\\x{3FFFE}\\\\x{3FFFF}\\\\x{4FFFE}\\\\x{4FFFF}\\\\x{5FFFE}\\\\x{5FFFF}\\\\x{6FFFE}\\\\x{6FFFF}\\\\x{7FFFE}\\\\x{7FFFF}\\\\x{8FFFE}\\\\x{8FFFF}\\\\x{9FFFE}\\\\x{9FFFF}\\\\x{AFFFE}\\\\x{AFFFF}\\\\x{BFFFE}\\\\x{BFFFF}\\\\x{CFFFE}\\\\x{CFFFF}\\\\x{DFFFE}\\\\x{DFFFF}\\\\x{EFFFE}\\\\x{EFFFF}\\\\x{FFFFE}\\\\x{FFFFF}\\\\x{10FFFE}\\\\x{10FFFF}]+)","beginCaptures":{"0":{"name":"entity.other.attribute-name.html"}},"comment":"Anything else that is valid","end":"(?=\\\\s*+[^=\\\\s])","name":"meta.attribute.unrecognized.$1.html","patterns":[{"include":"#attribute-interior"}]},{"match":"[^\\\\s>]+","name":"invalid.illegal.character-not-allowed-here.html"}]},"tags":{"patterns":[{"include":"#comment"},{"include":"#cdata"},{"captures":{"0":{"name":"meta.tag.structure.math.$2.void.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"patterns":[{"include":"#attribute"}]},"5":{"name":"punctuation.definition.tag.end.html"}},"match":"(?i)(<)(annotation|annotation-xml|semantics|menclose|merror|mfenced|mfrac|mpadded|mphantom|mroot|mrow|msqrt|mstyle|mmultiscripts|mover|mprescripts|msub|msubsup|msup|munder|munderover|none|mlabeledtr|mtable|mtd|mtr|mlongdiv|mscarries|mscarry|msgroup|msline|msrow|mstack|maction)(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(/>))","name":"meta.element.structure.math.$2.html"},{"begin":"(?i)(<)(annotation|annotation-xml|semantics|menclose|merror|mfenced|mfrac|mpadded|mphantom|mroot|mrow|msqrt|mstyle|mmultiscripts|mover|mprescripts|msub|msubsup|msup|munder|munderover|none|mlabeledtr|mtable|mtd|mtr|mlongdiv|mscarries|mscarry|msgroup|msline|msrow|mstack|maction)(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(>))?","beginCaptures":{"0":{"name":"meta.tag.structure.math.$2.start.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"patterns":[{"include":"#attribute"}]},"5":{"name":"punctuation.definition.tag.end.html"}},"end":"(?i)()|(/>)|(?=)\\\\G","end":"(?=/>)|>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.structure.start.html","patterns":[{"include":"#attribute"}]},{"include":"#tags"}]},{"captures":{"0":{"name":"meta.tag.inline.math.$2.void.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"patterns":[{"include":"#attribute"}]},"5":{"name":"punctuation.definition.tag.end.html"}},"match":"(?i)(<)(mi|mn|mo|ms|mspace|mtext|maligngroup|malignmark)(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(/>))","name":"meta.element.inline.math.$2.html"},{"begin":"(?i)(<)(mi|mn|mo|ms|mspace|mtext|maligngroup|malignmark)(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(>))?","beginCaptures":{"0":{"name":"meta.tag.inline.math.$2.start.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"patterns":[{"include":"#attribute"}]},"5":{"name":"punctuation.definition.tag.end.html"}},"end":"(?i)()|(/>)|(?=)\\\\G","end":"(?=/>)|>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.inline.start.html","patterns":[{"include":"#attribute"}]},{"include":"#tags"}]},{"captures":{"0":{"name":"meta.tag.object.math.$2.void.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"patterns":[{"include":"#attribute"}]},"5":{"name":"punctuation.definition.tag.end.html"}},"match":"(?i)(<)(mglyph)(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(/>))","name":"meta.element.object.math.$2.html"},{"begin":"(?i)(<)(mglyph)(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(>))?","beginCaptures":{"0":{"name":"meta.tag.object.math.$2.start.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"patterns":[{"include":"#attribute"}]},"5":{"name":"punctuation.definition.tag.end.html"}},"end":"(?i)()|(/>)|(?=)\\\\G","end":"(?=/>)|>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.object.start.html","patterns":[{"include":"#attribute"}]},{"include":"#tags"}]},{"captures":{"0":{"name":"meta.tag.other.invalid.void.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"invalid.illegal.unrecognized-tag.html"},"4":{"patterns":[{"include":"#attribute"}]},"6":{"name":"punctuation.definition.tag.end.html"}},"match":"(?i)(<)(([\\\\w:]+))(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(/>))","name":"meta.element.other.invalid.html"},{"begin":"(?i)(<)((\\\\w[^\\\\s>]*))(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(>))?","beginCaptures":{"0":{"name":"meta.tag.other.invalid.start.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"invalid.illegal.unrecognized-tag.html"},"4":{"patterns":[{"include":"#attribute"}]},"6":{"name":"punctuation.definition.tag.end.html"}},"end":"(?i)()|(/>)|(?=)\\\\G","end":"(?=/>)|>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.other.invalid.start.html","patterns":[{"include":"#attribute"}]},{"include":"#tags"}]},{"include":"#tags-invalid"}]}}},"svg":{"patterns":[{"begin":"(?i)(<)(svg)(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(>))?","beginCaptures":{"0":{"name":"meta.tag.structure.$2.start.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"patterns":[{"include":"#attribute"}]},"5":{"name":"punctuation.definition.tag.end.html"}},"end":"(?i)()","endCaptures":{"0":{"name":"meta.tag.structure.$2.end.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.element.structure.$2.html","patterns":[{"begin":"(?)\\\\G","end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.structure.start.html","patterns":[{"include":"#attribute"}]},{"include":"#tags"}]}],"repository":{"attribute":{"patterns":[{"begin":"(s(hape-rendering|ystemLanguage|cale|t(yle|itchTiles|op-(color|opacity)|dDeviation|em(h|v)|artOffset|r(i(ng|kethrough-(thickness|position))|oke(-(opacity|dash(offset|array)|width|line(cap|join)|miterlimit))?))|urfaceScale|p(e(cular(Constant|Exponent)|ed)|acing|readMethod)|eed|lope)|h(oriz-(origin-x|adv-x)|eight|anging|ref(lang)?)|y(1|2|ChannelSelector)?|n(umOctaves|ame)|c(y|o(ntentS(criptType|tyleType)|lor(-(interpolation(-filters)?|profile|rendering))?)|ursor|l(ip(-(path|rule)|PathUnits)?|ass)|a(p-height|lcMode)|x)|t(ype|o|ext(-(decoration|anchor|rendering)|Length)|a(rget(X|Y)?|b(index|leValues))|ransform)|i(n(tercept|2)?|d(eographic)?|mage-rendering)|z(oomAndPan)?|o(p(erator|acity)|ver(flow|line-(thickness|position))|ffset|r(i(ent(ation)?|gin)|der))|d(y|i(splay|visor|ffuseConstant|rection)|ominant-baseline|ur|e(scent|celerate)|x)?|u(1|n(i(code(-(range|bidi))?|ts-per-em)|derline-(thickness|position))|2)|p(ing|oint(s(At(X|Y|Z))?|er-events)|a(nose-1|t(h(Length)?|tern(ContentUnits|Transform|Units))|int-order)|r(imitiveUnits|eserveA(spectRatio|lpha)))|e(n(d|able-background)|dgeMode|levation|x(ternalResourcesRequired|ponent))|v(i(sibility|ew(Box|Target))|-(hanging|ideographic|alphabetic|mathematical)|e(ctor-effect|r(sion|t-(origin-(y|x)|adv-y)))|alues)|k(1|2|3|e(y(Splines|Times|Points)|rn(ing|el(Matrix|UnitLength)))|4)?|f(y|il(ter(Res|Units)?|l(-(opacity|rule))?)|o(nt-(s(t(yle|retch)|ize(-adjust)?)|variant|family|weight)|rmat)|lood-(color|opacity)|r(om)?|x)|w(idth(s)?|ord-spacing|riting-mode)|l(i(ghting-color|mitingConeAngle)|ocal|e(ngthAdjust|tter-spacing)|ang)|a(scent|cc(umulate|ent-height)|ttribute(Name|Type)|zimuth|dditive|utoReverse|l(ignment-baseline|phabetic|lowReorder)|rabic-form|mplitude)|r(y|otate|e(s(tart|ult)|ndering-intent|peat(Count|Dur)|quired(Extensions|Features)|f(X|Y|errerPolicy)|l)|adius|x)?|g(1|2|lyph(Ref|-(name|orientation-(horizontal|vertical)))|radient(Transform|Units))|x(1|2|ChannelSelector|-height|link:(show|href|t(ype|itle)|a(ctuate|rcrole)|role)|ml:(space|lang|base))?|m(in|ode|e(thod|dia)|a(sk(ContentUnits|Units)?|thematical|rker(Height|-(start|end|mid)|Units|Width)|x))|b(y|ias|egin|ase(Profile|line-shift|Frequency)|box))(?![\\\\w:-])","beginCaptures":{"0":{"name":"entity.other.attribute-name.html"}},"end":"(?=\\\\s*+[^=\\\\s])","name":"meta.attribute.$1.html","patterns":[{"include":"#attribute-interior"}]},{"begin":"([^\\\\x{0020}\\"'<>/=\\\\x{0000}-\\\\x{001F}\\\\x{007F}-\\\\x{009F}\\\\x{FDD0}-\\\\x{FDEF}\\\\x{FFFE}\\\\x{FFFF}\\\\x{1FFFE}\\\\x{1FFFF}\\\\x{2FFFE}\\\\x{2FFFF}\\\\x{3FFFE}\\\\x{3FFFF}\\\\x{4FFFE}\\\\x{4FFFF}\\\\x{5FFFE}\\\\x{5FFFF}\\\\x{6FFFE}\\\\x{6FFFF}\\\\x{7FFFE}\\\\x{7FFFF}\\\\x{8FFFE}\\\\x{8FFFF}\\\\x{9FFFE}\\\\x{9FFFF}\\\\x{AFFFE}\\\\x{AFFFF}\\\\x{BFFFE}\\\\x{BFFFF}\\\\x{CFFFE}\\\\x{CFFFF}\\\\x{DFFFE}\\\\x{DFFFF}\\\\x{EFFFE}\\\\x{EFFFF}\\\\x{FFFFE}\\\\x{FFFFF}\\\\x{10FFFE}\\\\x{10FFFF}]+)","beginCaptures":{"0":{"name":"entity.other.attribute-name.html"}},"comment":"Anything else that is valid","end":"(?=\\\\s*+[^=\\\\s])","name":"meta.attribute.unrecognized.$1.html","patterns":[{"include":"#attribute-interior"}]},{"match":"[^\\\\s>]+","name":"invalid.illegal.character-not-allowed-here.html"}]},"tags":{"patterns":[{"include":"#comment"},{"include":"#cdata"},{"captures":{"0":{"name":"meta.tag.metadata.svg.$2.void.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"patterns":[{"include":"#attribute"}]},"5":{"name":"punctuation.definition.tag.end.html"}},"match":"(?i)(<)(color-profile|desc|metadata|script|style|title)(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(/>))","name":"meta.element.metadata.svg.$2.html"},{"begin":"(?i)(<)(color-profile|desc|metadata|script|style|title)(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(>))?","beginCaptures":{"0":{"name":"meta.tag.metadata.svg.$2.start.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"patterns":[{"include":"#attribute"}]},"5":{"name":"punctuation.definition.tag.end.html"}},"end":"(?i)()|(/>)|(?=)\\\\G","end":"(?=/>)|>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.metadata.start.html","patterns":[{"include":"#attribute"}]},{"include":"#tags"}]},{"captures":{"0":{"name":"meta.tag.structure.svg.$2.void.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"patterns":[{"include":"#attribute"}]},"5":{"name":"punctuation.definition.tag.end.html"}},"match":"(?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(/>))","name":"meta.element.structure.svg.$2.html"},{"begin":"(?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(>))?","beginCaptures":{"0":{"name":"meta.tag.structure.svg.$2.start.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"patterns":[{"include":"#attribute"}]},"5":{"name":"punctuation.definition.tag.end.html"}},"end":"(?i)()|(/>)|(?=)\\\\G","end":"(?=/>)|>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.structure.start.html","patterns":[{"include":"#attribute"}]},{"include":"#tags"}]},{"captures":{"0":{"name":"meta.tag.inline.svg.$2.void.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"patterns":[{"include":"#attribute"}]},"5":{"name":"punctuation.definition.tag.end.html"}},"match":"(?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(/>))","name":"meta.element.inline.svg.$2.html"},{"begin":"(?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(>))?","beginCaptures":{"0":{"name":"meta.tag.inline.svg.$2.start.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"patterns":[{"include":"#attribute"}]},"5":{"name":"punctuation.definition.tag.end.html"}},"end":"(?i)()|(/>)|(?=)\\\\G","end":"(?=/>)|>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.inline.start.html","patterns":[{"include":"#attribute"}]},{"include":"#tags"}]},{"captures":{"0":{"name":"meta.tag.object.svg.$2.void.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"patterns":[{"include":"#attribute"}]},"5":{"name":"punctuation.definition.tag.end.html"}},"match":"(?i)(<)(circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(/>))","name":"meta.element.object.svg.$2.html"},{"begin":"(?i)(<)(a|circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(>))?","beginCaptures":{"0":{"name":"meta.tag.object.svg.$2.start.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"patterns":[{"include":"#attribute"}]},"5":{"name":"punctuation.definition.tag.end.html"}},"end":"(?i)()|(/>)|(?=)\\\\G","end":"(?=/>)|>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.object.start.html","patterns":[{"include":"#attribute"}]},{"include":"#tags"}]},{"captures":{"0":{"name":"meta.tag.other.svg.$2.void.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"invalid.deprecated.html"},"4":{"patterns":[{"include":"#attribute"}]},"6":{"name":"punctuation.definition.tag.end.html"}},"match":"(?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(/>))","name":"meta.element.other.svg.$2.html"},{"begin":"(?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(>))?","beginCaptures":{"0":{"name":"meta.tag.other.svg.$2.start.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"invalid.deprecated.html"},"4":{"patterns":[{"include":"#attribute"}]},"6":{"name":"punctuation.definition.tag.end.html"}},"end":"(?i)()|(/>)|(?=)\\\\G","end":"(?=/>)|>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.other.start.html","patterns":[{"include":"#attribute"}]},{"include":"#tags"}]},{"captures":{"0":{"name":"meta.tag.other.invalid.void.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"invalid.illegal.unrecognized-tag.html"},"4":{"patterns":[{"include":"#attribute"}]},"6":{"name":"punctuation.definition.tag.end.html"}},"match":"(?i)(<)(([\\\\w:]+))(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(/>))","name":"meta.element.other.invalid.html"},{"begin":"(?i)(<)((\\\\w[^\\\\s>]*))(?=\\\\s|/?>)(?:(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(>))?","beginCaptures":{"0":{"name":"meta.tag.other.invalid.start.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"invalid.illegal.unrecognized-tag.html"},"4":{"patterns":[{"include":"#attribute"}]},"6":{"name":"punctuation.definition.tag.end.html"}},"end":"(?i)()|(/>)|(?=)\\\\G","end":"(?=/>)|>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.other.invalid.start.html","patterns":[{"include":"#attribute"}]},{"include":"#tags"}]},{"include":"#tags-invalid"}]}}},"tags-invalid":{"patterns":[{"begin":"(]*))(?)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.other.$2.html","patterns":[{"include":"#attribute"}]}]},"tags-valid":{"patterns":[{"begin":"(^[ \\\\t]+)?(?=<(?i:style)\\\\b(?!-))","beginCaptures":{"1":{"name":"punctuation.whitespace.embedded.leading.html"}},"end":"(?!\\\\G)([ \\\\t]*$\\\\n?)?","endCaptures":{"1":{"name":"punctuation.whitespace.embedded.trailing.html"}},"patterns":[{"begin":"(?i)(<)(style)(?=\\\\s|/?>)","beginCaptures":{"0":{"name":"meta.tag.metadata.style.start.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"end":"(?i)((<)/)(style)\\\\s*(>)","endCaptures":{"0":{"name":"meta.tag.metadata.style.end.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"source.css-ignored-vscode"},"3":{"name":"entity.name.tag.html"},"4":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.embedded.block.html","patterns":[{"begin":"\\\\G","captures":{"1":{"name":"punctuation.definition.tag.end.html"}},"end":"(>)","name":"meta.tag.metadata.style.start.html","patterns":[{"include":"#attribute"}]},{"begin":"(?!\\\\G)","end":"(?=)","endCaptures":{"0":{"name":"meta.tag.metadata.script.end.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.embedded.block.html","patterns":[{"begin":"\\\\G","end":"(?=/)","patterns":[{"begin":"(>)","beginCaptures":{"0":{"name":"meta.tag.metadata.script.start.html"},"1":{"name":"punctuation.definition.tag.end.html"}},"end":"((<))(?=/(?i:script))","endCaptures":{"0":{"name":"meta.tag.metadata.script.end.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"source.js-ignored-vscode"}},"patterns":[{"begin":"\\\\G","end":"(?=\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t# Tag without type attribute\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t | type(?=[\\\\s=])\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\t(?!\\\\s*=\\\\s*\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t''\\t\\t\\t\\t\\t\\t\\t\\t# Empty\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t | \\"\\"\\t\\t\\t\\t\\t\\t\\t\\t\\t# Values\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t | ('|\\"|)\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\ttext/\\t\\t\\t\\t\\t\\t\\t# Text mime-types\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tjavascript(1\\\\.[0-5])?\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t | x-javascript\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t | jscript\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t | livescript\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t | (x-)?ecmascript\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t | babel\\t\\t\\t\\t\\t\\t# Javascript variant currently\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\t\\t\\t\\t\\t\\t\\t\\t# recognized as such\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\t)\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t | application/\\t\\t\\t\\t\\t# Application mime-types\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\t(\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(x-)?javascript\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t | (x-)?ecmascript\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t)\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t | module\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\t)\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t[\\\\s\\"'>]\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t)\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t)\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t)\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t)","name":"meta.tag.metadata.script.start.html","patterns":[{"include":"#attribute"}]},{"begin":"(?ix:\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(?=\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\ttype\\\\s*=\\\\s*\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t('|\\"|)\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\ttext/\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tx-handlebars\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t | (x-(handlebars-)?|ng-)?template\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t | html\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t)\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t[\\\\s\\"'>]\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t)\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t)","end":"((<))(?=/(?i:script))","endCaptures":{"0":{"name":"meta.tag.metadata.script.end.html"},"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"text.html.basic"}},"patterns":[{"begin":"\\\\G","end":"(>)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.metadata.script.start.html","patterns":[{"include":"#attribute"}]},{"begin":"(?!\\\\G)","end":"(?=)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.metadata.script.start.html","patterns":[{"include":"#attribute"}]},{"begin":"(?!\\\\G)","end":"(?=)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"end":"/?>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.metadata.$2.void.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)(<)(noscript|title)(?=\\\\s|/?>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.metadata.$2.start.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)()","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.metadata.$2.end.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)(<)(col|hr|input)(?=\\\\s|/?>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"end":"/?>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.structure.$2.void.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)(<)(address|article|aside|blockquote|body|button|caption|colgroup|datalist|dd|details|dialog|div|dl|dt|fieldset|figcaption|figure|footer|form|head|header|hgroup|html|h[1-6]|label|legend|li|main|map|menu|meter|nav|ol|optgroup|option|output|p|pre|progress|section|select|slot|summary|table|tbody|td|template|textarea|tfoot|th|thead|tr|ul)(?=\\\\s|/?>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.structure.$2.start.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)()","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.structure.$2.end.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)(<)(area|br|wbr)(?=\\\\s|/?>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"end":"/?>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.inline.$2.void.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)(<)(a|abbr|b|bdi|bdo|cite|code|data|del|dfn|em|i|ins|kbd|mark|q|rp|rt|ruby|s|samp|small|span|strong|sub|sup|time|u|var)(?=\\\\s|/?>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.inline.$2.start.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)()","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.inline.$2.end.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)(<)(embed|img|param|source|track)(?=\\\\s|/?>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"end":"/?>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.object.$2.void.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)(<)(audio|canvas|iframe|object|picture|video)(?=\\\\s|/?>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.object.$2.start.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)()","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.object.$2.end.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)(<)((basefont|isindex))(?=\\\\s|/?>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"invalid.deprecated.html"}},"end":"/?>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.metadata.$2.void.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)(<)((center|frameset|noembed|noframes))(?=\\\\s|/?>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"invalid.deprecated.html"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.structure.$2.start.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)()","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"invalid.deprecated.html"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.structure.$2.end.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)(<)((acronym|big|blink|font|strike|tt|xmp))(?=\\\\s|/?>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"invalid.deprecated.html"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.inline.$2.start.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)()","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"invalid.deprecated.html"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.inline.$2.end.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)(<)((frame))(?=\\\\s|/?>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"invalid.deprecated.html"}},"end":"/?>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.object.$2.void.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)(<)((applet))(?=\\\\s|/?>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"invalid.deprecated.html"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.object.$2.start.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)()","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"invalid.deprecated.html"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.object.$2.end.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)(<)((dir|keygen|listing|menuitem|plaintext|spacer))(?=\\\\s|/?>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"invalid.illegal.no-longer-supported.html"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.other.$2.start.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i)()","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"},"3":{"name":"invalid.illegal.no-longer-supported.html"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.other.$2.end.html","patterns":[{"include":"#attribute"}]},{"include":"#math"},{"include":"#svg"},{"begin":"(<)([a-zA-Z][.0-9_a-zA-Z\\\\x{00B7}\\\\x{00C0}-\\\\x{00D6}\\\\x{00D8}-\\\\x{00F6}\\\\x{00F8}-\\\\x{037D}\\\\x{037F}-\\\\x{1FFF}\\\\x{200C}-\\\\x{200D}\\\\x{203F}-\\\\x{2040}\\\\x{2070}-\\\\x{218F}\\\\x{2C00}-\\\\x{2FEF}\\\\x{3001}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFFD}\\\\x{10000}-\\\\x{EFFFF}]*-[\\\\-.0-9_a-zA-Z\\\\x{00B7}\\\\x{00C0}-\\\\x{00D6}\\\\x{00D8}-\\\\x{00F6}\\\\x{00F8}-\\\\x{037D}\\\\x{037F}-\\\\x{1FFF}\\\\x{200C}-\\\\x{200D}\\\\x{203F}-\\\\x{2040}\\\\x{2070}-\\\\x{218F}\\\\x{2C00}-\\\\x{2FEF}\\\\x{3001}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFFD}\\\\x{10000}-\\\\x{EFFFF}]*)(?=\\\\s|/?>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"end":"/?>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.custom.start.html","patterns":[{"include":"#attribute"}]},{"begin":"()","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.custom.end.html","patterns":[{"include":"#attribute"}]}]},"xml-processing":{"begin":"(<\\\\?)(xml)","captures":{"1":{"name":"punctuation.definition.tag.html"},"2":{"name":"entity.name.tag.html"}},"end":"(\\\\?>)","name":"meta.tag.metadata.processing.xml.html","patterns":[{"include":"#attribute"}]}},"scopeName":"text.html.basic","embeddedLangs":["javascript","css"]}`)),r=[...t,...e,n];export{r as default}; ================================================ FILE: jesse/static/_nuxt/BMj5Y0dO.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"Hy","name":"hy","patterns":[{"include":"#all"}],"repository":{"all":{"patterns":[{"include":"#comment"},{"include":"#constants"},{"include":"#keywords"},{"include":"#strings"},{"include":"#operators"},{"include":"#keysym"},{"include":"#builtin"},{"include":"#symbol"}]},"builtin":{"patterns":[{"match":"(?*])(abs|all|any|ascii|bin|breakpoint|callable|chr|compile|delattr|dir|divmod|eval|exec|format|getattr|globals|hasattr|hash|hex|id|input|isinstance|issubclass|iter|aiter|len|locals|max|min|next|anext|oct|ord|pow|print|repr|round|setattr|sorted|sum|vars|False|None|True|NotImplemented|bool|memoryview|bytearray|bytes|classmethod|complex|dict|enumerate|filter|float|frozenset|property|int|list|map|object|range|reversed|set|slice|staticmethod|str|super|tuple|type|zip|open|quit|exit|copyright|credits|help)(?![\\\\.:\\\\w_\\\\-=!@\\\\$%^&?/<>*])","name":"storage.builtin.hy"},{"match":"(?<=\\\\(\\\\s*)\\\\.\\\\.\\\\.(?![\\\\.:\\\\w_\\\\-=!@\\\\$%^&?/<>*])","name":"storage.builtin.dots.hy"}]},"comment":{"patterns":[{"match":"(;).*$","name":"comment.line.hy"}]},"constants":{"patterns":[{"match":"(?<=[\\\\{\\\\[\\\\(\\\\s])([0-9]+(\\\\.[0-9]+)?|(#x)[0-9a-fA-F]+|(#o)[0-7]+|(#b)[01]+)(?=[\\\\s;()'\\",\\\\[\\\\]\\\\{\\\\}])","name":"constant.numeric.hy"}]},"keysym":{"match":"(?*]):[\\\\.:\\\\w_\\\\-=!@\\\\$%^&?\\\\/<>*]*","name":"variable.other.constant"},"keywords":{"patterns":[{"match":"(?*])(and|await|match|let|annotate|assert|break|chainc|cond|continue|deftype|do|except\\\\*?|finally|else|defreader|([dgls])?for|set[vx]|defclass|defmacro|del|export|eval-and-compile|eval-when-compile|get|global|if|import|(de)?fn|nonlocal|not-in|or|(quasi)?quote|require|return|cut|raise|try|unpack-iterable|unpack-mapping|unquote|unquote-splice|when|while|with|yield|local-macros|in|is|py(s)?|pragma|nonlocal|(is-)?not)(?![\\\\.:\\\\w_\\\\-=!@\\\\$%^&?/<>*])","name":"keyword.control.hy"},{"match":"(?<=\\\\(\\\\s*)\\\\.(?![\\\\.:\\\\w_\\\\-=!@\\\\$%^&?/<>*])","name":"keyword.control.dot.hy"}]},"operators":{"patterns":[{"match":"(?*])(\\\\+=?|\\\\/\\\\/?=?|\\\\*\\\\*?=?|--?=?|[!<>]?=|@=?|%=?|<>?=?|&=?|\\\\|=?|\\\\^|~@|~=?|#\\\\*\\\\*?)(?![\\\\.:\\\\w_\\\\-=!@\\\\$%^&?/<>*])","name":"keyword.control.hy"}]},"strings":{"begin":"(f?\\"|}(?=[^\\n]*?[{\\"]))","end":"(\\"|(?<=[\\"}][^\\n]*?){)","name":"string.quoted.double.hy","patterns":[{"match":"\\\\\\\\.","name":"constant.character.escape.hy"}]},"symbol":{"match":"(?*#])[\\\\.a-zA-ZΑ-Ωα-ω_\\\\-=!@\\\\$%^*#][\\\\.:\\\\w_\\\\-=!@\\\\$%^&?/<>*#]*","name":"variable.other.hy"}},"scopeName":"source.hy"}`)),t=[e];export{t as default}; ================================================ FILE: jesse/static/_nuxt/BMl_rFTw.js ================================================ import{_ as Fe}from"./DnWQm4Tq.js";import{d as fe,a as _e,c as T,S as le,r as y,w as M,B as me,W as pe,C as d,g as i,E as b,j as t,G as m,bl as Ee,ad as Ue,bm as Ie,F,O as P,Q as ye,a4 as Be,a6 as He,aM as We,n as Pe,J as R,i as s,f as h,L as qe,_ as Ge,e as W,x as f,t as Je,H as Y,N as Ke,M as Qe,q as O,ar as oe,ay as Xe,K as x,z as Ye,l as Ze,p as et,s as A,I as tt,h as st}from"./CU_MfyYc.js";import{_ as at}from"./DZb6Dd70.js";import{_ as ot}from"./D-1_drer.js";import{_ as lt}from"./CvhZxjKo.js";import{s as nt,T as it,l as rt,d as dt}from"./9VOnL4Iz.js";import{_ as ct}from"./BW0IIeyO.js";import{_ as ut}from"./DMFWKIsW.js";import{_ as vt}from"./RFJ54-KY.js";import{_ as gt}from"./C4bX54si.js";import{_ as ft}from"./CD20-hSi.js";import{_ as _t}from"./DK27pemE.js";import{u as mt}from"./Cwg39VG_.js";import{r as pt,a as yt}from"./CViTd9PT.js";import"./D35nYK_C.js";const ht={key:0,class:"mb-2 p-3 bg-red-100 dark:bg-red-900 text-red-700 dark:text-red-200 rounded-md"},bt={class:"text-sm font-medium"},wt={class:"mt-2 flex items-center justify-between"},xt={class:"flex items-center"},kt=["value"],Ct=fe({__name:"ObjectiveCurveChart",props:{data:{}},setup(ne){const J=_e(),E=T(()=>J.value),S=le(),u=y(null),V=ne,l=T(()=>{const c=S.results.generalInfo.find($=>$[0]==="Objective Function");return c?{sharpe:"sharpe_ratio",calmar:"calmar_ratio",sortino:"sortino_ratio",omega:"omega_ratio",serenity:"serenity_index","smart sharpe":"smart_sharpe","smart sortino":"smart_sortino"}[c[1].toLowerCase()]||c[1].toLowerCase():"sharpe_ratio"}),L=y(null);let g=null,z=null,j=null;const U=T(()=>V.data.length>0&&V.data[0].training?Object.keys(V.data[0].training):[]),p=T({get:()=>S.results.selectedObjectiveMetric,set:c=>{S.results.selectedObjectiveMetric=c}});M(U,c=>{if(!S.results.selectedObjectiveMetric&&c.length){const r=l.value;c.includes(r)?p.value=r:p.value=c[0]}},{immediate:!0});const k=T(()=>V.data.map(r=>({trial:r.trial,training:r.training[p.value]!==void 0?r.training[p.value]:null,testing:r.testing[p.value]!==void 0?r.testing[p.value]:null})));function q(){if(L.value)try{u.value=null;const c={...nt,width:L.value.clientWidth,height:300,timeScale:{timeVisible:!1,secondsVisible:!1,tickMarkFormatter:r=>Math.floor(r)},localization:{timeFormatter:r=>Math.floor(r)}};g=it(L.value,c),z=g.addLineSeries({color:"#60A5FA",lineWidth:2,title:"Training"}),j=g.addLineSeries({color:"#F87171",lineWidth:2,title:"Testing"}),B(E.value),I()}catch(c){N(c)}}function I(){if(!(!z||!j))try{u.value=null;const c=k.value.sort((C,Z)=>C.trial-Z.trial),r=c.filter(C=>C.training!==null).map(C=>({time:C.trial,value:C.training})),$=c.filter(C=>C.testing!==null).map(C=>({time:C.trial,value:C.testing}));z.setData(r),j.setData($),g==null||g.timeScale().fitContent()}catch(c){N(c)}}function N(c){console.error("Chart error:",c),u.value=`Failed to render chart: ${c.message||"Unknown error"}`,g&&(g.remove(),g=null,z=null,j=null)}function B(c){if(g)try{g.applyOptions(c==="light"?rt.chart:dt.chart)}catch(r){N(r)}}function K(){if(g&&L.value)try{g.applyOptions({width:L.value.clientWidth})}catch(c){N(c)}}me(()=>{q(),window.addEventListener("resize",K)}),pe(()=>{g&&(g.remove(),g=null),window.removeEventListener("resize",K)}),M(k,I),M(p,I),M(E,B);function Q(c){return c.replace(/_/g," ").toUpperCase()}return(c,r)=>(i(),d("div",null,[u.value?(i(),d("div",ht,[t("p",bt,m(u.value),1)])):b("",!0),t("div",{ref_key:"chartContainer",ref:L,class:"rounded overflow-hidden border-2 border-gray-100 dark:border-gray-600",style:{"min-height":"300px"}},null,512),t("div",wt,[r[2]||(r[2]=Ee('
TrainingTesting
',1)),t("div",xt,[r[1]||(r[1]=t("label",{class:"text-sm text-gray-700 dark:text-gray-300 mr-2"},"Metric:",-1)),Ue(t("select",{"onUpdate:modelValue":r[0]||(r[0]=$=>p.value=$),class:"text-sm py-1 px-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 bg-white dark:bg-gray-800"},[(i(!0),d(F,null,P(U.value,$=>(i(),d("option",{key:$,value:$},m(Q($)),9,kt))),128))],512),[[Ie,p.value]])])])]))}}),Tt=ye(Ct,[["__scopeId","data-v-a7d13feb"]]),St=et(_t),$t={key:0,class:"mb-8"},jt={key:1,class:"mb-8"},Lt={key:2,class:"mb-8"},zt={class:"border-2 border-gray-100 dark:border-gray-600 rounded overflow-hidden p-4 mb-8"},Mt={class:"space-y-2"},Vt={class:"border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-700 rounded-lg overflow-hidden"},Dt={class:"flex justify-between font-semibold p-4 bg-gray-100 dark:bg-gray-900 text-sm"},Nt={class:"w-[10%]"},Rt={class:"w-[12%]"},Ot={class:"w-[28%]"},At={class:"w-[20%]"},Ft={class:"w-[15%]"},Et={class:"w-[15%]"},Ut={class:"w-[10%]"},It={class:"w-[12%]"},Bt={class:"w-[28%]"},Ht={class:"w-[20%]"},Wt={class:"w-[15%]"},Pt={class:"w-[15%]"},qt={key:3},Gt={class:"mb-8"},Jt={key:0},Kt={key:1,class:"border-2 border-gray-100 dark:border-gray-600 rounded overflow-hidden p-4"},Qt={class:"space-y-2"},Xt={key:2,class:"border-2 border-gray-100 dark:border-gray-600 rounded overflow-hidden p-8 text-center"},Yt={class:"mt-16"},Zt={class:"text-sm text-gray-500 dark:text-gray-400 mb-4"},es={key:0,class:"my-4 flex gap-2"},ts={class:"border border-gray-200 bg-white dark:border-gray-700 rounded-lg overflow-hidden"},ss={class:"flex justify-between font-semibold p-4 bg-gray-100 dark:bg-gray-900 text-sm"},as={class:"w-[28%] text-center"},os={key:0},ls=["onClick"],ns={class:"w-[10%] text-sm font-medium"},is={class:"w-[12%] text-sm"},rs={class:"w-[28%] text-sm text-center"},ds={class:"w-[20%] text-sm"},cs={class:"w-[15%] flex justify-center space-x-1"},us={class:"relative w-[15%] flex justify-center"},vs={key:1,class:"dark:bg-gray-800"},gs={class:"w-[10%]"},fs={class:"w-[12%]"},_s={class:"w-[28%] flex justify-center"},ms={class:"w-[20%]"},ps={class:"w-[15%] flex justify-center"},ys={class:"w-[15%] flex justify-center"},hs={key:2,class:"text-center py-8 text-gray-500 dark:text-gray-400 dark:bg-gray-800"},bs={key:1,class:"mt-4 flex gap-2"},ws={key:0,class:"flex flex-col items-center justify-center select-none"},xs={class:"mb-8 w-full"},ks={class:"flex flex-col gap-4 mt-4"},Cs=["textContent"],Ts={key:1},Ss={class:"mb-8 w-full"},$s={class:"flex flex-col gap-4 mt-4"},js={key:2,class:"mt-8 w-full"},Ls={class:"p-4"},zs={class:"mt-4"},Ms={class:"w-full text-sm"},Vs={class:"w-full"},Ds={class:"w-full flex justify-between bg-gray-50 dark:bg-gray-800 py-2 px-4"},Ns={class:"w-full flex justify-between py-2 px-4"},Rs={class:"w-full flex justify-between bg-gray-50 dark:bg-gray-800 py-2 px-4"},Os={class:"w-full flex justify-between py-2 px-4"},As={class:"w-full"},Fs={class:"font-bold"},Es={class:"w-full"},Us={class:"w-1/3 font-bold italic"},Is={class:"w-1/3 text-center"},Bs={class:"w-1/3 text-center"},Hs={class:"flex justify-end mt-8 space-x-2"},Ws={class:"flex items-center justify-between"},Ps={key:0,class:"flex flex-col space-y-4"},qs={class:"flex flex-col"},Gs={class:"flex items-center justify-between mb-2"},Js={class:"flex gap-2"},Ks={class:"border border-gray-200 dark:border-gray-800 rounded",style:{height:"500px"}},Qs={class:"p-4 space-y-3"},Xs={key:1,class:"flex flex-col space-y-4"},Ys={class:"flex flex-col"},Zs={class:"flex items-center justify-between mb-2"},ea={class:"flex gap-2"},ta={key:2,class:"text-center py-8 text-gray-500 dark:text-gray-400"},sa=fe({__name:"[id]",setup(ne){mt({title:"Optimization Session - Jesse"});const J=Be(),E=He(),S=T(()=>E.params.id),u=le(),V=T(()=>u.form),l=T(()=>u.results),L=y(!1),g=y(!1),z=y(!1),j=y(!1),U=y(null),p=y(),k=y(""),q=y(!1),I=y(""),N=y(""),B=y(!0),K=_e(),Q=T(()=>K.value==="light"?"vs-light":"vs-dark"),c=T(()=>({automaticLayout:!0,minimap:{enabled:!1},fontSize:14,lineHeight:21,readOnly:!0})),r=y([]);M(()=>u.results.status,n=>{n==="terminated"||n==="stopped"?D.value=!0:D.value=!1});const $=T(()=>E.query.status?E.query.status:null);me(()=>{const n=()=>{var _;(_=u.clearCurrentSession)==null||_.call(u)},e=()=>{document.hidden&&(k.value="",U.value=null)};window.addEventListener("beforeunload",n),document.addEventListener("visibilitychange",e),pe(()=>{var _;if(window.removeEventListener("beforeunload",n),document.removeEventListener("visibilitychange",e),(_=p.value)!=null&&_.$editor)try{p.value.$editor.dispose()}catch(G){console.error("Error disposing editor:",G)}p.value=void 0,k.value="",U.value=null,l.value.infoLogs="",l.value.best_candidates=[],u.clearCurrentSession&&u.clearCurrentSession()}),setTimeout(async()=>{$.value?J.replace(`/optimization/${S.value}`):(u.clearCurrentSession(),await u.loadSession(S.value),u.results.status==="terminated"||u.results.status==="stopped"?D.value=!0:D.value=!1),B.value=!1},100)}),We(()=>{var n;return(n=u.clearCurrentSession)==null||n.call(u),k.value="",U.value=null,B.value=!0,!0}),M(Q,n=>{var e,_;(_=(e=p.value)==null?void 0:e.$editor)==null||_.updateOptions({theme:n})}),M(j,async n=>{if(q.value=!0,n&&k.value===""){const e=await u.getSessionStrategyCodes(S.value);e&&(k.value=Object.values(e)[0]),await Pe(),setTimeout(()=>{var _;(_=p.value)!=null&&_.$editor&&p.value.$editor.updateOptions({theme:Q.value})},50)}q.value=!1}),M(z,async n=>{if(n){const e=await u.getSessionNotes(S.value);e&&(I.value=e.title||"",N.value=e.description||"")}}),M(()=>l.value.logsModal,async n=>{if(n&&S.value&&!l.value.infoLogs.length){const e=await u.getSessionLogs(S.value);e&&(l.value.infoLogs=e)}});const C=T(()=>R.remainingTimeText(l.value.progressbar.estimated_remaining_seconds)),Z=T(()=>{const n=l.value.generalInfo.find(e=>e[0]==="Objective Function");return n?n[1]:"sharpe"});function he(){R.copyToClipboard(l.value.infoLogs),A("success","Info logs copied successfully"),g.value=!0,setTimeout(()=>{g.value=!1},3e3)}async function be(){await u.terminate()}const X=y(!1),w=y({});async function ie(n){(await R.copyToClipboard(n)).success?A("success","DNA copied to clipboard"):A("error","Failed to copy DNA. Please try manually selecting and copying.")}function we(n){w.value=n,X.value=!0}const D=y(!1);async function xe(){await u.resume()}function re(){u.newSession(),tt("/optimization/")}const ke=n=>{const e=[];return n.forEach(_=>{e.push([{value:_.symbol,style:""},{value:_.timeframe,style:""},{value:_.strategy,style:""}])}),e},Ce=n=>[["Training Start Date",n.training_start_date],["Training Finish Date",n.training_finish_date],["Testing Start Date",n.testing_start_date],["Testing Finish Date",n.testing_finish_date]];async function Te(){try{await navigator.clipboard.writeText(k.value),A("success","Strategy code copied to clipboard")}catch(n){st(n)}}function Se(){var e;const n=(e=V.value.routes[0])==null?void 0:e.strategy;n?te(`/strategies/${n}`):A("error","No strategy selected")}function de(n){const e=r.value.findIndex(_=>_.trial===n.trial);e>-1?r.value.splice(e,1):r.value.push(n)}function ee(){r.value=[]}async function ce(){if(r.value.length===0)return;const e=r.value.map(G=>G.dna).join(` `);(await R.copyToClipboard(e)).success?(A("success",`DNA from ${r.value.length} candidates copied to clipboard`),ee()):A("error","Failed to copy DNA. Please try manually selecting and copying.")}function te(n){J.push(n)}return(n,e)=>{const _=Fe,G=qe,$e=at,je=ot,o=lt,se=Ke,Le=Tt,v=Je,ze=Xe,Me=ct,ue=Qe,ve=ut,Ve=vt,De=gt,ge=Ge,Ne=ft,Re=St,Oe=Ze,Ae=Ye;return i(),d(F,null,[s(G,{modelValue:l.value.logsModal,"onUpdate:modelValue":e[0]||(e[0]=a=>l.value.logsModal=a),title:"Logs"},{default:h(()=>[s(_,{logs:l.value.infoLogs},null,8,["logs"])]),buttons:h(()=>[t("button",{class:"ml-2 p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full text-gray-400 hover:text-gray-500 dark:hover:text-gray-300 focus:outline-none",onClick:he},[g.value?(i(),W(f(pt),{key:0,class:"h-6 w-6","aria-hidden":"true"})):b("",!0),!g.value&&l.value.infoLogs.length!=0?(i(),W(f(yt),{key:1,class:"h-6 w-6","aria-hidden":"true"})):b("",!0)])]),_:1},8,["modelValue"]),s(De,null,{left:h(()=>[l.value.alert.message?(i(),d("div",$t,[s($e,{color:"teal",icon:"i-heroicons-check-circle",variant:"soft",title:l.value.alert.message,"close-button":{icon:"i-heroicons-x-mark-20-solid",color:"white",variant:"link"},onClose:e[1]||(e[1]=a=>l.value.alert.message="")},null,8,["title"])])):b("",!0),l.value.exception.error&&l.value.executing?(i(),d("div",jt,[s(je,{modelValue:L.value,"onUpdate:modelValue":e[2]||(e[2]=a=>L.value=a),title:l.value.exception.error,content:l.value.exception.traceback,mode:"optimize"},null,8,["modelValue","title","content"])])):b("",!0),B.value&&!l.value.executing&&!l.value.showResults?(i(),d("div",Lt,[t("div",zt,[t("div",Mt,[s(o,{class:"h-8 w-3/4"}),s(o,{class:"h-8 w-full"}),s(o,{class:"h-8 w-5/6"}),s(o,{class:"h-8 w-full"}),s(o,{class:"h-8 w-4/5"}),s(o,{class:"h-8 w-full"})])]),t("div",Vt,[t("div",Dt,[t("div",Nt,[s(o,{class:"h-4 w-12"})]),t("div",Rt,[s(o,{class:"h-4 w-12"})]),t("div",Ot,[s(o,{class:"h-4 w-32"})]),t("div",At,[s(o,{class:"h-4 w-16"})]),t("div",Ft,[s(o,{class:"h-4 w-16"})]),t("div",Et,[s(o,{class:"h-4 w-16"})])]),(i(),d(F,null,P(5,a=>t("div",{key:a,class:"flex justify-between border-t border-gray-200 dark:border-gray-700 p-4"},[t("div",Ut,[s(o,{class:"h-4 w-8"})]),t("div",It,[s(o,{class:"h-4 w-10"})]),t("div",Bt,[s(o,{class:"h-4 w-24"})]),t("div",Ht,[s(o,{class:"h-4 w-16"})]),t("div",Wt,[s(o,{class:"h-4 w-12"})]),t("div",Pt,[s(o,{class:"h-4 w-8"})])])),64))])])):b("",!0),(l.value.executing||l.value.showResults)&&!l.value.exception.error?(i(),d("div",qt,[t("div",Gt,[s(se,{title:"Objective Progress",class:"mb-4"}),l.value.objective_curve&&l.value.objective_curve.length?(i(),d("div",Jt,[s(Le,{data:l.value.objective_curve},null,8,["data"])])):l.value.executing&&!D.value?(i(),d("div",Kt,[t("div",Qt,[s(o,{class:"h-8 w-3/4"}),s(o,{class:"h-8 w-full"}),s(o,{class:"h-8 w-5/6"}),s(o,{class:"h-8 w-full"}),s(o,{class:"h-8 w-4/5"}),s(o,{class:"h-8 w-full"}),s(o,{class:"h-8 w-3/4"}),s(o,{class:"h-8 w-full"}),s(o,{class:"h-8 w-5/6"}),s(o,{class:"h-8 w-full"})])])):(i(),d("div",Xt,e[21]||(e[21]=[t("div",{class:"text-gray-400 dark:text-gray-500"},[t("svg",{class:"mx-auto h-12 w-12 mb-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"})]),t("p",{class:"text-sm"},"No optimization progress data available")],-1)])))]),t("div",Yt,[s(se,{title:"Best Trials",class:"my-4"}),t("p",Zt," Showing "+m(l.value.best_candidates.length)+" trials sorted by fitness score ",1),r.value.length>0?(i(),d("div",es,[s(v,{variant:"soft",color:"primary",size:"sm",icon:"i-heroicons-clipboard-document-list",onClick:ce},{default:h(()=>[O(" Copy Selected DNA ("+m(r.value.length)+") ",1)]),_:1}),s(v,{variant:"soft",color:"gray",size:"sm",icon:"i-heroicons-x-mark",onClick:ee},{default:h(()=>e[22]||(e[22]=[O(" Clear Selection ")])),_:1})])):b("",!0),t("div",ts,[t("div",ss,[e[23]||(e[23]=t("div",{class:"w-[10%]"},"Rank",-1)),e[24]||(e[24]=t("div",{class:"w-[12%]"},"Trial",-1)),t("div",as,"Training/Testing "+m(Z.value),1),e[25]||(e[25]=t("div",{class:"w-[20%]"},"Fitness",-1)),e[26]||(e[26]=t("div",{class:"w-[15%] text-center"},"Actions",-1)),e[27]||(e[27]=t("div",{class:"w-[15%] text-center"},"Select",-1))]),l.value.best_candidates.length?(i(),d("div",os,[(i(!0),d(F,null,P(l.value.best_candidates,(a,H)=>(i(),d("div",{key:H,class:Y(["flex items-center justify-between border-t border-gray-200 dark:border-gray-700 p-4 dark:bg-gray-700 cursor-pointer",{"bg-gray-50 dark:bg-gray-800":H%2===0}]),onClick:oe(ae=>de(a),["stop"])},[t("div",ns,m(a.rank),1),t("div",is,m(a.trial),1),t("div",rs,m(a.objective_metric),1),t("div",ds,m(a.fitness),1),t("div",cs,[s(v,{variant:"ghost",color:"gray",icon:"i-heroicons-clipboard-document-list",onClick:oe(ae=>ie(a.dna),["stop"])},null,8,["onClick"]),s(v,{variant:"ghost",icon:"i-heroicons-information-circle",onClick:oe(ae=>we(a),["stop"])},null,8,["onClick"])]),t("div",us,[e[28]||(e[28]=t("div",{class:"inset-0 absolute z-10"},null,-1)),s(ze,{"model-value":r.value.includes(a),"onUpdate:modelValue":ae=>de(a)},null,8,["model-value","onUpdate:modelValue"])])],10,ls))),128))])):l.value.executing&&!D.value?(i(),d("div",vs,[(i(),d(F,null,P(5,a=>t("div",{key:a,class:"flex justify-between border-t border-gray-200 dark:border-gray-700 p-4"},[t("div",gs,[s(o,{class:"h-4 w-8"})]),t("div",fs,[s(o,{class:"h-4 w-10"})]),t("div",_s,[s(o,{class:"h-4 w-24"})]),t("div",ms,[s(o,{class:"h-4 w-16"})]),t("div",ps,[s(o,{class:"h-4 w-12"})]),t("div",ys,[s(o,{class:"h-4 w-8"})])])),64))])):(i(),d("div",hs,e[29]||(e[29]=[t("svg",{class:"mx-auto h-10 w-10 mb-3 text-gray-300 dark:text-gray-600",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"})],-1),t("p",{class:"text-sm"},"No candidates were found in this session",-1)])))]),r.value.length>0?(i(),d("div",bs,[s(v,{variant:"soft",color:"primary",size:"sm",icon:"i-heroicons-clipboard-document-list",onClick:ce},{default:h(()=>[O(" Copy Selected DNA ("+m(r.value.length)+") ",1)]),_:1}),s(v,{variant:"soft",color:"gray",size:"sm",icon:"i-heroicons-x-mark",onClick:ee},{default:h(()=>e[30]||(e[30]=[O(" Clear Selection ")])),_:1})])):b("",!0)])])):b("",!0)]),right:h(()=>[l.value.executing&&!l.value.showResults?(i(),d("div",ws,[t("div",xs,[l.value.exception.error?(i(),W(v,{key:0,class:"w-full flex justify-center mt-4",icon:"i-heroicons-arrow-path",size:"xl",variant:"solid",label:"Rerun",trailing:!1,onClick:e[3]||(e[3]=a=>f(le)().rerun())})):b("",!0),l.value.exception.error?(i(),W(v,{key:1,class:"w-full flex justify-center mt-4",icon:"i-heroicons-arrow-uturn-left",size:"xl",variant:"solid",color:"green",label:"New Session",trailing:!1,onClick:e[4]||(e[4]=a=>re())})):l.value.showResults?b("",!0):(i(),W(v,{key:2,color:"gray",ui:{color:{gray:{solid:"text-rose-500 dark:text-rose-400"}}},class:"w-full flex justify-center mt-4",icon:"i-heroicons-pause",size:"xl",variant:"solid",label:"Terminate",trailing:!1,onClick:e[5]||(e[5]=a=>be())})),t("div",ks,[s(v,{class:"w-full flex justify-center",color:"gray",size:"xl",variant:"solid",label:"Logs",icon:"i-heroicons-document-text",trailing:!1,onClick:e[6]||(e[6]=a=>l.value.logsModal=!0)}),s(v,{class:"w-full flex justify-center",color:"gray",size:"xl",variant:"solid",label:"History",icon:"i-heroicons-clock",trailing:!1,onClick:e[7]||(e[7]=a=>te("/optimization/history"))})])]),t("div",null,[s(Me,{progress:l.value.progressbar.current},null,8,["progress"])]),!l.value.exception.error&&!l.value.best_candidates.length?(i(),d("h3",{key:0,class:"mt-8 animate-pulse",textContent:m(C.value)},null,8,Cs)):b("",!0)])):b("",!0),l.value.showResults?(i(),d("div",Ts,[t("div",Ss,[D.value?(i(),W(v,{key:0,class:"w-full flex justify-center",icon:"i-heroicons-play",size:"xl",variant:"solid",color:"primary",label:"Resume",trailing:!1,onClick:e[8]||(e[8]=a=>xe())})):b("",!0),s(v,{class:Y(["w-full flex justify-center",{"mt-4":D.value}]),icon:"i-heroicons-arrow-uturn-left",size:"xl",variant:"solid",color:"green",label:"New Session",trailing:!1,onClick:e[9]||(e[9]=a=>re())},null,8,["class"]),t("div",$s,[s(v,{class:"w-full flex justify-center",color:"gray",size:"xl",variant:"solid",label:"Logs",icon:"i-heroicons-document-text",trailing:!1,onClick:e[10]||(e[10]=a=>l.value.logsModal=!0)}),s(v,{class:"w-full flex justify-center",color:"gray",size:"xl",variant:"solid",label:"History",icon:"i-heroicons-clock",trailing:!1,onClick:e[11]||(e[11]=a=>te("/optimization/history"))}),s(v,{class:"w-full flex justify-center",color:"gray",size:"xl",variant:"solid",label:"Title & Notes",icon:"i-heroicons-pencil-square",trailing:!1,onClick:e[12]||(e[12]=a=>z.value=!0)}),s(v,{class:"w-full flex justify-center",color:"gray",size:"xl",variant:"solid",label:"View Strategy",icon:"i-heroicons-code-bracket",trailing:!1,onClick:e[13]||(e[13]=a=>j.value=!0)})])])])):b("",!0),(l.value.executing||l.value.showResults)&&l.value.generalInfo.length?(i(),d("div",js,[s(se,{title:"Info",class:"mb-4"}),s(ue,{data:l.value.generalInfo},null,8,["data"]),s(ve,{class:"mt-8 mb-4",size:"lg",label:"Duration"}),s(ue,{data:Ce(V.value)},null,8,["data"]),s(ve,{class:"mt-8 mb-4",size:"lg",label:"Routes"}),s(Ve,{data:ke(V.value.routes),"header-items":["Symbol","Timeframe","Strategy"],header:""},null,8,["data"])])):b("",!0)]),_:1}),s(ge,{modelValue:X.value,"onUpdate:modelValue":e[16]||(e[16]=a=>X.value=a)},{default:h(()=>[t("div",Ls,[t("div",zs,[t("div",Ms,[e[37]||(e[37]=t("h2",{class:"text-lg mb-2 font-bold italic dark:text-white text-center"}," Candidate Info ",-1)),t("div",Vs,[t("div",Ds,[e[31]||(e[31]=t("div",{class:"font-bold"},"Rank",-1)),t("div",null,m(w.value.rank),1)]),t("div",Ns,[e[32]||(e[32]=t("div",{class:"font-bold"},"Trial",-1)),t("div",null,m(w.value.trial),1)]),t("div",Rs,[e[33]||(e[33]=t("div",{class:"font-bold"},"Fitness",-1)),t("div",null,m(w.value.fitness),1)]),t("div",Os,[e[35]||(e[35]=t("div",{class:"font-bold"},"DNA",-1)),s(v,{size:"xs",color:"primary",onClick:e[14]||(e[14]=a=>ie(w.value.dna))},{default:h(()=>e[34]||(e[34]=[O(" Copy DNA ")])),_:1})])]),e[38]||(e[38]=t("h2",{class:"text-lg font-bold italic dark:text-white mt-6 mb-2 text-center"}," Parameters ",-1)),t("div",As,[(i(!0),d(F,null,P(Object.keys(w.value.params),(a,H)=>(i(),d("div",{key:a,class:Y([{"bg-gray-50 dark:bg-gray-800":H%2===0},"w-full flex justify-between py-2 px-4"])},[t("div",Fs,m(a),1),t("div",null,m(typeof w.value.params[a]=="number"?f(x).round(w.value.params[a],6):w.value.params[a]),1)],2))),128))]),e[39]||(e[39]=t("h2",{class:"text-lg font-bold italic dark:text-white mt-6 mb-2 text-center"}," Metrics Comparison ",-1)),t("div",Es,[e[36]||(e[36]=t("div",{class:"flex justify-between py-2 px-4 bg-gray-100 dark:bg-gray-800 font-bold text-sm"},[t("div",{class:"w-1/3 font-bold"},"Metric"),t("div",{class:"w-1/3 text-center font-bold"},"Training"),t("div",{class:"w-1/3 text-center font-bold"},"Testing")],-1)),(i(!0),d(F,null,P([{key:"total",label:"Total Closed Trades"},{key:"net_profit",label:"Total Net Profit",format:a=>`${f(x).round(a.net_profit,2)} (${f(x).round(a.net_profit_percentage,2)}%)`},{key:"starting_balance",label:"Starting => Finishing Balance",format:a=>`${f(x).round(a.starting_balance,2)} => ${f(x).round(a.finishing_balance,2)}`},{key:"total_open_trades",label:"Open Trades"},{key:"fee",label:"Total Paid Fees",round:2},{key:"max_drawdown",label:"Max Drawdown",round:2},{key:"annual_return",label:"Annual Return",format:a=>`${f(x).round(a.annual_return,2)}%`},{key:"expectancy",label:"Expectancy",format:a=>`${f(x).round(a.expectancy,2)} (${f(x).round(a.expectancy_percentage,2)}%)`},{key:"average_win",label:"Avg Win | Avg Loss",format:a=>`${f(x).round(a.average_win,2)} | ${f(x).round(a.average_loss,2)}`},{key:"ratio_avg_win_loss",label:"Ratio Avg Win / Avg Loss",round:2},{key:"win_rate",label:"Win-rate",format:a=>`${f(x).round(a.win_rate*100,2)}%`},{key:"longs_percentage",label:"Longs | Shorts",format:a=>`${f(x).round(a.longs_percentage,2)}% | ${f(x).round(a.shorts_percentage,2)}%`},{key:"average_holding_period",label:"Avg Holding Time",format:a=>f(R).secondsToHumanReadable(a.average_holding_period)},{key:"average_winning_holding_period",label:"Winning Trades Avg Holding Time",format:a=>f(R).secondsToHumanReadable(a.average_winning_holding_period)},{key:"average_losing_holding_period",label:"Losing Trades Avg Holding Time",format:a=>f(R).secondsToHumanReadable(a.average_losing_holding_period)},{key:"sharpe_ratio",label:"Sharpe Ratio",round:2},{key:"calmar_ratio",label:"Calmar Ratio",round:2},{key:"sortino_ratio",label:"Sortino Ratio",round:2},{key:"omega_ratio",label:"Omega Ratio",round:2},{key:"winning_streak",label:"Winning Streak"},{key:"losing_streak",label:"Losing Streak"},{key:"largest_winning_trade",label:"Largest Winning Trade",round:2},{key:"largest_losing_trade",label:"Largest Losing Trade",round:2},{key:"total_winning_trades",label:"Total Winning Trades"},{key:"total_losing_trades",label:"Total Losing Trades"}],(a,H)=>(i(),d("div",{key:a.key,class:Y([{"bg-gray-50 dark:bg-gray-800":H%2===0},"w-full flex justify-between py-2 px-4"])},[t("div",Us,m(a.label),1),t("div",Is,m(a.format?a.format(w.value.training_metrics):a.round?f(x).round(w.value.training_metrics[a.key],a.round):w.value.training_metrics[a.key]),1),t("div",Bs,m(a.format?a.format(w.value.testing_metrics):a.round?f(x).round(w.value.testing_metrics[a.key],a.round):w.value.testing_metrics[a.key]),1)],2))),128))])])]),t("div",Hs,[s(v,{color:"gray",block:"",onClick:e[15]||(e[15]=a=>X.value=!1)},{default:h(()=>e[40]||(e[40]=[O(" Close ")])),_:1})])])]),_:1},8,["modelValue"]),s(Ne,{modelValue:z.value,"onUpdate:modelValue":e[17]||(e[17]=a=>z.value=a),"session-id":S.value,"initial-title":I.value,"initial-description":N.value},null,8,["modelValue","session-id","initial-title","initial-description"]),s(ge,{modelValue:j.value,"onUpdate:modelValue":e[20]||(e[20]=a=>j.value=a),ui:{width:"sm:max-w-5xl"}},{default:h(()=>[s(Ae,null,{header:h(()=>[t("div",Ws,[e[41]||(e[41]=t("h3",{class:"text-lg font-semibold"},"Strategy Code Snapshot",-1)),s(v,{color:"gray",variant:"ghost",icon:"i-heroicons-x-mark",size:"sm",onClick:e[18]||(e[18]=a=>j.value=!1)})])]),default:h(()=>[q.value?(i(),d("div",Ps,[t("div",qs,[t("div",Gs,[s(o,{class:"h-4 w-20"}),t("div",Js,[s(o,{class:"h-8 w-16"}),s(o,{class:"h-8 w-32"})])]),t("div",Ks,[t("div",Qs,[s(o,{class:"h-4 w-full"}),s(o,{class:"h-4 w-5/6"}),s(o,{class:"h-4 w-4/5"}),s(o,{class:"h-4 w-full"}),s(o,{class:"h-4 w-3/4"}),s(o,{class:"h-4 w-full"}),s(o,{class:"h-4 w-2/3"}),s(o,{class:"h-4 w-5/6"}),s(o,{class:"h-4 w-full"}),s(o,{class:"h-4 w-4/5"}),s(o,{class:"h-4 w-1/2"}),s(o,{class:"h-4 w-3/4"}),s(o,{class:"h-4 w-full"}),s(o,{class:"h-4 w-5/6"}),s(o,{class:"h-4 w-2/3"})])])])])):k.value&&k.value.length>0?(i(),d("div",Xs,[t("div",Ys,[t("div",Zs,[e[42]||(e[42]=t("label",{class:"block text-sm font-medium"},null,-1)),t("div",ea,[s(v,{icon:"i-heroicons-clipboard-document",label:"Copy",variant:"soft",color:"gray",size:"sm",onClick:Te}),s(v,{icon:"i-heroicons-pencil-square",label:"Go to Strategy Editor",variant:"soft",color:"primary",size:"sm",onClick:Se})])]),s(Oe,null,{default:h(()=>[s(Re,{ref_key:"codeEditorRef",ref:p,modelValue:k.value,"onUpdate:modelValue":e[19]||(e[19]=a=>k.value=a),lang:"python",options:c.value,class:"border border-gray-200 dark:border-gray-800 rounded",style:{height:"500px"}},{default:h(()=>e[43]||(e[43]=[O(" Loading editor... ")])),_:1},8,["modelValue","options"])]),_:1})])])):(i(),d("div",ta," No strategy code snapshot available for this session. "))]),_:1})]),_:1},8,["modelValue"])],64)}}}),ya=ye(sa,[["__scopeId","data-v-ac8c2f8b"]]);export{ya as default}; ================================================ FILE: jesse/static/_nuxt/BNHBcdi1.js ================================================ import s from"./atvbtKCR.js";const e=Object.freeze(JSON.parse('{"displayName":"Shell Session","fileTypes":["sh-session"],"name":"shellsession","patterns":[{"captures":{"1":{"name":"entity.other.prompt-prefix.shell-session"},"2":{"name":"punctuation.separator.prompt.shell-session"},"3":{"name":"source.shell","patterns":[{"include":"source.shell"}]}},"match":"^(?:((?:\\\\(\\\\S+\\\\)\\\\s*)?(?:sh\\\\S*?|\\\\w+\\\\S+[@:]\\\\S+(?:\\\\s+\\\\S+)?|\\\\[\\\\S+?[@:][^\\\\n]+?\\\\].*?))\\\\s*)?([>$#%❯➜]|\\\\p{Greek})\\\\s+(.*)$"},{"match":"^.+$","name":"meta.output.shell-session"}],"scopeName":"text.shell-session","embeddedLangs":["shellscript"],"aliases":["console"]}')),t=[...s,e];export{t as default}; ================================================ FILE: jesse/static/_nuxt/BNioltXt.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"OCaml","fileTypes":[".ml",".mli"],"name":"ocaml","patterns":[{"include":"#comment"},{"include":"#pragma"},{"include":"#decl"}],"repository":{"attribute":{"begin":"(\\\\[)[[:space:]]*((?|~$])@{1,3}(?![#\\\\-:!?.@*/&%^+<=>|~$]))","beginCaptures":{"1":{"name":"constant.language constant.numeric entity.other.attribute-name.id.css strong"},"2":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"end":"\\\\]","endCaptures":{"0":{"name":"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},"patterns":[{"include":"#attributePayload"}]},"attributeIdentifier":{"captures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{"name":"punctuation.definition.tag"}},"match":"((?|~$])%(?![#\\\\-:!?.@*/&%^+<=>|~$]))((?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))"},"attributePayload":{"patterns":[{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]%|^%))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"((?|~$])[:\\\\?](?![#\\\\-:!?.@*/&%^+<=>|~$]))|(?<=[[:space:]])|(?=\\\\])","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"patterns":[{"include":"#pathModuleExtended"},{"include":"#pathRecord"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"(?=\\\\])","patterns":[{"include":"#signature"},{"include":"#type"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]\\\\?|^\\\\?))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"(?=\\\\])","patterns":[{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]\\\\?|^\\\\?))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"(?=\\\\])|\\\\bwhen\\\\b","endCaptures":{"1":{}},"patterns":[{"include":"#pattern"}]},{"begin":"(?:(?<=(?:[^[:word:]]when|^when))(?![[:word:]]))","end":"(?=\\\\])","patterns":[{"include":"#term"}]}]},{"include":"#term"}]},"bindClassTerm":{"patterns":[{"begin":"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))","end":"(?|~$])(:)|(=)(?![#\\\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{"name":"support.type strong"}},"patterns":[{"begin":"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))","end":"(?=(?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?=\\\\btype\\\\b)","endCaptures":{"0":{"name":"entity.name.function strong emphasis"}},"patterns":[{"include":"#attributeIdentifier"}]},{"begin":"\\\\[","captures":{"0":{"name":"punctuation.definition.tag"}},"end":"\\\\]","patterns":[{"include":"#type"}]},{"include":"#bindTermArgs"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"(?|~$])=(?![#\\\\-:!?.@*/&%^+<=>|~$])|(?=\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\\\b)","endCaptures":{"0":{"name":"support.type strong"}},"patterns":[{"include":"#literalClassType"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"\\\\band\\\\b|(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},"patterns":[{"include":"#term"}]}]},"bindClassType":{"patterns":[{"begin":"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))","end":"(?|~$])(:)|(=)(?![#\\\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{"name":"support.type strong"}},"patterns":[{"begin":"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))","end":"(?=(?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?=\\\\btype\\\\b)","endCaptures":{"0":{"name":"entity.name.function strong emphasis"}},"patterns":[{"include":"#attributeIdentifier"}]},{"begin":"\\\\[","captures":{"0":{"name":"punctuation.definition.tag"}},"end":"\\\\]","patterns":[{"include":"#type"}]},{"include":"#bindTermArgs"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"(?|~$])=(?![#\\\\-:!?.@*/&%^+<=>|~$])|(?=\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\\\b)","endCaptures":{"0":{"name":"support.type strong"}},"patterns":[{"include":"#literalClassType"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"\\\\band\\\\b|(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},"patterns":[{"include":"#literalClassType"}]}]},"bindConstructor":{"patterns":[{"begin":"(?:(?<=(?:[^[:word:]]exception|^exception))(?![[:word:]]))|(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]\\\\+=|^\\\\+=|[^#\\\\-:!?.@*/&%^+<=>|~$]=|^=|[^#\\\\-:!?.@*/&%^+<=>|~$]\\\\||^\\\\|))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"(:)|(\\\\bof\\\\b)|((?|~$])\\\\|(?![#\\\\-:!?.@*/&%^+<=>|~$]))|(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{"name":"punctuation.definition.tag"},"3":{"name":"support.type strong"}},"patterns":[{"include":"#attributeIdentifier"},{"match":"\\\\.\\\\.","name":"variable.other.class.js message.error variable.interpolation string.regexp"},{"match":"\\\\b(?:\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)\\\\b(?![[:space:]]*(?:\\\\.|\\\\([^\\\\*]))","name":"constant.language constant.numeric entity.other.attribute-name.id.css strong"},{"include":"#type"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]of|^of))(?![[:word:]]))","end":"(?|~$])\\\\|(?![#\\\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"0":{"name":"support.type strong"}},"patterns":[{"include":"#type"}]}]},"bindSignature":{"patterns":[{"include":"#comment"},{"begin":"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))","end":"(?|~$])=(?![#\\\\-:!?.@*/&%^+<=>|~$])","endCaptures":{"0":{"name":"support.type strong"}},"patterns":[{"include":"#comment"},{"include":"#pathModuleExtended"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"\\\\band\\\\b|(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},"patterns":[{"include":"#signature"}]}]},"bindStructure":{"patterns":[{"include":"#comment"},{"begin":"(?:(?<=(?:[^[:word:]]and|^and))(?![[:word:]]))|(?=[[:upper:]])","end":"(?|~$])(:(?!=))|(:?=)(?![#\\\\-:!?.@*/&%^+<=>|~$])|(?=\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|open|type|val)\\\\b)","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{"name":"support.type strong"}},"patterns":[{"include":"#comment"},{"match":"\\\\bmodule\\\\b","name":"markup.inserted constant.language support.constant.property-value entity.name.filename"},{"match":"(?:\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)","name":"entity.name.function strong emphasis"},{"begin":"\\\\((?!\\\\))","captures":{"0":{"name":"punctuation.definition.tag"}},"end":"\\\\)","patterns":[{"include":"#comment"},{"begin":"(?|~$]):(?![#\\\\-:!?.@*/&%^+<=>|~$])","beginCaptures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp strong"}},"end":"(?=\\\\))","patterns":[{"include":"#signature"}]},{"include":"#variableModule"}]},{"include":"#literalUnit"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"\\\\b(and)\\\\b|((?|~$])=(?![#\\\\-:!?.@*/&%^+<=>|~$]))|(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},"2":{"name":"support.type strong"}},"patterns":[{"include":"#signature"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]:=|^:=|[^#\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"\\\\b(?:(and)|(with))\\\\b|(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},"2":{"name":"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},"patterns":[{"include":"#structure"}]}]},"bindTerm":{"patterns":[{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]!|^!))(?![#\\\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]external|^external|[^[:word:]]let|^let|[^[:word:]]method|^method|[^[:word:]]val|^val))(?![[:word:]]))","end":"(\\\\bmodule\\\\b)|(\\\\bopen\\\\b)|(?|~$])(:)|((?|~$])=(?![#\\\\-:!?.@*/&%^+<=>|~$]))(?![#\\\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"1":{"name":"markup.inserted constant.language support.constant.property-value entity.name.filename"},"2":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"},"3":{"name":"variable.other.class.js message.error variable.interpolation string.regexp strong"},"4":{"name":"support.type strong"}},"patterns":[{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]!|^!))(?![#\\\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]external|^external|[^[:word:]]let|^let|[^[:word:]]method|^method|[^[:word:]]val|^val))(?![[:word:]]))","end":"(?=\\\\b(?:module|open)\\\\b)|(?=(?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(\\\\brec\\\\b)|((?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{"name":"entity.name.function strong emphasis"}},"patterns":[{"include":"#attributeIdentifier"},{"include":"#comment"}]},{"begin":"(?:(?<=(?:[^[:word:]]rec|^rec))(?![[:word:]]))","end":"((?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?=[^[:space:][:alpha:]])","endCaptures":{"0":{"name":"entity.name.function strong emphasis"}},"patterns":[{"include":"#bindTermArgs"}]},{"include":"#bindTermArgs"}]},{"begin":"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))","end":"(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","patterns":[{"include":"#declModule"}]},{"begin":"(?:(?<=(?:[^[:word:]]open|^open))(?![[:word:]]))","end":"(?=\\\\bin\\\\b)|(?=\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","patterns":[{"include":"#pathModuleSimple"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"(?|~$])=(?![#\\\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"0":{"name":"support.type strong"}},"patterns":[{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"\\\\btype\\\\b|(?=[^[:space:]])","endCaptures":{"0":{"name":"keyword.control"}}},{"begin":"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))","end":"(?|~$])\\\\.(?![#\\\\-:!?.@*/&%^+<=>|~$])","endCaptures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"patterns":[{"include":"#pattern"}]},{"include":"#type"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"\\\\band\\\\b|(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},"patterns":[{"include":"#term"}]}]},"bindTermArgs":{"patterns":[{"applyEndPatternLast":true,"begin":"~|\\\\?","beginCaptures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"end":":|(?=[^[:space:]])","endCaptures":{"0":{"name":"keyword"}},"patterns":[{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]~|^~|[^#\\\\-:!?.@*/&%^+<=>|~$]\\\\?|^\\\\?))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"(?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?<=\\\\))","endCaptures":{"0":{"name":"markup.inserted constant.language support.constant.property-value entity.name.filename"}},"patterns":[{"include":"#comment"},{"begin":"\\\\((?!\\\\*)","captures":{"0":{"name":"punctuation.definition.tag"}},"end":"\\\\)","patterns":[{"begin":"(?<=\\\\()","end":":|=","endCaptures":{"0":{"name":"keyword"}},"patterns":[{"match":"(?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)","name":"markup.inserted constant.language support.constant.property-value entity.name.filename"}]},{"begin":"(?<=:)","end":"=|(?=\\\\))","endCaptures":{"0":{"name":"keyword"}},"patterns":[{"include":"#type"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"(?=\\\\))","patterns":[{"include":"#term"}]}]}]}]},{"include":"#pattern"}]},"bindType":{"patterns":[{"begin":"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]type|^type))(?![[:word:]]))","end":"(?|~$])\\\\+=|=(?![#\\\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"0":{"name":"support.type strong"}},"patterns":[{"include":"#attributeIdentifier"},{"include":"#pathType"},{"match":"(?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)","name":"entity.name.function strong"},{"include":"#type"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]\\\\+=|^\\\\+=|[^#\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"\\\\band\\\\b|(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},"patterns":[{"include":"#bindConstructor"}]}]},"comment":{"patterns":[{"include":"#attribute"},{"include":"#extension"},{"include":"#commentBlock"},{"include":"#commentDoc"}]},"commentBlock":{"begin":"\\\\(\\\\*(?!\\\\*[^\\\\)])","contentName":"emphasis","end":"\\\\*\\\\)","name":"comment constant.regexp meta.separator.markdown","patterns":[{"include":"#commentBlock"},{"include":"#commentDoc"}]},"commentDoc":{"begin":"\\\\(\\\\*\\\\*","end":"\\\\*\\\\)","name":"comment constant.regexp meta.separator.markdown","patterns":[{"match":"\\\\*"},{"include":"#comment"}]},"decl":{"patterns":[{"include":"#declClass"},{"include":"#declException"},{"include":"#declInclude"},{"include":"#declModule"},{"include":"#declOpen"},{"include":"#declTerm"},{"include":"#declType"}]},"declClass":{"begin":"\\\\bclass\\\\b","beginCaptures":{"0":{"name":"entity.name.class constant.numeric markup.underline"}},"end":";;|(?=\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"0":{"name":"punctuation.definition.tag"}},"patterns":[{"include":"#comment"},{"include":"#pragma"},{"begin":"(?:(?<=(?:[^[:word:]]class|^class))(?![[:word:]]))","beginCaptures":{"0":{"name":"entity.name.class constant.numeric markup.underline"}},"end":"\\\\btype\\\\b|(?=\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\\\b)","endCaptures":{"0":{"name":"keyword"}},"patterns":[{"include":"#bindClassTerm"}]},{"begin":"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))","end":"(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","patterns":[{"include":"#bindClassType"}]}]},"declException":{"begin":"\\\\bexception\\\\b","beginCaptures":{"0":{"name":"keyword markup.underline"}},"end":";;|(?=\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"0":{"name":"punctuation.definition.tag"}},"patterns":[{"include":"#attributeIdentifier"},{"include":"#comment"},{"include":"#pragma"},{"include":"#bindConstructor"}]},"declInclude":{"begin":"\\\\binclude\\\\b","beginCaptures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"end":";;|(?=\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"0":{"name":"punctuation.definition.tag"}},"patterns":[{"include":"#attributeIdentifier"},{"include":"#comment"},{"include":"#pragma"},{"include":"#signature"}]},"declModule":{"begin":"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))|\\\\bmodule\\\\b","beginCaptures":{"0":{"name":"markup.inserted constant.language support.constant.property-value entity.name.filename markup.underline"}},"end":";;|(?=\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"0":{"name":"punctuation.definition.tag"}},"patterns":[{"include":"#comment"},{"include":"#pragma"},{"begin":"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))","end":"(\\\\btype\\\\b)|(?=[[:upper:]])","endCaptures":{"0":{"name":"keyword"}},"patterns":[{"include":"#attributeIdentifier"},{"include":"#comment"},{"match":"\\\\brec\\\\b","name":"variable.other.class.js message.error variable.interpolation string.regexp"}]},{"begin":"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))","end":"(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","patterns":[{"include":"#bindSignature"}]},{"begin":"(?=[[:upper:]])","end":"(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","patterns":[{"include":"#bindStructure"}]}]},"declOpen":{"begin":"\\\\bopen\\\\b","beginCaptures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"end":";;|(?=\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"0":{"name":"punctuation.definition.tag"}},"patterns":[{"include":"#attributeIdentifier"},{"include":"#comment"},{"include":"#pragma"},{"include":"#pathModuleExtended"}]},"declTerm":{"begin":"\\\\b(?:(external|val)|(method)|(let))\\\\b(!?)","beginCaptures":{"1":{"name":"support.type markup.underline"},"2":{"name":"storage.type markup.underline"},"3":{"name":"keyword.control markup.underline"},"4":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"end":";;|(?=\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"0":{"name":"punctuation.definition.tag"}},"patterns":[{"include":"#comment"},{"include":"#pragma"},{"include":"#bindTerm"}]},"declType":{"begin":"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))|\\\\btype\\\\b","beginCaptures":{"0":{"name":"keyword markup.underline"}},"end":";;|(?=\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"0":{"name":"punctuation.definition.tag"}},"patterns":[{"include":"#comment"},{"include":"#pragma"},{"include":"#bindType"}]},"extension":{"begin":"(\\\\[)((?|~$])%{1,3}(?![#\\\\-:!?.@*/&%^+<=>|~$]))","beginCaptures":{"1":{"name":"constant.language constant.numeric entity.other.attribute-name.id.css strong"},"2":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"end":"\\\\]","endCaptures":{"0":{"name":"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},"patterns":[{"include":"#attributePayload"}]},"literal":{"patterns":[{"include":"#termConstructor"},{"include":"#literalArray"},{"include":"#literalBoolean"},{"include":"#literalCharacter"},{"include":"#literalList"},{"include":"#literalNumber"},{"include":"#literalObjectTerm"},{"include":"#literalString"},{"include":"#literalRecord"},{"include":"#literalUnit"}]},"literalArray":{"begin":"\\\\[\\\\|","captures":{"0":{"name":"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},"end":"\\\\|\\\\]","patterns":[{"include":"#term"}]},"literalBoolean":{"match":"\\\\bfalse|true\\\\b","name":"constant.language constant.numeric entity.other.attribute-name.id.css strong"},"literalCharacter":{"begin":"(?|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)","name":"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{"begin":"(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))","end":"(:)|(=)|(;)|(?=\\\\})","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{"name":"support.type strong"},"3":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"patterns":[{"match":"(?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)","name":"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"(;)|(=)|(?=\\\\})","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{"name":"support.type strong"}},"patterns":[{"include":"#type"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":";|(?=\\\\})","endCaptures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"patterns":[{"include":"#term"}]}]},"literalString":{"patterns":[{"begin":"\\"","end":"\\"","name":"string beginning.punctuation.definition.quote.markdown","patterns":[{"include":"#literalStringEscape"}]},{"begin":"(\\\\{)([_[:lower:]]*?)(\\\\|)","end":"(\\\\|)(\\\\2)(\\\\})","name":"string beginning.punctuation.definition.quote.markdown","patterns":[{"include":"#literalStringEscape"}]}]},"literalStringEscape":{"match":"\\\\\\\\(?:[\\\\\\\\\\"ntbr]|[[:digit:]][[:digit:]][[:digit:]]|x[[:xdigit:]][[:xdigit:]]|o[0-3][0-7][0-7])"},"literalUnit":{"match":"\\\\(\\\\)","name":"constant.language constant.numeric entity.other.attribute-name.id.css strong"},"pathModuleExtended":{"patterns":[{"include":"#pathModulePrefixExtended"},{"match":"(?:\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)","name":"entity.name.class constant.numeric"}]},"pathModulePrefixExtended":{"begin":"(?:\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\\\.|$|\\\\()","beginCaptures":{"0":{"name":"entity.name.class constant.numeric"}},"end":"(?![[:space:]\\\\.]|$|\\\\()","patterns":[{"include":"#comment"},{"begin":"\\\\(","captures":{"0":{"name":"keyword.control"}},"end":"\\\\)","patterns":[{"match":"((?:\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\\\)))","name":"string.other.link variable.language variable.parameter emphasis"},{"include":"#structure"}]},{"begin":"(?|~$])\\\\.(?![#\\\\-:!?.@*/&%^+<=>|~$])","beginCaptures":{"0":{"name":"keyword strong"}},"end":"((?:\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\\\.|$))|((?:\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*(?:$|\\\\()))|((?:\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\\\)))|(?![[:space:]\\\\.[:upper:]]|$|\\\\()","endCaptures":{"1":{"name":"entity.name.class constant.numeric"},"2":{"name":"entity.name.function strong"},"3":{"name":"string.other.link variable.language variable.parameter emphasis"}}}]},"pathModulePrefixExtendedParens":{"begin":"\\\\(","captures":{"0":{"name":"keyword.control"}},"end":"\\\\)","patterns":[{"match":"((?:\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\\\)))","name":"string.other.link variable.language variable.parameter emphasis"},{"include":"#structure"}]},"pathModulePrefixSimple":{"begin":"(?:\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\\\.)","beginCaptures":{"0":{"name":"entity.name.class constant.numeric"}},"end":"(?![[:space:]\\\\.])","patterns":[{"include":"#comment"},{"begin":"(?|~$])\\\\.(?![#\\\\-:!?.@*/&%^+<=>|~$])","beginCaptures":{"0":{"name":"keyword strong"}},"end":"((?:\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\\\.))|((?:\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*))|(?![[:space:]\\\\.[:upper:]])","endCaptures":{"1":{"name":"entity.name.class constant.numeric"},"2":{"name":"constant.language constant.numeric entity.other.attribute-name.id.css strong"}}}]},"pathModuleSimple":{"patterns":[{"include":"#pathModulePrefixSimple"},{"match":"(?:\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)","name":"entity.name.class constant.numeric"}]},"pathRecord":{"patterns":[{"begin":"(?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)","end":"(?=[^[:space:]\\\\.])(?!\\\\(\\\\*)","patterns":[{"include":"#comment"},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]\\\\.|^\\\\.))(?![#\\\\-:!?.@*/&%^+<=>|~$]))|(?|~$])\\\\.(?![#\\\\-:!?.@*/&%^+<=>|~$])","beginCaptures":{"0":{"name":"keyword strong"}},"end":"((?|~$])\\\\.(?![#\\\\-:!?.@*/&%^+<=>|~$]))|((?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|mutable|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?<=\\\\))|(?<=\\\\])","endCaptures":{"1":{"name":"keyword strong"},"2":{"name":"markup.inserted constant.language support.constant.property-value entity.name.filename"}},"patterns":[{"include":"#comment"},{"include":"#pathModulePrefixSimple"},{"begin":"\\\\((?!\\\\*)","captures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"end":"\\\\)","patterns":[{"include":"#term"}]},{"begin":"\\\\[","captures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"end":"\\\\]","patterns":[{"include":"#pattern"}]}]}]}]},"pattern":{"patterns":[{"include":"#comment"},{"include":"#patternArray"},{"include":"#patternLazy"},{"include":"#patternList"},{"include":"#patternMisc"},{"include":"#patternModule"},{"include":"#patternRecord"},{"include":"#literal"},{"include":"#patternParens"},{"include":"#patternType"},{"include":"#variablePattern"},{"include":"#termOperator"}]},"patternArray":{"begin":"\\\\[\\\\|","captures":{"0":{"name":"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},"end":"\\\\|\\\\]","patterns":[{"include":"#pattern"}]},"patternLazy":{"match":"lazy","name":"variable.other.class.js message.error variable.interpolation string.regexp"},"patternList":{"begin":"\\\\[","captures":{"0":{"name":"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},"end":"\\\\]","patterns":[{"include":"#pattern"}]},"patternMisc":{"captures":{"1":{"name":"string.regexp strong"},"2":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"},"3":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"match":"((?|~$]),(?![#\\\\-:!?.@*/&%^+<=>|~$]))|([#\\\\-:!?.@*/&%^+<=>|~$]+)|\\\\b(as)\\\\b"},"patternModule":{"begin":"\\\\bmodule\\\\b","beginCaptures":{"0":{"name":"markup.inserted constant.language support.constant.property-value entity.name.filename"}},"end":"(?=\\\\))","patterns":[{"include":"#declModule"}]},"patternParens":{"begin":"\\\\((?!\\\\))","captures":{"0":{"name":"punctuation.definition.tag"}},"end":"\\\\)","patterns":[{"include":"#comment"},{"begin":"(?|~$]):(?![#\\\\-:!?.@*/&%^+<=>|~$])","beginCaptures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp strong"}},"end":"(?=\\\\))","patterns":[{"include":"#type"}]},{"include":"#pattern"}]},"patternRecord":{"begin":"\\\\{","captures":{"0":{"name":"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},"end":"\\\\}","patterns":[{"begin":"(?<=\\\\{|;)","end":"(:)|(=)|(;)|(with)|(?=\\\\})","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{"name":"support.type strong"},"3":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"},"4":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"patterns":[{"include":"#comment"},{"include":"#pathModulePrefixSimple"},{"match":"(?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)","name":"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{"begin":"(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))","end":"(:)|(=)|(;)|(?=\\\\})","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{"name":"support.type strong"},"3":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"patterns":[{"match":"(?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)","name":"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"(;)|(=)|(?=\\\\})","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{"name":"support.type strong"}},"patterns":[{"include":"#type"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":";|(?=\\\\})","endCaptures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"patterns":[{"include":"#pattern"}]}]},"patternType":{"begin":"\\\\btype\\\\b","beginCaptures":{"0":{"name":"keyword"}},"end":"(?=\\\\))","patterns":[{"include":"#declType"}]},"pragma":{"begin":"(?|~$])#(?![#\\\\-:!?.@*/&%^+<=>|~$])","beginCaptures":{"0":{"name":"punctuation.definition.tag"}},"end":"(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","patterns":[{"include":"#comment"},{"include":"#literalNumber"},{"include":"#literalString"}]},"signature":{"patterns":[{"include":"#comment"},{"include":"#signatureLiteral"},{"include":"#signatureFunctor"},{"include":"#pathModuleExtended"},{"include":"#signatureParens"},{"include":"#signatureRecovered"},{"include":"#signatureConstraints"}]},"signatureConstraints":{"begin":"\\\\bwith\\\\b","beginCaptures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},"end":"(?=\\\\))|(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","patterns":[{"begin":"(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))","end":"\\\\b(?:(module)|(type))\\\\b","endCaptures":{"1":{"name":"markup.inserted constant.language support.constant.property-value entity.name.filename"},"2":{"name":"keyword"}}},{"include":"#declModule"},{"include":"#declType"}]},"signatureFunctor":{"patterns":[{"begin":"\\\\bfunctor\\\\b","beginCaptures":{"0":{"name":"keyword"}},"end":"(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","patterns":[{"begin":"(?:(?<=(?:[^[:word:]]functor|^functor))(?![[:word:]]))","end":"(\\\\(\\\\))|(\\\\((?!\\\\)))","endCaptures":{"1":{"name":"constant.language constant.numeric entity.other.attribute-name.id.css strong"},"2":{"name":"punctuation.definition.tag"}}},{"begin":"(?<=\\\\()","end":"(:)|(\\\\))","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{"name":"punctuation.definition.tag"}},"patterns":[{"include":"#variableModule"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.tag"}},"patterns":[{"include":"#signature"}]},{"begin":"(?<=\\\\))","end":"(\\\\()|((?|~$])->(?![#\\\\-:!?.@*/&%^+<=>|~$]))","endCaptures":{"1":{"name":"punctuation.definition.tag"},"2":{"name":"support.type strong"}}},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","patterns":[{"include":"#signature"}]}]},{"match":"(?|~$])->(?![#\\\\-:!?.@*/&%^+<=>|~$])","name":"support.type strong"}]},"signatureLiteral":{"begin":"\\\\bsig\\\\b","captures":{"0":{"name":"punctuation.definition.tag emphasis"}},"end":"\\\\bend\\\\b","patterns":[{"include":"#comment"},{"include":"#pragma"},{"include":"#decl"}]},"signatureParens":{"begin":"\\\\((?!\\\\))","captures":{"0":{"name":"punctuation.definition.tag"}},"end":"\\\\)","patterns":[{"include":"#comment"},{"begin":"(?|~$]):(?![#\\\\-:!?.@*/&%^+<=>|~$])","beginCaptures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp strong"}},"end":"(?=\\\\))","patterns":[{"include":"#signature"}]},{"include":"#signature"}]},"signatureRecovered":{"patterns":[{"begin":"\\\\(|(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]:|^:|[^#\\\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]include|^include|[^[:word:]]open|^open))(?![[:word:]]))","end":"\\\\bmodule\\\\b|(?!$|[[:space:]]|\\\\bmodule\\\\b)","endCaptures":{"0":{"name":"markup.inserted constant.language support.constant.property-value entity.name.filename"}}},{"begin":"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))","end":"(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","patterns":[{"begin":"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))","end":"\\\\btype\\\\b","endCaptures":{"0":{"name":"keyword"}}},{"begin":"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))","end":"\\\\bof\\\\b","endCaptures":{"0":{"name":"punctuation.definition.tag"}}},{"begin":"(?:(?<=(?:[^[:word:]]of|^of))(?![[:word:]]))","end":"(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","patterns":[{"include":"#signature"}]}]}]},"structure":{"patterns":[{"include":"#comment"},{"include":"#structureLiteral"},{"include":"#structureFunctor"},{"include":"#pathModuleExtended"},{"include":"#structureParens"}]},"structureFunctor":{"patterns":[{"begin":"\\\\bfunctor\\\\b","beginCaptures":{"0":{"name":"keyword"}},"end":"(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","patterns":[{"begin":"(?:(?<=(?:[^[:word:]]functor|^functor))(?![[:word:]]))","end":"(\\\\(\\\\))|(\\\\((?!\\\\)))","endCaptures":{"1":{"name":"constant.language constant.numeric entity.other.attribute-name.id.css strong"},"2":{"name":"punctuation.definition.tag"}}},{"begin":"(?<=\\\\()","end":"(:)|(\\\\))","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{"name":"punctuation.definition.tag"}},"patterns":[{"include":"#variableModule"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.tag"}},"patterns":[{"include":"#signature"}]},{"begin":"(?<=\\\\))","end":"(\\\\()|((?|~$])->(?![#\\\\-:!?.@*/&%^+<=>|~$]))","endCaptures":{"1":{"name":"punctuation.definition.tag"},"2":{"name":"support.type strong"}}},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","patterns":[{"include":"#structure"}]}]},{"match":"(?|~$])->(?![#\\\\-:!?.@*/&%^+<=>|~$])","name":"support.type strong"}]},"structureLiteral":{"begin":"\\\\bstruct\\\\b","captures":{"0":{"name":"punctuation.definition.tag emphasis"}},"end":"\\\\bend\\\\b","patterns":[{"include":"#comment"},{"include":"#pragma"},{"include":"#decl"}]},"structureParens":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.definition.tag"}},"end":"\\\\)","patterns":[{"include":"#structureUnpack"},{"include":"#structure"}]},"structureUnpack":{"begin":"\\\\bval\\\\b","beginCaptures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"end":"(?=\\\\))"},"term":{"patterns":[{"include":"#termLet"},{"include":"#termAtomic"}]},"termAtomic":{"patterns":[{"include":"#comment"},{"include":"#termConditional"},{"include":"#termConstructor"},{"include":"#termDelim"},{"include":"#termFor"},{"include":"#termFunction"},{"include":"#literal"},{"include":"#termMatch"},{"include":"#termMatchRule"},{"include":"#termPun"},{"include":"#termOperator"},{"include":"#termTry"},{"include":"#termWhile"},{"include":"#pathRecord"}]},"termConditional":{"match":"\\\\b(?:if|then|else)\\\\b","name":"keyword.control"},"termConstructor":{"patterns":[{"include":"#pathModulePrefixSimple"},{"match":"(?:\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)","name":"constant.language constant.numeric entity.other.attribute-name.id.css strong"}]},"termDelim":{"patterns":[{"begin":"\\\\((?!\\\\))","captures":{"0":{"name":"punctuation.definition.tag"}},"end":"\\\\)","patterns":[{"include":"#term"}]},{"begin":"\\\\bbegin\\\\b","captures":{"0":{"name":"punctuation.definition.tag"}},"end":"\\\\bend\\\\b","patterns":[{"include":"#attributeIdentifier"},{"include":"#term"}]}]},"termFor":{"patterns":[{"begin":"\\\\bfor\\\\b","beginCaptures":{"0":{"name":"keyword.control"}},"end":"\\\\bdone\\\\b","endCaptures":{"0":{"name":"keyword.control"}},"patterns":[{"begin":"(?:(?<=(?:[^[:word:]]for|^for))(?![[:word:]]))","end":"(?|~$])=(?![#\\\\-:!?.@*/&%^+<=>|~$])","endCaptures":{"0":{"name":"support.type strong"}},"patterns":[{"include":"#pattern"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"\\\\b(?:downto|to)\\\\b","endCaptures":{"0":{"name":"keyword.control"}},"patterns":[{"include":"#term"}]},{"begin":"(?:(?<=(?:[^[:word:]]to|^to))(?![[:word:]]))","end":"\\\\bdo\\\\b","endCaptures":{"0":{"name":"keyword.control"}},"patterns":[{"include":"#term"}]},{"begin":"(?:(?<=(?:[^[:word:]]do|^do))(?![[:word:]]))","end":"(?=\\\\bdone\\\\b)","patterns":[{"include":"#term"}]}]}]},"termFunction":{"captures":{"1":{"name":"storage.type"},"2":{"name":"storage.type"}},"match":"\\\\b(?:(fun)|(function))\\\\b"},"termLet":{"patterns":[{"begin":"(?:(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]=|^=|[^#\\\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\\\-:!?.@*/&%^+<=>|~$]))|(?<=;|\\\\())(?=[[:space:]]|\\\\blet\\\\b)|(?:(?<=(?:[^[:word:]]begin|^begin|[^[:word:]]do|^do|[^[:word:]]else|^else|[^[:word:]]in|^in|[^[:word:]]struct|^struct|[^[:word:]]then|^then|[^[:word:]]try|^try))(?![[:word:]]))|(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]@@|^@@))(?![#\\\\-:!?.@*/&%^+<=>|~$]))[[:space:]]+","end":"\\\\b(?:(and)|(let))\\\\b|(?=[^[:space:]])(?!\\\\(\\\\*)","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},"2":{"name":"storage.type markup.underline"}},"patterns":[{"include":"#comment"}]},{"begin":"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]let|^let))(?![[:word:]]))|(let)","beginCaptures":{"1":{"name":"storage.type markup.underline"}},"end":"\\\\b(?:(and)|(in))\\\\b|(?=\\\\}|\\\\)|\\\\]|\\\\b(?:end|class|exception|external|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},"2":{"name":"storage.type markup.underline"}},"patterns":[{"include":"#bindTerm"}]}]},"termMatch":{"begin":"\\\\bmatch\\\\b","captures":{"0":{"name":"keyword.control"}},"end":"\\\\bwith\\\\b","patterns":[{"include":"#term"}]},"termMatchRule":{"patterns":[{"begin":"(?:(?<=(?:[^[:word:]]fun|^fun|[^[:word:]]function|^function|[^[:word:]]with|^with))(?![[:word:]]))","end":"(?|~$])(\\\\|)|(->)(?![#\\\\-:!?.@*/&%^+<=>|~$])","endCaptures":{"1":{"name":"support.type strong"},"2":{"name":"support.type strong"}},"patterns":[{"include":"#comment"},{"include":"#attributeIdentifier"},{"include":"#pattern"}]},{"begin":"(?:(?<=(?:[^\\\\[#\\\\-:!?.@*/&%^+<=>|~$]\\\\||^\\\\|))(?![#\\\\-:!?.@*/&%^+<=>|~$]))|(?|~$])\\\\|(?![#\\\\-:!?.@*/&%^+<=>|~$])","beginCaptures":{"0":{"name":"support.type strong"}},"end":"(?|~$])(\\\\|)|(->)(?![#\\\\-:!?.@*/&%^+<=>|~$])","endCaptures":{"1":{"name":"support.type strong"},"2":{"name":"support.type strong"}},"patterns":[{"include":"#pattern"},{"begin":"\\\\bwhen\\\\b","beginCaptures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"end":"(?=(?|~$])->(?![#\\\\-:!?.@*/&%^+<=>|~$]))","patterns":[{"include":"#term"}]}]}]},"termOperator":{"patterns":[{"begin":"(?|~$])#(?![#\\\\-:!?.@*/&%^+<=>|~$])","beginCaptures":{"0":{"name":"keyword"}},"end":"(?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)","endCaptures":{"0":{"name":"entity.name.function"}}},{"captures":{"0":{"name":"keyword.control strong"}},"match":"<-"},{"captures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"match":"(,|[#\\\\-:!?.@*/&%^+<=>|~$]+)|(;)"},{"match":"\\\\b(?:and|assert|asr|land|lazy|lsr|lxor|mod|new|or)\\\\b","name":"variable.other.class.js message.error variable.interpolation string.regexp"}]},"termPun":{"applyEndPatternLast":true,"begin":"(?|~$])\\\\?|~(?![#\\\\-:!?.@*/&%^+<=>|~$])","beginCaptures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"end":":|(?=[^[:space:]:])","endCaptures":{"0":{"name":"keyword"}},"patterns":[{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]\\\\?|^\\\\?|[^#\\\\-:!?.@*/&%^+<=>|~$]~|^~))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"(?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)","endCaptures":{"0":{"name":"markup.inserted constant.language support.constant.property-value entity.name.filename"}}}]},"termTry":{"begin":"\\\\btry\\\\b","captures":{"0":{"name":"keyword.control"}},"end":"\\\\bwith\\\\b","patterns":[{"include":"#term"}]},"termWhile":{"patterns":[{"begin":"\\\\bwhile\\\\b","beginCaptures":{"0":{"name":"keyword.control"}},"end":"\\\\bdone\\\\b","endCaptures":{"0":{"name":"keyword.control"}},"patterns":[{"begin":"(?:(?<=(?:[^[:word:]]while|^while))(?![[:word:]]))","end":"\\\\bdo\\\\b","endCaptures":{"0":{"name":"keyword.control"}},"patterns":[{"include":"#term"}]},{"begin":"(?:(?<=(?:[^[:word:]]do|^do))(?![[:word:]]))","end":"(?=\\\\bdone\\\\b)","patterns":[{"include":"#term"}]}]}]},"type":{"patterns":[{"include":"#comment"},{"match":"\\\\bnonrec\\\\b","name":"variable.other.class.js message.error variable.interpolation string.regexp"},{"include":"#pathModulePrefixExtended"},{"include":"#typeLabel"},{"include":"#typeObject"},{"include":"#typeOperator"},{"include":"#typeParens"},{"include":"#typePolymorphicVariant"},{"include":"#typeRecord"},{"include":"#typeConstructor"}]},"typeConstructor":{"patterns":[{"begin":"(_)|((?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(')((?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?<=[^\\\\*]\\\\)|\\\\])","beginCaptures":{"1":{"name":"comment constant.regexp meta.separator.markdown"},"3":{"name":"string.other.link variable.language variable.parameter emphasis strong emphasis"},"4":{"name":"keyword.control emphasis"}},"end":"(?=\\\\((?!\\\\*)|\\\\*|:|,|=|\\\\.|>|-|\\\\{|\\\\[|\\\\+|\\\\}|\\\\)|\\\\]|;|\\\\|)|((?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))[:space:]*(?!\\\\(\\\\*|[[:word:]])|(?=;;|\\\\}|\\\\)|\\\\]|\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\b)","endCaptures":{"1":{"name":"entity.name.function strong"}},"patterns":[{"include":"#comment"},{"include":"#pathModulePrefixExtended"}]}]},"typeLabel":{"patterns":[{"begin":"(\\\\??)((?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))[[:space:]]*((?|~$]):(?![#\\\\-:!?.@*/&%^+<=>|~$]))","captures":{"1":{"name":"keyword strong emphasis"},"2":{"name":"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"},"3":{"name":"keyword"}},"end":"(?=(?|~$])->(?![#\\\\-:!?.@*/&%^+<=>|~$]))","patterns":[{"include":"#type"}]}]},"typeModule":{"begin":"\\\\bmodule\\\\b","beginCaptures":{"0":{"name":"markup.inserted constant.language support.constant.property-value entity.name.filename"}},"end":"(?=\\\\))","patterns":[{"include":"#pathModuleExtended"},{"include":"#signatureConstraints"}]},"typeObject":{"begin":"<","captures":{"0":{"name":"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},"end":">","patterns":[{"begin":"(?<=<|;)","end":"(:)|(?=>)","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp strong"},"3":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"},"4":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"patterns":[{"include":"#comment"},{"include":"#pathModulePrefixSimple"},{"match":"(?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)","name":"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"(;)|(?=>)","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{"name":"support.type strong"}},"patterns":[{"include":"#type"}]}]},"typeOperator":{"patterns":[{"match":",|;|[#\\\\-:!?.@*/&%^+<=>|~$]+","name":"variable.other.class.js message.error variable.interpolation string.regexp strong"}]},"typeParens":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.definition.tag"}},"end":"\\\\)","patterns":[{"match":",","name":"variable.other.class.js message.error variable.interpolation string.regexp"},{"include":"#typeModule"},{"include":"#type"}]},"typePolymorphicVariant":{"begin":"\\\\[","end":"\\\\]","patterns":[]},"typeRecord":{"begin":"\\\\{","captures":{"0":{"name":"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},"end":"\\\\}","patterns":[{"begin":"(?<=\\\\{|;)","end":"(:)|(=)|(;)|(with)|(?=\\\\})","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{"name":"support.type strong"},"3":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"},"4":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"patterns":[{"include":"#comment"},{"include":"#pathModulePrefixSimple"},{"match":"(?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)","name":"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{"begin":"(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))","end":"(:)|(=)|(;)|(?=\\\\})","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{"name":"support.type strong"},"3":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"patterns":[{"match":"(?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)","name":"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":"(;)|(=)|(?=\\\\})","endCaptures":{"1":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{"name":"support.type strong"}},"patterns":[{"include":"#type"}]},{"begin":"(?:(?<=(?:[^#\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\-:!?.@*/&%^+<=>|~$]))","end":";|(?=\\\\})","endCaptures":{"0":{"name":"variable.other.class.js message.error variable.interpolation string.regexp"}},"patterns":[{"include":"#type"}]}]},"variableModule":{"captures":{"0":{"name":"string.other.link variable.language variable.parameter emphasis"}},"match":"(?:\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)"},"variablePattern":{"captures":{"1":{"name":"comment constant.regexp meta.separator.markdown"},"2":{"name":"string.other.link variable.language variable.parameter emphasis"}},"match":"(\\\\b_\\\\b)|((?:(?!\\\\b(?:and|'|as|asr|assert|\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\{|\\\\(|\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\+|private|\\\\?|\\"|rec|\\\\\\\\|\\\\}|\\\\)|\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\||virtual|when|while|with)\\\\b(?:[^']|$))\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))"}},"scopeName":"source.ocaml"}`)),n=[e];export{n as default}; ================================================ FILE: jesse/static/_nuxt/BPT9niGB.js ================================================ const e=Object.freeze(JSON.parse('{"displayName":"AsciiDoc","fileTypes":["ad","asc","adoc","asciidoc","adoc.txt"],"name":"asciidoc","patterns":[{"include":"#comment"},{"include":"#callout-list-item"},{"include":"#titles"},{"include":"#attribute-entry"},{"include":"#blocks"},{"include":"#block-title"},{"include":"#tables"},{"include":"#horizontal-rule"},{"include":"#list"},{"include":"#inlines"},{"include":"#block-attribute"},{"include":"#line-break"}],"repository":{"admonition-paragraph":{"patterns":[{"begin":"(?=(?>(?:^\\\\[(NOTE|TIP|IMPORTANT|WARNING|CAUTION)((?:,|#|\\\\.|%)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|====)$|^\\\\p{Blank}*$)","name":"markup.admonition.asciidoc","patterns":[{"captures":{"0":{"patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(NOTE|TIP|IMPORTANT|WARNING|CAUTION)((?:,|#|\\\\.|%)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(={4,})\\\\s*$","comment":"example block","end":"(?<=\\\\1)","patterns":[{"include":"#inlines"},{"include":"#list"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","end":"(?<=\\\\1)","patterns":[{"include":"#inlines"},{"include":"#list"}]}]},{"begin":"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\\\\:\\\\p{Blank}+","captures":{"1":{"name":"entity.name.function.asciidoc"}},"end":"^\\\\p{Blank}*$","name":"markup.admonition.asciidoc","patterns":[{"include":"#inlines"}]}]},"anchor-macro":{"patterns":[{"captures":{"1":{"name":"support.constant.asciidoc"},"2":{"name":"markup.blockid.asciidoc"},"3":{"name":"string.unquoted.asciidoc"},"4":{"name":"support.constant.asciidoc"}},"match":"(?)(?=(?: ?)*$)","name":"callout.source.code.asciidoc"}]},"block-title":{"patterns":[{"begin":"^\\\\.([^\\\\p{Blank}.].*)","captures":{"1":{"name":"markup.heading.blocktitle.asciidoc"}},"end":"$"}]},"blocks":{"patterns":[{"include":"#front-matter-block"},{"include":"#comment-paragraph"},{"include":"#admonition-paragraph"},{"include":"#quote-paragraph"},{"include":"#listing-paragraph"},{"include":"#source-paragraphs"},{"include":"#passthrough-paragraph"},{"include":"#example-paragraph"},{"include":"#sidebar-paragraph"},{"include":"#literal-paragraph"},{"include":"#open-block"}]},"callout-list-item":{"patterns":[{"captures":{"1":{"name":"constant.other.symbol.asciidoc"},"2":{"name":"constant.numeric.asciidoc"},"3":{"name":"constant.other.symbol.asciidoc"},"4":{"patterns":[{"include":"#inlines"}]}},"match":"^(<)(\\\\d+)(>)\\\\p{Blank}+(.*)$","name":"callout.asciidoc"}]},"characters":{"patterns":[{"captures":{"1":{"name":"constant.character.asciidoc"},"3":{"name":"constant.character.asciidoc"}},"match":"(?(?:^\\\\[(comment)((?:,|#|\\\\.|%)[^\\\\]]+)*\\\\]$)))","end":"((?<=--)$|^\\\\p{Blank}*$)","name":"comment.block.asciidoc","patterns":[{"captures":{"0":{"patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(comment)((?:,|#|\\\\.|%)([^,\\\\]]+))*\\\\]$"},{"include":"#block-title"},{"begin":"^(-{2})\\\\s*$","comment":"open block","end":"^(\\\\1)$","patterns":[{"include":"#inlines"},{"include":"#list"}]},{"include":"#inlines"}]}]},"emphasis":{"patterns":[{"captures":{"1":{"name":"markup.meta.attribute-list.asciidoc"},"2":{"name":"markup.italic.asciidoc"},"3":{"name":"punctuation.definition.asciidoc"},"5":{"name":"punctuation.definition.asciidoc"}},"match":"(?(?:^\\\\[(example)((?:,|#|\\\\.|%)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|====)$|^\\\\p{Blank}*$)","name":"markup.block.example.asciidoc","patterns":[{"captures":{"0":{"patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(example)((?:,|#|\\\\.|%)([^,\\\\]]+))*\\\\]$"},{"include":"#block-title"},{"begin":"^(={4,})$","comment":"example block","end":"^(\\\\1)$","patterns":[{"include":"$self"}]},{"begin":"^(-{2})$","comment":"open block","end":"^(\\\\1)$","patterns":[{"include":"$self"}]},{"include":"#inlines"}]},{"begin":"^(={4,})$","end":"^(\\\\1)$","name":"markup.block.example.asciidoc","patterns":[{"include":"$self"}]}]},"footnote-macro":{"patterns":[{"begin":"(?\\\\(\\\\)\\\\[\\\\];])((?\\\\(\\\\)\\\\[\\\\];])((?(?:^\\\\[(listing)((?:,|#|\\\\.|%)[^\\\\]]+)*\\\\]$)))","end":"((?<=--)$|^\\\\p{Blank}*$)","name":"markup.block.listing.asciidoc","patterns":[{"captures":{"0":{"patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(listing)((?:,|#|\\\\.|%)([^,\\\\]]+))*\\\\]$"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","end":"^(\\\\1)$"},{"begin":"^(-{2})\\\\s*$","comment":"open block","end":"^(\\\\1)$"},{"include":"#inlines"}]}]},"literal-paragraph":{"patterns":[{"begin":"(?=(?>(?:^\\\\[(literal)((?:,|#|\\\\.|%)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.block.literal.asciidoc","patterns":[{"captures":{"0":{"patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(literal)((?:,|#|\\\\.|%)([^,\\\\]]+))*\\\\]$"},{"include":"#block-title"},{"begin":"^(\\\\.{4,})$","comment":"literal block","end":"^(\\\\1)$"},{"begin":"^(-{2})\\\\s*$","comment":"open block","end":"^(\\\\1)$"},{"include":"#inlines"}]},{"begin":"^(\\\\.{4,})$","end":"^(\\\\1)$","name":"markup.block.literal.asciidoc"}]},"mark":{"patterns":[{"captures":{"1":{"name":"markup.meta.attribute-list.asciidoc"},"2":{"name":"markup.mark.asciidoc"},"3":{"name":"punctuation.definition.asciidoc"},"5":{"name":"punctuation.definition.asciidoc"}},"match":"(?\\\\+{2,3}|\\\\${2})(.*?)(\\\\k)","name":"markup.macro.inline.passthrough.asciidoc"},{"begin":"(?(?:^\\\\[(pass)((?:,|#|\\\\.|%)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\+\\\\+)$|^\\\\p{Blank}*$)","name":"markup.block.passthrough.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(pass)((?:,|#|\\\\.|%)([^,\\\\]]+))*\\\\]$"},{"include":"#block-title"},{"begin":"^(\\\\+{4,})\\\\s*$","comment":"passthrough block","end":"(?<=\\\\1)","patterns":[{"include":"text.html.basic"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","end":"(?<=\\\\1)","patterns":[{"include":"text.html.basic"}]}]},{"begin":"(^\\\\+{4,}$)","end":"\\\\1","name":"markup.block.passthrough.asciidoc","patterns":[{"include":"text.html.basic"}]}]},"quote-paragraph":{"patterns":[{"begin":"(?=(?>(?:^\\\\[(quote|verse)((?:,|#|\\\\.|%)([^,\\\\]]+))*\\\\]$)))","end":"((?<=____|\\"\\"|--)$|^\\\\p{Blank}*$)","name":"markup.italic.quotes.asciidoc","patterns":[{"captures":{"0":{"patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(quote|verse)((?:,|#|\\\\.|%)([^,\\\\]]+))*\\\\]$"},{"include":"#block-title"},{"include":"#inlines"},{"begin":"^([_]{4,})\\\\s*$","comment":"quotes block","end":"(?<=\\\\1)","patterns":[{"include":"#inlines"},{"include":"#list"}]},{"begin":"^(\\"{2})\\\\s*$","comment":"air quotes","end":"(?<=\\\\1)","patterns":[{"include":"#inlines"},{"include":"#list"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","end":"(?<=\\\\1)$","patterns":[{"include":"#inlines"},{"include":"#list"}]}]},{"begin":"^(\\"\\")$","end":"^\\\\1$","name":"markup.italic.quotes.asciidoc","patterns":[{"include":"#inlines"},{"include":"#list"}]},{"begin":"^\\\\p{Blank}*(>) ","end":"^\\\\p{Blank}*?$","name":"markup.italic.quotes.asciidoc","patterns":[{"include":"#inlines"},{"include":"#list"}]}]},"sidebar-paragraph":{"patterns":[{"begin":"(?=(?>(?:^\\\\[(sidebar)((?:,|#|\\\\.|%)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\*\\\\*\\\\*\\\\*)$|^\\\\p{Blank}*$)","name":"markup.block.sidebar.asciidoc","patterns":[{"captures":{"0":{"patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(sidebar)((?:,|#|\\\\.|%)([^,\\\\]]+))*\\\\]$"},{"include":"#block-title"},{"begin":"^(\\\\*{4,})$","comment":"sidebar block","end":"^(\\\\1)$","patterns":[{"include":"$self"}]},{"begin":"^(-{2})$","comment":"open block","end":"^(\\\\1)$","patterns":[{"include":"$self"}]},{"include":"#inlines"}]},{"begin":"^(\\\\*{4,})$","end":"^(\\\\1)$","name":"markup.block.sidebar.asciidoc","patterns":[{"include":"$self"}]}]},"source-asciidoctor":{"patterns":[{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(c))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.c.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(c))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.c","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.c"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.c","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.c"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.c","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.c"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(clojure))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.clojure.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(clojure))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.clojure","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.clojure"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.clojure","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.clojure"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.clojure","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.clojure"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(coffee-?(script)?))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.coffee.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(coffee-?(script)?))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.coffee","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.coffee"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.coffee","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.coffee"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.coffee","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.coffee"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(c(pp|\\\\+\\\\+)))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.cpp.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(c(pp|\\\\+\\\\+)))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.cpp","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.cpp"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.cpp","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.cpp"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.cpp","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.cpp"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(css))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.css.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(css))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.css","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.css"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.css","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.css"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.css","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.css"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(cs(harp)?))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.cs.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(cs(harp)?))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.cs","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.cs"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.cs","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.cs"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.cs","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.cs"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(diff|patch|rej))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.diff.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(diff|patch|rej))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.diff","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.diff"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.diff","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.diff"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.diff","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.diff"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(docker(file)?))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.dockerfile.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(docker(file)?))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.dockerfile","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.dockerfile"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.dockerfile","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.dockerfile"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.dockerfile","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.dockerfile"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(elixir))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.elixir.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(elixir))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.elixir","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.elixir"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.elixir","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.elixir"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.elixir","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.elixir"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(elm))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.elm.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(elm))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.elm","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.elm"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.elm","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.elm"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.elm","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.elm"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(erlang))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.erlang.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(erlang))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.erlang","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.erlang"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.erlang","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.erlang"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.erlang","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.erlang"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(go(lang)?))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.go.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(go(lang)?))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.go","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.go"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.go","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.go"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.go","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.go"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(groovy))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.groovy.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(groovy))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.groovy","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.groovy"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.groovy","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.groovy"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.groovy","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.groovy"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(haskell))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.haskell.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(haskell))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.haskell","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.haskell"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.haskell","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.haskell"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.haskell","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.haskell"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(html))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.html.basic.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(html))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"text.embedded.html.basic","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"text.html.basic"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"text.embedded.html.basic","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"text.html.basic"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"text.embedded.html.basic","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"text.html.basic"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(java))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.java.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(java))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.java","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.java"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.java","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.java"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.java","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.java"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(javascript|js))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.js.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(javascript|js))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.js","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.js"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.js","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.js"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.js","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.js"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(json))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.json.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(json))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.json","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.json"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.json","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.json"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.json","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.json"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(jsx))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.js.jsx.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(jsx))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.js.jsx","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.js.jsx"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.js.jsx","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.js.jsx"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.js.jsx","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.js.jsx"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(julia))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.julia.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(julia))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.julia","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.julia"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.julia","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.julia"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.julia","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.julia"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(kotlin|kts?))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.kotlin.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(kotlin|kts?))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.kotlin","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.kotlin"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.kotlin","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.kotlin"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.kotlin","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.kotlin"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(less))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.css.less.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(less))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.css.less","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.css.less"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.css.less","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.css.less"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.css.less","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.css.less"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(make(file)?))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.makefile.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(make(file)?))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.makefile","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.makefile"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.makefile","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.makefile"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.makefile","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.makefile"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(markdown|mdown|md))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.gfm.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(markdown|mdown|md))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.gfm","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.gfm"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.gfm","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.gfm"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.gfm","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.gfm"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(mustache))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.html.mustache.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(mustache))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"text.embedded.html.mustache","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"text.html.mustache"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"text.embedded.html.mustache","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"text.html.mustache"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"text.embedded.html.mustache","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"text.html.mustache"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(objc|objective-c))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.objc.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(objc|objective-c))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.objc","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.objc"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.objc","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.objc"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.objc","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.objc"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(ocaml))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.ocaml.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(ocaml))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.ocaml","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.ocaml"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.ocaml","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.ocaml"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.ocaml","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.ocaml"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(perl))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.perl.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(perl))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.perl","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.perl"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.perl","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.perl"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.perl","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.perl"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(perl6))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.perl6.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(perl6))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.perl6","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.perl6"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.perl6","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.perl6"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.perl6","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.perl6"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(php))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.html.php.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(php))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"text.embedded.html.php","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"text.html.php"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"text.embedded.html.php","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"text.html.php"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"text.embedded.html.php","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"text.html.php"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(properties))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.asciidoc.properties.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(properties))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.asciidoc.properties","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.asciidoc.properties"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.asciidoc.properties","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.asciidoc.properties"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.asciidoc.properties","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.asciidoc.properties"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(py(thon)?))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.python.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(py(thon)?))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.python","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.python"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.python","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.python"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.python","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.python"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(r))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.r.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(r))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.r","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.r"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.r","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.r"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.r","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.r"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(ruby|rb))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.ruby.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(ruby|rb))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.ruby","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.ruby"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.ruby","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.ruby"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.ruby","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.ruby"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(rust|rs))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.rust.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(rust|rs))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.rust","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.rust"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.rust","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.rust"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.rust","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.rust"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(sass))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.sass.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(sass))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.sass","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.sass"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.sass","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.sass"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.sass","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.sass"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(scala))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.scala.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(scala))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.scala","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.scala"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.scala","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.scala"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.scala","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.scala"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(scss))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.css.scss.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(scss))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.css.scss","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.css.scss"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.css.scss","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.css.scss"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.css.scss","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.css.scss"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(sh|bash|shell))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.shell.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(sh|bash|shell))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.shell","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.shell"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.shell","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.shell"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.shell","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.shell"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(sql))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.sql.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(sql))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.sql","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.sql"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.sql","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.sql"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.sql","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.sql"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(swift))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.swift.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(swift))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.swift","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.swift"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.swift","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.swift"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.swift","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.swift"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(toml))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.toml.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(toml))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.toml","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.toml"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.toml","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.toml"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.toml","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.toml"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(typescript|ts))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.ts.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(typescript|ts))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.ts","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.ts"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.ts","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.ts"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.ts","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.ts"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(xml))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.xml.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(xml))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"text.embedded.xml","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"text.xml"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"text.embedded.xml","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"text.xml"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"text.embedded.xml","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"text.xml"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(ya?ml))((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","name":"markup.code.yaml.asciidoc","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)(?:,|#)\\\\p{Blank}*(?i:(ya?ml))((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","contentName":"source.embedded.yaml","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.yaml"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","contentName":"source.embedded.yaml","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.yaml"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","contentName":"source.embedded.yaml","end":"^(\\\\1)$","patterns":[{"include":"#block-callout"},{"include":"#include-directive"},{"include":"source.yaml"}]}]},{"begin":"(?=(?>(?:^\\\\[(source)((?:,|#)[^\\\\]]+)*\\\\]$)))","end":"((?<=--|\\\\.\\\\.\\\\.\\\\.)$|^\\\\p{Blank}*$)","patterns":[{"captures":{"0":{"name":"markup.heading.asciidoc","patterns":[{"include":"#block-attribute-inner"}]}},"match":"^\\\\[(source)((?:,|#)([^,\\\\]]+))*\\\\]$"},{"include":"#inlines"},{"include":"#block-title"},{"begin":"^(-{4,})\\\\s*$","comment":"listing block","end":"^(\\\\1)$","name":"markup.raw.asciidoc","patterns":[{"include":"#block-callout"},{"include":"#include-directive"}]},{"begin":"^(-{2})\\\\s*$","comment":"open block","end":"^(\\\\1)$","name":"markup.raw.asciidoc","patterns":[{"include":"#block-callout"},{"include":"#include-directive"}]},{"begin":"^(\\\\.{4})\\\\s*$","comment":"literal block","end":"^(\\\\1)$","name":"markup.raw.asciidoc","patterns":[{"include":"#block-callout"},{"include":"#include-directive"}]}]},{"begin":"^(-{4,})\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"end":"^(\\\\1)$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.raw.asciidoc","patterns":[{"include":"#block-callout"},{"include":"#include-directive"}]}]},"source-markdown":{"patterns":[{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(c))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.c","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.c.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.c"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(clojure))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.clojure","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.clojure.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.clojure"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(coffee-?(script)?))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.coffee","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.coffee.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.coffee"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(c(pp|\\\\+\\\\+)))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.cpp","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.cpp.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.cpp"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(css))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.css","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.css.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.css"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(cs(harp)?))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.cs","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.cs.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.cs"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(diff|patch|rej))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.diff","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.diff.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.diff"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(docker(file)?))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.dockerfile","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.dockerfile.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.dockerfile"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(elixir))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.elixir","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.elixir.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.elixir"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(elm))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.elm","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.elm.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.elm"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(erlang))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.erlang","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.erlang.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.erlang"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(go(lang)?))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.go","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.go.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.go"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(groovy))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.groovy","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.groovy.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.groovy"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(haskell))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.haskell","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.haskell.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.haskell"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(html))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"text.embedded.html.basic","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.html.basic.asciidoc","patterns":[{"include":"#block-callout"},{"include":"text.html.basic"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(java))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.java","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.java.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.java"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(javascript|js))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.js","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.js.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.js"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(json))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.json","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.json.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.json"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(jsx))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.js.jsx","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.js.jsx.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.js.jsx"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(julia))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.julia","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.julia.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.julia"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(kotlin|kts?))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.kotlin","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.kotlin.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.kotlin"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(less))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.css.less","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.css.less.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.css.less"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(make(file)?))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.makefile","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.makefile.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.makefile"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(markdown|mdown|md))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.gfm","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.gfm.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.gfm"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(mustache))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"text.embedded.html.mustache","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.html.mustache.asciidoc","patterns":[{"include":"#block-callout"},{"include":"text.html.mustache"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(objc|objective-c))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.objc","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.objc.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.objc"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(ocaml))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.ocaml","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.ocaml.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.ocaml"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(perl))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.perl","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.perl.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.perl"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(perl6))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.perl6","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.perl6.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.perl6"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(php))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"text.embedded.html.php","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.html.php.asciidoc","patterns":[{"include":"#block-callout"},{"include":"text.html.php"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(properties))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.asciidoc.properties","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.asciidoc.properties.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.asciidoc.properties"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(py(thon)?))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.python","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.python.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.python"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(r))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.r","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.r.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.r"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(ruby|rb))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.ruby","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.ruby.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.ruby"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(rust|rs))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.rust","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.rust.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.rust"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(sass))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.sass","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.sass.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.sass"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(scala))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.scala","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.scala.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.scala"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(scss))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.css.scss","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.css.scss.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.css.scss"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(sh|bash|shell))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.shell","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.shell.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.shell"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(sql))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.sql","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.sql.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.sql"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(swift))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.swift","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.swift.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.swift"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(toml))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.toml","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.toml.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.toml"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(typescript|ts))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.ts","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.ts.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.ts"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(xml))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"text.embedded.xml","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.xml.asciidoc","patterns":[{"include":"#block-callout"},{"include":"text.xml"}]},{"begin":"^\\\\s*(`{3,})\\\\s*(?i:(ya?ml))\\\\s*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"contentName":"source.embedded.yaml","end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.code.yaml.asciidoc","patterns":[{"include":"#block-callout"},{"include":"source.yaml"}]},{"begin":"^\\\\s*(`{3,}).*$","beginCaptures":{"0":{"name":"support.asciidoc"}},"end":"^\\\\s*\\\\1\\\\s*$","endCaptures":{"0":{"name":"support.asciidoc"}},"name":"markup.raw.asciidoc","patterns":[{"include":"#block-callout"}]}]},"source-paragraphs":{"patterns":[{"include":"#source-asciidoctor"},{"include":"#source-markdown"}]},"stem-macro":{"patterns":[{"begin":"(?>))","name":"markup.reference.xref.asciidoc"},{"begin":"(?{if(e&&typeof e=="object"||typeof e=="function")for(let n of d(e))!c.call(t,n)&&n!==a&&i(t,n,{get:()=>e[n],enumerable:!(m=s(e,n))||m.enumerable});return t},h=(t,e,a)=>(p(t,e,"default"),a),r={};h(r,l);var o=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],u={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{{!--","--}}"]},brackets:[[""],["<",">"],["{{","}}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${o.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:r.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${o.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:r.languages.IndentAction.Indent}}]},y={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/\{\{!--/,"comment.block.start.handlebars","@commentBlock"],[/\{\{!/,"comment.start.handlebars","@comment"],[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.root"}],[/)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)(\w+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/\}\}/,"comment.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentBlock:[[/--\}\}/,"comment.block.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentHtml:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],handlebarsInSimpleState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3"}],{include:"handlebarsRoot"}],handlebarsInEmbeddedState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"handlebarsRoot"}],handlebarsRoot:[[/"[^"]*"/,"string.handlebars"],[/[#/][^\s}]+/,"keyword.helper.handlebars"],[/else\b/,"keyword.helper.handlebars"],[/[\s]+/],[/[^}]/,"variable.parameter.handlebars"]]}};export{u as conf,y as language}; ================================================ FILE: jesse/static/_nuxt/BPhBrDlE.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"CSS","name":"css","patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"include":"#combinators"},{"include":"#selector"},{"include":"#at-rules"},{"include":"#rule-list"}],"repository":{"at-rules":{"patterns":[{"begin":"\\\\A(?:\\\\xEF\\\\xBB\\\\xBF)?(?i:(?=\\\\s*@charset\\\\b))","end":";|(?=$)","endCaptures":{"0":{"name":"punctuation.terminator.rule.css"}},"name":"meta.at-rule.charset.css","patterns":[{"captures":{"1":{"name":"invalid.illegal.not-lowercase.charset.css"},"2":{"name":"invalid.illegal.leading-whitespace.charset.css"},"3":{"name":"invalid.illegal.no-whitespace.charset.css"},"4":{"name":"invalid.illegal.whitespace.charset.css"},"5":{"name":"invalid.illegal.not-double-quoted.charset.css"},"6":{"name":"invalid.illegal.unclosed-string.charset.css"},"7":{"name":"invalid.illegal.unexpected-characters.charset.css"}},"match":"\\\\G((?!@charset)@\\\\w+)|\\\\G(\\\\s+)|(@charset\\\\S[^;]*)|(?<=@charset)(\\\\x20{2,}|\\\\t+)|(?<=@charset\\\\x20)([^\\";]+)|(\\"[^\\"]+$)|(?<=\\")([^;]+)"},{"captures":{"1":{"name":"keyword.control.at-rule.charset.css"},"2":{"name":"punctuation.definition.keyword.css"}},"match":"((@)charset)(?=\\\\s)"},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.css"}},"end":"\\"|$","endCaptures":{"0":{"name":"punctuation.definition.string.end.css"}},"name":"string.quoted.double.css","patterns":[{"begin":"(?:\\\\G|^)(?=(?:[^\\"])+$)","end":"$","name":"invalid.illegal.unclosed.string.css"}]}]},{"begin":"(?i)((@)import)(?:\\\\s+|$|(?=['\\"]|/\\\\*))","beginCaptures":{"1":{"name":"keyword.control.at-rule.import.css"},"2":{"name":"punctuation.definition.keyword.css"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.rule.css"}},"name":"meta.at-rule.import.css","patterns":[{"begin":"\\\\G\\\\s*(?=/\\\\*)","end":"(?<=\\\\*/)\\\\s*","patterns":[{"include":"#comment-block"}]},{"include":"#string"},{"include":"#url"},{"include":"#media-query-list"}]},{"begin":"(?i)((@)font-face)(?=\\\\s*|{|/\\\\*|$)","beginCaptures":{"1":{"name":"keyword.control.at-rule.font-face.css"},"2":{"name":"punctuation.definition.keyword.css"}},"end":"(?!\\\\G)","name":"meta.at-rule.font-face.css","patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"include":"#rule-list"}]},{"begin":"(?i)(@)page(?=[\\\\s:{]|/\\\\*|$)","captures":{"0":{"name":"keyword.control.at-rule.page.css"},"1":{"name":"punctuation.definition.keyword.css"}},"end":"(?=\\\\s*($|[:{;]))","name":"meta.at-rule.page.css","patterns":[{"include":"#rule-list"}]},{"begin":"(?i)(?=@media(\\\\s|\\\\(|/\\\\*|$))","end":"(?<=})(?!\\\\G)","patterns":[{"begin":"(?i)\\\\G(@)media","beginCaptures":{"0":{"name":"keyword.control.at-rule.media.css"},"1":{"name":"punctuation.definition.keyword.css"}},"end":"(?=\\\\s*[{;])","name":"meta.at-rule.media.header.css","patterns":[{"include":"#media-query-list"}]},{"begin":"{","beginCaptures":{"0":{"name":"punctuation.section.media.begin.bracket.curly.css"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.media.end.bracket.curly.css"}},"name":"meta.at-rule.media.body.css","patterns":[{"include":"$self"}]}]},{"begin":"(?i)(?=@counter-style([\\\\s'\\"{;]|/\\\\*|$))","end":"(?<=})(?!\\\\G)","patterns":[{"begin":"(?i)\\\\G(@)counter-style","beginCaptures":{"0":{"name":"keyword.control.at-rule.counter-style.css"},"1":{"name":"punctuation.definition.keyword.css"}},"end":"(?=\\\\s*{)","name":"meta.at-rule.counter-style.header.css","patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"captures":{"0":{"patterns":[{"include":"#escapes"}]}},"match":"(?:[-a-zA-Z_]|[^\\\\x00-\\\\x7F])(?:[-a-zA-Z0-9_]|[^\\\\x00-\\\\x7F]|\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))*","name":"variable.parameter.style-name.css"}]},{"begin":"{","beginCaptures":{"0":{"name":"punctuation.section.property-list.begin.bracket.curly.css"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.property-list.end.bracket.curly.css"}},"name":"meta.at-rule.counter-style.body.css","patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"include":"#rule-list-innards"}]}]},{"begin":"(?i)(?=@document([\\\\s'\\"{;]|/\\\\*|$))","end":"(?<=})(?!\\\\G)","patterns":[{"begin":"(?i)\\\\G(@)document","beginCaptures":{"0":{"name":"keyword.control.at-rule.document.css"},"1":{"name":"punctuation.definition.keyword.css"}},"end":"(?=\\\\s*[{;])","name":"meta.at-rule.document.header.css","patterns":[{"begin":"(?i)(?>>","name":"invalid.deprecated.combinator.css"},{"match":">>|>|\\\\+|~","name":"keyword.operator.combinator.css"}]},"commas":{"match":",","name":"punctuation.separator.list.comma.css"},"comment-block":{"begin":"/\\\\*","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.css"}},"end":"\\\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.end.css"}},"name":"comment.block.css"},"escapes":{"patterns":[{"match":"\\\\\\\\[0-9a-fA-F]{1,6}","name":"constant.character.escape.codepoint.css"},{"begin":"\\\\\\\\$\\\\s*","end":"^(?<:=]|\\\\)|/\\\\*) # Terminates cleanly"},"media-query":{"begin":"\\\\G","end":"(?=\\\\s*[{;])","patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"include":"#media-types"},{"match":"(?i)(?<=\\\\s|^|,|\\\\*/)(only|not)(?=\\\\s|{|/\\\\*|$)","name":"keyword.operator.logical.$1.media.css"},{"match":"(?i)(?<=\\\\s|^|\\\\*/|\\\\))and(?=\\\\s|/\\\\*|$)","name":"keyword.operator.logical.and.media.css"},{"match":",(?:(?:\\\\s*,)+|(?=\\\\s*[;){]))","name":"invalid.illegal.comma.css"},{"include":"#commas"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.bracket.round.css"}},"patterns":[{"include":"#media-features"},{"include":"#media-feature-keywords"},{"match":":","name":"punctuation.separator.key-value.css"},{"match":">=|<=|=|<|>","name":"keyword.operator.comparison.css"},{"captures":{"1":{"name":"constant.numeric.css"},"2":{"name":"keyword.operator.arithmetic.css"},"3":{"name":"constant.numeric.css"}},"match":"(\\\\d+)\\\\s*(/)\\\\s*(\\\\d+)","name":"meta.ratio.css"},{"include":"#numeric-values"},{"include":"#comment-block"}]}]},"media-query-list":{"begin":"(?=\\\\s*[^{;])","end":"(?=\\\\s*[{;])","patterns":[{"include":"#media-query"}]},"media-types":{"captures":{"1":{"name":"support.constant.media.css"},"2":{"name":"invalid.deprecated.constant.media.css"}},"match":"(?xi)\\n(?<=^|\\\\s|,|\\\\*/)\\n(?:\\n # Valid media types\\n (all|print|screen|speech)\\n |\\n # Deprecated in Media Queries 4: http://dev.w3.org/csswg/mediaqueries/#media-types\\n (aural|braille|embossed|handheld|projection|tty|tv)\\n)\\n(?=$|[{,\\\\s;]|/\\\\*)"},"numeric-values":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.constant.css"}},"match":"(#)(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\\\b","name":"constant.other.color.rgb-value.hex.css"},{"captures":{"1":{"name":"keyword.other.unit.percentage.css"},"2":{"name":"keyword.other.unit.\${2:/downcase}.css"}},"match":"(?xi) (?+~|]|/\\\\*)|(?:[-a-zA-Z_0-9]|[^\\\\x00-\\\\x7F]|\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))*(?:[!\\"'%&(*;+~|]|/\\\\*)","name":"entity.other.attribute-name.class.css"},{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"patterns":[{"include":"#escapes"}]}},"match":"(\\\\#)(-?(?![0-9])(?:[-a-zA-Z0-9_]|[^\\\\x00-\\\\x7F]|\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))+)(?=$|[\\\\s,.\\\\#)\\\\[:{>+~|]|/\\\\*)","name":"entity.other.attribute-name.id.css"},{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.entity.begin.bracket.square.css"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.entity.end.bracket.square.css"}},"name":"meta.attribute-selector.css","patterns":[{"include":"#comment-block"},{"include":"#string"},{"captures":{"1":{"name":"storage.modifier.ignore-case.css"}},"match":"(?<=[\\"'\\\\s]|^|\\\\*/)\\\\s*([iI])\\\\s*(?=[\\\\s\\\\]]|/\\\\*|$)"},{"captures":{"1":{"name":"string.unquoted.attribute-value.css","patterns":[{"include":"#escapes"}]}},"match":"(?<==)\\\\s*((?!/\\\\*)(?:[^\\\\\\\\\\"'\\\\s\\\\]]|\\\\\\\\.)+)"},{"include":"#escapes"},{"match":"[~|^$*]?=","name":"keyword.operator.pattern.css"},{"match":"\\\\|","name":"punctuation.separator.css"},{"captures":{"1":{"name":"entity.other.namespace-prefix.css","patterns":[{"include":"#escapes"}]}},"match":"(-?(?!\\\\d)(?:[\\\\w-]|[^\\\\x00-\\\\x7F]|\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))+|\\\\*)(?=\\\\|(?!\\\\s|=|$|\\\\])(?:-?(?!\\\\d)|[\\\\\\\\\\\\w-]|[^\\\\x00-\\\\x7F]))"},{"captures":{"1":{"name":"entity.other.attribute-name.css","patterns":[{"include":"#escapes"}]}},"match":"(-?(?!\\\\d)(?>[\\\\w-]|[^\\\\x00-\\\\x7F]|\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))+)\\\\s*(?=[~|^\\\\]$*=]|/\\\\*)"}]},{"include":"#pseudo-classes"},{"include":"#pseudo-elements"},{"include":"#functional-pseudo-classes"},{"match":"(?\\\\s,.\\\\#|){:\\\\[]|/\\\\*|$)","name":"entity.name.tag.css"},"unicode-range":{"captures":{"0":{"name":"constant.other.unicode-range.css"},"1":{"name":"punctuation.separator.dash.unicode-range.css"}},"match":"(?>"}],indentationRules:{increaseIndentPattern:/^\s*(after|else|catch|rescue|fn|[^#]*(do|<\-|\->|\{|\[|\=))\s*$/,decreaseIndentPattern:/^\s*((\}|\])\s*$|(after|else|catch|rescue|end)\b)/}},t={defaultToken:"source",tokenPostfix:".elixir",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"<<",close:">>",token:"delimiter.angle.special"}],declarationKeywords:["def","defp","defn","defnp","defguard","defguardp","defmacro","defmacrop","defdelegate","defcallback","defmacrocallback","defmodule","defprotocol","defexception","defimpl","defstruct"],operatorKeywords:["and","in","not","or","when"],namespaceKeywords:["alias","import","require","use"],otherKeywords:["after","case","catch","cond","do","else","end","fn","for","if","quote","raise","receive","rescue","super","throw","try","unless","unquote_splicing","unquote","with"],constants:["true","false","nil"],nameBuiltin:["__MODULE__","__DIR__","__ENV__","__CALLER__","__STACKTRACE__"],operator:/-[->]?|!={0,2}|\*{1,2}|\/|\\\\|&{1,3}|\.\.?|\^(?:\^\^)?|\+\+?|<(?:-|<<|=|>|\|>|~>?)?|=~|={1,3}|>(?:=|>>)?|\|~>|\|>|\|{1,3}|~>>?|~~~|::/,variableName:/[a-z_][a-zA-Z0-9_]*[?!]?/,atomName:/[a-zA-Z_][a-zA-Z0-9_@]*[?!]?|@specialAtomName|@operator/,specialAtomName:/\.\.\.|<<>>|%\{\}|%|\{\}/,aliasPart:/[A-Z][a-zA-Z0-9_]*/,moduleName:/@aliasPart(?:\.@aliasPart)*/,sigilSymmetricDelimiter:/"""|'''|"|'|\/|\|/,sigilStartDelimiter:/@sigilSymmetricDelimiter|<|\{|\[|\(/,sigilEndDelimiter:/@sigilSymmetricDelimiter|>|\}|\]|\)/,sigilModifiers:/[a-zA-Z0-9]*/,decimal:/\d(?:_?\d)*/,hex:/[0-9a-fA-F](_?[0-9a-fA-F])*/,octal:/[0-7](_?[0-7])*/,binary:/[01](_?[01])*/,escape:/\\u[0-9a-fA-F]{4}|\\x[0-9a-fA-F]{2}|\\./,tokenizer:{root:[{include:"@whitespace"},{include:"@comments"},{include:"@keywordsShorthand"},{include:"@numbers"},{include:"@identifiers"},{include:"@strings"},{include:"@atoms"},{include:"@sigils"},{include:"@attributes"},{include:"@symbols"}],whitespace:[[/\s+/,"white"]],comments:[[/(#)(.*)/,["comment.punctuation","comment"]]],keywordsShorthand:[[/(@atomName)(:)(\s+)/,["constant","constant.punctuation","white"]],[/"(?=([^"]|#\{.*?\}|\\")*":)/,{token:"constant.delimiter",next:"@doubleQuotedStringKeyword"}],[/'(?=([^']|#\{.*?\}|\\')*':)/,{token:"constant.delimiter",next:"@singleQuotedStringKeyword"}]],doubleQuotedStringKeyword:[[/":/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],singleQuotedStringKeyword:[[/':/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],numbers:[[/0b@binary/,"number.binary"],[/0o@octal/,"number.octal"],[/0x@hex/,"number.hex"],[/@decimal\.@decimal([eE]-?@decimal)?/,"number.float"],[/@decimal/,"number"]],identifiers:[[/\b(defp?|defnp?|defmacrop?|defguardp?|defdelegate)(\s+)(@variableName)(?!\s+@operator)/,["keyword.declaration","white",{cases:{unquote:"keyword","@default":"function"}}]],[/(@variableName)(?=\s*\.?\s*\()/,{cases:{"@declarationKeywords":"keyword.declaration","@namespaceKeywords":"keyword","@otherKeywords":"keyword","@default":"function.call"}}],[/(@moduleName)(\s*)(\.)(\s*)(@variableName)/,["type.identifier","white","operator","white","function.call"]],[/(:)(@atomName)(\s*)(\.)(\s*)(@variableName)/,["constant.punctuation","constant","white","operator","white","function.call"]],[/(\|>)(\s*)(@variableName)/,["operator","white",{cases:{"@otherKeywords":"keyword","@default":"function.call"}}]],[/(&)(\s*)(@variableName)/,["operator","white","function.call"]],[/@variableName/,{cases:{"@declarationKeywords":"keyword.declaration","@operatorKeywords":"keyword.operator","@namespaceKeywords":"keyword","@otherKeywords":"keyword","@constants":"constant.language","@nameBuiltin":"variable.language","_.*":"comment.unused","@default":"identifier"}}],[/@moduleName/,"type.identifier"]],strings:[[/"""/,{token:"string.delimiter",next:"@doubleQuotedHeredoc"}],[/'''/,{token:"string.delimiter",next:"@singleQuotedHeredoc"}],[/"/,{token:"string.delimiter",next:"@doubleQuotedString"}],[/'/,{token:"string.delimiter",next:"@singleQuotedString"}]],doubleQuotedHeredoc:[[/"""/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],singleQuotedHeredoc:[[/'''/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],doubleQuotedString:[[/"/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],singleQuotedString:[[/'/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],atoms:[[/(:)(@atomName)/,["constant.punctuation","constant"]],[/:"/,{token:"constant.delimiter",next:"@doubleQuotedStringAtom"}],[/:'/,{token:"constant.delimiter",next:"@singleQuotedStringAtom"}]],doubleQuotedStringAtom:[[/"/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],singleQuotedStringAtom:[[/'/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],sigils:[[/~[a-z]@sigilStartDelimiter/,{token:"@rematch",next:"@sigil.interpol"}],[/~([A-Z]+)@sigilStartDelimiter/,{token:"@rematch",next:"@sigil.noInterpol"}]],sigil:[[/~([a-z]|[A-Z]+)\{/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.{.}"}],[/~([a-z]|[A-Z]+)\[/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.[.]"}],[/~([a-z]|[A-Z]+)\(/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.(.)"}],[/~([a-z]|[A-Z]+)\"}],[/~([a-z]|[A-Z]+)(@sigilSymmetricDelimiter)/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.$2.$2"}]],"sigilStart.interpol.s":[[/~s@sigilStartDelimiter/,{token:"string.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol.s":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"string.delimiter",next:"@pop"},"@default":"string"}}],{include:"@stringContentInterpol"}],"sigilStart.noInterpol.S":[[/~S@sigilStartDelimiter/,{token:"string.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol.S":[[/(^|[^\\])\\@sigilEndDelimiter/,"string"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"string.delimiter",next:"@pop"},"@default":"string"}}],{include:"@stringContent"}],"sigilStart.interpol.r":[[/~r@sigilStartDelimiter/,{token:"regexp.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol.r":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"regexp.delimiter",next:"@pop"},"@default":"regexp"}}],{include:"@regexpContentInterpol"}],"sigilStart.noInterpol.R":[[/~R@sigilStartDelimiter/,{token:"regexp.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol.R":[[/(^|[^\\])\\@sigilEndDelimiter/,"regexp"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"regexp.delimiter",next:"@pop"},"@default":"regexp"}}],{include:"@regexpContent"}],"sigilStart.interpol":[[/~([a-z]|[A-Z]+)@sigilStartDelimiter/,{token:"sigil.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"sigil.delimiter",next:"@pop"},"@default":"sigil"}}],{include:"@sigilContentInterpol"}],"sigilStart.noInterpol":[[/~([a-z]|[A-Z]+)@sigilStartDelimiter/,{token:"sigil.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol":[[/(^|[^\\])\\@sigilEndDelimiter/,"sigil"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"sigil.delimiter",next:"@pop"},"@default":"sigil"}}],{include:"@sigilContent"}],attributes:[[/\@(module|type)?doc (~[sS])?"""/,{token:"comment.block.documentation",next:"@doubleQuotedHeredocDocstring"}],[/\@(module|type)?doc (~[sS])?'''/,{token:"comment.block.documentation",next:"@singleQuotedHeredocDocstring"}],[/\@(module|type)?doc (~[sS])?"/,{token:"comment.block.documentation",next:"@doubleQuotedStringDocstring"}],[/\@(module|type)?doc (~[sS])?'/,{token:"comment.block.documentation",next:"@singleQuotedStringDocstring"}],[/\@(module|type)?doc false/,"comment.block.documentation"],[/\@(@variableName)/,"variable"]],doubleQuotedHeredocDocstring:[[/"""/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],singleQuotedHeredocDocstring:[[/'''/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],doubleQuotedStringDocstring:[[/"/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],singleQuotedStringDocstring:[[/'/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],symbols:[[/\?(\\.|[^\\\s])/,"number.constant"],[/&\d+/,"operator"],[/<<<|>>>/,"operator"],[/[()\[\]\{\}]|<<|>>/,"@brackets"],[/\.\.\./,"identifier"],[/=>/,"punctuation"],[/@operator/,"operator"],[/[:;,.%]/,"punctuation"]],stringContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@stringContent"}],stringContent:[[/./,"string"]],stringConstantContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@stringConstantContent"}],stringConstantContent:[[/./,"constant"]],regexpContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@regexpContent"}],regexpContent:[[/(\s)(#)(\s.*)$/,["white","comment.punctuation","comment"]],[/./,"regexp"]],sigilContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@sigilContent"}],sigilContent:[[/./,"sigil"]],docstringContent:[[/./,"comment.block.documentation"]],escapeChar:[[/@escape/,"constant.character.escape"]],interpolation:[[/#{/,{token:"delimiter.bracket.embed",next:"@interpolationContinue"}]],interpolationContinue:[[/}/,{token:"delimiter.bracket.embed",next:"@pop"}],{include:"@root"}]}};export{e as conf,t as language}; ================================================ FILE: jesse/static/_nuxt/BS9OwPT8.js ================================================ import{a as e}from"./9VOnL4Iz.js";const o={width:800,height:380,crosshair:{mode:e.Normal}},i={chart:{layout:{background:{color:"#ffffff"},textColor:"rgba(33, 56, 77, 1)"},grid:{vertLines:{color:"#f1f1f1",visible:!1},horzLines:{color:"#f1f1f1",visible:!1}},rightPriceScale:{borderColor:"rgba(197, 203, 206, 0.6)"},timeScale:{borderColor:"rgba(197, 203, 206, 0.6)",timeVisible:!0,secondsVisible:!1}}},l={chart:{layout:{background:{color:"rgb(29 25 23)"},textColor:"#D1D5DB"},grid:{vertLines:{color:"#525252",visible:!1},horzLines:{color:"#525252",visible:!1}},rightPriceScale:{borderColor:"#525252"},timeScale:{borderColor:"#525252",timeVisible:!0,secondsVisible:!1}}};export{l as d,i as l,o as s}; ================================================ FILE: jesse/static/_nuxt/BSxZ-RaX.js ================================================ const e=Object.freeze(JSON.parse('{"displayName":"Swift","fileTypes":["swift"],"firstLineMatch":"^#!/.*\\\\bswift","name":"swift","patterns":[{"include":"#root"}],"repository":{"async-throws":{"captures":{"1":{"name":"invalid.illegal.await-must-precede-throws.swift"},"2":{"name":"storage.modifier.exception.swift"},"3":{"name":"storage.modifier.async.swift"}},"match":"\\\\b(?:(throws\\\\s+async|rethrows\\\\s+async)|(throws|rethrows)|(async))\\\\b"},"attributes":{"patterns":[{"begin":"((@)available)(\\\\()","beginCaptures":{"1":{"name":"storage.modifier.attribute.swift"},"2":{"name":"punctuation.definition.attribute.swift"},"3":{"name":"punctuation.definition.arguments.begin.swift"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}},"name":"meta.attribute.available.swift","patterns":[{"captures":{"1":{"name":"keyword.other.platform.os.swift"},"2":{"name":"constant.numeric.swift"}},"match":"\\\\b(swift|(?:iOS|macOS|OSX|watchOS|tvOS|visionOS|UIKitForMac)(?:ApplicationExtension)?)\\\\b(?:\\\\s+([0-9]+(?:\\\\.[0-9]+)*\\\\b))?"},{"begin":"\\\\b(introduced|deprecated|obsoleted)\\\\s*(:)\\\\s*","beginCaptures":{"1":{"name":"keyword.other.swift"},"2":{"name":"punctuation.separator.key-value.swift"}},"end":"(?!\\\\G)","patterns":[{"match":"\\\\b[0-9]+(?:\\\\.[0-9]+)*\\\\b","name":"constant.numeric.swift"}]},{"begin":"\\\\b(message|renamed)\\\\s*(:)\\\\s*(?=\\")","beginCaptures":{"1":{"name":"keyword.other.swift"},"2":{"name":"punctuation.separator.key-value.swift"}},"end":"(?!\\\\G)","patterns":[{"include":"#literals"}]},{"captures":{"1":{"name":"keyword.other.platform.all.swift"},"2":{"name":"keyword.other.swift"},"3":{"name":"invalid.illegal.character-not-allowed-here.swift"}},"match":"(?:(\\\\*)|\\\\b(deprecated|unavailable|noasync)\\\\b)\\\\s*(.*?)(?=[,)])"}]},{"begin":"((@)objc)(\\\\()","beginCaptures":{"1":{"name":"storage.modifier.attribute.swift"},"2":{"name":"punctuation.definition.attribute.swift"},"3":{"name":"punctuation.definition.arguments.begin.swift"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}},"name":"meta.attribute.objc.swift","patterns":[{"captures":{"1":{"name":"invalid.illegal.missing-colon-after-selector-piece.swift"}},"match":"\\\\w*(?::(?:\\\\w*:)*(\\\\w*))?","name":"entity.name.function.swift"}]},{"begin":"(@)(?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k)","beginCaptures":{"0":{"name":"storage.modifier.attribute.swift"},"1":{"name":"punctuation.definition.attribute.swift"},"2":{"name":"punctuation.definition.identifier.swift"},"3":{"name":"punctuation.definition.identifier.swift"}},"end":"(?!\\\\G\\\\()","name":"meta.attribute.swift","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.arguments.begin.swift"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}},"name":"meta.arguments.attribute.swift","patterns":[{"include":"#expressions"}]}]}]},"builtin-functions":{"patterns":[{"match":"(?<=\\\\.)(?:s(?:ort(?:ed)?|plit)|contains|index|partition|f(?:i(?:lter|rst)|orEach|latMap)|with(?:MutableCharacters|CString|U(?:nsafe(?:Mutable(?:BufferPointer|Pointer(?:s|To(?:Header|Elements)))|BufferPointer)|TF8Buffer))|m(?:in|a(?:p|x)))(?=\\\\s*[({])\\\\b","name":"support.function.swift"},{"match":"(?<=\\\\.)(?:s(?:ymmetricDifference|t(?:oreBytes|arts|ride)|ortInPlace|u(?:ccessor|ffix|btract(?:ing|InPlace|WithOverflow)?)|quareRoot|amePosition)|h(?:oldsUnique(?:Reference|OrPinnedReference)|as(?:Suffix|Prefix))|ne(?:gate(?:d)?|xt)|c(?:o(?:untByEnumerating|py(?:Bytes)?)|lamp(?:ed)?|reate)|t(?:o(?:IntMax|Opaque|UIntMax)|ake(?:RetainedValue|UnretainedValue)|r(?:uncatingRemainder|a(?:nscodedLength|ilSurrogate)))|i(?:s(?:MutableAndUniquelyReferenced(?:OrPinned)?|S(?:trictSu(?:perset(?:Of)?|bset(?:Of)?)|u(?:perset(?:Of)?|bset(?:Of)?))|Continuation|T(?:otallyOrdered|railSurrogate)|Disjoint(?:With)?|Unique(?:Reference|lyReferenced(?:OrPinned)?)|Equal|Le(?:ss(?:ThanOrEqualTo)?|adSurrogate))|n(?:sert(?:ContentsOf)?|tersect(?:ion|InPlace)?|itialize(?:Memory|From)?|dex(?:Of|ForKey)))|o(?:verlaps|bjectAt)|d(?:i(?:stance(?:To)?|vide(?:d|WithOverflow)?)|e(?:s(?:cendant|troy)|code(?:CString)?|initialize|alloc(?:ate(?:Capacity)?)?)|rop(?:First|Last))|u(?:n(?:ion(?:InPlace)?|derestimateCount|wrappedOrError)|p(?:date(?:Value)?|percased))|join(?:ed|WithSeparator)|p(?:op(?:First|Last)|ass(?:Retained|Unretained)|re(?:decessor|fix))|e(?:scape(?:d)?|n(?:code|umerate(?:d)?)|lementsEqual|xclusiveOr(?:InPlace)?)|f(?:orm(?:Remainder|S(?:ymmetricDifference|quareRoot)|TruncatingRemainder|In(?:tersection|dex)|Union)|latten|rom(?:CString(?:RepairingIllFormedUTF8)?|Opaque))|w(?:i(?:thMemoryRebound|dth)|rite(?:To)?)|l(?:o(?:wercased|ad)|e(?:adSurrogate|xicographical(?:Compare|lyPrecedes)))|a(?:ss(?:ign(?:BackwardFrom|From)?|umingMemoryBound)|d(?:d(?:ing(?:Product)?|Product|WithOverflow)?|vanced(?:By)?)|utorelease|ppend(?:ContentsOf)?|lloc(?:ate)?|bs)|r(?:ound(?:ed)?|e(?:serveCapacity|tain|duce|place(?:Range|Subrange)?|verse(?:d)?|quest(?:NativeBuffer|UniqueMutableBackingBuffer)|lease|m(?:ove(?:Range|Subrange|Value(?:ForKey)?|First|Last|A(?:tIndex|ll))?|ainder(?:WithOverflow)?)))|ge(?:nerate|t(?:Objects|Element))|m(?:in(?:imum(?:Magnitude)?|Element)|ove(?:Initialize(?:Memory|BackwardFrom|From)?|Assign(?:From)?)?|ultipl(?:y(?:WithOverflow)?|ied)|easure|a(?:ke(?:Iterator|Description)|x(?:imum(?:Magnitude)?|Element)))|bindMemory)(?=\\\\s*\\\\()","name":"support.function.swift"},{"match":"(?<=\\\\.)(?:s(?:uperclassMirror|amePositionIn|tartsWith)|nextObject|c(?:haracterAtIndex|o(?:untByEnumeratingWithState|pyWithZone)|ustom(?:Mirror|PlaygroundQuickLook))|is(?:EmptyInput|ASCII)|object(?:Enumerator|ForKey|AtIndex)|join|put|keyEnumerator|withUnsafeMutablePointerToValue|length|getMirror|m(?:oveInitializeAssignFrom|ember))(?=\\\\s*\\\\()","name":"support.function.swift"}]},"builtin-global-functions":{"patterns":[{"begin":"\\\\b(type)(\\\\()\\\\s*(of)(:)","beginCaptures":{"1":{"name":"support.function.dynamic-type.swift"},"2":{"name":"punctuation.definition.arguments.begin.swift"},"3":{"name":"support.variable.parameter.swift"},"4":{"name":"punctuation.separator.argument-label.begin.swift"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}},"patterns":[{"include":"#expressions"}]},{"match":"\\\\b(?:anyGenerator|autoreleasepool)(?=\\\\s*[({])\\\\b","name":"support.function.swift"},{"match":"\\\\b(?:s(?:tride(?:of(?:Value)?)?|izeof(?:Value)?|equence|wap)|numericCast|transcode|is(?:UniquelyReferenced(?:NonObjC)?|KnownUniquelyReferenced)|zip|d(?:ump|ebugPrint)|unsafe(?:BitCast|Downcast|Unwrap|Address(?:Of)?)|pr(?:int|econdition(?:Failure)?)|fatalError|with(?:Unsafe(?:MutablePointer|Pointer)|ExtendedLifetime|VaList)|a(?:ssert(?:ionFailure)?|lignof(?:Value)?|bs)|re(?:peatElement|adLine)|getVaList|m(?:in|ax))(?=\\\\s*\\\\()","name":"support.function.swift"},{"match":"\\\\b(?:s(?:ort|uffix|pli(?:ce|t))|insert|overlaps|d(?:istance|rop(?:First|Last))|join|prefix|extend|withUnsafe(?:MutablePointers|Pointers)|lazy|advance|re(?:flect|move(?:Range|Last|A(?:tIndex|ll))))(?=\\\\s*\\\\()","name":"support.function.swift"}]},"builtin-properties":{"patterns":[{"match":"(?<=^Process\\\\.|\\\\WProcess\\\\.|^CommandLine\\\\.|\\\\WCommandLine\\\\.)(arguments|argc|unsafeArgv)","name":"support.variable.swift"},{"match":"(?<=\\\\.)(?:s(?:t(?:artIndex|ri(?:ngValue|de))|i(?:ze|gn(?:BitIndex|ificand(?:Bit(?:Count|Pattern)|Width)?|alingNaN)?)|u(?:perclassMirror|mmary|bscriptBaseAddress))|h(?:eader|as(?:hValue|PointerRepresentation))|n(?:ulTerminatedUTF8|ext(?:Down|Up)|a(?:n|tiveOwner))|c(?:haracters|ount(?:TrailingZeros)?|ustom(?:Mirror|PlaygroundQuickLook)|apacity)|i(?:s(?:S(?:ign(?:Minus|aling(?:NaN)?)|ubnormal)|N(?:ormal|aN)|Canonical|Infinite|Zero|Empty|Finite|ASCII)|n(?:dices|finity)|dentity)|owner|de(?:scription|bugDescription)|u(?:n(?:safelyUnwrapped|icodeScalar(?:s)?|derestimatedCount)|tf(?:16|8(?:Start|C(?:String|odeUnitCount))?)|intValue|ppercaseString|lp(?:OfOne)?)|p(?:i|ointee)|e(?:ndIndex|lements|xponent(?:Bit(?:Count|Pattern))?)|value(?:s)?|keys|quietNaN|f(?:irst(?:ElementAddress(?:IfContiguous)?)?|loatingPointClass)|l(?:ittleEndian|owercaseString|eastNo(?:nzeroMagnitude|rmalMagnitude)|a(?:st|zy))|a(?:l(?:ignment|l(?:ocatedElementCount|Zeros))|rray(?:PropertyIsNativeTypeChecked)?)|ra(?:dix|wValue)|greatestFiniteMagnitude|m(?:in|emory|ax)|b(?:yteS(?:ize|wapped)|i(?:nade|tPattern|gEndian)|uffer|ase(?:Address)?))\\\\b","name":"support.variable.swift"},{"match":"(?<=\\\\.)(?:boolValue|disposition|end|objectIdentifier|quickLookObject|start|valueType)\\\\b","name":"support.variable.swift"},{"match":"(?<=\\\\.)(?:s(?:calarValue|i(?:ze|gnalingNaN)|o(?:und|me)|uppressed|prite|et)|n(?:one|egative(?:Subnormal|Normal|Infinity|Zero))|c(?:ol(?:or|lection)|ustomized)|t(?:o(?:NearestOr(?:Even|AwayFromZero)|wardZero)|uple|ext)|i(?:nt|mage)|optional|d(?:ictionary|o(?:uble|wn))|u(?:Int|p|rl)|p(?:o(?:sitive(?:Subnormal|Normal|Infinity|Zero)|int)|lus)|e(?:rror|mptyInput)|view|quietNaN|float|a(?:ttributedString|wayFromZero)|r(?:ectangle|ange)|generated|minus|b(?:ool|ezierPath))\\\\b","name":"support.variable.swift"}]},"builtin-types":{"patterns":[{"include":"#builtin-types-builtin-class-type"},{"include":"#builtin-types-builtin-enum-type"},{"include":"#builtin-types-builtin-protocol-type"},{"include":"#builtin-types-builtin-struct-type"},{"include":"#builtin-types-builtin-typealias"},{"match":"\\\\bAny\\\\b","name":"support.type.any.swift"}]},"builtin-types-builtin-class-type":{"match":"\\\\b(Managed(Buffer|ProtoBuffer)|NonObjectiveCBase|AnyGenerator)\\\\b","name":"support.class.swift"},"builtin-types-builtin-enum-type":{"patterns":[{"match":"\\\\b(?:CommandLine|Process(?=\\\\.))\\\\b","name":"support.constant.swift"},{"match":"\\\\bNever\\\\b","name":"support.constant.never.swift"},{"match":"\\\\b(?:ImplicitlyUnwrappedOptional|Representation|MemoryLayout|FloatingPointClassification|SetIndexRepresentation|SetIteratorRepresentation|FloatingPointRoundingRule|UnicodeDecodingResult|Optional|DictionaryIndexRepresentation|AncestorRepresentation|DisplayStyle|PlaygroundQuickLook|Never|FloatingPointSign|Bit|DictionaryIteratorRepresentation)\\\\b","name":"support.type.swift"},{"match":"\\\\b(?:MirrorDisposition|QuickLookObject)\\\\b","name":"support.type.swift"}]},"builtin-types-builtin-protocol-type":{"patterns":[{"match":"\\\\b(?:Ra(?:n(?:domAccess(?:Collection|Indexable)|geReplaceable(?:Collection|Indexable))|wRepresentable)|M(?:irrorPath|utable(?:Collection|Indexable))|Bi(?:naryFloatingPoint|twiseOperations|directional(?:Collection|Indexable))|S(?:tr(?:ideable|eamable)|igned(?:Number|Integer)|e(?:tAlgebra|quence))|Hashable|C(?:o(?:llection|mparable)|ustom(?:Reflectable|StringConvertible|DebugStringConvertible|PlaygroundQuickLookable|LeafReflectable)|VarArg)|TextOutputStream|I(?:n(?:teger(?:Arithmetic)?|dexable(?:Base)?)|teratorProtocol)|OptionSet|Un(?:signedInteger|icodeCodec)|E(?:quatable|rror|xpressibleBy(?:BooleanLiteral|String(?:Interpolation|Literal)|NilLiteral|IntegerLiteral|DictionaryLiteral|UnicodeScalarLiteral|ExtendedGraphemeClusterLiteral|FloatLiteral|ArrayLiteral))|FloatingPoint|L(?:osslessStringConvertible|azy(?:SequenceProtocol|CollectionProtocol))|A(?:nyObject|bsoluteValuable))\\\\b","name":"support.type.swift"},{"match":"\\\\b(?:Ran(?:domAccessIndexType|geReplaceableCollectionType)|GeneratorType|M(?:irror(?:Type|PathType)|utable(?:Sliceable|CollectionType))|B(?:i(?:twiseOperationsType|directionalIndexType)|oolean(?:Type|LiteralConvertible))|S(?:tring(?:InterpolationConvertible|LiteralConvertible)|i(?:nkType|gned(?:NumberType|IntegerType))|e(?:tAlgebraType|quenceType)|liceable)|NilLiteralConvertible|C(?:ollectionType|VarArgType)|Inte(?:rvalType|ger(?:Type|LiteralConvertible|ArithmeticType))|O(?:utputStreamType|ptionSetType)|DictionaryLiteralConvertible|Un(?:signedIntegerType|icode(?:ScalarLiteralConvertible|CodecType))|E(?:rrorType|xten(?:sibleCollectionType|dedGraphemeClusterLiteralConvertible))|F(?:orwardIndexType|loat(?:ingPointType|LiteralConvertible))|A(?:nyCollectionType|rrayLiteralConvertible))\\\\b","name":"support.type.swift"}]},"builtin-types-builtin-struct-type":{"patterns":[{"match":"\\\\b(?:R(?:e(?:peat(?:ed)?|versed(?:RandomAccess(?:Collection|Index)|Collection|Index))|an(?:domAccessSlice|ge(?:Replaceable(?:RandomAccessSlice|BidirectionalSlice|Slice)|Generator)?))|Generator(?:Sequence|OfOne)|M(?:irror|utable(?:Ran(?:domAccessSlice|geReplaceable(?:RandomAccessSlice|BidirectionalSlice|Slice))|BidirectionalSlice|Slice)|anagedBufferPointer)|B(?:idirectionalSlice|ool)|S(?:t(?:aticString|ri(?:ng|deT(?:hrough(?:Generator|Iterator)?|o(?:Generator|Iterator)?)))|et(?:I(?:ndex|terator))?|lice)|HalfOpenInterval|C(?:haracter(?:View)?|o(?:ntiguousArray|untable(?:Range|ClosedRange)|llectionOfOne)|OpaquePointer|losed(?:Range(?:I(?:ndex|terator))?|Interval)|VaListPointer)|I(?:n(?:t(?:16|8|32|64)?|d(?:ices|ex(?:ing(?:Generator|Iterator))?))|terator(?:Sequence|OverOne)?)|Zip2(?:Sequence|Iterator)|O(?:paquePointer|bjectIdentifier)|D(?:ictionary(?:I(?:ndex|terator)|Literal)?|ouble|efault(?:RandomAccessIndices|BidirectionalIndices|Indices))|U(?:n(?:safe(?:RawPointer|Mutable(?:RawPointer|BufferPointer|Pointer)|BufferPointer(?:Generator|Iterator)?|Pointer)|icodeScalar(?:View)?|foldSequence|managed)|TF(?:16(?:View)?|8(?:View)?|32)|Int(?:16|8|32|64)?)|Join(?:Generator|ed(?:Sequence|Iterator))|PermutationGenerator|E(?:numerate(?:Generator|Sequence|d(?:Sequence|Iterator))|mpty(?:Generator|Collection|Iterator))|Fl(?:oat(?:80)?|atten(?:Generator|BidirectionalCollection(?:Index)?|Sequence|Collection(?:Index)?|Iterator))|L(?:egacyChildren|azy(?:RandomAccessCollection|Map(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Collection|Iterator)|BidirectionalCollection|Sequence|Collection|Filter(?:Generator|BidirectionalCollection|Sequence|Collection|I(?:ndex|terator))))|A(?:ny(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Hashable|Collection|I(?:ndex|terator))|utoreleasingUnsafeMutablePointer|rray(?:Slice)?))\\\\b","name":"support.type.swift"},{"match":"\\\\b(?:R(?:everse(?:RandomAccess(?:Collection|Index)|Collection|Index)|awByte)|Map(?:Generator|Sequence|Collection)|S(?:inkOf|etGenerator)|Zip2Generator|DictionaryGenerator|Filter(?:Generator|Sequence|Collection(?:Index)?)|LazyForwardCollection|Any(?:RandomAccessIndex|BidirectionalIndex|Forward(?:Collection|Index)))\\\\b","name":"support.type.swift"}]},"builtin-types-builtin-typealias":{"patterns":[{"match":"\\\\b(?:Raw(?:Significand|Exponent|Value)|B(?:ooleanLiteralType|uffer|ase)|S(?:t(?:orage|r(?:i(?:ngLiteralType|de)|eam(?:1|2)))|ubSequence)|NativeBuffer|C(?:hild(?:ren)?|Bool|S(?:hort|ignedChar)|odeUnit|Char(?:16|32)?|Int|Double|Unsigned(?:Short|Char|Int|Long(?:Long)?)|Float|WideChar|Long(?:Long)?)|I(?:n(?:t(?:Max|egerLiteralType)|d(?:ices|ex(?:Distance)?))|terator)|Distance|U(?:n(?:icodeScalar(?:Type|Index|View|LiteralType)|foldFirstSequence)|TF(?:16(?:Index|View)|8Index)|IntMax)|E(?:lement(?:s)?|x(?:tendedGraphemeCluster(?:Type|LiteralType)|ponent))|V(?:oid|alue)|Key|Float(?:32|LiteralType|64)|AnyClass)\\\\b","name":"support.type.swift"},{"match":"\\\\b(?:Generator|PlaygroundQuickLook|UWord|Word)\\\\b","name":"support.type.swift"}]},"code-block":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.scope.begin.swift"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.section.scope.end.swift"}},"patterns":[{"include":"$self"}]},"comments":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.comment.swift"}},"match":"\\\\A^(#!).*$\\\\n?","name":"comment.line.number-sign.swift"},{"begin":"/\\\\*\\\\*(?!/)","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.swift"}},"end":"\\\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.end.swift"}},"name":"comment.block.documentation.swift","patterns":[{"include":"#comments-nested"}]},{"begin":"/\\\\*:","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.swift"}},"end":"\\\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.end.swift"}},"name":"comment.block.documentation.playground.swift","patterns":[{"include":"#comments-nested"}]},{"begin":"/\\\\*","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.swift"}},"end":"\\\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.end.swift"}},"name":"comment.block.swift","patterns":[{"include":"#comments-nested"}]},{"match":"\\\\*/","name":"invalid.illegal.unexpected-end-of-block-comment.swift"},{"begin":"(^[ \\\\t]+)?(?=//)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.swift"}},"end":"(?!\\\\G)","patterns":[{"begin":"///","beginCaptures":{"0":{"name":"punctuation.definition.comment.swift"}},"end":"$","name":"comment.line.triple-slash.documentation.swift"},{"begin":"//:","beginCaptures":{"0":{"name":"punctuation.definition.comment.swift"}},"end":"$","name":"comment.line.double-slash.documentation.swift"},{"begin":"//","beginCaptures":{"0":{"name":"punctuation.definition.comment.swift"}},"end":"$","name":"comment.line.double-slash.swift"}]}]},"comments-nested":{"begin":"/\\\\*","end":"\\\\*/","patterns":[{"include":"#comments-nested"}]},"compiler-control":{"patterns":[{"begin":"^\\\\s*(#)(if|elseif)\\\\s+(false)\\\\b.*?(?=$|//|/\\\\*)","beginCaptures":{"0":{"name":"meta.preprocessor.conditional.swift"},"1":{"name":"punctuation.definition.preprocessor.swift"},"2":{"name":"keyword.control.import.preprocessor.conditional.swift"},"3":{"name":"constant.language.boolean.swift"}},"contentName":"comment.block.preprocessor.swift","end":"(?=^\\\\s*(#(elseif|else|endif)\\\\b))"},{"begin":"^\\\\s*(#)(if|elseif)\\\\s+","captures":{"1":{"name":"punctuation.definition.preprocessor.swift"},"2":{"name":"keyword.control.import.preprocessor.conditional.swift"}},"end":"(?=\\\\s*(?://|/\\\\*))|$","name":"meta.preprocessor.conditional.swift","patterns":[{"match":"(&&|\\\\|\\\\|)","name":"keyword.operator.logical.swift"},{"match":"\\\\b(true|false)\\\\b","name":"constant.language.boolean.swift"},{"captures":{"1":{"name":"keyword.other.condition.swift"},"2":{"name":"punctuation.definition.parameters.begin.swift"},"3":{"name":"support.constant.platform.architecture.swift"},"4":{"name":"punctuation.definition.parameters.end.swift"}},"match":"\\\\b(arch)\\\\s*(\\\\()\\\\s*(?:(arm|arm64|powerpc64|powerpc64le|i386|x86_64|s390x)|\\\\w+)\\\\s*(\\\\))"},{"captures":{"1":{"name":"keyword.other.condition.swift"},"2":{"name":"punctuation.definition.parameters.begin.swift"},"3":{"name":"support.constant.platform.os.swift"},"4":{"name":"punctuation.definition.parameters.end.swift"}},"match":"\\\\b(os)\\\\s*(\\\\()\\\\s*(?:(macOS|OSX|iOS|tvOS|watchOS|visionOS|Android|Linux|FreeBSD|Windows|PS4)|\\\\w+)\\\\s*(\\\\))"},{"captures":{"1":{"name":"keyword.other.condition.swift"},"2":{"name":"punctuation.definition.parameters.begin.swift"},"3":{"name":"entity.name.type.module.swift"},"4":{"name":"punctuation.definition.parameters.end.swift"}},"match":"\\\\b(canImport)\\\\s*(\\\\()([\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*)(\\\\))"},{"begin":"\\\\b(targetEnvironment)\\\\s*(\\\\()","beginCaptures":{"1":{"name":"keyword.other.condition.swift"},"2":{"name":"punctuation.definition.parameters.begin.swift"}},"end":"(\\\\))|$","endCaptures":{"1":{"name":"punctuation.definition.parameters.end.swift"}},"patterns":[{"match":"\\\\b(simulator|UIKitForMac)\\\\b","name":"support.constant.platform.environment.swift"}]},{"begin":"\\\\b(swift|compiler)\\\\s*(\\\\()","beginCaptures":{"1":{"name":"keyword.other.condition.swift"},"2":{"name":"punctuation.definition.parameters.begin.swift"}},"end":"(\\\\))|$","endCaptures":{"1":{"name":"punctuation.definition.parameters.end.swift"}},"patterns":[{"match":">=|<","name":"keyword.operator.comparison.swift"},{"match":"\\\\b[0-9]+(?:\\\\.[0-9]+)*\\\\b","name":"constant.numeric.swift"}]}]},{"captures":{"1":{"name":"punctuation.definition.preprocessor.swift"},"2":{"name":"keyword.control.import.preprocessor.conditional.swift"},"3":{"patterns":[{"match":"\\\\S+","name":"invalid.illegal.character-not-allowed-here.swift"}]}},"match":"^\\\\s*(#)(else|endif)(.*?)(?=$|//|/\\\\*)","name":"meta.preprocessor.conditional.swift"},{"captures":{"1":{"name":"punctuation.definition.preprocessor.swift"},"2":{"name":"keyword.control.import.preprocessor.sourcelocation.swift"},"4":{"name":"punctuation.definition.parameters.begin.swift"},"5":{"patterns":[{"begin":"(file)\\\\s*(:)\\\\s*(?=\\")","beginCaptures":{"1":{"name":"support.variable.parameter.swift"},"2":{"name":"punctuation.separator.key-value.swift"}},"end":"(?!\\\\G)","patterns":[{"include":"#literals"}]},{"captures":{"1":{"name":"support.variable.parameter.swift"},"2":{"name":"punctuation.separator.key-value.swift"},"3":{"name":"constant.numeric.integer.swift"}},"match":"(line)\\\\s*(:)\\\\s*([0-9]+)"},{"match":",","name":"punctuation.separator.parameters.swift"},{"match":"\\\\S+","name":"invalid.illegal.character-not-allowed-here.swift"}]},"6":{"name":"punctuation.definition.parameters.begin.swift"},"7":{"patterns":[{"match":"\\\\S+","name":"invalid.illegal.character-not-allowed-here.swift"}]}},"match":"^\\\\s*(#)(sourceLocation)((\\\\()([^)]*)(\\\\)))(.*?)(?=$|//|/\\\\*)","name":"meta.preprocessor.sourcelocation.swift"}]},"conditionals":{"patterns":[{"begin":"(?&|\\\\^~.])(->)(?![/=\\\\-+!*%<>&|\\\\^~.])"},{"captures":{"1":{"name":"keyword.operator.type.composition.swift"}},"match":"(?&|\\\\^~.])(&)(?![/=\\\\-+!*%<>&|\\\\^~.])"},{"match":"[?!]","name":"keyword.operator.type.optional.swift"},{"match":"\\\\.\\\\.\\\\.","name":"keyword.operator.function.variadic-parameter.swift"},{"match":"\\\\bprotocol\\\\b","name":"keyword.other.type.composition.swift"},{"match":"(?<=\\\\.)(?:Protocol|Type)\\\\b","name":"keyword.other.type.metatype.swift"},{"include":"#declarations-available-types-tuple-type"},{"include":"#declarations-available-types-collection-type"},{"include":"#declarations-generic-argument-clause"}]},"declarations-available-types-collection-type":{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.section.collection-type.begin.swift"}},"end":"\\\\]|(?=[>){}])","endCaptures":{"0":{"name":"punctuation.section.collection-type.end.swift"}},"patterns":[{"include":"#declarations-available-types"},{"begin":":","beginCaptures":{"0":{"name":"punctuation.separator.key-value.swift"}},"end":"(?=\\\\]|[>){}])","patterns":[{"match":":","name":"invalid.illegal.extra-colon-in-dictionary-type.swift"},{"include":"#declarations-available-types"}]}]},"declarations-available-types-tuple-type":{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.section.tuple-type.begin.swift"}},"end":"\\\\)|(?=[>\\\\]{}])","endCaptures":{"0":{"name":"punctuation.section.tuple-type.end.swift"}},"patterns":[{"include":"#declarations-available-types"}]},"declarations-extension":{"begin":"\\\\b(extension)\\\\s+((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))","beginCaptures":{"1":{"name":"storage.type.$1.swift"},"2":{"name":"entity.name.type.swift","patterns":[{"include":"#declarations-available-types"}]},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}},"end":"(?<=\\\\})","name":"meta.definition.type.$1.swift","patterns":[{"include":"#comments"},{"include":"#declarations-generic-where-clause"},{"include":"#declarations-inheritance-clause"},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.type.begin.swift"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.type.end.swift"}},"name":"meta.definition.type.body.swift","patterns":[{"include":"$self"}]}]},"declarations-function":{"begin":"\\\\b(func)\\\\s+((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k)|(?:((?[/=\\\\-+!*%<>&|^~?]|[\\\\x{00A1}-\\\\x{00A7}]|[\\\\x{00A9}\\\\x{00AB}]|[\\\\x{00AC}\\\\x{00AE}]|[\\\\x{00B0}-\\\\x{00B1}\\\\x{00B6}\\\\x{00BB}\\\\x{00BF}\\\\x{00D7}\\\\x{00F7}]|[\\\\x{2016}-\\\\x{2017}\\\\x{2020}-\\\\x{2027}]|[\\\\x{2030}-\\\\x{203E}]|[\\\\x{2041}-\\\\x{2053}]|[\\\\x{2055}-\\\\x{205E}]|[\\\\x{2190}-\\\\x{23FF}]|[\\\\x{2500}-\\\\x{2775}]|[\\\\x{2794}-\\\\x{2BFF}]|[\\\\x{2E00}-\\\\x{2E7F}]|[\\\\x{3001}-\\\\x{3003}]|[\\\\x{3008}-\\\\x{3030}])(\\\\g|(?[\\\\x{0300}-\\\\x{036F}]|[\\\\x{1DC0}-\\\\x{1DFF}]|[\\\\x{20D0}-\\\\x{20FF}]|[\\\\x{FE00}-\\\\x{FE0F}]|[\\\\x{FE20}-\\\\x{FE2F}]|[\\\\x{E0100}-\\\\x{E01EF}]))*)|(\\\\.(\\\\g|\\\\g|\\\\.)+)))\\\\s*(?=\\\\(|<)","beginCaptures":{"1":{"name":"storage.type.function.swift"},"2":{"name":"entity.name.function.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}},"end":"(?<=\\\\})|$","name":"meta.definition.function.swift","patterns":[{"include":"#comments"},{"include":"#declarations-generic-parameter-clause"},{"include":"#declarations-parameter-clause"},{"include":"#declarations-function-result"},{"include":"#async-throws"},{"include":"#declarations-generic-where-clause"},{"begin":"(\\\\{)","beginCaptures":{"1":{"name":"punctuation.section.function.begin.swift"}},"end":"(\\\\})","endCaptures":{"1":{"name":"punctuation.section.function.end.swift"}},"name":"meta.definition.function.body.swift","patterns":[{"include":"$self"}]}]},"declarations-function-initializer":{"begin":"(?&|\\\\^~.])(->)(?![/=\\\\-+!*%<>&|\\\\^~.])\\\\s*","beginCaptures":{"1":{"name":"keyword.operator.function-result.swift"}},"end":"(?!\\\\G)(?=\\\\{|\\\\bwhere\\\\b|;|=)|$","name":"meta.function-result.swift","patterns":[{"include":"#declarations-available-types"}]},"declarations-function-subscript":{"begin":"(?|(?=[)\\\\]{}])","endCaptures":{"0":{"name":"punctuation.separator.generic-argument-clause.end.swift"}},"name":"meta.generic-argument-clause.swift","patterns":[{"include":"#declarations-available-types"}]},"declarations-generic-parameter-clause":{"begin":"<","beginCaptures":{"0":{"name":"punctuation.separator.generic-parameter-clause.begin.swift"}},"end":">|(?=[^\\\\w\\\\d:<>\\\\s,=&`])","endCaptures":{"0":{"name":"punctuation.separator.generic-parameter-clause.end.swift"}},"name":"meta.generic-parameter-clause.swift","patterns":[{"include":"#comments"},{"include":"#declarations-generic-where-clause"},{"match":"\\\\beach\\\\b","name":"keyword.control.loop.swift"},{"captures":{"1":{"name":"variable.language.generic-parameter.swift"}},"match":"\\\\b((?!\\\\d)\\\\w[\\\\w\\\\d]*)\\\\b"},{"match":",","name":"punctuation.separator.generic-parameters.swift"},{"begin":"(:)\\\\s*","beginCaptures":{"1":{"name":"punctuation.separator.generic-parameter-constraint.swift"}},"end":"(?=[,>]|(?!\\\\G)\\\\bwhere\\\\b)","name":"meta.generic-parameter-constraint.swift","patterns":[{"begin":"\\\\G","end":"(?=[,>]|(?!\\\\G)\\\\bwhere\\\\b)","name":"entity.other.inherited-class.swift","patterns":[{"include":"#declarations-type-identifier"},{"include":"#declarations-type-operators"}]}]}]},"declarations-generic-where-clause":{"begin":"\\\\b(where)\\\\b\\\\s*","beginCaptures":{"1":{"name":"keyword.other.generic-constraint-introducer.swift"}},"end":"(?!\\\\G)$|(?=[>{};\\\\n]|//|/\\\\*)","name":"meta.generic-where-clause.swift","patterns":[{"include":"#comments"},{"include":"#declarations-generic-where-clause-requirement-list"}]},"declarations-generic-where-clause-requirement-list":{"begin":"\\\\G|,\\\\s*","end":"(?=[,>{};\\\\n]|//|/\\\\*)","patterns":[{"include":"#comments"},{"include":"#constraint"},{"include":"#declarations-available-types"},{"begin":"(?&|\\\\^~.])(==)(?![/=\\\\-+!*%<>&|\\\\^~.])","beginCaptures":{"1":{"name":"keyword.operator.generic-constraint.same-type.swift"}},"end":"(?=\\\\s*[,>{};\\\\n]|//|/\\\\*)","name":"meta.generic-where-clause.same-type-requirement.swift","patterns":[{"include":"#declarations-available-types"}]},{"begin":"(?&|\\\\^~.])(:)(?![/=\\\\-+!*%<>&|\\\\^~.])","beginCaptures":{"1":{"name":"keyword.operator.generic-constraint.conforms-to.swift"}},"end":"(?=\\\\s*[,>{};\\\\n]|//|/\\\\*)","name":"meta.generic-where-clause.conformance-requirement.swift","patterns":[{"begin":"\\\\G\\\\s*","contentName":"entity.other.inherited-class.swift","end":"(?=\\\\s*[,>{};\\\\n]|//|/\\\\*)","patterns":[{"include":"#declarations-available-types"}]}]}]},"declarations-import":{"begin":"(?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k)","name":"entity.name.type.swift"},{"match":"(?<=\\\\G|\\\\.)\\\\$[0-9]+","name":"entity.name.type.swift"},{"captures":{"1":{"patterns":[{"match":"\\\\.","name":"invalid.illegal.dot-not-allowed-here.swift"}]}},"match":"(?<=\\\\G|\\\\.)(?:((?[/=\\\\-+!*%<>&|^~?]|[\\\\x{00A1}-\\\\x{00A7}]|[\\\\x{00A9}\\\\x{00AB}]|[\\\\x{00AC}\\\\x{00AE}]|[\\\\x{00B0}-\\\\x{00B1}\\\\x{00B6}\\\\x{00BB}\\\\x{00BF}\\\\x{00D7}\\\\x{00F7}]|[\\\\x{2016}-\\\\x{2017}\\\\x{2020}-\\\\x{2027}]|[\\\\x{2030}-\\\\x{203E}]|[\\\\x{2041}-\\\\x{2053}]|[\\\\x{2055}-\\\\x{205E}]|[\\\\x{2190}-\\\\x{23FF}]|[\\\\x{2500}-\\\\x{2775}]|[\\\\x{2794}-\\\\x{2BFF}]|[\\\\x{2E00}-\\\\x{2E7F}]|[\\\\x{3001}-\\\\x{3003}]|[\\\\x{3008}-\\\\x{3030}])(\\\\g|(?[\\\\x{0300}-\\\\x{036F}]|[\\\\x{1DC0}-\\\\x{1DFF}]|[\\\\x{20D0}-\\\\x{20FF}]|[\\\\x{FE00}-\\\\x{FE0F}]|[\\\\x{FE20}-\\\\x{FE2F}]|[\\\\x{E0100}-\\\\x{E01EF}]))*)|(\\\\.(\\\\g|\\\\g|\\\\.)+))(?=\\\\.|;|$|//|/\\\\*|\\\\s)","name":"entity.name.type.swift"},{"match":"\\\\.","name":"punctuation.separator.import.swift"},{"begin":"(?!\\\\s*(;|$|//|/\\\\*))","end":"(?=\\\\s*(;|$|//|/\\\\*))","name":"invalid.illegal.character-not-allowed-here.swift"}]}]},"declarations-inheritance-clause":{"begin":"(:)(?=\\\\s*\\\\{)|(:)\\\\s*","beginCaptures":{"1":{"name":"invalid.illegal.empty-inheritance-clause.swift"},"2":{"name":"punctuation.separator.inheritance-clause.swift"}},"end":"(?!\\\\G)$|(?=[={}]|(?!\\\\G)\\\\bwhere\\\\b)","name":"meta.inheritance-clause.swift","patterns":[{"begin":"\\\\bclass\\\\b","beginCaptures":{"0":{"name":"storage.type.class.swift"}},"end":"(?=[={}]|(?!\\\\G)\\\\bwhere\\\\b)","patterns":[{"include":"#comments"},{"include":"#declarations-inheritance-clause-more-types"}]},{"begin":"\\\\G","end":"(?!\\\\G)$|(?=[={}]|(?!\\\\G)\\\\bwhere\\\\b)","patterns":[{"include":"#comments"},{"include":"#declarations-inheritance-clause-inherited-type"},{"include":"#declarations-inheritance-clause-more-types"},{"include":"#declarations-type-operators"}]}]},"declarations-inheritance-clause-inherited-type":{"begin":"(?=[`\\\\p{L}_])","end":"(?!\\\\G)","name":"entity.other.inherited-class.swift","patterns":[{"include":"#declarations-type-identifier"}]},"declarations-inheritance-clause-more-types":{"begin":",\\\\s*","end":"(?!\\\\G)(?!//|/\\\\*)|(?=[,={}]|(?!\\\\G)\\\\bwhere\\\\b)","name":"meta.inheritance-list.more-types","patterns":[{"include":"#comments"},{"include":"#declarations-inheritance-clause-inherited-type"},{"include":"#declarations-inheritance-clause-more-types"},{"include":"#declarations-type-operators"}]},"declarations-macro":{"begin":"\\\\b(macro)\\\\s+((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))\\\\s*(?=\\\\(|<|=)","beginCaptures":{"1":{"name":"storage.type.function.swift"},"2":{"name":"entity.name.function.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}},"end":"$|(?=;|//|/\\\\*|\\\\}|=)","name":"meta.definition.macro.swift","patterns":[{"include":"#comments"},{"include":"#declarations-generic-parameter-clause"},{"include":"#declarations-parameter-clause"},{"include":"#declarations-function-result"},{"include":"#async-throws"},{"include":"#declarations-generic-where-clause"}]},"declarations-operator":{"begin":"(?:\\\\b(prefix|infix|postfix)\\\\s+)?\\\\b(operator)\\\\s+(((?[/=\\\\-+!*%<>&|^~?]|[\\\\x{00A1}-\\\\x{00A7}]|[\\\\x{00A9}\\\\x{00AB}]|[\\\\x{00AC}\\\\x{00AE}]|[\\\\x{00B0}-\\\\x{00B1}\\\\x{00B6}\\\\x{00BB}\\\\x{00BF}\\\\x{00D7}\\\\x{00F7}]|[\\\\x{2016}-\\\\x{2017}\\\\x{2020}-\\\\x{2027}]|[\\\\x{2030}-\\\\x{203E}]|[\\\\x{2041}-\\\\x{2053}]|[\\\\x{2055}-\\\\x{205E}]|[\\\\x{2190}-\\\\x{23FF}]|[\\\\x{2500}-\\\\x{2775}]|[\\\\x{2794}-\\\\x{2BFF}]|[\\\\x{2E00}-\\\\x{2E7F}]|[\\\\x{3001}-\\\\x{3003}]|[\\\\x{3008}-\\\\x{3030}])(\\\\g|\\\\.|(?[\\\\x{0300}-\\\\x{036F}]|[\\\\x{1DC0}-\\\\x{1DFF}]|[\\\\x{20D0}-\\\\x{20FF}]|[\\\\x{FE00}-\\\\x{FE0F}]|[\\\\x{FE20}-\\\\x{FE2F}]|[\\\\x{E0100}-\\\\x{E01EF}]))*+)|(\\\\.(\\\\g|\\\\g|\\\\.)++))\\\\s*","beginCaptures":{"1":{"name":"storage.modifier.swift"},"2":{"name":"storage.type.function.operator.swift"},"3":{"name":"entity.name.function.operator.swift"},"4":{"name":"entity.name.function.operator.swift","patterns":[{"match":"\\\\.","name":"invalid.illegal.dot-not-allowed-here.swift"}]}},"end":"(;)|$\\\\n?|(?=//|/\\\\*)","endCaptures":{"1":{"name":"punctuation.terminator.statement.swift"}},"name":"meta.definition.operator.swift","patterns":[{"include":"#declarations-operator-swift2"},{"include":"#declarations-operator-swift3"},{"match":"((?!$|;|//|/\\\\*)\\\\S)+","name":"invalid.illegal.character-not-allowed-here.swift"}]},"declarations-operator-swift2":{"begin":"\\\\G(\\\\{)","beginCaptures":{"1":{"name":"punctuation.definition.operator.begin.swift"}},"end":"(\\\\})","endCaptures":{"1":{"name":"punctuation.definition.operator.end.swift"}},"patterns":[{"include":"#comments"},{"captures":{"1":{"name":"storage.modifier.swift"},"2":{"name":"keyword.other.operator.associativity.swift"}},"match":"\\\\b(associativity)\\\\s+(left|right)\\\\b"},{"captures":{"1":{"name":"storage.modifier.swift"},"2":{"name":"constant.numeric.integer.swift"}},"match":"\\\\b(precedence)\\\\s+([0-9]+)\\\\b"},{"captures":{"1":{"name":"storage.modifier.swift"}},"match":"\\\\b(assignment)\\\\b"}]},"declarations-operator-swift3":{"captures":{"2":{"name":"entity.other.inherited-class.swift","patterns":[{"include":"#declarations-types-precedencegroup"}]},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}},"match":"\\\\G(:)\\\\s*((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))"},"declarations-parameter-clause":{"begin":"(\\\\()","beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.swift"}},"end":"(\\\\))(?:\\\\s*(async)\\\\b)?","endCaptures":{"1":{"name":"punctuation.definition.parameters.end.swift"},"2":{"name":"storage.modifier.async.swift"}},"name":"meta.parameter-clause.swift","patterns":[{"include":"#declarations-parameter-list"}]},"declarations-parameter-list":{"patterns":[{"captures":{"1":{"name":"entity.name.function.swift"},"2":{"name":"punctuation.definition.identifier.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"variable.parameter.function.swift"},"5":{"name":"punctuation.definition.identifier.swift"},"6":{"name":"punctuation.definition.identifier.swift"}},"match":"((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))\\\\s+((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))(?=\\\\s*:)"},{"captures":{"1":{"name":"variable.parameter.function.swift"},"2":{"name":"entity.name.function.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}},"match":"(((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k)))(?=\\\\s*:)"},{"begin":":\\\\s*(?!\\\\s)","end":"(?=[,)])","patterns":[{"include":"#declarations-available-types"},{"match":":","name":"invalid.illegal.extra-colon-in-parameter-list.swift"},{"begin":"=","beginCaptures":{"0":{"name":"keyword.operator.assignment.swift"}},"end":"(?=[,)])","patterns":[{"include":"#expressions"}]}]}]},"declarations-precedencegroup":{"begin":"\\\\b(precedencegroup)\\\\s+((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))\\\\s*(?=\\\\{)","beginCaptures":{"1":{"name":"storage.type.precedencegroup.swift"},"2":{"name":"entity.name.type.precedencegroup.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}},"end":"(?!\\\\G)","name":"meta.definition.precedencegroup.swift","patterns":[{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.precedencegroup.begin.swift"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.precedencegroup.end.swift"}},"patterns":[{"include":"#comments"},{"captures":{"1":{"name":"storage.modifier.swift"},"2":{"name":"entity.other.inherited-class.swift","patterns":[{"include":"#declarations-types-precedencegroup"}]},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}},"match":"\\\\b(higherThan|lowerThan)\\\\s*:\\\\s*((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))"},{"captures":{"1":{"name":"storage.modifier.swift"},"2":{"name":"keyword.other.operator.associativity.swift"}},"match":"\\\\b(associativity)\\\\b(?:\\\\s*:\\\\s*(right|left|none)\\\\b)?"},{"captures":{"1":{"name":"storage.modifier.swift"},"2":{"name":"constant.language.boolean.swift"}},"match":"\\\\b(assignment)\\\\b(?:\\\\s*:\\\\s*(true|false)\\\\b)?"}]}]},"declarations-protocol":{"begin":"\\\\b(protocol)\\\\s+((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))","beginCaptures":{"1":{"name":"storage.type.$1.swift"},"2":{"name":"entity.name.type.$1.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}},"end":"(?<=\\\\})","name":"meta.definition.type.protocol.swift","patterns":[{"include":"#comments"},{"include":"#declarations-inheritance-clause"},{"include":"#declarations-generic-where-clause"},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.type.begin.swift"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.type.end.swift"}},"name":"meta.definition.type.body.swift","patterns":[{"include":"#declarations-protocol-protocol-method"},{"include":"#declarations-protocol-protocol-initializer"},{"include":"#declarations-protocol-associated-type"},{"include":"$self"}]}]},"declarations-protocol-associated-type":{"begin":"\\\\b(associatedtype)\\\\s+((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))\\\\s*","beginCaptures":{"1":{"name":"keyword.other.declaration-specifier.swift"},"2":{"name":"variable.language.associatedtype.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}},"end":"(?!\\\\G)$|(?=[;}]|$)","name":"meta.definition.associatedtype.swift","patterns":[{"include":"#declarations-inheritance-clause"},{"include":"#declarations-generic-where-clause"},{"include":"#declarations-typealias-assignment"}]},"declarations-protocol-protocol-initializer":{"begin":"(?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k)|(?:((?[/=\\\\-+!*%<>&|^~?]|[\\\\x{00A1}-\\\\x{00A7}]|[\\\\x{00A9}\\\\x{00AB}]|[\\\\x{00AC}\\\\x{00AE}]|[\\\\x{00B0}-\\\\x{00B1}\\\\x{00B6}\\\\x{00BB}\\\\x{00BF}\\\\x{00D7}\\\\x{00F7}]|[\\\\x{2016}-\\\\x{2017}\\\\x{2020}-\\\\x{2027}]|[\\\\x{2030}-\\\\x{203E}]|[\\\\x{2041}-\\\\x{2053}]|[\\\\x{2055}-\\\\x{205E}]|[\\\\x{2190}-\\\\x{23FF}]|[\\\\x{2500}-\\\\x{2775}]|[\\\\x{2794}-\\\\x{2BFF}]|[\\\\x{2E00}-\\\\x{2E7F}]|[\\\\x{3001}-\\\\x{3003}]|[\\\\x{3008}-\\\\x{3030}])(\\\\g|(?[\\\\x{0300}-\\\\x{036F}]|[\\\\x{1DC0}-\\\\x{1DFF}]|[\\\\x{20D0}-\\\\x{20FF}]|[\\\\x{FE00}-\\\\x{FE0F}]|[\\\\x{FE20}-\\\\x{FE2F}]|[\\\\x{E0100}-\\\\x{E01EF}]))*)|(\\\\.(\\\\g|\\\\g|\\\\.)+)))\\\\s*(?=\\\\(|<)","beginCaptures":{"1":{"name":"storage.type.function.swift"},"2":{"name":"entity.name.function.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}},"end":"$|(?=;|//|/\\\\*|\\\\})","name":"meta.definition.function.swift","patterns":[{"include":"#comments"},{"include":"#declarations-generic-parameter-clause"},{"include":"#declarations-parameter-clause"},{"include":"#declarations-function-result"},{"include":"#async-throws"},{"include":"#declarations-generic-where-clause"},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.function.begin.swift"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.section.function.end.swift"}},"name":"invalid.illegal.function-body-not-allowed-in-protocol.swift","patterns":[{"include":"$self"}]}]},"declarations-type":{"patterns":[{"begin":"\\\\b(class(?!\\\\s+(?:func|var|let)\\\\b)|struct|actor)\\\\b\\\\s*((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))","beginCaptures":{"1":{"name":"storage.type.$1.swift"},"2":{"name":"entity.name.type.$1.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}},"end":"(?<=\\\\})","name":"meta.definition.type.$1.swift","patterns":[{"include":"#comments"},{"include":"#declarations-generic-parameter-clause"},{"include":"#declarations-generic-where-clause"},{"include":"#declarations-inheritance-clause"},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.type.begin.swift"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.type.end.swift"}},"name":"meta.definition.type.body.swift","patterns":[{"include":"$self"}]}]},{"include":"#declarations-type-enum"}]},"declarations-type-enum":{"begin":"\\\\b(enum)\\\\s+((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))","beginCaptures":{"1":{"name":"storage.type.$1.swift"},"2":{"name":"entity.name.type.$1.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}},"end":"(?<=\\\\})","name":"meta.definition.type.$1.swift","patterns":[{"include":"#comments"},{"include":"#declarations-generic-parameter-clause"},{"include":"#declarations-generic-where-clause"},{"include":"#declarations-inheritance-clause"},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.type.begin.swift"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.type.end.swift"}},"name":"meta.definition.type.body.swift","patterns":[{"include":"#declarations-type-enum-enum-case-clause"},{"include":"$self"}]}]},"declarations-type-enum-associated-values":{"begin":"\\\\G\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.swift"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.swift"}},"patterns":[{"include":"#comments"},{"begin":"(?:(_)|((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*\\\\k))\\\\s+(((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*\\\\k))\\\\s*(:)","beginCaptures":{"1":{"name":"entity.name.function.swift"},"2":{"name":"invalid.illegal.distinct-labels-not-allowed.swift"},"5":{"name":"variable.parameter.function.swift"},"7":{"name":"punctuation.separator.argument-label.swift"}},"end":"(?=[,)\\\\]])","patterns":[{"include":"#declarations-available-types"}]},{"begin":"(((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*\\\\k))\\\\s*(:)","beginCaptures":{"1":{"name":"entity.name.function.swift"},"2":{"name":"variable.parameter.function.swift"},"4":{"name":"punctuation.separator.argument-label.swift"}},"end":"(?=[,)\\\\]])","patterns":[{"include":"#declarations-available-types"}]},{"begin":"(?![,)\\\\]])(?=\\\\S)","end":"(?=[,)\\\\]])","patterns":[{"include":"#declarations-available-types"},{"match":":","name":"invalid.illegal.extra-colon-in-parameter-list.swift"}]}]},"declarations-type-enum-enum-case":{"begin":"((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))\\\\s*","beginCaptures":{"1":{"name":"variable.other.enummember.swift"}},"end":"(?<=\\\\))|(?![=(])","patterns":[{"include":"#comments"},{"include":"#declarations-type-enum-associated-values"},{"include":"#declarations-type-enum-raw-value-assignment"}]},"declarations-type-enum-enum-case-clause":{"begin":"\\\\b(case)\\\\b\\\\s*","beginCaptures":{"1":{"name":"storage.type.enum.case.swift"}},"end":"(?=[;}])|(?!\\\\G)(?!//|/\\\\*)(?=[^\\\\s,])","patterns":[{"include":"#comments"},{"include":"#declarations-type-enum-enum-case"},{"include":"#declarations-type-enum-more-cases"}]},"declarations-type-enum-more-cases":{"begin":",\\\\s*","end":"(?!\\\\G)(?!//|/\\\\*)(?=[;}]|[^\\\\s,])","name":"meta.enum-case.more-cases","patterns":[{"include":"#comments"},{"include":"#declarations-type-enum-enum-case"},{"include":"#declarations-type-enum-more-cases"}]},"declarations-type-enum-raw-value-assignment":{"begin":"(=)\\\\s*","beginCaptures":{"1":{"name":"keyword.operator.assignment.swift"}},"end":"(?!\\\\G)","patterns":[{"include":"#comments"},{"include":"#literals"}]},"declarations-type-identifier":{"begin":"((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))\\\\s*","beginCaptures":{"1":{"name":"meta.type-name.swift","patterns":[{"include":"#builtin-types"}]},"2":{"name":"punctuation.definition.identifier.swift"},"3":{"name":"punctuation.definition.identifier.swift"}},"end":"(?!<)","patterns":[{"begin":"(?=<)","end":"(?!\\\\G)","patterns":[{"include":"#declarations-generic-argument-clause"}]}]},"declarations-type-operators":{"patterns":[{"captures":{"1":{"name":"keyword.operator.type.composition.swift"}},"match":"(?&|\\\\^~.])(&)(?![/=\\\\-+!*%<>&|\\\\^~.])"},{"captures":{"1":{"name":"keyword.operator.type.requirement-suppression.swift"}},"match":"(?&|\\\\^~.])(~)(?![/=\\\\-+!*%<>&|\\\\^~.])"}]},"declarations-typealias":{"begin":"\\\\b(typealias)\\\\s+((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))\\\\s*","beginCaptures":{"1":{"name":"keyword.other.declaration-specifier.swift"},"2":{"name":"entity.name.type.typealias.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.identifier.swift"}},"end":"(?!\\\\G)$|(?=;|//|/\\\\*|$)","name":"meta.definition.typealias.swift","patterns":[{"begin":"\\\\G(?=<)","end":"(?!\\\\G)","patterns":[{"include":"#declarations-generic-parameter-clause"}]},{"include":"#declarations-typealias-assignment"}]},"declarations-typealias-assignment":{"begin":"(=)\\\\s*","beginCaptures":{"1":{"name":"keyword.operator.assignment.swift"}},"end":"(?!\\\\G)$|(?=;|//|/\\\\*|$)","patterns":[{"include":"#declarations-available-types"}]},"declarations-typed-variable-declaration":{"begin":"\\\\b(?:(async)\\\\s+)?(let|var)\\\\b\\\\s+(?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k)\\\\s*:","beginCaptures":{"1":{"name":"storage.modifier.async.swift"},"2":{"name":"keyword.other.declaration-specifier.swift"}},"end":"(?=$|[={])","patterns":[{"include":"#declarations-available-types"}]},"declarations-types-precedencegroup":{"patterns":[{"match":"\\\\b(?:BitwiseShift|Assignment|RangeFormation|Casting|Addition|NilCoalescing|Comparison|LogicalConjunction|LogicalDisjunction|Default|Ternary|Multiplication|FunctionArrow)Precedence\\\\b","name":"support.type.swift"}]},"expressions":{"patterns":[{"include":"#expressions-without-trailing-closures-or-member-references"},{"include":"#expressions-trailing-closure"},{"include":"#member-reference"}]},"expressions-trailing-closure":{"patterns":[{"captures":{"1":{"name":"support.function.any-method.swift"},"2":{"name":"punctuation.definition.identifier.swift"},"3":{"name":"punctuation.definition.identifier.swift"}},"match":"(#?(?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))(?=\\\\s*\\\\{)","name":"meta.function-call.trailing-closure-only.swift"},{"captures":{"1":{"name":"support.function.any-method.trailing-closure-label.swift"},"2":{"name":"punctuation.definition.identifier.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.separator.argument-label.swift"}},"match":"((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))\\\\s*(:)(?=\\\\s*\\\\{)"}]},"expressions-without-trailing-closures":{"patterns":[{"include":"#expressions-without-trailing-closures-or-member-references"},{"include":"#member-references"}]},"expressions-without-trailing-closures-or-member-references":{"patterns":[{"include":"#comments"},{"include":"#code-block"},{"include":"#attributes"},{"include":"#expressions-without-trailing-closures-or-member-references-closure-parameter"},{"include":"#literals"},{"include":"#operators"},{"include":"#builtin-types"},{"include":"#builtin-functions"},{"include":"#builtin-global-functions"},{"include":"#builtin-properties"},{"include":"#expressions-without-trailing-closures-or-member-references-compound-name"},{"include":"#conditionals"},{"include":"#keywords"},{"include":"#expressions-without-trailing-closures-or-member-references-availability-condition"},{"include":"#expressions-without-trailing-closures-or-member-references-function-or-macro-call-expression"},{"include":"#expressions-without-trailing-closures-or-member-references-macro-expansion"},{"include":"#expressions-without-trailing-closures-or-member-references-subscript-expression"},{"include":"#expressions-without-trailing-closures-or-member-references-parenthesized-expression"},{"match":"\\\\b_\\\\b","name":"support.variable.discard-value.swift"}]},"expressions-without-trailing-closures-or-member-references-availability-condition":{"begin":"\\\\B(#(?:un)?available)(\\\\()","beginCaptures":{"1":{"name":"support.function.availability-condition.swift"},"2":{"name":"punctuation.definition.arguments.begin.swift"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}},"patterns":[{"captures":{"1":{"name":"keyword.other.platform.os.swift"},"2":{"name":"constant.numeric.swift"}},"match":"\\\\s*\\\\b((?:iOS|macOS|OSX|watchOS|tvOS|visionOS|UIKitForMac)(?:ApplicationExtension)?)\\\\b(?:\\\\s+([0-9]+(?:\\\\.[0-9]+)*\\\\b))"},{"captures":{"1":{"name":"keyword.other.platform.all.swift"},"2":{"name":"invalid.illegal.character-not-allowed-here.swift"}},"match":"(\\\\*)\\\\s*(.*?)(?=[,)])"},{"match":"[^\\\\s,)]+","name":"invalid.illegal.character-not-allowed-here.swift"}]},"expressions-without-trailing-closures-or-member-references-closure-parameter":{"match":"\\\\$[0-9]+","name":"variable.language.closure-parameter.swift"},"expressions-without-trailing-closures-or-member-references-compound-name":{"captures":{"1":{"name":"entity.name.function.compound-name.swift"},"2":{"name":"punctuation.definition.entity.swift"},"3":{"name":"punctuation.definition.entity.swift"},"4":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.entity.swift"},"2":{"name":"punctuation.definition.entity.swift"}},"match":"(?`?)(?!_:)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k):","name":"entity.name.function.compound-name.swift"}]}},"match":"((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))\\\\(((((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k)):)+)\\\\)"},"expressions-without-trailing-closures-or-member-references-expression-element-list":{"patterns":[{"include":"#comments"},{"begin":"((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))\\\\s*(:)","beginCaptures":{"1":{"name":"support.function.any-method.swift"},"2":{"name":"punctuation.definition.identifier.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.separator.argument-label.swift"}},"end":"(?=[,)\\\\]])","patterns":[{"include":"#expressions"}]},{"begin":"(?![,)\\\\]])(?=\\\\S)","end":"(?=[,)\\\\]])","patterns":[{"include":"#expressions"}]}]},"expressions-without-trailing-closures-or-member-references-function-or-macro-call-expression":{"patterns":[{"begin":"(#?(?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))\\\\s*(\\\\()","beginCaptures":{"1":{"name":"support.function.any-method.swift"},"2":{"name":"punctuation.definition.identifier.swift"},"3":{"name":"punctuation.definition.identifier.swift"},"4":{"name":"punctuation.definition.arguments.begin.swift"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}},"name":"meta.function-call.swift","patterns":[{"include":"#expressions-without-trailing-closures-or-member-references-expression-element-list"}]},{"begin":"(?<=[`\\\\])}>\\\\p{L}_\\\\p{N}\\\\p{M}])\\\\s*(\\\\()","beginCaptures":{"1":{"name":"punctuation.definition.arguments.begin.swift"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}},"name":"meta.function-call.swift","patterns":[{"include":"#expressions-without-trailing-closures-or-member-references-expression-element-list"}]}]},"expressions-without-trailing-closures-or-member-references-macro-expansion":{"match":"(#(?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))","name":"support.function.any-method.swift"},"expressions-without-trailing-closures-or-member-references-parenthesized-expression":{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.section.tuple.begin.swift"}},"end":"(\\\\))\\\\s*((?:\\\\b(?:async|throws|rethrows)\\\\s)*)","endCaptures":{"1":{"name":"punctuation.section.tuple.end.swift"},"2":{"patterns":[{"match":"\\\\brethrows\\\\b","name":"invalid.illegal.rethrows-only-allowed-on-function-declarations.swift"},{"include":"#async-throws"}]}},"patterns":[{"include":"#expressions-without-trailing-closures-or-member-references-expression-element-list"}]},"expressions-without-trailing-closures-or-member-references-subscript-expression":{"begin":"(?<=[`\\\\p{L}_\\\\p{N}\\\\p{M}])\\\\s*(\\\\[)","beginCaptures":{"1":{"name":"punctuation.definition.arguments.begin.swift"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.arguments.end.swift"}},"name":"meta.subscript-expression.swift","patterns":[{"include":"#expressions-without-trailing-closures-or-member-references-expression-element-list"}]},"keywords":{"patterns":[{"match":"(?(?>(?:\\\\\\\\Q(?:(?!\\\\\\\\E)(?!/\\\\2).)*+(?:\\\\\\\\E|(?(3)|(?(\\\\{(?:\\\\g<-1>|(?!{).*?)\\\\}))(?:\\\\[(?!\\\\d)\\\\w+\\\\])?[X<>]?\\\\)|(?\\\\[(?:\\\\\\\\.|[^\\\\[\\\\]]|\\\\g)+\\\\])|\\\\(\\\\g?+\\\\)|(?:(?!/\\\\2)[^()\\\\[\\\\\\\\])+)+))?+(?(3)|(?(5)(?)"},{"captures":{"1":{"name":"constant.character.escape.backslash.regexp"},"2":{"name":"variable.other.group-name.regexp"},"3":{"name":"keyword.operator.recursion-level.regexp"},"4":{"name":"constant.numeric.integer.decimal.regexp"},"5":{"name":"constant.numeric.integer.decimal.regexp"},"6":{"name":"keyword.operator.recursion-level.regexp"},"7":{"name":"constant.numeric.integer.decimal.regexp"},"8":{"name":"constant.character.escape.backslash.regexp"}},"match":"(\\\\\\\\[gk]\')(?:((?!\\\\d)\\\\w+)(?:([+-])(\\\\d+))?|([+-]?\\\\d+)(?:([+-])(\\\\d+))?)(\')"},{"captures":{"1":{"name":"constant.character.escape.backslash.regexp"},"2":{"name":"variable.other.group-name.regexp"},"3":{"name":"keyword.operator.recursion-level.regexp"},"4":{"name":"constant.numeric.integer.decimal.regexp"},"5":{"name":"constant.character.escape.backslash.regexp"}},"match":"(\\\\\\\\k\\\\{)((?!\\\\d)\\\\w+)(?:([+-])(\\\\d+))?(\\\\})"},{"match":"\\\\\\\\[1-9][0-9]+","name":"keyword.other.back-reference.regexp"},{"captures":{"1":{"name":"keyword.other.back-reference.regexp"},"2":{"name":"variable.other.group-name.regexp"},"3":{"name":"keyword.operator.recursion-level.regexp"},"4":{"name":"constant.numeric.integer.decimal.regexp"},"5":{"name":"keyword.other.back-reference.regexp"}},"match":"(\\\\(\\\\?(?:P[=>]|&))((?!\\\\d)\\\\w+)(?:([+-])(\\\\d+))?(\\\\))"},{"match":"\\\\(\\\\?R\\\\)","name":"keyword.other.back-reference.regexp"},{"captures":{"1":{"name":"keyword.other.back-reference.regexp"},"2":{"name":"constant.numeric.integer.decimal.regexp"},"3":{"name":"keyword.operator.recursion-level.regexp"},"4":{"name":"constant.numeric.integer.decimal.regexp"},"5":{"name":"keyword.other.back-reference.regexp"}},"match":"(\\\\(\\\\?)([+-]?\\\\d+)(?:([+-])(\\\\d+))?(\\\\))"}]},"literals-regular-expression-literal-backtracking-directive-or-global-matching-option":{"captures":{"1":{"name":"keyword.control.directive.regexp"},"2":{"name":"keyword.control.directive.regexp"},"3":{"name":"keyword.control.directive.regexp"},"4":{"name":"variable.language.tag.regexp"},"5":{"name":"keyword.control.directive.regexp"},"6":{"name":"keyword.operator.assignment.regexp"},"7":{"name":"constant.numeric.integer.decimal.regexp"},"8":{"name":"keyword.control.directive.regexp"},"9":{"name":"keyword.control.directive.regexp"}},"match":"(\\\\(\\\\*)(?:(ACCEPT|FAIL|F|MARK(?=:)|(?=:)|COMMIT|PRUNE|SKIP|THEN)(?:(:)([^)]+))?|(?:(LIMIT_(?:DEPTH|HEAP|MATCH))(=)(\\\\d+))|(CRLF|CR|ANYCRLF|ANY|LF|NUL|BSR_ANYCRLF|BSR_UNICODE|NOTEMPTY_ATSTART|NOTEMPTY|NO_AUTO_POSSESS|NO_DOTSTAR_ANCHOR|NO_JIT|NO_START_OPT|UTF|UCP))(\\\\))"},"literals-regular-expression-literal-callout":{"captures":{"1":{"name":"punctuation.definition.group.regexp"},"2":{"name":"keyword.control.callout.regexp"},"3":{"name":"constant.numeric.integer.decimal.regexp"},"4":{"name":"entity.name.function.callout.regexp"},"5":{"name":"entity.name.function.callout.regexp"},"6":{"name":"entity.name.function.callout.regexp"},"7":{"name":"entity.name.function.callout.regexp"},"8":{"name":"entity.name.function.callout.regexp"},"9":{"name":"entity.name.function.callout.regexp"},"10":{"name":"entity.name.function.callout.regexp"},"11":{"name":"entity.name.function.callout.regexp"},"12":{"name":"punctuation.definition.group.regexp"},"13":{"name":"punctuation.definition.group.regexp"},"14":{"name":"keyword.control.callout.regexp"},"15":{"name":"entity.name.function.callout.regexp"},"16":{"name":"variable.language.tag-name.regexp"},"17":{"name":"punctuation.definition.group.regexp"},"18":{"name":"punctuation.definition.group.regexp"},"19":{"name":"keyword.control.callout.regexp"},"21":{"name":"variable.language.tag-name.regexp"},"22":{"name":"keyword.control.callout.regexp"},"23":{"name":"punctuation.definition.group.regexp"}},"match":"(\\\\()(?\\\\?C)(?:(?\\\\d+)|`(?(?:[^`]|``)*)`|\'(?(?:[^\']|\'\')*)\'|\\"(?(?:[^\\"]|\\"\\")*)\\"|\\\\^(?(?:[^\\\\^]|\\\\^\\\\^)*)\\\\^|%(?(?:[^%]|%%)*)%|\\\\#(?(?:[^#]|\\\\#\\\\#)*)\\\\#|\\\\$(?(?:[^$]|\\\\$\\\\$)*)\\\\$|\\\\{(?(?:[^}]|\\\\}\\\\})*)\\\\})?(\\\\))|(\\\\()(?\\\\*)(?(?!\\\\d)\\\\w+)(?:\\\\[(?(?!\\\\d)\\\\w+)\\\\])?(?:\\\\{[^,}]+(?:,[^,}]+)*\\\\})?(\\\\))|(\\\\()(?\\\\?)(?>(\\\\{(?:\\\\g<-1>|(?!{).*?)\\\\}))(?:\\\\[(?(?!\\\\d)\\\\w+)\\\\])?(?[X<>]?)(\\\\))","name":"meta.callout.regexp"},"literals-regular-expression-literal-character-properties":{"captures":{"1":{"name":"support.variable.character-property.regexp"},"2":{"name":"punctuation.definition.character-class.regexp"},"3":{"name":"support.variable.character-property.regexp"},"4":{"name":"punctuation.definition.character-class.regexp"}},"match":"\\\\\\\\[pP]\\\\{([\\\\s\\\\w-]+(?:=[\\\\s\\\\w-]+)?)\\\\}|(\\\\[:)([\\\\s\\\\w-]+(?:=[\\\\s\\\\w-]+)?)(:\\\\])","name":"constant.other.character-class.set.regexp"},"literals-regular-expression-literal-custom-char-class":{"patterns":[{"begin":"(\\\\[)(\\\\^)?","beginCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"},"2":{"name":"keyword.operator.negation.regexp"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.character-class.regexp"}},"name":"constant.other.character-class.set.regexp","patterns":[{"include":"#literals-regular-expression-literal-custom-char-class-members"}]}]},"literals-regular-expression-literal-custom-char-class-members":{"patterns":[{"match":"\\\\\\\\b","name":"constant.character.escape.backslash.regexp"},{"include":"#literals-regular-expression-literal-custom-char-class"},{"include":"#literals-regular-expression-literal-quote"},{"include":"#literals-regular-expression-literal-set-operators"},{"include":"#literals-regular-expression-literal-unicode-scalars"},{"include":"#literals-regular-expression-literal-character-properties"}]},"literals-regular-expression-literal-group-option-toggle":{"match":"\\\\(\\\\?(?:\\\\^(?:[iJmnsUxwDPSW]|xx|y\\\\{[gw]\\\\})*|(?:[iJmnsUxwDPSW]|xx|y\\\\{[gw]\\\\})+|(?:[iJmnsUxwDPSW]|xx|y\\\\{[gw]\\\\})*-(?:[iJmnsUxwDPSW]|xx|y\\\\{[gw]\\\\})*)\\\\)","name":"keyword.other.option-toggle.regexp"},"literals-regular-expression-literal-group-or-conditional":{"patterns":[{"begin":"(\\\\()(\\\\?~)","beginCaptures":{"1":{"name":"punctuation.definition.group.regexp"},"2":{"name":"keyword.control.conditional.absent.regexp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.regexp"}},"name":"meta.group.absent.regexp","patterns":[{"include":"#literals-regular-expression-literal-regex-guts"}]},{"begin":"(\\\\()(?\\\\?\\\\()(?:(?(?[+-]?\\\\d+)(?:(?[+-])(?\\\\d+))?)|(?R)\\\\g?|(?R&)(?(?(?!\\\\d)\\\\w+)(?:(?[+-])(?\\\\d+))?)|(?<)(?:\\\\g|\\\\g)(?>)|(?\')(?:\\\\g|\\\\g)(?\')|(?DEFINE)|(?VERSION)(?>?=)(?\\\\d+\\\\.\\\\d+))(?\\\\))|(\\\\()(?\\\\?)(?=\\\\()","beginCaptures":{"1":{"name":"punctuation.definition.group.regexp"},"2":{"name":"keyword.control.conditional.regexp"},"4":{"name":"constant.numeric.integer.decimal.regexp"},"5":{"name":"keyword.operator.recursion-level.regexp"},"6":{"name":"constant.numeric.integer.decimal.regexp"},"7":{"name":"keyword.control.conditional.regexp"},"8":{"name":"keyword.control.conditional.regexp"},"10":{"name":"variable.other.group-name.regexp"},"11":{"name":"keyword.operator.recursion-level.regexp"},"12":{"name":"constant.numeric.integer.decimal.regexp"},"13":{"name":"keyword.control.conditional.regexp"},"14":{"name":"keyword.control.conditional.regexp"},"15":{"name":"keyword.control.conditional.regexp"},"16":{"name":"keyword.control.conditional.regexp"},"17":{"name":"keyword.control.conditional.regexp"},"18":{"name":"keyword.control.conditional.regexp"},"19":{"name":"keyword.operator.comparison.regexp"},"20":{"name":"constant.numeric.integer.decimal.regexp"},"21":{"name":"keyword.control.conditional.regexp"},"22":{"name":"punctuation.definition.group.regexp"},"23":{"name":"keyword.control.conditional.regexp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.regexp"}},"name":"meta.group.conditional.regexp","patterns":[{"include":"#literals-regular-expression-literal-regex-guts"}]},{"begin":"(\\\\()((\\\\?)(?:([:|>=!*]|<[=!*])|P?<(?:((?!\\\\d)\\\\w+)(-))?((?!\\\\d)\\\\w+)>|\'(?:((?!\\\\d)\\\\w+)(-))?((?!\\\\d)\\\\w+)\'|(?:\\\\^(?:[iJmnsUxwDPSW]|xx|y\\\\{[gw]\\\\})*|(?:[iJmnsUxwDPSW]|xx|y\\\\{[gw]\\\\})+|(?:[iJmnsUxwDPSW]|xx|y\\\\{[gw]\\\\})*-(?:[iJmnsUxwDPSW]|xx|y\\\\{[gw]\\\\})*):)|\\\\*(atomic|pla|positive_lookahead|nla|negative_lookahead|plb|positive_lookbehind|nlb|negative_lookbehind|napla|non_atomic_positive_lookahead|naplb|non_atomic_positive_lookbehind|sr|script_run|asr|atomic_script_run):)?+","beginCaptures":{"1":{"name":"punctuation.definition.group.regexp"},"2":{"name":"keyword.other.group-options.regexp"},"3":{"name":"punctuation.definition.group.regexp"},"4":{"name":"punctuation.definition.group.regexp"},"5":{"name":"variable.other.group-name.regexp"},"6":{"name":"keyword.operator.balancing-group.regexp"},"7":{"name":"variable.other.group-name.regexp"},"8":{"name":"variable.other.group-name.regexp"},"9":{"name":"keyword.operator.balancing-group.regexp"},"10":{"name":"variable.other.group-name.regexp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.regexp"}},"name":"meta.group.regexp","patterns":[{"include":"#literals-regular-expression-literal-regex-guts"}]}]},"literals-regular-expression-literal-line-comment":{"captures":{"1":{"name":"punctuation.definition.comment.regexp"}},"match":"(\\\\#).*$","name":"comment.line.regexp"},"literals-regular-expression-literal-quote":{"begin":"\\\\\\\\Q","beginCaptures":{"0":{"name":"constant.character.escape.backslash.regexp"}},"end":"\\\\\\\\E|(\\\\n)","endCaptures":{"0":{"name":"constant.character.escape.backslash.regexp"},"1":{"name":"invalid.illegal.returns-not-allowed.regexp"}},"name":"string.quoted.other.regexp.swift"},"literals-regular-expression-literal-regex-guts":{"patterns":[{"include":"#literals-regular-expression-literal-quote"},{"begin":"\\\\(\\\\?\\\\#","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.regexp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.comment.end.regexp"}},"name":"comment.block.regexp"},{"begin":"<\\\\{","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.regexp"}},"end":"\\\\}>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.regexp"}},"name":"meta.embedded.expression.regexp"},{"include":"#literals-regular-expression-literal-unicode-scalars"},{"include":"#literals-regular-expression-literal-character-properties"},{"match":"[$^]|\\\\\\\\[AbBGyYzZ]|\\\\\\\\K","name":"keyword.control.anchor.regexp"},{"include":"#literals-regular-expression-literal-backtracking-directive-or-global-matching-option"},{"include":"#literals-regular-expression-literal-callout"},{"include":"#literals-regular-expression-literal-backreference-or-subpattern"},{"match":"\\\\.|\\\\\\\\[CdDhHNORsSvVwWX]","name":"constant.character.character-class.regexp"},{"match":"\\\\\\\\c.","name":"constant.character.entity.control-character.regexp"},{"match":"\\\\\\\\[^c]","name":"constant.character.escape.backslash.regexp"},{"match":"\\\\|","name":"keyword.operator.or.regexp"},{"match":"[*+?]","name":"keyword.operator.quantifier.regexp"},{"match":"\\\\{\\\\s*\\\\d+\\\\s*(?:,\\\\s*\\\\d*\\\\s*)?\\\\}|\\\\{\\\\s*,\\\\s*\\\\d+\\\\s*\\\\}","name":"keyword.operator.quantifier.regexp"},{"include":"#literals-regular-expression-literal-custom-char-class"},{"include":"#literals-regular-expression-literal-group-option-toggle"},{"include":"#literals-regular-expression-literal-group-or-conditional"}]},"literals-regular-expression-literal-set-operators":{"patterns":[{"match":"&&","name":"keyword.operator.intersection.regexp.swift"},{"match":"--","name":"keyword.operator.subtraction.regexp.swift"},{"match":"\\\\~\\\\~","name":"keyword.operator.symmetric-difference.regexp.swift"}]},"literals-regular-expression-literal-unicode-scalars":{"match":"\\\\\\\\u\\\\{\\\\s*(?:[0-9a-fA-F]+\\\\s*)+\\\\}|\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\x\\\\{[0-9a-fA-F]+\\\\}|\\\\\\\\x[0-9a-fA-F]{0,2}|\\\\\\\\U[0-9a-fA-F]{8}|\\\\\\\\o\\\\{[0-7]+\\\\}|\\\\\\\\0[0-7]{0,3}|\\\\\\\\N\\\\{(?:U\\\\+[0-9a-fA-F]{1,8}|[\\\\s\\\\w-]+)\\\\}","name":"constant.character.numeric.regexp"},"literals-string":{"patterns":[{"begin":"\\"\\"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.swift"}},"end":"\\"\\"\\"(#*)","endCaptures":{"0":{"name":"punctuation.definition.string.end.swift"},"1":{"name":"invalid.illegal.extra-closing-delimiter.swift"}},"name":"string.quoted.double.block.swift","patterns":[{"match":"\\\\G.+(?=\\"\\"\\")|\\\\G.+","name":"invalid.illegal.content-after-opening-delimiter.swift"},{"match":"\\\\\\\\\\\\s*\\\\n","name":"constant.character.escape.newline.swift"},{"include":"#literals-string-string-guts"},{"match":"\\\\S((?!\\\\\\\\\\\\().)*(?=\\"\\"\\")","name":"invalid.illegal.content-before-closing-delimiter.swift"}]},{"begin":"#\\"\\"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.swift"}},"end":"\\"\\"\\"#(#*)","endCaptures":{"0":{"name":"punctuation.definition.string.end.swift"},"1":{"name":"invalid.illegal.extra-closing-delimiter.swift"}},"name":"string.quoted.double.block.raw.swift","patterns":[{"match":"\\\\G.+(?=\\"\\"\\")|\\\\G.+","name":"invalid.illegal.content-after-opening-delimiter.swift"},{"match":"\\\\\\\\#\\\\s*\\\\n","name":"constant.character.escape.newline.swift"},{"include":"#literals-string-raw-string-guts"},{"match":"\\\\S((?!\\\\\\\\#\\\\().)*(?=\\"\\"\\")","name":"invalid.illegal.content-before-closing-delimiter.swift"}]},{"begin":"(##+)\\"\\"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.swift"}},"end":"\\"\\"\\"\\\\1(#*)","endCaptures":{"0":{"name":"punctuation.definition.string.end.swift"},"1":{"name":"invalid.illegal.extra-closing-delimiter.swift"}},"name":"string.quoted.double.block.raw.swift","patterns":[{"match":"\\\\G.+(?=\\"\\"\\")|\\\\G.+","name":"invalid.illegal.content-after-opening-delimiter.swift"}]},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.swift"}},"end":"\\"(#*)","endCaptures":{"0":{"name":"punctuation.definition.string.end.swift"},"1":{"name":"invalid.illegal.extra-closing-delimiter.swift"}},"name":"string.quoted.double.single-line.swift","patterns":[{"match":"\\\\r|\\\\n","name":"invalid.illegal.returns-not-allowed.swift"},{"include":"#literals-string-string-guts"}]},{"begin":"(##+)\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.raw.swift"}},"end":"\\"\\\\1(#*)","endCaptures":{"0":{"name":"punctuation.definition.string.end.raw.swift"},"1":{"name":"invalid.illegal.extra-closing-delimiter.swift"}},"name":"string.quoted.double.single-line.raw.swift","patterns":[{"match":"\\\\r|\\\\n","name":"invalid.illegal.returns-not-allowed.swift"}]},{"begin":"#\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.raw.swift"}},"end":"\\"#(#*)","endCaptures":{"0":{"name":"punctuation.definition.string.end.raw.swift"},"1":{"name":"invalid.illegal.extra-closing-delimiter.swift"}},"name":"string.quoted.double.single-line.raw.swift","patterns":[{"match":"\\\\r|\\\\n","name":"invalid.illegal.returns-not-allowed.swift"},{"include":"#literals-string-raw-string-guts"}]}]},"literals-string-raw-string-guts":{"patterns":[{"match":"\\\\\\\\#[0\\\\\\\\tnr\\"\']","name":"constant.character.escape.swift"},{"match":"\\\\\\\\#u\\\\{[0-9a-fA-F]{1,8}\\\\}","name":"constant.character.escape.unicode.swift"},{"begin":"\\\\\\\\#\\\\(","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.swift"}},"contentName":"source.swift","end":"(\\\\))","endCaptures":{"0":{"name":"punctuation.section.embedded.end.swift"},"1":{"name":"source.swift"}},"name":"meta.embedded.line.swift","patterns":[{"include":"$self"},{"begin":"\\\\(","end":"\\\\)"}]},{"match":"\\\\\\\\#.","name":"invalid.illegal.escape-not-recognized"}]},"literals-string-string-guts":{"patterns":[{"match":"\\\\\\\\[0\\\\\\\\tnr\\"\']","name":"constant.character.escape.swift"},{"match":"\\\\\\\\u\\\\{[0-9a-fA-F]{1,8}\\\\}","name":"constant.character.escape.unicode.swift"},{"begin":"\\\\\\\\\\\\(","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.swift"}},"contentName":"source.swift","end":"(\\\\))","endCaptures":{"0":{"name":"punctuation.section.embedded.end.swift"},"1":{"name":"source.swift"}},"name":"meta.embedded.line.swift","patterns":[{"include":"$self"},{"begin":"\\\\(","end":"\\\\)"}]},{"match":"\\\\\\\\.","name":"invalid.illegal.escape-not-recognized"}]},"member-reference":{"patterns":[{"captures":{"1":{"name":"variable.other.swift"},"2":{"name":"punctuation.definition.identifier.swift"},"3":{"name":"punctuation.definition.identifier.swift"}},"match":"(?<=\\\\.)((?`?)[\\\\p{L}_][\\\\p{L}_\\\\p{N}\\\\p{M}]*(\\\\k))"}]},"operators":{"patterns":[{"match":"\\\\b(is\\\\b|as([!?]\\\\B|\\\\b))","name":"keyword.operator.type-casting.swift"},{"begin":"(?=(?[/=\\\\-+!*%<>&|^~?]|[\\\\x{00A1}-\\\\x{00A7}]|[\\\\x{00A9}\\\\x{00AB}]|[\\\\x{00AC}\\\\x{00AE}]|[\\\\x{00B0}-\\\\x{00B1}\\\\x{00B6}\\\\x{00BB}\\\\x{00BF}\\\\x{00D7}\\\\x{00F7}]|[\\\\x{2016}-\\\\x{2017}\\\\x{2020}-\\\\x{2027}]|[\\\\x{2030}-\\\\x{203E}]|[\\\\x{2041}-\\\\x{2053}]|[\\\\x{2055}-\\\\x{205E}]|[\\\\x{2190}-\\\\x{23FF}]|[\\\\x{2500}-\\\\x{2775}]|[\\\\x{2794}-\\\\x{2BFF}]|[\\\\x{2E00}-\\\\x{2E7F}]|[\\\\x{3001}-\\\\x{3003}]|[\\\\x{3008}-\\\\x{3030}])|\\\\.(\\\\g|\\\\.|[\\\\x{0300}-\\\\x{036F}]|[\\\\x{1DC0}-\\\\x{1DFF}]|[\\\\x{20D0}-\\\\x{20FF}]|[\\\\x{FE00}-\\\\x{FE0F}]|[\\\\x{FE20}-\\\\x{FE2F}]|[\\\\x{E0100}-\\\\x{E01EF}]))","end":"(?!\\\\G)","patterns":[{"captures":{"0":{"patterns":[{"match":"\\\\G(\\\\+\\\\+|\\\\-\\\\-)$","name":"keyword.operator.increment-or-decrement.swift"},{"match":"\\\\G(\\\\+|\\\\-)$","name":"keyword.operator.arithmetic.unary.swift"},{"match":"\\\\G!$","name":"keyword.operator.logical.not.swift"},{"match":"\\\\G~$","name":"keyword.operator.bitwise.not.swift"},{"match":".+","name":"keyword.operator.custom.prefix.swift"}]}},"match":"\\\\G(?<=^|[\\\\s(\\\\[{,;:])((?!(//|/\\\\*|\\\\*/))([/=\\\\-+!*%<>&|^~?]|[\\\\x{00A1}-\\\\x{00A7}]|[\\\\x{00A9}\\\\x{00AB}]|[\\\\x{00AC}\\\\x{00AE}]|[\\\\x{00B0}-\\\\x{00B1}\\\\x{00B6}\\\\x{00BB}\\\\x{00BF}\\\\x{00D7}\\\\x{00F7}]|[\\\\x{2016}-\\\\x{2017}\\\\x{2020}-\\\\x{2027}]|[\\\\x{2030}-\\\\x{203E}]|[\\\\x{2041}-\\\\x{2053}]|[\\\\x{2055}-\\\\x{205E}]|[\\\\x{2190}-\\\\x{23FF}]|[\\\\x{2500}-\\\\x{2775}]|[\\\\x{2794}-\\\\x{2BFF}]|[\\\\x{2E00}-\\\\x{2E7F}]|[\\\\x{3001}-\\\\x{3003}]|[\\\\x{3008}-\\\\x{3030}]|[\\\\x{0300}-\\\\x{036F}]|[\\\\x{1DC0}-\\\\x{1DFF}]|[\\\\x{20D0}-\\\\x{20FF}]|[\\\\x{FE00}-\\\\x{FE0F}]|[\\\\x{FE20}-\\\\x{FE2F}]|[\\\\x{E0100}-\\\\x{E01EF}]))++(?![\\\\s)\\\\]},;:]|\\\\z)"},{"captures":{"0":{"patterns":[{"match":"\\\\G(\\\\+\\\\+|\\\\-\\\\-)$","name":"keyword.operator.increment-or-decrement.swift"},{"match":"\\\\G!$","name":"keyword.operator.increment-or-decrement.swift"},{"match":".+","name":"keyword.operator.custom.postfix.swift"}]}},"match":"\\\\G(?&|^~?]|[\\\\x{00A1}-\\\\x{00A7}]|[\\\\x{00A9}\\\\x{00AB}]|[\\\\x{00AC}\\\\x{00AE}]|[\\\\x{00B0}-\\\\x{00B1}\\\\x{00B6}\\\\x{00BB}\\\\x{00BF}\\\\x{00D7}\\\\x{00F7}]|[\\\\x{2016}-\\\\x{2017}\\\\x{2020}-\\\\x{2027}]|[\\\\x{2030}-\\\\x{203E}]|[\\\\x{2041}-\\\\x{2053}]|[\\\\x{2055}-\\\\x{205E}]|[\\\\x{2190}-\\\\x{23FF}]|[\\\\x{2500}-\\\\x{2775}]|[\\\\x{2794}-\\\\x{2BFF}]|[\\\\x{2E00}-\\\\x{2E7F}]|[\\\\x{3001}-\\\\x{3003}]|[\\\\x{3008}-\\\\x{3030}]|[\\\\x{0300}-\\\\x{036F}]|[\\\\x{1DC0}-\\\\x{1DFF}]|[\\\\x{20D0}-\\\\x{20FF}]|[\\\\x{FE00}-\\\\x{FE0F}]|[\\\\x{FE20}-\\\\x{FE2F}]|[\\\\x{E0100}-\\\\x{E01EF}]))++(?=[\\\\s)\\\\]},;:]|\\\\z)"},{"captures":{"0":{"patterns":[{"match":"\\\\G=$","name":"keyword.operator.assignment.swift"},{"match":"\\\\G(\\\\+|\\\\-|\\\\*|/|%|<<|>>|&|\\\\^|\\\\||&&|\\\\|\\\\|)=$","name":"keyword.operator.assignment.compound.swift"},{"match":"\\\\G(\\\\+|\\\\-|\\\\*|/)$","name":"keyword.operator.arithmetic.swift"},{"match":"\\\\G&(\\\\+|\\\\-|\\\\*)$","name":"keyword.operator.arithmetic.overflow.swift"},{"match":"\\\\G%$","name":"keyword.operator.arithmetic.remainder.swift"},{"match":"\\\\G(==|!=|>|<|>=|<=|~=)$","name":"keyword.operator.comparison.swift"},{"match":"\\\\G\\\\?\\\\?$","name":"keyword.operator.coalescing.swift"},{"match":"\\\\G(&&|\\\\|\\\\|)$","name":"keyword.operator.logical.swift"},{"match":"\\\\G(&|\\\\||\\\\^|<<|>>)$","name":"keyword.operator.bitwise.swift"},{"match":"\\\\G(===|!==)$","name":"keyword.operator.bitwise.swift"},{"match":"\\\\G\\\\?$","name":"keyword.operator.ternary.swift"},{"match":".+","name":"keyword.operator.custom.infix.swift"}]}},"match":"\\\\G((?!(//|/\\\\*|\\\\*/))([/=\\\\-+!*%<>&|^~?]|[\\\\x{00A1}-\\\\x{00A7}]|[\\\\x{00A9}\\\\x{00AB}]|[\\\\x{00AC}\\\\x{00AE}]|[\\\\x{00B0}-\\\\x{00B1}\\\\x{00B6}\\\\x{00BB}\\\\x{00BF}\\\\x{00D7}\\\\x{00F7}]|[\\\\x{2016}-\\\\x{2017}\\\\x{2020}-\\\\x{2027}]|[\\\\x{2030}-\\\\x{203E}]|[\\\\x{2041}-\\\\x{2053}]|[\\\\x{2055}-\\\\x{205E}]|[\\\\x{2190}-\\\\x{23FF}]|[\\\\x{2500}-\\\\x{2775}]|[\\\\x{2794}-\\\\x{2BFF}]|[\\\\x{2E00}-\\\\x{2E7F}]|[\\\\x{3001}-\\\\x{3003}]|[\\\\x{3008}-\\\\x{3030}]|[\\\\x{0300}-\\\\x{036F}]|[\\\\x{1DC0}-\\\\x{1DFF}]|[\\\\x{20D0}-\\\\x{20FF}]|[\\\\x{FE00}-\\\\x{FE0F}]|[\\\\x{FE20}-\\\\x{FE2F}]|[\\\\x{E0100}-\\\\x{E01EF}]))++"},{"captures":{"0":{"patterns":[{"match":".+","name":"keyword.operator.custom.prefix.dot.swift"}]}},"match":"\\\\G(?<=^|[\\\\s(\\\\[{,;:])\\\\.((?!(//|/\\\\*|\\\\*/))(\\\\.|[/=\\\\-+!*%<>&|^~?]|[\\\\x{00A1}-\\\\x{00A7}]|[\\\\x{00A9}\\\\x{00AB}]|[\\\\x{00AC}\\\\x{00AE}]|[\\\\x{00B0}-\\\\x{00B1}\\\\x{00B6}\\\\x{00BB}\\\\x{00BF}\\\\x{00D7}\\\\x{00F7}]|[\\\\x{2016}-\\\\x{2017}\\\\x{2020}-\\\\x{2027}]|[\\\\x{2030}-\\\\x{203E}]|[\\\\x{2041}-\\\\x{2053}]|[\\\\x{2055}-\\\\x{205E}]|[\\\\x{2190}-\\\\x{23FF}]|[\\\\x{2500}-\\\\x{2775}]|[\\\\x{2794}-\\\\x{2BFF}]|[\\\\x{2E00}-\\\\x{2E7F}]|[\\\\x{3001}-\\\\x{3003}]|[\\\\x{3008}-\\\\x{3030}]|[\\\\x{0300}-\\\\x{036F}]|[\\\\x{1DC0}-\\\\x{1DFF}]|[\\\\x{20D0}-\\\\x{20FF}]|[\\\\x{FE00}-\\\\x{FE0F}]|[\\\\x{FE20}-\\\\x{FE2F}]|[\\\\x{E0100}-\\\\x{E01EF}]))++(?![\\\\s)\\\\]},;:]|\\\\z)"},{"captures":{"0":{"patterns":[{"match":".+","name":"keyword.operator.custom.postfix.dot.swift"}]}},"match":"\\\\G(?&|^~?]|[\\\\x{00A1}-\\\\x{00A7}]|[\\\\x{00A9}\\\\x{00AB}]|[\\\\x{00AC}\\\\x{00AE}]|[\\\\x{00B0}-\\\\x{00B1}\\\\x{00B6}\\\\x{00BB}\\\\x{00BF}\\\\x{00D7}\\\\x{00F7}]|[\\\\x{2016}-\\\\x{2017}\\\\x{2020}-\\\\x{2027}]|[\\\\x{2030}-\\\\x{203E}]|[\\\\x{2041}-\\\\x{2053}]|[\\\\x{2055}-\\\\x{205E}]|[\\\\x{2190}-\\\\x{23FF}]|[\\\\x{2500}-\\\\x{2775}]|[\\\\x{2794}-\\\\x{2BFF}]|[\\\\x{2E00}-\\\\x{2E7F}]|[\\\\x{3001}-\\\\x{3003}]|[\\\\x{3008}-\\\\x{3030}]|[\\\\x{0300}-\\\\x{036F}]|[\\\\x{1DC0}-\\\\x{1DFF}]|[\\\\x{20D0}-\\\\x{20FF}]|[\\\\x{FE00}-\\\\x{FE0F}]|[\\\\x{FE20}-\\\\x{FE2F}]|[\\\\x{E0100}-\\\\x{E01EF}]))++(?=[\\\\s)\\\\]},;:]|\\\\z)"},{"captures":{"0":{"patterns":[{"match":"\\\\G\\\\.\\\\.[.<]$","name":"keyword.operator.range.swift"},{"match":".+","name":"keyword.operator.custom.infix.dot.swift"}]}},"match":"\\\\G\\\\.((?!(//|/\\\\*|\\\\*/))(\\\\.|[/=\\\\-+!*%<>&|^~?]|[\\\\x{00A1}-\\\\x{00A7}]|[\\\\x{00A9}\\\\x{00AB}]|[\\\\x{00AC}\\\\x{00AE}]|[\\\\x{00B0}-\\\\x{00B1}\\\\x{00B6}\\\\x{00BB}\\\\x{00BF}\\\\x{00D7}\\\\x{00F7}]|[\\\\x{2016}-\\\\x{2017}\\\\x{2020}-\\\\x{2027}]|[\\\\x{2030}-\\\\x{203E}]|[\\\\x{2041}-\\\\x{2053}]|[\\\\x{2055}-\\\\x{205E}]|[\\\\x{2190}-\\\\x{23FF}]|[\\\\x{2500}-\\\\x{2775}]|[\\\\x{2794}-\\\\x{2BFF}]|[\\\\x{2E00}-\\\\x{2E7F}]|[\\\\x{3001}-\\\\x{3003}]|[\\\\x{3008}-\\\\x{3030}]|[\\\\x{0300}-\\\\x{036F}]|[\\\\x{1DC0}-\\\\x{1DFF}]|[\\\\x{20D0}-\\\\x{20FF}]|[\\\\x{FE00}-\\\\x{FE0F}]|[\\\\x{FE20}-\\\\x{FE2F}]|[\\\\x{E0100}-\\\\x{E01EF}]))++"}]},{"match":":","name":"keyword.operator.ternary.swift"}]},"root":{"patterns":[{"include":"#compiler-control"},{"include":"#declarations"},{"include":"#expressions"}]}},"scopeName":"source.swift"}')),t=[e];export{t as default}; ================================================ FILE: jesse/static/_nuxt/BTpWsGps.js ================================================ /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var e={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},n={defaultToken:"",tokenPostfix:".ini",escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^\[[^\]]*\]/,"metatag"],[/(^\w+)(\s*)(\=)/,["key","","delimiter"]],{include:"@whitespace"},[/\d+/,"number"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],whitespace:[[/[ \t\r\n]+/,""],[/^\s*[#;].*$/,"comment"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}};export{e as conf,n as language}; ================================================ FILE: jesse/static/_nuxt/BUEGK8hf.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"Objective-C++","name":"objective-cpp","patterns":[{"include":"#cpp_lang"},{"include":"#anonymous_pattern_1"},{"include":"#anonymous_pattern_2"},{"include":"#anonymous_pattern_3"},{"include":"#anonymous_pattern_4"},{"include":"#anonymous_pattern_5"},{"include":"#apple_foundation_functional_macros"},{"include":"#anonymous_pattern_7"},{"include":"#anonymous_pattern_8"},{"include":"#anonymous_pattern_9"},{"include":"#anonymous_pattern_10"},{"include":"#anonymous_pattern_11"},{"include":"#anonymous_pattern_12"},{"include":"#anonymous_pattern_13"},{"include":"#anonymous_pattern_14"},{"include":"#anonymous_pattern_15"},{"include":"#anonymous_pattern_16"},{"include":"#anonymous_pattern_17"},{"include":"#anonymous_pattern_18"},{"include":"#anonymous_pattern_19"},{"include":"#anonymous_pattern_20"},{"include":"#anonymous_pattern_21"},{"include":"#anonymous_pattern_22"},{"include":"#anonymous_pattern_23"},{"include":"#anonymous_pattern_24"},{"include":"#anonymous_pattern_25"},{"include":"#anonymous_pattern_26"},{"include":"#anonymous_pattern_27"},{"include":"#anonymous_pattern_28"},{"include":"#anonymous_pattern_29"},{"include":"#anonymous_pattern_30"},{"include":"#bracketed_content"},{"include":"#c_lang"}],"repository":{"anonymous_pattern_1":{"begin":"((@)(interface|protocol))(?!.+;)\\\\s+([A-Za-z_][A-Za-z0-9_]*)\\\\s*((:)(?:\\\\s*)([A-Za-z][A-Za-z0-9]*))?(\\\\s|\\\\n)?","captures":{"1":{"name":"storage.type.objcpp"},"2":{"name":"punctuation.definition.storage.type.objcpp"},"4":{"name":"entity.name.type.objcpp"},"6":{"name":"punctuation.definition.entity.other.inherited-class.objcpp"},"7":{"name":"entity.other.inherited-class.objcpp"},"8":{"name":"meta.divider.objcpp"},"9":{"name":"meta.inherited-class.objcpp"}},"contentName":"meta.scope.interface.objcpp","end":"((@)end)\\\\b","name":"meta.interface-or-protocol.objcpp","patterns":[{"include":"#interface_innards"}]},"anonymous_pattern_10":{"captures":{"1":{"name":"punctuation.definition.keyword.objcpp"}},"match":"(@)(defs|encode)\\\\b","name":"keyword.other.objcpp"},"anonymous_pattern_11":{"match":"\\\\bid\\\\b","name":"storage.type.id.objcpp"},"anonymous_pattern_12":{"match":"\\\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\\\b","name":"storage.type.objcpp"},"anonymous_pattern_13":{"captures":{"1":{"name":"punctuation.definition.storage.type.objcpp"}},"match":"(@)(class|protocol)\\\\b","name":"storage.type.objcpp"},"anonymous_pattern_14":{"begin":"((@)selector)\\\\s*(\\\\()","beginCaptures":{"1":{"name":"storage.type.objcpp"},"2":{"name":"punctuation.definition.storage.type.objcpp"},"3":{"name":"punctuation.definition.storage.type.objcpp"}},"contentName":"meta.selector.method-name.objcpp","end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.definition.storage.type.objcpp"}},"name":"meta.selector.objcpp","patterns":[{"captures":{"1":{"name":"punctuation.separator.arguments.objcpp"}},"match":"\\\\b(?:[a-zA-Z_:][\\\\w]*)+","name":"support.function.any-method.name-of-parameter.objcpp"}]},"anonymous_pattern_15":{"captures":{"1":{"name":"punctuation.definition.storage.modifier.objcpp"}},"match":"(@)(synchronized|public|package|private|protected)\\\\b","name":"storage.modifier.objcpp"},"anonymous_pattern_16":{"match":"\\\\b(YES|NO|Nil|nil)\\\\b","name":"constant.language.objcpp"},"anonymous_pattern_17":{"match":"\\\\bNSApp\\\\b","name":"support.variable.foundation.objcpp"},"anonymous_pattern_18":{"captures":{"1":{"name":"punctuation.whitespace.support.function.cocoa.leopard.objcpp"},"2":{"name":"support.function.cocoa.leopard.objcpp"}},"match":"(\\\\s*)\\\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\\\b"},"anonymous_pattern_19":{"captures":{"1":{"name":"punctuation.whitespace.support.function.leading.cocoa.objcpp"},"2":{"name":"support.function.cocoa.objcpp"}},"match":"(\\\\s*)\\\\b(NS(R(ound(DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(CriticalAlertPanel(RelativeToWindow)?|InformationalAlertPanel(RelativeToWindow)?|AlertPanel(RelativeToWindow)?)|e(set(MapTable|HashTable)|c(ycleZone|t(Clip(List)?|F(ill(UsingOperation|List(UsingOperation|With(Grays|Colors(UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(dPixel|l(MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(s)?|WindowServerMemory|AlertPanel)|M(i(n(X|Y)|d(X|Y))|ouseInRect|a(p(Remove|Get|Member|Insert(IfAbsent|KnownAbsent)?)|ke(R(ect|ange)|Size|Point)|x(Range|X|Y)))|B(itsPer(SampleFromDepth|PixelFromDepth)|e(stDepth|ep|gin(CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(ho(uldRetainWithZone|w(sServicesMenuItem|AnimationEffect))|tringFrom(R(ect|ange)|MapTable|S(ize|elector)|HashTable|Class|Point)|izeFromString|e(t(ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(Big(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|Short|Host(ShortTo(Big|Little)|IntTo(Big|Little)|DoubleTo(Big|Little)|FloatTo(Big|Little)|Long(To(Big|Little)|LongTo(Big|Little)))|Int|Double|Float|L(ittle(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|ong(Long)?)))|H(ighlightRect|o(stByteOrder|meDirectory(ForUser)?)|eight|ash(Remove|Get|Insert(IfAbsent|KnownAbsent)?)|FSType(CodeFromFileType|OfFile))|N(umberOfColorComponents|ext(MapEnumeratorPair|HashEnumeratorItem))|C(o(n(tainsRect|vert(GlyphsToPackedGlyphs|Swapped(DoubleToHost|FloatToHost)|Host(DoubleToSwapped|FloatToSwapped)))|unt(MapTable|HashTable|Frames|Windows(ForContext)?)|py(M(emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(MapTables|HashTables))|lassFromString|reate(MapTable(WithZone)?|HashTable(WithZone)?|Zone|File(namePboardType|ContentsPboardType)))|TemporaryDirectory|I(s(ControllerMarker|EmptyRect|FreedObject)|n(setRect|crementExtraRefCount|te(r(sect(sRect|ionR(ect|ange))|faceStyleForKey)|gralRect)))|Zone(Realloc|Malloc|Name|Calloc|Fr(omPointer|ee))|O(penStepRootDirectory|ffsetRect)|D(i(sableScreenUpdates|videRect)|ottedFrameRect|e(c(imal(Round|Multiply|S(tring|ubtract)|Normalize|Co(py|mpa(ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(MemoryPages|Object))|raw(Gr(oove|ayBezel)|B(itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(hiteBezel|indowBackground)|LightBezel))|U(serName|n(ionR(ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(Bundle(Setup|Cleanup)|Setup(VirtualMachine)?|Needs(ToLoadClasses|VirtualMachine)|ClassesF(orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(oint(InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(n(d(MapTableEnumeration|HashTableEnumeration)|umerate(MapTable|HashTable)|ableScreenUpdates)|qual(R(ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(ileTypeForHFSTypeCode|ullUserName|r(ee(MapTable|HashTable)|ame(Rect(WithWidth(UsingOperation)?)?|Address)))|Wi(ndowList(ForContext)?|dth)|Lo(cationInRange|g(v|PageSize)?)|A(ccessibility(R(oleDescription(ForUIElement)?|aiseBadArgumentException)|Unignored(Children(ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(Main|Load)|vailableWindowDepths|ll(MapTable(Values|Keys)|HashTableObjects|ocate(MemoryPages|Collectable|Object)))))\\\\b"},"anonymous_pattern_2":{"begin":"((@)(implementation))\\\\s+([A-Za-z_][A-Za-z0-9_]*)\\\\s*(?::\\\\s*([A-Za-z][A-Za-z0-9]*))?","captures":{"1":{"name":"storage.type.objcpp"},"2":{"name":"punctuation.definition.storage.type.objcpp"},"4":{"name":"entity.name.type.objcpp"},"5":{"name":"entity.other.inherited-class.objcpp"}},"contentName":"meta.scope.implementation.objcpp","end":"((@)end)\\\\b","name":"meta.implementation.objcpp","patterns":[{"include":"#implementation_innards"}]},"anonymous_pattern_20":{"match":"\\\\bNS(RuleEditor|G(arbageCollector|radient)|MapTable|HashTable|Co(ndition|llectionView(Item)?)|T(oolbarItemGroup|extInputClient|r(eeNode|ackingArea))|InvocationOperation|Operation(Queue)?|D(ictionaryController|ockTile)|P(ointer(Functions|Array)|athC(o(ntrol(Delegate)?|mponentCell)|ell(Delegate)?)|r(intPanelAccessorizing|edicateEditor(RowTemplate)?))|ViewController|FastEnumeration|Animat(ionContext|ablePropertyContainer))\\\\b","name":"support.class.cocoa.leopard.objcpp"},"anonymous_pattern_21":{"match":"\\\\bNS(R(u(nLoop|ler(Marker|View))|e(sponder|cursiveLock|lativeSpecifier)|an(domSpecifier|geSpecifier))|G(etCommand|lyph(Generator|Storage|Info)|raphicsContext)|XML(Node|D(ocument|TD(Node)?)|Parser|Element)|M(iddleSpecifier|ov(ie(View)?|eCommand)|utable(S(tring|et)|C(haracterSet|opying)|IndexSet|D(ictionary|ata)|URLRequest|ParagraphStyle|A(ttributedString|rray))|e(ssagePort(NameServer)?|nu(Item(Cell)?|View)?|t(hodSignature|adata(Item|Query(ResultGroup|AttributeValueTuple)?)))|a(ch(BootstrapServer|Port)|trix))|B(itmapImageRep|ox|u(ndle|tton(Cell)?)|ezierPath|rowser(Cell)?)|S(hadow|c(anner|r(ipt(SuiteRegistry|C(o(ercionHandler|mmand(Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(er|View)|een))|t(epper(Cell)?|atus(Bar|Item)|r(ing|eam))|imple(HorizontalTypesetter|CString)|o(cketPort(NameServer)?|und|rtDescriptor)|p(e(cifierTest|ech(Recognizer|Synthesizer)|ll(Server|Checker))|litView)|e(cureTextField(Cell)?|t(Command)?|archField(Cell)?|rializer|gmentedC(ontrol|ell))|lider(Cell)?|avePanel)|H(ost|TTP(Cookie(Storage)?|URLResponse)|elpManager)|N(ib(Con(nector|trolConnector)|OutletConnector)?|otification(Center|Queue)?|u(ll|mber(Formatter)?)|etService(Browser)?|ameSpecifier)|C(ha(ngeSpelling|racterSet)|o(n(stantString|nection|trol(ler)?|ditionLock)|d(ing|er)|unt(Command|edSet)|pying|lor(Space|P(ick(ing(Custom|Default)|er)|anel)|Well|List)?|m(p(oundPredicate|arisonPredicate)|boBox(Cell)?))|u(stomImageRep|rsor)|IImageRep|ell|l(ipView|o(seCommand|neCommand)|assDescription)|a(ched(ImageRep|URLResponse)|lendar(Date)?)|reateCommand)|T(hread|ypesetter|ime(Zone|r)|o(olbar(Item(Validations)?)?|kenField(Cell)?)|ext(Block|Storage|Container|Tab(le(Block)?)?|Input|View|Field(Cell)?|List|Attachment(Cell)?)?|a(sk|b(le(Header(Cell|View)|Column|View)|View(Item)?))|reeController)|I(n(dex(S(pecifier|et)|Path)|put(Manager|S(tream|erv(iceProvider|er(MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(Rep|Cell|View)?)|O(ut(putStream|lineView)|pen(GL(Context|Pixel(Buffer|Format)|View)|Panel)|bj(CTypeSerializationCallBack|ect(Controller)?))|D(i(st(antObject(Request)?|ributed(NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(Controller)?|e(serializer|cimalNumber(Behaviors|Handler)?|leteCommand)|at(e(Components|Picker(Cell)?|Formatter)?|a)|ra(wer|ggingInfo))|U(ser(InterfaceValidations|Defaults(Controller)?)|RL(Re(sponse|quest)|Handle(Client)?|C(onnection|ache|redential(Storage)?)|Download(Delegate)?|Prot(ocol(Client)?|ectionSpace)|AuthenticationChallenge(Sender)?)?|n(iqueIDSpecifier|doManager|archiver))|P(ipe|o(sitionalSpecifier|pUpButton(Cell)?|rt(Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(steboard|nel|ragraphStyle|geLayout)|r(int(Info|er|Operation|Panel)|o(cessInfo|tocolChecker|perty(Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(numerator|vent|PSImageRep|rror|x(ception|istsCommand|pression))|V(iew(Animation)?|al(idated(ToobarItem|UserInterfaceItem)|ue(Transformer)?))|Keyed(Unarchiver|Archiver)|Qui(ckDrawView|tCommand)|F(ile(Manager|Handle|Wrapper)|o(nt(Manager|Descriptor|Panel)?|rm(Cell|atter)))|W(hoseSpecifier|indow(Controller)?|orkspace)|L(o(c(k(ing)?|ale)|gicalTest)|evelIndicator(Cell)?|ayoutManager)|A(ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(ication|e(Script|Event(Manager|Descriptor)))|ffineTransform|lert|r(chiver|ray(Controller)?)))\\\\b","name":"support.class.cocoa.objcpp"},"anonymous_pattern_22":{"match":"\\\\bNS(R(oundingMode|ule(Editor(RowType|NestingMode)|rOrientation)|e(questUserAttentionType|lativePosition))|G(lyphInscription|radientDrawingOptions)|XML(NodeKind|D(ocumentContentKind|TDNodeKind)|ParserError)|M(ultibyteGlyphPacking|apTableOptions)|B(itmapFormat|oxType|ezierPathElement|ackgroundStyle|rowserDropOperation)|S(tr(ing(CompareOptions|DrawingOptions|EncodingConversionOptions)|eam(Status|Event))|p(eechBoundary|litViewDividerStyle)|e(archPathD(irectory|omainMask)|gmentS(tyle|witchTracking))|liderType|aveOptions)|H(TTPCookieAcceptPolicy|ashTableOptions)|N(otification(SuspensionBehavior|Coalescing)|umberFormatter(RoundingMode|Behavior|Style|PadPosition)|etService(sError|Options))|C(haracterCollection|o(lor(RenderingIntent|SpaceModel|PanelMode)|mp(oundPredicateType|arisonPredicateModifier))|ellStateValue|al(culationError|endarUnit))|T(ypesetterControlCharacterAction|imeZoneNameStyle|e(stComparisonOperation|xt(Block(Dimension|V(erticalAlignment|alueType)|Layer)|TableLayoutAlgorithm|FieldBezelStyle))|ableView(SelectionHighlightStyle|ColumnAutoresizingStyle)|rackingAreaOptions)|I(n(sertionPosition|te(rfaceStyle|ger))|mage(RepLoadStatus|Scaling|CacheMode|FrameStyle|LoadStatus|Alignment))|Ope(nGLPixelFormatAttribute|rationQueuePriority)|Date(Picker(Mode|Style)|Formatter(Behavior|Style))|U(RL(RequestCachePolicy|HandleStatus|C(acheStoragePolicy|redentialPersistence))|Integer)|P(o(stingStyle|int(ingDeviceType|erFunctionsOptions)|pUpArrowPosition)|athStyle|r(int(ing(Orientation|PaginationMode)|erTableStatus|PanelOptions)|opertyList(MutabilityOptions|Format)|edicateOperatorType))|ExpressionType|KeyValue(SetMutationKind|Change)|QTMovieLoopMode|F(indPanel(SubstringMatchType|Action)|o(nt(RenderingMode|FamilyClass)|cusRingPlacement))|W(hoseSubelementIdentifier|ind(ingRule|ow(B(utton|ackingLocation)|SharingType|CollectionBehavior)))|L(ine(MovementDirection|SweepDirection|CapStyle|JoinStyle)|evelIndicatorStyle)|Animation(BlockingMode|Curve))\\\\b","name":"support.type.cocoa.leopard.objcpp"},"anonymous_pattern_23":{"match":"\\\\bC(I(Sampler|Co(ntext|lor)|Image(Accumulator)?|PlugIn(Registration)?|Vector|Kernel|Filter(Generator|Shape)?)|A(Renderer|MediaTiming(Function)?|BasicAnimation|ScrollLayer|Constraint(LayoutManager)?|T(iledLayer|extLayer|rans(ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(nimation(Group)?|ction)))\\\\b","name":"support.class.quartz.objcpp"},"anonymous_pattern_24":{"match":"\\\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\\\b","name":"support.type.quartz.objcpp"},"anonymous_pattern_25":{"match":"\\\\bNS(R(ect(Edge)?|ange)|G(lyph(Relation|LayoutMode)?|radientType)|M(odalSession|a(trixMode|p(Table|Enumerator)))|B(itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(cr(oll(er(Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(Granularity|Direction|Affinity)|wapped(Double|Float)|aveOperationType)|Ha(sh(Table|Enumerator)|ndler(2)?)|C(o(ntrol(Size|Tint)|mp(ositingOperation|arisonResult))|ell(State|Type|ImagePosition|Attribute))|T(hreadPrivate|ypesetterGlyphInfo|i(ckMarkPosition|tlePosition|meInterval)|o(ol(TipTag|bar(SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(TabType|Alignment)|ab(State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(ContextAuxiliary|PixelFormatAuxiliary)|D(ocumentChangeType|atePickerElementFlags|ra(werState|gOperation))|UsableScrollerParts|P(oint|r(intingPageOrder|ogressIndicator(Style|Th(ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(nt(SymbolicTraits|TraitMask|Action)|cusRingType)|W(indow(OrderingMode|Depth)|orkspace(IconCreationOptions|LaunchOptions)|ritingDirection)|L(ineBreakMode|ayout(Status|Direction))|A(nimation(Progress|Effect)|ppl(ication(TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle))\\\\b","name":"support.type.cocoa.objcpp"},"anonymous_pattern_26":{"match":"\\\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\\\b","name":"support.constant.cocoa.objcpp"},"anonymous_pattern_27":{"match":"\\\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\\\b","name":"support.constant.notification.cocoa.leopard.objcpp"},"anonymous_pattern_28":{"match":"\\\\bNS(Menu(Did(RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(ystemColorsDidChange|plitView(DidResizeSubviews|WillResizeSubviews))|C(o(nt(extHelpModeDid(Deactivate|Activate)|rolT(intDidChange|extDid(BeginEditing|Change|EndEditing)))|lor(PanelColorDidChange|ListDidChange)|mboBox(Selection(IsChanging|DidChange)|Will(Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(oolbar(DidRemoveItem|WillAddItem)|ext(Storage(DidProcessEditing|WillProcessEditing)|Did(BeginEditing|Change|EndEditing)|View(DidChange(Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)))|ImageRepRegistryDidChange|OutlineView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)|Item(Did(Collapse|Expand)|Will(Collapse|Expand)))|Drawer(Did(Close|Open)|Will(Close|Open))|PopUpButton(CellWillPopUp|WillPopUp)|View(GlobalFrameDidChange|BoundsDidChange|F(ocusDidChange|rameDidChange))|FontSetChanged|W(indow(Did(Resi(ze|gn(Main|Key))|M(iniaturize|ove)|Become(Main|Key)|ChangeScreen(|Profile)|Deminiaturize|Update|E(ndSheet|xpose))|Will(M(iniaturize|ove)|BeginSheet|Close))|orkspace(SessionDid(ResignActive|BecomeActive)|Did(Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(Sleep|Unmount|PowerOff|LaunchApplication)))|A(ntialiasThresholdChanged|ppl(ication(Did(ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(nhide|pdate)|FinishLaunching)|Will(ResignActive|BecomeActive|Hide|Terminate|U(nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification\\\\b","name":"support.constant.notification.cocoa.objcpp"},"anonymous_pattern_29":{"match":"\\\\bNS(RuleEditor(RowType(Simple|Compound)|NestingMode(Si(ngle|mple)|Compound|List))|GradientDraws(BeforeStartingLocation|AfterEndingLocation)|M(inusSetExpressionType|a(chPortDeallocate(ReceiveRight|SendRight|None)|pTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(oxCustom|undleExecutableArchitecture(X86|I386|PPC(64)?)|etweenPredicateOperatorType|ackgroundStyle(Raised|Dark|L(ight|owered)))|S(tring(DrawingTruncatesLastVisibleLine|EncodingConversion(ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(e(ech(SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(GrammarFlag|SpellingFlag))|litViewDividerStyleThi(n|ck))|e(rvice(RequestTimedOutError|M(iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(inimum|aximum)|Application(NotFoundError|LaunchFailedError))|gmentStyle(Round(Rect|ed)|SmallSquare|Capsule|Textured(Rounded|Square)|Automatic)))|H(UDWindowMask|ashTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(oModeColorPanel|etServiceNoAutoRename)|C(hangeRedone|o(ntainsPredicateOperatorType|l(orRenderingIntent(RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(None|ContentArea|TrackableArea|EditableTextArea))|T(imeZoneNameStyle(S(hort(Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(Regular|SourceList)|racking(Mouse(Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(ssumeInside|ctive(In(KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(n(tersectSetExpressionType|dexedColorSpaceModel)|mageScale(None|Proportionally(Down|UpOrDown)|AxesIndependently))|Ope(nGLPFAAllowOfflineRenderers|rationQueue(DefaultMaxConcurrentOperationCount|Priority(High|Normal|Very(High|Low)|Low)))|D(iacriticInsensitiveSearch|ownloadsDirectory)|U(nionSetExpressionType|TF(16(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(ointerFunctions(Ma(chVirtualMemory|llocMemory)|Str(ongMemory|uctPersonality)|C(StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(paque(Memory|Personality)|bjectP(ointerPersonality|ersonality)))|at(hStyle(Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(Scaling|Copies|Orientation|P(a(perSize|ge(Range|SetupAccessory))|review)))|Executable(RuntimeMismatchError|NotLoadableError|ErrorM(inimum|aximum)|L(inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(Initial|Prior)|F(i(ndPanelSubstringMatchType(StartsWith|Contains|EndsWith|FullWord)|leRead(TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(ndow(BackingLocation(MainMemory|Default|VideoMemory)|Sharing(Read(Only|Write)|None)|CollectionBehavior(MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType)\\\\b","name":"support.constant.cocoa.leopard.objcpp"},"anonymous_pattern_3":{"begin":"@\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.objcpp"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.objcpp"}},"name":"string.quoted.double.objcpp","patterns":[{"include":"#string_escaped_char"},{"match":"%(\\\\d+\\\\$)?[#0\\\\- +']*((-?\\\\d+)|\\\\*(-?\\\\d+\\\\$)?)?(\\\\.((-?\\\\d+)|\\\\*(-?\\\\d+\\\\$)?)?)?[@]","name":"constant.other.placeholder.objcpp"},{"include":"#string_placeholder"}]},"anonymous_pattern_30":{"match":"\\\\bNS(R(GB(ModeColorPanel|ColorSpaceModel)|ight(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey)|ound(RectBezelStyle|Bankers|ed(BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(CapStyle|JoinStyle))|un(StoppedResponse|ContinuesResponse|AbortedResponse)|e(s(izableWindowMask|et(CursorRectsRunLoopOrdering|FunctionKey))|ce(ssedBezelStyle|iver(sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(evancyLevelIndicatorStyle|ative(Before|After))|gular(SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(n(domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(ModeMatrix|Button)))|G(IFFileType|lyph(Below|Inscribe(B(elow|ase)|Over(strike|Below)|Above)|Layout(WithPrevious|A(tAPoint|gainstAPoint))|A(ttribute(BidiLevel|Soft|Inscribe|Elastic)|bove))|r(ooveBorder|eaterThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|a(y(ModeColorPanel|ColorSpaceModel)|dient(None|Con(cave(Strong|Weak)|vex(Strong|Weak)))|phiteControlTint)))|XML(N(o(tationDeclarationKind|de(CompactEmptyElement|IsCDATA|OptionsNone|Use(SingleQuotes|DoubleQuotes)|Pre(serve(NamespaceOrder|C(haracterReferences|DATA)|DTD|Prefixes|E(ntities|mptyElements)|Quotes|Whitespace|A(ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(ocument(X(MLKind|HTMLKind|Include)|HTMLKind|T(idy(XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(arser(GTRequiredError|XMLDeclNot(StartedError|FinishedError)|Mi(splaced(XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(StartedError|FinishedError))|S(t(andaloneValueError|ringNot(StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(MTOKENRequiredError|o(t(ationNot(StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(haracterRef(In(DTDError|PrologError|EpilogError)|AtEOFError)|o(nditionalSectionNot(StartedError|FinishedError)|mment(NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(ternalError|valid(HexCharacterRefError|C(haracter(RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(NameError|Error)))|OutOfMemoryError|D(ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(RI(RequiredError|FragmentError)|n(declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(MissingSemiError|NoNameError|In(Internal(SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(ocessingInstructionNot(StartedError|FinishedError)|ematureDocumentEndError))|E(n(codingNotSupportedError|tity(Ref(In(DTDError|PrologError|EpilogError)|erence(MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(StartedError|FinishedError)|Is(ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(StartedError|FinishedError)|xt(ernalS(tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(iteralNot(StartedError|FinishedError)|T(RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(RedefinedError|HasNoValueError|Not(StartedError|FinishedError)|ListNot(StartedError|FinishedError)))|rocessingInstructionKind)|E(ntity(GeneralKind|DeclarationKind|UnparsedKind|P(ar(sedKind|ameterKind)|redefined))|lement(Declaration(MixedKind|UndefinedKind|E(lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(N(MToken(sKind|Kind)|otationKind)|CDATAKind|ID(Ref(sKind|Kind)|Kind)|DeclarationKind|En(tit(yKind|iesKind)|umerationKind)|Kind))|M(i(n(XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(nthCalendarUnit|deSwitchFunctionKey|use(Moved(Mask)?|E(ntered(Mask)?|ventSubtype|xited(Mask)?))|veToBezierPathElement|mentary(ChangeButton|Push(Button|InButton)|Light(Button)?))|enuFunctionKey|a(c(intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(XEdge|YEdge))|ACHOperatingSystem)|B(MPFileType|o(ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(Se(condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(zelBorder|velLineJoinStyle|low(Bottom|Top)|gin(sWith(Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(spaceCharacter|tabTextMovement|ingStore(Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(owser(NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(h(ift(JISStringEncoding|KeyMask)|ow(ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(s(ReqFunctionKey|tem(D(omainMask|efined(Mask)?)|FunctionKey))|mbolStringEncoding)|c(a(nnedOption|le(None|ToFit|Proportionally))|r(oll(er(NoPart|Increment(Page|Line|Arrow)|Decrement(Page|Line|Arrow)|Knob(Slot)?|Arrows(M(inEnd|axEnd)|None|DefaultSetting))|Wheel(Mask)?|LockFunctionKey)|eenChangedEventType))|t(opFunctionKey|r(ingDrawing(OneShot|DisableScreenFontSubstitution|Uses(DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(Status(Reading|NotOpen|Closed|Open(ing)?|Error|Writing|AtEnd)|Event(Has(BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(ndEncountered|rrorOccurred)))))|i(ngle(DateMode|UnderlineStyle)|ze(DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(condCalendarUnit|lect(By(Character|Paragraph|Word)|i(ng(Next|Previous)|onAffinity(Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(Momentary|Select(One|Any)))|quareLineCapStyle|witchButton|ave(ToOperation|Op(tions(Yes|No|Ask)|eration)|AsOperation)|mall(SquareBezelStyle|C(ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(ighlightModeMatrix|SBModeColorPanel|o(ur(Minute(SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(Never|OnlyFromMainDocumentDomain|Always)|e(lp(ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(MonthDa(yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(o(n(StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(ification(SuspensionBehavior(Hold|Coalesce|D(eliverImmediately|rop))|NoCoalescing|CoalescingOn(Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(cr(iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(itle|opLevelContainersSpecifierError|abs(BezelBorder|NoBorder|LineBorder))|I(nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(ll(Glyph|CellType)|m(eric(Search|PadKeyMask)|berFormatter(Round(Half(Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(10|Default)|S(cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(ercentStyle|ad(Before(Suffix|Prefix)|After(Suffix|Prefix))))))|e(t(Services(BadArgumentError|NotFoundError|C(ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(t(iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(hange(ReadOtherContents|GrayCell(Mask)?|BackgroundCell(Mask)?|Cleared|Done|Undone|Autosaved)|MYK(ModeColorPanel|ColorSpaceModel)|ircular(BezelStyle|Slider)|o(n(stantValueExpressionType|t(inuousCapacityLevelIndicatorStyle|entsCellMask|ain(sComparison|erSpecifierError)|rol(Glyph|KeyMask))|densedFontMask)|lor(Panel(RGBModeMask|GrayModeMask|HSBModeMask|C(MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(p(osite(XOR|Source(In|O(ut|ver)|Atop)|Highlight|C(opy|lear)|Destination(In|O(ut|ver)|Atop)|Plus(Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(stom(SelectorPredicateOperatorType|PaletteModeColorPanel)|r(sor(Update(Mask)?|PointingDevice)|veToBezierPathElement))|e(nterT(extAlignment|abStopType)|ll(State|H(ighlighted|as(Image(Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(Bordered|InsetButton)|Disabled|Editable|LightsBy(Gray|Background|Contents)|AllowsMixedState))|l(ipPagination|o(s(ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(ControlTint|DisplayFunctionKey|LineFunctionKey))|a(seInsensitive(Search|PredicateOption)|n(notCreateScriptCommandError|cel(Button|TextMovement))|chesDirectory|lculation(NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(itical(Request|AlertStyle)|ayonModeColorPanel))|T(hick(SquareBezelStyle|erSquareBezelStyle)|ypesetter(Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(ineBreakAction|atestBehavior))|i(ckMark(Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(olbarItemVisibilityPriority(Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(Compression(N(one|EXT)|CCITTFAX(3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(rminate(Now|Cancel|Later)|xt(Read(InapplicableDocumentTypeError|WriteErrorM(inimum|aximum))|Block(M(i(nimum(Height|Width)|ddleAlignment)|a(rgin|ximum(Height|Width)))|B(o(ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(Characters|Attributes)|CellType|ured(RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(Character|TextMovement|le(tP(oint(Mask|EventSubtype)?|roximity(Mask|EventSubtype)?)|Column(NoResizing|UserResizingMask|AutoresizingMask)|View(ReverseSequentialColumnAutoresizingStyle|GridNone|S(olid(HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(n(sert(CharFunctionKey|FunctionKey|LineFunctionKey)|t(Type|ernalS(criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(2022JPStringEncoding|Latin(1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(R(ight|ep(MatchesDevice|LoadStatus(ReadingHeader|Completed|InvalidData|Un(expectedEOF|knownType)|WillNeedAllData)))|Below|C(ellType|ache(BySize|Never|Default|Always))|Interpolation(High|None|Default|Low)|O(nly|verlaps)|Frame(Gr(oove|ayBezel)|Button|None|Photo)|L(oadStatus(ReadError|C(ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(lign(Right|Bottom(Right|Left)?|Center|Top(Right|Left)?|Left)|bove)))|O(n(State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|TextMovement)|SF1OperatingSystem|pe(n(GL(GO(Re(setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(R(obust|endererID)|M(inimumPolicy|ulti(sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(creenMask|te(ncilSize|reo)|ingleRenderer|upersample|ample(s|Buffers|Alpha))|NoRecovery|C(o(lor(Size|Float)|mpliant)|losestPolicy)|OffScreen|D(oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(cc(umSize|elerated)|ux(Buffers|DepthStencil)|l(phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(B(itfield|oolType)|S(hortType|tr(ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(Type|longType)|ArrayType))|D(i(s(c(losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(Selection|PredicateModifier))|o(c(ModalWindowMask|ument(Directory|ationDirectory))|ubleType|wn(TextMovement|ArrowFunctionKey))|e(s(cendingPageOrder|ktopDirectory)|cimalTabStopType|v(ice(NColorSpaceModel|IndependentModifierFlagsMask)|eloper(Directory|ApplicationDirectory))|fault(ControlTint|TokenStyle)|lete(Char(acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(yCalendarUnit|teFormatter(MediumStyle|Behavior(10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(wer(Clos(ingState|edState)|Open(ingState|State))|gOperation(Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(ser(CancelledError|D(irectory|omainMask)|FunctionKey)|RL(Handle(NotLoaded|Load(Succeeded|InProgress|Failed))|CredentialPersistence(None|Permanent|ForSession))|n(scaledWindowMask|cachedRead|i(codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(o(CloseGroupingRunLoopOrdering|FunctionKey)|e(finedDateComponent|rline(Style(Single|None|Thick|Double)|Pattern(Solid|D(ot|ash(Dot(Dot)?)?)))))|known(ColorSpaceModel|P(ointingDevice|ageOrder)|KeyS(criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(ustifiedTextAlignment|PEG(2000FileType|FileType)|apaneseEUC(GlyphPacking|StringEncoding))|P(o(s(t(Now|erFontMask|WhenIdle|ASAP)|iti(on(Replace|Be(fore|ginning)|End|After)|ve(IntType|DoubleType|FloatType)))|pUp(NoArrow|ArrowAt(Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(InCell(Mask)?|OnPushOffButton)|e(n(TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(Mask)?)|P(S(caleField|tatus(Title|Field)|aveButton)|N(ote(Title|Field)|ame(Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(a(perFeedButton|ge(Range(To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(useFunctionKey|ragraphSeparatorCharacter|ge(DownFunctionKey|UpFunctionKey))|r(int(ing(ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(NotFound|OK|Error)|FunctionKey)|o(p(ertyList(XMLFormat|MutableContainers(AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(BarStyle|SpinningStyle|Preferred(SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(ssedTab|vFunctionKey))|L(HeightForm|CancelButton|TitleField|ImageButton|O(KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(n(terCharacter|d(sWith(Comparison|PredicateOperatorType)|FunctionKey))|v(e(nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(Comparison|PredicateOperatorType)|ra(serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(clude(10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(i(ew(M(in(XMargin|YMargin)|ax(XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(lidationErrorM(inimum|aximum)|riableExpressionType))|Key(SpecifierEvaluationScriptError|Down(Mask)?|Up(Mask)?|PathExpressionType|Value(MinusSetMutation|SetSetMutation|Change(Re(placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(New|Old)|UnionSetMutation|ValidationError))|QTMovie(NormalPlayback|Looping(BackAndForthPlayback|Playback))|F(1(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(nd(PanelAction(Replace(A(ndFind|ll(InSelection)?))?|S(howFindPanel|e(tFindString|lectAll(InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(Read(No(SuchFileError|PermissionError)|CorruptFileError|In(validFileNameError|applicableStringEncodingError)|Un(supportedSchemeError|knownError))|HandlingPanel(CancelButton|OKButton)|NoSuchFileError|ErrorM(inimum|aximum)|Write(NoPermissionError|In(validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(nt(Mo(noSpaceTrait|dernSerifsClass)|BoldTrait|S(ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(o(ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(ntegerAdvancementsRenderingMode|talicTrait)|O(ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(nknownClass|IOptimizedTrait)|Panel(S(hadowEffectModeMask|t(andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(amilyClassMask|reeformSerifsClass)|Antialiased(RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(Below|Type(None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(attingError(M(inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(ExpressionType|KeyMask)|3(1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(RevertButton|S(ize(Title|Field)|etButton)|CurrentField|Preview(Button|Field))|l(oat(ingPointSamplesBitmapFormat|Type)|agsChanged(Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(heelModeColorPanel|indow(s(NTOperatingSystem|CP125(1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(InterfaceStyle|OperatingSystem))|M(iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(ctivation|ddingToRecents)|A(sync|nd(Hide(Others)?|Print)|llowingClassicStartup))|eek(day(CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(ntsBidiLevels|rningAlertStyle)|r(itingDirection(RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(i(stModeMatrix|ne(Moves(Right|Down|Up|Left)|B(order|reakBy(C(harWrapping|lipping)|Truncating(Middle|Head|Tail)|WordWrapping))|S(eparatorCharacter|weep(Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(ssThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey))|a(yout(RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(sc(iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(y(Type|PredicateModifier|EventMask)|choredSearch|imation(Blocking|Nonblocking(Threaded)?|E(ffect(DisappearingItemDefault|Poof)|ase(In(Out)?|Out))|Linear)|dPredicateType)|t(Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(obe(GB1CharacterCollection|CNS1CharacterCollection|Japan(1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(saveOperation|Pagination)|pp(lication(SupportDirectory|D(irectory|e(fined(Mask)?|legateReply(Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(Mask)?)|l(ternateKeyMask|pha(ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(sWrongScriptError|EvaluationScriptError)|bove(Bottom|Top)|WTEventType))\\\\b","name":"support.constant.cocoa.objcpp"},"anonymous_pattern_4":{"begin":"\\\\b(id)\\\\s*(?=<)","beginCaptures":{"1":{"name":"storage.type.objcpp"}},"end":"(?<=>)","name":"meta.id-with-protocol.objcpp","patterns":[{"include":"#protocol_list"}]},"anonymous_pattern_5":{"match":"\\\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\\\b","name":"keyword.control.macro.objcpp"},"anonymous_pattern_7":{"captures":{"1":{"name":"punctuation.definition.keyword.objcpp"}},"match":"(@)(try|catch|finally|throw)\\\\b","name":"keyword.control.exception.objcpp"},"anonymous_pattern_8":{"captures":{"1":{"name":"punctuation.definition.keyword.objcpp"}},"match":"(@)(synchronized)\\\\b","name":"keyword.control.synchronize.objcpp"},"anonymous_pattern_9":{"captures":{"1":{"name":"punctuation.definition.keyword.objcpp"}},"match":"(@)(required|optional)\\\\b","name":"keyword.control.protocol-specification.objcpp"},"apple_foundation_functional_macros":{"begin":"(\\\\b(?:API_AVAILABLE|API_DEPRECATED|API_UNAVAILABLE|NS_AVAILABLE|NS_AVAILABLE_MAC|NS_AVAILABLE_IOS|NS_DEPRECATED|NS_DEPRECATED_MAC|NS_DEPRECATED_IOS|NS_SWIFT_NAME))(?:(?:\\\\s)+)?(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.preprocessor.apple-foundation.objcpp"},"2":{"name":"punctuation.section.macro.arguments.begin.bracket.round.apple-foundation.objcpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.macro.arguments.end.bracket.round.apple-foundation.objcpp"}},"name":"meta.preprocessor.macro.callable.apple-foundation.objcpp","patterns":[{"include":"#c_lang"}]},"bracketed_content":{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.section.scope.begin.objcpp"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.section.scope.end.objcpp"}},"name":"meta.bracketed.objcpp","patterns":[{"begin":"(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)","beginCaptures":{"1":{"name":"support.function.any-method.objcpp"},"2":{"name":"punctuation.separator.arguments.objcpp"}},"end":"(?=\\\\])","name":"meta.function-call.predicate.objcpp","patterns":[{"captures":{"1":{"name":"punctuation.separator.arguments.objcpp"}},"match":"\\\\bargument(Array|s)(:)","name":"support.function.any-method.name-of-parameter.objcpp"},{"captures":{"1":{"name":"punctuation.separator.arguments.objcpp"}},"match":"\\\\b\\\\w+(:)","name":"invalid.illegal.unknown-method.objcpp"},{"begin":"@\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.objcpp"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.objcpp"}},"name":"string.quoted.double.objcpp","patterns":[{"match":"\\\\b(AND|OR|NOT|IN)\\\\b","name":"keyword.operator.logical.predicate.cocoa.objcpp"},{"match":"\\\\b(ALL|ANY|SOME|NONE)\\\\b","name":"constant.language.predicate.cocoa.objcpp"},{"match":"\\\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\\\b","name":"constant.language.predicate.cocoa.objcpp"},{"match":"\\\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\\\b","name":"keyword.operator.comparison.predicate.cocoa.objcpp"},{"match":"\\\\bC(ASEINSENSITIVE|I)\\\\b","name":"keyword.other.modifier.predicate.cocoa.objcpp"},{"match":"\\\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\\\b","name":"keyword.other.predicate.cocoa.objcpp"},{"match":"\\\\\\\\(\\\\\\\\|[abefnrtv'\\"?]|[0-3]\\\\d{,2}|[4-7]\\\\d?|x[a-zA-Z0-9]+)","name":"constant.character.escape.objcpp"},{"match":"\\\\\\\\.","name":"invalid.illegal.unknown-escape.objcpp"}]},{"include":"#special_variables"},{"include":"#c_functions"},{"include":"$base"}]},{"begin":"(?=\\\\w)(?<=[\\\\w\\\\])\\"] )(\\\\w+(?:(:)|(?=\\\\])))","beginCaptures":{"1":{"name":"support.function.any-method.objcpp"},"2":{"name":"punctuation.separator.arguments.objcpp"}},"end":"(?=\\\\])","name":"meta.function-call.objcpp","patterns":[{"captures":{"1":{"name":"punctuation.separator.arguments.objcpp"}},"match":"\\\\b\\\\w+(:)","name":"support.function.any-method.name-of-parameter.objcpp"},{"include":"#special_variables"},{"include":"#c_functions"},{"include":"$base"}]},{"include":"#special_variables"},{"include":"#c_functions"},{"include":"$self"}]},"c_functions":{"patterns":[{"captures":{"1":{"name":"punctuation.whitespace.support.function.leading.objcpp"},"2":{"name":"support.function.C99.objcpp"}},"match":"(\\\\s*)\\\\b(hypot(f|l)?|s(scanf|ystem|nprintf|ca(nf|lb(n(f|l)?|ln(f|l)?))|i(n(h(f|l)?|f|l)?|gn(al|bit))|tr(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(jmp|vbuf|locale|buf)|qrt(f|l)?|w(scanf|printf)|rand)|n(e(arbyint(f|l)?|xt(toward(f|l)?|after(f|l)?))|an(f|l)?)|c(s(in(h(f|l)?|f|l)?|qrt(f|l)?)|cos(h(f)?|f|l)?|imag(f|l)?|t(ime|an(h(f|l)?|f|l)?)|o(s(h(f|l)?|f|l)?|nj(f|l)?|pysign(f|l)?)|p(ow(f|l)?|roj(f|l)?)|e(il(f|l)?|xp(f|l)?)|l(o(ck|g(f|l)?)|earerr)|a(sin(h(f|l)?|f|l)?|cos(h(f|l)?|f|l)?|tan(h(f|l)?|f|l)?|lloc|rg(f|l)?|bs(f|l)?)|real(f|l)?|brt(f|l)?)|t(ime|o(upper|lower)|an(h(f|l)?|f|l)?|runc(f|l)?|gamma(f|l)?|mp(nam|file))|i(s(space|n(ormal|an)|cntrl|inf|digit|u(nordered|pper)|p(unct|rint)|finite|w(space|c(ntrl|type)|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit|blank)|l(ower|ess(equal|greater)?)|al(num|pha)|gr(eater(equal)?|aph)|xdigit|blank)|logb(f|l)?|max(div|abs))|di(v|fftime)|_Exit|unget(c|wc)|p(ow(f|l)?|ut(s|c(har)?|wc(har)?)|error|rintf)|e(rf(c(f|l)?|f|l)?|x(it|p(2(f|l)?|f|l|m1(f|l)?)?))|v(s(scanf|nprintf|canf|printf|w(scanf|printf))|printf|f(scanf|printf|w(scanf|printf))|w(scanf|printf)|a_(start|copy|end|arg))|qsort|f(s(canf|e(tpos|ek))|close|tell|open|dim(f|l)?|p(classify|ut(s|c|w(s|c))|rintf)|e(holdexcept|set(e(nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(aiseexcept|ror)|get(e(nv|xceptflag)|round))|flush|w(scanf|ide|printf|rite)|loor(f|l)?|abs(f|l)?|get(s|c|pos|w(s|c))|re(open|e|ad|xp(f|l)?)|m(in(f|l)?|od(f|l)?|a(f|l|x(f|l)?)?))|l(d(iv|exp(f|l)?)|o(ngjmp|cal(time|econv)|g(1(p(f|l)?|0(f|l)?)|2(f|l)?|f|l|b(f|l)?)?)|abs|l(div|abs|r(int(f|l)?|ound(f|l)?))|r(int(f|l)?|ound(f|l)?)|gamma(f|l)?)|w(scanf|c(s(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?|mbs)|pbrk|ftime|len|r(chr|tombs)|xfrm)|to(b|mb)|rtomb)|printf|mem(set|c(hr|py|mp)|move))|a(s(sert|ctime|in(h(f|l)?|f|l)?)|cos(h(f|l)?|f|l)?|t(o(i|f|l(l)?)|exit|an(h(f|l)?|2(f|l)?|f|l)?)|b(s|ort))|g(et(s|c(har)?|env|wc(har)?)|mtime)|r(int(f|l)?|ound(f|l)?|e(name|alloc|wind|m(ove|quo(f|l)?|ainder(f|l)?))|a(nd|ise))|b(search|towc)|m(odf(f|l)?|em(set|c(hr|py|mp)|move)|ktime|alloc|b(s(init|towcs|rtowcs)|towc|len|r(towc|len))))\\\\b"},{"captures":{"1":{"name":"punctuation.whitespace.function-call.leading.objcpp"},"2":{"name":"support.function.any-method.objcpp"},"3":{"name":"punctuation.definition.parameters.objcpp"}},"match":"(?:(?=\\\\s)(?:(?<=else|new|return)|(?[a-zA-Z_$][\\\\w$]*))(?:(\\\\()(\\\\s*\\\\g\\\\s*((,)\\\\s*\\\\g\\\\s*)*(?:\\\\.\\\\.\\\\.)?)(\\\\)))?","beginCaptures":{"1":{"name":"keyword.control.directive.define.objcpp"},"2":{"name":"punctuation.definition.directive.objcpp"},"3":{"name":"entity.name.function.preprocessor.objcpp"},"5":{"name":"punctuation.definition.parameters.begin.objcpp"},"6":{"name":"variable.parameter.preprocessor.objcpp"},"8":{"name":"punctuation.separator.parameters.objcpp"},"9":{"name":"punctuation.definition.parameters.end.objcpp"}},"end":"(?=(?://|/\\\\*))|(?","endCaptures":{"0":{"name":"punctuation.definition.string.end.objcpp"}},"name":"string.quoted.other.lt-gt.include.objcpp"}]},{"include":"#pragma-mark"},{"begin":"^\\\\s*((#)\\\\s*line)\\\\b","beginCaptures":{"1":{"name":"keyword.control.directive.line.objcpp"},"2":{"name":"punctuation.definition.directive.objcpp"}},"end":"(?=(?://|/\\\\*))|(?))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\\\s*(?:(?:\\\\.)|(?:->)))*)\\\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\\\()","beginCaptures":{"1":{"name":"variable.object.objcpp"},"2":{"name":"punctuation.separator.dot-access.objcpp"},"3":{"name":"punctuation.separator.pointer-access.objcpp"},"4":{"patterns":[{"match":"\\\\.","name":"punctuation.separator.dot-access.objcpp"},{"match":"->","name":"punctuation.separator.pointer-access.objcpp"},{"match":"[a-zA-Z_][a-zA-Z_0-9]*","name":"variable.object.objcpp"},{"match":".+","name":"everything.else.objcpp"}]},"5":{"name":"entity.name.function.member.objcpp"},"6":{"name":"punctuation.section.arguments.begin.bracket.round.function.member.objcpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.function.member.objcpp"}},"name":"meta.function-call.member.objcpp","patterns":[{"include":"#function-call-innards"}]},"block":{"patterns":[{"begin":"{","beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.objcpp"}},"end":"}|(?=\\\\s*#\\\\s*(?:elif|else|endif)\\\\b)","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.objcpp"}},"name":"meta.block.objcpp","patterns":[{"include":"#block_innards"}]}]},"block_innards":{"patterns":[{"include":"#preprocessor-rule-enabled-block"},{"include":"#preprocessor-rule-disabled-block"},{"include":"#preprocessor-rule-conditional-block"},{"include":"#method_access"},{"include":"#member_access"},{"include":"#c_function_call"},{"begin":"(?:(?:(?=\\\\s)(?=+!]+|\\\\(\\\\)|\\\\[\\\\])))\\\\s*(\\\\()","beginCaptures":{"1":{"name":"variable.other.objcpp"},"2":{"name":"punctuation.section.parens.begin.bracket.round.initialization.objcpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.initialization.objcpp"}},"name":"meta.initialization.objcpp","patterns":[{"include":"#function-call-innards"}]},{"begin":"{","beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.objcpp"}},"end":"}|(?=\\\\s*#\\\\s*(?:elif|else|endif)\\\\b)","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.objcpp"}},"patterns":[{"include":"#block_innards"}]},{"include":"#parens-block"},{"include":"$base"}]},"c_function_call":{"begin":"(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\s*\\\\()(?=(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\\\s*\\\\(|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\(\\\\)|\\\\[\\\\]))\\\\s*\\\\()","end":"(?<=\\\\))(?!\\\\w)","name":"meta.function-call.objcpp","patterns":[{"include":"#function-call-innards"}]},"case_statement":{"begin":"((?=+!]+|\\\\(\\\\)|\\\\[\\\\])))\\\\s*(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.objcpp"},"2":{"name":"punctuation.section.arguments.begin.bracket.round.objcpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.objcpp"}},"patterns":[{"include":"#function-call-innards"}]},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.objcpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.objcpp"}},"patterns":[{"include":"#function-call-innards"}]},{"include":"#block_innards"}]},"function-innards":{"patterns":[{"include":"#comments"},{"include":"#storage_types"},{"include":"#operators"},{"include":"#vararg_ellipses"},{"begin":"(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\s*\\\\()((?:[A-Za-z_][A-Za-z0-9_]*+|::)++|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\(\\\\)|\\\\[\\\\])))\\\\s*(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.objcpp"},"2":{"name":"punctuation.section.parameters.begin.bracket.round.objcpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.parameters.end.bracket.round.objcpp"}},"name":"meta.function.definition.parameters.objcpp","patterns":[{"include":"#probably_a_parameter"},{"include":"#function-innards"}]},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.objcpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.objcpp"}},"patterns":[{"include":"#function-innards"}]},{"include":"$base"}]},"line_continuation_character":{"patterns":[{"captures":{"1":{"name":"constant.character.escape.line-continuation.objcpp"}},"match":"(\\\\\\\\)\\\\n"}]},"member_access":{"captures":{"1":{"patterns":[{"include":"#special_variables"},{"match":"(.+)","name":"variable.other.object.access.objcpp"}]},"2":{"name":"punctuation.separator.dot-access.objcpp"},"3":{"name":"punctuation.separator.pointer-access.objcpp"},"4":{"patterns":[{"include":"#member_access"},{"include":"#method_access"},{"captures":{"1":{"patterns":[{"include":"#special_variables"},{"match":"(.+)","name":"variable.other.object.access.objcpp"}]},"2":{"name":"punctuation.separator.dot-access.objcpp"},"3":{"name":"punctuation.separator.pointer-access.objcpp"}},"match":"((?:[a-zA-Z_]\\\\w*|(?<=\\\\]|\\\\)))\\\\s*)(?:((?:\\\\.\\\\*|\\\\.))|((?:->\\\\*|->)))"}]},"5":{"name":"variable.other.member.objcpp"}},"match":"((?:[a-zA-Z_]\\\\w*|(?<=\\\\]|\\\\)))\\\\s*)(?:((?:\\\\.\\\\*|\\\\.))|((?:->\\\\*|->)))((?:[a-zA-Z_]\\\\w*\\\\s*(?-mix:(?:(?:\\\\.\\\\*|\\\\.))|(?:(?:->\\\\*|->)))\\\\s*)*)\\\\s*(\\\\b(?!(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t))[a-zA-Z_]\\\\w*\\\\b(?!\\\\())"},"method_access":{"begin":"((?:[a-zA-Z_]\\\\w*|(?<=\\\\]|\\\\)))\\\\s*)(?:((?:\\\\.\\\\*|\\\\.))|((?:->\\\\*|->)))((?:[a-zA-Z_]\\\\w*\\\\s*(?-mix:(?:(?:\\\\.\\\\*|\\\\.))|(?:(?:->\\\\*|->)))\\\\s*)*)\\\\s*([a-zA-Z_]\\\\w*)(\\\\()","beginCaptures":{"1":{"patterns":[{"include":"#special_variables"},{"match":"(.+)","name":"variable.other.object.access.objcpp"}]},"2":{"name":"punctuation.separator.dot-access.objcpp"},"3":{"name":"punctuation.separator.pointer-access.objcpp"},"4":{"patterns":[{"include":"#member_access"},{"include":"#method_access"},{"captures":{"1":{"patterns":[{"include":"#special_variables"},{"match":"(.+)","name":"variable.other.object.access.objcpp"}]},"2":{"name":"punctuation.separator.dot-access.objcpp"},"3":{"name":"punctuation.separator.pointer-access.objcpp"}},"match":"((?:[a-zA-Z_]\\\\w*|(?<=\\\\]|\\\\)))\\\\s*)(?:((?:\\\\.\\\\*|\\\\.))|((?:->\\\\*|->)))"}]},"5":{"name":"entity.name.function.member.objcpp"},"6":{"name":"punctuation.section.arguments.begin.bracket.round.function.member.objcpp"}},"contentName":"meta.function-call.member.objcpp","end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.function.member.objcpp"}},"patterns":[{"include":"#function-call-innards"}]},"numbers":{"begin":"(?>=|\\\\|=","name":"keyword.operator.assignment.compound.bitwise.objcpp"},{"match":"<<|>>","name":"keyword.operator.bitwise.shift.objcpp"},{"match":"!=|<=|>=|==|<|>","name":"keyword.operator.comparison.objcpp"},{"match":"&&|!|\\\\|\\\\|","name":"keyword.operator.logical.objcpp"},{"match":"&|\\\\||\\\\^|~","name":"keyword.operator.objcpp"},{"match":"=","name":"keyword.operator.assignment.objcpp"},{"match":"%|\\\\*|/|-|\\\\+","name":"keyword.operator.objcpp"},{"begin":"(\\\\?)","beginCaptures":{"1":{"name":"keyword.operator.ternary.objcpp"}},"end":"(:)","endCaptures":{"1":{"name":"keyword.operator.ternary.objcpp"}},"patterns":[{"include":"#function-call-innards"},{"include":"$base"}]}]},"parens":{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.objcpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.objcpp"}},"name":"meta.parens.objcpp","patterns":[{"include":"$base"}]},"parens-block":{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.objcpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.objcpp"}},"name":"meta.parens.block.objcpp","patterns":[{"include":"#block_innards"},{"match":"(?-mix:(?=+!]+|\\\\(\\\\)|\\\\[\\\\]))\\\\s*\\\\()","end":"(?<=\\\\))(?!\\\\w)|(?=+!]+|\\\\(\\\\)|\\\\[\\\\])))\\\\s*(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.objcpp"},"2":{"name":"punctuation.section.arguments.begin.bracket.round.objcpp"}},"end":"(\\\\))|(?\\\\]\\\\)]))\\\\s*([a-zA-Z_]\\\\w*)\\\\s*(?=(?:\\\\[\\\\]\\\\s*)?(?:,|\\\\)))"},"static_assert":{"begin":"(static_assert|_Static_assert)\\\\s*(\\\\()","beginCaptures":{"1":{"name":"keyword.other.static_assert.objcpp"},"2":{"name":"punctuation.section.arguments.begin.bracket.round.objcpp"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.section.arguments.end.bracket.round.objcpp"}},"patterns":[{"begin":"(,)\\\\s*(?=(?:L|u8|u|U\\\\s*\\\\\\")?)","beginCaptures":{"1":{"name":"punctuation.separator.delimiter.objcpp"}},"end":"(?=\\\\))","name":"meta.static_assert.message.objcpp","patterns":[{"include":"#string_context"},{"include":"#string_context_c"}]},{"include":"#function_call_context"}]},"storage_types":{"patterns":[{"match":"(?-mix:(?\\\\[\\\\]=]))","name":"meta.block.switch.objcpp","patterns":[{"begin":"\\\\G ?","end":"((?:\\\\{|(?=;)))","endCaptures":{"1":{"name":"punctuation.section.block.begin.bracket.curly.switch.objcpp"}},"name":"meta.head.switch.objcpp","patterns":[{"include":"#switch_conditional_parentheses"},{"include":"$base"}]},{"begin":"(?<=\\\\{)","end":"(\\\\})","endCaptures":{"1":{"name":"punctuation.section.block.end.bracket.curly.switch.objcpp"}},"name":"meta.body.switch.objcpp","patterns":[{"include":"#default_statement"},{"include":"#case_statement"},{"include":"$base"},{"include":"#block_innards"}]},{"begin":"(?<=})[\\\\s\\\\n]*","end":"[\\\\s\\\\n]*(?=;)","name":"meta.tail.switch.objcpp","patterns":[{"include":"$base"}]}]},"vararg_ellipses":{"match":"(?\\\\\\\\\\\\s*\\\\n)","name":"punctuation.separator.continuation.objcpp"}]}]}]},"cpp_lang":{"patterns":[{"include":"#special_block"},{"include":"#strings"},{"match":"\\\\b(friend|explicit|virtual|override|final|noexcept)\\\\b","name":"storage.modifier.objcpp"},{"match":"\\\\b(private:|protected:|public:)","name":"storage.type.modifier.access.objcpp"},{"match":"\\\\b(catch|try|throw|using)\\\\b","name":"keyword.control.objcpp"},{"match":"\\\\bdelete\\\\b(\\\\s*\\\\[\\\\])?|\\\\bnew\\\\b(?!])","name":"keyword.control.objcpp"},{"match":"\\\\b(f|m)[A-Z]\\\\w*\\\\b","name":"variable.other.readwrite.member.objcpp"},{"match":"\\\\bthis\\\\b","name":"variable.language.this.objcpp"},{"match":"\\\\bnullptr\\\\b","name":"constant.language.objcpp"},{"include":"#template_definition"},{"match":"\\\\btemplate\\\\b\\\\s*","name":"storage.type.template.objcpp"},{"match":"\\\\b(const_cast|dynamic_cast|reinterpret_cast|static_cast)\\\\b\\\\s*","name":"keyword.operator.cast.objcpp"},{"captures":{"1":{"name":"entity.scope.objcpp"},"2":{"name":"entity.scope.name.objcpp"},"3":{"name":"punctuation.separator.namespace.access.objcpp"}},"match":"((?:[a-zA-Z_][a-zA-Z_0-9]*::)*)([a-zA-Z_][a-zA-Z_0-9]*)(::)","name":"punctuation.separator.namespace.access.objcpp"},{"match":"\\\\b(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\b","name":"keyword.operator.objcpp"},{"match":"\\\\b(decltype|wchar_t|char16_t|char32_t)\\\\b","name":"storage.type.objcpp"},{"match":"\\\\b(constexpr|export|mutable|typename|thread_local)\\\\b","name":"storage.modifier.objcpp"},{"begin":"(?:^|(?:(?","name":"meta.angle-brackets.objcpp","patterns":[{"include":"#angle_brackets"},{"include":"$base"}]},"block":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.objcpp"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.objcpp"}},"name":"meta.block.objcpp","patterns":[{"captures":{"1":{"name":"support.function.any-method.objcpp"},"2":{"name":"punctuation.definition.parameters.objcpp"}},"match":"((?!while|for|do|if|else|switch|catch|enumerate|return|r?iterate)(?:\\\\b[A-Za-z_][A-Za-z0-9_]*+\\\\b|::)*+)\\\\s*(\\\\()","name":"meta.function-call.objcpp"},{"include":"$base"}]},"constructor":{"patterns":[{"begin":"(?:^\\\\s*)((?!while|for|do|if|else|switch|catch|enumerate|r?iterate)[A-Za-z_][A-Za-z0-9_:]*)\\\\s*(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.constructor.objcpp"},"2":{"name":"punctuation.definition.parameters.begin.objcpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.objcpp"}},"name":"meta.function.constructor.objcpp","patterns":[{"include":"#probably_a_parameter"},{"include":"#function-innards"}]},{"begin":"(:)((?=\\\\s*[A-Za-z_][A-Za-z0-9_:]*\\\\s*(\\\\()))","beginCaptures":{"1":{"name":"punctuation.definition.parameters.objcpp"}},"end":"(?=\\\\{)","name":"meta.function.constructor.initializer-list.objcpp","patterns":[{"include":"$base"}]}]},"special_block":{"patterns":[{"begin":"\\\\b(using)\\\\b\\\\s*(namespace)\\\\b\\\\s*((?:[_A-Za-z][_A-Za-z0-9]*\\\\b(::)?)*)","beginCaptures":{"1":{"name":"keyword.control.objcpp"},"2":{"name":"storage.type.namespace.objcpp"},"3":{"name":"entity.name.type.objcpp"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.statement.objcpp"}},"name":"meta.using-namespace-declaration.objcpp"},{"begin":"\\\\b(namespace)\\\\b\\\\s*([_A-Za-z][_A-Za-z0-9]*\\\\b)?+","beginCaptures":{"1":{"name":"storage.type.namespace.objcpp"},"2":{"name":"entity.name.type.objcpp"}},"captures":{"1":{"name":"keyword.control.namespace.$2.objcpp"}},"end":"(?<=\\\\})|(?=(;|,|\\\\(|\\\\)|>|\\\\[|\\\\]|=))","name":"meta.namespace-block.objcpp","patterns":[{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.scope.objcpp"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.scope.objcpp"}},"patterns":[{"include":"#special_block"},{"include":"#constructor"},{"include":"$base"}]},{"include":"$base"}]},{"begin":"\\\\b(?:(class)|(struct))\\\\b\\\\s*([_A-Za-z][_A-Za-z0-9]*\\\\b)?+(\\\\s*:\\\\s*(public|protected|private)\\\\s*([_A-Za-z][_A-Za-z0-9]*\\\\b)((\\\\s*,\\\\s*(public|protected|private)\\\\s*[_A-Za-z][_A-Za-z0-9]*\\\\b)*))?","beginCaptures":{"1":{"name":"storage.type.class.objcpp"},"2":{"name":"storage.type.struct.objcpp"},"3":{"name":"entity.name.type.objcpp"},"5":{"name":"storage.type.modifier.access.objcpp"},"6":{"name":"entity.name.type.inherited.objcpp"},"7":{"patterns":[{"match":"(public|protected|private)","name":"storage.type.modifier.access.objcpp"},{"match":"[_A-Za-z][_A-Za-z0-9]*","name":"entity.name.type.inherited.objcpp"}]}},"end":"(?<=\\\\})|(?=(;|\\\\(|\\\\)|>|\\\\[|\\\\]|=))","name":"meta.class-struct-block.objcpp","patterns":[{"include":"#angle_brackets"},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.objcpp"}},"end":"(\\\\})(\\\\s*\\\\n)?","endCaptures":{"1":{"name":"punctuation.section.block.end.bracket.curly.objcpp"},"2":{"name":"invalid.illegal.you-forgot-semicolon.objcpp"}},"patterns":[{"include":"#special_block"},{"include":"#constructor"},{"include":"$base"}]},{"include":"$base"}]},{"begin":"\\\\b(extern)(?=\\\\s*\\")","beginCaptures":{"1":{"name":"storage.modifier.objcpp"}},"end":"(?<=\\\\})|(?=\\\\w)|(?=\\\\s*#\\\\s*endif\\\\b)","name":"meta.extern-block.objcpp","patterns":[{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.objcpp"}},"end":"\\\\}|(?=\\\\s*#\\\\s*endif\\\\b)","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.objcpp"}},"patterns":[{"include":"#special_block"},{"include":"$base"}]},{"include":"$base"}]}]},"strings":{"patterns":[{"begin":"(u|u8|U|L)?\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.objcpp"},"1":{"name":"meta.encoding.objcpp"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.objcpp"}},"name":"string.quoted.double.objcpp","patterns":[{"match":"\\\\\\\\u\\\\h{4}|\\\\\\\\U\\\\h{8}","name":"constant.character.escape.objcpp"},{"match":"\\\\\\\\['\\"?\\\\\\\\abfnrtv]","name":"constant.character.escape.objcpp"},{"match":"\\\\\\\\[0-7]{1,3}","name":"constant.character.escape.objcpp"},{"match":"\\\\\\\\x\\\\h+","name":"constant.character.escape.objcpp"},{"include":"#string_placeholder"}]},{"begin":"(u|u8|U|L)?R\\"(?:([^ ()\\\\\\\\\\\\t]{0,16})|([^ ()\\\\\\\\\\\\t]*))\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.objcpp"},"1":{"name":"meta.encoding.objcpp"},"3":{"name":"invalid.illegal.delimiter-too-long.objcpp"}},"end":"\\\\)\\\\2(\\\\3)\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.objcpp"},"1":{"name":"invalid.illegal.delimiter-too-long.objcpp"}},"name":"string.quoted.double.raw.objcpp"}]},"template_definition":{"begin":"\\\\b(template)\\\\s*(<)\\\\s*","beginCaptures":{"1":{"name":"storage.type.template.objcpp"},"2":{"name":"meta.template.angle-brackets.start.objcpp"}},"end":">","endCaptures":{"0":{"name":"meta.template.angle-brackets.end.objcpp"}},"name":"template.definition.objcpp","patterns":[{"include":"#template_definition_argument"}]},"template_definition_argument":{"captures":{"1":{"name":"storage.type.template.objcpp"},"2":{"name":"storage.type.template.objcpp"},"3":{"name":"entity.name.type.template.objcpp"},"4":{"name":"storage.type.template.objcpp"},"5":{"name":"meta.template.operator.ellipsis.objcpp"},"6":{"name":"entity.name.type.template.objcpp"},"7":{"name":"storage.type.template.objcpp"},"8":{"name":"entity.name.type.template.objcpp"},"9":{"name":"keyword.operator.assignment.objcpp"},"10":{"name":"constant.language.objcpp"},"11":{"name":"meta.template.operator.comma.objcpp"}},"match":"\\\\s*(?:([a-zA-Z_][a-zA-Z_0-9]*\\\\s*)|((?:[a-zA-Z_][a-zA-Z_0-9]*\\\\s+)*)([a-zA-Z_][a-zA-Z_0-9]*)|([a-zA-Z_][a-zA-Z_0-9]*)\\\\s*(\\\\.\\\\.\\\\.)\\\\s*([a-zA-Z_][a-zA-Z_0-9]*)|((?:[a-zA-Z_][a-zA-Z_0-9]*\\\\s+)*)([a-zA-Z_][a-zA-Z_0-9]*)\\\\s*(=)\\\\s*(\\\\w+))(,|(?=>))"}}},"cpp_lang_newish":{"patterns":[{"include":"#special_block"},{"match":"(?-mix:##[a-zA-Z_]\\\\w*(?!\\\\w))","name":"variable.other.macro.argument.objcpp"},{"include":"#strings"},{"match":"(?[a-zA-Z_$][\\\\w$]*))(?:(\\\\()(\\\\s*\\\\g\\\\s*((,)\\\\s*\\\\g\\\\s*)*(?:\\\\.\\\\.\\\\.)?)(\\\\)))?","beginCaptures":{"1":{"name":"keyword.control.directive.define.objcpp"},"2":{"name":"punctuation.definition.directive.objcpp"},"3":{"name":"entity.name.function.preprocessor.objcpp"},"5":{"name":"punctuation.definition.parameters.begin.objcpp"},"6":{"name":"variable.parameter.preprocessor.objcpp"},"8":{"name":"punctuation.separator.parameters.objcpp"},"9":{"name":"punctuation.definition.parameters.end.objcpp"}},"end":"(?=(?://|/\\\\*))|(?","endCaptures":{"0":{"name":"punctuation.definition.string.end.objcpp"}},"name":"string.quoted.other.lt-gt.include.objcpp"}]},{"include":"#pragma-mark"},{"begin":"^\\\\s*((#)\\\\s*line)\\\\b","beginCaptures":{"1":{"name":"keyword.control.directive.line.objcpp"},"2":{"name":"punctuation.definition.directive.objcpp"}},"end":"(?=(?://|/\\\\*))|(?","name":"punctuation.separator.pointer-access.objcpp"},{"match":"[a-zA-Z_]\\\\w*","name":"variable.other.object.objcpp"},{"match":".+","name":"everything.else.objcpp"}]},"5":{"name":"variable.other.member.objcpp"}},"match":"(?:(?:([a-zA-Z_]\\\\w*)|(?<=\\\\]|\\\\))))\\\\s*(?:(?:((?:(?:\\\\.|\\\\.\\\\*)))|((?:(?:->|->\\\\*)))))\\\\s*((?:[a-zA-Z_]\\\\w*\\\\s*(?:(?:\\\\.|->))\\\\s*)*)\\\\b(?!(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t))([a-zA-Z_]\\\\w*)\\\\b(?!\\\\()","name":"variable.other.object.access.objcpp"},"access-method":{"begin":"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\\\]\\\\)]))\\\\s*(?:(\\\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\\\s*(?:(?:\\\\.)|(?:->)))*)\\\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\\\()","beginCaptures":{"1":{"name":"variable.other.object.objcpp"},"2":{"name":"punctuation.separator.dot-access.objcpp"},"3":{"name":"punctuation.separator.pointer-access.objcpp"},"4":{"patterns":[{"match":"\\\\.","name":"punctuation.separator.dot-access.objcpp"},{"match":"->","name":"punctuation.separator.pointer-access.objcpp"},{"match":"[a-zA-Z_][a-zA-Z_0-9]*","name":"variable.other.object.objcpp"},{"match":".+","name":"everything.else.objcpp"}]},"5":{"name":"entity.name.function.member.objcpp"},"6":{"name":"punctuation.section.arguments.begin.bracket.round.function.member.objcpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.function.member.objcpp"}},"name":"meta.function-call.member.objcpp","patterns":[{"include":"#function-call-innards-c"}]},"angle_brackets":{"begin":"<","end":">","name":"meta.angle-brackets.objcpp","patterns":[{"include":"#angle_brackets"},{"include":"$base"}]},"block":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.objcpp"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.objcpp"}},"name":"meta.block.objcpp","patterns":[{"captures":{"1":{"name":"support.function.any-method.objcpp"},"2":{"name":"punctuation.definition.parameters.objcpp"}},"match":"((?!while|for|do|if|else|switch|catch|return)(?:\\\\b[A-Za-z_][A-Za-z0-9_]*+\\\\b|::)*+)\\\\s*(\\\\()","name":"meta.function-call.objcpp"},{"include":"$base"}]},"block-c":{"patterns":[{"begin":"{","beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.objcpp"}},"end":"}|(?=\\\\s*#\\\\s*(?:elif|else|endif)\\\\b)","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.objcpp"}},"name":"meta.block.objcpp","patterns":[{"include":"#block_innards-c"}]}]},"block_innards-c":{"patterns":[{"include":"#preprocessor-rule-enabled-block"},{"include":"#preprocessor-rule-disabled-block"},{"include":"#preprocessor-rule-conditional-block"},{"include":"#access-method"},{"include":"#access-member"},{"include":"#c_function_call"},{"begin":"(?:(?:(?=\\\\s)(?=+!]+|\\\\(\\\\)|\\\\[\\\\])))\\\\s*(\\\\()","beginCaptures":{"1":{"name":"variable.other.objcpp"},"2":{"name":"punctuation.section.parens.begin.bracket.round.initialization.objcpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.initialization.objcpp"}},"name":"meta.initialization.objcpp","patterns":[{"include":"#function-call-innards-c"}]},{"begin":"{","beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.objcpp"}},"end":"}|(?=\\\\s*#\\\\s*(?:elif|else|endif)\\\\b)","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.objcpp"}},"patterns":[{"include":"#block_innards-c"}]},{"include":"#parens-block-c"},{"include":"$base"}]},"c_function_call":{"begin":"(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\s*\\\\()(?=(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\\\s*(?:(?:<(?:[\\\\s<>,\\\\w])*>\\\\s*))?\\\\(|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\(\\\\)|\\\\[\\\\]))\\\\s*\\\\()","end":"(?<=\\\\))(?!\\\\w)","name":"meta.function-call.objcpp","patterns":[{"include":"#function-call-innards-c"}]},"comments-c":{"patterns":[{"captures":{"1":{"name":"meta.toc-list.banner.block.objcpp"}},"match":"^/\\\\* =(\\\\s*.*?)\\\\s*= \\\\*/$\\\\n?","name":"comment.block.objcpp"},{"begin":"/\\\\*","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.objcpp"}},"end":"\\\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.end.objcpp"}},"name":"comment.block.objcpp"},{"captures":{"1":{"name":"meta.toc-list.banner.line.objcpp"}},"match":"^// =(\\\\s*.*?)\\\\s*=\\\\s*$\\\\n?","name":"comment.line.banner.objcpp"},{"begin":"(^[ \\\\t]+)?(?=//)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.objcpp"}},"end":"(?!\\\\G)","patterns":[{"begin":"//","beginCaptures":{"0":{"name":"punctuation.definition.comment.objcpp"}},"end":"(?=\\\\n)","name":"comment.line.double-slash.objcpp","patterns":[{"include":"#line_continuation_character"}]}]}]},"constants":{"match":"(?,\\\\w])*>\\\\s*))?)|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\(\\\\)|\\\\[\\\\])))\\\\s*(\\\\()","beginCaptures":{"1":{"name":"keyword.operator.memory.new.objcpp"},"2":{"patterns":[{"include":"#template_call_innards"}]},"3":{"name":"punctuation.section.arguments.begin.bracket.round.objcpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.objcpp"}},"patterns":[{"include":"#function-call-innards-c"}]},{"begin":"(?,\\\\w])*>\\\\s*))?::)*)\\\\s*([a-zA-Z_]\\\\w*)\\\\s*(?:((?:<(?:[\\\\s<>,\\\\w])*>\\\\s*)))?(\\\\()","beginCaptures":{"1":{"patterns":[{"include":"#scope_resolution"}]},"2":{"name":"entity.name.function.call.objcpp"},"3":{"patterns":[{"include":"#template_call_innards"}]},"4":{"name":"punctuation.section.arguments.begin.bracket.round.objcpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.objcpp"}},"patterns":[{"include":"#function-call-innards-c"}]},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.objcpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.objcpp"}},"patterns":[{"include":"#function-call-innards-c"}]},{"include":"#block_innards-c"}]},"function-innards-c":{"patterns":[{"include":"#comments-c"},{"include":"#storage_types_c"},{"include":"#operators"},{"include":"#vararg_ellipses-c"},{"begin":"(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\s*\\\\()((?:[A-Za-z_][A-Za-z0-9_]*+|::)++|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\(\\\\)|\\\\[\\\\])))\\\\s*(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.objcpp"},"2":{"name":"punctuation.section.parameters.begin.bracket.round.objcpp"}},"end":"\\\\)|:","endCaptures":{"0":{"name":"punctuation.section.parameters.end.bracket.round.objcpp"}},"name":"meta.function.definition.parameters.objcpp","patterns":[{"include":"#probably_a_parameter"},{"include":"#function-innards-c"}]},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.objcpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.objcpp"}},"patterns":[{"include":"#function-innards-c"}]},{"include":"$base"}]},"line_continuation_character":{"patterns":[{"captures":{"1":{"name":"constant.character.escape.line-continuation.objcpp"}},"match":"(\\\\\\\\)\\\\n"}]},"literal_numeric_seperator":{"match":"(?,\\\\w])*>\\\\s*))?::)*)\\\\s*(operator)((?:(?:\\\\s*(?:\\\\+\\\\+|\\\\-\\\\-|\\\\(\\\\)|\\\\[\\\\]|\\\\->|\\\\+\\\\+|\\\\-\\\\-|\\\\+|\\\\-|!|~|\\\\*|&|\\\\->\\\\*|\\\\*|\\\\/|%|\\\\+|\\\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\\\^|\\\\||&&|\\\\|\\\\||=|\\\\+=|\\\\-=|\\\\*=|\\\\/=|%=|<<=|>>=|&=|\\\\^=|\\\\|=|,)|\\\\s+(?:(?:(?:new|new\\\\[\\\\]|delete|delete\\\\[\\\\])|(?:[a-zA-Z_]\\\\w*\\\\s*(?:(?:<(?:[\\\\s<>,\\\\w])*>\\\\s*))?::)*[a-zA-Z_]\\\\w*\\\\s*(?:&)?)))))\\\\s*(\\\\()","beginCaptures":{"1":{"name":"entity.scope.objcpp"},"2":{"name":"keyword.other.operator.overload.objcpp"},"3":{"name":"entity.name.operator.overloadee.objcpp"},"4":{"name":"punctuation.section.parameters.begin.bracket.round.objcpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.parameters.end.bracket.round.objcpp"}},"name":"meta.function.definition.parameters.operator-overload.objcpp","patterns":[{"include":"#probably_a_parameter"},{"include":"#function-innards-c"}]},"operators":{"patterns":[{"match":"(?-mix:(?>=|\\\\|=","name":"keyword.operator.assignment.compound.bitwise.objcpp"},{"match":"<<|>>","name":"keyword.operator.bitwise.shift.objcpp"},{"match":"!=|<=|>=|==|<|>","name":"keyword.operator.comparison.objcpp"},{"match":"&&|!|\\\\|\\\\|","name":"keyword.operator.logical.objcpp"},{"match":"&|\\\\||\\\\^|~","name":"keyword.operator.objcpp"},{"match":"=","name":"keyword.operator.assignment.objcpp"},{"match":"%|\\\\*|/|-|\\\\+","name":"keyword.operator.objcpp"},{"applyEndPatternLast":true,"begin":"\\\\?","beginCaptures":{"0":{"name":"keyword.operator.ternary.objcpp"}},"end":":","endCaptures":{"0":{"name":"keyword.operator.ternary.objcpp"}},"patterns":[{"include":"#access-method"},{"include":"#access-member"},{"include":"#c_function_call"},{"include":"$base"}]}]},"parens-block-c":{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.objcpp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.objcpp"}},"name":"meta.block.parens.objcpp","patterns":[{"include":"#block_innards-c"},{"match":"(?=+!]+|\\\\(\\\\)|\\\\[\\\\]))\\\\s*\\\\()","end":"(?<=\\\\))(?!\\\\w)|(?=+!]+|\\\\(\\\\)|\\\\[\\\\])))\\\\s*(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.objcpp"},"2":{"name":"punctuation.section.arguments.begin.bracket.round.objcpp"}},"end":"(\\\\))|(?\\\\]\\\\)])\\\\s*([a-zA-Z_]\\\\w*)\\\\s*(?=(?:\\\\[\\\\]\\\\s*)?(?:(?:,|\\\\))))))"},"scope_resolution":{"captures":{"1":{"patterns":[{"include":"#scope_resolution"}]},"2":{"name":"entity.name.namespace.scope-resolution.objcpp"},"3":{"patterns":[{"include":"#template_call_innards"}]},"4":{"name":"punctuation.separator.namespace.access.objcpp"}},"match":"((?:[a-zA-Z_]\\\\w*\\\\s*(?:(?:<(?:[\\\\s<>,\\\\w])*>\\\\s*))?::)*\\\\s*)([a-zA-Z_]\\\\w*)\\\\s*((?:<(?:[\\\\s<>,\\\\w])*>\\\\s*))?(::)","name":"meta.scope-resolution.objcpp"},"special_block":{"patterns":[{"begin":"\\\\b(using)\\\\s+(namespace)\\\\s+(?:((?:[a-zA-Z_]\\\\w*\\\\s*(?:(?:<(?:[\\\\s<>,\\\\w])*>\\\\s*))?::)*)\\\\s*)?((?,\\\\w])*>\\\\s*))?::)*[a-zA-Z_]\\\\w*)|(?={)))","beginCaptures":{"1":{"name":"keyword.other.namespace.definition.objcpp storage.type.namespace.definition.objcpp"},"2":{"patterns":[{"match":"(?-mix:(?|\\\\[|\\\\]|=))","name":"meta.namespace-block.objcpp","patterns":[{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.scope.objcpp"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.scope.objcpp"}},"patterns":[{"include":"#special_block"},{"include":"#constructor"},{"include":"$base"}]},{"include":"$base"}]},{"begin":"\\\\b(?:(class)|(struct))\\\\b\\\\s*([_A-Za-z][_A-Za-z0-9]*\\\\b)?+(\\\\s*:\\\\s*(public|protected|private)\\\\s*([_A-Za-z][_A-Za-z0-9]*\\\\b)((\\\\s*,\\\\s*(public|protected|private)\\\\s*[_A-Za-z][_A-Za-z0-9]*\\\\b)*))?","beginCaptures":{"1":{"name":"storage.type.class.objcpp"},"2":{"name":"storage.type.struct.objcpp"},"3":{"name":"entity.name.type.objcpp"},"5":{"name":"storage.type.modifier.access.objcpp"},"6":{"name":"entity.name.type.inherited.objcpp"},"7":{"patterns":[{"match":"(public|protected|private)","name":"storage.type.modifier.access.objcpp"},{"match":"[_A-Za-z][_A-Za-z0-9]*","name":"entity.name.type.inherited.objcpp"}]}},"end":"(?<=\\\\})|(;)|(?=(\\\\(|\\\\)|>|\\\\[|\\\\]|=))","endCaptures":{"1":{"name":"punctuation.terminator.statement.objcpp"}},"name":"meta.class-struct-block.objcpp","patterns":[{"include":"#angle_brackets"},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.objcpp"}},"end":"(\\\\})(\\\\s*\\\\n)?","endCaptures":{"1":{"name":"punctuation.section.block.end.bracket.curly.objcpp"},"2":{"name":"invalid.illegal.you-forgot-semicolon.objcpp"}},"patterns":[{"include":"#special_block"},{"include":"#constructor"},{"include":"$base"}]},{"include":"$base"}]},{"begin":"\\\\b(extern)(?=\\\\s*\\")","beginCaptures":{"1":{"name":"storage.modifier.objcpp"}},"end":"(?<=\\\\})|(?=\\\\w)|(?=\\\\s*#\\\\s*endif\\\\b)","name":"meta.extern-block.objcpp","patterns":[{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.objcpp"}},"end":"\\\\}|(?=\\\\s*#\\\\s*endif\\\\b)","endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.objcpp"}},"patterns":[{"include":"#special_block"},{"include":"$base"}]},{"include":"$base"}]}]},"storage_types_c":{"patterns":[{"match":"(?,\\\\w])*>\\\\s*"},"template_definition":{"begin":"(?-mix:(?))","endCaptures":{"1":{"name":"punctuation.section.angle-brackets.end.template.definition.objcpp"}},"name":"meta.template.definition.objcpp","patterns":[{"include":"#scope_resolution"},{"include":"#template_definition_argument"},{"include":"#template_call_innards"}]},"template_definition_argument":{"captures":{"2":{"name":"storage.type.template.argument.$1.objcpp"},"3":{"name":"storage.type.template.argument.$2.objcpp"},"4":{"name":"entity.name.type.template.objcpp"},"5":{"name":"storage.type.template.objcpp"},"6":{"name":"keyword.operator.ellipsis.template.definition.objcpp"},"7":{"name":"entity.name.type.template.objcpp"},"8":{"name":"storage.type.template.objcpp"},"9":{"name":"entity.name.type.template.objcpp"},"10":{"name":"keyword.operator.assignment.objcpp"},"11":{"name":"constant.other.objcpp"},"12":{"name":"punctuation.separator.comma.template.argument.objcpp"}},"match":"((?:(?:(?:(?:(?:(?:\\\\s*([a-zA-Z_]\\\\w*)|((?:[a-zA-Z_]\\\\w*\\\\s+)+)([a-zA-Z_]\\\\w*)))|([a-zA-Z_]\\\\w*)\\\\s*(\\\\.\\\\.\\\\.)\\\\s*([a-zA-Z_]\\\\w*)))|((?:[a-zA-Z_]\\\\w*\\\\s+)*)([a-zA-Z_]\\\\w*)\\\\s*([=])\\\\s*(\\\\w+)))\\\\s*(?:(?:(,)|(?=>))))"},"vararg_ellipses-c":{"match":"(?)","endCaptures":{"1":{"name":"punctuation.section.scope.end.objcpp"}},"name":"meta.protocol-list.objcpp","patterns":[{"match":"\\\\bNS(GlyphStorage|M(utableCopying|enuItem)|C(hangeSpelling|o(ding|pying|lorPicking(Custom|Default)))|T(oolbarItemValidations|ext(Input|AttachmentCell))|I(nputServ(iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(CTypeSerializationCallBack|ect)|D(ecimalNumberBehaviors|raggingInfo)|U(serInterfaceValidations|RL(HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(ToobarItem|UserInterfaceItem)|Locking)\\\\b","name":"support.other.protocol.objcpp"}]},"protocol_type_qualifier":{"match":"\\\\b(in|out|inout|oneway|bycopy|byref|nonnull|nullable|_Nonnull|_Nullable|_Null_unspecified)\\\\b","name":"storage.modifier.protocol.objcpp"},"special_variables":{"patterns":[{"match":"\\\\b_cmd\\\\b","name":"variable.other.selector.objcpp"},{"match":"\\\\b(self|super)\\\\b","name":"variable.language.objcpp"}]},"string_escaped_char":{"patterns":[{"match":"\\\\\\\\(\\\\\\\\|[abefnprtv'\\"?]|[0-3]\\\\d{,2}|[4-7]\\\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8})","name":"constant.character.escape.objcpp"},{"match":"\\\\\\\\.","name":"invalid.illegal.unknown-escape.objcpp"}]},"string_placeholder":{"patterns":[{"match":"%(\\\\d+\\\\$)?[#0\\\\- +']*[,;:_]?((-?\\\\d+)|\\\\*(-?\\\\d+\\\\$)?)?(\\\\.((-?\\\\d+)|\\\\*(-?\\\\d+\\\\$)?)?)?(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?[diouxXDOUeEfFgGaACcSspn%]","name":"constant.other.placeholder.objcpp"},{"captures":{"1":{"name":"invalid.illegal.placeholder.objcpp"}},"match":"(%)(?!\\"\\\\s*(PRI|SCN))"}]}},"scopeName":"source.objcpp"}`)),n=[e];export{n as default}; ================================================ FILE: jesse/static/_nuxt/BVUVsWT6.js ================================================ const t=Object.freeze(JSON.parse('{"displayName":"Typst","name":"typst","patterns":[{"include":"#markup"}],"repository":{"arguments":{"patterns":[{"match":"\\\\b[[:alpha:]_][[:alnum:]_-]*(?=:)","name":"variable.parameter.typst"},{"include":"#code"}]},"code":{"patterns":[{"include":"#common"},{"begin":"{","captures":{"0":{"name":"punctuation.definition.block.code.typst"}},"end":"}","name":"meta.block.code.typst","patterns":[{"include":"#code"}]},{"begin":"\\\\[","captures":{"0":{"name":"punctuation.definition.block.content.typst"}},"end":"\\\\]","name":"meta.block.content.typst","patterns":[{"include":"#markup"}]},{"begin":"//","beginCaptures":{"0":{"name":"punctuation.definition.comment.typst"}},"end":"\\n","name":"comment.line.double-slash.typst"},{"match":":","name":"punctuation.separator.colon.typst"},{"match":",","name":"punctuation.separator.comma.typst"},{"match":"=>|\\\\.\\\\.","name":"keyword.operator.typst"},{"match":"==|!=|<=|<|>=|>","name":"keyword.operator.relational.typst"},{"match":"\\\\+=|-=|\\\\*=|/=|=","name":"keyword.operator.assignment.typst"},{"match":"\\\\+|\\\\*|/|(?","name":"entity.other.label.typst"},{"captures":{"1":{"name":"punctuation.definition.reference.typst"}},"match":"(@)[[:alpha:]_][[:alnum:]_-]*","name":"entity.other.reference.typst"},{"begin":"(#)(let|set|show)\\\\b","beginCaptures":{"0":{"name":"keyword.other.typst"},"1":{"name":"punctuation.definition.keyword.typst"}},"end":"\\n|(;)|(?=])","endCaptures":{"1":{"name":"punctuation.terminator.statement.typst"}},"patterns":[{"include":"#code"}]},{"captures":{"1":{"name":"punctuation.definition.keyword.typst"}},"match":"(#)(as|in)\\\\b","name":"keyword.other.typst"},{"begin":"((#)if|(?<=(}|])\\\\s*)else)\\\\b","beginCaptures":{"0":{"name":"keyword.control.conditional.typst"},"2":{"name":"punctuation.definition.keyword.typst"}},"end":"\\n|(?=])|(?<=}|])","patterns":[{"include":"#code"}]},{"begin":"(#)(for|while)\\\\b","beginCaptures":{"0":{"name":"keyword.control.loop.typst"},"1":{"name":"punctuation.definition.keyword.typst"}},"end":"\\n|(?=])|(?<=}|])","patterns":[{"include":"#code"}]},{"captures":{"1":{"name":"punctuation.definition.keyword.typst"}},"match":"(#)(break|continue)\\\\b","name":"keyword.control.loop.typst"},{"begin":"(#)(import|include|export)\\\\b","beginCaptures":{"0":{"name":"keyword.control.import.typst"},"1":{"name":"punctuation.definition.keyword.typst"}},"end":"\\n|(;)|(?=])","endCaptures":{"1":{"name":"punctuation.terminator.statement.typst"}},"patterns":[{"include":"#code"}]},{"captures":{"1":{"name":"punctuation.definition.keyword.typst"}},"match":"(#)(return)\\\\b","name":"keyword.control.flow.typst"},{"captures":{"2":{"name":"punctuation.definition.function.typst"}},"comment":"Function name","match":"((#)[[:alpha:]_][[:alnum:]_-]*!?)(?=\\\\[|\\\\()","name":"entity.name.function.typst"},{"begin":"(?<=#[[:alpha:]_][[:alnum:]_-]*!?)\\\\(","captures":{"0":{"name":"punctuation.definition.group.typst"}},"comment":"Function arguments","end":"\\\\)","patterns":[{"include":"#arguments"}]},{"captures":{"1":{"name":"punctuation.definition.variable.typst"}},"match":"(#)[[:alpha:]_][.[:alnum:]_-]*","name":"entity.other.interpolated.typst"},{"begin":"#","end":"\\\\s","name":"meta.block.content.typst","patterns":[{"include":"#code"}]}]}},"scopeName":"source.typst","aliases":["typ"]}')),n=[t];export{n as default}; ================================================ FILE: jesse/static/_nuxt/BVr_1_27.js ================================================ import e from"./BMYPR7BL.js";import n from"./BPhBrDlE.js";import t from"./BQoSv7ci.js";import i from"./ySlJ1b_l.js";const a=Object.freeze(JSON.parse(`{"displayName":"Liquid","fileTypes":["liquid"],"foldingStartMarker":"{%-?\\\\s*(capture|case|comment|for|form|if|javascript|paginate|schema|style)[^(%})]+%}","foldingStopMarker":"{%\\\\s*(endcapture|endcase|endcomment|endfor|endform|endif|endjavascript|endpaginate|endschema|endstyle)[^(%})]+%}","injections":{"L:meta.embedded.block.js, L:meta.embedded.block.css, L:meta.embedded.block.html, L:string.quoted":{"patterns":[{"include":"#injection"}]}},"name":"liquid","patterns":[{"include":"#core"}],"repository":{"attribute":{"begin":"\\\\w+:","beginCaptures":{"0":{"name":"entity.other.attribute-name.liquid"}},"end":"(?=,|%}|}}|\\\\|)","patterns":[{"include":"#value_expression"}]},"attribute_liquid":{"begin":"\\\\w+:","beginCaptures":{"0":{"name":"entity.other.attribute-name.liquid"}},"end":"(?=,|\\\\|)|$","patterns":[{"include":"#value_expression"}]},"comment_block":{"begin":"{%-?\\\\s*comment\\\\s*-?%}","end":"{%-?\\\\s*endcomment\\\\s*-?%}","name":"comment.block.liquid","patterns":[{"include":"#comment_block"},{"match":"(.(?!{%-?\\\\s*(comment|endcomment)\\\\s*-?%}))*."}]},"core":{"patterns":[{"include":"#raw_tag"},{"include":"#doc_tag"},{"include":"#comment_block"},{"include":"#style_codefence"},{"include":"#stylesheet_codefence"},{"include":"#json_codefence"},{"include":"#javascript_codefence"},{"include":"#object"},{"include":"#tag"},{"include":"text.html.basic"}]},"doc_tag":{"begin":"{%-?\\\\s*(doc)\\\\s*-?%}","beginCaptures":{"0":{"name":"meta.tag.liquid"},"1":{"name":"entity.name.tag.doc.liquid"}},"contentName":"comment.block.documentation.liquid","end":"{%-?\\\\s*(enddoc)\\\\s*-?%}","endCaptures":{"0":{"name":"meta.tag.liquid"},"1":{"name":"entity.name.tag.doc.liquid"}},"name":"meta.block.doc.liquid","patterns":[{"include":"#liquid_doc_param_tag"},{"include":"#liquid_doc_example_tag"},{"include":"#liquid_doc_fallback_tag"}]},"filter":{"captures":{"1":{"name":"support.function.liquid"}},"match":"\\\\|\\\\s*((?![\\\\.0-9])[a-zA-Z0-9_-]+\\\\:?)\\\\s*"},"injection":{"patterns":[{"include":"#raw_tag"},{"include":"#comment_block"},{"include":"#object"},{"include":"#tag_injection"}]},"invalid_range":{"match":"\\\\((.(?!\\\\.\\\\.))+\\\\)","name":"invalid.illegal.range.liquid"},"javascript_codefence":{"begin":"({%-?)\\\\s*(javascript)\\\\s*(-?%})","beginCaptures":{"0":{"name":"meta.tag.metadata.javascript.start.liquid"},"1":{"name":"punctuation.definition.tag.begin.liquid"},"2":{"name":"entity.name.tag.javascript.liquid"},"3":{"name":"punctuation.definition.tag.begin.liquid"}},"contentName":"meta.embedded.block.js","end":"({%-?)\\\\s*(endjavascript)\\\\s*(-?%})","endCaptures":{"0":{"name":"meta.tag.metadata.javascript.end.liquid"},"1":{"name":"punctuation.definition.tag.end.liquid"},"2":{"name":"entity.name.tag.javascript.liquid"},"3":{"name":"punctuation.definition.tag.end.liquid"}},"name":"meta.block.javascript.liquid","patterns":[{"include":"source.js"}]},"json_codefence":{"begin":"({%-?)\\\\s*(schema)\\\\s*(-?%})","beginCaptures":{"0":{"name":"meta.tag.metadata.schema.start.liquid"},"1":{"name":"punctuation.definition.tag.begin.liquid"},"2":{"name":"entity.name.tag.schema.liquid"},"3":{"name":"punctuation.definition.tag.begin.liquid"}},"contentName":"meta.embedded.block.json","end":"({%-?)\\\\s*(endschema)\\\\s*(-?%})","endCaptures":{"0":{"name":"meta.tag.metadata.schema.end.liquid"},"1":{"name":"punctuation.definition.tag.end.liquid"},"2":{"name":"entity.name.tag.schema.liquid"},"3":{"name":"punctuation.definition.tag.end.liquid"}},"name":"meta.block.schema.liquid","patterns":[{"include":"source.json"}]},"language_constant":{"match":"\\\\b(false|true|nil|blank)\\\\b|empty(?!\\\\?)","name":"constant.language.liquid"},"liquid_doc_example_tag":{"captures":{"1":{"name":"storage.type.class.liquid"}},"match":"(@example)\\\\b"},"liquid_doc_fallback_tag":{"captures":{"1":{"name":"storage.type.class.liquid"}},"match":"(@\\\\w+)\\\\b"},"liquid_doc_param_tag":{"captures":{"1":{"name":"storage.type.class.liquid"},"2":{"name":"entity.name.type.instance.liquid"},"3":{"name":"variable.other.liquid"}},"match":"(@param)\\\\s+(?:({[^}]*}?)\\\\s+)?([a-zA-Z_]\\\\w*)?"},"number":{"match":"((-|\\\\+)\\\\s*)?[0-9]+(\\\\.[0-9]+)?","name":"constant.numeric.liquid"},"object":{"begin":"(?|\\\\<|\\\\>\\\\=|\\\\<\\\\=|or|and|contains)(?:(?=\\\\s)|\\\\b)"},"range":{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.section.parens.begin.liquid"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.parens.end.liquid"}},"name":"meta.range.liquid","patterns":[{"match":"\\\\.\\\\.","name":"punctuation.range.liquid"},{"include":"#variable_lookup"},{"include":"#number"}]},"raw_tag":{"begin":"{%-?\\\\s*(raw)\\\\s*-?%}","beginCaptures":{"1":{"name":"entity.name.tag.liquid"}},"contentName":"string.unquoted.liquid","end":"{%-?\\\\s*(endraw)\\\\s*-?%}","endCaptures":{"1":{"name":"entity.name.tag.liquid"}},"name":"meta.entity.tag.raw.liquid","patterns":[{"match":"(.(?!{%-?\\\\s*endraw\\\\s*-?%}))*."}]},"string":{"patterns":[{"include":"#string_single"},{"include":"#string_double"}]},"string_double":{"begin":"\\"","end":"\\"","name":"string.quoted.double.liquid"},"string_single":{"begin":"'","end":"'","name":"string.quoted.single.liquid"},"style_codefence":{"begin":"({%-?)\\\\s*(style)\\\\s*(-?%})","beginCaptures":{"0":{"name":"meta.tag.metadata.style.start.liquid"},"1":{"name":"punctuation.definition.tag.begin.liquid"},"2":{"name":"entity.name.tag.style.liquid"},"3":{"name":"punctuation.definition.tag.begin.liquid"}},"contentName":"meta.embedded.block.css","end":"({%-?)\\\\s*(endstyle)\\\\s*(-?%})","endCaptures":{"0":{"name":"meta.tag.metadata.style.end.liquid"},"1":{"name":"punctuation.definition.tag.end.liquid"},"2":{"name":"entity.name.tag.style.liquid"},"3":{"name":"punctuation.definition.tag.end.liquid"}},"name":"meta.block.style.liquid","patterns":[{"include":"source.css"}]},"stylesheet_codefence":{"begin":"({%-?)\\\\s*(stylesheet)\\\\s*(-?%})","beginCaptures":{"0":{"name":"meta.tag.metadata.style.start.liquid"},"1":{"name":"punctuation.definition.tag.begin.liquid"},"2":{"name":"entity.name.tag.style.liquid"},"3":{"name":"punctuation.definition.tag.begin.liquid"}},"contentName":"meta.embedded.block.css","end":"({%-?)\\\\s*(endstylesheet)\\\\s*(-?%})","endCaptures":{"0":{"name":"meta.tag.metadata.style.end.liquid"},"1":{"name":"punctuation.definition.tag.end.liquid"},"2":{"name":"entity.name.tag.style.liquid"},"3":{"name":"punctuation.definition.tag.end.liquid"}},"name":"meta.block.style.liquid","patterns":[{"include":"source.css"}]},"tag":{"begin":"(?=|<|>)","name":"keyword.operator.comparison.zig"},{"match":"(-%?|\\\\+%?|\\\\*%?|/|%)=?","name":"keyword.operator.arithmetic.zig"},{"match":"(<<%?|>>|!|~|&|\\\\^|\\\\|)=?","name":"keyword.operator.bitwise.zig"},{"match":"(==|\\\\+\\\\+|\\\\*\\\\*|->)","name":"keyword.operator.special.zig"},{"match":"=","name":"keyword.operator.assignment.zig"},{"match":"\\\\?","name":"keyword.operator.question.zig"}]},"punctuation":{"patterns":[{"match":"\\\\.","name":"punctuation.accessor.zig"},{"match":",","name":"punctuation.comma.zig"},{"match":":","name":"punctuation.separator.key-value.zig"},{"match":";","name":"punctuation.terminator.statement.zig"}]},"stringcontent":{"patterns":[{"match":"\\\\\\\\([nrt'\\"\\\\\\\\]|(x[0-9a-fA-F]{2})|(u\\\\{[0-9a-fA-F]+\\\\}))","name":"constant.character.escape.zig"},{"match":"\\\\\\\\.","name":"invalid.illegal.unrecognized-string-escape.zig"}]},"strings":{"patterns":[{"begin":"\\"","end":"\\"","name":"string.quoted.double.zig","patterns":[{"include":"#stringcontent"}]},{"begin":"\\\\\\\\\\\\\\\\","end":"$","name":"string.multiline.zig"},{"match":"'([^'\\\\\\\\]|\\\\\\\\(x\\\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.))'","name":"string.quoted.single.zig"}]},"support":{"patterns":[{"comment":"Built-in functions","match":"@[_a-zA-Z][_a-zA-Z0-9]*","name":"support.function.builtin.zig"}]},"variables":{"patterns":[{"name":"meta.function.declaration.zig","patterns":[{"captures":{"1":{"name":"storage.type.function.zig"},"2":{"name":"entity.name.type.zig"}},"match":"\\\\b(fn)\\\\s+([A-Z][a-zA-Z0-9]*)\\\\b"},{"captures":{"1":{"name":"storage.type.function.zig"},"2":{"name":"entity.name.function.zig"}},"match":"\\\\b(fn)\\\\s+([_a-zA-Z][_a-zA-Z0-9]*)\\\\b"},{"begin":"\\\\b(fn)\\\\s+@\\"","beginCaptures":{"1":{"name":"storage.type.function.zig"}},"end":"\\"","name":"entity.name.function.string.zig","patterns":[{"include":"#stringcontent"}]},{"match":"\\\\b(const|var|fn)\\\\b","name":"keyword.default.zig"}]},{"name":"meta.function.call.zig","patterns":[{"match":"([A-Z][a-zA-Z0-9]*)(?=\\\\s*\\\\()","name":"entity.name.type.zig"},{"match":"([_a-zA-Z][_a-zA-Z0-9]*)(?=\\\\s*\\\\()","name":"entity.name.function.zig"}]},{"name":"meta.variable.zig","patterns":[{"match":"\\\\b[_a-zA-Z][_a-zA-Z0-9]*\\\\b","name":"variable.zig"},{"begin":"@\\"","end":"\\"","name":"variable.string.zig","patterns":[{"include":"#stringcontent"}]}]}]}},"scopeName":"source.zig"}`)),n=[e];export{n as default}; ================================================ FILE: jesse/static/_nuxt/BW0IIeyO.js ================================================ import{d as n,c as p,C as c,g as l,j as r,G as i,H as _,x as d,Q as f}from"./CU_MfyYc.js";const u=n({__name:"CircleProgressbar",props:{progress:{}},setup(o){const e=o,t=p(()=>{let s="progress-circle";return e.progress>50&&(s+=" over50"),s+=` p${Math.round(e.progress)}`,s});return(s,a)=>(l(),c("div",{class:_(d(t))},[r("span",null,i(s.progress)+"%",1),a[0]||(a[0]=r("div",{class:"left-half-clipper"},[r("div",{class:"first50-bar"}),r("div",{class:"value-bar"})],-1))],2))}}),g=f(u,[["__scopeId","data-v-88f4951a"]]);export{g as _}; ================================================ FILE: jesse/static/_nuxt/BWBTHuhh.js ================================================ /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["{","}"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\{\\$REGION(\\s\\'.*\\')?\\}"),end:new RegExp("^\\s*\\{\\$ENDREGION\\}")}}},t={defaultToken:"",tokenPostfix:".pascal",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["absolute","abstract","all","and_then","array","as","asm","attribute","begin","bindable","case","class","const","contains","default","div","else","end","except","exports","external","far","file","finalization","finally","forward","generic","goto","if","implements","import","in","index","inherited","initialization","interrupt","is","label","library","mod","module","name","near","not","object","of","on","only","operator","or_else","otherwise","override","package","packed","pow","private","program","protected","public","published","interface","implementation","qualified","read","record","resident","requires","resourcestring","restricted","segment","set","shl","shr","specialize","stored","strict","then","threadvar","to","try","type","unit","uses","var","view","virtual","dynamic","overload","reintroduce","with","write","xor","true","false","procedure","function","constructor","destructor","property","break","continue","exit","abort","while","do","for","raise","repeat","until"],typeKeywords:["boolean","double","byte","integer","shortint","char","longint","float","string"],operators:["=",">","<","<=",">=","<>",":",":=","and","or","+","-","*","/","@","&","^","%"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\*\}]+/,"comment"],[/\}/,"comment","@pop"],[/[\{]/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\{/,"comment","@comment"],[/\/\/.*$/,"comment"]]}};export{e as conf,t as language}; ================================================ FILE: jesse/static/_nuxt/BX77sIaO.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"Emacs Lisp","fileTypes":["el","elc","eld","spacemacs","_emacs","emacs","emacs.desktop","abbrev_defs","Project.ede","Cask","gnus","viper"],"firstLineMatch":"^\\\\#!.*(?:\\\\s|\\\\/|(?<=!)\\\\b)emacs(?:$|\\\\s)|(?:-\\\\*-(?i:[ \\\\t]*(?=[^:;\\\\s]+[ \\\\t]*-\\\\*-)|(?:.*?[ \\\\t;]|(?<=-\\\\*-))[ \\\\t]*mode[ \\\\t]*:[ \\\\t]*)(?i:emacs-lisp)(?=[ \\\\t;]|(?]?[0-9]+|m)?|[ \\\\t]ex)(?=:(?=[ \\\\t]*set?[ \\\\t][^\\\\r\\\\n:]+:)|:(?![ \\\\t]*set?[ \\\\t]))(?:(?:[ \\\\t]*:[ \\\\t]*|[ \\\\t])\\\\w*(?:[ \\\\t]*=(?:[^\\\\\\\\\\\\s]|\\\\\\\\.)*)?)*[ \\\\t:](?:filetype|ft|syntax)[ \\\\t]*=(?i:emacs-lisp|elisp)(?=$|\\\\s|:))","name":"emacs-lisp","patterns":[{"begin":"\\\\A(#!)","beginCaptures":{"1":{"name":"punctuation.definition.comment.hashbang.emacs.lisp"}},"end":"$","name":"comment.line.hashbang.emacs.lisp"},{"include":"#main"}],"repository":{"archive-sources":{"captures":{"1":{"name":"support.language.constant.archive-source.emacs.lisp"}},"match":"\\\\b(?<=[\\\\s()\\\\[]|^)(SC|gnu|marmalade|melpa-stable|melpa|org)(?=[\\\\s()]|$)\\\\b"},"arg-values":{"patterns":[{"match":"&(optional|rest)(?=\\\\s|\\\\))","name":"constant.language.$1.arguments.emacs.lisp"}]},"autoload":{"begin":"^(;;;###)(autoload)","beginCaptures":{"1":{"name":"punctuation.definition.comment.emacs.lisp"},"2":{"name":"storage.modifier.autoload.emacs.lisp"}},"contentName":"string.unquoted.other.emacs.lisp","end":"$","name":"comment.line.semicolon.autoload.emacs.lisp"},"binding":{"match":"\\\\b(?<=[\\\\s()\\\\[]|^)(let\\\\*?|set[fq]?)(?=[\\\\s()]|$)","name":"storage.binding.emacs.lisp"},"boolean":{"patterns":[{"match":"\\\\b(?<=[\\\\s()\\\\[]|^)t(?=[\\\\s()]|$)\\\\b","name":"constant.boolean.true.emacs.lisp"},{"match":"\\\\b(?<=[\\\\s()\\\\[]|^)(nil)(?=[\\\\s()]|$)\\\\b","name":"constant.language.nil.emacs.lisp"}]},"cask":{"match":"\\\\b(?<=[\\\\s()\\\\[]|^)(?:files|source|development|depends-on|package-file|package-descriptor|package)(?=[\\\\s()]|$)\\\\b","name":"support.function.emacs.lisp"},"comment":{"begin":";","beginCaptures":{"0":{"name":"punctuation.definition.comment.emacs.lisp"}},"end":"$","name":"comment.line.semicolon.emacs.lisp","patterns":[{"include":"#modeline"},{"include":"#eldoc"}]},"definition":{"patterns":[{"begin":"(\\\\()(?:(cl-(defun|defmacro|defsubst))|(defun|defmacro|defsubst))(?!-)\\\\b(?:\\\\s*(?![-+\\\\d])([-+=*/\\\\w~!@$%^&:<>{}?]+))?","beginCaptures":{"1":{"name":"punctuation.section.expression.begin.emacs.lisp"},"2":{"name":"storage.type.$3.function.cl-lib.emacs.lisp"},"4":{"name":"storage.type.$4.function.emacs.lisp"},"5":{"name":"entity.function.name.emacs.lisp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.expression.end.emacs.lisp"}},"name":"meta.function.definition.emacs.lisp","patterns":[{"include":"#defun-innards"}]},{"match":"\\\\b(?<=[\\\\s()\\\\[]|^)defun(?=[\\\\s()]|$)","name":"storage.type.function.emacs.lisp"},{"begin":"(?<=\\\\s|^)(\\\\()(def(advice|class|const|custom|face|image|group|package|struct|subst|theme|type|var))(?:\\\\s+([-+=*/\\\\w~!@$%^&:<>{}?]+))?(?=[\\\\s()]|$)","beginCaptures":{"1":{"name":"punctuation.section.expression.begin.emacs.lisp"},"2":{"name":"storage.type.$3.emacs.lisp"},"4":{"name":"entity.name.$3.emacs.lisp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.expression.end.emacs.lisp"}},"name":"meta.$3.definition.emacs.lisp","patterns":[{"include":"$self"}]},{"match":"\\\\b(?<=[\\\\s()\\\\[]|^)(define-(?:condition|widget))(?=[\\\\s()]|$)\\\\b","name":"storage.type.$1.emacs.lisp"}]},"defun-innards":{"patterns":[{"begin":"\\\\G\\\\s*(\\\\()","beginCaptures":{"0":{"name":"punctuation.section.expression.begin.emacs.lisp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.expression.end.emacs.lisp"}},"name":"meta.argument-list.expression.emacs.lisp","patterns":[{"include":"#arg-keywords"},{"match":"(?![-+\\\\d:&'#])([-+=*/\\\\w~!@$%^&:<>{}?]+)","name":"variable.parameter.emacs.lisp"},{"include":"$self"}]},{"include":"$self"}]},"docesc":{"patterns":[{"match":"\\\\x5C{2}=","name":"constant.escape.character.key-sequence.emacs.lisp"},{"match":"\\\\x5C{2}+","name":"constant.escape.character.suppress-link.emacs.lisp"}]},"dockey":{"captures":{"1":{"name":"punctuation.definition.reference.begin.emacs.lisp"},"2":{"name":"constant.other.reference.link.emacs.lisp"},"3":{"name":"punctuation.definition.reference.end.emacs.lisp"}},"match":"(\\\\x5C{2}\\\\[)((?:[^\\\\s\\\\\\\\]|\\\\\\\\.)+)(\\\\])","name":"variable.other.reference.key-sequence.emacs.lisp"},"docmap":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.reference.begin.emacs.lisp"},"2":{"name":"entity.name.tag.keymap.emacs.lisp"},"3":{"name":"punctuation.definition.reference.end.emacs.lisp"}},"match":"(\\\\x5C{2}{)((?:[^\\\\s\\\\\\\\]|\\\\\\\\.)+)(})","name":"meta.keymap.summary.emacs.lisp"},{"captures":{"1":{"name":"punctuation.definition.reference.begin.emacs.lisp"},"2":{"name":"entity.name.tag.keymap.emacs.lisp"},"3":{"name":"punctuation.definition.reference.end.emacs.lisp"}},"match":"(\\\\x5C{2}<)((?:[^\\\\s\\\\\\\\]|\\\\\\\\.)+)(>)","name":"meta.keymap.specifier.emacs.lisp"}]},"docvar":{"captures":{"1":{"name":"punctuation.definition.quote.begin.emacs.lisp"},"2":{"name":"punctuation.definition.quote.end.emacs.lisp"}},"match":"(\`)[^\\\\s()]+(')","name":"variable.other.literal.emacs.lisp"},"eldoc":{"patterns":[{"include":"#docesc"},{"include":"#docvar"},{"include":"#dockey"},{"include":"#docmap"}]},"escapes":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.codepoint.emacs.lisp"},"2":{"name":"punctuation.definition.codepoint.emacs.lisp"}},"match":"(\\\\?)\\\\\\\\u[A-Fa-f0-9]{4}|(\\\\?)\\\\\\\\U00[A-Fa-f0-9]{6}","name":"constant.character.escape.hex.emacs.lisp"},{"captures":{"1":{"name":"punctuation.definition.codepoint.emacs.lisp"}},"match":"(\\\\?)\\\\\\\\x[A-Fa-f0-9]+","name":"constant.character.escape.hex.emacs.lisp"},{"captures":{"1":{"name":"punctuation.definition.codepoint.emacs.lisp"}},"match":"(\\\\?)\\\\\\\\[0-7]{1,3}","name":"constant.character.escape.octal.emacs.lisp"},{"captures":{"1":{"name":"punctuation.definition.codepoint.emacs.lisp"},"2":{"name":"punctuation.definition.backslash.emacs.lisp"}},"match":"(\\\\?)(?:[^\\\\\\\\]|(\\\\\\\\).)","name":"constant.numeric.codepoint.emacs.lisp"},{"captures":{"1":{"name":"punctuation.definition.backslash.emacs.lisp"}},"match":"(\\\\\\\\).","name":"constant.character.escape.emacs.lisp"}]},"expression":{"patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.section.expression.begin.emacs.lisp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.expression.end.emacs.lisp"}},"name":"meta.expression.emacs.lisp","patterns":[{"include":"$self"}]},{"begin":"(\\\\')(\\\\()","beginCaptures":{"1":{"name":"punctuation.definition.symbol.emacs.lisp"},"2":{"name":"punctuation.section.quoted.expression.begin.emacs.lisp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.quoted.expression.end.emacs.lisp"}},"name":"meta.quoted.expression.emacs.lisp","patterns":[{"include":"$self"}]},{"begin":"(\\\\\`)(\\\\()","beginCaptures":{"1":{"name":"punctuation.definition.symbol.emacs.lisp"},"2":{"name":"punctuation.section.backquoted.expression.begin.emacs.lisp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.backquoted.expression.end.emacs.lisp"}},"name":"meta.backquoted.expression.emacs.lisp","patterns":[{"include":"$self"}]},{"begin":"(,@)(\\\\()","beginCaptures":{"1":{"name":"punctuation.definition.symbol.emacs.lisp"},"2":{"name":"punctuation.section.interpolated.expression.begin.emacs.lisp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.interpolated.expression.end.emacs.lisp"}},"name":"meta.interpolated.expression.emacs.lisp","patterns":[{"include":"$self"}]}]},"face-innards":{"patterns":[{"captures":{"1":{"name":"punctuation.section.expression.begin.emacs.lisp"},"2":{"name":"variable.language.display.type.emacs.lisp"},"3":{"name":"support.constant.display.type.emacs.lisp"},"4":{"name":"punctuation.section.expression.end.emacs.lisp"}},"match":"(\\\\()(type)\\\\s+(graphic|x|pc|w32|tty)(\\\\))","name":"meta.expression.display-type.emacs.lisp"},{"captures":{"1":{"name":"punctuation.section.expression.begin.emacs.lisp"},"2":{"name":"variable.language.display.class.emacs.lisp"},"3":{"name":"support.constant.display.class.emacs.lisp"},"4":{"name":"punctuation.section.expression.end.emacs.lisp"}},"match":"(\\\\()(class)\\\\s+(color|grayscale|mono)(\\\\))","name":"meta.expression.display-class.emacs.lisp"},{"captures":{"1":{"name":"punctuation.section.expression.begin.emacs.lisp"},"2":{"name":"variable.language.background-type.emacs.lisp"},"3":{"name":"support.constant.background-type.emacs.lisp"},"4":{"name":"punctuation.section.expression.end.emacs.lisp"}},"match":"(\\\\()(background)\\\\s+(light|dark)(\\\\))","name":"meta.expression.background-type.emacs.lisp"},{"begin":"(\\\\()(min-colors|supports)(?=[\\\\s()]|$)","beginCaptures":{"1":{"name":"punctuation.section.expression.begin.emacs.lisp"},"2":{"name":"variable.language.display-prerequisite.emacs.lisp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.expression.end.emacs.lisp"}},"name":"meta.expression.display-prerequisite.emacs.lisp","patterns":[{"include":"$self"}]}]},"faces":{"match":"\\\\b(?<=[\\\\s()\\\\[]|^)(?:Buffer-menu-buffer|Info-quoted|Info-title-1-face|Info-title-2-face|Info-title-3-face|Info-title-4-face|Man-overstrike|Man-reverse|Man-underline|antlr-default|antlr-font-lock-default-face|antlr-font-lock-keyword-face|antlr-font-lock-literal-face|antlr-font-lock-ruledef-face|antlr-font-lock-ruleref-face|antlr-font-lock-syntax-face|antlr-font-lock-tokendef-face|antlr-font-lock-tokenref-face|antlr-keyword|antlr-literal|antlr-ruledef|antlr-ruleref|antlr-syntax|antlr-tokendef|antlr-tokenref|apropos-keybinding|apropos-property|apropos-symbol|bat-label-face|bg:erc-color-face0|bg:erc-color-face1|bg:erc-color-face10|bg:erc-color-face11|bg:erc-color-face12|bg:erc-color-face13|bg:erc-color-face14|bg:erc-color-face15|bg:erc-color-face2|bg:erc-color-face3|bg:erc-color-face4|bg:erc-color-face5|bg:erc-color-face6|bg:erc-color-face7|bg:erc-color-face8|bg:erc-color-face9|bold-italic|bold|bookmark-menu-bookmark|bookmark-menu-heading|border|breakpoint-disabled|breakpoint-enabled|buffer-menu-buffer|button|c-annotation-face|calc-nonselected-face|calc-selected-face|calendar-month-header|calendar-today|calendar-weekday-header|calendar-weekend-header|change-log-acknowledgement-face|change-log-acknowledgement|change-log-acknowledgment|change-log-conditionals-face|change-log-conditionals|change-log-date-face|change-log-date|change-log-email-face|change-log-email|change-log-file-face|change-log-file|change-log-function-face|change-log-function|change-log-list-face|change-log-list|change-log-name-face|change-log-name|comint-highlight-input|comint-highlight-prompt|compare-windows|compilation-column-number|compilation-error|compilation-info|compilation-line-number|compilation-mode-line-exit|compilation-mode-line-fail|compilation-mode-line-run|compilation-warning|completions-annotations|completions-common-part|completions-first-difference|cperl-array-face|cperl-hash-face|cperl-nonoverridable-face|css-property|css-selector|cua-global-mark|cua-rectangle-noselect|cua-rectangle|cursor|custom-button-mouse|custom-button-pressed-unraised|custom-button-pressed|custom-button-unraised|custom-button|custom-changed|custom-comment-tag|custom-comment|custom-documentation|custom-face-tag|custom-group-subtitle|custom-group-tag-1|custom-group-tag|custom-invalid|custom-link|custom-modified|custom-rogue|custom-saved|custom-set|custom-state|custom-themed|custom-variable-button|custom-variable-tag|custom-visibility|cvs-filename-face|cvs-filename|cvs-handled-face|cvs-handled|cvs-header-face|cvs-header|cvs-marked-face|cvs-marked|cvs-msg-face|cvs-msg|cvs-need-action-face|cvs-need-action|cvs-unknown-face|cvs-unknown|default|diary-anniversary|diary-button|diary-time|diary|diff-added-face|diff-added|diff-changed-face|diff-changed|diff-context-face|diff-context|diff-file-header-face|diff-file-header|diff-function-face|diff-function|diff-header-face|diff-header|diff-hunk-header-face|diff-hunk-header|diff-index-face|diff-index|diff-indicator-added|diff-indicator-changed|diff-indicator-removed|diff-nonexistent-face|diff-nonexistent|diff-refine-added|diff-refine-change|diff-refine-changed|diff-refine-removed|diff-removed-face|diff-removed|dired-directory|dired-flagged|dired-header|dired-ignored|dired-mark|dired-marked|dired-perm-write|dired-symlink|dired-warning|ebrowse-default|ebrowse-file-name|ebrowse-member-attribute|ebrowse-member-class|ebrowse-progress|ebrowse-root-class|ebrowse-tree-mark|ediff-current-diff-A|ediff-current-diff-Ancestor|ediff-current-diff-B|ediff-current-diff-C|ediff-even-diff-A|ediff-even-diff-Ancestor|ediff-even-diff-B|ediff-even-diff-C|ediff-fine-diff-A|ediff-fine-diff-Ancestor|ediff-fine-diff-B|ediff-fine-diff-C|ediff-odd-diff-A|ediff-odd-diff-Ancestor|ediff-odd-diff-B|ediff-odd-diff-C|eieio-custom-slot-tag-face|eldoc-highlight-function-argument|epa-field-body|epa-field-name|epa-mark|epa-string|epa-validity-disabled|epa-validity-high|epa-validity-low|epa-validity-medium|erc-action-face|erc-bold-face|erc-button|erc-command-indicator-face|erc-current-nick-face|erc-dangerous-host-face|erc-default-face|erc-direct-msg-face|erc-error-face|erc-fool-face|erc-header-line|erc-input-face|erc-inverse-face|erc-keyword-face|erc-my-nick-face|erc-my-nick-prefix-face|erc-nick-default-face|erc-nick-msg-face|erc-nick-prefix-face|erc-notice-face|erc-pal-face|erc-prompt-face|erc-timestamp-face|erc-underline-face|error|ert-test-result-expected|ert-test-result-unexpected|escape-glyph|eww-form-checkbox|eww-form-file|eww-form-select|eww-form-submit|eww-form-text|eww-form-textarea|eww-invalid-certificate|eww-valid-certificate|excerpt|ffap|fg:erc-color-face0|fg:erc-color-face1|fg:erc-color-face10|fg:erc-color-face11|fg:erc-color-face12|fg:erc-color-face13|fg:erc-color-face14|fg:erc-color-face15|fg:erc-color-face2|fg:erc-color-face3|fg:erc-color-face4|fg:erc-color-face5|fg:erc-color-face6|fg:erc-color-face7|fg:erc-color-face8|fg:erc-color-face9|file-name-shadow|fixed-pitch|fixed|flymake-errline|flymake-warnline|flyspell-duplicate|flyspell-incorrect|font-lock-builtin-face|font-lock-comment-delimiter-face|font-lock-comment-face|font-lock-constant-face|font-lock-doc-face|font-lock-function-name-face|font-lock-keyword-face|font-lock-negation-char-face|font-lock-preprocessor-face|font-lock-regexp-grouping-backslash|font-lock-regexp-grouping-construct|font-lock-string-face|font-lock-type-face|font-lock-variable-name-face|font-lock-warning-face|fringe|glyphless-char|gnus-button|gnus-cite-1|gnus-cite-10|gnus-cite-11|gnus-cite-2|gnus-cite-3|gnus-cite-4|gnus-cite-5|gnus-cite-6|gnus-cite-7|gnus-cite-8|gnus-cite-9|gnus-cite-attribution-face|gnus-cite-attribution|gnus-cite-face-1|gnus-cite-face-10|gnus-cite-face-11|gnus-cite-face-2|gnus-cite-face-3|gnus-cite-face-4|gnus-cite-face-5|gnus-cite-face-6|gnus-cite-face-7|gnus-cite-face-8|gnus-cite-face-9|gnus-emphasis-bold-italic|gnus-emphasis-bold|gnus-emphasis-highlight-words|gnus-emphasis-italic|gnus-emphasis-strikethru|gnus-emphasis-underline-bold-italic|gnus-emphasis-underline-bold|gnus-emphasis-underline-italic|gnus-emphasis-underline|gnus-group-mail-1-empty-face|gnus-group-mail-1-empty|gnus-group-mail-1-face|gnus-group-mail-1|gnus-group-mail-2-empty-face|gnus-group-mail-2-empty|gnus-group-mail-2-face|gnus-group-mail-2|gnus-group-mail-3-empty-face|gnus-group-mail-3-empty|gnus-group-mail-3-face|gnus-group-mail-3|gnus-group-mail-low-empty-face|gnus-group-mail-low-empty|gnus-group-mail-low-face|gnus-group-mail-low|gnus-group-news-1-empty-face|gnus-group-news-1-empty|gnus-group-news-1-face|gnus-group-news-1|gnus-group-news-2-empty-face|gnus-group-news-2-empty|gnus-group-news-2-face|gnus-group-news-2|gnus-group-news-3-empty-face|gnus-group-news-3-empty|gnus-group-news-3-face|gnus-group-news-3|gnus-group-news-4-empty-face|gnus-group-news-4-empty|gnus-group-news-4-face|gnus-group-news-4|gnus-group-news-5-empty-face|gnus-group-news-5-empty|gnus-group-news-5-face|gnus-group-news-5|gnus-group-news-6-empty-face|gnus-group-news-6-empty|gnus-group-news-6-face|gnus-group-news-6|gnus-group-news-low-empty-face|gnus-group-news-low-empty|gnus-group-news-low-face|gnus-group-news-low|gnus-header-content-face|gnus-header-content|gnus-header-from-face|gnus-header-from|gnus-header-name-face|gnus-header-name|gnus-header-newsgroups-face|gnus-header-newsgroups|gnus-header-subject-face|gnus-header-subject|gnus-signature-face|gnus-signature|gnus-splash-face|gnus-splash|gnus-summary-cancelled-face|gnus-summary-cancelled|gnus-summary-high-ancient-face|gnus-summary-high-ancient|gnus-summary-high-read-face|gnus-summary-high-read|gnus-summary-high-ticked-face|gnus-summary-high-ticked|gnus-summary-high-undownloaded-face|gnus-summary-high-undownloaded|gnus-summary-high-unread-face|gnus-summary-high-unread|gnus-summary-low-ancient-face|gnus-summary-low-ancient|gnus-summary-low-read-face|gnus-summary-low-read|gnus-summary-low-ticked-face|gnus-summary-low-ticked|gnus-summary-low-undownloaded-face|gnus-summary-low-undownloaded|gnus-summary-low-unread-face|gnus-summary-low-unread|gnus-summary-normal-ancient-face|gnus-summary-normal-ancient|gnus-summary-normal-read-face|gnus-summary-normal-read|gnus-summary-normal-ticked-face|gnus-summary-normal-ticked|gnus-summary-normal-undownloaded-face|gnus-summary-normal-undownloaded|gnus-summary-normal-unread-face|gnus-summary-normal-unread|gnus-summary-selected-face|gnus-summary-selected|gomoku-O|gomoku-X|header-line|help-argument-name|hexl-address-region|hexl-ascii-region|hi-black-b|hi-black-hb|hi-blue-b|hi-blue|hi-green-b|hi-green|hi-pink|hi-red-b|hi-yellow|hide-ifdef-shadow|highlight-changes-delete-face|highlight-changes-delete|highlight-changes-face|highlight-changes|highlight|hl-line|holiday|icomplete-first-match|idlwave-help-link|idlwave-shell-bp|idlwave-shell-disabled-bp|idlwave-shell-electric-stop-line|idlwave-shell-pending-electric-stop|idlwave-shell-pending-stop|ido-first-match|ido-incomplete-regexp|ido-indicator|ido-only-match|ido-subdir|ido-virtual|info-header-node|info-header-xref|info-index-match|info-menu-5|info-menu-header|info-menu-star|info-node|info-title-1|info-title-2|info-title-3|info-title-4|info-xref|isearch-fail|isearch-lazy-highlight-face|isearch|iswitchb-current-match|iswitchb-invalid-regexp|iswitchb-single-match|iswitchb-virtual-matches|italic|landmark-font-lock-face-O|landmark-font-lock-face-X|lazy-highlight|ld-script-location-counter|link-visited|link|log-edit-header|log-edit-summary|log-edit-unknown-header|log-view-file-face|log-view-file|log-view-message-face|log-view-message|makefile-makepp-perl|makefile-shell|makefile-space-face|makefile-space|makefile-targets|match|menu|message-cited-text-face|message-cited-text|message-header-cc-face|message-header-cc|message-header-name-face|message-header-name|message-header-newsgroups-face|message-header-newsgroups|message-header-other-face|message-header-other|message-header-subject-face|message-header-subject|message-header-to-face|message-header-to|message-header-xheader-face|message-header-xheader|message-mml-face|message-mml|message-separator-face|message-separator|mh-folder-address|mh-folder-blacklisted|mh-folder-body|mh-folder-cur-msg-number|mh-folder-date|mh-folder-deleted|mh-folder-followup|mh-folder-msg-number|mh-folder-refiled|mh-folder-sent-to-me-hint|mh-folder-sent-to-me-sender|mh-folder-subject|mh-folder-tick|mh-folder-to|mh-folder-whitelisted|mh-letter-header-field|mh-search-folder|mh-show-cc|mh-show-date|mh-show-from|mh-show-header|mh-show-pgg-bad|mh-show-pgg-good|mh-show-pgg-unknown|mh-show-signature|mh-show-subject|mh-show-to|mh-speedbar-folder-with-unseen-messages|mh-speedbar-folder|mh-speedbar-selected-folder-with-unseen-messages|mh-speedbar-selected-folder|minibuffer-prompt|mm-command-output|mm-uu-extract|mode-line-buffer-id|mode-line-emphasis|mode-line-highlight|mode-line-inactive|mode-line|modeline-buffer-id|modeline-highlight|modeline-inactive|mouse|mpuz-solved|mpuz-text|mpuz-trivial|mpuz-unsolved|newsticker-date-face|newsticker-default-face|newsticker-enclosure-face|newsticker-extra-face|newsticker-feed-face|newsticker-immortal-item-face|newsticker-new-item-face|newsticker-obsolete-item-face|newsticker-old-item-face|newsticker-statistics-face|newsticker-treeview-face|newsticker-treeview-immortal-face|newsticker-treeview-new-face|newsticker-treeview-obsolete-face|newsticker-treeview-old-face|newsticker-treeview-selection-face|next-error|nobreak-space|nxml-attribute-colon|nxml-attribute-local-name|nxml-attribute-prefix|nxml-attribute-value-delimiter|nxml-attribute-value|nxml-cdata-section-CDATA|nxml-cdata-section-content|nxml-cdata-section-delimiter|nxml-char-ref-delimiter|nxml-char-ref-number|nxml-comment-content|nxml-comment-delimiter|nxml-delimited-data|nxml-delimiter|nxml-element-colon|nxml-element-local-name|nxml-element-prefix|nxml-entity-ref-delimiter|nxml-entity-ref-name|nxml-glyph|nxml-hash|nxml-heading|nxml-markup-declaration-delimiter|nxml-name|nxml-namespace-attribute-colon|nxml-namespace-attribute-prefix|nxml-namespace-attribute-value-delimiter|nxml-namespace-attribute-value|nxml-namespace-attribute-xmlns|nxml-outline-active-indicator|nxml-outline-ellipsis|nxml-outline-indicator|nxml-processing-instruction-content|nxml-processing-instruction-delimiter|nxml-processing-instruction-target|nxml-prolog-keyword|nxml-prolog-literal-content|nxml-prolog-literal-delimiter|nxml-ref|nxml-tag-delimiter|nxml-tag-slash|nxml-text|octave-function-comment-block|org-agenda-calendar-event|org-agenda-calendar-sexp|org-agenda-clocking|org-agenda-column-dateline|org-agenda-current-time|org-agenda-date-today|org-agenda-date-weekend|org-agenda-date|org-agenda-diary|org-agenda-dimmed-todo-face|org-agenda-done|org-agenda-filter-category|org-agenda-filter-regexp|org-agenda-filter-tags|org-agenda-restriction-lock|org-agenda-structure|org-archived|org-block-background|org-block-begin-line|org-block-end-line|org-block|org-checkbox-statistics-done|org-checkbox-statistics-todo|org-checkbox|org-clock-overlay|org-code|org-column-title|org-column|org-date-selected|org-date|org-default|org-document-info-keyword|org-document-info|org-document-title|org-done|org-drawer|org-ellipsis|org-footnote|org-formula|org-headline-done|org-hide|org-latex-and-related|org-level-1|org-level-2|org-level-3|org-level-4|org-level-5|org-level-6|org-level-7|org-level-8|org-link|org-list-dt|org-macro|org-meta-line|org-mode-line-clock-overrun|org-mode-line-clock|org-priority|org-property-value|org-quote|org-scheduled-previously|org-scheduled-today|org-scheduled|org-sexp-date|org-special-keyword|org-table|org-tag-group|org-tag|org-target|org-time-grid|org-todo|org-upcoming-deadline|org-verbatim|org-verse|org-warning|outline-1|outline-2|outline-3|outline-4|outline-5|outline-6|outline-7|outline-8|proced-mark|proced-marked|proced-sort-header|pulse-highlight-face|pulse-highlight-start-face|query-replace|rcirc-bright-nick|rcirc-dim-nick|rcirc-keyword|rcirc-my-nick|rcirc-nick-in-message-full-line|rcirc-nick-in-message|rcirc-other-nick|rcirc-prompt|rcirc-server-prefix|rcirc-server|rcirc-timestamp|rcirc-track-keyword|rcirc-track-nick|rcirc-url|reb-match-0|reb-match-1|reb-match-2|reb-match-3|rectangle-preview-face|region|rmail-header-name|rmail-highlight|rng-error|rst-adornment|rst-block|rst-comment|rst-definition|rst-directive|rst-emphasis1|rst-emphasis2|rst-external|rst-level-1|rst-level-2|rst-level-3|rst-level-4|rst-level-5|rst-level-6|rst-literal|rst-reference|rst-transition|ruler-mode-column-number|ruler-mode-comment-column|ruler-mode-current-column|ruler-mode-default|ruler-mode-fill-column|ruler-mode-fringes|ruler-mode-goal-column|ruler-mode-margins|ruler-mode-pad|ruler-mode-tab-stop|scroll-bar|secondary-selection|semantic-highlight-edits-face|semantic-highlight-func-current-tag-face|semantic-unmatched-syntax-face|senator-momentary-highlight-face|sgml-namespace|sh-escaped-newline|sh-heredoc-face|sh-heredoc|sh-quoted-exec|shadow|show-paren-match-face|show-paren-match|show-paren-mismatch-face|show-paren-mismatch|shr-link|shr-strike-through|smerge-base-face|smerge-base|smerge-markers-face|smerge-markers|smerge-mine-face|smerge-mine|smerge-other-face|smerge-other|smerge-refined-added|smerge-refined-change|smerge-refined-changed|smerge-refined-removed|speedbar-button-face|speedbar-directory-face|speedbar-file-face|speedbar-highlight-face|speedbar-selected-face|speedbar-separator-face|speedbar-tag-face|srecode-separator-face|strokes-char|subscript|success|superscript|table-cell|tcl-escaped-newline|term-bold|term-color-black|term-color-blue|term-color-cyan|term-color-green|term-color-magenta|term-color-red|term-color-white|term-color-yellow|term-underline|term|testcover-1value|testcover-nohits|tex-math-face|tex-math|tex-verbatim-face|tex-verbatim|texinfo-heading-face|texinfo-heading|tmm-inactive|todo-archived-only|todo-button|todo-category-string|todo-comment|todo-date|todo-diary-expired|todo-done-sep|todo-done|todo-key-prompt|todo-mark|todo-nondiary|todo-prefix-string|todo-search|todo-sorted-column|todo-time|todo-top-priority|tool-bar|tooltip|trailing-whitespace|tty-menu-disabled-face|tty-menu-enabled-face|tty-menu-selected-face|underline|variable-pitch|vc-conflict-state|vc-edited-state|vc-locally-added-state|vc-locked-state|vc-missing-state|vc-needs-update-state|vc-removed-state|vc-state-base-face|vc-up-to-date-state|vcursor|vera-font-lock-function|vera-font-lock-interface|vera-font-lock-number|verilog-font-lock-ams-face|verilog-font-lock-grouping-keywords-face|verilog-font-lock-p1800-face|verilog-font-lock-translate-off-face|vertical-border|vhdl-font-lock-attribute-face|vhdl-font-lock-directive-face|vhdl-font-lock-enumvalue-face|vhdl-font-lock-function-face|vhdl-font-lock-generic-\\\\/constant-face|vhdl-font-lock-prompt-face|vhdl-font-lock-reserved-words-face|vhdl-font-lock-translate-off-face|vhdl-font-lock-type-face|vhdl-font-lock-variable-face|vhdl-speedbar-architecture-face|vhdl-speedbar-architecture-selected-face|vhdl-speedbar-configuration-face|vhdl-speedbar-configuration-selected-face|vhdl-speedbar-entity-face|vhdl-speedbar-entity-selected-face|vhdl-speedbar-instantiation-face|vhdl-speedbar-instantiation-selected-face|vhdl-speedbar-library-face|vhdl-speedbar-package-face|vhdl-speedbar-package-selected-face|vhdl-speedbar-subprogram-face|viper-minibuffer-emacs|viper-minibuffer-insert|viper-minibuffer-vi|viper-replace-overlay|viper-search|warning|which-func|whitespace-big-indent|whitespace-empty|whitespace-hspace|whitespace-indentation|whitespace-line|whitespace-newline|whitespace-space-after-tab|whitespace-space-before-tab|whitespace-space|whitespace-tab|whitespace-trailing|widget-button-face|widget-button-pressed-face|widget-button-pressed|widget-button|widget-documentation-face|widget-documentation|widget-field-face|widget-field|widget-inactive-face|widget-inactive|widget-single-line-field-face|widget-single-line-field|window-divider-first-pixel|window-divider-last-pixel|window-divider|woman-addition-face|woman-addition|woman-bold-face|woman-bold|woman-italic-face|woman-italic|woman-unknown-face|woman-unknown)(?=[\\\\s()]|$)\\\\b","name":"support.constant.face.emacs.lisp"},"format":{"begin":"\\\\G","contentName":"string.quoted.double.emacs.lisp","end":"(?=\\")","patterns":[{"captures":{"1":{"name":"constant.other.placeholder.emacs.lisp"},"2":{"name":"invalid.illegal.placeholder.emacs.lisp"}},"match":"(%[%cdefgosSxX])|(%.)"},{"include":"#string-innards"}]},"formatting":{"begin":"(\\\\()(format|format-message|message|error)(?=\\\\s|$|\\")","beginCaptures":{"1":{"name":"punctuation.section.expression.begin.emacs.lisp"},"2":{"name":"support.function.$2.emacs.lisp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.expression.end.emacs.lisp"}},"name":"meta.string-formatting.expression.emacs.lisp","patterns":[{"begin":"\\\\G\\\\s*(\\")","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.emacs.lisp"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.emacs.lisp"}},"patterns":[{"include":"#format"}]},{"begin":"\\\\G\\\\s*$\\\\n?","end":"\\"|(?>)","name":"constant.command-name.key.emacs.lisp"},{"captures":{"1":{"name":"constant.numeric.integer.int.decimal.emacs.lisp"},"2":{"name":"keyword.operator.arithmetic.multiply.emacs.lisp"}},"match":"([0-9]+)(\\\\*)(?=[\\\\S])","name":"meta.key-repetition.emacs.lisp"},{"captures":{"1":{"patterns":[{"include":"#key-notation-prefix"}]},"2":{"name":"constant.character.key.emacs.lisp"}},"match":"\\\\b(M-)(-?[0-9]+)\\\\b","name":"meta.key-sequence.emacs.lisp"},{"captures":{"1":{"patterns":[{"include":"#key-notation-prefix"}]},"2":{"name":"punctuation.definition.angle.bracket.begin.emacs.lisp"},"3":{"name":"constant.control-character.key.emacs.lisp"},"4":{"name":"punctuation.definition.angle.bracket.end.emacs.lisp"},"5":{"name":"constant.control-character.key.emacs.lisp"},"6":{"name":"invalid.illegal.bad-prefix.emacs.lisp"},"7":{"name":"constant.character.key.emacs.lisp"}},"match":"\\\\b((?:[MCSAHs]-)+)(?:(<)(DEL|ESC|LFD|NUL|RET|SPC|TAB)(>)|(DEL|ESC|LFD|NUL|RET|SPC|TAB)\\\\b|([!-_a-z]{2,})|([!-_a-z]))?","name":"meta.key-sequence.emacs.lisp"},{"captures":{"1":{"patterns":[{"match":"<","name":"punctuation.definition.angle.bracket.begin.emacs.lisp"},{"include":"#key-notation-prefix"}]},"2":{"name":"constant.function-key.emacs.lisp"},"3":{"name":"punctuation.definition.angle.bracket.end.emacs.lisp"}},"match":"([MCSAHs]-<|<[MCSAHs]-|<)([-A-Za-z0-9]+)(>)","name":"meta.function-key.emacs.lisp"},{"match":"(?<=\\\\s)(?![MCSAHs<>])[!-_a-z](?=\\\\s)","name":"constant.character.key.emacs.lisp"}]},"key-notation-prefix":{"captures":{"1":{"name":"constant.character.key.modifier.emacs.lisp"},"2":{"name":"punctuation.separator.modifier.dash.emacs.lisp"}},"match":"([MCSAHs])(-)"},"keyword":{"captures":{"1":{"name":"punctuation.definition.keyword.emacs.lisp"}},"match":"(?<=[\\\\s()\\\\[]|^)(:)[-+=*/\\\\w~!@$%^&:<>{}?]+","name":"constant.keyword.emacs.lisp"},"lambda":{"begin":"(\\\\()(lambda|function)(?:\\\\s+|(?=[()]))","beginCaptures":{"1":{"name":"punctuation.section.expression.begin.emacs.lisp"},"2":{"name":"storage.type.lambda.function.emacs.lisp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.expression.end.emacs.lisp"}},"name":"meta.lambda.expression.emacs.lisp","patterns":[{"include":"#defun-innards"}]},"loop":{"begin":"(\\\\()(cl-loop)(?=[\\\\s()]|$)","beginCaptures":{"1":{"name":"punctuation.section.expression.begin.emacs.lisp"},"2":{"name":"support.function.cl-lib.emacs.lisp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.expression.end.emacs.lisp"}},"name":"meta.cl-lib.loop.emacs.lisp","patterns":[{"match":"(?<=[\\\\s()\\\\[]|^)(above|across|across-ref|always|and|append|as|below|by|collect|concat|count|do|each|finally|for|from|if|in|in-ref|initially|into|maximize|minimize|named|nconc|never|of|of-ref|on|repeat|return|sum|then|thereis|sum|to|unless|until|using|vconcat|when|while|with|(?:being\\\\s+(?:the)?\\\\s+(?:element|hash-key|hash-value|key-code|key-binding|key-seq|overlay|interval|symbols|frame|window|buffer)s?))(?=[\\\\s()]|$)","name":"keyword.control.emacs.lisp"},{"include":"$self"}]},"main":{"patterns":[{"include":"#autoload"},{"include":"#comment"},{"include":"#lambda"},{"include":"#loop"},{"include":"#escapes"},{"include":"#definition"},{"include":"#formatting"},{"include":"#face-innards"},{"include":"#expression"},{"include":"#operators"},{"include":"#functions"},{"include":"#binding"},{"include":"#keyword"},{"include":"#string"},{"include":"#number"},{"include":"#quote"},{"include":"#symbols"},{"include":"#vectors"},{"include":"#arg-values"},{"include":"#archive-sources"},{"include":"#boolean"},{"include":"#faces"},{"include":"#cask"},{"include":"#stdlib"}]},"modeline":{"captures":{"1":{"name":"punctuation.definition.modeline.begin.emacs.lisp"},"2":{"patterns":[{"include":"#modeline-innards"}]},"3":{"name":"punctuation.definition.modeline.end.emacs.lisp"}},"match":"(-\\\\*-)(.*)(-\\\\*-)","name":"meta.modeline.emacs.lisp"},"modeline-innards":{"patterns":[{"captures":{"1":{"name":"variable.assignment.modeline.emacs.lisp"},"2":{"name":"punctuation.separator.key-value.emacs.lisp"},"3":{"patterns":[{"include":"#modeline-innards"}]}},"match":"([^\\\\s:;]+)\\\\s*(:)\\\\s*([^;]*)","name":"meta.modeline.variable.emacs.lisp"},{"match":";","name":"punctuation.terminator.statement.emacs.lisp"},{"match":":","name":"punctuation.separator.key-value.emacs.lisp"},{"match":"\\\\S+","name":"string.other.modeline.emacs.lisp"}]},"number":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.binary.emacs.lisp"}},"match":"(?<=[\\\\s()\\\\[]|^)(#)[Bb][01]+","name":"constant.numeric.integer.binary.emacs.lisp"},{"captures":{"1":{"name":"punctuation.definition.hex.emacs.lisp"}},"match":"(?<=[\\\\s()\\\\[]|^)(#)[Xx][0-9A-Fa-f]+","name":"constant.numeric.integer.hex.viml"},{"match":"(?<=[\\\\s()\\\\[]|^)[-+]?\\\\d*\\\\.\\\\d+(?:[Ee][-+]?\\\\d+|[Ee]\\\\+(?:INF|NaN))?(?=[\\\\s()]|$)","name":"constant.numeric.float.emacs.lisp"},{"match":"(?<=[\\\\s()\\\\[]|^)[-+]?\\\\d+(?:[Ee][-+]?\\\\d+|[Ee]\\\\+(?:INF|NaN))?(?=[\\\\s()]|$)","name":"constant.numeric.integer.emacs.lisp"}]},"operators":{"patterns":[{"match":"(?<=[()]|^)(and|catch|cond|condition-case(?:-unless-debug)?|dotimes|eql?|equal|if|not|or|pcase|prog[12n]|throw|unless|unwind-protect|when|while)(?=[\\\\s()]|$)","name":"keyword.control.$1.emacs.lisp"},{"match":"(?<=\\\\(|\\\\s|^)(interactive)(?=\\\\s|\\\\(|\\\\))","name":"storage.modifier.interactive.function.emacs.lisp"},{"match":"(?<=\\\\(|\\\\s|^)[-*+/%](?=\\\\s|\\\\)|$)","name":"keyword.operator.numeric.emacs.lisp"},{"match":"(?<=\\\\(|\\\\s|^)[/<>]=|[=<>](?=\\\\s|\\\\)|$)","name":"keyword.operator.comparison.emacs.lisp"},{"match":"(?<=\\\\s)\\\\.(?=\\\\s|$)","name":"keyword.operator.pair-separator.emacs.lisp"}]},"quote":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.quote.emacs.lisp"},"2":{"patterns":[{"include":"$self"}]}},"match":"(')([-+=*/\\\\w~!@$%^&:<>{}?]+)","name":"constant.other.symbol.emacs.lisp"}]},"stdlib":{"patterns":[{"match":"(?<=[()]|^)(\`--pcase-macroexpander|Buffer-menu-unmark-all-buffers|Buffer-menu-unmark-all|Info-node-description|aa2u-mark-as-text|aa2u-mark-rectangle-as-text|aa2u-rectangle|aa2u|ada-find-file|ada-header|ada-mode|add-abbrev|add-change-log-entry-other-window|add-change-log-entry|add-dir-local-variable|add-file-local-variable-prop-line|add-file-local-variable|add-global-abbrev|add-log-current-defun|add-minor-mode|add-mode-abbrev|add-submenu|add-timeout|add-to-coding-system-list|add-to-list--anon-cmacro|add-variable-watcher|adoc-mode|advertised-undo|advice--add-function|advice--buffer-local|advice--called-interactively-skip|advice--car|advice--cd\\\\*r|advice--cdr|advice--defalias-fset|advice--interactive-form|advice--make-1|advice--make-docstring|advice--make-interactive-form|advice--make|advice--member-p|advice--normalize-place|advice--normalize|advice--props|advice--p|advice--remove-function|advice--set-buffer-local|advice--strip-macro|advice--subst-main|advice--symbol-function|advice--tweak|advice--where|after-insert-file-set-coding|aggressive-indent--extend-end-to-whole-sexps|aggressive-indent--indent-current-balanced-line|aggressive-indent--indent-if-changed|aggressive-indent--keep-track-of-changes|aggressive-indent--local-electric|aggressive-indent--proccess-changed-list-and-indent|aggressive-indent--run-user-hooks|aggressive-indent--softly-indent-defun|aggressive-indent--softly-indent-region-and-on|aggressive-indent-bug-report|aggressive-indent-global-mode|aggressive-indent-indent-defun|aggressive-indent-indent-region-and-on|aggressive-indent-mode-set-explicitly|aggressive-indent-mode|align-current|align-entire|align-highlight-rule|align-newline-and-indent|align-regexp|align-unhighlight-rule|align|alist-get|all-threads|allout-auto-activation-helper|allout-mode-p|allout-mode|allout-setup|allout-widgets-mode|allout-widgets-setup|alter-text-property|and-let\\\\*|ange-ftp-completion-hook-function|apache-mode|apropos-local-value|apropos-local-variable|arabic-shape-gstring|assoc-delete-all|auth-source--decode-octal-string|auth-source--symbol-keyword|auth-source-backend--anon-cmacro|auth-source-backend--eieio-childp|auth-source-backends-parser-file|auth-source-backends-parser-macos-keychain|auth-source-backends-parser-secrets|auth-source-json-check|auth-source-json-search|auth-source-pass-enable|auth-source-secrets-saver|auto-save-visited-mode|backtrace-frame--internal|backtrace-frames|backward-to-word|backward-word-strictly|battery-upower-prop|battery-upower|beginning-of-defun--in-emptyish-line-p|beginning-of-defun-comments|bf-help-describe-symbol|bf-help-mode|bf-help-setup|bignump|bison-mode|blink-cursor--rescan-frames|blink-cursor--should-blink|blink-cursor--start-idle-timer|blink-cursor--start-timer|bookmark-set-no-overwrite|brainfuck-mode|browse-url-conkeror|buffer-hash|bufferpos-to-filepos|byte-compile--function-signature|byte-compile--log-warning-for-byte-compile|byte-compile-cond-jump-table-info|byte-compile-cond-jump-table|byte-compile-cond-vars|byte-compile-define-symbol-prop|byte-compile-file-form-defvar-function|byte-compile-file-form-make-obsolete|byte-opt--arith-reduce|byte-opt--portable-numberp|byte-optimize-1-|byte-optimize-1\\\\+|byte-optimize-memq|c-or-c\\\\+\\\\+-mode|call-shell-region|cancel-debug-on-variable-change|cancel-debug-watch|capitalize-dwim|cconv--convert-funcbody|cconv--remap-llv|char-fold-to-regexp|char-from-name|checkdoc-file|checkdoc-package-keywords|cl--assertion-failed|cl--class-docstring--cmacro|cl--class-docstring|cl--class-index-table--cmacro|cl--class-index-table|cl--class-name--cmacro|cl--class-name|cl--class-p--cmacro|cl--class-parents--cmacro|cl--class-parents|cl--class-p|cl--class-slots--cmacro|cl--class-slots|cl--copy-slot-descriptor-1|cl--copy-slot-descriptor|cl--defstruct-predicate|cl--describe-class-slots|cl--describe-class-slot|cl--describe-class|cl--do-&aux|cl--find-class|cl--generic-arg-specializer|cl--generic-build-combined-method|cl--generic-cache-miss|cl--generic-class-parents|cl--generic-derived-specializers|cl--generic-describe|cl--generic-dispatches--cmacro|cl--generic-dispatches|cl--generic-fgrep|cl--generic-generalizer-name--cmacro|cl--generic-generalizer-name|cl--generic-generalizer-p--cmacro|cl--generic-generalizer-priority--cmacro|cl--generic-generalizer-priority|cl--generic-generalizer-p|cl--generic-generalizer-specializers-function--cmacro|cl--generic-generalizer-specializers-function|cl--generic-generalizer-tagcode-function--cmacro|cl--generic-generalizer-tagcode-function|cl--generic-get-dispatcher|cl--generic-isnot-nnm-p|cl--generic-lambda|cl--generic-load-hist-format|cl--generic-make--cmacro|cl--generic-make-defmethod-docstring|cl--generic-make-function|cl--generic-make-method--cmacro|cl--generic-make-method|cl--generic-make-next-function|cl--generic-make|cl--generic-member-method|cl--generic-method-documentation|cl--generic-method-files|cl--generic-method-function--cmacro|cl--generic-method-function|cl--generic-method-info|cl--generic-method-qualifiers--cmacro|cl--generic-method-qualifiers|cl--generic-method-specializers--cmacro|cl--generic-method-specializers|cl--generic-method-table--cmacro|cl--generic-method-table|cl--generic-method-uses-cnm--cmacro|cl--generic-method-uses-cnm|cl--generic-name--cmacro|cl--generic-name)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(cl--generic-no-next-method-function|cl--generic-options--cmacro|cl--generic-options|cl--generic-search-method|cl--generic-specializers-apply-to-type-p|cl--generic-split-args|cl--generic-standard-method-combination|cl--generic-struct-specializers|cl--generic-struct-tag|cl--generic-with-memoization|cl--generic|cl--make-random-state--cmacro|cl--make-random-state|cl--make-slot-descriptor--cmacro|cl--make-slot-descriptor|cl--make-slot-desc|cl--old-struct-type-of|cl--pcase-mutually-exclusive-p|cl--plist-remove|cl--print-table|cl--prog|cl--random-state-i--cmacro|cl--random-state-i|cl--random-state-j--cmacro|cl--random-state-j|cl--random-state-vec--cmacro|cl--random-state-vec|cl--slot-descriptor-initform--cmacro|cl--slot-descriptor-initform|cl--slot-descriptor-name--cmacro|cl--slot-descriptor-name|cl--slot-descriptor-props--cmacro|cl--slot-descriptor-props|cl--slot-descriptor-type--cmacro|cl--slot-descriptor-type|cl--struct-all-parents|cl--struct-cl--generic-method-p--cmacro|cl--struct-cl--generic-method-p|cl--struct-cl--generic-p--cmacro|cl--struct-cl--generic-p|cl--struct-class-children-sym--cmacro|cl--struct-class-children-sym|cl--struct-class-docstring--cmacro|cl--struct-class-docstring|cl--struct-class-index-table--cmacro|cl--struct-class-index-table|cl--struct-class-name--cmacro|cl--struct-class-named--cmacro|cl--struct-class-named|cl--struct-class-name|cl--struct-class-p--cmacro|cl--struct-class-parents--cmacro|cl--struct-class-parents|cl--struct-class-print--cmacro|cl--struct-class-print|cl--struct-class-p|cl--struct-class-slots--cmacro|cl--struct-class-slots|cl--struct-class-tag--cmacro|cl--struct-class-tag|cl--struct-class-type--cmacro|cl--struct-class-type|cl--struct-get-class|cl--struct-name-p|cl--struct-new-class--cmacro|cl--struct-new-class|cl--struct-register-child|cl-call-next-method|cl-defgeneric|cl-defmethod|cl-describe-type|cl-find-class|cl-find-method|cl-generic-all-functions|cl-generic-apply|cl-generic-call-method|cl-generic-combine-methods|cl-generic-current-method-specializers|cl-generic-define-context-rewriter|cl-generic-define-generalizer|cl-generic-define-method|cl-generic-define|cl-generic-ensure-function|cl-generic-function-options|cl-generic-generalizers|cl-generic-make-generalizer--cmacro|cl-generic-make-generalizer|cl-generic-p|cl-iter-defun|cl-method-qualifiers|cl-next-method-p|cl-no-applicable-method|cl-no-next-method|cl-no-primary-method|cl-old-struct-compat-mode|cl-prin1-to-string|cl-prin1|cl-print-expand-ellipsis|cl-print-object|cl-print-to-string-with-limit|cl-prog\\\\*|cl-prog|cl-random-state-p--cmacro|cl-slot-descriptor-p--cmacro|cl-slot-descriptor-p|cl-struct--pcase-macroexpander|cl-struct-define|cl-struct-p--cmacro|cl-struct-p|cl-struct-slot-value--inliner|cl-typep--inliner|clear-composition-cache|cmake-command-run|cmake-help-command|cmake-help-list-commands|cmake-help-module|cmake-help-property|cmake-help-variable|cmake-help|cmake-mode|coffee-mode|combine-change-calls-1|combine-change-calls|comment-line|comment-make-bol-ws|comment-quote-nested-default|comment-region-default-1|completion--category-override|completion-pcm--pattern-point-idx|condition-mutex|condition-name|condition-notify|condition-variable-p|condition-wait|conf-desktop-mode|conf-toml-mode|conf-toml-recognize-section|connection-local-set-profile-variables|connection-local-set-profiles|copy-cl--generic-generalizer|copy-cl--generic-method|copy-cl--generic|copy-from-above-command|copy-lisp-indent-state|copy-xref-elisp-location|copy-yas--exit|copy-yas--field|copy-yas--mirror|copy-yas--snippet|copy-yas--table|copy-yas--template|css-lookup-symbol|csv-mode|cuda-mode|current-thread|cursor-intangible-mode|cursor-sensor-mode|custom--should-apply-setting|debug-on-variable-change|debug-watch|default-font-width|define-symbol-prop|define-thing-chars|defined-colors-with-face-attributes|delete-selection-uses-region-p|describe-char-eldoc|describe-symbol|dir-locals--all-files|dir-locals-read-from-dir|dired--align-all-files|dired--need-align-p|dired-create-empty-file|dired-do-compress-to|dired-do-find-regexp-and-replace|dired-do-find-regexp|dired-mouse-find-file-other-frame|dired-mouse-find-file|dired-omit-mode|display-buffer--maybe-at-bottom|display-buffer--maybe-pop-up-frame|display-buffer--maybe-pop-up-window|display-buffer-in-child-frame|display-buffer-reuse-mode-window|display-buffer-use-some-frame|display-line-numbers-mode|dna-add-hooks|dna-isearch-forward|dna-mode|dna-reverse-complement-region|dockerfile-build-buffer|dockerfile-build-no-cache-buffer|dockerfile-mode|dolist-with-progress-reporter|dotenv-mode|downcase-dwim|dyalog-ediff-forward-word|dyalog-editor-connect|dyalog-fix-altgr-chars|dyalog-mode|dyalog-session-connect|easy-mmode--mode-docstring|eieio--add-new-slot|eieio--c3-candidate|eieio--c3-merge-lists|eieio--class-children--cmacro|eieio--class-class-allocation-values--cmacro|eieio--class-class-slots--cmacro|eieio--class-class-slots|eieio--class-constructor|eieio--class-default-object-cache--cmacro|eieio--class-docstring--cmacro|eieio--class-docstring|eieio--class-index-table--cmacro|eieio--class-index-table|eieio--class-initarg-tuples--cmacro|eieio--class-make--cmacro|eieio--class-make|eieio--class-method-invocation-order|eieio--class-name--cmacro|eieio--class-name|eieio--class-object|eieio--class-option-assoc|eieio--class-options--cmacro|eieio--class-option|eieio--class-p--cmacro)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(eieio--class-parents--cmacro|eieio--class-parents|eieio--class-precedence-bfs|eieio--class-precedence-c3|eieio--class-precedence-dfs|eieio--class-precedence-list|eieio--class-print-name|eieio--class-p|eieio--class-slot-initarg|eieio--class-slot-name-index|eieio--class-slots--cmacro|eieio--class-slots|eieio--class\\\\/struct-parents|eieio--generic-subclass-specializers|eieio--initarg-to-attribute|eieio--object-class-tag|eieio--pcase-macroexpander|eieio--perform-slot-validation-for-default|eieio--perform-slot-validation|eieio--slot-name-index|eieio--slot-override|eieio--validate-class-slot-value|eieio--validate-slot-value|eieio-change-class|eieio-class-slots|eieio-default-superclass--eieio-childp|eieio-defclass-internal|eieio-make-child-predicate|eieio-make-class-predicate|eieio-oref--anon-cmacro|eieio-pcase-slot-index-from-index-table|eieio-pcase-slot-index-table|eieio-slot-descriptor-name|eldoc--supported-p|eldoc-docstring-format-sym-doc|eldoc-mode-set-explicitly|electric-pair--balance-info|electric-pair--insert|electric-pair--inside-string-p|electric-pair--skip-whitespace|electric-pair--syntax-ppss|electric-pair--unbalanced-strings-p|electric-pair--with-uncached-syntax|electric-pair-conservative-inhibit|electric-pair-default-inhibit|electric-pair-default-skip-self|electric-pair-delete-pair|electric-pair-inhibit-if-helps-balance|electric-pair-local-mode|electric-pair-post-self-insert-function|electric-pair-skip-if-helps-balance|electric-pair-syntax-info|electric-pair-will-use-region|electric-quote-local-mode|electric-quote-mode|electric-quote-post-self-insert-function|elisp--font-lock-backslash|elisp--font-lock-flush-elisp-buffers|elisp--xref-backend|elisp--xref-make-xref|elisp-flymake--batch-compile-for-flymake|elisp-flymake--byte-compile-done|elisp-flymake-byte-compile|elisp-flymake-checkdoc|elisp-function-argstring|elisp-get-fnsym-args-string|elisp-get-var-docstring|elisp-load-path-roots|emacs-repository-version-git|enh-ruby-mode|epg-config--make-gpg-configuration|epg-config--make-gpgsm-configuration|epg-context-error-buffer--cmacro|epg-context-error-buffer|epg-find-configuration|erlang-compile|erlang-edoc-mode|erlang-find-tag-other-window|erlang-find-tag|erlang-mode|erlang-shell|erldoc-apropos|erldoc-browse-topic|erldoc-browse|erldoc-eldoc-function|etags--xref-backend|eval-expression-get-print-arguments|event-line-count|face-list-p|facemenu-set-charset|faces--attribute-at-point|faceup-clean-buffer|faceup-defexplainer|faceup-render-view-buffer|faceup-view-buffer|faceup-write-file|fic-mode|file-attribute-access-time|file-attribute-collect|file-attribute-device-number|file-attribute-group-id|file-attribute-inode-number|file-attribute-link-number|file-attribute-modes|file-attribute-modification-time|file-attribute-size|file-attribute-status-change-time|file-attribute-type|file-attribute-user-id|file-local-name|file-name-case-insensitive-p|file-name-quoted-p|file-name-quote|file-name-unquote|file-system-info|filepos-to-bufferpos--dos|filepos-to-bufferpos|files--ask-user-about-large-file|files--ensure-directory|files--force|files--make-magic-temp-file|files--message|files--name-absolute-system-p|files--splice-dirname-file|fill-polish-nobreak-p|find-function-on-key-other-frame|find-function-on-key-other-window|find-library-other-frame|find-library-other-window|fixnump|flymake-cc|flymake-diag-region|flymake-diagnostics|flymake-make-diagnostic|follow-scroll-down-window|follow-scroll-up-window|font-lock--remove-face-from-text-property|form-feed-mode|format-message|forth-block-mode|forth-eval-defun|forth-eval-last-expression-display-output|forth-eval-last-expression|forth-eval-region|forth-eval|forth-interaction-send|forth-kill|forth-load-file|forth-mode|forth-restart|forth-see|forth-switch-to-output-buffer|forth-switch-to-source-buffer|forth-words|fortune-message|forward-to-word|forward-word-strictly|frame--size-history|frame-after-make-frame|frame-ancestor-p|frame-creation-function|frame-edges|frame-focus-state|frame-geometry|frame-inner-height|frame-inner-width|frame-internal-border-width|frame-list-z-order|frame-monitor-attribute|frame-monitor-geometry|frame-monitor-workarea|frame-native-height|frame-native-width|frame-outer-height|frame-outer-width|frame-parent|frame-position|frame-restack|frame-size-changed-p|func-arity|generic--normalize-comments|generic-bracket-support|generic-mode-set-comments|generic-set-comment-syntax|generic-set-comment-vars|get-variable-watchers|gfm-mode|gfm-view-mode|ghc-core-create-core|ghc-core-mode|ghci-script-mode|git-commit--save-and-exit|git-commit-ack|git-commit-cc|git-commit-committer-email|git-commit-committer-name|git-commit-commit|git-commit-find-pseudo-header-position|git-commit-first-env-var|git-commit-font-lock-diff|git-commit-git-config-var|git-commit-insert-header-as-self|git-commit-insert-header|git-commit-mode|git-commit-reported|git-commit-review|git-commit-signoff|git-commit-test|git-define-git-commit-self|git-define-git-commit|gitattributes-mode--highlight-1st-field|gitattributes-mode-backward-field|gitattributes-mode-eldoc|gitattributes-mode-forward-field|gitattributes-mode-help|gitattributes-mode-menu|gitattributes-mode|gitconfig-indent-line|gitconfig-indentation-string|gitconfig-line-indented-p|gitconfig-mode|gitconfig-point-in-indentation-p|gitignore-mode|global-aggressive-indent-mode-check-buffers|global-aggressive-indent-mode-cmhh|global-aggressive-indent-mode-enable-in-buffers|global-aggressive-indent-mode|global-display-line-numbers-mode|global-eldoc-mode-check-buffers|global-eldoc-mode-cmhh|global-eldoc-mode-enable-in-buffers|glsl-mode|gnutls-asynchronous-parameters|gnutls-ciphers|gnutls-digests|gnutls-hash-digest|gnutls-hash-mac|gnutls-macs|gnutls-symmetric-decrypt|gnutls-symmetric-encrypt|go-download-play|go-mode|godoc|gofmt-before-save|gui-backend-get-selection|gui-backend-selection-exists-p|gui-backend-selection-owner-p|gui-backend-set-selection|gv-delay-error|gv-setter|gv-synthetic-place|hack-connection-local-variables-apply|handle-args-function|handle-move-frame|hash-table-empty-p|haskell-align-imports|haskell-c2hs-mode|haskell-cabal-get-dir|haskell-cabal-get-field|haskell-cabal-mode|haskell-cabal-visit-file|haskell-collapse-mode|haskell-compile|haskell-completions-completion-at-point|haskell-decl-scan-mode|haskell-describe|haskell-doc-current-info|haskell-doc-mode|haskell-doc-show-type|haskell-ds-create-imenu-index|haskell-forward-sexp|haskell-hayoo|haskell-hoogle-lookup-from-local|haskell-hoogle|haskell-indent-mode|haskell-indentation-mode|haskell-interactive-bring|haskell-interactive-kill|haskell-interactive-mode-echo|haskell-interactive-mode-reset-error|haskell-interactive-mode-return|haskell-interactive-mode-visit-error|haskell-interactive-switch|haskell-kill-session-process|haskell-menu|haskell-mode-after-save-handler|haskell-mode-find-uses|haskell-mode-generate-tags|haskell-mode-goto-loc|haskell-mode-jump-to-def-or-tag|haskell-mode-jump-to-def|haskell-mode-jump-to-tag|haskell-mode-show-type-at)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(haskell-mode-stylish-buffer|haskell-mode-tag-find|haskell-mode-view-news|haskell-mode|haskell-move-nested-left|haskell-move-nested-right|haskell-move-nested|haskell-navigate-imports-go|haskell-navigate-imports-return|haskell-navigate-imports|haskell-process-cabal-build|haskell-process-cabal-macros|haskell-process-cabal|haskell-process-cd|haskell-process-clear|haskell-process-do-info|haskell-process-do-type|haskell-process-interrupt|haskell-process-load-file|haskell-process-load-or-reload|haskell-process-minimal-imports|haskell-process-reload-devel-main|haskell-process-reload-file|haskell-process-reload|haskell-process-restart|haskell-process-show-repl-response|haskell-process-unignore|haskell-rgrep|haskell-session-all-modules|haskell-session-change-target|haskell-session-change|haskell-session-installed-modules|haskell-session-kill|haskell-session-maybe|haskell-session-process|haskell-session-project-modules|haskell-session|haskell-sort-imports|haskell-tab-indent-mode|haskell-version|hayoo|help--analyze-key|help--binding-undefined-p|help--docstring-quote|help--filter-info-list|help--load-prefixes|help--loaded-p|help--make-usage-docstring|help--make-usage|help--read-key-sequence|help--symbol-completion-table|help-definition-prefixes|help-fns--analyze-function|help-fns-function-description-header|help-fns-short-filename|highlight-uses-mode|hoogle|hyperspec-lookup|ibuffer-jump|ido-dired-other-frame|ido-dired-other-window|ido-display-buffer-other-frame|ido-find-alternate-file-other-window|if-let\\\\*|image-dired-minor-mode|image-mode-to-text|indent--default-inside-comment|indent--funcall-widened|indent-region-line-by-line|indent-relative-first-indent-point|inferior-erlang|inferior-lfe-mode|inferior-lfe|ini-mode|insert-directory-clean|insert-directory-wildcard-in-dir-p|interactive-haskell-mode|internal--compiler-macro-cXXr|internal--syntax-propertize|internal-auto-fill|internal-default-interrupt-process|internal-echo-keystrokes-prefix|internal-handle-focus-in|isearch--describe-regexp-mode|isearch--describe-word-mode|isearch--lax-regexp-function-p|isearch--momentary-message|isearch--yank-char-or-syntax|isearch-define-mode-toggle|isearch-lazy-highlight-start|isearch-string-propertize|isearch-toggle-char-fold|isearch-update-from-string-properties|isearch-xterm-paste|isearch-yank-symbol-or-char|jison-mode|jit-lock--run-functions|js-jsx-mode|js2-highlight-unused-variables-mode|js2-imenu-extras-mode|js2-imenu-extras-setup|js2-jsx-mode|js2-minor-mode|js2-mode|json--check-position|json--decode-utf-16-surrogates|json--plist-reverse|json--plist-to-alist|json--record-path|json-advance--inliner|json-path-to-position|json-peek--inliner|json-pop--inliner|json-pretty-print-buffer-ordered|json-pretty-print-ordered|json-readtable-dispatch|json-skip-whitespace--inliner|kill-current-buffer|kmacro-keyboard-macro-p|kmacro-p|kqueue-add-watch|kqueue-rm-watch|kqueue-valid-p|langdoc-call-fun|langdoc-define-help-mode|langdoc-if-let|langdoc-insert-link|langdoc-matched-strings|langdoc-while-let|lcms-cam02-ucs|lcms-cie-de2000|lcms-jab->jch|lcms-jch->jab|lcms-jch->xyz|lcms-temp->white-point|lcms-xyz->jch|lcms2-available-p|less-css-mode|let-when-compile|lfe-indent-function|lfe-mode|lgstring-remove-glyph|libxml-available-p|line-number-display-width|lisp--el-match-keyword|lisp--el-non-funcall-position-p|lisp-adaptive-fill|lisp-indent-calc-next|lisp-indent-initial-state|lisp-indent-region|lisp-indent-state-p--cmacro|lisp-indent-state-ppss--cmacro|lisp-indent-state-ppss-point--cmacro|lisp-indent-state-ppss-point|lisp-indent-state-ppss|lisp-indent-state-p|lisp-indent-state-stack--cmacro|lisp-indent-state-stack|lisp-ppss|list-timers|literate-haskell-mode|load-user-init-file|loadhist-unload-element|logcount|lread--substitute-object-in-subtree|macroexp-macroexpand|macroexp-parse-body|macrostep-c-mode-hook|macrostep-expand|macrostep-mode|major-mode-restore|major-mode-suspend|make-condition-variable|make-empty-file|make-finalizer|make-mutex|make-nearby-temp-file|make-pipe-process|make-process|make-record|make-temp-file-internal|make-thread|make-xref-elisp-location--cmacro|make-xref-elisp-location|make-yas--exit--cmacro|make-yas--exit|make-yas--field--cmacro|make-yas--field|make-yas--mirror--cmacro|make-yas--mirror|make-yas--snippet--cmacro|make-yas--snippet|make-yas--table--cmacro|make-yas--table|map--apply-alist|map--apply-array|map--apply-hash-table|map--do-alist|map--do-array|map--into-hash-table|map--make-pcase-bindings|map--make-pcase-patterns|map--pcase-macroexpander|map--put|map-apply|map-contains-key|map-copy|map-delete|map-do|map-elt|map-empty-p|map-every-p|map-filter|map-into|map-keys-apply|map-keys|map-length|map-let|map-merge-with|map-merge|map-nested-elt|map-pairs|map-put|map-remove|map-some|map-values-apply|map-values|mapbacktrace|mapp|mark-beginning-of-buffer|mark-end-of-buffer|markdown-live-preview-mode|markdown-mode|markdown-view-mode|mc-hide-unmatched-lines-mode|mc\\\\/add-cursor-on-click|mc\\\\/edit-beginnings-of-lines|mc\\\\/edit-ends-of-lines|mc\\\\/edit-lines|mc\\\\/insert-letters|mc\\\\/insert-numbers|mc\\\\/mark-all-dwim|mc\\\\/mark-all-in-region-regexp|mc\\\\/mark-all-in-region|mc\\\\/mark-all-like-this-dwim|mc\\\\/mark-all-like-this-in-defun|mc\\\\/mark-all-like-this|mc\\\\/mark-all-symbols-like-this-in-defun|mc\\\\/mark-all-symbols-like-this|mc\\\\/mark-all-words-like-this-in-defun|mc\\\\/mark-all-words-like-this|mc\\\\/mark-more-like-this-extended|mc\\\\/mark-next-like-this-word|mc\\\\/mark-next-like-this|mc\\\\/mark-next-lines|mc\\\\/mark-next-symbol-like-this|mc\\\\/mark-next-word-like-this|mc\\\\/mark-pop|mc\\\\/mark-previous-like-this-word|mc\\\\/mark-previous-like-this|mc\\\\/mark-previous-lines|mc\\\\/mark-previous-symbol-like-this|mc\\\\/mark-previous-word-like-this|mc\\\\/mark-sgml-tag-pair|mc\\\\/reverse-regions|mc\\\\/skip-to-next-like-this|mc\\\\/skip-to-previous-like-this|mc\\\\/sort-regions|mc\\\\/toggle-cursor-on-click|mc\\\\/unmark-next-like-this|mc\\\\/unmark-previous-like-this|mc\\\\/vertical-align-with-space|mc\\\\/vertical-align|menu-bar-bottom-and-right-window-divider|menu-bar-bottom-window-divider|menu-bar-display-line-numbers-mode|menu-bar-goto-uses-etags-p|menu-bar-no-window-divider|menu-bar-right-window-divider|menu-bar-window-divider-customize|mhtml-mode|midnight-mode|minibuffer-maybe-quote-filename|minibuffer-prompt-properties--setter|mm-images-in-region-p|mocha--get-callsite-name|mocha-attach-indium|mocha-check-debugger|mocha-compilation-filter|mocha-debug-at-point|mocha-debug-file|mocha-debug-project|mocha-debugger-get|mocha-debugger-name-p|mocha-debug|mocha-find-current-test|mocha-find-project-root|mocha-generate-command|mocha-list-of-strings-p|mocha-make-imenu-alist|mocha-opts-file|mocha-realgud:nodejs-attach|mocha-run|mocha-test-at-point|mocha-test-file|mocha-test-project|mocha-toggle-imenu-function|mocha-walk-up-to-it|mode-line-default-help-echo|module-function-p|module-load|mouse--click-1-maybe-follows-link|mouse-absolute-pixel-position|mouse-drag-and-drop-region|mouse-drag-bottom-edge|mouse-drag-bottom-left-corner|mouse-drag-bottom-right-corner|mouse-drag-frame|mouse-drag-left-edge|mouse-drag-right-edge|mouse-drag-top-edge|mouse-drag-top-left-corner|mouse-drag-top-right-corner|mouse-resize-frame|move-text--at-first-line-p)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(move-text--at-last-line-p|move-text--at-penultimate-line-p|move-text--last-line-is-just-newline|move-text--total-lines|move-text-default-bindings|move-text-down|move-text-line-down|move-text-line-up|move-text-region-down|move-text-region-up|move-text-region|move-text-up|move-to-window-group-line|mule--ucs-names-annotation|multiple-cursors-mode|mutex-lock|mutex-name|mutex-unlock|mutexp|nasm-mode|newlisp-mode|newlisp-show-repl|next-error-buffer-on-selected-frame|next-error-found|next-error-select-buffer|ninja-mode|obarray-get|obarray-make|obarray-map|obarray-put|obarray-remove|obarray-size|obarrayp|occur-regexp-descr|org-columns-insert-dblock|org-duration-from-minutes|org-duration-h:mm-only-p|org-duration-p|org-duration-set-regexps|org-duration-to-minutes|org-lint|package--activate-autoloads-and-load-path|package--add-to-compatibility-table|package--append-to-alist|package--autoloads-file-name|package--build-compatibility-table|package--check-signature-content|package--download-and-read-archives|package--find-non-dependencies|package--get-deps|package--incompatible-p|package--load-files-for-activation|package--newest-p|package--prettify-quick-help-key|package--print-help-section|package--quickstart-maybe-refresh|package--read-pkg-desc|package--removable-packages|package--remove-hidden|package--save-selected-packages|package--sort-by-dependence|package--sort-deps-in-alist|package--update-downloads-in-progress|package--update-selected-packages|package--used-elsewhere-p|package--user-installed-p|package--user-selected-p|package--with-response-buffer|package-activate-all|package-archive-priority|package-autoremove|package-delete-button-action|package-desc-priority-version|package-desc-priority|package-dir-info|package-install-selected-packages|package-menu--find-and-notify-upgrades|package-menu--list-to-prompt|package-menu--mark-or-notify-upgrades|package-menu--mark-upgrades-1|package-menu--partition-transaction|package-menu--perform-transaction|package-menu--populate-new-package-list|package-menu--post-refresh|package-menu--print-info-simple|package-menu--prompt-transaction-p|package-menu-hide-package|package-menu-mode-menu|package-menu-toggle-hiding|package-quickstart-refresh|package-reinstall|pcase--edebug-match-macro|pcase--make-docstring|pcase-lambda|pcomplete\\\\/find|perl-flymake|picolisp-mode|picolisp-repl-mode|picolisp-repl|pixel-scroll-mode|pos-visible-in-window-group-p|pov-mode|powershell-mode|powershell|prefix-command-preserve-state|prefix-command-update|prettify-symbols--post-command-hook|prettify-symbols-default-compose-p|print--preprocess|process-thread|prog-first-column|project-current|project-find-file|project-find-regexp|project-or-external-find-file|project-or-external-find-regexp|proper-list-p|provided-mode-derived-p|pulse-momentary-highlight-one-line|pulse-momentary-highlight-region|quelpa|query-replace--split-string|radix-tree--insert|radix-tree--lookup|radix-tree--prefixes|radix-tree--remove|radix-tree--subtree|radix-tree-count|radix-tree-from-map|radix-tree-insert|radix-tree-iter-mappings|radix-tree-iter-subtrees|radix-tree-leaf--pcase-macroexpander|radix-tree-lookup|radix-tree-prefixes|radix-tree-subtree|read-answer|read-multiple-choice|readable-foreground-color|recenter-window-group|recentf-mode|recode-file-name|recode-region|record-window-buffer|recordp|record|recover-file|recover-session-finish|recover-session|recover-this-file|rectangle-mark-mode|rectangle-number-lines|rectangular-region-mode|redirect-debugging-output|redisplay--pre-redisplay-functions|redisplay--update-region-highlight|redraw-modeline|refill-mode|reftex-all-document-files|reftex-citation|reftex-index-phrases-mode|reftex-isearch-minor-mode|reftex-mode|reftex-reset-scanning-information|regexp-builder|regexp-opt-group|region-active-p|region-bounds|region-modifiable-p|region-noncontiguous-p|register-ccl-program|register-code-conversion-map|register-definition-prefixes|register-describe-oneline|register-input-method|register-preview-default|register-preview|register-swap-out|register-to-point|register-val-describe|register-val-insert|register-val-jump-to|registerv--make--cmacro|registerv--make|registerv-data--cmacro|registerv-data|registerv-insert-func--cmacro|registerv-insert-func|registerv-jump-func--cmacro|registerv-jump-func|registerv-make|registerv-p--cmacro|registerv-print-func--cmacro|registerv-print-func|registerv-p|remember-clipboard|remember-diary-extract-entries|remember-notes|remember-other-frame|remember|remove-variable-watcher|remove-yank-excluded-properties|rename-uniquely|repeat-complex-command|repeat-matching-complex-command|repeat|replace--push-stack|replace-buffer-contents|replace-dehighlight|replace-eval-replacement|replace-highlight|replace-loop-through-replacements|replace-match-data|replace-match-maybe-edit|replace-match-string-symbols|replace-quote|replace-rectangle|replace-regexp|replace-search|replace-string|report-emacs-bug|report-errors|reporter-submit-bug-report|reposition-window|repunctuate-sentences|reset-language-environment|reset-this-command-lengths|resize-mini-window-internal|resize-temp-buffer-window|reveal-mode|reverse-region|revert-buffer--default|revert-buffer-insert-file-contents--default-function|revert-buffer-with-coding-system|rfc2104-hash|rfc822-goto-eoh|rfn-eshadow-setup-minibuffer|rfn-eshadow-sifn-equal|rfn-eshadow-update-overlay|rgrep|right-char|right-word|rlogin|rmail-input|rmail-mode|rmail-movemail-variant-p|rmail-output-as-seen|run-erlang|run-forth|run-haskell|run-lfe|run-newlisp|run-sml|rust-mode|rx--pcase-macroexpander|save-mark-and-excursion--restore|save-mark-and-excursion--save|save-mark-and-excursion|save-place-local-mode|save-place-mode|scad-mode|search-forward-help-for-help|secondary-selection-exist-p|secondary-selection-from-region|secondary-selection-to-region|secure-hash-algorithms|sed-mode|selected-window-group|seq--activate-font-lock-keywords|seq--elt-safe|seq--into-list|seq--into-string|seq--into-vector|seq--make-pcase-bindings|seq--make-pcase-patterns|seq--pcase-macroexpander|seq-contains|seq-difference|seq-do-indexed|seq-find|seq-group-by|seq-intersection|seq-into-sequence|seq-into|seq-let|seq-map-indexed|seq-mapcat|seq-mapn|seq-max|seq-min|seq-partition|seq-position|seq-random-elt|seq-set-equal-p|seq-some|seq-sort-by|seqp|set--this-command-keys|set-binary-mode|set-buffer-redisplay|set-mouse-absolute-pixel-position|set-process-thread|set-rectangular-region-anchor|set-window-group-start|shell-command--save-pos-or-erase|shell-command--set-point-after-cmd|shift-number-down|shift-number-up|slime-connect|slime-lisp-mode-hook|slime-mode|slime-scheme-mode-hook|slime-selector|slime-setup|slime|smerge-refine-regions|sml-cm-mode|sml-lex-mode|sml-mode|sml-run|sml-yacc-mode|snippet-mode|spice-mode|split-window-no-error|sql-mariadb|ssh-authorized-keys-mode|ssh-config-mode|ssh-known-hosts-mode|startup--setup-quote-display|string-distance|string-greaterp|string-version-lessp|string>|subr--with-wrapper-hook-no-warnings|switch-to-haskell|sxhash-eql|sxhash-equal|sxhash-eq|syntax-ppss--data)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(tabulated-list--col-local-max-widths|tabulated-list--get-sorter|tabulated-list-header-overlay-p|tabulated-list-line-number-width|tabulated-list-watch-line-number-width|tabulated-list-window-scroll-function|terminal-init-xterm|thing-at-point--beginning-of-sexp|thing-at-point--end-of-sexp|thing-at-point--read-from-whole-string|thread--blocker|thread-alive-p|thread-handle-event|thread-join|thread-last-error|thread-live-p|thread-name|thread-signal|thread-yield|threadp|tildify-mode|tildify-space|toml-mode|tramp-archive-autoload-file-name-regexp|tramp-register-archive-file-name-handler|tty-color-24bit|turn-on-haskell-decl-scan|turn-on-haskell-doc-mode|turn-on-haskell-doc|turn-on-haskell-indentation|turn-on-haskell-indent|turn-on-haskell-unicode-input-method|typescript-mode|uncomment-region-default-1|undo--wrap-and-run-primitive-undo|undo-amalgamate-change-group|undo-auto--add-boundary|undo-auto--boundaries|undo-auto--boundary-ensure-timer|undo-auto--boundary-timer|undo-auto--ensure-boundary|undo-auto--last-boundary-amalgamating-number|undo-auto--needs-boundary-p|undo-auto--undoable-change|undo-auto-amalgamate|universal-argument--description|universal-argument--preserve|upcase-char|upcase-dwim|url-asynchronous--cmacro|url-asynchronous|url-directory-files|url-domain|url-file-attributes|url-file-directory-p|url-file-executable-p|url-file-exists-p|url-file-handler-identity|url-file-name-all-completions|url-file-name-completion|url-file-symlink-p|url-file-truename|url-file-writable-p|url-handler-directory-file-name|url-handler-expand-file-name|url-handler-file-name-directory|url-handler-file-remote-p|url-handler-unhandled-file-name-directory|url-handlers-create-wrapper|url-handlers-set-buffer-mode|url-insert-buffer-contents|url-insert|url-run-real-handler|user-ptrp|userlock--ask-user-about-supersession-threat|vc-message-unresolved-conflicts|vc-print-branch-log|vc-push|vc-refresh-state|version-control-safe-local-p|vimrc-mode|wavefront-obj-mode|when-let\\\\*|window--adjust-process-windows|window--even-window-sizes|window--make-major-side-window-next-to|window--make-major-side-window|window--process-window-list|window--sides-check-failed|window--sides-check|window--sides-reverse-all|window--sides-reverse-frame|window--sides-reverse-on-frame-p|window--sides-reverse-side|window--sides-reverse|window--sides-verticalize-frame|window--sides-verticalize|window-absolute-body-pixel-edges|window-absolute-pixel-position|window-adjust-process-window-size-largest|window-adjust-process-window-size-smallest|window-adjust-process-window-size|window-body-edges|window-body-pixel-edges|window-divider-mode-apply|window-divider-mode|window-divider-width-valid-p|window-font-height|window-font-width|window-group-end|window-group-start|window-largest-empty-rectangle--disjoint-maximums|window-largest-empty-rectangle--maximums-1|window-largest-empty-rectangle--maximums|window-largest-empty-rectangle|window-lines-pixel-dimensions|window-main-window|window-max-chars-per-line|window-pixel-height-before-size-change|window-pixel-width-before-size-change|window-swap-states|window-system-initialization|window-toggle-side-windows|with-connection-local-profiles|with-mutex|x-load-color-file|xml-remove-comments|xref-backend-apropos|xref-backend-definitions|xref-backend-identifier-completion-table|xref-collect-matches|xref-elisp-location-file--cmacro|xref-elisp-location-file|xref-elisp-location-p--cmacro|xref-elisp-location-symbol--cmacro|xref-elisp-location-symbol|xref-elisp-location-type--cmacro|xref-elisp-location-type|xref-find-backend|xref-find-definitions-at-mouse|xref-make-elisp-location--cmacro|xref-marker-stack-empty-p|xterm--init-activate-get-selection|xterm--init-activate-set-selection|xterm--init-bracketed-paste-mode|xterm--init-focus-tracking|xterm--init-frame-title|xterm--init-modify-other-keys|xterm--pasted-text|xterm--push-map|xterm--query|xterm--read-event-for-query|xterm--report-background-handler|xterm--selection-char|xterm--suspend-tty-function|xterm--version-handler|xterm-maybe-set-dark-background-mode|xterm-paste|xterm-register-default-colors|xterm-rgb-convert-to-16bit|xterm-set-window-title-flag|xterm-set-window-title|xterm-translate-bracketed-paste|xterm-translate-focus-in|xterm-translate-focus-out|xterm-unset-window-title-flag|xwidget-webkit-browse-url|yaml-mode|yas--add-template|yas--advance-end-maybe|yas--advance-end-of-parents-maybe|yas--advance-start-maybe|yas--all-templates|yas--apply-transform|yas--auto-fill-wrapper|yas--auto-fill|yas--auto-next|yas--calculate-adjacencies|yas--calculate-group|yas--calculate-mirror-depth|yas--calculate-simple-fom-parentage|yas--check-commit-snippet|yas--collect-snippet-markers|yas--commit-snippet|yas--compute-major-mode-and-parents|yas--create-snippet-xrefs|yas--define-menu-1|yas--define-parents|yas--define-snippets-1|yas--define-snippets-2|yas--define|yas--delete-from-keymap|yas--delete-regions|yas--describe-pretty-table|yas--escape-string|yas--eval-condition|yas--eval-for-effect|yas--eval-for-string|yas--exit-marker--cmacro|yas--exit-marker|yas--exit-next--cmacro|yas--exit-next|yas--exit-p--cmacro|yas--exit-p|yas--expand-from-keymap-doc|yas--expand-from-trigger-key-doc|yas--expand-or-prompt-for-template|yas--expand-or-visit-from-menu|yas--fallback-translate-input|yas--fallback|yas--fetch|yas--field-contains-point-p|yas--field-end--cmacro|yas--field-end|yas--field-mirrors--cmacro|yas--field-mirrors|yas--field-modified-p--cmacro|yas--field-modified-p|yas--field-next--cmacro|yas--field-next|yas--field-number--cmacro|yas--field-number|yas--field-p--cmacro|yas--field-parent-field--cmacro|yas--field-parent-field|yas--field-parse-create|yas--field-probably-deleted-p|yas--field-p|yas--field-start--cmacro|yas--field-start|yas--field-text-for-display|yas--field-transform--cmacro|yas--field-transform|yas--field-update-display|yas--filter-templates-by-condition|yas--find-next-field|yas--finish-moving-snippets|yas--fom-end|yas--fom-next|yas--fom-parent-field|yas--fom-start|yas--format|yas--get-field-once|yas--get-snippet-tables|yas--get-template-by-uuid|yas--global-mode-reload-with-jit-maybe|yas--goto-saved-location|yas--guess-snippet-directories-1|yas--guess-snippet-directories|yas--indent-parse-create|yas--indent-region|yas--indent|yas--key-from-desc|yas--keybinding-beyond-yasnippet|yas--letenv|yas--load-directory-1|yas--load-directory-2|yas--load-pending-jits|yas--load-snippet-dirs|yas--load-yas-setup-file|yas--lookup-snippet-1|yas--make-control-overlay|yas--make-directory-maybe|yas--make-exit--cmacro|yas--make-exit|yas--make-field--cmacro|yas--make-field|yas--make-marker|yas--make-menu-binding|yas--make-mirror--cmacro|yas--make-mirror|yas--make-move-active-field-overlay|yas--make-move-field-protection-overlays|yas--make-snippet--cmacro|yas--make-snippet-table--cmacro|yas--make-snippet-table|yas--make-snippet|yas--make-template--cmacro|yas--make-template)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(yas--mark-this-and-children-modified|yas--markers-to-points|yas--maybe-clear-field-filter|yas--maybe-expand-from-keymap-filter|yas--maybe-expand-key-filter|yas--maybe-move-to-active-field|yas--menu-keymap-get-create|yas--message|yas--minor-mode-menu|yas--mirror-depth--cmacro|yas--mirror-depth|yas--mirror-end--cmacro|yas--mirror-end|yas--mirror-next--cmacro|yas--mirror-next|yas--mirror-p--cmacro|yas--mirror-parent-field--cmacro|yas--mirror-parent-field|yas--mirror-p|yas--mirror-start--cmacro|yas--mirror-start|yas--mirror-transform--cmacro|yas--mirror-transform|yas--mirror-update-display|yas--modes-to-activate|yas--move-to-field|yas--namehash-templates-alist|yas--on-buffer-kill|yas--on-field-overlay-modification|yas--on-protection-overlay-modification|yas--parse-template|yas--place-overlays|yas--points-to-markers|yas--post-command-handler|yas--prepare-snippets-for-move|yas--prompt-for-keys|yas--prompt-for-table|yas--prompt-for-template|yas--protect-escapes|yas--read-keybinding|yas--read-lisp|yas--read-table|yas--remove-misc-free-from-undo|yas--remove-template-by-uuid|yas--replace-all|yas--require-template-specific-condition-p|yas--restore-backquotes|yas--restore-escapes|yas--restore-marker-location|yas--restore-overlay-line-location|yas--restore-overlay-location|yas--safely-call-fun|yas--safely-run-hook|yas--save-backquotes|yas--save-restriction-and-widen|yas--scan-sexps|yas--schedule-jit|yas--show-menu-p|yas--simple-fom-create|yas--skip-and-clear-field-p|yas--skip-and-clear|yas--snapshot-marker-location|yas--snapshot-overlay-line-location|yas--snapshot-overlay-location|yas--snippet-active-field--cmacro|yas--snippet-active-field|yas--snippet-control-overlay--cmacro|yas--snippet-control-overlay|yas--snippet-create|yas--snippet-description-finish-runonce|yas--snippet-exit--cmacro|yas--snippet-exit|yas--snippet-expand-env--cmacro|yas--snippet-expand-env|yas--snippet-field-compare|yas--snippet-fields--cmacro|yas--snippet-fields|yas--snippet-find-field|yas--snippet-force-exit--cmacro|yas--snippet-force-exit|yas--snippet-id--cmacro|yas--snippet-id|yas--snippet-live-p|yas--snippet-map-markers|yas--snippet-next-id|yas--snippet-p--cmacro|yas--snippet-parse-create|yas--snippet-previous-active-field--cmacro|yas--snippet-previous-active-field|yas--snippet-p|yas--snippet-revive|yas--snippet-sort-fields|yas--snippets-at-point|yas--subdirs|yas--table-all-keys|yas--table-direct-keymap--cmacro|yas--table-direct-keymap|yas--table-get-create|yas--table-hash--cmacro|yas--table-hash|yas--table-mode|yas--table-name--cmacro|yas--table-name|yas--table-p--cmacro|yas--table-parents--cmacro|yas--table-parents|yas--table-p|yas--table-templates|yas--table-uuidhash--cmacro|yas--table-uuidhash|yas--take-care-of-redo|yas--template-can-expand-p|yas--template-condition--cmacro|yas--template-condition|yas--template-content--cmacro|yas--template-content|yas--template-expand-env--cmacro|yas--template-expand-env|yas--template-fine-group|yas--template-get-file|yas--template-group--cmacro|yas--template-group|yas--template-key--cmacro|yas--template-keybinding--cmacro|yas--template-keybinding|yas--template-key|yas--template-load-file--cmacro|yas--template-load-file|yas--template-menu-binding-pair--cmacro|yas--template-menu-binding-pair-get-create|yas--template-menu-binding-pair|yas--template-menu-managed-by-yas-define-menu|yas--template-name--cmacro|yas--template-name|yas--template-p--cmacro|yas--template-perm-group--cmacro|yas--template-perm-group|yas--template-pretty-list|yas--template-p|yas--template-save-file--cmacro|yas--template-save-file|yas--template-table--cmacro|yas--template-table|yas--template-uuid--cmacro|yas--template-uuid|yas--templates-for-key-at-point|yas--transform-mirror-parse-create|yas--undo-in-progress|yas--update-mirrors|yas--update-template-menu|yas--update-template|yas--visit-snippet-file-1|yas--warning|yas--watch-auto-fill|yas-abort-snippet|yas-about|yas-activate-extra-mode|yas-active-keys|yas-active-snippets|yas-auto-next|yas-choose-value|yas-compile-directory|yas-completing-prompt|yas-current-field|yas-deactivate-extra-mode|yas-default-from-field|yas-define-condition-cache|yas-define-menu|yas-define-snippets|yas-describe-table-by-namehash|yas-describe-tables|yas-direct-keymaps-reload|yas-dropdown-prompt|yas-escape-text|yas-exit-all-snippets|yas-exit-snippet|yas-expand-from-keymap|yas-expand-from-trigger-key|yas-expand-snippet|yas-expand|yas-field-value|yas-global-mode-check-buffers|yas-global-mode-cmhh|yas-global-mode-enable-in-buffers|yas-global-mode|yas-hippie-try-expand|yas-ido-prompt|yas-initialize|yas-insert-snippet|yas-inside-string|yas-key-to-value|yas-load-directory|yas-load-snippet-buffer-and-close|yas-load-snippet-buffer|yas-longest-key-from-whitespace|yas-lookup-snippet|yas-maybe-ido-prompt|yas-maybe-load-snippet-buffer|yas-minor-mode-on|yas-minor-mode-set-explicitly|yas-minor-mode|yas-new-snippet|yas-next-field-or-maybe-expand|yas-next-field-will-exit-p|yas-next-field|yas-no-prompt|yas-prev-field|yas-recompile-all|yas-reload-all|yas-selected-text|yas-shortest-key-until-whitespace|yas-skip-and-clear-field|yas-skip-and-clear-or-delete-char|yas-snippet-dirs|yas-snippet-mode-buffer-p|yas-substr|yas-text|yas-throw|yas-try-key-from-whitespace|yas-tryout-snippet|yas-unimplemented|yas-verify-value|yas-visit-snippet-file|yas-x-prompt|yas\\\\/abort-snippet|yas\\\\/about|yas\\\\/choose-value|yas\\\\/compile-directory|yas\\\\/completing-prompt|yas\\\\/default-from-field|yas\\\\/define-condition-cache|yas\\\\/define-menu|yas\\\\/define-snippets|yas\\\\/describe-tables|yas\\\\/direct-keymaps-reload|yas\\\\/dropdown-prompt|yas\\\\/exit-all-snippets|yas\\\\/exit-snippet|yas\\\\/expand-from-keymap|yas\\\\/expand-from-trigger-key|yas\\\\/expand-snippet|yas\\\\/expand|yas\\\\/field-value|yas\\\\/global-mode|yas\\\\/hippie-try-expand|yas\\\\/ido-prompt|yas\\\\/initialize|yas\\\\/insert-snippet|yas\\\\/inside-string|yas\\\\/key-to-value|yas\\\\/load-directory|yas\\\\/load-snippet-buffer|yas\\\\/minor-mode-on|yas\\\\/minor-mode|yas\\\\/new-snippet|yas\\\\/next-field-or-maybe-expand|yas\\\\/next-field|yas\\\\/no-prompt|yas\\\\/prev-field|yas\\\\/recompile-all|yas\\\\/reload-all|yas\\\\/selected-text|yas\\\\/skip-and-clear-or-delete-char|yas\\\\/snippet-dirs|yas\\\\/substr|yas\\\\/text|yas\\\\/throw|yas\\\\/tryout-snippet|yas\\\\/unimplemented|yas\\\\/verify-value|yas\\\\/visit-snippet-file|yas\\\\/x-prompt|yasnippet-unload-function|zap-up-to-char)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(abbrev-all-caps|abbrev-expand-function|abbrev-expansion|abbrev-file-name|abbrev-get|abbrev-insert|abbrev-map|abbrev-minor-mode-table-alist|abbrev-prefix-mark|abbrev-put|abbrev-start-location|abbrev-start-location-buffer|abbrev-symbol|abbrev-table-get|abbrev-table-name-list|abbrev-table-p|abbrev-table-put|abbreviate-file-name|abbrevs-changed|abort-recursive-edit|accept-change-group|accept-process-output|access-file|accessible-keymaps|acos|activate-change-group|activate-mark-hook|active-minibuffer-window|adaptive-fill-first-line-regexp|adaptive-fill-function|adaptive-fill-mode|adaptive-fill-regexp|add-face-text-property|add-function|add-hook|add-name-to-file|add-text-properties|add-to-history|add-to-invisibility-spec|add-to-list|add-to-ordered-list|adjust-window-trailing-edge|advice-add|advice-eval-interactive-spec|advice-function-mapc|advice-function-member-p|advice-mapc|advice-member-p|advice-remove|after-change-functions|after-change-major-mode-hook|after-find-file|after-init-hook|after-init-time|after-insert-file-functions|after-load-functions|after-make-frame-functions|after-revert-hook|after-save-hook|after-setting-font-hook|all-completions|append-to-file|apply-partially|apropos|aref|argv|arrayp|ascii-case-table|aset|ash|asin|ask-user-about-lock|ask-user-about-supersession-threat|assoc-default|assoc-string|assq|assq-delete-all|atan|atom|auto-coding-alist|auto-coding-functions|auto-coding-regexp-alist|auto-fill-chars|auto-fill-function|auto-hscroll-mode|auto-mode-alist|auto-raise-tool-bar-buttons|auto-resize-tool-bars|auto-save-default|auto-save-file-name-p|auto-save-hook|auto-save-interval|auto-save-list-file-name|auto-save-list-file-prefix|auto-save-mode|auto-save-timeout|auto-save-visited-file-name|auto-window-vscroll|autoload|autoload-do-load|autoloadp|back-to-indentation|backtrace|backtrace-debug|backtrace-frame|backup-buffer|backup-by-copying|backup-by-copying-when-linked|backup-by-copying-when-mismatch|backup-by-copying-when-privileged-mismatch|backup-directory-alist|backup-enable-predicate|backup-file-name-p|backup-inhibited|backward-button|backward-char|backward-delete-char-untabify|backward-delete-char-untabify-method|backward-list|backward-prefix-chars|backward-sexp|backward-to-indentation|backward-word|balance-windows|balance-windows-area|barf-if-buffer-read-only|base64-decode-region|base64-decode-string|base64-encode-region|base64-encode-string|batch-byte-compile|baud-rate|beep|before-change-functions|before-hack-local-variables-hook|before-init-hook|before-init-time|before-make-frame-hook|before-revert-hook|before-save-hook|beginning-of-buffer|beginning-of-defun|beginning-of-defun-function|beginning-of-line|bidi-display-reordering|bidi-paragraph-direction|bidi-string-mark-left-to-right|bindat-get-field|bindat-ip-to-string|bindat-length|bindat-pack|bindat-unpack|bitmap-spec-p|blink-cursor-alist|blink-matching-delay|blink-matching-open|blink-matching-paren|blink-matching-paren-distance|blink-paren-function|bobp|bolp|bool-vector-count-consecutive|bool-vector-count-population|bool-vector-exclusive-or|bool-vector-intersection|bool-vector-not|bool-vector-p|bool-vector-set-difference|bool-vector-subsetp|bool-vector-union|booleanp|boundp|buffer-access-fontified-property|buffer-access-fontify-functions|buffer-auto-save-file-format|buffer-auto-save-file-name|buffer-backed-up|buffer-base-buffer|buffer-chars-modified-tick|buffer-disable-undo|buffer-display-count|buffer-display-table|buffer-display-time|buffer-enable-undo|buffer-end|buffer-file-coding-system|buffer-file-format|buffer-file-name|buffer-file-number|buffer-file-truename|buffer-invisibility-spec|buffer-list|buffer-list-update-hook|buffer-live-p|buffer-local-value|buffer-local-variables|buffer-modified-p|buffer-modified-tick|buffer-name|buffer-name-history|buffer-narrowed-p|buffer-offer-save|buffer-quit-function|buffer-read-only|buffer-save-without-query|buffer-saved-size|buffer-size|buffer-stale-function|buffer-string|buffer-substring|buffer-substring-filters|buffer-substring-no-properties|buffer-swap-text|buffer-undo-list|bufferp|bury-buffer|button-activate|button-at|button-end|button-get|button-has-type-p|button-label|button-put|button-start|button-type|button-type-get|button-type-put|button-type-subtype-p|byte-boolean-vars|byte-code-function-p|byte-compile|byte-compile-dynamic|byte-compile-dynamic-docstrings|byte-compile-file|byte-recompile-directory|byte-to-position|byte-to-string|call-interactively|call-process|call-process-region|call-process-shell-command|called-interactively-p|cancel-change-group|cancel-debug-on-entry|cancel-timer|capitalize|capitalize-region|capitalize-word|case-fold-search|case-replace|case-table-p|category-docstring|category-set-mnemonics|category-table|category-table-p|ceiling|change-major-mode-after-body-hook|change-major-mode-hook|char-after|char-before|char-category-set|char-charset|char-code-property-description|char-displayable-p|char-equal|char-or-string-p|char-property-alias-alist|char-script-table|char-syntax|char-table-extra-slot|char-table-p|char-table-parent|char-table-range|char-table-subtype|char-to-string|char-width|char-width-table|characterp|charset-after|charset-list|charset-plist|charset-priority-list|charsetp|check-coding-system|check-coding-systems-region|checkdoc-minor-mode|cl|clear-abbrev-table|clear-image-cache|clear-string|clear-this-command-keys|clear-visited-file-modtime|clone-indirect-buffer|clrhash|coding-system-aliases|coding-system-change-eol-conversion|coding-system-change-text-conversion|coding-system-charset-list|coding-system-eol-type|coding-system-for-read|coding-system-for-write|coding-system-get|coding-system-list|coding-system-p|coding-system-priority-list|collapse-delayed-warnings|color-defined-p|color-gray-p|color-supported-p|color-values|combine-after-change-calls|combine-and-quote-strings|command-debug-status|command-error-function|command-execute|command-history|command-line|command-line-args|command-line-args-left|command-line-functions|command-line-processed|command-remapping|command-switch-alist|commandp|compare-buffer-substrings|compare-strings|compare-window-configurations|compile-defun|completing-read|completing-read-function|completion-at-point|completion-at-point-functions|completion-auto-help|completion-boundaries|completion-category-overrides|completion-extra-properties|completion-ignore-case|completion-ignored-extensions|completion-in-region|completion-regexp-list|completion-styles|completion-styles-alist|completion-table-case-fold|completion-table-dynamic|completion-table-in-turn|completion-table-merge|completion-table-subvert|completion-table-with-cache|completion-table-with-predicate|completion-table-with-quoting|completion-table-with-terminator|compute-motion|concat|cons-cells-consed|constrain-to-field|continue-process|controlling-tty-p|convert-standard-filename|coordinates-in-window-p|copy-abbrev-table|copy-category-table|copy-directory|copy-file|copy-hash-table|copy-keymap|copy-marker|copy-overlay|copy-region-as-kill|copy-sequence|copy-syntax-table|copysign|cos|count-lines|count-loop|count-screen-lines|count-words|create-file-buffer|create-fontset-from-fontset-spec|create-image|create-lockfiles|current-active-maps|current-bidi-paragraph-direction|current-buffer|current-case-table|current-column|current-fill-column|current-frame-configuration|current-global-map|current-idle-time|current-indentation|current-input-method|current-input-mode|current-justification|current-kill|current-left-margin|current-local-map|current-message|current-minor-mode-maps|current-prefix-arg|current-time|current-time-string|current-time-zone|current-window-configuration|current-word|cursor-in-echo-area|cursor-in-non-selected-windows|cursor-type|cust-print|custom-add-frequent-value|custom-initialize-delay|custom-known-themes|custom-reevaluate-setting|custom-set-faces|custom-set-variables|custom-theme-p|custom-theme-set-faces|custom-theme-set-variables|custom-unlispify-remove-prefixes|custom-variable-p|customize-package-emacs-version-alist|cygwin-convert-file-name-from-windows|cygwin-convert-file-name-to-windows|data-directory|date-leap-year-p|date-to-time|deactivate-mark|deactivate-mark-hook|debug|debug-ignored-errors|debug-on-entry|debug-on-error|debug-on-event|debug-on-message|debug-on-next-call|debug-on-quit|debug-on-signal|debugger|debugger-bury-or-kill|declare|declare-function|decode-char|decode-coding-inserted-region|decode-coding-region|decode-coding-string|decode-time|def-edebug-spec|defalias|default-boundp|default-directory|default-file-modes|default-frame-alist|default-input-method|default-justification|default-minibuffer-frame|default-process-coding-system|default-text-properties|default-value|define-abbrev|define-abbrev-table|define-alternatives|define-button-type|define-category|define-derived-mode|define-error|define-fringe-bitmap|define-generic-mode|define-globalized-minor-mode|define-hash-table-test|define-key|define-key-after|define-minor-mode|define-obsolete-face-alias|define-obsolete-function-alias|define-obsolete-variable-alias|define-package|define-prefix-command|defined-colors|defining-kbd-macro|defun-prompt-regexp|defvar-local|defvaralias|delay-mode-hooks|delayed-warnings-hook|delayed-warnings-list|delete|delete-and-extract-region|delete-auto-save-file-if-necessary|delete-auto-save-files|delete-backward-char|delete-blank-lines|delete-by-moving-to-trash|delete-char|delete-directory|delete-dups|delete-exited-processes|delete-field|delete-file|delete-frame|delete-frame-functions|delete-horizontal-space|delete-indentation|delete-minibuffer-contents|delete-old-versions|delete-other-windows|delete-overlay|delete-process|delete-region|delete-terminal|delete-terminal-functions|delete-to-left-margin|delete-trailing-whitespace|delete-window|delete-windows-on|delq|derived-mode-p|describe-bindings|describe-buffer-case-table|describe-categories|describe-current-display-table|describe-display-table|describe-mode|describe-prefix-bindings|describe-syntax|desktop-buffer-mode-handlers|desktop-save-buffer|destroy-fringe-bitmap|detect-coding-region|detect-coding-string|digit-argument|ding|dir-locals-class-alist|dir-locals-directory-cache|dir-locals-file|dir-locals-set-class-variables|dir-locals-set-directory-class|directory-file-name|directory-files|directory-files-and-attributes|dired-kept-versions|disable-command|disable-point-adjustment|disable-theme|disabled|disabled-command-function|disassemble|discard-input|display-backing-store|display-buffer|display-buffer-alist|display-buffer-at-bottom|display-buffer-base-action|display-buffer-below-selected|display-buffer-fallback-action|display-buffer-in-previous-window|display-buffer-no-window|display-buffer-overriding-action|display-buffer-pop-up-frame|display-buffer-pop-up-window|display-buffer-reuse-window|display-buffer-same-window|display-buffer-use-some-window|display-color-cells|display-color-p|display-completion-list|display-delayed-warnings|display-graphic-p|display-grayscale-p|display-images-p|display-message-or-buffer|display-mm-dimensions-alist|display-mm-height|display-mm-width|display-monitor-attributes-list|display-mouse-p|display-pixel-height|display-pixel-width|display-planes|display-popup-menus-p|display-save-under|display-screens|display-selections-p|display-supports-face-attributes-p|display-table-slot|display-visual-class|display-warning|dnd-protocol-alist|do-auto-save|doc-directory|documentation|documentation-property|dotimes-with-progress-reporter|double-click-fuzz|double-click-time|down-list|downcase|downcase-region|downcase-word|dump-emacs|dynamic-library-alist)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(easy-menu-define|easy-mmode-define-minor-mode|echo-area-clear-hook|echo-keystrokes|edebug|edebug-all-defs|edebug-all-forms|edebug-continue-kbd-macro|edebug-defun|edebug-display-freq-count|edebug-eval-macro-args|edebug-eval-top-level-form|edebug-global-break-condition|edebug-initial-mode|edebug-on-error|edebug-on-quit|edebug-print-circle|edebug-print-length|edebug-print-level|edebug-print-trace-after|edebug-print-trace-before|edebug-save-displayed-buffer-points|edebug-save-windows|edebug-set-global-break-condition|edebug-setup-hook|edebug-sit-for-seconds|edebug-temp-display-freq-count|edebug-test-coverage|edebug-trace|edebug-tracing|edebug-unwrap-results|edit-and-eval-command|electric-future-map|elt|emacs-build-time|emacs-init-time|emacs-lisp-docstring-fill-column|emacs-major-version|emacs-minor-version|emacs-pid|emacs-save-session-functions|emacs-session-restore|emacs-startup-hook|emacs-uptime|emacs-version|emulation-mode-map-alists|enable-command|enable-dir-local-variables|enable-local-eval|enable-local-variables|enable-multibyte-characters|enable-recursive-minibuffers|enable-theme|encode-char|encode-coding-region|encode-coding-string|encode-time|end-of-buffer|end-of-defun|end-of-defun-function|end-of-file|end-of-line|eobp|eolp|equal-including-properties|erase-buffer|error|error-conditions|error-message-string|esc-map|ESC-prefix|eval|eval-and-compile|eval-buffer|eval-current-buffer|eval-expression-debug-on-error|eval-expression-print-length|eval-expression-print-level|eval-minibuffer|eval-region|eval-when-compile|event-basic-type|event-click-count|event-convert-list|event-end|event-modifiers|event-start|eventp|ewoc-buffer|ewoc-collect|ewoc-create|ewoc-data|ewoc-delete|ewoc-enter-after|ewoc-enter-before|ewoc-enter-first|ewoc-enter-last|ewoc-filter|ewoc-get-hf|ewoc-goto-next|ewoc-goto-node|ewoc-goto-prev|ewoc-invalidate|ewoc-locate|ewoc-location|ewoc-map|ewoc-next|ewoc-nth|ewoc-prev|ewoc-refresh|ewoc-set-data|ewoc-set-hf|exec-directory|exec-path|exec-suffixes|executable-find|execute-extended-command|execute-kbd-macro|executing-kbd-macro|exit|exit-minibuffer|exit-recursive-edit|exp|expand-abbrev|expand-file-name|expt|extended-command-history|extra-keyboard-modifiers|face-all-attributes|face-attribute|face-attribute-relative-p|face-background|face-bold-p|face-differs-from-default-p|face-documentation|face-equal|face-font|face-font-family-alternatives|face-font-registry-alternatives|face-font-rescale-alist|face-font-selection-order|face-foreground|face-id|face-inverse-video-p|face-italic-p|face-list|face-name-history|face-remap-add-relative|face-remap-remove-relative|face-remap-reset-base|face-remap-set-base|face-remapping-alist|face-spec-set|face-stipple|face-underline-p|facemenu-keymap|facep|fboundp|fceiling|feature-unload-function|featurep|features|fetch-bytecode|ffloor|field-beginning|field-end|field-string|field-string-no-properties|file-accessible-directory-p|file-acl|file-already-exists|file-attributes|file-chase-links|file-coding-system-alist|file-directory-p|file-equal-p|file-error|file-executable-p|file-exists-p|file-expand-wildcards|file-extended-attributes|file-in-directory-p|file-local-copy|file-local-variables-alist|file-locked|file-locked-p|file-modes|file-modes-symbolic-to-number|file-name-absolute-p|file-name-all-completions|file-name-as-directory|file-name-base|file-name-coding-system|file-name-completion|file-name-directory|file-name-extension|file-name-handler-alist|file-name-history|file-name-nondirectory|file-name-sans-extension|file-name-sans-versions|file-newer-than-file-p|file-newest-backup|file-nlinks|file-notify-add-watch|file-notify-rm-watch|file-ownership-preserved-p|file-precious-flag|file-readable-p|file-regular-p|file-relative-name|file-remote-p|file-selinux-context|file-supersession|file-symlink-p|file-truename|file-writable-p|fill-column|fill-context-prefix|fill-forward-paragraph-function|fill-individual-paragraphs|fill-individual-varying-indent|fill-nobreak-predicate|fill-paragraph|fill-paragraph-function|fill-prefix|fill-region|fill-region-as-paragraph|fillarray|filter-buffer-substring|filter-buffer-substring-function|filter-buffer-substring-functions|find-auto-coding|find-backup-file-name|find-buffer-visiting|find-charset-region|find-charset-string|find-coding-systems-for-charsets|find-coding-systems-region|find-coding-systems-string|find-file|find-file-hook|find-file-literally|find-file-name-handler|find-file-noselect|find-file-not-found-functions|find-file-other-window|find-file-read-only|find-file-wildcards|find-font|find-image|find-operation-coding-system|first-change-hook|fit-frame-to-buffer|fit-frame-to-buffer-margins|fit-frame-to-buffer-sizes|fit-window-to-buffer|fit-window-to-buffer-horizontally|fixup-whitespace|float|float-e|float-output-format|float-pi|float-time|floatp|floats-consed|floor|fmakunbound|focus-follows-mouse|focus-in-hook|focus-out-hook|following-char|font-at|font-face-attributes|font-family-list|font-get|font-lock-add-keywords|font-lock-beginning-of-syntax-function|font-lock-builtin-face|font-lock-comment-delimiter-face|font-lock-comment-face|font-lock-constant-face|font-lock-defaults|font-lock-doc-face|font-lock-extend-after-change-region-function|font-lock-extra-managed-props|font-lock-fontify-buffer-function|font-lock-fontify-region-function|font-lock-function-name-face|font-lock-keyword-face|font-lock-keywords|font-lock-keywords-case-fold-search|font-lock-keywords-only|font-lock-mark-block-function|font-lock-multiline|font-lock-negation-char-face|font-lock-preprocessor-face|font-lock-remove-keywords|font-lock-string-face|font-lock-syntactic-face-function|font-lock-syntax-table|font-lock-type-face|font-lock-unfontify-buffer-function|font-lock-unfontify-region-function|font-lock-variable-name-face|font-lock-warning-face|font-put|font-spec|font-xlfd-name|fontification-functions|fontp|for|force-mode-line-update|force-window-update|format|format-alist|format-find-file|format-insert-file|format-mode-line|format-network-address|format-seconds|format-time-string|format-write-file|forward-button|forward-char|forward-comment|forward-line|forward-list|forward-sexp|forward-to-indentation|forward-word|frame-alpha-lower-limit|frame-auto-hide-function|frame-char-height|frame-char-width|frame-current-scroll-bars|frame-first-window|frame-height|frame-inherited-parameters|frame-list|frame-live-p|frame-monitor-attributes|frame-parameter|frame-parameters|frame-pixel-height|frame-pixel-width|frame-pointer-visible-p|frame-resize-pixelwise|frame-root-window|frame-selected-window|frame-terminal|frame-title-format|frame-visible-p|frame-width|framep|frexp|fringe-bitmaps-at-pos|fringe-cursor-alist|fringe-indicator-alist|fringes-outside-margins|fround|fset|ftp-login|ftruncate|function-get|functionp|fundamental-mode|fundamental-mode-abbrev-table|gap-position|gap-size|garbage-collect|garbage-collection-messages|gc-cons-percentage|gc-cons-threshold|gc-elapsed|gcs-done|generate-autoload-cookie|generate-new-buffer|generate-new-buffer-name|generated-autoload-file|get|get-buffer|get-buffer-create|get-buffer-process|get-buffer-window|get-buffer-window-list|get-byte|get-char-code-property|get-char-property|get-char-property-and-overlay|get-charset-property|get-device-terminal|get-file-buffer|get-internal-run-time|get-largest-window|get-load-suffixes|get-lru-window|get-pos-property|get-process|get-register|get-text-property|get-unused-category|get-window-with-predicate|getenv|gethash|global-abbrev-table|global-buffers-menu-map|global-disable-point-adjustment|global-key-binding|global-map|global-mode-string|global-set-key|global-unset-key|glyph-char|glyph-face|glyph-table|glyphless-char-display|glyphless-char-display-control|goto-char|goto-map|group-gid|group-real-gid|gv-define-expander|gv-define-setter|gv-define-simple-setter|gv-letplace|hack-dir-local-variables|hack-dir-local-variables-non-file-buffer|hack-local-variables|hack-local-variables-hook|handle-shift-selection|handle-switch-frame|hash-table-count|hash-table-p|hash-table-rehash-size|hash-table-rehash-threshold|hash-table-size|hash-table-test|hash-table-weakness|header-line-format|help-buffer|help-char|help-command|help-event-list|help-form|help-map|help-setup-xref|help-window-select|Helper-describe-bindings|Helper-help|Helper-help-map|history-add-new-input|history-delete-duplicates|history-length)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(icon-title-format|iconify-frame|identity|ignore|ignore-errors|ignore-window-parameters|ignored-local-variables|image-animate|image-animate-timer|image-cache-eviction-delay|image-current-frame|image-default-frame-delay|image-flush|image-format-suffixes|image-load-path|image-load-path-for-library|image-mask-p|image-minimum-frame-delay|image-multi-frame-p|image-show-frame|image-size|image-type-available-p|image-types|imagemagick-enabled-types|imagemagick-types|imagemagick-types-inhibit|imenu-add-to-menubar|imenu-case-fold-search|imenu-create-index-function|imenu-extract-index-name-function|imenu-generic-expression|imenu-prev-index-position-function|imenu-syntax-alist|inc|indent-according-to-mode|indent-code-rigidly|indent-for-tab-command|indent-line-function|indent-region|indent-region-function|indent-relative|indent-relative-maybe|indent-rigidly|indent-tabs-mode|indent-to|indent-to-left-margin|indicate-buffer-boundaries|indicate-empty-lines|indirect-function|indirect-variable|inhibit-default-init|inhibit-eol-conversion|inhibit-field-text-motion|inhibit-file-name-handlers|inhibit-file-name-operation|inhibit-iso-escape-detection|inhibit-local-variables-regexps|inhibit-modification-hooks|inhibit-null-byte-detection|inhibit-point-motion-hooks|inhibit-quit|inhibit-read-only|inhibit-splash-screen|inhibit-startup-echo-area-message|inhibit-startup-message|inhibit-startup-screen|inhibit-x-resources|init-file-user|initial-buffer-choice|initial-environment|initial-frame-alist|initial-major-mode|initial-scratch-message|initial-window-system|input-decode-map|input-method-alist|input-method-function|input-pending-p|insert|insert-abbrev-table-description|insert-and-inherit|insert-before-markers|insert-before-markers-and-inherit|insert-buffer|insert-buffer-substring|insert-buffer-substring-as-yank|insert-buffer-substring-no-properties|insert-button|insert-char|insert-default-directory|insert-directory|insert-directory-program|insert-file-contents|insert-file-contents-literally|insert-for-yank|insert-image|insert-register|insert-sliced-image|insert-text-button|installation-directory|integer-or-marker-p|integerp|interactive-form|intern|intern-soft|interpreter-mode-alist|interprogram-cut-function|interprogram-paste-function|interrupt-process|intervals-consed|invalid-function|invalid-read-syntax|invalid-regexp|invert-face|invisible-p|invocation-directory|invocation-name|isnan|jit-lock-register|jit-lock-unregister|just-one-space|justify-current-line|kbd|kbd-macro-termination-hook|kept-new-versions|kept-old-versions|key-binding|key-description|key-translation-map|keyboard-coding-system|keyboard-quit|keyboard-translate|keyboard-translate-table|keymap-parent|keymap-prompt|keymapp|keywordp|kill-all-local-variables|kill-append|kill-buffer|kill-buffer-hook|kill-buffer-query-functions|kill-emacs|kill-emacs-hook|kill-emacs-query-functions|kill-local-variable|kill-new|kill-process|kill-read-only-ok|kill-region|kill-ring|kill-ring-max|kill-ring-yank-pointer|kmacro-keymap|last-abbrev|last-abbrev-location|last-abbrev-text|last-buffer|last-coding-system-used|last-command|last-command-event|last-event-frame|last-input-event|last-kbd-macro|last-nonmenu-event|last-prefix-arg|last-repeatable-command|lax-plist-get|lax-plist-put|lazy-completion-table|ldexp|left-fringe-width|left-margin|left-margin-width|lexical-binding|libxml-parse-html-region|libxml-parse-xml-region|line-beginning-position|line-end-position|line-move-ignore-invisible|line-number-at-pos|line-prefix|line-spacing|lisp-mode-abbrev-table|list-buffers-directory|list-charset-chars|list-fonts|list-load-path-shadows|list-processes|list-system-processes|listify-key-sequence|ln|load-average|load-file|load-file-name|load-file-rep-suffixes|load-history|load-in-progress|load-library|load-path|load-prefer-newer|load-read-function|load-suffixes|load-theme|local-abbrev-table|local-function-key-map|local-key-binding|local-set-key|local-unset-key|local-variable-if-set-p|local-variable-p|locale-coding-system|locale-info|locate-file|locate-library|locate-user-emacs-file|lock-buffer|log|logand|logb|logior|lognot|logxor|looking-at|looking-at-p|looking-back|lookup-key|lower-frame|lsh|lwarn|macroexpand|macroexpand-all|macrop|magic-fallback-mode-alist|magic-mode-alist|mail-host-address|major-mode|make-abbrev-table|make-auto-save-file-name|make-backup-file-name|make-backup-file-name-function|make-backup-files|make-bool-vector|make-button|make-byte-code|make-category-set|make-category-table|make-char-table|make-composed-keymap|make-directory|make-display-table|make-frame|make-frame-invisible|make-frame-on-display|make-frame-visible|make-glyph-code|make-hash-table|make-help-screen|make-indirect-buffer|make-keymap|make-local-variable|make-marker|make-network-process|make-obsolete|make-obsolete-variable|make-overlay|make-progress-reporter|make-ring|make-serial-process|make-sparse-keymap|make-string|make-symbol|make-symbolic-link|make-syntax-table|make-temp-file|make-temp-name|make-text-button|make-translation-table|make-translation-table-from-alist|make-translation-table-from-vector|make-variable-buffer-local|make-vector|makehash|makunbound|map-char-table|map-charset-chars|map-keymap|map-y-or-n-p|mapatoms|mapconcat|maphash|mark|mark-active|mark-even-if-inactive|mark-marker|mark-ring|mark-ring-max|marker-buffer|marker-insertion-type|marker-position|markerp|match-beginning|match-data|match-end|match-string|match-string-no-properties|match-substitute-replacement|max-char|max-image-size|max-lisp-eval-depth|max-mini-window-height|max-specpdl-size|maximize-window|md5|member-ignore-case|memory-full|memory-limit|memory-use-counts|memq|memql|menu-bar-file-menu|menu-bar-final-items|menu-bar-help-menu|menu-bar-options-menu|menu-bar-tools-menu|menu-bar-update-hook|menu-item|menu-prompt-more-char|merge-face-attribute|message|message-box|message-log-max|message-or-box|message-truncate-lines|messages-buffer|meta-prefix-char|minibuffer-allow-text-properties|minibuffer-auto-raise|minibuffer-complete|minibuffer-complete-and-exit|minibuffer-complete-word|minibuffer-completion-confirm|minibuffer-completion-help|minibuffer-completion-predicate|minibuffer-completion-table|minibuffer-confirm-exit-commands|minibuffer-contents|minibuffer-contents-no-properties|minibuffer-depth|minibuffer-exit-hook|minibuffer-frame-alist|minibuffer-help-form|minibuffer-history|minibuffer-inactive-mode|minibuffer-local-completion-map|minibuffer-local-filename-completion-map|minibuffer-local-map|minibuffer-local-must-match-map|minibuffer-local-ns-map|minibuffer-local-shell-command-map|minibuffer-message|minibuffer-message-timeout|minibuffer-prompt|minibuffer-prompt-end|minibuffer-prompt-width|minibuffer-scroll-window|minibuffer-selected-window|minibuffer-setup-hook|minibuffer-window|minibuffer-window-active-p|minibufferp|minimize-window|minor-mode-alist|minor-mode-key-binding|minor-mode-list|minor-mode-map-alist|minor-mode-overriding-map-alist|misc-objects-consed|mkdir|mod|mode-line-buffer-identification|mode-line-client|mode-line-coding-system-map|mode-line-column-line-number-mode-map|mode-line-format|mode-line-frame-identification|mode-line-input-method-map|mode-line-modes|mode-line-modified|mode-line-mule-info|mode-line-position|mode-line-process|mode-line-remote|mode-name|mode-specific-map|modify-all-frames-parameters|modify-category-entry|modify-frame-parameters|modify-syntax-entry|momentary-string-display|most-negative-fixnum|most-positive-fixnum|mouse-1-click-follows-link|mouse-appearance-menu-map|mouse-leave-buffer-hook|mouse-movement-p|mouse-on-link-p|mouse-pixel-position|mouse-position|mouse-position-function|mouse-wheel-down-event|mouse-wheel-up-event|move-marker|move-overlay|move-point-visually|move-to-column|move-to-left-margin|move-to-window-line|movemail|mule-keymap|multi-query-replace-map|multibyte-char-to-unibyte|multibyte-string-p|multibyte-syntax-as-symbol|multiple-frames|narrow-map|narrow-to-page|narrow-to-region|natnump|negative-argument|network-coding-system-alist|network-interface-info|network-interface-list|newline|newline-and-indent|next-button|next-char-property-change|next-complete-history-element|next-frame|next-history-element|next-matching-history-element|next-overlay-change|next-property-change|next-screen-context-lines|next-single-char-property-change|next-single-property-change|next-window|nlistp|no-byte-compile|no-catch|no-redraw-on-reenter|noninteractive|noreturn|normal-auto-fill-function|normal-backup-enable-predicate|normal-mode|not-modified|notifications-close-notification|notifications-get-capabilities|notifications-get-server-information|notifications-notify|num-input-keys|num-nonmacro-input-events|number-or-marker-p|number-sequence|number-to-string|numberp|obarray|one-window-p|only-global-abbrevs|open-dribble-file|open-network-stream|open-paren-in-column-0-is-defun-start|open-termscript|other-buffer|other-window|other-window-scroll-buffer|overflow-newline-into-fringe|overlay-arrow-position|overlay-arrow-string|overlay-arrow-variable-list|overlay-buffer|overlay-end|overlay-get|overlay-properties|overlay-put|overlay-recenter|overlay-start|overlayp|overlays-at|overlays-in|overriding-local-map|overriding-local-map-menu-flag|overriding-terminal-local-map|overwrite-mode|package-archive-upload-base|package-archives|package-initialize|package-upload-buffer|package-upload-file|page-delimiter|paragraph-separate|paragraph-start|parse-colon-path|parse-partial-sexp|parse-sexp-ignore-comments|parse-sexp-lookup-properties|path-separator|perform-replace|play-sound|play-sound-file|play-sound-functions|plist-get|plist-member|plist-put|point|point-marker|point-max|point-max-marker|point-min|point-min-marker|pop-mark|pop-to-buffer|pop-up-frame-alist|pop-up-frame-function|pop-up-frames|pop-up-windows|pos-visible-in-window-p|position-bytes|posix-looking-at|posix-search-backward|posix-search-forward|posix-string-match|posn-actual-col-row|posn-area|posn-at-point|posn-at-x-y|posn-col-row|posn-image|posn-object|posn-object-width-height|posn-object-x-y|posn-point|posn-string|posn-timestamp|posn-window|posn-x-y|posnp|post-command-hook|post-gc-hook|post-self-insert-hook|pp|pre-command-hook|pre-redisplay-function|preceding-char|prefix-arg|prefix-help-command|prefix-numeric-value|preloaded-file-list|prepare-change-group|previous-button|previous-char-property-change|previous-complete-history-element|previous-frame|previous-history-element|previous-matching-history-element|previous-overlay-change|previous-property-change|previous-single-char-property-change|previous-single-property-change|previous-window|primitive-undo|prin1-to-string|print-circle|print-continuous-numbering|print-escape-multibyte|print-escape-newlines|print-escape-nonascii|print-gensym|print-length|print-level|print-number-table|print-quoted|printable-chars|process-adaptive-read-buffering|process-attributes|process-buffer|process-coding-system|process-coding-system-alist|process-command|process-connection-type|process-contact|process-datagram-address|process-environment|process-exit-status|process-file|process-file-shell-command|process-file-side-effects|process-filter|process-get|process-id|process-kill-buffer-query-function|process-lines|process-list|process-live-p|process-mark|process-name|process-plist|process-put|process-query-on-exit-flag|process-running-child-p|process-send-eof|process-send-region|process-send-string|process-sentinel|process-status|process-tty-name|process-type|processp|prog-mode|prog-mode-hook|progress-reporter-done|progress-reporter-force-update|progress-reporter-update|propertize|provide|provide-theme|pure-bytes-used|purecopy|purify-flag|push-button|push-mark|put|put-char-code-property|put-charset-property|put-image|put-text-property|puthash|query-replace-history|query-replace-map|quietly-read-abbrev-file|quit-flag|quit-process|quit-restore-window|quit-window|raise-frame|random|rassq|rassq-delete-all|re-builder|re-search-backward|re-search-forward|read|read-buffer|read-buffer-completion-ignore-case|read-buffer-function|read-char|read-char-choice|read-char-exclusive|read-circle|read-coding-system|read-color|read-command|read-directory-name|read-event|read-expression-history|read-file-modes|read-file-name|read-file-name-completion-ignore-case|read-file-name-function|read-from-minibuffer|read-from-string|read-input-method-name|read-kbd-macro|read-key|read-key-sequence|read-key-sequence-vector|read-minibuffer|read-no-blanks-input|read-non-nil-coding-system|read-only-mode|read-passwd|read-quoted-char|read-regexp|read-regexp-defaults-function|read-shell-command|read-string|read-variable|real-last-command|recent-auto-save-p|recent-keys|recenter|recenter-positions|recenter-redisplay|recenter-top-bottom|recursion-depth|recursive-edit|redirect-frame-focus|redisplay|redraw-display|redraw-frame|regexp-history|regexp-opt|regexp-opt-charset|regexp-opt-depth|regexp-quote|region-beginning|region-end|register-alist|register-read-with-preview|reindent-then-newline-and-indent|remhash|remote-file-name-inhibit-cache|remove|remove-from-invisibility-spec|remove-function|remove-hook|remove-images|remove-list-of-text-properties|remove-overlays|remove-text-properties|remq|rename-auto-save-file|rename-buffer|rename-file|replace-buffer-in-windows|replace-match|replace-re-search-function|replace-regexp-in-string|replace-search-function|require|require-final-newline|restore-buffer-modified-p|resume-tty|resume-tty-functions|revert-buffer|revert-buffer-function|revert-buffer-in-progress-p|revert-buffer-insert-file-contents-function|revert-without-query|right-fringe-width|right-margin-width|ring-bell-function|ring-copy|ring-elements|ring-empty-p|ring-insert|ring-insert-at-beginning|ring-length|ring-p|ring-ref|ring-remove|ring-size|risky-local-variable-p|rm|round|run-at-time|run-hook-with-args|run-hook-with-args-until-failure|run-hook-with-args-until-success|run-hooks|run-mode-hooks|run-with-idle-timer)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(safe-local-eval-forms|safe-local-variable-p|safe-local-variable-values|same-window-buffer-names|same-window-p|same-window-regexps|save-abbrevs|save-buffer|save-buffer-coding-system|save-current-buffer|save-excursion|save-match-data|save-restriction|save-selected-window|save-some-buffers|save-window-excursion|scalable-fonts-allowed|scan-lists|scan-sexps|scroll-bar-event-ratio|scroll-bar-mode|scroll-bar-scale|scroll-bar-width|scroll-conservatively|scroll-down|scroll-down-aggressively|scroll-down-command|scroll-error-top-bottom|scroll-left|scroll-margin|scroll-other-window|scroll-preserve-screen-position|scroll-right|scroll-step|scroll-up|scroll-up-aggressively|scroll-up-command|search-backward|search-failed|search-forward|search-map|search-spaces-regexp|seconds-to-time|secure-hash|select-frame|select-frame-set-input-focus|select-safe-coding-system|select-safe-coding-system-accept-default-p|select-window|selected-frame|selected-window|selection-coding-system|selective-display|selective-display-ellipses|self-insert-and-exit|self-insert-command|send-string-to-terminal|sentence-end|sentence-end-double-space|sentence-end-without-period|sentence-end-without-space|sequencep|serial-process-configure|serial-term|set-advertised-calling-convention|set-auto-coding|set-auto-mode|set-buffer|set-buffer-auto-saved|set-buffer-major-mode|set-buffer-modified-p|set-buffer-multibyte|set-case-syntax|set-case-syntax-delims|set-case-syntax-pair|set-case-table|set-category-table|set-char-table-extra-slot|set-char-table-parent|set-char-table-range|set-charset-priority|set-coding-system-priority|set-default|set-default-file-modes|set-display-table-slot|set-face-attribute|set-face-background|set-face-bold|set-face-font|set-face-foreground|set-face-inverse-video|set-face-italic|set-face-stipple|set-face-underline|set-file-acl|set-file-extended-attributes|set-file-modes|set-file-selinux-context|set-file-times|set-fontset-font|set-frame-configuration|set-frame-height|set-frame-parameter|set-frame-position|set-frame-selected-window|set-frame-size|set-frame-width|set-fringe-bitmap-face|set-input-method|set-input-mode|set-keyboard-coding-system|set-keymap-parent|set-left-margin|set-mark|set-marker|set-marker-insertion-type|set-match-data|set-minibuffer-window|set-mouse-pixel-position|set-mouse-position|set-network-process-option|set-process-buffer|set-process-coding-system|set-process-datagram-address|set-process-filter|set-process-plist|set-process-query-on-exit-flag|set-process-sentinel|set-register|set-right-margin|set-standard-case-table|set-syntax-table|set-terminal-coding-system|set-terminal-parameter|set-text-properties|set-transient-map|set-visited-file-modtime|set-visited-file-name|set-window-buffer|set-window-combination-limit|set-window-configuration|set-window-dedicated-p|set-window-display-table|set-window-fringes|set-window-hscroll|set-window-margins|set-window-next-buffers|set-window-parameter|set-window-point|set-window-prev-buffers|set-window-scroll-bars|set-window-start|set-window-vscroll|setenv|setplist|setq-default|setq-local|shell-command-history|shell-command-to-string|shell-quote-argument|show-help-function|shr-insert-document|shrink-window-if-larger-than-buffer|signal|signal-process|sin|single-key-description|sit-for|site-run-file|skip-chars-backward|skip-chars-forward|skip-syntax-backward|skip-syntax-forward|sleep-for|small-temporary-file-directory|smie-bnf->prec2|smie-close-block|smie-config|smie-config-guess|smie-config-local|smie-config-save|smie-config-set-indent|smie-config-show-indent|smie-down-list|smie-merge-prec2s|smie-prec2->grammar|smie-precs->prec2|smie-rule-bolp|smie-rule-hanging-p|smie-rule-next-p|smie-rule-parent|smie-rule-parent-p|smie-rule-prev-p|smie-rule-separator|smie-rule-sibling-p|smie-setup|Snarf-documentation|sort|sort-columns|sort-fields|sort-fold-case|sort-lines|sort-numeric-base|sort-numeric-fields|sort-pages|sort-paragraphs|sort-regexp-fields|sort-subr|special-event-map|special-form-p|special-mode|special-variable-p|split-height-threshold|split-string|split-string-and-unquote|split-string-default-separators|split-width-threshold|split-window|split-window-below|split-window-keep-point|split-window-preferred-function|split-window-right|split-window-sensibly|sqrt|standard-case-table|standard-category-table|standard-display-table|standard-input|standard-output|standard-syntax-table|standard-translation-table-for-decode|standard-translation-table-for-encode|start-file-process|start-file-process-shell-command|start-process|start-process-shell-command|stop-process|store-match-data|store-substring|string|string-as-multibyte|string-as-unibyte|string-bytes|string-chars-consed|string-equal|string-lessp|string-match|string-match-p|string-or-null-p|string-prefix-p|string-suffix-p|string-to-char|string-to-int|string-to-multibyte|string-to-number|string-to-syntax|string-to-unibyte|string-width|string<|string=|stringp|strings-consed|subr-arity|subrp|subst-char-in-region|substitute-command-keys|substitute-in-file-name|substitute-key-definition|substring|substring-no-properties|suppress-keymap|suspend-emacs|suspend-frame|suspend-hook|suspend-resume-hook|suspend-tty|suspend-tty-functions|switch-to-buffer|switch-to-buffer-other-frame|switch-to-buffer-other-window|switch-to-buffer-preserve-window-point|switch-to-next-buffer|switch-to-prev-buffer|switch-to-visible-buffer|sxhash|symbol-file|symbol-function|symbol-name|symbol-plist|symbol-value|symbolp|symbols-consed|syntax-after|syntax-begin-function|syntax-class|syntax-ppss|syntax-ppss-flush-cache|syntax-ppss-toplevel-pos|syntax-propertize-extend-region-functions|syntax-propertize-function|syntax-table|syntax-table-p|system-configuration|system-groups|system-key-alist|system-messages-locale|system-name|system-time-locale|system-type|system-users|tab-always-indent|tab-stop-list|tab-to-tab-stop|tab-width|tabulated-list-entries|tabulated-list-format|tabulated-list-init-header|tabulated-list-mode|tabulated-list-print|tabulated-list-printer|tabulated-list-revert-hook|tabulated-list-sort-key|tan|temacs|temp-buffer-setup-hook|temp-buffer-show-function|temp-buffer-show-hook|temp-buffer-window-setup-hook|temp-buffer-window-show-hook|temporary-file-directory|term-file-prefix|terminal-coding-system|terminal-list|terminal-live-p|terminal-name|terminal-parameter|terminal-parameters|terpri|test-completion|testcover-mark-all|testcover-next-mark|testcover-start|text-char-description|text-mode|text-mode-abbrev-table|text-properties-at|text-property-any|text-property-default-nonsticky|text-property-not-all|thing-at-point|this-command|this-command-keys|this-command-keys-shift-translated|this-command-keys-vector|this-original-command|three-step-help|time-add|time-less-p|time-subtract|time-to-day-in-year|time-to-days|timer-max-repeats|toggle-enable-multibyte-characters|tool-bar-add-item|tool-bar-add-item-from-menu|tool-bar-border|tool-bar-button-margin|tool-bar-button-relief|tool-bar-local-item-from-menu|tool-bar-map|top-level|tq-close|tq-create|tq-enqueue|track-mouse|transient-mark-mode|translate-region|translation-table-for-input|transpose-regions|truncate|truncate-lines|truncate-partial-width-windows|truncate-string-to-width|try-completion|tty-color-alist|tty-color-approximate|tty-color-clear|tty-color-define|tty-color-translate|tty-erase-char|tty-setup-hook|tty-top-frame|type-of|unbury-buffer|undefined|underline-minimum-offset|undo-ask-before-discard|undo-boundary|undo-in-progress|undo-limit|undo-outer-limit|undo-strong-limit|unhandled-file-name-directory|unibyte-char-to-multibyte|unibyte-string|unicode-category-table|unintern|universal-argument|universal-argument-map|unload-feature|unload-feature-special-hooks|unlock-buffer|unread-command-events|unsafep|up-list|upcase|upcase-initials|upcase-region|upcase-word|update-directory-autoloads|update-file-autoloads|use-empty-active-region|use-global-map|use-hard-newlines|use-local-map|use-region-p|user-emacs-directory|user-error|user-full-name|user-init-file|user-login-name|user-mail-address|user-real-login-name|user-real-uid|user-uid|values|vc-mode|vc-prefix-map|vconcat|vector|vector-cells-consed|vectorp|verify-visited-file-modtime|version-control|vertical-motion|vertical-scroll-bar|view-register|visible-bell|visible-frame-list|visited-file-modtime|void-function|void-text-area-pointer|waiting-for-user-input-p|walk-windows|warn|warning-fill-prefix|warning-levels|warning-minimum-level|warning-minimum-log-level|warning-prefix-function|warning-series|warning-suppress-log-types|warning-suppress-types|warning-type-format|where-is-internal|while-no-input|wholenump|widen|window-absolute-pixel-edges|window-at|window-body-height|window-body-size|window-body-width|window-bottom-divider-width|window-buffer|window-child|window-combination-limit|window-combination-resize|window-combined-p|window-configuration-change-hook|window-configuration-frame|window-configuration-p|window-current-scroll-bars|window-dedicated-p|window-display-table|window-edges|window-end|window-frame|window-fringes|window-full-height-p|window-full-width-p|window-header-line-height|window-hscroll|window-in-direction|window-inside-absolute-pixel-edges|window-inside-edges|window-inside-pixel-edges|window-left-child|window-left-column|window-line-height|window-list|window-live-p|window-margins|window-min-height|window-min-size|window-min-width|window-minibuffer-p|window-mode-line-height|window-next-buffers|window-next-sibling|window-parameter|window-parameters|window-parent|window-persistent-parameters|window-pixel-edges|window-pixel-height|window-pixel-left|window-pixel-top|window-pixel-width|window-point|window-point-insertion-type|window-prev-buffers|window-prev-sibling|window-resizable|window-resize|window-resize-pixelwise|window-right-divider-width|window-scroll-bar-width|window-scroll-bars|window-scroll-functions|window-setup-hook|window-size-change-functions|window-size-fixed|window-start|window-state-get|window-state-put|window-system|window-system-initialization-alist|window-text-change-functions|window-text-pixel-size|window-top-child|window-top-line|window-total-height|window-total-size|window-total-width|window-tree|window-valid-p|window-vscroll|windowp|with-case-table|with-coding-priority|with-current-buffer|with-current-buffer-window|with-demoted-errors|with-eval-after-load|with-help-window|with-local-quit|with-no-warnings|with-output-to-string|with-output-to-temp-buffer|with-selected-window|with-syntax-table|with-temp-buffer|with-temp-buffer-window|with-temp-file|with-temp-message|with-timeout|word-search-backward|word-search-backward-lax|word-search-forward|word-search-forward-lax|word-search-regexp|words-include-escapes|wrap-prefix|write-abbrev-file|write-char|write-contents-functions|write-file|write-file-functions|write-region|write-region-annotate-functions|write-region-post-annotation-function|wrong-number-of-arguments|wrong-type-argument|x-alt-keysym|x-alternatives-map|x-bitmap-file-path|x-close-connection|x-color-defined-p|x-color-values|x-defined-colors|x-display-color-p|x-display-list|x-dnd-known-types|x-dnd-test-function|x-dnd-types-alist|x-family-fonts|x-get-resource|x-get-selection|x-hyper-keysym|x-list-fonts|x-meta-keysym|x-open-connection|x-parse-geometry|x-pointer-shape|x-popup-dialog|x-popup-menu|x-resource-class|x-resource-name|x-sensitive-text-pointer-shape|x-server-vendor|x-server-version|x-set-selection|x-setup-function-keys|x-super-keysym|y-or-n-p|y-or-n-p-with-timeout|yank|yank-excluded-properties|yank-handled-properties|yank-pop|yank-undo-function|yes-or-no-p|zerop|zlib-available-p|zlib-decompress-region)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:mocha--other-js2-imenu-function|mocha-command|mocha-debug-port|mocha-debuggers|mocha-debugger|mocha-environment-variables|mocha-imenu-functions|mocha-options|mocha-project-test-directory|mocha-reporter|mocha-test-definition-nodes|mocha-which-node|node-error-regexp-alist|node-error-regexp)(?=[\\\\s()]|$)","name":"support.variable.emacs.lisp"},{"match":"(?<=[()]|^)(?:define-modify-macro|define-setf-method|defsetf|eval-when-compile|flet|labels|lexical-let\\\\*?|cl-(?:acons|adjoin|assert|assoc|assoc-if|assoc-if-not|block|caddr|callf|callf2|case|ceiling|check-type|coerce|compiler-macroexpand|concatenate|copy-list|count|count-if|count-if-not|decf|declaim|declare|define-compiler-macro|defmacro|defstruct|defsubst|deftype|defun|delete|delete-duplicates|delete-if|delete-if-not|destructuring-bind|do\\\\*?|do-all-symbols|do-symbols|dolist|dotimes|ecase|endp|equalp|etypecase|eval-when|evenp|every|fill|find|find-if|find-if-not|first|flet|float-limits|floor|function|gcd|gensym|gentemp|getf?|incf|intersection|isqrt|labels|lcm|ldiff|letf\\\\*?|list\\\\*|list-length|load-time-value|locally|loop|macrolet|make-random-state|map|mapc|mapcan|mapcar|mapcon|mapl|maplist|member|member-if|member-if-not|merge|minusp|mismatch|mod|multiple-value-bind|multiple-value-setq|nintersection|notany|notevery|nset-difference|nset-exclusive-or|nsublis|nsubst|nsubst-if|nsubst-if-not|nsubstitute|nsubstitute-if|nsubstitute-if-not|nunion|oddp|pairlis|plusp|position|position-if|position-if-not|prettyexpand|proclaim|progv|psetf|psetq|pushnew|random|random-state-p|rassoc|rassoc-if|rassoc-if-not|reduce|remf?|remove|remove-duplicates|remove-if|remove-if-not|remprop|replace|rest|return|return-from|rotatef|round|search|set-difference|set-exclusive-or|shiftf|some|sort|stable-sort|sublis|subseq|subsetp|subst|subst-if|subst-if-not|substitute|substitute-if|substitute-if-not|symbol-macrolet|tagbody|tailp|the|tree-equal|truncate|typecase|typep|union))(?=[\\\\s()]|$)","name":"support.function.cl-lib.emacs.lisp"},{"match":"(?<=[()]|^)(?:\\\\*table--cell-backward-kill-paragraph|\\\\*table--cell-backward-kill-sentence|\\\\*table--cell-backward-kill-sexp|\\\\*table--cell-backward-kill-word|\\\\*table--cell-backward-paragraph|\\\\*table--cell-backward-sentence|\\\\*table--cell-backward-word|\\\\*table--cell-beginning-of-buffer|\\\\*table--cell-beginning-of-line|\\\\*table--cell-center-line|\\\\*table--cell-center-paragraph|\\\\*table--cell-center-region|\\\\*table--cell-clipboard-yank|\\\\*table--cell-copy-region-as-kill|\\\\*table--cell-dabbrev-completion|\\\\*table--cell-dabbrev-expand|\\\\*table--cell-delete-backward-char|\\\\*table--cell-delete-char|\\\\*table--cell-delete-region|\\\\*table--cell-describe-bindings|\\\\*table--cell-describe-mode|\\\\*table--cell-end-of-buffer|\\\\*table--cell-end-of-line|\\\\*table--cell-fill-paragraph|\\\\*table--cell-forward-paragraph|\\\\*table--cell-forward-sentence|\\\\*table--cell-forward-word|\\\\*table--cell-insert|\\\\*table--cell-kill-line|\\\\*table--cell-kill-paragraph|\\\\*table--cell-kill-region|\\\\*table--cell-kill-ring-save|\\\\*table--cell-kill-sentence|\\\\*table--cell-kill-sexp|\\\\*table--cell-kill-word|\\\\*table--cell-move-beginning-of-line|\\\\*table--cell-move-end-of-line|\\\\*table--cell-newline-and-indent|\\\\*table--cell-newline|\\\\*table--cell-open-line|\\\\*table--cell-quoted-insert|\\\\*table--cell-self-insert-command|\\\\*table--cell-yank-clipboard-selection|\\\\*table--cell-yank|\\\\*table--present-cell-popup-menu|-cvs-create-fileinfo--cmacro|-cvs-create-fileinfo|-cvs-flags-make--cmacro|-cvs-flags-make|1\\\\+|1-|1value|2C-associate-buffer|2C-associated-buffer|2C-autoscroll|2C-command|2C-dissociate|2C-enlarge-window-horizontally|2C-merge|2C-mode|2C-newline|2C-other|2C-shrink-window-horizontally|2C-split|2C-toggle-autoscroll|2C-two-columns|5x5-bol|5x5-cell|5x5-copy-grid|5x5-crack-mutating-best|5x5-crack-mutating-current|5x5-crack-randomly|5x5-crack-xor-mutate|5x5-crack|5x5-defvar-local|5x5-down|5x5-draw-grid-end|5x5-draw-grid|5x5-eol|5x5-first|5x5-flip-cell|5x5-flip-current|5x5-grid-to-vec|5x5-grid-value|5x5-last|5x5-left|5x5-log-init|5x5-log|5x5-made-move|5x5-make-move|5x5-make-mutate-best|5x5-make-mutate-current|5x5-make-new-grid|5x5-make-random-grid|5x5-make-random-solution|5x5-make-xor-with-mutation|5x5-mode-menu|5x5-mode|5x5-mutate-solution|5x5-new-game|5x5-play-solution|5x5-position-cursor|5x5-quit-game|5x5-randomize|5x5-right|5x5-row-value|5x5-set-cell|5x5-solve-rotate-left|5x5-solve-rotate-right|5x5-solve-suggest|5x5-solver|5x5-up|5x5-vec-to-grid|5x5-xor|5x5-y-or-n-p|5x5|Buffer-menu--pretty-file-name|Buffer-menu--pretty-name|Buffer-menu--unmark|Buffer-menu-1-window|Buffer-menu-2-window|Buffer-menu-backup-unmark|Buffer-menu-beginning|Buffer-menu-buffer|Buffer-menu-bury|Buffer-menu-delete-backwards|Buffer-menu-delete|Buffer-menu-execute|Buffer-menu-info-node-description|Buffer-menu-isearch-buffers-regexp|Buffer-menu-isearch-buffers|Buffer-menu-mark|Buffer-menu-marked-buffers|Buffer-menu-mode|Buffer-menu-mouse-select|Buffer-menu-multi-occur|Buffer-menu-no-header|Buffer-menu-not-modified|Buffer-menu-other-window|Buffer-menu-save|Buffer-menu-select|Buffer-menu-sort|Buffer-menu-switch-other-window|Buffer-menu-this-window|Buffer-menu-toggle-files-only|Buffer-menu-toggle-read-only|Buffer-menu-unmark|Buffer-menu-view-other-window|Buffer-menu-view|Buffer-menu-visit-tags-table|Control-X-prefix|Custom-buffer-done|Custom-goto-parent|Custom-help|Custom-mode-menu|Custom-mode|Custom-newline|Custom-no-edit|Custom-reset-current|Custom-reset-saved|Custom-reset-standard|Custom-save|Custom-set|Electric-buffer-menu-exit|Electric-buffer-menu-mode-view-buffer|Electric-buffer-menu-mode|Electric-buffer-menu-mouse-select|Electric-buffer-menu-quit|Electric-buffer-menu-select|Electric-buffer-menu-undefined|Electric-command-history-redo-expression|Electric-command-loop|Electric-pop-up-window|Footnote-add-footnote|Footnote-assoc-index|Footnote-back-to-message|Footnote-current-regexp|Footnote-cycle-style|Footnote-delete-footnote|Footnote-english-lower|Footnote-english-upper|Footnote-goto-char-point-max|Footnote-goto-footnote|Footnote-index-to-string|Footnote-insert-footnote|Footnote-insert-numbered-footnote|Footnote-insert-pointer-marker|Footnote-insert-text-marker|Footnote-latin|Footnote-make-hole|Footnote-narrow-to-footnotes|Footnote-numeric|Footnote-refresh-footnotes|Footnote-renumber-footnotes|Footnote-renumber|Footnote-roman-common|Footnote-roman-lower|Footnote-roman-upper|Footnote-set-style|Footnote-sort|Footnote-style-p|Footnote-text-under-cursor|Footnote-under-cursor|Footnote-unicode|Info--search-loop|Info-apropos-find-file|Info-apropos-find-node|Info-apropos-matches|Info-apropos-toc-nodes|Info-backward-node|Info-bookmark-jump|Info-bookmark-make-record|Info-breadcrumbs|Info-build-node-completions-1|Info-build-node-completions|Info-cease-edit|Info-check-pointer|Info-clone-buffer|Info-complete-menu-item|Info-copy-current-node-name|Info-default-dirs|Info-desktop-buffer-misc-data|Info-dir-remove-duplicates|Info-directory-find-file|Info-directory-find-node|Info-directory-toc-nodes|Info-directory|Info-display-images-node|Info-edit-mode|Info-edit|Info-exit|Info-extract-menu-counting|Info-extract-menu-item|Info-extract-menu-node-name|Info-extract-pointer|Info-file-supports-index-cookies|Info-final-node|Info-find-emacs-command-nodes|Info-find-file|Info-find-in-tag-table-1|Info-find-in-tag-table|Info-find-index-name|Info-find-node-2|Info-find-node-in-buffer-1|Info-find-node-in-buffer|Info-find-node|Info-finder-find-file|Info-finder-find-node|Info-follow-nearest-node|Info-follow-reference|Info-following-node-name-re|Info-following-node-name|Info-fontify-node|Info-forward-node|Info-get-token|Info-goto-emacs-command-node|Info-goto-emacs-key-command-node|Info-goto-index|Info-goto-node|Info-help|Info-hide-cookies-node|Info-history-back|Info-history-find-file|Info-history-find-node|Info-history-forward|Info-history-toc-nodes|Info-history|Info-index-next|Info-index-node|Info-index-nodes|Info-index|Info-insert-dir|Info-install-speedbar-variables|Info-isearch-end|Info-isearch-filter|Info-isearch-pop-state|Info-isearch-push-state|Info-isearch-search|Info-isearch-start|Info-isearch-wrap|Info-kill-buffer|Info-last-menu-item|Info-last-preorder|Info-last|Info-menu-update|Info-menu|Info-mode-menu|Info-mode|Info-mouse-follow-link|Info-mouse-follow-nearest-node|Info-mouse-scroll-down|Info-mouse-scroll-up|Info-next-menu-item|Info-next-preorder|Info-next-reference-or-link|Info-next-reference|Info-next|Info-no-error|Info-node-at-bob-matching|Info-nth-menu-item|Info-on-current-buffer|Info-prev-reference-or-link|Info-prev-reference|Info-prev|Info-read-node-name-1|Info-read-node-name-2|Info-read-node-name|Info-read-subfile|Info-restore-desktop-buffer|Info-restore-point|Info-revert-buffer-function|Info-revert-find-node|Info-scroll-down|Info-scroll-up|Info-search-backward|Info-search-case-sensitively|Info-search-next|Info-search|Info-select-node|Info-set-mode-line|Info-speedbar-browser|Info-speedbar-buttons|Info-speedbar-expand-node|Info-speedbar-fetch-file-nodes|Info-speedbar-goto-node|Info-speedbar-hierarchy-buttons|Info-split-parameter-string|Info-split|Info-summary|Info-tagify|Info-toc-build|Info-toc-find-node|Info-toc-insert|Info-toc-nodes|Info-toc|Info-top-node|Info-try-follow-nearest-node|Info-undefined|Info-unescape-quotes|Info-up|Info-validate-node-name|Info-validate-tags-table|Info-validate|Info-virtual-call|Info-virtual-file-p|Info-virtual-fun|Info-virtual-index-find-node|Info-virtual-index|LaTeX-mode|Man-bgproc-filter|Man-bgproc-sentinel|Man-bookmark-jump|Man-bookmark-make-record|Man-build-man-command|Man-build-page-list|Man-build-references-alist|Man-build-section-alist|Man-cleanup-manpage|Man-completion-table|Man-default-bookmark-title|Man-default-man-entry|Man-find-section|Man-follow-manual-reference|Man-fontify-manpage|Man-getpage-in-background|Man-goto-page|Man-goto-section|Man-goto-see-also-section|Man-highlight-references|Man-highlight-references0|Man-init-defvars|Man-kill|Man-make-page-mode-string|Man-mode|Man-next-manpage|Man-next-section|Man-notify-when-ready|Man-page-from-arguments|Man-parse-man-k|Man-possibly-hyphenated-word|Man-previous-manpage|Man-previous-section|Man-quit|Man-softhyphen-to-minus|Man-start-calling|Man-strip-page-headers|Man-support-local-filenames|Man-translate-cleanup|Man-translate-references|Man-unindent|Man-update-manpage|Man-view-header-file|Man-xref-button-action|Math-anglep|Math-bignum-test|Math-equal-int|Math-equal|Math-integer-neg|Math-integer-negp|Math-integer-posp|Math-integerp|Math-lessp|Math-looks-negp|Math-messy-integerp|Math-natnum-lessp|Math-natnump|Math-negp|Math-num-integerp|Math-numberp|Math-objectp|Math-objvecp|Math-posp|Math-primp|Math-ratp|Math-realp|Math-scalarp|Math-vectorp|Math-zerop|TeX-mode|View-back-to-mark|View-exit-and-edit|View-exit|View-goto-line|View-goto-percent|View-kill-and-leave|View-leave|View-quit-all|View-quit|View-revert-buffer-scroll-page-forward|View-scroll-half-page-backward|View-scroll-half-page-forward|View-scroll-line-backward|View-scroll-line-forward|View-scroll-page-backward-set-page-size|View-scroll-page-backward|View-scroll-page-forward-set-page-size|View-scroll-page-forward|View-scroll-to-buffer-end|View-search-last-regexp-backward|View-search-last-regexp-forward|View-search-regexp-backward|View-search-regexp-forward|WoMan-find-buffer|WoMan-getpage-in-background|WoMan-log-1|WoMan-log-begin|WoMan-log-end|WoMan-log|WoMan-next-manpage|WoMan-previous-manpage|WoMan-warn-ignored|WoMan-warn|abbrev--active-tables|abbrev--before-point|abbrev--check-chars|abbrev--default-expand|abbrev--describe|abbrev--symbol|abbrev--write|abbrev-edit-save-buffer|abbrev-edit-save-to-file|abbrev-mode|abbrev-table-empty-p|abbrev-table-menu|abbrev-table-name|abort-if-file-too-large|about-emacs|accelerate-menu|accept-completion|acons|activate-input-method|activate-mark|activate-mode-local-bindings|ad--defalias-fset|ad--make-advised-docstring|ad-Advice-c-backward-sws|ad-Advice-c-beginning-of-macro|ad-Advice-c-forward-sws|ad-Advice-save-place-find-file-hook|ad-access-argument|ad-activate-advised-definition|ad-activate-all|ad-activate-internal|ad-activate-on|ad-activate-regexp|ad-activate|ad-add-advice|ad-advice-definition|ad-advice-enabled|ad-advice-name|ad-advice-p|ad-advice-position|ad-advice-protected|ad-advice-set-enabled|ad-advised-arglist|ad-advised-interactive-form|ad-arg-binding-field|ad-arglist|ad-assemble-advised-definition|ad-body-forms|ad-cache-id-verification-code|ad-class-p|ad-clear-advicefunname-definition|ad-clear-cache|ad-compile-function|ad-compiled-code|ad-compiled-p|ad-copy-advice-info|ad-deactivate-all|ad-deactivate-regexp|ad-deactivate|ad-definition-type|ad-disable-advice|ad-disable-regexp|ad-do-advised-functions|ad-docstring|ad-element-access|ad-enable-advice-internal|ad-enable-advice|ad-enable-regexp-internal|ad-enable-regexp|ad-find-advice|ad-find-some-advice|ad-get-advice-info-field|ad-get-advice-info-macro|ad-get-advice-info|ad-get-argument|ad-get-arguments|ad-get-cache-class-id|ad-get-cache-definition|ad-get-cache-id|ad-get-enabled-advices|ad-get-orig-definition|ad-has-any-advice|ad-has-enabled-advice|ad-has-proper-definition|ad-has-redefining-advice|ad-initialize-advice-info|ad-insert-argument-access-forms|ad-interactive-form|ad-is-active|ad-is-advised|ad-is-compilable|ad-lambda-expression|ad-lambda-p|ad-lambdafy|ad-list-access|ad-macrofy|ad-make-advice|ad-make-advicefunname|ad-make-advised-definition|ad-make-cache-id|ad-make-hook-form|ad-make-single-advice-docstring|ad-map-arglists|ad-name-p|ad-parse-arglist|ad-pop-advised-function|ad-position-p|ad-preactivate-advice|ad-pushnew-advised-function|ad-read-advice-class|ad-read-advice-name|ad-read-advice-specification|ad-read-advised-function|ad-read-regexp|ad-real-definition|ad-real-orig-definition|ad-recover-all|ad-recover-normality|ad-recover|ad-remove-advice|ad-retrieve-args-form|ad-set-advice-info-field|ad-set-advice-info|ad-set-argument|ad-set-arguments|ad-set-cache|ad-should-compile|ad-substitute-tree|ad-unadvise-all|ad-unadvise|ad-update-all|ad-update-regexp|ad-update|ad-verify-cache-class-id|ad-verify-cache-id|ad-with-originals|ada-activate-keys-for-case|ada-add-extensions|ada-adjust-case-buffer|ada-adjust-case-identifier|ada-adjust-case-interactive|ada-adjust-case-region|ada-adjust-case-skeleton|ada-adjust-case-substring|ada-adjust-case|ada-after-keyword-p|ada-array|ada-batch-reformat|ada-call-from-contextual-menu|ada-capitalize-word|ada-case-read-exceptions-from-file)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:ada-case-read-exceptions|ada-case|ada-change-prj|ada-check-current|ada-check-defun-name|ada-check-matching-start|ada-compile-application|ada-compile-current|ada-compile-goto-error|ada-compile-mouse-goto-error|ada-complete-identifier|ada-contextual-menu|ada-create-case-exception-substring|ada-create-case-exception|ada-create-keymap|ada-create-menu|ada-customize|ada-declare-block|ada-else|ada-elsif|ada-exception-block|ada-exception|ada-exit|ada-ff-other-window|ada-fill-comment-paragraph-justify|ada-fill-comment-paragraph-postfix|ada-fill-comment-paragraph|ada-find-any-references|ada-find-file|ada-find-local-references|ada-find-references|ada-find-src-file-in-dir|ada-for-loop|ada-format-paramlist|ada-function-spec|ada-gdb-application|ada-gen-treat-proc|ada-get-body-name|ada-get-current-indent|ada-get-indent-block-label|ada-get-indent-block-start|ada-get-indent-case|ada-get-indent-end|ada-get-indent-goto-label|ada-get-indent-if|ada-get-indent-loop|ada-get-indent-nochange|ada-get-indent-noindent|ada-get-indent-open-paren|ada-get-indent-paramlist|ada-get-indent-subprog|ada-get-indent-type|ada-get-indent-when|ada-gnat-style|ada-goto-decl-start|ada-goto-declaration-other-frame|ada-goto-declaration|ada-goto-matching-end|ada-goto-matching-start|ada-goto-next-non-ws|ada-goto-next-word|ada-goto-parent|ada-goto-previous-word|ada-goto-stmt-end|ada-goto-stmt-start|ada-header|ada-if|ada-in-comment-p|ada-in-decl-p|ada-in-numeric-literal-p|ada-in-open-paren-p|ada-in-paramlist-p|ada-in-string-or-comment-p|ada-in-string-p|ada-indent-current-function|ada-indent-current|ada-indent-newline-indent-conditional|ada-indent-newline-indent|ada-indent-on-previous-lines|ada-indent-region|ada-insert-paramlist|ada-justified-indent-current|ada-looking-at-semi-or|ada-looking-at-semi-private|ada-loop|ada-loose-case-word|ada-make-body-gnatstub|ada-make-body|ada-make-filename-from-adaname|ada-make-subprogram-body|ada-mode-menu|ada-mode-version|ada-mode|ada-move-to-end|ada-move-to-start|ada-narrow-to-defun|ada-next-package|ada-next-procedure|ada-no-auto-case|ada-other-file-name|ada-outline-level|ada-package-body|ada-package-spec|ada-point-and-xref|ada-popup-menu|ada-previous-package|ada-previous-procedure|ada-private|ada-prj-edit|ada-prj-new|ada-prj-save|ada-procedure-spec|ada-record|ada-region-selected|ada-remove-trailing-spaces|ada-reread-prj-file|ada-run-application|ada-save-exceptions-to-file|ada-scan-paramlist|ada-search-ignore-complex-boolean|ada-search-ignore-string-comment|ada-search-prev-end-stmt|ada-set-default-project-file|ada-set-main-compile-application|ada-set-point-accordingly|ada-show-current-main|ada-subprogram-body|ada-subtype|ada-tab-hard|ada-tab|ada-tabsize|ada-task-body|ada-task-spec|ada-type|ada-uncomment-region|ada-untab-hard|ada-untab|ada-use|ada-when|ada-which-function-are-we-in|ada-which-function|ada-while-loop|ada-with|ada-xref-goto-previous-reference|add-abbrev|add-change-log-entry-other-window|add-change-log-entry|add-completion-to-head|add-completion-to-tail-if-new|add-completion|add-completions-from-buffer|add-completions-from-c-buffer|add-completions-from-file|add-completions-from-lisp-buffer|add-completions-from-tags-table|add-dir-local-variable|add-file-local-variable-prop-line|add-file-local-variable|add-global-abbrev|add-log-current-defun|add-log-edit-next-comment|add-log-edit-prev-comment|add-log-file-name|add-log-iso8601-time-string|add-log-iso8601-time-zone|add-log-tcl-defun|add-minor-mode|add-mode-abbrev|add-new-page|add-permanent-completion|add-submenu|add-timeout|add-to-coding-system-list|add-to-list--anon-cmacro|addbib|adjoin|advertised-undo|advertised-widget-backward|advertised-xscheme-send-previous-expression|advice--add-function|advice--buffer-local|advice--called-interactively-skip|advice--car|advice--cd\\\\*r|advice--cdr|advice--defalias-fset|advice--interactive-form|advice--make-1|advice--make-docstring|advice--make-interactive-form|advice--make|advice--member-p|advice--normalize-place|advice--normalize|advice--p|advice--props|advice--remove-function|advice--set-buffer-local|advice--strip-macro|advice--subst-main|advice--symbol-function|advice--tweak|after-insert-file-set-coding|align--set-marker|align-adjust-col-for-rule|align-areas|align-column|align-current|align-entire|align-highlight-rule|align-match-tex-pattern|align-new-section-p|align-newline-and-indent|align-regexp|align-region|align-regions|align-set-vhdl-rules|align-unhighlight-rule|align|alist-get|allout-aberrant-container-p|allout-add-resumptions|allout-adjust-file-variable|allout-after-saves-handler|allout-annotate-hidden|allout-ascend-to-depth|allout-ascend|allout-auto-activation-helper|allout-auto-fill|allout-back-to-current-heading|allout-back-to-heading|allout-back-to-visible-text|allout-backward-current-level|allout-before-change-handler|allout-beginning-of-current-entry|allout-beginning-of-current-line|allout-beginning-of-level|allout-beginning-of-line|allout-body-modification-handler|allout-bullet-for-depth|allout-bullet-isearch|allout-called-interactively-p|allout-chart-exposure-contour-by-icon|allout-chart-siblings|allout-chart-subtree|allout-chart-to-reveal|allout-compose-and-institute-keymap|allout-copy-exposed-to-buffer|allout-copy-line-as-kill|allout-copy-topic-as-kill|allout-current-bullet-pos|allout-current-bullet|allout-current-decorated-p|allout-current-depth|allout-current-topic-collapsed-p|allout-deannotate-hidden|allout-decorate-item-and-context|allout-decorate-item-body|allout-decorate-item-cue|allout-decorate-item-guides|allout-decorate-item-icon|allout-decorate-item-span|allout-depth|allout-descend-to-depth|allout-distinctive-bullet|allout-do-doublecheck|allout-do-resumptions|allout-e-o-prefix-p|allout-elapsed-time-seconds|allout-encrypt-decrypted|allout-encrypt-string|allout-encrypted-topic-p|allout-encrypted-type-prefix|allout-end-of-current-heading|allout-end-of-current-line|allout-end-of-current-subtree|allout-end-of-entry|allout-end-of-heading|allout-end-of-level|allout-end-of-line|allout-end-of-prefix|allout-end-of-subtree|allout-expose-topic|allout-fetch-icon-image|allout-file-vars-section-data|allout-find-file-hook|allout-find-image|allout-flag-current-subtree|allout-flag-region|allout-flatten-exposed-to-buffer|allout-flatten|allout-format-quote|allout-forward-current-level|allout-frame-property|allout-get-body-text|allout-get-bullet|allout-get-configvar-values|allout-get-current-prefix|allout-get-invisibility-overlay|allout-get-item-widget|allout-get-or-create-item-widget|allout-get-or-create-parent-widget|allout-get-prefix-bullet|allout-goto-prefix-doublechecked|allout-goto-prefix|allout-graphics-modification-handler|allout-hidden-p|allout-hide-bodies|allout-hide-by-annotation|allout-hide-current-entry|allout-hide-current-leaves|allout-hide-current-subtree|allout-hide-region-body|allout-hotspot-key-handler|allout-indented-exposed-to-buffer|allout-infer-body-reindent|allout-infer-header-lead-and-primary-bullet|allout-infer-header-lead|allout-inhibit-auto-save-info-for-decryption|allout-init|allout-insert-latex-header|allout-insert-latex-trailer|allout-insert-listified|allout-institute-keymap|allout-isearch-end-handler|allout-item-actual-position|allout-item-element-span-is|allout-item-icon-key-handler|allout-item-location|allout-item-span|allout-kill-line|allout-kill-topic|allout-latex-verb-quote|allout-latex-verbatim-quote-curr-line|allout-latexify-exposed|allout-latexify-one-item|allout-lead-with-comment-string|allout-listify-exposed|allout-make-topic-prefix|allout-mark-active-p|allout-mark-marker|allout-mark-topic|allout-maybe-resume-auto-save-info-after-encryption|allout-minor-mode|allout-mode-map|allout-mode-p|allout-mode|allout-new-exposure|allout-new-item-widget|allout-next-heading|allout-next-sibling-leap|allout-next-sibling|allout-next-single-char-property-change|allout-next-topic-pending-encryption|allout-next-visible-heading|allout-number-siblings|allout-numbered-type-prefix|allout-old-expose-topic|allout-on-current-heading-p|allout-on-heading-p|allout-open-sibtopic|allout-open-subtopic|allout-open-supertopic|allout-open-topic|allout-overlay-insert-in-front-handler|allout-overlay-interior-modification-handler|allout-overlay-preparations|allout-parse-item-at-point|allout-post-command-business|allout-pre-command-business|allout-pre-next-prefix|allout-prefix-data|allout-previous-heading|allout-previous-sibling|allout-previous-single-char-property-change|allout-previous-visible-heading|allout-process-exposed|allout-range-overlaps|allout-rebullet-current-heading|allout-rebullet-heading|allout-rebullet-topic-grunt|allout-rebullet-topic|allout-recent-bullet|allout-recent-depth|allout-recent-prefix|allout-redecorate-item|allout-redecorate-visible-subtree|allout-region-active-p|allout-reindent-body|allout-renumber-to-depth|allout-reset-header-lead|allout-resolve-xref|allout-run-unit-tests|allout-select-safe-coding-system|allout-set-boundary-marker|allout-setup-menubar|allout-setup-text-properties|allout-setup|allout-shift-in|allout-shift-out|allout-show-all|allout-show-children|allout-show-current-branches|allout-show-current-entry|allout-show-current-subtree|allout-show-entry|allout-show-to-offshoot|allout-sibling-index|allout-snug-back|allout-solicit-alternate-bullet|allout-stringify-flat-index-indented|allout-stringify-flat-index-plain|allout-stringify-flat-index|allout-substring-no-properties|allout-test-range-overlaps|allout-test-resumptions|allout-tests-obliterate-variable|allout-this-or-next-heading|allout-toggle-current-subtree-encryption|allout-toggle-current-subtree-exposure|allout-toggle-subtree-encryption|allout-topic-flat-index|allout-unload-function|allout-unprotected|allout-up-current-level|allout-version|allout-widgetize-buffer|allout-widgets-additions-processor|allout-widgets-additions-recorder|allout-widgets-adjusting-message|allout-widgets-after-change-handler|allout-widgets-after-copy-or-kill-function|allout-widgets-after-undo-function|allout-widgets-before-change-handler|allout-widgets-changes-dispatcher|allout-widgets-copy-list|allout-widgets-count-buttons-in-region|allout-widgets-deletions-processor|allout-widgets-deletions-recorder|allout-widgets-exposure-change-processor|allout-widgets-exposure-change-recorder|allout-widgets-exposure-undo-processor|allout-widgets-exposure-undo-recorder|allout-widgets-hook-error-handler|allout-widgets-mode-disable|allout-widgets-mode-enable|allout-widgets-mode-off|allout-widgets-mode-on|allout-widgets-mode|allout-widgets-post-command-business|allout-widgets-pre-command-business|allout-widgets-prepopulate-buffer|allout-widgets-run-unit-tests|allout-widgets-setup|allout-widgets-shifts-processor|allout-widgets-shifts-recorder|allout-widgets-tally-string|allout-widgets-undecorate-item|allout-widgets-undecorate-region|allout-widgets-undecorate-text|allout-widgets-version|allout-write-contents-hook-handler|allout-yank-pop|allout-yank-processing|allout-yank|alter-text-property|ange-ftp-abbreviate-filename|ange-ftp-add-bs2000-host|ange-ftp-add-bs2000-posix-host|ange-ftp-add-cms-host|ange-ftp-add-dl-dir|ange-ftp-add-dumb-unix-host|ange-ftp-add-file-entry|ange-ftp-add-mts-host|ange-ftp-add-vms-host|ange-ftp-allow-child-lookup|ange-ftp-barf-if-not-directory|ange-ftp-barf-or-query-if-file-exists|ange-ftp-binary-file|ange-ftp-bs2000-cd-to-posix|ange-ftp-bs2000-host|ange-ftp-bs2000-posix-host|ange-ftp-call-chmod|ange-ftp-call-cont|ange-ftp-canonize-filename|ange-ftp-cd|ange-ftp-cf1|ange-ftp-cf2|ange-ftp-chase-symlinks|ange-ftp-cms-host|ange-ftp-cms-make-compressed-filename|ange-ftp-completion-hook-function|ange-ftp-compress|ange-ftp-copy-file-internal|ange-ftp-copy-file|ange-ftp-copy-files-async|ange-ftp-del-tmp-name|ange-ftp-delete-directory|ange-ftp-delete-file-entry|ange-ftp-delete-file|ange-ftp-directory-file-name|ange-ftp-directory-files-and-attributes|ange-ftp-directory-files|ange-ftp-dired-compress-file|ange-ftp-dired-uncache|ange-ftp-dl-parser|ange-ftp-dumb-unix-host|ange-ftp-error|ange-ftp-expand-dir|ange-ftp-expand-file-name|ange-ftp-expand-symlink|ange-ftp-file-attributes|ange-ftp-file-directory-p|ange-ftp-file-entry-not-ignored-p|ange-ftp-file-entry-p|ange-ftp-file-executable-p|ange-ftp-file-exists-p|ange-ftp-file-local-copy|ange-ftp-file-modtime|ange-ftp-file-name-all-completions|ange-ftp-file-name-as-directory|ange-ftp-file-name-completion-1|ange-ftp-file-name-completion|ange-ftp-file-name-directory|ange-ftp-file-name-nondirectory|ange-ftp-file-name-sans-versions)(?=[\\\\s()]|$)"},{"match":"(?<=[()]|^)(?:ange-ftp-file-newer-than-file-p|ange-ftp-file-readable-p|ange-ftp-file-remote-p|ange-ftp-file-size|ange-ftp-file-symlink-p|ange-ftp-file-writable-p|ange-ftp-find-backup-file-name|ange-ftp-fix-dir-name-for-bs2000|ange-ftp-fix-dir-name-for-cms|ange-ftp-fix-dir-name-for-mts|ange-ftp-fix-dir-name-for-vms|ange-ftp-fix-name-for-bs2000|ange-ftp-fix-name-for-cms|ange-ftp-fix-name-for-mts|ange-ftp-fix-name-for-vms|ange-ftp-ftp-name-component|ange-ftp-ftp-name|ange-ftp-ftp-process-buffer|ange-ftp-generate-passwd-key|ange-ftp-generate-root-prefixes|ange-ftp-get-account|ange-ftp-get-file-entry|ange-ftp-get-file-part|ange-ftp-get-files|ange-ftp-get-host-with-passwd|ange-ftp-get-passwd|ange-ftp-get-process|ange-ftp-get-pwd|ange-ftp-get-user|ange-ftp-guess-hash-mark-size|ange-ftp-guess-host-type|ange-ftp-gwp-filter|ange-ftp-gwp-sentinel|ange-ftp-gwp-start|ange-ftp-hash-entry-exists-p|ange-ftp-hash-table-keys|ange-ftp-hook-function|ange-ftp-host-type|ange-ftp-ignore-errors-if-non-essential|ange-ftp-insert-directory|ange-ftp-insert-file-contents|ange-ftp-internal-add-file-entry|ange-ftp-internal-delete-file-entry|ange-ftp-kill-ftp-process|ange-ftp-load|ange-ftp-lookup-passwd|ange-ftp-ls-parser|ange-ftp-ls|ange-ftp-make-directory|ange-ftp-make-tmp-name|ange-ftp-message|ange-ftp-mts-host|ange-ftp-normal-login|ange-ftp-nslookup-host|ange-ftp-parse-bs2000-filename|ange-ftp-parse-bs2000-listing|ange-ftp-parse-cms-listing|ange-ftp-parse-dired-listing|ange-ftp-parse-filename|ange-ftp-parse-mts-listing|ange-ftp-parse-netrc-group|ange-ftp-parse-netrc-token|ange-ftp-parse-netrc|ange-ftp-parse-vms-filename|ange-ftp-parse-vms-listing|ange-ftp-passive-mode|ange-ftp-process-file|ange-ftp-process-filter|ange-ftp-process-handle-hash|ange-ftp-process-handle-line|ange-ftp-process-sentinel|ange-ftp-quote-string|ange-ftp-raw-send-cmd|ange-ftp-re-read-dir|ange-ftp-real-backup-buffer|ange-ftp-real-copy-file|ange-ftp-real-delete-directory|ange-ftp-real-delete-file|ange-ftp-real-directory-file-name|ange-ftp-real-directory-files-and-attributes|ange-ftp-real-directory-files|ange-ftp-real-expand-file-name|ange-ftp-real-file-attributes|ange-ftp-real-file-directory-p|ange-ftp-real-file-executable-p|ange-ftp-real-file-exists-p|ange-ftp-real-file-name-all-completions|ange-ftp-real-file-name-as-directory|ange-ftp-real-file-name-completion|ange-ftp-real-file-name-directory|ange-ftp-real-file-name-nondirectory|ange-ftp-real-file-name-sans-versions|ange-ftp-real-file-newer-than-file-p|ange-ftp-real-file-readable-p|ange-ftp-real-file-symlink-p|ange-ftp-real-file-writable-p|ange-ftp-real-find-backup-file-name|ange-ftp-real-insert-directory|ange-ftp-real-insert-file-contents|ange-ftp-real-load|ange-ftp-real-make-directory|ange-ftp-real-rename-file|ange-ftp-real-shell-command|ange-ftp-real-verify-visited-file-modtime|ange-ftp-real-write-region|ange-ftp-rename-file|ange-ftp-rename-local-to-remote|ange-ftp-rename-remote-to-local|ange-ftp-rename-remote-to-remote|ange-ftp-repaint-minibuffer|ange-ftp-replace-name-component|ange-ftp-reread-dir|ange-ftp-root-dir-p|ange-ftp-run-real-handler-orig|ange-ftp-run-real-handler|ange-ftp-send-cmd|ange-ftp-set-account|ange-ftp-set-ascii-mode|ange-ftp-set-binary-mode|ange-ftp-set-buffer-mode|ange-ftp-set-file-modes|ange-ftp-set-files|ange-ftp-set-passwd|ange-ftp-set-user|ange-ftp-set-xfer-size|ange-ftp-shell-command|ange-ftp-smart-login|ange-ftp-start-process|ange-ftp-switches-ok|ange-ftp-uncompress|ange-ftp-unhandled-file-name-directory|ange-ftp-use-gateway-p|ange-ftp-use-smart-gateway-p|ange-ftp-verify-visited-file-modtime|ange-ftp-vms-add-file-entry|ange-ftp-vms-delete-file-entry|ange-ftp-vms-file-name-as-directory|ange-ftp-vms-host|ange-ftp-vms-make-compressed-filename|ange-ftp-vms-sans-version|ange-ftp-wait-not-busy|ange-ftp-wipe-file-entries|ange-ftp-write-region|animate-birthday-present|animate-initialize|animate-place-char|animate-sequence|animate-step|animate-string|another-calc|ansi-color--find-face|ansi-color-apply-on-region|ansi-color-apply-overlay-face|ansi-color-apply-sequence|ansi-color-apply|ansi-color-filter-apply|ansi-color-filter-region|ansi-color-for-comint-mode-filter|ansi-color-for-comint-mode-off|ansi-color-for-comint-mode-on|ansi-color-freeze-overlay|ansi-color-get-face-1|ansi-color-make-color-map|ansi-color-make-extent|ansi-color-make-face|ansi-color-map-update|ansi-color-parse-sequence|ansi-color-process-output|ansi-color-set-extent-face|ansi-color-unfontify-region|ansi-term|antlr-beginning-of-body|antlr-beginning-of-rule|antlr-c\\\\+\\\\+-mode-extra|antlr-c-forward-sws|antlr-c-init-language-vars|antlr-default-directory|antlr-directory-dependencies|antlr-downcase-literals|antlr-electric-character|antlr-end-of-body|antlr-end-of-rule|antlr-file-dependencies|antlr-font-lock-keywords|antlr-grammar-tokens|antlr-hide-actions|antlr-imenu-create-index-function|antlr-indent-command|antlr-indent-line|antlr-insert-makefile-rules|antlr-insert-option-area|antlr-insert-option-do|antlr-insert-option-existing|antlr-insert-option-interactive|antlr-insert-option-space|antlr-insert-option|antlr-inside-rule-p|antlr-invalidate-context-cache|antlr-language-option-extra|antlr-language-option|antlr-makefile-insert-variable|antlr-mode-menu|antlr-mode|antlr-next-rule|antlr-option-kind|antlr-option-level|antlr-option-location|antlr-option-spec|antlr-options-menu-filter|antlr-outside-rule-p|antlr-re-search-forward|antlr-read-boolean|antlr-read-shell-command|antlr-read-value|antlr-run-tool-interactive|antlr-run-tool|antlr-search-backward|antlr-search-forward|antlr-set-tabs|antlr-show-makefile-rules|antlr-skip-exception-part|antlr-skip-file-prelude|antlr-skip-sexps|antlr-superclasses-glibs|antlr-syntactic-context|antlr-syntactic-grammar-depth|antlr-upcase-literals|antlr-upcase-p|antlr-version-string|antlr-with-displaying-help-buffer|antlr-with-syntax-table|append-next-kill|append-to-buffer|append-to-register|apply-macro-to-region-lines|apply-on-rectangle|appt-activate|appt-add|apropos-command|apropos-documentation-property|apropos-documentation|apropos-internal|apropos-library|apropos-read-pattern|apropos-user-option|apropos-value|apropos-variable|archive-\\\\*-expunge|archive-\\\\*-extract|archive-\\\\*-write-file-member|archive-7z-extract|archive-7z-summarize|archive-7z-write-file-member|archive-add-new-member|archive-alternate-display|archive-ar-extract|archive-ar-summarize|archive-arc-rename-entry|archive-arc-summarize|archive-calc-mode|archive-chgrp-entry|archive-chmod-entry|archive-chown-entry|archive-delete-local|archive-desummarize|archive-display-other-window|archive-dosdate|archive-dostime|archive-expunge|archive-extract-by-file|archive-extract-by-stdout|archive-extract-other-window|archive-extract|archive-file-name-handler|archive-find-type|archive-flag-deleted|archive-get-descr|archive-get-lineno|archive-get-marked|archive-int-to-mode|archive-l-e|archive-lzh-chgrp-entry|archive-lzh-chmod-entry|archive-lzh-chown-entry|archive-lzh-exe-extract|archive-lzh-exe-summarize|archive-lzh-extract|archive-lzh-ogm|archive-lzh-rename-entry|archive-lzh-resum|archive-lzh-summarize|archive-mark|archive-maybe-copy|archive-maybe-update|archive-mode-revert|archive-mode|archive-mouse-extract|archive-name|archive-next-line|archive-previous-line|archive-rar-exe-extract|archive-rar-exe-summarize|archive-rar-extract|archive-rar-summarize|archive-rename-entry|archive-resummarize|archive-set-buffer-as-visiting-file|archive-summarize-files|archive-summarize|archive-try-jka-compr|archive-undo|archive-unflag-backwards|archive-unflag|archive-unique-fname|archive-unixdate|archive-unixtime|archive-unmark-all-files|archive-view|archive-write-file-member|archive-write-file|archive-zip-chmod-entry|archive-zip-extract|archive-zip-summarize|archive-zip-write-file-member|archive-zoo-extract|archive-zoo-summarize|arp|array-backward-column|array-beginning-of-field|array-copy-backward|array-copy-column-backward|array-copy-column-forward|array-copy-down|array-copy-forward|array-copy-once-horizontally|array-copy-once-vertically|array-copy-row-down|array-copy-row-up|array-copy-to-cell|array-copy-to-column|array-copy-to-row|array-copy-up|array-current-column|array-current-row|array-cursor-in-array-range|array-display-local-variables|array-end-of-field|array-expand-rows|array-field-string|array-fill-rectangle|array-forward-column|array-goto-cell|array-make-template|array-maybe-scroll-horizontally|array-mode|array-move-one-column|array-move-one-row|array-move-to-cell|array-move-to-column|array-move-to-row|array-next-row|array-normalize-cursor|array-previous-row|array-reconfigure-rows|array-update-array-position|array-update-buffer-position|array-what-position|artist-2point-get-endpoint1|artist-2point-get-endpoint2|artist-2point-get-shapeinfo|artist-arrow-point-get-direction|artist-arrow-point-get-marker|artist-arrow-point-get-orig-char|artist-arrow-point-get-state|artist-arrow-point-set-state|artist-arrows|artist-backward-char|artist-calculate-new-char|artist-calculate-new-chars|artist-charlist-to-string|artist-clear-arrow-points|artist-clear-buffer|artist-compute-key-compl-table|artist-compute-line-char|artist-compute-popup-menu-table-sub|artist-compute-popup-menu-table|artist-compute-up-event-key|artist-coord-add-new-char|artist-coord-add-saved-char|artist-coord-get-new-char|artist-coord-get-saved-char|artist-coord-get-x|artist-coord-get-y|artist-coord-set-new-char|artist-coord-set-x|artist-coord-set-y|artist-coord-win-to-buf|artist-copy-generic|artist-copy-rect|artist-copy-square|artist-current-column|artist-current-line|artist-cut-rect|artist-cut-square|artist-direction-char|artist-direction-step-x|artist-direction-step-y|artist-do-nothing|artist-down-mouse-1|artist-down-mouse-3|artist-draw-circle|artist-draw-ellipse-general|artist-draw-ellipse-with-0-height|artist-draw-ellipse|artist-draw-line|artist-draw-rect|artist-draw-region-reset|artist-draw-region-trim-line-endings|artist-draw-sline|artist-draw-square|artist-eight-point|artist-ellipse-compute-fill-info|artist-ellipse-fill-info-add-center|artist-ellipse-generate-quadrant|artist-ellipse-mirror-quadrant|artist-ellipse-point-list-add-center|artist-ellipse-remove-0-fills|artist-endpoint-get-x|artist-endpoint-get-y|artist-erase-char|artist-erase-rect|artist-event-is-shifted|artist-fc-get-fn-from-symbol|artist-fc-get-fn|artist-fc-get-keyword|artist-fc-get-symbol|artist-fc-retrieve-from-symbol-sub|artist-fc-retrieve-from-symbol|artist-ff-get-rightmost-from-xy|artist-ff-is-bottommost-line|artist-ff-is-topmost-line|artist-ff-too-far-right|artist-figlet-choose-font|artist-figlet-get-extra-args|artist-figlet-get-font-list|artist-figlet-run|artist-figlet|artist-file-to-string|artist-fill-circle|artist-fill-ellipse|artist-fill-item-get-width|artist-fill-item-get-x|artist-fill-item-get-y|artist-fill-item-set-width|artist-fill-item-set-x|artist-fill-item-set-y|artist-fill-rect|artist-fill-square|artist-find-direction|artist-find-octant|artist-flood-fill|artist-forward-char|artist-funcall|artist-get-buffer-contents-at-xy|artist-get-char-at-xy-conv|artist-get-char-at-xy|artist-get-dfdx-init-coeff|artist-get-dfdy-init-coeff|artist-get-first-non-nil-op|artist-get-last-non-nil-op|artist-get-replacement-char|artist-get-x-step-q<0|artist-get-x-step-q>=0|artist-get-y-step-q<0|artist-get-y-step-q>=0|artist-go-get-arrow-pred-from-symbol|artist-go-get-arrow-pred|artist-go-get-arrow-set-fn-from-symbol|artist-go-get-arrow-set-fn|artist-go-get-desc|artist-go-get-draw-fn-from-symbol|artist-go-get-draw-fn|artist-go-get-draw-how-from-symbol|artist-go-get-draw-how|artist-go-get-exit-fn-from-symbol|artist-go-get-exit-fn|artist-go-get-fill-fn-from-symbol|artist-go-get-fill-fn|artist-go-get-fill-pred-from-symbol|artist-go-get-fill-pred|artist-go-get-init-fn-from-symbol|artist-go-get-init-fn|artist-go-get-interval-fn-from-symbol|artist-go-get-interval-fn|artist-go-get-keyword-from-symbol|artist-go-get-keyword|artist-go-get-mode-line-from-symbol|artist-go-get-mode-line|artist-go-get-prep-fill-fn-from-symbol|artist-go-get-prep-fill-fn|artist-go-get-shifted|artist-go-get-symbol-shift-sub|artist-go-get-symbol-shift|artist-go-get-symbol|artist-go-get-undraw-fn-from-symbol|artist-go-get-undraw-fn|artist-go-get-unshifted|artist-go-retrieve-from-symbol-sub|artist-go-retrieve-from-symbol|artist-intersection-char|artist-is-in-op-list-p|artist-key-do-continously-1point|artist-key-do-continously-2points|artist-key-do-continously-common)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:artist-key-do-continously-continously|artist-key-do-continously-poly|artist-key-draw-1point|artist-key-draw-2points|artist-key-draw-common|artist-key-draw-continously|artist-key-draw-poly|artist-key-set-point-1point|artist-key-set-point-2points|artist-key-set-point-common|artist-key-set-point-continously|artist-key-set-point-poly|artist-key-set-point|artist-key-undraw-1point|artist-key-undraw-2points|artist-key-undraw-common|artist-key-undraw-continously|artist-key-undraw-poly|artist-make-2point-object|artist-make-arrow-point|artist-make-endpoint|artist-make-prev-next-op-alist|artist-mn-get-items|artist-mn-get-title|artist-mode-exit|artist-mode-init|artist-mode-line-show-curr-operation|artist-mode-off|artist-mode|artist-modify-new-chars|artist-mouse-choose-operation|artist-mouse-draw-1point|artist-mouse-draw-2points|artist-mouse-draw-continously|artist-mouse-draw-poly|artist-move-to-xy|artist-mt-get-info-part|artist-mt-get-symbol-from-keyword-sub|artist-mt-get-symbol-from-keyword|artist-mt-get-tag|artist-new-coord|artist-new-fill-item|artist-next-line|artist-nil|artist-no-arrows|artist-no-rb-set-point1|artist-no-rb-set-point2|artist-no-rb-unset-point1|artist-no-rb-unset-point2|artist-no-rb-unset-points|artist-paste|artist-pen-line|artist-pen-reset-last-xy|artist-pen-set-arrow-points|artist-pen|artist-previous-line|artist-put-pixel|artist-rect-corners-squarify|artist-replace-char|artist-replace-chars|artist-replace-string|artist-save-chars-under-point-list|artist-save-chars-under-sline|artist-select-erase-char|artist-select-fill-char|artist-select-line-char|artist-select-next-op-in-list|artist-select-op-circle|artist-select-op-copy-rectangle|artist-select-op-copy-square|artist-select-op-cut-rectangle|artist-select-op-cut-square|artist-select-op-ellipse|artist-select-op-erase-char|artist-select-op-erase-rectangle|artist-select-op-flood-fill|artist-select-op-line|artist-select-op-paste|artist-select-op-pen-line|artist-select-op-poly-line|artist-select-op-rectangle|artist-select-op-spray-can|artist-select-op-spray-set-size|artist-select-op-square|artist-select-op-straight-line|artist-select-op-straight-poly-line|artist-select-op-text-overwrite|artist-select-op-text-see-thru|artist-select-op-vaporize-line|artist-select-op-vaporize-lines|artist-select-operation|artist-select-prev-op-in-list|artist-select-spray-chars|artist-set-arrow-points-for-2points|artist-set-arrow-points-for-poly|artist-set-pointer-shape|artist-shift-has-changed|artist-sline|artist-spray-clear-circle|artist-spray-get-interval|artist-spray-random-points|artist-spray-set-radius|artist-spray|artist-straight-calculate-length|artist-string-split|artist-string-to-charlist|artist-string-to-file|artist-submit-bug-report|artist-system|artist-t-if-fill-char-set|artist-t|artist-text-insert-common|artist-text-insert-overwrite|artist-text-insert-see-thru|artist-text-overwrite|artist-text-see-thru|artist-toggle-borderless-shapes|artist-toggle-first-arrow|artist-toggle-rubber-banding|artist-toggle-second-arrow|artist-toggle-trim-line-endings|artist-undraw-circle|artist-undraw-ellipse|artist-undraw-line|artist-undraw-rect|artist-undraw-sline|artist-undraw-square|artist-unintersection-char|artist-uniq|artist-update-display|artist-update-pointer-shape|artist-vap-find-endpoint|artist-vap-find-endpoints-horiz|artist-vap-find-endpoints-nwse|artist-vap-find-endpoints-swne|artist-vap-find-endpoints-vert|artist-vap-find-endpoints|artist-vap-group-in-pairs|artist-vaporize-by-endpoints|artist-vaporize-line|artist-vaporize-lines|asm-calculate-indentation|asm-colon|asm-comment|asm-indent-line|asm-mode|asm-newline|assert|assoc\\\\*|assoc-if-not|assoc-if|assoc-ignore-case|assoc-ignore-representation|async-shell-command|atomic-change-group|auth-source--aget|auth-source--aput-1|auth-source--aput|auth-source-backend-child-p|auth-source-backend-list-p|auth-source-backend-p|auth-source-backend-parse-parameters|auth-source-backend-parse|auth-source-backend|auth-source-current-line|auth-source-delete|auth-source-do-debug|auth-source-do-trivia|auth-source-do-warn|auth-source-ensure-strings|auth-source-epa-extract-gpg-token|auth-source-epa-make-gpg-token|auth-source-forget\\\\+|auth-source-forget-all-cached|auth-source-forget|auth-source-format-cache-entry|auth-source-format-prompt|auth-source-macos-keychain-create|auth-source-macos-keychain-result-append|auth-source-macos-keychain-search-items|auth-source-macos-keychain-search|auth-source-netrc-create|auth-source-netrc-element-or-first|auth-source-netrc-normalize|auth-source-netrc-parse-entries|auth-source-netrc-parse-next-interesting|auth-source-netrc-parse-one|auth-source-netrc-parse|auth-source-netrc-saver|auth-source-netrc-search|auth-source-pick-first-password|auth-source-plstore-create|auth-source-plstore-search|auth-source-read-char-choice|auth-source-recall|auth-source-remember|auth-source-remembered-p|auth-source-search-backends|auth-source-search-collection|auth-source-search|auth-source-secrets-create|auth-source-secrets-listify-pattern|auth-source-secrets-search|auth-source-specmatchp|auth-source-token-passphrase-callback-function|auth-source-user-and-password|auth-source-user-or-password|auto-coding-alist-lookup|auto-coding-regexp-alist-lookup|auto-compose-chars|auto-composition-mode|auto-compression-mode|auto-encryption-mode|auto-fill-mode|auto-image-file-mode|auto-insert-mode|auto-insert|auto-lower-mode|auto-raise-mode|auto-revert-active-p|auto-revert-buffers|auto-revert-handler|auto-revert-mode|auto-revert-notify-add-watch|auto-revert-notify-handler|auto-revert-notify-rm-watch|auto-revert-set-timer|auto-revert-tail-handler|auto-revert-tail-mode|autoarg-kp-digit-argument|autoarg-kp-mode|autoarg-mode|autoarg-terminate|autoconf-current-defun-function|autoconf-mode|autodoc-font-lock-keywords|autodoc-font-lock-line-markup|autoload-coding-system|autoload-rubric|avl-tree--check-node|avl-tree--check|avl-tree--cmpfun--cmacro|avl-tree--cmpfun|avl-tree--create--cmacro|avl-tree--create|avl-tree--del-balance|avl-tree--dir-to-sign|avl-tree--do-copy|avl-tree--do-del-internal|avl-tree--do-delete|avl-tree--do-enter|avl-tree--dummyroot--cmacro|avl-tree--dummyroot|avl-tree--enter-balance|avl-tree--mapc|avl-tree--node-balance--cmacro|avl-tree--node-balance|avl-tree--node-branch|avl-tree--node-create--cmacro|avl-tree--node-create|avl-tree--node-data--cmacro|avl-tree--node-data|avl-tree--node-left--cmacro|avl-tree--node-left|avl-tree--node-right--cmacro|avl-tree--node-right|avl-tree--root|avl-tree--sign-to-dir|avl-tree--stack-create|avl-tree--stack-p--cmacro|avl-tree--stack-p|avl-tree--stack-repopulate|avl-tree--stack-reverse--cmacro|avl-tree--stack-reverse|avl-tree--stack-store--cmacro|avl-tree--stack-store|avl-tree--switch-dir|avl-tree-clear|avl-tree-compare-function|avl-tree-copy|avl-tree-create|avl-tree-delete|avl-tree-empty|avl-tree-enter|avl-tree-first|avl-tree-flatten|avl-tree-last|avl-tree-map|avl-tree-mapc|avl-tree-mapcar|avl-tree-mapf|avl-tree-member-p|avl-tree-member|avl-tree-p--cmacro|avl-tree-p|avl-tree-size|avl-tree-stack-empty-p|avl-tree-stack-first|avl-tree-stack-p|avl-tree-stack-pop|avl-tree-stack|awk-mode|babel-as-string|background-color-at-point|backquote-delay-process|backquote-list\\\\*-function|backquote-list\\\\*-macro|backquote-list\\\\*|backquote-listify|backquote-process|backquote|backtrace--locals|backtrace-eval|backup-buffer-copy|backup-extract-version|backward-delete-char|backward-ifdef|backward-kill-paragraph|backward-kill-sentence|backward-kill-sexp|backward-kill-word|backward-page|backward-paragraph|backward-sentence|backward-text-line|backward-up-list|bad-package-check|balance-windows-1|balance-windows-2|balance-windows-area-adjust|basic-save-buffer-1|basic-save-buffer-2|basic-save-buffer|bat-cmd-help|bat-mode|bat-run-args|bat-run|bat-template|batch-byte-compile-file|batch-byte-compile-if-not-done|batch-byte-recompile-directory|batch-info-validate|batch-texinfo-format|batch-titdic-convert|batch-unrmail|batch-update-autoloads|battery-bsd-apm|battery-format|battery-linux-proc-acpi|battery-linux-proc-apm|battery-linux-sysfs|battery-pmset|battery-search-for-one-match-in-files|battery-update-handler|battery-update|battery|bb-bol|bb-done|bb-down|bb-eol|bb-goto|bb-init-board|bb-insert-board|bb-left|bb-outside-box|bb-place-ball|bb-right|bb-romp|bb-show-bogus-balls-2|bb-show-bogus-balls|bb-trace-ray-2|bb-trace-ray|bb-up|bb-update-board|beginning-of-buffer-other-window|beginning-of-defun-raw|beginning-of-icon-defun|beginning-of-line-text|beginning-of-sexp|beginning-of-thing|beginning-of-visual-line|benchmark-elapse|benchmark-run-compiled|benchmark-run|benchmark|bib-capitalize-title-region|bib-capitalize-title|bib-find-key|bib-mode|bibtex-Article|bibtex-Book|bibtex-BookInBook|bibtex-Booklet|bibtex-Collection|bibtex-InBook|bibtex-InCollection|bibtex-InProceedings|bibtex-InReference|bibtex-MVBook|bibtex-MVCollection|bibtex-MVProceedings|bibtex-MVReference|bibtex-Manual|bibtex-MastersThesis|bibtex-Misc|bibtex-Online|bibtex-Patent|bibtex-Periodical|bibtex-PhdThesis|bibtex-Preamble|bibtex-Proceedings|bibtex-Reference|bibtex-Report|bibtex-String|bibtex-SuppBook|bibtex-SuppCollection|bibtex-SuppPeriodical|bibtex-TechReport|bibtex-Thesis|bibtex-Unpublished|bibtex-autofill-entry|bibtex-autokey-abbrev|bibtex-autokey-demangle-name|bibtex-autokey-demangle-title|bibtex-autokey-get-field|bibtex-autokey-get-names|bibtex-autokey-get-title|bibtex-autokey-get-year|bibtex-beginning-first-field|bibtex-beginning-of-entry|bibtex-beginning-of-field|bibtex-beginning-of-first-entry|bibtex-button-action|bibtex-button|bibtex-clean-entry|bibtex-complete-crossref-cleanup|bibtex-complete-string-cleanup|bibtex-complete|bibtex-completion-at-point-function|bibtex-convert-alien|bibtex-copy-entry-as-kill|bibtex-copy-field-as-kill|bibtex-copy-summary-as-kill|bibtex-count-entries|bibtex-current-line|bibtex-delete-whitespace|bibtex-display-entries|bibtex-dist|bibtex-edit-menu|bibtex-empty-field|bibtex-enclosing-field|bibtex-end-of-entry|bibtex-end-of-field|bibtex-end-of-name-in-field|bibtex-end-of-string|bibtex-end-of-text-in-field|bibtex-end-of-text-in-string|bibtex-entry-alist|bibtex-entry-index|bibtex-entry-left-delimiter|bibtex-entry-right-delimiter|bibtex-entry-update|bibtex-entry|bibtex-field-left-delimiter|bibtex-field-list|bibtex-field-re-init|bibtex-field-right-delimiter|bibtex-fill-entry|bibtex-fill-field-bounds|bibtex-fill-field|bibtex-find-crossref|bibtex-find-entry|bibtex-find-text-internal|bibtex-find-text|bibtex-flash-head|bibtex-font-lock-cite|bibtex-font-lock-crossref|bibtex-font-lock-url|bibtex-format-entry|bibtex-generate-autokey|bibtex-global-key-alist|bibtex-goto-line|bibtex-init-sort-entry-class-alist|bibtex-initialize|bibtex-insert-kill|bibtex-ispell-abstract|bibtex-ispell-entry|bibtex-key-in-head|bibtex-kill-entry|bibtex-kill-field|bibtex-lessp|bibtex-make-field|bibtex-make-optional-field|bibtex-map-entries|bibtex-mark-entry|bibtex-mode|bibtex-move-outside-of-entry|bibtex-name-in-field|bibtex-narrow-to-entry|bibtex-next-field|bibtex-parse-association|bibtex-parse-buffers-stealthily|bibtex-parse-entry|bibtex-parse-field-name|bibtex-parse-field-string|bibtex-parse-field-text|bibtex-parse-field|bibtex-parse-keys|bibtex-parse-preamble|bibtex-parse-string-postfix|bibtex-parse-string-prefix|bibtex-parse-string|bibtex-parse-strings|bibtex-pop-next|bibtex-pop-previous|bibtex-pop|bibtex-prepare-new-entry|bibtex-print-help-message|bibtex-progress-message|bibtex-read-key|bibtex-read-string-key|bibtex-realign|bibtex-reference-key-in-string|bibtex-reformat|bibtex-remove-OPT-or-ALT|bibtex-remove-delimiters|bibtex-reposition-window|bibtex-search-backward-field|bibtex-search-crossref|bibtex-search-entries|bibtex-search-entry|bibtex-search-forward-field|bibtex-search-forward-string|bibtex-set-dialect|bibtex-skip-to-valid-entry|bibtex-sort-buffer|bibtex-start-of-field|bibtex-start-of-name-in-field|bibtex-start-of-text-in-field|bibtex-start-of-text-in-string|bibtex-string-files-init|bibtex-string=|bibtex-strings|bibtex-style-calculate-indentation|bibtex-style-indent-line|bibtex-style-mode|bibtex-summary|bibtex-text-in-field-bounds|bibtex-text-in-field|bibtex-text-in-string|bibtex-type-in-head|bibtex-url|bibtex-valid-entry|bibtex-validate-globally|bibtex-validate|bibtex-vec-incr|bibtex-vec-push|bibtex-yank-pop|bibtex-yank|bidi-find-overridden-directionality)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:bidi-resolved-levels|binary-overwrite-mode|bindat--length-group|bindat--pack-group|bindat--pack-item|bindat--pack-u16|bindat--pack-u16r|bindat--pack-u24|bindat--pack-u24r|bindat--pack-u32|bindat--pack-u32r|bindat--pack-u8|bindat--unpack-group|bindat--unpack-item|bindat--unpack-u16|bindat--unpack-u16r|bindat--unpack-u24|bindat--unpack-u24r|bindat--unpack-u32|bindat--unpack-u32r|bindat--unpack-u8|bindat-format-vector|bindat-vector-to-dec|bindat-vector-to-hex|bindings--define-key|binhex-char-int|binhex-char-map|binhex-decode-region-external|binhex-decode-region-internal|binhex-decode-region|binhex-header|binhex-insert-char|binhex-push-char|binhex-string-big-endian|binhex-string-little-endian|binhex-update-crc|binhex-verify-crc|blackbox-mode|blackbox-redefine-key|blackbox|blink-cursor-check|blink-cursor-end|blink-cursor-mode|blink-cursor-start|blink-cursor-suspend|blink-cursor-timer-function|blink-matching-check-mismatch|blink-paren-post-self-insert-function|block|bookmark--jump-via|bookmark-alist-from-buffer|bookmark-all-names|bookmark-bmenu-1-window|bookmark-bmenu-2-window|bookmark-bmenu-any-marks|bookmark-bmenu-backup-unmark|bookmark-bmenu-bookmark|bookmark-bmenu-delete-backwards|bookmark-bmenu-delete|bookmark-bmenu-edit-annotation|bookmark-bmenu-ensure-position|bookmark-bmenu-execute-deletions|bookmark-bmenu-filter-alist-by-regexp|bookmark-bmenu-goto-bookmark|bookmark-bmenu-hide-filenames|bookmark-bmenu-list|bookmark-bmenu-load|bookmark-bmenu-locate|bookmark-bmenu-mark|bookmark-bmenu-mode|bookmark-bmenu-other-window-with-mouse|bookmark-bmenu-other-window|bookmark-bmenu-relocate|bookmark-bmenu-rename|bookmark-bmenu-save|bookmark-bmenu-search|bookmark-bmenu-select|bookmark-bmenu-set-header|bookmark-bmenu-show-all-annotations|bookmark-bmenu-show-annotation|bookmark-bmenu-show-filenames|bookmark-bmenu-surreptitiously-rebuild-list|bookmark-bmenu-switch-other-window|bookmark-bmenu-this-window|bookmark-bmenu-toggle-filenames|bookmark-bmenu-unmark|bookmark-buffer-file-name|bookmark-buffer-name|bookmark-completing-read|bookmark-default-annotation-text|bookmark-default-handler|bookmark-delete|bookmark-edit-annotation-mode|bookmark-edit-annotation|bookmark-exit-hook-internal|bookmark-get-annotation|bookmark-get-bookmark-record|bookmark-get-bookmark|bookmark-get-filename|bookmark-get-front-context-string|bookmark-get-handler|bookmark-get-position|bookmark-get-rear-context-string|bookmark-grok-file-format-version|bookmark-handle-bookmark|bookmark-import-new-list|bookmark-insert-annotation|bookmark-insert-file-format-version-stamp|bookmark-insert-location|bookmark-insert|bookmark-jump-noselect|bookmark-jump-other-window|bookmark-jump|bookmark-kill-line|bookmark-load|bookmark-locate|bookmark-location|bookmark-make-record-default|bookmark-make-record|bookmark-map|bookmark-maybe-historicize-string|bookmark-maybe-load-default-file|bookmark-maybe-message|bookmark-maybe-rename|bookmark-maybe-sort-alist|bookmark-maybe-upgrade-file-format|bookmark-menu-popup-paned-menu|bookmark-name-from-full-record|bookmark-prop-get|bookmark-prop-set|bookmark-relocate|bookmark-rename|bookmark-save|bookmark-send-edited-annotation|bookmark-set-annotation|bookmark-set-filename|bookmark-set-front-context-string|bookmark-set-name|bookmark-set-position|bookmark-set-rear-context-string|bookmark-set|bookmark-show-all-annotations|bookmark-show-annotation|bookmark-store|bookmark-time-to-save-p|bookmark-unload-function|bookmark-upgrade-file-format-from-0|bookmark-upgrade-version-0-alist|bookmark-write-file|bookmark-write|bookmark-yank-word|bool-vector|bound-and-true-p|bounds-of-thing-at-point|bovinate|bovine-grammar-mode|browse-url-at-mouse|browse-url-at-point|browse-url-can-use-xdg-open|browse-url-cci|browse-url-chromium|browse-url-default-browser|browse-url-default-macosx-browser|browse-url-default-windows-browser|browse-url-delete-temp-file|browse-url-elinks-new-window|browse-url-elinks-sentinel|browse-url-elinks|browse-url-emacs-display|browse-url-emacs|browse-url-encode-url|browse-url-epiphany-sentinel|browse-url-epiphany|browse-url-file-url|browse-url-firefox-sentinel|browse-url-firefox|browse-url-galeon-sentinel|browse-url-galeon|browse-url-generic|browse-url-gnome-moz|browse-url-interactive-arg|browse-url-kde|browse-url-mail|browse-url-maybe-new-window|browse-url-mosaic|browse-url-mozilla-sentinel|browse-url-mozilla|browse-url-netscape-reload|browse-url-netscape-send|browse-url-netscape-sentinel|browse-url-netscape|browse-url-of-buffer|browse-url-of-dired-file|browse-url-of-file|browse-url-of-region|browse-url-process-environment|browse-url-text-emacs|browse-url-text-xterm|browse-url-url-at-point|browse-url-url-encode-chars|browse-url-w3-gnudoit|browse-url-w3|browse-url-xdg-open|browse-url|browse-web|bs--configuration-name-for-prefix-arg|bs--create-header-line|bs--current-buffer|bs--current-config-message|bs--down|bs--format-aux|bs--get-file-name|bs--get-marked-string|bs--get-mode-name|bs--get-modified-string|bs--get-name-length|bs--get-name|bs--get-readonly-string|bs--get-size-string|bs--get-value|bs--goto-current-buffer|bs--insert-one-entry|bs--make-header-match-string|bs--mark-unmark|bs--nth-wrapper|bs--redisplay|bs--remove-hooks|bs--restore-window-config|bs--set-toggle-to-show|bs--set-window-height|bs--show-config-message|bs--show-header|bs--show-with-configuration|bs--sort-by-filename|bs--sort-by-mode|bs--sort-by-name|bs--sort-by-size|bs--track-window-changes|bs--up|bs--update-current-line|bs-abort|bs-apply-sort-faces|bs-buffer-list|bs-buffer-sort|bs-bury-buffer|bs-clear-modified|bs-config--all-intern-last|bs-config--all|bs-config--files-and-scratch|bs-config--only-files|bs-config-clear|bs-customize|bs-cycle-next|bs-cycle-previous|bs-define-sort-function|bs-delete-backward|bs-delete|bs-down|bs-help|bs-kill|bs-mark-current|bs-message-without-log|bs-mode|bs-mouse-select-other-frame|bs-mouse-select|bs-next-buffer|bs-next-config-aux|bs-next-config|bs-previous-buffer|bs-refresh|bs-save|bs-select-in-one-window|bs-select-next-configuration|bs-select-other-frame|bs-select-other-window|bs-select|bs-set-configuration-and-refresh|bs-set-configuration|bs-set-current-buffer-to-show-always|bs-set-current-buffer-to-show-never|bs-show-in-buffer|bs-show-sorted|bs-show|bs-sort-buffer-interns-are-last|bs-tmp-select-other-window|bs-toggle-current-to-show|bs-toggle-readonly|bs-toggle-show-all|bs-unload-function|bs-unmark-current|bs-up|bs-view|bs-visit-tags-table|bs-visits-non-file|bubbles--char-at|bubbles--col|bubbles--colors|bubbles--compute-offsets|bubbles--count|bubbles--empty-char|bubbles--game-over|bubbles--goto|bubbles--grid-height|bubbles--grid-width|bubbles--initialize-faces|bubbles--initialize-images|bubbles--initialize|bubbles--mark-direct-neighbors|bubbles--mark-neighborhood|bubbles--neighborhood-available|bubbles--remove-overlays|bubbles--reset-score|bubbles--row|bubbles--set-faces|bubbles--shift-mode|bubbles--shift|bubbles--show-images|bubbles--show-scores|bubbles--update-faces-or-images|bubbles--update-neighborhood-score|bubbles--update-score|bubbles-customize|bubbles-mode|bubbles-plop|bubbles-quit|bubbles-save-settings|bubbles-set-game-difficult|bubbles-set-game-easy|bubbles-set-game-hard|bubbles-set-game-medium|bubbles-set-game-userdefined|bubbles-set-graphics-theme-ascii|bubbles-set-graphics-theme-balls|bubbles-set-graphics-theme-circles|bubbles-set-graphics-theme-diamonds|bubbles-set-graphics-theme-emacs|bubbles-set-graphics-theme-squares|bubbles-undo|bubbles|buffer-face-mode-invoke|buffer-face-mode|buffer-face-set|buffer-face-toggle|buffer-has-markers-at|buffer-menu-open|buffer-menu-other-window|buffer-menu|buffer-stale--default-function|buffer-substring--filter|buffer-substring-with-bidi-context|bug-reference-fontify|bug-reference-mode|bug-reference-prog-mode|bug-reference-push-button|bug-reference-set-overlay-properties|bug-reference-unfontify|build-mail-abbrevs|build-mail-aliases|bury-buffer-internal|butterfly|button--area-button-p|button--area-button-string|button-category-symbol|byte-code|byte-compile--declare-var|byte-compile--reify-function|byte-compile-abbreviate-file|byte-compile-and-folded|byte-compile-and-recursion|byte-compile-and|byte-compile-annotate-call-tree|byte-compile-arglist-signature-string|byte-compile-arglist-signature|byte-compile-arglist-signatures-congruent-p|byte-compile-arglist-vars|byte-compile-arglist-warn|byte-compile-associative|byte-compile-autoload|byte-compile-backward-char|byte-compile-backward-word|byte-compile-bind|byte-compile-body-do-effect|byte-compile-body|byte-compile-butlast|byte-compile-callargs-warn|byte-compile-catch|byte-compile-char-before|byte-compile-check-lambda-list|byte-compile-check-variable|byte-compile-cl-file-p|byte-compile-cl-warn|byte-compile-close-variables|byte-compile-concat|byte-compile-cond|byte-compile-condition-case--new|byte-compile-condition-case--old|byte-compile-condition-case|byte-compile-constant|byte-compile-constants-vector|byte-compile-defvar|byte-compile-delete-first|byte-compile-dest-file|byte-compile-disable-warning|byte-compile-discard|byte-compile-dynamic-variable-bind|byte-compile-dynamic-variable-op|byte-compile-enable-warning|byte-compile-eval-before-compile|byte-compile-eval|byte-compile-fdefinition|byte-compile-file-form-autoload|byte-compile-file-form-custom-declare-variable|byte-compile-file-form-defalias|byte-compile-file-form-define-abbrev-table|byte-compile-file-form-defmumble|byte-compile-file-form-defvar|byte-compile-file-form-eval|byte-compile-file-form-progn|byte-compile-file-form-require|byte-compile-file-form-with-no-warnings|byte-compile-file-form|byte-compile-find-bound-condition|byte-compile-find-cl-functions|byte-compile-fix-header|byte-compile-flush-pending|byte-compile-form-do-effect|byte-compile-form-make-variable-buffer-local|byte-compile-form|byte-compile-format-warn|byte-compile-from-buffer|byte-compile-fset|byte-compile-funcall|byte-compile-function-form|byte-compile-function-warn|byte-compile-get-closed-var|byte-compile-get-constant|byte-compile-goto-if|byte-compile-goto|byte-compile-if|byte-compile-indent-to|byte-compile-inline-expand|byte-compile-inline-lapcode|byte-compile-insert-header|byte-compile-insert|byte-compile-keep-pending|byte-compile-lambda-form|byte-compile-lambda|byte-compile-lapcode|byte-compile-let|byte-compile-list|byte-compile-log-1|byte-compile-log-file|byte-compile-log-lap-1|byte-compile-log-lap|byte-compile-log-warning|byte-compile-log|byte-compile-macroexpand-declare-function|byte-compile-make-args-desc|byte-compile-make-closure|byte-compile-make-lambda-lexenv|byte-compile-make-obsolete-variable|byte-compile-make-tag|byte-compile-make-variable-buffer-local|byte-compile-maybe-guarded|byte-compile-minus|byte-compile-nconc|byte-compile-negated|byte-compile-negation-optimizer|byte-compile-nilconstp|byte-compile-no-args|byte-compile-no-warnings|byte-compile-nogroup-warn|byte-compile-noop|byte-compile-normal-call|byte-compile-not-lexical-var-p|byte-compile-one-arg|byte-compile-one-or-two-args|byte-compile-or-recursion|byte-compile-or|byte-compile-out-tag|byte-compile-out-toplevel|byte-compile-out|byte-compile-output-as-comment|byte-compile-output-docform|byte-compile-output-file-form|byte-compile-preprocess|byte-compile-print-syms|byte-compile-prog1|byte-compile-prog2|byte-compile-progn|byte-compile-push-binding-init|byte-compile-push-bytecode-const2|byte-compile-push-bytecodes|byte-compile-push-constant|byte-compile-quo|byte-compile-quote|byte-compile-recurse-toplevel|byte-compile-refresh-preloaded|byte-compile-report-error|byte-compile-report-ops|byte-compile-save-current-buffer|byte-compile-save-excursion|byte-compile-save-restriction|byte-compile-set-default|byte-compile-set-symbol-position|byte-compile-setq-default|byte-compile-setq|byte-compile-sexp|byte-compile-stack-adjustment|byte-compile-stack-ref|byte-compile-stack-set|byte-compile-subr-wrong-args|byte-compile-three-args|byte-compile-top-level-body|byte-compile-top-level|byte-compile-toplevel-file-form|byte-compile-trueconstp|byte-compile-two-args|byte-compile-two-or-three-args|byte-compile-unbind|byte-compile-unfold-bcf|byte-compile-unfold-lambda|byte-compile-unwind-protect|byte-compile-variable-ref)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:byte-compile-variable-set|byte-compile-warn-about-unresolved-functions|byte-compile-warn-obsolete|byte-compile-warn|byte-compile-warning-enabled-p|byte-compile-warning-prefix|byte-compile-warning-series|byte-compile-while|byte-compile-zero-or-one-arg|byte-compiler-base-file-name|byte-decompile-bytecode-1|byte-decompile-bytecode|byte-defop-compiler-1|byte-defop-compiler|byte-defop|byte-extrude-byte-code-vectors|byte-force-recompile|byte-optimize-all-constp|byte-optimize-and|byte-optimize-apply|byte-optimize-approx-equal|byte-optimize-associative-math|byte-optimize-binary-predicate|byte-optimize-body|byte-optimize-cond|byte-optimize-delay-constants-math|byte-optimize-divide|byte-optimize-form-code-walker|byte-optimize-form|byte-optimize-funcall|byte-optimize-identity|byte-optimize-if|byte-optimize-inline-handler|byte-optimize-lapcode|byte-optimize-letX|byte-optimize-logmumble|byte-optimize-minus|byte-optimize-multiply|byte-optimize-nonassociative-math|byte-optimize-nth|byte-optimize-nthcdr|byte-optimize-or|byte-optimize-plus|byte-optimize-predicate|byte-optimize-quote|byte-optimize-set|byte-optimize-while|byte-recompile-file|byteorder|c\\\\+\\\\+-font-lock-keywords-2|c\\\\+\\\\+-font-lock-keywords-3|c\\\\+\\\\+-font-lock-keywords|c\\\\+\\\\+-mode|c--macroexpand-all|c-add-class-syntax|c-add-language|c-add-stmt-syntax|c-add-style|c-add-syntax|c-add-type|c-advise-fl-for-region|c-after-change-check-<>-operators|c-after-change|c-after-conditional|c-after-font-lock-init|c-after-special-operator-id|c-after-statement-terminator-p|c-append-backslashes-forward|c-append-lower-brace-pair-to-state-cache|c-append-syntax|c-append-to-state-cache|c-ascertain-following-literal|c-ascertain-preceding-literal|c-at-expression-start-p|c-at-macro-vsemi-p|c-at-statement-start-p|c-at-toplevel-p|c-at-vsemi-p|c-awk-menu|c-back-over-illiterals|c-back-over-member-initializer-braces|c-back-over-member-initializers|c-backslash-region|c-backward-<>-arglist|c-backward-colon-prefixed-type|c-backward-comments|c-backward-conditional|c-backward-into-nomenclature|c-backward-over-enum-header|c-backward-sexp|c-backward-single-comment|c-backward-sws|c-backward-syntactic-ws|c-backward-to-block-anchor|c-backward-to-decl-anchor|c-backward-to-nth-BOF-\\\\{|c-backward-token-1|c-backward-token-2|c-basic-common-init|c-before-change-check-<>-operators|c-before-change|c-before-hack-hook|c-beginning-of-current-token|c-beginning-of-decl-1|c-beginning-of-defun-1|c-beginning-of-defun|c-beginning-of-inheritance-list|c-beginning-of-macro|c-beginning-of-sentence-in-comment|c-beginning-of-sentence-in-string|c-beginning-of-statement-1|c-beginning-of-statement|c-beginning-of-syntax|c-benign-error|c-bind-special-erase-keys|c-block-in-arglist-dwim|c-bos-pop-state-and-retry|c-bos-pop-state|c-bos-push-state|c-bos-report-error|c-bos-restore-pos|c-bos-save-error-info|c-bos-save-pos|c-brace-anchor-point|c-brace-newlines|c-c\\\\+\\\\+-menu|c-c-menu|c-calc-comment-indent|c-calc-offset|c-calculate-state|c-change-set-fl-decl-start|c-cheap-inside-bracelist-p|c-check-type|c-clear-<-pair-props-if-match-after|c-clear-<-pair-props|c-clear-<>-pair-props|c-clear->-pair-props-if-match-before|c-clear->-pair-props|c-clear-c-type-property|c-clear-char-properties|c-clear-char-property-with-value-function|c-clear-char-property-with-value|c-clear-char-property|c-clear-cpp-delimiters|c-clear-found-types|c-collect-line-comments|c-comment-indent|c-comment-line-break-function|c-comment-out-cpps|c-common-init|c-compose-keywords-list|c-concat-separated|c-constant-symbol|c-context-line-break|c-context-open-line|c-context-set-fl-decl-start|c-count-cfss|c-cpp-define-name|c-crosses-statement-barrier-p|c-debug-add-face|c-debug-parse-state-double-cons|c-debug-parse-state|c-debug-put-decl-spot-faces|c-debug-remove-decl-spot-faces|c-debug-remove-face|c-debug-sws-msg|c-declaration-limits|c-declare-lang-variables|c-default-value-sentence-end|c-define-abbrev-table|c-define-lang-constant|c-defun-name|c-delete-and-extract-region|c-delete-backslashes-forward|c-delete-overlay|c-determine-\\\\+ve-limit|c-determine-limit-get-base|c-determine-limit|c-do-auto-fill|c-down-conditional-with-else|c-down-conditional|c-down-list-backward|c-down-list-forward|c-echo-parsing-error|c-electric-backspace|c-electric-brace|c-electric-colon|c-electric-continued-statement|c-electric-delete-forward|c-electric-delete|c-electric-indent-local-mode-hook|c-electric-indent-mode-hook|c-electric-lt-gt|c-electric-paren|c-electric-pound|c-electric-semi&comma|c-electric-slash|c-electric-star|c-end-of-current-token|c-end-of-decl-1|c-end-of-defun-1|c-end-of-defun|c-end-of-macro|c-end-of-sentence-in-comment|c-end-of-sentence-in-string|c-end-of-statement|c-evaluate-offset|c-extend-after-change-region|c-extend-font-lock-region-for-macros|c-extend-region-for-CPP|c-face-name-p|c-fdoc-shift-type-backward|c-fill-paragraph|c-find-assignment-for-mode|c-find-decl-prefix-search|c-find-decl-spots|c-find-invalid-doc-markup|c-fn-region-is-active-p|c-font-lock-<>-arglists|c-font-lock-c\\\\+\\\\+-new|c-font-lock-complex-decl-prepare|c-font-lock-declarations|c-font-lock-declarators|c-font-lock-doc-comments|c-font-lock-enclosing-decls|c-font-lock-enum-tail|c-font-lock-fontify-region|c-font-lock-init|c-font-lock-invalid-string|c-font-lock-keywords-2|c-font-lock-keywords-3|c-font-lock-keywords|c-font-lock-labels|c-font-lock-objc-method|c-font-lock-objc-methods|c-fontify-recorded-types-and-refs|c-fontify-types-and-refs|c-forward-<>-arglist-recur|c-forward-<>-arglist|c-forward-annotation|c-forward-comments|c-forward-conditional|c-forward-decl-or-cast-1|c-forward-id-comma-list|c-forward-into-nomenclature|c-forward-keyword-clause|c-forward-keyword-prefixed-id|c-forward-label|c-forward-name|c-forward-objc-directive|c-forward-over-cpp-define-id|c-forward-over-illiterals|c-forward-sexp|c-forward-single-comment|c-forward-sws|c-forward-syntactic-ws|c-forward-to-cpp-define-body|c-forward-to-nth-EOF-\\\\}|c-forward-token-1|c-forward-token-2|c-forward-type|c-get-cache-scan-pos|c-get-char-property|c-get-current-file|c-get-lang-constant|c-get-offset|c-get-style-variables|c-get-syntactic-indentation|c-gnu-impose-minimum|c-go-down-list-backward|c-go-down-list-forward|c-go-list-backward|c-go-list-forward|c-go-up-list-backward|c-go-up-list-forward|c-got-face-at|c-guess-accumulate-offset|c-guess-accumulate|c-guess-basic-syntax|c-guess-buffer-no-install|c-guess-buffer|c-guess-continued-construct|c-guess-current-offset|c-guess-dump-accumulator|c-guess-dump-guessed-style|c-guess-dump-guessed-values|c-guess-empty-line-p|c-guess-examine|c-guess-fill-prefix|c-guess-guess|c-guess-guessed-syntactic-symbols|c-guess-install|c-guess-make-basic-offset|c-guess-make-offsets-alist|c-guess-make-style|c-guess-merge-offsets-alists|c-guess-no-install|c-guess-region-no-install|c-guess-region|c-guess-reset-accumulator|c-guess-sort-accumulator|c-guess-style-name|c-guess-symbolize-integer|c-guess-symbolize-offsets-alist|c-guess-view-mark-guessed-entries|c-guess-view-reorder-offsets-alist-in-style|c-guess-view|c-guess|c-hungry-backspace|c-hungry-delete-backwards|c-hungry-delete-forward|c-hungry-delete|c-idl-menu|c-in-comment-line-prefix-p|c-in-function-trailer-p|c-in-gcc-asm-p|c-in-knr-argdecl|c-in-literal|c-in-method-def-p|c-indent-command|c-indent-defun|c-indent-exp|c-indent-line-or-region|c-indent-line|c-indent-multi-line-block|c-indent-new-comment-line|c-indent-one-line-block|c-indent-region|c-init-language-vars-for|c-initialize-builtin-style|c-initialize-cc-mode|c-inside-bracelist-p|c-int-to-char|c-intersect-lists|c-invalidate-find-decl-cache|c-invalidate-macro-cache|c-invalidate-state-cache-1|c-invalidate-state-cache|c-invalidate-sws-region-after|c-java-menu|c-just-after-func-arglist-p|c-keep-region-active|c-keyword-member|c-keyword-sym|c-lang-const|c-lang-defconst-eval-immediately|c-lang-defconst|c-lang-major-mode-is|c-langelem-2nd-pos|c-langelem-col|c-langelem-pos|c-langelem-sym|c-last-command-char|c-least-enclosing-brace|c-leave-cc-mode-mode|c-lineup-C-comments|c-lineup-ObjC-method-args-2|c-lineup-ObjC-method-args|c-lineup-ObjC-method-call-colons|c-lineup-ObjC-method-call|c-lineup-after-whitesmith-blocks|c-lineup-argcont-scan|c-lineup-argcont|c-lineup-arglist-close-under-paren|c-lineup-arglist-intro-after-paren|c-lineup-arglist-operators|c-lineup-arglist|c-lineup-assignments|c-lineup-cascaded-calls|c-lineup-close-paren|c-lineup-comment|c-lineup-cpp-define|c-lineup-dont-change|c-lineup-gcc-asm-reg|c-lineup-gnu-DEFUN-intro-cont|c-lineup-inexpr-block|c-lineup-java-inher|c-lineup-java-throws|c-lineup-knr-region-comment|c-lineup-math|c-lineup-multi-inher|c-lineup-respect-col-0|c-lineup-runin-statements|c-lineup-streamop|c-lineup-string-cont|c-lineup-template-args|c-lineup-topmost-intro-cont|c-lineup-whitesmith-in-block|c-list-found-types|c-literal-limits-fast|c-literal-limits|c-literal-type|c-looking-at-bos|c-looking-at-decl-block|c-looking-at-inexpr-block-backward|c-looking-at-inexpr-block|c-looking-at-non-alphnumspace|c-looking-at-special-brace-list|c-lookup-lists|c-macro-display-buffer|c-macro-expand|c-macro-expansion|c-macro-is-genuine-p|c-macro-vsemi-status-unknown-p|c-major-mode-is|c-make-bare-char-alt|c-make-font-lock-BO-decl-search-function|c-make-font-lock-context-search-function|c-make-font-lock-extra-types-blurb|c-make-font-lock-search-form|c-make-font-lock-search-function|c-make-inherited-keymap|c-make-inverse-face|c-make-keywords-re|c-make-macro-with-semi-re|c-make-styles-buffer-local|c-make-syntactic-matcher|c-mark-<-as-paren|c-mark->-as-paren|c-mark-function|c-mask-paragraph|c-mode-menu|c-mode-symbol|c-mode-var|c-mode|c-most-enclosing-brace|c-most-enclosing-decl-block|c-narrow-to-comment-innards|c-narrow-to-most-enclosing-decl-block|c-neutralize-CPP-line|c-neutralize-syntax-in-and-mark-CPP|c-newline-and-indent|c-next-single-property-change|c-objc-menu|c-on-identifier|c-one-line-string-p|c-outline-level|c-override-default-keywords|c-parse-state-1|c-parse-state-get-strategy|c-parse-state|c-partial-ws-p|c-pike-menu|c-point-syntax|c-point|c-populate-syntax-table|c-postprocess-file-styles|c-progress-fini|c-progress-init|c-progress-update|c-pull-open-brace|c-punctuation-in|c-put-c-type-property|c-put-char-property-fun|c-put-char-property|c-put-font-lock-face|c-put-font-lock-string-face|c-put-in-sws|c-put-is-sws|c-put-overlay|c-query-and-set-macro-start|c-query-macro-start|c-read-offset|c-real-parse-state|c-record-parse-state-state|c-record-ref-id|c-record-type-id|c-regexp-opt-depth|c-regexp-opt|c-region-is-active-p|c-remove-any-local-eval-or-mode-variables|c-remove-font-lock-face|c-remove-in-sws|c-remove-is-and-in-sws|c-remove-is-sws|c-remove-stale-state-cache-backwards|c-remove-stale-state-cache|c-renarrow-state-cache|c-replay-parse-state-state|c-restore-<->-as-parens|c-run-mode-hooks|c-safe-position|c-safe-scan-lists|c-safe|c-save-buffer-state|c-sc-parse-partial-sexp-no-category|c-sc-parse-partial-sexp|c-sc-scan-lists-no-category\\\\+1\\\\+1|c-sc-scan-lists-no-category\\\\+1-1|c-sc-scan-lists-no-category-1\\\\+1|c-sc-scan-lists-no-category-1-1|c-sc-scan-lists|c-scan-conditionals|c-scope-operator|c-search-backward-char-property|c-search-decl-header-end|c-search-forward-char-property|c-search-uplist-for-classkey|c-semi&comma-inside-parenlist|c-semi&comma-no-newlines-before-nonblanks|c-semi&comma-no-newlines-for-oneline-inliners|c-sentence-end|c-set-cpp-delimiters|c-set-fl-decl-start|c-set-offset|c-set-region-active|c-set-style-1|c-set-style|c-set-stylevar-fallback|c-setup-doc-comment-style|c-setup-filladapt|c-setup-paragraph-variables|c-shift-line-indentation|c-show-syntactic-information|c-simple-skip-symbol-backward|c-skip-comments-and-strings|c-skip-conditional|c-skip-ws-backward|c-skip-ws-forward|c-snug-1line-defun-close|c-snug-do-while|c-ssb-lit-begin|c-state-balance-parens-backwards|c-state-cache-after-top-paren|c-state-cache-init|c-state-cache-non-literal-place|c-state-cache-top-lparen|c-state-cache-top-paren|c-state-get-min-scan-pos|c-state-lit-beg|c-state-literal-at|c-state-mark-point-min-literal|c-state-maybe-marker|c-state-pp-to-literal|c-state-push-any-brace-pair|c-state-safe-place|c-state-semi-safe-place|c-submit-bug-report|c-subword-mode|c-suppress-<->-as-parens|c-syntactic-content|c-syntactic-end-of-macro|c-syntactic-information-on-region|c-syntactic-re-search-forward|c-syntactic-skip-backward|c-tentative-buffer-changes|c-tnt-chng-cleanup)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:c-tnt-chng-record-state|c-toggle-auto-hungry-state|c-toggle-auto-newline|c-toggle-auto-state|c-toggle-electric-state|c-toggle-hungry-state|c-toggle-parse-state-debug|c-toggle-syntactic-indentation|c-trim-found-types|c-try-one-liner|c-uncomment-out-cpps|c-unfind-coalesced-tokens|c-unfind-enclosing-token|c-unfind-type|c-unmark-<->-as-paren|c-up-conditional-with-else|c-up-conditional|c-up-list-backward|c-up-list-forward|c-update-modeline|c-valid-offset|c-version|c-vsemi-status-unknown-p|c-whack-state-after|c-whack-state-before|c-where-wrt-brace-construct|c-while-widening-to-decl-block|c-widen-to-enclosing-decl-scope|c-with-<->-as-parens-suppressed|c-with-all-but-one-cpps-commented-out|c-with-cpps-commented-out|c-with-syntax-table|caaaar|caaadr|caaar|caadar|caaddr|caadr|cadaar|cadadr|cadar|caddar|cadddr|caddr|cal-html-cursor-month|cal-html-cursor-year|cal-menu-context-mouse-menu|cal-menu-global-mouse-menu|cal-menu-holiday-window-suffix|cal-menu-set-date-title|cal-menu-x-popup-menu|cal-tex-cursor-day|cal-tex-cursor-filofax-2week|cal-tex-cursor-filofax-daily|cal-tex-cursor-filofax-week|cal-tex-cursor-filofax-year|cal-tex-cursor-month-landscape|cal-tex-cursor-month|cal-tex-cursor-week-iso|cal-tex-cursor-week-monday|cal-tex-cursor-week|cal-tex-cursor-week2-summary|cal-tex-cursor-week2|cal-tex-cursor-year-landscape|cal-tex-cursor-year|calc-alg-digit-entry|calc-alg-entry|calc-algebraic-entry|calc-align-stack-window|calc-auto-algebraic-entry|calc-big-or-small|calc-binary-op|calc-change-sign|calc-check-defines|calc-check-stack|calc-check-trail-aligned|calc-check-user-syntax|calc-clear-unread-commands|calc-count-lines|calc-create-buffer|calc-cursor-stack-index|calc-dispatch-help|calc-dispatch|calc-divide|calc-do-alg-entry|calc-do-calc-eval|calc-do-dispatch|calc-do-embedded-activate|calc-do-handle-whys|calc-do-quick-calc|calc-do-refresh|calc-do|calc-embedded-activate|calc-embedded|calc-enter-result|calc-enter|calc-eval|calc-get-stack-element|calc-grab-rectangle|calc-grab-region|calc-grab-sum-across|calc-grab-sum-down|calc-handle-whys|calc-help|calc-info-goto-node|calc-info-summary|calc-info|calc-inv|calc-keypad|calc-kill-stack-buffer|calc-last-args-stub|calc-left-divide|calc-match-user-syntax|calc-minibuffer-contains|calc-minibuffer-size|calc-minus|calc-missing-key|calc-mod|calc-mode-var-list-restore-default-values|calc-mode-var-list-restore-saved-values|calc-normalize|calc-num-prefix-name|calc-other-window|calc-over|calc-percent|calc-plus|calc-pop-above|calc-pop-push-list|calc-pop-push-record-list|calc-pop-stack|calc-pop|calc-power|calc-push-list|calc-quit|calc-read-key-sequence|calc-read-key|calc-record-list|calc-record-undo|calc-record-why|calc-record|calc-refresh|calc-renumber-stack|calc-report-bug|calc-roll-down-stack|calc-roll-down|calc-roll-up-stack|calc-roll-up|calc-same-interface|calc-select-buffer|calc-set-command-flag|calc-set-mode-line|calc-shift-Y-prefix-help|calc-slow-wrapper|calc-stack-size|calc-substack-height|calc-temp-minibuffer-message|calc-times|calc-top-list-n|calc-top-list|calc-top-n|calc-top|calc-trail-buffer|calc-trail-display|calc-trail-here|calc-transpose-lines|calc-tutorial|calc-unary-op|calc-undo|calc-unread-command|calc-user-invocation|calc-window-width|calc-with-default-simplification|calc-with-trail-buffer|calc-wrapper|calc-yank|calc|calcDigit-algebraic|calcDigit-backspace|calcDigit-edit|calcDigit-key|calcDigit-letter|calcDigit-nondigit|calcDigit-start|calcFunc-floor|calcFunc-inv|calcFunc-trunc|calculate-icon-indent|calculate-lisp-indent|calculate-tcl-indent|calculator-add-operators|calculator-backspace|calculator-clear-fragile|calculator-clear-saved|calculator-clear|calculator-close-paren|calculator-copy|calculator-dec\\\\/deg-mode|calculator-decimal|calculator-digit|calculator-displayer-next|calculator-displayer-prev|calculator-eng-display|calculator-enter|calculator-exp|calculator-expt|calculator-fact|calculator-funcall|calculator-get-display|calculator-get-register|calculator-groupize-number|calculator-help|calculator-last-input|calculator-menu|calculator-message|calculator-mode|calculator-need-3-lines|calculator-number-to-string|calculator-op-arity|calculator-op-or-exp|calculator-op-prec|calculator-op|calculator-open-paren|calculator-paste|calculator-push-curnum|calculator-put-value|calculator-quit|calculator-radix-input-mode|calculator-radix-mode|calculator-radix-output-mode|calculator-reduce-stack-once|calculator-reduce-stack|calculator-remove-zeros|calculator-repL|calculator-repR|calculator-reset|calculator-rotate-displayer-back|calculator-rotate-displayer|calculator-save-and-quit|calculator-save-on-list|calculator-saved-down|calculator-saved-move|calculator-saved-up|calculator-set-register|calculator-standard-displayer|calculator-string-to-number|calculator-truncate|calculator-update-display|calculator|calendar-abbrev-construct|calendar-absolute-from-gregorian|calendar-astro-date-string|calendar-astro-from-absolute|calendar-astro-goto-day-number|calendar-astro-print-day-number|calendar-astro-to-absolute|calendar-backward-day|calendar-backward-month|calendar-backward-week|calendar-backward-year|calendar-bahai-date-string|calendar-bahai-goto-date|calendar-bahai-mark-date-pattern|calendar-bahai-print-date|calendar-basic-setup|calendar-beginning-of-month|calendar-beginning-of-week|calendar-beginning-of-year|calendar-buffer-list|calendar-check-holidays|calendar-chinese-date-string|calendar-chinese-goto-date|calendar-chinese-print-date|calendar-column-to-segment|calendar-coptic-date-string|calendar-coptic-goto-date|calendar-coptic-print-date|calendar-count-days-region|calendar-current-date|calendar-cursor-holidays|calendar-cursor-to-date|calendar-cursor-to-nearest-date|calendar-cursor-to-visible-date|calendar-customized-p|calendar-date-compare|calendar-date-equal|calendar-date-is-valid-p|calendar-date-is-visible-p|calendar-date-string|calendar-day-header-construct|calendar-day-name|calendar-day-number|calendar-day-of-week|calendar-day-of-year-string|calendar-dayname-on-or-before|calendar-end-of-month|calendar-end-of-week|calendar-end-of-year|calendar-ensure-newline|calendar-ethiopic-date-string|calendar-ethiopic-goto-date|calendar-ethiopic-print-date|calendar-exchange-point-and-mark|calendar-exit|calendar-extract-day|calendar-extract-month|calendar-extract-year|calendar-forward-day|calendar-forward-month|calendar-forward-week|calendar-forward-year|calendar-frame-setup|calendar-french-date-string|calendar-french-goto-date|calendar-french-print-date|calendar-generate-month|calendar-generate-window|calendar-generate|calendar-goto-date|calendar-goto-day-of-year|calendar-goto-info-node|calendar-goto-today|calendar-gregorian-from-absolute|calendar-hebrew-date-string|calendar-hebrew-goto-date|calendar-hebrew-list-yahrzeits|calendar-hebrew-mark-date-pattern|calendar-hebrew-print-date|calendar-holiday-list|calendar-in-read-only-buffer|calendar-increment-month-cons|calendar-increment-month|calendar-insert-at-column|calendar-interval|calendar-islamic-date-string|calendar-islamic-goto-date|calendar-islamic-mark-date-pattern|calendar-islamic-print-date|calendar-iso-date-string|calendar-iso-from-absolute|calendar-iso-goto-date|calendar-iso-goto-week|calendar-iso-print-date|calendar-julian-date-string|calendar-julian-from-absolute|calendar-julian-goto-date|calendar-julian-print-date|calendar-last-day-of-month|calendar-leap-year-p|calendar-list-holidays|calendar-lunar-phases|calendar-make-alist|calendar-make-temp-face|calendar-mark-1|calendar-mark-complex|calendar-mark-date-pattern|calendar-mark-days-named|calendar-mark-holidays|calendar-mark-month|calendar-mark-today|calendar-mark-visible-date|calendar-mayan-date-string|calendar-mayan-goto-long-count-date|calendar-mayan-next-haab-date|calendar-mayan-next-round-date|calendar-mayan-next-tzolkin-date|calendar-mayan-previous-haab-date|calendar-mayan-previous-round-date|calendar-mayan-previous-tzolkin-date|calendar-mayan-print-date|calendar-mode-line-entry|calendar-mode|calendar-month-edges|calendar-month-name|calendar-mouse-view-diary-entries|calendar-mouse-view-other-diary-entries|calendar-move-to-column|calendar-nongregorian-visible-p|calendar-not-implemented|calendar-nth-named-absday|calendar-nth-named-day|calendar-other-dates|calendar-other-month|calendar-persian-date-string|calendar-persian-goto-date|calendar-persian-print-date|calendar-print-day-of-year|calendar-print-other-dates|calendar-read-date|calendar-read|calendar-recompute-layout-variables|calendar-redraw|calendar-scroll-left-three-months|calendar-scroll-left|calendar-scroll-right-three-months|calendar-scroll-right|calendar-scroll-toolkit-scroll|calendar-set-date-style|calendar-set-layout-variable|calendar-set-mark|calendar-set-mode-line|calendar-star-date|calendar-string-spread|calendar-sum|calendar-sunrise-sunset-month|calendar-sunrise-sunset|calendar-unmark|calendar-update-mode-line|calendar-week-end-day|calendar|call-last-kbd-macro|call-next-method|callf|callf2|cancel-edebug-on-entry|cancel-function-timers|cancel-kbd-macro-events|cancel-timer-internal|canlock-insert-header|canlock-verify|canonicalize-coding-system-name|canonically-space-region|capitalized-words-mode|car-less-than-car|case-table-get-table|case|cc-choose-style-for-mode|cc-eval-when-compile|cc-imenu-init|cc-imenu-java-build-type-args-regex|cc-imenu-objc-function|cc-imenu-objc-method-to-selector|cc-imenu-objc-remove-white-space|ccl-compile|ccl-dump|ccl-execute-on-string|ccl-execute-with-args|ccl-execute|ccl-program-p|cconv--analyze-function|cconv--analyze-use|cconv--convert-function|cconv--map-diff-elem|cconv--map-diff-set|cconv--map-diff|cconv--set-diff-map|cconv--set-diff|cconv-analyse-form|cconv-analyze-form|cconv-closure-convert|cconv-convert|cconv-warnings-only|cd-absolute|cd|cdaaar|cdaadr|cdaar|cdadar|cdaddr|cdadr|cddaar|cddadr|cddar|cdddar|cddddr|cdddr|cdl-get-file|cdl-put-region|cedet-version|ceiling\\\\*|center-line|center-paragraph|center-region|cfengine-auto-mode|cfengine-common-settings|cfengine-common-syntax|cfengine-fill-paragraph|cfengine-mode|cfengine2-beginning-of-defun|cfengine2-end-of-defun|cfengine2-indent-line|cfengine2-mode|cfengine2-outline-level|cfengine3--current-function|cfengine3-beginning-of-defun|cfengine3-clear-syntax-cache|cfengine3-completion-function|cfengine3-create-imenu-index|cfengine3-current-defun|cfengine3-documentation-function|cfengine3-end-of-defun|cfengine3-format-function-docstring|cfengine3-indent-line|cfengine3-make-syntax-cache|cfengine3-mode|change-class|change-log-beginning-of-defun|change-log-end-of-defun|change-log-fill-forward-paragraph|change-log-fill-parenthesized-list|change-log-find-file|change-log-get-method-definition-1|change-log-get-method-definition|change-log-goto-source-1|change-log-goto-source|change-log-indent|change-log-merge|change-log-mode|change-log-name|change-log-next-buffer|change-log-next-error|change-log-resolve-conflict|change-log-search-file-name|change-log-search-tag-name-1|change-log-search-tag-name|change-log-sortable-date-at|change-log-version-number-search|char-resolve-modifiers|char-valid-p|charset-bytes|charset-chars|charset-description|charset-dimension|charset-id-internal|charset-id|charset-info|charset-iso-final-char|charset-long-name|charset-short-name|chart-add-sequence|chart-axis-child-p|chart-axis-draw|chart-axis-list-p|chart-axis-names-child-p|chart-axis-names-list-p|chart-axis-names-p|chart-axis-names|chart-axis-p|chart-axis-range-child-p|chart-axis-range-list-p|chart-axis-range-p|chart-axis-range|chart-axis|chart-bar-child-p|chart-bar-list-p|chart-bar-p|chart-bar-quickie|chart-bar|chart-child-p|chart-deface-rectangle|chart-display-label|chart-draw-axis|chart-draw-data|chart-draw-line|chart-draw-title|chart-draw|chart-emacs-lists|chart-emacs-storage|chart-file-count|chart-goto-xy|chart-list-p|chart-mode|chart-new-buffer|chart-p|chart-rmail-from|chart-sequece-child-p|chart-sequece-list-p|chart-sequece-p|chart-sequece|chart-size-in-dir|chart-sort-matchlist|chart-sort|chart-space-usage|chart-test-it-all|chart-translate-namezone|chart-translate-xpos|chart-translate-ypos|chart-trim|chart-zap-chars|chart|check-ccl-program|check-completion-length|check-declare-directory|check-declare-errmsg|check-declare-file|check-declare-files|check-declare-locate|check-declare-scan|check-declare-sort|check-declare-verify|check-declare-warn)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:check-face|check-ispell-version|check-parens|check-type|checkdoc-autofix-ask-replace|checkdoc-buffer-label|checkdoc-char=|checkdoc-comments|checkdoc-continue|checkdoc-create-common-verbs-regexp|checkdoc-create-error|checkdoc-current-buffer|checkdoc-defun-info|checkdoc-defun|checkdoc-delete-overlay|checkdoc-display-status-buffer|checkdoc-error-end|checkdoc-error-start|checkdoc-error-text|checkdoc-error-unfixable|checkdoc-error|checkdoc-eval-current-buffer|checkdoc-eval-defun|checkdoc-file-comments-engine|checkdoc-in-example-string-p|checkdoc-in-sample-code-p|checkdoc-interactive-ispell-loop|checkdoc-interactive-loop|checkdoc-interactive|checkdoc-ispell-comments|checkdoc-ispell-continue|checkdoc-ispell-current-buffer|checkdoc-ispell-defun|checkdoc-ispell-docstring-engine|checkdoc-ispell-init|checkdoc-ispell-interactive|checkdoc-ispell-message-interactive|checkdoc-ispell-message-text|checkdoc-ispell-start|checkdoc-ispell|checkdoc-list-of-strings-p|checkdoc-make-overlay|checkdoc-message-interactive-ispell-loop|checkdoc-message-interactive|checkdoc-message-text-engine|checkdoc-message-text-next-string|checkdoc-message-text-search|checkdoc-message-text|checkdoc-mode-line-update|checkdoc-next-docstring|checkdoc-next-error|checkdoc-next-message-error|checkdoc-output-mode|checkdoc-outside-major-sexp|checkdoc-overlay-end|checkdoc-overlay-put|checkdoc-overlay-start|checkdoc-proper-noun-region-engine|checkdoc-recursive-edit|checkdoc-rogue-space-check-engine|checkdoc-rogue-spaces|checkdoc-run-hooks|checkdoc-sentencespace-region-engine|checkdoc-show-diagnostics|checkdoc-start-section|checkdoc-start|checkdoc-this-string-valid-engine|checkdoc-this-string-valid|checkdoc-y-or-n-p|checkdoc|child-of-class-p|chmod|choose-completion-delete-max-match|choose-completion-guess-base-position|choose-completion-string|choose-completion|cl--adjoin|cl--arglist-args|cl--block-throw--cmacro|cl--block-throw|cl--block-wrapper--cmacro|cl--block-wrapper|cl--check-key|cl--check-match|cl--check-test-nokey|cl--check-test|cl--compile-time-too|cl--compiler-macro-adjoin|cl--compiler-macro-assoc|cl--compiler-macro-cXXr|cl--compiler-macro-get|cl--compiler-macro-list\\\\*|cl--compiler-macro-member|cl--compiler-macro-typep|cl--compiling-file|cl--const-expr-p|cl--const-expr-val|cl--defalias|cl--defsubst-expand|cl--delete-duplicates|cl--do-arglist|cl--do-prettyprint|cl--do-proclaim|cl--do-remf|cl--do-subst|cl--expand-do-loop|cl--expr-contains-any|cl--expr-contains|cl--expr-depends-p|cl--finite-do|cl--function-convert|cl--gv-adapt|cl--labels-convert|cl--letf|cl--loop-build-ands|cl--loop-handle-accum|cl--loop-let|cl--loop-set-iterator-function|cl--macroexp-fboundp|cl--make-type-test|cl--make-usage-args|cl--make-usage-var|cl--map-intervals|cl--map-keymap-recursively|cl--map-overlays|cl--mapcar-many|cl--nsublis-rec|cl--parse-loop-clause|cl--parsing-keywords|cl--pass-args-to-cl-declare|cl--pop2|cl--position|cl--random-time|cl--safe-expr-p|cl--set-buffer-substring|cl--set-frame-visible-p|cl--set-getf|cl--set-substring|cl--simple-expr-p|cl--simple-exprs-p|cl--sm-macroexpand|cl--struct-epg-context-p--cmacro|cl--struct-epg-context-p|cl--struct-epg-data-p--cmacro|cl--struct-epg-data-p|cl--struct-epg-import-result-p--cmacro|cl--struct-epg-import-result-p|cl--struct-epg-import-status-p--cmacro|cl--struct-epg-import-status-p|cl--struct-epg-key-p--cmacro|cl--struct-epg-key-p|cl--struct-epg-key-signature-p--cmacro|cl--struct-epg-key-signature-p|cl--struct-epg-new-signature-p--cmacro|cl--struct-epg-new-signature-p|cl--struct-epg-sig-notation-p--cmacro|cl--struct-epg-sig-notation-p|cl--struct-epg-signature-p--cmacro|cl--struct-epg-signature-p|cl--struct-epg-sub-key-p--cmacro|cl--struct-epg-sub-key-p|cl--struct-epg-user-id-p--cmacro|cl--struct-epg-user-id-p|cl--sublis-rec|cl--sublis|cl--transform-lambda|cl--tree-equal-rec|cl--unused-var-p|cl--wrap-in-nil-block|cl-caaaar|cl-caaadr|cl-caaar|cl-caadar|cl-caaddr|cl-caadr|cl-cadaar|cl-cadadr|cl-cadar|cl-caddar|cl-cadddr|cl-cdaaar|cl-cdaadr|cl-cdaar|cl-cdadar|cl-cdaddr|cl-cdadr|cl-cddaar|cl-cddadr|cl-cddar|cl-cdddar|cl-cddddr|cl-cdddr|cl-clrhash|cl-copy-seq|cl-copy-tree|cl-digit-char-p|cl-eighth|cl-fifth|cl-flet\\\\*|cl-floatp-safe|cl-fourth|cl-fresh-line|cl-gethash|cl-hash-table-count|cl-hash-table-p|cl-maclisp-member|cl-macroexpand-all|cl-macroexpand|cl-make-hash-table|cl-map-extents|cl-map-intervals|cl-map-keymap-recursively|cl-map-keymap|cl-maphash|cl-multiple-value-apply|cl-multiple-value-call|cl-multiple-value-list|cl-ninth|cl-not-hash-table|cl-nreconc|cl-nth-value|cl-parse-integer|cl-prettyprint|cl-puthash|cl-remhash|cl-revappend|cl-second|cl-set-getf|cl-seventh|cl-signum|cl-sixth|cl-struct-sequence-type|cl-struct-setf-expander|cl-struct-slot-info|cl-struct-slot-offset|cl-struct-slot-value--cmacro|cl-struct-slot-value|cl-svref|cl-tenth|cl-third|cl-unload-function|cl-values-list|cl-values|class-abstract-p|class-children|class-constructor|class-direct-subclasses|class-direct-superclasses|class-method-invocation-order|class-name|class-of|class-option-assoc|class-option|class-p|class-parent|class-parents|class-precedence-list|class-slot-initarg|class-v|clean-buffer-list-delay|clean-buffer-list|clear-all-completions|clear-buffer-auto-save-failure|clear-charset-maps|clear-face-cache|clear-font-cache|clear-rectangle-line|clear-rectangle|clipboard-kill-region|clipboard-kill-ring-save|clipboard-yank|clone-buffer|clone-indirect-buffer-other-window|clone-process|clone|close-display-connection|close-font|close-rectangle|cmpl-coerce-string-case|cmpl-hours-since-origin|cmpl-merge-string-cases|cmpl-prefix-entry-head|cmpl-prefix-entry-tail|cmpl-string-case-type|coding-system-base|coding-system-category|coding-system-doc-string|coding-system-eol-type-mnemonic|coding-system-equal|coding-system-from-name|coding-system-lessp|coding-system-mnemonic|coding-system-plist|coding-system-post-read-conversion|coding-system-pre-write-conversion|coding-system-put|coding-system-translation-table-for-decode|coding-system-translation-table-for-encode|coding-system-type|coerce|color-cie-de2000|color-clamp|color-complement-hex|color-complement|color-darken-hsl|color-darken-name|color-desaturate-hsl|color-desaturate-name|color-distance|color-gradient|color-hsl-to-rgb|color-hue-to-rgb|color-lab-to-srgb|color-lab-to-xyz|color-lighten-hsl|color-lighten-name|color-name-to-rgb|color-rgb-to-hex|color-rgb-to-hsl|color-rgb-to-hsv|color-saturate-hsl|color-saturate-name|color-srgb-to-lab|color-srgb-to-xyz|color-xyz-to-lab|color-xyz-to-srgb|column-number-mode|combine-after-change-execute|comint--complete-file-name-data|comint--match-partial-filename|comint--requote-argument|comint--unquote&expand-filename|comint--unquote&requote-argument|comint--unquote-argument|comint-accumulate|comint-add-to-input-history|comint-adjust-point|comint-adjust-window-point|comint-after-pmark-p|comint-append-output-to-file|comint-args|comint-arguments|comint-backward-matching-input|comint-bol-or-process-mark|comint-bol|comint-c-a-p-replace-by-expanded-history|comint-carriage-motion|comint-check-proc|comint-check-source|comint-completion-at-point|comint-completion-file-name-table|comint-continue-subjob|comint-copy-old-input|comint-delchar-or-maybe-eof|comint-delete-input|comint-delete-output|comint-delim-arg|comint-directory|comint-dynamic-complete-as-filename|comint-dynamic-complete-filename|comint-dynamic-complete|comint-dynamic-list-completions|comint-dynamic-list-filename-completions|comint-dynamic-list-input-ring-select|comint-dynamic-list-input-ring|comint-dynamic-simple-complete|comint-exec-1|comint-exec|comint-extract-string|comint-filename-completion|comint-forward-matching-input|comint-get-next-from-history|comint-get-old-input-default|comint-get-source|comint-goto-input|comint-goto-process-mark|comint-history-isearch-backward-regexp|comint-history-isearch-backward|comint-history-isearch-end|comint-history-isearch-message|comint-history-isearch-pop-state|comint-history-isearch-push-state|comint-history-isearch-search|comint-history-isearch-setup|comint-history-isearch-wrap|comint-how-many-region|comint-insert-input|comint-insert-previous-argument|comint-interrupt-subjob|comint-kill-input|comint-kill-region|comint-kill-subjob|comint-kill-whole-line|comint-line-beginning-position|comint-magic-space|comint-match-partial-filename|comint-mode|comint-next-input|comint-next-matching-input-from-input|comint-next-matching-input|comint-next-prompt|comint-output-filter|comint-postoutput-scroll-to-bottom|comint-preinput-scroll-to-bottom|comint-previous-input-string|comint-previous-input|comint-previous-matching-input-from-input|comint-previous-matching-input-string-position|comint-previous-matching-input-string|comint-previous-matching-input|comint-previous-prompt|comint-proc-query|comint-quit-subjob|comint-quote-filename|comint-read-input-ring|comint-read-noecho|comint-redirect-cleanup|comint-redirect-filter|comint-redirect-preoutput-filter|comint-redirect-remove-redirection|comint-redirect-results-list-from-process|comint-redirect-results-list|comint-redirect-send-command-to-process|comint-redirect-send-command|comint-redirect-setup|comint-regexp-arg|comint-replace-by-expanded-filename|comint-replace-by-expanded-history-before-point|comint-replace-by-expanded-history|comint-restore-input|comint-run|comint-search-arg|comint-search-start|comint-send-eof|comint-send-input|comint-send-region|comint-send-string|comint-set-process-mark|comint-show-maximum-output|comint-show-output|comint-simple-send|comint-skip-input|comint-skip-prompt|comint-snapshot-last-prompt|comint-source-default|comint-stop-subjob|comint-strip-ctrl-m|comint-substitute-in-file-name|comint-truncate-buffer|comint-unquote-filename|comint-update-fence|comint-watch-for-password-prompt|comint-within-quotes|comint-word|comint-write-input-ring|comint-write-output|command-apropos|command-error-default-function|command-history-mode|command-history-repeat|command-line-1|command-line-normalize-file-name|comment-add|comment-beginning|comment-box|comment-choose-indent|comment-dwim|comment-enter-backward|comment-forward|comment-indent-default|comment-indent-new-line|comment-indent|comment-kill|comment-make-extra-lines|comment-normalize-vars|comment-only-p|comment-or-uncomment-region|comment-padleft|comment-padright|comment-quote-nested|comment-quote-re|comment-region-default|comment-region-internal|comment-region|comment-search-backward|comment-search-forward|comment-set-column|comment-string-reverse|comment-string-strip|comment-valid-prefix-p|comment-with-narrowing|common-lisp-indent-function|common-lisp-mode|compare-windows-dehighlight|compare-windows-get-next-window|compare-windows-get-recent-window|compare-windows-highlight|compare-windows-skip-whitespace|compare-windows-sync-default-function|compare-windows-sync-regexp|compare-windows|compilation--compat-error-properties|compilation--compat-parse-errors|compilation--ensure-parse|compilation--file-struct->file-spec|compilation--file-struct->formats|compilation--file-struct->loc-tree|compilation--flush-directory-cache|compilation--flush-file-structure|compilation--flush-parse|compilation--loc->col|compilation--loc->file-struct|compilation--loc->line|compilation--loc->marker|compilation--loc->visited|compilation--make-cdrloc|compilation--make-file-struct|compilation--make-message--cmacro|compilation--make-message|compilation--message->end-loc--cmacro|compilation--message->end-loc|compilation--message->loc--cmacro|compilation--message->loc|compilation--message->type--cmacro|compilation--message->type|compilation--message-p--cmacro|compilation--message-p|compilation--parse-region|compilation--previous-directory|compilation--put-prop|compilation--remove-properties|compilation--unsetup|compilation-auto-jump|compilation-buffer-internal-p|compilation-buffer-name|compilation-buffer-p|compilation-button-map|compilation-directory-properties|compilation-display-error|compilation-error-properties|compilation-face|compilation-fake-loc|compilation-filter|compilation-find-buffer|compilation-find-file|compilation-forget-errors|compilation-get-file-structure|compilation-goto-locus-delete-o|compilation-goto-locus|compilation-handle-exit|compilation-internal-error-properties|compilation-loop|compilation-minor-mode|compilation-mode-font-lock-keywords|compilation-mode|compilation-move-to-column|compilation-next-error-function|compilation-next-error|compilation-next-file|compilation-next-single-property-change)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:compilation-parse-errors|compilation-previous-error|compilation-previous-file|compilation-read-command|compilation-revert-buffer|compilation-sentinel|compilation-set-skip-threshold|compilation-set-window-height|compilation-set-window|compilation-setup|compilation-shell-minor-mode|compilation-start|compile-goto-error|compile-mouse-goto-error|compile|compiler-macroexpand|complete-in-turn|complete-symbol|complete-tag|complete-with-action|complete|completing-read-default|completing-read-multiple|completion--cache-all-sorted-completions|completion--capf-wrapper|completion--common-suffix|completion--complete-and-exit|completion--cycle-threshold|completion--do-completion|completion--done|completion--embedded-envvar-table|completion--field-metadata|completion--file-name-table|completion--flush-all-sorted-completions|completion--in-region-1|completion--in-region|completion--insert-strings|completion--make-envvar-table|completion--merge-suffix|completion--message|completion--metadata|completion--nth-completion|completion--post-self-insert|completion--replace|completion--sifn-requote|completion--some|completion--string-equal-p|completion--styles|completion--try-word-completion|completion--twq-all|completion--twq-try|completion-all-completions|completion-all-sorted-completions|completion-backup-filename|completion-basic--pattern|completion-basic-all-completions|completion-basic-try-completion|completion-before-command|completion-c-mode-hook|completion-complete-and-exit|completion-def-wrapper|completion-emacs21-all-completions|completion-emacs21-try-completion|completion-emacs22-all-completions|completion-emacs22-try-completion|completion-file-name-table|completion-find-file-hook|completion-help-at-point|completion-hilit-commonality|completion-in-region--postch|completion-in-region--single-word|completion-in-region-mode|completion-initialize|completion-initials-all-completions|completion-initials-expand|completion-initials-try-completion|completion-kill-region|completion-last-use-time|completion-lisp-mode-hook|completion-list-mode-finish|completion-list-mode|completion-metadata-get|completion-metadata|completion-mode|completion-num-uses|completion-pcm--all-completions|completion-pcm--filename-try-filter|completion-pcm--find-all-completions|completion-pcm--hilit-commonality|completion-pcm--merge-completions|completion-pcm--merge-try|completion-pcm--optimize-pattern|completion-pcm--pattern->regex|completion-pcm--pattern->string|completion-pcm--pattern-trivial-p|completion-pcm--prepare-delim-re|completion-pcm--string->pattern|completion-pcm-all-completions|completion-pcm-try-completion|completion-search-next|completion-search-peek|completion-search-reset-1|completion-search-reset|completion-setup-fortran-mode|completion-setup-function|completion-source|completion-string|completion-substring--all-completions|completion-substring-all-completions|completion-substring-try-completion|completion-table-with-context|completion-try-completion|compose-chars-after|compose-chars|compose-glyph-string-relative|compose-glyph-string|compose-gstring-for-dotted-circle|compose-gstring-for-graphic|compose-gstring-for-terminal|compose-gstring-for-variation-glyph|compose-last-chars|compose-mail-other-frame|compose-mail-other-window|compose-mail|compose-region-internal|compose-region|compose-string-internal|compose-string|composition-get-gstring|concatenate|condition-case-no-debug|conf-align-assignments|conf-colon-mode|conf-javaprop-mode|conf-mode-initialize|conf-mode-maybe|conf-mode|conf-outline-level|conf-ppd-mode|conf-quote-normal|conf-space-keywords|conf-space-mode-internal|conf-space-mode|conf-unix-mode|conf-windows-mode|conf-xdefaults-mode|confirm-nonexistent-file-or-buffer|constructor|convert-define-charset-argument|cookie-apropos|cookie-check-file|cookie-doctor|cookie-insert|cookie-read|cookie-shuffle-vector|cookie-snarf|cookie|cookie1|copy-case-table|copy-cvs-flags|copy-cvs-tag|copy-dir-locals-to-file-locals-prop-line|copy-dir-locals-to-file-locals|copy-ebrowse-bs|copy-ebrowse-cs|copy-ebrowse-hs|copy-ebrowse-ms|copy-ebrowse-position|copy-ebrowse-ts|copy-erc-channel-user|copy-erc-response|copy-erc-server-user|copy-ert--ewoc-entry|copy-ert--stats|copy-ert--test-execution-info|copy-ert-test-aborted-with-non-local-exit|copy-ert-test-failed|copy-ert-test-passed|copy-ert-test-quit|copy-ert-test-result-with-condition|copy-ert-test-result|copy-ert-test-skipped|copy-ert-test|copy-ewoc--node|copy-ewoc|copy-face|copy-file-locals-to-dir-locals|copy-flymake-ler|copy-gdb-handler|copy-gdb-table|copy-htmlize-fstruct|copy-js--js-handle|copy-js--pitem|copy-list|copy-package--bi-desc|copy-package-desc|copy-profiler-calltree|copy-profiler-profile|copy-rectangle-as-kill|copy-rectangle-to-register|copy-seq|copy-ses--locprn|copy-sgml-tag|copy-soap-array-type|copy-soap-basic-type|copy-soap-binding|copy-soap-bound-operation|copy-soap-element|copy-soap-message|copy-soap-namespace-link|copy-soap-namespace|copy-soap-operation|copy-soap-port-type|copy-soap-port|copy-soap-sequence-element|copy-soap-sequence-type|copy-soap-simple-type|copy-soap-wsdl|copy-tar-header|copy-to-buffer|copy-to-register|copy-url-queue|copyright-find-copyright|copyright-find-end|copyright-fix-years|copyright-limit|copyright-offset-too-large-p|copyright-re-search|copyright-start-point|copyright-update-directory|copyright-update-year|copyright-update|copyright|count-if-not|count-if|count-lines-page|count-lines-region|count-matches|count-text-lines|count-trailing-whitespace-region|count-windows|count-words--buffer-message|count-words--message|count-words-region|count|cperl-1\\\\+|cperl-1-|cperl-add-tags-recurse-noxs-fullpath|cperl-add-tags-recurse-noxs|cperl-add-tags-recurse|cperl-after-block-and-statement-beg|cperl-after-block-p|cperl-after-change-function|cperl-after-expr-p|cperl-after-label|cperl-after-sub-regexp|cperl-at-end-of-expr|cperl-backward-to-noncomment|cperl-backward-to-start-of-continued-exp|cperl-backward-to-start-of-expr|cperl-beautify-level|cperl-beautify-regexp-piece|cperl-beautify-regexp|cperl-beginning-of-property|cperl-block-p|cperl-build-manpage|cperl-cached-syntax-table|cperl-calculate-indent-within-comment|cperl-calculate-indent|cperl-check-syntax|cperl-choose-color|cperl-comment-indent|cperl-comment-region|cperl-commentify|cperl-contract-level|cperl-contract-levels|cperl-db|cperl-define-key|cperl-delay-update-hook|cperl-describe-perl-symbol|cperl-do-auto-fill|cperl-electric-backspace|cperl-electric-brace|cperl-electric-else|cperl-electric-keyword|cperl-electric-lbrace|cperl-electric-paren|cperl-electric-pod|cperl-electric-rparen|cperl-electric-semi|cperl-electric-terminator|cperl-emulate-lazy-lock|cperl-enable-font-lock|cperl-ensure-newlines|cperl-etags|cperl-facemenu-add-face-function|cperl-fill-paragraph|cperl-find-bad-style|cperl-find-pods-heres-region|cperl-find-pods-heres|cperl-find-sub-attrs|cperl-find-tags|cperl-fix-line-spacing|cperl-font-lock-fontify-region-function|cperl-font-lock-unfontify-region-function|cperl-fontify-syntaxically|cperl-fontify-update-bad|cperl-fontify-update|cperl-forward-group-in-re|cperl-forward-re|cperl-forward-to-end-of-expr|cperl-get-help-defer|cperl-get-help|cperl-get-here-doc-region|cperl-get-state|cperl-here-doc-spell|cperl-highlight-charclass|cperl-imenu--create-perl-index|cperl-imenu-addback|cperl-imenu-info-imenu-name|cperl-imenu-info-imenu-search|cperl-imenu-name-and-position|cperl-imenu-on-info|cperl-indent-command|cperl-indent-exp|cperl-indent-for-comment|cperl-indent-line|cperl-indent-region|cperl-info-buffer|cperl-info-on-command|cperl-info-on-current-command|cperl-init-faces-weak|cperl-init-faces|cperl-inside-parens-p|cperl-invert-if-unless-modifiers|cperl-invert-if-unless|cperl-lazy-hook|cperl-lazy-install|cperl-lazy-unstall|cperl-linefeed|cperl-lineup|cperl-list-fold|cperl-load-font-lock-keywords-1|cperl-load-font-lock-keywords-2|cperl-load-font-lock-keywords|cperl-look-at-leading-count|cperl-make-indent|cperl-make-regexp-x|cperl-map-pods-heres|cperl-mark-active|cperl-menu-to-keymap|cperl-menu|cperl-mode|cperl-modify-syntax-type|cperl-msb-fix|cperl-narrow-to-here-doc|cperl-next-bad-style|cperl-next-interpolated-REx-0|cperl-next-interpolated-REx-1|cperl-next-interpolated-REx|cperl-outline-level|cperl-perldoc-at-point|cperl-perldoc|cperl-pod-spell|cperl-pod-to-manpage|cperl-pod2man-build-command|cperl-postpone-fontification|cperl-protect-defun-start|cperl-ps-print-init|cperl-ps-print|cperl-put-do-not-fontify|cperl-putback-char|cperl-regext-to-level-start|cperl-select-this-pod-or-here-doc|cperl-set-style-back|cperl-set-style|cperl-setup-tmp-buf|cperl-sniff-for-indent|cperl-switch-to-doc-buffer|cperl-tags-hier-fill|cperl-tags-hier-init|cperl-tags-treeify|cperl-time-fontification|cperl-to-comment-or-eol|cperl-toggle-abbrev|cperl-toggle-auto-newline|cperl-toggle-autohelp|cperl-toggle-construct-fix|cperl-toggle-electric|cperl-toggle-set-debug-unwind|cperl-uncomment-region|cperl-unwind-to-safe|cperl-update-syntaxification|cperl-use-region-p|cperl-val|cperl-windowed-init|cperl-word-at-point-hard|cperl-word-at-point|cperl-write-tags|cperl-xsub-scan|cpp-choose-branch|cpp-choose-default-face|cpp-choose-face|cpp-choose-symbol|cpp-create-bg-face|cpp-edit-apply|cpp-edit-background|cpp-edit-false|cpp-edit-home|cpp-edit-known|cpp-edit-list-entry-get-or-create|cpp-edit-load|cpp-edit-mode|cpp-edit-reset|cpp-edit-save|cpp-edit-toggle-known|cpp-edit-toggle-unknown|cpp-edit-true|cpp-edit-unknown|cpp-edit-write|cpp-face-name|cpp-grow-overlay|cpp-highlight-buffer|cpp-make-button|cpp-make-known-overlay|cpp-make-overlay-hidden|cpp-make-overlay-read-only|cpp-make-overlay-sticky|cpp-make-unknown-overlay|cpp-parse-close|cpp-parse-edit|cpp-parse-error|cpp-parse-open|cpp-parse-reset|cpp-progress-message|cpp-push-button|cpp-signal-read-only|create-default-fontset|create-fontset-from-ascii-font|create-fontset-from-x-resource|create-glyph|crm--choose-completion-string|crm--collection-fn|crm--completion-command|crm--current-element|crm-complete-and-exit|crm-complete-word|crm-complete|crm-completion-help|crm-minibuffer-complete-and-exit|crm-minibuffer-complete|crm-minibuffer-completion-help|css--font-lock-keywords|css-current-defun-name|css-extract-keyword-list|css-extract-parse-val-grammar|css-extract-props-and-vals|css-fill-paragraph|css-mode|css-smie--backward-token|css-smie--forward-token|css-smie-rules|ctext-non-standard-encodings-table|ctext-post-read-conversion|ctext-pre-write-conversion|ctl-x-4-prefix|ctl-x-5-prefix|ctl-x-ctl-p-prefix|cua--M\\\\/H-key|cua--deactivate|cua--fallback|cua--filter-buffer-noprops|cua--init-keymaps|cua--keep-active|cua--post-command-handler-1|cua--post-command-handler|cua--pre-command-handler-1|cua--pre-command-handler|cua--prefix-arg|cua--prefix-copy-handler|cua--prefix-cut-handler|cua--prefix-override-handler|cua--prefix-override-replay|cua--prefix-override-timeout|cua--prefix-repeat-handler|cua--select-keymaps|cua--self-insert-char-p|cua--shift-control-c-prefix|cua--shift-control-prefix|cua--shift-control-x-prefix|cua--update-indications|cua-cancel|cua-copy-region|cua-cut-region|cua-debug|cua-delete-region|cua-exchange-point-and-mark|cua-help-for-region|cua-mode|cua-paste-pop|cua-paste|cua-pop-to-last-change|cua-rectangle-mark-mode|cua-scroll-down|cua-scroll-up|cua-selection-mode|cua-set-mark|cua-set-rectangle-mark|cua-toggle-global-mark|current-line|custom--frame-color-default|custom--initialize-widget-variables|custom--sort-vars-1|custom--sort-vars|custom-add-dependencies|custom-add-link|custom-add-load|custom-add-option|custom-add-package-version|custom-add-parent-links|custom-add-see-also|custom-add-to-group|custom-add-version|custom-autoload|custom-available-themes|custom-browse-face-tag-action|custom-browse-group-tag-action|custom-browse-insert-prefix|custom-browse-variable-tag-action|custom-browse-visibility-action|custom-buffer-create-internal|custom-buffer-create-other-window|custom-buffer-create|custom-check-theme|custom-command-apply|custom-comment-create|custom-comment-hide|custom-comment-invisible-p|custom-comment-show|custom-convert-widget|custom-current-group|custom-declare-face|custom-declare-group|custom-declare-theme|custom-declare-variable|custom-face-action|custom-face-attributes-get|custom-face-edit-activate|custom-face-edit-all|custom-face-edit-attribute-tag|custom-face-edit-convert-widget)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:custom-face-edit-deactivate|custom-face-edit-delete|custom-face-edit-fix-value|custom-face-edit-lisp|custom-face-edit-selected|custom-face-edit-value-create|custom-face-edit-value-visibility-action|custom-face-get-current-spec|custom-face-mark-to-reset-standard|custom-face-mark-to-save|custom-face-menu-create|custom-face-reset-saved|custom-face-reset-standard|custom-face-save-command|custom-face-save|custom-face-set|custom-face-standard-value|custom-face-state-set-and-redraw|custom-face-state-set|custom-face-state|custom-face-value-create|custom-face-widget-to-spec|custom-facep|custom-file|custom-filter-face-spec|custom-fix-face-spec|custom-get-fresh-buffer|custom-group-action|custom-group-link-action|custom-group-mark-to-reset-standard|custom-group-mark-to-save|custom-group-members|custom-group-menu-create|custom-group-of-mode|custom-group-reset-current|custom-group-reset-saved|custom-group-reset-standard|custom-group-sample-face-get|custom-group-save|custom-group-set|custom-group-state-set-and-redraw|custom-group-state-update|custom-group-value-create|custom-group-visibility-create|custom-guess-type|custom-handle-all-keywords|custom-handle-keyword|custom-hook-convert-widget|custom-initialize-changed|custom-initialize-default|custom-initialize-reset|custom-initialize-set|custom-load-symbol|custom-load-widget|custom-magic-reset|custom-magic-value-create|custom-make-theme-feature|custom-menu-create|custom-menu-filter|custom-mode|custom-note-var-changed|custom-notify|custom-post-filter-face-spec|custom-pre-filter-face-spec|custom-prefix-add|custom-prompt-customize-unsaved-options|custom-prompt-variable|custom-push-theme|custom-put-if-not|custom-quote|custom-redraw-magic|custom-redraw|custom-reset-faces|custom-reset-standard-save-and-update|custom-reset-variables|custom-reset|custom-save-all|custom-save-delete|custom-save-faces|custom-save-variables|custom-set-default|custom-set-minor-mode|custom-show|custom-sort-items|custom-split-regexp-maybe|custom-state-buffer-message|custom-tag-action|custom-tag-mouse-down-action|custom-theme--load-path|custom-theme-enabled-p|custom-theme-load-confirm|custom-theme-name-valid-p|custom-theme-recalc-face|custom-theme-recalc-variable|custom-theme-reset-faces|custom-theme-reset-variables|custom-theme-visit-theme|custom-toggle-hide-face|custom-toggle-hide-variable|custom-toggle-hide|custom-toggle-parent|custom-unlispify-menu-entry|custom-unlispify-tag-name|custom-unloaded-symbol-p|custom-unloaded-widget-p|custom-unsaved-options|custom-variable-action|custom-variable-backup-value|custom-variable-documentation|custom-variable-edit-lisp|custom-variable-edit|custom-variable-mark-to-reset-standard|custom-variable-mark-to-save|custom-variable-menu-create|custom-variable-prompt|custom-variable-reset-backup|custom-variable-reset-saved|custom-variable-reset-standard|custom-variable-save|custom-variable-set|custom-variable-standard-value|custom-variable-state-set-and-redraw|custom-variable-state-set|custom-variable-state|custom-variable-theme-value|custom-variable-type|custom-variable-value-create|customize-apropos-faces|customize-apropos-groups|customize-apropos-options|customize-apropos|customize-browse|customize-changed-options|customize-changed|customize-create-theme|customize-customized|customize-face-other-window|customize-face|customize-group-other-window|customize-group|customize-mark-as-set|customize-mark-to-save|customize-menu-create|customize-mode|customize-object|customize-option-other-window|customize-option|customize-package-emacs-version|customize-project|customize-push-and-save|customize-read-group|customize-rogue|customize-save-customized|customize-save-variable|customize-saved|customize-set-value|customize-set-variable|customize-target|customize-themes|customize-unsaved|customize-variable-other-window|customize-variable|customize-version-lessp|customize|cvs-add-branch-prefix|cvs-add-face|cvs-add-secondary-branch-prefix|cvs-addto-collection|cvs-append-to-ignore|cvs-append|cvs-applicable-p|cvs-buffer-check|cvs-buffer-p|cvs-bury-buffer|cvs-car|cvs-cdr|cvs-change-cvsroot|cvs-check-fileinfo|cvs-checkout|cvs-cleanup-collection|cvs-cleanup-removed|cvs-cmd-do|cvs-commit-filelist|cvs-commit-minor-wrap|cvs-create-fileinfo|cvs-defaults|cvs-diff-backup-extractor|cvs-dir-member-p|cvs-dired-noselect|cvs-do-commit|cvs-do-edit-log|cvs-do-match|cvs-do-removal|cvs-ediff-diff|cvs-ediff-exit-hook|cvs-ediff-merge|cvs-ediff-startup-hook|cvs-edit-log-filelist|cvs-edit-log-minor-wrap|cvs-edit-log-text-at-point|cvs-emerge-diff|cvs-emerge-merge|cvs-enabledp|cvs-every|cvs-examine|cvs-execute-single-file-list|cvs-execute-single-file|cvs-expand-dir-name|cvs-file-to-string|cvs-fileinfo->backup-file|cvs-fileinfo->base-rev--cmacro|cvs-fileinfo->base-rev|cvs-fileinfo->dir--cmacro|cvs-fileinfo->dir|cvs-fileinfo->file--cmacro|cvs-fileinfo->file|cvs-fileinfo->full-log--cmacro|cvs-fileinfo->full-log|cvs-fileinfo->full-name|cvs-fileinfo->full-path|cvs-fileinfo->head-rev--cmacro|cvs-fileinfo->head-rev|cvs-fileinfo->marked--cmacro|cvs-fileinfo->marked|cvs-fileinfo->merge--cmacro|cvs-fileinfo->merge|cvs-fileinfo->pp-name|cvs-fileinfo->subtype--cmacro|cvs-fileinfo->subtype|cvs-fileinfo->type--cmacro|cvs-fileinfo->type|cvs-fileinfo-from-entries|cvs-fileinfo-p--cmacro|cvs-fileinfo-p|cvs-fileinfo-pp|cvs-fileinfo-update|cvs-fileinfo<|cvs-find-modif|cvs-first|cvs-flags-defaults--cmacro|cvs-flags-defaults|cvs-flags-define|cvs-flags-desc--cmacro|cvs-flags-desc|cvs-flags-hist-sym--cmacro|cvs-flags-hist-sym|cvs-flags-p--cmacro|cvs-flags-p|cvs-flags-persist--cmacro|cvs-flags-persist|cvs-flags-qtypedesc--cmacro|cvs-flags-qtypedesc|cvs-flags-query|cvs-flags-set|cvs-get-buffer-create|cvs-get-cvsroot|cvs-get-marked|cvs-get-module|cvs-global-menu|cvs-header-msg|cvs-help|cvs-ignore-marks-p|cvs-insert-file|cvs-insert-strings|cvs-insert-visited-file|cvs-is-within-p|cvs-make-cvs-buffer|cvs-map|cvs-mark-buffer-changed|cvs-mark-fis-dead|cvs-match|cvs-menu|cvs-minor-mode|cvs-mode!|cvs-mode-acknowledge|cvs-mode-add-change-log-entry-other-window|cvs-mode-add|cvs-mode-byte-compile-files|cvs-mode-checkout|cvs-mode-commit-setup|cvs-mode-commit|cvs-mode-delete-lock|cvs-mode-diff-1|cvs-mode-diff-backup|cvs-mode-diff-head|cvs-mode-diff-map|cvs-mode-diff-repository|cvs-mode-diff-vendor|cvs-mode-diff-yesterday|cvs-mode-diff|cvs-mode-display-file|cvs-mode-do|cvs-mode-edit-log|cvs-mode-examine|cvs-mode-files|cvs-mode-find-file-other-window|cvs-mode-find-file|cvs-mode-force-command|cvs-mode-idiff-other|cvs-mode-idiff|cvs-mode-ignore|cvs-mode-imerge|cvs-mode-insert|cvs-mode-kill-buffers|cvs-mode-kill-process|cvs-mode-log|cvs-mode-map|cvs-mode-mark-all-files|cvs-mode-mark-get-modif|cvs-mode-mark-matching-files|cvs-mode-mark-on-state|cvs-mode-mark|cvs-mode-marked|cvs-mode-next-line|cvs-mode-previous-line|cvs-mode-quit|cvs-mode-remove-handled|cvs-mode-remove|cvs-mode-revert-buffer|cvs-mode-revert-to-rev|cvs-mode-run|cvs-mode-set-flags|cvs-mode-status|cvs-mode-tag|cvs-mode-toggle-mark|cvs-mode-toggle-marks|cvs-mode-tree|cvs-mode-undo|cvs-mode-unmark-all-files|cvs-mode-unmark-up|cvs-mode-unmark|cvs-mode-untag|cvs-mode-update|cvs-mode-view-file-other-window|cvs-mode-view-file|cvs-mode|cvs-mouse-toggle-mark|cvs-move-to-goal-column|cvs-or|cvs-parse-buffer|cvs-parse-commit|cvs-parse-merge|cvs-parse-msg|cvs-parse-process|cvs-parse-run-table|cvs-parse-status|cvs-parse-table|cvs-parsed-fileinfo|cvs-partition|cvs-pop-to-buffer-same-frame|cvs-prefix-define|cvs-prefix-get|cvs-prefix-make-local|cvs-prefix-set|cvs-prefix-sym|cvs-qtypedesc-complete--cmacro|cvs-qtypedesc-complete|cvs-qtypedesc-create--cmacro|cvs-qtypedesc-create|cvs-qtypedesc-hist-sym--cmacro|cvs-qtypedesc-hist-sym|cvs-qtypedesc-obj2str--cmacro|cvs-qtypedesc-obj2str|cvs-qtypedesc-p--cmacro|cvs-qtypedesc-p|cvs-qtypedesc-require--cmacro|cvs-qtypedesc-require|cvs-qtypedesc-str2obj--cmacro|cvs-qtypedesc-str2obj|cvs-query-directory|cvs-query-read|cvs-quickdir|cvs-reread-cvsrc|cvs-retrieve-revision|cvs-revert-if-needed|cvs-run-process|cvs-sentinel|cvs-set-branch-prefix|cvs-set-secondary-branch-prefix|cvs-status-current-file|cvs-status-current-tag|cvs-status-cvstrees|cvs-status-get-tags|cvs-status-minor-wrap|cvs-status-mode|cvs-status-next|cvs-status-prev|cvs-status-trees|cvs-status-vl-to-str|cvs-status|cvs-string-prefix-p|cvs-tag->name--cmacro|cvs-tag->name|cvs-tag->string|cvs-tag->type--cmacro|cvs-tag->type|cvs-tag->vlist--cmacro|cvs-tag->vlist|cvs-tag-compare-1|cvs-tag-compare|cvs-tag-lessp|cvs-tag-make--cmacro|cvs-tag-make-tag|cvs-tag-make|cvs-tag-merge|cvs-tag-p--cmacro|cvs-tag-p|cvs-tags->tree|cvs-tags-list|cvs-temp-buffer|cvs-tree-merge|cvs-tree-print|cvs-tree-tags-insert|cvs-union|cvs-update-filter|cvs-update-header|cvs-update|cvs-vc-command-advice|cwarn-font-lock-keywords|cwarn-font-lock-match-assignment-in-expression|cwarn-font-lock-match-dangerous-semicolon|cwarn-font-lock-match-reference|cwarn-font-lock-match|cwarn-inside-macro|cwarn-is-enabled|cwarn-mode-set-explicitly|cwarn-mode|cycle-spacing|cyrillic-encode-alternativnyj-char|cyrillic-encode-koi8-r-char|dabbrev--abbrev-at-point|dabbrev--find-all-expansions|dabbrev--find-expansion|dabbrev--goto-start-of-abbrev|dabbrev--ignore-buffer-p|dabbrev--ignore-case-p|dabbrev--make-friend-buffer-list|dabbrev--minibuffer-origin|dabbrev--reset-global-variables|dabbrev--safe-replace-match|dabbrev--same-major-mode-p|dabbrev--search|dabbrev--select-buffers|dabbrev--substitute-expansion|dabbrev--try-find|dabbrev-completion|dabbrev-expand|dabbrev-filter-elements|daemon-initialized|daemonp|data-debug-new-buffer|date-to-day|days-between|days-to-time|dbus--init-bus|dbus-byte-array-to-string|dbus-call-method-handler|dbus-check-event|dbus-escape-as-identifier|dbus-event-bus-name|dbus-event-interface-name|dbus-event-member-name|dbus-event-message-type|dbus-event-path-name|dbus-event-serial-number|dbus-event-service-name|dbus-get-all-managed-objects|dbus-get-all-properties|dbus-get-name-owner|dbus-get-property|dbus-get-unique-name|dbus-handle-bus-disconnect|dbus-handle-event|dbus-ignore-errors|dbus-init-bus|dbus-introspect-get-all-nodes|dbus-introspect-get-annotation-names|dbus-introspect-get-annotation|dbus-introspect-get-argument-names|dbus-introspect-get-argument|dbus-introspect-get-attribute|dbus-introspect-get-interface-names|dbus-introspect-get-interface|dbus-introspect-get-method-names|dbus-introspect-get-method|dbus-introspect-get-node-names|dbus-introspect-get-property-names|dbus-introspect-get-property|dbus-introspect-get-signal-names|dbus-introspect-get-signal|dbus-introspect-get-signature|dbus-introspect-xml|dbus-introspect|dbus-list-activatable-names|dbus-list-hash-table|dbus-list-known-names|dbus-list-names|dbus-list-queued-owners|dbus-managed-objects-handler|dbus-message-internal|dbus-method-error-internal|dbus-method-return-internal|dbus-notice-synchronous-call-errors|dbus-peer-handler|dbus-ping|dbus-property-handler|dbus-register-method|dbus-register-property|dbus-register-service|dbus-register-signal|dbus-set-property|dbus-setenv|dbus-string-to-byte-array|dbus-unescape-from-identifier|dbus-unregister-object|dbus-unregister-service|dbx|dcl-back-to-indentation-1|dcl-back-to-indentation|dcl-backward-command|dcl-beginning-of-command-p|dcl-beginning-of-command|dcl-beginning-of-statement|dcl-calc-command-indent-hang|dcl-calc-command-indent-multiple|dcl-calc-command-indent|dcl-calc-cont-indent-relative|dcl-calc-continuation-indent|dcl-command-p|dcl-delete-chars|dcl-delete-indentation|dcl-electric-character|dcl-end-of-command-p|dcl-end-of-command|dcl-end-of-statement|dcl-forward-command|dcl-get-line-type|dcl-guess-option-value|dcl-guess-option|dcl-imenu-create-index-function|dcl-indent-command-line|dcl-indent-command|dcl-indent-continuation-line|dcl-indent-line|dcl-indent-to|dcl-indentation-point|dcl-mode|dcl-option-value-basic|dcl-option-value-comment-line|dcl-option-value-margin-offset|dcl-option-value-offset|dcl-save-all-options|dcl-save-local-variable|dcl-save-mode|dcl-save-nondefault-options|dcl-save-option|dcl-set-option|dcl-show-line-type|dcl-split-line|dcl-tab|dcl-was-looking-at|deactivate-input-method|deactivate-mode-local-bindings|debug--function-list|debug--implement-debug-on-entry|debug-help-follow|debugger--backtrace-base|debugger--hide-locals|debugger--insert-locals|debugger--locals-visible-p|debugger--show-locals)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:debugger-continue|debugger-env-macro|debugger-eval-expression|debugger-frame-clear|debugger-frame-number|debugger-frame|debugger-jump|debugger-list-functions|debugger-make-xrefs|debugger-mode|debugger-record-expression|debugger-reenable|debugger-return-value|debugger-setup-buffer|debugger-step-through|debugger-toggle-locals|decf|decipher--analyze|decipher--digram-counts|decipher--digram-total|decipher-add-undo|decipher-adjacency-list|decipher-alphabet-keypress|decipher-analyze-buffer|decipher-analyze|decipher-complete-alphabet|decipher-copy-cons|decipher-digram-list|decipher-display-range|decipher-display-regexp|decipher-display-stats-buffer|decipher-frequency-count|decipher-get-undo|decipher-insert-frequency-counts|decipher-insert|decipher-keypress|decipher-last-command-char|decipher-loop-no-breaks|decipher-loop-with-breaks|decipher-make-checkpoint|decipher-mode|decipher-read-alphabet|decipher-restore-checkpoint|decipher-resync|decipher-set-map|decipher-show-alphabet|decipher-stats-buffer|decipher-stats-mode|decipher-undo|decipher|declaim|declare-ccl-program|declare-equiv-charset|decode-big5-char|decode-composition-components|decode-composition-rule|decode-hex-string|decode-hz-buffer|decode-hz-region|decode-sjis-char|decompose-region|decompose-string|decrease-left-margin|decrease-right-margin|def-gdb-auto-update-handler|def-gdb-auto-update-trigger|def-gdb-memory-format|def-gdb-memory-show-page|def-gdb-memory-unit|def-gdb-preempt-display-buffer|def-gdb-set-positive-number|def-gdb-thread-buffer-command|def-gdb-thread-buffer-gud-command|def-gdb-thread-buffer-simple-command|def-gdb-trigger-and-handler|default-command-history-filter|default-font-height|default-indent-new-line|default-line-height|default-toplevel-value|defcalcmodevar|defconst-mode-local|defcustom-c-stylevar|defcustom-mh|defezimage|defface-mh|defgeneric|defgroup-mh|defimage-speedbar|define-abbrevs|define-advice|define-auto-insert|define-ccl-program|define-char-code-property|define-charset-alias|define-charset-internal|define-charset|define-child-mode|define-coding-system-alias|define-coding-system-internal|define-coding-system|define-compilation-mode|define-compiler-macro|define-erc-module|define-erc-response-handler|define-global-abbrev|define-global-minor-mode|define-hmac-function|define-ibuffer-column|define-ibuffer-filter|define-ibuffer-op|define-ibuffer-sorter|define-inline|define-lex-analyzer|define-lex-block-analyzer|define-lex-block-type-analyzer|define-lex-keyword-type-analyzer|define-lex-regex-analyzer|define-lex-regex-type-analyzer|define-lex-sexp-type-analyzer|define-lex-simple-regex-analyzer|define-lex-string-type-analyzer|define-lex|define-mail-abbrev|define-mail-alias|define-mail-user-agent|define-mode-abbrev|define-mode-local-override|define-mode-overload-implementation|define-overload|define-overloadable-function|define-setf-expander|define-skeleton|define-translation-hash-table|define-translation-table|define-widget-keywords|defmacro-mh|defmath|defmethod|defun-cvs-mode|defun-gmm|defun-mh|defun-rcirc-command|defvar-mode-local|degrees-to-radians|dehexlify-buffer|delay-warning|delete\\\\*|delete-active-region|delete-all-overlays|delete-completion-window|delete-completion|delete-consecutive-dups|delete-dir-local-variable|delete-directory-internal|delete-duplicate-lines|delete-duplicates|delete-extract-rectangle-line|delete-extract-rectangle|delete-file-local-variable-prop-line|delete-file-local-variable|delete-forward-char|delete-frame-enabled-p|delete-if-not|delete-if|delete-instance|delete-matching-lines|delete-non-matching-lines|delete-other-frames|delete-other-windows-internal|delete-other-windows-vertically|delete-pair|delete-rectangle-line|delete-rectangle|delete-selection-helper|delete-selection-mode|delete-selection-pre-hook|delete-selection-repeat-replace-region|delete-side-window|delete-whitespace-rectangle-line|delete-whitespace-rectangle|delete-window-internal|delimit-columns-customize|delimit-columns-format|delimit-columns-rectangle-line|delimit-columns-rectangle-max|delimit-columns-rectangle|delimit-columns-region|delimit-columns-str|delphi-mode|delsel-unload-function|denato-region|derived-mode-abbrev-table-name|derived-mode-class|derived-mode-hook-name|derived-mode-init-mode-variables|derived-mode-make-docstring|derived-mode-map-name|derived-mode-merge-abbrev-tables|derived-mode-merge-keymaps|derived-mode-merge-syntax-tables|derived-mode-run-hooks|derived-mode-set-abbrev-table|derived-mode-set-keymap|derived-mode-set-syntax-table|derived-mode-setup-function-name|derived-mode-syntax-table-name|describe-bindings-internal|describe-buffer-bindings|describe-char-after|describe-char-categories|describe-char-display|describe-char-padded-string|describe-char-unicode-data|describe-char|describe-character-set|describe-chinese-environment-map|describe-coding-system|describe-copying|describe-current-coding-system-briefly|describe-current-coding-system|describe-current-input-method|describe-cyrillic-environment-map|describe-distribution|describe-european-environment-map|describe-face|describe-font|describe-fontset|describe-function-1|describe-function|describe-gnu-project|describe-indian-environment-map|describe-input-method|describe-key-briefly|describe-key|describe-language-environment|describe-minor-mode-completion-table-for-indicator|describe-minor-mode-completion-table-for-symbol|describe-minor-mode-from-indicator|describe-minor-mode-from-symbol|describe-minor-mode|describe-mode-local-bindings-in-mode|describe-mode-local-bindings|describe-no-warranty|describe-package-1|describe-package|describe-project|describe-property-list|describe-register-1|describe-specified-language-support|describe-text-category|describe-text-properties-1|describe-text-properties|describe-text-sexp|describe-text-widget|describe-theme|describe-variable-custom-version-info|describe-variable|describe-vector|desktop--check-dont-save|desktop--v2s|desktop-append-buffer-args|desktop-auto-save-cancel-timer|desktop-auto-save-disable|desktop-auto-save-enable|desktop-auto-save-set-timer|desktop-auto-save|desktop-buffer-info|desktop-buffer|desktop-change-dir|desktop-claim-lock|desktop-clear|desktop-create-buffer|desktop-file-name|desktop-full-file-name|desktop-full-lock-name|desktop-idle-create-buffers|desktop-kill|desktop-lazy-abort|desktop-lazy-complete|desktop-lazy-create-buffer|desktop-list\\\\*|desktop-load-default|desktop-load-file|desktop-outvar|desktop-owner|desktop-read|desktop-release-lock|desktop-remove|desktop-restore-file-buffer|desktop-restore-frameset|desktop-restoring-frameset-p|desktop-revert|desktop-save-buffer-p|desktop-save-frameset|desktop-save-in-desktop-dir|desktop-save-mode-off|desktop-save-mode|desktop-save|desktop-truncate|desktop-value-to-string|destructor|destructuring-bind|detect-coding-with-language-environment|detect-coding-with-priority|dframe-attached-frame|dframe-click|dframe-close-frame|dframe-current-frame|dframe-detach|dframe-double-click|dframe-frame-mode|dframe-frame-parameter|dframe-get-focus|dframe-hack-buffer-menu|dframe-handle-delete-frame|dframe-handle-iconify-frame|dframe-handle-make-frame-visible|dframe-help-echo|dframe-live-p|dframe-maybee-jump-to-attached-frame|dframe-message|dframe-mouse-event-p|dframe-mouse-hscroll|dframe-mouse-set-point|dframe-needed-height|dframe-popup-kludge|dframe-power-click|dframe-quick-mouse|dframe-reposition-frame-emacs|dframe-reposition-frame-xemacs|dframe-reposition-frame|dframe-select-attached-frame|dframe-set-timer-internal|dframe-set-timer|dframe-switch-buffer-attached-frame|dframe-temp-buffer-show-function|dframe-timer-fn|dframe-track-mouse-xemacs|dframe-track-mouse|dframe-update-keymap|dframe-with-attached-buffer|dframe-y-or-n-p|diary-add-to-list|diary-anniversary|diary-astro-day-number|diary-attrtype-convert|diary-bahai-date|diary-bahai-insert-entry|diary-bahai-insert-monthly-entry|diary-bahai-insert-yearly-entry|diary-bahai-list-entries|diary-bahai-mark-entries|diary-block|diary-check-diary-file|diary-chinese-anniversary|diary-chinese-date|diary-chinese-insert-anniversary-entry|diary-chinese-insert-entry|diary-chinese-insert-monthly-entry|diary-chinese-insert-yearly-entry|diary-chinese-list-entries|diary-chinese-mark-entries|diary-coptic-date|diary-cyclic|diary-date-display-form|diary-date|diary-day-of-year|diary-display-no-entries|diary-entry-compare|diary-entry-time|diary-ethiopic-date|diary-fancy-date-matcher|diary-fancy-date-pattern|diary-fancy-display-mode|diary-fancy-display|diary-fancy-font-lock-fontify-region-function|diary-float|diary-font-lock-date-forms|diary-font-lock-keywords-1|diary-font-lock-keywords|diary-font-lock-sexps|diary-french-date|diary-from-outlook-gnus|diary-from-outlook-internal|diary-from-outlook-rmail|diary-from-outlook|diary-goto-entry|diary-hebrew-birthday|diary-hebrew-date|diary-hebrew-insert-entry|diary-hebrew-insert-monthly-entry|diary-hebrew-insert-yearly-entry|diary-hebrew-list-entries|diary-hebrew-mark-entries|diary-hebrew-omer|diary-hebrew-parasha|diary-hebrew-rosh-hodesh|diary-hebrew-sabbath-candles|diary-hebrew-yahrzeit|diary-include-files|diary-include-other-diary-files|diary-insert-anniversary-entry|diary-insert-block-entry|diary-insert-cyclic-entry|diary-insert-entry-1|diary-insert-entry|diary-insert-monthly-entry|diary-insert-weekly-entry|diary-insert-yearly-entry|diary-islamic-date|diary-islamic-insert-entry|diary-islamic-insert-monthly-entry|diary-islamic-insert-yearly-entry|diary-islamic-list-entries|diary-islamic-mark-entries|diary-iso-date|diary-julian-date|diary-list-entries-1|diary-list-entries-2|diary-list-entries|diary-list-sexp-entries|diary-live-p|diary-lunar-phases|diary-mail-entries|diary-make-date|diary-make-entry|diary-mark-entries-1|diary-mark-entries|diary-mark-included-diary-files|diary-mark-sexp-entries|diary-mayan-date|diary-mode|diary-name-pattern|diary-ordinal-suffix|diary-outlook-format-1|diary-persian-date|diary-print-entries|diary-pull-attrs|diary-redraw-calendar|diary-remind|diary-set-header|diary-set-maybe-redraw|diary-sexp-entry|diary-show-all-entries|diary-simple-display|diary-sort-entries|diary-sunrise-sunset|diary-unhide-everything|diary-view-entries|diary-view-other-diary-entries|diary|diff-add-change-log-entries-other-window|diff-after-change-function|diff-apply-hunk|diff-auto-refine-mode|diff-backup|diff-beginning-of-file-and-junk|diff-beginning-of-file|diff-beginning-of-hunk|diff-bounds-of-file|diff-bounds-of-hunk|diff-buffer-with-file|diff-context->unified|diff-count-matches|diff-current-defun|diff-delete-empty-files|diff-delete-if-empty|diff-delete-trailing-whitespace|diff-ediff-patch|diff-end-of-file|diff-end-of-hunk|diff-file-kill|diff-file-local-copy|diff-file-next|diff-file-prev|diff-filename-drop-dir|diff-find-approx-text|diff-find-file-name|diff-find-source-location|diff-find-text|diff-fixup-modifs|diff-goto-source|diff-hunk-file-names|diff-hunk-kill|diff-hunk-next|diff-hunk-prev|diff-hunk-status-msg|diff-hunk-style|diff-hunk-text|diff-ignore-whitespace-hunk|diff-kill-applied-hunks|diff-kill-junk|diff-latest-backup-file|diff-make-unified|diff-merge-strings|diff-minor-mode|diff-mode-menu|diff-mode|diff-mouse-goto-source|diff-next-complex-hunk|diff-next-error|diff-no-select|diff-post-command-hook|diff-process-filter|diff-refine-hunk|diff-refine-preproc|diff-restrict-view|diff-reverse-direction|diff-sanity-check-context-hunk-half|diff-sanity-check-hunk|diff-sentinel|diff-setup-whitespace|diff-split-hunk|diff-splittable-p|diff-switches|diff-tell-file-name|diff-test-hunk|diff-undo|diff-unified->context|diff-unified-hunk-p|diff-write-contents-hooks|diff-xor|diff-yank-function|diff|dig-exit|dig-extract-rr|dig-invoke|dig-mode|dig-rr-get-pkix-cert|dig|digest-md5-challenge|digest-md5-digest-response|digest-md5-digest-uri|digest-md5-parse-digest-challenge|dir-locals-collect-mode-variables|dir-locals-collect-variables|dir-locals-find-file|dir-locals-get-class-variables|dir-locals-read-from-file|directory-files-recursively|directory-name-p|dired-add-file|dired-advertise|dired-advertised-find-file|dired-align-file|dired-alist-add-1|dired-at-point-prompter|dired-at-point|dired-backup-diff|dired-between-files|dired-buffer-stale-p|dired-buffers-for-dir|dired-build-subdir-alist|dired-change-marks|dired-check-switches|dired-clean-directory|dired-clean-up-after-deletion|dired-clear-alist|dired-compare-directories|dired-compress-file|dired-copy-file|dired-copy-filename-as-kill|dired-create-directory)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:dired-current-directory|dired-delete-entry|dired-delete-file|dired-desktop-buffer-misc-data|dired-diff|dired-directory-changed-p|dired-display-file|dired-dnd-do-ask-action|dired-dnd-handle-file|dired-dnd-handle-local-file|dired-dnd-popup-notice|dired-do-async-shell-command|dired-do-byte-compile|dired-do-chgrp|dired-do-chmod|dired-do-chown|dired-do-compress|dired-do-copy-regexp|dired-do-copy|dired-do-create-files-regexp|dired-do-delete|dired-do-flagged-delete|dired-do-hardlink-regexp|dired-do-hardlink|dired-do-isearch-regexp|dired-do-isearch|dired-do-kill-lines|dired-do-load|dired-do-print|dired-do-query-replace-regexp|dired-do-redisplay|dired-do-relsymlink|dired-do-rename-regexp|dired-do-rename|dired-do-search|dired-do-shell-command|dired-do-symlink-regexp|dired-do-symlink|dired-do-touch|dired-downcase|dired-file-marker|dired-file-name-at-point|dired-find-alternate-file|dired-find-buffer-nocreate|dired-find-file-other-window|dired-find-file|dired-flag-auto-save-files|dired-flag-backup-files|dired-flag-file-deletion|dired-flag-files-regexp|dired-flag-garbage-files|dired-format-columns-of-files|dired-fun-in-all-buffers|dired-get-file-for-visit|dired-get-filename|dired-get-marked-files|dired-get-subdir-max|dired-get-subdir-min|dired-get-subdir|dired-glob-regexp|dired-goto-file-1|dired-goto-file|dired-goto-next-file|dired-goto-next-nontrivial-file|dired-goto-subdir|dired-hide-all|dired-hide-details-mode|dired-hide-details-update-invisibility-spec|dired-hide-subdir|dired-in-this-tree|dired-initial-position|dired-insert-directory|dired-insert-old-subdirs|dired-insert-set-properties|dired-insert-subdir|dired-internal-do-deletions|dired-internal-noselect|dired-isearch-filenames-regexp|dired-isearch-filenames-setup|dired-isearch-filenames|dired-jump-other-window|dired-jump|dired-kill-subdir|dired-log-summary|dired-log|dired-make-absolute|dired-make-relative|dired-map-over-marks|dired-mark-directories|dired-mark-executables|dired-mark-files-containing-regexp|dired-mark-files-in-region|dired-mark-files-regexp|dired-mark-if|dired-mark-pop-up|dired-mark-prompt|dired-mark-remembered|dired-mark-subdir-files|dired-mark-symlinks|dired-mark|dired-marker-regexp|dired-maybe-insert-subdir|dired-mode|dired-mouse-find-file-other-window|dired-move-to-end-of-filename|dired-move-to-filename|dired-next-dirline|dired-next-line|dired-next-marked-file|dired-next-subdir|dired-normalize-subdir|dired-noselect|dired-other-frame|dired-other-window|dired-plural-s|dired-pop-to-buffer|dired-prev-dirline|dired-prev-marked-file|dired-prev-subdir|dired-previous-line|dired-query|dired-read-dir-and-switches|dired-read-regexp|dired-readin-insert|dired-readin|dired-relist-file|dired-remember-hidden|dired-remember-marks|dired-remove-file|dired-rename-file|dired-repeat-over-lines|dired-replace-in-string|dired-restore-desktop-buffer|dired-restore-positions|dired-revert|dired-run-shell-command|dired-safe-switches-p|dired-save-positions|dired-show-file-type|dired-sort-R-check|dired-sort-other|dired-sort-set-mode-line|dired-sort-set-modeline|dired-sort-toggle-or-edit|dired-sort-toggle|dired-string-replace-match|dired-subdir-index|dired-subdir-max|dired-summary|dired-switches-escape-p|dired-switches-recursive-p|dired-toggle-marks|dired-toggle-read-only|dired-tree-down|dired-tree-up|dired-unadvertise|dired-uncache|dired-undo|dired-unmark-all-files|dired-unmark-all-marks|dired-unmark-backward|dired-unmark|dired-up-directory|dired-upcase|dired-view-file|dired-why|dired|dirs|dirtrack-cygwin-directory-function|dirtrack-debug-message|dirtrack-debug-mode|dirtrack-debug-toggle|dirtrack-mode|dirtrack-toggle|dirtrack-windows-directory-function|dirtrack|disable-timeout|disassemble-1|disassemble-internal|disassemble-offset|display-about-screen|display-battery-mode|display-buffer--maybe-pop-up-frame-or-window|display-buffer--maybe-same-window|display-buffer--special-action|display-buffer-assq-regexp|display-buffer-in-atom-window|display-buffer-in-major-side-window|display-buffer-in-side-window|display-buffer-other-frame|display-buffer-record-window|display-call-tree|display-local-help|display-multi-font-p|display-multi-frame-p|display-splash-screen|display-startup-echo-area-message|display-startup-screen|display-table-print-array|display-time-mode|display-time-world|display-time|displaying-byte-compile-warnings|dissociated-press|dnd-get-local-file-name|dnd-get-local-file-uri|dnd-handle-one-url|dnd-insert-text|dnd-open-file|dnd-open-local-file|dnd-open-remote-url|dnd-unescape-uri|dns-get-txt-answer|dns-get|dns-inverse-get|dns-lookup-host|dns-make-network-process|dns-mode-menu|dns-mode-soa-increment-serial|dns-mode-soa-maybe-increment-serial|dns-mode|dns-query-cached|dns-query|dns-read-bytes|dns-read-int32|dns-read-name|dns-read-string-name|dns-read-txt|dns-read-type|dns-read|dns-servers-up-to-date-p|dns-set-servers|dns-write-bytes|dns-write-name|dns-write|dnsDomainIs|dnsResolve|do\\\\*|do-after-load-evaluation|do-all-symbols|do-auto-fill|do-symbols|do|doc\\\\$|doc\\\\/\\\\/|doc-file-to-info|doc-file-to-man|doc-view--current-cache-dir|doc-view-active-pages|doc-view-already-converted-p|doc-view-bookmark-jump|doc-view-bookmark-make-record|doc-view-buffer-message|doc-view-clear-cache|doc-view-clone-buffer-hook|doc-view-convert-current-doc|doc-view-current-cache-doc-pdf|doc-view-current-image|doc-view-current-info|doc-view-current-overlay|doc-view-current-page|doc-view-current-slice|doc-view-desktop-save-buffer|doc-view-dired-cache|doc-view-display|doc-view-djvu->tiff-converter-ddjvu|doc-view-doc->txt|doc-view-document->bitmap|doc-view-dvi->pdf|doc-view-enlarge|doc-view-fallback-mode|doc-view-first-page|doc-view-fit-height-to-window|doc-view-fit-page-to-window|doc-view-fit-width-to-window|doc-view-get-bounding-box|doc-view-goto-page|doc-view-guess-paper-size|doc-view-initiate-display|doc-view-insert-image|doc-view-intersection|doc-view-kill-proc-and-buffer|doc-view-kill-proc|doc-view-last-page-number|doc-view-last-page|doc-view-make-safe-dir|doc-view-menu|doc-view-minor-mode|doc-view-mode-maybe|doc-view-mode-p|doc-view-mode|doc-view-new-window-function|doc-view-next-line-or-next-page|doc-view-next-page|doc-view-odf->pdf-converter-soffice|doc-view-odf->pdf-converter-unoconv|doc-view-open-text|doc-view-pdf\\\\/ps->png|doc-view-pdf->png-converter-ghostscript|doc-view-pdf->png-converter-mupdf|doc-view-pdf->txt|doc-view-previous-line-or-previous-page|doc-view-previous-page|doc-view-ps->pdf|doc-view-ps->png-converter-ghostscript|doc-view-reconvert-doc|doc-view-reset-slice|doc-view-restore-desktop-buffer|doc-view-revert-buffer|doc-view-scale-adjust|doc-view-scale-bounding-box|doc-view-scale-reset|doc-view-scroll-down-or-previous-page|doc-view-scroll-up-or-next-page|doc-view-search-backward|doc-view-search-internal|doc-view-search-next-match|doc-view-search-no-of-matches|doc-view-search-previous-match|doc-view-search|doc-view-sentinel|doc-view-set-doc-type|doc-view-set-slice-from-bounding-box|doc-view-set-slice-using-mouse|doc-view-set-slice|doc-view-set-up-single-converter|doc-view-show-tooltip|doc-view-shrink|doc-view-sort|doc-view-start-process|doc-view-toggle-display|doctex-font-lock-\\\\^\\\\^A|doctex-font-lock-syntactic-face-function|doctex-mode|doctor-\\\\$|doctor-adjectivep|doctor-adverbp|doctor-alcohol|doctor-articlep|doctor-assm|doctor-build|doctor-chat|doctor-colorp|doctor-concat|doctor-conj|doctor-correct-spelling|doctor-death|doctor-def|doctor-define|doctor-defq|doctor-desire|doctor-desire1|doctor-doc|doctor-drug|doctor-eliza|doctor-family|doctor-fear|doctor-fix-2|doctor-fixup|doctor-forget|doctor-foul|doctor-getnoun|doctor-go|doctor-hate|doctor-hates|doctor-hates1|doctor-howdy|doctor-huh|doctor-love|doctor-loves|doctor-mach|doctor-make-string|doctor-math|doctor-meaning|doctor-mode|doctor-modifierp|doctor-mood|doctor-nmbrp|doctor-nounp|doctor-othermodifierp|doctor-plural|doctor-possess|doctor-possessivepronounp|doctor-prepp|doctor-pronounp|doctor-put-meaning|doctor-qloves|doctor-query|doctor-read-print|doctor-read-token|doctor-readin|doctor-remem|doctor-remember|doctor-replace|doctor-ret-or-read|doctor-rms|doctor-rthing|doctor-school|doctor-setprep|doctor-sexnoun|doctor-sexverb|doctor-short|doctor-shorten|doctor-sizep|doctor-sports|doctor-state|doctor-subjsearch|doctor-svo|doctor-symptoms|doctor-toke|doctor-txtype|doctor-type-symbol|doctor-type|doctor-verbp|doctor-vowelp|doctor-when|doctor-wherego|doctor-zippy|doctor|dom-add-child-before|dom-append-child|dom-attr|dom-attributes|dom-by-class|dom-by-id|dom-by-style|dom-by-tag|dom-child-by-tag|dom-children|dom-elements|dom-ensure-node|dom-node|dom-non-text-children|dom-parent|dom-pp|dom-set-attribute|dom-set-attributes|dom-tag|dom-text|dom-texts|dont-compile|double-column|double-mode|double-read-event|double-translate-key|down-ifdef|dsssl-mode|dunnet|dynamic-completion-mode|dynamic-completion-table|dynamic-setting-handle-config-changed-event|easy-menu-add-item|easy-menu-add|easy-menu-always-true-p|easy-menu-binding|easy-menu-change|easy-menu-convert-item-1|easy-menu-convert-item|easy-menu-create-menu|easy-menu-define-key|easy-menu-do-define|easy-menu-filter-return|easy-menu-get-map|easy-menu-intern|easy-menu-item-present-p|easy-menu-lookup-name|easy-menu-make-symbol|easy-menu-name-match|easy-menu-remove-item|easy-menu-remove|easy-menu-return-item|easy-mmode-define-global-mode|easy-mmode-define-keymap|easy-mmode-define-navigation|easy-mmode-define-syntax|easy-mmode-defmap|easy-mmode-defsyntax|easy-mmode-pretty-mode-name|easy-mmode-set-keymap-parents|ebnf-abn-initialize|ebnf-abn-parser|ebnf-adjust-empty|ebnf-adjust-width|ebnf-alternative-dimension|ebnf-alternative-width|ebnf-apply-style|ebnf-apply-style1|ebnf-begin-file|ebnf-begin-job|ebnf-begin-line|ebnf-bnf-initialize|ebnf-bnf-parser|ebnf-boolean|ebnf-buffer-substring|ebnf-check-style-values|ebnf-customize|ebnf-delete-style|ebnf-despool|ebnf-dimensions|ebnf-directory|ebnf-dtd-initialize|ebnf-dtd-parser|ebnf-dup-list|ebnf-ebx-initialize|ebnf-ebx-parser|ebnf-element-width|ebnf-eliminate-empty-rules|ebnf-empty-alternative|ebnf-end-of-string|ebnf-entry|ebnf-eop-horizontal|ebnf-eop-vertical|ebnf-eps-add-context|ebnf-eps-add-production|ebnf-eps-buffer|ebnf-eps-directory|ebnf-eps-file|ebnf-eps-filename|ebnf-eps-finish-and-write|ebnf-eps-footer-comment|ebnf-eps-footer|ebnf-eps-header-comment|ebnf-eps-header-footer-comment|ebnf-eps-header-footer-file|ebnf-eps-header-footer-p|ebnf-eps-header-footer-set|ebnf-eps-header-footer|ebnf-eps-header|ebnf-eps-output|ebnf-eps-production-list|ebnf-eps-region|ebnf-eps-remove-context|ebnf-eps-string|ebnf-eps-write-kill-temp|ebnf-except-dimension|ebnf-file|ebnf-find-style|ebnf-font-attributes|ebnf-font-background|ebnf-font-foreground|ebnf-font-height|ebnf-font-list|ebnf-font-name-select|ebnf-font-name|ebnf-font-select|ebnf-font-size|ebnf-font-width|ebnf-format-color|ebnf-format-float|ebnf-gen-terminal|ebnf-generate-alternative|ebnf-generate-empty|ebnf-generate-eps|ebnf-generate-except|ebnf-generate-non-terminal|ebnf-generate-one-or-more|ebnf-generate-optional|ebnf-generate-postscript|ebnf-generate-production|ebnf-generate-region|ebnf-generate-repeat|ebnf-generate-sequence|ebnf-generate-special|ebnf-generate-terminal|ebnf-generate-with-max-height|ebnf-generate-without-max-height|ebnf-generate-zero-or-more|ebnf-generate|ebnf-get-string|ebnf-horizontal-movement|ebnf-insert-ebnf-prologue|ebnf-insert-style|ebnf-iso-initialize|ebnf-iso-parser|ebnf-justify-list|ebnf-justify|ebnf-log-header|ebnf-log|ebnf-make-alternative|ebnf-make-dup-sequence|ebnf-make-empty|ebnf-make-except|ebnf-make-non-terminal|ebnf-make-one-or-more|ebnf-make-optional|ebnf-make-or-more1|ebnf-make-production|ebnf-make-repeat|ebnf-make-sequence|ebnf-make-special|ebnf-make-terminal|ebnf-make-terminal1|ebnf-make-zero-or-more|ebnf-max-width|ebnf-merge-style|ebnf-message-float|ebnf-message-info|ebnf-new-page|ebnf-newline|ebnf-node-action|ebnf-node-default|ebnf-node-dimension-func|ebnf-node-entry|ebnf-node-generation|ebnf-node-height|ebnf-node-kind|ebnf-node-list|ebnf-node-name|ebnf-node-production|ebnf-node-separator|ebnf-node-width-func|ebnf-node-width|ebnf-non-terminal-dimension|ebnf-one-or-more-dimension|ebnf-optimize|ebnf-optional-dimension|ebnf-otz-initialize|ebnf-parse-and-sort|ebnf-pop-style|ebnf-print-buffer|ebnf-print-directory|ebnf-print-file|ebnf-print-region|ebnf-production-dimension|ebnf-push-style|ebnf-range-regexp|ebnf-repeat-dimension|ebnf-reset-style|ebnf-sequence-dimension|ebnf-sequence-width)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:ebnf-setup|ebnf-shape-value|ebnf-sorter-ascending|ebnf-sorter-descending|ebnf-special-dimension|ebnf-spool-buffer|ebnf-spool-directory|ebnf-spool-file|ebnf-spool-region|ebnf-string|ebnf-syntax-buffer|ebnf-syntax-directory|ebnf-syntax-file|ebnf-syntax-region|ebnf-terminal-dimension|ebnf-terminal-dimension1|ebnf-token-alternative|ebnf-token-except|ebnf-token-optional|ebnf-token-repeat|ebnf-token-sequence|ebnf-trim-right|ebnf-vertical-movement|ebnf-yac-initialize|ebnf-yac-parser|ebnf-zero-or-more-dimension|ebrowse-back-in-position-stack|ebrowse-base-classes|ebrowse-browser-buffer-list|ebrowse-bs-file--cmacro|ebrowse-bs-file|ebrowse-bs-flags--cmacro|ebrowse-bs-flags|ebrowse-bs-name--cmacro|ebrowse-bs-name|ebrowse-bs-p--cmacro|ebrowse-bs-p|ebrowse-bs-pattern--cmacro|ebrowse-bs-pattern|ebrowse-bs-point--cmacro|ebrowse-bs-point|ebrowse-bs-scope--cmacro|ebrowse-bs-scope|ebrowse-buffer-p|ebrowse-build-tree-obarray|ebrowse-choose-from-browser-buffers|ebrowse-choose-tree|ebrowse-class-alist-for-member|ebrowse-class-declaration-regexp|ebrowse-class-in-tree|ebrowse-class-name-displayed-in-member-buffer|ebrowse-collapse-branch|ebrowse-collapse-fn|ebrowse-completing-read-value|ebrowse-const-p|ebrowse-create-tree-buffer|ebrowse-cs-file--cmacro|ebrowse-cs-file|ebrowse-cs-flags--cmacro|ebrowse-cs-flags|ebrowse-cs-name--cmacro|ebrowse-cs-name|ebrowse-cs-p--cmacro|ebrowse-cs-p|ebrowse-cs-pattern--cmacro|ebrowse-cs-pattern|ebrowse-cs-point--cmacro|ebrowse-cs-point|ebrowse-cs-scope--cmacro|ebrowse-cs-scope|ebrowse-cs-source-file--cmacro|ebrowse-cs-source-file|ebrowse-cyclic-display-next\\\\/previous-member-list|ebrowse-cyclic-successor-in-string-list|ebrowse-define-p|ebrowse-direct-base-classes|ebrowse-display-friends-member-list|ebrowse-display-function-member-list|ebrowse-display-member-buffer|ebrowse-display-member-list-for-accessor|ebrowse-display-next-member-list|ebrowse-display-previous-member-list|ebrowse-display-static-functions-member-list|ebrowse-display-static-variables-member-list|ebrowse-display-types-member-list|ebrowse-display-variables-member-list|ebrowse-displaying-friends|ebrowse-displaying-functions|ebrowse-displaying-static-functions|ebrowse-displaying-static-variables|ebrowse-displaying-types|ebrowse-displaying-variables|ebrowse-draw-file-member-info|ebrowse-draw-marks-fn|ebrowse-draw-member-attributes|ebrowse-draw-member-buffer-class-line|ebrowse-draw-member-long-fn|ebrowse-draw-member-regexp|ebrowse-draw-member-short-fn|ebrowse-draw-position-buffer|ebrowse-draw-tree-fn|ebrowse-electric-buffer-list|ebrowse-electric-choose-tree|ebrowse-electric-find-position|ebrowse-electric-get-buffer|ebrowse-electric-list-looper|ebrowse-electric-list-mode|ebrowse-electric-list-quit|ebrowse-electric-list-select|ebrowse-electric-list-undefined|ebrowse-electric-position-looper|ebrowse-electric-position-menu|ebrowse-electric-position-mode|ebrowse-electric-position-quit|ebrowse-electric-position-undefined|ebrowse-electric-select-position|ebrowse-electric-view-buffer|ebrowse-electric-view-position|ebrowse-every|ebrowse-expand-all|ebrowse-expand-branch|ebrowse-explicit-p|ebrowse-extern-c-p|ebrowse-files-list|ebrowse-files-table|ebrowse-fill-member-table|ebrowse-find-class-declaration|ebrowse-find-member-declaration|ebrowse-find-member-definition|ebrowse-find-pattern|ebrowse-find-source-file|ebrowse-for-all-trees|ebrowse-forward-in-position-stack|ebrowse-freeze-member-buffer|ebrowse-frozen-tree-buffer-name|ebrowse-function-declaration\\\\/definition-regexp|ebrowse-gather-statistics|ebrowse-globals-tree-p|ebrowse-goto-visible-member\\\\/all-member-lists|ebrowse-goto-visible-member|ebrowse-hack-electric-buffer-menu|ebrowse-hide-line|ebrowse-hs-command-line-options--cmacro|ebrowse-hs-command-line-options|ebrowse-hs-member-table--cmacro|ebrowse-hs-member-table|ebrowse-hs-p--cmacro|ebrowse-hs-p|ebrowse-hs-unused--cmacro|ebrowse-hs-unused|ebrowse-hs-version--cmacro|ebrowse-hs-version|ebrowse-ignoring-completion-case|ebrowse-inline-p|ebrowse-insert-supers|ebrowse-install-1-to-9-keys|ebrowse-kill-member-buffers-displaying|ebrowse-known-class-trees-buffer-list|ebrowse-list-of-matching-members|ebrowse-list-tree-buffers|ebrowse-mark-all-classes|ebrowse-marked-classes-p|ebrowse-member-bit-set-p|ebrowse-member-buffer-list|ebrowse-member-buffer-object-menu|ebrowse-member-buffer-p|ebrowse-member-class-name-object-menu|ebrowse-member-display-p|ebrowse-member-info-from-point|ebrowse-member-list-name|ebrowse-member-mode|ebrowse-member-mouse-2|ebrowse-member-mouse-3|ebrowse-member-name-object-menu|ebrowse-member-table|ebrowse-mouse-1-in-tree-buffer|ebrowse-mouse-2-in-tree-buffer|ebrowse-mouse-3-in-tree-buffer|ebrowse-mouse-find-member|ebrowse-move-in-position-stack|ebrowse-move-point-to-member|ebrowse-ms-definition-file--cmacro|ebrowse-ms-definition-file|ebrowse-ms-definition-pattern--cmacro|ebrowse-ms-definition-pattern|ebrowse-ms-definition-point--cmacro|ebrowse-ms-definition-point|ebrowse-ms-file--cmacro|ebrowse-ms-file|ebrowse-ms-flags--cmacro|ebrowse-ms-flags|ebrowse-ms-name--cmacro|ebrowse-ms-name|ebrowse-ms-p--cmacro|ebrowse-ms-p|ebrowse-ms-pattern--cmacro|ebrowse-ms-pattern|ebrowse-ms-point--cmacro|ebrowse-ms-point|ebrowse-ms-scope--cmacro|ebrowse-ms-scope|ebrowse-ms-visibility--cmacro|ebrowse-ms-visibility|ebrowse-mutable-p|ebrowse-name\\\\/accessor-alist-for-class-members|ebrowse-name\\\\/accessor-alist-for-visible-members|ebrowse-name\\\\/accessor-alist|ebrowse-on-class-name|ebrowse-on-member-name|ebrowse-output|ebrowse-pop\\\\/switch-to-member-buffer-for-same-tree|ebrowse-pop-from-member-to-tree-buffer|ebrowse-pop-to-browser-buffer|ebrowse-popup-menu|ebrowse-position-file-name--cmacro|ebrowse-position-file-name|ebrowse-position-info--cmacro|ebrowse-position-info|ebrowse-position-name|ebrowse-position-p--cmacro|ebrowse-position-p|ebrowse-position-point--cmacro|ebrowse-position-point|ebrowse-position-target--cmacro|ebrowse-position-target|ebrowse-position|ebrowse-pp-define-regexp|ebrowse-print-statistics-line|ebrowse-pure-virtual-p|ebrowse-push-position|ebrowse-qualified-class-name|ebrowse-read-class-name-and-go|ebrowse-read|ebrowse-redisplay-member-buffer|ebrowse-redraw-marks|ebrowse-redraw-tree|ebrowse-remove-all-member-filters|ebrowse-remove-class-and-kill-member-buffers|ebrowse-remove-class-at-point|ebrowse-rename-buffer|ebrowse-repeat-member-search|ebrowse-revert-tree-buffer-from-file|ebrowse-same-tree-member-buffer-list|ebrowse-save-class|ebrowse-save-selective|ebrowse-save-tree-as|ebrowse-save-tree|ebrowse-select-1st-to-9nth|ebrowse-set-face|ebrowse-set-mark-props|ebrowse-set-member-access-visibility|ebrowse-set-member-buffer-column-width|ebrowse-set-tree-indentation|ebrowse-show-displayed-class-in-tree|ebrowse-show-file-name-at-point|ebrowse-show-progress|ebrowse-some-member-table|ebrowse-some|ebrowse-sort-tree-list|ebrowse-statistics|ebrowse-switch-member-buffer-to-any-class|ebrowse-switch-member-buffer-to-base-class|ebrowse-switch-member-buffer-to-derived-class|ebrowse-switch-member-buffer-to-next-sibling-class|ebrowse-switch-member-buffer-to-other-class|ebrowse-switch-member-buffer-to-previous-sibling-class|ebrowse-switch-member-buffer-to-sibling-class|ebrowse-switch-to-next-member-buffer|ebrowse-symbol-regexp|ebrowse-tags-apropos|ebrowse-tags-choose-class|ebrowse-tags-complete-symbol|ebrowse-tags-display-member-buffer|ebrowse-tags-find-declaration-other-frame|ebrowse-tags-find-declaration-other-window|ebrowse-tags-find-declaration|ebrowse-tags-find-definition-other-frame|ebrowse-tags-find-definition-other-window|ebrowse-tags-find-definition|ebrowse-tags-list-members-in-file|ebrowse-tags-loop-continue|ebrowse-tags-next-file|ebrowse-tags-query-replace|ebrowse-tags-read-member\\\\+class-name|ebrowse-tags-read-name|ebrowse-tags-search-member-use|ebrowse-tags-search|ebrowse-tags-select\\\\/create-member-buffer|ebrowse-tags-view\\\\/find-member-decl\\\\/defn|ebrowse-tags-view-declaration-other-frame|ebrowse-tags-view-declaration-other-window|ebrowse-tags-view-declaration|ebrowse-tags-view-definition-other-frame|ebrowse-tags-view-definition-other-window|ebrowse-tags-view-definition|ebrowse-template-p|ebrowse-throw-list-p|ebrowse-toggle-base-class-display|ebrowse-toggle-const-member-filter|ebrowse-toggle-file-name-display|ebrowse-toggle-inline-member-filter|ebrowse-toggle-long-short-display|ebrowse-toggle-mark-at-point|ebrowse-toggle-member-attributes-display|ebrowse-toggle-private-member-filter|ebrowse-toggle-protected-member-filter|ebrowse-toggle-public-member-filter|ebrowse-toggle-pure-member-filter|ebrowse-toggle-regexp-display|ebrowse-toggle-virtual-member-filter|ebrowse-tree-at-point|ebrowse-tree-buffer-class-object-menu|ebrowse-tree-buffer-list|ebrowse-tree-buffer-object-menu|ebrowse-tree-buffer-p|ebrowse-tree-command:show-friends|ebrowse-tree-command:show-member-functions|ebrowse-tree-command:show-member-variables|ebrowse-tree-command:show-static-member-functions|ebrowse-tree-command:show-static-member-variables|ebrowse-tree-command:show-types|ebrowse-tree-mode|ebrowse-tree-obarray-as-alist|ebrowse-trim-string|ebrowse-ts-base-classes--cmacro|ebrowse-ts-base-classes|ebrowse-ts-class--cmacro|ebrowse-ts-class|ebrowse-ts-friends--cmacro|ebrowse-ts-friends|ebrowse-ts-mark--cmacro|ebrowse-ts-mark|ebrowse-ts-member-functions--cmacro|ebrowse-ts-member-functions|ebrowse-ts-member-variables--cmacro|ebrowse-ts-member-variables|ebrowse-ts-p--cmacro|ebrowse-ts-p|ebrowse-ts-static-functions--cmacro|ebrowse-ts-static-functions|ebrowse-ts-static-variables--cmacro|ebrowse-ts-static-variables|ebrowse-ts-subclasses--cmacro|ebrowse-ts-subclasses|ebrowse-ts-types--cmacro|ebrowse-ts-types|ebrowse-unhide-base-classes|ebrowse-update-member-buffer-mode-line|ebrowse-update-tree-buffer-mode-line|ebrowse-variable-declaration-regexp|ebrowse-view\\\\/find-class-declaration|ebrowse-view\\\\/find-file-and-search-pattern|ebrowse-view\\\\/find-member-declaration\\\\/definition|ebrowse-view\\\\/find-position|ebrowse-view-class-declaration|ebrowse-view-exit-fn|ebrowse-view-file-other-frame|ebrowse-view-member-declaration|ebrowse-view-member-definition|ebrowse-virtual-p|ebrowse-width-of-drawable-area|ebrowse-write-file-hook-fn|ebuffers|ebuffers3|ecase|ecomplete-display-matches|ecomplete-setup|ede--detect-ldf-predicate|ede--detect-ldf-root-predicate|ede--detect-ldf-rootonly-predicate|ede--detect-scan-directory-for-project-root|ede--detect-scan-directory-for-project|ede--detect-scan-directory-for-rootonly-project|ede--detect-stop-scan-p|ede--directory-project-add-description-to-hash|ede--directory-project-from-hash|ede--get-inode-dir-hash|ede--inode-for-dir|ede--inode-get-toplevel-open-project|ede--project-inode|ede--put-inode-dir-hash|ede-add-file|ede-add-project-autoload|ede-add-project-to-global-list|ede-add-subproject|ede-adebug-project-parent|ede-adebug-project-root|ede-adebug-project|ede-apply-object-keymap|ede-apply-preprocessor-map|ede-apply-project-local-variables|ede-apply-target-options|ede-auto-add-to-target|ede-auto-detect-in-dir|ede-auto-load-project|ede-buffer-belongs-to-project-p|ede-buffer-belongs-to-target-p|ede-buffer-documentation-files|ede-buffer-header-file|ede-buffer-mine|ede-buffer-object|ede-buffers|ede-build-forms-menu|ede-check-project-directory|ede-choose-object|ede-commit-local-variables|ede-compile-project|ede-compile-selected|ede-compile-target|ede-configuration-forms-menu|ede-convert-path|ede-cpp-root-project-child-p|ede-cpp-root-project-list-p|ede-cpp-root-project-p|ede-cpp-root-project|ede-create-tag-buttons|ede-current-project|ede-customize-current-target|ede-customize-forms-menu|ede-customize-project|ede-debug-target|ede-delete-project-from-global-list|ede-delete-target|ede-description|ede-detect-directory-for-project|ede-detect-qtest|ede-directory-get-open-project|ede-directory-get-toplevel-open-project|ede-directory-project-cons|ede-directory-project-p|ede-directory-safe-p|ede-dired-minor-mode|ede-dirmatch-installed|ede-do-dirmatch|ede-documentation-files|ede-documentation|ede-ecb-project-paths|ede-edit-file-target|ede-edit-web-page|ede-enable-generic-projects|ede-enable-locate-on-project|ede-expand-filename-impl-via-subproj|ede-expand-filename-impl|ede-expand-filename-local|ede-expand-filename|ede-file-find|ede-find-file|ede-find-nearest-file-line|ede-find-subproject-for-directory|ede-find-target|ede-flush-deleted-projects|ede-flush-directory-hash|ede-flush-project-hash|ede-get-locator-object|ede-global-list-sanity-check|ede-header-file|ede-html-documentation-files|ede-html-documentation|ede-ignore-file|ede-initialize-state-current-buffer|ede-invoke-method)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:ede-java-classpath|ede-linux-load|ede-load-cache|ede-load-project-file|ede-make-check-version|ede-make-dist|ede-make-project-local-variable|ede-map-all-subprojects|ede-map-any-target-p|ede-map-buffers|ede-map-project-buffers|ede-map-subprojects|ede-map-target-buffers|ede-map-targets|ede-menu-items-build|ede-menu-obj-of-class-p|ede-minor-mode|ede-name|ede-new-target-custom|ede-new-target|ede-new|ede-normalize-file\\\\/directory|ede-object-keybindings|ede-object-menu|ede-object-sourcecode|ede-parent-project|ede-preprocessor-map|ede-project-autoload-child-p|ede-project-autoload-dirmatch-child-p|ede-project-autoload-dirmatch-list-p|ede-project-autoload-dirmatch-p|ede-project-autoload-dirmatch|ede-project-autoload-list-p|ede-project-autoload-p|ede-project-autoload|ede-project-buffers|ede-project-child-p|ede-project-configurations-set|ede-project-directory-remove-hash|ede-project-forms-menu|ede-project-list-p|ede-project-p|ede-project-placeholder-child-p|ede-project-placeholder-list-p|ede-project-placeholder-p|ede-project-placeholder|ede-project-root-directory|ede-project-root|ede-project-sort-targets|ede-project|ede-remove-file|ede-rescan-toplevel|ede-reset-all-buffers|ede-run-target|ede-save-cache|ede-set-project-local-variable|ede-set-project-variables|ede-set|ede-singular-object|ede-source-paths|ede-sourcecode-child-p|ede-sourcecode-list-p|ede-sourcecode-p|ede-sourcecode|ede-speedbar-compile-file-project|ede-speedbar-compile-line|ede-speedbar-compile-project|ede-speedbar-edit-projectfile|ede-speedbar-file-setup|ede-speedbar-get-top-project-for-line|ede-speedbar-make-distribution|ede-speedbar-make-map|ede-speedbar-remove-file-from-target|ede-speedbar-toplevel-buttons|ede-speedbar|ede-subproject-p|ede-subproject-relative-path|ede-system-include-path|ede-tag-expand|ede-tag-find|ede-target-buffer-in-sourcelist|ede-target-buffers|ede-target-child-p|ede-target-forms-menu|ede-target-in-project-p|ede-target-list-p|ede-target-name|ede-target-p|ede-target-parent|ede-target-sourcecode|ede-target|ede-toplevel-project-or-nil|ede-toplevel-project|ede-toplevel|ede-turn-on-hook|ede-up-directory|ede-update-version|ede-upload-distribution|ede-upload-html-documentation|ede-vc-project-directory|ede-version|ede-want-any-auxiliary-files-p|ede-want-any-files-p|ede-want-any-source-files-p|ede-want-file-auxiliary-p|ede-want-file-p|ede-want-file-source-p|ede-web-browse-home|ede-with-projectfile|ede|edebug-&optional-wrapper|edebug-&rest-wrapper|edebug--called-interactively-skip|edebug--display|edebug--enter-trace|edebug--form-data-begin--cmacro|edebug--form-data-begin|edebug--form-data-end--cmacro|edebug--form-data-end|edebug--form-data-name--cmacro|edebug--form-data-name|edebug--make-form-data-entry--cmacro|edebug--make-form-data-entry|edebug--read|edebug--recursive-edit|edebug--require-cl-read|edebug--update-coverage|edebug-Continue-fast-mode|edebug-Go-nonstop-mode|edebug-Trace-fast-mode|edebug-\`|edebug-adjust-window|edebug-after-offset|edebug-after|edebug-all-defuns|edebug-backtrace|edebug-basic-spec|edebug-before-offset|edebug-before|edebug-bounce-point|edebug-changing-windows|edebug-clear-coverage|edebug-clear-form-data-entry|edebug-clear-frequency-count|edebug-compute-previous-result|edebug-continue-mode|edebug-copy-cursor|edebug-create-eval-buffer|edebug-current-windows|edebug-cursor-expressions|edebug-cursor-offsets|edebug-debugger|edebug-defining-form|edebug-delete-eval-item|edebug-empty-cursor|edebug-enter|edebug-eval-defun|edebug-eval-display-list|edebug-eval-display|edebug-eval-expression|edebug-eval-last-sexp|edebug-eval-mode|edebug-eval-print-last-sexp|edebug-eval-redisplay|edebug-eval-result-list|edebug-eval|edebug-fast-after|edebug-fast-before|edebug-find-stop-point|edebug-form-data-symbol|edebug-form|edebug-format|edebug-forms|edebug-forward-sexp|edebug-get-displayed-buffer-points|edebug-get-form-data-entry|edebug-go-mode|edebug-goto-here|edebug-help|edebug-ignore-offset|edebug-inc-offset|edebug-initialize-offsets|edebug-install-read-eval-functions|edebug-instrument-callee|edebug-instrument-function|edebug-interactive-p-name|edebug-kill-buffer|edebug-lambda-list-keywordp|edebug-last-sexp|edebug-list-form-args|edebug-list-form|edebug-make-after-form|edebug-make-before-and-after-form|edebug-make-enter-wrapper|edebug-make-form-wrapper|edebug-make-top-form-data-entry|edebug-mark-marker|edebug-mark|edebug-match-&define|edebug-match-&key|edebug-match-¬|edebug-match-&optional|edebug-match-&or|edebug-match-&rest|edebug-match-arg|edebug-match-body|edebug-match-colon-name|edebug-match-def-body|edebug-match-def-form|edebug-match-form|edebug-match-function|edebug-match-gate|edebug-match-lambda-expr|edebug-match-list|edebug-match-name|edebug-match-nil|edebug-match-one-spec|edebug-match-place|edebug-match-sexp|edebug-match-specs|edebug-match-string|edebug-match-sublist|edebug-match-symbol|edebug-match|edebug-menu|edebug-message|edebug-mode|edebug-modify-breakpoint|edebug-move-cursor|edebug-new-cursor|edebug-next-breakpoint|edebug-next-mode|edebug-next-token-class|edebug-no-match|edebug-on-entry|edebug-outside-excursion|edebug-overlay-arrow|edebug-pop-to-buffer|edebug-previous-result|edebug-prin1-to-string|edebug-prin1|edebug-print|edebug-read-and-maybe-wrap-form|edebug-read-and-maybe-wrap-form1|edebug-read-backquote|edebug-read-comma|edebug-read-function|edebug-read-list|edebug-read-quote|edebug-read-sexp|edebug-read-storing-offsets|edebug-read-string|edebug-read-symbol|edebug-read-top-level-form|edebug-read-vector|edebug-report-error|edebug-restore-status|edebug-run-fast|edebug-run-slow|edebug-safe-eval|edebug-safe-prin1-to-string|edebug-set-breakpoint|edebug-set-buffer-points|edebug-set-conditional-breakpoint|edebug-set-cursor|edebug-set-form-data-entry|edebug-set-mode|edebug-set-windows|edebug-sexps|edebug-signal|edebug-skip-whitespace|edebug-slow-after|edebug-slow-before|edebug-sort-alist|edebug-spec-p|edebug-step-in|edebug-step-mode|edebug-step-out|edebug-step-through-mode|edebug-stop|edebug-store-after-offset|edebug-store-before-offset|edebug-storing-offsets|edebug-syntax-error|edebug-toggle-save-all-windows|edebug-toggle-save-selected-window|edebug-toggle-save-windows|edebug-toggle|edebug-top-element-required|edebug-top-element|edebug-top-level-nonstop|edebug-top-offset|edebug-trace-display|edebug-trace-mode|edebug-uninstall-read-eval-functions|edebug-unload-function|edebug-unset-breakpoint|edebug-unwrap\\\\*|edebug-unwrap|edebug-update-eval-list|edebug-var-status|edebug-view-outside|edebug-visit-eval-list|edebug-where|edebug-window-list|edebug-window-live-p|edebug-wrap-def-body|ediff-3way-comparison-job|ediff-3way-job|ediff-abbrev-jobname|ediff-abbreviate-file-name|ediff-activate-mark|ediff-add-slash-if-directory|ediff-add-to-history|ediff-ancestor-metajob|ediff-append-custom-diff|ediff-arrange-autosave-in-merge-jobs|ediff-background-face|ediff-backup|ediff-barf-if-not-control-buffer|ediff-buffer-live-p|ediff-buffer-type|ediff-buffers-internal|ediff-buffers|ediff-buffers3|ediff-bury-dir-diffs-buffer|ediff-calc-command-time|ediff-change-saved-variable|ediff-char-to-buftype|ediff-check-version|ediff-choose-syntax-table|ediff-choose-window-setup-function-automatically|ediff-cleanup-mess|ediff-cleanup-meta-buffer|ediff-clear-diff-vector|ediff-clear-fine-diff-vector|ediff-clear-fine-differences-in-one-buffer|ediff-clear-fine-differences|ediff-clone-buffer-for-current-diff-comparison|ediff-clone-buffer-for-region-comparison|ediff-clone-buffer-for-window-comparison|ediff-collect-custom-diffs|ediff-collect-diffs-metajob|ediff-color-display-p|ediff-combine-diffs|ediff-comparison-metajob3|ediff-compute-custom-diffs-maybe|ediff-compute-toolbar-width|ediff-convert-diffs-to-overlays|ediff-convert-fine-diffs-to-overlays|ediff-convert-standard-filename|ediff-copy-A-to-B|ediff-copy-A-to-C|ediff-copy-B-to-A|ediff-copy-B-to-C|ediff-copy-C-to-A|ediff-copy-C-to-B|ediff-copy-diff|ediff-copy-list|ediff-copy-to-buffer|ediff-current-file|ediff-customize|ediff-deactivate-mark|ediff-debug-info|ediff-default-suspend-function|ediff-defvar-local|ediff-delete-all-matches|ediff-delete-overlay|ediff-delete-temp-files|ediff-destroy-control-frame|ediff-device-type|ediff-diff-at-point|ediff-diff-to-diff|ediff-diff3-job|ediff-dir-diff-copy-file|ediff-directories-command|ediff-directories-internal|ediff-directories|ediff-directories3-command|ediff-directories3|ediff-directory-revisions-internal|ediff-directory-revisions|ediff-display-pixel-height|ediff-display-pixel-width|ediff-dispose-of-meta-buffer|ediff-dispose-of-variant-according-to-user|ediff-do-merge|ediff-documentation|ediff-draw-dir-diffs|ediff-empty-diff-region-p|ediff-empty-overlay-p|ediff-event-buffer|ediff-event-key|ediff-event-point|ediff-exec-process|ediff-extract-diffs|ediff-extract-diffs3|ediff-file-attributes|ediff-file-checked-in-p|ediff-file-checked-out-p|ediff-file-compressed-p|ediff-file-modtime|ediff-file-remote-p|ediff-file-size|ediff-filegroup-action|ediff-filename-magic-p|ediff-files-command|ediff-files-internal|ediff-files|ediff-files3|ediff-fill-leading-zero|ediff-find-file|ediff-focus-on-regexp-matches|ediff-format-bindings-of|ediff-format-date|ediff-forward-word|ediff-frame-char-height|ediff-frame-char-width|ediff-frame-has-dedicated-windows|ediff-frame-iconified-p|ediff-frame-unsplittable-p|ediff-get-buffer|ediff-get-combined-region|ediff-get-default-directory-name|ediff-get-default-file-name|ediff-get-diff-overlay-from-diff-record|ediff-get-diff-overlay|ediff-get-diff-posn|ediff-get-diff3-group|ediff-get-difference|ediff-get-directory-files-under-revision|ediff-get-file-eqstatus|ediff-get-fine-diff-vector-from-diff-record|ediff-get-fine-diff-vector|ediff-get-group-buffer|ediff-get-group-comparison-func|ediff-get-group-merge-autostore-dir|ediff-get-group-objA|ediff-get-group-objB|ediff-get-group-objC|ediff-get-group-regexp|ediff-get-lines-to-region-end|ediff-get-lines-to-region-start|ediff-get-meta-info|ediff-get-meta-overlay-at-pos|ediff-get-next-window|ediff-get-region-contents|ediff-get-region-size-coefficient|ediff-get-selected-buffers|ediff-get-session-activity-marker|ediff-get-session-buffer|ediff-get-session-number-at-pos|ediff-get-session-objA-name|ediff-get-session-objA|ediff-get-session-objB-name|ediff-get-session-objB|ediff-get-session-objC-name|ediff-get-session-objC|ediff-get-session-status|ediff-get-state-of-ancestor|ediff-get-state-of-diff|ediff-get-state-of-merge|ediff-get-symbol-from-alist|ediff-get-value-according-to-buffer-type|ediff-get-visible-buffer-window|ediff-get-window-by-clicking|ediff-good-frame-under-mouse|ediff-goto-word|ediff-has-face-support-p|ediff-has-gutter-support-p|ediff-has-toolbar-support-p|ediff-help-for-quick-help|ediff-help-message-line-length|ediff-hide-face|ediff-hide-marked-sessions|ediff-hide-regexp-matches|ediff-highlight-diff-in-one-buffer|ediff-highlight-diff|ediff-in-control-buffer-p|ediff-indent-help-message|ediff-inferior-compare-regions|ediff-insert-dirs-in-meta-buffer|ediff-insert-session-activity-marker-in-meta-buffer|ediff-insert-session-info-in-meta-buffer|ediff-insert-session-status-in-meta-buffer|ediff-install-fine-diff-if-necessary|ediff-intersect-directories|ediff-intersection|ediff-janitor|ediff-jump-to-difference-at-point|ediff-jump-to-difference|ediff-keep-window-config|ediff-key-press-event-p|ediff-kill-bottom-toolbar|ediff-kill-buffer-carefully|ediff-last-command-char|ediff-listable-file|ediff-load-version-control|ediff-looks-like-combined-merge|ediff-make-base-title|ediff-make-bottom-toolbar|ediff-make-bullet-proof-overlay|ediff-make-cloned-buffer|ediff-make-current-diff-overlay|ediff-make-diff2-buffer|ediff-make-empty-tmp-file|ediff-make-fine-diffs|ediff-make-frame-position|ediff-make-indirect-buffer|ediff-make-narrow-control-buffer-id|ediff-make-new-meta-list-element|ediff-make-new-meta-list-header|ediff-make-or-kill-fine-diffs|ediff-make-overlay|ediff-make-temp-file|ediff-make-wide-control-buffer-id|ediff-make-wide-display|ediff-mark-diff-as-space-only|ediff-mark-for-hiding-at-pos|ediff-mark-for-operation-at-pos|ediff-mark-if-equal|ediff-mark-session-for-hiding|ediff-mark-session-for-operation|ediff-maybe-checkout|ediff-maybe-save-and-delete-merge|ediff-member|ediff-merge-buffers-with-ancestor|ediff-merge-buffers|ediff-merge-changed-from-default-p|ediff-merge-command|ediff-merge-directories-command|ediff-merge-directories-with-ancestor-command)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:ediff-merge-directories-with-ancestor|ediff-merge-directories|ediff-merge-directory-revisions-with-ancestor|ediff-merge-directory-revisions|ediff-merge-files-with-ancestor|ediff-merge-files|ediff-merge-job|ediff-merge-metajob|ediff-merge-on-startup|ediff-merge-region-is-non-clash-to-skip|ediff-merge-region-is-non-clash|ediff-merge-revisions-with-ancestor|ediff-merge-revisions|ediff-merge-with-ancestor-command|ediff-merge-with-ancestor-job|ediff-merge-with-ancestor|ediff-merge|ediff-message-if-verbose|ediff-meta-insert-file-info1|ediff-meta-mark-equal-files|ediff-meta-mode|ediff-meta-session-p|ediff-meta-show-patch|ediff-metajob3|ediff-minibuffer-with-setup-hook|ediff-mode|ediff-mouse-event-p|ediff-move-overlay|ediff-multiframe-setup-p|ediff-narrow-control-frame-p|ediff-narrow-job|ediff-next-difference|ediff-next-meta-item|ediff-next-meta-item1|ediff-next-meta-overlay-start|ediff-no-fine-diffs-p|ediff-nonempty-string-p|ediff-nuke-selective-display|ediff-one-filegroup-metajob|ediff-operate-on-marked-sessions|ediff-operate-on-windows|ediff-other-buffer|ediff-overlay-buffer|ediff-overlay-end|ediff-overlay-get|ediff-overlay-put|ediff-overlay-start|ediff-overlayp|ediff-paint-background-regions-in-one-buffer|ediff-paint-background-regions|ediff-patch-buffer|ediff-patch-file-form-meta|ediff-patch-file-internal|ediff-patch-file|ediff-patch-job|ediff-patch-metajob|ediff-place-flags-in-buffer|ediff-place-flags-in-buffer1|ediff-pop-diff|ediff-position-region|ediff-prepare-error-list|ediff-prepare-meta-buffer|ediff-previous-difference|ediff-previous-meta-item|ediff-previous-meta-item1|ediff-previous-meta-overlay-start|ediff-print-diff-vector|ediff-problematic-session-p|ediff-process-filter|ediff-process-sentinel|ediff-profile|ediff-quit-meta-buffer|ediff-quit|ediff-re-merge|ediff-read-event|ediff-read-file-name|ediff-really-quit|ediff-recenter-ancestor|ediff-recenter-one-window|ediff-recenter|ediff-redraw-directory-group-buffer|ediff-redraw-registry-buffer|ediff-refresh-control-frame|ediff-refresh-mode-lines|ediff-region-help-echo|ediff-regions-internal|ediff-regions-linewise|ediff-regions-wordwise|ediff-registry-action|ediff-reload-keymap|ediff-remove-flags-from-buffer|ediff-replace-session-activity-marker-in-meta-buffer|ediff-replace-session-status-in-meta-buffer|ediff-reset-mouse|ediff-restore-diff-in-merge-buffer|ediff-restore-diff|ediff-restore-highlighting|ediff-restore-protected-variables|ediff-restore-variables|ediff-revert-buffers-then-recompute-diffs|ediff-revision-metajob|ediff-revision|ediff-safe-to-quit|ediff-same-contents|ediff-same-file-contents-lists|ediff-same-file-contents|ediff-save-buffer-in-file|ediff-save-buffer|ediff-save-diff-region|ediff-save-protected-variables|ediff-save-time|ediff-save-variables|ediff-scroll-horizontally|ediff-scroll-vertically|ediff-select-difference|ediff-select-lowest-window|ediff-set-actual-diff-options|ediff-set-diff-options|ediff-set-diff-overlays-in-one-buffer|ediff-set-difference|ediff-set-face-pixmap|ediff-set-file-eqstatus|ediff-set-fine-diff-properties-in-one-buffer|ediff-set-fine-diff-properties|ediff-set-fine-diff-vector|ediff-set-fine-overlays-for-combined-merge|ediff-set-fine-overlays-in-one-buffer|ediff-set-help-message|ediff-set-help-overlays|ediff-set-keys|ediff-set-merge-mode|ediff-set-meta-overlay|ediff-set-overlay-face|ediff-set-read-only-in-buf-A|ediff-set-session-status|ediff-set-state-of-all-diffs-in-all-buffers|ediff-set-state-of-diff-in-all-buffers|ediff-set-state-of-diff|ediff-set-state-of-merge|ediff-setup-control-buffer|ediff-setup-control-frame|ediff-setup-diff-regions|ediff-setup-diff-regions3|ediff-setup-fine-diff-regions|ediff-setup-keymap|ediff-setup-meta-map|ediff-setup-windows-default|ediff-setup-windows-multiframe-compare|ediff-setup-windows-multiframe-merge|ediff-setup-windows-multiframe|ediff-setup-windows-plain-compare|ediff-setup-windows-plain-merge|ediff-setup-windows-plain|ediff-setup-windows|ediff-setup|ediff-show-all-diffs|ediff-show-ancestor|ediff-show-current-session-meta-buffer|ediff-show-diff-output|ediff-show-dir-diffs|ediff-show-meta-buff-from-registry|ediff-show-meta-buffer|ediff-show-registry|ediff-shrink-window-C|ediff-skip-merge-region-if-changed-from-default-p|ediff-skip-unsuitable-frames|ediff-spy-after-mouse|ediff-status-info|ediff-strip-last-dir|ediff-strip-mode-line-format|ediff-submit-report|ediff-suspend|ediff-swap-buffers|ediff-test-save-region|ediff-toggle-autorefine|ediff-toggle-filename-truncation|ediff-toggle-help|ediff-toggle-hilit|ediff-toggle-ignore-case|ediff-toggle-multiframe|ediff-toggle-narrow-region|ediff-toggle-read-only|ediff-toggle-regexp-match|ediff-toggle-show-clashes-only|ediff-toggle-skip-changed-regions|ediff-toggle-skip-similar|ediff-toggle-split|ediff-toggle-use-toolbar|ediff-toggle-verbose-help-meta-buffer|ediff-toggle-wide-display|ediff-truncate-string-left|ediff-unhighlight-diff-in-one-buffer|ediff-unhighlight-diff|ediff-unhighlight-diffs-totally-in-one-buffer|ediff-unhighlight-diffs-totally|ediff-union|ediff-unique-buffer-name|ediff-unmark-all-for-hiding|ediff-unmark-all-for-operation|ediff-unselect-and-select-difference|ediff-unselect-difference|ediff-up-meta-hierarchy|ediff-update-diffs|ediff-update-markers-in-dir-meta-buffer|ediff-update-meta-buffer|ediff-update-registry|ediff-update-session-marker-in-dir-meta-buffer|ediff-use-toolbar-p|ediff-user-grabbed-mouse|ediff-valid-difference-p|ediff-verify-file-buffer|ediff-verify-file-merge-buffer|ediff-version|ediff-visible-region|ediff-whitespace-diff-region-p|ediff-window-display-p|ediff-window-ok-for-display|ediff-window-visible-p|ediff-windows-job|ediff-windows-linewise|ediff-windows-wordwise|ediff-windows|ediff-with-current-buffer|ediff-with-syntax-table|ediff-word-mode-job|ediff-wordify|ediff-write-merge-buffer-and-maybe-kill|ediff-xemacs-select-frame-hook|ediff|ediff3-files-command|ediff3|edir-merge-revisions-with-ancestor|edir-merge-revisions|edir-revisions|edirs-merge-with-ancestor|edirs-merge|edirs|edirs3|edit-abbrevs-mode|edit-abbrevs-redefine|edit-abbrevs|edit-bookmarks|edit-kbd-macro|edit-last-kbd-macro|edit-named-kbd-macro|edit-picture|edit-tab-stops-note-changes|edit-tab-stops|edmacro-finish-edit|edmacro-fix-menu-commands|edmacro-format-keys|edmacro-insert-key|edmacro-mode|edmacro-parse-keys|edmacro-sanitize-for-string|edt-advance|edt-append|edt-backup|edt-beginning-of-line|edt-bind-function-key-default|edt-bind-function-key|edt-bind-gold-key-default|edt-bind-gold-key|edt-bind-key-default|edt-bind-key|edt-bind-standard-key|edt-bottom-check|edt-bottom|edt-change-case|edt-change-direction|edt-character|edt-check-match|edt-check-prefix|edt-check-selection|edt-copy-rectangle|edt-copy|edt-current-line|edt-cut-or-copy|edt-cut-rectangle-insert-mode|edt-cut-rectangle-overstrike-mode|edt-cut-rectangle|edt-cut|edt-default-emulation-setup|edt-default-menu-bar-update-buffers|edt-define-key|edt-delete-character|edt-delete-entire-line|edt-delete-line|edt-delete-previous-character|edt-delete-to-beginning-of-line|edt-delete-to-beginning-of-word|edt-delete-to-end-of-line|edt-delete-word|edt-display-the-time|edt-duplicate-line|edt-duplicate-word|edt-electric-helpify|edt-electric-keypad-help|edt-electric-user-keypad-help|edt-eliminate-all-tabs|edt-emulation-off|edt-emulation-on|edt-end-of-line-backward|edt-end-of-line-forward|edt-end-of-line|edt-exit|edt-fill-region|edt-find-backward|edt-find-forward|edt-find-next-backward|edt-find-next-forward|edt-find-next|edt-find|edt-form-feed-insert|edt-goto-percentage|edt-indent-or-fill-region|edt-key-not-assigned|edt-keypad-help|edt-learn|edt-line-backward|edt-line-forward|edt-line-to-bottom-of-window|edt-line-to-middle-of-window|edt-line-to-top-of-window|edt-line|edt-load-keys|edt-lowercase|edt-mark-section-wisely|edt-match-beginning|edt-match-end|edt-next-line|edt-one-word-backward|edt-one-word-forward|edt-page-backward|edt-page-forward|edt-page|edt-paragraph-backward|edt-paragraph-forward|edt-paragraph|edt-paste-rectangle-insert-mode|edt-paste-rectangle-overstrike-mode|edt-paste-rectangle|edt-previous-line|edt-quit|edt-remember|edt-replace|edt-reset|edt-restore-key|edt-scroll-line|edt-scroll-window-backward-line|edt-scroll-window-backward|edt-scroll-window-forward-line|edt-scroll-window-forward|edt-scroll-window|edt-sect-backward|edt-sect-forward|edt-sect|edt-select-default-global-map|edt-select-mode|edt-select-user-global-map|edt-select|edt-sentence-backward|edt-sentence-forward|edt-sentence|edt-set-match|edt-set-screen-width-132|edt-set-screen-width-80|edt-set-scroll-margins|edt-setup-default-bindings|edt-show-match-markers|edt-split-window|edt-substitute|edt-switch-global-maps|edt-tab-insert|edt-toggle-capitalization-of-word|edt-toggle-select|edt-top-check|edt-top|edt-undelete-character|edt-undelete-line|edt-undelete-word|edt-unset-match|edt-uppercase|edt-user-emulation-setup|edt-user-menu-bar-update-buffers|edt-window-bottom|edt-window-top|edt-with-position|edt-word-backward|edt-word-forward|edt-word|edt-y-or-n-p|ehelp-command|eieio--check-type|eieio--class--unused-0|eieio--class-children|eieio--class-class-allocation-a|eieio--class-class-allocation-custom-group|eieio--class-class-allocation-custom-label|eieio--class-class-allocation-custom|eieio--class-class-allocation-doc|eieio--class-class-allocation-printer|eieio--class-class-allocation-protection|eieio--class-class-allocation-type|eieio--class-class-allocation-values|eieio--class-default-object-cache|eieio--class-initarg-tuples|eieio--class-options|eieio--class-parent|eieio--class-protection|eieio--class-public-a|eieio--class-public-custom-group|eieio--class-public-custom-label|eieio--class-public-custom|eieio--class-public-d|eieio--class-public-doc|eieio--class-public-printer|eieio--class-public-type|eieio--class-symbol-obarray|eieio--class-symbol|eieio--defalias|eieio--defgeneric-init-form|eieio--define-field-accessors|eieio--defmethod|eieio--object--unused-0|eieio--object-class|eieio--object-name|eieio--scoped-class|eieio--with-scoped-class|eieio-add-new-slot|eieio-attribute-to-initarg|eieio-barf-if-slot-unbound|eieio-browse|eieio-c3-candidate|eieio-c3-merge-lists|eieio-class-children-fast|eieio-class-children|eieio-class-name|eieio-class-parent|eieio-class-parents-fast|eieio-class-parents|eieio-class-precedence-bfs|eieio-class-precedence-c3|eieio-class-precedence-dfs|eieio-class-precedence-list|eieio-class-slot-name-index|eieio-class-un-autoload|eieio-copy-parents-into-subclass|eieio-custom-mode|eieio-custom-object-apply-reset|eieio-custom-toggle-hide|eieio-custom-toggle-parent|eieio-custom-widget-insert|eieio-customize-object-group|eieio-customize-object|eieio-default-eval-maybe|eieio-default-superclass-child-p|eieio-default-superclass-list-p|eieio-default-superclass-p|eieio-default-superclass|eieio-defclass-autoload|eieio-defclass|eieio-defgeneric-form-primary-only-one|eieio-defgeneric-form-primary-only|eieio-defgeneric-form|eieio-defgeneric-reset-generic-form-primary-only-one|eieio-defgeneric-reset-generic-form-primary-only|eieio-defgeneric-reset-generic-form|eieio-defgeneric|eieio-defmethod|eieio-done-customizing|eieio-edebug-prin1-to-string|eieio-eval-default-p|eieio-filter-slot-type|eieio-generic-call-primary-only|eieio-generic-call|eieio-generic-form|eieio-help-class|eieio-help-constructor|eieio-help-generic|eieio-initarg-to-attribute|eieio-instance-inheritor-child-p|eieio-instance-inheritor-list-p|eieio-instance-inheritor-p|eieio-instance-inheritor-slot-boundp|eieio-instance-inheritor|eieio-instance-tracker-child-p|eieio-instance-tracker-find|eieio-instance-tracker-list-p|eieio-instance-tracker-p|eieio-instance-tracker|eieio-list-prin1|eieio-named-child-p|eieio-named-list-p|eieio-named-p|eieio-named|eieio-object-abstract-to-value|eieio-object-class-name|eieio-object-class|eieio-object-match|eieio-object-name-string|eieio-object-name|eieio-object-p|eieio-object-set-name-string|eieio-object-value-create|eieio-object-value-get|eieio-object-value-to-abstract|eieio-oref-default|eieio-oref|eieio-oset-default|eieio-oset|eieio-override-prin1|eieio-perform-slot-validation-for-default|eieio-perform-slot-validation|eieio-persistent-child-p|eieio-persistent-convert-list-to-object|eieio-persistent-list-p|eieio-persistent-p|eieio-persistent-path-relative)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:eieio-persistent-read|eieio-persistent-save-interactive|eieio-persistent-save|eieio-persistent-slot-type-is-class-p|eieio-persistent-validate\\\\/fix-slot-value|eieio-persistent|eieio-read-customization-group|eieio-set-defaults|eieio-singleton-child-p|eieio-singleton-list-p|eieio-singleton-p|eieio-singleton|eieio-slot-name-index|eieio-slot-originating-class-p|eieio-slot-value-create|eieio-slot-value-get|eieio-specialized-key-to-generic-key|eieio-speedbar-buttons|eieio-speedbar-child-description|eieio-speedbar-child-make-tag-lines|eieio-speedbar-child-p|eieio-speedbar-create-engine|eieio-speedbar-create|eieio-speedbar-customize-line|eieio-speedbar-derive-line-path|eieio-speedbar-description|eieio-speedbar-directory-button-child-p|eieio-speedbar-directory-button-list-p|eieio-speedbar-directory-button-p|eieio-speedbar-directory-button|eieio-speedbar-expand|eieio-speedbar-file-button-child-p|eieio-speedbar-file-button-list-p|eieio-speedbar-file-button-p|eieio-speedbar-file-button|eieio-speedbar-find-nearest-object|eieio-speedbar-handle-click|eieio-speedbar-item-info|eieio-speedbar-line-path|eieio-speedbar-list-p|eieio-speedbar-make-map|eieio-speedbar-make-tag-line|eieio-speedbar-object-buttonname|eieio-speedbar-object-children|eieio-speedbar-object-click|eieio-speedbar-object-expand|eieio-speedbar-p|eieio-speedbar|eieio-unbind-method-implementations|eieio-validate-class-slot-value|eieio-validate-slot-value|eieio-version|eieio-widget-test-class-child-p|eieio-widget-test-class-list-p|eieio-widget-test-class-p|eieio-widget-test-class|eieiomt-add|eieiomt-install|eieiomt-method-list|eieiomt-next|eieiomt-sym-optimize|eighth|eldoc--message-command-p|eldoc-add-command-completions|eldoc-add-command|eldoc-display-message-no-interference-p|eldoc-display-message-p|eldoc-edit-message-commands|eldoc-message|eldoc-minibuffer-message|eldoc-mode|eldoc-pre-command-refresh-echo-area|eldoc-print-current-symbol-info|eldoc-remove-command-completions|eldoc-remove-command|eldoc-schedule-timer|electric--after-char-pos|electric--sort-post-self-insertion-hook|electric-apropos|electric-buffer-list|electric-buffer-menu-looper|electric-buffer-menu-mode|electric-buffer-update-highlight|electric-command-apropos|electric-describe-bindings|electric-describe-function|electric-describe-key|electric-describe-mode|electric-describe-syntax|electric-describe-variable|electric-help-command-loop|electric-help-ctrl-x-prefix|electric-help-execute-extended|electric-help-exit|electric-help-help|electric-help-mode|electric-help-retain|electric-help-undefined|electric-helpify|electric-icon-brace|electric-indent-just-newline|electric-indent-local-mode|electric-indent-mode|electric-indent-post-self-insert-function|electric-layout-mode|electric-layout-post-self-insert-function|electric-newline-and-maybe-indent|electric-nroff-mode|electric-nroff-newline|electric-pair-mode|electric-pascal-colon|electric-pascal-equal|electric-pascal-hash|electric-pascal-semi-or-dot|electric-pascal-tab|electric-pascal-terminate-line|electric-perl-terminator|electric-verilog-backward-sexp|electric-verilog-colon|electric-verilog-forward-sexp|electric-verilog-semi-with-comment|electric-verilog-semi|electric-verilog-tab|electric-verilog-terminate-and-indent|electric-verilog-terminate-line|electric-verilog-tick|electric-view-lossage|el-get[-\\\\w]*|elide-head-show|elide-head|elint-add-required-env|elint-check-cond-form|elint-check-condition-case-form|elint-check-conditional-form|elint-check-defalias-form|elint-check-defcustom-form|elint-check-defun-form|elint-check-defvar-form|elint-check-function-form|elint-check-let-form|elint-check-macro-form|elint-check-quote-form|elint-check-setq-form|elint-clear-log|elint-current-buffer|elint-defun|elint-directory|elint-display-log|elint-env-add-env|elint-env-add-func|elint-env-add-global-var|elint-env-add-macro|elint-env-add-var|elint-env-find-func|elint-env-find-var|elint-env-macro-env|elint-env-macrop|elint-error|elint-file|elint-find-args-in-code|elint-find-autoloaded-variables|elint-find-builtin-args|elint-find-builtins|elint-find-next-top-form|elint-form|elint-forms|elint-get-args|elint-get-log-buffer|elint-get-top-forms|elint-init-env|elint-init-form|elint-initialize|elint-log-message|elint-log|elint-make-env|elint-make-top-form|elint-match-args|elint-output|elint-put-function-args|elint-scan-doc-file|elint-set-mode-line|elint-top-form-form|elint-top-form-pos|elint-top-form|elint-unbound-variable|elint-update-env|elint-warning|elisp--beginning-of-sexp|elisp--byte-code-comment|elisp--company-doc-buffer|elisp--company-doc-string|elisp--company-location|elisp--current-symbol|elisp--docstring-first-line|elisp--docstring-format-sym-doc|elisp--eval-defun-1|elisp--eval-defun|elisp--eval-last-sexp-print-value|elisp--eval-last-sexp|elisp--expect-function-p|elisp--fnsym-in-current-sexp|elisp--form-quoted-p|elisp--function-argstring|elisp--get-fnsym-args-string|elisp--get-var-docstring|elisp--highlight-function-argument|elisp--last-data-store|elisp--local-variables-1|elisp--local-variables|elisp--preceding-sexp|elisp--xref-find-apropos|elisp--xref-find-definitions|elisp--xref-identifier-completion-table|elisp--xref-identifier-file|elisp-byte-code-mode|elisp-byte-code-syntax-propertize|elisp-completion-at-point|elisp-eldoc-documentation-function|elisp-index-search|elisp-last-sexp-toggle-display|elisp-xref-find|elp--instrumented-p|elp--make-wrapper|elp-elapsed-time|elp-instrument-function|elp-instrument-list|elp-instrument-package|elp-output-insert-symname|elp-output-result|elp-pack-number|elp-profilable-p|elp-reset-all|elp-reset-function|elp-reset-list|elp-restore-all|elp-restore-function|elp-restore-list|elp-results-jump-to-definition|elp-results|elp-set-master|elp-sort-by-average-time|elp-sort-by-call-count|elp-sort-by-total-time|elp-unload-function|elp-unset-master|emacs-bzr-get-version|emacs-bzr-version-bzr|emacs-bzr-version-dirstate|emacs-index-search|emacs-lisp-byte-compile-and-load|emacs-lisp-byte-compile|emacs-lisp-macroexpand|emacs-lisp-mode|emacs-lock--can-auto-unlock|emacs-lock--exit-locked-buffer|emacs-lock--kill-buffer-query-functions|emacs-lock--kill-emacs-hook|emacs-lock--kill-emacs-query-functions|emacs-lock--set-mode|emacs-lock-live-process-p|emacs-lock-mode|emacs-lock-unload-function|emacs-repository-get-version|emacs-session-filename|emacs-session-save|emerge-abort|emerge-auto-advance|emerge-buffers-with-ancestor|emerge-buffers|emerge-combine-versions-edit|emerge-combine-versions-internal|emerge-combine-versions-register|emerge-combine-versions|emerge-command-exit|emerge-compare-buffers|emerge-convert-diffs-to-markers|emerge-copy-as-kill-A|emerge-copy-as-kill-B|emerge-copy-modes|emerge-count-matches-string|emerge-default-A|emerge-default-B|emerge-define-key-if-possible|emerge-defvar-local|emerge-edit-mode|emerge-execute-line|emerge-extract-diffs|emerge-extract-diffs3|emerge-fast-mode|emerge-file-names|emerge-files-command|emerge-files-exit|emerge-files-internal|emerge-files-remote|emerge-files-with-ancestor-command|emerge-files-with-ancestor-internal|emerge-files-with-ancestor-remote|emerge-files-with-ancestor|emerge-files|emerge-find-difference-A|emerge-find-difference-B|emerge-find-difference-merge|emerge-find-difference|emerge-find-difference1|emerge-force-define-key|emerge-get-diff3-group|emerge-goto-line|emerge-handle-local-variables|emerge-hash-string-into-string|emerge-insert-A|emerge-insert-B|emerge-join-differences|emerge-jump-to-difference|emerge-line-number-in-buf|emerge-line-numbers|emerge-make-auto-save-file-name|emerge-make-diff-list|emerge-make-diff3-list|emerge-make-temp-file|emerge-mark-difference|emerge-merge-directories|emerge-mode|emerge-new-flags|emerge-next-difference|emerge-one-line-window|emerge-operate-on-windows|emerge-place-flags-in-buffer|emerge-place-flags-in-buffer1|emerge-position-region|emerge-prepare-error-list|emerge-previous-difference|emerge-protect-metachars|emerge-query-and-call|emerge-query-save-buffer|emerge-query-write-file|emerge-quit|emerge-read-file-name|emerge-really-quit|emerge-recenter|emerge-refresh-mode-line|emerge-remember-buffer-characteristics|emerge-remote-exit|emerge-remove-flags-in-buffer|emerge-restore-buffer-characteristics|emerge-restore-variables|emerge-revision-with-ancestor-internal|emerge-revisions-internal|emerge-revisions-with-ancestor|emerge-revisions|emerge-save-variables|emerge-scroll-down|emerge-scroll-left|emerge-scroll-reset|emerge-scroll-right|emerge-scroll-up|emerge-select-A-edit|emerge-select-A|emerge-select-B-edit|emerge-select-B|emerge-select-difference|emerge-select-prefer-Bs|emerge-select-version|emerge-set-combine-template|emerge-set-combine-versions-template|emerge-set-keys|emerge-set-merge-mode|emerge-setup-fixed-keymaps|emerge-setup-windows|emerge-setup-with-ancestor|emerge-setup|emerge-show-file-name|emerge-skip-prefers|emerge-split-difference|emerge-trim-difference|emerge-unique-buffer-name|emerge-unselect-and-select-difference|emerge-unselect-difference|emerge-unslashify-name|emerge-validate-difference|emerge-verify-file-buffer|emerge-write-and-delete|en\\\\/disable-command|enable-flow-control-on|enable-flow-control|encode-big5-char|encode-coding-char|encode-composition-components|encode-composition-rule|encode-hex-string|encode-hz-buffer|encode-hz-region|encode-sjis-char|encode-time-value|encoded-string-description|end-kbd-macro|end-of-buffer-other-window|end-of-icon-defun|end-of-paragraph-text|end-of-sexp|end-of-thing|end-of-visible-line|end-of-visual-line|endp|enlarge-window-horizontally|enlarge-window|enriched-after-change-major-mode|enriched-before-change-major-mode|enriched-decode-background|enriched-decode-display-prop|enriched-decode-foreground|enriched-decode|enriched-encode-other-face|enriched-encode|enriched-face-ans|enriched-get-file-width|enriched-handle-display-prop|enriched-insert-indentation|enriched-make-annotation|enriched-map-property-regions|enriched-mode-map|enriched-mode|enriched-next-annotation|enriched-remove-header|epa--decode-coding-string|epa--derived-mode-p|epa--encode-coding-string|epa--find-coding-system-for-mime-charset|epa--insert-keys|epa--key-list-revert-buffer|epa--key-widget-action|epa--key-widget-button-face-get|epa--key-widget-help-echo|epa--key-widget-value-create|epa--list-keys|epa--marked-keys|epa--read-signature-type|epa--select-keys|epa--select-safe-coding-system|epa--show-key|epa-decrypt-armor-in-region|epa-decrypt-file|epa-decrypt-region|epa-delete-keys|epa-dired-do-decrypt|epa-dired-do-encrypt|epa-dired-do-sign|epa-dired-do-verify|epa-display-error|epa-display-info|epa-display-verify-result|epa-encrypt-file|epa-encrypt-region|epa-exit-buffer|epa-export-keys|epa-file--file-name-regexp-set|epa-file-disable|epa-file-enable|epa-file-find-file-hook|epa-file-handler|epa-file-name-regexp-update|epa-global-mail-mode|epa-import-armor-in-region|epa-import-keys-region|epa-import-keys|epa-info-mode|epa-insert-keys|epa-key-list-mode|epa-key-mode|epa-list-keys|epa-list-secret-keys|epa-mail-decrypt|epa-mail-encrypt|epa-mail-import-keys|epa-mail-mode|epa-mail-sign|epa-mail-verify|epa-mark-key|epa-passphrase-callback-function|epa-progress-callback-function|epa-read-file-name|epa-select-keys|epa-sign-file|epa-sign-region|epa-unmark-key|epa-verify-cleartext-in-region|epa-verify-file|epa-verify-region|epatch-buffer|epatch|epg--args-from-sig-notations|epg--check-error-for-decrypt|epg--clear-string|epg--decode-coding-string|epg--decode-hexstring|epg--decode-percent-escape|epg--decode-quotedstring|epg--encode-coding-string|epg--gv-nreverse|epg--import-keys-1|epg--list-keys-1|epg--make-sub-key-1|epg--make-temp-file|epg--process-filter|epg--prompt-GET_BOOL-untrusted_key\\\\.override|epg--prompt-GET_BOOL|epg--start|epg--status-\\\\*SIG|epg--status-BADARMOR|epg--status-BADSIG|epg--status-DECRYPTION_FAILED|epg--status-DECRYPTION_OKAY|epg--status-DELETE_PROBLEM|epg--status-ENC_TO|epg--status-ERRSIG|epg--status-EXPKEYSIG|epg--status-EXPSIG|epg--status-GET_BOOL|epg--status-GET_HIDDEN|epg--status-GET_LINE|epg--status-GOODSIG|epg--status-IMPORTED|epg--status-IMPORT_OK|epg--status-IMPORT_PROBLEM|epg--status-IMPORT_RES|epg--status-INV_RECP|epg--status-INV_SGNR|epg--status-KEYEXPIRED|epg--status-KEYREVOKED|epg--status-KEY_CREATED|epg--status-KEY_NOT_CREATED|epg--status-NEED_PASSPHRASE|epg--status-NEED_PASSPHRASE_PIN|epg--status-NEED_PASSPHRASE_SYM|epg--status-NODATA)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:epg--status-NOTATION_DATA|epg--status-NOTATION_NAME|epg--status-NO_PUBKEY|epg--status-NO_RECP|epg--status-NO_SECKEY|epg--status-NO_SGNR|epg--status-POLICY_URL|epg--status-PROGRESS|epg--status-REVKEYSIG|epg--status-SIG_CREATED|epg--status-TRUST_FULLY|epg--status-TRUST_MARGINAL|epg--status-TRUST_NEVER|epg--status-TRUST_ULTIMATE|epg--status-TRUST_UNDEFINED|epg--status-UNEXPECTED|epg--status-USERID_HINT|epg--status-VALIDSIG|epg--time-from-seconds|epg-cancel|epg-check-configuration|epg-config--compare-version|epg-config--parse-version|epg-configuration|epg-context--make|epg-context-armor--cmacro|epg-context-armor|epg-context-cipher-algorithm--cmacro|epg-context-cipher-algorithm|epg-context-compress-algorithm--cmacro|epg-context-compress-algorithm|epg-context-digest-algorithm--cmacro|epg-context-digest-algorithm|epg-context-edit-callback--cmacro|epg-context-edit-callback|epg-context-error-output--cmacro|epg-context-error-output|epg-context-home-directory--cmacro|epg-context-home-directory|epg-context-include-certs--cmacro|epg-context-include-certs|epg-context-operation--cmacro|epg-context-operation|epg-context-output-file--cmacro|epg-context-output-file|epg-context-passphrase-callback--cmacro|epg-context-passphrase-callback|epg-context-pinentry-mode--cmacro|epg-context-pinentry-mode|epg-context-process--cmacro|epg-context-process|epg-context-program--cmacro|epg-context-program|epg-context-progress-callback--cmacro|epg-context-progress-callback|epg-context-protocol--cmacro|epg-context-protocol|epg-context-result--cmacro|epg-context-result-for|epg-context-result|epg-context-set-armor|epg-context-set-passphrase-callback|epg-context-set-progress-callback|epg-context-set-result-for|epg-context-set-signers|epg-context-set-textmode|epg-context-sig-notations--cmacro|epg-context-sig-notations|epg-context-signers--cmacro|epg-context-signers|epg-context-textmode--cmacro|epg-context-textmode|epg-data-file--cmacro|epg-data-file|epg-data-string--cmacro|epg-data-string|epg-decode-dn|epg-decrypt-file|epg-decrypt-string|epg-delete-keys|epg-delete-output-file|epg-dn-from-string|epg-edit-key|epg-encrypt-file|epg-encrypt-string|epg-error-to-string|epg-errors-to-string|epg-expand-group|epg-export-keys-to-file|epg-export-keys-to-string|epg-generate-key-from-file|epg-generate-key-from-string|epg-import-keys-from-file|epg-import-keys-from-server|epg-import-keys-from-string|epg-import-result-considered--cmacro|epg-import-result-considered|epg-import-result-imported--cmacro|epg-import-result-imported-rsa--cmacro|epg-import-result-imported-rsa|epg-import-result-imported|epg-import-result-imports--cmacro|epg-import-result-imports|epg-import-result-new-revocations--cmacro|epg-import-result-new-revocations|epg-import-result-new-signatures--cmacro|epg-import-result-new-signatures|epg-import-result-new-sub-keys--cmacro|epg-import-result-new-sub-keys|epg-import-result-new-user-ids--cmacro|epg-import-result-new-user-ids|epg-import-result-no-user-id--cmacro|epg-import-result-no-user-id|epg-import-result-not-imported--cmacro|epg-import-result-not-imported|epg-import-result-secret-imported--cmacro|epg-import-result-secret-imported|epg-import-result-secret-read--cmacro|epg-import-result-secret-read|epg-import-result-secret-unchanged--cmacro|epg-import-result-secret-unchanged|epg-import-result-to-string|epg-import-result-unchanged--cmacro|epg-import-result-unchanged|epg-import-status-fingerprint--cmacro|epg-import-status-fingerprint|epg-import-status-new--cmacro|epg-import-status-new|epg-import-status-reason--cmacro|epg-import-status-reason|epg-import-status-secret--cmacro|epg-import-status-secret|epg-import-status-signature--cmacro|epg-import-status-signature|epg-import-status-sub-key--cmacro|epg-import-status-sub-key|epg-import-status-user-id--cmacro|epg-import-status-user-id|epg-key-owner-trust--cmacro|epg-key-owner-trust|epg-key-signature-class--cmacro|epg-key-signature-class|epg-key-signature-creation-time--cmacro|epg-key-signature-creation-time|epg-key-signature-expiration-time--cmacro|epg-key-signature-expiration-time|epg-key-signature-exportable-p--cmacro|epg-key-signature-exportable-p|epg-key-signature-key-id--cmacro|epg-key-signature-key-id|epg-key-signature-pubkey-algorithm--cmacro|epg-key-signature-pubkey-algorithm|epg-key-signature-user-id--cmacro|epg-key-signature-user-id|epg-key-signature-validity--cmacro|epg-key-signature-validity|epg-key-sub-key-list--cmacro|epg-key-sub-key-list|epg-key-user-id-list--cmacro|epg-key-user-id-list|epg-list-keys|epg-make-context|epg-make-data-from-file--cmacro|epg-make-data-from-file|epg-make-data-from-string--cmacro|epg-make-data-from-string|epg-make-import-result--cmacro|epg-make-import-result|epg-make-import-status--cmacro|epg-make-import-status|epg-make-key--cmacro|epg-make-key-signature--cmacro|epg-make-key-signature|epg-make-key|epg-make-new-signature--cmacro|epg-make-new-signature|epg-make-sig-notation--cmacro|epg-make-sig-notation|epg-make-signature--cmacro|epg-make-signature|epg-make-sub-key--cmacro|epg-make-sub-key|epg-make-user-id--cmacro|epg-make-user-id|epg-new-signature-class--cmacro|epg-new-signature-class|epg-new-signature-creation-time--cmacro|epg-new-signature-creation-time|epg-new-signature-digest-algorithm--cmacro|epg-new-signature-digest-algorithm|epg-new-signature-fingerprint--cmacro|epg-new-signature-fingerprint|epg-new-signature-pubkey-algorithm--cmacro|epg-new-signature-pubkey-algorithm|epg-new-signature-to-string|epg-new-signature-type--cmacro|epg-new-signature-type|epg-passphrase-callback-function|epg-read-output|epg-receive-keys|epg-reset|epg-sig-notation-critical--cmacro|epg-sig-notation-critical|epg-sig-notation-human-readable--cmacro|epg-sig-notation-human-readable|epg-sig-notation-name--cmacro|epg-sig-notation-name|epg-sig-notation-value--cmacro|epg-sig-notation-value|epg-sign-file|epg-sign-keys|epg-sign-string|epg-signature-class--cmacro|epg-signature-class|epg-signature-creation-time--cmacro|epg-signature-creation-time|epg-signature-digest-algorithm--cmacro|epg-signature-digest-algorithm|epg-signature-expiration-time--cmacro|epg-signature-expiration-time|epg-signature-fingerprint--cmacro|epg-signature-fingerprint|epg-signature-key-id--cmacro|epg-signature-key-id|epg-signature-notations--cmacro|epg-signature-notations|epg-signature-pubkey-algorithm--cmacro|epg-signature-pubkey-algorithm|epg-signature-status--cmacro|epg-signature-status|epg-signature-to-string|epg-signature-validity--cmacro|epg-signature-validity|epg-signature-version--cmacro|epg-signature-version|epg-start-decrypt|epg-start-delete-keys|epg-start-edit-key|epg-start-encrypt|epg-start-export-keys|epg-start-generate-key|epg-start-import-keys|epg-start-receive-keys|epg-start-sign-keys|epg-start-sign|epg-start-verify|epg-sub-key-algorithm--cmacro|epg-sub-key-algorithm|epg-sub-key-capability--cmacro|epg-sub-key-capability|epg-sub-key-creation-time--cmacro|epg-sub-key-creation-time|epg-sub-key-expiration-time--cmacro|epg-sub-key-expiration-time|epg-sub-key-fingerprint--cmacro|epg-sub-key-fingerprint|epg-sub-key-id--cmacro|epg-sub-key-id|epg-sub-key-length--cmacro|epg-sub-key-length|epg-sub-key-secret-p--cmacro|epg-sub-key-secret-p|epg-sub-key-validity--cmacro|epg-sub-key-validity|epg-user-id-signature-list--cmacro|epg-user-id-signature-list|epg-user-id-string--cmacro|epg-user-id-string|epg-user-id-validity--cmacro|epg-user-id-validity|epg-verify-file|epg-verify-result-to-string|epg-verify-string|epg-wait-for-completion|epg-wait-for-status|equalp|erc-active-buffer|erc-add-dangerous-host|erc-add-default-channel|erc-add-entry-to-list|erc-add-fool|erc-add-keyword|erc-add-pal|erc-add-query|erc-add-scroll-to-bottom|erc-add-server-user|erc-add-timestamp|erc-add-to-input-ring|erc-all-buffer-names|erc-already-logged-in|erc-arrange-session-in-multiple-windows|erc-auto-query|erc-autoaway-mode|erc-autojoin-add|erc-autojoin-after-ident|erc-autojoin-channels-delayed|erc-autojoin-channels|erc-autojoin-disable|erc-autojoin-enable|erc-autojoin-mode|erc-autojoin-remove|erc-away-time|erc-banlist-finished|erc-banlist-store|erc-banlist-update|erc-beep-on-match|erc-beg-of-input-line|erc-bol|erc-browse-emacswiki-lisp|erc-browse-emacswiki|erc-buffer-filter|erc-buffer-list-with-nick|erc-buffer-list|erc-buffer-visible|erc-button-add-button|erc-button-add-buttons-1|erc-button-add-buttons|erc-button-add-face|erc-button-add-nickname-buttons|erc-button-beats-to-time|erc-button-click-button|erc-button-describe-symbol|erc-button-disable|erc-button-enable|erc-button-mode|erc-button-next-function|erc-button-next|erc-button-press-button|erc-button-previous|erc-button-remove-old-buttons|erc-button-setup|erc-call-hooks|erc-cancel-timer|erc-canonicalize-server-name|erc-capab-identify-mode|erc-change-user-nickname|erc-channel-begin-receiving-names|erc-channel-end-receiving-names|erc-channel-list|erc-channel-names|erc-channel-p|erc-channel-receive-names|erc-channel-user-admin--cmacro|erc-channel-user-admin-p|erc-channel-user-admin|erc-channel-user-halfop--cmacro|erc-channel-user-halfop-p|erc-channel-user-halfop|erc-channel-user-last-message-time--cmacro|erc-channel-user-last-message-time|erc-channel-user-op--cmacro|erc-channel-user-op-p|erc-channel-user-op|erc-channel-user-owner--cmacro|erc-channel-user-owner-p|erc-channel-user-owner|erc-channel-user-p--cmacro|erc-channel-user-p|erc-channel-user-voice--cmacro|erc-channel-user-voice-p|erc-channel-user-voice|erc-clear-input-ring|erc-client-info|erc-cmd-AMSG|erc-cmd-APPENDTOPIC|erc-cmd-AT|erc-cmd-AWAY|erc-cmd-BANLIST|erc-cmd-BL|erc-cmd-BYE|erc-cmd-CHANNEL|erc-cmd-CLEAR|erc-cmd-CLEARTOPIC|erc-cmd-COUNTRY|erc-cmd-CTCP|erc-cmd-DATE|erc-cmd-DCC|erc-cmd-DEOP|erc-cmd-DESCRIBE|erc-cmd-EXIT|erc-cmd-GAWAY|erc-cmd-GQ|erc-cmd-GQUIT|erc-cmd-H|erc-cmd-HELP|erc-cmd-IDLE|erc-cmd-IGNORE|erc-cmd-J|erc-cmd-JOIN|erc-cmd-KICK|erc-cmd-LASTLOG|erc-cmd-LEAVE|erc-cmd-LIST|erc-cmd-LOAD|erc-cmd-M|erc-cmd-MASSUNBAN|erc-cmd-ME'S|erc-cmd-ME|erc-cmd-MODE|erc-cmd-MSG|erc-cmd-MUB|erc-cmd-N|erc-cmd-NAMES|erc-cmd-NICK|erc-cmd-NOTICE|erc-cmd-NOTIFY|erc-cmd-OP|erc-cmd-OPS|erc-cmd-PART|erc-cmd-PING|erc-cmd-Q|erc-cmd-QUERY|erc-cmd-QUIT|erc-cmd-QUOTE|erc-cmd-RECONNECT|erc-cmd-SAY|erc-cmd-SERVER|erc-cmd-SET|erc-cmd-SIGNOFF|erc-cmd-SM|erc-cmd-SQUERY|erc-cmd-SV|erc-cmd-T|erc-cmd-TIME|erc-cmd-TOPIC|erc-cmd-UNIGNORE|erc-cmd-VAR|erc-cmd-VARIABLE|erc-cmd-WHOAMI|erc-cmd-WHOIS|erc-cmd-WHOLEFT|erc-cmd-WI|erc-cmd-WL|erc-cmd-default|erc-cmd-ezb|erc-coding-system-for-target|erc-command-indicator|erc-command-name|erc-command-no-process-p|erc-command-symbol|erc-complete-word-at-point|erc-complete-word|erc-completion-mode|erc-compute-full-name|erc-compute-nick|erc-compute-port|erc-compute-server|erc-connection-established|erc-controls-highlight|erc-controls-interpret|erc-controls-propertize|erc-controls-strip|erc-create-imenu-index|erc-ctcp-query-ACTION|erc-ctcp-query-CLIENTINFO|erc-ctcp-query-DCC|erc-ctcp-query-ECHO|erc-ctcp-query-FINGER|erc-ctcp-query-PING|erc-ctcp-query-TIME|erc-ctcp-query-USERINFO|erc-ctcp-query-VERSION|erc-ctcp-reply-CLIENTINFO|erc-ctcp-reply-ECHO|erc-ctcp-reply-FINGER|erc-ctcp-reply-PING|erc-ctcp-reply-TIME|erc-ctcp-reply-VERSION|erc-current-network|erc-current-nick-p|erc-current-nick|erc-current-time|erc-dcc-mode|erc-debug-missing-hooks|erc-decode-coding-string|erc-decode-parsed-server-response|erc-decode-string-from-target|erc-default-server-handler|erc-default-target|erc-define-catalog-entry|erc-define-catalog|erc-define-minor-mode|erc-delete-dangerous-host|erc-delete-default-channel|erc-delete-dups|erc-delete-fool|erc-delete-if|erc-delete-keyword|erc-delete-pal|erc-delete-query|erc-determine-network|erc-determine-parameters|erc-directory-writable-p|erc-display-command|erc-display-error-notice|erc-display-line-1|erc-display-line|erc-display-message-highlight|erc-display-message|erc-display-msg|erc-display-prompt|erc-display-server-message|erc-downcase|erc-echo-notice-in-active-buffer|erc-echo-notice-in-active-non-server-buffer|erc-echo-notice-in-default-buffer|erc-echo-notice-in-first-user-buffer|erc-echo-notice-in-minibuffer|erc-echo-notice-in-server-buffer|erc-echo-notice-in-target-buffer|erc-echo-notice-in-user-and-target-buffers|erc-echo-notice-in-user-buffers|erc-echo-timestamp|erc-emacs-time-to-erc-time|erc-encode-coding-string|erc-end-of-input-line|erc-ensure-channel-name|erc-error|erc-extract-command-from-line|erc-extract-nick|erc-ezb-add-session|erc-ezb-end-of-session-list|erc-ezb-get-login|erc-ezb-identify)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:erc-ezb-init-session-list|erc-ezb-initialize|erc-ezb-lookup-action|erc-ezb-notice-autodetect|erc-ezb-select-session|erc-ezb-select|erc-faces-in|erc-fill-disable|erc-fill-enable|erc-fill-mode|erc-fill-regarding-timestamp|erc-fill-static|erc-fill-variable|erc-fill|erc-find-file|erc-find-parsed-property|erc-find-script-file|erc-format-@nick|erc-format-away-status|erc-format-channel-modes|erc-format-lag-time|erc-format-message|erc-format-my-nick|erc-format-network|erc-format-nick|erc-format-privmessage|erc-format-target-and\\\\/or-network|erc-format-target-and\\\\/or-server|erc-format-target|erc-format-timestamp|erc-function-arglist|erc-generate-new-buffer-name|erc-get-arglist|erc-get-bg-color-face|erc-get-buffer-create|erc-get-buffer|erc-get-channel-mode-from-keypress|erc-get-channel-nickname-alist|erc-get-channel-nickname-list|erc-get-channel-user-list|erc-get-channel-user|erc-get-fg-color-face|erc-get-hook|erc-get-parsed-vector-nick|erc-get-parsed-vector-type|erc-get-parsed-vector|erc-get-server-nickname-alist|erc-get-server-nickname-list|erc-get-server-user|erc-get-user-mode-prefix|erc-get|erc-go-to-log-matches-buffer|erc-grab-region|erc-group-list|erc-handle-irc-url|erc-handle-login|erc-handle-parsed-server-response|erc-handle-unknown-server-response|erc-handle-user-status-change|erc-hide-current-message-p|erc-hide-fools|erc-hide-timestamps|erc-highlight-error|erc-highlight-notice|erc-identd-mode|erc-identd-start|erc-identd-stop|erc-ignored-reply-p|erc-ignored-user-p|erc-imenu-setup|erc-initialize-log-marker|erc-input-action|erc-input-message|erc-input-ring-setup|erc-insert-aligned|erc-insert-mode-command|erc-insert-timestamp-left-and-right|erc-insert-timestamp-left|erc-insert-timestamp-right|erc-invite-only-mode|erc-irccontrols-disable|erc-irccontrols-enable|erc-irccontrols-mode|erc-is-message-ctcp-and-not-action-p|erc-is-message-ctcp-p|erc-is-valid-nick-p|erc-ison-p|erc-iswitchb|erc-join-channel|erc-keep-place-disable|erc-keep-place-enable|erc-keep-place-mode|erc-keep-place|erc-kill-buffer-function|erc-kill-channel|erc-kill-input|erc-kill-query-buffers|erc-kill-server|erc-list-button|erc-list-disable|erc-list-enable|erc-list-handle-322|erc-list-insert-item|erc-list-install-322-handler|erc-list-join|erc-list-kill|erc-list-make-string|erc-list-match|erc-list-menu-mode|erc-list-menu-sort-by-column|erc-list-mode|erc-list-revert|erc-list|erc-load-irc-script-lines|erc-load-irc-script|erc-load-script|erc-log-aux|erc-log-irc-protocol|erc-log-matches-come-back|erc-log-matches-make-buffer|erc-log-matches|erc-log-mode|erc-log|erc-logging-enabled|erc-login|erc-lurker-cleanup|erc-lurker-initialize|erc-lurker-maybe-trim|erc-lurker-p|erc-lurker-update-status|erc-make-message-variable-name|erc-make-mode-line-buffer-name|erc-make-notice|erc-make-obsolete-variable|erc-make-obsolete|erc-make-read-only|erc-match-current-nick-p|erc-match-dangerous-host-p|erc-match-directed-at-fool-p|erc-match-disable|erc-match-enable|erc-match-fool-p|erc-match-keyword-p|erc-match-message|erc-match-mode|erc-match-pal-p|erc-member-if|erc-member-ignore-case|erc-menu-add|erc-menu-disable|erc-menu-enable|erc-menu-mode|erc-menu-remove|erc-menu|erc-message-english-PART|erc-message-target|erc-message-type-member|erc-message|erc-migrate-modules|erc-mode|erc-modes|erc-modified-channels-display|erc-modified-channels-object|erc-modified-channels-remove-buffer|erc-modified-channels-update|erc-move-to-prompt-disable|erc-move-to-prompt-enable|erc-move-to-prompt-mode|erc-move-to-prompt-setup|erc-move-to-prompt|erc-munge-invisibility-spec|erc-netsplit-JOIN|erc-netsplit-MODE|erc-netsplit-QUIT|erc-netsplit-disable|erc-netsplit-enable|erc-netsplit-install-message-catalogs|erc-netsplit-mode|erc-netsplit-timer|erc-network-name|erc-network|erc-networks-disable|erc-networks-enable|erc-networks-mode|erc-next-command|erc-nick-at-point|erc-nick-equal-p|erc-nick-popup|erc-nickname-in-use|erc-nickserv-identify-mode|erc-nickserv-identify|erc-noncommands-disable|erc-noncommands-enable|erc-noncommands-mode|erc-normalize-port|erc-notifications-mode|erc-notify-mode|erc-occur|erc-once-with-server-event|erc-open-server-buffer-p|erc-open-tls-stream|erc-open|erc-page-mode|erc-parse-modes|erc-parse-prefix|erc-parse-server-response|erc-parse-user|erc-part-from-channel|erc-part-reason-normal|erc-part-reason-various|erc-part-reason-zippy|erc-pcomplete-disable|erc-pcomplete-enable|erc-pcomplete-mode|erc-pcomplete|erc-pcompletions-at-point|erc-popup-input-buffer|erc-port-equal|erc-port-to-string|erc-ports-list|erc-previous-command|erc-process-away|erc-process-ctcp-query|erc-process-ctcp-reply|erc-process-input-line|erc-process-script-line|erc-process-sentinel-1|erc-process-sentinel-2|erc-process-sentinel|erc-prompt|erc-propertize|erc-put-text-properties|erc-put-text-property|erc-query-buffer-p|erc-query|erc-quit\\\\/part-reason-default|erc-quit-reason-normal|erc-quit-reason-various|erc-quit-reason-zippy|erc-quit-server|erc-readonly-disable|erc-readonly-enable|erc-readonly-mode|erc-remove-channel-member|erc-remove-channel-user|erc-remove-channel-users|erc-remove-current-channel-member|erc-remove-entry-from-list|erc-remove-if-not|erc-remove-server-user|erc-remove-text-properties-region|erc-remove-user|erc-replace-current-command|erc-replace-match-subexpression-in-string|erc-replace-mode|erc-replace-regexp-in-string|erc-response-p--cmacro|erc-response-p|erc-response\\\\.command--cmacro|erc-response\\\\.command-args--cmacro|erc-response\\\\.command-args|erc-response\\\\.command|erc-response\\\\.contents--cmacro|erc-response\\\\.contents|erc-response\\\\.sender--cmacro|erc-response\\\\.sender|erc-response\\\\.unparsed--cmacro|erc-response\\\\.unparsed|erc-restore-text-properties|erc-retrieve-catalog-entry|erc-ring-disable|erc-ring-enable|erc-ring-mode|erc-save-buffer-in-logs|erc-scroll-to-bottom|erc-scrolltobottom-disable|erc-scrolltobottom-enable|erc-scrolltobottom-mode|erc-sec-to-time|erc-seconds-to-string|erc-select-read-args|erc-select-startup-file|erc-select|erc-send-action|erc-send-command|erc-send-ctcp-message|erc-send-ctcp-notice|erc-send-current-line|erc-send-distinguish-noncommands|erc-send-input-line|erc-send-input|erc-send-line|erc-send-message|erc-server-001|erc-server-002|erc-server-003|erc-server-004|erc-server-005|erc-server-221|erc-server-250|erc-server-251|erc-server-252|erc-server-253|erc-server-254|erc-server-255|erc-server-256|erc-server-257|erc-server-258|erc-server-259|erc-server-265|erc-server-266|erc-server-275|erc-server-290|erc-server-301|erc-server-303|erc-server-305|erc-server-306|erc-server-307|erc-server-311|erc-server-312|erc-server-313|erc-server-314|erc-server-315|erc-server-317|erc-server-318|erc-server-319|erc-server-320|erc-server-321-message|erc-server-321|erc-server-322-message|erc-server-322|erc-server-323|erc-server-324|erc-server-328|erc-server-329|erc-server-330|erc-server-331|erc-server-332|erc-server-333|erc-server-341|erc-server-352|erc-server-353|erc-server-366|erc-server-367|erc-server-368|erc-server-369|erc-server-371|erc-server-372|erc-server-374|erc-server-375|erc-server-376|erc-server-377|erc-server-378|erc-server-379|erc-server-391|erc-server-401|erc-server-403|erc-server-404|erc-server-405|erc-server-406|erc-server-412|erc-server-421|erc-server-422|erc-server-431|erc-server-432|erc-server-433|erc-server-437|erc-server-442|erc-server-445|erc-server-446|erc-server-451|erc-server-461|erc-server-462|erc-server-463|erc-server-464|erc-server-465|erc-server-474|erc-server-475|erc-server-477|erc-server-481|erc-server-482|erc-server-483|erc-server-484|erc-server-485|erc-server-491|erc-server-501|erc-server-502|erc-server-671|erc-server-ERROR|erc-server-INVITE|erc-server-JOIN|erc-server-KICK|erc-server-MODE|erc-server-MOTD|erc-server-NICK|erc-server-NOTICE|erc-server-PART|erc-server-PING|erc-server-PONG|erc-server-PRIVMSG|erc-server-QUIT|erc-server-TOPIC|erc-server-WALLOPS|erc-server-buffer-live-p|erc-server-buffer-p|erc-server-buffer|erc-server-connect|erc-server-filter-function|erc-server-join-channel|erc-server-process-alive|erc-server-reconnect-p|erc-server-reconnect|erc-server-select|erc-server-send-ping|erc-server-send-queue|erc-server-send|erc-server-setup-periodical-ping|erc-server-user-buffers--cmacro|erc-server-user-buffers|erc-server-user-full-name--cmacro|erc-server-user-full-name|erc-server-user-host--cmacro|erc-server-user-host|erc-server-user-info--cmacro|erc-server-user-info|erc-server-user-login--cmacro|erc-server-user-login|erc-server-user-nickname--cmacro|erc-server-user-nickname|erc-server-user-p--cmacro|erc-server-user-p|erc-services-mode|erc-set-active-buffer|erc-set-channel-key|erc-set-channel-limit|erc-set-current-nick|erc-set-initial-user-mode|erc-set-modes|erc-set-network-name|erc-set-topic|erc-set-write-file-functions|erc-setup-buffer|erc-shorten-server-name|erc-show-timestamps|erc-smiley-disable|erc-smiley-enable|erc-smiley-mode|erc-smiley|erc-sort-channel-users-alphabetically|erc-sort-channel-users-by-activity|erc-sort-strings|erc-sound-mode|erc-speedbar-browser|erc-spelling-mode|erc-split-line|erc-split-multiline-safe|erc-ssl|erc-stamp-disable|erc-stamp-enable|erc-stamp-mode|erc-string-invisible-p|erc-string-no-properties|erc-string-to-emacs-time|erc-string-to-port|erc-subseq|erc-time-diff|erc-time-gt|erc-timestamp-mode|erc-timestamp-offset|erc-tls|erc-toggle-channel-mode|erc-toggle-ctcp-autoresponse|erc-toggle-debug-irc-protocol|erc-toggle-flood-control|erc-toggle-interpret-controls|erc-toggle-timestamps|erc-track-add-to-mode-line|erc-track-disable|erc-track-enable|erc-track-face-priority|erc-track-find-face|erc-track-get-active-buffer|erc-track-get-buffer-window|erc-track-minor-mode-maybe|erc-track-minor-mode|erc-track-mode|erc-track-modified-channels|erc-track-remove-from-mode-line|erc-track-shorten-names|erc-track-sort-by-activest|erc-track-sort-by-importance|erc-track-switch-buffer|erc-trim-string|erc-truncate-buffer-to-size|erc-truncate-buffer|erc-truncate-mode|erc-unique-channel-names|erc-unique-substring-1|erc-unique-substrings|erc-unmorse-disable|erc-unmorse-enable|erc-unmorse-mode|erc-unmorse|erc-unset-network-name|erc-upcase-first-word|erc-update-channel-key|erc-update-channel-limit|erc-update-channel-member|erc-update-channel-topic|erc-update-current-channel-member|erc-update-mode-line-buffer|erc-update-mode-line|erc-update-modes|erc-update-modules|erc-update-undo-list|erc-update-user-nick|erc-update-user|erc-user-input|erc-user-is-active|erc-user-spec|erc-version|erc-view-mode-enter|erc-wash-quit-reason|erc-window-configuration-change|erc-with-all-buffers-of-server|erc-with-buffer|erc-with-selected-window|erc-with-server-buffer|erc-xdcc-add-file|erc-xdcc-mode|erc|eregistry|erevision|ert--abbreviate-string|ert--activate-font-lock-keywords|ert--button-action-position|ert--ewoc-entry-expanded-p--cmacro|ert--ewoc-entry-expanded-p|ert--ewoc-entry-extended-printer-limits-p--cmacro|ert--ewoc-entry-extended-printer-limits-p|ert--ewoc-entry-hidden-p--cmacro|ert--ewoc-entry-hidden-p|ert--ewoc-entry-p--cmacro|ert--ewoc-entry-p|ert--ewoc-entry-test--cmacro|ert--ewoc-entry-test|ert--ewoc-position|ert--expand-should-1|ert--expand-should|ert--explain-equal-including-properties|ert--explain-equal-rec|ert--explain-equal|ert--explain-format-atom|ert--force-message-log-buffer-truncation|ert--format-time-iso8601|ert--insert-human-readable-selector|ert--insert-infos|ert--make-stats|ert--make-xrefs-region|ert--parse-keys-and-body|ert--plist-difference-explanation|ert--pp-with-indentation-and-newline|ert--print-backtrace|ert--print-test-for-ewoc|ert--proper-list-p|ert--record-backtrace|ert--remove-from-list|ert--results-expand-collapse-button-action|ert--results-font-lock-function|ert--results-format-expected-unexpected|ert--results-move|ert--results-progress-bar-button-action|ert--results-test-at-point-allow-redefinition|ert--results-test-at-point-no-redefinition|ert--results-test-node-at-point|ert--results-test-node-or-null-at-point|ert--results-update-after-test-redefinition|ert--results-update-ewoc-hf|ert--results-update-stats-display-maybe|ert--results-update-stats-display|ert--run-test-debugger|ert--run-test-internal|ert--setup-results-buffer|ert--should-error-handle-error|ert--signal-should-execution|ert--significant-plist-keys|ert--skip-unless|ert--special-operator-p|ert--stats-aborted-p--cmacro|ert--stats-aborted-p|ert--stats-current-test--cmacro|ert--stats-current-test|ert--stats-end-time--cmacro)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:ert--stats-end-time|ert--stats-failed-expected--cmacro|ert--stats-failed-expected|ert--stats-failed-unexpected--cmacro|ert--stats-failed-unexpected|ert--stats-next-redisplay--cmacro|ert--stats-next-redisplay|ert--stats-p--cmacro|ert--stats-p|ert--stats-passed-expected--cmacro|ert--stats-passed-expected|ert--stats-passed-unexpected--cmacro|ert--stats-passed-unexpected|ert--stats-selector--cmacro|ert--stats-selector|ert--stats-set-test-and-result|ert--stats-skipped--cmacro|ert--stats-skipped|ert--stats-start-time--cmacro|ert--stats-start-time|ert--stats-test-end-times--cmacro|ert--stats-test-end-times|ert--stats-test-key|ert--stats-test-map--cmacro|ert--stats-test-map|ert--stats-test-pos|ert--stats-test-results--cmacro|ert--stats-test-results|ert--stats-test-start-times--cmacro|ert--stats-test-start-times|ert--stats-tests--cmacro|ert--stats-tests|ert--string-first-line|ert--test-execution-info-ert-debug-on-error--cmacro|ert--test-execution-info-ert-debug-on-error|ert--test-execution-info-exit-continuation--cmacro|ert--test-execution-info-exit-continuation|ert--test-execution-info-next-debugger--cmacro|ert--test-execution-info-next-debugger|ert--test-execution-info-p--cmacro|ert--test-execution-info-p|ert--test-execution-info-result--cmacro|ert--test-execution-info-result|ert--test-execution-info-test--cmacro|ert--test-execution-info-test|ert--test-name-button-action|ert--tests-running-mode-line-indicator|ert--unload-function|ert-char-for-test-result|ert-deftest|ert-delete-all-tests|ert-delete-test|ert-describe-test|ert-equal-including-properties|ert-face-for-stats|ert-face-for-test-result|ert-fail|ert-find-test-other-window|ert-get-test|ert-info|ert-insert-test-name-button|ert-kill-all-test-buffers|ert-make-test-unbound|ert-pass|ert-read-test-name-at-point|ert-read-test-name|ert-results-describe-test-at-point|ert-results-find-test-at-point-other-window|ert-results-jump-between-summary-and-result|ert-results-mode-menu|ert-results-mode|ert-results-next-test|ert-results-pop-to-backtrace-for-test-at-point|ert-results-pop-to-messages-for-test-at-point|ert-results-pop-to-should-forms-for-test-at-point|ert-results-pop-to-timings|ert-results-previous-test|ert-results-rerun-all-tests|ert-results-rerun-test-at-point-debugging-errors|ert-results-rerun-test-at-point|ert-results-toggle-printer-limits-for-test-at-point|ert-run-or-rerun-test|ert-run-test|ert-run-tests-batch-and-exit|ert-run-tests-batch|ert-run-tests-interactively|ert-run-tests|ert-running-test|ert-select-tests|ert-set-test|ert-simple-view-mode|ert-skip|ert-stats-completed-expected|ert-stats-completed-unexpected|ert-stats-completed|ert-stats-skipped|ert-stats-total|ert-string-for-test-result|ert-summarize-tests-batch-and-exit|ert-test-aborted-with-non-local-exit-messages--cmacro|ert-test-aborted-with-non-local-exit-messages|ert-test-aborted-with-non-local-exit-p--cmacro|ert-test-aborted-with-non-local-exit-p|ert-test-aborted-with-non-local-exit-should-forms--cmacro|ert-test-aborted-with-non-local-exit-should-forms|ert-test-at-point|ert-test-body--cmacro|ert-test-body|ert-test-boundp|ert-test-documentation--cmacro|ert-test-documentation|ert-test-expected-result-type--cmacro|ert-test-expected-result-type|ert-test-failed-backtrace--cmacro|ert-test-failed-backtrace|ert-test-failed-condition--cmacro|ert-test-failed-condition|ert-test-failed-infos--cmacro|ert-test-failed-infos|ert-test-failed-messages--cmacro|ert-test-failed-messages|ert-test-failed-p--cmacro|ert-test-failed-p|ert-test-failed-should-forms--cmacro|ert-test-failed-should-forms|ert-test-most-recent-result--cmacro|ert-test-most-recent-result|ert-test-name--cmacro|ert-test-name|ert-test-p--cmacro|ert-test-p|ert-test-passed-messages--cmacro|ert-test-passed-messages|ert-test-passed-p--cmacro|ert-test-passed-p|ert-test-passed-should-forms--cmacro|ert-test-passed-should-forms|ert-test-quit-backtrace--cmacro|ert-test-quit-backtrace|ert-test-quit-condition--cmacro|ert-test-quit-condition|ert-test-quit-infos--cmacro|ert-test-quit-infos|ert-test-quit-messages--cmacro|ert-test-quit-messages|ert-test-quit-p--cmacro|ert-test-quit-p|ert-test-quit-should-forms--cmacro|ert-test-quit-should-forms|ert-test-result-expected-p|ert-test-result-messages--cmacro|ert-test-result-messages|ert-test-result-p--cmacro|ert-test-result-p|ert-test-result-should-forms--cmacro|ert-test-result-should-forms|ert-test-result-type-p|ert-test-result-with-condition-backtrace--cmacro|ert-test-result-with-condition-backtrace|ert-test-result-with-condition-condition--cmacro|ert-test-result-with-condition-condition|ert-test-result-with-condition-infos--cmacro|ert-test-result-with-condition-infos|ert-test-result-with-condition-messages--cmacro|ert-test-result-with-condition-messages|ert-test-result-with-condition-p--cmacro|ert-test-result-with-condition-p|ert-test-result-with-condition-should-forms--cmacro|ert-test-result-with-condition-should-forms|ert-test-skipped-backtrace--cmacro|ert-test-skipped-backtrace|ert-test-skipped-condition--cmacro|ert-test-skipped-condition|ert-test-skipped-infos--cmacro|ert-test-skipped-infos|ert-test-skipped-messages--cmacro|ert-test-skipped-messages|ert-test-skipped-p--cmacro|ert-test-skipped-p|ert-test-skipped-should-forms--cmacro|ert-test-skipped-should-forms|ert-test-tags--cmacro|ert-test-tags|ert|eshell\\\\/addpath|eshell\\\\/define|eshell\\\\/env|eshell\\\\/eshell-debug|eshell\\\\/exit|eshell\\\\/export|eshell\\\\/jobs|eshell\\\\/kill|eshell\\\\/setq|eshell\\\\/unset|eshell\\\\/wait|eshell\\\\/which|eshell--apply-redirections|eshell--do-opts|eshell--process-args|eshell--process-option|eshell--set-option|eshell-add-to-window-buffer-names|eshell-apply\\\\*|eshell-apply-indices|eshell-apply|eshell-applyn|eshell-arg-delimiter|eshell-arg-initialize|eshell-as-subcommand|eshell-backward-argument|eshell-begin-on-new-line|eshell-beginning-of-input|eshell-beginning-of-output|eshell-bol|eshell-buffered-print|eshell-clipboard-append|eshell-close-handles|eshell-close-target|eshell-cmd-initialize|eshell-command-finished|eshell-command-result|eshell-command-started|eshell-command-to-value|eshell-command|eshell-commands|eshell-complete-lisp-symbols|eshell-complete-variable-assignment|eshell-complete-variable-reference|eshell-condition-case|eshell-convert|eshell-copy-environment|eshell-copy-handles|eshell-copy-old-input|eshell-copy-tree|eshell-create-handles|eshell-current-ange-uids|eshell-debug-command|eshell-debug-show-parsed-args|eshell-directory-files-and-attributes|eshell-directory-files|eshell-do-command-to-value|eshell-do-eval|eshell-do-pipelines-synchronously|eshell-do-pipelines|eshell-do-subjob|eshell-end-of-output|eshell-environment-variables|eshell-envvar-names|eshell-error|eshell-errorn|eshell-escape-arg|eshell-eval\\\\*|eshell-eval-command|eshell-eval-using-options|eshell-eval|eshell-evaln|eshell-exec-lisp|eshell-execute-pipeline|eshell-exit-success-p|eshell-explicit-command|eshell-ext-initialize|eshell-external-command|eshell-file-attributes|eshell-find-alias-function|eshell-find-delimiter|eshell-find-interpreter|eshell-find-tag|eshell-finish-arg|eshell-flatten-and-stringify|eshell-flatten-list|eshell-flush|eshell-for|eshell-forward-argument|eshell-funcall\\\\*|eshell-funcall|eshell-funcalln|eshell-gather-process-output|eshell-get-old-input|eshell-get-target|eshell-get-variable|eshell-goto-input-start|eshell-group-id|eshell-group-name|eshell-handle-ansi-color|eshell-handle-control-codes|eshell-handle-local-variables|eshell-index-value|eshell-init-print-buffer|eshell-insert-buffer-name|eshell-insert-envvar|eshell-insert-process|eshell-insertion-filter|eshell-interactive-output-p|eshell-interactive-print|eshell-interactive-process|eshell-intercept-commands|eshell-interpolate-variable|eshell-interrupt-process|eshell-invoke-batch-file|eshell-invoke-directly|eshell-invokify-arg|eshell-io-initialize|eshell-kill-append|eshell-kill-buffer-function|eshell-kill-input|eshell-kill-new|eshell-kill-output|eshell-kill-process-function|eshell-kill-process|eshell-life-is-too-much|eshell-lisp-command\\\\*|eshell-lisp-command|eshell-looking-at-backslash-return|eshell-make-private-directory|eshell-manipulate|eshell-mark-output|eshell-mode|eshell-move-argument|eshell-named-command\\\\*|eshell-named-command|eshell-needs-pipe-p|eshell-no-command-conversion|eshell-operator|eshell-output-filter|eshell-output-object-to-target|eshell-output-object|eshell-parse-ange-ls|eshell-parse-argument|eshell-parse-arguments|eshell-parse-backslash|eshell-parse-colon-path|eshell-parse-command-input|eshell-parse-command|eshell-parse-delimiter|eshell-parse-double-quote|eshell-parse-indices|eshell-parse-lisp-argument|eshell-parse-literal-quote|eshell-parse-pipeline|eshell-parse-redirection|eshell-parse-special-reference|eshell-parse-subcommand-argument|eshell-parse-variable-ref|eshell-parse-variable|eshell-plain-command|eshell-postoutput-scroll-to-bottom|eshell-preinput-scroll-to-bottom|eshell-print|eshell-printable-size|eshell-printn|eshell-proc-initialize|eshell-process-identity|eshell-process-interact|eshell-processp|eshell-protect-handles|eshell-protect|eshell-push-command-mark|eshell-query-kill-processes|eshell-queue-input|eshell-quit-process|eshell-quote-argument|eshell-quote-backslash|eshell-read-group-names|eshell-read-host-names|eshell-read-hosts-file|eshell-read-hosts|eshell-read-passwd-file|eshell-read-passwd|eshell-read-process-name|eshell-read-user-names|eshell-record-process-object|eshell-redisplay|eshell-regexp-arg|eshell-remote-command|eshell-remove-from-window-buffer-names|eshell-remove-process-entry|eshell-repeat-argument|eshell-report-bug|eshell-reset-after-proc|eshell-reset|eshell-resolve-current-argument|eshell-resume-command|eshell-resume-eval|eshell-return-exits-minibuffer|eshell-rewrite-for-command|eshell-rewrite-if-command|eshell-rewrite-initial-subcommand|eshell-rewrite-named-command|eshell-rewrite-sexp-command|eshell-rewrite-while-command|eshell-round-robin-kill|eshell-run-output-filters|eshell-script-interpreter|eshell-search-path|eshell-self-insert-command|eshell-send-eof-to-process|eshell-send-input|eshell-send-invisible|eshell-sentinel|eshell-separate-commands|eshell-set-output-handle|eshell-show-maximum-output|eshell-show-output|eshell-show-usage|eshell-split-path|eshell-stringify-list|eshell-stringify|eshell-strip-redirections|eshell-structure-basic-command|eshell-subcommand-arg-values|eshell-subgroups|eshell-sublist|eshell-substring|eshell-to-flat-string|eshell-toggle-direct-send|eshell-trap-errors|eshell-truncate-buffer|eshell-under-windows-p|eshell-uniqify-list|eshell-unload-all-modules|eshell-unload-extension-modules|eshell-update-markers|eshell-user-id|eshell-user-name|eshell-using-module|eshell-var-initialize|eshell-variables-list|eshell-wait-for-process|eshell-watch-for-password-prompt|eshell-winnow-list|eshell-with-file-modes|eshell-with-private-file-modes|eshell|etags--xref-find-definitions|etags-file-of-tag|etags-goto-tag-location|etags-list-tags|etags-recognize-tags-table|etags-snarf-tag|etags-tags-apropos-additional|etags-tags-apropos|etags-tags-completion-table|etags-tags-included-tables|etags-tags-table-files|etags-verify-tags-table|etags-xref-find|ethio-composition-function|ethio-fidel-to-java-buffer|ethio-fidel-to-sera-buffer|ethio-fidel-to-sera-marker|ethio-fidel-to-sera-region|ethio-fidel-to-tex-buffer|ethio-find-file|ethio-input-special-character|ethio-insert-ethio-space|ethio-java-to-fidel-buffer|ethio-modify-vowel|ethio-replace-space|ethio-sera-to-fidel-buffer|ethio-sera-to-fidel-marker|ethio-sera-to-fidel-region|ethio-tex-to-fidel-buffer|ethio-write-file|etypecase|eudc-add-field-to-records|eudc-bookmark-current-server|eudc-bookmark-server|eudc-caar|eudc-cadr|eudc-cdaar|eudc-cdar|eudc-customize|eudc-default-set|eudc-display-generic-binary|eudc-display-jpeg-as-button|eudc-display-jpeg-inline|eudc-display-mail|eudc-display-records|eudc-display-sound|eudc-display-url|eudc-distribute-field-on-records|eudc-edit-hotlist|eudc-expand-inline|eudc-extract-n-word-formats|eudc-filter-duplicate-attributes|eudc-filter-partial-records|eudc-format-attribute-name-for-display|eudc-format-query|eudc-get-attribute-list|eudc-get-email|eudc-get-phone|eudc-insert-record-at-point-into-bbdb|eudc-install-menu|eudc-lax-plist-get|eudc-load-eudc|eudc-menu|eudc-mode|eudc-move-to-next-record|eudc-move-to-previous-record|eudc-plist-get|eudc-plist-member)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:eudc-print-attribute-value|eudc-print-record-field|eudc-process-form|eudc-protocol-local-variable-p|eudc-protocol-set|eudc-query-form|eudc-query|eudc-register-protocol|eudc-replace-in-string|eudc-save-options|eudc-select|eudc-server-local-variable-p|eudc-server-set|eudc-set-server|eudc-set|eudc-tools-menu|eudc-translate-attribute-list|eudc-translate-query|eudc-try-bbdb-insert|eudc-update-local-variables|eudc-update-variable|eudc-variable-default-value|eudc-variable-protocol-value|eudc-variable-server-value|eval-after-load--anon-cmacro|eval-after-load|eval-defun|eval-expression-print-format|eval-expression|eval-last-sexp|eval-next-after-load|eval-print-last-sexp|eval-sexp-add-defvars|eval-when|evenp|event-apply-alt-modifier|event-apply-control-modifier|event-apply-hyper-modifier|event-apply-meta-modifier|event-apply-modifier|event-apply-shift-modifier|event-apply-super-modifier|every|ewoc--adjust|ewoc--buffer--cmacro|ewoc--buffer|ewoc--create--cmacro|ewoc--create|ewoc--dll--cmacro|ewoc--dll|ewoc--filter-hf-nodes|ewoc--footer--cmacro|ewoc--footer|ewoc--header--cmacro|ewoc--header|ewoc--hf-pp--cmacro|ewoc--hf-pp|ewoc--insert-new-node|ewoc--last-node--cmacro|ewoc--last-node|ewoc--node-create--cmacro|ewoc--node-create|ewoc--node-data--cmacro|ewoc--node-data|ewoc--node-left--cmacro|ewoc--node-left|ewoc--node-next|ewoc--node-nth|ewoc--node-prev|ewoc--node-right--cmacro|ewoc--node-right|ewoc--node-start-marker--cmacro|ewoc--node-start-marker|ewoc--pretty-printer--cmacro|ewoc--pretty-printer|ewoc--refresh-node|ewoc--set-buffer-bind-dll-let\\\\*|ewoc--set-buffer-bind-dll|ewoc--wrap|ewoc-p--cmacro|ewoc-p|eww-add-bookmark|eww-back-url|eww-beginning-of-field|eww-beginning-of-text|eww-bookmark-browse|eww-bookmark-kill|eww-bookmark-mode|eww-bookmark-prepare|eww-bookmark-yank|eww-browse-url|eww-browse-with-external-browser|eww-buffer-kill|eww-buffer-select|eww-buffer-show-next|eww-buffer-show-previous|eww-buffer-show|eww-buffers-mode|eww-change-select|eww-copy-page-url|eww-current-url|eww-desktop-data-1|eww-desktop-history-duplicate|eww-desktop-misc-data|eww-detect-charset|eww-display-html|eww-display-image|eww-display-pdf|eww-display-raw|eww-download-callback|eww-download|eww-end-of-field|eww-end-of-text|eww-follow-link|eww-form-checkbox|eww-form-file|eww-form-submit|eww-form-text|eww-forward-url|eww-handle-link|eww-highest-readability|eww-history-browse|eww-history-mode|eww-input-value|eww-inputs|eww-links-at-point|eww-list-bookmarks|eww-list-buffers|eww-list-histories|eww-make-unique-file-name|eww-mode|eww-next-bookmark|eww-next-url|eww-open-file|eww-parse-headers|eww-previous-bookmark|eww-previous-url|eww-process-text-input|eww-read-bookmarks|eww-readable|eww-reload|eww-render|eww-restore-desktop|eww-restore-history|eww-same-page-p|eww-save-history|eww-score-readability|eww-search-words|eww-select-display|eww-select-file|eww-set-character-encoding|eww-setup-buffer|eww-size-text-inputs|eww-submit|eww-suggested-uris|eww-tag-a|eww-tag-body|eww-tag-form|eww-tag-input|eww-tag-link|eww-tag-select|eww-tag-textarea|eww-tag-title|eww-toggle-checkbox|eww-top-url|eww-up-url|eww-update-field|eww-update-header-line-format|eww-view-source|eww-write-bookmarks|eww|ex-args|ex-cd|ex-cmd-accepts-multiple-files-p|ex-cmd-assoc|ex-cmd-complete|ex-cmd-execute|ex-cmd-is-mashed-with-args|ex-cmd-is-one-letter|ex-cmd-not-yet|ex-cmd-obsolete|ex-cmd-read-exit|ex-command|ex-compile|ex-copy|ex-delete|ex-edit|ex-expand-filsyms|ex-find-file|ex-fixup-history|ex-get-inline-cmd-args|ex-global|ex-goto|ex-help|ex-line-no|ex-line-subr|ex-line|ex-map-read-args|ex-map|ex-mark|ex-next-related-buffer|ex-next|ex-preserve|ex-print-display-lines|ex-print|ex-put|ex-pwd|ex-quit|ex-read|ex-recover|ex-rewind|ex-search-address|ex-set-read-variable|ex-set-visited-file-name|ex-set|ex-shell|ex-show-vars|ex-source|ex-splice-args-in-1-letr-cmd|ex-substitute|ex-tag|ex-unmap-read-args|ex-unmap|ex-write-info|ex-write|ex-yank|exchange-dot-and-mark|exchange-point-and-mark|executable-chmod|executable-command-find-posix-p|executable-interpret|executable-make-buffer-file-executable-if-script-p|executable-self-display|executable-set-magic|execute-extended-command--shorter-1|execute-extended-command--shorter|exit-scheme-interaction-mode|exit-splash-screen|expand-abbrev-from-expand|expand-abbrev-hook|expand-add-abbrev|expand-add-abbrevs|expand-build-list|expand-build-marks|expand-c-for-skeleton|expand-clear-markers|expand-do-expansion|expand-in-literal|expand-jump-to-next-slot|expand-jump-to-previous-slot|expand-list-to-markers|expand-mail-aliases|expand-previous-word|expand-region-abbrevs|expand-skeleton-end-hook|external-debugging-output|extract-rectangle-line|extract-rectangle|ezimage-all-images|ezimage-image-association-dump|ezimage-image-dump|ezimage-image-over-string|ezimage-insert-image-button-maybe|ezimage-insert-over-text|f90-abbrev-help|f90-abbrev-start|f90-add-imenu-menu|f90-backslash-not-special|f90-beginning-of-block|f90-beginning-of-subprogram|f90-block-match|f90-break-line|f90-calculate-indent|f90-capitalize-keywords|f90-capitalize-region-keywords|f90-change-keywords|f90-comment-indent|f90-comment-region|f90-current-defun|f90-current-indentation|f90-do-auto-fill|f90-downcase-keywords|f90-downcase-region-keywords|f90-electric-insert|f90-end-of-block|f90-end-of-subprogram|f90-equal-symbols|f90-fill-region|f90-find-breakpoint|f90-font-lock-1|f90-font-lock-2|f90-font-lock-3|f90-font-lock-4|f90-font-lock-n|f90-get-correct-indent|f90-get-present-comment-type|f90-imenu-type-matcher|f90-in-comment|f90-in-string|f90-indent-line-no|f90-indent-line|f90-indent-new-line|f90-indent-region|f90-indent-subprogram|f90-indent-to|f90-insert-end|f90-join-lines|f90-line-continued|f90-looking-at-associate|f90-looking-at-critical|f90-looking-at-do|f90-looking-at-end-critical|f90-looking-at-if-then|f90-looking-at-program-block-end|f90-looking-at-program-block-start|f90-looking-at-select-case|f90-looking-at-type-like|f90-looking-at-where-or-forall|f90-mark-subprogram|f90-match-end|f90-menu|f90-mode|f90-next-block|f90-next-statement|f90-no-block-limit|f90-prepare-abbrev-list-buffer|f90-present-statement-cont|f90-previous-block|f90-previous-statement|f90-typedec-matcher|f90-typedef-matcher|f90-upcase-keywords|f90-upcase-region-keywords|f90-update-line|face-at-point|face-attr-construct|face-attr-match-p|face-attribute-merged-with|face-attribute-specified-or|face-attributes-as-vector|face-attrs-more-relative-p|face-background-pixmap|face-default-spec|face-descriptive-attribute-name|face-doc-string|face-name|face-nontrivial-p|face-read-integer|face-read-string|face-remap-order|face-set-after-frame-default|face-spec-choose|face-spec-match-p|face-spec-recalc|face-spec-reset-face|face-spec-set-2|face-spec-set-match-display|face-user-default-spec|face-valid-attribute-values|facemenu-active-faces|facemenu-add-face|facemenu-add-new-color|facemenu-add-new-face|facemenu-background-menu|facemenu-color-equal|facemenu-complete-face-list|facemenu-enable-faces-p|facemenu-face-menu|facemenu-foreground-menu|facemenu-indentation-menu|facemenu-iterate|facemenu-justification-menu|facemenu-menu|facemenu-post-self-insert-function|facemenu-read-color|facemenu-remove-all|facemenu-remove-face-props|facemenu-remove-special|facemenu-set-background|facemenu-set-bold-italic|facemenu-set-bold|facemenu-set-default|facemenu-set-face-from-menu|facemenu-set-face|facemenu-set-foreground|facemenu-set-intangible|facemenu-set-invisible|facemenu-set-italic|facemenu-set-read-only|facemenu-set-self-insert-face|facemenu-set-underline|facemenu-special-menu|facemenu-update|fancy-about-screen|fancy-splash-frame|fancy-splash-head|fancy-splash-image-file|fancy-splash-insert|fancy-startup-screen|fancy-startup-tail|feature-file|feature-symbols|feedmail-accume-n-nuke-header|feedmail-buffer-to-binmail|feedmail-buffer-to-sendmail|feedmail-buffer-to-smtp|feedmail-buffer-to-smtpmail|feedmail-confirm-addresses-hook-example|feedmail-create-queue-filename|feedmail-deduce-address-list|feedmail-default-date-generator|feedmail-default-message-id-generator|feedmail-default-x-mailer-generator|feedmail-dump-message-to-queue|feedmail-envelope-deducer|feedmail-fiddle-date|feedmail-fiddle-from|feedmail-fiddle-header|feedmail-fiddle-list-of-fiddle-plexes|feedmail-fiddle-list-of-spray-fiddle-plexes|feedmail-fiddle-message-id|feedmail-fiddle-sender|feedmail-fiddle-spray-address|feedmail-fiddle-x-mailer|feedmail-fill-this-one|feedmail-fill-to-cc-function|feedmail-find-eoh|feedmail-fqm-p|feedmail-give-it-to-buffer-eater|feedmail-look-at-queue-directory|feedmail-mail-send-hook-splitter|feedmail-message-action-draft-strong|feedmail-message-action-draft|feedmail-message-action-edit|feedmail-message-action-help-blat|feedmail-message-action-help|feedmail-message-action-queue-strong|feedmail-message-action-queue|feedmail-message-action-scroll-down|feedmail-message-action-scroll-up|feedmail-message-action-send-strong|feedmail-message-action-send|feedmail-message-action-toggle-spray|feedmail-one-last-look|feedmail-queue-express-to-draft|feedmail-queue-express-to-queue|feedmail-queue-reminder-brief|feedmail-queue-reminder-medium|feedmail-queue-reminder|feedmail-queue-runner-prompt|feedmail-queue-send-edit-prompt-inner|feedmail-queue-send-edit-prompt|feedmail-queue-subject-slug-maker|feedmail-rfc822-date|feedmail-rfc822-time-zone|feedmail-run-the-queue-global-prompt|feedmail-run-the-queue-no-prompts|feedmail-run-the-queue|feedmail-say-chatter|feedmail-say-debug|feedmail-scroll-buffer|feedmail-send-it-immediately-wrapper|feedmail-send-it-immediately|feedmail-send-it|feedmail-spray-via-bbdb|feedmail-tidy-up-slug|feedmail-vm-mail-mode|fetch-overload|ff-all-dirs-under|ff-basename|ff-cc-hh-converter|ff-find-file|ff-find-other-file|ff-find-related-file|ff-find-the-other-file|ff-get-file-name|ff-get-file|ff-get-other-file|ff-list-replace-env-vars|ff-mouse-find-other-file-other-window|ff-mouse-find-other-file|ff-other-file-name|ff-set-point-accordingly|ff-string-match|ff-switch-file|ff-switch-to-buffer|ff-treat-as-special|ff-upcase-p|ff-which-function-are-we-in|ffap--toggle-read-only|ffap-all-subdirs-loop|ffap-all-subdirs|ffap-alternate-file-other-window|ffap-alternate-file|ffap-at-mouse|ffap-bib|ffap-bindings|ffap-bug|ffap-c\\\\+\\\\+-mode|ffap-c-mode|ffap-completable|ffap-copy-string-as-kill|ffap-dired-other-frame|ffap-dired-other-window|ffap-dired|ffap-el-mode|ffap-el|ffap-event-buffer|ffap-file-at-point|ffap-file-exists-string|ffap-file-remote-p|ffap-file-suffix|ffap-fixup-machine|ffap-fixup-url|ffap-fortran-mode|ffap-gnus-hook|ffap-gnus-menu|ffap-gnus-next|ffap-gnus-wrapper|ffap-gopher-at-point|ffap-guess-file-name-at-point|ffap-guesser|ffap-highlight|ffap-home|ffap-host-to-filename|ffap-info-2|ffap-info-3|ffap-info|ffap-kpathsea-expand-path|ffap-latex-mode|ffap-lcd|ffap-list-directory|ffap-list-env|ffap-literally|ffap-locate-file|ffap-machine-at-point|ffap-machine-p|ffap-menu-ask|ffap-menu-cont|ffap-menu-rescan|ffap-menu|ffap-mouse-event|ffap-newsgroup-p|ffap-next-guess|ffap-next-url|ffap-next|ffap-other-frame|ffap-other-window|ffap-prompter|ffap-read-file-or-url-internal|ffap-read-file-or-url|ffap-read-only-other-frame|ffap-read-only-other-window|ffap-read-only|ffap-read-url-internal|ffap-reduce-path|ffap-replace-file-component|ffap-rfc|ffap-ro-mode-hook|ffap-string-around|ffap-string-at-point|ffap-submit-bug|ffap-symbol-value|ffap-tex-init|ffap-tex-mode|ffap-tex|ffap-url-at-point|ffap-url-p|ffap-url-unwrap-local|ffap-url-unwrap-remote|ffap-what-domain|ffap|field-at-pos|field-complete|fifth|file-attributes-lessp|file-cache--read-list|file-cache-add-directory-list|file-cache-add-directory-recursively|file-cache-add-directory-using-find|file-cache-add-directory-using-locate|file-cache-add-directory|file-cache-add-file-list|file-cache-add-file|file-cache-add-from-file-cache-buffer|file-cache-canonical-directory|file-cache-choose-completion|file-cache-clear-cache|file-cache-complete|file-cache-completion-setup-function|file-cache-debug-read-from-minibuffer|file-cache-delete-directory-list|file-cache-delete-directory|file-cache-delete-file-list|file-cache-delete-file-regexp|file-cache-delete-file|file-cache-directory-name|file-cache-display|file-cache-do-delete-directory)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:file-cache-file-name|file-cache-files-matching-internal|file-cache-files-matching|file-cache-minibuffer-complete|file-cache-mouse-choose-completion|file-dependents|file-loadhist-lookup|file-modes-char-to-right|file-modes-char-to-who|file-modes-rights-to-number|file-name-non-special|file-name-shadow-mode|file-notify--event-cookie|file-notify--event-file-name|file-notify--event-file1-name|file-notify-callback|file-notify-handle-event|file-of-tag|file-provides|file-requires|file-set-intersect|file-size-human-readable|file-tree-walk|filesets-add-buffer|filesets-alist-get|filesets-browse-dir|filesets-browser-name|filesets-build-dir-submenu-now|filesets-build-dir-submenu|filesets-build-ingroup-submenu|filesets-build-menu-maybe|filesets-build-menu-now|filesets-build-menu|filesets-build-submenu|filesets-close|filesets-cmd-get-args|filesets-cmd-get-def|filesets-cmd-get-fn|filesets-cmd-isearch-getargs|filesets-cmd-query-replace-getargs|filesets-cmd-query-replace-regexp-getargs|filesets-cmd-shell-command-getargs|filesets-cmd-shell-command|filesets-cmd-show-result|filesets-conditional-sort|filesets-convert-path-list|filesets-convert-patterns|filesets-customize|filesets-data-get-data|filesets-data-get-name|filesets-data-get|filesets-data-set-default|filesets-data-set|filesets-directory-files|filesets-edit|filesets-entry-get-dormant-flag|filesets-entry-get-file|filesets-entry-get-files|filesets-entry-get-filter-dirs-flag|filesets-entry-get-master|filesets-entry-get-open-fn|filesets-entry-get-pattern--dir|filesets-entry-get-pattern--pattern|filesets-entry-get-pattern|filesets-entry-get-save-fn|filesets-entry-get-tree-max-level|filesets-entry-get-tree|filesets-entry-get-verbosity|filesets-entry-mode|filesets-entry-set-files|filesets-error|filesets-eviewer-constraint-p|filesets-eviewer-get-props|filesets-exit|filesets-file-close|filesets-file-open|filesets-files-equalp|filesets-files-in-same-directory-p|filesets-filetype-get-prop|filesets-filetype-property|filesets-filter-dir-names|filesets-filter-list|filesets-find-file-using|filesets-find-file|filesets-find-or-display-file|filesets-get-cmd-menu|filesets-get-external-viewer-by-name|filesets-get-external-viewer|filesets-get-filelist|filesets-get-fileset-from-name|filesets-get-fileset-name|filesets-get-menu-epilog|filesets-get-quoted-selection|filesets-get-selection|filesets-get-shortcut|filesets-goto-homepage|filesets-info|filesets-ingroup-cache-get|filesets-ingroup-cache-put|filesets-ingroup-collect-build-menu|filesets-ingroup-collect-files|filesets-ingroup-collect-finder|filesets-ingroup-collect|filesets-ingroup-get-data|filesets-ingroup-get-pattern|filesets-ingroup-get-remdupl-p|filesets-init|filesets-member|filesets-menu-cache-file-load|filesets-menu-cache-file-save-maybe|filesets-menu-cache-file-save|filesets-message|filesets-open|filesets-ormap|filesets-quote|filesets-rebuild-this-submenu|filesets-remake-shortcut|filesets-remove-buffer|filesets-remove-from-ubl|filesets-reset-filename-on-change|filesets-reset-fileset|filesets-run-cmd--repl-fn|filesets-run-cmd|filesets-save-config|filesets-select-command|filesets-set-config|filesets-set-default!|filesets-set-default\\\\+|filesets-set-default|filesets-some|filesets-spawn-external-viewer|filesets-sublist|filesets-update-cleanup|filesets-update-pre010505|filesets-update|filesets-which-command-p|filesets-which-command|filesets-which-file|filesets-wrap-submenu|fill-comment-paragraph|fill-common-string-prefix|fill-delete-newlines|fill-delete-prefix|fill-find-break-point|fill-flowed-encode|fill-flowed|fill-forward-paragraph|fill-french-nobreak-p|fill-indent-to-left-margin|fill-individual-paragraphs-citation|fill-individual-paragraphs-prefix|fill-match-adaptive-prefix|fill-minibuffer-function|fill-move-to-break-point|fill-newline|fill-nobreak-p|fill-nonuniform-paragraphs|fill-single-char-nobreak-p|fill-single-word-nobreak-p|fill-text-properties-at|fill|filtered-frame-list|find-alternate-file-other-window|find-alternate-file|find-change-log|find-class|find-cmd|find-cmpl-prefix-entry|find-coding-systems-region-internal|find-composition-internal|find-composition|find-definition-noselect|find-dired-filter|find-dired-sentinel|find-dired|find-emacs-lisp-shadows|find-exact-completion|find-face-definition|find-file--read-only|find-file-at-point|find-file-existing|find-file-literally-at-point|find-file-noselect-1|find-file-other-frame|find-file-read-args|find-file-read-only-other-frame|find-file-read-only-other-window|find-function-C-source|find-function-advised-original|find-function-at-point|find-function-do-it|find-function-library|find-function-noselect|find-function-on-key|find-function-other-frame|find-function-other-window|find-function-read|find-function-search-for-symbol|find-function-setup-keys|find-function|find-grep-dired|find-grep|find-if-not|find-if|find-library--load-name|find-library-name|find-library-suffixes|find-library|find-lisp-debug-message|find-lisp-default-directory-predicate|find-lisp-default-file-predicate|find-lisp-file-predicate-is-directory|find-lisp-find-dired-filter|find-lisp-find-dired-insert-file|find-lisp-find-dired-internal|find-lisp-find-dired-subdirectories|find-lisp-find-dired|find-lisp-find-files-internal|find-lisp-find-files|find-lisp-format-time|find-lisp-format|find-lisp-insert-directory|find-lisp-object-file-name|find-lisp-time-index|find-multibyte-characters|find-name-dired|find-new-buffer-file-coding-system|find-tag-default-as-regexp|find-tag-default-as-symbol-regexp|find-tag-default-bounds|find-tag-default|find-tag-in-order|find-tag-interactive|find-tag-noselect|find-tag-other-frame|find-tag-other-window|find-tag-regexp|find-tag-tag|find-tag|find-variable-at-point|find-variable-noselect|find-variable-other-frame|find-variable-other-window|find-variable|find|finder-by-keyword|finder-commentary|finder-compile-keywords-make-dist|finder-compile-keywords|finder-current-item|finder-exit|finder-goto-xref|finder-insert-at-column|finder-list-keywords|finder-list-matches|finder-mode|finder-mouse-face-on-line|finder-mouse-select|finder-select|finder-summary|finder-unknown-keywords|finder-unload-function|finger|first-error|first|floatp-safe|floor\\\\*|flush-lines|flymake-add-buildfile-to-cache|flymake-add-err-info|flymake-add-line-err-info|flymake-add-project-include-dirs-to-cache|flymake-after-change-function|flymake-after-save-hook|flymake-can-syntax-check-file|flymake-check-include|flymake-check-patch-master-file-buffer|flymake-clear-buildfile-cache|flymake-clear-project-include-dirs-cache|flymake-compilation-is-running|flymake-compile|flymake-copy-buffer-to-temp-buffer|flymake-create-master-file|flymake-create-temp-inplace|flymake-create-temp-with-folder-structure|flymake-delete-own-overlays|flymake-delete-temp-directory|flymake-display-err-menu-for-current-line|flymake-display-warning|flymake-er-get-line-err-info-list|flymake-er-get-line|flymake-er-make-er|flymake-find-buffer-for-file|flymake-find-buildfile|flymake-find-err-info|flymake-find-file-hook|flymake-find-make-buildfile|flymake-find-possible-master-files|flymake-fix-file-name|flymake-fix-line-numbers|flymake-get-ant-cmdline|flymake-get-buildfile-from-cache|flymake-get-cleanup-function|flymake-get-err-count|flymake-get-file-name-mode-and-masks|flymake-get-first-err-line-no|flymake-get-full-nonpatched-file-name|flymake-get-full-patched-file-name|flymake-get-include-dirs-dot|flymake-get-include-dirs|flymake-get-init-function|flymake-get-last-err-line-no|flymake-get-line-err-count|flymake-get-make-cmdline|flymake-get-next-err-line-no|flymake-get-prev-err-line-no|flymake-get-project-include-dirs-from-cache|flymake-get-project-include-dirs-imp|flymake-get-project-include-dirs|flymake-get-real-file-name-function|flymake-get-real-file-name|flymake-get-syntax-check-program-args|flymake-get-system-include-dirs|flymake-get-tex-args|flymake-goto-file-and-line|flymake-goto-line|flymake-goto-next-error|flymake-goto-prev-error|flymake-highlight-err-lines|flymake-highlight-line|flymake-init-create-temp-buffer-copy|flymake-init-create-temp-source-and-master-buffer-copy|flymake-init-find-buildfile-dir|flymake-ins-after|flymake-kill-buffer-hook|flymake-kill-process|flymake-ler-file--cmacro|flymake-ler-file|flymake-ler-full-file--cmacro|flymake-ler-full-file|flymake-ler-line--cmacro|flymake-ler-line|flymake-ler-make-ler--cmacro|flymake-ler-make-ler|flymake-ler-p--cmacro|flymake-ler-p|flymake-ler-set-file|flymake-ler-set-full-file|flymake-ler-set-line|flymake-ler-text--cmacro|flymake-ler-text|flymake-ler-type--cmacro|flymake-ler-type|flymake-line-err-info-is-less-or-equal|flymake-log|flymake-make-overlay|flymake-master-cleanup|flymake-master-file-compare|flymake-master-make-header-init|flymake-master-make-init|flymake-master-tex-init|flymake-mode-off|flymake-mode-on|flymake-mode|flymake-on-timer-event|flymake-overlay-p|flymake-parse-err-lines|flymake-parse-line|flymake-parse-output-and-residual|flymake-parse-residual|flymake-patch-err-text|flymake-perl-init|flymake-php-init|flymake-popup-current-error-menu|flymake-post-syntax-check|flymake-process-filter|flymake-process-sentinel|flymake-read-file-to-temp-buffer|flymake-reformat-err-line-patterns-from-compile-el|flymake-region-has-flymake-overlays|flymake-replace-region|flymake-report-fatal-status|flymake-report-status|flymake-safe-delete-directory|flymake-safe-delete-file|flymake-same-files|flymake-save-buffer-in-file|flymake-set-at|flymake-simple-ant-java-init|flymake-simple-cleanup|flymake-simple-java-cleanup|flymake-simple-make-init-impl|flymake-simple-make-init|flymake-simple-make-java-init|flymake-simple-tex-init|flymake-skip-whitespace|flymake-split-output|flymake-start-syntax-check-process|flymake-start-syntax-check|flymake-stop-all-syntax-checks|flymake-xml-init|flyspell-abbrev-table|flyspell-accept-buffer-local-defs|flyspell-after-change-function|flyspell-ajust-cursor-point|flyspell-already-abbrevp|flyspell-auto-correct-previous-hook|flyspell-auto-correct-previous-word|flyspell-auto-correct-word|flyspell-buffer|flyspell-change-abbrev|flyspell-check-changed-word-p|flyspell-check-pre-word-p|flyspell-check-previous-highlighted-word|flyspell-check-region-doublons|flyspell-check-word-p|flyspell-correct-word-before-point|flyspell-correct-word|flyspell-debug-signal-changed-checked|flyspell-debug-signal-no-check|flyspell-debug-signal-pre-word-checked|flyspell-debug-signal-word-checked|flyspell-define-abbrev|flyspell-delay-command|flyspell-delay-commands|flyspell-delete-all-overlays|flyspell-delete-region-overlays|flyspell-deplacement-command|flyspell-deplacement-commands|flyspell-display-next-corrections|flyspell-do-correct|flyspell-emacs-popup|flyspell-external-point-words|flyspell-generic-progmode-verify|flyspell-get-casechars|flyspell-get-not-casechars|flyspell-get-word|flyspell-goto-next-error|flyspell-hack-local-variables-hook|flyspell-highlight-duplicate-region|flyspell-highlight-incorrect-region|flyspell-kill-ispell-hook|flyspell-large-region|flyspell-math-tex-command-p|flyspell-maybe-correct-doubling|flyspell-maybe-correct-transposition|flyspell-minibuffer-p|flyspell-mode-off|flyspell-mode-on|flyspell-mode|flyspell-notify-misspell|flyspell-overlay-p|flyspell-post-command-hook|flyspell-pre-command-hook|flyspell-process-localwords|flyspell-prog-mode|flyspell-properties-at-p|flyspell-region|flyspell-small-region|flyspell-tex-command-p|flyspell-unhighlight-at|flyspell-word-search-backward|flyspell-word-search-forward|flyspell-word|flyspell-xemacs-popup|focus-frame|foldout-exit-fold|foldout-mouse-goto-heading|foldout-mouse-hide-or-exit|foldout-mouse-show|foldout-mouse-swallow-events|foldout-mouse-zoom|foldout-update-mode-line|foldout-zoom-subtree|follow--window-sorter|follow-adjust-window|follow-align-compilation-windows|follow-all-followers|follow-avoid-tail-recenter|follow-cache-valid-p|follow-calc-win-end|follow-calc-win-start|follow-calculate-first-window-start-from-above|follow-calculate-first-window-start-from-below|follow-comint-scroll-to-bottom|follow-debug-message|follow-delete-other-windows-and-split|follow-end-of-buffer|follow-estimate-first-window-start|follow-find-file-hook|follow-first-window|follow-last-window|follow-maximize-region|follow-menu-filter|follow-mode|follow-mwheel-scroll|follow-next-window|follow-point-visible-all-windows-p|follow-pos-visible|follow-post-command-hook|follow-previous-window|follow-recenter|follow-redisplay|follow-redraw-after-event|follow-redraw|follow-scroll-bar-drag|follow-scroll-bar-scroll-down)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:follow-scroll-bar-scroll-up|follow-scroll-bar-toolkit-scroll|follow-scroll-down|follow-scroll-up|follow-select-if-end-visible|follow-select-if-visible-from-first|follow-select-if-visible|follow-split-followers|follow-switch-to-buffer-all|follow-switch-to-buffer|follow-switch-to-current-buffer-all|follow-update-window-start|follow-window-size-change|follow-windows-aligned-p|follow-windows-start-end|font-get-glyphs|font-get-system-font|font-get-system-normal-font|font-info|font-lock-after-change-function|font-lock-after-fontify-buffer|font-lock-after-unfontify-buffer|font-lock-append-text-property|font-lock-apply-highlight|font-lock-apply-syntactic-highlight|font-lock-change-mode|font-lock-choose-keywords|font-lock-compile-keyword|font-lock-compile-keywords|font-lock-default-fontify-buffer|font-lock-default-fontify-region|font-lock-default-function|font-lock-default-unfontify-buffer|font-lock-default-unfontify-region|font-lock-defontify|font-lock-ensure|font-lock-eval-keywords|font-lock-extend-jit-lock-region-after-change|font-lock-extend-region-multiline|font-lock-extend-region-wholelines|font-lock-fillin-text-property|font-lock-flush|font-lock-fontify-anchored-keywords|font-lock-fontify-block|font-lock-fontify-buffer|font-lock-fontify-keywords-region|font-lock-fontify-region|font-lock-fontify-syntactic-anchored-keywords|font-lock-fontify-syntactic-keywords-region|font-lock-fontify-syntactically-region|font-lock-initial-fontify|font-lock-match-c-style-declaration-item-and-skip-to-next|font-lock-match-meta-declaration-item-and-skip-to-next|font-lock-mode-internal|font-lock-mode-set-explicitly|font-lock-mode|font-lock-prepend-text-property|font-lock-refresh-defaults|font-lock-set-defaults|font-lock-specified-p|font-lock-turn-off-thing-lock|font-lock-turn-on-thing-lock|font-lock-unfontify-buffer|font-lock-unfontify-region|font-lock-update-removed-keyword-alist|font-lock-value-in-major-mode|font-match-p|font-menu-add-default|font-setting-change-default-font|font-shape-gstring|font-show-log|font-variation-glyphs|fontset-font|fontset-info|fontset-list|fontset-name-p|fontset-plain-name|footnote-mode|foreground-color-at-point|form-at-point|format-annotate-atomic-property-change|format-annotate-function|format-annotate-location|format-annotate-region|format-annotate-single-property-change|format-annotate-value|format-deannotate-region|format-decode-buffer|format-decode-region|format-decode-run-method|format-decode|format-delq-cons|format-encode-buffer|format-encode-region|format-encode-run-method|format-insert-annotations|format-kbd-macro|format-make-relatively-unique|format-proper-list-p|format-property-increment-region|format-read|format-reorder|format-replace-strings|format-spec-make|format-spec|format-subtract-regions|forms-find-file-other-window|forms-find-file|forms-mode|fortran-abbrev-help|fortran-abbrev-start|fortran-analyze-file-format|fortran-auto-fill-mode|fortran-auto-fill|fortran-beginning-do|fortran-beginning-if|fortran-beginning-of-block|fortran-beginning-of-subprogram|fortran-blink-match|fortran-blink-matching-do|fortran-blink-matching-if|fortran-break-line|fortran-calculate-indent|fortran-check-end-prog-re|fortran-check-for-matching-do|fortran-column-ruler|fortran-comment-indent|fortran-comment-region|fortran-current-defun|fortran-current-line-indentation|fortran-electric-line-number|fortran-end-do|fortran-end-if|fortran-end-of-block|fortran-end-of-subprogram|fortran-fill-paragraph|fortran-fill-statement|fortran-fill|fortran-find-comment-start-skip|fortran-gud-find-expr|fortran-hack-local-variables|fortran-indent-comment|fortran-indent-line|fortran-indent-new-line|fortran-indent-subprogram|fortran-indent-to-column|fortran-is-in-string-p|fortran-join-line|fortran-line-length|fortran-line-number-indented-correctly-p|fortran-looking-at-if-then|fortran-make-syntax-propertize-function|fortran-mark-do|fortran-mark-if|fortran-match-and-skip-declaration|fortran-menu|fortran-mode|fortran-next-statement|fortran-numerical-continuation-char|fortran-prepare-abbrev-list-buffer|fortran-previous-statement|fortran-remove-continuation|fortran-split-line|fortran-strip-sequence-nos|fortran-uncomment-region|fortran-window-create-momentarily|fortran-window-create|fortune-add-fortune|fortune-append|fortune-ask-file|fortune-compile|fortune-from-region|fortune-in-buffer|fortune-to-signature|fortune|forward-ifdef|forward-page|forward-paragraph|forward-point|forward-same-syntax|forward-sentence|forward-symbol|forward-text-line|forward-thing|forward-visible-line|forward-whitespace|fourth|frame-border-width|frame-bottom-divider-width|frame-can-run-window-configuration-change-hook|frame-char-size|frame-configuration-p|frame-configuration-to-register|frame-face-alist|frame-focus|frame-font-cache|frame-fringe-width|frame-geom-spec-cons|frame-geom-value-cons|frame-initialize|frame-notice-user-settings|frame-or-buffer-changed-p|frame-remove-geometry-params|frame-right-divider-width|frame-root-window-p|frame-scroll-bar-height|frame-scroll-bar-width|frame-set-background-mode|frame-terminal-default-bg-mode|frame-text-cols|frame-text-height|frame-text-lines|frame-text-width|frame-total-cols|frame-total-lines|frame-windows-min-size|framep-on-display|frames-on-display-list|frameset--find-frame-if|frameset--initial-params|frameset--jump-to-register|frameset--make--cmacro|frameset--make|frameset--minibufferless-last-p|frameset--print-register|frameset--prop-setter|frameset--record-minibuffer-relationships|frameset--restore-frame|frameset--reuse-frame|frameset--set-id|frameset-app--cmacro|frameset-app|frameset-cfg-id|frameset-compute-pos|frameset-copy|frameset-description--cmacro|frameset-description|frameset-filter-iconified|frameset-filter-minibuffer|frameset-filter-params|frameset-filter-sanitize-color|frameset-filter-shelve-param|frameset-filter-tty-to-GUI|frameset-filter-unshelve-param|frameset-frame-id-equal-p|frameset-frame-id|frameset-frame-with-id|frameset-keep-original-display-p|frameset-minibufferless-first-p|frameset-move-onscreen|frameset-name--cmacro|frameset-name|frameset-p--cmacro|frameset-p|frameset-prop|frameset-properties--cmacro|frameset-properties|frameset-restore|frameset-save|frameset-states--cmacro|frameset-states|frameset-switch-to-gui-p|frameset-switch-to-tty-p|frameset-timestamp--cmacro|frameset-timestamp|frameset-to-register|frameset-valid-p|frameset-version--cmacro|frameset-version|fringe--check-style|fringe-bitmap-p|fringe-columns|fringe-mode-initialize|fringe-mode|fringe-query-style|ftp-mode|ftp|full-calc-keypad|full-calc|funcall-interactively|function\\\\*|function-called-at-point|function-equal|function-overload-p|function-put|function|gamegrid-add-score-insecure|gamegrid-add-score-with-update-game-score-1|gamegrid-add-score-with-update-game-score|gamegrid-add-score|gamegrid-cell-offset|gamegrid-characterp|gamegrid-color|gamegrid-colorize-glyph|gamegrid-display-type|gamegrid-event-x|gamegrid-event-y|gamegrid-get-cell|gamegrid-init-buffer|gamegrid-init|gamegrid-initialize-display|gamegrid-kill-timer|gamegrid-make-color-tty-face|gamegrid-make-color-x-face|gamegrid-make-face|gamegrid-make-glyph|gamegrid-make-grid-x-face|gamegrid-make-image-from-vector|gamegrid-make-mono-tty-face|gamegrid-make-mono-x-face|gamegrid-match-spec-list|gamegrid-match-spec|gamegrid-set-cell|gamegrid-set-display-table|gamegrid-set-face|gamegrid-set-font|gamegrid-set-timer|gamegrid-setup-default-font|gamegrid-setup-face|gamegrid-start-timer|gametree-apply-layout|gametree-apply-register-layout|gametree-break-line-here|gametree-children-shown-p|gametree-compute-and-insert-score|gametree-compute-reduced-score|gametree-current-branch-depth|gametree-current-branch-ply|gametree-current-branch-score|gametree-current-layout|gametree-entry-shown-p|gametree-forward-line|gametree-hack-file-layout|gametree-insert-new-leaf|gametree-insert-score|gametree-layout-to-register|gametree-looking-at-ply|gametree-merge-line|gametree-mode|gametree-mouse-break-line-here|gametree-mouse-hide-subtree|gametree-mouse-show-children-and-entry|gametree-mouse-show-subtree|gametree-prettify-heading|gametree-restore-layout|gametree-save-and-hack-layout|gametree-save-layout|gametree-show-children-and-entry|gametree-transpose-following-leaves|gcd|gdb--check-interpreter|gdb--if-arrow|gdb-add-handler|gdb-add-subscriber|gdb-append-to-partial-output|gdb-bind-function-to-buffer|gdb-breakpoints-buffer-name|gdb-breakpoints-list-handler-custom|gdb-breakpoints-list-handler|gdb-breakpoints-mode|gdb-buffer-shows-main-thread-p|gdb-buffer-type|gdb-changed-registers-handler|gdb-check-target-async|gdb-clear-inferior-io|gdb-clear-partial-output|gdb-concat-output|gdb-console|gdb-continue-thread|gdb-control-all-threads|gdb-control-current-thread|gdb-create-define-alist|gdb-current-buffer-frame|gdb-current-buffer-rules|gdb-current-buffer-thread|gdb-current-context-buffer-name|gdb-current-context-command|gdb-current-context-mode-name|gdb-delchar-or-quit|gdb-delete-breakpoint|gdb-delete-frame-or-window|gdb-delete-handler|gdb-delete-subscriber|gdb-disassembly-buffer-name|gdb-disassembly-handler-custom|gdb-disassembly-handler|gdb-disassembly-mode|gdb-disassembly-place-breakpoints|gdb-display-breakpoints-buffer|gdb-display-buffer|gdb-display-disassembly-buffer|gdb-display-disassembly-for-thread|gdb-display-gdb-buffer|gdb-display-io-buffer|gdb-display-locals-buffer|gdb-display-locals-for-thread|gdb-display-memory-buffer|gdb-display-registers-buffer|gdb-display-registers-for-thread|gdb-display-source-buffer|gdb-display-stack-buffer|gdb-display-stack-for-thread|gdb-display-threads-buffer|gdb-done-or-error|gdb-done|gdb-edit-locals-value|gdb-edit-register-value|gdb-edit-value-handler|gdb-edit-value|gdb-emit-signal|gdb-enable-debug|gdb-error|gdb-find-file-hook|gdb-find-watch-expression|gdb-force-mode-line-update|gdb-frame-breakpoints-buffer|gdb-frame-disassembly-buffer|gdb-frame-disassembly-for-thread|gdb-frame-gdb-buffer|gdb-frame-handler|gdb-frame-io-buffer|gdb-frame-locals-buffer|gdb-frame-locals-for-thread|gdb-frame-location|gdb-frame-memory-buffer|gdb-frame-registers-buffer|gdb-frame-registers-for-thread|gdb-frame-stack-buffer|gdb-frame-stack-for-thread|gdb-frame-threads-buffer|gdb-frames-mode|gdb-gdb|gdb-get-buffer-create|gdb-get-buffer|gdb-get-changed-registers|gdb-get-handler-function|gdb-get-location|gdb-get-main-selected-frame|gdb-get-many-fields|gdb-get-prompt|gdb-get-source-file-list|gdb-get-source-file|gdb-get-subscribers|gdb-get-target-string|gdb-goto-breakpoint|gdb-gud-context-call|gdb-gud-context-command|gdb-handle-reply|gdb-handler-function--cmacro|gdb-handler-function|gdb-handler-p--cmacro|gdb-handler-p|gdb-handler-pending-trigger--cmacro|gdb-handler-pending-trigger|gdb-handler-token-number--cmacro|gdb-handler-token-number|gdb-ignored-notification|gdb-inferior-filter|gdb-inferior-io--init-proc|gdb-inferior-io-mode|gdb-inferior-io-name|gdb-inferior-io-sentinel|gdb-init-1|gdb-init-buffer|gdb-input|gdb-internals|gdb-interrupt-thread|gdb-invalidate-breakpoints|gdb-invalidate-disassembly|gdb-invalidate-frames|gdb-invalidate-locals|gdb-invalidate-memory|gdb-invalidate-registers|gdb-invalidate-threads|gdb-io-eof|gdb-io-interrupt|gdb-io-quit|gdb-io-stop|gdb-json-partial-output|gdb-json-read-buffer|gdb-json-string|gdb-jsonify-buffer|gdb-line-posns|gdb-locals-buffer-name|gdb-locals-handler-custom|gdb-locals-handler|gdb-locals-mode|gdb-make-header-line-mouse-map|gdb-many-windows|gdb-mark-line|gdb-memory-buffer-name|gdb-memory-column-width|gdb-memory-format-binary|gdb-memory-format-hexadecimal|gdb-memory-format-menu-1|gdb-memory-format-menu|gdb-memory-format-octal|gdb-memory-format-signed|gdb-memory-format-unsigned|gdb-memory-mode|gdb-memory-set-address-event|gdb-memory-set-address|gdb-memory-set-columns|gdb-memory-set-rows|gdb-memory-show-next-page|gdb-memory-show-previous-page|gdb-memory-unit-byte|gdb-memory-unit-giant|gdb-memory-unit-halfword|gdb-memory-unit-menu-1|gdb-memory-unit-menu|gdb-memory-unit-word|gdb-mi-quote|gdb-mouse-jump|gdb-mouse-set-clear-breakpoint|gdb-mouse-toggle-breakpoint-fringe|gdb-mouse-toggle-breakpoint-margin|gdb-mouse-until|gdb-non-stop-handler|gdb-pad-string|gdb-parent-mode|gdb-partial-output-name|gdb-pending-handler-p|gdb-place-breakpoints|gdb-preempt-existing-or-display-buffer|gdb-preemptively-display-disassembly-buffer|gdb-preemptively-display-locals-buffer|gdb-preemptively-display-registers-buffer|gdb-preemptively-display-stack-buffer|gdb-propertize-header)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:gdb-put-breakpoint-icon|gdb-put-string|gdb-read-memory-custom|gdb-read-memory-handler|gdb-register-names-handler|gdb-registers-buffer-name|gdb-registers-handler-custom|gdb-registers-handler|gdb-registers-mode|gdb-remove-all-pending-triggers|gdb-remove-breakpoint-icons|gdb-remove-strings|gdb-reset|gdb-restore-windows|gdb-resync|gdb-rules-buffer-mode|gdb-rules-name-maker|gdb-rules-update-trigger|gdb-running|gdb-script-beginning-of-defun|gdb-script-calculate-indentation|gdb-script-end-of-defun|gdb-script-font-lock-syntactic-face|gdb-script-indent-line|gdb-script-mode|gdb-script-skip-to-head|gdb-select-frame|gdb-select-thread|gdb-send|gdb-set-buffer-rules|gdb-set-window-buffer|gdb-setq-thread-number|gdb-setup-windows|gdb-shell|gdb-show-run-p|gdb-show-stop-p|gdb-speedbar-auto-raise|gdb-speedbar-expand-node|gdb-speedbar-timer-fn|gdb-speedbar-update|gdb-stack-buffer-name|gdb-stack-list-frames-custom|gdb-stack-list-frames-handler|gdb-starting|gdb-step-thread|gdb-stopped|gdb-strip-string-backslash|gdb-table-add-row|gdb-table-column-sizes--cmacro|gdb-table-column-sizes|gdb-table-p--cmacro|gdb-table-p|gdb-table-right-align--cmacro|gdb-table-right-align|gdb-table-row-properties--cmacro|gdb-table-row-properties|gdb-table-rows--cmacro|gdb-table-rows|gdb-table-string|gdb-thread-created|gdb-thread-exited|gdb-thread-list-handler-custom|gdb-thread-list-handler|gdb-thread-selected|gdb-threads-buffer-name|gdb-threads-mode|gdb-toggle-breakpoint|gdb-toggle-switch-when-another-stopped|gdb-tooltip-print-1|gdb-tooltip-print|gdb-update-buffer-name|gdb-update-gud-running|gdb-update|gdb-var-create-handler|gdb-var-delete-1|gdb-var-delete-children|gdb-var-delete|gdb-var-evaluate-expression-handler|gdb-var-list-children-handler|gdb-var-list-children|gdb-var-set-format|gdb-var-update-handler|gdb-var-update|gdb-wait-for-pending|gdb|gdbmi-bnf-async-record|gdbmi-bnf-console-stream-output|gdbmi-bnf-gdb-prompt|gdbmi-bnf-incomplete-record-result|gdbmi-bnf-init|gdbmi-bnf-log-stream-output|gdbmi-bnf-out-of-band-record|gdbmi-bnf-output|gdbmi-bnf-result-and-async-record-impl|gdbmi-bnf-result-record|gdbmi-bnf-skip-unrecognized|gdbmi-bnf-stream-record|gdbmi-bnf-target-stream-output|gdbmi-is-number|gdbmi-same-start|gdbmi-start-with|generate-fontset-menu|generic-char-p|generic-make-keywords-list|generic-mode-internal|generic-mode|generic-p|generic-primary-only-one-p|generic-primary-only-p|gensym|gentemp|get\\\\*|get-edebug-spec|get-file-char|get-free-disk-space|get-language-info|get-mode-local-parent|get-mru-window|get-next-valid-buffer|get-other-frame|get-scroll-bar-mode|get-unicode-property-internal|get-unused-iso-final-char|get-upcase-table|getenv-internal|getf|gfile-add-watch|gfile-rm-watch|glasses-change|glasses-convert-to-unreadable|glasses-custom-set|glasses-make-overlay|glasses-make-readable|glasses-make-unreadable|glasses-mode|glasses-overlay-p|glasses-parenthesis-exception-p|glasses-set-overlay-properties|global-auto-composition-mode|global-auto-revert-mode|global-cwarn-mode-check-buffers|global-cwarn-mode-cmhh|global-cwarn-mode-enable-in-buffers|global-cwarn-mode|global-ede-mode|global-eldoc-mode|global-font-lock-mode-check-buffers|global-font-lock-mode-cmhh|global-font-lock-mode-enable-in-buffers|global-font-lock-mode|global-hi-lock-mode-check-buffers|global-hi-lock-mode-cmhh|global-hi-lock-mode-enable-in-buffers|global-hi-lock-mode|global-highlight-changes-mode-check-buffers|global-highlight-changes-mode-cmhh|global-highlight-changes-mode-enable-in-buffers|global-highlight-changes-mode|global-highlight-changes|global-hl-line-highlight|global-hl-line-mode|global-hl-line-unhighlight-all|global-hl-line-unhighlight|global-linum-mode-check-buffers|global-linum-mode-cmhh|global-linum-mode-enable-in-buffers|global-linum-mode|global-prettify-symbols-mode-check-buffers|global-prettify-symbols-mode-cmhh|global-prettify-symbols-mode-enable-in-buffers|global-prettify-symbols-mode|global-reveal-mode|global-semantic-decoration-mode|global-semantic-highlight-edits-mode|global-semantic-highlight-func-mode|global-semantic-idle-completions-mode|global-semantic-idle-local-symbol-highlight-mode|global-semantic-idle-scheduler-mode|global-semantic-idle-summary-mode|global-semantic-mru-bookmark-mode|global-semantic-show-parser-state-mode|global-semantic-show-unmatched-syntax-mode|global-semantic-stickyfunc-mode|global-semanticdb-minor-mode|global-set-scheme-interaction-buffer|global-srecode-minor-mode|global-subword-mode|global-superword-mode|global-visual-line-mode-check-buffers|global-visual-line-mode-cmhh|global-visual-line-mode-enable-in-buffers|global-visual-line-mode|global-whitespace-mode|global-whitespace-newline-mode|global-whitespace-toggle-options|glyphless-set-char-table-range|gmm-called-interactively-p|gmm-customize-mode|gmm-error|gmm-format-time-string|gmm-image-load-path-for-library|gmm-image-search-load-path|gmm-labels|gmm-message|gmm-regexp-concat|gmm-tool-bar-from-list|gmm-widget-p|gmm-write-region|gnus--random-face-with-type|gnus-1|gnus-Folder-save-name|gnus-active|gnus-add-buffer|gnus-add-configuration|gnus-add-shutdown|gnus-add-text-properties-when|gnus-add-text-properties|gnus-add-to-sorted-list|gnus-agent-batch-fetch|gnus-agent-batch|gnus-agent-delete-group|gnus-agent-fetch-session|gnus-agent-find-parameter|gnus-agent-get-function|gnus-agent-get-undownloaded-list|gnus-agent-group-covered-p|gnus-agent-method-p|gnus-agent-possibly-alter-active|gnus-agent-possibly-save-gcc|gnus-agent-regenerate|gnus-agent-rename-group|gnus-agent-request-article|gnus-agent-retrieve-headers|gnus-agent-save-active|gnus-agent-save-group-info|gnus-agent-store-article|gnus-agentize|gnus-alist-pull|gnus-alive-p|gnus-and|gnus-annotation-in-region-p|gnus-apply-kill-file-internal|gnus-apply-kill-file|gnus-archive-server-wanted-p|gnus-article-date-lapsed|gnus-article-date-local|gnus-article-date-original|gnus-article-de-base64-unreadable|gnus-article-de-quoted-unreadable|gnus-article-decode-HZ|gnus-article-decode-encoded-words|gnus-article-delete-invisible-text|gnus-article-display-x-face|gnus-article-edit-article|gnus-article-edit-done|gnus-article-edit-mode|gnus-article-fill-cited-article|gnus-article-fill-cited-long-lines|gnus-article-hide-boring-headers|gnus-article-hide-citation-in-followups|gnus-article-hide-citation-maybe|gnus-article-hide-citation|gnus-article-hide-headers|gnus-article-hide-pem|gnus-article-hide-signature|gnus-article-highlight-citation|gnus-article-html|gnus-article-mail|gnus-article-mode|gnus-article-next-page|gnus-article-outlook-deuglify-article|gnus-article-outlook-repair-attribution|gnus-article-outlook-unwrap-lines|gnus-article-prepare-display|gnus-article-prepare|gnus-article-prev-page|gnus-article-read-summary-keys|gnus-article-remove-cr|gnus-article-remove-trailing-blank-lines|gnus-article-save|gnus-article-set-window-start|gnus-article-setup-buffer|gnus-article-strip-leading-blank-lines|gnus-article-treat-overstrike|gnus-article-unsplit-urls|gnus-article-wash-html|gnus-assq-delete-all|gnus-async-halt-prefetch|gnus-async-prefetch-article|gnus-async-prefetch-next|gnus-async-prefetch-remove-group|gnus-async-request-fetched-article|gnus-atomic-progn-assign|gnus-atomic-progn|gnus-atomic-setq|gnus-backlog-enter-article|gnus-backlog-remove-article|gnus-backlog-request-article|gnus-batch-kill|gnus-batch-score|gnus-binary-mode|gnus-bind-print-variables|gnus-blocked-images|gnus-bookmark-bmenu-list|gnus-bookmark-jump|gnus-bookmark-set|gnus-bound-and-true-p|gnus-boundp|gnus-browse-foreign-server|gnus-buffer-exists-p|gnus-buffer-live-p|gnus-buffers|gnus-bug|gnus-button-mailto|gnus-button-reply|gnus-byte-compile|gnus-cache-articles-in-group|gnus-cache-close|gnus-cache-delete-group|gnus-cache-enter-article|gnus-cache-enter-remove-article|gnus-cache-file-contents|gnus-cache-generate-active|gnus-cache-generate-nov-databases|gnus-cache-open|gnus-cache-possibly-alter-active|gnus-cache-possibly-enter-article|gnus-cache-possibly-remove-articles|gnus-cache-remove-article|gnus-cache-rename-group|gnus-cache-request-article|gnus-cache-retrieve-headers|gnus-cache-save-buffers|gnus-cache-update-article|gnus-cached-article-p|gnus-character-to-event|gnus-check-backend-function|gnus-check-reasonable-setup|gnus-completing-read|gnus-configure-windows|gnus-continuum-version|gnus-convert-article-to-rmail|gnus-convert-face-to-png|gnus-convert-gray-x-face-to-xpm|gnus-convert-image-to-gray-x-face|gnus-convert-png-to-face|gnus-copy-article-buffer|gnus-copy-file|gnus-copy-overlay|gnus-copy-sequence|gnus-create-hash-size|gnus-create-image|gnus-create-info-command|gnus-current-score-file-nondirectory|gnus-data-find|gnus-data-header|gnus-date-get-time|gnus-date-iso8601|gnus-dd-mmm|gnus-deactivate-mark|gnus-declare-backend|gnus-decode-newsgroups|gnus-define-group-parameter|gnus-define-keymap|gnus-define-keys-1|gnus-define-keys-safe|gnus-define-keys|gnus-delay-article|gnus-delay-initialize|gnus-delay-send-queue|gnus-delete-alist|gnus-delete-directory|gnus-delete-duplicates|gnus-delete-file|gnus-delete-first|gnus-delete-gnus-frame|gnus-delete-line|gnus-delete-overlay|gnus-demon-add-disconnection|gnus-demon-add-handler|gnus-demon-add-rescan|gnus-demon-add-scan-timestamps|gnus-demon-add-scanmail|gnus-demon-cancel|gnus-demon-init|gnus-demon-remove-handler|gnus-display-x-face-in-from|gnus-draft-mode|gnus-draft-reminder|gnus-dribble-enter|gnus-dribble-touch|gnus-dup-enter-articles|gnus-dup-suppress-articles|gnus-dup-unsuppress-article|gnus-edit-form|gnus-emacs-completing-read|gnus-emacs-version|gnus-ems-redefine|gnus-enter-server-buffer|gnus-ephemeral-group-p|gnus-error|gnus-eval-in-buffer-window|gnus-execute|gnus-expand-group-parameter|gnus-expand-group-parameters|gnus-expunge|gnus-extended-version|gnus-extent-detached-p|gnus-extent-start-open|gnus-extract-address-components|gnus-extract-references|gnus-face-from-file|gnus-faces-at|gnus-fetch-field|gnus-fetch-group-other-frame|gnus-fetch-group|gnus-fetch-original-field|gnus-file-newer-than|gnus-final-warning|gnus-find-method-for-group|gnus-find-subscribed-addresses|gnus-find-text-property-region|gnus-float-time|gnus-folder-save-name|gnus-frame-or-window-display-name|gnus-generate-new-group-name|gnus-get-buffer-create|gnus-get-buffer-window|gnus-get-display-table|gnus-get-info|gnus-get-text-property-excluding-characters-with-faces|gnus-getenv-nntpserver|gnus-gethash-safe|gnus-gethash|gnus-globalify-regexp|gnus-goto-char|gnus-goto-colon|gnus-graphic-display-p|gnus-grep-in-list|gnus-group-add-parameter|gnus-group-add-score|gnus-group-auto-expirable-p|gnus-group-customize|gnus-group-decoded-name|gnus-group-entry|gnus-group-fast-parameter|gnus-group-find-parameter|gnus-group-first-unread-group|gnus-group-foreign-p|gnus-group-full-name|gnus-group-get-new-news|gnus-group-get-parameter|gnus-group-group-name|gnus-group-guess-full-name-from-command-method|gnus-group-insert-group-line|gnus-group-iterate|gnus-group-list-groups|gnus-group-mail|gnus-group-make-help-group|gnus-group-method|gnus-group-name-charset|gnus-group-name-decode|gnus-group-name-to-method|gnus-group-native-p|gnus-group-news|gnus-group-parameter-value|gnus-group-position-point|gnus-group-post-news|gnus-group-prefixed-name|gnus-group-prefixed-p|gnus-group-quit-config|gnus-group-quit|gnus-group-read-only-p|gnus-group-real-name|gnus-group-real-prefix|gnus-group-remove-parameter|gnus-group-save-newsrc|gnus-group-secondary-p|gnus-group-send-queue|gnus-group-server|gnus-group-set-info|gnus-group-set-mode-line|gnus-group-set-parameter|gnus-group-setup-buffer|gnus-group-short-name|gnus-group-split-fancy|gnus-group-split-setup|gnus-group-split-update|gnus-group-split|gnus-group-startup-message|gnus-group-total-expirable-p|gnus-group-unread|gnus-group-update-group|gnus-groups-from-server|gnus-header-from|gnus-highlight-selected-tree|gnus-horizontal-recenter|gnus-html-prefetch-images|gnus-ido-completing-read|gnus-image-type-available-p|gnus-indent-rigidly|gnus-info-find-node|gnus-info-group|gnus-info-level|gnus-info-marks|gnus-info-method|gnus-info-params|gnus-info-rank|gnus-info-read|gnus-info-score|gnus-info-set-entry|gnus-info-set-group|gnus-info-set-level|gnus-info-set-marks|gnus-info-set-method|gnus-info-set-params|gnus-info-set-rank|gnus-info-set-read|gnus-info-set-score|gnus-insert-random-face-header|gnus-insert-random-x-face-header|gnus-interactive|gnus-intern-safe|gnus-intersection|gnus-invisible-p|gnus-iswitchb-completing-read|gnus-jog-cache|gnus-key-press-event-p|gnus-kill-all-overlays)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:gnus-kill-buffer|gnus-kill-ephemeral-group|gnus-kill-file-edit-file|gnus-kill-file-raise-followups-to-author|gnus-kill-save-kill-buffer|gnus-kill|gnus-list-debbugs|gnus-list-memq-of-list|gnus-list-of-read-articles|gnus-list-of-unread-articles|gnus-local-set-keys|gnus-mail-strip-quoted-names|gnus-mailing-list-insinuate|gnus-mailing-list-mode|gnus-make-directory|gnus-make-hashtable|gnus-make-local-hook|gnus-make-overlay|gnus-make-predicate-1|gnus-make-predicate|gnus-make-sort-function-1|gnus-make-sort-function|gnus-make-thread-indent-array|gnus-map-function|gnus-mapcar|gnus-mark-active-p|gnus-match-substitute-replacement|gnus-max-width-function|gnus-member-of-valid|gnus-merge|gnus-message-with-timestamp|gnus-message|gnus-method-ephemeral-p|gnus-method-equal|gnus-method-option-p|gnus-method-simplify|gnus-method-to-full-server-name|gnus-method-to-server-name|gnus-method-to-server|gnus-methods-equal-p|gnus-methods-sloppily-equal|gnus-methods-using|gnus-mime-view-all-parts|gnus-mode-line-buffer-identification|gnus-mode-string-quote|gnus-move-overlay|gnus-msg-mail|gnus-mule-max-width-function|gnus-multiple-choice|gnus-narrow-to-body|gnus-narrow-to-page|gnus-native-method-p|gnus-news-group-p|gnus-newsgroup-directory-form|gnus-newsgroup-kill-file|gnus-newsgroup-savable-name|gnus-newsrc-parse-options|gnus-next-char-property-change|gnus-no-server-1|gnus-no-server|gnus-not-ignore|gnus-notifications|gnus-offer-save-summaries|gnus-online|gnus-open-agent|gnus-open-server|gnus-or|gnus-other-frame|gnus-outlook-deuglify-article|gnus-output-to-mail|gnus-output-to-rmail|gnus-overlay-buffer|gnus-overlay-end|gnus-overlay-get|gnus-overlay-put|gnus-overlay-start|gnus-overlays-at|gnus-overlays-in|gnus-parameter-charset|gnus-parameter-ham-marks|gnus-parameter-ham-process-destination|gnus-parameter-ham-resend-to|gnus-parameter-large-newsgroup-initial|gnus-parameter-post-method|gnus-parameter-registry-ignore|gnus-parameter-spam-autodetect-methods|gnus-parameter-spam-autodetect|gnus-parameter-spam-contents|gnus-parameter-spam-marks|gnus-parameter-spam-process-destination|gnus-parameter-spam-process|gnus-parameter-spam-resend-to|gnus-parameter-subscribed|gnus-parameter-to-address|gnus-parameter-to-list|gnus-parameters-get-parameter|gnus-parent-id|gnus-parse-without-error|gnus-pick-mode|gnus-plugged|gnus-possibly-generate-tree|gnus-possibly-score-headers|gnus-post-news|gnus-pp-to-string|gnus-pp|gnus-previous-char-property-change|gnus-prin1-to-string|gnus-prin1|gnus-process-get|gnus-process-plist|gnus-process-put|gnus-put-display-table|gnus-put-image|gnus-put-overlay-excluding-newlines|gnus-put-text-property-excluding-characters-with-faces|gnus-put-text-property-excluding-newlines|gnus-put-text-property|gnus-random-face|gnus-random-x-face|gnus-range-add|gnus-read-event-char|gnus-read-group|gnus-read-init-file|gnus-read-method|gnus-read-shell-command|gnus-recursive-directory-files|gnus-redefine-select-method-widget|gnus-region-active-p|gnus-registry-handle-action|gnus-registry-initialize|gnus-registry-install-hooks|gnus-remassoc|gnus-remove-from-range|gnus-remove-if-not|gnus-remove-if|gnus-remove-image|gnus-remove-text-properties-when|gnus-remove-text-with-property|gnus-rename-file|gnus-replace-in-string|gnus-request-article-this-buffer|gnus-request-post|gnus-request-type|gnus-rescale-image|gnus-run-hook-with-args|gnus-run-hooks|gnus-run-mode-hooks|gnus-same-method-different-name|gnus-score-adaptive|gnus-score-advanced|gnus-score-close|gnus-score-customize|gnus-score-delta-default|gnus-score-file-name|gnus-score-find-trace|gnus-score-flush-cache|gnus-score-followup-article|gnus-score-followup-thread|gnus-score-headers|gnus-score-mode|gnus-score-save|gnus-secondary-method-p|gnus-seconds-month|gnus-seconds-today|gnus-seconds-year|gnus-select-frame-set-input-focus|gnus-select-lowest-window|gnus-server-add-address|gnus-server-equal|gnus-server-extend-method|gnus-server-get-method|gnus-server-server-name|gnus-server-set-info|gnus-server-status|gnus-server-string|gnus-server-to-method|gnus-servers-using-backend|gnus-set-active|gnus-set-file-modes|gnus-set-info|gnus-set-process-plist|gnus-set-process-query-on-exit-flag|gnus-set-sorted-intersection|gnus-set-window-start|gnus-set-work-buffer|gnus-sethash|gnus-short-group-name|gnus-shutdown|gnus-sieve-article-add-rule|gnus-sieve-generate|gnus-sieve-update|gnus-similar-server-opened|gnus-simplify-mode-line|gnus-slave-no-server|gnus-slave-unplugged|gnus-slave|gnus-sloppily-equal-method-parameters|gnus-sorted-complement|gnus-sorted-difference|gnus-sorted-intersection|gnus-sorted-ndifference|gnus-sorted-nintersection|gnus-sorted-nunion|gnus-sorted-range-intersection|gnus-sorted-union|gnus-splash-svg-color-symbols|gnus-splash|gnus-split-references|gnus-start-date-timer|gnus-stop-date-timer|gnus-string-equal|gnus-string-mark-left-to-right|gnus-string-match-p|gnus-string-or-1|gnus-string-or|gnus-string-prefix-p|gnus-string-remove-all-properties|gnus-string<|gnus-string>|gnus-strip-whitespace|gnus-subscribe-topics|gnus-summary-article-number|gnus-summary-bookmark-jump|gnus-summary-buffer-name|gnus-summary-cancel-article|gnus-summary-current-score|gnus-summary-exit|gnus-summary-followup-to-mail-with-original|gnus-summary-followup-to-mail|gnus-summary-followup-with-original|gnus-summary-followup|gnus-summary-increase-score|gnus-summary-insert-cached-articles|gnus-summary-insert-line|gnus-summary-last-subject|gnus-summary-line-format-spec|gnus-summary-lower-same-subject-and-select|gnus-summary-lower-same-subject|gnus-summary-lower-score|gnus-summary-lower-thread|gnus-summary-mail-forward|gnus-summary-mail-other-window|gnus-summary-news-other-window|gnus-summary-position-point|gnus-summary-post-forward|gnus-summary-post-news|gnus-summary-raise-same-subject-and-select|gnus-summary-raise-same-subject|gnus-summary-raise-score|gnus-summary-raise-thread|gnus-summary-read-group|gnus-summary-reply-with-original|gnus-summary-reply|gnus-summary-resend-bounced-mail|gnus-summary-resend-message|gnus-summary-save-article-folder|gnus-summary-save-article-vm|gnus-summary-save-in-folder|gnus-summary-save-in-vm|gnus-summary-score-map|gnus-summary-send-map|gnus-summary-set-agent-mark|gnus-summary-set-score|gnus-summary-skip-intangible|gnus-summary-supersede-article|gnus-summary-wide-reply-with-original|gnus-summary-wide-reply|gnus-suppress-keymap|gnus-symbolic-argument|gnus-sync-initialize|gnus-sync-install-hooks|gnus-time-iso8601|gnus-timer--function|gnus-tool-bar-update|gnus-topic-mode|gnus-topic-remove-group|gnus-topic-set-parameters|gnus-treat-article|gnus-treat-from-gravatar|gnus-treat-from-picon|gnus-treat-mail-gravatar|gnus-treat-mail-picon|gnus-treat-newsgroups-picon|gnus-tree-close|gnus-tree-open|gnus-try-warping-via-registry|gnus-turn-off-edit-menu|gnus-undo-mode|gnus-undo-register|gnus-union|gnus-unplugged|gnus-update-alist-soft|gnus-update-format|gnus-update-read-articles|gnus-url-unhex-string|gnus-url-unhex|gnus-use-long-file-name|gnus-user-format-function-D|gnus-user-format-function-d|gnus-uu-decode-binhex-view|gnus-uu-decode-binhex|gnus-uu-decode-save-view|gnus-uu-decode-save|gnus-uu-decode-unshar-and-save-view|gnus-uu-decode-unshar-and-save|gnus-uu-decode-unshar-view|gnus-uu-decode-unshar|gnus-uu-decode-uu-and-save-view|gnus-uu-decode-uu-and-save|gnus-uu-decode-uu-view|gnus-uu-decode-uu|gnus-uu-delete-work-dir|gnus-uu-digest-mail-forward|gnus-uu-digest-post-forward|gnus-uu-extract-map|gnus-uu-invert-processable|gnus-uu-mark-all|gnus-uu-mark-buffer|gnus-uu-mark-by-regexp|gnus-uu-mark-map|gnus-uu-mark-over|gnus-uu-mark-region|gnus-uu-mark-series|gnus-uu-mark-sparse|gnus-uu-mark-thread|gnus-uu-post-news|gnus-uu-unmark-thread|gnus-version|gnus-virtual-group-p|gnus-visual-p|gnus-window-edges|gnus-window-inside-pixel-edges|gnus-with-output-to-file|gnus-write-active-file|gnus-write-buffer|gnus-x-face-from-file|gnus-xmas-define|gnus-xmas-redefine|gnus-xmas-splash|gnus-y-or-n-p|gnus-yes-or-no-p|gnus|gnutls-available-p|gnutls-boot|gnutls-bye|gnutls-deinit|gnutls-error-fatalp|gnutls-error-string|gnutls-errorp|gnutls-get-initstage|gnutls-message-maybe|gnutls-negotiate|gnutls-peer-status-warning-describe|gnutls-peer-status|gomoku--intangible|gomoku-beginning-of-line|gomoku-check-filled-qtuple|gomoku-click|gomoku-crash-game|gomoku-cross-qtuple|gomoku-display-statistics|gomoku-emacs-plays|gomoku-end-of-line|gomoku-find-filled-qtuple|gomoku-goto-square|gomoku-goto-xy|gomoku-human-plays|gomoku-human-resigns|gomoku-human-takes-back|gomoku-index-to-x|gomoku-index-to-y|gomoku-init-board|gomoku-init-display|gomoku-init-score-table|gomoku-init-square-score|gomoku-max-height|gomoku-max-width|gomoku-mode|gomoku-mouse-play|gomoku-move-down|gomoku-move-ne|gomoku-move-nw|gomoku-move-se|gomoku-move-sw|gomoku-move-up|gomoku-nb-qtuples|gomoku-offer-a-draw|gomoku-play-move|gomoku-plot-square|gomoku-point-square|gomoku-point-y|gomoku-prompt-for-move|gomoku-prompt-for-other-game|gomoku-start-game|gomoku-strongest-square|gomoku-switch-to-window|gomoku-take-back|gomoku-terminate-game|gomoku-update-score-in-direction|gomoku-update-score-table|gomoku-xy-to-index|gomoku|goto-address-at-mouse|goto-address-at-point|goto-address-find-address-at-point|goto-address-fontify-region|goto-address-fontify|goto-address-mode|goto-address-prog-mode|goto-address-unfontify|goto-address|goto-history-element|goto-line|goto-next-locus|gpm-mouse-disable|gpm-mouse-enable|gpm-mouse-mode|gpm-mouse-start|gpm-mouse-stop|gravatar-retrieve-synchronously|gravatar-retrieve|grep-apply-setting|grep-compute-defaults|grep-default-command|grep-expand-template|grep-filter|grep-find|grep-mode|grep-probe|grep-process-setup|grep-read-files|grep-read-regexp|grep-tag-default|grep|gs-height-in-pt|gs-load-image|gs-options|gs-set-ghostview-colors-window-prop|gs-set-ghostview-window-prop|gs-width-in-pt|gud-backward-sexp|gud-basic-call|gud-call|gud-common-init|gud-dbx-marker-filter|gud-dbx-massage-args|gud-def|gud-dguxdbx-marker-filter|gud-display-frame|gud-display-line|gud-expansion-speedbar-buttons|gud-expr-compound-sep|gud-expr-compound|gud-file-name|gud-filter|gud-find-c-expr|gud-find-class|gud-find-expr|gud-find-file|gud-format-command|gud-forward-sexp|gud-gdb-completion-at-point|gud-gdb-completions-1|gud-gdb-completions|gud-gdb-fetch-lines-filter|gud-gdb-get-stackframe|gud-gdb-goto-stackframe|gud-gdb-marker-filter|gud-gdb-run-command-fetch-lines|gud-gdb|gud-gdbmi-completions|gud-gdbmi-fetch-lines-filter|gud-gdbmi-marker-filter|gud-goto-info|gud-guiler-marker-filter|gud-innermost-expr|gud-install-speedbar-variables|gud-irixdbx-marker-filter|gud-jdb-analyze-source|gud-jdb-build-class-source-alist-for-file|gud-jdb-build-class-source-alist|gud-jdb-build-source-files-list|gud-jdb-find-source-file|gud-jdb-find-source-using-classpath|gud-jdb-find-source|gud-jdb-marker-filter|gud-jdb-massage-args|gud-jdb-parse-classpath-string|gud-jdb-skip-block|gud-jdb-skip-character-literal|gud-jdb-skip-id-ish-thing|gud-jdb-skip-single-line-comment|gud-jdb-skip-string-literal|gud-jdb-skip-traditional-or-documentation-comment|gud-jdb-skip-whitespace-and-comments|gud-jdb-skip-whitespace|gud-kill-buffer-hook|gud-marker-filter|gud-mipsdbx-marker-filter|gud-mode|gud-next-expr|gud-pdb-marker-filter|gud-perldb-marker-filter|gud-perldb-massage-args|gud-prev-expr|gud-query-cmdline|gud-read-address|gud-refresh|gud-reset|gud-sdb-find-file|gud-sdb-marker-filter|gud-sentinel|gud-set-buffer|gud-speedbar-buttons|gud-speedbar-item-info|gud-stop-subjob|gud-symbol|gud-tool-bar-item-visible-no-fringe|gud-tooltip-activate-mouse-motions-if-enabled|gud-tooltip-activate-mouse-motions|gud-tooltip-change-major-mode|gud-tooltip-dereference|gud-tooltip-mode|gud-tooltip-mouse-motion|gud-tooltip-print-command|gud-tooltip-process-output|gud-tooltip-tips|gud-val|gud-watch|gud-xdb-marker-filter|gud-xdb-massage-args|gui--selection-value-internal|gui--valid-simple-selection-p|gui-call|gui-get-primary-selection|gui-get-selection|gui-method--name|gui-method-declare|gui-method-define|gui-method|gui-select-text|gui-selection-value|gui-set-selection|guiler|gv--defsetter|gv--defun-declaration|gv-deref|gv-get|gv-ref|hack-local-variables-apply|hack-local-variables-confirm|hack-local-variables-filter|hack-local-variables-prop-line|hack-one-local-variable--obsolete|hack-one-local-variable-constantp|hack-one-local-variable-eval-safep|hack-one-local-variable-quotep|hack-one-local-variable|handle-delete-frame|handle-focus-in|handle-focus-out|handle-save-session|handle-select-window|handwrite-10pt|handwrite-11pt|handwrite-12pt|handwrite-13pt|handwrite-insert-font|handwrite-insert-header|handwrite-insert-info|handwrite-insert-preamble|handwrite-set-pagenumber-off|handwrite-set-pagenumber-on|handwrite-set-pagenumber|handwrite|hangul-input-method-activate|hanoi-0|hanoi-goto-char|hanoi-insert-ring|hanoi-internal|hanoi-move-ring|hanoi-n|hanoi-pos-on-tower-p|hanoi-put-face|hanoi-ring-to-pos|hanoi-sit-for|hanoi-unix-64|hanoi-unix|hanoi|hash-table-keys|hash-table-values|hashcash-already-paid-p|hashcash-cancel-async|hashcash-check-payment|hashcash-generate-payment-async|hashcash-generate-payment|hashcash-insert-payment-async-2|hashcash-insert-payment-async|hashcash-insert-payment|hashcash-payment-required|hashcash-payment-to|hashcash-point-at-bol|hashcash-point-at-eol|hashcash-processes-running-p|hashcash-strip-quoted-names|hashcash-token-substring|hashcash-verify-payment|hashcash-version|hashcash-wait-async|hashcash-wait-or-cancel|he--all-buffers|he-buffer-member|he-capitalize-first|he-concat-directory-file-name|he-dabbrev-beg|he-dabbrev-kill-search|he-dabbrev-search|he-file-name-beg|he-init-string|he-kill-beg|he-line-beg|he-line-search-regexp|he-line-search|he-lisp-symbol-beg)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:he-list-beg|he-list-search|he-ordinary-case-p|he-reset-string|he-string-member|he-substitute-string|he-transfer-case|he-whole-kill-search|hebrew-font-get-precomposed|hebrew-shape-gstring|help--binding-locus|help--key-binding-keymap|help-C-file-name|help-add-fundoc-usage|help-at-pt-cancel-timer|help-at-pt-kbd-string|help-at-pt-maybe-display|help-at-pt-set-timer|help-at-pt-string|help-bookmark-jump|help-bookmark-make-record|help-button-action|help-describe-category-set|help-do-arg-highlight|help-do-xref|help-fns--autoloaded-p|help-fns--compiler-macro|help-fns--interactive-only|help-fns--key-bindings|help-fns--obsolete|help-fns--parent-mode|help-fns--signature|help-follow-mouse|help-follow-symbol|help-follow|help-for-help-internal-doc|help-for-help-internal|help-for-help|help-form-show|help-function-arglist|help-go-back|help-go-forward|help-highlight-arg|help-highlight-arguments|help-insert-string|help-insert-xref-button|help-key-description|help-make-usage|help-make-xrefs|help-mode-finish|help-mode-menu|help-mode-revert-buffer|help-mode-setup|help-mode|help-print-return-message|help-quit|help-split-fundoc|help-window-display-message|help-window-setup|help-with-tutorial-spec-language|help-with-tutorial|help-xref-button|help-xref-go-back|help-xref-go-forward|help-xref-interned|help-xref-on-pp|help|hexl-C-c-prefix|hexl-C-x-prefix|hexl-ESC-prefix|hexl-activate-ruler|hexl-address-to-marker|hexl-ascii-start-column|hexl-backward-char|hexl-backward-short|hexl-backward-word|hexl-beginning-of-1k-page|hexl-beginning-of-512b-page|hexl-beginning-of-buffer|hexl-beginning-of-line|hexl-char-after-point|hexl-current-address|hexl-end-of-1k-page|hexl-end-of-512b-page|hexl-end-of-buffer|hexl-end-of-line|hexl-find-file|hexl-follow-ascii-find|hexl-follow-ascii|hexl-follow-line|hexl-forward-char|hexl-forward-short|hexl-forward-word|hexl-goto-address|hexl-goto-hex-address|hexl-hex-char-to-integer|hexl-hex-string-to-integer|hexl-highlight-line-range|hexl-htoi|hexl-insert-char|hexl-insert-decimal-char|hexl-insert-hex-char|hexl-insert-hex-string|hexl-insert-multibyte-char|hexl-insert-octal-char|hexl-isearch-search-function|hexl-line-displen|hexl-maybe-dehexlify-buffer|hexl-menu|hexl-mode--minor-mode-p|hexl-mode--setq-local|hexl-mode-exit|hexl-mode-ruler|hexl-mode|hexl-next-line|hexl-oct-char-to-integer|hexl-octal-string-to-integer|hexl-options|hexl-previous-line|hexl-print-current-point-info|hexl-printable-character|hexl-quoted-insert|hexl-revert-buffer-function|hexl-rulerize|hexl-save-buffer|hexl-scroll-down|hexl-scroll-up|hexl-self-insert-command|hexlify-buffer|hfy-begin-span|hfy-bgcol|hfy-box-to-border-assoc|hfy-box-to-style|hfy-box|hfy-buffer|hfy-colour-vals|hfy-colour|hfy-combined-face-spec|hfy-compile-face-map|hfy-compile-stylesheet|hfy-copy-and-fontify-file|hfy-css-name|hfy-decor|hfy-default-footer|hfy-default-header|hfy-dirname|hfy-end-span|hfy-face-at|hfy-face-attr-for-class|hfy-face-or-def-to-name|hfy-face-resolve-face|hfy-face-to-css-default|hfy-face-to-style-i|hfy-face-to-style|hfy-fallback-colour-values|hfy-family|hfy-find-invisible-ranges|hfy-flatten-style|hfy-fontified-p|hfy-fontify-buffer|hfy-force-fontification|hfy-href-stub|hfy-href|hfy-html-dekludge-buffer|hfy-html-enkludge-buffer|hfy-html-quote|hfy-init-progn|hfy-initfile|hfy-interq|hfy-invisible-name|hfy-invisible|hfy-kludge-cperl-mode|hfy-link-style-string|hfy-link-style|hfy-list-files|hfy-load-tags-cache|hfy-lookup|hfy-make-directory|hfy-mark-tag-hrefs|hfy-mark-tag-names|hfy-mark-trailing-whitespace|hfy-merge-adjacent-spans|hfy-opt|hfy-overlay-props-at|hfy-parse-tags-buffer|hfy-prepare-index-i|hfy-prepare-index|hfy-prepare-tag-map|hfy-prop-invisible-p|hfy-relstub|hfy-save-buffer-state|hfy-save-initvar|hfy-save-kill-buffers|hfy-shell|hfy-size-to-int|hfy-size|hfy-slant|hfy-sprintf-stylesheet|hfy-subtract-maps|hfy-tags-for-file|hfy-text-p|hfy-triplet|hfy-unmark-trailing-whitespace|hfy-weight|hfy-which-etags|hfy-width|hfy-word-regex|hi-lock--hashcons|hi-lock--regexps-at-point|hi-lock-face-buffer|hi-lock-face-phrase-buffer|hi-lock-face-symbol-at-point|hi-lock-find-patterns|hi-lock-font-lock-hook|hi-lock-keyword->face|hi-lock-line-face-buffer|hi-lock-mode-set-explicitly|hi-lock-mode|hi-lock-process-phrase|hi-lock-read-face-name|hi-lock-regexp-okay|hi-lock-set-file-patterns|hi-lock-set-pattern|hi-lock-unface-buffer|hi-lock-unload-function|hi-lock-write-interactive-patterns|hide-body|hide-entry|hide-ifdef-block|hide-ifdef-define|hide-ifdef-guts|hide-ifdef-mode-menu|hide-ifdef-mode|hide-ifdef-region-internal|hide-ifdef-region|hide-ifdef-set-define-alist|hide-ifdef-toggle-outside-read-only|hide-ifdef-toggle-read-only|hide-ifdef-toggle-shadowing|hide-ifdef-undef|hide-ifdef-use-define-alist|hide-ifdefs|hide-leaves|hide-other|hide-region-body|hide-sublevels|hide-subtree|hif-add-new-defines|hif-after-revert-function|hif-and-expr|hif-and|hif-canonicalize-tokens|hif-canonicalize|hif-clear-all-ifdef-defined|hif-comma|hif-comp-expr|hif-compress-define-list|hif-conditional|hif-define-macro|hif-define-operator|hif-defined|hif-delimit|hif-divide|hif-end-of-line|hif-endif-to-ifdef|hif-eq-expr|hif-equal|hif-evaluate-macro|hif-evaluate-region|hif-expand-token-list|hif-expr|hif-exprlist|hif-factor|hif-find-any-ifX|hif-find-define|hif-find-ifdef-block|hif-find-next-relevant|hif-find-previous-relevant|hif-find-range|hif-flatten|hif-get-argument-list|hif-greater-equal|hif-greater|hif-hide-line|hif-if-valid-identifier-p|hif-ifdef-to-endif|hif-invoke|hif-less-equal|hif-less|hif-logand-expr|hif-logand|hif-logior-expr|hif-logior|hif-lognot|hif-logshift-expr|hif-logxor-expr|hif-logxor|hif-looking-at-elif|hif-looking-at-else|hif-looking-at-endif|hif-looking-at-ifX|hif-lookup|hif-macro-supply-arguments|hif-make-range|hif-math|hif-mathify-binop|hif-mathify|hif-merge-ifdef-region|hif-minus|hif-modulo|hif-muldiv-expr|hif-multiply|hif-nexttoken|hif-not|hif-notequal|hif-or-expr|hif-or|hif-parse-exp|hif-parse-macro-arglist|hif-place-macro-invocation|hif-plus|hif-possibly-hide|hif-range-elif|hif-range-else|hif-range-end|hif-range-start|hif-recurse-on|hif-set-var|hif-shiftleft|hif-shiftright|hif-show-all|hif-show-ifdef-region|hif-string-concatenation|hif-string-to-number|hif-stringify|hif-token-concat|hif-token-concatenation|hif-token-stringification|hif-tokenize|hif-undefine-symbol|highlight-changes-mode-set-explicitly|highlight-changes-mode-turn-on|highlight-changes-mode|highlight-changes-next-change|highlight-changes-previous-change|highlight-changes-remove-highlight|highlight-changes-rotate-faces|highlight-changes-visible-mode|highlight-compare-buffers|highlight-compare-with-file|highlight-lines-matching-regexp|highlight-markup-buffers|highlight-phrase|highlight-regexp|highlight-symbol-at-point|hilit-chg-bump-change|hilit-chg-clear|hilit-chg-cust-fix-changes-face-list|hilit-chg-desktop-restore|hilit-chg-display-changes|hilit-chg-fixup|hilit-chg-get-diff-info|hilit-chg-get-diff-list-hk|hilit-chg-hide-changes|hilit-chg-make-list|hilit-chg-make-ov|hilit-chg-map-changes|hilit-chg-set-face-on-change|hilit-chg-set|hilit-chg-unload-function|hilit-chg-update|hippie-expand|hl-line-highlight|hl-line-make-overlay|hl-line-mode|hl-line-move|hl-line-unhighlight|hl-line-unload-function|hmac-md5-96|hmac-md5|holiday-list|holidays|horizontal-scroll-bar-mode|horizontal-scroll-bars-available-p|how-many|hs-already-hidden-p|hs-c-like-adjust-block-beginning|hs-discard-overlays|hs-find-block-beginning|hs-forward-sexp|hs-grok-mode-type|hs-hide-all|hs-hide-block-at-point|hs-hide-block|hs-hide-comment-region|hs-hide-initial-comment-block|hs-hide-level-recursive|hs-hide-level|hs-inside-comment-p|hs-isearch-show-temporary|hs-isearch-show|hs-life-goes-on|hs-looking-at-block-start-p|hs-make-overlay|hs-minor-mode-menu|hs-minor-mode|hs-mouse-toggle-hiding|hs-overlay-at|hs-show-all|hs-show-block|hs-toggle-hiding|html-autoview-mode|html-checkboxes|html-current-defun-name|html-headline-1|html-headline-2|html-headline-3|html-headline-4|html-headline-5|html-headline-6|html-horizontal-rule|html-href-anchor|html-image|html-imenu-index|html-line|html-list-item|html-mode|html-name-anchor|html-ordered-list|html-paragraph|html-radio-buttons|html-unordered-list|html2text|htmlfontify-buffer|htmlfontify-copy-and-link-dir|htmlfontify-load-initfile|htmlfontify-load-rgb-file|htmlfontify-run-etags|htmlfontify-save-initfile|htmlfontify-string|htmlize-attrlist-to-fstruct|htmlize-buffer-1|htmlize-buffer-substring-no-invisible|htmlize-buffer|htmlize-color-to-rgb|htmlize-copy-attr-if-set|htmlize-css-insert-head|htmlize-css-insert-text|htmlize-css-specs|htmlize-defang-local-variables|htmlize-default-body-tag|htmlize-default-doctype|htmlize-despam-address|htmlize-ensure-fontified|htmlize-face-background|htmlize-face-color-internal|htmlize-face-emacs21-attr|htmlize-face-foreground|htmlize-face-list-p|htmlize-face-size|htmlize-face-specifies-property|htmlize-face-to-fstruct|htmlize-faces-at-point|htmlize-faces-in-buffer|htmlize-file|htmlize-font-body-tag|htmlize-font-insert-text|htmlize-fstruct-background--cmacro|htmlize-fstruct-background|htmlize-fstruct-boldp--cmacro|htmlize-fstruct-boldp|htmlize-fstruct-css-name--cmacro|htmlize-fstruct-css-name|htmlize-fstruct-foreground--cmacro|htmlize-fstruct-foreground|htmlize-fstruct-italicp--cmacro|htmlize-fstruct-italicp|htmlize-fstruct-overlinep--cmacro|htmlize-fstruct-overlinep|htmlize-fstruct-p--cmacro|htmlize-fstruct-p|htmlize-fstruct-size--cmacro|htmlize-fstruct-size|htmlize-fstruct-strikep--cmacro|htmlize-fstruct-strikep|htmlize-fstruct-underlinep--cmacro|htmlize-fstruct-underlinep|htmlize-get-color-rgb-hash|htmlize-inline-css-body-tag|htmlize-inline-css-insert-text|htmlize-locate-file|htmlize-make-face-map|htmlize-make-file-name|htmlize-make-hyperlinks|htmlize-many-files-dired|htmlize-many-files|htmlize-memoize|htmlize-merge-faces|htmlize-merge-size|htmlize-merge-two-faces|htmlize-method-function|htmlize-method|htmlize-next-change|htmlize-protect-string|htmlize-region-for-paste|htmlize-region|htmlize-trim-ellipsis|htmlize-unstringify-face|htmlize-untabify|htmlize-with-fontify-message|ibuffer-active-formats-name|ibuffer-add-saved-filters|ibuffer-add-to-tmp-hide|ibuffer-add-to-tmp-show|ibuffer-assert-ibuffer-mode|ibuffer-auto-mode|ibuffer-backward-filter-group|ibuffer-backward-line|ibuffer-backwards-next-marked|ibuffer-bs-show|ibuffer-buf-matches-predicates|ibuffer-buffer-file-name|ibuffer-buffer-name-face|ibuffer-buffer-names-with-mark|ibuffer-bury-buffer|ibuffer-check-formats|ibuffer-clear-filter-groups|ibuffer-clear-summary-columns|ibuffer-columnize-and-insert-list|ibuffer-compile-format|ibuffer-compile-make-eliding-form|ibuffer-compile-make-format-form|ibuffer-compile-make-substring-form|ibuffer-confirm-operation-on|ibuffer-copy-filename-as-kill|ibuffer-count-deletion-lines|ibuffer-count-marked-lines|ibuffer-current-buffer|ibuffer-current-buffers-with-marks|ibuffer-current-format|ibuffer-current-formats|ibuffer-current-mark|ibuffer-current-state-list|ibuffer-customize|ibuffer-decompose-filter-group|ibuffer-decompose-filter|ibuffer-delete-saved-filter-groups|ibuffer-delete-saved-filters|ibuffer-deletion-marked-buffer-names|ibuffer-diff-with-file|ibuffer-do-delete|ibuffer-do-eval|ibuffer-do-isearch-regexp|ibuffer-do-isearch|ibuffer-do-kill-lines|ibuffer-do-kill-on-deletion-marks|ibuffer-do-occur|ibuffer-do-print|ibuffer-do-query-replace-regexp|ibuffer-do-query-replace|ibuffer-do-rename-uniquely|ibuffer-do-replace-regexp|ibuffer-do-revert|ibuffer-do-save|ibuffer-do-shell-command-file|ibuffer-do-shell-command-pipe-replace|ibuffer-do-shell-command-pipe|ibuffer-do-sort-by-alphabetic|ibuffer-do-sort-by-filename\\\\/process|ibuffer-do-sort-by-major-mode|ibuffer-do-sort-by-mode-name|ibuffer-do-sort-by-recency|ibuffer-do-sort-by-size|ibuffer-do-toggle-modified|ibuffer-do-toggle-read-only|ibuffer-do-view-1|ibuffer-do-view-and-eval|ibuffer-do-view-horizontally|ibuffer-do-view-other-frame|ibuffer-do-view|ibuffer-exchange-filters|ibuffer-expand-format-entry|ibuffer-filter-buffers|ibuffer-filter-by-content|ibuffer-filter-by-derived-mode|ibuffer-filter-by-filename|ibuffer-filter-by-mode|ibuffer-filter-by-name|ibuffer-filter-by-predicate|ibuffer-filter-by-size-gt|ibuffer-filter-by-size-lt|ibuffer-filter-by-used-mode|ibuffer-filter-disable|ibuffer-filters-to-filter-group|ibuffer-find-file)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:ibuffer-format-column|ibuffer-forward-filter-group|ibuffer-forward-line|ibuffer-forward-next-marked|ibuffer-get-marked-buffers|ibuffer-included-in-filters-p|ibuffer-insert-buffer-line|ibuffer-insert-filter-group|ibuffer-interactive-filter-by-mode|ibuffer-invert-sorting|ibuffer-jump-to-buffer|ibuffer-jump-to-filter-group|ibuffer-kill-filter-group|ibuffer-kill-line|ibuffer-list-buffers|ibuffer-make-column-filename-and-process|ibuffer-make-column-filename|ibuffer-make-column-process|ibuffer-map-deletion-lines|ibuffer-map-lines-nomodify|ibuffer-map-lines|ibuffer-map-marked-lines|ibuffer-map-on-mark|ibuffer-mark-by-file-name-regexp|ibuffer-mark-by-mode-regexp|ibuffer-mark-by-mode|ibuffer-mark-by-name-regexp|ibuffer-mark-compressed-file-buffers|ibuffer-mark-dired-buffers|ibuffer-mark-dissociated-buffers|ibuffer-mark-for-delete-backwards|ibuffer-mark-for-delete|ibuffer-mark-forward|ibuffer-mark-help-buffers|ibuffer-mark-interactive|ibuffer-mark-modified-buffers|ibuffer-mark-old-buffers|ibuffer-mark-read-only-buffers|ibuffer-mark-special-buffers|ibuffer-mark-unsaved-buffers|ibuffer-marked-buffer-names|ibuffer-mode|ibuffer-mouse-filter-by-mode|ibuffer-mouse-popup-menu|ibuffer-mouse-toggle-filter-group|ibuffer-mouse-toggle-mark|ibuffer-mouse-visit-buffer|ibuffer-negate-filter|ibuffer-or-filter|ibuffer-other-window|ibuffer-pop-filter-group|ibuffer-pop-filter|ibuffer-recompile-formats|ibuffer-redisplay-current|ibuffer-redisplay-engine|ibuffer-redisplay|ibuffer-save-filter-groups|ibuffer-save-filters|ibuffer-set-filter-groups-by-mode|ibuffer-set-mark-1|ibuffer-set-mark|ibuffer-shrink-to-fit|ibuffer-skip-properties|ibuffer-sort-bufferlist|ibuffer-switch-format|ibuffer-switch-to-saved-filter-groups|ibuffer-switch-to-saved-filters|ibuffer-toggle-filter-group|ibuffer-toggle-marks|ibuffer-toggle-sorting-mode|ibuffer-unmark-all|ibuffer-unmark-backward|ibuffer-unmark-forward|ibuffer-update-format|ibuffer-update-title-and-summary|ibuffer-update|ibuffer-visible-p|ibuffer-visit-buffer-1-window|ibuffer-visit-buffer-other-frame|ibuffer-visit-buffer-other-window-noselect|ibuffer-visit-buffer-other-window|ibuffer-visit-buffer|ibuffer-visit-tags-table|ibuffer-yank-filter-group|ibuffer-yank|ibuffer|icalendar--add-decoded-times|icalendar--add-diary-entry|icalendar--all-events|icalendar--convert-all-timezones|icalendar--convert-anniversary-to-ical|icalendar--convert-block-to-ical|icalendar--convert-cyclic-to-ical|icalendar--convert-date-to-ical|icalendar--convert-float-to-ical|icalendar--convert-ical-to-diary|icalendar--convert-non-recurring-all-day-to-diary|icalendar--convert-non-recurring-not-all-day-to-diary|icalendar--convert-ordinary-to-ical|icalendar--convert-recurring-to-diary|icalendar--convert-sexp-to-ical|icalendar--convert-string-for-export|icalendar--convert-string-for-import|icalendar--convert-to-ical|icalendar--convert-tz-offset|icalendar--convert-weekly-to-ical|icalendar--convert-yearly-to-ical|icalendar--create-ical-alarm|icalendar--create-uid|icalendar--date-to-isodate|icalendar--datestring-to-isodate|icalendar--datetime-to-american-date|icalendar--datetime-to-colontime|icalendar--datetime-to-diary-date|icalendar--datetime-to-european-date|icalendar--datetime-to-iso-date|icalendar--datetime-to-noneuropean-date|icalendar--decode-isodatetime|icalendar--decode-isoduration|icalendar--diarytime-to-isotime|icalendar--dmsg|icalendar--do-create-ical-alarm|icalendar--find-time-zone|icalendar--format-ical-event|icalendar--get-children|icalendar--get-event-properties|icalendar--get-event-property-attributes|icalendar--get-event-property|icalendar--get-month-number|icalendar--get-unfolded-buffer|icalendar--get-weekday-abbrev|icalendar--get-weekday-number|icalendar--get-weekday-numbers|icalendar--parse-summary-and-rest|icalendar--parse-vtimezone|icalendar--read-element|icalendar--rris|icalendar--split-value|icalendar-convert-diary-to-ical|icalendar-export-file|icalendar-export-region|icalendar-extract-ical-from-buffer|icalendar-first-weekday-of-year|icalendar-import-buffer|icalendar-import-file|icalendar-import-format-sample|icomplete--completion-predicate|icomplete--completion-table|icomplete--field-beg|icomplete--field-end|icomplete--field-string|icomplete--in-region-setup|icomplete-backward-completions|icomplete-completions|icomplete-exhibit|icomplete-forward-completions|icomplete-minibuffer-setup|icomplete-mode|icomplete-post-command-hook|icomplete-pre-command-hook|icomplete-simple-completing-p|icomplete-tidy|icon-backward-to-noncomment|icon-backward-to-start-of-continued-exp|icon-backward-to-start-of-if|icon-comment-indent|icon-forward-sexp-function|icon-indent-command|icon-indent-line|icon-is-continuation-line|icon-is-continued-line|icon-mode|iconify-or-deiconify-frame|idl-font-lock-keywords-2|idl-font-lock-keywords-3|idl-font-lock-keywords|idl-mode|idlwave-action-and-binding|idlwave-active-rinfo-space|idlwave-add-file-link-selector|idlwave-after-successful-completion|idlwave-all-assq|idlwave-all-class-inherits|idlwave-all-class-tags|idlwave-all-method-classes|idlwave-all-method-keyword-classes|idlwave-any-syslib|idlwave-attach-class-tag-classes|idlwave-attach-classes|idlwave-attach-keyword-classes|idlwave-attach-method-classes|idlwave-auto-fill-mode|idlwave-auto-fill|idlwave-backward-block|idlwave-backward-up-block|idlwave-beginning-of-block|idlwave-beginning-of-statement|idlwave-beginning-of-subprogram|idlwave-best-rinfo-assoc|idlwave-best-rinfo-assq|idlwave-block-jump-out|idlwave-block-master|idlwave-calc-hanging-indent|idlwave-calculate-cont-indent|idlwave-calculate-indent|idlwave-calculate-paren-indent|idlwave-call-special|idlwave-case|idlwave-check-abbrev|idlwave-choose-completion|idlwave-choose|idlwave-class-alist|idlwave-class-file-or-buffer|idlwave-class-found-in|idlwave-class-info|idlwave-class-inherits|idlwave-class-or-superclass-with-tag|idlwave-class-tag-reset|idlwave-class-tags|idlwave-close-block|idlwave-code-abbrev|idlwave-command-hook|idlwave-comment-hook|idlwave-complete-class-structure-tag-help|idlwave-complete-class-structure-tag|idlwave-complete-class|idlwave-complete-filename|idlwave-complete-in-buffer|idlwave-complete-sysvar-help|idlwave-complete-sysvar-or-tag|idlwave-complete-sysvar-tag-help|idlwave-complete|idlwave-completing-read|idlwave-completion-fontify-classes|idlwave-concatenate-rinfo-lists|idlwave-context-help|idlwave-convert-xml-clean-routine-aliases|idlwave-convert-xml-clean-statement-aliases|idlwave-convert-xml-clean-sysvar-aliases|idlwave-convert-xml-system-routine-info|idlwave-count-eq|idlwave-count-memq|idlwave-count-outlawed-buffers|idlwave-create-customize-menu|idlwave-create-user-catalog-file|idlwave-current-indent|idlwave-current-routine-fullname|idlwave-current-routine|idlwave-current-statement-indent|idlwave-custom-ampersand-surround|idlwave-custom-ltgtr-surround|idlwave-customize|idlwave-debug-map|idlwave-default-choose-completion|idlwave-default-insert-timestamp|idlwave-define-abbrev|idlwave-delete-user-catalog-file|idlwave-determine-class|idlwave-display-calling-sequence|idlwave-display-completion-list-emacs|idlwave-display-completion-list-xemacs|idlwave-display-completion-list|idlwave-display-user-catalog-widget|idlwave-do-action|idlwave-do-context-help|idlwave-do-context-help1|idlwave-do-find-module|idlwave-do-kill-autoloaded-buffers|idlwave-do-mouse-completion-help|idlwave-doc-header|idlwave-doc-modification|idlwave-down-block|idlwave-downcase-safe|idlwave-edit-in-idlde|idlwave-elif|idlwave-end-of-block|idlwave-end-of-statement|idlwave-end-of-statement0|idlwave-end-of-subprogram|idlwave-entry-find-keyword|idlwave-entry-has-help|idlwave-entry-keywords|idlwave-expand-equal|idlwave-expand-keyword|idlwave-expand-lib-file-name|idlwave-expand-path|idlwave-expand-region-abbrevs|idlwave-explicit-class-listed|idlwave-fill-paragraph|idlwave-find-class-definition|idlwave-find-file-noselect|idlwave-find-inherited-class|idlwave-find-key|idlwave-find-module-this-file|idlwave-find-module|idlwave-find-struct-tag|idlwave-find-structure-definition|idlwave-fix-keywords|idlwave-fix-module-if-obj_new|idlwave-font-lock-fontify-region|idlwave-for|idlwave-forward-block|idlwave-function-menu|idlwave-function|idlwave-get-buffer-routine-info|idlwave-get-buffer-visiting|idlwave-get-routine-info-from-buffers|idlwave-goto-comment|idlwave-grep|idlwave-hard-tab|idlwave-has-help|idlwave-help-assistant-available|idlwave-help-assistant-close|idlwave-help-assistant-command|idlwave-help-assistant-help-with-topic|idlwave-help-assistant-open-link|idlwave-help-assistant-raise|idlwave-help-assistant-start|idlwave-help-check-locations|idlwave-help-diagnostics|idlwave-help-display-help-window|idlwave-help-error|idlwave-help-find-first-header|idlwave-help-find-header|idlwave-help-find-in-doc-header|idlwave-help-find-routine-definition|idlwave-help-fontify|idlwave-help-get-help-buffer|idlwave-help-get-special-help|idlwave-help-html-link|idlwave-help-menu|idlwave-help-mode|idlwave-help-quit|idlwave-help-return-to-calling-frame|idlwave-help-select-help-frame|idlwave-help-show-help-frame|idlwave-help-toggle-header-match-and-def|idlwave-help-toggle-header-top-and-def|idlwave-help-with-source|idlwave-highlight-linked-completions|idlwave-html-help-location|idlwave-if|idlwave-in-comment|idlwave-in-quote|idlwave-in-structure|idlwave-indent-and-action|idlwave-indent-left-margin|idlwave-indent-line|idlwave-indent-statement|idlwave-indent-subprogram|idlwave-indent-to|idlwave-info|idlwave-insert-source-location|idlwave-is-comment-line|idlwave-is-comment-or-empty-line|idlwave-is-continuation-line|idlwave-is-pointer-dereference|idlwave-keyboard-quit|idlwave-keyword-abbrev|idlwave-kill-autoloaded-buffers|idlwave-kill-buffer-update|idlwave-last-valid-char|idlwave-launch-idlhelp|idlwave-lib-p|idlwave-list-abbrevs|idlwave-list-all-load-path-shadows|idlwave-list-buffer-load-path-shadows|idlwave-list-load-path-shadows|idlwave-list-shell-load-path-shadows|idlwave-load-all-rinfo|idlwave-load-rinfo-next-step|idlwave-load-system-routine-info|idlwave-local-value|idlwave-locate-lib-file|idlwave-look-at|idlwave-make-force-complete-where-list|idlwave-make-full-name|idlwave-make-modified-completion-map-emacs|idlwave-make-modified-completion-map-xemacs|idlwave-make-one-key-alist|idlwave-make-space|idlwave-make-tags|idlwave-mark-block|idlwave-mark-doclib|idlwave-mark-statement|idlwave-mark-subprogram|idlwave-match-class-arrows|idlwave-members-only|idlwave-min-current-statement-indent|idlwave-mode-debug-menu|idlwave-mode-menu|idlwave-mode|idlwave-mouse-active-rinfo-right|idlwave-mouse-active-rinfo-shift|idlwave-mouse-active-rinfo|idlwave-mouse-choose-completion|idlwave-mouse-completion-help|idlwave-mouse-context-help|idlwave-new-buffer-update|idlwave-new-sintern-type|idlwave-newline|idlwave-next-statement|idlwave-nonmembers-only|idlwave-one-key-select|idlwave-online-help|idlwave-parse-definition|idlwave-path-alist-add-flag|idlwave-path-alist-remove-flag|idlwave-popup-select|idlwave-prepare-class-tag-completion|idlwave-prev-index-position|idlwave-previous-statement|idlwave-print-source|idlwave-procedure|idlwave-process-sysvars|idlwave-quit-help|idlwave-quoted|idlwave-read-paths|idlwave-recursive-directory-list|idlwave-region-active-p|idlwave-repeat|idlwave-replace-buffer-routine-info|idlwave-replace-string|idlwave-rescan-asynchronously|idlwave-rescan-catalog-directories|idlwave-reset-sintern-type|idlwave-reset-sintern|idlwave-resolve|idlwave-restore-wconf-after-completion|idlwave-revoke-license-to-kill|idlwave-rinfo-assoc|idlwave-rinfo-assq-any-class|idlwave-rinfo-assq|idlwave-rinfo-group-keywords|idlwave-rinfo-insert-keyword|idlwave-routine-entry-compare-twins|idlwave-routine-entry-compare|idlwave-routine-info|idlwave-routine-source-file|idlwave-routine-twin-compare|idlwave-routine-twins|idlwave-routines|idlwave-rw-case|idlwave-save-buffer-update|idlwave-save-routine-info|idlwave-scan-class-info|idlwave-scan-library-catalogs|idlwave-scan-user-lib-files|idlwave-scroll-completions|idlwave-selector|idlwave-set-local|idlwave-setup|idlwave-shell-break-here|idlwave-shell-compile-helper-routines|idlwave-shell-filter-sysvars|idlwave-shell-recenter-shell-window|idlwave-shell-run-region|idlwave-shell-save-and-run|idlwave-shell-send-command|idlwave-shell-show-commentary|idlwave-shell-update-routine-info|idlwave-shell|idlwave-shorten-syntax|idlwave-show-begin-check|idlwave-show-begin|idlwave-show-commentary|idlwave-show-matching-quote|idlwave-sintern-class-info|idlwave-sintern-class-tag|idlwave-sintern-class)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:idlwave-sintern-dir|idlwave-sintern-keyword-list|idlwave-sintern-keyword|idlwave-sintern-libname|idlwave-sintern-method|idlwave-sintern-rinfo-list|idlwave-sintern-routine-or-method|idlwave-sintern-routine|idlwave-sintern-set|idlwave-sintern-sysvar-alist|idlwave-sintern-sysvar|idlwave-sintern-sysvartag|idlwave-sintern|idlwave-skip-label-or-case|idlwave-skip-multi-commands|idlwave-skip-object|idlwave-special-lib-test|idlwave-split-line|idlwave-split-link-target|idlwave-split-menu-emacs|idlwave-split-menu-xemacs|idlwave-split-string|idlwave-start-load-rinfo-timer|idlwave-start-of-substatement|idlwave-statement-type|idlwave-struct-borders|idlwave-struct-inherits|idlwave-struct-tags|idlwave-study-twins|idlwave-substitute-link-target|idlwave-surround|idlwave-switch|idlwave-sys-dir|idlwave-syslib-p|idlwave-syslib-scanned-p|idlwave-sysvars-reset|idlwave-template|idlwave-this-word|idlwave-toggle-comment-region|idlwave-true-path-alist|idlwave-uniquify|idlwave-unit-name|idlwave-update-buffer-routine-info|idlwave-update-current-buffer-info|idlwave-update-routine-info|idlwave-user-catalog-command-hook|idlwave-what-function|idlwave-what-module-find-class|idlwave-what-module|idlwave-what-procedure|idlwave-where|idlwave-while|idlwave-widget-scan-user-lib-files|idlwave-with-special-syntax|idlwave-write-paths|idlwave-xml-create-class-method-lists|idlwave-xml-create-rinfo-list|idlwave-xml-create-sysvar-alist|idlwave-xml-system-routine-info-up-to-date|idlwave-xor|idna-to-ascii|ido-active|ido-add-virtual-buffers-to-list|ido-all-completions|ido-buffer-internal|ido-buffer-window-other-frame|ido-bury-buffer-at-head|ido-cache-ftp-valid|ido-cache-unc-valid|ido-choose-completion-string|ido-chop|ido-common-initialization|ido-complete-space|ido-complete|ido-completing-read|ido-completion-help|ido-completions|ido-copy-current-file-name|ido-copy-current-word|ido-delete-backward-updir|ido-delete-backward-word-updir|ido-delete-file-at-head|ido-directory-too-big-p|ido-dired|ido-display-buffer|ido-display-file|ido-edit-input|ido-enter-dired|ido-enter-find-file|ido-enter-insert-buffer|ido-enter-insert-file|ido-enter-switch-buffer|ido-everywhere|ido-exhibit|ido-existing-item-p|ido-exit-minibuffer|ido-expand-directory|ido-fallback-command|ido-file-extension-aux|ido-file-extension-lessp|ido-file-extension-order|ido-file-internal|ido-file-lessp|ido-file-name-all-completions-1|ido-file-name-all-completions|ido-final-slash|ido-find-alternate-file|ido-find-common-substring|ido-find-file-in-dir|ido-find-file-other-frame|ido-find-file-other-window|ido-find-file-read-only-other-frame|ido-find-file-read-only-other-window|ido-find-file-read-only|ido-find-file|ido-flatten-merged-list|ido-forget-work-directory|ido-fractionp|ido-get-buffers-in-frames|ido-get-bufname|ido-get-work-directory|ido-get-work-file|ido-ignore-item-p|ido-init-completion-maps|ido-initiate-auto-merge|ido-insert-buffer|ido-insert-file|ido-is-ftp-directory|ido-is-root-directory|ido-is-slow-ftp-host|ido-is-tramp-root|ido-is-unc-host|ido-is-unc-root|ido-kill-buffer-at-head|ido-kill-buffer|ido-kill-emacs-hook|ido-list-directory|ido-load-history|ido-local-file-exists-p|ido-magic-backward-char|ido-magic-delete-char|ido-magic-forward-char|ido-make-buffer-list-1|ido-make-buffer-list|ido-make-choice-list|ido-make-dir-list-1|ido-make-dir-list|ido-make-directory|ido-make-file-list-1|ido-make-file-list|ido-make-merged-file-list-1|ido-make-merged-file-list|ido-make-prompt|ido-makealist|ido-may-cache-directory|ido-merge-work-directories|ido-minibuffer-setup|ido-mode|ido-name|ido-next-match-dir|ido-next-match|ido-next-work-directory|ido-next-work-file|ido-no-final-slash|ido-nonreadable-directory-p|ido-pop-dir|ido-pp|ido-prev-match-dir|ido-prev-match|ido-prev-work-directory|ido-prev-work-file|ido-push-dir-first|ido-push-dir|ido-read-buffer|ido-read-directory-name|ido-read-file-name|ido-read-internal|ido-record-command|ido-record-work-directory|ido-record-work-file|ido-remove-cached-dir|ido-reread-directory|ido-restrict-to-matches|ido-save-history|ido-select-text|ido-set-common-completion|ido-set-current-directory|ido-set-current-home|ido-set-matches-1|ido-set-matches|ido-setup-completion-map|ido-sort-merged-list|ido-summary-buffers-to-end|ido-switch-buffer-other-frame|ido-switch-buffer-other-window|ido-switch-buffer|ido-take-first-match|ido-tidy|ido-time-stamp|ido-to-end|ido-toggle-case|ido-toggle-ignore|ido-toggle-literal|ido-toggle-prefix|ido-toggle-regexp|ido-toggle-trace|ido-toggle-vc|ido-toggle-virtual-buffers|ido-trace|ido-unc-hosts-net-view|ido-unc-hosts|ido-undo-merge-work-directory|ido-unload-function|ido-up-directory|ido-visit-buffer|ido-wash-history|ido-wide-find-dir-or-delete-dir|ido-wide-find-dir|ido-wide-find-dirs-or-files|ido-wide-find-file-or-pop-dir|ido-wide-find-file|ido-word-matching-substring|ido-write-file|ielm|ietf-drums-get-comment|ietf-drums-init|ietf-drums-make-address|ietf-drums-narrow-to-header|ietf-drums-parse-address|ietf-drums-parse-addresses|ietf-drums-parse-date|ietf-drums-quote-string|ietf-drums-remove-comments|ietf-drums-remove-whitespace|ietf-drums-strip|ietf-drums-token-to-list|ietf-drums-unfold-fws|if-let|ifconfig|iimage-mode-buffer|iimage-mode|iimage-modification-hook|iimage-recenter|image--set-speed|image-after-revert-hook|image-animate-get-speed|image-animate-set-speed|image-animate-timeout|image-animated-p|image-backward-hscroll|image-bob|image-bol|image-bookmark-jump|image-bookmark-make-record|image-decrease-speed|image-dired--with-db-file|image-dired-add-to-file-comment-list|image-dired-add-to-tag-file-list|image-dired-add-to-tag-file-lists|image-dired-associated-dired-buffer-window|image-dired-associated-dired-buffer|image-dired-backward-image|image-dired-comment-thumbnail|image-dired-copy-with-exif-file-name|image-dired-create-display-image-buffer|image-dired-create-gallery-lists|image-dired-create-thumb|image-dired-create-thumbnail-buffer|image-dired-create-thumbs|image-dired-define-display-image-mode-keymap|image-dired-define-thumbnail-mode-keymap|image-dired-delete-char|image-dired-delete-tag|image-dired-dir|image-dired-dired-after-readin-hook|image-dired-dired-comment-files|image-dired-dired-display-external|image-dired-dired-display-image|image-dired-dired-display-properties|image-dired-dired-edit-comment-and-tags|image-dired-dired-file-marked-p|image-dired-dired-next-line|image-dired-dired-previous-line|image-dired-dired-toggle-marked-thumbs|image-dired-dired-with-window-configuration|image-dired-display-current-image-full|image-dired-display-current-image-sized|image-dired-display-image-mode|image-dired-display-image|image-dired-display-next-thumbnail-original|image-dired-display-previous-thumbnail-original|image-dired-display-thumb-properties|image-dired-display-thumb|image-dired-display-thumbnail-original-image|image-dired-display-thumbs-append|image-dired-display-thumbs|image-dired-display-window-height|image-dired-display-window-width|image-dired-display-window|image-dired-flag-thumb-original-file|image-dired-format-properties-string|image-dired-forward-image|image-dired-gallery-generate|image-dired-get-buffer-window|image-dired-get-comment|image-dired-get-exif-data|image-dired-get-exif-file-name|image-dired-get-thumbnail-image|image-dired-hidden-p|image-dired-image-at-point-p|image-dired-insert-image|image-dired-insert-thumbnail|image-dired-jump-original-dired-buffer|image-dired-jump-thumbnail-buffer|image-dired-kill-buffer-and-window|image-dired-line-up-dynamic|image-dired-line-up-interactive|image-dired-line-up|image-dired-list-tags|image-dired-mark-and-display-next|image-dired-mark-tagged-files|image-dired-mark-thumb-original-file|image-dired-modify-mark-on-thumb-original-file|image-dired-mouse-display-image|image-dired-mouse-select-thumbnail|image-dired-mouse-toggle-mark|image-dired-next-line-and-display|image-dired-next-line|image-dired-original-file-name|image-dired-previous-line-and-display|image-dired-previous-line|image-dired-read-comment|image-dired-refresh-thumb|image-dired-remove-tag|image-dired-restore-window-configuration|image-dired-rotate-original-left|image-dired-rotate-original-right|image-dired-rotate-original|image-dired-rotate-thumbnail-left|image-dired-rotate-thumbnail-right|image-dired-rotate-thumbnail|image-dired-sane-db-file|image-dired-save-information-from-widgets|image-dired-set-exif-data|image-dired-setup-dired-keybindings|image-dired-show-all-from-dir|image-dired-slideshow-start|image-dired-slideshow-step|image-dired-slideshow-stop|image-dired-tag-files|image-dired-tag-thumbnail-remove|image-dired-tag-thumbnail|image-dired-thumb-name|image-dired-thumbnail-display-external|image-dired-thumbnail-mode|image-dired-thumbnail-set-image-description|image-dired-thumbnail-window|image-dired-toggle-append-browsing|image-dired-toggle-dired-display-properties|image-dired-toggle-mark-thumb-original-file|image-dired-toggle-movement-tracking|image-dired-track-original-file|image-dired-track-thumbnail|image-dired-unmark-thumb-original-file|image-dired-update-property|image-dired-window-height-pixels|image-dired-window-width-pixels|image-dired-write-comments|image-dired-write-tags|image-dired|image-display-size|image-eob|image-eol|image-extension-data|image-file-call-underlying|image-file-handler|image-file-name-regexp|image-file-yank-handler|image-forward-hscroll|image-get-display-property|image-goto-frame|image-increase-speed|image-jpeg-p|image-metadata|image-minor-mode|image-mode--images-in-directory|image-mode-as-text|image-mode-fit-frame|image-mode-maybe|image-mode-menu|image-mode-reapply-winprops|image-mode-setup-winprops|image-mode-window-get|image-mode-window-put|image-mode-winprops|image-mode|image-next-file|image-next-frame|image-next-line|image-previous-file|image-previous-frame|image-previous-line|image-refresh|image-reset-speed|image-reverse-speed|image-scroll-down|image-scroll-up|image-search-load-path|image-set-window-hscroll|image-set-window-vscroll|image-toggle-animation|image-toggle-display-image|image-toggle-display-text|image-toggle-display|image-transform-check-size|image-transform-fit-to-height|image-transform-fit-to-width|image-transform-fit-width|image-transform-properties|image-transform-reset|image-transform-set-rotation|image-transform-set-scale|image-transform-width|image-type-auto-detected-p|image-type-from-buffer|image-type-from-data|image-type-from-file-header|image-type-from-file-name|image-type|imagemagick-filter-types|imagemagick-register-types|imap-add-callback|imap-anonymous-auth|imap-anonymous-p|imap-arrival-filter|imap-authenticate|imap-body-lines|imap-capability|imap-close|imap-cram-md5-auth|imap-cram-md5-p|imap-current-mailbox-p-1|imap-current-mailbox-p|imap-current-mailbox|imap-current-message|imap-digest-md5-auth|imap-digest-md5-p|imap-disable-multibyte|imap-envelope-from|imap-error-text|imap-fetch-asynch|imap-fetch-safe|imap-fetch|imap-find-next-line|imap-forward|imap-gssapi-auth-p|imap-gssapi-auth|imap-gssapi-open|imap-gssapi-stream-p|imap-id|imap-interactive-login|imap-kerberos4-auth-p|imap-kerberos4-auth|imap-kerberos4-open|imap-kerberos4-stream-p|imap-list-to-message-set|imap-log|imap-login-auth|imap-login-p|imap-logout-wait|imap-logout|imap-mailbox-acl-delete|imap-mailbox-acl-get|imap-mailbox-acl-set|imap-mailbox-close|imap-mailbox-create-1|imap-mailbox-create|imap-mailbox-delete|imap-mailbox-examine-1|imap-mailbox-examine|imap-mailbox-expunge|imap-mailbox-get-1|imap-mailbox-get|imap-mailbox-list|imap-mailbox-lsub|imap-mailbox-map-1|imap-mailbox-map|imap-mailbox-put|imap-mailbox-rename|imap-mailbox-select-1|imap-mailbox-select|imap-mailbox-status-asynch|imap-mailbox-status|imap-mailbox-subscribe|imap-mailbox-unselect|imap-mailbox-unsubscribe|imap-message-append|imap-message-appenduid-1|imap-message-appenduid|imap-message-body|imap-message-copy|imap-message-copyuid-1|imap-message-copyuid|imap-message-envelope-bcc|imap-message-envelope-cc|imap-message-envelope-date|imap-message-envelope-from|imap-message-envelope-in-reply-to|imap-message-envelope-message-id|imap-message-envelope-reply-to|imap-message-envelope-sender|imap-message-envelope-subject|imap-message-envelope-to|imap-message-flag-permanent-p|imap-message-flags-add|imap-message-flags-del|imap-message-flags-set|imap-message-get|imap-message-map|imap-message-put|imap-namespace|imap-network-open|imap-network-p|imap-ok-p|imap-open-1|imap-open|imap-opened|imap-parse-acl|imap-parse-address-list|imap-parse-address|imap-parse-astring|imap-parse-body-ext)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:imap-parse-body-extension|imap-parse-body|imap-parse-data-list|imap-parse-envelope|imap-parse-fetch-body-section|imap-parse-fetch|imap-parse-flag-list|imap-parse-greeting|imap-parse-header-list|imap-parse-literal|imap-parse-mailbox|imap-parse-nil|imap-parse-nstring|imap-parse-number|imap-parse-resp-text-code|imap-parse-resp-text|imap-parse-response|imap-parse-status|imap-parse-string-list|imap-parse-string|imap-ping-server|imap-quote-specials|imap-range-to-message-set|imap-remassoc|imap-sasl-auth-p|imap-sasl-auth|imap-sasl-make-mechanisms|imap-search|imap-send-command-1|imap-send-command-wait|imap-send-command|imap-sentinel|imap-shell-open|imap-shell-p|imap-ssl-open|imap-ssl-p|imap-starttls-open|imap-starttls-p|imap-string-to-integer|imap-tls-open|imap-tls-p|imap-utf7-decode|imap-utf7-encode|imap-wait-for-tag|imenu--cleanup|imenu--completion-buffer|imenu--create-keymap|imenu--generic-function|imenu--in-alist|imenu--make-index-alist|imenu--menubar-select|imenu--mouse-menu|imenu--relative-position|imenu--sort-by-name|imenu--sort-by-position|imenu--split-menu|imenu--split-submenus|imenu--split|imenu--subalist-p|imenu--truncate-items|imenu-add-menubar-index|imenu-choose-buffer-index|imenu-default-create-index-function|imenu-default-goto-function|imenu-example--create-c-index|imenu-example--create-lisp-index|imenu-example--lisp-extract-index-name|imenu-example--name-and-position|imenu-find-default|imenu-progress-message|imenu-update-menubar|imenu|in-is13194-post-read-conversion|in-is13194-pre-write-conversion|in-string-p|inactivate-input-method|incf|increase-left-margin|increase-right-margin|increment-register|indent-accumulate-tab-stops|indent-for-comment|indent-icon-exp|indent-line-to|indent-new-comment-line|indent-next-tab-stop|indent-perl-exp|indent-pp-sexp|indent-rigidly--current-indentation|indent-rigidly--pop-undo|indent-rigidly-left-to-tab-stop|indent-rigidly-left|indent-rigidly-right-to-tab-stop|indent-rigidly-right|indent-sexp|indent-tcl-exp|indent-to-column|indented-text-mode|indian-2-column-to-ucs-region|indian-compose-regexp|indian-compose-region|indian-compose-string|indicate-copied-region|inferior-lisp-install-letter-bindings|inferior-lisp-menu|inferior-lisp-mode|inferior-lisp-proc|inferior-lisp|inferior-octave-check-process|inferior-octave-complete|inferior-octave-completion-at-point|inferior-octave-completion-table|inferior-octave-directory-tracker|inferior-octave-dynamic-list-input-ring|inferior-octave-mode|inferior-octave-output-digest|inferior-octave-process-live-p|inferior-octave-resync-dirs|inferior-octave-send-list-and-digest|inferior-octave-startup|inferior-octave-track-window-width-change|inferior-octave|inferior-python-mode|inferior-scheme-mode|inferior-tcl-mode|inferior-tcl-proc|inferior-tcl|info--manual-names|info--prettify-description|info-apropos|info-complete-file|info-complete-symbol|info-complete|info-display-manual|info-emacs-bug|info-emacs-manual|info-file-exists-p|info-finder|info-initialize|info-insert-file-contents-1|info-insert-file-contents|info-lookup->all-modes|info-lookup->cache|info-lookup->completions|info-lookup->doc-spec|info-lookup->ignore-case|info-lookup->initialized|info-lookup->mode-cache|info-lookup->mode-value|info-lookup->other-modes|info-lookup->parse-rule|info-lookup->refer-modes|info-lookup->regexp|info-lookup->topic-cache|info-lookup->topic-value|info-lookup-add-help\\\\*|info-lookup-add-help|info-lookup-change-mode|info-lookup-completions-at-point|info-lookup-file|info-lookup-guess-c-symbol|info-lookup-guess-custom-symbol|info-lookup-guess-default\\\\*|info-lookup-guess-default|info-lookup-interactive-arguments|info-lookup-make-completions|info-lookup-maybe-add-help|info-lookup-quick-all-modes|info-lookup-reset|info-lookup-select-mode|info-lookup-setup-mode|info-lookup-symbol|info-lookup|info-other-window|info-setup|info-standalone|info-xref-all-info-files|info-xref-check-all-custom|info-xref-check-all|info-xref-check-buffer|info-xref-check-list|info-xref-check-node|info-xref-check|info-xref-docstrings|info-xref-goto-node-p|info-xref-lock-file-p|info-xref-output-error|info-xref-output|info-xref-subfile-p|info-xref-with-file|info-xref-with-output|info|inhibit-local-variables-p|init-image-library|initialize-completions|initialize-instance|initialize-new-tags-table|inline|insert-abbrevs|insert-byte|insert-directory-adj-pos|insert-directory-safely|insert-file-1|insert-file-literally|insert-file|insert-for-yank-1|insert-image-file|insert-kbd-macro|insert-pair|insert-parentheses|insert-rectangle|insert-string|insert-tab|int-to-string|interactive-completion-string-reader|interactive-p|intern-safe|internal--after-save-selected-window|internal--after-with-selected-window|internal--before-save-selected-window|internal--before-with-selected-window|internal--build-binding-value-form|internal--build-binding|internal--build-bindings|internal--check-binding|internal--listify|internal--thread-argument|internal--track-mouse|internal-ange-ftp-mode|internal-char-font|internal-complete-buffer-except|internal-complete-buffer|internal-copy-lisp-face|internal-default-process-filter|internal-default-process-sentinel|internal-describe-syntax-value|internal-event-symbol-parse-modifiers|internal-face-x-get-resource|internal-get-lisp-face-attribute|internal-lisp-face-attribute-values|internal-lisp-face-empty-p|internal-lisp-face-equal-p|internal-lisp-face-p|internal-macroexpand-for-load|internal-make-lisp-face|internal-make-var-non-special|internal-merge-in-global-face|internal-pop-keymap|internal-push-keymap|internal-set-alternative-font-family-alist|internal-set-alternative-font-registry-alist|internal-set-font-selection-order|internal-set-lisp-face-attribute-from-resource|internal-set-lisp-face-attribute|internal-show-cursor-p|internal-show-cursor|internal-temp-output-buffer-show|internal-timer-start-idle|intersection|inverse-add-abbrev|inverse-add-global-abbrev|inverse-add-mode-abbrev|inversion-<|inversion-=|inversion-add-to-load-path|inversion-check-version|inversion-decode-version|inversion-download-package-ask|inversion-find-version|inversion-locate-package-files-and-split|inversion-locate-package-files|inversion-package-incompatibility-version|inversion-package-version|inversion-recode|inversion-release-to-number|inversion-require-emacs|inversion-require|inversion-reverse-test|inversion-test|ipconfig|irc|isInNet|isPlainHostName|isResolvable|isearch--get-state|isearch--set-state|isearch--state-barrier--cmacro|isearch--state-barrier|isearch--state-case-fold-search--cmacro|isearch--state-case-fold-search|isearch--state-error--cmacro|isearch--state-error|isearch--state-forward--cmacro|isearch--state-forward|isearch--state-message--cmacro|isearch--state-message|isearch--state-other-end--cmacro|isearch--state-other-end|isearch--state-p--cmacro|isearch--state-p|isearch--state-point--cmacro|isearch--state-point|isearch--state-pop-fun--cmacro|isearch--state-pop-fun|isearch--state-string--cmacro|isearch--state-string|isearch--state-success--cmacro|isearch--state-success|isearch--state-word--cmacro|isearch--state-word|isearch--state-wrapped--cmacro|isearch--state-wrapped|isearch-abort|isearch-back-into-window|isearch-backslash|isearch-backward-regexp|isearch-backward|isearch-cancel|isearch-char-by-name|isearch-clean-overlays|isearch-close-unnecessary-overlays|isearch-complete-edit|isearch-complete|isearch-complete1|isearch-dehighlight|isearch-del-char|isearch-delete-char|isearch-describe-bindings|isearch-describe-key|isearch-describe-mode|isearch-done|isearch-edit-string|isearch-exit|isearch-fail-pos|isearch-fallback|isearch-filter-visible|isearch-forward-exit-minibuffer|isearch-forward-regexp|isearch-forward-symbol-at-point|isearch-forward-symbol|isearch-forward-word|isearch-forward|isearch-help-for-help-internal-doc|isearch-help-for-help-internal|isearch-help-for-help|isearch-highlight-regexp|isearch-highlight|isearch-intersects-p|isearch-lazy-highlight-cleanup|isearch-lazy-highlight-new-loop|isearch-lazy-highlight-search|isearch-lazy-highlight-update|isearch-message-prefix|isearch-message-suffix|isearch-message|isearch-mode-help|isearch-mode|isearch-mouse-2|isearch-no-upper-case-p|isearch-nonincremental-exit-minibuffer|isearch-occur|isearch-open-necessary-overlays|isearch-open-overlay-temporary|isearch-pop-state|isearch-post-command-hook|isearch-pre-command-hook|isearch-printing-char|isearch-process-search-char|isearch-process-search-multibyte-characters|isearch-process-search-string|isearch-push-state|isearch-query-replace-regexp|isearch-query-replace|isearch-quote-char|isearch-range-invisible|isearch-repeat-backward|isearch-repeat-forward|isearch-repeat|isearch-resume|isearch-reverse-exit-minibuffer|isearch-ring-adjust|isearch-ring-adjust1|isearch-ring-advance|isearch-ring-retreat|isearch-search-and-update|isearch-search-fun-default|isearch-search-fun|isearch-search-string|isearch-search|isearch-string-out-of-window|isearch-symbol-regexp|isearch-text-char-description|isearch-toggle-case-fold|isearch-toggle-input-method|isearch-toggle-invisible|isearch-toggle-lax-whitespace|isearch-toggle-regexp|isearch-toggle-specified-input-method|isearch-toggle-symbol|isearch-toggle-word|isearch-unread|isearch-update-ring|isearch-update|isearch-yank-char-in-minibuffer|isearch-yank-char|isearch-yank-internal|isearch-yank-kill|isearch-yank-line|isearch-yank-pop|isearch-yank-string|isearch-yank-word-or-char|isearch-yank-word|isearch-yank-x-selection|isearchb-activate|isearchb-follow-char|isearchb-iswitchb|isearchb-set-keybindings|isearchb-stop|isearchb|iso-charset|iso-cvt-define-menu|iso-cvt-read-only|iso-cvt-write-only|iso-german|iso-gtex2iso|iso-iso2duden|iso-iso2gtex|iso-iso2sgml|iso-iso2tex|iso-sgml2iso|iso-spanish|iso-tex2iso|iso-transl-ctl-x-8-map|ispell-accept-buffer-local-defs|ispell-accept-output|ispell-add-per-file-word-list|ispell-aspell-add-aliases|ispell-aspell-find-dictionary|ispell-begin-skip-region-regexp|ispell-begin-skip-region|ispell-begin-tex-skip-regexp|ispell-buffer-local-dict|ispell-buffer-local-parsing|ispell-buffer-local-words|ispell-buffer-with-debug|ispell-buffer|ispell-call-process-region|ispell-call-process|ispell-change-dictionary|ispell-check-minver|ispell-check-version|ispell-command-loop|ispell-comments-and-strings|ispell-complete-word-interior-frag|ispell-complete-word|ispell-continue|ispell-create-debug-buffer|ispell-decode-string|ispell-display-buffer|ispell-filter|ispell-find-aspell-dictionaries|ispell-find-hunspell-dictionaries|ispell-get-aspell-config-value|ispell-get-casechars|ispell-get-coding-system|ispell-get-decoded-string|ispell-get-extended-character-mode|ispell-get-ispell-args|ispell-get-line|ispell-get-many-otherchars-p|ispell-get-not-casechars|ispell-get-otherchars|ispell-get-word|ispell-help|ispell-highlight-spelling-error-generic|ispell-highlight-spelling-error-overlay|ispell-highlight-spelling-error-xemacs|ispell-highlight-spelling-error|ispell-horiz-scroll|ispell-hunspell-fill-dictionary-entry|ispell-ignore-fcc|ispell-init-process|ispell-int-char|ispell-internal-change-dictionary|ispell-kill-ispell|ispell-looking-at|ispell-looking-back|ispell-lookup-words|ispell-menu-map|ispell-message|ispell-mime-multipartp|ispell-mime-skip-part|ispell-minor-check|ispell-minor-mode|ispell-non-empty-string|ispell-parse-hunspell-affix-file|ispell-parse-output|ispell-pdict-save|ispell-print-if-debug|ispell-process-line|ispell-process-status|ispell-region|ispell-send-replacement|ispell-send-string|ispell-set-spellchecker-params|ispell-show-choices|ispell-skip-region-list|ispell-skip-region|ispell-start-process|ispell-tex-arg-end|ispell-valid-dictionary-list|ispell-with-no-warnings|ispell-word|ispell|isqrt|iswitchb-buffer-other-frame|iswitchb-buffer-other-window|iswitchb-buffer|iswitchb-case|iswitchb-chop|iswitchb-complete|iswitchb-completion-help|iswitchb-completions|iswitchb-display-buffer|iswitchb-entryfn-p|iswitchb-exhibit|iswitchb-existing-buffer-p|iswitchb-exit-minibuffer|iswitchb-find-common-substring|iswitchb-find-file|iswitchb-get-buffers-in-frames|iswitchb-get-bufname|iswitchb-get-matched-buffers|iswitchb-ignore-buffername-p|iswitchb-init-XEmacs-trick|iswitchb-kill-buffer|iswitchb-make-buflist|iswitchb-makealist|iswitchb-minibuffer-setup|iswitchb-mode|iswitchb-next-match|iswitchb-output-completion|iswitchb-possible-new-buffer)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:iswitchb-post-command|iswitchb-pre-command|iswitchb-prev-match|iswitchb-read-buffer|iswitchb-rotate-list|iswitchb-select-buffer-text|iswitchb-set-common-completion|iswitchb-set-matches|iswitchb-summaries-to-end|iswitchb-tidy|iswitchb-to-end|iswitchb-toggle-case|iswitchb-toggle-ignore|iswitchb-toggle-regexp|iswitchb-visit-buffer|iswitchb-window-buffer-p|iswitchb-word-matching-substring|iswitchb-xemacs-backspacekey|iswitchb|iwconfig|japanese-hankaku-region|japanese-hankaku|japanese-hiragana-region|japanese-hiragana|japanese-katakana-region|japanese-katakana|japanese-zenkaku-region|japanese-zenkaku|java-font-lock-keywords-2|java-font-lock-keywords-3|java-font-lock-keywords|java-mode|javascript-mode|jdb|jit-lock--debug-fontify|jit-lock-after-change|jit-lock-context-fontify|jit-lock-debug-mode|jit-lock-deferred-fontify|jit-lock-fontify-now|jit-lock-force-redisplay|jit-lock-function|jit-lock-mode|jit-lock-refontify|jit-lock-stealth-chunk-start|jit-lock-stealth-fontify|jka-compr-build-file-regexp|jka-compr-byte-compiler-base-file-name|jka-compr-call-process|jka-compr-error|jka-compr-file-local-copy|jka-compr-get-compression-info|jka-compr-handler|jka-compr-info-can-append|jka-compr-info-compress-args|jka-compr-info-compress-message|jka-compr-info-compress-program|jka-compr-info-file-magic-bytes|jka-compr-info-regexp|jka-compr-info-strip-extension|jka-compr-info-uncompress-args|jka-compr-info-uncompress-message|jka-compr-info-uncompress-program|jka-compr-insert-file-contents|jka-compr-install|jka-compr-installed-p|jka-compr-load|jka-compr-make-temp-name|jka-compr-partial-uncompress|jka-compr-run-real-handler|jka-compr-set|jka-compr-uninstall|jka-compr-update|jka-compr-write-region|join-line|js--array-comp-indentation|js--backward-pstate|js--backward-syntactic-ws|js--backward-text-property|js--beginning-of-defun-flat|js--beginning-of-defun-nested|js--beginning-of-defun-raw|js--beginning-of-macro|js--class-decl-matcher|js--clear-stale-cache|js--continued-expression-p|js--ctrl-statement-indentation|js--debug|js--end-of-defun-flat|js--end-of-defun-nested|js--end-of-do-while-loop-p|js--ensure-cache--pop-if-ended|js--ensure-cache--update-parse|js--ensure-cache|js--flatten-list|js--flush-caches|js--forward-destructuring-spec|js--forward-expression|js--forward-function-decl|js--forward-pstate|js--forward-syntactic-ws|js--forward-text-property|js--function-prologue-beginning|js--get-all-known-symbols|js--get-c-offset|js--get-js-context|js--get-tabs|js--guess-eval-defun-info|js--guess-function-name|js--guess-symbol-at-point|js--imenu-create-index|js--imenu-to-flat|js--indent-in-array-comp|js--inside-dojo-class-list-p|js--inside-param-list-p|js--inside-pitem-p|js--js-add-resource-alias|js--js-content-window|js--js-create-instance|js--js-decode-retval|js--js-encode-value|js--js-enter-repl|js--js-eval|js--js-funcall|js--js-get-service|js--js-get|js--js-handle-expired-p|js--js-handle-id--cmacro|js--js-handle-id|js--js-handle-p--cmacro|js--js-handle-p|js--js-handle-process--cmacro|js--js-handle-process|js--js-leave-repl|js--js-list|js--js-new|js--js-not|js--js-put|js--js-qi|js--js-true|js--js-wait-for-eval-prompt|js--looking-at-operator-p|js--make-framework-matcher|js--make-merged-item|js--make-nsilocalfile|js--maybe-join|js--maybe-make-marker|js--multi-line-declaration-indentation|js--optimize-arglist|js--parse-state-at-point|js--pitem-add-child|js--pitem-b-end--cmacro|js--pitem-b-end|js--pitem-children--cmacro|js--pitem-children|js--pitem-format|js--pitem-goto-h-end|js--pitem-h-begin--cmacro|js--pitem-h-begin|js--pitem-name--cmacro|js--pitem-name|js--pitem-paren-depth--cmacro|js--pitem-paren-depth|js--pitem-strname|js--pitem-type--cmacro|js--pitem-type|js--pitems-to-imenu|js--proper-indentation|js--pstate-is-toplevel-defun|js--re-search-backward-inner|js--re-search-backward|js--re-search-forward-inner|js--re-search-forward|js--read-symbol|js--read-tab|js--regexp-opt-symbol|js--same-line|js--show-cache-at-point|js--splice-into-items|js--split-name|js--syntactic-context-from-pstate|js--syntax-begin-function|js--up-nearby-list|js--update-quick-match-re|js--variable-decl-matcher|js--wait-for-matching-output|js--which-func-joiner|js-beginning-of-defun|js-c-fill-paragraph|js-end-of-defun|js-eval-defun|js-eval|js-find-symbol|js-gc|js-indent-line|js-mode|js-set-js-context|js-syntactic-context|js-syntax-propertize-regexp|js-syntax-propertize|json--with-indentation|json-add-to-object|json-advance|json-alist-p|json-decode-char0|json-encode-alist|json-encode-array|json-encode-char|json-encode-char0|json-encode-hash-table|json-encode-key|json-encode-keyword|json-encode-list|json-encode-number|json-encode-plist|json-encode-string|json-encode|json-join|json-new-object|json-peek|json-plist-p|json-pop|json-pretty-print-buffer|json-pretty-print|json-read-array|json-read-escaped-char|json-read-file|json-read-from-string|json-read-keyword|json-read-number|json-read-object|json-read-string|json-read|json-skip-whitespace|jump-to-register|kbd-macro-query|keep-lines-read-args|keep-lines|kermit-clean-filter|kermit-clean-off|kermit-clean-on|kermit-default-cr|kermit-default-nl|kermit-esc|kermit-send-char|kermit-send-input-cr|keyboard-escape-quit|keymap--menu-item-binding|keymap--menu-item-with-binding|keymap--merge-bindings|keymap-canonicalize|keypad-setup|kill-all-abbrevs|kill-backward-chars|kill-backward-up-list|kill-buffer-and-window|kill-buffer-ask|kill-buffer-if-not-modified|kill-comment|kill-compilation|kill-completion|kill-emacs-save-completions|kill-find|kill-forward-chars|kill-grep|kill-line|kill-matching-buffers|kill-paragraph|kill-rectangle|kill-ring-save|kill-sentence|kill-sexp|kill-some-buffers|kill-this-buffer-enabled-p|kill-this-buffer|kill-visual-line|kill-whole-line|kill-word|kinsoku-longer|kinsoku-shorter|kinsoku|kkc-region|kmacro-add-counter|kmacro-bind-to-key|kmacro-call-macro|kmacro-call-ring-2nd-repeat|kmacro-call-ring-2nd|kmacro-cycle-ring-next|kmacro-cycle-ring-previous|kmacro-delete-ring-head|kmacro-display-counter|kmacro-display|kmacro-edit-lossage|kmacro-edit-macro-repeat|kmacro-edit-macro|kmacro-end-and-call-macro|kmacro-end-call-mouse|kmacro-end-macro|kmacro-end-or-call-macro-repeat|kmacro-end-or-call-macro|kmacro-exec-ring-item|kmacro-execute-from-register|kmacro-extract-lambda|kmacro-get-repeat-prefix|kmacro-insert-counter|kmacro-keyboard-quit|kmacro-lambda-form|kmacro-loop-setup-function|kmacro-name-last-macro|kmacro-pop-ring|kmacro-pop-ring1|kmacro-push-ring|kmacro-repeat-on-last-key|kmacro-ring-empty-p|kmacro-ring-head|kmacro-set-counter|kmacro-set-format|kmacro-split-ring-element|kmacro-start-macro-or-insert-counter|kmacro-start-macro|kmacro-step-edit-insert|kmacro-step-edit-macro|kmacro-step-edit-minibuf-setup|kmacro-step-edit-post-command|kmacro-step-edit-pre-command|kmacro-step-edit-prompt|kmacro-step-edit-query|kmacro-swap-ring|kmacro-to-register|kmacro-view-macro-repeat|kmacro-view-macro|kmacro-view-ring-2nd|lambda|landmark--distance|landmark--intangible|landmark-amble-robot|landmark-beginning-of-line|landmark-blackbox|landmark-calc-confidences|landmark-calc-current-smells|landmark-calc-distance-of-robot-from|landmark-calc-payoff|landmark-calc-smell-internal|landmark-check-filled-qtuple|landmark-click|landmark-confidence-for|landmark-crash-game|landmark-cross-qtuple|landmark-display-statistics|landmark-emacs-plays|landmark-end-of-line|landmark-f|landmark-find-filled-qtuple|landmark-fix-weights-for|landmark-flip-a-coin|landmark-goto-square|landmark-goto-xy|landmark-human-plays|landmark-human-resigns|landmark-human-takes-back|landmark-index-to-x|landmark-index-to-y|landmark-init-board|landmark-init-display|landmark-init-score-table|landmark-init-square-score|landmark-init|landmark-max-height|landmark-max-width|landmark-mode|landmark-mouse-play|landmark-move-down|landmark-move-ne|landmark-move-nw|landmark-move-se|landmark-move-sw|landmark-move-up|landmark-move|landmark-nb-qtuples|landmark-noise|landmark-nslify-wts-int|landmark-nslify-wts|landmark-offer-a-draw|landmark-play-move|landmark-plot-internal|landmark-plot-landmarks|landmark-plot-square|landmark-point-square|landmark-point-y|landmark-print-distance-int|landmark-print-distance|landmark-print-moves|landmark-print-smell-int|landmark-print-smell|landmark-print-w0-int|landmark-print-w0|landmark-print-wts-blackbox|landmark-print-wts-int|landmark-print-wts|landmark-print-y-s-noise-int|landmark-print-y-s-noise|landmark-prompt-for-move|landmark-prompt-for-other-game|landmark-random-move|landmark-randomize-weights-for|landmark-repeat|landmark-set-landmark-signal-strengths|landmark-start-game|landmark-start-robot|landmark-store-old-y_t|landmark-strongest-square|landmark-switch-to-window|landmark-take-back|landmark-terminate-game|landmark-test-run|landmark-update-naught-weights|landmark-update-normal-weights|landmark-update-score-in-direction|landmark-update-score-table|landmark-weights-debug|landmark-xy-to-index|landmark-y|landmark|lao-compose-region|lao-compose-string|lao-composition-function|lao-transcribe-roman-to-lao-string|lao-transcribe-single-roman-syllable-to-lao|last-nonminibuffer-frame|last-sexp-setup-props|latex-backward-sexp-1|latex-close-block|latex-complete-bibtex-keys|latex-complete-data|latex-complete-envnames|latex-complete-refkeys|latex-down-list|latex-electric-env-pair-mode|latex-env-before-change|latex-fill-nobreak-predicate|latex-find-indent|latex-forward-sexp-1|latex-forward-sexp|latex-imenu-create-index|latex-indent|latex-insert-block|latex-insert-item|latex-mode|latex-outline-level|latex-skip-close-parens|latex-split-block|latex-string-prefix-p|latex-syntax-after|latexenc-coding-system-to-inputenc|latexenc-find-file-coding-system|latexenc-inputenc-to-coding-system|latin1-display|lazy-highlight-cleanup|lcm|ld-script-mode|ldap-decode-address|ldap-decode-attribute|ldap-decode-boolean|ldap-decode-string|ldap-encode-address|ldap-encode-boolean|ldap-encode-country-string|ldap-encode-string|ldap-get-host-parameter|ldap-search-internal|ldap-search|ldiff|led-flash|led-off|led-on|led-update|left-char|left-word|let-alist--access-sexp|let-alist--deep-dot-search|let-alist--list-to-sexp|let-alist--remove-dot|let-alist|letf\\\\*|letf|letrec|lglyph-adjustment|lglyph-ascent|lglyph-char|lglyph-code|lglyph-copy|lglyph-descent|lglyph-from|lglyph-lbearing|lglyph-rbearing|lglyph-set-adjustment|lglyph-set-char|lglyph-set-code|lglyph-set-from-to|lglyph-set-width|lglyph-to|lglyph-width|lgrep|lgstring-char-len|lgstring-char|lgstring-font|lgstring-glyph-len|lgstring-glyph|lgstring-header|lgstring-insert-glyph|lgstring-set-glyph|lgstring-set-header|lgstring-set-id|lgstring-shaped-p|life-birth-char|life-birth-string|life-compute-neighbor-deltas|life-death-char|life-death-string|life-display-generation|life-expand-plane-if-needed|life-extinct-quit|life-grim-reaper|life-increment-generation|life-increment|life-insert-random-pattern|life-life-char|life-life-string|life-mode|life-not-void-regexp|life-setup|life-void-char|life-void-string|life|limit-index|line-move-1|line-move-finish|line-move-partial|line-move-to-column|line-move-visual|line-move|line-number-mode|line-pixel-height|line-substring-with-bidi-context|linum--face-width|linum-after-change|linum-after-scroll|linum-delete-overlays|linum-mode-set-explicitly|linum-mode|linum-on|linum-schedule|linum-unload-function|linum-update-current|linum-update-window|linum-update|lisp--match-hidden-arg|lisp-comment-indent|lisp-compile-defun-and-go|lisp-compile-defun|lisp-compile-file|lisp-compile-region-and-go|lisp-compile-region|lisp-compile-string|lisp-complete-symbol|lisp-completion-at-point|lisp-current-defun-name|lisp-describe-sym|lisp-do-defun|lisp-eval-defun-and-go|lisp-eval-defun|lisp-eval-form-and-next|lisp-eval-last-sexp|lisp-eval-paragraph|lisp-eval-region-and-go|lisp-eval-region|lisp-eval-string|lisp-fill-paragraph|lisp-find-tag-default|lisp-fn-called-at-pt|lisp-font-lock-syntactic-face-function|lisp-get-old-input|lisp-indent-defform|lisp-indent-function|lisp-indent-line|lisp-indent-specform|lisp-input-filter|lisp-interaction-mode|lisp-load-file|lisp-mode-auto-fill|lisp-mode-variables|lisp-mode|lisp-outline-level|lisp-show-arglist|lisp-show-function-documentation|lisp-show-variable-documentation|lisp-string-after-doc-keyword-p|lisp-string-in-doc-position-p)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:lisp-symprompt|lisp-var-at-pt|list\\\\*|list-abbrevs|list-all-completions-1|list-all-completions-by-hash-bucket-1|list-all-completions-by-hash-bucket|list-all-completions|list-at-point|list-bookmarks|list-buffers--refresh|list-buffers-noselect|list-buffers|list-character-sets|list-coding-categories|list-coding-systems|list-colors-display|list-colors-duplicates|list-colors-print|list-colors-redisplay|list-colors-sort-key|list-command-history|list-directory|list-dynamic-libraries|list-faces-display|list-fontsets|list-holidays|list-input-methods|list-length|list-matching-lines|list-packages|list-processes--refresh|list-registers|list-tags|lm-adapted-by|lm-authors|lm-code-mark|lm-code-start|lm-commentary-end|lm-commentary-mark|lm-commentary-start|lm-commentary|lm-copyright-mark|lm-crack-address|lm-crack-copyright|lm-creation-date|lm-get-header-re|lm-get-package-name|lm-header-multiline|lm-header|lm-history-mark|lm-history-start|lm-homepage|lm-insert-at-column|lm-keywords-finder-p|lm-keywords-list|lm-keywords|lm-last-modified-date|lm-maintainer|lm-report-bug|lm-section-end|lm-section-mark|lm-section-start|lm-summary|lm-synopsis|lm-verify|lm-version|lm-with-file|load-completions-from-file|load-history-filename-element|load-history-regexp|load-path-shadows-find|load-path-shadows-mode|load-path-shadows-same-file-or-nonexistent|load-save-place-alist-from-file|load-time-value|load-with-code-conversion|local-clear-scheme-interaction-buffer|local-set-scheme-interaction-buffer|locale-charset-match-p|locale-charset-to-coding-system|locale-name-match|locale-translate|locally|locate-completion-db-error|locate-completion-entry-retry|locate-completion-entry|locate-current-line-number|locate-default-make-command-line|locate-do-redisplay|locate-do-setup|locate-dominating-file|locate-file-completion-table|locate-file-completion|locate-file-internal|locate-filter-output|locate-find-directory-other-window|locate-find-directory|locate-get-dirname|locate-get-file-positions|locate-get-filename|locate-in-alternate-database|locate-insert-header|locate-main-listing-line-p|locate-mode|locate-mouse-view-file|locate-prompt-for-search-string|locate-set-properties|locate-tags|locate-update|locate-with-filter|locate-word-at-point|locate|log-edit--match-first-line|log-edit-add-field|log-edit-add-to-changelog|log-edit-beginning-of-line|log-edit-changelog-entries|log-edit-changelog-entry|log-edit-changelog-insert-entries|log-edit-changelog-ours-p|log-edit-changelog-paragraph|log-edit-changelog-subparagraph|log-edit-comment-search-backward|log-edit-comment-search-forward|log-edit-comment-to-change-log|log-edit-done|log-edit-empty-buffer-p|log-edit-extract-headers|log-edit-files|log-edit-font-lock-keywords|log-edit-goto-eoh|log-edit-hide-buf|log-edit-insert-changelog-entries|log-edit-insert-changelog|log-edit-insert-cvs-rcstemplate|log-edit-insert-cvs-template|log-edit-insert-filenames-without-changelog|log-edit-insert-filenames|log-edit-insert-message-template|log-edit-kill-buffer|log-edit-match-to-eoh|log-edit-menu|log-edit-mode-help|log-edit-mode|log-edit-narrow-changelog|log-edit-new-comment-index|log-edit-next-comment|log-edit-previous-comment|log-edit-remember-comment|log-edit-set-common-indentation|log-edit-set-header|log-edit-show-diff|log-edit-show-files|log-edit-toggle-header|log-edit|log-view-annotate-version|log-view-beginning-of-defun|log-view-current-entry|log-view-current-file|log-view-current-tag|log-view-diff-changeset|log-view-diff-common|log-view-diff|log-view-end-of-defun-1|log-view-end-of-defun|log-view-extract-comment|log-view-file-next|log-view-file-prev|log-view-find-revision|log-view-get-marked|log-view-goto-rev|log-view-inside-comment-p|log-view-minor-wrap|log-view-mode-menu|log-view-mode|log-view-modify-change-comment|log-view-msg-next|log-view-msg-prev|log-view-toggle-entry-display|log-view-toggle-mark-entry|log10|lookfor-dired|lookup-image-map|lookup-key-ignore-too-long|lookup-minor-mode-from-indicator|lookup-nested-alist|lookup-words|loop|lpr-buffer|lpr-customize|lpr-eval-switch|lpr-flatten-list-1|lpr-flatten-list|lpr-print-region|lpr-region|lpr-setup|lunar-phases|m2-begin-comment|m2-begin|m2-case|m2-compile|m2-definition|m2-else|m2-end-comment|m2-execute-monitor-command|m2-export|m2-for|m2-header|m2-if|m2-import|m2-link|m2-loop|m2-mode|m2-module|m2-or|m2-procedure|m2-record|m2-smie-backward-token|m2-smie-forward-token|m2-smie-refine-colon|m2-smie-refine-of|m2-smie-refine-semi|m2-smie-rules|m2-stdio|m2-toggle|m2-type|m2-until|m2-var|m2-visit|m2-while|m2-with|m4--quoted-p|m4-current-defun-name|m4-m4-buffer|m4-m4-region|m4-mode|macro-declaration-function|macroexp--accumulate|macroexp--all-clauses|macroexp--all-forms|macroexp--backtrace|macroexp--compiler-macro|macroexp--compiling-p|macroexp--cons|macroexp--const-symbol-p|macroexp--expand-all|macroexp--funcall-if-compiled|macroexp--maxsize|macroexp--obsolete-warning|macroexp--trim-backtrace-frame|macroexp--warn-and-return|macroexp-const-p|macroexp-copyable-p|macroexp-if|macroexp-let\\\\*|macroexp-let2\\\\*|macroexp-let2|macroexp-progn|macroexp-quote|macroexp-small-p|macroexp-unprogn|macroexpand-1|macrolet|mail-abbrev-complete-alias|mail-abbrev-end-of-buffer|mail-abbrev-expand-hook|mail-abbrev-expand-wrapper|mail-abbrev-in-expansion-header-p|mail-abbrev-insert-alias|mail-abbrev-make-syntax-table|mail-abbrev-next-line|mail-abbrevs-disable|mail-abbrevs-enable|mail-abbrevs-mode|mail-abbrevs-setup|mail-abbrevs-sync-aliases|mail-add-attachment|mail-add-payment-async|mail-add-payment|mail-attach-file|mail-bcc|mail-bury|mail-cc|mail-check-payment|mail-comma-list-regexp|mail-complete|mail-completion-at-point-function|mail-completion-expand|mail-content-type-get|mail-decode-encoded-address-region|mail-decode-encoded-address-string|mail-decode-encoded-word-region|mail-decode-encoded-word-string|mail-directory-process|mail-directory-stream|mail-directory|mail-do-fcc|mail-dont-reply-to|mail-dont-send|mail-encode-encoded-word-buffer|mail-encode-encoded-word-region|mail-encode-encoded-word-string|mail-encode-header|mail-envelope-from|mail-extract-address-components|mail-fcc|mail-fetch-field|mail-file-babyl-p|mail-fill-yanked-message|mail-get-names|mail-header-chars|mail-header-date|mail-header-encode-parameter|mail-header-end|mail-header-extra|mail-header-extract-no-properties|mail-header-extract|mail-header-field-value|mail-header-fold-field|mail-header-format|mail-header-from|mail-header-get-comment|mail-header-id|mail-header-lines|mail-header-make-address|mail-header-merge|mail-header-message-id|mail-header-narrow-to-field|mail-header-number|mail-header-parse-address|mail-header-parse-addresses|mail-header-parse-content-disposition|mail-header-parse-content-type|mail-header-parse-date|mail-header-parse|mail-header-references|mail-header-remove-comments|mail-header-remove-whitespace|mail-header-set-chars|mail-header-set-date|mail-header-set-extra|mail-header-set-from|mail-header-set-id|mail-header-set-lines|mail-header-set-message-id|mail-header-set-number|mail-header-set-references|mail-header-set-subject|mail-header-set-xref|mail-header-set|mail-header-strip|mail-header-subject|mail-header-unfold-field|mail-header-xref|mail-header|mail-hist-define-keys|mail-hist-enable|mail-hist-put-headers-into-history|mail-indent-citation|mail-insert-file|mail-insert-from-field|mail-mail-followup-to|mail-mail-reply-to|mail-mbox-from|mail-mode-auto-fill|mail-mode-fill-paragraph|mail-mode-flyspell-verify|mail-mode|mail-narrow-to-head|mail-other-frame|mail-other-window|mail-parse-comma-list|mail-position-on-field|mail-quote-printable-region|mail-quote-printable|mail-quote-string|mail-recover-1|mail-recover|mail-reply-to|mail-resolve-all-aliases-1|mail-resolve-all-aliases|mail-rfc822-date|mail-rfc822-time-zone|mail-send-and-exit|mail-send|mail-sendmail-delimit-header|mail-sendmail-undelimit-header|mail-sent-via|mail-sentto-newsgroups|mail-setup|mail-signature|mail-split-line|mail-string-delete|mail-strip-quoted-names|mail-subject|mail-text-start|mail-text|mail-to|mail-unquote-printable-hexdigit|mail-unquote-printable-region|mail-unquote-printable|mail-yank-clear-headers|mail-yank-original|mail-yank-region|mail|mailcap-add-mailcap-entry|mailcap-add|mailcap-command-p|mailcap-delete-duplicates|mailcap-extension-to-mime|mailcap-file-default-commands|mailcap-mailcap-entry-passes-test|mailcap-maybe-eval|mailcap-mime-info|mailcap-mime-types|mailcap-parse-mailcap-extras|mailcap-parse-mailcap|mailcap-parse-mailcaps|mailcap-parse-mimetype-file|mailcap-parse-mimetypes|mailcap-possible-viewers|mailcap-replace-in-string|mailcap-replace-regexp|mailcap-save-binary-file|mailcap-unescape-mime-test|mailcap-view-mime|mailcap-viewer-lessp|mailcap-viewer-passes-test|mailclient-encode-string-as-url|mailclient-gather-addresses|mailclient-send-it|mailclient-url-delim|mairix-build-search-list|mairix-call-mairix|mairix-edit-saved-searches-customize|mairix-edit-saved-searches|mairix-gnus-ephemeral-nndoc|mairix-gnus-fetch-field|mairix-insert-search-line|mairix-next-search|mairix-previous-search|mairix-replace-invalid-chars|mairix-rmail-display|mairix-rmail-fetch-field|mairix-save-search|mairix-search-from-this-article|mairix-search-thread-this-article|mairix-search|mairix-searches-mode|mairix-select-delete|mairix-select-edit|mairix-select-quit|mairix-select-save|mairix-select-search|mairix-sentinel-mairix-update-finished|mairix-show-folder|mairix-update-database|mairix-use-saved-search|mairix-vm-display|mairix-vm-fetch-field|mairix-widget-add|mairix-widget-build-editable-fields|mairix-widget-create-query|mairix-widget-get-values|mairix-widget-make-query-from-widgets|mairix-widget-save-search|mairix-widget-search-based-on-article|mairix-widget-search|mairix-widget-send-query|mairix-widget-toggle-activate|make-backup-file-name--default-function|make-backup-file-name-1|make-char-internal|make-char|make-cmpl-prefix-entry|make-coding-system|make-comint-in-buffer|make-comint|make-command-summary|make-completion|make-directory-internal|make-doctor-variables|make-ebrowse-bs--cmacro|make-ebrowse-bs|make-ebrowse-cs--cmacro|make-ebrowse-cs|make-ebrowse-hs--cmacro|make-ebrowse-hs|make-ebrowse-ms--cmacro|make-ebrowse-ms|make-ebrowse-position--cmacro|make-ebrowse-position|make-ebrowse-ts--cmacro|make-ebrowse-ts|make-empty-face|make-erc-channel-user--cmacro|make-erc-channel-user|make-erc-response--cmacro|make-erc-response|make-erc-server-user--cmacro|make-erc-server-user|make-ert--ewoc-entry--cmacro|make-ert--ewoc-entry|make-ert--stats--cmacro|make-ert--stats|make-ert--test-execution-info--cmacro|make-ert--test-execution-info|make-ert-test--cmacro|make-ert-test-aborted-with-non-local-exit--cmacro|make-ert-test-aborted-with-non-local-exit|make-ert-test-failed--cmacro|make-ert-test-failed|make-ert-test-passed--cmacro|make-ert-test-passed|make-ert-test-quit--cmacro|make-ert-test-quit|make-ert-test-result--cmacro|make-ert-test-result-with-condition--cmacro|make-ert-test-result-with-condition|make-ert-test-result|make-ert-test-skipped--cmacro|make-ert-test-skipped|make-ert-test|make-face-bold-italic|make-face-bold|make-face-italic|make-face-unbold|make-face-unitalic|make-face-x-resource-internal|make-face|make-flyspell-overlay|make-frame-command|make-frame-names-alist|make-full-mail-header|make-gdb-handler--cmacro|make-gdb-handler|make-gdb-table--cmacro|make-gdb-table|make-hippie-expand-function|make-htmlize-fstruct--cmacro|make-htmlize-fstruct|make-initial-minibuffer-frame|make-instance|make-js--js-handle--cmacro|make-js--js-handle|make-js--pitem--cmacro|make-js--pitem|make-mail-header|make-mode-line-mouse-map|make-obsolete-overload|make-package--ac-desc--cmacro|make-package--ac-desc|make-package--bi-desc--cmacro|make-package--bi-desc|make-random-state|make-ses--locprn--cmacro|make-ses--locprn|make-sgml-tag--cmacro|make-sgml-tag|make-soap-array-type--cmacro|make-soap-array-type|make-soap-basic-type--cmacro|make-soap-basic-type|make-soap-binding--cmacro|make-soap-binding|make-soap-bound-operation--cmacro|make-soap-bound-operation|make-soap-element--cmacro|make-soap-element|make-soap-message--cmacro|make-soap-message|make-soap-namespace--cmacro|make-soap-namespace-link--cmacro|make-soap-namespace-link|make-soap-namespace|make-soap-operation--cmacro|make-soap-operation|make-soap-port--cmacro|make-soap-port-type--cmacro|make-soap-port-type)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:make-soap-port|make-soap-sequence-element--cmacro|make-soap-sequence-element|make-soap-sequence-type--cmacro|make-soap-sequence-type|make-soap-simple-type--cmacro|make-soap-simple-type|make-soap-wsdl--cmacro|make-soap-wsdl|make-tar-header--cmacro|make-tar-header|make-term|make-terminal-frame|make-url-queue--cmacro|make-url-queue|make-variable-frame-local|makefile-add-log-defun|makefile-append-backslash|makefile-automake-mode|makefile-backslash-region|makefile-browse|makefile-browser-fill|makefile-browser-format-macro-line|makefile-browser-format-target-line|makefile-browser-get-state-for-line|makefile-browser-insert-continuation|makefile-browser-insert-selection-and-quit|makefile-browser-insert-selection|makefile-browser-next-line|makefile-browser-on-macro-line-p|makefile-browser-previous-line|makefile-browser-quit|makefile-browser-send-this-line-item|makefile-browser-set-state-for-line|makefile-browser-start-interaction|makefile-browser-this-line-macro-name|makefile-browser-this-line-target-name|makefile-browser-toggle-state-for-line|makefile-browser-toggle|makefile-bsdmake-mode|makefile-cleanup-continuations|makefile-complete|makefile-completions-at-point|makefile-create-up-to-date-overview|makefile-delete-backslash|makefile-do-macro-insertion|makefile-electric-colon|makefile-electric-dot|makefile-electric-equal|makefile-fill-paragraph|makefile-first-line-p|makefile-format-macro-ref|makefile-forward-after-target-colon|makefile-generate-temporary-filename|makefile-gmake-mode|makefile-imake-mode|makefile-insert-gmake-function|makefile-insert-macro-ref|makefile-insert-macro|makefile-insert-special-target|makefile-insert-target-ref|makefile-insert-target|makefile-last-line-p|makefile-make-font-lock-keywords|makefile-makepp-mode|makefile-match-action|makefile-match-dependency|makefile-match-function-end|makefile-mode|makefile-next-dependency|makefile-pickup-everything|makefile-pickup-filenames-as-targets|makefile-pickup-macros|makefile-pickup-targets|makefile-previous-dependency|makefile-prompt-for-gmake-funargs|makefile-query-by-make-minus-q|makefile-query-targets|makefile-remember-macro|makefile-remember-target|makefile-save-temporary|makefile-switch-to-browser|makefile-warn-continuations|makefile-warn-suspicious-lines|makeinfo-buffer|makeinfo-compilation-sentinel-buffer|makeinfo-compilation-sentinel-region|makeinfo-compile|makeinfo-current-node|makeinfo-next-error|makeinfo-recenter-compilation-buffer|makeinfo-region|man-follow|man|mantemp-insert-cxx-syntax|mantemp-make-mantemps-buffer|mantemp-make-mantemps-region|mantemp-make-mantemps|mantemp-remove-comments|mantemp-remove-memfuncs|mantemp-sort-and-unique-lines|manual-entry|map-keymap-internal|map-keymap-sorted|map-query-replace-regexp|map|mapcan|mapcar\\\\*|mapcon|mapl|maplist|mark-bib|mark-defun|mark-end-of-sentence|mark-icon-function|mark-page|mark-paragraph|mark-perl-function|mark-sexp|mark-whole-buffer|mark-word|master-mode|master-says-beginning-of-buffer|master-says-end-of-buffer|master-says-recenter|master-says-scroll-down|master-says-scroll-up|master-says|master-set-slave|master-show-slave|matching-paren|math-add-bignum|math-add-float|math-add|math-bignum-big|math-bignum|math-build-parse-table|math-check-complete|math-comp-concat|math-concat|math-constp|math-div-bignum-big|math-div-bignum-digit|math-div-bignum-part|math-div-bignum-try|math-div-bignum|math-div-float|math-div|math-div10-bignum|math-div2-bignum|math-div2|math-do-working|math-evenp|math-expr-ops|math-find-user-tokens|math-fixnatnump|math-fixnump|math-float|math-floatp|math-floor|math-format-bignum-decimal|math-format-bignum|math-format-flat-expr|math-format-number|math-format-stack-value|math-format-value|math-idivmod|math-imod|math-infinitep|math-ipow|math-looks-negp|math-make-float|math-match-substring|math-mod|math-mul-bignum-digit|math-mul-bignum|math-mul|math-neg|math-negp|math-normalize|math-numdigs|math-posp|math-pow|math-quotient|math-read-bignum|math-read-expr-list|math-read-exprs|math-read-if|math-read-number-simple|math-read-number|math-read-preprocess-string|math-read-radix-digit|math-read-token|math-reject-arg|math-remove-dashes|math-scale-int|math-scale-left-bignum|math-scale-left|math-scale-right-bignum|math-scale-right|math-scale-rounding|math-showing-full-precision|math-stack-value-offset|math-standard-ops-p|math-standard-ops|math-sub-bignum|math-sub-float|math-sub|math-trunc|math-with-extra-prec|math-working|math-zerop|md4-64|md4-F|md4-G|md4-H|md4-add|md4-and|md4-copy64|md4-make-step|md4-pack-int16|md4-pack-int32|md4-round1|md4-round2|md4-round3|md4-unpack-int16|md4-unpack-int32|md4|md5-binary|member\\\\*|member-if-not|member-if|memory-info|menu-bar-bookmark-map|menu-bar-buffer-vector|menu-bar-ediff-menu|menu-bar-ediff-merge-menu|menu-bar-ediff-misc-menu|menu-bar-enable-clipboard|menu-bar-epatch-menu|menu-bar-frame-for-menubar|menu-bar-handwrite-map|menu-bar-horizontal-scroll-bar|menu-bar-kill-ring-save|menu-bar-left-scroll-bar|menu-bar-make-mm-toggle|menu-bar-make-toggle|menu-bar-menu-at-x-y|menu-bar-menu-frame-live-and-visible-p|menu-bar-mode|menu-bar-next-tag-other-window|menu-bar-next-tag|menu-bar-no-horizontal-scroll-bar|menu-bar-no-scroll-bar|menu-bar-non-minibuffer-window-p|menu-bar-open|menu-bar-options-save|menu-bar-positive-p|menu-bar-read-lispintro|menu-bar-read-lispref|menu-bar-read-mail|menu-bar-right-scroll-bar|menu-bar-select-buffer|menu-bar-select-frame|menu-bar-select-yank|menu-bar-set-tool-bar-position|menu-bar-showhide-fringe-ind-box|menu-bar-showhide-fringe-ind-customize|menu-bar-showhide-fringe-ind-left|menu-bar-showhide-fringe-ind-mixed|menu-bar-showhide-fringe-ind-none|menu-bar-showhide-fringe-ind-right|menu-bar-showhide-fringe-menu-customize-disable|menu-bar-showhide-fringe-menu-customize-left|menu-bar-showhide-fringe-menu-customize-reset|menu-bar-showhide-fringe-menu-customize-right|menu-bar-showhide-fringe-menu-customize|menu-bar-showhide-tool-bar-menu-customize-disable|menu-bar-showhide-tool-bar-menu-customize-enable-bottom|menu-bar-showhide-tool-bar-menu-customize-enable-left|menu-bar-showhide-tool-bar-menu-customize-enable-right|menu-bar-showhide-tool-bar-menu-customize-enable-top|menu-bar-update-buffers-1|menu-bar-update-buffers|menu-bar-update-yank-menu|menu-find-file-existing|menu-or-popup-active-p|menu-set-font|mercury-mode|merge-coding-systems|merge-mail-abbrevs|merge|message--yank-original-internal|message-add-action|message-add-archive-header|message-add-header|message-alter-recipients-discard-bogus-full-name|message-beginning-of-line|message-bogus-recipient-p|message-bold-region|message-bounce|message-buffer-name|message-buffers|message-bury|message-caesar-buffer-body|message-caesar-region|message-cancel-news|message-canlock-generate|message-canlock-password|message-carefully-insert-headers|message-change-subject|message-check-element|message-check-news-body-syntax|message-check-news-header-syntax|message-check-news-syntax|message-check-recipients|message-check|message-checksum|message-cite-original-1|message-cite-original-without-signature|message-cite-original|message-cleanup-headers|message-clone-locals|message-completion-function|message-completion-in-region|message-cross-post-followup-to-header|message-cross-post-followup-to|message-cross-post-insert-note|message-default-send-mail-function|message-default-send-rename-function|message-delete-action|message-delete-line|message-delete-not-region|message-delete-overlay|message-disassociate-draft|message-display-abbrev|message-do-actions|message-do-auto-fill|message-do-fcc|message-do-send-housekeeping|message-dont-reply-to-names|message-dont-send|message-elide-region|message-encode-message-body|message-exchange-point-and-mark|message-expand-group|message-expand-name|message-fetch-field|message-fetch-reply-field|message-field-name|message-field-value|message-fill-field-address|message-fill-field-general|message-fill-field|message-fill-paragraph|message-fill-yanked-message|message-fix-before-sending|message-flatten-list|message-followup|message-font-lock-make-header-matcher|message-forward-make-body-digest-mime|message-forward-make-body-digest-plain|message-forward-make-body-digest|message-forward-make-body-mime|message-forward-make-body-mml|message-forward-make-body-plain|message-forward-make-body|message-forward-rmail-make-body|message-forward-subject-author-subject|message-forward-subject-fwd|message-forward-subject-name-subject|message-forward|message-generate-headers|message-generate-new-buffer-clone-locals|message-generate-unsubscribed-mail-followup-to|message-get-reply-headers|message-gnksa-enable-p|message-goto-bcc|message-goto-body|message-goto-cc|message-goto-distribution|message-goto-eoh|message-goto-fcc|message-goto-followup-to|message-goto-from|message-goto-keywords|message-goto-mail-followup-to|message-goto-newsgroups|message-goto-reply-to|message-goto-signature|message-goto-subject|message-goto-summary|message-goto-to|message-headers-to-generate|message-hide-header-p|message-hide-headers|message-idna-to-ascii-rhs-1|message-idna-to-ascii-rhs|message-in-body-p|message-indent-citation|message-info|message-insert-canlock|message-insert-citation-line|message-insert-courtesy-copy|message-insert-disposition-notification-to|message-insert-expires|message-insert-formatted-citation-line|message-insert-header|message-insert-headers|message-insert-importance-high|message-insert-importance-low|message-insert-newsgroups|message-insert-or-toggle-importance|message-insert-signature|message-insert-to|message-insert-wide-reply|message-insinuate-rmail|message-is-yours-p|message-kill-address|message-kill-all-overlays|message-kill-buffer|message-kill-to-signature|message-mail-alias-type-p|message-mail-file-mbox-p|message-mail-other-frame|message-mail-other-window|message-mail-p|message-mail-user-agent|message-mail|message-make-address|message-make-caesar-translation-table|message-make-date|message-make-distribution|message-make-domain|message-make-expires-date|message-make-expires|message-make-forward-subject|message-make-fqdn|message-make-from|message-make-html-message-with-image-files|message-make-in-reply-to|message-make-lines|message-make-mail-followup-to|message-make-message-id|message-make-organization|message-make-overlay|message-make-path|message-make-references|message-make-sender|message-make-tool-bar|message-mark-active-p|message-mark-insert-file|message-mark-inserted-region|message-mode-field-menu|message-mode-menu|message-mode|message-multi-smtp-send-mail|message-narrow-to-field|message-narrow-to-head-1|message-narrow-to-head|message-narrow-to-headers-or-head|message-narrow-to-headers|message-newline-and-reformat|message-news-other-frame|message-news-other-window|message-news-p|message-news|message-next-header|message-number-base36|message-options-get|message-options-set-recipient|message-options-set|message-output|message-overlay-put|message-pipe-buffer-body|message-point-in-header-p|message-pop-to-buffer|message-position-on-field|message-position-point|message-posting-charset|message-prune-recipients|message-put-addresses-in-ecomplete|message-read-from-minibuffer|message-recover|message-reduce-to-to-cc|message-remove-blank-cited-lines|message-remove-first-header|message-remove-header|message-remove-ignored-headers|message-rename-buffer|message-replace-header|message-reply|message-resend|message-send-and-exit|message-send-form-letter|message-send-mail-function|message-send-mail-partially|message-send-mail-with-mailclient|message-send-mail-with-mh|message-send-mail-with-qmail|message-send-mail-with-sendmail|message-send-mail|message-send-news|message-send-via-mail|message-send-via-news|message-send|message-sendmail-envelope-from|message-set-auto-save-file-name|message-setup-1|message-setup-fill-variables|message-setup-toolbar|message-setup|message-shorten-1|message-shorten-references|message-signed-or-encrypted-p|message-simplify-recipients|message-simplify-subject|message-skip-to-next-address|message-smtpmail-send-it|message-sort-headers-1|message-sort-headers|message-split-line|message-strip-forbidden-properties|message-strip-list-identifiers|message-strip-subject-encoded-words|message-strip-subject-re|message-strip-subject-trailing-was|message-subscribed-p|message-supersede|message-tab|message-talkative-question|message-tamago-not-in-use-p|message-text-with-property|message-to-list-only|message-tokenize-header|message-tool-bar-update|message-unbold-region|message-unique-id|message-unquote-tokens|message-use-alternative-email-as-from|message-user-mail-address|message-wash-subject|message-wide-reply|message-widen-reply|message-with-reply-buffer|message-y-or-n-p)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:message-yank-buffer|message-yank-original|messages-buffer-mode|meta-add-symbols|meta-beginning-of-defun|meta-car-string-lessp|meta-comment-defun|meta-comment-indent|meta-comment-region|meta-common-mode|meta-complete-symbol|meta-completions-at-point|meta-end-of-defun|meta-indent-buffer|meta-indent-calculate|meta-indent-current-indentation|meta-indent-current-nesting|meta-indent-defun|meta-indent-in-string-p|meta-indent-level-count|meta-indent-line|meta-indent-looking-at-code|meta-indent-previous-line|meta-indent-region|meta-indent-unfinished-line|meta-listify|meta-mark-active|meta-mark-defun|meta-mode-menu|meta-symbol-list|meta-uncomment-defun|meta-uncomment-region|metafont-mode|metamail-buffer|metamail-interpret-body|metamail-interpret-header|metamail-region|metapost-mode|mh-adaptive-cmd-note-flag-check|mh-add-missing-mime-version-header|mh-add-msgs-to-seq|mh-alias-address-to-alias|mh-alias-expand|mh-alias-for-from-p|mh-alias-grab-from-field|mh-alias-letter-expand-alias|mh-alias-minibuffer-confirm-address|mh-alias-reload-maybe|mh-assoc-string|mh-beginning-of-word|mh-bogofilter-blacklist|mh-bogofilter-whitelist|mh-buffer-data|mh-burst-digest|mh-cancel-timer|mh-catchup|mh-cl-flet|mh-clean-msg-header|mh-clear-sub-folders-cache|mh-coalesce-msg-list|mh-colors-available-p|mh-colors-in-use-p|mh-complete-word|mh-compose-forward|mh-compose-insertion|mh-copy-msg|mh-create-sequence-map|mh-customize|mh-decode-message-header|mh-decode-message-subject|mh-define-obsolete-variable-alias|mh-define-sequence|mh-defstruct|mh-delete-a-msg|mh-delete-line|mh-delete-msg-from-seq|mh-delete-msg-no-motion|mh-delete-msg|mh-delete-seq|mh-delete-subject-or-thread|mh-delete-subject|mh-destroy-postponed-handles|mh-display-color-cells|mh-display-completion-list|mh-display-emphasis|mh-display-msg|mh-display-smileys|mh-display-with-external-viewer|mh-do-at-event-location|mh-do-in-gnu-emacs|mh-do-in-xemacs|mh-edit-again|mh-ephem-message|mh-exchange-point-and-mark-preserving-active-mark|mh-exec-cmd-daemon|mh-exec-cmd-env-daemon|mh-exec-cmd-error|mh-exec-cmd-output|mh-exec-cmd-quiet|mh-exec-cmd|mh-exec-lib-cmd-output|mh-execute-commands|mh-expand-file-name|mh-extract-from-header-value|mh-extract-rejected-mail|mh-face-background|mh-face-data|mh-face-foreground|mh-file-command-p|mh-file-mime-type|mh-find-path|mh-find-seq|mh-first-msg|mh-folder-completion-function|mh-folder-from-address|mh-folder-inline-mime-part|mh-folder-list|mh-folder-mode|mh-folder-name-p|mh-folder-save-mime-part|mh-folder-speedbar-buttons|mh-folder-toggle-mime-part|mh-font-lock-add-keywords|mh-forward|mh-fully-kill-draft|mh-funcall-if-exists|mh-get-header-field|mh-get-msg-num|mh-gnus-article-highlight-citation|mh-goto-cur-msg|mh-goto-header-end|mh-goto-header-field|mh-goto-msg|mh-goto-next-button|mh-handle-process-error|mh-have-file-command|mh-header-display|mh-header-field-beginning|mh-header-field-end|mh-help|mh-identity-add-menu|mh-identity-handler-attribution-verb|mh-identity-handler-bottom|mh-identity-handler-gpg-identity|mh-identity-handler-signature|mh-identity-handler-top|mh-identity-insert-attribution-verb|mh-identity-make-menu-no-autoload|mh-identity-make-menu|mh-image-load-path-for-library|mh-image-search-load-path|mh-in-header-p|mh-in-show-buffer|mh-inc-folder|mh-inc-spool-make-no-autoload|mh-inc-spool-make|mh-index-add-to-sequence|mh-index-create-imenu-index|mh-index-create-sequences|mh-index-delete-folder-headers|mh-index-delete-from-sequence|mh-index-execute-commands|mh-index-group-by-folder|mh-index-insert-folder-headers|mh-index-new-messages|mh-index-next-folder|mh-index-previous-folder|mh-index-read-data|mh-index-sequenced-messages|mh-index-ticked-messages|mh-index-update-maps|mh-index-visit-folder|mh-insert-auto-fields|mh-insert-identity|mh-insert-signature|mh-interactive-range|mh-invalidate-show-buffer|mh-invisible-headers|mh-iterate-on-messages-in-region|mh-iterate-on-range|mh-junk-blacklist-disposition|mh-junk-blacklist|mh-junk-choose|mh-junk-process-blacklist|mh-junk-process-whitelist|mh-junk-whitelist|mh-kill-folder|mh-last-msg|mh-lessp|mh-letter-hide-all-skipped-fields|mh-letter-mode|mh-letter-next-header-field|mh-letter-skip-leading-whitespace-in-header-field|mh-letter-skipped-header-field-p|mh-letter-speedbar-buttons|mh-letter-toggle-header-field-display-button|mh-letter-toggle-header-field-display|mh-line-beginning-position|mh-line-end-position|mh-list-folders|mh-list-sequences|mh-list-to-string-1|mh-list-to-string|mh-logo-display|mh-macro-expansion-time-gnus-version|mh-mail-abbrev-make-syntax-table|mh-mail-header-end|mh-make-folder-mode-line|mh-make-local-hook|mh-make-local-vars|mh-make-obsolete-variable|mh-mapc|mh-mark-active-p|mh-match-string-no-properties|mh-maybe-show|mh-mh-compose-anon-ftp|mh-mh-compose-external-compressed-tar|mh-mh-compose-external-type|mh-mh-directive-present-p|mh-mh-to-mime-undo|mh-mh-to-mime|mh-mime-cleanup|mh-mime-display|mh-mime-save-parts|mh-mml-forward-message|mh-mml-secure-message-encrypt|mh-mml-secure-message-sign|mh-mml-secure-message-signencrypt|mh-mml-tag-present-p|mh-mml-to-mime|mh-mml-unsecure-message|mh-modify|mh-msg-filename|mh-msg-is-in-seq|mh-msg-num-width-to-column|mh-msg-num-width|mh-narrow-to-cc|mh-narrow-to-from|mh-narrow-to-range|mh-narrow-to-seq|mh-narrow-to-subject|mh-narrow-to-tick|mh-narrow-to-to|mh-new-draft-name|mh-next-button|mh-next-msg|mh-next-undeleted-msg|mh-next-unread-msg|mh-nmail|mh-notate-cur|mh-notate-deleted-and-refiled|mh-notate-user-sequences|mh-notate|mh-outstanding-commands-p|mh-pack-folder|mh-page-digest-backwards|mh-page-digest|mh-page-msg|mh-parse-flist-output-line|mh-pipe-msg|mh-position-on-field|mh-prefix-help|mh-prev-button|mh-previous-page|mh-previous-undeleted-msg|mh-previous-unread-msg|mh-print-msg|mh-process-daemon|mh-process-or-undo-commands|mh-profile-component-value|mh-profile-component|mh-prompt-for-folder|mh-prompt-for-refile-folder|mh-ps-print-msg-file|mh-ps-print-msg|mh-ps-print-toggle-color|mh-ps-print-toggle-faces|mh-put-msg-in-seq|mh-quit|mh-quote-for-shell|mh-quote-pick-expr|mh-range-to-msg-list|mh-read-address|mh-read-folder-sequences|mh-read-range|mh-read-seq-default|mh-recenter|mh-redistribute|mh-refile-a-msg|mh-refile-msg|mh-refile-or-write-again|mh-regenerate-headers|mh-remove-all-notation|mh-remove-cur-notation|mh-remove-from-sub-folders-cache|mh-replace-regexp-in-string|mh-replace-string|mh-reply|mh-require-cl|mh-require|mh-rescan-folder|mh-reset-threads-and-narrowing|mh-rmail|mh-run-time-gnus-version|mh-scan-folder|mh-scan-format-file-check|mh-scan-format|mh-scan-msg-number-regexp|mh-scan-msg-search-regexp|mh-search-from-end|mh-search-p|mh-search|mh-send-letter|mh-send|mh-seq-msgs|mh-seq-to-msgs|mh-set-cmd-note|mh-set-folder-modified-p|mh-set-help|mh-set-x-image-cache-directory|mh-show-addr|mh-show-buffer-message-number|mh-show-font-lock-keywords-with-cite|mh-show-font-lock-keywords|mh-show-mode|mh-show-preferred-alternative|mh-show-speedbar-buttons|mh-show-xface|mh-show|mh-showing-mode|mh-signature-separator-p|mh-smail-batch|mh-smail-other-window|mh-smail|mh-sort-folder|mh-spamassassin-blacklist|mh-spamassassin-identify-spammers|mh-spamassassin-whitelist|mh-spamprobe-blacklist|mh-spamprobe-whitelist|mh-speed-add-folder|mh-speed-flists-active-p|mh-speed-flists|mh-speed-invalidate-map|mh-start-of-uncleaned-message|mh-store-msg|mh-strip-package-version|mh-sub-folders|mh-test-completion|mh-thread-add-spaces|mh-thread-ancestor|mh-thread-delete|mh-thread-find-msg-subject|mh-thread-forget-message|mh-thread-generate|mh-thread-inc|mh-thread-next-sibling|mh-thread-parse-scan-line|mh-thread-previous-sibling|mh-thread-print-scan-lines|mh-thread-refile|mh-thread-update-scan-line-map|mh-toggle-mh-decode-mime-flag|mh-toggle-mime-buttons|mh-toggle-showing|mh-toggle-threads|mh-toggle-tick|mh-translate-range|mh-truncate-log-buffer|mh-undefine-sequence|mh-undo-folder|mh-undo|mh-update-sequences|mh-url-hexify-string|mh-user-agent-compose|mh-valid-seq-p|mh-valid-view-change-operation-p|mh-variant-gnu-mh-info|mh-variant-info|mh-variant-mh-info|mh-variant-nmh-info|mh-variant-p|mh-variant-set-variant|mh-variant-set|mh-variants|mh-version|mh-view-mode-enter|mh-visit-folder|mh-widen|mh-window-full-height-p|mh-write-file-functions|mh-write-msg-to-file|mh-xargs|mh-yank-cur-msg|midnight-buffer-display-time|midnight-delay-set|midnight-find|midnight-next|mime-to-mml|minibuf-eldef-setup-minibuffer|minibuf-eldef-update-minibuffer|minibuffer--bitset|minibuffer--double-dollars|minibuffer-avoid-prompt|minibuffer-completion-contents|minibuffer-default--in-prompt-regexps|minibuffer-default-add-completions|minibuffer-default-add-shell-commands|minibuffer-depth-indicate-mode|minibuffer-depth-setup|minibuffer-electric-default-mode|minibuffer-force-complete-and-exit|minibuffer-force-complete|minibuffer-frame-list|minibuffer-hide-completions|minibuffer-history-initialize|minibuffer-history-isearch-end|minibuffer-history-isearch-message|minibuffer-history-isearch-pop-state|minibuffer-history-isearch-push-state|minibuffer-history-isearch-search|minibuffer-history-isearch-setup|minibuffer-history-isearch-wrap|minibuffer-insert-file-name-at-point|minibuffer-keyboard-quit|minibuffer-with-setup-hook|minor-mode-menu-from-indicator|minusp|mismatch|mixal-debug|mixal-describe-operation-code|mixal-mode|mixal-run|mm-add-meta-html-tag|mm-alist-to-plist|mm-annotationp|mm-append-to-file|mm-archive-decoders|mm-archive-dissect-and-inline|mm-assoc-string-match|mm-attachment-override-p|mm-auto-mode-alist|mm-automatic-display-p|mm-automatic-external-display-p|mm-body-7-or-8|mm-body-encoding|mm-char-int|mm-char-or-char-int-p|mm-charset-after|mm-charset-to-coding-system|mm-codepage-setup|mm-coding-system-equal|mm-coding-system-list|mm-coding-system-p|mm-coding-system-to-mime-charset|mm-complicated-handles|mm-content-transfer-encoding|mm-convert-shr-links|mm-copy-to-buffer|mm-create-image-xemacs|mm-decode-body|mm-decode-coding-region|mm-decode-coding-string|mm-decode-content-transfer-encoding|mm-decode-string|mm-decompress-buffer|mm-default-file-encoding|mm-default-multibyte-p|mm-delete-duplicates|mm-destroy-part|mm-destroy-parts|mm-destroy-postponed-undisplay-list|mm-detect-coding-region|mm-detect-mime-charset-region|mm-disable-multibyte|mm-display-external|mm-display-inline|mm-display-part|mm-display-parts|mm-dissect-archive|mm-dissect-buffer|mm-dissect-multipart|mm-dissect-singlepart|mm-enable-multibyte|mm-encode-body|mm-encode-buffer|mm-encode-coding-region|mm-encode-coding-string|mm-encode-content-transfer-encoding|mm-enrich-utf-8-by-mule-ucs|mm-extern-cache-contents|mm-file-name-collapse-whitespace|mm-file-name-delete-control|mm-file-name-delete-gotchas|mm-file-name-delete-whitespace|mm-file-name-replace-whitespace|mm-file-name-trim-whitespace|mm-find-buffer-file-coding-system|mm-find-charset-region|mm-find-mime-charset-region|mm-find-part-by-type|mm-find-raw-part-by-type|mm-get-coding-system-list|mm-get-content-id|mm-get-image|mm-get-part|mm-guess-charset|mm-handle-buffer|mm-handle-cache|mm-handle-description|mm-handle-displayed-p|mm-handle-disposition|mm-handle-encoding|mm-handle-filename|mm-handle-id|mm-handle-media-subtype|mm-handle-media-supertype|mm-handle-media-type|mm-handle-multipart-ctl-parameter|mm-handle-multipart-from|mm-handle-multipart-original-buffer|mm-handle-set-cache|mm-handle-set-external-undisplayer|mm-handle-set-undisplayer|mm-handle-type|mm-handle-undisplayer|mm-image-fit-p|mm-image-load-path|mm-image-type-from-buffer|mm-inlinable-p|mm-inline-external-body|mm-inline-override-p|mm-inline-partial|mm-inlined-p|mm-insert-byte|mm-insert-file-contents|mm-insert-headers|mm-insert-inline|mm-insert-multipart-headers|mm-insert-part|mm-insert-rfc822-headers|mm-interactively-view-part|mm-iso-8859-x-to-15-region|mm-keep-viewer-alive-p|mm-line-number-at-pos|mm-long-lines-p|mm-mailcap-command|mm-make-handle|mm-make-temp-file|mm-merge-handles|mm-mime-charset|mm-mule-charset-to-mime-charset|mm-multibyte-char-to-unibyte|mm-multibyte-p|mm-multibyte-string-p|mm-multiple-handles|mm-pipe-part|mm-possibly-verify-or-decrypt|mm-preferred-alternative-precedence|mm-preferred-alternative|mm-preferred-coding-system|mm-qp-or-base64|mm-read-charset|mm-read-coding-system|mm-readable-p|mm-remove-part|mm-remove-parts|mm-replace-in-string|mm-safer-encoding|mm-save-part-to-file|mm-save-part|mm-set-buffer-file-coding-system|mm-set-buffer-multibyte|mm-set-handle-multipart-parameter|mm-setup-codepage-ibm|mm-setup-codepage-iso-8859|mm-shr|mm-sort-coding-systems-predicate)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:mm-special-display-p|mm-string-as-multibyte|mm-string-as-unibyte|mm-string-make-unibyte|mm-string-to-multibyte|mm-subst-char-in-string|mm-substring-no-properties|mm-temp-files-delete|mm-ucs-to-char|mm-url-decode-entities-nbsp|mm-url-decode-entities-string|mm-url-decode-entities|mm-url-encode-multipart-form-data|mm-url-encode-www-form-urlencoded|mm-url-form-encode-xwfu|mm-url-insert-file-contents-external|mm-url-insert-file-contents|mm-url-insert|mm-url-load-url|mm-url-remove-markup|mm-uu-dissect-text-parts|mm-uu-dissect|mm-valid-and-fit-image-p|mm-valid-image-format-p|mm-view-pkcs7|mm-with-multibyte-buffer|mm-with-part|mm-with-unibyte-buffer|mm-with-unibyte-current-buffer|mm-write-region|mm-xemacs-find-mime-charset-1|mm-xemacs-find-mime-charset|mml-attach-buffer|mml-attach-external|mml-attach-file|mml-buffer-substring-no-properties-except-hard-newlines|mml-compute-boundary-1|mml-compute-boundary|mml-content-disposition|mml-destroy-buffers|mml-dnd-attach-file|mml-expand-html-into-multipart-related|mml-generate-mime-1|mml-generate-mime|mml-generate-new-buffer|mml-insert-buffer|mml-insert-empty-tag|mml-insert-mime-headers|mml-insert-mime|mml-insert-mml-markup|mml-insert-multipart|mml-insert-parameter-string|mml-insert-parameter|mml-insert-part|mml-insert-tag|mml-make-boundary|mml-menu|mml-minibuffer-read-description|mml-minibuffer-read-disposition|mml-minibuffer-read-file|mml-minibuffer-read-type|mml-mode|mml-parameter-string|mml-parse-1|mml-parse-file-name|mml-parse-singlepart-with-multiple-charsets|mml-parse|mml-pgp-encrypt-buffer|mml-pgp-sign-buffer|mml-pgpauto-encrypt-buffer|mml-pgpauto-sign-buffer|mml-pgpmime-encrypt-buffer|mml-pgpmime-sign-buffer|mml-preview-insert-mail-followup-to|mml-preview|mml-quote-region|mml-read-part|mml-read-tag|mml-secure-encrypt-pgp|mml-secure-encrypt-pgpmime|mml-secure-encrypt-smime|mml-secure-encrypt|mml-secure-message-encrypt-pgp|mml-secure-message-encrypt-pgpauto|mml-secure-message-encrypt-pgpmime|mml-secure-message-encrypt-smime|mml-secure-message-encrypt|mml-secure-message-sign-encrypt|mml-secure-message-sign-pgp|mml-secure-message-sign-pgpauto|mml-secure-message-sign-pgpmime|mml-secure-message-sign-smime|mml-secure-message-sign|mml-secure-message|mml-secure-part|mml-secure-sign-pgp|mml-secure-sign-pgpauto|mml-secure-sign-pgpmime|mml-secure-sign-smime|mml-secure-sign|mml-signencrypt-style|mml-smime-encrypt-buffer|mml-smime-encrypt-query|mml-smime-encrypt|mml-smime-sign-buffer|mml-smime-sign-query|mml-smime-sign|mml-smime-verify-test|mml-smime-verify|mml-to-mime|mml-tweak-externalize-attachments|mml-tweak-part|mml-unsecure-message|mml-validate|mml1991-encrypt|mml1991-sign|mml2015-decrypt-test|mml2015-decrypt|mml2015-encrypt|mml2015-self-encrypt|mml2015-sign|mml2015-verify-test|mml2015-verify|mod\\\\*|mode-line-bury-buffer|mode-line-change-eol|mode-line-eol-desc|mode-line-frame-control|mode-line-minor-mode-help|mode-line-modified-help-echo|mode-line-mule-info-help-echo|mode-line-next-buffer|mode-line-other-buffer|mode-line-previous-buffer|mode-line-read-only-help-echo|mode-line-toggle-modified|mode-line-toggle-read-only|mode-line-unbury-buffer|mode-line-widen|mode-local--expand-overrides|mode-local--overload-body|mode-local--override|mode-local-augment-function-help|mode-local-bind|mode-local-describe-bindings-1|mode-local-describe-bindings-2|mode-local-equivalent-mode-p|mode-local-initialized-p|mode-local-map-file-buffers|mode-local-map-mode-buffers|mode-local-on-major-mode-change|mode-local-post-major-mode-change|mode-local-print-binding|mode-local-print-bindings|mode-local-read-function|mode-local-setup-edebug-specs|mode-local-symbol-value|mode-local-symbol|mode-local-use-bindings-p|mode-local-value|mode-specific-command-prefix|modify-coding-system-alist|modify-face|modula-2-mode|morse-region|mouse--down-1-maybe-follows-link|mouse--drag-set-mark-and-point|mouse--strip-first-event|mouse-appearance-menu|mouse-autoselect-window-cancel|mouse-autoselect-window-select|mouse-autoselect-window-start|mouse-avoidance-banish-destination|mouse-avoidance-banish-mouse|mouse-avoidance-banish|mouse-avoidance-delta|mouse-avoidance-exile|mouse-avoidance-fancy|mouse-avoidance-ignore-p|mouse-avoidance-mode|mouse-avoidance-nudge-mouse|mouse-avoidance-point-position|mouse-avoidance-random-shape|mouse-avoidance-set-mouse-position|mouse-avoidance-set-pointer-shape|mouse-avoidance-too-close-p|mouse-buffer-menu-alist|mouse-buffer-menu-keymap|mouse-buffer-menu-map|mouse-buffer-menu-split|mouse-buffer-menu|mouse-choose-completion|mouse-copy-work-around-drag-bug|mouse-delete-other-windows|mouse-delete-window|mouse-drag-drag|mouse-drag-events-are-point-events-p|mouse-drag-header-line|mouse-drag-line|mouse-drag-mode-line|mouse-drag-region|mouse-drag-repeatedly-safe-scroll|mouse-drag-safe-scroll|mouse-drag-scroll-delta|mouse-drag-secondary-moving|mouse-drag-secondary-pasting|mouse-drag-secondary|mouse-drag-should-do-col-scrolling|mouse-drag-throw|mouse-drag-track|mouse-drag-vertical-line|mouse-event-p|mouse-fixup-help-message|mouse-kill-preserving-secondary|mouse-kill-ring-save|mouse-kill-secondary|mouse-kill|mouse-major-mode-menu|mouse-menu-bar-map|mouse-menu-major-mode-map|mouse-menu-non-singleton|mouse-minibuffer-check|mouse-minor-mode-menu|mouse-popup-menubar-stuff|mouse-popup-menubar|mouse-posn-property|mouse-region-match|mouse-save-then-kill-delete-region|mouse-save-then-kill|mouse-scroll-subr|mouse-secondary-save-then-kill|mouse-select-buffer|mouse-select-font|mouse-select-window|mouse-set-font|mouse-set-mark-fast|mouse-set-mark|mouse-set-point|mouse-set-region-1|mouse-set-region|mouse-set-secondary|mouse-skip-word|mouse-split-window-horizontally|mouse-split-window-vertically|mouse-start-end|mouse-start-secondary|mouse-tear-off-window|mouse-undouble-last-event|mouse-wheel-change-button|mouse-wheel-mode|mouse-yank-at-click|mouse-yank-primary|mouse-yank-secondary|move-beginning-of-line|move-end-of-line|move-file-to-trash|move-past-close-and-reindent|move-to-column-untabify|move-to-tab-stop|move-to-window-line-top-bottom|mpc--debug|mpc--faster-stop|mpc--faster-toggle-refresh|mpc--faster-toggle|mpc--faster|mpc--proc-alist-to-alists|mpc--proc-connect|mpc--proc-filter|mpc--proc-quote-string|mpc--songduration|mpc--status-callback|mpc--status-idle-timer-run|mpc--status-idle-timer-start|mpc--status-idle-timer-stop|mpc--status-timer-run|mpc--status-timer-start|mpc--status-timer-stop|mpc--status-timers-refresh|mpc-assq-all|mpc-cmd-add|mpc-cmd-clear|mpc-cmd-delete|mpc-cmd-find|mpc-cmd-flush|mpc-cmd-list|mpc-cmd-move|mpc-cmd-pause|mpc-cmd-play|mpc-cmd-special-tag-p|mpc-cmd-status|mpc-cmd-stop|mpc-cmd-tagtypes|mpc-cmd-update|mpc-compare-strings|mpc-constraints-get-current|mpc-constraints-pop|mpc-constraints-push|mpc-constraints-restore|mpc-constraints-tag-lookup|mpc-current-refresh|mpc-data-directory|mpc-drag-n-drop|mpc-event-set-point|mpc-ffwd|mpc-file-local-copy|mpc-format|mpc-intersection|mpc-mode-menu|mpc-mode|mpc-next|mpc-pause|mpc-play-at-point|mpc-play|mpc-playlist-add|mpc-playlist-create|mpc-playlist-delete|mpc-playlist-destroy|mpc-playlist-rename|mpc-playlist|mpc-prev|mpc-proc-buf-to-alist|mpc-proc-buf-to-alists|mpc-proc-buffer|mpc-proc-check|mpc-proc-cmd-list-ok|mpc-proc-cmd-list|mpc-proc-cmd-to-alist|mpc-proc-cmd|mpc-proc-sync|mpc-proc-tag-string-to-sym|mpc-proc|mpc-quit|mpc-reorder|mpc-resume|mpc-rewind|mpc-ring-make|mpc-ring-pop|mpc-ring-push|mpc-secs-to-time|mpc-select-extend|mpc-select-get-selection|mpc-select-make-overlay|mpc-select-restore|mpc-select-save|mpc-select-toggle|mpc-select|mpc-selection-refresh|mpc-separator|mpc-songpointer-context|mpc-songpointer-refresh-hairy|mpc-songpointer-refresh|mpc-songpointer-score|mpc-songpointer-set|mpc-songs-buf|mpc-songs-hashcons|mpc-songs-jump-to|mpc-songs-kill-search|mpc-songs-mode|mpc-songs-refresh|mpc-songs-search|mpc-songs-selection|mpc-sort|mpc-status-buffer-refresh|mpc-status-buffer-show|mpc-status-mode|mpc-status-refresh|mpc-status-stop|mpc-stop|mpc-string-prefix-p|mpc-tagbrowser-all-p|mpc-tagbrowser-all-select|mpc-tagbrowser-buf|mpc-tagbrowser-dir-mode|mpc-tagbrowser-dir-toggle|mpc-tagbrowser-mode|mpc-tagbrowser-refresh|mpc-tagbrowser-tag-name|mpc-tagbrowser|mpc-tempfiles-add|mpc-tempfiles-clean|mpc-union|mpc-update|mpc-updated-db|mpc-volume-mouse-set|mpc-volume-refresh|mpc-volume-widget|mpc|mpuz-ask-for-try|mpuz-build-random-perm|mpuz-check-all-solved|mpuz-close-game|mpuz-create-buffer|mpuz-digit-solved-p|mpuz-ding|mpuz-get-buffer|mpuz-mode|mpuz-offer-abort|mpuz-paint-board|mpuz-paint-digit|mpuz-paint-errors|mpuz-paint-number|mpuz-paint-statistics|mpuz-put-number-on-board|mpuz-random-puzzle|mpuz-show-solution|mpuz-solve|mpuz-start-new-game|mpuz-switch-to-window|mpuz-to-digit|mpuz-to-letter|mpuz-try-letter|mpuz-try-proposal|mpuz|msb--add-separators|msb--add-to-menu|msb--aggregate-alist|msb--choose-file-menu|msb--choose-menu|msb--collect|msb--create-buffer-menu-2|msb--create-buffer-menu|msb--create-function-info|msb--create-sort-item|msb--dired-directory|msb--format-title|msb--init-file-alist|msb--make-keymap-menu|msb--mode-menu-cond|msb--most-recently-used-menu|msb--split-menus-2|msb--split-menus|msb--strip-dir|msb--toggle-menu-type|msb-alon-item-handler|msb-custom-set|msb-dired-item-handler|msb-invisible-buffer-p|msb-item-handler|msb-menu-bar-update-buffers|msb-mode|msb-sort-by-directory|msb-sort-by-name|msb-unload-function|msb|mspools-get-folder-from-spool|mspools-get-spool-files|mspools-get-spool-name|mspools-help|mspools-mode|mspools-quit|mspools-revert-buffer|mspools-set-vm-spool-files|mspools-show-again|mspools-show|mspools-size-folder|mspools-visit-spool|mule-diag|multi-isearch-buffers-regexp|multi-isearch-buffers|multi-isearch-end|multi-isearch-files-regexp|multi-isearch-files|multi-isearch-next-buffer-from-list|multi-isearch-next-file-buffer-from-list|multi-isearch-pop-state|multi-isearch-push-state|multi-isearch-read-buffers|multi-isearch-read-files|multi-isearch-read-matching-buffers|multi-isearch-read-matching-files|multi-isearch-search-fun|multi-isearch-setup|multi-isearch-wrap|multi-occur-in-matching-buffers|multi-occur|multiple-value-apply|multiple-value-bind|multiple-value-call|multiple-value-list|multiple-value-setq|mwheel-event-button|mwheel-event-window|mwheel-filter-click-events|mwheel-inhibit-click-timeout|mwheel-install|mwheel-scroll|name-last-kbd-macro|narrow-to-defun|nato-region|nested-alist-p|net-utils--revert-function|net-utils-machine-at-point|net-utils-mode|net-utils-remove-ctrl-m-filter|net-utils-run-program|net-utils-run-simple|net-utils-url-at-point|netrc-credentials|netrc-find-service-name|netrc-get|netrc-machine-user-or-password|netrc-machine|netrc-parse-services|netrc-parse|netrc-port-equal|netstat|network-connection-mode-setup|network-connection-mode|network-connection-reconnect|network-connection-to-service|network-connection|network-service-connection|network-stream-certificate|network-stream-command|network-stream-get-response|network-stream-open-plain|network-stream-open-shell|network-stream-open-starttls|network-stream-open-tls|new-fontset|new-frame|new-mode-local-bindings|newline-cache-check|newsticker--age|newsticker--buffer-beginning-of-feed|newsticker--buffer-beginning-of-item|newsticker--buffer-do-insert-text|newsticker--buffer-end-of-feed|newsticker--buffer-end-of-item|newsticker--buffer-get-feed-title-at-point|newsticker--buffer-get-item-title-at-point|newsticker--buffer-goto|newsticker--buffer-hideshow|newsticker--buffer-insert-all-items|newsticker--buffer-insert-item|newsticker--buffer-make-item-completely-visible|newsticker--buffer-redraw|newsticker--buffer-set-faces|newsticker--buffer-set-invisibility|newsticker--buffer-set-uptodate|newsticker--buffer-statistics|newsticker--cache-add|newsticker--cache-contains|newsticker--cache-dir|newsticker--cache-get-feed|newsticker--cache-item-compare-by-position|newsticker--cache-item-compare-by-time|newsticker--cache-item-compare-by-title|newsticker--cache-mark-expired|newsticker--cache-read-feed|newsticker--cache-read-version1|newsticker--cache-read|newsticker--cache-remove|newsticker--cache-replace-age|newsticker--cache-save-feed|newsticker--cache-save-version1|newsticker--cache-save|newsticker--cache-set-preformatted-contents|newsticker--cache-set-preformatted-title|newsticker--cache-sort)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:newsticker--cache-update|newsticker--count-grouped-feeds|newsticker--count-groups|newsticker--debug-msg|newsticker--decode-iso8601-date|newsticker--decode-rfc822-date|newsticker--desc|newsticker--display-jump|newsticker--display-scroll|newsticker--display-tick|newsticker--do-forget-preformatted|newsticker--do-mark-item-at-point-as-read|newsticker--do-print-extra-element|newsticker--do-run-auto-mark-filter|newsticker--do-xml-workarounds|newsticker--echo-area-clean-p|newsticker--enclosure|newsticker--extra|newsticker--forget-preformatted|newsticker--get-group-names|newsticker--get-icon-url-atom-1\\\\.0|newsticker--get-logo-url-atom-0\\\\.3|newsticker--get-logo-url-atom-1\\\\.0|newsticker--get-logo-url-rss-0\\\\.91|newsticker--get-logo-url-rss-0\\\\.92|newsticker--get-logo-url-rss-1\\\\.0|newsticker--get-logo-url-rss-2\\\\.0|newsticker--get-news-by-funcall|newsticker--get-news-by-url-callback|newsticker--get-news-by-url|newsticker--get-news-by-wget|newsticker--group-all-groups|newsticker--group-do-find-group|newsticker--group-do-get-group|newsticker--group-do-rename-group|newsticker--group-find-parent-group|newsticker--group-get-feeds|newsticker--group-get-group|newsticker--group-get-subgroups|newsticker--group-manage-orphan-feeds|newsticker--group-names|newsticker--group-remove-obsolete-feeds|newsticker--group-shift|newsticker--guid-to-string|newsticker--guid|newsticker--icon-read|newsticker--icons-dir|newsticker--image-download-by-url-callback|newsticker--image-download-by-url|newsticker--image-download-by-wget|newsticker--image-get|newsticker--image-read|newsticker--image-remove|newsticker--image-save|newsticker--image-sentinel|newsticker--images-dir|newsticker--imenu-create-index|newsticker--imenu-goto|newsticker--insert-enclosure|newsticker--insert-image|newsticker--link|newsticker--lists-intersect-p|newsticker--opml-import-outlines|newsticker--parse-atom-0\\\\.3|newsticker--parse-atom-1\\\\.0|newsticker--parse-generic-feed|newsticker--parse-generic-items|newsticker--parse-rss-0\\\\.91|newsticker--parse-rss-0\\\\.92|newsticker--parse-rss-1\\\\.0|newsticker--parse-rss-2\\\\.0|newsticker--pos|newsticker--preformatted-contents|newsticker--preformatted-title|newsticker--print-extra-elements|newsticker--process-auto-mark-filter-match|newsticker--real-feed-name|newsticker--remove-whitespace|newsticker--run-auto-mark-filter|newsticker--sentinel-work|newsticker--sentinel|newsticker--set-customvar-buffer|newsticker--set-customvar-formatting|newsticker--set-customvar-retrieval|newsticker--set-customvar-sorting|newsticker--set-customvar-ticker|newsticker--set-face-properties|newsticker--splicer|newsticker--start-feed|newsticker--stat-num-items-for-group|newsticker--stat-num-items-total|newsticker--stat-num-items|newsticker--stop-feed|newsticker--ticker-text-remove|newsticker--ticker-text-setup|newsticker--time|newsticker--title|newsticker--tree-widget-icon-create|newsticker--treeview-activate-node|newsticker--treeview-buffer-init|newsticker--treeview-count-node-items|newsticker--treeview-do-get-node-by-id|newsticker--treeview-do-get-node-of-feed|newsticker--treeview-first-feed|newsticker--treeview-frame-init|newsticker--treeview-get-current-node|newsticker--treeview-get-feed-vfeed|newsticker--treeview-get-first-child|newsticker--treeview-get-id|newsticker--treeview-get-last-child|newsticker--treeview-get-next-sibling|newsticker--treeview-get-next-uncle|newsticker--treeview-get-node-by-id|newsticker--treeview-get-node-of-feed|newsticker--treeview-get-other-tree|newsticker--treeview-get-prev-sibling|newsticker--treeview-get-prev-uncle|newsticker--treeview-get-second-child|newsticker--treeview-get-selected-item|newsticker--treeview-ids-eq|newsticker--treeview-item-buffer|newsticker--treeview-item-show-text|newsticker--treeview-item-show|newsticker--treeview-item-update|newsticker--treeview-item-window|newsticker--treeview-list-add-item|newsticker--treeview-list-all-items|newsticker--treeview-list-buffer|newsticker--treeview-list-clear-highlight|newsticker--treeview-list-clear|newsticker--treeview-list-compare-item-by-age-reverse|newsticker--treeview-list-compare-item-by-age|newsticker--treeview-list-compare-item-by-time-reverse|newsticker--treeview-list-compare-item-by-time|newsticker--treeview-list-compare-item-by-title-reverse|newsticker--treeview-list-compare-item-by-title|newsticker--treeview-list-feed-items|newsticker--treeview-list-highlight-start|newsticker--treeview-list-immortal-items|newsticker--treeview-list-items-v|newsticker--treeview-list-items-with-age-callback|newsticker--treeview-list-items-with-age|newsticker--treeview-list-items|newsticker--treeview-list-new-items|newsticker--treeview-list-obsolete-items|newsticker--treeview-list-select|newsticker--treeview-list-sort-by-column|newsticker--treeview-list-sort-items|newsticker--treeview-list-update-faces|newsticker--treeview-list-update-highlight|newsticker--treeview-list-update|newsticker--treeview-list-window|newsticker--treeview-load|newsticker--treeview-mark-item|newsticker--treeview-nodes-eq|newsticker--treeview-propertize-tag|newsticker--treeview-render-text|newsticker--treeview-restore-layout|newsticker--treeview-set-current-node|newsticker--treeview-tree-buffer|newsticker--treeview-tree-do-update-tags|newsticker--treeview-tree-expand-status|newsticker--treeview-tree-expand|newsticker--treeview-tree-get-tag|newsticker--treeview-tree-open-menu|newsticker--treeview-tree-update-highlight|newsticker--treeview-tree-update-tag|newsticker--treeview-tree-update-tags|newsticker--treeview-tree-update|newsticker--treeview-tree-window|newsticker--treeview-unfold-node|newsticker--treeview-virtual-feed-p|newsticker--treeview-window-init|newsticker--unxml-attribute|newsticker--unxml-node|newsticker--unxml|newsticker--update-process-ids|newsticker-add-url|newsticker-browse-url-item|newsticker-browse-url|newsticker-buffer-force-update|newsticker-buffer-update|newsticker-close-buffer|newsticker-customize|newsticker-download-enclosures|newsticker-download-images|newsticker-get-all-news|newsticker-get-news-at-point|newsticker-get-news|newsticker-group-add-group|newsticker-group-delete-group|newsticker-group-move-feed|newsticker-group-rename-group|newsticker-group-shift-feed-down|newsticker-group-shift-feed-up|newsticker-group-shift-group-down|newsticker-group-shift-group-up|newsticker-handle-url|newsticker-hide-all-desc|newsticker-hide-entry|newsticker-hide-extra|newsticker-hide-feed-desc|newsticker-hide-new-item-desc|newsticker-hide-old-item-desc|newsticker-hide-old-items|newsticker-htmlr-render|newsticker-item-not-immortal-p|newsticker-item-not-old-p|newsticker-mark-all-items-as-read|newsticker-mark-all-items-at-point-as-read-and-redraw|newsticker-mark-all-items-at-point-as-read|newsticker-mark-all-items-of-feed-as-read|newsticker-mark-item-at-point-as-immortal|newsticker-mark-item-at-point-as-read|newsticker-mode|newsticker-mouse-browse-url|newsticker-new-item-functions-sample|newsticker-next-feed-available-p|newsticker-next-feed|newsticker-next-item-available-p|newsticker-next-item-same-feed|newsticker-next-item|newsticker-next-new-item|newsticker-opml-export|newsticker-opml-import|newsticker-plainview|newsticker-previous-feed-available-p|newsticker-previous-feed|newsticker-previous-item-available-p|newsticker-previous-item|newsticker-previous-new-item|newsticker-retrieve-random-message|newsticker-running-p|newsticker-save-item|newsticker-set-auto-narrow-to-feed|newsticker-set-auto-narrow-to-item|newsticker-show-all-desc|newsticker-show-entry|newsticker-show-extra|newsticker-show-feed-desc|newsticker-show-new-item-desc|newsticker-show-news|newsticker-show-old-item-desc|newsticker-show-old-items|newsticker-start-ticker|newsticker-start|newsticker-stop-ticker|newsticker-stop|newsticker-ticker-running-p|newsticker-toggle-auto-narrow-to-feed|newsticker-toggle-auto-narrow-to-item|newsticker-treeview-browse-url-item|newsticker-treeview-browse-url|newsticker-treeview-get-news|newsticker-treeview-item-mode|newsticker-treeview-jump|newsticker-treeview-list-make-sort-button|newsticker-treeview-list-mode|newsticker-treeview-mark-item-old|newsticker-treeview-mark-list-items-old|newsticker-treeview-mode|newsticker-treeview-mouse-browse-url|newsticker-treeview-next-feed|newsticker-treeview-next-item|newsticker-treeview-next-new-or-immortal-item|newsticker-treeview-next-page|newsticker-treeview-prev-feed|newsticker-treeview-prev-item|newsticker-treeview-prev-new-or-immortal-item|newsticker-treeview-quit|newsticker-treeview-save-item|newsticker-treeview-save|newsticker-treeview-scroll-item|newsticker-treeview-show-item|newsticker-treeview-toggle-item-immortal|newsticker-treeview-tree-click|newsticker-treeview-tree-do-click|newsticker-treeview-update|newsticker-treeview|newsticker-w3m-show-inline-images|next-buffer|next-cdabbrev|next-completion|next-error-buffer-p|next-error-find-buffer|next-error-follow-minor-mode|next-error-follow-mode-post-command-hook|next-error-internal|next-error-no-select|next-error|next-file|next-ifdef|next-line-or-history-element|next-line|next-logical-line|next-match|next-method-p|next-multiframe-window|next-page|next-read-file-uses-dialog-p|nintersection|ninth|nndiary-generate-nov-databases|nndoc-add-type|nndraft-request-associate-buffer|nndraft-request-expire-articles|nnfolder-generate-active-file|nnheader-accept-process-output|nnheader-article-p|nnheader-article-to-file-alist|nnheader-be-verbose|nnheader-cancel-function-timers|nnheader-cancel-timer|nnheader-concat|nnheader-directory-articles|nnheader-directory-files-safe|nnheader-directory-files|nnheader-directory-regular-files|nnheader-fake-message-id-p|nnheader-file-error|nnheader-file-size|nnheader-file-to-group|nnheader-file-to-number|nnheader-find-etc-directory|nnheader-find-file-noselect|nnheader-find-nov-line|nnheader-fold-continuation-lines|nnheader-generate-fake-message-id|nnheader-get-lines-and-char|nnheader-get-report-string|nnheader-get-report|nnheader-group-pathname|nnheader-header-value|nnheader-init-server-buffer|nnheader-insert-article-line|nnheader-insert-buffer-substring|nnheader-insert-file-contents|nnheader-insert-head|nnheader-insert-header|nnheader-insert-nov-file|nnheader-insert-nov|nnheader-insert-references|nnheader-insert|nnheader-message-maybe|nnheader-message|nnheader-ms-strip-cr|nnheader-narrow-to-headers|nnheader-nov-delete-outside-range|nnheader-nov-field|nnheader-nov-parse-extra|nnheader-nov-read-integer|nnheader-nov-read-message-id|nnheader-nov-skip-field|nnheader-parse-head|nnheader-parse-naked-head|nnheader-parse-nov|nnheader-parse-overview-file|nnheader-re-read-dir|nnheader-remove-body|nnheader-remove-cr-followed-by-lf|nnheader-replace-chars-in-string|nnheader-replace-duplicate-chars-in-string|nnheader-replace-header|nnheader-replace-regexp|nnheader-replace-string|nnheader-report|nnheader-set-temp-buffer|nnheader-skeleton-replace|nnheader-strip-cr|nnheader-translate-file-chars|nnheader-update-marks-actions|nnheader-write-overview-file|nnmail-article-group|nnmail-message-id|nnmail-split-fancy|nnml-generate-nov-databases|nnvirtual-catchup-group|nnvirtual-convert-headers|nnvirtual-find-group-art|no-applicable-method|no-next-method|nonincremental-re-search-backward|nonincremental-re-search-forward|nonincremental-repeat-search-backward|nonincremental-repeat-search-forward|nonincremental-search-backward|nonincremental-search-forward|normal-about-screen|normal-erase-is-backspace-mode|normal-erase-is-backspace-setup-frame|normal-mouse-startup-screen|normal-no-mouse-startup-screen|normal-splash-screen|normal-top-level-add-subdirs-to-load-path|normal-top-level-add-to-load-path|normal-top-level|notany|notevery|notifications-on-action-signal|notifications-on-closed-signal|nreconc|nroff-backward-text-line|nroff-comment-indent|nroff-count-text-lines|nroff-electric-mode|nroff-electric-newline|nroff-forward-text-line|nroff-insert-comment-function|nroff-mode|nroff-outline-level|nroff-view|nset-difference|nset-exclusive-or|nslookup-host|nslookup-mode|nslookup|nsm-certificate-part|nsm-check-certificate|nsm-check-plain-connection|nsm-check-protocol|nsm-check-tls-connection|nsm-fingerprint-ok-p|nsm-fingerprint|nsm-format-certificate|nsm-host-settings|nsm-id|nsm-level|nsm-new-fingerprint-ok-p|nsm-parse-subject|nsm-query-user|nsm-query|nsm-read-settings|nsm-remove-permanent-setting|nsm-remove-temporary-setting|nsm-save-host|nsm-verify-connection|nsm-warnings-ok-p|nsm-write-settings|nsublis|nsubst-if-not|nsubst-if|nsubst|nsubstitute-if-not)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:nsubstitute-if|nsubstitute|nth-value|ntlm-ascii2unicode|ntlm-build-auth-request|ntlm-build-auth-response|ntlm-get-password-hashes|ntlm-md4hash|ntlm-smb-des-e-p16|ntlm-smb-des-e-p24|ntlm-smb-dohash|ntlm-smb-hash|ntlm-smb-owf-encrypt|ntlm-smb-passwd-hash|ntlm-smb-str-to-key|ntlm-string-lshift|ntlm-string-permute|ntlm-string-xor|ntlm-unicode2ascii|nullify-allout-prefix-data|number-at-point|number-to-register|nunion|nxml-enable-unicode-char-name-sets|nxml-glyph-display-string|nxml-mode|obj-of-class-p|objc-font-lock-keywords-2|objc-font-lock-keywords-3|objc-font-lock-keywords|objc-mode|object-add-to-list|object-assoc-list-safe|object-assoc-list|object-assoc|object-class-fast|object-class-name|object-class|object-name-string|object-name|object-of-class-p|object-p|object-print|object-remove-from-list|object-set-name-string|object-slots|object-write|occur-1|occur-accumulate-lines|occur-after-change-function|occur-cease-edit|occur-context-lines|occur-edit-mode|occur-engine-add-prefix|occur-engine-line|occur-engine|occur-find-match|occur-mode-display-occurrence|occur-mode-find-occurrence|occur-mode-goto-occurrence-other-window|occur-mode-goto-occurrence|occur-mode-mouse-goto|occur-mode|occur-next-error|occur-next|occur-prev|occur-read-primary-args|occur-rename-buffer|occur-revert-function|occur|octave--indent-new-comment-line|octave-add-log-current-defun|octave-beginning-of-defun|octave-beginning-of-line|octave-complete-symbol|octave-completing-read|octave-completion-at-point|octave-eldoc-function-signatures|octave-eldoc-function|octave-end-of-line|octave-eval-print-last-sexp|octave-fill-paragraph|octave-find-definition-default-filename|octave-find-definition|octave-font-lock-texinfo-comment|octave-function-file-comment|octave-function-file-p|octave-goto-function-definition|octave-help-mode|octave-help|octave-hide-process-buffer|octave-in-comment-p|octave-in-string-or-comment-p|octave-in-string-p|octave-indent-comment|octave-indent-defun|octave-indent-new-comment-line|octave-insert-defun|octave-kill-process|octave-lookfor|octave-looking-at-kw|octave-mark-block|octave-maybe-insert-continuation-string|octave-mode-menu|octave-mode|octave-next-code-line|octave-previous-code-line|octave-send-block|octave-send-buffer|octave-send-defun|octave-send-line|octave-send-region|octave-show-process-buffer|octave-skip-comment-forward|octave-smie-backward-token|octave-smie-forward-token|octave-smie-rules|octave-source-directories|octave-source-file|octave-submit-bug-report|octave-sync-function-file-names|octave-syntax-propertize-function|octave-syntax-propertize-sqs|octave-update-function-file-comment|oddp|opascal-block-start|opascal-char-token-at|opascal-charset-token-at|opascal-column-of|opascal-comment-block-end|opascal-comment-block-start|opascal-comment-content-start|opascal-comment-indent-of|opascal-composite-type-start|opascal-corrected-indentation|opascal-current-token|opascal-debug-goto-next-token|opascal-debug-goto-point|opascal-debug-goto-previous-token|opascal-debug-log|opascal-debug-show-current-string|opascal-debug-show-current-token|opascal-debug-token-string|opascal-debug-tokenize-buffer|opascal-debug-tokenize-region|opascal-debug-tokenize-window|opascal-else-start|opascal-enclosing-indent-of|opascal-ensure-buffer|opascal-explicit-token-at|opascal-fill-comment|opascal-find-current-body|opascal-find-current-def|opascal-find-current-xdef|opascal-find-unit-file|opascal-find-unit-in-directory|opascal-find-unit|opascal-group-end|opascal-group-start|opascal-in-token|opascal-indent-line|opascal-indent-of|opascal-is-block-after-expr-statement|opascal-is-directory|opascal-is-file|opascal-is-literal-end|opascal-is-simple-class-type|opascal-is-use-clause-end|opascal-is|opascal-line-indent-of|opascal-literal-end-pattern|opascal-literal-kind|opascal-literal-start-pattern|opascal-literal-stop-pattern|opascal-literal-token-at|opascal-log-msg|opascal-looking-at-string|opascal-match-token|opascal-mode|opascal-new-comment-line|opascal-next-line-start|opascal-next-token|opascal-next-visible-token|opascal-on-first-comment-line|opascal-open-group-indent|opascal-point-token-at|opascal-previous-indent-of|opascal-previous-token|opascal-progress-done|opascal-progress-start|opascal-save-excursion|opascal-search-directory|opascal-section-indent-of|opascal-set-token-end|opascal-set-token-kind|opascal-set-token-start|opascal-space-token-at|opascal-step-progress|opascal-stmt-line-indent-of|opascal-string-of|opascal-tab|opascal-token-at|opascal-token-end|opascal-token-kind|opascal-token-of|opascal-token-start|opascal-token-string|opascal-word-token-at|open-font|open-gnutls-stream|open-line|open-protocol-stream|open-rectangle-line|open-rectangle|open-tls-stream|operate-on-rectangle|optimize-char-table|oref-default|oref|org-2ft|org-N-empty-lines-before-current|org-activate-angle-links|org-activate-bracket-links|org-activate-code|org-activate-dates|org-activate-footnote-links|org-activate-mark|org-activate-plain-links|org-activate-tags|org-activate-target-links|org-adaptive-fill-function|org-add-angle-brackets|org-add-archive-files|org-add-hook|org-add-link-props|org-add-link-type|org-add-log-note|org-add-log-setup|org-add-note|org-add-planning-info|org-add-prop-inherited|org-add-props|org-advertized-archive-subtree|org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item|org-agenda-columns|org-agenda-file-p|org-agenda-file-to-front|org-agenda-files|org-agenda-list-stuck-projects|org-agenda-list|org-agenda-prepare-buffers|org-agenda-set-restriction-lock|org-agenda-to-appt|org-agenda|org-align-all-tags|org-align-tags-here|org-all-targets|org-apply-on-list|org-apps-regexp-alist|org-archive-subtree-default-with-confirmation|org-archive-subtree-default|org-archive-subtree|org-archive-to-archive-sibling|org-ascii-export-as-ascii|org-ascii-export-to-ascii|org-ascii-publish-to-ascii|org-ascii-publish-to-latin1|org-ascii-publish-to-utf8|org-assign-fast-keys|org-at-TBLFM-p|org-at-block-p|org-at-clock-log-p|org-at-comment-p|org-at-date-range-p|org-at-drawer-p|org-at-heading-or-item-p|org-at-heading-p|org-at-item-bullet-p|org-at-item-checkbox-p|org-at-item-counter-p|org-at-item-description-p|org-at-item-p|org-at-item-timer-p|org-at-property-p|org-at-regexp-p|org-at-table-hline-p|org-at-table-p|org-at-table\\\\.el-p|org-at-target-p|org-at-timestamp-p|org-attach|org-auto-fill-function|org-auto-repeat-maybe|org-babel--shell-command-on-region|org-babel-active-location-p|org-babel-balanced-split|org-babel-check-confirm-evaluate|org-babel-check-evaluate|org-babel-check-src-block|org-babel-chomp|org-babel-combine-header-arg-lists|org-babel-comint-buffer-livep|org-babel-comint-eval-invisibly-and-wait-for-file|org-babel-comint-in-buffer|org-babel-comint-input-command|org-babel-comint-wait-for-output|org-babel-comint-with-output|org-babel-confirm-evaluate|org-babel-current-result-hash|org-babel-del-hlines|org-babel-demarcate-block|org-babel-describe-bindings|org-babel-detangle|org-babel-disassemble-tables|org-babel-do-in-edit-buffer|org-babel-do-key-sequence-in-edit-buffer|org-babel-do-load-languages|org-babel-edit-distance|org-babel-enter-header-arg-w-completion|org-babel-eval-error-notify|org-babel-eval-read-file|org-babel-eval-wipe-error-buffer|org-babel-eval|org-babel-examplize-region|org-babel-execute-buffer|org-babel-execute-maybe|org-babel-execute-safely-maybe|org-babel-execute-src-block-maybe|org-babel-execute-src-block|org-babel-execute-subtree|org-babel-execute:emacs-lisp|org-babel-exp-code|org-babel-exp-do-export|org-babel-exp-get-export-buffer|org-babel-exp-in-export-file|org-babel-exp-process-buffer|org-babel-exp-results|org-babel-exp-src-block|org-babel-expand-body:emacs-lisp|org-babel-expand-body:generic|org-babel-expand-noweb-references|org-babel-expand-src-block-maybe|org-babel-expand-src-block|org-babel-find-file-noselect-refresh|org-babel-find-named-block|org-babel-find-named-result|org-babel-format-result|org-babel-get-colnames|org-babel-get-header|org-babel-get-inline-src-block-matches|org-babel-get-lob-one-liner-matches|org-babel-get-rownames|org-babel-get-src-block-info|org-babel-goto-named-result|org-babel-goto-named-src-block|org-babel-goto-src-block-head|org-babel-hash-at-point|org-babel-header-arg-expand|org-babel-hide-all-hashes|org-babel-hide-hash|org-babel-hide-result-toggle-maybe|org-babel-hide-result-toggle|org-babel-import-elisp-from-file|org-babel-in-example-or-verbatim|org-babel-initiate-session|org-babel-insert-header-arg|org-babel-insert-result|org-babel-join-splits-near-ch|org-babel-load-file|org-babel-load-in-session-maybe|org-babel-load-in-session|org-babel-lob-execute-maybe|org-babel-lob-execute|org-babel-lob-get-info|org-babel-lob-ingest|org-babel-local-file-name|org-babel-map-call-lines|org-babel-map-executables|org-babel-map-inline-src-blocks|org-babel-map-src-blocks|org-babel-mark-block|org-babel-merge-params|org-babel-named-data-regexp-for-name|org-babel-named-src-block-regexp-for-name|org-babel-next-src-block|org-babel-noweb-p|org-babel-noweb-wrap|org-babel-number-p|org-babel-open-src-block-result|org-babel-params-from-properties|org-babel-parse-header-arguments|org-babel-parse-inline-src-block-match|org-babel-parse-multiple-vars|org-babel-parse-src-block-match|org-babel-pick-name|org-babel-pop-to-session-maybe|org-babel-pop-to-session|org-babel-previous-src-block|org-babel-process-file-name|org-babel-process-params|org-babel-put-colnames|org-babel-put-rownames|org-babel-read-link|org-babel-read-list|org-babel-read-result|org-babel-read-table|org-babel-read|org-babel-reassemble-table|org-babel-ref-at-ref-p|org-babel-ref-goto-headline-id|org-babel-ref-headline-body|org-babel-ref-index-list|org-babel-ref-parse|org-babel-ref-resolve|org-babel-ref-split-args|org-babel-remove-result|org-babel-remove-temporary-directory|org-babel-result-cond|org-babel-result-end|org-babel-result-hide-all|org-babel-result-hide-spec|org-babel-result-names|org-babel-result-to-file|org-babel-script-escape|org-babel-set-current-result-hash|org-babel-sha1-hash|org-babel-show-result-all|org-babel-spec-to-string|org-babel-speed-command-activate|org-babel-speed-command-hook|org-babel-src-block-names|org-babel-string-read|org-babel-switch-to-session-with-code|org-babel-switch-to-session|org-babel-table-truncate-at-newline|org-babel-tangle-clean|org-babel-tangle-collect-blocks|org-babel-tangle-comment-links|org-babel-tangle-file|org-babel-tangle-jump-to-org|org-babel-tangle-publish|org-babel-tangle-single-block|org-babel-tangle|org-babel-temp-file|org-babel-tramp-handle-call-process-region|org-babel-trim|org-babel-update-block-body|org-babel-view-src-block-info|org-babel-when-in-src-block|org-babel-where-is-src-block-head|org-babel-where-is-src-block-result|org-babel-with-temp-filebuffer|org-back-over-empty-lines|org-back-to-heading|org-backward-element|org-backward-heading-same-level|org-backward-paragraph|org-backward-sentence|org-base-buffer|org-batch-agenda-csv|org-batch-agenda|org-batch-store-agenda-views|org-bbdb-anniversaries|org-beamer-export-as-latex|org-beamer-export-to-latex|org-beamer-export-to-pdf|org-beamer-insert-options-template|org-beamer-mode|org-beamer-publish-to-latex|org-beamer-publish-to-pdf|org-beamer-select-environment|org-before-change-function|org-before-first-heading-p|org-beginning-of-dblock|org-beginning-of-item-list|org-beginning-of-item|org-beginning-of-line|org-between-regexps-p|org-block-map|org-block-todo-from-checkboxes|org-block-todo-from-children-or-siblings-or-parent|org-bookmark-jump-unhide|org-bound-and-true-p|org-buffer-list|org-buffer-narrowed-p|org-buffer-property-keys|org-cached-entry-get|org-calendar-goto-agenda|org-calendar-holiday|org-calendar-select-mouse|org-calendar-select|org-call-for-shift-select|org-call-with-arg|org-called-interactively-p|org-capture-import-remember-templates|org-capture-string|org-capture|org-cdlatex-math-modify|org-cdlatex-mode|org-cdlatex-underscore-caret|org-change-tag-in-region|org-char-to-string|org-check-after-date|org-check-agenda-file|org-check-and-save-marker|org-check-before-date|org-check-before-invisible-edit|org-check-dates-range|org-check-deadlines|org-check-external-command|org-check-for-hidden|org-check-running-clock|org-check-version|org-clean-visibility-after-subtree-move|org-clock-cancel|org-clock-display|org-clock-get-clocktable|org-clock-goto|org-clock-in-last|org-clock-in|org-clock-is-active|org-clock-out|org-clock-persistence-insinuate|org-clock-remove-overlays|org-clock-report|org-clock-sum|org-clock-update-time-maybe|org-clocktable-shift|org-clocktable-try-shift|org-clone-local-variables)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:org-clone-subtree-with-time-shift|org-closest-date|org-columns-compute|org-columns-get-format-and-top-level|org-columns-number-to-string|org-columns-remove-overlays|org-columns|org-combine-plists|org-command-at-point|org-comment-line-break-function|org-comment-or-uncomment-region|org-compatible-face|org-complete-expand-structure-template|org-completing-read-no-i|org-completing-read|org-compute-latex-and-related-regexp|org-compute-property-at-point|org-content|org-context-p|org-context|org-contextualize-keys|org-contextualize-validate-key|org-convert-to-odd-levels|org-convert-to-oddeven-levels|org-copy-face|org-copy-special|org-copy-subtree|org-copy-visible|org-copy|org-count-lines|org-count|org-create-customize-menu|org-create-dblock|org-create-formula--latex-header|org-create-formula-image-with-dvipng|org-create-formula-image-with-imagemagick|org-create-formula-image|org-create-math-formula|org-create-multibrace-regexp|org-ctrl-c-ctrl-c|org-ctrl-c-minus|org-ctrl-c-ret|org-ctrl-c-star|org-current-effective-time|org-current-level|org-current-line-string|org-current-line|org-current-time|org-cursor-to-region-beginning|org-customize|org-cut-special|org-cut-subtree|org-cycle-agenda-files|org-cycle-hide-archived-subtrees|org-cycle-hide-drawers|org-cycle-hide-inline-tasks|org-cycle-internal-global|org-cycle-internal-local|org-cycle-item-indentation|org-cycle-level|org-cycle-list-bullet|org-cycle-show-empty-lines|org-cycle|org-date-from-calendar|org-date-to-gregorian|org-datetree-find-date-create|org-days-to-iso-week|org-days-to-time|org-dblock-update|org-dblock-write:clocktable|org-dblock-write:columnview|org-deadline-close|org-deadline|org-decompose-region|org-default-apps|org-defkey|org-defvaralias|org-delete-all|org-delete-backward-char|org-delete-char|org-delete-directory|org-delete-property-globally|org-delete-property|org-demote-subtree|org-demote|org-detach-overlay|org-diary-sexp-entry|org-diary-to-ical-string|org-diary|org-display-custom-time|org-display-inline-images|org-display-inline-modification-hook|org-display-inline-remove-overlay|org-display-outline-path|org-display-warning|org-do-demote|org-do-emphasis-faces|org-do-latex-and-related|org-do-occur|org-do-promote|org-do-remove-indentation|org-do-sort|org-do-wrap|org-down-element|org-drag-element-backward|org-drag-element-forward|org-drag-line-backward|org-drag-line-forward|org-duration-string-to-minutes|org-dvipng-color-format|org-dvipng-color|org-edit-agenda-file-list|org-edit-fixed-width-region|org-edit-special|org-edit-src-abort|org-edit-src-code|org-edit-src-continue|org-edit-src-exit|org-edit-src-find-buffer|org-edit-src-find-region-and-lang|org-edit-src-get-indentation|org-edit-src-get-label-format|org-edit-src-get-lang|org-edit-src-save|org-element-at-point|org-element-context|org-element-interpret-data|org-email-link-description|org-emphasize|org-end-of-item-list|org-end-of-item|org-end-of-line|org-end-of-meta-data-and-drawers|org-end-of-subtree|org-entities-create-table|org-entities-help|org-entity-get-representation|org-entity-get|org-entity-latex-math-p|org-entry-add-to-multivalued-property|org-entry-beginning-position|org-entry-blocked-p|org-entry-delete|org-entry-end-position|org-entry-get-multivalued-property|org-entry-get-with-inheritance|org-entry-get|org-entry-is-done-p|org-entry-is-todo-p|org-entry-member-in-multivalued-property|org-entry-properties|org-entry-protect-space|org-entry-put-multivalued-property|org-entry-put|org-entry-remove-from-multivalued-property|org-entry-restore-space|org-escape-code-in-region|org-escape-code-in-string|org-eval-in-calendar|org-eval-in-environment|org-eval|org-evaluate-time-range|org-every|org-export-as|org-export-dispatch|org-export-insert-default-template|org-export-replace-region-by|org-export-string-as|org-export-to-buffer|org-export-to-file|org-extract-attributes|org-extract-log-state-settings|org-face-from-face-or-color|org-fast-tag-insert|org-fast-tag-selection|org-fast-tag-show-exit|org-fast-todo-selection|org-feed-goto-inbox|org-feed-show-raw-feed|org-feed-update-all|org-feed-update|org-file-apps-entry-match-against-dlink-p|org-file-complete-link|org-file-contents|org-file-equal-p|org-file-image-p|org-file-menu-entry|org-file-remote-p|org-files-list|org-fill-line-break-nobreak-p|org-fill-paragraph-with-timestamp-nobreak-p|org-fill-paragraph|org-fill-template|org-find-base-buffer-visiting|org-find-dblock|org-find-entry-with-id|org-find-exact-heading-in-directory|org-find-exact-headline-in-buffer|org-find-file-at-mouse|org-find-if|org-find-invisible-foreground|org-find-invisible|org-find-library-dir|org-find-olp|org-find-overlays|org-find-text-property-in-string|org-find-visible|org-first-headline-recenter|org-first-sibling-p|org-fit-window-to-buffer|org-fix-decoded-time|org-fix-indentation|org-fix-position-after-promote|org-fix-tags-on-the-fly|org-fixup-indentation|org-fixup-message-id-for-http|org-flag-drawer|org-flag-heading|org-flag-subtree|org-float-time|org-floor\\\\*|org-follow-timestamp-link|org-font-lock-add-priority-faces|org-font-lock-add-tag-faces|org-font-lock-ensure|org-font-lock-hook|org-fontify-entities|org-fontify-like-in-org-mode|org-fontify-meta-lines-and-blocks-1|org-fontify-meta-lines-and-blocks|org-footnote-action|org-footnote-all-labels|org-footnote-at-definition-p|org-footnote-at-reference-p|org-footnote-auto-adjust-maybe|org-footnote-create-definition|org-footnote-delete-definitions|org-footnote-delete-references|org-footnote-delete|org-footnote-get-definition|org-footnote-get-next-reference|org-footnote-goto-definition|org-footnote-goto-local-insertion-point|org-footnote-goto-previous-reference|org-footnote-in-valid-context-p|org-footnote-new|org-footnote-next-reference-or-definition|org-footnote-normalize-label|org-footnote-normalize|org-footnote-renumber-fn:N|org-footnote-unique-label|org-force-cycle-archived|org-force-self-insert|org-format-latex-as-mathml|org-format-latex-mathml-available-p|org-format-latex|org-format-outline-path|org-format-seconds|org-forward-element|org-forward-heading-same-level|org-forward-paragraph|org-forward-sentence|org-get-agenda-file-buffer|org-get-alist-option|org-get-at-bol|org-get-buffer-for-internal-link|org-get-buffer-tags|org-get-category|org-get-checkbox-statistics-face|org-get-compact-tod|org-get-cursor-date|org-get-date-from-calendar|org-get-deadline-time|org-get-entry|org-get-export-keywords|org-get-heading|org-get-indentation|org-get-indirect-buffer|org-get-last-sibling|org-get-level-face|org-get-limited-outline-regexp|org-get-local-tags-at|org-get-local-tags|org-get-local-variables|org-get-location|org-get-next-sibling|org-get-org-file|org-get-outline-path|org-get-packages-alist|org-get-previous-line-level|org-get-priority|org-get-property-block|org-get-repeat|org-get-scheduled-time|org-get-string-indentation|org-get-tag-face|org-get-tags-at|org-get-tags-string|org-get-tags|org-get-todo-face|org-get-todo-sequence-head|org-get-todo-state|org-get-valid-level|org-get-wdays|org-get-x-clipboard-compat|org-get-x-clipboard|org-git-version|org-global-cycle|org-global-tags-completion-table|org-goto-calendar|org-goto-first-child|org-goto-left|org-goto-line|org-goto-local-auto-isearch|org-goto-local-search-headings|org-goto-map|org-goto-marker-or-bmk|org-goto-quit|org-goto-ret|org-goto-right|org-goto-sibling|org-goto|org-heading-components|org-hh:mm-string-to-minutes|org-hidden-tree-error|org-hide-archived-subtrees|org-hide-block-all|org-hide-block-toggle-all|org-hide-block-toggle-maybe|org-hide-block-toggle|org-hide-wide-columns|org-highlight-new-match|org-hours-to-clocksum-string|org-html-convert-region-to-html|org-html-export-as-html|org-html-export-to-html|org-html-htmlize-generate-css|org-html-publish-to-html|org-icalendar-combine-agenda-files|org-icalendar-export-agenda-files|org-icalendar-export-to-ics|org-icompleting-read|org-id-copy|org-id-find-id-file|org-id-find|org-id-get-create|org-id-get-with-outline-drilling|org-id-get-with-outline-path-completion|org-id-get|org-id-goto|org-id-new|org-id-store-link|org-id-update-id-locations|org-ido-switchb|org-image-file-name-regexp|org-imenu-get-tree|org-imenu-new-marker|org-in-block-p|org-in-clocktable-p|org-in-commented-line|org-in-drawer-p|org-in-fixed-width-region-p|org-in-indented-comment-line|org-in-invisibility-spec-p|org-in-item-p|org-in-regexp|org-in-src-block-p|org-in-subtree-not-table-p|org-in-verbatim-emphasis|org-inc-effort|org-indent-block|org-indent-drawer|org-indent-item-tree|org-indent-item|org-indent-line-to|org-indent-line|org-indent-mode|org-indent-region|org-indent-to-column|org-info|org-inhibit-invisibility|org-insert-all-links|org-insert-columns-dblock|org-insert-comment|org-insert-drawer|org-insert-heading-after-current|org-insert-heading-respect-content|org-insert-heading|org-insert-item|org-insert-link-global|org-insert-link|org-insert-property-drawer|org-insert-subheading|org-insert-time-stamp|org-insert-todo-heading-respect-content|org-insert-todo-heading|org-insert-todo-subheading|org-inside-LaTeX-fragment-p|org-inside-latex-macro-p|org-install-agenda-files-menu|org-invisible-p2|org-irc-store-link|org-iread-file-name|org-isearch-end|org-isearch-post-command|org-iswitchb-completing-read|org-iswitchb|org-item-beginning-re|org-item-re|org-key|org-kill-is-subtree-p|org-kill-line|org-kill-new|org-kill-note-or-show-branches|org-last|org-latex-color-format|org-latex-color|org-latex-convert-region-to-latex|org-latex-export-as-latex|org-latex-export-to-latex|org-latex-export-to-pdf|org-latex-packages-to-string|org-latex-publish-to-latex|org-latex-publish-to-pdf|org-let|org-let2|org-level-increment|org-link-display-format|org-link-escape|org-link-expand-abbrev|org-link-fontify-links-to-this-file|org-link-prettify|org-link-search|org-link-try-special-completion|org-link-unescape-compound|org-link-unescape-single-byte-sequence|org-link-unescape|org-list-at-regexp-after-bullet-p|org-list-bullet-string|org-list-context|org-list-delete-item|org-list-get-all-items|org-list-get-bottom-point|org-list-get-bullet|org-list-get-checkbox|org-list-get-children|org-list-get-counter|org-list-get-first-item|org-list-get-ind|org-list-get-item-begin|org-list-get-item-end-before-blank|org-list-get-item-end|org-list-get-item-number|org-list-get-last-item|org-list-get-list-begin|org-list-get-list-end|org-list-get-list-type|org-list-get-next-item|org-list-get-nth|org-list-get-parent|org-list-get-prev-item|org-list-get-subtree|org-list-get-tag|org-list-get-top-point|org-list-has-child-p|org-list-in-valid-context-p|org-list-inc-bullet-maybe|org-list-indent-item-generic|org-list-insert-item|org-list-insert-radio-list|org-list-item-body-column|org-list-item-trim-br|org-list-make-subtree|org-list-parents-alist|org-list-prevs-alist|org-list-repair|org-list-search-backward|org-list-search-forward|org-list-search-generic|org-list-send-item|org-list-send-list|org-list-separating-blank-lines-number|org-list-set-bullet|org-list-set-checkbox|org-list-set-ind|org-list-set-item-visibility|org-list-set-nth|org-list-struct-apply-struct|org-list-struct-assoc-end|org-list-struct-fix-box|org-list-struct-fix-bul|org-list-struct-fix-ind|org-list-struct-fix-item-end|org-list-struct-indent|org-list-struct-outdent|org-list-swap-items|org-list-to-generic|org-list-to-html|org-list-to-latex|org-list-to-subtree|org-list-to-texinfo|org-list-use-alpha-bul-p|org-list-write-struct|org-load-modules-maybe|org-load-noerror-mustsuffix|org-local-logging|org-log-into-drawer|org-looking-at-p|org-looking-back|org-macro--collect-macros|org-macro-expand|org-macro-initialize-templates|org-macro-replace-all|org-make-link-regexps|org-make-link-string|org-make-options-regexp|org-make-org-heading-search-string|org-make-parameter-alist|org-make-tags-matcher|org-make-target-link-regexp|org-make-tdiff-string|org-map-dblocks|org-map-entries|org-map-region|org-map-tree|org-mark-element|org-mark-ring-goto|org-mark-ring-push|org-mark-subtree|org-match-any-p|org-match-line|org-match-sparse-tree|org-match-string-no-properties|org-matcher-time|org-maybe-intangible|org-md-convert-region-to-md|org-md-export-as-markdown|org-md-export-to-markdown|org-meta-return|org-metadown|org-metaleft|org-metaright|org-metaup|org-minutes-to-clocksum-string|org-minutes-to-hh:mm-string|org-mobile-pull|org-mobile-push|org-mode-flyspell-verify|org-mode-restart|org-mode|org-modifier-cursor-error)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:org-modify-ts-extra|org-move-item-down|org-move-item-up|org-move-subtree-down|org-move-subtree-up|org-move-to-column|org-narrow-to-block|org-narrow-to-element|org-narrow-to-subtree|org-next-block|org-next-item|org-next-link|org-no-popups|org-no-properties|org-no-read-only|org-no-warnings|org-normalize-color|org-not-nil|org-notes-order-reversed-p|org-number-sequence|org-occur-in-agenda-files|org-occur-link-in-agenda-files|org-occur-next-match|org-occur|org-odt-convert|org-odt-export-as-odf-and-open|org-odt-export-as-odf|org-odt-export-to-odt|org-offer-links-in-entry|org-olpath-completing-read|org-on-heading-p|org-on-target-p|org-op-to-function|org-open-at-mouse|org-open-at-point-global|org-open-at-point|org-open-file-with-emacs|org-open-file-with-system|org-open-file|org-open-line|org-open-link-from-string|org-optimize-window-after-visibility-change|org-order-calendar-date-args|org-org-export-as-org|org-org-export-to-org|org-org-menu|org-org-publish-to-org|org-outdent-item-tree|org-outdent-item|org-outline-level|org-outline-overlay-data|org-overlay-before-string|org-overlay-display|org-overview|org-parse-arguments|org-parse-time-string|org-paste-special|org-paste-subtree|org-pcomplete-case-double|org-pcomplete-initial|org-plist-delete|org-plot\\\\/gnuplot|org-point-at-end-of-empty-headline|org-point-in-group|org-pop-to-buffer-same-window|org-pos-in-match-range|org-prepare-dblock|org-preserve-lc|org-preview-latex-fragment|org-previous-block|org-previous-item|org-previous-line-empty-p|org-previous-link|org-print-speed-command|org-priority-down|org-priority-up|org-priority|org-promote-subtree|org-promote|org-propertize|org-property-action|org-property-get-allowed-values|org-property-inherit-p|org-property-next-allowed-value|org-property-or-variable-value|org-property-previous-allowed-value|org-property-values|org-protect-slash|org-publish-all|org-publish-current-file|org-publish-current-project|org-publish-project|org-publish|org-quote-csv-field|org-quote-vert|org-raise-scripts|org-re-property|org-re-timestamp|org-re|org-read-agenda-file-list|org-read-date-analyze|org-read-date-display|org-read-date-get-relative|org-read-date|org-read-property-name|org-read-property-value|org-rear-nonsticky-at|org-recenter-calendar|org-redisplay-inline-images|org-reduce|org-reduced-level|org-refile--get-location|org-refile-cache-check-set|org-refile-cache-clear|org-refile-cache-get|org-refile-cache-put|org-refile-check-position|org-refile-get-location|org-refile-get-targets|org-refile-goto-last-stored|org-refile-marker|org-refile-new-child|org-refile|org-refresh-category-properties|org-refresh-properties|org-reftex-citation|org-region-active-p|org-reinstall-markers-in-region|org-release-buffers|org-release|org-reload|org-remap|org-remove-angle-brackets|org-remove-double-quotes|org-remove-empty-drawer-at|org-remove-empty-overlays-at|org-remove-file|org-remove-flyspell-overlays-in|org-remove-font-lock-display-properties|org-remove-from-invisibility-spec|org-remove-if-not|org-remove-if|org-remove-indentation|org-remove-inline-images|org-remove-keyword-keys|org-remove-latex-fragment-image-overlays|org-remove-occur-highlights|org-remove-tabs|org-remove-timestamp-with-keyword|org-remove-uninherited-tags|org-replace-escapes|org-replace-match-keep-properties|org-require-autoloaded-modules|org-reset-checkbox-state-subtree|org-resolve-clocks|org-restart-font-lock|org-return-indent|org-return|org-reveal|org-reverse-string|org-revert-all-org-buffers|org-run-like-in-org-mode|org-save-all-org-buffers|org-save-markers-in-region|org-save-outline-visibility|org-sbe|org-scan-tags|org-schedule|org-search-not-self|org-search-view|org-select-frame-set-input-focus|org-self-insert-command|org-set-current-tags-overlay|org-set-effort|org-set-emph-re|org-set-font-lock-defaults|org-set-frame-title|org-set-local|org-set-modules|org-set-outline-overlay-data|org-set-packages-alist|org-set-property-and-value|org-set-property-function|org-set-property|org-set-regexps-and-options-for-tags|org-set-regexps-and-options|org-set-startup-visibility|org-set-tag-faces|org-set-tags-command|org-set-tags-to|org-set-tags|org-set-transient-map|org-set-visibility-according-to-property|org-setup-comments-handling|org-setup-filling|org-shiftcontroldown|org-shiftcontrolleft|org-shiftcontrolright|org-shiftcontrolup|org-shiftdown|org-shiftleft|org-shiftmetadown|org-shiftmetaleft|org-shiftmetaright|org-shiftmetaup|org-shiftright|org-shiftselect-error|org-shifttab|org-shiftup|org-shorten-string|org-show-block-all|org-show-context|org-show-empty-lines-in-parent|org-show-entry|org-show-hidden-entry|org-show-priority|org-show-siblings|org-show-subtree|org-show-todo-tree|org-skip-over-state-notes|org-skip-whitespace|org-small-year-to-year|org-some|org-sort-entries|org-sort-list|org-sort-remove-invisible|org-sort|org-sparse-tree|org-speed-command-activate|org-speed-command-default-hook|org-speed-command-help|org-speed-move-safe|org-speedbar-set-agenda-restriction|org-splice-latex-header|org-split-string|org-src-associate-babel-session|org-src-babel-configure-edit-buffer|org-src-construct-edit-buffer-name|org-src-do-at-code-block|org-src-do-key-sequence-at-code-block|org-src-edit-buffer-p|org-src-font-lock-fontify-block|org-src-fontify-block|org-src-fontify-buffer|org-src-get-lang-mode|org-src-in-org-buffer|org-src-mode-configure-edit-buffer|org-src-mode|org-src-native-tab-command-maybe|org-src-switch-to-buffer|org-src-tangle|org-store-agenda-views|org-store-link-props|org-store-link|org-store-log-note|org-store-new-agenda-file-list|org-string-match-p|org-string-nw-p|org-string-width|org-string<=|org-string<>|org-string>|org-string>=|org-sublist|org-submit-bug-report|org-substitute-posix-classes|org-subtree-end-visible-p|org-switch-to-buffer-other-window|org-switchb|org-table-align|org-table-begin|org-table-blank-field|org-table-convert-region|org-table-convert|org-table-copy-down|org-table-copy-region|org-table-create-or-convert-from-region|org-table-create-with-table\\\\.el|org-table-create|org-table-current-dline|org-table-cut-region|org-table-delete-column|org-table-edit-field|org-table-edit-formulas|org-table-end|org-table-eval-formula|org-table-export|org-table-field-info|org-table-get-stored-formulas|org-table-goto-column|org-table-hline-and-move|org-table-import|org-table-insert-column|org-table-insert-hline|org-table-insert-row|org-table-iterate-buffer-tables|org-table-iterate|org-table-justify-field-maybe|org-table-kill-row|org-table-map-tables|org-table-maybe-eval-formula|org-table-maybe-recalculate-line|org-table-move-column-left|org-table-move-column-right|org-table-move-column|org-table-move-row-down|org-table-move-row-up|org-table-move-row|org-table-next-field|org-table-next-row|org-table-p|org-table-paste-rectangle|org-table-previous-field|org-table-recalculate-buffer-tables|org-table-recalculate|org-table-recognize-table\\\\.el|org-table-rotate-recalc-marks|org-table-set-constants|org-table-sort-lines|org-table-sum|org-table-to-lisp|org-table-toggle-coordinate-overlays|org-table-toggle-formula-debugger|org-table-wrap-region|org-tag-inherit-p|org-tags-completion-function|org-tags-expand|org-tags-sparse-tree|org-tags-view|org-tbl-menu|org-texinfo-convert-region-to-texinfo|org-texinfo-publish-to-texinfo|org-thing-at-point|org-time-from-absolute|org-time-stamp-format|org-time-stamp-inactive|org-time-stamp-to-now|org-time-stamp|org-time-string-to-absolute|org-time-string-to-seconds|org-time-string-to-time|org-time-today|org-time<|org-time<=|org-time<>|org-time=|org-time>|org-time>=|org-timer-change-times-in-region|org-timer-item|org-timer-set-timer|org-timer-start|org-timer|org-timestamp-change|org-timestamp-down-day|org-timestamp-down|org-timestamp-format|org-timestamp-has-time-p|org-timestamp-split-range|org-timestamp-translate|org-timestamp-up-day|org-timestamp-up|org-today|org-todo-list|org-todo-trigger-tag-changes|org-todo-yesterday|org-todo|org-toggle-archive-tag|org-toggle-checkbox|org-toggle-comment|org-toggle-custom-properties-visibility|org-toggle-fixed-width-section|org-toggle-heading|org-toggle-inline-images|org-toggle-item|org-toggle-link-display|org-toggle-ordered-property|org-toggle-pretty-entities|org-toggle-sticky-agenda|org-toggle-tag|org-toggle-tags-groups|org-toggle-time-stamp-overlays|org-toggle-timestamp-type|org-tr-level|org-translate-link-from-planner|org-translate-link|org-translate-time|org-transpose-element|org-transpose-words|org-tree-to-indirect-buffer|org-trim|org-truely-invisible-p|org-try-cdlatex-tab|org-try-structure-completion|org-unescape-code-in-region|org-unescape-code-in-string|org-unfontify-region|org-unindent-buffer|org-uniquify-alist|org-uniquify|org-unlogged-message|org-unmodified|org-up-element|org-up-heading-all|org-up-heading-safe|org-update-all-dblocks|org-update-checkbox-count-maybe|org-update-checkbox-count|org-update-dblock|org-update-parent-todo-statistics|org-update-property-plist|org-update-radio-target-regexp|org-update-statistics-cookies|org-uuidgen-p|org-version-check|org-version|org-with-gensyms|org-with-limited-levels|org-with-point-at|org-with-remote-undo|org-with-silent-modifications|org-with-wide-buffer|org-without-partial-completion|org-wrap|org-xemacs-without-invisibility|org-xor|org-yank-folding-would-swallow-text|org-yank-generic|org-yank|org<>|orgstruct\\\\+\\\\+-mode|orgstruct-error|orgstruct-make-binding|orgstruct-mode|orgstruct-setup|orgtbl-mode|orgtbl-to-csv|orgtbl-to-generic|orgtbl-to-html|orgtbl-to-latex|orgtbl-to-orgtbl|orgtbl-to-texinfo|orgtbl-to-tsv|oset-default|oset|other-frame|other-window-for-scrolling|outline-back-to-heading|outline-backward-same-level|outline-demote|outline-end-of-heading|outline-end-of-subtree|outline-flag-region|outline-flag-subtree|outline-font-lock-face|outline-forward-same-level|outline-get-last-sibling|outline-get-next-sibling|outline-head-from-level|outline-headers-as-kill|outline-insert-heading|outline-invent-heading|outline-invisible-p|outline-isearch-open-invisible|outline-level|outline-map-region|outline-mark-subtree|outline-minor-mode|outline-mode|outline-move-subtree-down|outline-move-subtree-up|outline-next-heading|outline-next-preface|outline-next-visible-heading|outline-on-heading-p|outline-previous-heading|outline-previous-visible-heading|outline-promote|outline-reveal-toggle-invisible|outline-show-heading|outline-toggle-children|outline-up-heading|outlineify-sticky|outlinify-sticky|overlay-lists|overload-docstring-extension|overload-obsoleted-by|overload-that-obsolete|package--ac-desc-extras--cmacro|package--ac-desc-extras|package--ac-desc-kind--cmacro|package--ac-desc-kind|package--ac-desc-reqs--cmacro|package--ac-desc-reqs|package--ac-desc-summary--cmacro|package--ac-desc-summary|package--ac-desc-version--cmacro|package--ac-desc-version|package--add-to-archive-contents|package--alist-to-plist-args|package--archive-file-exists-p|package--bi-desc-reqs--cmacro|package--bi-desc-reqs|package--bi-desc-summary--cmacro|package--bi-desc-summary|package--bi-desc-version--cmacro|package--bi-desc-version|package--check-signature|package--compile|package--description-file|package--display-verify-error|package--download-one-archive|package--from-builtin|package--has-keyword-p|package--list-loaded-files|package--make-autoloads-and-stuff|package--mapc|package--prepare-dependencies|package--push|package--read-archive-file|package--with-work-buffer|package--write-file-no-coding|package-activate-1|package-activate|package-all-keywords|package-archive-base|package-autoload-ensure-default-file|package-buffer-info|package-built-in-p|package-compute-transaction|package-delete|package-desc--keywords|package-desc-archive--cmacro|package-desc-archive|package-desc-create--cmacro|package-desc-create|package-desc-dir--cmacro|package-desc-dir|package-desc-extras--cmacro|package-desc-extras|package-desc-from-define|package-desc-full-name|package-desc-kind--cmacro|package-desc-kind|package-desc-name--cmacro|package-desc-name|package-desc-p--cmacro|package-desc-p|package-desc-reqs--cmacro|package-desc-reqs|package-desc-signed--cmacro|package-desc-signed|package-desc-status|package-desc-suffix|package-desc-summary--cmacro|package-desc-summary|package-desc-version--cmacro|package-desc-version|package-disabled-p|package-download-transaction|package-generate-autoloads|package-generate-description-file|package-import-keyring|package-install-button-action|package-install-file|package-install-from-archive)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:package-install-from-buffer|package-install|package-installed-p|package-keyword-button-action|package-list-packages-no-fetch|package-list-packages|package-load-all-descriptors|package-load-descriptor|package-make-ac-desc--cmacro|package-make-ac-desc|package-make-builtin--cmacro|package-make-builtin|package-make-button|package-menu--archive-predicate|package-menu--description-predicate|package-menu--find-upgrades|package-menu--generate|package-menu--name-predicate|package-menu--print-info|package-menu--refresh|package-menu--status-predicate|package-menu--version-predicate|package-menu-backup-unmark|package-menu-describe-package|package-menu-execute|package-menu-filter|package-menu-get-status|package-menu-mark-delete|package-menu-mark-install|package-menu-mark-obsolete-for-deletion|package-menu-mark-unmark|package-menu-mark-upgrades|package-menu-mode|package-menu-quick-help|package-menu-refresh|package-menu-view-commentary|package-process-define-package|package-read-all-archive-contents|package-read-archive-contents|package-read-from-string|package-refresh-contents|package-show-package-list|package-strip-rcs-id|package-tar-file-info|package-unpack|package-untar-buffer|package-version-join|pages-copy-header-and-position|pages-directory-address-mode|pages-directory-for-addresses|pages-directory-goto-with-mouse|pages-directory-goto|pages-directory-mode|pages-directory|pairlis|paragraph-indent-minor-mode|paragraph-indent-text-mode|parse-iso8601-time-string|parse-time-string-chars|parse-time-string|parse-time-tokenize|pascal-beg-of-defun|pascal-build-defun-re|pascal-calculate-indent|pascal-capitalize-keywords|pascal-change-keywords|pascal-comment-area|pascal-comp-defun|pascal-complete-word|pascal-completion|pascal-completions-at-point|pascal-declaration-beg|pascal-declaration-end|pascal-downcase-keywords|pascal-end-of-defun|pascal-end-of-statement|pascal-func-completion|pascal-get-completion-decl|pascal-get-default-symbol|pascal-get-lineup-indent|pascal-goto-defun|pascal-hide-other-defuns|pascal-indent-case|pascal-indent-command|pascal-indent-comment|pascal-indent-declaration|pascal-indent-level|pascal-indent-line|pascal-indent-paramlist|pascal-insert-block|pascal-keyword-completion|pascal-mark-defun|pascal-mode|pascal-outline-change|pascal-outline-goto-defun|pascal-outline-mode|pascal-outline-next-defun|pascal-outline-prev-defun|pascal-outline|pascal-set-auto-comments|pascal-show-all|pascal-show-completions|pascal-star-comment|pascal-string-diff|pascal-type-completion|pascal-uncomment-area|pascal-upcase-keywords|pascal-var-completion|pascal-within-string|password-cache-add|password-cache-remove|password-in-cache-p|password-read-and-add|password-read-from-cache|password-read|password-reset|pcase--and|pcase--app-subst-match|pcase--app-subst-rest|pcase--eval|pcase--expand|pcase--fgrep|pcase--flip|pcase--funcall|pcase--if|pcase--let\\\\*|pcase--macroexpand|pcase--mark-used|pcase--match|pcase--mutually-exclusive-p|pcase--self-quoting-p|pcase--small-branch-p|pcase--split-equal|pcase--split-match|pcase--split-member|pcase--split-pred|pcase--split-rest|pcase--trivial-upat-p|pcase--u|pcase--u1|pcase-codegen|pcase-defmacro|pcase-dolist|pcase-exhaustive|pcase-let\\\\*|pcase-let|pcomplete\\\\/ack-grep|pcomplete\\\\/ack|pcomplete\\\\/ag|pcomplete\\\\/bzip2|pcomplete\\\\/cd|pcomplete\\\\/chgrp|pcomplete\\\\/chown|pcomplete\\\\/cvs|pcomplete\\\\/erc-mode\\\\/CLEARTOPIC|pcomplete\\\\/erc-mode\\\\/CTCP|pcomplete\\\\/erc-mode\\\\/DCC|pcomplete\\\\/erc-mode\\\\/DEOP|pcomplete\\\\/erc-mode\\\\/DESCRIBE|pcomplete\\\\/erc-mode\\\\/IDLE|pcomplete\\\\/erc-mode\\\\/KICK|pcomplete\\\\/erc-mode\\\\/LEAVE|pcomplete\\\\/erc-mode\\\\/LOAD|pcomplete\\\\/erc-mode\\\\/ME|pcomplete\\\\/erc-mode\\\\/MODE|pcomplete\\\\/erc-mode\\\\/MSG|pcomplete\\\\/erc-mode\\\\/NAMES|pcomplete\\\\/erc-mode\\\\/NOTICE|pcomplete\\\\/erc-mode\\\\/NOTIFY|pcomplete\\\\/erc-mode\\\\/OP|pcomplete\\\\/erc-mode\\\\/PART|pcomplete\\\\/erc-mode\\\\/QUERY|pcomplete\\\\/erc-mode\\\\/SAY|pcomplete\\\\/erc-mode\\\\/SOUND|pcomplete\\\\/erc-mode\\\\/TOPIC|pcomplete\\\\/erc-mode\\\\/UNIGNORE|pcomplete\\\\/erc-mode\\\\/WHOIS|pcomplete\\\\/erc-mode\\\\/complete-command|pcomplete\\\\/eshell-mode\\\\/eshell-debug|pcomplete\\\\/eshell-mode\\\\/export|pcomplete\\\\/eshell-mode\\\\/setq|pcomplete\\\\/eshell-mode\\\\/unset|pcomplete\\\\/gdb|pcomplete\\\\/gzip|pcomplete\\\\/kill|pcomplete\\\\/make|pcomplete\\\\/mount|pcomplete\\\\/org-mode\\\\/block-option\\\\/clocktable|pcomplete\\\\/org-mode\\\\/block-option\\\\/src|pcomplete\\\\/org-mode\\\\/drawer|pcomplete\\\\/org-mode\\\\/file-option\\\\/author|pcomplete\\\\/org-mode\\\\/file-option\\\\/bind|pcomplete\\\\/org-mode\\\\/file-option\\\\/date|pcomplete\\\\/org-mode\\\\/file-option\\\\/email|pcomplete\\\\/org-mode\\\\/file-option\\\\/exclude_tags|pcomplete\\\\/org-mode\\\\/file-option\\\\/filetags|pcomplete\\\\/org-mode\\\\/file-option\\\\/infojs_opt|pcomplete\\\\/org-mode\\\\/file-option\\\\/language|pcomplete\\\\/org-mode\\\\/file-option\\\\/options|pcomplete\\\\/org-mode\\\\/file-option\\\\/priorities|pcomplete\\\\/org-mode\\\\/file-option\\\\/select_tags|pcomplete\\\\/org-mode\\\\/file-option\\\\/startup|pcomplete\\\\/org-mode\\\\/file-option\\\\/tags|pcomplete\\\\/org-mode\\\\/file-option\\\\/title|pcomplete\\\\/org-mode\\\\/file-option|pcomplete\\\\/org-mode\\\\/link|pcomplete\\\\/org-mode\\\\/prop|pcomplete\\\\/org-mode\\\\/searchhead|pcomplete\\\\/org-mode\\\\/tag|pcomplete\\\\/org-mode\\\\/tex|pcomplete\\\\/org-mode\\\\/todo|pcomplete\\\\/pushd|pcomplete\\\\/rm|pcomplete\\\\/rmdir|pcomplete\\\\/rpm|pcomplete\\\\/scp|pcomplete\\\\/ssh|pcomplete\\\\/tar|pcomplete\\\\/time|pcomplete\\\\/tlmgr|pcomplete\\\\/umount|pcomplete\\\\/which|pcomplete\\\\/xargs|pcomplete--common-suffix|pcomplete--entries|pcomplete--help|pcomplete--here|pcomplete--test|pcomplete-actual-arg|pcomplete-all-entries|pcomplete-arg|pcomplete-begin|pcomplete-comint-setup|pcomplete-command-name|pcomplete-completions-at-point|pcomplete-completions|pcomplete-continue|pcomplete-dirs-or-entries|pcomplete-dirs|pcomplete-do-complete|pcomplete-entries|pcomplete-erc-all-nicks|pcomplete-erc-channels|pcomplete-erc-command-name|pcomplete-erc-commands|pcomplete-erc-nicks|pcomplete-erc-not-ops|pcomplete-erc-ops|pcomplete-erc-parse-arguments|pcomplete-erc-setup|pcomplete-event-matches-key-specifier-p|pcomplete-executables|pcomplete-expand-and-complete|pcomplete-expand|pcomplete-find-completion-function|pcomplete-help|pcomplete-here\\\\*|pcomplete-here|pcomplete-insert-entry|pcomplete-list|pcomplete-match-beginning|pcomplete-match-end|pcomplete-match-string|pcomplete-match|pcomplete-next-arg|pcomplete-opt|pcomplete-parse-arguments|pcomplete-parse-buffer-arguments|pcomplete-parse-comint-arguments|pcomplete-process-result|pcomplete-quote-argument|pcomplete-read-event|pcomplete-restore-windows|pcomplete-reverse|pcomplete-shell-setup|pcomplete-show-completions|pcomplete-std-complete|pcomplete-stub|pcomplete-test|pcomplete-uniqify-list|pcomplete-unquote-argument|pcomplete|pdb|pending-delete-mode|perl-backward-to-noncomment|perl-backward-to-start-of-continued-exp|perl-beginning-of-function|perl-calculate-indent|perl-comment-indent|perl-continuation-line-p|perl-current-defun-name|perl-electric-noindent-p|perl-electric-terminator|perl-end-of-function|perl-font-lock-syntactic-face-function|perl-hanging-paren-p|perl-indent-command|perl-indent-exp|perl-indent-line|perl-indent-new-calculate|perl-mark-function|perl-mode|perl-outline-level|perl-quote-syntax-table|perl-syntax-propertize-function|perl-syntax-propertize-special-constructs|perldb|picture-backward-clear-column|picture-backward-column|picture-beginning-of-line|picture-clear-column|picture-clear-line|picture-clear-rectangle-to-register|picture-clear-rectangle|picture-current-line|picture-delete-char|picture-draw-rectangle|picture-duplicate-line|picture-end-of-line|picture-forward-column|picture-insert-rectangle|picture-insert|picture-mode-exit|picture-mode|picture-motion-reverse|picture-motion|picture-mouse-set-point|picture-move-down|picture-move-up|picture-move|picture-movement-down|picture-movement-left|picture-movement-ne|picture-movement-nw|picture-movement-right|picture-movement-se|picture-movement-sw|picture-movement-up|picture-newline|picture-open-line|picture-replace-match|picture-self-insert|picture-set-motion|picture-set-tab-stops|picture-snarf-rectangle|picture-tab-search|picture-tab|picture-update-desired-column|picture-yank-at-click|picture-yank-rectangle-from-register|picture-yank-rectangle|pike-font-lock-keywords-2|pike-font-lock-keywords-3|pike-font-lock-keywords|pike-mode|ping|plain-TeX-mode|plain-tex-mode|play-sound-internal|plstore-delete|plstore-find|plstore-get-file|plstore-mode|plstore-open|plstore-put|plstore-save|plusp|po-find-charset|po-find-file-coding-system-guts|po-find-file-coding-system|point-at-bol|point-at-eol|point-to-register|pong-display-options|pong-init-buffer|pong-init|pong-move-down|pong-move-left|pong-move-right|pong-move-up|pong-pause|pong-quit|pong-resume|pong-update-bat|pong-update-game|pong-update-score|pong|pop-global-mark|pop-tag-mark|pop-to-buffer-same-window|pop-to-mark-command|pop3-movemail|popup-menu-normalize-position|popup-menu|position-if-not|position-if|position|posn-set-point|post-read-decode-hz|pp-buffer|pp-display-expression|pp-eval-expression|pp-eval-last-sexp|pp-last-sexp|pp-macroexpand-expression|pp-macroexpand-last-sexp|pp-to-string|pr-alist-custom-set|pr-article-date|pr-auto-mode-p|pr-call-process|pr-choice-alist|pr-command|pr-complete-alist|pr-create-interface|pr-customize|pr-delete-file-if-exists|pr-delete-file|pr-despool-preview|pr-despool-print|pr-despool-ps-print|pr-despool-using-ghostscript|pr-do-update-menus|pr-dosify-file-name|pr-eval-alist|pr-eval-local-alist|pr-eval-setting-alist|pr-even-or-odd-pages|pr-expand-file-name|pr-file-list|pr-find-buffer-visiting|pr-find-command|pr-get-symbol|pr-global-menubar|pr-gnus-lpr|pr-gnus-print|pr-help|pr-i-directory|pr-i-ps-send|pr-insert-button|pr-insert-checkbox|pr-insert-italic|pr-insert-menu|pr-insert-radio-button|pr-insert-section-1|pr-insert-section-2|pr-insert-section-3|pr-insert-section-4|pr-insert-section-5|pr-insert-section-6|pr-insert-section-7|pr-insert-toggle|pr-interactive-dir-args|pr-interactive-dir|pr-interactive-n-up-file|pr-interactive-n-up-inout|pr-interactive-n-up|pr-interactive-ps-dir-args|pr-interactive-regexp|pr-interface-directory|pr-interface-help|pr-interface-infile|pr-interface-outfile|pr-interface-preview|pr-interface-printify|pr-interface-ps-print|pr-interface-ps|pr-interface-quit|pr-interface-save|pr-interface-txt-print|pr-interface|pr-keep-region-active|pr-kill-help|pr-kill-local-variable|pr-local-variable|pr-lpr-message-from-summary|pr-menu-alist|pr-menu-bind|pr-menu-char-height|pr-menu-char-width|pr-menu-create|pr-menu-get-item|pr-menu-index|pr-menu-lock|pr-menu-lookup|pr-menu-position|pr-menu-set-item-name|pr-menu-set-ps-title|pr-menu-set-txt-title|pr-menu-set-utility-title|pr-mh-current-message|pr-mh-lpr-1|pr-mh-lpr-2|pr-mh-print-1|pr-mh-print-2|pr-mode-alist-p|pr-mode-lpr|pr-mode-print|pr-path-command|pr-printify-buffer|pr-printify-directory|pr-printify-region|pr-prompt-gs|pr-prompt-region|pr-prompt|pr-ps-buffer-preview|pr-ps-buffer-print|pr-ps-buffer-ps-print|pr-ps-buffer-using-ghostscript|pr-ps-directory-preview|pr-ps-directory-print|pr-ps-directory-ps-print|pr-ps-directory-using-ghostscript|pr-ps-fast-fire|pr-ps-file-list|pr-ps-file-preview|pr-ps-file-print|pr-ps-file-ps-print|pr-ps-file-up-preview|pr-ps-file-up-ps-print|pr-ps-file-using-ghostscript|pr-ps-file|pr-ps-infile-preprint|pr-ps-message-from-summary|pr-ps-mode-preview|pr-ps-mode-print|pr-ps-mode-ps-print|pr-ps-mode-using-ghostscript|pr-ps-mode|pr-ps-name-custom-set|pr-ps-name|pr-ps-outfile-preprint|pr-ps-preview|pr-ps-print|pr-ps-region-preview|pr-ps-region-print|pr-ps-region-ps-print|pr-ps-region-using-ghostscript|pr-ps-set-printer|pr-ps-set-utility|pr-ps-using-ghostscript|pr-ps-utility-args|pr-ps-utility-custom-set|pr-ps-utility-process|pr-ps-utility|pr-read-string|pr-region-active-p|pr-region-active-string|pr-region-active-symbol|pr-remove-nil-from-list|pr-rmail-lpr|pr-rmail-print|pr-save-file-modes|pr-set-dir-args|pr-set-keymap-name|pr-set-keymap-parents|pr-set-n-up-and-filename|pr-set-outfilename|pr-set-ps-dir-args|pr-setup|pr-show-lpr-setup|pr-show-pr-setup|pr-show-ps-setup|pr-show-setup|pr-standard-file-name|pr-switches-string|pr-switches|pr-text2ps|pr-toggle-duplex-menu|pr-toggle-duplex|pr-toggle-faces-menu|pr-toggle-faces|pr-toggle-file-duplex-menu|pr-toggle-file-duplex)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:pr-toggle-file-landscape-menu|pr-toggle-file-landscape|pr-toggle-file-tumble-menu|pr-toggle-file-tumble|pr-toggle-ghostscript-menu|pr-toggle-ghostscript|pr-toggle-header-frame-menu|pr-toggle-header-frame|pr-toggle-header-menu|pr-toggle-header|pr-toggle-landscape-menu|pr-toggle-landscape|pr-toggle-line-menu|pr-toggle-line|pr-toggle-lock-menu|pr-toggle-lock|pr-toggle-mode-menu|pr-toggle-mode|pr-toggle-region-menu|pr-toggle-region|pr-toggle-spool-menu|pr-toggle-spool|pr-toggle-tumble-menu|pr-toggle-tumble|pr-toggle-upside-down-menu|pr-toggle-upside-down|pr-toggle-zebra-menu|pr-toggle-zebra|pr-toggle|pr-txt-buffer|pr-txt-directory|pr-txt-fast-fire|pr-txt-mode|pr-txt-name-custom-set|pr-txt-name|pr-txt-print|pr-txt-region|pr-txt-set-printer|pr-unixify-file-name|pr-update-checkbox|pr-update-menus|pr-update-mode-line|pr-update-radio-button|pr-update-var|pr-using-ghostscript-p|pr-visible-p|pr-vm-lpr|pr-vm-print|pr-widget-field-action|pre-write-encode-hz|preceding-sexp|prefer-coding-system|prepare-abbrev-list-buffer|prepend-to-buffer|prepend-to-register|prettify-symbols--compose-symbol|prettify-symbols--make-keywords|prettify-symbols-mode-set-explicitly|prettify-symbols-mode|previous-buffer|previous-completion|previous-error-no-select|previous-error|previous-ifdef|previous-line-or-history-element|previous-line|previous-logical-line|previous-multiframe-window|previous-page|prin1-char|princ-list|print-buffer|print-help-return-message|print-region-1|print-region-new-buffer|print-region|printify-region|proced-<|proced-auto-update-timer|proced-children-alist|proced-children-pids|proced-do-mark-all|proced-do-mark|proced-filter-children|proced-filter-interactive|proced-filter-parents|proced-filter|proced-format-args|proced-format-interactive|proced-format-start|proced-format-time|proced-format-tree|proced-format-ttname|proced-format|proced-header-line|proced-help|proced-insert-mark|proced-log-summary|proced-log|proced-mark-all|proced-mark-children|proced-mark-parents|proced-mark-process-alist|proced-mark|proced-marked-processes|proced-marker-regexp|proced-menu|proced-mode|proced-move-to-goal-column|proced-omit-process|proced-omit-processes|proced-pid-at-point|proced-process-attributes|proced-process-tree-internal|proced-process-tree|proced-refine|proced-renice|proced-revert|proced-send-signal|proced-sort-header|proced-sort-interactive|proced-sort-p|proced-sort-pcpu|proced-sort-pid|proced-sort-pmem|proced-sort-start|proced-sort-time|proced-sort-user|proced-sort|proced-string-lessp|proced-success-message|proced-time-lessp|proced-toggle-auto-update|proced-toggle-marks|proced-toggle-tree|proced-tree-insert|proced-tree|proced-undo|proced-unmark-all|proced-unmark-backward|proced-unmark|proced-update|proced-why|proced-with-processes-buffer|proced-xor|proced|process-filter-multibyte-p|process-inherit-coding-system-flag|process-kill-without-query|process-menu-delete-process|process-menu-mode|process-menu-visit-buffer|proclaim|produce-allout-mode-menubar-entries|profiler-calltree-build-1|profiler-calltree-build-unified|profiler-calltree-build|profiler-calltree-children--cmacro|profiler-calltree-children|profiler-calltree-compute-percentages|profiler-calltree-count--cmacro|profiler-calltree-count-percent--cmacro|profiler-calltree-count-percent|profiler-calltree-count|profiler-calltree-count<|profiler-calltree-count>|profiler-calltree-depth|profiler-calltree-entry--cmacro|profiler-calltree-entry|profiler-calltree-find|profiler-calltree-leaf-p|profiler-calltree-p--cmacro|profiler-calltree-p|profiler-calltree-parent--cmacro|profiler-calltree-parent|profiler-calltree-sort|profiler-calltree-walk|profiler-compare-logs|profiler-compare-profiles|profiler-cpu-log|profiler-cpu-profile|profiler-cpu-running-p|profiler-cpu-start|profiler-cpu-stop|profiler-ensure-string|profiler-find-profile-other-frame|profiler-find-profile-other-window|profiler-find-profile|profiler-fixup-backtrace|profiler-fixup-entry|profiler-fixup-log|profiler-fixup-profile|profiler-format-entry|profiler-format-number|profiler-format-percent|profiler-format|profiler-make-calltree--cmacro|profiler-make-calltree|profiler-make-profile--cmacro|profiler-make-profile|profiler-memory-log|profiler-memory-profile|profiler-memory-running-p|profiler-memory-start|profiler-memory-stop|profiler-profile-diff-p--cmacro|profiler-profile-diff-p|profiler-profile-log--cmacro|profiler-profile-log|profiler-profile-tag--cmacro|profiler-profile-tag|profiler-profile-timestamp--cmacro|profiler-profile-timestamp|profiler-profile-type--cmacro|profiler-profile-type|profiler-profile-version--cmacro|profiler-profile-version|profiler-read-profile|profiler-report-ascending-sort|profiler-report-calltree-at-point|profiler-report-collapse-entry|profiler-report-compare-profile|profiler-report-cpu|profiler-report-descending-sort|profiler-report-describe-entry|profiler-report-expand-entry|profiler-report-find-entry|profiler-report-header-line-format|profiler-report-insert-calltree-children|profiler-report-insert-calltree|profiler-report-line-format|profiler-report-make-buffer-name|profiler-report-make-entry-part|profiler-report-make-name-part|profiler-report-memory|profiler-report-menu|profiler-report-mode|profiler-report-move-to-entry|profiler-report-next-entry|profiler-report-previous-entry|profiler-report-profile-other-frame|profiler-report-profile-other-window|profiler-report-profile|profiler-report-render-calltree-1|profiler-report-render-calltree|profiler-report-render-reversed-calltree|profiler-report-rerender-calltree|profiler-report-setup-buffer-1|profiler-report-setup-buffer|profiler-report-toggle-entry|profiler-report-write-profile|profiler-report|profiler-reset|profiler-running-p|profiler-start|profiler-stop|profiler-write-profile|prog-indent-sexp|progress-reporter-do-update|progv|project-add-file|project-compile-project|project-compile-target|project-debug-target|project-delete-target|project-dist-files|project-edit-file-target|project-interactive-select-target|project-make-dist|project-new-target-custom|project-new-target|project-remove-file|project-rescan|project-run-target|prolog-Info-follow-nearest-node|prolog-atleast-version|prolog-atom-under-point|prolog-beginning-of-clause|prolog-beginning-of-predicate|prolog-bsts|prolog-buffer-module|prolog-build-info-alist|prolog-build-prolog-command|prolog-clause-end|prolog-clause-info|prolog-clause-start|prolog-comment-limits|prolog-compile-buffer|prolog-compile-file|prolog-compile-predicate|prolog-compile-region|prolog-compile-string|prolog-consult-buffer|prolog-consult-compile-buffer|prolog-consult-compile-file|prolog-consult-compile-filter|prolog-consult-compile-predicate|prolog-consult-compile-region|prolog-consult-compile|prolog-consult-file|prolog-consult-predicate|prolog-consult-region|prolog-consult-string|prolog-debug-off|prolog-debug-on|prolog-disable-sicstus-sd|prolog-do-auto-fill|prolog-edit-menu-insert-move|prolog-edit-menu-runtime|prolog-electric--colon|prolog-electric--dash|prolog-electric--dot|prolog-electric--if-then-else|prolog-electric--underscore|prolog-enable-sicstus-sd|prolog-end-of-clause|prolog-end-of-predicate|prolog-ensure-process|prolog-face-name-p|prolog-fill-paragraph|prolog-find-documentation|prolog-find-term|prolog-find-unmatched-paren|prolog-find-value-by-system|prolog-font-lock-keywords|prolog-font-lock-object-matcher|prolog-get-predspec|prolog-goto-predicate-info|prolog-goto-prolog-process-buffer|prolog-guess-fill-prefix|prolog-help-apropos|prolog-help-info|prolog-help-on-predicate|prolog-help-online|prolog-in-object|prolog-indent-buffer|prolog-indent-predicate|prolog-inferior-buffer|prolog-inferior-guess-flavor|prolog-inferior-menu-all|prolog-inferior-menu|prolog-inferior-mode|prolog-inferior-self-insert-command|prolog-input-filter|prolog-insert-module-modeline|prolog-insert-next-clause|prolog-insert-predicate-template|prolog-insert-predspec|prolog-mark-clause|prolog-mark-predicate|prolog-menu-help|prolog-menu|prolog-mode-keybindings-common|prolog-mode-keybindings-edit|prolog-mode-keybindings-inferior|prolog-mode-variables|prolog-mode-version|prolog-mode|prolog-old-process-buffer|prolog-old-process-file|prolog-old-process-predicate|prolog-old-process-region|prolog-paren-balance|prolog-parse-sicstus-compilation-errors|prolog-post-self-insert|prolog-pred-end|prolog-pred-start|prolog-process-insert-string|prolog-program-name|prolog-program-switches|prolog-prompt-regexp|prolog-read-predicate|prolog-replace-in-string|prolog-smie-backward-token|prolog-smie-forward-token|prolog-smie-rules|prolog-temporary-file|prolog-toggle-sicstus-sd|prolog-trace-off|prolog-trace-on|prolog-uncomment-region|prolog-variables-to-anonymous|prolog-view-predspec|prolog-zip-off|prolog-zip-on|prompt-for-change-log-name|propertized-buffer-identification|prune-directory-list|ps-alist-position|ps-avg-char-width|ps-background-image|ps-background-pages|ps-background-text|ps-background|ps-basic-plot-str|ps-basic-plot-string|ps-basic-plot-whitespace|ps-begin-file|ps-begin-job|ps-begin-page|ps-boolean-capitalized|ps-boolean-constant|ps-build-reference-face-lists|ps-color-device|ps-color-scale|ps-color-values|ps-comment-string|ps-continue-line|ps-control-character|ps-count-lines-preprint|ps-count-lines|ps-del|ps-despool|ps-do-despool|ps-end-job|ps-end-page|ps-end-sheet|ps-extend-face-list|ps-extend-face|ps-extension-bit|ps-face-attribute-list|ps-face-attributes|ps-face-background-color-p|ps-face-background-name|ps-face-background|ps-face-bold-p|ps-face-box-p|ps-face-color-p|ps-face-extract-color|ps-face-foreground-color-p|ps-face-foreground-name|ps-face-italic-p|ps-face-overline-p|ps-face-strikeout-p|ps-face-underlined-p|ps-find-wrappoint|ps-float-format|ps-flush-output|ps-font-alist|ps-font-lock-face-attributes|ps-font-number|ps-font|ps-fonts|ps-format-color|ps-frame-parameter|ps-generate-header-line|ps-generate-header|ps-generate-postscript-with-faces|ps-generate-postscript-with-faces1|ps-generate-postscript|ps-generate|ps-get-boundingbox|ps-get-buffer-name|ps-get-font-size|ps-get-page-dimensions|ps-get-size|ps-get|ps-header-dirpart|ps-header-page|ps-header-sheet|ps-init-output-queue|ps-insert-file|ps-insert-string|ps-kill-emacs-check|ps-line-height|ps-line-lengths-internal|ps-line-lengths|ps-lookup|ps-map-face|ps-mark-active-p|ps-message-log-max|ps-mode--syntax-propertize-special|ps-mode-RE|ps-mode-backward-delete-char|ps-mode-center|ps-mode-comment-out-region|ps-mode-epsf-rich|ps-mode-epsf-sparse|ps-mode-heapsort|ps-mode-latin-extended|ps-mode-main|ps-mode-octal-buffer|ps-mode-octal-region|ps-mode-other-newline|ps-mode-print-buffer|ps-mode-print-region|ps-mode-right|ps-mode-show-version|ps-mode-smie-rules|ps-mode-submit-bug-report|ps-mode-syntax-propertize|ps-mode-target-column|ps-mode-uncomment-region|ps-mode|ps-mule-begin-job|ps-mule-end-job|ps-mule-initialize|ps-n-up-columns|ps-n-up-end|ps-n-up-filling|ps-n-up-landscape|ps-n-up-lines|ps-n-up-missing|ps-n-up-printing|ps-n-up-repeat|ps-n-up-xcolumn|ps-n-up-xline|ps-n-up-xstart|ps-n-up-ycolumn|ps-n-up-yline|ps-n-up-ystart|ps-nb-pages-buffer|ps-nb-pages-region|ps-nb-pages|ps-next-line|ps-next-page|ps-output-boolean|ps-output-frame-properties|ps-output-prologue|ps-output-string-prim|ps-output-string|ps-output|ps-page-dimensions-get-height|ps-page-dimensions-get-media|ps-page-dimensions-get-width|ps-page-number|ps-plot-region|ps-plot-string|ps-plot-with-face|ps-plot|ps-print-buffer-with-faces|ps-print-buffer|ps-print-customize|ps-print-ensure-fontified|ps-print-page-p|ps-print-preprint-region|ps-print-preprint|ps-print-quote|ps-print-region-with-faces|ps-print-region|ps-print-sheet-p|ps-print-with-faces|ps-print-without-faces|ps-printing-region|ps-prologue-file|ps-put|ps-remove-duplicates|ps-restore-selected-pages|ps-rgb-color|ps-run-boundingbox|ps-run-buffer|ps-run-cleanup|ps-run-clear|ps-run-goto-error|ps-run-kill|ps-run-make-tmp-filename|ps-run-mode|ps-run-mouse-goto-error|ps-run-quit|ps-run-region|ps-run-running|ps-run-send-string|ps-run-start|ps-screen-to-bit-face|ps-select-font|ps-selected-pages|ps-set-bg|ps-set-color|ps-set-face-attribute|ps-set-face-bold|ps-set-face-italic|ps-set-face-underline|ps-set-font|ps-setup|ps-size-scale|ps-skip-newline|ps-space-width|ps-spool-buffer-with-faces|ps-spool-buffer|ps-spool-region-with-faces|ps-spool-region|ps-spool-with-faces|ps-spool-without-faces|ps-time-stamp-hh:mm:ss|ps-time-stamp-iso8601)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:ps-time-stamp-locale-default|ps-time-stamp-mon-dd-yyyy|ps-time-stamp-yyyy-mm-dd|ps-title-line-height|ps-value-string|ps-value|psetf|psetq|push-mark-command|pushnew|put-unicode-property-internal|pwd|python-check|python-comint-output-filter-function|python-comint-postoutput-scroll-to-bottom|python-completion-at-point|python-completion-complete-at-point|python-define-auxiliary-skeleton|python-docstring-at-p|python-eldoc--get-doc-at-point|python-eldoc-at-point|python-eldoc-function|python-electric-pair-string-delimiter|python-ffap-module-path|python-fill-comment|python-fill-decorator|python-fill-paragraph|python-fill-paren|python-fill-string|python-font-lock-syntactic-face-function|python-imenu--build-tree|python-imenu--put-parent|python-imenu-create-flat-index|python-imenu-create-index|python-imenu-format-item-label|python-imenu-format-parent-item-jump-label|python-imenu-format-parent-item-label|python-indent-calculate-indentation|python-indent-calculate-levels|python-indent-context|python-indent-dedent-line-backspace|python-indent-dedent-line|python-indent-guess-indent-offset|python-indent-line-function|python-indent-line|python-indent-post-self-insert-function|python-indent-region|python-indent-shift-left|python-indent-shift-right|python-indent-toggle-levels|python-info-assignment-continuation-line-p|python-info-beginning-of-backslash|python-info-beginning-of-block-p|python-info-beginning-of-statement-p|python-info-block-continuation-line-p|python-info-closing-block-message|python-info-closing-block|python-info-continuation-line-p|python-info-current-defun|python-info-current-line-comment-p|python-info-current-line-empty-p|python-info-current-symbol|python-info-dedenter-opening-block-message|python-info-dedenter-opening-block-position|python-info-dedenter-opening-block-positions|python-info-dedenter-statement-p|python-info-encoding-from-cookie|python-info-encoding|python-info-end-of-block-p|python-info-end-of-statement-p|python-info-line-ends-backslash-p|python-info-looking-at-beginning-of-defun|python-info-ppss-comment-or-string-p|python-info-ppss-context-type|python-info-ppss-context|python-info-statement-ends-block-p|python-info-statement-starts-block-p|python-menu|python-mode|python-nav--beginning-of-defun|python-nav--forward-defun|python-nav--forward-sexp|python-nav--lisp-forward-sexp-safe|python-nav--lisp-forward-sexp|python-nav--syntactically|python-nav--up-list|python-nav-backward-block|python-nav-backward-defun|python-nav-backward-sexp-safe|python-nav-backward-sexp|python-nav-backward-statement|python-nav-backward-up-list|python-nav-beginning-of-block|python-nav-beginning-of-defun|python-nav-beginning-of-statement|python-nav-end-of-block|python-nav-end-of-defun|python-nav-end-of-statement|python-nav-forward-block|python-nav-forward-defun|python-nav-forward-sexp-safe|python-nav-forward-sexp|python-nav-forward-statement|python-nav-if-name-main|python-nav-up-list|python-pdbtrack-comint-output-filter-function|python-pdbtrack-set-tracked-buffer|python-proc|python-send-receive|python-send-string|python-shell--save-temp-file|python-shell-accept-process-output|python-shell-buffer-substring|python-shell-calculate-command|python-shell-calculate-exec-path|python-shell-calculate-process-environment|python-shell-calculate-pythonpath|python-shell-comint-end-of-output-p|python-shell-completion-at-point|python-shell-completion-complete-at-point|python-shell-completion-complete-or-indent|python-shell-completion-get-completions|python-shell-font-lock-cleanup-buffer|python-shell-font-lock-comint-output-filter-function|python-shell-font-lock-get-or-create-buffer|python-shell-font-lock-kill-buffer|python-shell-font-lock-post-command-hook|python-shell-font-lock-toggle|python-shell-font-lock-turn-off|python-shell-font-lock-turn-on|python-shell-font-lock-with-font-lock-buffer|python-shell-get-buffer|python-shell-get-or-create-process|python-shell-get-process-name|python-shell-get-process|python-shell-internal-get-or-create-process|python-shell-internal-get-process-name|python-shell-internal-send-string|python-shell-make-comint|python-shell-output-filter|python-shell-package-enable|python-shell-parse-command|python-shell-prompt-detect|python-shell-prompt-set-calculated-regexps|python-shell-prompt-validate-regexps|python-shell-send-buffer|python-shell-send-defun|python-shell-send-file|python-shell-send-region|python-shell-send-setup-code|python-shell-send-string-no-output|python-shell-send-string|python-shell-switch-to-shell|python-shell-with-shell-buffer|python-skeleton--else|python-skeleton--except|python-skeleton--finally|python-skeleton-add-menu-items|python-skeleton-class|python-skeleton-def|python-skeleton-define|python-skeleton-for|python-skeleton-if|python-skeleton-import|python-skeleton-try|python-skeleton-while|python-syntax-comment-or-string-p|python-syntax-context-type|python-syntax-context|python-syntax-count-quotes|python-syntax-stringify|python-util-clone-local-variables|python-util-comint-last-prompt|python-util-forward-comment|python-util-goto-line|python-util-list-directories|python-util-list-files|python-util-list-packages|python-util-popn|python-util-strip-string|python-util-text-properties-replace-name|python-util-valid-regexp-p|quail-define-package|quail-define-rules|quail-defrule-internal|quail-defrule|quail-install-decode-map|quail-install-map|quail-set-keyboard-layout|quail-show-keyboard-layout|quail-title|quail-update-leim-list-file|quail-use-package|query-dig|query-font|query-fontset|query-replace-compile-replacement|query-replace-descr|query-replace-read-args|query-replace-read-from|query-replace-read-to|query-replace-regexp-eval|query-replace-regexp|query-replace|quick-calc|quickurl-add-url|quickurl-ask|quickurl-browse-url-ask|quickurl-browse-url|quickurl-edit-urls|quickurl-find-url|quickurl-grab-url|quickurl-insert|quickurl-list-add-url|quickurl-list-insert-lookup|quickurl-list-insert-naked-url|quickurl-list-insert-url|quickurl-list-insert-with-desc|quickurl-list-insert-with-lookup|quickurl-list-insert|quickurl-list-make-inserter|quickurl-list-mode|quickurl-list-mouse-select|quickurl-list-populate-buffer|quickurl-list-quit|quickurl-list|quickurl-load-urls|quickurl-make-url|quickurl-read|quickurl-save-urls|quickurl-url-comment|quickurl-url-commented-p|quickurl-url-description|quickurl-url-keyword|quickurl-url-url|quickurl|quit-windows-on|quoted-insert|quoted-printable-decode-region|quoted-printable-decode-string|quoted-printable-encode-region|r2b-barf-output|r2b-capitalize-title-region|r2b-capitalize-title|r2b-clear-variables|r2b-convert-buffer|r2b-convert-month|r2b-convert-record|r2b-get-field|r2b-help|r2b-isa-proceedings|r2b-isa-university|r2b-match|r2b-moveq|r2b-put-field|r2b-require|r2b-reset|r2b-set-match|r2b-snarf-input|r2b-trace|r2b-warning|radians-to-degrees|raise-sexp|random\\\\*|random-state-p|rassoc\\\\*|rassoc-if-not|rassoc-if|rcirc--connection-open-p|rcirc-abbreviate|rcirc-activity-string|rcirc-add-face|rcirc-add-or-remove|rcirc-any-buffer|rcirc-authenticate|rcirc-browse-url|rcirc-buffer-nick|rcirc-buffer-process|rcirc-change-major-mode-hook|rcirc-channel-nicks|rcirc-channel-p|rcirc-check-auth-status|rcirc-clean-up-buffer|rcirc-clear-activity|rcirc-clear-unread|rcirc-cmd-bright|rcirc-cmd-ctcp|rcirc-cmd-dim|rcirc-cmd-ignore|rcirc-cmd-invite|rcirc-cmd-join|rcirc-cmd-keyword|rcirc-cmd-kick|rcirc-cmd-list|rcirc-cmd-me|rcirc-cmd-mode|rcirc-cmd-msg|rcirc-cmd-names|rcirc-cmd-nick|rcirc-cmd-oper|rcirc-cmd-part|rcirc-cmd-query|rcirc-cmd-quit|rcirc-cmd-quote|rcirc-cmd-reconnect|rcirc-cmd-topic|rcirc-cmd-whois|rcirc-complete|rcirc-completion-at-point|rcirc-condition-filter|rcirc-connect|rcirc-ctcp-sender-PING|rcirc-debug|rcirc-delete-process|rcirc-disconnect-buffer|rcirc-edit-multiline|rcirc-elapsed-lines|rcirc-facify|rcirc-fill-paragraph|rcirc-filter|rcirc-float-time|rcirc-format-response-string|rcirc-generate-log-filename|rcirc-generate-new-buffer-name|rcirc-get-buffer-create|rcirc-get-buffer|rcirc-get-temp-buffer-create|rcirc-handler-001|rcirc-handler-301|rcirc-handler-317|rcirc-handler-332|rcirc-handler-333|rcirc-handler-353|rcirc-handler-366|rcirc-handler-433|rcirc-handler-477|rcirc-handler-CTCP-response|rcirc-handler-CTCP|rcirc-handler-ERROR|rcirc-handler-INVITE|rcirc-handler-JOIN|rcirc-handler-KICK|rcirc-handler-MODE|rcirc-handler-NICK|rcirc-handler-NOTICE|rcirc-handler-PART-or-KICK|rcirc-handler-PART|rcirc-handler-PING|rcirc-handler-PONG|rcirc-handler-PRIVMSG|rcirc-handler-QUIT|rcirc-handler-TOPIC|rcirc-handler-WALLOPS|rcirc-handler-ctcp-ACTION|rcirc-handler-ctcp-KEEPALIVE|rcirc-handler-ctcp-TIME|rcirc-handler-ctcp-VERSION|rcirc-handler-generic|rcirc-ignore-update-automatic|rcirc-insert-next-input|rcirc-insert-prev-input|rcirc-join-channels-post-auth|rcirc-join-channels|rcirc-jump-to-first-unread-line|rcirc-keepalive|rcirc-kill-buffer-hook|rcirc-last-line|rcirc-last-quit-line|rcirc-log-write|rcirc-log|rcirc-looking-at-input|rcirc-make-trees|rcirc-markup-attributes|rcirc-markup-bright-nicks|rcirc-markup-fill|rcirc-markup-keywords|rcirc-markup-my-nick|rcirc-markup-timestamp|rcirc-markup-urls|rcirc-maybe-remember-nick-quit|rcirc-mode|rcirc-multiline-minor-cancel|rcirc-multiline-minor-mode|rcirc-multiline-minor-submit|rcirc-next-active-buffer|rcirc-nick-channels|rcirc-nick-remove|rcirc-nick|rcirc-nickname<|rcirc-non-irc-buffer|rcirc-omit-mode|rcirc-prev-input-string|rcirc-print|rcirc-process-command|rcirc-process-input-line|rcirc-process-list|rcirc-process-message|rcirc-process-server-response-1|rcirc-process-server-response|rcirc-prompt-for-encryption|rcirc-put-nick-channel|rcirc-rebuild-tree|rcirc-record-activity|rcirc-remove-nick-channel|rcirc-reschedule-timeout|rcirc-send-ctcp|rcirc-send-input|rcirc-send-message|rcirc-send-privmsg|rcirc-send-string|rcirc-sentinel|rcirc-server-name|rcirc-set-changed|rcirc-short-buffer-name|rcirc-sort-nicknames-join|rcirc-split-activity|rcirc-split-message|rcirc-switch-to-server-buffer|rcirc-target-buffer|rcirc-toggle-ignore-buffer-activity|rcirc-toggle-low-priority|rcirc-track-minor-mode|rcirc-update-activity-string|rcirc-update-prompt|rcirc-update-short-buffer-names|rcirc-user-nick|rcirc-view-log-file|rcirc-visible-buffers|rcirc-window-configuration-change-1|rcirc-window-configuration-change|rcirc|re-builder-unload-function|re-search-backward-lax-whitespace|re-search-forward-lax-whitespace|read--expression|read-abbrev-file|read-all-face-attributes|read-buffer-file-coding-system|read-buffer-to-switch|read-char-by-name|read-charset|read-cookie|read-envvar-name|read-extended-command|read-face-and-attribute|read-face-attribute|read-face-font|read-face-name|read-feature|read-file-name--defaults|read-file-name-default|read-file-name-internal|read-from-whole-string|read-hiragana-string|read-input|read-language-name|read-multilingual-string|read-number|read-regexp-suggestions|reb-assert-buffer-in-window|reb-auto-update|reb-change-syntax|reb-change-target-buffer|reb-color-display-p|reb-cook-regexp|reb-copy|reb-count-subexps|reb-delete-overlays|reb-display-subexp|reb-do-update|reb-empty-regexp|reb-enter-subexp-mode|reb-force-update|reb-initialize-buffer|reb-insert-regexp|reb-kill-buffer|reb-lisp-mode|reb-lisp-syntax-p|reb-mode-buffer-p|reb-mode-common|reb-mode|reb-next-match|reb-prev-match|reb-quit-subexp-mode|reb-quit|reb-read-regexp|reb-show-subexp|reb-target-binding|reb-toggle-case|reb-update-modestring|reb-update-overlays|reb-update-regexp|rebuild-mail-abbrevs|recentf-add-file|recentf-apply-filename-handlers|recentf-apply-menu-filter|recentf-arrange-by-dir|recentf-arrange-by-mode|recentf-arrange-by-rule|recentf-auto-cleanup|recentf-build-mode-rules|recentf-cancel-dialog|recentf-cleanup|recentf-dialog-goto-first|recentf-dialog-mode|recentf-dialog|recentf-digit-shortcut-command-name|recentf-dir-rule|recentf-directory-compare|recentf-dump-variable|recentf-edit-list-select|recentf-edit-list-validate|recentf-edit-list|recentf-elements|recentf-enabled-p|recentf-expand-file-name|recentf-file-name-nondir|recentf-filter-changer-select|recentf-filter-changer|recentf-hide-menu|recentf-include-p|recentf-indirect-mode-rule|recentf-keep-default-predicate|recentf-keep-p|recentf-load-list|recentf-make-default-menu-element|recentf-make-menu-element|recentf-make-menu-item|recentf-make-menu-items|recentf-match-rule|recentf-menu-bar|recentf-menu-customization-changed|recentf-menu-element-item|recentf-menu-element-value|recentf-menu-elements)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:rmail-output-body-to-file|rmail-output-to-rmail-buffer|rmail-output|rmail-parse-url|rmail-perm-variables|rmail-pop-to-buffer|rmail-previous-labeled-message|rmail-previous-message|rmail-previous-same-subject|rmail-previous-undeleted-message|rmail-probe|rmail-quit|rmail-read-label|rmail-redecode-body|rmail-reply|rmail-require-mime-maybe|rmail-resend|rmail-restore-desktop-buffer|rmail-retry-failure|rmail-revert|rmail-search-backwards|rmail-search-message|rmail-search|rmail-select-summary|rmail-set-attribute-1|rmail-set-attribute|rmail-set-header-1|rmail-set-header|rmail-set-message-counters-counter|rmail-set-message-counters|rmail-set-message-deleted-p|rmail-set-remote-password|rmail-show-message-1|rmail-show-message|rmail-simplified-subject-regexp|rmail-simplified-subject|rmail-sort-by-author|rmail-sort-by-correspondent|rmail-sort-by-date|rmail-sort-by-labels|rmail-sort-by-lines|rmail-sort-by-recipient|rmail-sort-by-subject|rmail-speedbar-button|rmail-speedbar-buttons|rmail-speedbar-find-file|rmail-speedbar-move-message-to-folder-on-line|rmail-speedbar-move-message|rmail-start-mail|rmail-summary-by-labels|rmail-summary-by-recipients|rmail-summary-by-regexp|rmail-summary-by-senders|rmail-summary-by-topic|rmail-summary-displayed|rmail-summary-exists|rmail-summary|rmail-swap-buffers-maybe|rmail-swap-buffers|rmail-toggle-header|rmail-undelete-previous-message|rmail-unfontify-buffer-function|rmail-unknown-mail-followup-to|rmail-unrmail-new-mail-maybe|rmail-unrmail-new-mail|rmail-update-summary|rmail-variables|rmail-view-buffer-kill-buffer-hook|rmail-what-message|rmail-widen-to-current-msgbeg|rmail-widen|rmail-write-region-annotate|rmail-yank-current-message|rmail|rng-c-load-schema|rng-nxml-mode-init|rng-validate-mode|rng-xsd-compile|robin-define-package|robin-modify-package|robin-use-package|rot13-other-window|rot13-region|rot13-string|rot13|rotate-yank-pointer|rotatef|round\\\\*|route|rsh|rst-minor-mode|rst-mode|ruby--at-indentation-p|ruby--detect-encoding|ruby--electric-indent-p|ruby--encoding-comment-required-p|ruby--insert-coding-comment|ruby--inverse-string-quote|ruby--string-region|ruby-accurate-end-of-block|ruby-add-log-current-method|ruby-backward-sexp|ruby-beginning-of-block|ruby-beginning-of-defun|ruby-beginning-of-indent|ruby-block-contains-point|ruby-brace-to-do-end|ruby-calculate-indent|ruby-current-indentation|ruby-deep-indent-paren-p|ruby-do-end-to-brace|ruby-end-of-block|ruby-end-of-defun|ruby-expr-beg|ruby-forward-sexp|ruby-forward-string|ruby-here-doc-end-match|ruby-imenu-create-index-in-block|ruby-imenu-create-index|ruby-in-ppss-context-p|ruby-indent-exp|ruby-indent-line|ruby-indent-size|ruby-indent-to|ruby-match-expression-expansion|ruby-mode-menu|ruby-mode-set-encoding|ruby-mode-variables|ruby-mode|ruby-move-to-block|ruby-parse-partial|ruby-parse-region|ruby-singleton-class-p|ruby-smie--args-separator-p|ruby-smie--at-dot-call|ruby-smie--backward-token|ruby-smie--bosp|ruby-smie--closing-pipe-p|ruby-smie--forward-token|ruby-smie--implicit-semi-p|ruby-smie--indent-to-stmt-p|ruby-smie--indent-to-stmt|ruby-smie--opening-pipe-p|ruby-smie--redundant-do-p|ruby-smie-rules|ruby-special-char-p|ruby-string-at-point-p|ruby-syntax-enclosing-percent-literal|ruby-syntax-expansion-allowed-p|ruby-syntax-propertize-expansion|ruby-syntax-propertize-expansions|ruby-syntax-propertize-function|ruby-syntax-propertize-heredoc|ruby-syntax-propertize-percent-literal|ruby-toggle-block|ruby-toggle-string-quotes|ruler--save-header-line-format|ruler-mode-character-validate|ruler-mode-full-window-width|ruler-mode-mouse-add-tab-stop|ruler-mode-mouse-del-tab-stop|ruler-mode-mouse-drag-any-column-iteration|ruler-mode-mouse-drag-any-column|ruler-mode-mouse-grab-any-column|ruler-mode-mouse-set-left-margin|ruler-mode-mouse-set-right-margin|ruler-mode-ruler|ruler-mode-space|ruler-mode-toggle-show-tab-stops|ruler-mode-window-col|ruler-mode|run-dig|run-hook-wrapped|run-lisp|run-network-program|run-octave|run-prolog|run-python-internal|run-python|run-scheme|run-tcl|run-window-configuration-change-hook|run-window-scroll-functions|run-with-timer|rx-\\\\*\\\\*|rx-=|rx->=|rx-and|rx-any-condense-range|rx-any-delete-from-range|rx-any|rx-anything|rx-atomic-p|rx-backref|rx-category|rx-check-any-string|rx-check-any|rx-check-backref|rx-check-category|rx-check-not|rx-check|rx-eval|rx-form|rx-greedy|rx-group-if|rx-info|rx-kleene|rx-not-char|rx-not-syntax|rx-not|rx-or|rx-regexp|rx-repeat|rx-submatch-n|rx-submatch|rx-syntax|rx-to-string|rx-trans-forms|rx|rzgrep|safe-date-to-time|same-class-fast-p|same-class-p|sanitize-coding-system-list|sasl-anonymous-response|sasl-client-mechanism|sasl-client-name|sasl-client-properties|sasl-client-property|sasl-client-server|sasl-client-service|sasl-client-set-properties|sasl-client-set-property|sasl-error|sasl-find-mechanism|sasl-login-response-1|sasl-login-response-2|sasl-make-client|sasl-make-mechanism|sasl-mechanism-name|sasl-mechanism-steps|sasl-next-step|sasl-plain-response|sasl-read-passphrase|sasl-step-data|sasl-step-set-data|sasl-unique-id-function|sasl-unique-id-number-base36|sasl-unique-id|save-buffers-kill-emacs|save-buffers-kill-terminal|save-completions-to-file|save-place-alist-to-file|save-place-dired-hook|save-place-find-file-hook|save-place-forget-unreadable-files|save-place-kill-emacs-hook|save-place-to-alist|save-places-to-alist|savehist-autosave|savehist-install|savehist-load|savehist-minibuffer-hook|savehist-mode|savehist-printable|savehist-save|savehist-trim-history|savehist-uninstall|sc-S-cite-region-limit|sc-S-mail-header-nuke-list|sc-S-mail-nuke-mail-headers|sc-S-preferred-attribution-list|sc-S-preferred-header-style|sc-T-auto-fill-region|sc-T-confirm-always|sc-T-describe|sc-T-downcase|sc-T-electric-circular|sc-T-electric-references|sc-T-fixup-whitespace|sc-T-mail-nuke-blank-lines|sc-T-nested-citation|sc-T-use-only-preferences|sc-add-citation-level|sc-ask|sc-attribs-!-addresses|sc-attribs-%@-addresses|sc-attribs-<>-addresses|sc-attribs-chop-address|sc-attribs-chop-namestring|sc-attribs-emailname|sc-attribs-extract-namestring|sc-attribs-filter-namelist|sc-attribs-strip-initials|sc-cite-coerce-cited-line|sc-cite-coerce-dumb-citer|sc-cite-line|sc-cite-original|sc-cite-regexp|sc-cite-region|sc-describe|sc-electric-mode|sc-eref-abort|sc-eref-exit|sc-eref-goto|sc-eref-insert-selected|sc-eref-jump|sc-eref-next|sc-eref-prev|sc-eref-setn|sc-eref-show|sc-fill-if-different|sc-get-address|sc-guess-attribution|sc-guess-nesting|sc-hdr|sc-header-attributed-writes|sc-header-author-writes|sc-header-inarticle-writes|sc-header-on-said|sc-header-regarding-adds|sc-header-verbose|sc-insert-citation|sc-insert-reference|sc-mail-append-field|sc-mail-build-nuke-frame|sc-mail-check-from|sc-mail-cleanup-blank-lines|sc-mail-error-in-mail-field|sc-mail-fetch-field|sc-mail-field-query|sc-mail-field|sc-mail-nuke-continuation-line|sc-mail-nuke-header-line|sc-mail-nuke-line|sc-mail-process-headers|sc-make-citation|sc-minor-mode|sc-name-substring|sc-no-blank-line-or-header|sc-no-header|sc-open-line|sc-raw-mode-toggle|sc-recite-line|sc-recite-region|sc-scan-info-alist|sc-select-attribution|sc-set-variable|sc-setup-filladapt|sc-setvar-symbol|sc-toggle-fn|sc-toggle-symbol|sc-toggle-var|sc-uncite-line|sc-uncite-region|sc-valid-index-p|sc-whofrom|scan-buf-move-to-region|scan-buf-next-region|scan-buf-previous-region|scheme-compile-definition-and-go|scheme-compile-definition|scheme-compile-file|scheme-compile-region-and-go|scheme-compile-region|scheme-debugger-mode-commands|scheme-debugger-mode-initialize|scheme-debugger-mode|scheme-debugger-self-insert|scheme-expand-current-form|scheme-form-at-point|scheme-get-old-input|scheme-get-process|scheme-indent-function|scheme-input-filter|scheme-interaction-mode-commands|scheme-interaction-mode-initialize|scheme-interaction-mode|scheme-interactively-start-process|scheme-let-indent|scheme-load-file|scheme-mode-commands|scheme-mode-variables|scheme-mode|scheme-proc|scheme-send-definition-and-go|scheme-send-definition|scheme-send-last-sexp|scheme-send-region-and-go|scheme-send-region|scheme-start-file|scheme-syntax-propertize-sexp-comment|scheme-syntax-propertize|scheme-trace-procedure|scroll-all-beginning-of-buffer-all|scroll-all-check-to-scroll|scroll-all-end-of-buffer-all|scroll-all-function-all|scroll-all-mode|scroll-all-page-down-all|scroll-all-page-up-all|scroll-all-scroll-down-all|scroll-all-scroll-up-all|scroll-bar-columns|scroll-bar-drag-1|scroll-bar-drag-position|scroll-bar-drag|scroll-bar-horizontal-drag-1|scroll-bar-horizontal-drag|scroll-bar-lines|scroll-bar-maybe-set-window-start|scroll-bar-scroll-down|scroll-bar-scroll-up|scroll-bar-set-window-start|scroll-bar-toolkit-horizontal-scroll|scroll-bar-toolkit-scroll|scroll-down-line|scroll-lock-mode|scroll-other-window-down|scroll-up-line|scss-mode|scss-smie--not-interpolation-p|sdb|search-backward-lax-whitespace|search-backward-regexp|search-emacs-glossary|search-forward-lax-whitespace|search-forward-regexp|search-pages|search-unencodable-char|search|second|seconds-to-string|secrets-close-session|secrets-collection-handler|secrets-collection-path|secrets-create-collection|secrets-create-item|secrets-delete-alias|secrets-delete-collection|secrets-delete-item|secrets-empty-path|secrets-expand-collection|secrets-expand-item|secrets-get-alias|secrets-get-attribute|secrets-get-attributes|secrets-get-collection-properties|secrets-get-collection-property|secrets-get-collections|secrets-get-item-properties|secrets-get-item-property|secrets-get-items|secrets-get-secret|secrets-item-path|secrets-list-collections|secrets-list-items|secrets-mode|secrets-open-session|secrets-prompt-handler|secrets-prompt|secrets-search-items|secrets-set-alias|secrets-show-collections|secrets-show-secrets|secrets-tree-widget-after-toggle-function|secrets-tree-widget-show-password|secrets-unlock-collection|secure-hash|select-frame-by-name|select-frame-set-input-focus|select-frame|select-message-coding-system|select-safe-coding-system-interactively|select-safe-coding-system|select-scheme|select-tags-table-mode|select-tags-table-quit|select-tags-table-select|select-tags-table|select-window|selected-frame|selected-window|self-insert-and-exit|self-insert-command|semantic--set-buffer-cache|semantic--tag-attributes-cdr|semantic--tag-copy-properties|semantic--tag-deep-copy-attributes|semantic--tag-deep-copy-tag-list|semantic--tag-deep-copy-value|semantic--tag-expand|semantic--tag-expanded-p|semantic--tag-find-parent-by-name|semantic--tag-get-property|semantic--tag-link-cache-to-buffer|semantic--tag-link-list-to-buffer|semantic--tag-link-to-buffer|semantic--tag-overlay-cdr|semantic--tag-properties-cdr|semantic--tag-put-property-no-side-effect|semantic--tag-put-property|semantic--tag-run-hooks|semantic--tag-set-overlay|semantic--tag-unlink-cache-from-buffer|semantic--tag-unlink-from-buffer|semantic--tag-unlink-list-from-buffer|semantic--umatched-syntax-needs-refresh-p|semantic-active-p|semantic-add-label|semantic-add-minor-mode|semantic-add-system-include|semantic-alias-obsolete|semantic-analyze-completion-at-point-function|semantic-analyze-current-context|semantic-analyze-current-tag|semantic-analyze-nolongprefix-completion-at-point-function|semantic-analyze-notc-completion-at-point-function|semantic-analyze-possible-completions|semantic-analyze-proto-impl-toggle|semantic-analyze-type-constants|semantic-assert-valid-token|semantic-bovinate-from-nonterminal-full|semantic-bovinate-from-nonterminal|semantic-bovinate-region-until-error|semantic-bovinate-stream|semantic-bovinate-toplevel|semantic-buffer-local-value|semantic-c-add-preprocessor-symbol|semantic-cache-data-post-command-hook|semantic-cache-data-to-buffer|semantic-calculate-scope|semantic-change-function|semantic-clean-token-of-unmatched-syntax|semantic-clean-unmatched-syntax-in-buffer|semantic-clean-unmatched-syntax-in-region|semantic-clear-parser-warnings|semantic-clear-toplevel-cache|semantic-clear-unmatched-syntax-cache|semantic-comment-lexer|semantic-complete-analyze-and-replace|semantic-complete-analyze-inline-idle|semantic-complete-analyze-inline|semantic-complete-inline-project|semantic-complete-jump-local-members|semantic-complete-jump-local|semantic-complete-jump|semantic-complete-self-insert|semantic-complete-symbol|semantic-create-imenu-index|semantic-create-tag-proxy|semantic-ctxt-current-mode|semantic-current-tag-parent|semantic-current-tag|semantic-customize-system-include-path|semantic-debug|semantic-decoration-include-visit|semantic-decoration-unparsed-include-do-reset)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:semantic-default-c-setup|semantic-default-elisp-setup|semantic-default-html-setup|semantic-default-make-setup|semantic-default-scheme-setup|semantic-default-texi-setup|semantic-delete-overlay-maybe|semantic-dependency-tag-file|semantic-describe-buffer-var-helper|semantic-describe-buffer|semantic-describe-tag|semantic-desktop-ignore-this-minor-mode|semantic-documentation-for-tag|semantic-dump-parser-warnings|semantic-edits-incremental-parser|semantic-elapsed-time|semantic-equivalent-tag-p|semantic-error-if-unparsed|semantic-event-window|semantic-exit-on-input|semantic-fetch-available-tags|semantic-fetch-tags-fast|semantic-fetch-tags|semantic-file-tag-table|semantic-file-token-stream|semantic-find-file-noselect|semantic-find-first-tag-by-name|semantic-find-tag-by-overlay-in-region|semantic-find-tag-by-overlay-next|semantic-find-tag-by-overlay-prev|semantic-find-tag-by-overlay|semantic-find-tag-for-completion|semantic-find-tag-parent-by-overlay|semantic-find-tags-by-scope-protection|semantic-find-tags-included|semantic-flatten-tags-table|semantic-flex-buffer|semantic-flex-end|semantic-flex-keyword-get|semantic-flex-keyword-p|semantic-flex-keyword-put|semantic-flex-keywords|semantic-flex-list|semantic-flex-make-keyword-table|semantic-flex-map-keywords|semantic-flex-start|semantic-flex-text|semantic-flex|semantic-force-refresh|semantic-foreign-tag-check|semantic-foreign-tag-invalid|semantic-foreign-tag-p|semantic-foreign-tag|semantic-format-tag-concise-prototype|semantic-format-tag-name|semantic-format-tag-prototype|semantic-format-tag-summarize|semantic-fw-add-edebug-spec|semantic-gcc-setup|semantic-get-cache-data|semantic-go-to-tag|semantic-highlight-edits-mode|semantic-highlight-edits-new-change-hook-fcn|semantic-highlight-func-highlight-current-tag|semantic-highlight-func-menu|semantic-highlight-func-mode|semantic-highlight-func-popup-menu|semantic-ia-complete-symbol-menu|semantic-ia-complete-symbol|semantic-ia-complete-tip|semantic-ia-describe-class|semantic-ia-fast-jump|semantic-ia-fast-mouse-jump|semantic-ia-show-doc|semantic-ia-show-summary|semantic-ia-show-variants|semantic-idle-completions-mode|semantic-idle-scheduler-mode|semantic-idle-summary-mode|semantic-insert-foreign-tag-change-log-mode|semantic-insert-foreign-tag-default|semantic-insert-foreign-tag-log-edit-mode|semantic-insert-foreign-tag|semantic-install-function-overrides|semantic-lex-beginning-of-line|semantic-lex-buffer|semantic-lex-catch-errors|semantic-lex-charquote|semantic-lex-close-paren|semantic-lex-comments-as-whitespace|semantic-lex-comments|semantic-lex-debug-break|semantic-lex-debug|semantic-lex-default-action|semantic-lex-end-block|semantic-lex-expand-block-specs|semantic-lex-highlight-token|semantic-lex-ignore-comments|semantic-lex-ignore-newline|semantic-lex-ignore-whitespace|semantic-lex-init|semantic-lex-keyword-get|semantic-lex-keyword-invalid|semantic-lex-keyword-p|semantic-lex-keyword-put|semantic-lex-keyword-set|semantic-lex-keyword-symbol|semantic-lex-keyword-value|semantic-lex-keywords|semantic-lex-list|semantic-lex-make-keyword-table|semantic-lex-make-type-table|semantic-lex-map-keywords|semantic-lex-map-symbols|semantic-lex-map-types|semantic-lex-newline-as-whitespace|semantic-lex-newline|semantic-lex-number|semantic-lex-one-token|semantic-lex-open-paren|semantic-lex-paren-or-list|semantic-lex-preset-default-types|semantic-lex-punctuation-type|semantic-lex-punctuation|semantic-lex-push-token|semantic-lex-spp-table-write-slot-value|semantic-lex-start-block|semantic-lex-string|semantic-lex-symbol-or-keyword|semantic-lex-test|semantic-lex-token-bounds|semantic-lex-token-class|semantic-lex-token-end|semantic-lex-token-p|semantic-lex-token-start|semantic-lex-token-text|semantic-lex-token-with-text-p|semantic-lex-token-without-text-p|semantic-lex-token|semantic-lex-type-get|semantic-lex-type-invalid|semantic-lex-type-p|semantic-lex-type-put|semantic-lex-type-set|semantic-lex-type-symbol|semantic-lex-type-value|semantic-lex-types|semantic-lex-unterminated-syntax-detected|semantic-lex-unterminated-syntax-protection|semantic-lex-whitespace|semantic-lex|semantic-make-local-hook|semantic-make-overlay|semantic-map-buffers|semantic-map-mode-buffers|semantic-menu-item|semantic-mode-line-update|semantic-mode|semantic-narrow-to-tag|semantic-new-buffer-fcn|semantic-next-unmatched-syntax|semantic-obtain-foreign-tag|semantic-overlay-buffer|semantic-overlay-delete|semantic-overlay-end|semantic-overlay-get|semantic-overlay-lists|semantic-overlay-live-p|semantic-overlay-move|semantic-overlay-next-change|semantic-overlay-p|semantic-overlay-previous-change|semantic-overlay-properties|semantic-overlay-put|semantic-overlay-start|semantic-overlays-at|semantic-overlays-in|semantic-overload-symbol-from-function|semantic-parse-changes-default|semantic-parse-changes|semantic-parse-region-default|semantic-parse-region|semantic-parse-stream-default|semantic-parse-stream|semantic-parse-tree-needs-rebuild-p|semantic-parse-tree-needs-update-p|semantic-parse-tree-set-needs-rebuild|semantic-parse-tree-set-needs-update|semantic-parse-tree-set-up-to-date|semantic-parse-tree-unparseable-p|semantic-parse-tree-unparseable|semantic-parse-tree-up-to-date-p|semantic-parser-working-message|semantic-popup-menu|semantic-push-parser-warning|semantic-read-event|semantic-read-function|semantic-read-symbol|semantic-read-type|semantic-read-variable|semantic-refresh-tags-safe|semantic-remove-system-include|semantic-repeat-parse-whole-stream|semantic-require-version|semantic-reset-system-include|semantic-run-mode-hooks|semantic-safe|semantic-sanity-check|semantic-set-unmatched-syntax-cache|semantic-show-label|semantic-show-parser-state-auto-marker|semantic-show-parser-state-marker|semantic-show-parser-state-mode|semantic-show-unmatched-lex-tokens-fetch|semantic-show-unmatched-syntax-mode|semantic-show-unmatched-syntax-next|semantic-show-unmatched-syntax|semantic-showing-unmatched-syntax-p|semantic-simple-lexer|semantic-something-to-stream|semantic-something-to-tag-table|semantic-speedbar-analysis|semantic-stickyfunc-fetch-stickyline|semantic-stickyfunc-menu|semantic-stickyfunc-mode|semantic-stickyfunc-popup-menu|semantic-stickyfunc-tag-to-stick|semantic-subst-char-in-string|semantic-symref-find-file-references-by-name|semantic-symref-find-references-by-name|semantic-symref-find-tags-by-completion|semantic-symref-find-tags-by-name|semantic-symref-find-tags-by-regexp|semantic-symref-find-text|semantic-symref-regexp|semantic-symref-symbol|semantic-symref-tool-cscope-child-p|semantic-symref-tool-cscope-list-p|semantic-symref-tool-cscope-p|semantic-symref-tool-cscope|semantic-symref-tool-global-child-p|semantic-symref-tool-global-list-p|semantic-symref-tool-global-p|semantic-symref-tool-global|semantic-symref-tool-grep-child-p|semantic-symref-tool-grep-list-p|semantic-symref-tool-grep-p|semantic-symref-tool-grep|semantic-symref-tool-idutils-child-p|semantic-symref-tool-idutils-list-p|semantic-symref-tool-idutils-p|semantic-symref-tool-idutils|semantic-symref|semantic-tag-add-hook|semantic-tag-alias-class|semantic-tag-alias-definition|semantic-tag-attributes|semantic-tag-bounds|semantic-tag-buffer|semantic-tag-children-compatibility|semantic-tag-class|semantic-tag-clone|semantic-tag-code-detail|semantic-tag-components-default|semantic-tag-components-with-overlays-default|semantic-tag-components-with-overlays|semantic-tag-components|semantic-tag-copy|semantic-tag-deep-copy-one-tag|semantic-tag-docstring|semantic-tag-end|semantic-tag-external-member-parent|semantic-tag-faux-p|semantic-tag-file-name|semantic-tag-function-arguments|semantic-tag-function-constructor-p|semantic-tag-function-destructor-p|semantic-tag-function-parent|semantic-tag-function-throws|semantic-tag-get-attribute|semantic-tag-in-buffer-p|semantic-tag-include-filename-default|semantic-tag-include-filename|semantic-tag-include-system-p|semantic-tag-make-assoc-list|semantic-tag-make-plist|semantic-tag-mode|semantic-tag-modifiers|semantic-tag-name|semantic-tag-named-parent|semantic-tag-new-alias|semantic-tag-new-code|semantic-tag-new-function|semantic-tag-new-include|semantic-tag-new-package|semantic-tag-new-type|semantic-tag-new-variable|semantic-tag-of-class-p|semantic-tag-of-type-p|semantic-tag-overlay|semantic-tag-p|semantic-tag-properties|semantic-tag-prototype-p|semantic-tag-put-attribute-no-side-effect|semantic-tag-put-attribute|semantic-tag-remove-hook|semantic-tag-resolve-proxy|semantic-tag-set-bounds|semantic-tag-set-faux|semantic-tag-set-name|semantic-tag-set-proxy|semantic-tag-similar-with-subtags-p|semantic-tag-start|semantic-tag-type-compound-p|semantic-tag-type-interfaces|semantic-tag-type-members|semantic-tag-type-superclass-protection|semantic-tag-type-superclasses|semantic-tag-type|semantic-tag-variable-constant-p|semantic-tag-variable-default|semantic-tag-with-position-p|semantic-tag-write-list-slot-value|semantic-tag|semantic-test-data-cache|semantic-throw-on-input|semantic-toggle-minor-mode-globally|semantic-token-type-parent|semantic-unmatched-syntax-overlay-p|semantic-unmatched-syntax-tokens|semantic-varalias-obsolete|semantic-with-buffer-narrowed-to-current-tag|semantic-with-buffer-narrowed-to-tag|semanticdb-database-typecache-child-p|semanticdb-database-typecache-list-p|semanticdb-database-typecache-p|semanticdb-database-typecache|semanticdb-enable-gnu-global-databases|semanticdb-file-table-object|semanticdb-find-adebug-lost-includes|semanticdb-find-result-length|semanticdb-find-result-nth-in-buffer|semanticdb-find-result-nth|semanticdb-find-table-for-include|semanticdb-find-tags-by-class|semanticdb-find-tags-by-name-regexp|semanticdb-find-tags-by-name|semanticdb-find-tags-for-completion|semanticdb-find-test-translate-path|semanticdb-find-translate-path|semanticdb-minor-mode-p|semanticdb-project-database-file-child-p|semanticdb-project-database-file-list-p|semanticdb-project-database-file-p|semanticdb-project-database-file|semanticdb-strip-find-results|semanticdb-typecache-child-p|semanticdb-typecache-find|semanticdb-typecache-list-p|semanticdb-typecache-p|semanticdb-typecache|semanticdb-without-unloaded-file-searches|senator-copy-tag-to-register|senator-copy-tag|senator-go-to-up-reference|senator-kill-tag|senator-next-tag|senator-previous-tag|senator-transpose-tags-down|senator-transpose-tags-up|senator-yank-tag|send-invisible|send-process-next-char|send-region|send-string|sendmail-query-once|sendmail-query-user-about-smtp|sendmail-send-it|sendmail-sync-aliases|sendmail-user-agent-compose|sentence-at-point|seq--count-successive|seq--drop-list|seq--drop-while-list|seq--take-list|seq--take-while-list|seq-concatenate|seq-contains-p|seq-copy|seq-count|seq-do|seq-doseq|seq-drop-while|seq-drop|seq-each|seq-elt|seq-empty-p|seq-every-p|seq-filter|seq-length|seq-map|seq-reduce|seq-remove|seq-reverse|seq-some-p|seq-sort|seq-subseq|seq-take-while|seq-take|seq-uniq|serial-mode-line-config-menu-1|serial-mode-line-config-menu|serial-mode-line-speed-menu-1|serial-mode-line-speed-menu|serial-nice-speed-history|serial-port-is-file-p|serial-read-name|serial-read-speed|serial-speed|serial-supported-or-barf|serial-update-config-menu|serial-update-speed-menu|server--on-display-p|server-add-client|server-buffer-done|server-clients-with|server-create-tty-frame|server-create-window-system-frame|server-delete-client|server-done|server-edit|server-ensure-safe-dir|server-eval-and-print|server-eval-at|server-execute-continuation|server-execute|server-force-delete|server-force-stop|server-generate-key|server-get-auth-key|server-goto-line-column|server-goto-toplevel|server-handle-delete-frame|server-handle-suspend-tty|server-kill-buffer|server-kill-emacs-query-function|server-log|server-mode|server-process-filter|server-quote-arg|server-reply-print|server-return-error|server-running-p|server-save-buffers-kill-terminal|server-select-display|server-send-string|server-sentinel|server-start|server-switch-buffer|server-temp-file-p|server-unload-function|server-unquote-arg|server-unselect-display|server-visit-files|server-with-environment|ses\\\\+|ses--advice-copy-region-as-kill|ses--advice-yank|ses--cell|ses--clean-!|ses--clean-_|ses--letref|ses--local-printer|ses--locprn-compiled--cmacro|ses--locprn-compiled|ses--locprn-def--cmacro|ses--locprn-def|ses--locprn-local-printer-list--cmacro|ses--locprn-local-printer-list|ses--locprn-number--cmacro|ses--locprn-number|ses--locprn-p--cmacro|ses--locprn-p|ses--metaprogramming)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:ses--time-check|ses-adjust-print-width|ses-append-row-jump-first-column|ses-aset-with-undo|ses-average|ses-begin-change|ses-calculate-cell|ses-call-printer|ses-cell--formula--cmacro|ses-cell--formula|ses-cell--printer--cmacro|ses-cell--printer|ses-cell--properties--cmacro|ses-cell--properties|ses-cell--references--cmacro|ses-cell--references|ses-cell--symbol--cmacro|ses-cell--symbol|ses-cell-formula|ses-cell-p|ses-cell-printer|ses-cell-property-pop|ses-cell-property|ses-cell-references|ses-cell-set-formula|ses-cell-symbol|ses-cell-value|ses-center-span|ses-center|ses-check-curcell|ses-cleanup|ses-clear-cell-backward|ses-clear-cell-forward|ses-clear-cell|ses-col-printer|ses-col-width|ses-column-letter|ses-column-printers|ses-column-widths|ses-command-hook|ses-copy-region-helper|ses-copy-region|ses-create-cell-symbol|ses-create-cell-variable-range|ses-create-cell-variable|ses-create-header-string|ses-dashfill-span|ses-dashfill|ses-decode-cell-symbol|ses-default-printer|ses-define-local-printer|ses-delete-blanks|ses-delete-column|ses-delete-line|ses-delete-row|ses-destroy-cell-variable-range|ses-dorange|ses-edit-cell|ses-end-of-line|ses-export-keymap|ses-export-tab|ses-export-tsf|ses-export-tsv|ses-file-format-extend-parameter-list|ses-formula-record|ses-formula-references|ses-forward-or-insert|ses-get-cell|ses-goto-data|ses-goto-print|ses-header-line-menu|ses-header-row|ses-in-print-area|ses-initialize-Dijkstra-attempt|ses-insert-column|ses-insert-range-click|ses-insert-range|ses-insert-row|ses-insert-ses-range-click|ses-insert-ses-range|ses-is-cell-sym-p|ses-jump-safe|ses-jump|ses-kill-override|ses-load|ses-local-printer-compile|ses-make-cell--cmacro|ses-make-cell|ses-make-local-printer-info|ses-mark-column|ses-mark-row|ses-menu|ses-mode-print-map|ses-mode|ses-print-cell-new-width|ses-print-cell|ses-printer-record|ses-printer-validate|ses-range|ses-read-cell-printer|ses-read-cell|ses-read-column-printer|ses-read-default-printer|ses-read-printer|ses-read-symbol|ses-recalculate-all|ses-recalculate-cell|ses-reconstruct-all|ses-refresh-local-printer|ses-relocate-all|ses-relocate-formula|ses-relocate-range|ses-relocate-symbol|ses-rename-cell|ses-renarrow-buffer|ses-repair-cell-reference-all|ses-replace-name-in-formula|ses-reprint-all|ses-reset-header-string|ses-safe-formula|ses-safe-printer|ses-select|ses-set-cell|ses-set-column-width|ses-set-curcell|ses-set-header-row|ses-set-localvars|ses-set-parameter|ses-set-with-undo|ses-setter-with-undo|ses-setup|ses-sort-column-click|ses-sort-column|ses-sym-rowcol|ses-tildefill-span|ses-truncate-cell|ses-unload-function|ses-unsafe|ses-unset-header-row|ses-update-cells|ses-vector-delete|ses-vector-insert|ses-warn-unsafe|ses-widen|ses-write-cells|ses-yank-cells|ses-yank-one|ses-yank-pop|ses-yank-resize|ses-yank-tsf|set-allout-regexp|set-auto-mode-0|set-auto-mode-1|set-background-color|set-border-color|set-buffer-file-coding-system|set-buffer-process-coding-system|set-cdabbrev-buffer|set-charset-plist|set-clipboard-coding-system|set-cmpl-prefix-entry-head|set-cmpl-prefix-entry-tail|set-coding-priority|set-comment-column|set-completion-last-use-time|set-completion-num-uses|set-completion-string|set-cursor-color|set-default-coding-systems|set-default-font|set-default-toplevel-value|set-difference|set-display-table-and-terminal-coding-system|set-downcase-syntax|set-exclusive-or|set-face-attribute-from-resource|set-face-attributes-from-resources|set-face-background-pixmap|set-face-bold-p|set-face-doc-string|set-face-documentation|set-face-inverse-video-p|set-face-italic-p|set-face-underline-p|set-file-name-coding-system|set-fill-column|set-fill-prefix|set-font-encoding|set-foreground-color|set-frame-font|set-frame-name|set-fringe-mode-1|set-fringe-mode|set-fringe-style|set-goal-column|set-hard-newline-properties|set-input-interrupt-mode|set-input-meta-mode|set-justification-center|set-justification-full|set-justification-left|set-justification-none|set-justification-right|set-justification|set-keyboard-coding-system-internal|set-language-environment-charset|set-language-environment-coding-systems|set-language-environment-input-method|set-language-environment-nonascii-translation|set-language-environment-unibyte|set-language-environment|set-language-info-alist|set-language-info-internal|set-language-info|set-locale-environment|set-mark-command|set-mode-local-parent|set-mouse-color|set-nested-alist|set-next-selection-coding-system|set-output-flow-control|set-page-delimiter|set-process-filter-multibyte|set-process-inherit-coding-system-flag|set-process-window-size|set-quit-char|set-rcirc-decode-coding-system|set-rcirc-encode-coding-system|set-rmail-inbox-list|set-safe-terminal-coding-system-internal|set-scroll-bar-mode|set-selection-coding-system|set-selective-display|set-slot-value|set-temporary-overlay-map|set-terminal-coding-system-internal|set-time-zone-rule|set-upcase-syntax|set-variable|set-viper-state-in-major-mode|set-window-buffer-start-and-point|set-window-dot|set-window-new-normal|set-window-new-pixel|set-window-new-total|set-window-redisplay-end-trigger|set-window-text-height|set-woman-file-regexp|setenv-internal|setq-mode-local|setup-chinese-environment-map|setup-cyrillic-environment-map|setup-default-fontset|setup-ethiopic-environment-internal|setup-european-environment-map|setup-indian-environment-map|setup-japanese-environment-internal|setup-korean-environment-internal|setup-specified-language-environment|seventh|sexp-at-point|sgml-at-indentation-p|sgml-attributes|sgml-auto-attributes|sgml-beginning-of-tag|sgml-calculate-indent|sgml-close-tag|sgml-comment-indent-new-line|sgml-comment-indent|sgml-delete-tag|sgml-electric-tag-pair-before-change-function|sgml-electric-tag-pair-flush-overlays|sgml-electric-tag-pair-mode|sgml-empty-tag-p|sgml-fill-nobreak|sgml-get-context|sgml-guess-indent|sgml-html-meta-auto-coding-function|sgml-indent-line|sgml-lexical-context|sgml-looking-back-at|sgml-make-syntax-table|sgml-make-tag--cmacro|sgml-make-tag|sgml-maybe-end-tag|sgml-maybe-name-self|sgml-mode-facemenu-add-face-function|sgml-mode-flyspell-verify|sgml-mode|sgml-name-8bit-mode|sgml-name-char|sgml-name-self|sgml-namify-char|sgml-parse-dtd|sgml-parse-tag-backward|sgml-parse-tag-name|sgml-point-entered|sgml-pretty-print|sgml-quote|sgml-show-context|sgml-skip-tag-backward|sgml-skip-tag-forward|sgml-slash-matching|sgml-slash|sgml-tag-end--cmacro|sgml-tag-end|sgml-tag-help|sgml-tag-name--cmacro|sgml-tag-name|sgml-tag-p--cmacro|sgml-tag-p|sgml-tag-start--cmacro|sgml-tag-start|sgml-tag-text-p|sgml-tag-type--cmacro|sgml-tag-type|sgml-tag|sgml-tags-invisible|sgml-unclosed-tag-p|sgml-validate|sgml-value|sgml-xml-auto-coding-function|sgml-xml-guess|sh--cmd-completion-table|sh--inside-noncommand-expression|sh--maybe-here-document|sh--vars-before-point|sh-add-completer|sh-add|sh-after-hack-local-variables|sh-append-backslash|sh-append|sh-assignment|sh-backslash-region|sh-basic-indent-line|sh-beginning-of-command|sh-blink|sh-calculate-indent|sh-canonicalize-shell|sh-case|sh-cd-here|sh-check-rule|sh-completion-at-point-function|sh-current-defun-name|sh-debug|sh-delete-backslash|sh-electric-here-document-mode|sh-end-of-command|sh-execute-region|sh-feature|sh-find-prev-matching|sh-find-prev-switch|sh-font-lock-backslash-quote|sh-font-lock-keywords-1|sh-font-lock-keywords-2|sh-font-lock-keywords|sh-font-lock-open-heredoc|sh-font-lock-paren|sh-font-lock-quoted-subshell|sh-font-lock-syntactic-face-function|sh-for|sh-function|sh-get-indent-info|sh-get-indent-var-for-line|sh-get-kw|sh-get-word|sh-goto-match-for-done|sh-goto-matching-case|sh-goto-matching-if|sh-guess-basic-offset|sh-handle-after-case-label|sh-handle-prev-case-alt-end|sh-handle-prev-case|sh-handle-prev-do|sh-handle-prev-done|sh-handle-prev-else|sh-handle-prev-esac|sh-handle-prev-fi|sh-handle-prev-if|sh-handle-prev-open|sh-handle-prev-rc-case|sh-handle-prev-then|sh-handle-this-close|sh-handle-this-do|sh-handle-this-done|sh-handle-this-else|sh-handle-this-esac|sh-handle-this-fi|sh-handle-this-rc-case|sh-handle-this-then|sh-help-string-for-variable|sh-if|sh-in-comment-or-string|sh-indent-line|sh-indexed-loop|sh-is-quoted-p|sh-learn-buffer-indent|sh-learn-line-indent|sh-load-style|sh-make-vars-local|sh-mark-init|sh-mark-line|sh-maybe-here-document|sh-mkword-regexpr|sh-mode-syntax-table|sh-mode|sh-modify|sh-must-support-indent|sh-name-style|sh-prev-line|sh-prev-stmt|sh-prev-thing|sh-quoted-p|sh-read-variable|sh-remember-variable|sh-repeat|sh-reset-indent-vars-to-global-values|sh-safe-forward-sexp|sh-save-styles-to-buffer|sh-select|sh-send-line-or-region-and-step|sh-send-text|sh-set-indent|sh-set-shell|sh-set-var-value|sh-shell-initialize-variables|sh-shell-process|sh-show-indent|sh-show-shell|sh-smie--continuation-start-indent|sh-smie--default-backward-token|sh-smie--default-forward-token|sh-smie--keyword-p|sh-smie--looking-back-at-continuation-p|sh-smie--newline-semi-p|sh-smie--rc-after-special-arg-p|sh-smie--rc-newline-semi-p|sh-smie--sh-keyword-in-p|sh-smie--sh-keyword-p|sh-smie-rc-backward-token|sh-smie-rc-forward-token|sh-smie-rc-rules|sh-smie-sh-backward-token|sh-smie-sh-forward-token|sh-smie-sh-rules|sh-syntax-propertize-function|sh-syntax-propertize-here-doc|sh-this-is-a-continuation|sh-tmp-file|sh-until|sh-var-value|sh-while-getopts|sh-while|sha1|shadow-add-to-todo|shadow-cancel|shadow-cluster-name|shadow-cluster-primary|shadow-cluster-regexp|shadow-contract-file-name|shadow-copy-file|shadow-copy-files|shadow-define-cluster|shadow-define-literal-group|shadow-define-regexp-group|shadow-expand-cluster-in-file-name|shadow-expand-file-name|shadow-file-match|shadow-find|shadow-get-cluster|shadow-get-user|shadow-initialize|shadow-insert-var|shadow-invalidate-hashtable|shadow-local-file|shadow-make-cluster|shadow-make-fullname|shadow-make-group|shadow-parse-fullname|shadow-parse-name|shadow-read-files|shadow-read-site|shadow-regexp-superquote|shadow-remove-from-todo|shadow-replace-name-component|shadow-same-site|shadow-save-buffers-kill-emacs|shadow-save-todo-file|shadow-set-cluster|shadow-shadows-of-1|shadow-shadows-of|shadow-shadows|shadow-site-cluster|shadow-site-match|shadow-site-primary|shadow-suffix|shadow-union|shadow-write-info-file|shadow-write-todo-file|shadowfile-unload-function|shared-initialize|shell--command-completion-data|shell--parse-pcomplete-arguments|shell--requote-argument|shell--unquote&requote-argument|shell--unquote-argument|shell-apply-ansi-color|shell-backward-command|shell-c-a-p-replace-by-expanded-directory|shell-cd|shell-command-completion-function|shell-command-completion|shell-command-on-region|shell-command-sentinel|shell-command|shell-completion-vars|shell-copy-environment-variable|shell-directory-tracker|shell-dirstack-message|shell-dirtrack-mode|shell-dirtrack-toggle|shell-dynamic-complete-command|shell-dynamic-complete-environment-variable|shell-dynamic-complete-filename|shell-environment-variable-completion|shell-extract-num|shell-filename-completion|shell-filter-ctrl-a-ctrl-b|shell-forward-command|shell-match-partial-variable|shell-mode|shell-prefixed-directory-name|shell-process-cd|shell-process-popd|shell-process-pushd|shell-quote-wildcard-pattern|shell-reapply-ansi-color|shell-replace-by-expanded-directory|shell-resync-dirs|shell-script-mode|shell-snarf-envar|shell-strip-ctrl-m|shell-unquote-argument|shell-write-history-on-exit|shell|shiftf|should-error|should-not|should|show-all|show-branches|show-buffer|show-children|show-entry|show-ifdef-block|show-ifdefs|show-paren--categorize-paren|show-paren--default|show-paren--locate-near-paren|show-paren--unescaped-p|show-paren-function|show-paren-mode|show-subtree|shr--extract-best-source|shr--get-media-pref|shr-add-font|shr-browse-image|shr-browse-url|shr-buffer-width|shr-char-breakable-p--inliner|shr-char-breakable-p|shr-char-kinsoku-bol-p--inliner|shr-char-kinsoku-bol-p|shr-char-kinsoku-eol-p--inliner|shr-char-kinsoku-eol-p|shr-char-nospace-p--inliner|shr-char-nospace-p|shr-color->hexadecimal|shr-color-check|shr-color-hsl-to-rgb-fractions|shr-color-hue-to-rgb|shr-color-relative-to-absolute|shr-color-set-minimum-interval|shr-color-visible|shr-colorize-region|shr-column-specs|shr-copy-url|shr-count|shr-descend|shr-dom-print|shr-dom-to-xml|shr-encode-url|shr-ensure-newline|shr-ensure-paragraph|shr-expand-newlines|shr-expand-url|shr-find-fill-point|shr-fold-text|shr-fontize-dom|shr-generic|shr-get-image-data|shr-heading|shr-image-displayer|shr-image-fetched|shr-image-from-data|shr-indent)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:shr-insert-image|shr-insert-table-ruler|shr-insert-table|shr-insert|shr-make-table-1|shr-make-table|shr-max-columns|shr-mouse-browse-url|shr-next-link|shr-parse-base|shr-parse-image-data|shr-parse-style|shr-previous-link|shr-previous-newline-padding-width|shr-pro-rate-columns|shr-put-image|shr-remove-trailing-whitespace|shr-render-buffer|shr-render-region|shr-render-td|shr-rescale-image|shr-save-contents|shr-show-alt-text|shr-store-contents|shr-table-widths|shr-tag-a|shr-tag-audio|shr-tag-b|shr-tag-base|shr-tag-blockquote|shr-tag-body|shr-tag-br|shr-tag-comment|shr-tag-dd|shr-tag-del|shr-tag-div|shr-tag-dl|shr-tag-dt|shr-tag-em|shr-tag-font|shr-tag-h1|shr-tag-h2|shr-tag-h3|shr-tag-h4|shr-tag-h5|shr-tag-h6|shr-tag-hr|shr-tag-i|shr-tag-img|shr-tag-label|shr-tag-li|shr-tag-object|shr-tag-ol|shr-tag-p|shr-tag-pre|shr-tag-s|shr-tag-script|shr-tag-span|shr-tag-strong|shr-tag-style|shr-tag-sub|shr-tag-sup|shr-tag-svg|shr-tag-table-1|shr-tag-table|shr-tag-title|shr-tag-u|shr-tag-ul|shr-tag-video|shr-urlify|shr-zoom-image|shrink-window-horizontally|shrink-window|shuffle-vector|sieve-manage|sieve-mode|sieve-upload-and-bury|sieve-upload-and-kill|sieve-upload|signum|simula-backward-up-level|simula-calculate-indent|simula-context|simula-electric-keyword|simula-electric-label|simula-expand-keyword|simula-expand-stdproc|simula-find-do-match|simula-find-if|simula-find-inspect|simula-forward-down-level|simula-forward-up-level|simula-goto-definition|simula-indent-command|simula-indent-exp|simula-indent-line|simula-inside-parens|simula-install-standard-abbrevs|simula-mode|simula-next-statement|simula-popup-menu|simula-previous-statement|simula-search-backward|simula-search-forward|simula-skip-comment-backward|simula-skip-comment-forward|simula-submit-bug-report|sixth|size-indication-mode|skeleton-insert|skeleton-internal-1|skeleton-internal-list|skeleton-pair-insert-maybe|skeleton-proxy-new|skeleton-read|skip-line-prefix|slitex-mode|slot-boundp|slot-exists-p|slot-makeunbound|slot-missing|slot-unbound|slot-value|smbclient-list-shares|smbclient-mode|smbclient|smerge--get-marker|smerge-apply-resolution-patch|smerge-auto-combine|smerge-auto-leave|smerge-batch-resolve|smerge-check|smerge-combine-with-next|smerge-conflict-overlay|smerge-context-menu|smerge-diff-base-mine|smerge-diff-base-other|smerge-diff-mine-other|smerge-diff|smerge-ediff|smerge-ensure-match|smerge-find-conflict|smerge-get-current|smerge-keep-all|smerge-keep-base|smerge-keep-current|smerge-keep-mine|smerge-keep-n|smerge-keep-other|smerge-kill-current|smerge-makeup-conflict|smerge-match-conflict|smerge-mode-menu|smerge-mode|smerge-next|smerge-popup-context-menu|smerge-prev|smerge-refine-chopup-region|smerge-refine-forward|smerge-refine-highlight-change|smerge-refine-subst|smerge-refine|smerge-remove-props|smerge-resolve--extract-comment|smerge-resolve--normalize|smerge-resolve-all|smerge-resolve|smerge-start-session|smerge-swap|smie--associative-p|smie--matching-block-data|smie--next-indent-change|smie--opener\\\\/closer-at-point|smie-auto-fill|smie-backward-sexp-command|smie-backward-sexp|smie-blink-matching-check|smie-blink-matching-open|smie-bnf--classify|smie-bnf--closer-alist|smie-bnf--set-class|smie-config--advice|smie-config--get-trace|smie-config--guess-1|smie-config--guess-value|smie-config--guess|smie-config--mode-hook|smie-config--setter|smie-debug--describe-cycle|smie-debug--prec2-cycle|smie-default-backward-token|smie-default-forward-token|smie-edebug|smie-forward-sexp-command|smie-forward-sexp|smie-indent--bolp-1|smie-indent--bolp|smie-indent--hanging-p|smie-indent--offset|smie-indent--parent|smie-indent--rule-1|smie-indent--rule|smie-indent--separator-outdent|smie-indent-after-keyword|smie-indent-backward-token|smie-indent-bob|smie-indent-calculate|smie-indent-close|smie-indent-comment-close|smie-indent-comment-continue|smie-indent-comment-inside|smie-indent-comment|smie-indent-exps|smie-indent-fixindent|smie-indent-forward-token|smie-indent-inside-string|smie-indent-keyword|smie-indent-line|smie-indent-virtual|smie-next-sexp|smie-op-left|smie-op-right|smie-set-prec2tab|smiley-buffer|smiley-region|smtpmail-command-or-throw|smtpmail-cred-cert|smtpmail-cred-key|smtpmail-cred-passwd|smtpmail-cred-port|smtpmail-cred-server|smtpmail-cred-user|smtpmail-deduce-address-list|smtpmail-do-bcc|smtpmail-find-credentials|smtpmail-fqdn|smtpmail-intersection|smtpmail-maybe-append-domain|smtpmail-ok-p|smtpmail-process-filter|smtpmail-query-smtp-server|smtpmail-read-response|smtpmail-response-code|smtpmail-response-text|smtpmail-send-command|smtpmail-send-data-1|smtpmail-send-data|smtpmail-send-it|smtpmail-send-queued-mail|smtpmail-try-auth-method|smtpmail-try-auth-methods|smtpmail-user-mail-address|smtpmail-via-smtp|snake-active-p|snake-display-options|snake-end-game|snake-final-x-velocity|snake-final-y-velocity|snake-init-buffer|snake-mode|snake-move-down|snake-move-left|snake-move-right|snake-move-up|snake-pause-game|snake-reset-game|snake-start-game|snake-update-game|snake-update-score|snake-update-velocity|snake|snarf-spooks|snmp-calculate-indent|snmp-common-mode|snmp-completing-read|snmp-indent-line|snmp-mode-imenu-create-index|snmp-mode|snmpv2-mode|soap-array-type-element-type--cmacro|soap-array-type-element-type|soap-array-type-name--cmacro|soap-array-type-name|soap-array-type-namespace-tag--cmacro|soap-array-type-namespace-tag|soap-array-type-p--cmacro|soap-array-type-p|soap-basic-type-kind--cmacro|soap-basic-type-kind|soap-basic-type-name--cmacro|soap-basic-type-name|soap-basic-type-namespace-tag--cmacro|soap-basic-type-namespace-tag|soap-basic-type-p--cmacro|soap-basic-type-p|soap-binding-name--cmacro|soap-binding-name|soap-binding-namespace-tag--cmacro|soap-binding-namespace-tag|soap-binding-operations--cmacro|soap-binding-operations|soap-binding-p--cmacro|soap-binding-p|soap-binding-port-type--cmacro|soap-binding-port-type|soap-bound-operation-operation--cmacro|soap-bound-operation-operation|soap-bound-operation-p--cmacro|soap-bound-operation-p|soap-bound-operation-soap-action--cmacro|soap-bound-operation-soap-action|soap-bound-operation-use--cmacro|soap-bound-operation-use|soap-create-envelope|soap-decode-any-type|soap-decode-array-type|soap-decode-array|soap-decode-basic-type|soap-decode-sequence-type|soap-decode-type|soap-default-soapenc-types|soap-default-xsd-types|soap-element-fq-name|soap-element-name--cmacro|soap-element-name|soap-element-namespace-tag--cmacro|soap-element-namespace-tag|soap-element-p--cmacro|soap-element-p|soap-encode-array-type|soap-encode-basic-type|soap-encode-body|soap-encode-sequence-type|soap-encode-simple-type|soap-encode-value|soap-extract-xmlns|soap-get-target-namespace|soap-invoke|soap-l2fq|soap-l2wk|soap-load-wsdl-from-url|soap-load-wsdl|soap-message-name--cmacro|soap-message-name|soap-message-namespace-tag--cmacro|soap-message-namespace-tag|soap-message-p--cmacro|soap-message-p|soap-message-parts--cmacro|soap-message-parts|soap-namespace-elements--cmacro|soap-namespace-elements|soap-namespace-get|soap-namespace-link-name--cmacro|soap-namespace-link-name|soap-namespace-link-namespace-tag--cmacro|soap-namespace-link-namespace-tag|soap-namespace-link-p--cmacro|soap-namespace-link-p|soap-namespace-link-target--cmacro|soap-namespace-link-target|soap-namespace-name--cmacro|soap-namespace-name|soap-namespace-p--cmacro|soap-namespace-p|soap-namespace-put-link|soap-namespace-put|soap-operation-faults--cmacro|soap-operation-faults|soap-operation-input--cmacro|soap-operation-input|soap-operation-name--cmacro|soap-operation-name|soap-operation-namespace-tag--cmacro|soap-operation-namespace-tag|soap-operation-output--cmacro|soap-operation-output|soap-operation-p--cmacro|soap-operation-p|soap-operation-parameter-order--cmacro|soap-operation-parameter-order|soap-parse-binding|soap-parse-complex-type-complex-content|soap-parse-complex-type-sequence|soap-parse-complex-type|soap-parse-envelope|soap-parse-message|soap-parse-operation|soap-parse-port-type|soap-parse-response|soap-parse-schema-element|soap-parse-schema|soap-parse-sequence|soap-parse-simple-type|soap-parse-wsdl|soap-port-binding--cmacro|soap-port-binding|soap-port-name--cmacro|soap-port-name|soap-port-namespace-tag--cmacro|soap-port-namespace-tag|soap-port-p--cmacro|soap-port-p|soap-port-service-url--cmacro|soap-port-service-url|soap-port-type-name--cmacro|soap-port-type-name|soap-port-type-namespace-tag--cmacro|soap-port-type-namespace-tag|soap-port-type-operations--cmacro|soap-port-type-operations|soap-port-type-p--cmacro|soap-port-type-p|soap-resolve-references-for-array-type|soap-resolve-references-for-binding|soap-resolve-references-for-element|soap-resolve-references-for-message|soap-resolve-references-for-operation|soap-resolve-references-for-port|soap-resolve-references-for-sequence-type|soap-resolve-references-for-simple-type|soap-sequence-element-multiple\\\\?--cmacro|soap-sequence-element-multiple\\\\?|soap-sequence-element-name--cmacro|soap-sequence-element-name|soap-sequence-element-nillable\\\\?--cmacro|soap-sequence-element-nillable\\\\?|soap-sequence-element-p--cmacro|soap-sequence-element-p|soap-sequence-element-type--cmacro|soap-sequence-element-type|soap-sequence-type-elements--cmacro|soap-sequence-type-elements|soap-sequence-type-name--cmacro|soap-sequence-type-name|soap-sequence-type-namespace-tag--cmacro|soap-sequence-type-namespace-tag|soap-sequence-type-p--cmacro|soap-sequence-type-p|soap-sequence-type-parent--cmacro|soap-sequence-type-parent|soap-simple-type-enumeration--cmacro|soap-simple-type-enumeration|soap-simple-type-kind--cmacro|soap-simple-type-kind|soap-simple-type-name--cmacro|soap-simple-type-name|soap-simple-type-namespace-tag--cmacro|soap-simple-type-namespace-tag|soap-simple-type-p--cmacro|soap-simple-type-p|soap-type-p|soap-warning|soap-with-local-xmlns|soap-wk2l|soap-wsdl-add-alias|soap-wsdl-add-namespace|soap-wsdl-alias-table--cmacro|soap-wsdl-alias-table|soap-wsdl-find-namespace|soap-wsdl-get|soap-wsdl-namespaces--cmacro|soap-wsdl-namespaces|soap-wsdl-origin--cmacro|soap-wsdl-origin|soap-wsdl-p--cmacro|soap-wsdl-p|soap-wsdl-ports--cmacro|soap-wsdl-ports|soap-wsdl-resolve-references|soap-xml-get-attribute-or-nil1|soap-xml-get-children1|socks-build-auth-list|socks-chap-auth|socks-cram-auth|socks-filter|socks-find-route|socks-find-services-entry|socks-gssapi-auth|socks-nslookup-host|socks-open-connection|socks-open-network-stream|socks-original-open-network-stream|socks-parse-services|socks-register-authentication-method|socks-send-command|socks-split-string|socks-unregister-authentication-method|socks-username\\\\/password-auth-filter|socks-username\\\\/password-auth|socks-wait-for-state-change|solicit-char-in-string|solitaire-build-mode-line|solitaire-center-point|solitaire-check|solitaire-current-line|solitaire-do-check|solitaire-down|solitaire-insert-board|solitaire-left|solitaire-mode|solitaire-move-down|solitaire-move-left|solitaire-move-right|solitaire-move-up|solitaire-move|solitaire-possible-move|solitaire-right|solitaire-solve|solitaire-undo|solitaire-up|solitaire|some-window|some|sort\\\\*|sort-build-lists|sort-charsets|sort-coding-systems|sort-fields-1|sort-pages-buffer|sort-pages-in-region|sort-regexp-fields-next-record|sort-reorder-buffer|sort-skip-fields|soundex|spaces-string|spam-initialize|spam-report-agentize|spam-report-deagentize|spam-report-process-queue|spam-report-url-ping-mm-url|spam-report-url-to-file|special-display-p|special-display-popup-frame|speedbar-add-expansion-list|speedbar-add-ignored-directory-regexp|speedbar-add-ignored-path-regexp|speedbar-add-indicator|speedbar-add-localized-speedbar-support|speedbar-add-mode-functions-list|speedbar-add-supported-extension|speedbar-backward-list|speedbar-buffer-buttons-engine|speedbar-buffer-buttons-temp|speedbar-buffer-buttons|speedbar-buffer-click|speedbar-buffer-kill-buffer|speedbar-buffer-revert-buffer|speedbar-buffers-item-info|speedbar-buffers-line-directory|speedbar-buffers-line-path|speedbar-buffers-tail-notes|speedbar-center-buffer-smartly|speedbar-change-expand-button-char|speedbar-change-initial-expansion-list|speedbar-check-obj-this-line|speedbar-check-objects|speedbar-check-read-only|speedbar-check-vc-this-line|speedbar-check-vc|speedbar-clear-current-file|speedbar-click|speedbar-contract-line-descendants|speedbar-contract-line|speedbar-create-directory)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:speedbar-create-tag-hierarchy|speedbar-current-frame|speedbar-customize|speedbar-default-directory-list|speedbar-delete-overlay|speedbar-delete-subblock|speedbar-dir-follow|speedbar-directory-buttons-follow|speedbar-directory-buttons|speedbar-directory-line|speedbar-dired|speedbar-disable-update|speedbar-do-function-pointer|speedbar-edit-line|speedbar-enable-update|speedbar-expand-line-descendants|speedbar-expand-line|speedbar-extension-list-to-regex|speedbar-extract-one-symbol|speedbar-fetch-dynamic-etags|speedbar-fetch-dynamic-imenu|speedbar-fetch-dynamic-tags|speedbar-fetch-replacement-function|speedbar-file-lists|speedbar-files-item-info|speedbar-files-line-directory|speedbar-find-file-in-frame|speedbar-find-file|speedbar-find-selected-file|speedbar-flush-expand-line|speedbar-forward-list|speedbar-frame-mode|speedbar-frame-reposition-smartly|speedbar-frame-width|speedbar-generic-item-info|speedbar-generic-list-group-p|speedbar-generic-list-positioned-group-p|speedbar-generic-list-tag-p|speedbar-get-focus|speedbar-goto-this-file|speedbar-handle-delete-frame|speedbar-highlight-one-tag-line|speedbar-image-dump|speedbar-initial-expansion-list|speedbar-initial-keymap|speedbar-initial-menu|speedbar-initial-stealthy-functions|speedbar-insert-button|speedbar-insert-etags-list|speedbar-insert-files-at-point|speedbar-insert-generic-list|speedbar-insert-image-button-maybe|speedbar-insert-imenu-list|speedbar-insert-separator|speedbar-item-byte-compile|speedbar-item-copy|speedbar-item-delete|speedbar-item-info-file-helper|speedbar-item-info-tag-helper|speedbar-item-info|speedbar-item-load|speedbar-item-object-delete|speedbar-item-rename|speedbar-line-directory|speedbar-line-file|speedbar-line-path|speedbar-line-text|speedbar-line-token|speedbar-make-button|speedbar-make-overlay|speedbar-make-specialized-keymap|speedbar-make-tag-line|speedbar-maybe-add-localized-support|speedbar-maybee-jump-to-attached-frame|speedbar-message|speedbar-mode-line-update|speedbar-mode|speedbar-mouse-item-info|speedbar-navigate-list|speedbar-next|speedbar-overlay-put|speedbar-parse-c-or-c\\\\+\\\\+tag|speedbar-parse-tex-string|speedbar-path-line|speedbar-position-cursor-on-line|speedbar-prefix-group-tag-hierarchy|speedbar-prev|speedbar-recenter-to-top|speedbar-recenter|speedbar-reconfigure-keymaps|speedbar-refresh|speedbar-remove-localized-speedbar-support|speedbar-reset-scanners|speedbar-restricted-move|speedbar-restricted-next|speedbar-restricted-prev|speedbar-scroll-down|speedbar-scroll-up|speedbar-select-attached-frame|speedbar-set-mode-line-format|speedbar-set-timer|speedbar-show-info-under-mouse|speedbar-simple-group-tag-hierarchy|speedbar-sort-tag-hierarchy|speedbar-stealthy-updates|speedbar-tag-expand|speedbar-tag-file|speedbar-tag-find|speedbar-this-file-in-vc|speedbar-timer-fn|speedbar-toggle-etags|speedbar-toggle-images|speedbar-toggle-line-expansion|speedbar-toggle-show-all-files|speedbar-toggle-sorting|speedbar-toggle-updates|speedbar-track-mouse|speedbar-trim-words-tag-hierarchy|speedbar-try-completion|speedbar-unhighlight-one-tag-line|speedbar-up-directory|speedbar-update-contents|speedbar-update-current-file|speedbar-update-directory-contents|speedbar-update-localized-contents|speedbar-update-special-contents|speedbar-vc-check-dir-p|speedbar-with-attached-buffer|speedbar-with-writable|speedbar-y-or-n-p|speedbar|split-char|split-line|split-window-horizontally|split-window-internal|split-window-vertically|spook|sql--completion-table|sql--make-help-docstring|sql--oracle-show-reserved-words|sql-accumulate-and-indent|sql-add-product-keywords|sql-add-product|sql-beginning-of-statement|sql-buffer-live-p|sql-build-completions-1|sql-build-completions|sql-comint-db2|sql-comint-informix|sql-comint-ingres|sql-comint-interbase|sql-comint-linter|sql-comint-ms|sql-comint-mysql|sql-comint-oracle|sql-comint-postgres|sql-comint-solid|sql-comint-sqlite|sql-comint-sybase|sql-comint-vertica|sql-comint|sql-connect|sql-connection-menu-filter|sql-copy-column|sql-db2|sql-default-value|sql-del-product|sql-end-of-statement|sql-ends-with-prompt-re|sql-escape-newlines-filter|sql-execute-feature|sql-execute|sql-find-sqli-buffer|sql-font-lock-keywords-builder|sql-for-each-login|sql-get-login-ext|sql-get-login|sql-get-product-feature|sql-help-list-products|sql-help|sql-highlight-ansi-keywords|sql-highlight-db2-keywords|sql-highlight-informix-keywords|sql-highlight-ingres-keywords|sql-highlight-interbase-keywords|sql-highlight-linter-keywords|sql-highlight-ms-keywords|sql-highlight-mysql-keywords|sql-highlight-oracle-keywords|sql-highlight-postgres-keywords|sql-highlight-product|sql-highlight-solid-keywords|sql-highlight-sqlite-keywords|sql-highlight-sybase-keywords|sql-highlight-vertica-keywords|sql-informix|sql-ingres|sql-input-sender|sql-interactive-mode-menu|sql-interactive-mode|sql-interactive-remove-continuation-prompt|sql-interbase|sql-linter|sql-list-all|sql-list-table|sql-magic-go|sql-magic-semicolon|sql-make-alternate-buffer-name|sql-mode-menu|sql-mode|sql-ms|sql-mysql|sql-oracle-completion-object|sql-oracle-list-all|sql-oracle-list-table|sql-oracle-restore-settings|sql-oracle-save-settings|sql-oracle|sql-placeholders-filter|sql-postgres-completion-object|sql-postgres|sql-product-font-lock-syntax-alist|sql-product-font-lock|sql-product-interactive|sql-product-syntax-table|sql-read-connection|sql-read-product|sql-read-table-name|sql-redirect-one|sql-redirect-value|sql-redirect|sql-regexp-abbrev-list|sql-regexp-abbrev|sql-remove-tabs-filter|sql-rename-buffer|sql-save-connection|sql-send-buffer|sql-send-line-and-next|sql-send-magic-terminator|sql-send-paragraph|sql-send-region|sql-send-string|sql-set-product-feature|sql-set-product|sql-set-sqli-buffer-generally|sql-set-sqli-buffer|sql-show-sqli-buffer|sql-solid|sql-sqlite-completion-object|sql-sqlite|sql-starts-with-prompt-re|sql-statement-regexp|sql-stop|sql-str-literal|sql-sybase|sql-toggle-pop-to-buffer-after-send-region|sql-vertica|squeeze-bidi-context-1|squeeze-bidi-context|srecode-compile-templates|srecode-document-insert-comment|srecode-document-insert-function-comment|srecode-document-insert-group-comments|srecode-document-insert-variable-one-line-comment|srecode-get-maps|srecode-insert-getset|srecode-insert-prototype-expansion|srecode-insert|srecode-minor-mode|srecode-semantic-handle-:c|srecode-semantic-handle-:cpp|srecode-semantic-handle-:el-custom|srecode-semantic-handle-:el|srecode-semantic-handle-:java|srecode-semantic-handle-:srt|srecode-semantic-handle-:texi|srecode-semantic-handle-:texitag|srecode-template-mode|srecode-template-setup-parser|srt-mode|stable-sort|standard-class|standard-display-8bit|standard-display-ascii|standard-display-cyrillic-translit|standard-display-default|standard-display-european-internal|standard-display-european|standard-display-g1|standard-display-graphic|standard-display-underline|start-kbd-macro|start-of-paragraph-text|start-scheme|starttls-any-program-available|starttls-available-p|starttls-negotiate-gnutls|starttls-negotiate|starttls-open-stream-gnutls|starttls-open-stream|starttls-set-process-query-on-exit-flag|startup-echo-area-message|straight-use-package|store-kbd-macro-event|string-blank-p|string-collate-equalp|string-collate-lessp|string-empty-p|string-insert-rectangle|string-join|string-make-multibyte|string-make-unibyte|string-rectangle-line|string-rectangle|string-remove-prefix|string-remove-suffix|string-reverse|string-to-list|string-to-vector|string-trim-left|string-trim-right|string-trim|strokes-alphabetic-lessp|strokes-button-press-event-p|strokes-button-release-event-p|strokes-click-p|strokes-compose-complex-stroke|strokes-decode-buffer|strokes-define-stroke|strokes-describe-stroke|strokes-distance-squared|strokes-do-complex-stroke|strokes-do-stroke|strokes-eliminate-consecutive-redundancies|strokes-encode-buffer|strokes-event-closest-point-1|strokes-event-closest-point|strokes-execute-stroke|strokes-fill-current-buffer-with-whitespace|strokes-fill-stroke|strokes-get-grid-position|strokes-get-stroke-extent|strokes-global-set-stroke-string|strokes-global-set-stroke|strokes-help|strokes-lift-p|strokes-list-strokes|strokes-load-user-strokes|strokes-match-stroke|strokes-mode|strokes-mouse-event-p|strokes-prompt-user-save-strokes|strokes-rate-stroke|strokes-read-complex-stroke|strokes-read-stroke|strokes-remassoc|strokes-renormalize-to-grid|strokes-report-bug|strokes-square|strokes-toggle-strokes-buffer|strokes-unload-function|strokes-unset-last-stroke|strokes-update-window-configuration|strokes-window-configuration-changed-p|strokes-xpm-char-bit-p|strokes-xpm-char-on-p|strokes-xpm-decode-char|strokes-xpm-encode-length-as-string|strokes-xpm-for-compressed-string|strokes-xpm-for-stroke|strokes-xpm-to-compressed-string|studlify-buffer|studlify-region|studlify-word|sublis|subr-name|subregexp-context-p|subseq|subsetp|subst-char-in-string|subst-if-not|subst-if|subst|substitute-env-in-file-name|substitute-env-vars|substitute-if-not|substitute-if|substitute-key-definition-key|substitute|subtract-time|subword-mode|sunrise-sunset|superword-mode|suspicious-object|svref|switch-to-completions|switch-to-lisp|switch-to-prolog|switch-to-scheme|switch-to-tcl|symbol-at-point|symbol-before-point-for-complete|symbol-before-point|symbol-macrolet|symbol-under-or-before-point|symbol-under-point|syntax-ppss-after-change-function|syntax-ppss-context|syntax-ppss-debug|syntax-ppss-depth|syntax-ppss-stats|syntax-propertize--shift-groups|syntax-propertize-multiline|syntax-propertize-precompile-rules|syntax-propertize-rules|syntax-propertize-via-font-lock|syntax-propertize-wholelines|syntax-propertize|t-mouse-mode|tabify|table--at-cell-p|table--buffer-substring-and-trim|table--cancel-timer|table--cell-blank-str|table--cell-can-span-p|table--cell-can-split-horizontally-p|table--cell-can-split-vertically-p|table--cell-horizontal-char-p|table--cell-insert-char|table--cell-list-to-coord-list|table--cell-to-coord|table--char-in-str-at-column|table--copy-coordinate|table--create-growing-space-below|table--current-line|table--detect-cell-alignment|table--editable-cell-p|table--fill-region-strictly|table--fill-region|table--find-row-column|table--finish-delayed-tasks|table--generate-source-cell-contents|table--generate-source-cells-in-a-row|table--generate-source-epilogue|table--generate-source-prologue|table--generate-source-scan-lines|table--generate-source-scan-rows|table--get-cell-justify-property|table--get-cell-valign-property|table--get-coordinate|table--get-last-command|table--get-property|table--goto-coordinate|table--horizontal-cell-list|table--horizontally-shift-above-and-below|table--insert-rectangle|table--justify-cell-contents|table--line-column-position|table--log|table--make-cell-map|table--measure-max-width|table--min-coord-list|table--multiply-string|table--offset-coordinate|table--point-entered-cell-function|table--point-in-cell-p|table--point-left-cell-function|table--probe-cell-left-up|table--probe-cell-right-bottom|table--probe-cell|table--put-cell-content-property|table--put-cell-face-property|table--put-cell-indicator-property|table--put-cell-justify-property|table--put-cell-keymap-property|table--put-cell-line-property|table--put-cell-point-entered\\\\/left-property|table--put-cell-property|table--put-cell-rear-nonsticky|table--put-cell-valign-property|table--put-property|table--query-justification|table--read-from-minibuffer|table--region-in-cell-p|table--remove-blank-lines|table--remove-cell-properties|table--remove-eol-spaces|table--row-column-insertion-point-p|table--set-timer|table--spacify-frame|table--str-index-at-column|table--string-to-number-list|table--test-cell-list|table--transcoord-cache-to-table|table--transcoord-table-to-cache|table--uniform-list-p|table--untabify-line|table--untabify|table--update-cell-face|table--update-cell-heightened|table--update-cell-widened|table--update-cell|table--valign|table--vertical-cell-list|table--warn-incompatibility|table-backward-cell|table-capture|table-delete-column|table-delete-row|table-fixed-width-mode|table-forward-cell|table-function|table-generate-source|table-get-source-info|table-global-menu-map|table-goto-bottom-left-corner|table-goto-bottom-right-corner|table-goto-top-left-corner|table-goto-top-right-corner|table-heighten-cell|table-insert-column|table-insert-row-column|table-insert-row|table-insert-sequence|table-insert|table-justify-cell|table-justify-column|table-justify-row|table-justify|table-narrow-cell|table-put-source-info|table-query-dimension|table-recognize-cell|table-recognize-region)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:table-recognize-table|table-recognize|table-release|table-shorten-cell|table-span-cell|table-split-cell-horizontally|table-split-cell-vertically|table-split-cell|table-unrecognize-cell|table-unrecognize-region|table-unrecognize-table|table-unrecognize|table-widen-cell|table-with-cache-buffer|tabulated-list--column-number|tabulated-list--sort-by-column-name|tabulated-list-col-sort|tabulated-list-delete-entry|tabulated-list-entry-size->|tabulated-list-get-entry|tabulated-list-get-id|tabulated-list-print-col|tabulated-list-print-entry|tabulated-list-print-fake-header|tabulated-list-put-tag|tabulated-list-revert|tabulated-list-set-col|tabulated-list-sort|tag-any-match-p|tag-exact-file-name-match-p|tag-exact-match-p|tag-file-name-match-p|tag-find-file-of-tag-noselect|tag-find-file-of-tag|tag-implicit-name-match-p|tag-partial-file-name-match-p|tag-re-match-p|tag-symbol-match-p|tag-word-match-p|tags-apropos|tags-complete-tags-table-file|tags-completion-at-point-function|tags-completion-table|tags-expand-table-name|tags-included-tables|tags-lazy-completion-table|tags-loop-continue|tags-loop-eval|tags-next-table|tags-query-replace|tags-recognize-empty-tags-table|tags-reset-tags-tables|tags-search|tags-table-check-computed-list|tags-table-extend-computed-list|tags-table-files|tags-table-including|tags-table-list-member|tags-table-mode|tags-verify-table|tags-with-face|tai-viet-composition-function|tailp|talk-add-display|talk-connect|talk-disconnect|talk-handle-delete-frame|talk-split-up-frame|talk-update-buffers|talk|tar--check-descriptor|tar--extract|tar-alter-one-field|tar-change-major-mode-hook|tar-chgrp-entry|tar-chmod-entry|tar-chown-entry|tar-clear-modification-flags|tar-clip-time-string|tar-copy|tar-current-descriptor|tar-data-swapped-p|tar-display-other-window|tar-expunge-internal|tar-expunge|tar-extract-other-window|tar-extract|tar-file-name-handler|tar-flag-deleted|tar-get-descriptor|tar-get-file-descriptor|tar-grind-file-mode|tar-header-block-check-checksum|tar-header-block-checksum|tar-header-block-summarize|tar-header-block-tokenize|tar-header-checksum--cmacro|tar-header-checksum|tar-header-data-end|tar-header-data-start--cmacro|tar-header-data-start|tar-header-date--cmacro|tar-header-date|tar-header-dmaj--cmacro|tar-header-dmaj|tar-header-dmin--cmacro|tar-header-dmin|tar-header-gid--cmacro|tar-header-gid|tar-header-gname--cmacro|tar-header-gname|tar-header-header-start--cmacro|tar-header-header-start|tar-header-link-name--cmacro|tar-header-link-name|tar-header-link-type--cmacro|tar-header-link-type|tar-header-magic--cmacro|tar-header-magic|tar-header-mode--cmacro|tar-header-mode|tar-header-name--cmacro|tar-header-name|tar-header-p--cmacro|tar-header-p|tar-header-size--cmacro|tar-header-size|tar-header-uid--cmacro|tar-header-uid|tar-header-uname--cmacro|tar-header-uname|tar-mode-kill-buffer-hook|tar-mode-revert|tar-mode|tar-mouse-extract|tar-next-line|tar-octal-time|tar-pad-to-blocksize|tar-parse-octal-integer-safe|tar-parse-octal-integer|tar-parse-octal-long-integer|tar-previous-line|tar-read-file-name|tar-rename-entry|tar-roundup-512|tar-subfile-mode|tar-subfile-save-buffer|tar-summarize-buffer|tar-swap-data|tar-unflag-backwards|tar-unflag|tar-untar-buffer|tar-view|tar-write-region-annotate|tcl-add-log-defun|tcl-auto-fill-mode|tcl-beginning-of-defun|tcl-calculate-indent|tcl-comment-indent|tcl-current-word|tcl-electric-brace|tcl-electric-char|tcl-electric-hash|tcl-end-of-defun|tcl-eval-defun|tcl-eval-region|tcl-figure-type|tcl-files-alist|tcl-filter|tcl-guess-application|tcl-hairy-scan-for-comment|tcl-hashify-buffer|tcl-help-on-word|tcl-help-snarf-commands|tcl-in-comment|tcl-indent-command|tcl-indent-exp|tcl-indent-for-comment|tcl-indent-line|tcl-load-file|tcl-mark-defun|tcl-mark|tcl-mode-menu|tcl-mode|tcl-outline-level|tcl-popup-menu|tcl-quote|tcl-real-command-p|tcl-real-comment-p|tcl-reread-help-files|tcl-restart-with-file|tcl-send-region|tcl-send-string|tcl-set-font-lock-keywords|tcl-set-proc-regexp|tcl-uncomment-region|tcl-word-no-props|tear-off-window|telnet-c-z|telnet-check-software-type-initialize|telnet-filter|telnet-initial-filter|telnet-interrupt-subjob|telnet-mode|telnet-send-input|telnet-simple-send|telnet|temp-buffer-resize-mode|temp-buffer-window-setup|temp-buffer-window-show|tempo-add-tag|tempo-backward-mark|tempo-build-collection|tempo-complete-tag|tempo-define-template|tempo-display-completions|tempo-expand-if-complete|tempo-find-match-string|tempo-forget-insertions|tempo-forward-mark|tempo-insert-mark|tempo-insert-named|tempo-insert-prompt-compat|tempo-insert-prompt|tempo-insert-template|tempo-insert|tempo-invalidate-collection|tempo-is-user-element|tempo-lookup-named|tempo-process-and-insert-string|tempo-save-named|tempo-template-dcl-f\\\\$context|tempo-template-dcl-f\\\\$csid|tempo-template-dcl-f\\\\$cvsi|tempo-template-dcl-f\\\\$cvtime|tempo-template-dcl-f\\\\$cvui|tempo-template-dcl-f\\\\$device|tempo-template-dcl-f\\\\$directory|tempo-template-dcl-f\\\\$edit|tempo-template-dcl-f\\\\$element|tempo-template-dcl-f\\\\$environment|tempo-template-dcl-f\\\\$extract|tempo-template-dcl-f\\\\$fao|tempo-template-dcl-f\\\\$file_attributes|tempo-template-dcl-f\\\\$getdvi|tempo-template-dcl-f\\\\$getjpi|tempo-template-dcl-f\\\\$getqui|tempo-template-dcl-f\\\\$getsyi|tempo-template-dcl-f\\\\$identifier|tempo-template-dcl-f\\\\$integer|tempo-template-dcl-f\\\\$length|tempo-template-dcl-f\\\\$locate|tempo-template-dcl-f\\\\$message|tempo-template-dcl-f\\\\$mode|tempo-template-dcl-f\\\\$parse|tempo-template-dcl-f\\\\$pid|tempo-template-dcl-f\\\\$privilege|tempo-template-dcl-f\\\\$process|tempo-template-dcl-f\\\\$search|tempo-template-dcl-f\\\\$setprv|tempo-template-dcl-f\\\\$string|tempo-template-dcl-f\\\\$time|tempo-template-dcl-f\\\\$trnlnm|tempo-template-dcl-f\\\\$type|tempo-template-dcl-f\\\\$user|tempo-template-dcl-f\\\\$verify|tempo-template-snmp-object-type|tempo-template-snmp-table-type|tempo-template-snmpv2-object-type|tempo-template-snmpv2-table-type|tempo-template-snmpv2-textual-convention|tempo-use-tag-list|tenth|term-adjust-current-row-cache|term-after-pmark-p|term-ansi-make-term|term-ansi-reset|term-args|term-arguments|term-backward-matching-input|term-bol|term-buffer-vertical-motion|term-char-mode|term-check-kill-echo-list|term-check-proc|term-check-size|term-check-source|term-command-hook|term-continue-subjob|term-copy-old-input|term-current-column|term-current-row|term-delchar-or-maybe-eof|term-delete-chars|term-delete-lines|term-delim-arg|term-directory|term-display-buffer-line|term-display-line|term-down|term-dynamic-complete-as-filename|term-dynamic-complete-filename|term-dynamic-complete|term-dynamic-list-completions|term-dynamic-list-filename-completions|term-dynamic-list-input-ring|term-dynamic-simple-complete|term-emulate-terminal|term-erase-in-display|term-erase-in-line|term-exec-1|term-exec|term-extract-string|term-forward-matching-input|term-get-old-input-default|term-get-source|term-goto-home|term-goto|term-handle-ansi-escape|term-handle-ansi-terminal-messages|term-handle-colors-array|term-handle-deferred-scroll|term-handle-exit|term-handle-scroll|term-handling-pager|term-horizontal-column|term-how-many-region|term-in-char-mode|term-in-line-mode|term-insert-char|term-insert-lines|term-insert-spaces|term-interrupt-subjob|term-kill-input|term-kill-output|term-kill-subjob|term-line-mode|term-magic-space|term-match-partial-filename|term-mode|term-mouse-paste|term-move-columns|term-next-input|term-next-matching-input-from-input|term-next-matching-input|term-next-prompt|term-pager-back-line|term-pager-back-page|term-pager-bob|term-pager-continue|term-pager-disable|term-pager-discard|term-pager-enable|term-pager-enabled|term-pager-eob|term-pager-help|term-pager-line|term-pager-menu|term-pager-page|term-pager-toggle|term-paste|term-previous-input-string|term-previous-input|term-previous-matching-input-from-input|term-previous-matching-input-string-position|term-previous-matching-input-string|term-previous-matching-input|term-previous-prompt|term-proc-query|term-process-pager|term-quit-subjob|term-read-input-ring|term-read-noecho|term-regexp-arg|term-replace-by-expanded-filename|term-replace-by-expanded-history-before-point|term-replace-by-expanded-history|term-reset-size|term-reset-terminal|term-search-arg|term-search-start|term-send-backspace|term-send-del|term-send-down|term-send-end|term-send-eof|term-send-home|term-send-input|term-send-insert|term-send-invisible|term-send-left|term-send-next|term-send-prior|term-send-raw-meta|term-send-raw-string|term-send-raw|term-send-region|term-send-right|term-send-string|term-send-up|term-sentinel|term-set-escape-char|term-set-scroll-region|term-show-maximum-output|term-show-output|term-signals-menu|term-simple-send|term-skip-prompt|term-source-default|term-start-line-column|term-start-output-log|term-stop-output-log|term-stop-subjob|term-terminal-menu|term-terminal-pos|term-unwrap-line|term-update-mode-line|term-using-alternate-sub-buffer|term-vertical-motion|term-window-width|term-within-quotes|term-word|term-write-input-ring|term|testcover-1value|testcover-after|testcover-end|testcover-enter|testcover-mark|testcover-read|testcover-reinstrument-compose|testcover-reinstrument-list|testcover-reinstrument|testcover-this-defun|testcover-unmark-all|tetris-active-p|tetris-default-update-speed-function|tetris-display-options|tetris-draw-border-p|tetris-draw-next-shape|tetris-draw-score|tetris-draw-shape|tetris-end-game|tetris-erase-shape|tetris-full-row|tetris-get-shape-cell|tetris-get-tick-period|tetris-init-buffer|tetris-mode|tetris-move-bottom|tetris-move-left|tetris-move-right|tetris-new-shape|tetris-pause-game|tetris-reset-game|tetris-rotate-next|tetris-rotate-prev|tetris-shape-done|tetris-shape-rotations|tetris-shape-width|tetris-shift-down|tetris-shift-row|tetris-start-game|tetris-test-shape|tetris-update-game|tetris-update-score|tetris|tex-alt-print|tex-append|tex-bibtex-file|tex-buffer|tex-categorize-whitespace|tex-close-latex-block|tex-cmd-doc-view|tex-command-active-p|tex-command-executable|tex-common-initialization|tex-compile-default|tex-compile|tex-count-words|tex-current-defun-name|tex-define-common-keys|tex-delete-last-temp-files|tex-display-shell|tex-env-mark|tex-executable-exists-p|tex-expand-files|tex-facemenu-add-face-function|tex-feed-input|tex-file|tex-font-lock-append-prop|tex-font-lock-match-suscript|tex-font-lock-suscript|tex-font-lock-syntactic-face-function|tex-font-lock-unfontify-region|tex-font-lock-verb|tex-format-cmd|tex-generate-zap-file-name|tex-goto-last-unclosed-latex-block|tex-guess-main-file|tex-guess-mode|tex-insert-braces|tex-insert-quote|tex-kill-job|tex-last-unended-begin|tex-last-unended-eparen|tex-latex-block|tex-main-file|tex-mode-flyspell-verify|tex-mode-internal|tex-mode|tex-next-unmatched-end|tex-next-unmatched-eparen|tex-old-error-file-name|tex-print|tex-recenter-output-buffer|tex-region-header|tex-region|tex-search-noncomment|tex-send-command|tex-send-tex-command|tex-set-buffer-directory|tex-shell-buf-no-error|tex-shell-buf|tex-shell-proc|tex-shell-running|tex-shell-sentinel|tex-shell|tex-show-print-queue|tex-start-shell|tex-start-tex|tex-string-prefix-p|tex-summarize-command|tex-suscript-height|tex-terminate-paragraph|tex-uptodate-p|tex-validate-buffer|tex-validate-region|tex-view|texi2info|texinfmt-version|texinfo-alias|texinfo-all-menus-update|texinfo-alphaenumerate-item|texinfo-alphaenumerate|texinfo-anchor|texinfo-append-refill|texinfo-capsenumerate-item|texinfo-capsenumerate|texinfo-check-for-node-name|texinfo-clean-up-node-line|texinfo-clear|texinfo-clone-environment|texinfo-copy-menu-title|texinfo-copy-menu|texinfo-copy-next-section-title|texinfo-copy-node-name|texinfo-copy-section-title|texinfo-copying|texinfo-current-defun-name|texinfo-define-common-keys|texinfo-define-info-enclosure|texinfo-delete-existing-pointers|texinfo-delete-from-print-queue|texinfo-delete-old-menu|texinfo-description|texinfo-discard-command-and-arg|texinfo-discard-command|texinfo-discard-line-with-args|texinfo-discard-line|texinfo-do-flushright|texinfo-do-itemize|texinfo-end-alphaenumerate|texinfo-end-capsenumerate|texinfo-end-defun|texinfo-end-direntry|texinfo-end-enumerate|texinfo-end-example|texinfo-end-flushleft)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:texinfo-end-flushright|texinfo-end-ftable|texinfo-end-indextable|texinfo-end-itemize|texinfo-end-multitable|texinfo-end-table|texinfo-end-vtable|texinfo-enumerate-item|texinfo-enumerate|texinfo-every-node-update|texinfo-filter|texinfo-find-higher-level-node|texinfo-find-lower-level-node|texinfo-find-pointer|texinfo-footnotestyle|texinfo-format-\\\\.|texinfo-format-:|texinfo-format-French-OE-ligature|texinfo-format-French-oe-ligature|texinfo-format-German-sharp-S|texinfo-format-Latin-Scandinavian-AE|texinfo-format-Latin-Scandinavian-ae|texinfo-format-Polish-suppressed-L|texinfo-format-Polish-suppressed-l-lower-case|texinfo-format-Scandinavian-A-with-circle|texinfo-format-Scandinavian-O-with-slash|texinfo-format-Scandinavian-a-with-circle|texinfo-format-Scandinavian-o-with-slash-lower-case|texinfo-format-TeX|texinfo-format-begin-end|texinfo-format-begin|texinfo-format-breve-accent|texinfo-format-buffer-1|texinfo-format-buffer|texinfo-format-bullet|texinfo-format-cedilla-accent|texinfo-format-center|texinfo-format-chapter-1|texinfo-format-chapter|texinfo-format-cindex|texinfo-format-code|texinfo-format-convert|texinfo-format-copyright|texinfo-format-ctrl|texinfo-format-defcv|texinfo-format-deffn|texinfo-format-defindex|texinfo-format-defivar|texinfo-format-defmethod|texinfo-format-defn|texinfo-format-defop|texinfo-format-deftypefn|texinfo-format-deftypefun|texinfo-format-defun-1|texinfo-format-defun|texinfo-format-defunx|texinfo-format-dircategory|texinfo-format-direntry|texinfo-format-documentdescription|texinfo-format-dotless|texinfo-format-dots|texinfo-format-email|texinfo-format-emph|texinfo-format-end-node|texinfo-format-end|texinfo-format-enddots|texinfo-format-equiv|texinfo-format-error|texinfo-format-example|texinfo-format-exdent|texinfo-format-expand-region|texinfo-format-expansion|texinfo-format-findex|texinfo-format-flushleft|texinfo-format-flushright|texinfo-format-footnote|texinfo-format-hacek-accent|texinfo-format-html|texinfo-format-ifeq|texinfo-format-ifhtml|texinfo-format-ifnotinfo|texinfo-format-ifplaintext|texinfo-format-iftex|texinfo-format-ifxml|texinfo-format-ignore|texinfo-format-image|texinfo-format-inforef|texinfo-format-kbd|texinfo-format-key|texinfo-format-kindex|texinfo-format-long-Hungarian-umlaut|texinfo-format-menu|texinfo-format-minus|texinfo-format-node|texinfo-format-noop|texinfo-format-option|texinfo-format-overdot-accent|texinfo-format-paragraph-break|texinfo-format-parse-args|texinfo-format-parse-defun-args|texinfo-format-parse-line-args|texinfo-format-pindex|texinfo-format-point|texinfo-format-pounds|texinfo-format-print|texinfo-format-printindex|texinfo-format-pxref|texinfo-format-refill|texinfo-format-region|texinfo-format-result|texinfo-format-ring-accent|texinfo-format-scan|texinfo-format-section|texinfo-format-sectionpad|texinfo-format-separate-node|texinfo-format-setfilename|texinfo-format-soft-hyphen|texinfo-format-sp|texinfo-format-specialized-defun|texinfo-format-subsection|texinfo-format-subsubsection|texinfo-format-synindex|texinfo-format-tex|texinfo-format-tie-after-accent|texinfo-format-timestamp|texinfo-format-tindex|texinfo-format-titlepage|texinfo-format-titlespec|texinfo-format-today|texinfo-format-underbar-accent|texinfo-format-underdot-accent|texinfo-format-upside-down-exclamation-mark|texinfo-format-upside-down-question-mark|texinfo-format-uref|texinfo-format-var|texinfo-format-verb|texinfo-format-vindex|texinfo-format-xml|texinfo-format-xref|texinfo-ftable-item|texinfo-ftable|texinfo-hierarchic-level|texinfo-if-clear|texinfo-if-set|texinfo-incorporate-descriptions|texinfo-incorporate-menu-entry-names|texinfo-indent-menu-description|texinfo-index-defcv|texinfo-index-deffn|texinfo-index-defivar|texinfo-index-defmethod|texinfo-index-defop|texinfo-index-deftypefn|texinfo-index-defun|texinfo-index|texinfo-indextable-item|texinfo-indextable|texinfo-insert-@code|texinfo-insert-@dfn|texinfo-insert-@email|texinfo-insert-@emph|texinfo-insert-@end|texinfo-insert-@example|texinfo-insert-@file|texinfo-insert-@item|texinfo-insert-@kbd|texinfo-insert-@node|texinfo-insert-@noindent|texinfo-insert-@quotation|texinfo-insert-@samp|texinfo-insert-@strong|texinfo-insert-@table|texinfo-insert-@uref|texinfo-insert-@url|texinfo-insert-@var|texinfo-insert-block|texinfo-insert-braces|texinfo-insert-master-menu-list|texinfo-insert-menu|texinfo-insert-node-lines|texinfo-insert-pointer|texinfo-insert-quote|texinfo-insertcopying|texinfo-inside-env-p|texinfo-inside-macro-p|texinfo-item|texinfo-itemize-item|texinfo-itemize|texinfo-last-unended-begin|texinfo-locate-menu-p|texinfo-make-menu-list|texinfo-make-menu|texinfo-make-one-menu|texinfo-master-menu-list|texinfo-master-menu|texinfo-menu-copy-old-description|texinfo-menu-end|texinfo-menu-first-node|texinfo-menu-indent-description|texinfo-menu-locate-entry-p|texinfo-mode-flyspell-verify|texinfo-mode-menu|texinfo-mode|texinfo-multi-file-included-list|texinfo-multi-file-master-menu-list|texinfo-multi-file-update|texinfo-multi-files-insert-main-menu|texinfo-multiple-files-update|texinfo-multitable-extract-row|texinfo-multitable-item|texinfo-multitable-widths|texinfo-multitable|texinfo-next-unmatched-end|texinfo-noindent|texinfo-old-menu-p|texinfo-optional-braces-discard|texinfo-paragraphindent|texinfo-parse-arg-discard|texinfo-parse-expanded-arg|texinfo-parse-line-arg|texinfo-pointer-name|texinfo-pop-stack|texinfo-print-index|texinfo-push-stack|texinfo-quit-job|texinfo-raise-lower-sections|texinfo-sequential-node-update|texinfo-sequentially-find-pointer|texinfo-sequentially-insert-pointer|texinfo-sequentially-update-the-node|texinfo-set|texinfo-show-structure|texinfo-sort-region|texinfo-sort-startkeyfun|texinfo-specific-section-type|texinfo-start-menu-description|texinfo-table-item|texinfo-table|texinfo-tex-buffer|texinfo-tex-print|texinfo-tex-region|texinfo-tex-view|texinfo-texindex|texinfo-top-pointer-case|texinfo-unsupported|texinfo-update-menu-region-beginning|texinfo-update-menu-region-end|texinfo-update-node|texinfo-update-the-node|texinfo-value|texinfo-vtable-item|texinfo-vtable|text-clone--maintain|text-clone-create|text-mode-hook-identify|text-scale-adjust|text-scale-decrease|text-scale-increase|text-scale-mode|text-scale-set|thai-compose-buffer|thai-compose-region|thai-compose-string|thai-composition-function|the|thing-at-point--bounds-of-markedup-url|thing-at-point--bounds-of-well-formed-url|thing-at-point-bounds-of-list-at-point|thing-at-point-bounds-of-url-at-point|thing-at-point-looking-at|thing-at-point-newsgroup-p|thing-at-point-url-at-point|third|this-major-mode-requires-vi-state|this-single-command-keys|this-single-command-raw-keys|thread-first|thread-last|thumbs-backward-char|thumbs-backward-line|thumbs-call-convert|thumbs-call-setroot-command|thumbs-cleanup-thumbsdir|thumbs-current-image|thumbs-delete-images|thumbs-dired-setroot|thumbs-dired-show-marked|thumbs-dired-show|thumbs-dired|thumbs-display-thumbs-buffer|thumbs-do-thumbs-insertion|thumbs-emboss-image|thumbs-enlarge-image|thumbs-file-alist|thumbs-file-list|thumbs-file-size|thumbs-find-image-at-point-other-window|thumbs-find-image-at-point|thumbs-find-image|thumbs-find-thumb|thumbs-forward-char|thumbs-forward-line|thumbs-image-type|thumbs-insert-image|thumbs-insert-thumb|thumbs-kill-buffer|thumbs-make-thumb|thumbs-mark|thumbs-mode|thumbs-modify-image|thumbs-monochrome-image|thumbs-mouse-find-image|thumbs-negate-image|thumbs-new-image-size|thumbs-next-image|thumbs-previous-image|thumbs-redraw-buffer|thumbs-rename-images|thumbs-resize-image-1|thumbs-resize-image|thumbs-rotate-left|thumbs-rotate-right|thumbs-save-current-image|thumbs-set-image-at-point-to-root-window|thumbs-set-root|thumbs-show-from-dir|thumbs-show-image-num|thumbs-show-more-images|thumbs-show-name|thumbs-show-thumbs-list|thumbs-shrink-image|thumbs-temp-dir|thumbs-temp-file|thumbs-thumbname|thumbs-thumbsdir|thumbs-unmark|thumbs-view-image-mode|thumbs|tibetan-char-p|tibetan-compose-buffer|tibetan-compose-region|tibetan-compose-string|tibetan-decompose-buffer|tibetan-decompose-region|tibetan-decompose-string|tibetan-post-read-conversion|tibetan-pre-write-canonicalize-for-unicode|tibetan-pre-write-conversion|tibetan-tibetan-to-transcription|tibetan-transcription-to-tibetan|tildify--deprecated-ignore-evironments|tildify--find-env|tildify--foreach-region|tildify--pick-alist-entry|tildify-buffer|tildify-foreach-ignore-environments|tildify-region|tildify-tildify|time-date--day-in-year|time-since|time-stamp-conv-warn|time-stamp-do-number|time-stamp-fconcat|time-stamp-mail-host-name|time-stamp-once|time-stamp-string-preprocess|time-stamp-string|time-stamp-toggle-active|time-stamp|time-to-number-of-days|time-to-seconds|timeclock-ask-for-project|timeclock-ask-for-reason|timeclock-change|timeclock-completing-read|timeclock-current-debt|timeclock-currently-in-p|timeclock-day-alist|timeclock-day-base|timeclock-day-begin|timeclock-day-break|timeclock-day-debt|timeclock-day-end|timeclock-day-length|timeclock-day-list-begin|timeclock-day-list-break|timeclock-day-list-debt|timeclock-day-list-end|timeclock-day-list-length|timeclock-day-list-projects|timeclock-day-list-required|timeclock-day-list-span|timeclock-day-list-template|timeclock-day-list|timeclock-day-projects|timeclock-day-required|timeclock-day-span|timeclock-entry-begin|timeclock-entry-comment|timeclock-entry-end|timeclock-entry-length|timeclock-entry-list-begin|timeclock-entry-list-break|timeclock-entry-list-end|timeclock-entry-list-length|timeclock-entry-list-projects|timeclock-entry-list-span|timeclock-entry-project|timeclock-find-discrep|timeclock-generate-report|timeclock-in|timeclock-last-period|timeclock-log-data|timeclock-log|timeclock-make-hours-explicit|timeclock-mean|timeclock-mode-line-display|timeclock-modeline-display|timeclock-out|timeclock-project-alist|timeclock-query-out|timeclock-read-moment|timeclock-reread-log|timeclock-seconds-to-string|timeclock-seconds-to-time|timeclock-status-string|timeclock-time-to-date|timeclock-time-to-seconds|timeclock-update-mode-line|timeclock-update-modeline|timeclock-visit-timelog|timeclock-when-to-leave-string|timeclock-when-to-leave|timeclock-workday-elapsed-string|timeclock-workday-elapsed|timeclock-workday-remaining-string|timeclock-workday-remaining|timeout-event-p|timep|timer--activate|timer--args--cmacro|timer--args|timer--check|timer--function--cmacro|timer--function|timer--high-seconds--cmacro|timer--high-seconds|timer--idle-delay--cmacro|timer--idle-delay|timer--low-seconds--cmacro|timer--low-seconds|timer--psecs--cmacro|timer--psecs|timer--repeat-delay--cmacro|timer--repeat-delay|timer--time-less-p|timer--time-setter|timer--time|timer--triggered--cmacro|timer--triggered|timer--usecs--cmacro|timer--usecs|timer-activate-when-idle|timer-activate|timer-create--cmacro|timer-create|timer-duration|timer-event-handler|timer-inc-time|timer-next-integral-multiple-of-time|timer-relative-time|timer-set-function|timer-set-idle-time|timer-set-time-with-usecs|timer-set-time|timer-until|timerp|timezone-absolute-from-gregorian|timezone-day-number|timezone-fix-time|timezone-last-day-of-month|timezone-leap-year-p|timezone-make-arpa-date|timezone-make-date-arpa-standard|timezone-make-date-sortable|timezone-make-sortable-date|timezone-make-time-string|timezone-parse-date|timezone-parse-time|timezone-time-from-absolute|timezone-time-zone-from-absolute|timezone-zone-to-minute|titdic-convert|tls-certificate-information|tmm--completion-table|tmm-add-one-shortcut|tmm-add-prompt|tmm-add-shortcuts|tmm-completion-delete-prompt|tmm-define-keys|tmm-get-keybind|tmm-get-keymap|tmm-goto-completions|tmm-menubar-mouse|tmm-menubar|tmm-prompt|tmm-remove-inactive-mouse-face|tmm-shortcut|todo--user-error-if-marked-done-item|todo-absolute-file-name|todo-add-category|todo-add-file|todo-adjusted-category-label-length|todo-archive-done-item|todo-archive-mode|todo-backward-category|todo-backward-item|todo-categories-mode|todo-category-completions|todo-category-number|todo-category-select|todo-category-string-matcher-1|todo-category-string-matcher-2|todo-check-file|todo-check-filtered-items-file|todo-check-format|todo-choose-archive|todo-clear-matches|todo-comment-string-matcher|todo-convert-legacy-date-time|todo-convert-legacy-files|todo-current-category|todo-date-string-matcher|todo-delete-category|todo-delete-file|todo-delete-item|todo-desktop-save-buffer)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:todo-diary-expired-matcher|todo-diary-goto-entry|todo-diary-item-p|todo-diary-nonmarking-matcher|todo-display-categories|todo-display-sorted|todo-done-item-p|todo-done-item-section-p|todo-done-separator|todo-done-string-matcher|todo-edit-category-diary-inclusion|todo-edit-category-diary-nonmarking|todo-edit-file|todo-edit-item--diary-inclusion|todo-edit-item--header|todo-edit-item--next-key|todo-edit-item--text|todo-edit-item|todo-edit-mode|todo-edit-quit|todo-files|todo-filter-diary-items-multifile|todo-filter-diary-items|todo-filter-items-1|todo-filter-items-filename|todo-filter-items|todo-filter-regexp-items-multifile|todo-filter-regexp-items|todo-filter-top-priorities-multifile|todo-filter-top-priorities|todo-filtered-items-mode|todo-find-archive|todo-find-filtered-items-file|todo-find-item|todo-forward-category|todo-forward-item|todo-get-count|todo-get-overlay|todo-go-to-source-item|todo-indent|todo-insert-category-line|todo-insert-item--apply-args|todo-insert-item--argsleft|todo-insert-item--basic|todo-insert-item--keyof|todo-insert-item--next-param|todo-insert-item--this-key|todo-insert-item-from-calendar|todo-insert-item|todo-insert-sort-button|todo-insert-with-overlays|todo-item-done|todo-item-end|todo-item-start|todo-item-string|todo-item-undone|todo-jump-to-archive-category|todo-jump-to-category|todo-label-to-key|todo-longest-category-name-length|todo-lower-category|todo-lower-item-priority|todo-make-categories-list|todo-mark-category|todo-marked-item-p|todo-menu|todo-merge-category|todo-mode-external-set|todo-mode-line-control|todo-mode|todo-modes-set-1|todo-modes-set-2|todo-modes-set-3|todo-move-category|todo-move-item|todo-multiple-filter-files|todo-next-button|todo-next-item|todo-nondiary-marker-matcher|todo-padded-string|todo-prefix-overlays|todo-previous-button|todo-previous-item|todo-print-buffer-to-file|todo-print-buffer|todo-quit|todo-raise-category|todo-raise-item-priority|todo-read-category|todo-read-date|todo-read-dayname|todo-read-file-name|todo-read-time|todo-reevaluate-category-completions-files-defcustom|todo-reevaluate-default-file-defcustom|todo-reevaluate-filelist-defcustoms|todo-reevaluate-filter-files-defcustom|todo-remove-item|todo-rename-category|todo-rename-file|todo-repair-categories-sexp|todo-reset-and-enable-done-separator|todo-reset-comment-string|todo-reset-done-separator-string|todo-reset-done-separator|todo-reset-done-string|todo-reset-global-current-todo-file|todo-reset-highlight-item|todo-reset-nondiary-marker|todo-reset-prefix|todo-restore-desktop-buffer|todo-revert-buffer|todo-save-filtered-items-buffer|todo-save|todo-search|todo-set-categories|todo-set-category-number|todo-set-date-from-calendar|todo-set-item-priority|todo-set-show-current-file|todo-set-top-priorities-in-category|todo-set-top-priorities-in-file|todo-set-top-priorities|todo-short-file-name|todo-show-categories-table|todo-show-current-file|todo-show|todo-sort-categories-alphabetically-or-numerically|todo-sort-categories-by-archived|todo-sort-categories-by-diary|todo-sort-categories-by-done|todo-sort-categories-by-todo|todo-sort|todo-time-string-matcher|todo-toggle-item-header|todo-toggle-item-highlighting|todo-toggle-mark-item|todo-toggle-prefix-numbers|todo-toggle-view-done-items|todo-toggle-view-done-only|todo-total-item-counts|todo-unarchive-items|todo-unmark-category|todo-update-buffer-list|todo-update-categories-display|todo-update-categories-sexp|todo-update-count|todo-validate-name|todo-y-or-n-p|toggle-auto-composition|toggle-case-fold-search|toggle-debug-on-error|toggle-debug-on-quit|toggle-emacs-lock|toggle-frame-fullscreen|toggle-frame-maximized|toggle-horizontal-scroll-bar|toggle-indicate-empty-lines|toggle-input-method|toggle-menu-bar-mode-from-frame|toggle-read-only|toggle-rot13-mode|toggle-save-place-globally|toggle-save-place|toggle-scroll-bar|toggle-text-mode-auto-fill|toggle-tool-bar-mode-from-frame|toggle-truncate-lines|toggle-uniquify-buffer-names|toggle-use-system-font|toggle-viper-mode|toggle-word-wrap|tool-bar--image-expression|tool-bar-get-system-style|tool-bar-height|tool-bar-lines-needed|tool-bar-local-item|tool-bar-make-keymap-1|tool-bar-make-keymap|tool-bar-mode|tool-bar-pixel-width|tool-bar-setup|tooltip-cancel-delayed-tip|tooltip-delay|tooltip-event-buffer|tooltip-expr-to-print|tooltip-gud-toggle-dereference|tooltip-help-tips|tooltip-hide|tooltip-identifier-from-point|tooltip-mode|tooltip-process-prompt-regexp|tooltip-set-param|tooltip-show-help-non-mode|tooltip-show-help|tooltip-show|tooltip-start-delayed-tip|tooltip-strip-prompt|tooltip-timeout|tq-buffer|tq-filter|tq-process-buffer|tq-process|tq-queue-add|tq-queue-empty|tq-queue-head-closure|tq-queue-head-fn|tq-queue-head-question|tq-queue-head-regexp|tq-queue-pop|tq-queue|trace--display-buffer|trace--read-args|trace-entry-message|trace-exit-message|trace-function-background|trace-function-foreground|trace-function-internal|trace-function|trace-is-traced|trace-make-advice|trace-values|traceroute|tramp-accept-process-output|tramp-action-login|tramp-action-out-of-band|tramp-action-password|tramp-action-permission-denied|tramp-action-process-alive|tramp-action-succeed|tramp-action-terminal|tramp-action-yesno|tramp-action-yn|tramp-adb-file-name-handler|tramp-adb-file-name-p|tramp-adb-parse-device-names|tramp-autoload-file-name-handler|tramp-backtrace|tramp-buffer-name|tramp-bug|tramp-cache-print|tramp-call-process|tramp-check-cached-permissions|tramp-check-for-regexp|tramp-check-proper-method-and-host|tramp-cleanup-all-buffers|tramp-cleanup-all-connections|tramp-cleanup-connection|tramp-cleanup-this-connection|tramp-clear-passwd|tramp-compat-coding-system-change-eol-conversion|tramp-compat-condition-case-unless-debug|tramp-compat-copy-directory|tramp-compat-copy-file|tramp-compat-decimal-to-octal|tramp-compat-delete-directory|tramp-compat-delete-file|tramp-compat-file-attributes|tramp-compat-font-lock-add-keywords|tramp-compat-funcall|tramp-compat-load|tramp-compat-make-temp-file|tramp-compat-most-positive-fixnum|tramp-compat-number-sequence|tramp-compat-octal-to-decimal|tramp-compat-process-get|tramp-compat-process-put|tramp-compat-process-running-p|tramp-compat-replace-regexp-in-string|tramp-compat-set-process-query-on-exit-flag|tramp-compat-split-string|tramp-compat-temporary-file-directory|tramp-compat-with-temp-message|tramp-completion-dissect-file-name|tramp-completion-dissect-file-name1|tramp-completion-file-name-handler|tramp-completion-handle-file-name-all-completions|tramp-completion-handle-file-name-completion|tramp-completion-make-tramp-file-name|tramp-completion-mode-p|tramp-completion-run-real-handler|tramp-condition-case-unless-debug|tramp-connectable-p|tramp-connection-property-p|tramp-debug-buffer-name|tramp-debug-message|tramp-debug-outline-level|tramp-default-file-modes|tramp-delete-temp-file-function|tramp-dissect-file-name|tramp-drop-volume-letter|tramp-equal-remote|tramp-error-with-buffer|tramp-error|tramp-eshell-directory-change|tramp-exists-file-name-handler|tramp-file-mode-from-int|tramp-file-mode-permissions|tramp-file-name-domain|tramp-file-name-for-operation|tramp-file-name-handler|tramp-file-name-hop|tramp-file-name-host|tramp-file-name-localname|tramp-file-name-method|tramp-file-name-p|tramp-file-name-port|tramp-file-name-real-host|tramp-file-name-real-user|tramp-file-name-user|tramp-find-file-name-coding-system-alist|tramp-find-foreign-file-name-handler|tramp-find-host|tramp-find-method|tramp-find-user|tramp-flush-connection-property|tramp-flush-directory-property|tramp-flush-file-property|tramp-ftp-enable-ange-ftp|tramp-ftp-file-name-handler|tramp-ftp-file-name-p|tramp-get-buffer|tramp-get-completion-function|tramp-get-completion-methods|tramp-get-completion-user-host|tramp-get-connection-buffer|tramp-get-connection-name|tramp-get-connection-process|tramp-get-connection-property|tramp-get-debug-buffer|tramp-get-device|tramp-get-file-property|tramp-get-inode|tramp-get-local-gid|tramp-get-local-uid|tramp-get-method-parameter|tramp-get-remote-tmpdir|tramp-gvfs-file-name-handler|tramp-gvfs-file-name-p|tramp-gw-open-connection|tramp-handle-directory-file-name|tramp-handle-directory-files-and-attributes|tramp-handle-directory-files|tramp-handle-dired-uncache|tramp-handle-file-accessible-directory-p|tramp-handle-file-exists-p|tramp-handle-file-modes|tramp-handle-file-name-as-directory|tramp-handle-file-name-completion|tramp-handle-file-name-directory|tramp-handle-file-name-nondirectory|tramp-handle-file-newer-than-file-p|tramp-handle-file-notify-add-watch|tramp-handle-file-notify-rm-watch|tramp-handle-file-regular-p|tramp-handle-file-remote-p|tramp-handle-file-symlink-p|tramp-handle-find-backup-file-name|tramp-handle-insert-directory|tramp-handle-insert-file-contents|tramp-handle-load|tramp-handle-make-auto-save-file-name|tramp-handle-make-symbolic-link|tramp-handle-set-visited-file-modtime|tramp-handle-shell-command|tramp-handle-substitute-in-file-name|tramp-handle-unhandled-file-name-directory|tramp-handle-verify-visited-file-modtime|tramp-list-connections|tramp-local-host-p|tramp-make-tramp-file-name|tramp-make-tramp-temp-file|tramp-message|tramp-mode-string-to-int|tramp-parse-connection-properties|tramp-parse-file|tramp-parse-group|tramp-parse-hosts-group|tramp-parse-hosts|tramp-parse-netrc-group|tramp-parse-netrc|tramp-parse-passwd-group|tramp-parse-passwd|tramp-parse-putty-group|tramp-parse-putty|tramp-parse-rhosts-group|tramp-parse-rhosts|tramp-parse-sconfig-group|tramp-parse-sconfig|tramp-parse-shostkeys-sknownhosts|tramp-parse-shostkeys|tramp-parse-shosts-group|tramp-parse-shosts|tramp-parse-sknownhosts|tramp-process-actions|tramp-process-one-action|tramp-progress-reporter-update|tramp-read-passwd|tramp-register-autoload-file-name-handlers|tramp-register-file-name-handlers|tramp-replace-environment-variables|tramp-rfn-eshadow-setup-minibuffer|tramp-rfn-eshadow-update-overlay|tramp-run-real-handler|tramp-send-string|tramp-set-auto-save-file-modes|tramp-set-completion-function|tramp-set-connection-property|tramp-set-file-property|tramp-sh-file-name-handler|tramp-shell-quote-argument|tramp-smb-file-name-handler|tramp-smb-file-name-p|tramp-subst-strs-in-string|tramp-time-diff|tramp-tramp-file-p|tramp-unload-file-name-handlers|tramp-unload-tramp|tramp-user-error|tramp-uuencode-region|tramp-version|tramp-wait-for-regexp|transform-make-coding-system-args|translate-region-internal|transpose-chars|transpose-lines|transpose-paragraphs|transpose-sentences|transpose-sexps|transpose-subr-1|transpose-subr|transpose-words|tree-equal|tree-widget--locate-sub-directory|tree-widget-action|tree-widget-button-click|tree-widget-children-value-save|tree-widget-convert-widget|tree-widget-create-image|tree-widget-expander-p|tree-widget-find-image|tree-widget-help-echo|tree-widget-icon-action|tree-widget-icon-create|tree-widget-icon-help-echo|tree-widget-image-formats|tree-widget-image-properties|tree-widget-keep|tree-widget-leaf-node-icon-p|tree-widget-lookup-image|tree-widget-node|tree-widget-p|tree-widget-set-image-properties|tree-widget-set-parent-theme|tree-widget-set-theme|tree-widget-theme-name|tree-widget-themes-path|tree-widget-use-image-p|tree-widget-value-create|truncate\\\\*|truncated-partial-width-window-p|try-complete-file-name-partially|try-complete-file-name|try-complete-lisp-symbol-partially|try-complete-lisp-symbol|try-expand-all-abbrevs|try-expand-dabbrev-all-buffers|try-expand-dabbrev-from-kill|try-expand-dabbrev-visible|try-expand-dabbrev|try-expand-line-all-buffers|try-expand-line|try-expand-list-all-buffers|try-expand-list|try-expand-whole-kill|tty-color-by-index|tty-color-canonicalize|tty-color-desc|tty-color-gray-shades|tty-color-off-gray-diag|tty-color-standard-values|tty-color-values|tty-create-frame-with-faces|tty-display-color-cells|tty-display-color-p|tty-find-type|tty-handle-args|tty-handle-reverse-video|tty-modify-color-alist|tty-no-underline|tty-register-default-colors|tty-run-terminal-initialization|tty-set-up-initial-frame-faces|tty-suppress-bold-inverse-default-colors|tty-type|tumme|turkish-case-conversion-disable|turkish-case-conversion-enable|turn-off-auto-fill|turn-off-flyspell|turn-off-follow-mode|turn-off-hideshow|turn-off-iimage-mode|turn-off-xterm-mouse-tracking-on-terminal|turn-on-auto-fill|turn-on-auto-revert-mode|turn-on-auto-revert-tail-mode|turn-on-cwarn-mode-if-enabled|turn-on-cwarn-mode|turn-on-eldoc-mode|turn-on-flyspell|turn-on-follow-mode|turn-on-font-lock-if-desired|turn-on-font-lock|turn-on-gnus-dired-mode)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:turn-on-gnus-mailing-list-mode|turn-on-hi-lock-if-enabled|turn-on-iimage-mode|turn-on-org-cdlatex|turn-on-orgstruct\\\\+\\\\+|turn-on-orgstruct|turn-on-orgtbl|turn-on-prettify-symbols-mode|turn-on-reftex|turn-on-visual-line-mode|turn-on-xterm-mouse-tracking-on-terminal|type-break-alarm|type-break-cancel-function-timers|type-break-cancel-schedule|type-break-cancel-time-warning-schedule|type-break-catch-up-event|type-break-check-keystroke-warning|type-break-check-post-command-hook|type-break-check|type-break-choose-file|type-break-demo-boring|type-break-demo-hanoi|type-break-demo-life|type-break-do-query|type-break-file-keystroke-count|type-break-file-time|type-break-force-mode-line-update|type-break-format-time|type-break-get-previous-count|type-break-get-previous-time|type-break-guesstimate-keystroke-threshold|type-break-keystroke-reset|type-break-keystroke-warning|type-break-mode-line-countdown-or-break|type-break-mode-line-message-mode|type-break-mode|type-break-noninteractive-query|type-break-query-mode|type-break-query|type-break-run-at-time|type-break-run-tb-post-command-hook|type-break-schedule|type-break-statistics|type-break-time-difference|type-break-time-stamp|type-break-time-sum|type-break-time-warning-alarm|type-break-time-warning-schedule|type-break-time-warning|type-break|typecase|typep|uce-insert-ranting|uce-reply-to-uce|ucs-input-activate|ucs-insert|ucs-names|ucs-normalize-HFS-NFC-region|ucs-normalize-HFS-NFC-string|ucs-normalize-HFS-NFD-region|ucs-normalize-HFS-NFD-string|ucs-normalize-NFC-region|ucs-normalize-NFC-string|ucs-normalize-NFD-region|ucs-normalize-NFD-string|ucs-normalize-NFKC-region|ucs-normalize-NFKC-string|ucs-normalize-NFKD-region|ucs-normalize-NFKD-string|uncomment-region-default|uncomment-region|uncompface|underline-region|undigestify-rmail-message|undo-adjust-beg-end|undo-adjust-elt|undo-adjust-pos|undo-copy-list-1|undo-copy-list|undo-delta|undo-elt-crosses-region|undo-elt-in-region|undo-make-selective-list|undo-more|undo-only|undo-outer-limit-truncate|undo-start|undo|unencodable-char-position|unexpand-abbrev|unfocus-frame|unforward-rmail-message|unhighlight-regexp|unicode-property-table-internal|unify-8859-on-decoding-mode|unify-8859-on-encoding-mode|unify-charset|union|uniquify--create-file-buffer-advice|uniquify--rename-buffer-advice|uniquify-buffer-base-name|uniquify-buffer-file-name|uniquify-get-proposed-name|uniquify-item-base--cmacro|uniquify-item-base|uniquify-item-buffer--cmacro|uniquify-item-buffer|uniquify-item-dirname--cmacro|uniquify-item-dirname|uniquify-item-greaterp|uniquify-item-p--cmacro|uniquify-item-p|uniquify-item-proposed--cmacro|uniquify-item-proposed|uniquify-kill-buffer-function|uniquify-make-item--cmacro|uniquify-make-item|uniquify-maybe-rerationalize-w\\\\/o-cb|uniquify-rationalize-a-list|uniquify-rationalize-conflicting-sublist|uniquify-rationalize-file-buffer-names|uniquify-rationalize|uniquify-rename-buffer|uniquify-rerationalize-w\\\\/o-cb|uniquify-unload-function|universal-argument--mode|universal-argument-more|universal-coding-system-argument|unix-sync|unjustify-current-line|unjustify-region|unload--set-major-mode|unmorse-region|unmsys--file-name|unread-bib|unrecord-window-buffer|unrmail|unsafep-function|unsafep-let|unsafep-progn|unsafep-variable|untabify-backward|untabify|untrace-all|untrace-function|ununderline-region|up-ifdef|upcase-initials-region|update-glyphless-char-display|update-leim-list-file|url--allowed-chars|url-attributes--cmacro|url-attributes|url-auth-registered|url-auth-user-prompt|url-basepath|url-basic-auth|url-bit-for-url|url-build-query-string|url-cache-create-filename|url-cache-extract|url-cache-prune-cache|url-cid|url-completion-function|url-cookie-clean-up|url-cookie-create--cmacro|url-cookie-create|url-cookie-delete|url-cookie-domain--cmacro|url-cookie-domain|url-cookie-expired-p|url-cookie-expires--cmacro|url-cookie-expires|url-cookie-generate-header-lines|url-cookie-handle-set-cookie|url-cookie-host-can-set-p|url-cookie-list|url-cookie-localpart--cmacro|url-cookie-localpart|url-cookie-mode|url-cookie-name--cmacro|url-cookie-name|url-cookie-p--cmacro|url-cookie-p|url-cookie-parse-file|url-cookie-quit|url-cookie-retrieve|url-cookie-secure--cmacro|url-cookie-secure|url-cookie-setup-save-timer|url-cookie-store|url-cookie-value--cmacro|url-cookie-value|url-cookie-write-file|url-copy-file|url-data|url-dav-request|url-dav-supported-p|url-dav-vc-registered|url-debug|url-default-expander|url-default-find-proxy-for-url|url-device-type|url-digest-auth-create-key|url-digest-auth|url-display-percentage|url-do-auth-source-search|url-do-setup|url-domsuf-cookie-allowed-p|url-domsuf-parse-file|url-eat-trailing-space|url-encode-url|url-expand-file-name|url-expander-remove-relative-links|url-extract-mime-headers|url-file-directory|url-file-extension|url-file-handler|url-file-local-copy|url-file-nondirectory|url-file|url-filename--cmacro|url-filename|url-find-proxy-for-url|url-fullness--cmacro|url-fullness|url-gateway-nslookup-host|url-gc-dead-buffers|url-generate-unique-filename|url-generic-emulator-loader|url-generic-parse-url|url-get-authentication|url-get-normalized-date|url-get-url-at-point|url-handle-content-transfer-encoding|url-handler-mode|url-have-visited-url|url-hexify-string|url-history-parse-history|url-history-save-history|url-history-setup-save-timer|url-history-update-url|url-host--cmacro|url-host|url-http-activate-callback|url-http-async-sentinel|url-http-chunked-encoding-after-change-function|url-http-clean-headers|url-http-content-length-after-change-function|url-http-create-request|url-http-debug|url-http-end-of-document-sentinel|url-http-expand-file-name|url-http-file-attributes|url-http-file-exists-p|url-http-file-readable-p|url-http-find-free-connection|url-http-generic-filter|url-http-handle-authentication|url-http-handle-cookies|url-http-head-file-attributes|url-http-head|url-http-idle-sentinel|url-http-mark-connection-as-busy|url-http-mark-connection-as-free|url-http-options|url-http-parse-headers|url-http-parse-response|url-http-simple-after-change-function|url-http-symbol-value-in-buffer|url-http-user-agent-string|url-http-wait-for-headers-change-function|url-http|url-https-create-secure-wrapper|url-https-expand-file-name|url-https-file-attributes|url-https-file-exists-p|url-https-file-readable-p|url-https|url-identity-expander|url-info|url-insert-entities-in-string|url-insert-file-contents|url-irc|url-is-cached|url-lazy-message|url-ldap|url-mail|url-mailto|url-make-private-file|url-man|url-mark-buffer-as-dead|url-mime-charset-string|url-mm-callback|url-mm-url|url-news|url-normalize-url|url-ns-prefs|url-ns-user-pref|url-open-rlogin|url-open-stream|url-open-telnet|url-p--cmacro|url-p|url-parse-args|url-parse-make-urlobj--cmacro|url-parse-make-urlobj|url-parse-query-string|url-password--cmacro|url-password-for-url|url-password|url-path-and-query|url-percentage|url-port-if-non-default|url-port|url-portspec--cmacro|url-portspec|url-pretty-length|url-proxy|url-queue-buffer--cmacro|url-queue-buffer|url-queue-callback--cmacro|url-queue-callback-function|url-queue-callback|url-queue-cbargs--cmacro|url-queue-cbargs|url-queue-inhibit-cookiesp--cmacro|url-queue-inhibit-cookiesp|url-queue-kill-job|url-queue-p--cmacro|url-queue-p|url-queue-pre-triggered--cmacro|url-queue-pre-triggered|url-queue-prune-old-entries|url-queue-remove-jobs-from-host|url-queue-retrieve|url-queue-run-queue|url-queue-setup-runners|url-queue-silentp--cmacro|url-queue-silentp|url-queue-start-retrieve|url-queue-start-time--cmacro|url-queue-start-time|url-queue-url--cmacro|url-queue-url|url-recreate-url-attributes|url-recreate-url|url-register-auth-scheme|url-retrieve-internal|url-retrieve-synchronously|url-retrieve|url-rlogin|url-scheme-default-loader|url-scheme-get-property|url-scheme-register-proxy|url-set-mime-charset-string|url-setup-privacy-info|url-silent--cmacro|url-silent|url-snews|url-store-in-cache|url-strip-leading-spaces|url-target--cmacro|url-target|url-telnet|url-tn3270|url-tramp-file-handler|url-truncate-url-for-viewing|url-type--cmacro|url-type|url-unhex-string|url-unhex|url-use-cookies--cmacro|url-use-cookies|url-user--cmacro|url-user-for-url|url-user|url-view-url|url-wait-for-string|url-warn|use-cjk-char-width-table|use-completion-backward-under|use-completion-backward|use-completion-before-point|use-completion-before-separator|use-completion-minibuffer-separator|use-completion-under-or-before-point|use-completion-under-point|use-default-char-width-table|use-fancy-splash-screens-p|use-package|user-original-login-name|user-variable-p|utf-7-imap-post-read-conversion|utf-7-imap-pre-write-conversion|utf-7-post-read-conversion|utf-7-pre-write-conversion|utf7-decode|utf7-encode|uudecode-char-int|uudecode-decode-region-external|uudecode-decode-region-internal|uudecode-decode-region|uudecode-string-to-multibyte|values-list|variable-at-point|variable-binding-locus|variable-pitch-mode|vc--add-line|vc--process-sentinel|vc--read-lines|vc--remove-regexp|vc-after-save|vc-annotate|vc-backend-for-registration|vc-backend-subdirectory-name|vc-backend|vc-before-save|vc-branch-p|vc-branch-part|vc-buffer-context|vc-buffer-sync|vc-bzr-registered|vc-call-backend|vc-call|vc-check-headers|vc-check-master-templates|vc-checkin|vc-checkout-model|vc-checkout|vc-clear-context|vc-coding-system-for-diff|vc-comment-search-forward|vc-comment-search-reverse|vc-comment-to-change-log|vc-compatible-state|vc-compilation-mode|vc-context-matches-p|vc-create-repo|vc-create-tag|vc-cvs-after-dir-status|vc-cvs-annotate-command|vc-cvs-annotate-current-time|vc-cvs-annotate-extract-revision-at-line|vc-cvs-annotate-process-filter|vc-cvs-annotate-time|vc-cvs-append-to-ignore|vc-cvs-check-headers|vc-cvs-checkin|vc-cvs-checkout-model|vc-cvs-checkout|vc-cvs-command|vc-cvs-comment-history|vc-cvs-could-register|vc-cvs-create-tag|vc-cvs-delete-file|vc-cvs-diff|vc-cvs-dir-extra-headers|vc-cvs-dir-status-files|vc-cvs-dir-status-heuristic|vc-cvs-file-to-string|vc-cvs-find-admin-dir|vc-cvs-find-revision|vc-cvs-get-entries|vc-cvs-ignore|vc-cvs-make-version-backups-p|vc-cvs-merge-file|vc-cvs-merge-news|vc-cvs-merge|vc-cvs-mode-line-string|vc-cvs-modify-change-comment|vc-cvs-next-revision|vc-cvs-parse-entry|vc-cvs-parse-root|vc-cvs-parse-status|vc-cvs-parse-sticky-tag|vc-cvs-parse-uhp|vc-cvs-previous-revision|vc-cvs-print-log|vc-cvs-register|vc-cvs-registered|vc-cvs-repository-hostname|vc-cvs-responsible-p|vc-cvs-retrieve-tag|vc-cvs-revert|vc-cvs-revision-completion-table|vc-cvs-revision-granularity|vc-cvs-revision-table|vc-cvs-state-heuristic|vc-cvs-state|vc-cvs-stay-local-p|vc-cvs-update-changelog|vc-cvs-valid-revision-number-p|vc-cvs-valid-symbolic-tag-name-p|vc-cvs-working-revision|vc-deduce-backend|vc-deduce-fileset|vc-default-check-headers|vc-default-comment-history|vc-default-dir-status-files|vc-default-extra-menu|vc-default-find-file-hook|vc-default-find-revision|vc-default-ignore-completion-table|vc-default-ignore|vc-default-log-edit-mode|vc-default-log-view-mode|vc-default-make-version-backups-p|vc-default-mark-resolved|vc-default-mode-line-string|vc-default-receive-file|vc-default-registered|vc-default-rename-file|vc-default-responsible-p|vc-default-retrieve-tag|vc-default-revert|vc-default-revision-completion-table|vc-default-show-log-entry|vc-default-working-revision|vc-delete-automatic-version-backups|vc-delete-file|vc-delistify|vc-diff-build-argument-list-internal|vc-diff-finish|vc-diff-internal|vc-diff-switches-list|vc-diff|vc-dir-mode|vc-dir|vc-dired-deduce-fileset|vc-dispatcher-browsing|vc-do-async-command|vc-do-command|vc-ediff|vc-editable-p|vc-ensure-vc-buffer|vc-error-occurred|vc-exec-after|vc-expand-dirs|vc-file-clearprops|vc-file-getprop|vc-file-setprop|vc-file-tree-walk-internal|vc-file-tree-walk|vc-find-backend-function|vc-find-conflicted-file|vc-find-file-hook|vc-find-position-by-context|vc-find-revision|vc-find-root|vc-finish-logentry|vc-follow-link|vc-git-registered|vc-hg-registered|vc-ignore|vc-incoming-outgoing-internal|vc-insert-file|vc-insert-headers|vc-kill-buffer-hook|vc-log-edit|vc-log-incoming|vc-log-internal-common|vc-log-outgoing|vc-make-backend-sym|vc-make-version-backup|vc-mark-resolved|vc-maybe-resolve-conflicts|vc-menu-map-filter|vc-menu-map|vc-merge|vc-mode-line|vc-modify-change-comment|vc-mtn-registered|vc-next-action|vc-next-comment|vc-parse-buffer)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:vc-position-context|vc-possible-master|vc-previous-comment|vc-print-log-internal|vc-print-log-setup-buttons|vc-print-log|vc-print-root-log|vc-process-filter|vc-pull|vc-rcs-registered|vc-read-backend|vc-read-revision|vc-region-history|vc-register-with|vc-register|vc-registered|vc-rename-file|vc-resolve-conflicts|vc-responsible-backend|vc-restore-buffer-context|vc-resynch-buffer|vc-resynch-buffers-in-directory|vc-resynch-window|vc-retrieve-tag|vc-revert-buffer-internal|vc-revert-buffer|vc-revert-file|vc-revert|vc-revision-other-window|vc-rollback|vc-root-diff|vc-root-dir|vc-run-delayed|vc-sccs-registered|vc-sccs-search-project-dir|vc-set-async-update|vc-set-mode-line-busy-indicator|vc-setup-buffer|vc-src-registered|vc-start-logentry|vc-state-refresh|vc-state|vc-steal-lock|vc-string-prefix-p|vc-svn-registered|vc-switch-backend|vc-switches|vc-tag-precondition|vc-toggle-read-only|vc-transfer-file|vc-up-to-date-p|vc-update-change-log|vc-update|vc-user-login-name|vc-version-backup-file-name|vc-version-backup-file|vc-version-diff|vc-version-ediff|vc-workfile-version|vc-working-revision|vcursor-backward-char|vcursor-backward-word|vcursor-beginning-of-buffer|vcursor-beginning-of-line|vcursor-bind-keys|vcursor-check|vcursor-compare-windows|vcursor-copy-line|vcursor-copy-word|vcursor-copy|vcursor-cs-binding|vcursor-disable|vcursor-end-of-buffer|vcursor-end-of-line|vcursor-execute-command|vcursor-execute-key|vcursor-find-window|vcursor-forward-char|vcursor-forward-word|vcursor-get-char-count|vcursor-goto|vcursor-insert|vcursor-isearch-backward|vcursor-isearch-forward|vcursor-locate|vcursor-map|vcursor-move|vcursor-next-line|vcursor-other-window|vcursor-post-command|vcursor-previous-line|vcursor-relative-move|vcursor-scroll-down|vcursor-scroll-up|vcursor-swap-point|vcursor-toggle-copy|vcursor-toggle-vcursor-map|vcursor-use-vcursor-map|vcursor-window-funcall|vector-or-char-table-p|vendor-specific-keysyms|vera-add-syntax|vera-backward-same-indent|vera-backward-statement|vera-backward-syntactic-ws|vera-beginning-of-statement|vera-beginning-of-substatement|vera-comment-uncomment-region|vera-corresponding-begin|vera-corresponding-if|vera-customize|vera-electric-closing-brace|vera-electric-opening-brace|vera-electric-pound|vera-electric-return|vera-electric-slash|vera-electric-space|vera-electric-star|vera-electric-tab|vera-evaluate-offset|vera-expand-abbrev|vera-font-lock-match-item|vera-fontify-buffer|vera-forward-same-indent|vera-forward-statement|vera-forward-syntactic-ws|vera-get-offset|vera-guess-basic-syntax|vera-in-literal|vera-indent-block-closing|vera-indent-buffer|vera-indent-line|vera-indent-region|vera-langelem-col|vera-lineup-C-comments|vera-lineup-comment|vera-mode-menu|vera-mode|vera-point|vera-prepare-search|vera-re-search-backward|vera-re-search-forward|vera-skip-backward-literal|vera-skip-forward-literal|vera-submit-bug-report|vera-try-expand-abbrev|vera-version|verify-xscheme-buffer|verilog-add-list-unique|verilog-alw-get-inputs|verilog-alw-get-outputs-delayed|verilog-alw-get-outputs-immediate|verilog-alw-get-temps|verilog-alw-get-uses-delayed|verilog-alw-new|verilog-at-close-constraint-p|verilog-at-close-struct-p|verilog-at-constraint-p|verilog-at-struct-mv-p|verilog-at-struct-p|verilog-auto-arg-ports|verilog-auto-arg|verilog-auto-ascii-enum|verilog-auto-assign-modport|verilog-auto-inout-comp|verilog-auto-inout-in|verilog-auto-inout-modport|verilog-auto-inout-module|verilog-auto-inout-param|verilog-auto-inout|verilog-auto-input|verilog-auto-insert-last|verilog-auto-insert-lisp|verilog-auto-inst-first|verilog-auto-inst-param|verilog-auto-inst-port-list|verilog-auto-inst-port-map|verilog-auto-inst-port|verilog-auto-inst|verilog-auto-logic-setup|verilog-auto-logic|verilog-auto-output-every|verilog-auto-output|verilog-auto-re-search-do|verilog-auto-read-locals|verilog-auto-reeval-locals|verilog-auto-reg-input|verilog-auto-reg|verilog-auto-reset|verilog-auto-save-check|verilog-auto-save-compile|verilog-auto-sense-sigs|verilog-auto-sense|verilog-auto-star-safe|verilog-auto-star|verilog-auto-template-lint|verilog-auto-templated-rel|verilog-auto-tieoff|verilog-auto-undef|verilog-auto-unused|verilog-auto-wire|verilog-auto|verilog-back-to-start-translate-off|verilog-backward-case-item|verilog-backward-open-bracket|verilog-backward-open-paren|verilog-backward-sexp|verilog-backward-syntactic-ws-quick|verilog-backward-syntactic-ws|verilog-backward-token|verilog-backward-up-list|verilog-backward-ws&directives|verilog-batch-auto|verilog-batch-delete-auto|verilog-batch-delete-trailing-whitespace|verilog-batch-diff-auto|verilog-batch-error-wrapper|verilog-batch-execute-func|verilog-batch-indent|verilog-batch-inject-auto|verilog-beg-of-defun-quick|verilog-beg-of-defun|verilog-beg-of-statement-1|verilog-beg-of-statement|verilog-booleanp|verilog-build-defun-re|verilog-calc-1|verilog-calculate-indent-directive|verilog-calculate-indent|verilog-case-indent-level|verilog-clog2|verilog-colorize-include-files-buffer|verilog-comment-depth|verilog-comment-indent|verilog-comment-region|verilog-comp-defun|verilog-complete-word|verilog-completion-response|verilog-completion|verilog-continued-line-1|verilog-continued-line|verilog-current-flags|verilog-current-indent-level|verilog-customize|verilog-declaration-beg|verilog-declaration-end|verilog-decls-append|verilog-decls-get-assigns|verilog-decls-get-consts|verilog-decls-get-gparams|verilog-decls-get-inouts|verilog-decls-get-inputs|verilog-decls-get-interfaces|verilog-decls-get-iovars|verilog-decls-get-modports|verilog-decls-get-outputs|verilog-decls-get-ports|verilog-decls-get-signals|verilog-decls-get-vars|verilog-decls-new|verilog-decls-princ|verilog-define-abbrev|verilog-delete-auto-star-all|verilog-delete-auto-star-implicit|verilog-delete-auto|verilog-delete-autos-lined|verilog-delete-empty-auto-pair|verilog-delete-to-paren|verilog-delete-trailing-whitespace|verilog-diff-auto|verilog-diff-buffers-p|verilog-diff-file-with-buffer|verilog-diff-report|verilog-dir-file-exists-p|verilog-dir-files|verilog-do-indent|verilog-easy-menu-filter|verilog-end-of-defun|verilog-end-of-statement|verilog-end-translate-off|verilog-enum-ascii|verilog-error-regexp-add-emacs|verilog-expand-command|verilog-expand-dirnames|verilog-expand-vector-internal|verilog-expand-vector|verilog-faq|verilog-font-customize|verilog-font-lock-match-item|verilog-forward-close-paren|verilog-forward-or-insert-line|verilog-forward-sexp-cmt|verilog-forward-sexp-function|verilog-forward-sexp-ign-cmt|verilog-forward-sexp|verilog-forward-syntactic-ws|verilog-forward-ws&directives|verilog-func-completion|verilog-generate-numbers|verilog-get-completion-decl|verilog-get-default-symbol|verilog-get-end-of-defun|verilog-get-expr|verilog-get-lineup-indent-2|verilog-get-lineup-indent|verilog-getopt-file|verilog-getopt-flags|verilog-getopt|verilog-goto-defun-file|verilog-goto-defun|verilog-header|verilog-highlight-buffer|verilog-highlight-region|verilog-in-attribute-p|verilog-in-case-region-p|verilog-in-comment-or-string-p|verilog-in-comment-p|verilog-in-coverage-p|verilog-in-directive-p|verilog-in-escaped-name-p|verilog-in-fork-region-p|verilog-in-generate-region-p|verilog-in-parameter-p|verilog-in-paren-count|verilog-in-paren-quick|verilog-in-paren|verilog-in-parenthesis-p|verilog-in-slash-comment-p|verilog-in-star-comment-p|verilog-in-struct-nested-p|verilog-in-struct-p|verilog-indent-buffer|verilog-indent-comment|verilog-indent-declaration|verilog-indent-line-relative|verilog-indent-line|verilog-inject-arg|verilog-inject-auto|verilog-inject-inst|verilog-inject-sense|verilog-insert-1|verilog-insert-block|verilog-insert-date|verilog-insert-definition|verilog-insert-indent|verilog-insert-indices|verilog-insert-last-command-event|verilog-insert-one-definition|verilog-insert-year|verilog-insert|verilog-inside-comment-or-string-p|verilog-is-number|verilog-just-one-space|verilog-keyword-completion|verilog-kill-existing-comment|verilog-label-be|verilog-leap-to-case-head|verilog-leap-to-head|verilog-library-filenames|verilog-lint-off|verilog-linter-name|verilog-load-file-at-mouse|verilog-load-file-at-point|verilog-make-width-expression|verilog-mark-defun|verilog-match-translate-off|verilog-menu|verilog-mode|verilog-modi-cache-add-gparams|verilog-modi-cache-add-inouts|verilog-modi-cache-add-inputs|verilog-modi-cache-add-outputs|verilog-modi-cache-add-vars|verilog-modi-cache-add|verilog-modi-cache-results|verilog-modi-current-get|verilog-modi-current|verilog-modi-file-or-buffer|verilog-modi-filename|verilog-modi-get-decls|verilog-modi-get-point|verilog-modi-get-sub-decls|verilog-modi-get-type|verilog-modi-goto|verilog-modi-lookup|verilog-modi-modport-lookup-one|verilog-modi-modport-lookup|verilog-modi-name|verilog-modi-new|verilog-modify-compile-command|verilog-modport-clockings-add|verilog-modport-clockings|verilog-modport-decls-set|verilog-modport-decls|verilog-modport-name|verilog-modport-new|verilog-modport-princ|verilog-module-filenames|verilog-module-inside-filename-p|verilog-more-comment|verilog-one-line|verilog-parenthesis-depth|verilog-point-text|verilog-preprocess|verilog-preserve-dir-cache|verilog-preserve-modi-cache|verilog-pretty-declarations-auto|verilog-pretty-declarations|verilog-pretty-expr|verilog-re-search-backward-quick|verilog-re-search-backward-substr|verilog-re-search-backward|verilog-re-search-forward-quick|verilog-re-search-forward-substr|verilog-re-search-forward|verilog-read-always-signals-recurse|verilog-read-always-signals|verilog-read-arg-pins|verilog-read-auto-constants|verilog-read-auto-lisp-present|verilog-read-auto-lisp|verilog-read-auto-params|verilog-read-auto-template-hit|verilog-read-auto-template-middle|verilog-read-auto-template|verilog-read-decls|verilog-read-defines|verilog-read-includes|verilog-read-inst-backward-name|verilog-read-inst-module-matcher|verilog-read-inst-module|verilog-read-inst-name|verilog-read-inst-param-value|verilog-read-inst-pins|verilog-read-instants|verilog-read-module-name|verilog-read-signals|verilog-read-sub-decls-expr|verilog-read-sub-decls-gate|verilog-read-sub-decls-line|verilog-read-sub-decls-sig|verilog-read-sub-decls|verilog-regexp-opt|verilog-regexp-words|verilog-repair-close-comma|verilog-repair-open-comma|verilog-run-hooks|verilog-save-buffer-state|verilog-save-font-mods|verilog-save-no-change-functions|verilog-save-scan-cache|verilog-scan-and-debug|verilog-scan-cache-flush|verilog-scan-cache-ok-p|verilog-scan-debug|verilog-scan-region|verilog-scan|verilog-set-auto-endcomments|verilog-set-compile-command|verilog-set-define|verilog-show-completions|verilog-showscopes|verilog-sig-bits|verilog-sig-comment|verilog-sig-enum|verilog-sig-memory|verilog-sig-modport|verilog-sig-multidim-string|verilog-sig-multidim|verilog-sig-name|verilog-sig-new|verilog-sig-signed|verilog-sig-tieoff|verilog-sig-type-set|verilog-sig-type|verilog-sig-width|verilog-signals-combine-bus|verilog-signals-edit-wire-reg|verilog-signals-from-signame|verilog-signals-in|verilog-signals-matching-dir-re|verilog-signals-matching-enum|verilog-signals-matching-regexp|verilog-signals-memory|verilog-signals-not-in|verilog-signals-not-matching-regexp|verilog-signals-not-params|verilog-signals-princ|verilog-signals-sort-compare|verilog-signals-with|verilog-simplify-range-expression|verilog-sk-always|verilog-sk-assign|verilog-sk-begin|verilog-sk-case|verilog-sk-casex|verilog-sk-casez|verilog-sk-comment|verilog-sk-datadef|verilog-sk-def-reg|verilog-sk-define-signal|verilog-sk-else-if|verilog-sk-for|verilog-sk-fork|verilog-sk-function|verilog-sk-generate|verilog-sk-header-tmpl|verilog-sk-header|verilog-sk-if|verilog-sk-initial|verilog-sk-inout|verilog-sk-input|verilog-sk-module|verilog-sk-output|verilog-sk-ovm-class|verilog-sk-primitive|verilog-sk-prompt-clock|verilog-sk-prompt-condition|verilog-sk-prompt-inc|verilog-sk-prompt-init|verilog-sk-prompt-lsb|verilog-sk-prompt-msb|verilog-sk-prompt-name|verilog-sk-prompt-output|verilog-sk-prompt-reset|verilog-sk-prompt-state-selector|verilog-sk-prompt-width|verilog-sk-reg|verilog-sk-repeat|verilog-sk-specify|verilog-sk-state-machine|verilog-sk-task|verilog-sk-uvm-component|verilog-sk-uvm-object|verilog-sk-while|verilog-sk-wire|verilog-skip-backward-comment-or-string|verilog-skip-backward-comments|verilog-skip-forward-comment-or-string)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:verilog-skip-forward-comment-p|verilog-star-comment|verilog-start-translate-off|verilog-stmt-menu|verilog-string-diff|verilog-string-match-fold|verilog-string-remove-spaces|verilog-string-replace-matches|verilog-strip-comments|verilog-subdecls-get-inouts|verilog-subdecls-get-inputs|verilog-subdecls-get-interfaced|verilog-subdecls-get-interfaces|verilog-subdecls-get-outputs|verilog-subdecls-new|verilog-submit-bug-report|verilog-surelint-off|verilog-symbol-detick-denumber|verilog-symbol-detick-text|verilog-symbol-detick|verilog-syntax-ppss|verilog-typedef-name-p|verilog-uncomment-region|verilog-var-completion|verilog-verilint-off|verilog-version|verilog-wai|verilog-warn-error|verilog-warn|verilog-within-string|verilog-within-translate-off|version-list-<|version-list-<=|version-list-=|version-list-not-zero|version-to-list|version|version<|version<=|version=|vhdl-abbrev-list-init|vhdl-activate-customizations|vhdl-add-modified-file|vhdl-add-source-files-menu|vhdl-add-syntax|vhdl-adelete|vhdl-aget|vhdl-align-buffer|vhdl-align-declarations|vhdl-align-group|vhdl-align-inline-comment-buffer|vhdl-align-inline-comment-group|vhdl-align-inline-comment-region-1|vhdl-align-inline-comment-region|vhdl-align-list|vhdl-align-region-1|vhdl-align-region-2|vhdl-align-region-groups|vhdl-align-region|vhdl-align-same-indent|vhdl-aput-delete-if-nil|vhdl-aput|vhdl-auto-load-project|vhdl-back-to-indentation|vhdl-backward-same-indent|vhdl-backward-sexp|vhdl-backward-skip-label|vhdl-backward-syntactic-ws|vhdl-backward-to-block|vhdl-backward-up-list|vhdl-beautify-buffer|vhdl-beautify-region|vhdl-begin-p|vhdl-beginning-of-block|vhdl-beginning-of-defun|vhdl-beginning-of-libunit|vhdl-beginning-of-macro|vhdl-beginning-of-statement-1|vhdl-beginning-of-statement|vhdl-case-alternative-p|vhdl-case-keyword|vhdl-case-word|vhdl-character-to-event|vhdl-comment-append-inline|vhdl-comment-block|vhdl-comment-display-line|vhdl-comment-display|vhdl-comment-indent|vhdl-comment-insert-inline|vhdl-comment-insert|vhdl-comment-kill-inline-region|vhdl-comment-kill-region|vhdl-comment-uncomment-line|vhdl-comment-uncomment-region|vhdl-compile-directory|vhdl-compile-init|vhdl-compile-print-file-name|vhdl-compile|vhdl-compose-components-package|vhdl-compose-configuration-architecture|vhdl-compose-configuration|vhdl-compose-insert-generic|vhdl-compose-insert-port|vhdl-compose-insert-signal|vhdl-compose-new-component|vhdl-compose-place-component|vhdl-compose-wire-components|vhdl-corresponding-begin|vhdl-corresponding-defun|vhdl-corresponding-end|vhdl-corresponding-mid|vhdl-create-mode-menu|vhdl-current-line|vhdl-custom-set|vhdl-customize|vhdl-decision-query|vhdl-default-directory|vhdl-defun-p|vhdl-delete-indentation|vhdl-delete|vhdl-directory-files|vhdl-do-group|vhdl-do-list|vhdl-do-same-indent|vhdl-doc-mode|vhdl-doc-variable|vhdl-duplicate-project|vhdl-electric-close-bracket|vhdl-electric-comma|vhdl-electric-dash|vhdl-electric-equal|vhdl-electric-mode|vhdl-electric-open-bracket|vhdl-electric-period|vhdl-electric-quote|vhdl-electric-return|vhdl-electric-semicolon|vhdl-electric-space|vhdl-electric-tab|vhdl-end-of-block|vhdl-end-of-defun|vhdl-end-of-leader|vhdl-end-of-statement|vhdl-end-p|vhdl-end-translate-off|vhdl-error-regexp-add-emacs|vhdl-expand-abbrev|vhdl-expand-paren|vhdl-export-project|vhdl-fill-group|vhdl-fill-list|vhdl-fill-region|vhdl-fill-same-indent|vhdl-first-word|vhdl-fix-case-buffer|vhdl-fix-case-region-1|vhdl-fix-case-region|vhdl-fix-case-word|vhdl-fix-clause-buffer|vhdl-fix-clause|vhdl-fix-statement-buffer|vhdl-fix-statement-region|vhdl-fixup-whitespace-buffer|vhdl-fixup-whitespace-region|vhdl-font-lock-init|vhdl-font-lock-match-item|vhdl-fontify-buffer|vhdl-forward-comment|vhdl-forward-same-indent|vhdl-forward-sexp|vhdl-forward-skip-label|vhdl-forward-syntactic-ws|vhdl-function-name|vhdl-generate-makefile-1|vhdl-generate-makefile|vhdl-get-block-state|vhdl-get-compile-options|vhdl-get-components-package-name|vhdl-get-end-of-unit|vhdl-get-hierarchy|vhdl-get-instantiations|vhdl-get-library-unit|vhdl-get-make-options|vhdl-get-offset|vhdl-get-packages|vhdl-get-source-files|vhdl-get-subdirs|vhdl-get-syntactic-context|vhdl-get-visible-signals|vhdl-goto-marker|vhdl-has-syntax|vhdl-he-list-beg|vhdl-hideshow-init|vhdl-hooked-abbrev|vhdl-hs-forward-sexp-func|vhdl-hs-minor-mode|vhdl-import-project|vhdl-in-argument-list-p|vhdl-in-comment-p|vhdl-in-extended-identifier-p|vhdl-in-literal|vhdl-in-quote-p|vhdl-in-string-p|vhdl-indent-buffer|vhdl-indent-group|vhdl-indent-line|vhdl-indent-region|vhdl-indent-sexp|vhdl-index-menu-init|vhdl-insert-file-contents|vhdl-insert-keyword|vhdl-insert-string-or-file|vhdl-keep-region-active|vhdl-last-word|vhdl-libunit-p|vhdl-line-copy|vhdl-line-expand|vhdl-line-kill-entire|vhdl-line-kill|vhdl-line-open|vhdl-line-transpose-next|vhdl-line-transpose-previous|vhdl-line-yank|vhdl-lineup-arglist-intro|vhdl-lineup-arglist|vhdl-lineup-comment|vhdl-lineup-statement-cont|vhdl-load-cache|vhdl-make|vhdl-makefile-name|vhdl-mark-defun|vhdl-match-string-downcase|vhdl-match-translate-off|vhdl-max-marker|vhdl-menu-split|vhdl-minibuffer-tab|vhdl-mode-abbrev-table-init|vhdl-mode-map-init|vhdl-mode|vhdl-model-defun|vhdl-model-example-model|vhdl-model-insert|vhdl-model-map-init|vhdl-parse-group-comment|vhdl-parse-string|vhdl-paste-group-comment|vhdl-point|vhdl-port-copy|vhdl-port-flatten|vhdl-port-paste-component|vhdl-port-paste-constants|vhdl-port-paste-context-clause|vhdl-port-paste-declaration|vhdl-port-paste-entity|vhdl-port-paste-generic-map|vhdl-port-paste-generic|vhdl-port-paste-initializations|vhdl-port-paste-instance|vhdl-port-paste-port-map|vhdl-port-paste-port|vhdl-port-paste-signals|vhdl-port-paste-testbench|vhdl-port-reverse-direction|vhdl-prepare-search-1|vhdl-prepare-search-2|vhdl-print-warnings|vhdl-process-command-line-option|vhdl-project-p|vhdl-ps-print-init|vhdl-ps-print-settings|vhdl-re-search-backward|vhdl-re-search-forward|vhdl-read-offset|vhdl-regress-line|vhdl-remove-trailing-spaces-region|vhdl-remove-trailing-spaces|vhdl-replace-string|vhdl-require-hierarchy-info|vhdl-resolve-env-variable|vhdl-resolve-paths|vhdl-run-when-idle|vhdl-safe|vhdl-save-cache|vhdl-save-caches|vhdl-scan-context-clause|vhdl-scan-directory-contents|vhdl-scan-project-contents|vhdl-sequential-statement-p|vhdl-set-compiler|vhdl-set-default-project|vhdl-set-offset|vhdl-set-project|vhdl-set-style|vhdl-show-messages|vhdl-show-syntactic-information|vhdl-skip-case-alternative|vhdl-sort-alist|vhdl-speedbar-check-unit|vhdl-speedbar-configuration|vhdl-speedbar-contract-all|vhdl-speedbar-contract-level|vhdl-speedbar-dired|vhdl-speedbar-display-directory|vhdl-speedbar-display-projects|vhdl-speedbar-expand-all|vhdl-speedbar-expand-architecture|vhdl-speedbar-expand-config|vhdl-speedbar-expand-dirs|vhdl-speedbar-expand-entity|vhdl-speedbar-expand-package|vhdl-speedbar-expand-project|vhdl-speedbar-expand-units|vhdl-speedbar-find-file|vhdl-speedbar-generate-makefile|vhdl-speedbar-goto-this-unit|vhdl-speedbar-higher-text|vhdl-speedbar-initialize|vhdl-speedbar-insert-dir-hierarchy|vhdl-speedbar-insert-dirs|vhdl-speedbar-insert-hierarchy|vhdl-speedbar-insert-project-hierarchy|vhdl-speedbar-insert-projects|vhdl-speedbar-insert-subpackages|vhdl-speedbar-item-info|vhdl-speedbar-line-key|vhdl-speedbar-line-project|vhdl-speedbar-line-text|vhdl-speedbar-make-design|vhdl-speedbar-make-inst-line|vhdl-speedbar-make-pack-line|vhdl-speedbar-make-subpack-line|vhdl-speedbar-make-subprogram-line|vhdl-speedbar-make-title-line|vhdl-speedbar-place-component|vhdl-speedbar-port-copy|vhdl-speedbar-refresh|vhdl-speedbar-rescan-hierarchy|vhdl-speedbar-select-mra|vhdl-speedbar-set-depth|vhdl-speedbar-update-current-project|vhdl-speedbar-update-current-unit|vhdl-speedbar-update-units|vhdl-speedbar|vhdl-standard-p|vhdl-start-translate-off|vhdl-statement-p|vhdl-statistics-buffer|vhdl-stutter-mode|vhdl-submit-bug-report|vhdl-subprog-copy|vhdl-subprog-flatten|vhdl-subprog-paste-body|vhdl-subprog-paste-call|vhdl-subprog-paste-declaration|vhdl-subprog-paste-specification|vhdl-template-alias-hook|vhdl-template-alias|vhdl-template-and-hook|vhdl-template-architecture-hook|vhdl-template-architecture|vhdl-template-argument-list|vhdl-template-array|vhdl-template-assert-hook|vhdl-template-assert|vhdl-template-attribute-decl|vhdl-template-attribute-hook|vhdl-template-attribute-spec|vhdl-template-attribute|vhdl-template-bare-loop-hook|vhdl-template-bare-loop|vhdl-template-begin-end|vhdl-template-block-configuration|vhdl-template-block-hook|vhdl-template-block|vhdl-template-break-hook|vhdl-template-break|vhdl-template-case-hook|vhdl-template-case-is|vhdl-template-case-use|vhdl-template-case|vhdl-template-clocked-wait|vhdl-template-component-conf|vhdl-template-component-decl|vhdl-template-component-hook|vhdl-template-component-inst|vhdl-template-component|vhdl-template-conditional-signal-asst-hook|vhdl-template-conditional-signal-asst|vhdl-template-configuration-decl|vhdl-template-configuration-hook|vhdl-template-configuration-spec|vhdl-template-configuration|vhdl-template-constant-hook|vhdl-template-constant|vhdl-template-construct-alist-init|vhdl-template-default-hook|vhdl-template-default-indent-hook|vhdl-template-default-indent|vhdl-template-default|vhdl-template-directive-synthesis-off|vhdl-template-directive-synthesis-on|vhdl-template-directive-translate-off|vhdl-template-directive-translate-on|vhdl-template-directive|vhdl-template-disconnect-hook|vhdl-template-disconnect|vhdl-template-display-comment-hook|vhdl-template-else-hook|vhdl-template-else|vhdl-template-elsif-hook|vhdl-template-elsif|vhdl-template-entity-hook|vhdl-template-entity|vhdl-template-exit-hook|vhdl-template-exit|vhdl-template-field|vhdl-template-file-hook|vhdl-template-file|vhdl-template-footer|vhdl-template-for-generate|vhdl-template-for-hook|vhdl-template-for-loop|vhdl-template-for|vhdl-template-function-body|vhdl-template-function-decl|vhdl-template-function-hook|vhdl-template-function|vhdl-template-generate-body|vhdl-template-generate|vhdl-template-generic-hook|vhdl-template-generic-list|vhdl-template-generic|vhdl-template-group-decl|vhdl-template-group-hook|vhdl-template-group-template|vhdl-template-group|vhdl-template-header|vhdl-template-if-generate|vhdl-template-if-hook|vhdl-template-if-then-use|vhdl-template-if-then|vhdl-template-if-use|vhdl-template-if|vhdl-template-insert-construct|vhdl-template-insert-date|vhdl-template-insert-directive|vhdl-template-insert-fun|vhdl-template-insert-package|vhdl-template-instance-hook|vhdl-template-instance|vhdl-template-library-hook|vhdl-template-library|vhdl-template-limit-hook|vhdl-template-limit|vhdl-template-loop|vhdl-template-map-hook|vhdl-template-map-init|vhdl-template-map|vhdl-template-modify-noerror|vhdl-template-modify|vhdl-template-nand-hook|vhdl-template-nature-hook|vhdl-template-nature|vhdl-template-next-hook|vhdl-template-next|vhdl-template-nor-hook|vhdl-template-not-hook|vhdl-template-or-hook|vhdl-template-others-hook|vhdl-template-others|vhdl-template-package-alist-init|vhdl-template-package-body|vhdl-template-package-decl|vhdl-template-package-electrical-systems|vhdl-template-package-energy-systems|vhdl-template-package-fluidic-systems|vhdl-template-package-fundamental-constants|vhdl-template-package-hook|vhdl-template-package-material-constants|vhdl-template-package-math-complex|vhdl-template-package-math-real|vhdl-template-package-mechanical-systems|vhdl-template-package-numeric-bit|vhdl-template-package-numeric-std|vhdl-template-package-radiant-systems|vhdl-template-package-std-logic-1164|vhdl-template-package-std-logic-arith|vhdl-template-package-std-logic-misc|vhdl-template-package-std-logic-signed|vhdl-template-package-std-logic-textio|vhdl-template-package-std-logic-unsigned|vhdl-template-package-textio|vhdl-template-package-thermal-systems|vhdl-template-package|vhdl-template-paired-parens|vhdl-template-port-hook|vhdl-template-port-list|vhdl-template-port|vhdl-template-procedural-hook|vhdl-template-procedural|vhdl-template-procedure-body|vhdl-template-procedure-decl|vhdl-template-procedure-hook|vhdl-template-procedure|vhdl-template-process-comb|vhdl-template-process-hook|vhdl-template-process-seq|vhdl-template-process|vhdl-template-quantity-branch|vhdl-template-quantity-free|vhdl-template-quantity-hook|vhdl-template-quantity-source|vhdl-template-quantity|vhdl-template-record|vhdl-template-replace-header-keywords|vhdl-template-report-hook|vhdl-template-report)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:vhdl-template-return-hook|vhdl-template-return|vhdl-template-search-prompt|vhdl-template-selected-signal-asst-hook|vhdl-template-selected-signal-asst|vhdl-template-seq-process|vhdl-template-signal-hook|vhdl-template-signal|vhdl-template-standard-package|vhdl-template-subnature-hook|vhdl-template-subnature|vhdl-template-subprogram-body|vhdl-template-subprogram-decl|vhdl-template-subtype-hook|vhdl-template-subtype|vhdl-template-terminal-hook|vhdl-template-terminal|vhdl-template-type-hook|vhdl-template-type|vhdl-template-undo|vhdl-template-use-hook|vhdl-template-use|vhdl-template-variable-hook|vhdl-template-variable|vhdl-template-wait-hook|vhdl-template-wait|vhdl-template-when-hook|vhdl-template-when|vhdl-template-while-loop-hook|vhdl-template-while-loop|vhdl-template-with-hook|vhdl-template-with|vhdl-template-xnor-hook|vhdl-template-xor-hook|vhdl-toggle-project|vhdl-try-expand-abbrev|vhdl-uniquify|vhdl-upcase-list|vhdl-update-file-contents|vhdl-update-hierarchy|vhdl-update-mode-menu|vhdl-update-progress-info|vhdl-update-sensitivity-list-buffer|vhdl-update-sensitivity-list-process|vhdl-update-sensitivity-list|vhdl-use-direct-instantiation|vhdl-version|vhdl-visit-file|vhdl-warning-when-idle|vhdl-warning|vhdl-widget-directory-validate|vhdl-win-bsws|vhdl-win-fsws|vhdl-win-il|vhdl-within-translate-off|vhdl-words-init|vhdl-work-library|vhdl-write-file-hooks-init|viet-decode-viqr-buffer|viet-decode-viqr-region|viet-encode-viqr-buffer|viet-encode-viqr-region|viet-encode-viscii-char|view--disable|view--enable|view-buffer-other-frame|view-buffer-other-window|view-buffer|view-echo-area-messages|view-emacs-FAQ|view-emacs-debugging|view-emacs-news|view-emacs-problems|view-emacs-todo|view-end-message|view-external-packages|view-file-other-frame|view-file-other-window|view-file|view-hello-file|view-help-file|view-lossage|view-mode-disable|view-mode-enable|view-mode-enter|view-mode-exit|view-mode|view-order-manuals|view-page-size-default|view-really-at-end|view-recenter|view-return-to-alist-update|view-scroll-lines|view-search-no-match-lines|view-search|view-set-half-page-size-default|view-todo|view-window-size|viper--lookup-key|viper--tty-ESC-filter|viper-Append|viper-ESC-event-p|viper-ESC-keyseq-timeout|viper-ESC|viper-Insert|viper-Open-line|viper-P-val|viper-Put-back|viper-R-state-post-command-sentinel|viper-Region|viper-abbreviate-file-name|viper-abbreviate-string|viper-activate-input-method-action|viper-activate-input-method|viper-add-keymap|viper-add-local-keys|viper-add-newline-at-eob-if-necessary|viper-adjust-keys-for|viper-adjust-undo|viper-adjust-window|viper-after-change-sentinel|viper-after-change-undo-hook|viper-alist-to-list|viper-alternate-Meta-key|viper-append-filter-alist|viper-append-to-register|viper-append|viper-apply-major-mode-modifiers|viper-array-to-string|viper-ask-level|viper-autoindent|viper-backward-Word|viper-backward-char-carefully|viper-backward-char|viper-backward-indent|viper-backward-paragraph|viper-backward-sentence|viper-backward-word-kernel|viper-backward-word|viper-before-change-sentinel|viper-beginning-of-field|viper-beginning-of-line|viper-bind-mouse-insert-key|viper-bind-mouse-search-key|viper-bol-and-skip-white|viper-brac-function|viper-buffer-live-p|viper-buffer-search-enable|viper-can-release-key|viper-catch-tty-ESC|viper-change-cursor-color|viper-change-state-to-emacs|viper-change-state-to-insert|viper-change-state-to-replace|viper-change-state-to-vi|viper-change-state|viper-change-subr|viper-change-to-eol|viper-change|viper-char-array-p|viper-char-array-to-macro|viper-char-at-pos|viper-char-equal|viper-char-symbol-sequence-p|viper-characterp|viper-charlist-to-string|viper-charpair-command-p|viper-chars-in-region|viper-check-minibuffer-overlay|viper-check-version|viper-cleanup-ring|viper-color-defined-p|viper-color-display-p|viper-comint-mode-hook|viper-command-argument|viper-common-seq-prefix|viper-complete-filename-or-exit|viper-copy-event|viper-copy-region-as-kill|viper-current-ring-item|viper-cycle-through-mark-ring|viper-deactivate-input-method-action|viper-deactivate-input-method|viper-deactivate-mark|viper-debug-keymaps|viper-default-ex-addresses|viper-deflocalvar|viper-del-backward-char-in-insert|viper-del-backward-char-in-replace|viper-del-forward-char-in-insert|viper-delete-backward-char|viper-delete-backward-word|viper-delete-char|viper-delocalize-var|viper-describe-arg|viper-describe-kbd-macros|viper-describe-one-macro-elt|viper-describe-one-macro|viper-device-type|viper-digit-argument|viper-digit-command-p|viper-display-current-destructive-command|viper-display-macro|viper-display-vector-completions|viper-do-sequence-completion|viper-dotable-command-p|viper-downgrade-to-insert|viper-end-mapping-kbd-macro|viper-end-of-Word|viper-end-of-word-kernel|viper-end-of-word-p|viper-end-of-word|viper-end-with-a-newline-p|viper-enlarge-region|viper-erase-line|viper-escape-to-emacs|viper-escape-to-state|viper-escape-to-vi|viper-event-click-count|viper-event-key|viper-event-vector-p|viper-eventify-list-xemacs|viper-events-to-macro|viper-ex-read-file-name|viper-ex|viper-exchange-point-and-mark|viper-exec-Change|viper-exec-Delete|viper-exec-Yank|viper-exec-bang|viper-exec-buffer-search|viper-exec-change|viper-exec-delete|viper-exec-dummy|viper-exec-equals|viper-exec-form-in-emacs|viper-exec-form-in-vi|viper-exec-key-in-emacs|viper-exec-mapped-kbd-macro|viper-exec-shift|viper-exec-yank|viper-execute-com|viper-exit-insert-state|viper-exit-minibuffer|viper-extract-matching-alist-members|viper-fast-keysequence-p|viper-file-add-suffix|viper-file-checked-in-p|viper-filter-alist|viper-filter-list|viper-find-best-matching-macro|viper-find-char-backward|viper-find-char-forward|viper-find-char|viper-finish-R-mode|viper-finish-change|viper-fixup-macro|viper-flash-search-pattern|viper-forward-Word|viper-forward-char-carefully|viper-forward-char|viper-forward-indent|viper-forward-paragraph|viper-forward-sentence|viper-forward-word-kernel|viper-forward-word|viper-frame-value|viper-get-cursor-color|viper-get-ex-address-subr|viper-get-ex-address|viper-get-ex-buffer|viper-get-ex-com-subr|viper-get-ex-count|viper-get-ex-file|viper-get-ex-opt-gc|viper-get-ex-pat|viper-get-ex-token|viper-get-face|viper-get-filenames-from-buffer|viper-get-saved-cursor-color-in-emacs-mode|viper-get-saved-cursor-color-in-insert-mode|viper-get-saved-cursor-color-in-replace-mode|viper-get-visible-buffer-window|viper-getCom|viper-getcom|viper-glob-mswindows-files|viper-glob-unix-files|viper-global-execute|viper-go-away|viper-goto-char-backward|viper-goto-char-forward|viper-goto-col|viper-goto-eol|viper-goto-line|viper-goto-mark-and-skip-white|viper-goto-mark-subr|viper-goto-mark|viper-handle-!|viper-harness-minor-mode|viper-has-face-support-p|viper-hash-command-p|viper-heading-end|viper-hide-replace-overlay|viper-hide-search-overlay|viper-iconify|viper-if-string|viper-indent-line|viper-info-on-file|viper-insert-isearch-string|viper-insert-next-from-insertion-ring|viper-insert-prev-from-insertion-ring|viper-insert-state-post-command-sentinel|viper-insert-state-pre-command-sentinel|viper-insert-tab|viper-insert|viper-int-to-char|viper-intercept-ESC-key|viper-is-in-minibuffer|viper-isearch-backward|viper-isearch-forward|viper-join-lines|viper-kbd-buf-alist|viper-kbd-buf-definition|viper-kbd-buf-pair|viper-kbd-global-definition|viper-kbd-global-pair|viper-kbd-mode-alist|viper-kbd-mode-definition|viper-kbd-mode-pair|viper-ket-function|viper-key-press-events-to-chars|viper-key-to-character|viper-key-to-emacs-key|viper-keyseq-is-a-possible-macro|viper-kill-buffer|viper-kill-line|viper-last-command-char|viper-leave-region-active|viper-line-pos|viper-line-to-bottom|viper-line-to-middle|viper-line-to-top|viper-line|viper-list-to-alist|viper-load-custom-file|viper-looking-at-alpha|viper-looking-at-alphasep|viper-looking-at-separator|viper-looking-back|viper-loop|viper-macro-to-events|viper-major-mode-change-sentinel|viper-make-overlay|viper-mark-beginning-of-buffer|viper-mark-end-of-buffer|viper-mark-marker|viper-mark-point|viper-maybe-checkout|viper-memq-char|viper-message-conditions|viper-minibuffer-post-command-hook|viper-minibuffer-real-start|viper-minibuffer-setup-sentinel|viper-minibuffer-standard-hook|viper-minibuffer-trim-tail|viper-mode|viper-modify-keymap|viper-modify-major-mode|viper-mouse-catch-frame-switch|viper-mouse-click-frame|viper-mouse-click-get-word|viper-mouse-click-insert-word|viper-mouse-click-posn|viper-mouse-click-search-word|viper-mouse-click-window-buffer-name|viper-mouse-click-window-buffer|viper-mouse-click-window|viper-mouse-event-p|viper-move-marker-locally|viper-move-overlay|viper-move-replace-overlay|viper-movement-command-p|viper-multiclick-p|viper-next-destructive-command|viper-next-heading|viper-next-line-at-bol|viper-next-line-carefully|viper-next-line|viper-nil|viper-non-hook-settings|viper-normalize-minor-mode-map-alist|viper-open-line-at-point|viper-open-line|viper-over-whitespace-line|viper-overlay-end|viper-overlay-get|viper-overlay-live-p|viper-overlay-p|viper-overlay-put|viper-overlay-start|viper-overwrite|viper-p-val|viper-paren-match|viper-parse-mouse-key|viper-pos-within-region|viper-post-command-sentinel|viper-pre-command-sentinel|viper-prefix-arg-com|viper-prefix-arg-value|viper-prefix-command-p|viper-prefix-subseq-p|viper-preserve-cursor-color|viper-prev-destructive-command|viper-prev-heading|viper-previous-line-at-bol|viper-previous-line|viper-push-onto-ring|viper-put-back|viper-put-on-search-overlay|viper-put-string-on-kill-ring|viper-query-replace|viper-quote-region|viper-read-char-exclusive|viper-read-event-convert-to-char|viper-read-event|viper-read-fast-keysequence|viper-read-key-sequence|viper-read-key|viper-read-string-with-history|viper-record-kbd-macro|viper-refresh-mode-line|viper-region|viper-register-macro|viper-register-to-point|viper-regsuffix-command-p|viper-remember-current-frame|viper-remove-hooks|viper-repeat-find-opposite|viper-repeat-find|viper-repeat-from-history|viper-repeat-insert-command|viper-repeat|viper-replace-char-subr|viper-replace-char|viper-replace-end|viper-replace-mode-spy-after|viper-replace-mode-spy-before|viper-replace-start|viper-replace-state-carriage-return|viper-replace-state-exit-cmd|viper-replace-state-post-command-sentinel|viper-replace-state-pre-command-sentinel|viper-reset-mouse-insert-key|viper-reset-mouse-search-key|viper-restore-cursor-color|viper-restore-cursor-type|viper-ring-insert|viper-ring-pop|viper-ring-rotate1|viper-same-line|viper-save-cursor-color|viper-save-kill-buffer|viper-save-last-insertion|viper-save-setting|viper-save-string-in-file|viper-scroll-down-one|viper-scroll-down|viper-scroll-screen-back|viper-scroll-screen|viper-scroll-up-one|viper-scroll-up|viper-search-Next|viper-search-backward|viper-search-forward|viper-search-next|viper-search|viper-separator-skipback-special|viper-seq-last-elt|viper-set-complex-command-for-undo|viper-set-cursor-color-according-to-state|viper-set-destructive-command|viper-set-emacs-state-searchstyle-macros|viper-set-expert-level|viper-set-hooks|viper-set-input-method|viper-set-insert-cursor-type|viper-set-iso-accents-mode|viper-set-mark-if-necessary|viper-set-minibuffer-overlay|viper-set-minibuffer-style|viper-set-mode-vars-for|viper-set-parsing-style-toggling-macro|viper-set-register-macro|viper-set-replace-overlay-glyphs|viper-set-replace-overlay|viper-set-searchstyle-toggling-macros|viper-set-syntax-preference|viper-set-unread-command-events|viper-setup-ESC-to-escape|viper-setup-master-buffer|viper-sit-for-short|viper-skip-all-separators-backward|viper-skip-all-separators-forward|viper-skip-alpha-backward|viper-skip-alpha-forward|viper-skip-nonalphasep-backward|viper-skip-nonalphasep-forward|viper-skip-nonseparators|viper-skip-separators|viper-skip-syntax|viper-special-prefix-com|viper-special-read-and-insert-char|viper-special-ring-rotate1|viper-standard-value|viper-start-R-mode|viper-start-replace|viper-string-to-list|viper-submit-report|viper-subseq|viper-substitute-line|viper-substitute|viper-surrounding-word|viper-switch-to-buffer-other-window|viper-switch-to-buffer|viper-test-com-defun|viper-this-buffer-macros|viper-tmp-insert-at-eob|viper-toggle-case|viper-toggle-key-action|viper-toggle-parse-sexp-ignore-comments)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:viper-toggle-search-style|viper-translate-all-ESC-keysequences|viper-trim-replace-chars-to-delete-if-necessary|viper-unbind-mouse-insert-key|viper-unbind-mouse-search-key|viper-uncatch-tty-ESC|viper-undisplayed-files|viper-undo-more|viper-undo-sentinel|viper-undo|viper-unrecord-kbd-macro|viper-update-syntax-classes|viper-valid-marker|viper-valid-register|viper-version|viper-vi-command-p|viper-wildcard-to-regexp|viper-window-bottom|viper-window-display-p|viper-window-middle|viper-window-top|viper-yank-defun|viper-yank-last-insertion|viper-yank-line|viper-yank|viper-zap-local-keys|viper=|viqr-post-read-conversion|viqr-pre-write-conversion|visible-mode|visit-tags-table-buffer|visit-tags-table|visual-line-mode-set-explicitly|visual-line-mode|vt-keypad-off|vt-keypad-on|vt-narrow|vt-numlock|vt-toggle-screen|vt-wide|walk-window-subtree|walk-window-tree-1|walk-window-tree|warn-maybe-out-of-memory|warning-numeric-level|warning-suppress-p|wdired-abort-changes|wdired-capitalize-word|wdired-change-to-dired-mode|wdired-change-to-wdired-mode|wdired-check-kill-buffer|wdired-customize|wdired-do-perm-changes|wdired-do-renames|wdired-do-symlink-changes|wdired-downcase-word|wdired-exit|wdired-finish-edit|wdired-flag-for-deletion|wdired-get-filename|wdired-get-previous-link|wdired-isearch-filter-read-only|wdired-mode|wdired-mouse-toggle-bit|wdired-next-line|wdired-normalize-filename|wdired-perm-allowed-in-pos|wdired-perms-to-number|wdired-preprocess-files|wdired-preprocess-perms|wdired-preprocess-symlinks|wdired-previous-line|wdired-revert|wdired-search-and-rename|wdired-set-bit|wdired-toggle-bit|wdired-upcase-word|wdired-xcase-word|webjump-builtin-check-args|webjump-builtin|webjump-choose-mirror|webjump-do-simple-query|webjump-mirror-default|webjump-null-or-blank-string-p|webjump-read-choice|webjump-read-number|webjump-read-string|webjump-read-url-choice|webjump-to-iwin|webjump-to-risks|webjump-url-encode|webjump-url-fix-trailing-slash|webjump-url-fix|webjump|what-cursor-position|what-domain|what-line|what-page|when-let|where-is|which-func-ff-hook|which-func-mode|which-func-update-1|which-func-update-ediff-windows|which-func-update|which-function-mode|which-function|whitespace-action-when-on|whitespace-buffer-changed|whitespace-char-valid-p|whitespace-cleanup-region|whitespace-cleanup|whitespace-color-off|whitespace-color-on|whitespace-display-char-off|whitespace-display-char-on|whitespace-display-vector-p|whitespace-display-window|whitespace-empty-at-bob-regexp|whitespace-empty-at-eob-regexp|whitespace-ensure-local-variables|whitespace-help-off|whitespace-help-on|whitespace-help-scroll|whitespace-indentation-regexp|whitespace-insert-option-mark|whitespace-insert-value|whitespace-interactive-char|whitespace-kill-buffer|whitespace-looking-back|whitespace-mark-x|whitespace-mode|whitespace-newline-mode|whitespace-point--flush-used|whitespace-point--used|whitespace-post-command-hook|whitespace-regexp|whitespace-replace-action|whitespace-report-region|whitespace-report|whitespace-space-after-tab-regexp|whitespace-style-face-p|whitespace-style-mark-p|whitespace-toggle-list|whitespace-toggle-options|whitespace-trailing-regexp|whitespace-turn-off|whitespace-turn-on-if-enabled|whitespace-turn-on|whitespace-unload-function|whitespace-warn-read-only|whitespace-write-file-hook|whois-get-tld|whois-reverse-lookup|whois|widget-add-change|widget-add-documentation-string-button|widget-after-change|widget-alist-convert-option|widget-alist-convert-widget|widget-apply-action|widget-apply|widget-at|widget-backward|widget-before-change|widget-beginning-of-line|widget-boolean-prompt-value|widget-browse-at|widget-browse-other-window|widget-browse|widget-button-click|widget-button-press|widget-button-release-event-p|widget-checkbox-action|widget-checklist-add-item|widget-checklist-match-find|widget-checklist-match-inline|widget-checklist-match-up|widget-checklist-match|widget-checklist-validate|widget-checklist-value-create|widget-checklist-value-get|widget-child-validate|widget-child-value-get|widget-child-value-inline|widget-children-validate|widget-children-value-delete|widget-choice-action|widget-choice-default-get|widget-choice-match-inline|widget-choice-match|widget-choice-mouse-down-action|widget-choice-prompt-value|widget-choice-validate|widget-choice-value-create|widget-choose|widget-clear-undo|widget-coding-system-action|widget-coding-system-prompt-value|widget-color--choose-action|widget-color-action|widget-color-notify|widget-color-sample-face-get|widget-color-value-create|widget-complete|widget-completions-at-point|widget-cons-match|widget-const-prompt-value|widget-convert-button|widget-convert-text|widget-convert|widget-copy|widget-create-child-and-convert|widget-create-child-value|widget-create-child|widget-create|widget-default-action|widget-default-active|widget-default-button-face-get|widget-default-completions|widget-default-create|widget-default-deactivate|widget-default-default-get|widget-default-delete|widget-default-format-handler|widget-default-get|widget-default-menu-tag-get|widget-default-mouse-face-get|widget-default-notify|widget-default-prompt-value|widget-default-sample-face-get|widget-default-value-inline|widget-default-value-set|widget-delete-button-action|widget-delete|widget-docstring|widget-documentation-link-action|widget-documentation-link-add|widget-documentation-string-action|widget-documentation-string-indent-to|widget-documentation-string-value-create|widget-echo-help|widget-editable-list-delete-at|widget-editable-list-entry-create|widget-editable-list-format-handler|widget-editable-list-insert-before|widget-editable-list-match-inline|widget-editable-list-match|widget-editable-list-value-create|widget-editable-list-value-get|widget-emacs-commentary-link-action|widget-emacs-library-link-action|widget-end-of-line|widget-event-point|widget-face-notify|widget-face-sample-face-get|widget-field-action|widget-field-activate|widget-field-at|widget-field-buffer|widget-field-end|widget-field-find|widget-field-match|widget-field-prompt-internal|widget-field-prompt-value|widget-field-start|widget-field-text-end|widget-field-validate|widget-field-value-create|widget-field-value-delete|widget-field-value-get|widget-field-value-set|widget-file-link-action|widget-file-prompt-value|widget-forward|widget-function-link-action|widget-get-indirect|widget-get-sibling|widget-get|widget-group-default-get|widget-group-match-inline|widget-group-match|widget-group-value-create|widget-image-find|widget-image-insert|widget-info-link-action|widget-insert-button-action|widget-insert|widget-item-action|widget-item-match-inline|widget-item-match|widget-item-value-create|widget-key-sequence-read-event|widget-key-sequence-validate|widget-key-sequence-value-to-external|widget-key-sequence-value-to-internal|widget-kill-line|widget-leave-text|widget-magic-mouse-down-action|widget-map-buttons|widget-match-inline|widget-member|widget-minor-mode|widget-mouse-help|widget-move-and-invoke|widget-move|widget-narrow-to-field|widget-overlay-inactive|widget-parent-action|widget-plist-convert-option|widget-plist-convert-widget|widget-plist-member|widget-princ-to-string|widget-prompt-value|widget-push-button-value-create|widget-put|widget-radio-action|widget-radio-add-item|widget-radio-button-notify|widget-radio-chosen|widget-radio-validate|widget-radio-value-create|widget-radio-value-get|widget-radio-value-inline|widget-radio-value-set|widget-regexp-match|widget-regexp-validate|widget-restricted-sexp-match|widget-setup|widget-sexp-prompt-value|widget-sexp-validate|widget-sexp-value-to-internal|widget-specify-active|widget-specify-button|widget-specify-doc|widget-specify-field|widget-specify-inactive|widget-specify-insert|widget-specify-sample|widget-specify-secret|widget-sublist|widget-symbol-prompt-internal|widget-tabable-at|widget-toggle-action|widget-toggle-value-create|widget-type-default-get|widget-type-match|widget-type-value-create|widget-type|widget-types-convert-widget|widget-types-copy|widget-url-link-action|widget-value-convert-widget|widget-value-set|widget-value-value-get|widget-value|widget-variable-link-action|widget-vector-match|widget-visibility-value-create|widgetp|wildcard-to-regexp|windmove-constrain-around-range|windmove-constrain-loc-for-movement|windmove-constrain-to-range|windmove-coord-add|windmove-default-keybindings|windmove-do-window-select|windmove-down|windmove-find-other-window|windmove-frame-edges|windmove-left|windmove-other-window-loc|windmove-reference-loc|windmove-right|windmove-up|windmove-wrap-loc-for-movement|window--atom-check-1|window--atom-check|window--check|window--delete|window--display-buffer|window--dump-frame|window--dump-window|window--even-window-heights|window--frame-usable-p|window--in-direction-2|window--in-subtree-p|window--major-non-side-window|window--major-side-window|window--max-delta-1|window--maybe-raise-frame|window--min-delta-1|window--min-size-1|window--min-size-ignore-p|window--pixel-to-total-1|window--pixel-to-total|window--preservable-size|window--preserve-size|window--resizable-p|window--resizable|window--resize-apply-p|window--resize-child-windows-normal|window--resize-child-windows-skip-p|window--resize-child-windows|window--resize-mini-window|window--resize-reset-1|window--resize-reset|window--resize-root-window-vertically|window--resize-root-window|window--resize-siblings|window--resize-this-window|window--sanitize-margin|window--sanitize-window-sizes|window--side-check|window--side-window-p|window--size-fixed-1|window--size-ignore-p|window--size-to-pixel|window--state-get-1|window--state-put-1|window--state-put-2|window--subtree|window--try-to-split-window|window-at-side-list|window-at-side-p|window-atom-root|window-buffer-height|window-child-count|window-combination-p|window-combinations|window-configuration-to-register|window-deletable-p|window-dot|window-fixed-size-p|window-height|window-last-child|window-left|window-list-1|window-make-atom|window-max-delta|window-min-delta|window-min-pixel-height|window-min-pixel-size|window-min-pixel-width|window-new-normal|window-new-pixel|window-new-total|window-normal-size|window-normalize-buffer-to-switch-to|window-normalize-buffer|window-normalize-frame|window-normalize-window|window-old-point|window-preserve-size|window-preserved-size|window-redisplay-end-trigger|window-resizable-p|window-resize-apply-total|window-resize-apply|window-resize-no-error|window-right|window-safe-min-pixel-height|window-safe-min-pixel-size|window-safe-min-pixel-width|window-safe-min-size|window-safely-shrinkable-p|window-screen-lines|window-scroll-bar-height|window-sizable-p|window-sizable|window-size-fixed-p|window-size|window-splittable-p|window-system-for-display|window-text-height|window-text-width|window-use-time|window-width|window-with-parameter|winner-active-region|winner-change-fun|winner-conf|winner-configuration|winner-edges|winner-equal|winner-get-point|winner-insert-if-new|winner-make-point-alist|winner-mode|winner-redo|winner-remember|winner-ring|winner-save-conditionally|winner-save-old-configurations|winner-save-unconditionally|winner-set-conf|winner-set|winner-sorted-window-list|winner-undo-this|winner-undo|winner-win-data|winner-window-list|wisent-grammar-mode|wisent-java-default-setup|wisent-javascript-setup-parser|wisent-python-default-setup|with-auto-compression-mode|with-buffer-modified-unmodified|with-category-table|with-decoded-time-value|with-displayed-buffer-window|with-electric-help|with-file-modes|with-isearch-suspended|with-js|with-mh-folder-updating|with-mode-local-symbol|with-mode-local|with-parsed-tramp-file-name|with-rcirc-process-buffer|with-rcirc-server-buffer|with-selected-frame|with-silent-modifications|with-slots|with-timeout-suspend|with-timeout-unsuspend|with-tramp-connection-property|with-tramp-file-property|with-tramp-progress-reporter|with-vc-properties|with-wrapper-hook|woman-Cyg-to-Win|woman-bookmark-jump|woman-bookmark-make-record|woman-break-table|woman-cached-data|woman-canonicalize-dir|woman-change-fonts|woman-decode-buffer|woman-decode-region|woman-default-faces|woman-delete-following-space|woman-delete-line|woman-delete-match|woman-delete-whole-line|woman-directory-files|woman-dired-define-key-maybe|woman-dired-define-key|woman-dired-define-keys|woman-dired-find-file|woman-display-extended-fonts)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"},{"match":"(?<=[()]|^)(?:woman-expand-directory-path|woman-expand-locale|woman-file-accessible-directory-p|woman-file-name-all-completions|woman-file-name|woman-file-readable-p|woman-find-file|woman-find-next-control-line-carefully|woman-find-next-control-line|woman-follow-word|woman-follow|woman-forward-arg|woman-get-next-char|woman-get-numeric-arg|woman-get-tab-stop|woman-horizontal-escapes|woman-horizontal-line|woman-if-body|woman-if-ignore|woman-imenu|woman-insert-file-contents|woman-interparagraph-space|woman-interpolate-macro|woman-leave-blank-lines|woman-make-bufname|woman-man-buffer|woman-manpath-add-locales|woman-mark-horizontal-position|woman-match-name|woman-menu|woman-mini-help|woman-mode|woman-monochrome-faces|woman-negative-vertical-space|woman-non-underline-faces|woman-not-member|woman-parse-colon-path|woman-parse-man\\\\.conf|woman-parse-numeric-arg|woman-parse-numeric-value|woman-pop|woman-pre-process-region|woman-process-buffer|woman-push|woman-read-directory-cache|woman-really-find-file|woman-reformat-last-file|woman-replace-match|woman-reset-emulation|woman-reset-nospace|woman-select-symbol-fonts|woman-select|woman-set-arg|woman-set-buffer-display-table|woman-set-face|woman-set-interparagraph-distance|woman-special-characters|woman-strings|woman-tab-to-tab-stop|woman-tar-extract-file|woman-toggle-fill-frame|woman-toggle-use-extended-font|woman-toggle-use-symbol-font|woman-topic-all-completions-1|woman-topic-all-completions-merge|woman-topic-all-completions|woman-translate|woman-unescape|woman-unquote-args|woman-unquote|woman-write-directory-cache|woman|woman0-de|woman0-el|woman0-if|woman0-ig|woman0-macro|woman0-process-escapes|woman0-rename|woman0-rn|woman0-roff-buffer|woman0-so|woman1-B-or-I|woman1-B|woman1-BI|woman1-BR|woman1-I|woman1-IB|woman1-IR|woman1-IX|woman1-RB|woman1-RI|woman1-SB|woman1-SM|woman1-TP|woman1-TX|woman1-alt-fonts|woman1-bd|woman1-cs|woman1-hc|woman1-hw|woman1-hy|woman1-ne|woman1-nh|woman1-ps|woman1-roff-buffer|woman1-ss|woman1-ul|woman1-vs|woman2-DT|woman2-HP|woman2-IP|woman2-LP|woman2-P|woman2-PD|woman2-PP|woman2-RE|woman2-RS|woman2-SH|woman2-SS|woman2-TE|woman2-TH|woman2-TP|woman2-TS|woman2-ad|woman2-br|woman2-fc|woman2-fi|woman2-format-paragraphs|woman2-get-prevailing-indent|woman2-in|woman2-ll|woman2-na|woman2-nf|woman2-nr|woman2-ns|woman2-process-escapes-to-eol|woman2-process-escapes|woman2-roff-buffer|woman2-rs|woman2-sp|woman2-ta|woman2-tagged-paragraph|woman2-ti|woman2-tr|word-at-point|x-apply-session-resources|x-backspace-delete-keys-p|x-change-window-property|x-clipboard-yank|x-complement-fontset-spec|x-compose-font-name|x-create-frame-with-faces|x-create-frame|x-cut-buffer-or-selection-value|x-decompose-font-name|x-delete-window-property|x-disown-selection-internal|x-display-backing-store|x-display-color-cells|x-display-grayscale-p|x-display-mm-height|x-display-mm-width|x-display-monitor-attributes-list|x-display-pixel-height|x-display-pixel-width|x-display-planes|x-display-save-under|x-display-screens|x-display-visual-class|x-dnd-choose-type|x-dnd-current-type|x-dnd-default-test-function|x-dnd-drop-data|x-dnd-forget-drop|x-dnd-get-drop-width-height|x-dnd-get-drop-x-y|x-dnd-get-motif-value|x-dnd-get-state-cons-for-frame|x-dnd-get-state-for-frame|x-dnd-handle-drag-n-drop-event|x-dnd-handle-file-name|x-dnd-handle-motif|x-dnd-handle-moz-url|x-dnd-handle-old-kde|x-dnd-handle-uri-list|x-dnd-handle-xdnd|x-dnd-init-frame|x-dnd-init-motif-for-frame|x-dnd-init-xdnd-for-frame|x-dnd-insert-ctext|x-dnd-insert-utf16-text|x-dnd-insert-utf8-text|x-dnd-maybe-call-test-function|x-dnd-more-than-3-from-flags|x-dnd-motif-value-to-list|x-dnd-save-state|x-dnd-version-from-flags|x-file-dialog|x-focus-frame|x-frame-geometry|x-get-atom-name|x-get-clipboard|x-get-selection-internal|x-get-selection-value|x-gtk-map-stock|x-handle-args|x-handle-display|x-handle-geometry|x-handle-iconic|x-handle-initial-switch|x-handle-name-switch|x-handle-named-frame-geometry|x-handle-no-bitmap-icon|x-handle-numeric-switch|x-handle-parent-id|x-handle-reverse-video|x-handle-smid|x-handle-switch|x-handle-xrm-switch|x-hide-tip|x-initialize-window-system|x-menu-bar-open-internal|x-menu-bar-open|x-must-resolve-font-name|x-own-selection-internal|x-register-dnd-atom|x-resolve-font-name|x-select-font|x-select-text|x-selection-exists-p|x-selection-owner-p|x-selection-value|x-selection|x-send-client-message|x-server-max-request-size|x-show-tip|x-synchronize|x-uses-old-gtk-dialog|x-win-suspend-error|x-window-property|x-wm-set-size-hint|xdb|xml--entity-replacement-text|xml--parse-buffer|xml-debug-print-internal|xml-debug-print|xml-escape-string|xml-find-file-coding-system|xml-get-attribute-or-nil|xml-get-attribute|xml-get-children|xml-maybe-do-ns|xml-mode|xml-node-attributes|xml-node-children|xml-node-name|xml-parse-attlist|xml-parse-dtd|xml-parse-elem-type|xml-parse-file|xml-parse-region|xml-parse-string|xml-parse-tag-1|xml-parse-tag|xml-print|xml-skip-dtd|xml-substitute-numeric-entities|xml-substitute-special|xmltok-get-declared-encoding-position|xor|xref--alistify|xref--analyze|xref--display-position|xref--find-definitions|xref--goto-location|xref--insert-propertized|xref--insert-xrefs|xref--location-at-point|xref--next-line|xref--pop-to-location|xref--read-identifier|xref--search-property|xref--show-location|xref--show-xref-buffer|xref--show-xrefs|xref--xref-buffer-mode|xref--xref-child-p|xref--xref-description|xref--xref-list-p|xref--xref-location|xref--xref-p|xref--xref|xref-bogus-location-child-p|xref-bogus-location-list-p|xref-bogus-location-message|xref-bogus-location-p|xref-bogus-location|xref-buffer-location-child-p|xref-buffer-location-list-p|xref-buffer-location-p|xref-buffer-location|xref-clear-marker-stack|xref-default-identifier-at-point|xref-elisp-location-child-p|xref-elisp-location-list-p|xref-elisp-location-p|xref-elisp-location|xref-file-location-child-p|xref-file-location-list-p|xref-file-location-p|xref-file-location|xref-find-apropos|xref-find-definitions-other-frame|xref-find-definitions-other-window|xref-find-definitions|xref-find-references|xref-goto-xref|xref-location-child-p|xref-location-group|xref-location-list-p|xref-location-marker|xref-location-p|xref-location|xref-make-bogus-location|xref-make-buffer-location|xref-make-elisp-location|xref-make-file-location|xref-make|xref-next-line|xref-pop-marker-stack|xref-prev-line|xref-push-marker-stack|xscheme-cd|xscheme-coerce-prompt|xscheme-debugger-mode-p|xscheme-default-command-line|xscheme-delete-output|xscheme-display-process-buffer|xscheme-enable-control-g|xscheme-enter-debugger-mode|xscheme-enter-input-wait|xscheme-enter-interaction-mode|xscheme-eval|xscheme-evaluation-commands|xscheme-exit-input-wait|xscheme-finish-gc|xscheme-goto-output-point|xscheme-guarantee-newlines|xscheme-insert-expression|xscheme-interrupt-commands|xscheme-message|xscheme-mode-line-initialize|xscheme-output-goto|xscheme-parse-command-line|xscheme-process-buffer-current-p|xscheme-process-buffer-window|xscheme-process-buffer|xscheme-process-filter-initialize|xscheme-process-filter-output|xscheme-process-filter|xscheme-process-filter:simple-action|xscheme-process-filter:string-action-noexcursion|xscheme-process-filter:string-action|xscheme-process-running-p|xscheme-process-sentinel|xscheme-prompt-for-confirmation|xscheme-prompt-for-expression-exit|xscheme-prompt-for-expression|xscheme-read-command-line|xscheme-region-expression-p|xscheme-rotate-yank-pointer|xscheme-select-process-buffer|xscheme-send-breakpoint-interrupt|xscheme-send-buffer|xscheme-send-char|xscheme-send-control-g-interrupt|xscheme-send-control-u-interrupt|xscheme-send-control-x-interrupt|xscheme-send-current-line|xscheme-send-definition|xscheme-send-interrupt|xscheme-send-next-expression|xscheme-send-previous-expression|xscheme-send-proceed|xscheme-send-region|xscheme-send-string-1|xscheme-send-string-2|xscheme-send-string|xscheme-set-prompt-variable|xscheme-set-prompt|xscheme-set-runlight|xscheme-start-gc|xscheme-start-process|xscheme-start|xscheme-unsolicited-read-char|xscheme-wait-for-process|xscheme-write-message-1|xscheme-write-value|xscheme-yank-pop|xscheme-yank-previous-send|xscheme-yank-push|xscheme-yank|xselect--encode-string|xselect--int-to-cons|xselect--selection-bounds|xselect-convert-to-atom|xselect-convert-to-charpos|xselect-convert-to-class|xselect-convert-to-colno|xselect-convert-to-delete|xselect-convert-to-filename|xselect-convert-to-host|xselect-convert-to-identity|xselect-convert-to-integer|xselect-convert-to-length|xselect-convert-to-lineno|xselect-convert-to-name|xselect-convert-to-os|xselect-convert-to-save-targets|xselect-convert-to-string|xselect-convert-to-targets|xselect-convert-to-user|xterm-mouse--read-event-sequence-1000|xterm-mouse--read-event-sequence-1006|xterm-mouse--set-click-count|xterm-mouse-event|xterm-mouse-mode|xterm-mouse-position-function|xterm-mouse-translate-1|xterm-mouse-translate-extended|xterm-mouse-translate|xterm-mouse-truncate-wrap|xw-color-defined-p|xw-color-values|xw-defined-colors|xw-display-color-p|yank-handle-category-property|yank-handle-font-lock-face-property|yank-menu|yank-rectangle|yenc-decode-region|yenc-extract-filename|zap-to-char|zeroconf-get-domain|zeroconf-get-host-domain|zeroconf-get-host|zeroconf-get-interface-name|zeroconf-get-interface-number|zeroconf-get-service|zeroconf-init|zeroconf-list-service-names|zeroconf-list-service-types|zeroconf-list-services|zeroconf-publish-service|zeroconf-register-service-browser|zeroconf-register-service-resolver|zeroconf-register-service-type-browser|zeroconf-resolve-service|zeroconf-service-add-hook|zeroconf-service-address|zeroconf-service-aprotocol|zeroconf-service-browser-handler|zeroconf-service-domain|zeroconf-service-flags|zeroconf-service-host|zeroconf-service-interface|zeroconf-service-name|zeroconf-service-port|zeroconf-service-protocol|zeroconf-service-remove-hook|zeroconf-service-resolver-handler|zeroconf-service-txt|zeroconf-service-type-browser-handler|zeroconf-service-type|zerop--anon-cmacro|zone-call|zone-cpos|zone-exploding-remove|zone-fall-through-ws|zone-fill-out-screen|zone-fret|zone-hiding-mode-line|zone-leave-me-alone|zone-line-specs|zone-mode|zone-orig|zone-park\\\\/sit-for|zone-pgm-2nd-putz-with-case|zone-pgm-dissolve|zone-pgm-drip-fretfully|zone-pgm-drip|zone-pgm-explode|zone-pgm-five-oclock-swan-dive|zone-pgm-jitter|zone-pgm-martini-swan-dive|zone-pgm-paragraph-spaz|zone-pgm-putz-with-case|zone-pgm-random-life|zone-pgm-rat-race|zone-pgm-rotate-LR-lockstep|zone-pgm-rotate-LR-variable|zone-pgm-rotate-RL-lockstep|zone-pgm-rotate-RL-variable|zone-pgm-rotate|zone-pgm-stress-destress|zone-pgm-stress|zone-pgm-whack-chars|zone-remove-text|zone-replace-char|zone-shift-down|zone-shift-left|zone-shift-right|zone-shift-up|zone-when-idle|zone|zrgrep)(?=[\\\\s()]|$)","name":"support.function.emacs.lisp"}]},"string":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.emacs.lisp"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.emacs.lisp"}},"name":"string.quoted.double.emacs.lisp","patterns":[{"include":"#string-innards"}]},"string-innards":{"patterns":[{"include":"#eldoc"},{"match":"(\\\\\\\\)$\\\\n?","name":"constant.escape.character.newline.emacs.lisp"},{"captures":{"1":{"name":"punctuation.escape.backslash.emacs.lisp"}},"match":"(\\\\\\\\).","name":"constant.escape.character.emacs.lisp"}]},"symbols":{"patterns":[{"captures":{"0":{"name":"punctuation.definition.symbol.emacs.lisp"}},"match":"(?<=[\\\\s()\\\\[]|^)##","name":"constant.other.interned.blank.symbol.emacs.lisp"},{"captures":{"1":{"name":"punctuation.definition.symbol.emacs.lisp"},"2":{"patterns":[{"include":"$self"}]}},"match":"(?<=[\\\\s()\\\\[]|^)(#)((?:[-'+=*/\\\\w~!@$%^&:<>{}?]|\\\\\\\\.)+)","name":"constant.other.symbol.emacs.lisp"},{"captures":{"1":{"name":"punctuation.definition.spliced.symbol.emacs.lisp"}},"match":"(,@)([-+=*/\\\\w~!@$%^&:<>{}?]+)","name":"constant.other.spliced.symbol.emacs.lisp"},{"captures":{"1":{"name":"punctuation.definition.inserted.symbol.emacs.lisp"}},"match":"(,)([-+=*/\\\\w~!@$%^&:<>{}?]+)","name":"constant.other.inserted.symbol.emacs.lisp"}]},"vectors":{"patterns":[{"match":"\\\\[","name":"punctuation.section.vector.begin.emacs.lisp"},{"match":"\\\\]","name":"punctuation.section.vector.end.emacs.lisp"}]}},"scopeName":"source.emacs.lisp","aliases":["elisp"]}`)),t=[e];export{t as default}; ================================================ FILE: jesse/static/_nuxt/BXW1EomU.js ================================================ import e from"./ySlJ1b_l.js";import t from"./Dj6nwHGl.js";import n from"./BPhBrDlE.js";import s from"./B3ZDOciz.js";const a=Object.freeze(JSON.parse(`{"displayName":"Svelte","fileTypes":["svelte"],"injections":{"L:(meta.script.svelte | meta.style.svelte) (meta.lang.js | meta.lang.javascript) - (meta source)":{"patterns":[{"begin":"(?<=>)(?!)(?!)(?!)(?!)(?!)(?!)(?!)(?!)(?!)(?!)(?!)\\\\s","end":"(?=)(?!)","patterns":[{"include":"#attributes-value"}]}]},"attributes-directives-keywords":{"patterns":[{"match":"on|use|bind","name":"keyword.control.svelte"},{"match":"transition|in|out|animate","name":"keyword.other.animation.svelte"},{"match":"let","name":"storage.type.svelte"},{"match":"class|style","name":"entity.other.attribute-name.svelte"}]},"attributes-directives-types":{"patterns":[{"match":"(?<=(on):).*$","name":"entity.name.type.svelte"},{"match":"(?<=(bind):).*$","name":"variable.parameter.svelte"},{"match":"(?<=(use|transition|in|out|animate):).*$","name":"variable.function.svelte"},{"match":"(?<=(let|class|style):).*$","name":"variable.parameter.svelte"}]},"attributes-directives-types-assigned":{"patterns":[{"match":"(?<=(bind):)this$","name":"variable.language.svelte"},{"match":"(?<=(bind):).*$","name":"entity.name.type.svelte"},{"match":"(?<=(class):).*$","name":"entity.other.attribute-name.class.svelte"},{"match":"(?<=(style):).*$","name":"support.type.property-name.svelte"},{"include":"#attributes-directives-types"}]},"attributes-generics":{"begin":"(generics)(=)([\\"'])","beginCaptures":{"1":{"name":"entity.other.attribute-name.svelte"},"2":{"name":"punctuation.separator.key-value.svelte"},"3":{"name":"punctuation.definition.string.begin.svelte"}},"contentName":"meta.embedded.expression.svelte source.ts","end":"(\\\\3)","endCaptures":{"1":{"name":"punctuation.definition.string.end.svelte"}},"patterns":[{"include":"#type-parameters"}]},"attributes-interpolated":{"begin":"(?)","patterns":[{"include":"#attributes-value"}]}]},"attributes-value":{"patterns":[{"include":"#interpolation"},{"captures":{"1":{"name":"punctuation.definition.string.begin.svelte"},"2":{"name":"constant.numeric.decimal.svelte"},"3":{"name":"punctuation.definition.string.end.svelte"},"4":{"name":"constant.numeric.decimal.svelte"}},"match":"(?:(['\\"])([0-9._]+[\\\\w%]{,4})(\\\\1))|(?:([0-9._]+[\\\\w%]{,4})(?=\\\\s|/?>))"},{"match":"([^\\\\s\\"'=<>\`/]|/(?!>))+","name":"string.unquoted.svelte","patterns":[{"include":"#interpolation"}]},{"begin":"(['\\"])","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.svelte"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.definition.string.end.svelte"}},"name":"string.quoted.svelte","patterns":[{"include":"#interpolation"}]}]},"comments":{"begin":"","name":"comment.block.svelte","patterns":[{"begin":"(@)(component)","beginCaptures":{"1":{"name":"punctuation.definition.keyword.svelte"},"2":{"name":"storage.type.class.component.svelte keyword.declaration.class.component.svelte"}},"contentName":"comment.block.documentation.svelte","end":"(?=-->)","patterns":[{"captures":{"0":{"patterns":[{"include":"text.html.markdown"}]}},"match":".*?(?=-->)"},{"include":"text.html.markdown"}]},{"match":"\\\\G-?>|)|--!>","name":"invalid.illegal.characters-not-allowed-here.svelte"}]},"destructuring":{"patterns":[{"begin":"(?={)","end":"(?<=})","name":"meta.embedded.expression.svelte source.ts","patterns":[{"include":"source.ts#object-binding-pattern"}]},{"begin":"(?=\\\\[)","end":"(?<=\\\\])","name":"meta.embedded.expression.svelte source.ts","patterns":[{"include":"source.ts#array-binding-pattern"}]}]},"destructuring-const":{"patterns":[{"begin":"(?={)","end":"(?<=})","name":"meta.embedded.expression.svelte source.ts","patterns":[{"include":"source.ts#object-binding-pattern-const"}]},{"begin":"(?=\\\\[)","end":"(?<=\\\\])","name":"meta.embedded.expression.svelte source.ts","patterns":[{"include":"source.ts#array-binding-pattern-const"}]}]},"interpolation":{"patterns":[{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.svelte"}},"contentName":"meta.embedded.expression.svelte source.ts","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.section.embedded.end.svelte"}},"patterns":[{"begin":"\\\\G\\\\s*(?={)","end":"(?<=})","patterns":[{"include":"source.ts#object-literal"}]},{"include":"source.ts"}]}]},"scope":{"patterns":[{"include":"#comments"},{"include":"#special-tags"},{"include":"#tags"},{"include":"#interpolation"},{"begin":"(?<=>|})","end":"(?=<|{)","name":"text.svelte"}]},"special-tags":{"patterns":[{"include":"#special-tags-void"},{"include":"#special-tags-block-begin"},{"include":"#special-tags-block-end"}]},"special-tags-block-begin":{"begin":"({)\\\\s*(#([a-z]*))","beginCaptures":{"1":{"name":"punctuation.definition.block.begin.svelte"},"2":{"patterns":[{"include":"#special-tags-keywords"}]}},"end":"(})","endCaptures":{"0":{"name":"punctuation.definition.block.end.svelte"}},"name":"meta.special.$3.svelte meta.special.start.svelte","patterns":[{"include":"#special-tags-modes"}]},"special-tags-block-end":{"begin":"({)\\\\s*(/([a-z]*))","beginCaptures":{"1":{"name":"punctuation.definition.block.begin.svelte"},"2":{"patterns":[{"include":"#special-tags-keywords"}]}},"end":"(})","endCaptures":{"1":{"name":"punctuation.definition.block.end.svelte"}},"name":"meta.special.$3.svelte meta.special.end.svelte"},"special-tags-keywords":{"captures":{"1":{"name":"punctuation.definition.keyword.svelte"},"2":{"patterns":[{"match":"if|else\\\\s+if|else","name":"keyword.control.conditional.svelte"},{"match":"each|key","name":"keyword.control.svelte"},{"match":"await|then|catch","name":"keyword.control.flow.svelte"},{"match":"snippet","name":"keyword.control.svelte"},{"match":"html","name":"keyword.other.svelte"},{"match":"render","name":"keyword.other.svelte"},{"match":"debug","name":"keyword.other.debugger.svelte"},{"match":"const","name":"storage.type.svelte"}]}},"match":"([#@/:])(else\\\\s+if|[a-z]*)"},"special-tags-modes":{"patterns":[{"begin":"(?<=(if|key|then|catch|snippet|html|render).*?)\\\\G","end":"(?=})","name":"meta.embedded.expression.svelte source.ts","patterns":[{"include":"source.ts"}]},{"begin":"(?<=const.*?)\\\\G","end":"(?=})","patterns":[{"include":"#destructuring-const"},{"begin":"\\\\G\\\\s*([_$[:alpha:]][_$[:alnum:]]+)\\\\s*","beginCaptures":{"1":{"name":"variable.other.constant.svelte"}},"end":"(?=\\\\=)"},{"begin":"(?=\\\\=)","end":"(?=})","name":"meta.embedded.expression.svelte source.ts","patterns":[{"include":"source.ts"}]}]},{"begin":"(?<=each.*?)\\\\G","end":"(?=})","patterns":[{"begin":"\\\\G\\\\s*?(?=\\\\S)","contentName":"meta.embedded.expression.svelte source.ts","end":"(?=(?:(?:^\\\\s*|\\\\s+)(as))|\\\\s*(}|,))","patterns":[{"include":"source.ts"}]},{"begin":"(as)|(?=}|,)","beginCaptures":{"1":{"name":"keyword.control.as.svelte"}},"end":"(?=})","patterns":[{"include":"#destructuring"},{"begin":"\\\\(","captures":{"0":{"name":"meta.brace.round.svelte"}},"contentName":"meta.embedded.expression.svelte source.ts","end":"\\\\)|(?=})","patterns":[{"include":"source.ts"}]},{"captures":{"1":{"name":"meta.embedded.expression.svelte source.ts","patterns":[{"include":"source.ts"}]}},"match":"(\\\\s*([_$[:alpha:]][_$[:alnum:]]*)\\\\s*)"},{"match":",","name":"punctuation.separator.svelte"}]}]},{"begin":"(?<=await.*?)\\\\G","end":"(?=})","patterns":[{"begin":"\\\\G\\\\s*?(?=\\\\S)","contentName":"meta.embedded.expression.svelte source.ts","end":"\\\\s+(then)|(?=})","endCaptures":{"1":{"name":"keyword.control.flow.svelte"}},"patterns":[{"include":"source.ts"}]},{"begin":"(?<=then\\\\b)","contentName":"meta.embedded.expression.svelte source.ts","end":"(?=})","patterns":[{"include":"source.ts"}]}]},{"begin":"(?<=debug.*?)\\\\G","end":"(?=})","patterns":[{"captures":{"0":{"name":"meta.embedded.expression.svelte source.ts","patterns":[{"include":"source.ts"}]}},"match":"[_$[:alpha:]][_$[:alnum:]]*"},{"match":",","name":"punctuation.separator.svelte"}]}]},"special-tags-void":{"begin":"({)\\\\s*((?:[@:])(else\\\\s+if|[a-z]*))","beginCaptures":{"1":{"name":"punctuation.definition.block.begin.svelte"},"2":{"patterns":[{"include":"#special-tags-keywords"}]}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.block.end.svelte"}},"name":"meta.special.$3.svelte","patterns":[{"include":"#special-tags-modes"}]},"tags":{"patterns":[{"include":"#tags-lang"},{"include":"#tags-void"},{"include":"#tags-general-end"},{"include":"#tags-general-start"}]},"tags-end-node":{"captures":{"1":{"name":"meta.tag.end.svelte punctuation.definition.tag.begin.svelte"},"2":{"name":"meta.tag.end.svelte","patterns":[{"include":"#tags-name"}]},"3":{"name":"meta.tag.end.svelte punctuation.definition.tag.end.svelte"},"4":{"name":"meta.tag.start.svelte punctuation.definition.tag.end.svelte"}},"match":"()|(/>)"},"tags-general-end":{"begin":"(]*)","beginCaptures":{"1":{"name":"meta.tag.end.svelte punctuation.definition.tag.begin.svelte"},"2":{"name":"meta.tag.end.svelte","patterns":[{"include":"#tags-name"}]}},"end":"(>)","endCaptures":{"1":{"name":"meta.tag.end.svelte punctuation.definition.tag.end.svelte"}},"name":"meta.scope.tag.$2.svelte"},"tags-general-start":{"begin":"(<)([^/\\\\s>/]*)","beginCaptures":{"0":{"patterns":[{"include":"#tags-start-node"}]}},"end":"(/?>)","endCaptures":{"1":{"name":"meta.tag.start.svelte punctuation.definition.tag.end.svelte"}},"name":"meta.scope.tag.$2.svelte","patterns":[{"include":"#tags-start-attributes"}]},"tags-lang":{"begin":"<(script|style|template)","beginCaptures":{"0":{"patterns":[{"include":"#tags-start-node"}]}},"end":"|/>","endCaptures":{"0":{"patterns":[{"include":"#tags-end-node"}]}},"name":"meta.$1.svelte","patterns":[{"begin":"\\\\G(?=\\\\s*[^>]*?(type|lang)\\\\s*=\\\\s*(['\\"]|)(?:text/)?(\\\\w+)\\\\2)","end":"(?=)","name":"meta.lang.$3.svelte","patterns":[{"include":"#tags-lang-start-attributes"}]},{"include":"#tags-lang-start-attributes"}]},"tags-lang-start-attributes":{"begin":"\\\\G","end":"(?=/>)|>","endCaptures":{"0":{"name":"punctuation.definition.tag.end.svelte"}},"name":"meta.tag.start.svelte","patterns":[{"include":"#attributes-generics"},{"include":"#attributes"}]},"tags-name":{"patterns":[{"captures":{"1":{"name":"keyword.control.svelte"},"2":{"name":"punctuation.definition.keyword.svelte"},"3":{"name":"entity.name.tag.svelte"}},"match":"(svelte)(:)([a-z][\\\\w:-]*)"},{"match":"slot","name":"keyword.control.svelte"},{"captures":{"1":{"patterns":[{"match":"\\\\w+","name":"support.class.component.svelte"},{"match":"\\\\.","name":"punctuation.definition.keyword.svelte"}]},"2":{"name":"support.class.component.svelte"}},"match":"([\\\\w]+(?:\\\\.[\\\\w]+)+)|([A-Z][\\\\w]+)"},{"match":"[a-z][\\\\w0-9:]*-[\\\\w0-9:-]*","name":"meta.tag.custom.svelte entity.name.tag.svelte"},{"match":"[a-z][\\\\w0-9:-]*","name":"entity.name.tag.svelte"}]},"tags-start-attributes":{"begin":"\\\\G","end":"(?=/?>)","name":"meta.tag.start.svelte","patterns":[{"include":"#attributes"}]},"tags-start-node":{"captures":{"1":{"name":"punctuation.definition.tag.begin.svelte"},"2":{"patterns":[{"include":"#tags-name"}]}},"match":"(<)([^/\\\\s>/]*)","name":"meta.tag.start.svelte"},"tags-void":{"begin":"(<)(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?=\\\\s|/?>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.svelte"},"2":{"name":"entity.name.tag.svelte"}},"end":"/?>","endCaptures":{"0":{"name":"punctuation.definition.tag.begin.svelte"}},"name":"meta.tag.void.svelte","patterns":[{"include":"#attributes"}]},"type-parameters":{"name":"meta.type.parameters.ts","patterns":[{"include":"source.ts#comment"},{"match":"(?)","name":"keyword.operator.assignment.ts"}]}},"scopeName":"source.svelte","embeddedLangs":["javascript","typescript","css","postcss"],"embeddedLangsLazy":["coffee","stylus","sass","scss","less","pug","markdown"]}`)),m=[...e,...t,...n,...s,a];export{m as default}; ================================================ FILE: jesse/static/_nuxt/BXYnMxBe.js ================================================ /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var e={comments:{blockComment:[""]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">",notIn:["string"]}],surroundingPairs:[{open:"(",close:")"},{open:"[",close:"]"},{open:"`",close:"`"}],folding:{markers:{start:new RegExp("^\\s*"),end:new RegExp("^\\s*")}}},t={defaultToken:"",tokenPostfix:".md",control:/[\\`*_\[\]{}()#+\-\.!]/,noncontrol:/[^\\`*_\[\]{}()#+\-\.!]/,escapes:/\\(?:@control)/,jsescapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,empty:["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param"],tokenizer:{root:[[/^\s*\|/,"@rematch","@table_header"],[/^(\s{0,3})(#+)((?:[^\\#]|@escapes)+)((?:#+)?)/,["white","keyword","keyword","keyword"]],[/^\s*(=+|\-+)\s*$/,"keyword"],[/^\s*((\*[ ]?)+)\s*$/,"meta.separator"],[/^\s*>+/,"comment"],[/^\s*([\*\-+:]|\d+\.)\s/,"keyword"],[/^(\t|[ ]{4})[^ ].*$/,"string"],[/^\s*~~~\s*((?:\w|[\/\-#])+)?\s*$/,{token:"string",next:"@codeblock"}],[/^\s*```\s*((?:\w|[\/\-#])+).*$/,{token:"string",next:"@codeblockgh",nextEmbedded:"$1"}],[/^\s*```\s*$/,{token:"string",next:"@codeblock"}],{include:"@linecontent"}],table_header:[{include:"@table_common"},[/[^\|]+/,"keyword.table.header"]],table_body:[{include:"@table_common"},{include:"@linecontent"}],table_common:[[/\s*[\-:]+\s*/,{token:"keyword",switchTo:"table_body"}],[/^\s*\|/,"keyword.table.left"],[/^\s*[^\|]/,"@rematch","@pop"],[/^\s*$/,"@rematch","@pop"],[/\|/,{cases:{"@eos":"keyword.table.right","@default":"keyword.table.middle"}}]],codeblock:[[/^\s*~~~\s*$/,{token:"string",next:"@pop"}],[/^\s*```\s*$/,{token:"string",next:"@pop"}],[/.*$/,"variable.source"]],codeblockgh:[[/```\s*$/,{token:"string",next:"@pop",nextEmbedded:"@pop"}],[/[^`]+/,"variable.source"]],linecontent:[[/&\w+;/,"string.escape"],[/@escapes/,"escape"],[/\b__([^\\_]|@escapes|_(?!_))+__\b/,"strong"],[/\*\*([^\\*]|@escapes|\*(?!\*))+\*\*/,"strong"],[/\b_[^_]+_\b/,"emphasis"],[/\*([^\\*]|@escapes)+\*/,"emphasis"],[/`([^\\`]|@escapes)+`/,"variable"],[/\{+[^}]+\}+/,"string.target"],[/(!?\[)((?:[^\]\\]|@escapes)*)(\]\([^\)]+\))/,["string.link","","string.link"]],[/(!?\[)((?:[^\]\\]|@escapes)*)(\])/,"string.link"],{include:"html"}],html:[[/<(\w+)\/>/,"tag"],[/<(\w+)(\-|\w)*/,{cases:{"@empty":{token:"tag",next:"@tag.$1"},"@default":{token:"tag",next:"@tag.$1"}}}],[/<\/(\w+)(\-|\w)*\s*>/,{token:"tag"}],[//,"comment","@pop"],[/.*)","beginCaptures":{"1":{"name":"entity.name.function.dcg.prolog"},"2":{"name":"punctuation.definition.parameters.begin"}},"end":"((\\\\)?))\\\\s*(-->)","endCaptures":{"1":{"name":"punctuation.definition.parameters.end"},"3":{"name":"keyword.control.dcg.bodybegin.prolog"}},"name":"meta.dcg.head.prolog","patterns":[{"include":"#atom"},{"include":"#variable"},{"include":"#constants"}]},{"begin":"(?<=-->)\\\\s*","end":"(\\\\.)","endCaptures":{"1":{"name":"keyword.control.dcg.bodyend.prolog"}},"name":"meta.dcg.body.prolog","patterns":[{"include":"#comments"},{"include":"#controlandkeywords"},{"include":"#atom"},{"include":"#variable"},{"include":"#constants"},{"match":".","name":"meta.dcg.body.prolog"}]},{"begin":"^\\\\s*([a-zA-Z][a-zA-Z0-9_]*)(\\\\(?)(?!.*(:-|-->).*)","beginCaptures":{"1":{"name":"entity.name.function.fact.prolog"},"2":{"name":"punctuation.definition.parameters.begin"}},"end":"((\\\\)?))\\\\s*(\\\\.)(?!\\\\d+)","endCaptures":{"1":{"name":"punctuation.definition.parameters.end"},"3":{"name":"keyword.control.fact.end.prolog"}},"name":"meta.fact.prolog","patterns":[{"include":"#comments"},{"include":"#atom"},{"include":"#variable"},{"include":"#constants"}]}],"repository":{"atom":{"patterns":[{"match":"(?)","beginCaptures":{"1":{"name":"keyword.control.if.prolog"}},"end":"(;)","endCaptures":{"1":{"name":"keyword.control.else.prolog"}},"name":"meta.if.prolog","patterns":[{"include":"$self"},{"include":"#builtin"},{"include":"#comments"},{"include":"#atom"},{"include":"#variable"},{"match":".","name":"meta.if.body.prolog"}]},{"match":"!","name":"keyword.control.cut.prolog"},{"match":"(\\\\s(is)\\\\s)|=:=|=\\\\.\\\\.|=?\\\\\\\\?=|\\\\\\\\\\\\+|@?>|@?=?<|\\\\+|\\\\*|\\\\-","name":"keyword.operator.prolog"}]},"variable":{"patterns":[{"match":"(?`?!+*\\\/]/,operatorstart:/[\/=\-+!*%<>&|^~?\u00A1-\u00A7\u00A9\u00AB\u00AC\u00AE\u00B0-\u00B1\u00B6\u00BB\u00BF\u00D7\u00F7\u2016-\u2017\u2020-\u2027\u2030-\u203E\u2041-\u2053\u2055-\u205E\u2190-\u23FF\u2500-\u2775\u2794-\u2BFF\u2E00-\u2E7F\u3001-\u3003\u3008-\u3030]/,operatorend:/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE00-\uFE0F\uFE20-\uFE2F\uE0100-\uE01EF]/,operators:/(@operatorstart)((@operatorstart)|(@operatorend))*/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},{include:"@attribute"},{include:"@literal"},{include:"@keyword"},{include:"@invokedmethod"},{include:"@symbol"}],whitespace:[[/\s+/,"white"],[/"""/,"string.quote","@endDblDocString"]],endDblDocString:[[/[^"]+/,"string"],[/\\"/,"string"],[/"""/,"string.quote","@popall"],[/"/,"string"]],symbol:[[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/[.]/,"delimiter"],[/@operators/,"operator"],[/@symbols/,"operator"]],comment:[[/\/\/\/.*$/,"comment.doc"],[/\/\*\*/,"comment.doc","@commentdocbody"],[/\/\/.*$/,"comment"],[/\/\*/,"comment","@commentbody"]],commentdocbody:[[/\/\*/,"comment","@commentbody"],[/\*\//,"comment.doc","@pop"],[/\:[a-zA-Z]+\:/,"comment.doc.param"],[/./,"comment.doc"]],commentbody:[[/\/\*/,"comment","@commentbody"],[/\*\//,"comment","@pop"],[/./,"comment"]],attribute:[[/@@@identifier/,{cases:{"@attributes":"keyword.control","@default":""}}]],literal:[[/"/,{token:"string.quote",next:"@stringlit"}],[/0[b]([01]_?)+/,"number.binary"],[/0[o]([0-7]_?)+/,"number.octal"],[/0[x]([0-9a-fA-F]_?)+([pP][\-+](\d_?)+)?/,"number.hex"],[/(\d_?)*\.(\d_?)+([eE][\-+]?(\d_?)+)?/,"number.float"],[/(\d_?)+/,"number"]],stringlit:[[/\\\(/,{token:"operator",next:"@interpolatedexpression"}],[/@escapes/,"string"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",next:"@pop"}],[/./,"string"]],interpolatedexpression:[[/\(/,{token:"operator",next:"@interpolatedexpression"}],[/\)/,{token:"operator",next:"@pop"}],{include:"@literal"},{include:"@keyword"},{include:"@symbol"}],keyword:[[/`/,{token:"operator",next:"@escapedkeyword"}],[/@identifier/,{cases:{"@keywords":"keyword","[A-Z][a-zA-Z0-9$]*":"type.identifier","@default":"identifier"}}]],escapedkeyword:[[/`/,{token:"operator",next:"@pop"}],[/./,"identifier"]],invokedmethod:[[/([.])(@identifier)/,{cases:{$2:["delimeter","type.identifier"],"@default":""}}]]}};/*!--------------------------------------------------------------------------------------------- * Copyright (C) David Owens II, owensd.io. All rights reserved. *--------------------------------------------------------------------------------------------*/export{e as conf,o as language}; ================================================ FILE: jesse/static/_nuxt/B_i9asfM.js ================================================ /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"#",blockComment:["<#","#>"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},n={defaultToken:"",ignoreCase:!0,tokenPostfix:".ps1",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],keywords:["begin","break","catch","class","continue","data","define","do","dynamicparam","else","elseif","end","exit","filter","finally","for","foreach","from","function","if","in","param","process","return","switch","throw","trap","try","until","using","var","while","workflow","parallel","sequence","inlinescript","configuration"],helpKeywords:/SYNOPSIS|DESCRIPTION|PARAMETER|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|ROLE|FUNCTIONALITY|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP/,symbols:/[=>/,"comment","@pop"],[/(\.)(@helpKeywords)(?!\w)/,{token:"comment.keyword.$2"}],[/[\.#]/,"comment"]]}};export{e as conf,n as language}; ================================================ FILE: jesse/static/_nuxt/B_m7g4N7.js ================================================ const t=Object.freeze(JSON.parse('{"displayName":"TSV","fileTypes":["tsv","tab"],"name":"tsv","patterns":[{"captures":{"1":{"name":"rainbow1"},"2":{"name":"keyword.rainbow2"},"3":{"name":"entity.name.function.rainbow3"},"4":{"name":"comment.rainbow4"},"5":{"name":"string.rainbow5"},"6":{"name":"variable.parameter.rainbow6"},"7":{"name":"constant.numeric.rainbow7"},"8":{"name":"entity.name.type.rainbow8"},"9":{"name":"markup.bold.rainbow9"},"10":{"name":"invalid.rainbow10"}},"match":"([^\\\\t]*\\\\t?)([^\\\\t]*\\\\t?)([^\\\\t]*\\\\t?)([^\\\\t]*\\\\t?)([^\\\\t]*\\\\t?)([^\\\\t]*\\\\t?)([^\\\\t]*\\\\t?)([^\\\\t]*\\\\t?)([^\\\\t]*\\\\t?)([^\\\\t]*\\\\t?)","name":"rainbowgroup"}],"scopeName":"text.tsv"}')),a=[t];export{a as default}; ================================================ FILE: jesse/static/_nuxt/BaOuBgqt.js ================================================ import{u as b,S as O}from"./BKENxkRn.js";import{aD as W,aE as K,aF as M,d as P,r as _,c as h,a6 as j,a as A,w,B as G,o as J,a0 as T,aG as q,C as I,j as g,i as n,f as u,x as v,D as E,F as Q,s as $,l as X,aa as Y,g as Z,G as ee,t as te,q as f,p as oe,J as ae,a4 as ne}from"./CU_MfyYc.js";import{_ as se}from"./DK27pemE.js";import{u as ie}from"./Cwg39VG_.js";function re(){const{$connectPyrightLsp:k}=W();function p(o,l,d){var c;const i=K.parse(`file:///${l}`);let a=M.getModel(i);return a?a.setValue(d.value):a=M.createModel(d.value,"python",i),(c=o.getModel())==null||c.dispose(),o.setModel(a),a.onDidChangeContent(()=>{d.value=a.getValue()}),a}return{onEditorLoaded:async(o,l,d,i,a)=>{const c=await b().getStrategy(l);return i.value=c,p(o,d,i),a&&o.updateOptions(a),k(o),c}}}const le=oe(se),de={class:"grid items-start lg:grid-cols-5"},ce={class:"grid grid-cols-1 lg:col-span-4 bg-backdrop dark:bg-backdrop-dark"},ue={class:"h-10 flex items-center justify-between px-4"},pe={class:"font-semibold"},ge={class:"flex items-center select-none"},me={class:"overflow-hidden border-l border-t dark:border-gray-600"},he=P({__name:"[name]",setup(k){const p=_(!1),s=h(()=>j().params.name),o=_(""),l=_(""),d=A(),i=h(()=>d.value==="light"?"vs-light":"vs-dark"),a=_(),{onEditorLoaded:c}=re();ie({title:`${s.value} - Jesse`}),w(i,t=>{a.value.$editor.updateOptions({theme:t})});async function B(t){const e=`strategies/${s.value}/__init__.py`,S=await c(t,s.value,e,o,{theme:i.value});l.value=S}G(async()=>{window.addEventListener("keydown",L)}),J(()=>{window.removeEventListener("keydown",L)});const C=h(()=>o.value!==l.value),r=h(()=>T().settings.editor),D={automaticLayout:!0,minimap:{enabled:r.value.minimap},fontSize:r.value.fontSize,padding:{top:16,bottom:16},cursorStyle:r.value.cursorStyle,cursorWidth:r.value.cursorWidth,lineHeight:r.value.lineHeight,cursorBlinking:r.value.cursorBlinking,renderLineHighlight:r.value.renderLineHighlight};w(r,t=>{a.value.$editor.updateOptions({minimap:{enabled:t.minimap},fontSize:t.fontSize,cursorStyle:t.cursorStyle,cursorWidth:t.cursorWidth,lineHeight:t.lineHeight,cursorBlinking:t.cursorBlinking,renderLineHighlight:t.renderLineHighlight})},{deep:!0});function z(){ae.copyToClipboard(o.value),$("success","Code copied to clipboard")}async function x(){if(C.value){if(o.value===""){$("error","Code cannot be empty");return}await b().saveStrategy(s.value,o.value),l.value=o.value}}const H=q.debounce(async()=>{await x()},300);function L(t){t.key==="s"&&(navigator.platform.match("Mac")?t.metaKey:t.ctrlKey)&&(t.preventDefault(),H())}function U(){a.value.$editor.trigger("source","actions.find",{})}function N(){b().deleteStrategy(s.value),ne().push("/strategies")}return(t,e)=>{const S=O,m=te,R=le,V=X,F=Y;return Z(),I(Q,null,[g("section",de,[n(S),g("div",ce,[n(V,null,{default:u(()=>[g("div",ue,[g("h2",pe,ee(v(s)),1),g("div",ge,[n(m,{size:"xs",icon:"i-heroicons-trash",color:"gray",variant:"ghost",class:"ml-2",onClick:e[0]||(e[0]=y=>p.value=!0)},{default:u(()=>e[3]||(e[3]=[f(" Delete ")])),_:1}),n(m,{size:"xs",icon:"i-heroicons-clipboard",color:"gray",variant:"ghost",class:"ml-2",onClick:z},{default:u(()=>e[4]||(e[4]=[f(" Copy ")])),_:1}),n(m,{size:"xs",icon:"i-heroicons-magnifying-glass",class:"ml-2",color:"gray",variant:"ghost",onClick:U},{default:u(()=>e[5]||(e[5]=[f(" Find ")])),_:1}),n(m,{size:"xs",icon:"i-heroicons-check",class:"ml-2",color:"teal",variant:"ghost",disabled:!v(C),onClick:x},{default:u(()=>e[6]||(e[6]=[f(" Save ")])),_:1},8,["disabled"])])]),g("div",me,[n(R,{ref_key:"editorRef",ref:a,modelValue:v(o),"onUpdate:modelValue":e[1]||(e[1]=y=>E(o)?o.value=y:null),lang:"python",options:D,style:{height:"calc(100vh - 4rem - 4px - 2.5rem)"},onLoad:B},{default:u(()=>e[7]||(e[7]=[f(" Loading editor... ")])),_:1},8,["modelValue"])])]),_:1})])]),n(F,{modelValue:v(p),"onUpdate:modelValue":e[2]||(e[2]=y=>E(p)?p.value=y:null),title:"Delete strategy",description:`Are you sure you want to delete the strategy '${v(s)}'?`,type:"info"},{default:u(()=>[n(m,{variant:"solid",color:"red",block:"",class:"sm:w-auto",label:"Delete",onClick:N})]),_:1},8,["modelValue","description"])],64)}}});export{he as default}; ================================================ FILE: jesse/static/_nuxt/BacktestTabs.CTcEQ1jl.css ================================================ .group:hover .tab-text-fade-hover[data-v-17ec90cb],.tab-text-fade-active[data-v-17ec90cb]{mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent);-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent)} ================================================ FILE: jesse/static/_nuxt/Bad53t6V.js ================================================ import{d as R,r as g,a0 as T,e as b,g as _,at as ae,f as n,j as s,i as l,G as y,t as z,x as t,au as te,C as D,E as A,D as B,aa as G,a8 as F,h as Y,s as c,ah as W,c as N,av as se,q as S,aw as le,ab as oe,k as ne,F as re,O as ie,ax as de,_ as ue,z as pe,ac as ce}from"./CU_MfyYc.js";import{_ as me}from"./CqvT4tPC.js";import{_ as ye}from"./D35nYK_C.js";import{S as fe}from"./CRzUWN8h.js";import{u as _e}from"./Cwg39VG_.js";const ve={class:"flex justify-between items-center mb-2"},xe={class:"text-xl font-bold"},ge={class:"text-sm text-gray-500 dark:text-gray-400"},he={class:"mt-4"},ke={class:"flex justify-between"},we={class:"font-medium"},be={class:"flex justify-between"},Ae={class:"font-medium"},Pe={key:0},Ke={class:"flex justify-between"},Ve={class:"flex justify-between"},Ie={class:"flex justify-between"},Ce=R({__name:"ExchangeApiKey",props:{apiKey:{}},setup(H){const P=H,f=g(!1),a=g(!1),h=T();async function K(){a.value=!0;const{data:i,error:r}=await F("/exchange/api-keys/delete",{id:P.apiKey.id},!0);if(a.value=!1,r.value&&r.value.statusCode!==200){Y(r);return}f.value=!1,c("success","API Key deleted successfully"),h.exchangeApiKeys=h.exchangeApiKeys.filter(k=>k.id!==P.apiKey.id)}return(i,r)=>{const k=z,x=G,V=ae;return _(),b(V,{class:"mb-4 p-4 bg-white"},{default:n(()=>[s("div",ve,[s("h2",xe,y(i.apiKey.name)+" • "+y(i.apiKey.exchange),1),l(k,{icon:"i-heroicons-trash",color:"red",label:"Delete",variant:"link",onClick:r[0]||(r[0]=I=>f.value=!0)})]),s("p",ge,y(t(te)(i.apiKey.created_at).value),1),s("div",he,[s("div",ke,[s("span",we,y(i.apiKey.exchange.includes("Hyperliquid")?"Wallet Address:":"API Key:"),1),s("span",null,y(i.apiKey.api_key),1)]),s("div",be,[s("span",Ae,y(i.apiKey.exchange.includes("Hyperliquid")?"Private Key:":"API Secret:"),1),s("span",null,y(i.apiKey.api_secret),1)]),i.apiKey.exchange.startsWith("Apex")?(_(),D("div",Pe,[s("div",Ke,[r[2]||(r[2]=s("span",{class:"font-medium"},"API Passphrase:",-1)),s("span",null,y(i.apiKey.api_passphrase),1)]),s("div",Ve,[r[3]||(r[3]=s("span",{class:"font-medium"},"Wallet Address:",-1)),s("span",null,y(i.apiKey.wallet_address),1)]),s("div",Ie,[r[4]||(r[4]=s("span",{class:"font-medium"},"Omni/Stark Key:",-1)),s("span",null,y(i.apiKey.stark_private_key),1)])])):A("",!0)]),l(x,{modelValue:t(f),"onUpdate:modelValue":r[1]||(r[1]=I=>B(f)?f.value=I:null),title:"Delete API Key",description:`Are you sure you want to delete '${i.apiKey.name}' API key?`,type:"info"},{default:n(()=>[l(k,{variant:"solid",color:"red",block:"",class:"sm:w-auto",label:"Delete",loading:t(a),onClick:K},null,8,["loading"])]),_:1},8,["modelValue","description"])]),_:1})}}}),Se={class:"flex justify-between items-start mb-4"},Ue={class:"flex gap-2 mt-1"},Ee={class:"flex justify-end"},$e={class:"mt-8"},qe={key:0},je={class:"flex items-center gap-2"},Fe={class:"space-y-4"},Me={class:"border-2 border-dashed border-gray-300 dark:border-gray-700 rounded-lg p-6 text-center hover:border-primary-400 dark:hover:border-primary-600 transition-colors"},Ne={for:"csv-file",class:"cursor-pointer flex flex-col items-center gap-3"},De={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},Be={class:"flex justify-end gap-3"},Te=R({__name:"exchange-api-keys",setup(H){_e({title:"Exchange API Keys"});const P=g(!1),f=T(),a=W({exchange:f.liveTradingExchangeNames[0],name:"",apiKey:"",apiSecret:"",apiPassphrase:"",walletAddress:"",stark_private_key:""}),h=N(()=>f.exchangeApiKeys),K=N(()=>a.exchange.startsWith("Apex")),i=g(!1),r=g(!1),k=g(!1),x=g(null),V=g(!1),I=g(""),C=W({password:""}),L=N(()=>a.exchange.startsWith("Apex")?a.exchange&&a.apiKey&&a.apiSecret&&a.apiPassphrase&&a.walletAddress&&a.stark_private_key:a.exchange&&a.apiKey&&a.apiSecret);async function J(){if(!L.value){c("error","Please fill in all required fields");return}P.value=!0;const m={name:a.name,exchange:a.exchange,api_key:a.apiKey,api_secret:a.apiSecret};K.value&&(m.additional_fields={api_passphrase:a.apiPassphrase,wallet_address:a.walletAddress,stark_private_key:a.stark_private_key});const{data:e,error:d}=await F("/exchange/api-keys/store",m,!0);P.value=!1,d.value&&d.value.statusCode!==200&&Y(d);const u=e.value;u.status==="success"?(c("success","Successfully added API key"),h.value.push(u.data),Z()):u.status==="error"&&c("error",u.message)}async function O(){var m,e,d,u;if(!C.password){c("error","Please fill password!");return}V.value=!0;try{const{data:U,error:p}=await F("/download/download-api-keys",{password:C.password},!0);if(p!=null&&p.value){p.value.statusCode===401?c("error","Incorrect password"):c("error",((m=p.value.data)==null?void 0:m.message)||"Failed to download API keys"),V.value=!1;return}const v=(u=(d=(e=p.value)==null?void 0:e.data)==null?void 0:d.headers)==null?void 0:u.get("Content-Disposition");let q="api-keys.csv";if(v){const E=v.match(/filename="?(.+)"?/i);E&&E[1]&&(q=decodeURIComponent(E[1].replace(/['"]/g,"")))}const M=new Blob([U.value],{type:"text/csv"}),j=window.URL.createObjectURL(M),w=document.createElement("a");w.href=j,w.download=q,document.body.appendChild(w),w.click(),window.URL.revokeObjectURL(j),document.body.removeChild(w),c("success","API keys downloaded successfully"),i.value=!1,C.password=""}catch(U){c("error",`Failed to download API keys: ${U.message}`)}finally{V.value=!1}}async function Q(m){var d;const e=(d=m.target.files)==null?void 0:d[0];e&&e.type==="text/csv"?(I.value=e.name,x.value=await e.text()):alert("Please select a valid CSV file")}async function X(){if(x.value){k.value=!0;try{const{data:m,error:e}=await F("/download/import-api-keys",{content:x.value},!0);if(e.value){c("error",e.value);return}f.fetchExchangeApiKeys();const d=m.value;if(d.success){c("success",`${d.imported_count} API keys imported successfully`),r.value=!1,$();return}c("error",d.error)}catch(m){c("error",m)}finally{k.value=!1}}}function $(){x.value=null,I.value=""}function Z(){a.exchange=f.liveTradingExchangeNames[0],a.name="",a.apiKey="",a.apiSecret="",a.apiPassphrase="",a.walletAddress="",a.stark_private_key=""}return(m,e)=>{const d=se,u=z,U=me,p=oe,v=ne,q=le,M=ye,j=G,w=ce,E=pe,ee=ue;return _(),b(fe,null,{default:n(()=>[s("div",Se,[l(d,null,{default:n(()=>e[13]||(e[13]=[S(" Exchange API Keys ")])),_:1}),s("div",Ue,[l(u,{icon:"i-heroicons-arrow-down-tray",color:"white",size:"sm",label:"Export",onClick:e[0]||(e[0]=o=>i.value=!0)}),l(u,{icon:"i-heroicons-arrow-up-tray",color:"white",size:"sm",label:"Import",onClick:e[1]||(e[1]=o=>r.value=!0)})])]),e[20]||(e[20]=s("p",null,[S(" Here you can add your API keys for various exchanges. API keys are used to connect your account to the exchange and allow the bot to trade on your behalf. "),s("br"),s("br"),S("Please note that for security reasons, once created, API keys cannot be modified or seen again. ")],-1)),e[21]||(e[21]=s("br",null,null,-1)),l(q,{state:t(a),class:"space-y-4",onSubmit:J},{default:n(()=>[l(p,{label:"Exchange name:",required:""},{default:n(()=>[l(U,{modelValue:t(a).exchange,"onUpdate:modelValue":e[2]||(e[2]=o=>t(a).exchange=o),searchable:"",options:t(f).liveTradingExchangeNames},null,8,["modelValue","options"])]),_:1}),l(p,{label:"Name:",required:""},{default:n(()=>[l(v,{modelValue:t(a).name,"onUpdate:modelValue":e[3]||(e[3]=o=>t(a).name=o),type:"text",placeholder:"Give a name to this API key (e.g. subaccount1)"},null,8,["modelValue"])]),_:1}),l(p,{label:t(a).exchange.includes("Hyperliquid")?"Wallet Address":"API Key:",required:""},{default:n(()=>[l(v,{modelValue:t(a).apiKey,"onUpdate:modelValue":e[4]||(e[4]=o=>t(a).apiKey=o),placeholder:t(a).exchange.includes("Hyperliquid")?"Enter your wallet address here (0x123...)":"Enter your API key here",type:"text"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),l(p,{label:t(a).exchange.includes("Hyperliquid")?"Private Key":"API Secret:",required:""},{default:n(()=>[l(v,{modelValue:t(a).apiSecret,"onUpdate:modelValue":e[5]||(e[5]=o=>t(a).apiSecret=o),placeholder:t(a).exchange.includes("Hyperliquid")?"Enter your private key here":"Enter your API secret here",type:"text"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),t(K)?(_(),b(p,{key:0,label:"API Passphrase:",required:""},{default:n(()=>[l(v,{modelValue:t(a).apiPassphrase,"onUpdate:modelValue":e[6]||(e[6]=o=>t(a).apiPassphrase=o),placeholder:"Enter your API passphrase here",type:"text"},null,8,["modelValue"])]),_:1})):A("",!0),t(K)?(_(),b(p,{key:1,label:"Wallet Address:",required:""},{default:n(()=>[l(v,{modelValue:t(a).walletAddress,"onUpdate:modelValue":e[7]||(e[7]=o=>t(a).walletAddress=o),placeholder:"Enter your wallet address here",type:"text"},null,8,["modelValue"])]),_:1})):A("",!0),t(K)?(_(),b(p,{key:2,label:"Omni/Stark Key:",required:""},{default:n(()=>[l(v,{modelValue:t(a).stark_private_key,"onUpdate:modelValue":e[8]||(e[8]=o=>t(a).stark_private_key=o),placeholder:"Enter your Omni key (for Apex Omni) or Stark key (for Apex Pro) here",type:"text"},null,8,["modelValue"])]),_:1})):A("",!0),s("div",Ee,[l(u,{type:"submit",icon:"i-i-heroicons-x-mark-plus",class:"w-48 flex justify-center",label:"Create",loading:t(P),disabled:!t(L)},null,8,["loading","disabled"])])]),_:1},8,["state"]),s("div",$e,[l(d,null,{default:n(()=>[e[14]||(e[14]=S(" Previously Added ")),t(h).length?(_(),D("span",qe,"("+y(t(h).length)+")",1)):A("",!0)]),_:1}),t(h).length?A("",!0):(_(),b(M,{key:0},{default:n(()=>e[15]||(e[15]=[S(" No API keys added yet ")])),_:1})),(_(!0),D(re,null,ie(t(h),o=>(_(),b(Ce,{key:o.id,"api-key":o},null,8,["api-key"]))),128))]),l(j,{modelValue:t(i),"onUpdate:modelValue":e[10]||(e[10]=o=>B(i)?i.value=o:null),title:"Export API Keys",type:"warning",description:"You are about to export all your exchange API keys to a CSV file. This file will contain sensitive credentials in plain text. Please enter your password to confirm."},{fields:n(()=>[l(p,{label:"Password",required:"",class:"mt-2"},{default:n(()=>[l(v,{modelValue:t(C).password,"onUpdate:modelValue":e[9]||(e[9]=o=>t(C).password=o),type:"password",placeholder:"Enter your password",class:"w-full",ui:{icon:{trailing:{color:"text-gray-500 dark:text-gray-400"}}},onKeyup:de(O,["enter"])},null,8,["modelValue"])]),_:1})]),default:n(()=>[l(u,{variant:"solid",color:"primary",block:"",class:"sm:w-auto",label:"Export API Keys",loading:t(V),disabled:!t(C).password,onClick:O},null,8,["loading","disabled"])]),_:1},8,["modelValue"]),l(ee,{modelValue:t(r),"onUpdate:modelValue":e[12]||(e[12]=o=>B(r)?r.value=o:null),onClose:$},{default:n(()=>[l(E,null,{header:n(()=>[s("div",je,[l(w,{name:"i-heroicons-arrow-up-tray",class:"w-5 h-5"}),e[16]||(e[16]=s("h3",{class:"text-lg font-semibold"},"Import API Keys from CSV",-1))])]),footer:n(()=>[s("div",Be,[l(u,{color:"gray",variant:"ghost",label:"Cancel",onClick:e[11]||(e[11]=o=>{r.value=!1,$()})}),l(u,{icon:"i-heroicons-arrow-up-tray",color:"primary",label:"Import API Keys",loading:t(k),disabled:!t(x),onClick:X},null,8,["loading","disabled"])])]),default:n(()=>[s("div",Fe,[e[19]||(e[19]=s("p",{class:"text-sm text-gray-600 dark:text-gray-400"}," Select a CSV file containing your API keys. ",-1)),s("div",Me,[s("input",{id:"csv-file",type:"file",class:"hidden",accept:".csv",onChange:Q},null,32),s("label",Ne,[l(w,{name:"i-heroicons-document-arrow-up",class:"w-12 h-12 text-gray-400"}),s("div",null,[s("p",De,y(t(x)?t(I):"Click to select a CSV file"),1),e[17]||(e[17]=s("p",{class:"text-xs text-gray-500 dark:text-gray-400 mt-1"}," or drag and drop ",-1))])]),t(x)?(_(),b(u,{key:0,icon:"i-heroicons-x-mark",color:"red",variant:"soft",size:"xs",class:"mt-3",onClick:$},{default:n(()=>e[18]||(e[18]=[S(" Clear file ")])),_:1})):A("",!0)])])]),_:1})]),_:1},8,["modelValue"])]),_:1})}}});export{Te as default}; ================================================ FILE: jesse/static/_nuxt/BbSNqyBO.js ================================================ const e=Object.freeze(JSON.parse('{"displayName":"Terraform","fileTypes":["tf","tfvars"],"name":"terraform","patterns":[{"include":"#comments"},{"include":"#attribute_definition"},{"include":"#block"},{"include":"#expressions"}],"repository":{"attribute_access":{"begin":"\\\\.(?!\\\\*)","beginCaptures":{"0":{"name":"keyword.operator.accessor.hcl"}},"comment":"Matches traversal attribute access such as .attr","end":"[[:alpha:]][\\\\w-]*|\\\\d*","endCaptures":{"0":{"patterns":[{"comment":"Attribute name","match":"(?!null|false|true)[[:alpha:]][\\\\w-]*","name":"variable.other.member.hcl"},{"comment":"Optional attribute index","match":"\\\\d+","name":"constant.numeric.integer.hcl"}]}}},"attribute_definition":{"captures":{"1":{"name":"punctuation.section.parens.begin.hcl"},"2":{"name":"variable.other.readwrite.hcl"},"3":{"name":"punctuation.section.parens.end.hcl"},"4":{"name":"keyword.operator.assignment.hcl"}},"comment":"Identifier \\"=\\" with optional parens","match":"(\\\\()?(\\\\b(?!null\\\\b|false\\\\b|true\\\\b)[[:alpha:]][[:alnum:]_-]*)(\\\\))?\\\\s*(\\\\=(?!\\\\=|\\\\>))\\\\s*","name":"variable.declaration.hcl"},"attribute_splat":{"begin":"\\\\.","beginCaptures":{"0":{"name":"keyword.operator.accessor.hcl"}},"comment":"Legacy attribute-only splat","end":"\\\\*","endCaptures":{"0":{"name":"keyword.operator.splat.hcl"}}},"block":{"begin":"([\\\\w][\\\\-\\\\w]*)([\\\\s\\\\\\"\\\\-\\\\w]*)(\\\\{)","beginCaptures":{"1":{"patterns":[{"comment":"Known block type","match":"\\\\bdata|check|import|locals|module|output|provider|resource|terraform|variable\\\\b","name":"entity.name.type.terraform"},{"comment":"Unknown block type","match":"\\\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\\\b","name":"entity.name.type.hcl"}]},"2":{"patterns":[{"comment":"Block label","match":"[\\\\\\"\\\\-\\\\w]+","name":"variable.other.enummember.hcl"}]},"3":{"name":"punctuation.section.block.begin.hcl"},"5":{"name":"punctuation.section.block.begin.hcl"}},"comment":"This will match Terraform blocks like `resource \\"aws_instance\\" \\"web\\" {` or `module {`","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.section.block.end.hcl"}},"name":"meta.block.hcl","patterns":[{"include":"#comments"},{"include":"#attribute_definition"},{"include":"#block"},{"include":"#expressions"}]},"block_inline_comments":{"begin":"/\\\\*","captures":{"0":{"name":"punctuation.definition.comment.hcl"}},"comment":"Inline comments start with the /* sequence and end with the */ sequence, and may have any characters within except the ending sequence. An inline comment is considered equivalent to a whitespace sequence","end":"\\\\*/","name":"comment.block.hcl"},"brackets":{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.section.brackets.begin.hcl"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.section.brackets.end.hcl"}},"patterns":[{"comment":"Splat operator","match":"\\\\*","name":"keyword.operator.splat.hcl"},{"include":"#comma"},{"include":"#comments"},{"include":"#inline_for_expression"},{"include":"#inline_if_expression"},{"include":"#expressions"},{"include":"#local_identifiers"}]},"char_escapes":{"comment":"Character Escapes","match":"\\\\\\\\[nrt\\"\\\\\\\\]|\\\\\\\\u(\\\\h{8}|\\\\h{4})","name":"constant.character.escape.hcl"},"comma":{"comment":"Commas - used in certain expressions","match":"\\\\,","name":"punctuation.separator.hcl"},"comments":{"patterns":[{"include":"#hash_line_comments"},{"include":"#double_slash_line_comments"},{"include":"#block_inline_comments"}]},"double_slash_line_comments":{"begin":"//","captures":{"0":{"name":"punctuation.definition.comment.hcl"}},"comment":"Line comments start with // sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence","end":"$\\\\n?","name":"comment.line.double-slash.hcl"},"expressions":{"patterns":[{"include":"#literal_values"},{"include":"#operators"},{"include":"#tuple_for_expression"},{"include":"#object_for_expression"},{"include":"#brackets"},{"include":"#objects"},{"include":"#attribute_access"},{"include":"#attribute_splat"},{"include":"#functions"},{"include":"#parens"}]},"for_expression_body":{"patterns":[{"comment":"in keyword","match":"\\\\bin\\\\b","name":"keyword.operator.word.hcl"},{"comment":"if keyword","match":"\\\\bif\\\\b","name":"keyword.control.conditional.hcl"},{"match":"\\\\:","name":"keyword.operator.hcl"},{"include":"#expressions"},{"include":"#comments"},{"include":"#comma"},{"include":"#local_identifiers"}]},"functions":{"begin":"([:\\\\-\\\\w]+)(\\\\()","beginCaptures":{"1":{"patterns":[{"match":"\\\\b(core::)?(abs|abspath|alltrue|anytrue|base64decode|base64encode|base64gzip|base64sha256|base64sha512|basename|bcrypt|can|ceil|chomp|chunklist|cidrhost|cidrnetmask|cidrsubnet|cidrsubnets|coalesce|coalescelist|compact|concat|contains|csvdecode|dirname|distinct|element|endswith|file|filebase64|filebase64sha256|filebase64sha512|fileexists|filemd5|fileset|filesha1|filesha256|filesha512|flatten|floor|format|formatdate|formatlist|indent|index|join|jsondecode|jsonencode|keys|length|log|lookup|lower|matchkeys|max|md5|merge|min|nonsensitive|one|parseint|pathexpand|plantimestamp|pow|range|regex|regexall|replace|reverse|rsadecrypt|sensitive|setintersection|setproduct|setsubtract|setunion|sha1|sha256|sha512|signum|slice|sort|split|startswith|strcontains|strrev|substr|sum|templatefile|textdecodebase64|textencodebase64|timeadd|timecmp|timestamp|title|tobool|tolist|tomap|tonumber|toset|tostring|transpose|trim|trimprefix|trimspace|trimsuffix|try|upper|urlencode|uuid|uuidv5|values|yamldecode|yamlencode|zipmap)\\\\b","name":"support.function.builtin.terraform"},{"match":"\\\\bprovider::[[:alpha:]][\\\\w_-]*::[[:alpha:]][\\\\w_-]*\\\\b","name":"support.function.provider.terraform"}]},"2":{"name":"punctuation.section.parens.begin.hcl"}},"comment":"Built-in function calls","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.parens.end.hcl"}},"name":"meta.function-call.hcl","patterns":[{"include":"#comments"},{"include":"#expressions"},{"include":"#comma"}]},"hash_line_comments":{"begin":"#","captures":{"0":{"name":"punctuation.definition.comment.hcl"}},"comment":"Line comments start with # sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence","end":"$\\\\n?","name":"comment.line.number-sign.hcl"},"hcl_type_keywords":{"comment":"Type keywords known to HCL.","match":"\\\\b(any|string|number|bool|list|set|map|tuple|object)\\\\b","name":"storage.type.hcl"},"heredoc":{"begin":"(\\\\<\\\\<\\\\-?)\\\\s*(\\\\w+)\\\\s*$","beginCaptures":{"1":{"name":"keyword.operator.heredoc.hcl"},"2":{"name":"keyword.control.heredoc.hcl"}},"comment":"String Heredoc","end":"^\\\\s*\\\\2\\\\s*$","endCaptures":{"0":{"name":"keyword.control.heredoc.hcl"}},"name":"string.unquoted.heredoc.hcl","patterns":[{"include":"#string_interpolation"}]},"inline_for_expression":{"captures":{"1":{"name":"keyword.control.hcl"},"2":{"patterns":[{"match":"\\\\=\\\\>","name":"storage.type.function.hcl"},{"include":"#for_expression_body"}]}},"match":"(for)\\\\b(.*)\\\\n"},"inline_if_expression":{"begin":"(if)\\\\b","beginCaptures":{"1":{"name":"keyword.control.conditional.hcl"}},"end":"\\\\n","patterns":[{"include":"#expressions"},{"include":"#comments"},{"include":"#comma"},{"include":"#local_identifiers"}]},"language_constants":{"comment":"Language Constants","match":"\\\\b(true|false|null)\\\\b","name":"constant.language.hcl"},"literal_values":{"patterns":[{"include":"#numeric_literals"},{"include":"#language_constants"},{"include":"#string_literals"},{"include":"#heredoc"},{"include":"#hcl_type_keywords"},{"include":"#named_value_references"}]},"local_identifiers":{"comment":"Local Identifiers","match":"\\\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\\\b","name":"variable.other.readwrite.hcl"},"named_value_references":{"comment":"Constant values available only to Terraform.","match":"\\\\b(var|local|module|data|path|terraform)\\\\b","name":"variable.other.readwrite.terraform"},"numeric_literals":{"patterns":[{"captures":{"1":{"name":"punctuation.separator.exponent.hcl"}},"comment":"Integer, no fraction, optional exponent","match":"\\\\b\\\\d+([Ee][+-]?)\\\\d+\\\\b","name":"constant.numeric.float.hcl"},{"captures":{"1":{"name":"punctuation.separator.decimal.hcl"},"2":{"name":"punctuation.separator.exponent.hcl"}},"comment":"Integer, fraction, optional exponent","match":"\\\\b\\\\d+(\\\\.)\\\\d+(?:([Ee][+-]?)\\\\d+)?\\\\b","name":"constant.numeric.float.hcl"},{"comment":"Integers","match":"\\\\b\\\\d+\\\\b","name":"constant.numeric.integer.hcl"}]},"object_for_expression":{"begin":"(\\\\{)\\\\s?(for)\\\\b","beginCaptures":{"1":{"name":"punctuation.section.braces.begin.hcl"},"2":{"name":"keyword.control.hcl"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.section.braces.end.hcl"}},"patterns":[{"match":"\\\\=\\\\>","name":"storage.type.function.hcl"},{"include":"#for_expression_body"}]},"object_key_values":{"patterns":[{"include":"#comments"},{"include":"#literal_values"},{"include":"#operators"},{"include":"#tuple_for_expression"},{"include":"#object_for_expression"},{"include":"#heredoc"},{"include":"#functions"}]},"objects":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.braces.begin.hcl"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.section.braces.end.hcl"}},"name":"meta.braces.hcl","patterns":[{"include":"#comments"},{"include":"#objects"},{"include":"#inline_for_expression"},{"include":"#inline_if_expression"},{"captures":{"1":{"name":"meta.mapping.key.hcl variable.other.readwrite.hcl"},"2":{"name":"keyword.operator.assignment.hcl","patterns":[{"match":"\\\\=\\\\>","name":"storage.type.function.hcl"}]}},"comment":"Literal, named object key","match":"\\\\b((?!null|false|true)[[:alpha:]][[:alnum:]_-]*)\\\\s*(\\\\=\\\\>?)\\\\s*"},{"captures":{"0":{"patterns":[{"include":"#named_value_references"}]},"1":{"name":"meta.mapping.key.hcl string.quoted.double.hcl"},"2":{"name":"punctuation.definition.string.begin.hcl"},"3":{"name":"punctuation.definition.string.end.hcl"},"4":{"name":"keyword.operator.hcl"}},"comment":"String object key","match":"\\\\b((\\").*(\\"))\\\\s*(\\\\=)\\\\s*"},{"begin":"^\\\\s*\\\\(","beginCaptures":{"0":{"name":"punctuation.section.parens.begin.hcl"}},"comment":"Computed object key (any expression between parens)","end":"(\\\\))\\\\s*(=|:)\\\\s*","endCaptures":{"1":{"name":"punctuation.section.parens.end.hcl"},"2":{"name":"keyword.operator.hcl"}},"name":"meta.mapping.key.hcl","patterns":[{"include":"#named_value_references"},{"include":"#attribute_access"}]},{"include":"#object_key_values"}]},"operators":{"patterns":[{"match":"\\\\>\\\\=","name":"keyword.operator.hcl"},{"match":"\\\\<\\\\=","name":"keyword.operator.hcl"},{"match":"\\\\=\\\\=","name":"keyword.operator.hcl"},{"match":"\\\\!\\\\=","name":"keyword.operator.hcl"},{"match":"\\\\+","name":"keyword.operator.arithmetic.hcl"},{"match":"\\\\-","name":"keyword.operator.arithmetic.hcl"},{"match":"\\\\*","name":"keyword.operator.arithmetic.hcl"},{"match":"\\\\/","name":"keyword.operator.arithmetic.hcl"},{"match":"\\\\%","name":"keyword.operator.arithmetic.hcl"},{"match":"\\\\&\\\\&","name":"keyword.operator.logical.hcl"},{"match":"\\\\|\\\\|","name":"keyword.operator.logical.hcl"},{"match":"\\\\!","name":"keyword.operator.logical.hcl"},{"match":"\\\\>","name":"keyword.operator.hcl"},{"match":"\\\\<","name":"keyword.operator.hcl"},{"match":"\\\\?","name":"keyword.operator.hcl"},{"match":"\\\\.\\\\.\\\\.","name":"keyword.operator.hcl"},{"match":"\\\\:","name":"keyword.operator.hcl"},{"match":"\\\\=\\\\>","name":"keyword.operator.hcl"}]},"parens":{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.section.parens.begin.hcl"}},"comment":"Parens - matched *after* function syntax","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.parens.end.hcl"}},"patterns":[{"include":"#comments"},{"include":"#expressions"}]},"string_interpolation":{"begin":"(?=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[]}};export{e as conf,_ as language}; ================================================ FILE: jesse/static/_nuxt/BdxkyMLR.js ================================================ import e from"./COyJrUc7.js";import"./C3t2pwGQ.js";const a=Object.freeze(JSON.parse(`{"displayName":"Elm","fileTypes":["elm"],"name":"elm","patterns":[{"include":"#import"},{"include":"#module"},{"include":"#debug"},{"include":"#comments"},{"match":"\\\\b(_)\\\\b","name":"keyword.unused.elm"},{"include":"#type-signature"},{"include":"#type-declaration"},{"include":"#type-alias-declaration"},{"include":"#string-triple"},{"include":"#string-quote"},{"include":"#char"},{"comment":"Floats are always decimal","match":"\\\\b([0-9]+\\\\.[0-9]+([eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\\\\b","name":"constant.numeric.float.elm"},{"match":"\\\\b([0-9]+)\\\\b","name":"constant.numeric.elm"},{"match":"\\\\b(0x[0-9a-fA-F]+)\\\\b","name":"constant.numeric.elm"},{"include":"#glsl"},{"include":"#record-prefix"},{"include":"#module-prefix"},{"include":"#constructor"},{"captures":{"1":{"name":"punctuation.bracket.elm"},"2":{"name":"record.name.elm"},"3":{"name":"keyword.pipe.elm"},"4":{"name":"entity.name.record.field.elm"}},"match":"(\\\\{)\\\\s+([a-z][a-zA-Z0-9_]*)\\\\s+(\\\\|)\\\\s+([a-z][a-zA-Z0-9_]*)","name":"meta.record.field.update.elm"},{"captures":{"1":{"name":"keyword.pipe.elm"},"2":{"name":"entity.name.record.field.elm"},"3":{"name":"keyword.operator.assignment.elm"}},"match":"(\\\\|)\\\\s+([a-z][a-zA-Z0-9_]*)\\\\s+(\\\\=)","name":"meta.record.field.update.elm"},{"captures":{"1":{"name":"punctuation.bracket.elm"},"2":{"name":"record.name.elm"}},"match":"(\\\\{)\\\\s+([a-z][a-zA-Z0-9_]*)\\\\s+$","name":"meta.record.field.update.elm"},{"captures":{"1":{"name":"punctuation.bracket.elm"},"2":{"name":"entity.name.record.field.elm"},"3":{"name":"keyword.operator.assignment.elm"}},"match":"(\\\\{)\\\\s+([a-z][a-zA-Z0-9_]*)\\\\s+(\\\\=)","name":"meta.record.field.elm"},{"captures":{"1":{"name":"punctuation.separator.comma.elm"},"2":{"name":"entity.name.record.field.elm"},"3":{"name":"keyword.operator.assignment.elm"}},"match":"(,)\\\\s+([a-z][a-zA-Z0-9_]*)\\\\s+(\\\\=)","name":"meta.record.field.elm"},{"match":"(\\\\}|\\\\{)","name":"punctuation.bracket.elm"},{"include":"#unit"},{"include":"#comma"},{"include":"#parens"},{"match":"(->)","name":"keyword.operator.arrow.elm"},{"include":"#infix_op"},{"match":"(\\\\=|\\\\:|\\\\||\\\\\\\\)","name":"keyword.other.elm"},{"match":"\\\\b(type|as|port|exposing|alias|infixl|infixr|infix)\\\\s+","name":"keyword.other.elm"},{"match":"\\\\b(if|then|else|case|of|let|in)\\\\s+","name":"keyword.control.elm"},{"include":"#record-accessor"},{"include":"#top_level_value"},{"include":"#value"},{"include":"#period"},{"include":"#square_brackets"}],"repository":{"block_comment":{"applyEndPatternLast":1,"begin":"\\\\{-(?!#)","captures":{"0":{"name":"punctuation.definition.comment.elm"}},"end":"-\\\\}","name":"comment.block.elm","patterns":[{"include":"#block_comment"}]},"char":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.char.begin.elm"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.char.end.elm"}},"name":"string.quoted.single.elm","patterns":[{"match":"\\\\\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\\\\"'\\\\&]|x[0-9a-fA-F]{1,5})","name":"constant.character.escape.elm"},{"match":"\\\\^[A-Z@\\\\[\\\\]\\\\\\\\\\\\^_]","name":"constant.character.escape.control.elm"}]},"comma":{"match":"(,)","name":"punctuation.separator.comma.elm"},"comments":{"patterns":[{"begin":"--","captures":{"1":{"name":"punctuation.definition.comment.elm"}},"end":"$","name":"comment.line.double-dash.elm"},{"include":"#block_comment"}]},"constructor":{"match":"\\\\b[A-Z][a-zA-Z0-9_]*\\\\b","name":"constant.type-constructor.elm"},"debug":{"match":"\\\\b(Debug)\\\\b","name":"invalid.illegal.debug.elm"},"glsl":{"begin":"(\\\\[)(glsl)(\\\\|)","beginCaptures":{"1":{"name":"entity.glsl.bracket.elm"},"2":{"name":"entity.glsl.name.elm"},"3":{"name":"entity.glsl.bracket.elm"}},"end":"(\\\\|\\\\])","endCaptures":{"1":{"name":"entity.glsl.bracket.elm"}},"name":"meta.embedded.block.glsl","patterns":[{"include":"source.glsl"}]},"import":{"begin":"^\\\\b(import)\\\\s+","beginCaptures":{"1":{"name":"keyword.control.import.elm"}},"end":"\\\\n(?!\\\\s)","name":"meta.import.elm","patterns":[{"match":"(as|exposing)","name":"keyword.control.elm"},{"include":"#module_chunk"},{"include":"#period"},{"match":"\\\\s+","name":"punctuation.spaces.elm"},{"include":"#module-exports"}]},"infix_op":{"match":"(|<\\\\?>|<\\\\||<=|\\\\|\\\\||&&|>=|\\\\|>|\\\\|=|\\\\|\\\\.|\\\\+\\\\+|::|/=|==|//|>>|<<|<|>|\\\\^|\\\\+|-|/|\\\\*)","name":"keyword.operator.elm"},"module":{"begin":"^\\\\b((port |effect )?module)\\\\s+","beginCaptures":{"1":{"name":"keyword.other.elm"}},"end":"\\\\n(?!\\\\s)","endCaptures":{"1":{"name":"keyword.other.elm"}},"name":"meta.declaration.module.elm","patterns":[{"include":"#module_chunk"},{"include":"#period"},{"match":"(exposing)","name":"keyword.other.elm"},{"match":"\\\\s+","name":"punctuation.spaces.elm"},{"include":"#module-exports"}]},"module-exports":{"begin":"(\\\\()","beginCaptures":{"1":{"name":"punctuation.parens.module-export.elm"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.parens.module-export.elm"}},"name":"meta.declaration.exports.elm","patterns":[{"match":"\\\\b[a-z][a-zA-Z_'0-9]*","name":"entity.name.function.elm"},{"match":"\\\\b[A-Z][A-Za-z_'0-9]*","name":"storage.type.elm"},{"match":",","name":"punctuation.separator.comma.elm"},{"match":"\\\\s+","name":"punctuation.spaces.elm"},{"include":"#comma"},{"match":"\\\\(\\\\.\\\\.\\\\)","name":"punctuation.parens.ellipses.elm"},{"match":"\\\\.\\\\.","name":"punctuation.parens.ellipses.elm"},{"include":"#infix_op"},{"comment":"So named because I don't know what to call this.","match":"\\\\(.*?\\\\)","name":"meta.other.unknown.elm"}]},"module-prefix":{"captures":{"1":{"name":"support.module.elm"},"2":{"name":"keyword.other.period.elm"}},"match":"([A-Z][a-zA-Z0-9_]*)(\\\\.)","name":"meta.module.name.elm"},"module_chunk":{"match":"[A-Z][a-zA-Z0-9_]*","name":"support.module.elm"},"parens":{"match":"(\\\\(|\\\\))","name":"punctuation.parens.elm"},"period":{"match":"[.]","name":"keyword.other.period.elm"},"record-accessor":{"captures":{"1":{"name":"keyword.other.period.elm"},"2":{"name":"entity.name.record.field.accessor.elm"}},"match":"(\\\\.)([a-z][a-zA-Z0-9_]*)","name":"meta.record.accessor"},"record-prefix":{"captures":{"1":{"name":"record.name.elm"},"2":{"name":"keyword.other.period.elm"},"3":{"name":"entity.name.record.field.accessor.elm"}},"match":"([a-z][a-zA-Z0-9_]*)(\\\\.)([a-z][a-zA-Z0-9_]*)","name":"record.accessor.elm"},"square_brackets":{"match":"[\\\\[\\\\]]","name":"punctuation.definition.list.elm"},"string-quote":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.elm"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.elm"}},"name":"string.quoted.double.elm","patterns":[{"match":"\\\\\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\\\\"'\\\\&]|x[0-9a-fA-F]{1,5})","name":"constant.character.escape.elm"},{"match":"\\\\^[A-Z@\\\\[\\\\]\\\\\\\\\\\\^_]","name":"constant.character.escape.control.elm"}]},"string-triple":{"begin":"\\"\\"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.elm"}},"end":"\\"\\"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.elm"}},"name":"string.quoted.triple.elm","patterns":[{"match":"\\\\\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\\\\"'\\\\&]|x[0-9a-fA-F]{1,5})","name":"constant.character.escape.elm"},{"match":"\\\\^[A-Z@\\\\[\\\\]\\\\\\\\\\\\^_]","name":"constant.character.escape.control.elm"}]},"top_level_value":{"match":"^[a-z][a-zA-Z0-9_]*\\\\b","name":"entity.name.function.top_level.elm"},"type-alias-declaration":{"begin":"^(type\\\\s+)(alias\\\\s+)([A-Z][a-zA-Z0-9_']*)\\\\s+","beginCaptures":{"1":{"name":"keyword.type.elm"},"2":{"name":"keyword.type-alias.elm"},"3":{"name":"storage.type.elm"}},"end":"^(?=\\\\S)","name":"meta.function.type-declaration.elm","patterns":[{"match":"\\\\n\\\\s+","name":"punctuation.spaces.elm"},{"match":"\\\\=","name":"keyword.operator.assignment.elm"},{"include":"#module-prefix"},{"match":"\\\\b[A-Z][a-zA-Z0-9_]*\\\\b","name":"storage.type.elm"},{"match":"\\\\b[a-z][a-zA-Z0-9_]*\\\\b","name":"variable.type.elm"},{"include":"#comments"},{"include":"#type-record"}]},"type-declaration":{"begin":"^(type\\\\s+)([A-Z][a-zA-Z0-9_']*)\\\\s+","beginCaptures":{"1":{"name":"keyword.type.elm"},"2":{"name":"storage.type.elm"}},"end":"^(?=\\\\S)","name":"meta.function.type-declaration.elm","patterns":[{"captures":{"1":{"name":"constant.type-constructor.elm"}},"match":"^\\\\s*([A-Z][a-zA-Z0-9_]*)\\\\b","name":"meta.record.field.elm"},{"match":"\\\\s+","name":"punctuation.spaces.elm"},{"captures":{"1":{"name":"keyword.operator.assignment.elm"},"2":{"name":"constant.type-constructor.elm"}},"match":"(\\\\=|\\\\|)\\\\s+([A-Z][a-zA-Z0-9_]*)\\\\b","name":"meta.record.field.elm"},{"match":"\\\\=","name":"keyword.operator.assignment.elm"},{"match":"\\\\-\\\\>","name":"keyword.operator.arrow.elm"},{"include":"#module-prefix"},{"match":"\\\\b[a-z][a-zA-Z0-9_]*\\\\b","name":"variable.type.elm"},{"match":"\\\\b[A-Z][a-zA-Z0-9_]*\\\\b","name":"storage.type.elm"},{"include":"#comments"},{"include":"#type-record"}]},"type-record":{"begin":"(\\\\{)","beginCaptures":{"1":{"name":"punctuation.section.braces.begin"}},"end":"(\\\\})","endCaptures":{"1":{"name":"punctuation.section.braces.end"}},"name":"meta.function.type-record.elm","patterns":[{"match":"\\\\s+","name":"punctuation.spaces.elm"},{"match":"->","name":"keyword.operator.arrow.elm"},{"captures":{"1":{"name":"entity.name.record.field.elm"},"2":{"name":"keyword.other.elm"}},"match":"([a-z][a-zA-Z0-9_]*)\\\\s+(\\\\:)","name":"meta.record.field.elm"},{"match":"\\\\,","name":"punctuation.separator.comma.elm"},{"include":"#module-prefix"},{"match":"\\\\b[a-z][a-zA-Z0-9_]*\\\\b","name":"variable.type.elm"},{"match":"\\\\b[A-Z][a-zA-Z0-9_]*\\\\b","name":"storage.type.elm"},{"include":"#comments"},{"include":"#type-record"}]},"type-signature":{"begin":"^(port\\\\s+)?([a-z_][a-zA-Z0-9_']*)\\\\s+(\\\\:)","beginCaptures":{"1":{"name":"keyword.other.port.elm"},"2":{"name":"entity.name.function.elm"},"3":{"name":"keyword.other.colon.elm"}},"end":"((^(?=[a-z]))|^$)","name":"meta.function.type-declaration.elm","patterns":[{"include":"#type-signature-chunk"}]},"type-signature-chunk":{"patterns":[{"match":"->","name":"keyword.operator.arrow.elm"},{"match":"\\\\s+","name":"punctuation.spaces.elm"},{"include":"#module-prefix"},{"match":"\\\\b[a-z][a-zA-Z0-9_]*\\\\b","name":"variable.type.elm"},{"match":"\\\\b[A-Z][a-zA-Z0-9_]*\\\\b","name":"storage.type.elm"},{"match":"\\\\(\\\\)","name":"constant.unit.elm"},{"include":"#comma"},{"include":"#parens"},{"include":"#comments"},{"include":"#type-record"}]},"unit":{"match":"\\\\(\\\\)","name":"constant.unit.elm"},"value":{"match":"\\\\b[a-z][a-zA-Z0-9_]*\\\\b","name":"meta.value.elm"}},"scopeName":"source.elm","embeddedLangs":["glsl"]}`)),m=[...e,a];export{m as default}; ================================================ FILE: jesse/static/_nuxt/Be6lgOlo.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"Rust","name":"rust","patterns":[{"begin":"(<)(\\\\[)","beginCaptures":{"1":{"name":"punctuation.brackets.angle.rust"},"2":{"name":"punctuation.brackets.square.rust"}},"comment":"boxed slice literal","end":">","endCaptures":{"0":{"name":"punctuation.brackets.angle.rust"}},"patterns":[{"include":"#block-comments"},{"include":"#comments"},{"include":"#gtypes"},{"include":"#lvariables"},{"include":"#lifetimes"},{"include":"#punctuation"},{"include":"#types"}]},{"captures":{"1":{"name":"keyword.operator.macro.dollar.rust"},"3":{"name":"keyword.other.crate.rust"},"4":{"name":"entity.name.type.metavariable.rust"},"6":{"name":"keyword.operator.key-value.rust"},"7":{"name":"variable.other.metavariable.specifier.rust"}},"comment":"macro type metavariables","match":"(\\\\$)((crate)|([A-Z][A-Za-z0-9_]*))((:)(block|expr|ident|item|lifetime|literal|meta|path?|stmt|tt|ty|vis))?","name":"meta.macro.metavariable.type.rust","patterns":[{"include":"#keywords"}]},{"captures":{"1":{"name":"keyword.operator.macro.dollar.rust"},"2":{"name":"variable.other.metavariable.name.rust"},"4":{"name":"keyword.operator.key-value.rust"},"5":{"name":"variable.other.metavariable.specifier.rust"}},"comment":"macro metavariables","match":"(\\\\$)([a-z][A-Za-z0-9_]*)((:)(block|expr|ident|item|lifetime|literal|meta|path?|stmt|tt|ty|vis))?","name":"meta.macro.metavariable.rust","patterns":[{"include":"#keywords"}]},{"captures":{"1":{"name":"entity.name.function.macro.rules.rust"},"3":{"name":"entity.name.function.macro.rust"},"4":{"name":"entity.name.type.macro.rust"},"5":{"name":"punctuation.brackets.curly.rust"}},"comment":"macro rules","match":"\\\\b(macro_rules!)\\\\s+(([a-z0-9_]+)|([A-Z][a-z0-9_]*))\\\\s+(\\\\{)","name":"meta.macro.rules.rust"},{"captures":{"1":{"name":"storage.type.rust"},"2":{"name":"entity.name.module.rust"}},"comment":"modules","match":"(mod)\\\\s+((?:r#(?!crate|[Ss]elf|super))?[a-z][A-Za-z0-9_]*)"},{"begin":"\\\\b(extern)\\\\s+(crate)","beginCaptures":{"1":{"name":"storage.type.rust"},"2":{"name":"keyword.other.crate.rust"}},"comment":"external crate imports","end":";","endCaptures":{"0":{"name":"punctuation.semi.rust"}},"name":"meta.import.rust","patterns":[{"include":"#block-comments"},{"include":"#comments"},{"include":"#keywords"},{"include":"#punctuation"}]},{"begin":"\\\\b(use)\\\\s","beginCaptures":{"1":{"name":"keyword.other.rust"}},"comment":"use statements","end":";","endCaptures":{"0":{"name":"punctuation.semi.rust"}},"name":"meta.use.rust","patterns":[{"include":"#block-comments"},{"include":"#comments"},{"include":"#keywords"},{"include":"#namespaces"},{"include":"#punctuation"},{"include":"#types"},{"include":"#lvariables"}]},{"include":"#block-comments"},{"include":"#comments"},{"include":"#attributes"},{"include":"#lvariables"},{"include":"#constants"},{"include":"#gtypes"},{"include":"#functions"},{"include":"#types"},{"include":"#keywords"},{"include":"#lifetimes"},{"include":"#macros"},{"include":"#namespaces"},{"include":"#punctuation"},{"include":"#strings"},{"include":"#variables"}],"repository":{"attributes":{"begin":"(#)(\\\\!?)(\\\\[)","beginCaptures":{"1":{"name":"punctuation.definition.attribute.rust"},"3":{"name":"punctuation.brackets.attribute.rust"}},"comment":"attributes","end":"\\\\]","endCaptures":{"0":{"name":"punctuation.brackets.attribute.rust"}},"name":"meta.attribute.rust","patterns":[{"include":"#block-comments"},{"include":"#comments"},{"include":"#keywords"},{"include":"#lifetimes"},{"include":"#punctuation"},{"include":"#strings"},{"include":"#gtypes"},{"include":"#types"}]},"block-comments":{"patterns":[{"comment":"empty block comments","match":"/\\\\*\\\\*/","name":"comment.block.rust"},{"begin":"/\\\\*\\\\*","comment":"block documentation comments","end":"\\\\*/","name":"comment.block.documentation.rust","patterns":[{"include":"#block-comments"}]},{"begin":"/\\\\*(?!\\\\*)","comment":"block comments","end":"\\\\*/","name":"comment.block.rust","patterns":[{"include":"#block-comments"}]}]},"comments":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.comment.rust"}},"comment":"documentation comments","match":"(///).*$","name":"comment.line.documentation.rust"},{"captures":{"1":{"name":"punctuation.definition.comment.rust"}},"comment":"line comments","match":"(//).*$","name":"comment.line.double-slash.rust"}]},"constants":{"patterns":[{"comment":"ALL CAPS constants","match":"\\\\b[A-Z]{2}[A-Z0-9_]*\\\\b","name":"constant.other.caps.rust"},{"captures":{"1":{"name":"storage.type.rust"},"2":{"name":"constant.other.caps.rust"}},"comment":"constant declarations","match":"\\\\b(const)\\\\s+([A-Z][A-Za-z0-9_]*)\\\\b"},{"captures":{"1":{"name":"punctuation.separator.dot.decimal.rust"},"2":{"name":"keyword.operator.exponent.rust"},"3":{"name":"keyword.operator.exponent.sign.rust"},"4":{"name":"constant.numeric.decimal.exponent.mantissa.rust"},"5":{"name":"entity.name.type.numeric.rust"}},"comment":"decimal integers and floats","match":"\\\\b\\\\d[\\\\d_]*(\\\\.?)[\\\\d_]*(?:(E|e)([+-]?)([\\\\d_]+))?(f32|f64|i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\\\b","name":"constant.numeric.decimal.rust"},{"captures":{"1":{"name":"entity.name.type.numeric.rust"}},"comment":"hexadecimal integers","match":"\\\\b0x[\\\\da-fA-F_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\\\b","name":"constant.numeric.hex.rust"},{"captures":{"1":{"name":"entity.name.type.numeric.rust"}},"comment":"octal integers","match":"\\\\b0o[0-7_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\\\b","name":"constant.numeric.oct.rust"},{"captures":{"1":{"name":"entity.name.type.numeric.rust"}},"comment":"binary integers","match":"\\\\b0b[01_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\\\b","name":"constant.numeric.bin.rust"},{"comment":"booleans","match":"\\\\b(true|false)\\\\b","name":"constant.language.bool.rust"}]},"escapes":{"captures":{"1":{"name":"constant.character.escape.backslash.rust"},"2":{"name":"constant.character.escape.bit.rust"},"3":{"name":"constant.character.escape.unicode.rust"},"4":{"name":"constant.character.escape.unicode.punctuation.rust"},"5":{"name":"constant.character.escape.unicode.punctuation.rust"}},"comment":"escapes: ASCII, byte, Unicode, quote, regex","match":"(\\\\\\\\)(?:(?:(x[0-7][\\\\da-fA-F])|(u(\\\\{)[\\\\da-fA-F]{4,6}(\\\\}))|.))","name":"constant.character.escape.rust"},"functions":{"patterns":[{"captures":{"1":{"name":"keyword.other.rust"},"2":{"name":"punctuation.brackets.round.rust"}},"comment":"pub as a function","match":"\\\\b(pub)(\\\\()"},{"begin":"\\\\b(fn)\\\\s+((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)((\\\\()|(<))","beginCaptures":{"1":{"name":"keyword.other.fn.rust"},"2":{"name":"entity.name.function.rust"},"4":{"name":"punctuation.brackets.round.rust"},"5":{"name":"punctuation.brackets.angle.rust"}},"comment":"function definition","end":"(\\\\{)|(;)","endCaptures":{"1":{"name":"punctuation.brackets.curly.rust"},"2":{"name":"punctuation.semi.rust"}},"name":"meta.function.definition.rust","patterns":[{"include":"#block-comments"},{"include":"#comments"},{"include":"#keywords"},{"include":"#lvariables"},{"include":"#constants"},{"include":"#gtypes"},{"include":"#functions"},{"include":"#lifetimes"},{"include":"#macros"},{"include":"#namespaces"},{"include":"#punctuation"},{"include":"#strings"},{"include":"#types"},{"include":"#variables"}]},{"begin":"((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.rust"},"2":{"name":"punctuation.brackets.round.rust"}},"comment":"function/method calls, chaining","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.brackets.round.rust"}},"name":"meta.function.call.rust","patterns":[{"include":"#block-comments"},{"include":"#comments"},{"include":"#attributes"},{"include":"#keywords"},{"include":"#lvariables"},{"include":"#constants"},{"include":"#gtypes"},{"include":"#functions"},{"include":"#lifetimes"},{"include":"#macros"},{"include":"#namespaces"},{"include":"#punctuation"},{"include":"#strings"},{"include":"#types"},{"include":"#variables"}]},{"begin":"((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)(?=::<.*>\\\\()","beginCaptures":{"1":{"name":"entity.name.function.rust"}},"comment":"function/method calls with turbofish","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.brackets.round.rust"}},"name":"meta.function.call.rust","patterns":[{"include":"#block-comments"},{"include":"#comments"},{"include":"#attributes"},{"include":"#keywords"},{"include":"#lvariables"},{"include":"#constants"},{"include":"#gtypes"},{"include":"#functions"},{"include":"#lifetimes"},{"include":"#macros"},{"include":"#namespaces"},{"include":"#punctuation"},{"include":"#strings"},{"include":"#types"},{"include":"#variables"}]}]},"gtypes":{"patterns":[{"comment":"option types","match":"\\\\b(Some|None)\\\\b","name":"entity.name.type.option.rust"},{"comment":"result types","match":"\\\\b(Ok|Err)\\\\b","name":"entity.name.type.result.rust"}]},"interpolations":{"captures":{"1":{"name":"punctuation.definition.interpolation.rust"},"2":{"name":"punctuation.definition.interpolation.rust"}},"comment":"curly brace interpolations","match":"({)[^\\"{}]*(})","name":"meta.interpolation.rust"},"keywords":{"patterns":[{"comment":"control flow keywords","match":"\\\\b(await|break|continue|do|else|for|if|loop|match|return|try|while|yield)\\\\b","name":"keyword.control.rust"},{"comment":"storage keywords","match":"\\\\b(extern|let|macro|mod)\\\\b","name":"keyword.other.rust storage.type.rust"},{"comment":"const keyword","match":"\\\\b(const)\\\\b","name":"storage.modifier.rust"},{"comment":"type keyword","match":"\\\\b(type)\\\\b","name":"keyword.declaration.type.rust storage.type.rust"},{"comment":"enum keyword","match":"\\\\b(enum)\\\\b","name":"keyword.declaration.enum.rust storage.type.rust"},{"comment":"trait keyword","match":"\\\\b(trait)\\\\b","name":"keyword.declaration.trait.rust storage.type.rust"},{"comment":"struct keyword","match":"\\\\b(struct)\\\\b","name":"keyword.declaration.struct.rust storage.type.rust"},{"comment":"storage modifiers","match":"\\\\b(abstract|static)\\\\b","name":"storage.modifier.rust"},{"comment":"other keywords","match":"\\\\b(as|async|become|box|dyn|move|final|gen|impl|in|override|priv|pub|ref|typeof|union|unsafe|unsized|use|virtual|where)\\\\b","name":"keyword.other.rust"},{"comment":"fn","match":"\\\\bfn\\\\b","name":"keyword.other.fn.rust"},{"comment":"crate","match":"\\\\bcrate\\\\b","name":"keyword.other.crate.rust"},{"comment":"mut","match":"\\\\bmut\\\\b","name":"storage.modifier.mut.rust"},{"comment":"logical operators","match":"(\\\\^|\\\\||\\\\|\\\\||&&|<<|>>|!)(?!=)","name":"keyword.operator.logical.rust"},{"comment":"logical AND, borrow references","match":"&(?![&=])","name":"keyword.operator.borrow.and.rust"},{"comment":"assignment operators","match":"(\\\\+=|-=|\\\\*=|/=|%=|\\\\^=|&=|\\\\|=|<<=|>>=)","name":"keyword.operator.assignment.rust"},{"comment":"single equal","match":"(?])=(?!=|>)","name":"keyword.operator.assignment.equal.rust"},{"comment":"comparison operators","match":"(=(=)?(?!>)|!=|<=|(?=)","name":"keyword.operator.comparison.rust"},{"comment":"math operators","match":"(([+%]|(\\\\*(?!\\\\w)))(?!=))|(-(?!>))|(/(?!/))","name":"keyword.operator.math.rust"},{"captures":{"1":{"name":"punctuation.brackets.round.rust"},"2":{"name":"punctuation.brackets.square.rust"},"3":{"name":"punctuation.brackets.curly.rust"},"4":{"name":"keyword.operator.comparison.rust"},"5":{"name":"punctuation.brackets.round.rust"},"6":{"name":"punctuation.brackets.square.rust"},"7":{"name":"punctuation.brackets.curly.rust"}},"comment":"less than, greater than (special case)","match":"(?:\\\\b|(?:(\\\\))|(\\\\])|(\\\\})))[ \\\\t]+([<>])[ \\\\t]+(?:\\\\b|(?:(\\\\()|(\\\\[)|(\\\\{)))"},{"comment":"namespace operator","match":"::","name":"keyword.operator.namespace.rust"},{"captures":{"1":{"name":"keyword.operator.dereference.rust"}},"comment":"dereference asterisk","match":"(\\\\*)(?=\\\\w+)"},{"comment":"subpattern binding","match":"@","name":"keyword.operator.subpattern.rust"},{"comment":"dot access","match":"\\\\.(?!\\\\.)","name":"keyword.operator.access.dot.rust"},{"comment":"ranges, range patterns","match":"\\\\.{2}(=|\\\\.)?","name":"keyword.operator.range.rust"},{"comment":"colon","match":":(?!:)","name":"keyword.operator.key-value.rust"},{"comment":"dashrocket, skinny arrow","match":"->|<-","name":"keyword.operator.arrow.skinny.rust"},{"comment":"hashrocket, fat arrow","match":"=>","name":"keyword.operator.arrow.fat.rust"},{"comment":"dollar macros","match":"\\\\$","name":"keyword.operator.macro.dollar.rust"},{"comment":"question mark operator, questionably sized, macro kleene matcher","match":"\\\\?","name":"keyword.operator.question.rust"}]},"lifetimes":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.lifetime.rust"},"2":{"name":"entity.name.type.lifetime.rust"}},"comment":"named lifetime parameters","match":"(['])([a-zA-Z_][0-9a-zA-Z_]*)(?!['])\\\\b"},{"captures":{"1":{"name":"keyword.operator.borrow.rust"},"2":{"name":"punctuation.definition.lifetime.rust"},"3":{"name":"entity.name.type.lifetime.rust"}},"comment":"borrowing references to named lifetimes","match":"(\\\\&)(['])([a-zA-Z_][0-9a-zA-Z_]*)(?!['])\\\\b"}]},"lvariables":{"patterns":[{"comment":"self","match":"\\\\b[Ss]elf\\\\b","name":"variable.language.self.rust"},{"comment":"super","match":"\\\\bsuper\\\\b","name":"variable.language.super.rust"}]},"macros":{"patterns":[{"captures":{"2":{"name":"entity.name.function.macro.rust"},"3":{"name":"entity.name.type.macro.rust"}},"comment":"macros","match":"(([a-z_][A-Za-z0-9_]*!)|([A-Z_][A-Za-z0-9_]*!))","name":"meta.macro.rust"}]},"namespaces":{"patterns":[{"captures":{"1":{"name":"entity.name.namespace.rust"},"2":{"name":"keyword.operator.namespace.rust"}},"comment":"namespace (non-type, non-function path segment)","match":"(?]","name":"punctuation.brackets.angle.rust"}]},"strings":{"patterns":[{"begin":"(b?)(\\")","beginCaptures":{"1":{"name":"string.quoted.byte.raw.rust"},"2":{"name":"punctuation.definition.string.rust"}},"comment":"double-quoted strings and byte strings","end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.rust"}},"name":"string.quoted.double.rust","patterns":[{"include":"#escapes"},{"include":"#interpolations"}]},{"begin":"(b?r)(#*)(\\")","beginCaptures":{"1":{"name":"string.quoted.byte.raw.rust"},"2":{"name":"punctuation.definition.string.raw.rust"},"3":{"name":"punctuation.definition.string.rust"}},"comment":"double-quoted raw strings and raw byte strings","end":"(\\")(\\\\2)","endCaptures":{"1":{"name":"punctuation.definition.string.rust"},"2":{"name":"punctuation.definition.string.raw.rust"}},"name":"string.quoted.double.rust"},{"begin":"(b)?(')","beginCaptures":{"1":{"name":"string.quoted.byte.raw.rust"},"2":{"name":"punctuation.definition.char.rust"}},"comment":"characters and bytes","end":"'","endCaptures":{"0":{"name":"punctuation.definition.char.rust"}},"name":"string.quoted.single.char.rust","patterns":[{"include":"#escapes"}]}]},"types":{"patterns":[{"captures":{"1":{"name":"entity.name.type.numeric.rust"}},"comment":"numeric types","match":"(?","endCaptures":{"0":{"name":"punctuation.brackets.angle.rust"}},"patterns":[{"include":"#block-comments"},{"include":"#comments"},{"include":"#keywords"},{"include":"#lvariables"},{"include":"#lifetimes"},{"include":"#punctuation"},{"include":"#types"},{"include":"#variables"}]},{"comment":"primitive types","match":"\\\\b(bool|char|str)\\\\b","name":"entity.name.type.primitive.rust"},{"captures":{"1":{"name":"keyword.declaration.trait.rust storage.type.rust"},"2":{"name":"entity.name.type.trait.rust"}},"comment":"trait declarations","match":"\\\\b(trait)\\\\s+(_?[A-Z][A-Za-z0-9_]*)\\\\b"},{"captures":{"1":{"name":"keyword.declaration.struct.rust storage.type.rust"},"2":{"name":"entity.name.type.struct.rust"}},"comment":"struct declarations","match":"\\\\b(struct)\\\\s+(_?[A-Z][A-Za-z0-9_]*)\\\\b"},{"captures":{"1":{"name":"keyword.declaration.enum.rust storage.type.rust"},"2":{"name":"entity.name.type.enum.rust"}},"comment":"enum declarations","match":"\\\\b(enum)\\\\s+(_?[A-Z][A-Za-z0-9_]*)\\\\b"},{"captures":{"1":{"name":"keyword.declaration.type.rust storage.type.rust"},"2":{"name":"entity.name.type.declaration.rust"}},"comment":"type declarations","match":"\\\\b(type)\\\\s+(_?[A-Z][A-Za-z0-9_]*)\\\\b"},{"comment":"types","match":"\\\\b_?[A-Z][A-Za-z0-9_]*\\\\b(?!!)","name":"entity.name.type.rust"}]},"variables":{"patterns":[{"comment":"variables","match":"\\\\b(?|(?:=|:|\\\\?|\\\\+|-|\\\\*|\\\\/|%|<|>)?=|!=)|\\\\b(?:in|is(?:nt)?|(?(['\\"])(?:[^\\\\\\\\]|\\\\\\\\.)*?(\\\\6)))))?\\\\s*(\\\\])","name":"meta.attribute-selector.css"},{"include":"#interpolation"},{"include":"#variable"}]},"string":{"patterns":[{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.css"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.css"}},"name":"string.quoted.double.css","patterns":[{"match":"\\\\\\\\([a-fA-F0-9]{1,6}|.)","name":"constant.character.escape.css"}]},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.css"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.css"}},"name":"string.quoted.single.css","patterns":[{"match":"\\\\\\\\([a-fA-F0-9]{1,6}|.)","name":"constant.character.escape.css"}]}]},"variable":{"match":"(\\\\$[a-zA-Z_-][a-zA-Z0-9_-]*)","name":"variable.stylus"},"variable_declaration":{"begin":"^[^\\\\S\\\\n]*(\\\\$?[a-zA-Z_-][a-zA-Z0-9_-]*)[^\\\\S\\\\n]*(\\\\=|\\\\?\\\\=|\\\\:\\\\=)","beginCaptures":{"1":{"name":"variable.stylus"},"2":{"name":"keyword.operator.stylus"}},"end":"(\\\\n)|(;)|(?=\\\\})","endCaptures":{"2":{"name":"punctuation.terminator.rule.css"}},"patterns":[{"include":"#property_values"}]}},"scopeName":"source.stylus","aliases":["styl"]}`)),t=[e];export{t as default}; ================================================ FILE: jesse/static/_nuxt/BfCpw3nA.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"Less","name":"less","patterns":[{"include":"#comment-block"},{"include":"#less-namespace-accessors"},{"include":"#less-extend"},{"include":"#at-rules"},{"include":"#less-variable-assignment"},{"include":"#property-list"},{"include":"#selector"}],"repository":{"angle-type":{"captures":{"1":{"name":"keyword.other.unit.less"}},"match":"(?i:[-+]?(?:(?:\\\\d*\\\\.\\\\d+(?:[eE](?:[-+]?\\\\d+))*)|(?:[-+]?\\\\d+))(deg|grad|rad|turn))\\\\b","name":"constant.numeric.less"},"arbitrary-repetition":{"captures":{"1":{"name":"punctuation.definition.arbitrary-repetition.less"}},"match":"\\\\s*(?:(,))"},"at-charset":{"begin":"\\\\s*((@)charset\\\\b)\\\\s*","beginCaptures":{"1":{"name":"keyword.control.at-rule.charset.less"},"2":{"name":"punctuation.definition.keyword.less"}},"end":"\\\\s*((?=;|$))","name":"meta.at-rule.charset.less","patterns":[{"include":"#literal-string"}]},"at-container":{"begin":"(?=\\\\s*@container)","end":"\\\\s*(\\\\})","endCaptures":{"1":{"name":"punctuation.definition.block.end.less"}},"patterns":[{"begin":"((@)container)","beginCaptures":{"1":{"name":"keyword.control.at-rule.container.less"},"2":{"name":"punctuation.definition.keyword.less"},"3":{"name":"support.constant.container.less"}},"end":"(?=\\\\{)","name":"meta.at-rule.container.less","patterns":[{"begin":"\\\\s*(?=[^{;])","end":"\\\\s*(?=[{;])","patterns":[{"match":"\\\\b(not|and|or)\\\\b","name":"keyword.operator.comparison.less"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.at-rule.container-query.less","patterns":[{"captures":{"1":{"name":"support.type.property-name.less"}},"match":"\\\\b(aspect-ratio|block-size|height|inline-size|orientation|width)\\\\b","name":"support.constant.size-feature.less"},{"match":"((<|>)=?)|=|\\\\/","name":"keyword.operator.comparison.less"},{"match":":","name":"punctuation.separator.key-value.less"},{"match":"portrait|landscape","name":"support.constant.property-value.less"},{"include":"#numeric-values"},{"match":"\\\\/","name":"keyword.operator.arithmetic.less"},{"include":"#var-function"},{"include":"#less-variables"},{"include":"#less-variable-interpolation"}]},{"include":"#style-function"},{"match":"--|(?:-?(?:(?:[a-zA-Z_]|[\\\\x{00B7}\\\\x{00C0}-\\\\x{00D6}\\\\x{00D8}-\\\\x{00F6}\\\\x{00F8}-\\\\x{037D}\\\\x{037F}-\\\\x{1FFF}\\\\x{200C}\\\\x{200D}\\\\x{203F}\\\\x{2040}\\\\x{2070}-\\\\x{218F}\\\\x{2C00}-\\\\x{2FEF}\\\\x{3001}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFFD}\\\\x{10000}-\\\\x{EFFFF}])|(?:\\\\\\\\(?:\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\s\\\\R]))))(?:(?:[-\\\\da-zA-Z_]|[\\\\x{00B7}\\\\x{00C0}-\\\\x{00D6}\\\\x{00D8}-\\\\x{00F6}\\\\x{00F8}-\\\\x{037D}\\\\x{037F}-\\\\x{1FFF}\\\\x{200C}\\\\x{200D}\\\\x{203F}\\\\x{2040}\\\\x{2070}-\\\\x{218F}\\\\x{2C00}-\\\\x{2FEF}\\\\x{3001}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFFD}\\\\x{10000}-\\\\x{EFFFF}])|(?:\\\\\\\\(?:\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\s\\\\R])))*","name":"variable.parameter.container-name.css"},{"include":"#arbitrary-repetition"},{"include":"#less-variables"}]}]},{"begin":"\\\\s*(\\\\{)","beginCaptures":{"1":{"name":"punctuation.definition.block.begin.less"}},"end":"(?=\\\\})","patterns":[{"include":"#rule-list-body"},{"include":"$self"}]}]},"at-counter-style":{"begin":"\\\\s*((@)counter-style\\\\b)\\\\s+(?:(?i:\\\\b(decimal|none)\\\\b)|(-?(?:[[_a-zA-Z][^\\\\x{00}-\\\\x{7F}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))(?:[[-\\\\w][^\\\\x{00}-\\\\x{7F}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))*))\\\\s*(?=\\\\{|$)","beginCaptures":{"1":{"name":"keyword.control.at-rule.counter-style.less"},"2":{"name":"punctuation.definition.keyword.less"},"3":{"name":"invalid.illegal.counter-style-name.less"},"4":{"name":"entity.other.counter-style-name.css"}},"end":"\\\\s*(\\\\})","endCaptures":{"1":{"name":"punctuation.definition.block.begin.less"}},"name":"meta.at-rule.counter-style.less","patterns":[{"include":"#comment-block"},{"include":"#rule-list"}]},"at-custom-media":{"begin":"(?=\\\\s*@custom-media\\\\b)","end":"\\\\s*(?=;)","name":"meta.at-rule.custom-media.less","patterns":[{"captures":{"0":{"name":"punctuation.section.property-list.less"}},"match":"\\\\s*;"},{"captures":{"1":{"name":"keyword.control.at-rule.custom-media.less"},"2":{"name":"punctuation.definition.keyword.less"},"3":{"name":"support.constant.custom-media.less"}},"match":"\\\\s*((@)custom-media)(?=.*?)"},{"include":"#media-query-list"}]},"at-font-face":{"begin":"\\\\s*((@)font-face)\\\\s*(?=\\\\{|$)","beginCaptures":{"1":{"name":"keyword.control.at-rule.font-face.less"},"2":{"name":"punctuation.definition.keyword.less"}},"end":"\\\\s*(\\\\})","endCaptures":{"1":{"name":"punctuation.definition.block.end.less"}},"name":"meta.at-rule.font-face.less","patterns":[{"include":"#comment-block"},{"include":"#rule-list"}]},"at-import":{"begin":"\\\\s*((@)import\\\\b)\\\\s*","beginCaptures":{"1":{"name":"keyword.control.at-rule.import.less"},"2":{"name":"punctuation.definition.keyword.less"}},"end":"\\\\;","endCaptures":{"0":{"name":"punctuation.terminator.rule.less"}},"name":"meta.at-rule.import.less","patterns":[{"include":"#url-function"},{"include":"#less-variables"},{"begin":"(?<=([\\"'])|([\\"']\\\\)))\\\\s*","end":"\\\\s*(?=\\\\;)","patterns":[{"include":"#media-query"}]},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.group.less","patterns":[{"match":"reference|inline|less|css|once|multiple|optional","name":"constant.language.import-directive.less"},{"include":"#comma-delimiter"}]},{"include":"#literal-string"}]},"at-keyframes":{"begin":"\\\\s*((@)keyframes)(?=.*?\\\\{)","beginCaptures":{"1":{"name":"keyword.control.at-rule.keyframe.less"},"2":{"name":"punctuation.definition.keyword.less"},"4":{"name":"support.constant.keyframe.less"}},"end":"\\\\s*(\\\\})","endCaptures":{"1":{"name":"punctuation.definition.block.end.less"}},"patterns":[{"begin":"\\\\s*(\\\\{)","beginCaptures":{"1":{"name":"punctuation.definition.block.begin.less"}},"end":"(?=\\\\})","patterns":[{"captures":{"1":{"name":"keyword.other.keyframe-selector.less"},"2":{"name":"constant.numeric.less"},"3":{"name":"keyword.other.unit.less"}},"match":"\\\\s*(?:(from|to)|((?:\\\\.[0-9]+|[0-9]+(?:\\\\.[0-9]*)?)(%)))\\\\s*,?\\\\s*"},{"include":"$self"}]},{"begin":"\\\\s*(?=[^{;])","end":"\\\\s*(?=\\\\{)","name":"meta.at-rule.keyframe.less","patterns":[{"include":"#keyframe-name"},{"include":"#arbitrary-repetition"}]}]},"at-media":{"begin":"(?=\\\\s*@media\\\\b)","end":"\\\\s*(\\\\})","endCaptures":{"1":{"name":"punctuation.definition.block.end.less"}},"patterns":[{"begin":"\\\\s*((@)media)","beginCaptures":{"1":{"name":"keyword.control.at-rule.media.less"},"2":{"name":"punctuation.definition.keyword.less"},"3":{"name":"support.constant.media.less"}},"end":"\\\\s*(?=\\\\{)","name":"meta.at-rule.media.less","patterns":[{"include":"#media-query-list"}]},{"begin":"\\\\s*(\\\\{)","beginCaptures":{"1":{"name":"punctuation.definition.block.begin.less"}},"end":"(?=\\\\})","patterns":[{"include":"#rule-list-body"},{"include":"$self"}]}]},"at-namespace":{"begin":"\\\\s*((@)namespace)\\\\s+","beginCaptures":{"1":{"name":"keyword.control.at-rule.namespace.less"},"2":{"name":"punctuation.definition.keyword.less"}},"end":"\\\\;","endCaptures":{"0":{"name":"punctuation.terminator.rule.less"}},"name":"meta.at-rule.namespace.less","patterns":[{"include":"#url-function"},{"include":"#literal-string"},{"match":"(-?(?:[[_a-zA-Z][^\\\\x{00}-\\\\x{7F}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))(?:[[-\\\\w][^\\\\x{00}-\\\\x{7F}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))*)","name":"entity.name.constant.namespace-prefix.less"}]},"at-page":{"captures":{"1":{"name":"keyword.control.at-rule.page.less"},"2":{"name":"punctuation.definition.keyword.less"},"3":{"name":"punctuation.definition.entity.less"},"4":{"name":"entity.other.attribute-name.pseudo-class.less"}},"match":"\\\\s*((@)page)\\\\s*(?:(:)(first|left|right))?\\\\s*(?=\\\\{|$)","name":"meta.at-rule.page.less","patterns":[{"include":"#comment-block"},{"include":"#rule-list"}]},"at-rules":{"patterns":[{"include":"#at-charset"},{"include":"#at-container"},{"include":"#at-counter-style"},{"include":"#at-custom-media"},{"include":"#at-font-face"},{"include":"#at-media"},{"include":"#at-import"},{"include":"#at-keyframes"},{"include":"#at-namespace"},{"include":"#at-page"},{"include":"#at-supports"},{"include":"#at-viewport"}]},"at-supports":{"begin":"(?=\\\\s*@supports\\\\b)","end":"(?=\\\\s*)(\\\\})","endCaptures":{"1":{"name":"punctuation.definition.block.end.less"}},"patterns":[{"begin":"\\\\s*((@)supports)","beginCaptures":{"1":{"name":"keyword.control.at-rule.supports.less"},"2":{"name":"punctuation.definition.keyword.less"},"3":{"name":"support.constant.supports.less"}},"end":"\\\\s*(?=\\\\{)","name":"meta.at-rule.supports.less","patterns":[{"include":"#at-supports-operators"},{"include":"#at-supports-parens"}]},{"begin":"\\\\s*(\\\\{)","beginCaptures":{"1":{"name":"punctuation.section.property-list.begin.less"}},"end":"(?=\\\\})","patterns":[{"include":"#rule-list-body"},{"include":"$self"}]}]},"at-supports-operators":{"match":"\\\\b(?:and|or|not)\\\\b","name":"keyword.operator.logic.less"},"at-supports-parens":{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.group.less","patterns":[{"include":"#at-supports-operators"},{"include":"#at-supports-parens"},{"include":"#rule-list-body"}]},"attr-function":{"begin":"\\\\b(attr)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.filter.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#qualified-name"},{"include":"#literal-string"},{"begin":"(-?(?:[[_a-zA-Z][^\\\\x{00}-\\\\x{7F}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))(?:[[-\\\\w][^\\\\x{00}-\\\\x{7F}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))*)","end":"(?=\\\\))","name":"entity.other.attribute-name.less","patterns":[{"match":"\\\\b((?i:em|ex|ch|rem)|(?i:vw|vh|vmin|vmax)|(?i:cm|mm|q|in|pt|pc|px|fr)|(?i:deg|grad|rad|turn)|(?i:s|ms)|(?i:Hz|kHz)|(?i:dpi|dpcm|dppx))\\\\b","name":"keyword.other.unit.less"},{"include":"#comma-delimiter"},{"include":"#property-value-constants"},{"include":"#numeric-values"}]},{"include":"#color-values"}]}]},"builtin-functions":{"patterns":[{"include":"#attr-function"},{"include":"#calc-function"},{"include":"#color-functions"},{"include":"#counter-functions"},{"include":"#cross-fade-function"},{"include":"#cubic-bezier-function"},{"include":"#filter-function"},{"include":"#fit-content-function"},{"include":"#format-function"},{"include":"#gradient-functions"},{"include":"#grid-repeat-function"},{"include":"#image-function"},{"include":"#less-functions"},{"include":"#local-function"},{"include":"#minmax-function"},{"include":"#regexp-function"},{"include":"#shape-functions"},{"include":"#steps-function"},{"include":"#symbols-function"},{"include":"#transform-functions"},{"include":"#url-function"},{"include":"#var-function"}]},"calc-function":{"begin":"\\\\b(calc)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.calc.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-strings"},{"include":"#var-function"},{"include":"#calc-function"},{"include":"#attr-function"},{"include":"#less-math"},{"include":"#relative-color"}]}]},"color-adjuster-operators":{"match":"[\\\\-\\\\+*](?=\\\\s+)","name":"keyword.operator.less"},"color-functions":{"patterns":[{"begin":"\\\\b(rgba?)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.color.less"}},"comment":"rgb(), rgba()","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-strings"},{"include":"#less-variables"},{"include":"#var-function"},{"include":"#comma-delimiter"},{"include":"#value-separator"},{"include":"#percentage-type"},{"include":"#number-type"}]}]},{"begin":"\\\\b(hsla|hsl|hwb|oklab|oklch|lab|lch)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.color.less"}},"comment":"hsla, hsl, hwb, oklab, oklch, lab, lch","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#color-values"},{"include":"#less-strings"},{"include":"#less-variables"},{"include":"#var-function"},{"include":"#comma-delimiter"},{"include":"#angle-type"},{"include":"#percentage-type"},{"include":"#number-type"},{"include":"#calc-function"},{"include":"#value-separator"}]}]},{"begin":"\\\\b(light-dark)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.color.less"}},"comment":"light-dark()","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#color-values"},{"include":"#comma-delimiter"}]}]},{"include":"#less-color-functions"}]},"color-values":{"patterns":[{"include":"#color-functions"},{"include":"#less-functions"},{"include":"#less-variables"},{"include":"#var-function"},{"match":"\\\\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\\\\b","name":"support.constant.color.w3c-standard-color-name.less"},{"match":"\\\\b(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rebeccapurple|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|turquoise|violet|wheat|whitesmoke|yellowgreen)\\\\b","name":"support.constant.color.w3c-extended-color-keywords.less"},{"match":"\\\\b((?i)currentColor|transparent)\\\\b","name":"support.constant.color.w3c-special-color-keyword.less"},{"captures":{"1":{"name":"punctuation.definition.constant.less"}},"match":"(#)(\\\\h{3}|\\\\h{4}|\\\\h{6}|\\\\h{8})\\\\b","name":"constant.other.color.rgb-value.less"},{"include":"#relative-color"}]},"comma-delimiter":{"captures":{"1":{"name":"punctuation.separator.less"}},"match":"\\\\s*(,)\\\\s*"},"comment-block":{"patterns":[{"begin":"/\\\\*","beginCaptures":{"0":{"name":"punctuation.definition.comment.less"}},"end":"\\\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.less"}},"name":"comment.block.less"},{"include":"#comment-line"}]},"comment-line":{"captures":{"1":{"name":"punctuation.definition.comment.less"}},"match":"(//).*$\\\\n?","name":"comment.line.double-slash.less"},"counter-functions":{"patterns":[{"begin":"\\\\b(counter)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.filter.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-strings"},{"include":"#less-variables"},{"include":"#var-function"},{"match":"(?:--(?:[[-\\\\w][^\\\\x{00}-\\\\x{7F}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))+|-?(?:[[_a-zA-Z][^\\\\x{00}-\\\\x{7F}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))(?:[[-\\\\w][^\\\\x{00}-\\\\x{7F}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))*)","name":"entity.other.counter-name.less"},{"begin":"(?=,)","end":"(?=\\\\))","patterns":[{"include":"#comma-delimiter"},{"match":"\\\\b((?xi:arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|decimal-leading-zero|decimal|devanagari|disclosure-closed|disclosure-open|disc|ethiopic-numeric|georgian|gujarati|gurmukhi|hebrew|hiragana-iroha|hiragana|japanese-formal|japanese-informal|kannada|katakana-iroha|katakana|khmer|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian|upper-latin|upper-roman)|none)\\\\b","name":"support.constant.property-value.counter-style.less"}]}]}]},{"begin":"\\\\b(counters)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.filter.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"match":"(-?(?:[[_a-zA-Z][^\\\\x{00}-\\\\x{7F}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))(?:[[-\\\\w][^\\\\x{00}-\\\\x{7F}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))*)","name":"entity.other.counter-name.less string.unquoted.less"},{"begin":"(?=,)","end":"(?=\\\\))","patterns":[{"include":"#less-strings"},{"include":"#less-variables"},{"include":"#var-function"},{"include":"#literal-string"},{"include":"#comma-delimiter"},{"match":"\\\\b((?xi:arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|decimal-leading-zero|decimal|devanagari|disclosure-closed|disclosure-open|disc|ethiopic-numeric|georgian|gujarati|gurmukhi|hebrew|hiragana-iroha|hiragana|japanese-formal|japanese-informal|kannada|katakana-iroha|katakana|khmer|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian|upper-latin|upper-roman)|none)\\\\b","name":"support.constant.property-value.counter-style.less"}]}]}]}]},"cross-fade-function":{"patterns":[{"begin":"\\\\b(cross-fade)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.image.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#comma-delimiter"},{"include":"#percentage-type"},{"include":"#color-values"},{"include":"#image-type"},{"include":"#literal-string"},{"include":"#unquoted-string"}]}]}]},"cubic-bezier-function":{"begin":"\\\\b(cubic-bezier)(\\\\()","beginCaptures":{"1":{"name":"support.function.timing.less"},"2":{"name":"punctuation.definition.group.begin.less"}},"contentName":"meta.group.less","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"include":"#less-functions"},{"include":"#calc-function"},{"include":"#less-variables"},{"include":"#var-function"},{"include":"#comma-delimiter"},{"include":"#number-type"}]},"custom-property-name":{"captures":{"1":{"name":"punctuation.definition.custom-property.less"},"2":{"name":"support.type.custom-property.name.less"}},"match":"\\\\s*(--)((?:[[-\\\\w][^\\\\x{00}-\\\\x{7F}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))+)","name":"support.type.custom-property.less"},"dimensions":{"patterns":[{"include":"#angle-type"},{"include":"#frequency-type"},{"include":"#time-type"},{"include":"#percentage-type"},{"include":"#length-type"}]},"filter-function":{"begin":"\\\\b(filter)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.filter.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","name":"meta.group.less","patterns":[{"include":"#comma-delimiter"},{"include":"#image-type"},{"include":"#literal-string"},{"include":"#filter-functions"}]}]},"filter-functions":{"patterns":[{"include":"#less-functions"},{"begin":"\\\\b(blur)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.filter.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#length-type"}]}]},{"begin":"\\\\b(brightness|contrast|grayscale|invert|opacity|saturate|sepia)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.filter.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#percentage-type"},{"include":"#number-type"},{"include":"#less-functions"}]}]},{"begin":"\\\\b(drop-shadow)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.filter.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#length-type"},{"include":"#color-values"}]}]},{"begin":"\\\\b(hue-rotate)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.filter.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#angle-type"}]}]}]},"fit-content-function":{"begin":"\\\\b(fit-content)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.grid.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-variables"},{"include":"#var-function"},{"include":"#calc-function"},{"include":"#percentage-type"},{"include":"#length-type"}]}]},"format-function":{"patterns":[{"begin":"\\\\b(format)(?=\\\\()","beginCaptures":{"0":{"name":"support.function.format.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#literal-string"}]}]}]},"frequency-type":{"captures":{"1":{"name":"keyword.other.unit.less"}},"match":"(?i:[-+]?(?:(?:\\\\d*\\\\.\\\\d+(?:[eE](?:[-+]?\\\\d+))*)|(?:[-+]?\\\\d+))(Hz|kHz))\\\\b","name":"constant.numeric.less"},"global-property-values":{"match":"\\\\b(?:initial|inherit|unset|revert-layer|revert)\\\\b","name":"support.constant.property-value.less"},"gradient-functions":{"patterns":[{"begin":"\\\\b((?:repeating-)?linear-gradient)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.gradient.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-variables"},{"include":"#var-function"},{"include":"#angle-type"},{"include":"#color-values"},{"include":"#percentage-type"},{"include":"#length-type"},{"include":"#comma-delimiter"},{"match":"\\\\bto\\\\b","name":"keyword.other.less"},{"match":"\\\\b(top|right|bottom|left)\\\\b","name":"support.constant.property-value.less"}]}]},{"begin":"\\\\b((?:repeating-)?radial-gradient)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.gradient.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-variables"},{"include":"#var-function"},{"include":"#color-values"},{"include":"#percentage-type"},{"include":"#length-type"},{"include":"#comma-delimiter"},{"match":"\\\\b(at|circle|ellipse)\\\\b","name":"keyword.other.less"},{"match":"\\\\b(top|right|bottom|left|center|(farthest|closest)-(corner|side))\\\\b","name":"support.constant.property-value.less"}]}]}]},"grid-repeat-function":{"begin":"\\\\b(repeat)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.grid.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#comma-delimiter"},{"include":"#var-function"},{"include":"#length-type"},{"include":"#percentage-type"},{"include":"#minmax-function"},{"include":"#integer-type"},{"match":"\\\\b(auto-(fill|fit))\\\\b","name":"support.keyword.repetitions.less"},{"match":"\\\\b(((max|min)-content)|auto)\\\\b","name":"support.constant.property-value.less"}]}]},"image-function":{"begin":"\\\\b(image)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.image.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#image-type"},{"include":"#literal-string"},{"include":"#color-values"},{"include":"#comma-delimiter"},{"include":"#unquoted-string"}]}]},"image-type":{"patterns":[{"include":"#cross-fade-function"},{"include":"#gradient-functions"},{"include":"#image-function"},{"include":"#url-function"}]},"important":{"captures":{"1":{"name":"punctuation.separator.less"}},"match":"(\\\\!)\\\\s*important","name":"keyword.other.important.less"},"integer-type":{"match":"(?:[-+]?\\\\d+)","name":"constant.numeric.less"},"keyframe-name":{"begin":"\\\\s*(-?(?:[_a-z]|[^\\\\x{00}-\\\\x{7F}]|(?:(:?\\\\\\\\[0-9a-f]{1,6}(\\\\r\\\\n|[\\\\s\\\\t\\\\r\\\\n\\\\f])?)|\\\\\\\\[^\\\\r\\\\n\\\\f0-9a-f]))(?:[_a-z0-9-]|[^\\\\x{00}-\\\\x{7F}]|(?:(:?\\\\\\\\[0-9a-f]{1,6}(\\\\r\\\\n|[\\\\t\\\\r\\\\n\\\\f])?)|\\\\\\\\[^\\\\r\\\\n\\\\f0-9a-f]))*)?","beginCaptures":{"1":{"name":"variable.other.constant.animation-name.less"}},"end":"\\\\s*(?:(,)|(?=[{;]))","endCaptures":{"1":{"name":"punctuation.definition.arbitrary-repetition.less"}}},"length-type":{"patterns":[{"captures":{"1":{"name":"keyword.other.unit.less"}},"match":"(?:[-+]?)(?:\\\\d+\\\\.\\\\d+|\\\\.?\\\\d+)(?:[eE][-+]?\\\\d+)?(em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|m|q|in|pt|pc|px|fr|dpi|dpcm|dppx|x)","name":"constant.numeric.less"},{"match":"\\\\b(?:[-+]?)0\\\\b","name":"constant.numeric.less"}]},"less-boolean-function":{"begin":"\\\\b(boolean)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.boolean.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-logical-comparisons"}]}]},"less-color-blend-functions":{"patterns":[{"begin":"\\\\b(multiply|screen|overlay|(soft|hard)light|difference|exclusion|negation|average)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.color-blend.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-variables"},{"include":"#var-function"},{"include":"#comma-delimiter"},{"include":"#color-values"}]}]}]},"less-color-channel-functions":{"patterns":[{"begin":"\\\\b(hue|saturation|lightness|hsv(hue|saturation|value)|red|green|blue|alpha|luma|luminance)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.color-definition.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#color-values"}]}]}]},"less-color-definition-functions":{"patterns":[{"begin":"\\\\b(argb)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.color-definition.less"}},"comment":"argb()","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-variables"},{"include":"#var-function"},{"include":"#color-values"}]}]},{"begin":"\\\\b(hsva?)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.color.less"}},"comment":"hsva(), hsv()","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#integer-type"},{"include":"#percentage-type"},{"include":"#number-type"},{"include":"#less-strings"},{"include":"#less-variables"},{"include":"#var-function"},{"include":"#calc-function"},{"include":"#comma-delimiter"}]}]}]},"less-color-functions":{"patterns":[{"include":"#less-color-blend-functions"},{"include":"#less-color-channel-functions"},{"include":"#less-color-definition-functions"},{"include":"#less-color-operation-functions"}]},"less-color-operation-functions":{"patterns":[{"begin":"\\\\b(fade|shade|tint)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.color-operation.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#color-values"},{"include":"#comma-delimiter"},{"include":"#percentage-type"}]}]},{"begin":"\\\\b(spin)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.color-operation.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#color-values"},{"include":"#comma-delimiter"},{"include":"#number-type"}]}]},{"begin":"\\\\b(((de)?saturate)|((light|dark)en)|(fade(in|out)))(?=\\\\()","beginCaptures":{"1":{"name":"support.function.color-operation.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#color-values"},{"include":"#comma-delimiter"},{"include":"#percentage-type"},{"match":"\\\\brelative\\\\b","name":"constant.language.relative.less"}]}]},{"begin":"\\\\b(contrast)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.color-operation.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#color-values"},{"include":"#comma-delimiter"},{"include":"#percentage-type"}]}]},{"begin":"\\\\b(greyscale)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.color-operation.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#color-values"}]}]},{"begin":"\\\\b(mix)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.color-operation.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#color-values"},{"include":"#comma-delimiter"},{"include":"#less-math"},{"include":"#percentage-type"}]}]}]},"less-extend":{"begin":"(:)(extend)(?=\\\\()","beginCaptures":{"1":{"name":"punctuation.definition.entity.less"},"2":{"name":"entity.other.attribute-name.pseudo-class.extend.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"match":"\\\\ball\\\\b","name":"constant.language.all.less"},{"include":"#selectors"}]}]},"less-functions":{"patterns":[{"include":"#less-boolean-function"},{"include":"#less-color-functions"},{"include":"#less-if-function"},{"include":"#less-list-functions"},{"include":"#less-math-functions"},{"include":"#less-misc-functions"},{"include":"#less-string-functions"},{"include":"#less-type-functions"}]},"less-if-function":{"begin":"\\\\b(if)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.if.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-mixin-guards"},{"include":"#comma-delimiter"},{"include":"#property-values"}]}]},"less-list-functions":{"patterns":[{"begin":"\\\\b(length)(?=\\\\()\\\\b","beginCaptures":{"1":{"name":"support.function.length.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#property-values"},{"include":"#comma-delimiter"}]}]},{"begin":"\\\\b(extract)(?=\\\\()\\\\b","beginCaptures":{"1":{"name":"support.function.extract.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#property-values"},{"include":"#comma-delimiter"},{"include":"#integer-type"}]}]},{"begin":"\\\\b(range)(?=\\\\()\\\\b","beginCaptures":{"1":{"name":"support.function.range.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#property-values"},{"include":"#comma-delimiter"},{"include":"#integer-type"}]}]}]},"less-logical-comparisons":{"patterns":[{"captures":{"1":{"name":"keyword.operator.logical.less"}},"match":"\\\\s*(=|((<|>)=?))\\\\s*"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.group.less","patterns":[{"include":"#less-logical-comparisons"}]},{"match":"\\\\btrue|false\\\\b","name":"constant.language.less"},{"match":",","name":"punctuation.separator.less"},{"include":"#property-values"},{"include":"#selectors"},{"include":"#unquoted-string"}]},"less-math":{"patterns":[{"match":"[-\\\\+\\\\*\\\\/]","name":"keyword.operator.arithmetic.less"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.group.less","patterns":[{"include":"#less-math"}]},{"include":"#numeric-values"},{"include":"#less-variables"}]},"less-math-functions":{"patterns":[{"begin":"\\\\b(ceil|floor|percentage|round|sqrt|abs|a?(sin|cos|tan))(?=\\\\()","beginCaptures":{"1":{"name":"support.function.math.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-variables"},{"include":"#numeric-values"}]}]},{"captures":{"2":{"name":"support.function.math.less"},"3":{"name":"punctuation.definition.group.begin.less"},"4":{"name":"punctuation.definition.group.end.less"}},"match":"((pi)(\\\\()(\\\\)))","name":"meta.function-call.less"},{"begin":"\\\\b(pow|m(od|in|ax))(?=\\\\()","beginCaptures":{"1":{"name":"support.function.math.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-variables"},{"include":"#numeric-values"},{"include":"#comma-delimiter"}]}]}]},"less-misc-functions":{"patterns":[{"begin":"\\\\b(color)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.color.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#literal-string"}]}]},{"begin":"\\\\b(image-(size|width|height))(?=\\\\()","beginCaptures":{"1":{"name":"support.function.image.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#literal-string"},{"include":"#unquoted-string"}]}]},{"begin":"\\\\b(convert|unit)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.convert.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-variables"},{"include":"#numeric-values"},{"include":"#literal-string"},{"include":"#comma-delimiter"},{"match":"((c|m)?m|in|p(t|c|x)|m?s|g?rad|deg|turn|%|r?em|ex|ch)","name":"keyword.other.unit.less"}]}]},{"begin":"\\\\b(data-uri)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.data-uri.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-variables"},{"include":"#literal-string"},{"captures":{"1":{"name":"punctuation.separator.less"}},"match":"\\\\s*(?:(,))"}]}]},{"captures":{"2":{"name":"punctuation.definition.group.begin.less"},"3":{"name":"punctuation.definition.group.end.less"}},"match":"\\\\b(default(\\\\()(\\\\)))\\\\b","name":"support.function.default.less"},{"begin":"\\\\b(get-unit)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.get-unit.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#dimensions"}]}]},{"begin":"\\\\b(svg-gradient)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.svg-gradient.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#angle-type"},{"include":"#comma-delimiter"},{"include":"#color-values"},{"include":"#percentage-type"},{"include":"#length-type"},{"match":"\\\\bto\\\\b","name":"keyword.other.less"},{"match":"\\\\b(top|right|bottom|left|center)\\\\b","name":"support.constant.property-value.less"},{"match":"\\\\b(at|circle|ellipse)\\\\b","name":"keyword.other.less"}]}]}]},"less-mixin-guards":{"patterns":[{"begin":"\\\\s*(and|not|or)?\\\\s*(?=\\\\()","beginCaptures":{"1":{"name":"keyword.operator.logical.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","name":"meta.group.less","patterns":[{"include":"#less-variable-comparison"},{"captures":{"1":{"name":"meta.group.less"},"2":{"name":"punctuation.definition.group.begin.less"},"3":{"name":"punctuation.definition.group.end.less"}},"match":"default((\\\\()(\\\\)))","name":"support.function.default.less"},{"include":"#property-values"},{"include":"#less-logical-comparisons"},{"include":"$self"}]}]}]},"less-namespace-accessors":{"patterns":[{"begin":"(?=\\\\s*when\\\\b)","end":"\\\\s*(?:(,)|(?=[{;]))","endCaptures":{"1":{"name":"punctuation.definition.block.end.less"}},"name":"meta.conditional.guarded-namespace.less","patterns":[{"captures":{"1":{"name":"keyword.control.conditional.less"},"2":{"name":"punctuation.definition.keyword.less"}},"match":"\\\\s*(when)(?=.*?)"},{"include":"#less-mixin-guards"},{"include":"#comma-delimiter"},{"begin":"\\\\s*(\\\\{)","beginCaptures":{"1":{"name":"punctuation.section.property-list.begin.less"}},"end":"(?=\\\\})","name":"meta.block.less","patterns":[{"include":"#rule-list-body"}]},{"include":"#selectors"}]},{"begin":"(\\\\()","beginCaptures":{"1":{"name":"punctuation.definition.group.begin.less"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.definition.group.end.less"},"2":{"name":"punctuation.terminator.rule.less"}},"name":"meta.group.less","patterns":[{"include":"#less-variable-assignment"},{"include":"#comma-delimiter"},{"include":"#property-values"},{"include":"#rule-list-body"}]},{"captures":{"1":{"name":"punctuation.terminator.rule.less"}},"match":"(;)|(?=[})])"}]},"less-string-functions":{"patterns":[{"begin":"\\\\b(e(scape)?)(?=\\\\()\\\\b","beginCaptures":{"1":{"name":"support.function.escape.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-variables"},{"include":"#comma-delimiter"},{"include":"#literal-string"},{"include":"#unquoted-string"}]}]},{"begin":"\\\\s*(%)(?=\\\\()\\\\s*","beginCaptures":{"1":{"name":"support.function.format.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-variables"},{"include":"#comma-delimiter"},{"include":"#literal-string"},{"include":"#property-values"}]}]},{"begin":"\\\\b(replace)(?=\\\\()\\\\b","beginCaptures":{"1":{"name":"support.function.replace.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-variables"},{"include":"#comma-delimiter"},{"include":"#literal-string"},{"include":"#property-values"}]}]}]},"less-strings":{"patterns":[{"begin":"(~)('|\\")","beginCaptures":{"1":{"name":"constant.character.escape.less"},"2":{"name":"punctuation.definition.string.begin.less"}},"contentName":"markup.raw.inline.less","end":"('|\\")|(\\\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.less"},"2":{"name":"invalid.illegal.newline.less"}},"name":"string.quoted.other.less","patterns":[{"include":"#string-content"}]}]},"less-type-functions":{"patterns":[{"begin":"\\\\b(is(number|string|color|keyword|url|pixel|em|percentage|ruleset))(?=\\\\()","beginCaptures":{"1":{"name":"support.function.type.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#property-values"}]}]},{"begin":"\\\\b(isunit)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.type.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#property-values"},{"include":"#comma-delimiter"},{"match":"\\\\b((?i:em|ex|ch|rem)|(?i:vw|vh|vmin|vmax)|(?i:cm|mm|q|in|pt|pc|px|fr)|(?i:deg|grad|rad|turn)|(?i:s|ms)|(?i:Hz|kHz)|(?i:dpi|dpcm|dppx))\\\\b","name":"keyword.other.unit.less"}]}]},{"begin":"\\\\b(isdefined)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.type.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-variables"}]}]}]},"less-variable-assignment":{"patterns":[{"begin":"(@)(-?(?:[[-\\\\w][^\\\\x{00}-\\\\x{7F}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))(?:[[-\\\\w][^\\\\x{00}-\\\\x{7F}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))*)","beginCaptures":{"0":{"name":"variable.other.readwrite.less"},"1":{"name":"punctuation.definition.variable.less"},"2":{"name":"support.other.variable.less"}},"end":"\\\\s*(;|(\\\\.{3})|(?=\\\\)))","endCaptures":{"1":{"name":"punctuation.terminator.rule.less"},"2":{"name":"keyword.operator.spread.less"}},"name":"meta.property-value.less","patterns":[{"captures":{"1":{"name":"punctuation.separator.key-value.less"},"4":{"name":"meta.property-value.less"}},"match":"(((\\\\+_?)?):)([\\\\s\\\\t]*)"},{"include":"#property-values"},{"include":"#comma-delimiter"},{"include":"#property-list"},{"include":"#unquoted-string"}]}]},"less-variable-comparison":{"patterns":[{"begin":"(@{1,2})([-]?([_a-z]|[^\\\\x{00}-\\\\x{7F}]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))(?:[[-\\\\w][^\\\\x{00}-\\\\x{7F}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))*)","beginCaptures":{"0":{"name":"variable.other.readwrite.less"},"1":{"name":"punctuation.definition.variable.less"},"2":{"name":"support.other.variable.less"}},"end":"\\\\s*(?=\\\\))","endCaptures":{"1":{"name":"punctuation.terminator.rule.less"}},"patterns":[{"captures":{"1":{"name":"keyword.operator.logical.less"}},"match":"\\\\s*(=|((<|>)=?))\\\\s*"},{"match":"\\\\btrue\\\\b","name":"constant.language.less"},{"include":"#property-values"},{"include":"#selectors"},{"include":"#unquoted-string"},{"match":",","name":"punctuation.separator.less"}]}]},"less-variable-interpolation":{"captures":{"1":{"name":"punctuation.definition.variable.less"},"2":{"name":"punctuation.definition.expression.less"},"3":{"name":"support.other.variable.less"},"4":{"name":"punctuation.definition.expression.less"}},"match":"(@)(\\\\{)([-\\\\w]+)(\\\\})","name":"variable.other.readwrite.less"},"less-variables":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.variable.less"},"2":{"name":"support.other.variable.less"}},"match":"\\\\s*(@@?)([-\\\\w]+)","name":"variable.other.readwrite.less"},{"include":"#less-variable-interpolation"}]},"literal-string":{"patterns":[{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.less"}},"end":"(')|(\\\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.less"},"2":{"name":"invalid.illegal.newline.less"}},"name":"string.quoted.single.less","patterns":[{"include":"#string-content"}]},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.less"}},"end":"(\\")|(\\\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.less"},"2":{"name":"invalid.illegal.newline.less"}},"name":"string.quoted.double.less","patterns":[{"include":"#string-content"}]},{"include":"#less-strings"}]},"local-function":{"begin":"\\\\b(local)(?=\\\\()","beginCaptures":{"0":{"name":"support.function.font-face.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#unquoted-string"}]}]},"media-query":{"begin":"\\\\s*(only|not)?\\\\s*(all|aural|braille|embossed|handheld|print|projection|screen|tty|tv)?","beginCaptures":{"1":{"name":"keyword.operator.logic.media.less"},"2":{"name":"support.constant.media.less"}},"end":"\\\\s*(?:(,)|(?=[{;]))","endCaptures":{"1":{"name":"punctuation.definition.arbitrary-repetition.less"}},"patterns":[{"include":"#less-variables"},{"include":"#custom-property-name"},{"begin":"\\\\s*(and)?\\\\s*(\\\\()\\\\s*","beginCaptures":{"1":{"name":"keyword.operator.logic.media.less"},"2":{"name":"punctuation.definition.group.begin.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.group.less","patterns":[{"begin":"(--|(?:-?(?:(?:[a-zA-Z_]|[\\\\x{00B7}\\\\x{00C0}-\\\\x{00D6}\\\\x{00D8}-\\\\x{00F6}\\\\x{00F8}-\\\\x{037D}\\\\x{037F}-\\\\x{1FFF}\\\\x{200C}\\\\x{200D}\\\\x{203F}\\\\x{2040}\\\\x{2070}-\\\\x{218F}\\\\x{2C00}-\\\\x{2FEF}\\\\x{3001}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFFD}\\\\x{10000}-\\\\x{EFFFF}])|(?:\\\\\\\\(?:\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\s\\\\R]))))(?:(?:[-\\\\da-zA-Z_]|[\\\\x{00B7}\\\\x{00C0}-\\\\x{00D6}\\\\x{00D8}-\\\\x{00F6}\\\\x{00F8}-\\\\x{037D}\\\\x{037F}-\\\\x{1FFF}\\\\x{200C}\\\\x{200D}\\\\x{203F}\\\\x{2040}\\\\x{2070}-\\\\x{218F}\\\\x{2C00}-\\\\x{2FEF}\\\\x{3001}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFFD}\\\\x{10000}-\\\\x{EFFFF}])|(?:\\\\\\\\(?:\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\s\\\\R])))*)\\\\s*(?=[:)])","beginCaptures":{"0":{"name":"support.type.property-name.media.less"}},"end":"(((\\\\+_?)?):)|(?=\\\\))","endCaptures":{"1":{"name":"punctuation.separator.key-value.less"}}},{"match":"\\\\b(portrait|landscape|progressive|interlace)","name":"support.constant.property-value.less"},{"captures":{"1":{"name":"constant.numeric.less"},"2":{"name":"keyword.operator.arithmetic.less"},"3":{"name":"constant.numeric.less"}},"match":"\\\\s*(\\\\d+)(/)(\\\\d+)"},{"include":"#less-math"}]}]},"media-query-list":{"begin":"\\\\s*(?=[^{;])","end":"\\\\s*(?=[{;])","patterns":[{"include":"#media-query"}]},"minmax-function":{"begin":"\\\\b(minmax)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.grid.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-variables"},{"include":"#var-function"},{"include":"#length-type"},{"include":"#comma-delimiter"},{"match":"\\\\b(max-content|min-content)\\\\b","name":"support.constant.property-value.less"}]}]},"number-type":{"match":"(?:[-+]?)(?:\\\\d+\\\\.\\\\d+|\\\\.?\\\\d+)(?:[eE][-+]?\\\\d+)?","name":"constant.numeric.less"},"numeric-values":{"patterns":[{"include":"#dimensions"},{"include":"#percentage-type"},{"include":"#number-type"}]},"percentage-type":{"captures":{"1":{"name":"keyword.other.unit.less"}},"match":"(?:[-+]?)(?:\\\\d+\\\\.\\\\d+|\\\\.?\\\\d+)(?:[eE][-+]?\\\\d+)?(%)","name":"constant.numeric.less"},"property-list":{"patterns":[{"begin":"(?=(?=[^;]*)\\\\{)","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.block.end.less"}},"patterns":[{"include":"#rule-list"}]}]},"property-value-constants":{"patterns":[{"comment":"align-content, align-items, align-self, justify-content, justify-items, justify-self","match":"\\\\b(flex-start|flex-end|start|end|space-between|space-around|space-evenly|stretch|baseline|safe|unsafe|legacy|anchor-center|first|last|self-start|self-end)\\\\b","name":"support.constant.property-value.less"},{"comment":"alignment-baseline","match":"\\\\b(text-before-edge|before-edge|middle|central|text-after-edge|after-edge|ideographic|alphabetic|hanging|mathematical|top|center|bottom)\\\\b","name":"support.constant.property-value.less"},{"include":"#global-property-values"},{"include":"#cubic-bezier-function"},{"include":"#steps-function"},{"comment":"animation-composition","match":"\\\\b(?:replace|add|accumulate)\\\\b","name":"support.constant.property-value.less"},{"comment":"animation-direction","match":"\\\\b(?:normal|alternate-reverse|alternate|reverse)\\\\b","name":"support.constant.property-value.less"},{"comment":"animation-fill-mode","match":"\\\\b(?:forwards|backwards|both)\\\\b","name":"support.constant.property-value.less"},{"comment":"animation-iteration-count","match":"\\\\b(?:infinite)\\\\b","name":"support.constant.property-value.less"},{"comment":"animation-play-state","match":"\\\\b(?:running|paused)\\\\b","name":"support.constant.property-value.less"},{"comment":"animation-range, animation-range-start, animation-range-end","match":"\\\\b(?:entry-crossing|exit-crossing|entry|exit)\\\\b","name":"support.constant.property-value.less"},{"comment":"animation-timing-function","match":"\\\\b(linear|ease-in-out|ease-in|ease-out|ease|step-start|step-end)\\\\b","name":"support.constant.property-value.less"},{"match":"\\\\b(absolute|active|add|all-petite-caps|all-small-caps|all-scroll|all|alphabetic|alpha|alternate-reverse|alternate|always|annotation|antialiased|at|autohiding-scrollbar|auto|avoid-column|avoid-page|avoid-region|avoid|background-color|background-image|background-position|background-size|background-repeat|background|backwards|balance|baseline|below|bevel|bicubic|bidi-override|blink|block-line-height|block-start|block-end|block|blur|bolder|bold|border-top-left-radius|border-top-right-radius|border-bottom-left-radius|border-bottom-right-radius|border-end-end-radius|border-end-start-radius|border-start-end-radius|border-start-start-radius|border-block-start-color|border-block-start-style|border-block-start-width|border-block-start|border-block-end-color|border-block-end-style|border-block-end-width|border-block-end|border-block-color|border-block-style|border-block-width|border-block|border-inline-start-color|border-inline-start-style|border-inline-start-width|border-inline-start|border-inline-end-color|border-inline-end-style|border-inline-end-width|border-inline-end|border-inline-color|border-inline-style|border-inline-width|border-inline|border-top-color|border-top-style|border-top-width|border-top|border-right-color|border-right-style|border-right-width|border-right|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-left-color|border-left-style|border-left-width|border-left|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-image|border-color|border-style|border-width|border-radius|border-collapse|border-spacing|border|both|bottom|box-shadow|box|break-all|break-word|break-spaces|brightness|butt(on)?|capitalize|central|center|char(acter-variant)?|cjk-ideographic|clip|clone|close-quote|closest-corner|closest-side|col-resize|collapse|color-stop|color-burn|color-dodge|color|column-count|column-gap|column-reverse|column-rule-color|column-rule-width|column-rule|column-width|columns|column|common-ligatures|condensed|consider-shifts|contain|content-box|contents?|contextual|contrast|cover|crisp-edges|crispEdges|crop|crosshair|cross|darken|dashed|default|dense|device-width|diagonal-fractions|difference|disabled|discard|discretionary-ligatures|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|drop-shadow|[nsew]{1,4}-resize|ease-in-out|ease-in|ease-out|ease|element|ellipsis|embed|end|EndColorStr|evenodd|exclude-ruby|exclusion|expanded|extra-condensed|extra-expanded|farthest-corner|farthest-side|farthest|fill-box|fill-opacity|fill|filter|fit-content|fixed|flat|flex-basis|flex-end|flex-grow|flex-shrink|flex-start|flexbox|flex|flip|flood-color|font-size-adjust|font-size|font-stretch|font-weight|font|forwards|from-image|from|full-width|gap|geometricPrecision|glyphs|gradient|grayscale|grid-column-gap|grid-column|grid-row-gap|grid-row|grid-gap|grid-height|grid|groove|hand|hanging|hard-light|height|help|hidden|hide|historical-forms|historical-ligatures|horizontal-tb|horizontal|hue|ideographic|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|include-ruby|infinite|inherit|initial|inline-end|inline-size|inline-start|inline-table|inline-line-height|inline-flexbox|inline-flex|inline-box|inline-block|inline|inset|inside|inter-ideograph|inter-word|intersect|invert|isolate|isolation|italic|jis(04|78|83|90)|justify-all|justify|keep-all|larger|large|last|layout|left|letter-spacing|lighten|lighter|lighting-color|linear-gradient|linearRGB|linear|line-edge|line-height|line-through|line|lining-nums|list-item|local|loose|lowercase|lr-tb|ltr|luminosity|luminance|manual|manipulation|margin-bottom|margin-box|margin-left|margin-right|margin-top|margin|marker(-offset|s)?|match-parent|mathematical|max-(content|height|lines|size|width)|medium|middle|min-(content|height|width)|miter|mixed|move|multiply|newspaper|no-change|no-clip|no-close-quote|no-open-quote|no-common-ligatures|no-discretionary-ligatures|no-historical-ligatures|no-contextual|no-drop|no-repeat|none|nonzero|normal|not-allowed|nowrap|oblique|offset-after|offset-before|offset-end|offset-start|offset|oldstyle-nums|opacity|open-quote|optimize(Legibility|Precision|Quality|Speed)|order|ordinal|ornaments|outline-color|outline-offset|outline-width|outline|outset|outside|overline|over-edge|overlay|padding(-bottom|-box|-left|-right|-top|-box)?|page|paint(ed)?|paused|pan-(x|left|right|y|up|down)|perspective-origin|petite-caps|pixelated|pointer|pinch-zoom|pretty|pre(-line|-wrap)?|preserve-3d|preserve-breaks|preserve-spaces|preserve|progid:DXImageTransform\\\\.Microsoft\\\\.(Alpha|Blur|dropshadow|gradient|Shadow)|progress|proportional-nums|proportional-width|radial-gradient|recto|region|relative|repeating-linear-gradient|repeating-radial-gradient|repeat-x|repeat-y|repeat|replaced|reset-size|reverse|revert-layer|revert|ridge|right|round|row-gap|row-resize|row-reverse|row|rtl|ruby|running|saturate|saturation|screen|scrollbar|scroll-position|scroll|separate|sepia|scale-down|semi-condensed|semi-expanded|shape-image-threshold|shape-margin|shape-outside|show|sideways-lr|sideways-rl|sideways|simplified|size|slashed-zero|slice|small-caps|smaller|small|smooth|snap|solid|soft-light|space-around|space-between|space|span|sRGB|stable|stacked-fractions|stack|startColorStr|start|static|step-end|step-start|sticky|stop-color|stop-opacity|stretch|strict|stroke-box|stroke-dasharray|stroke-dashoffset|stroke-miterlimit|stroke-opacity|stroke-width|stroke|styleset|style|stylistic|subgrid|subpixel-antialiased|subtract|super|swash|table-caption|table-cell|table-column-group|table-footer-group|table-header-group|table-row-group|table-column|table-row|table|tabular-nums|tb-rl|text((-bottom|-(decoration|emphasis)-color|-indent|-(over|under)-edge|-shadow|-size(-adjust)?|-top)|field)?|thick|thin|titling-caps|titling-case|top|touch|to|traditional|transform-origin|transform-style|transform|ultra-condensed|ultra-expanded|under-edge|underline|unicase|unset|uppercase|upright|use-glyph-orientation|use-script|verso|vertical(-align|-ideographic|-lr|-rl|-text)?|view-box|viewport-fill-opacity|viewport-fill|visibility|visibleFill|visiblePainted|visibleStroke|visible|wait|wavy|weight|whitespace|width|word-spacing|wrap-reverse|wrap-reverse|wrap|xx?-(large|small)|z-index|zero|zoom-in|zoom-out|zoom|arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|decimal-leading-zero|decimal|devanagari|disclosure-closed|disclosure-open|disc|ethiopic-numeric|georgian|gujarati|gurmukhi|hebrew|hiragana-iroha|hiragana|japanese-formal|japanese-informal|kannada|katakana-iroha|katakana|khmer|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian|upper-latin|upper-roman)\\\\b","name":"support.constant.property-value.less"},{"match":"\\\\b(sans-serif|serif|monospace|fantasy|cursive)\\\\b(?=\\\\s*[;,\\\\n}])","name":"support.constant.font-name.less"}]},"property-values":{"patterns":[{"include":"#comment-block"},{"include":"#builtin-functions"},{"include":"#color-functions"},{"include":"#less-functions"},{"include":"#less-variables"},{"include":"#unicode-range"},{"include":"#numeric-values"},{"include":"#color-values"},{"include":"#property-value-constants"},{"include":"#less-math"},{"include":"#literal-string"},{"include":"#comma-delimiter"},{"include":"#important"}]},"pseudo-selectors":{"patterns":[{"begin":"(:)(dir)(?=\\\\()","beginCaptures":{"1":{"name":"punctuation.definition.entity.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"entity.other.attribute-name.pseudo-class.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"match":"ltr|rtl","name":"variable.parameter.dir.less"},{"include":"#less-variables"}]}]},{"begin":"(:)(lang)(?=\\\\()","beginCaptures":{"1":{"name":"punctuation.definition.entity.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"entity.other.attribute-name.pseudo-class.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-variables"},{"include":"#literal-string"},{"include":"#unquoted-string"}]}]},{"begin":"(:)(not)(?=\\\\()","beginCaptures":{"1":{"name":"punctuation.definition.entity.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"entity.other.attribute-name.pseudo-class.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#selectors"}]}]},{"begin":"(:)(nth(-last)?-(child|of-type))(?=\\\\()","beginCaptures":{"1":{"name":"punctuation.definition.entity.less"},"2":{"name":"entity.other.attribute-name.pseudo-class.less"}},"contentName":"meta.function-call.less","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"entity.other.attribute-name.pseudo-class.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","name":"meta.group.less","patterns":[{"match":"\\\\b(even|odd)\\\\b","name":"keyword.other.pseudo-class.less"},{"captures":{"1":{"name":"keyword.operator.arithmetic.less"},"2":{"name":"keyword.other.unit.less"},"4":{"name":"keyword.operator.arithmetic.less"}},"match":"(?:([-+])?(?:\\\\d+)?(n)(\\\\s*([-+])\\\\s*\\\\d+)?|[-+]?\\\\s*\\\\d+)","name":"constant.numeric.less"},{"include":"#less-math"},{"include":"#less-strings"},{"include":"#less-variable-interpolation"}]}]},{"begin":"(:)(host-context|host|has|is|not|where)(?=\\\\()","beginCaptures":{"1":{"name":"punctuation.definition.entity.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"entity.other.attribute-name.pseudo-class.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#selectors"}]}]},{"captures":{"1":{"name":"punctuation.definition.entity.less"},"2":{"name":"entity.other.attribute-name.pseudo-class.less"}},"match":"(:)(active|any-link|autofill|blank|buffering|checked|current|default|defined|disabled|empty|enabled|first-child|first-of-type|first|focus-visible|focus-within|focus|fullscreen|future|host|hover|in-range|indeterminate|invalid|last-child|last-of-type|left|local-link|link|modal|muted|only-child|only-of-type|optional|out-of-range|past|paused|picture-in-picture|placeholder-shown|playing|popover-open|read-only|read-write|required|right|root|scope|seeking|stalled|target-within|target|user-invalid|user-valid|valid|visited|volume-locked)\\\\b","name":"meta.function-call.less"},{"begin":"(::?)(highlight|part|state)(?=\\\\s*(\\\\())","beginCaptures":{"1":{"name":"punctuation.definition.entity.less"}},"comment":"::highlight()","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"entity.other.attribute-name.pseudo-element.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"match":"--|(?:-?(?:(?:[a-zA-Z_]|[\\\\x{00B7}\\\\x{00C0}-\\\\x{00D6}\\\\x{00D8}-\\\\x{00F6}\\\\x{00F8}-\\\\x{037D}\\\\x{037F}-\\\\x{1FFF}\\\\x{200C}\\\\x{200D}\\\\x{203F}\\\\x{2040}\\\\x{2070}-\\\\x{218F}\\\\x{2C00}-\\\\x{2FEF}\\\\x{3001}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFFD}\\\\x{10000}-\\\\x{EFFFF}])|(?:\\\\\\\\(?:\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\s\\\\R]))))(?:(?:[-\\\\da-zA-Z_]|[\\\\x{00B7}\\\\x{00C0}-\\\\x{00D6}\\\\x{00D8}-\\\\x{00F6}\\\\x{00F8}-\\\\x{037D}\\\\x{037F}-\\\\x{1FFF}\\\\x{200C}\\\\x{200D}\\\\x{203F}\\\\x{2040}\\\\x{2070}-\\\\x{218F}\\\\x{2C00}-\\\\x{2FEF}\\\\x{3001}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFFD}\\\\x{10000}-\\\\x{EFFFF}])|(?:\\\\\\\\(?:\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\s\\\\R])))*","name":"variable.parameter.less"},{"include":"#less-variables"}]}]},{"begin":"(::?)slotted(?=\\\\s*(\\\\())","beginCaptures":{"1":{"name":"punctuation.definition.entity.less"}},"comment":"::slotted()","contentName":"meta.function-call.less","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"entity.other.attribute-name.pseudo-element.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","name":"meta.group.less","patterns":[{"include":"#selectors"}]}]},{"captures":{"1":{"name":"punctuation.definition.entity.less"}},"comment":"defined pseudo-elements","match":"(::?)(after|backdrop|before|cue|file-selector-button|first-letter|first-line|grammar-error|marker|placeholder|selection|spelling-error|target-text|view-transition-group|view-transition-image-pair|view-transition-new|view-transition-old|view-transition)\\\\b","name":"entity.other.attribute-name.pseudo-element.less"},{"captures":{"1":{"name":"punctuation.definition.entity.less"},"2":{"name":"meta.namespace.vendor-prefix.less"}},"comment":"other possible pseudo-elements","match":"(::?)(-\\\\w+-)(--|(?:-?(?:(?:[a-zA-Z_]|[\\\\x{00B7}\\\\x{00C0}-\\\\x{00D6}\\\\x{00D8}-\\\\x{00F6}\\\\x{00F8}-\\\\x{037D}\\\\x{037F}-\\\\x{1FFF}\\\\x{200C}\\\\x{200D}\\\\x{203F}\\\\x{2040}\\\\x{2070}-\\\\x{218F}\\\\x{2C00}-\\\\x{2FEF}\\\\x{3001}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFFD}\\\\x{10000}-\\\\x{EFFFF}])|(?:\\\\\\\\(?:\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\s\\\\R]))))(?:(?:[-\\\\da-zA-Z_]|[\\\\x{00B7}\\\\x{00C0}-\\\\x{00D6}\\\\x{00D8}-\\\\x{00F6}\\\\x{00F8}-\\\\x{037D}\\\\x{037F}-\\\\x{1FFF}\\\\x{200C}\\\\x{200D}\\\\x{203F}\\\\x{2040}\\\\x{2070}-\\\\x{218F}\\\\x{2C00}-\\\\x{2FEF}\\\\x{3001}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFFD}\\\\x{10000}-\\\\x{EFFFF}])|(?:\\\\\\\\(?:\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\s\\\\R])))*)\\\\b","name":"entity.other.attribute-name.pseudo-element.less"}]},"qualified-name":{"captures":{"1":{"name":"entity.name.constant.less"},"2":{"name":"entity.name.namespace.wildcard.less"},"3":{"name":"punctuation.separator.namespace.less"}},"match":"(?:(-?(?:[[-\\\\w][^\\\\x{00}-\\\\x{7F}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))(?:[[_a-zA-Z][^\\\\x{00}-\\\\x{7F}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))*)|(\\\\*))?([|])(?!=)"},"regexp-function":{"begin":"\\\\b(regexp)(?=\\\\()","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"support.function.regexp.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","name":"meta.function-call.less","patterns":[{"include":"#literal-string"}]}]},"relative-color":{"patterns":[{"match":"from","name":"keyword.other.less"},{"match":"\\\\b[hslawbch]\\\\b","name":"keyword.other.less"}]},"rule-list":{"patterns":[{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.block.begin.less"}},"end":"(?=\\\\s*\\\\})","name":"meta.property-list.less","patterns":[{"captures":{"1":{"name":"punctuation.terminator.rule.less"}},"match":"\\\\s*(;)|(?=[})])"},{"include":"#rule-list-body"},{"include":"#less-extend"}]}]},"rule-list-body":{"patterns":[{"include":"#comment-block"},{"include":"#comment-line"},{"include":"#at-rules"},{"include":"#less-variable-assignment"},{"begin":"(?=[-\\\\w]*?@\\\\{.*\\\\}[-\\\\w]*?\\\\s*:[^;{(]*(?=[;})]))","end":"(?=\\\\s*(;)|(?=[})]))","patterns":[{"begin":"(?=[^\\\\s:])","end":"(?=(((\\\\+_?)?):)[\\\\s\\\\t]*)","name":"support.type.property-name.less","patterns":[{"include":"#less-variable-interpolation"}]},{"begin":"(((\\\\+_?)?):)(?=[\\\\s\\\\t]*)","beginCaptures":{"1":{"name":"punctuation.separator.key-value.less"}},"contentName":"support.type.property-name.less","end":"(?=\\\\s*(;)|(?=[})]))","patterns":[{"include":"#property-values"}]}]},{"begin":"(?=[-a-z])","end":"$|(?![-a-z])","patterns":[{"include":"#custom-property-name"},{"begin":"(-[\\\\w-]+?-)((?:(?:[a-zA-Z_]|[\\\\x{00B7}\\\\x{00C0}-\\\\x{00D6}\\\\x{00D8}-\\\\x{00F6}\\\\x{00F8}-\\\\x{037D}\\\\x{037F}-\\\\x{1FFF}\\\\x{200C}\\\\x{200D}\\\\x{203F}\\\\x{2040}\\\\x{2070}-\\\\x{218F}\\\\x{2C00}-\\\\x{2FEF}\\\\x{3001}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFFD}\\\\x{10000}-\\\\x{EFFFF}])|(?:\\\\\\\\(?:\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\s\\\\R])))(?:(?:[-\\\\da-zA-Z_]|[\\\\x{00B7}\\\\x{00C0}-\\\\x{00D6}\\\\x{00D8}-\\\\x{00F6}\\\\x{00F8}-\\\\x{037D}\\\\x{037F}-\\\\x{1FFF}\\\\x{200C}\\\\x{200D}\\\\x{203F}\\\\x{2040}\\\\x{2070}-\\\\x{218F}\\\\x{2C00}-\\\\x{2FEF}\\\\x{3001}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFFD}\\\\x{10000}-\\\\x{EFFFF}])|(?:\\\\\\\\(?:\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\s\\\\R])))*)\\\\b","beginCaptures":{"0":{"name":"support.type.property-name.less"},"1":{"name":"meta.namespace.vendor-prefix.less"}},"comment":"vendor-prefixed properties","end":"\\\\s*(;)|(?=[})])","endCaptures":{"1":{"name":"punctuation.terminator.rule.less"}},"patterns":[{"begin":"(((\\\\+_?)?):)(?=[\\\\s\\\\t]*)","beginCaptures":{"1":{"name":"punctuation.separator.key-value.less"}},"contentName":"meta.property-value.less","end":"(?=\\\\s*(;)|(?=[})]))","patterns":[{"include":"#property-values"},{"match":"[\\\\w-]+","name":"support.constant.property-value.less"}]}]},{"include":"#filter-function"},{"begin":"\\\\b(border((-(bottom|top)-(left|right))|((-(start|end)){2}))?-radius|(border-image(?!-)))\\\\b","beginCaptures":{"0":{"name":"support.type.property-name.less"}},"comment":"border-radius and border-image properties utilize a slash as a separator","end":"\\\\s*(;)|(?=[})])","endCaptures":{"1":{"name":"punctuation.terminator.rule.less"}},"patterns":[{"begin":"(((\\\\+_?)?):)(?=[\\\\s\\\\t]*)","beginCaptures":{"1":{"name":"punctuation.separator.key-value.less"}},"contentName":"meta.property-value.less","end":"(?=\\\\s*(;)|(?=[})]))","patterns":[{"include":"#value-separator"},{"include":"#property-values"}]}]},{"captures":{"1":{"name":"keyword.other.custom-property.prefix.less"},"2":{"name":"support.type.custom-property.name.less"}},"match":"\\\\b(var-)(-?(?:[[-\\\\w][^\\\\x{00}-\\\\x{9f}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))(?:[[_a-zA-Z][^\\\\x{00}-\\\\x{9f}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))*)(?=\\\\s)","name":"invalid.deprecated.custom-property.less"},{"begin":"\\\\bfont(-family)?(?!-)\\\\b","beginCaptures":{"0":{"name":"support.type.property-name.less"}},"end":"\\\\s*(;)|(?=[})])","endCaptures":{"1":{"name":"punctuation.terminator.rule.less"}},"name":"meta.property-name.less","patterns":[{"captures":{"1":{"name":"punctuation.separator.key-value.less"},"4":{"name":"meta.property-value.less"}},"match":"(((\\\\+_?)?):)([\\\\s\\\\t]*)"},{"include":"#property-values"},{"match":"-?(?:[[_a-zA-Z][^\\\\x{00}-\\\\x{9f}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))(?:[[-\\\\w][^\\\\x{00}-\\\\x{9f}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))*(\\\\s+-?(?:[[_a-zA-Z][^\\\\x{00}-\\\\x{9f}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))(?:[[-\\\\w][^\\\\x{00}-\\\\x{9f}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))*)*","name":"string.unquoted.less"},{"match":",","name":"punctuation.separator.less"}]},{"begin":"\\\\banimation-timeline\\\\b","beginCaptures":{"0":{"name":"support.type.property-name.less"}},"end":"\\\\s*(;)|(?=[})])","endCaptures":{"1":{"name":"punctuation.terminator.rule.less"}},"patterns":[{"begin":"(((\\\\+_?)?):)(?=[\\\\s\\\\t]*)","beginCaptures":{"1":{"name":"punctuation.separator.key-value.less"}},"contentName":"meta.property-value.less","end":"(?=\\\\s*(;)|(?=[})]))","patterns":[{"include":"#comment-block"},{"include":"#custom-property-name"},{"include":"#scroll-function"},{"include":"#view-function"},{"include":"#property-values"},{"include":"#less-variables"},{"include":"#arbitrary-repetition"},{"include":"#important"}]}]},{"begin":"\\\\banimation(?:-name)?(?=(?:\\\\+_?)?:)\\\\b","beginCaptures":{"0":{"name":"support.type.property-name.less"}},"end":"\\\\s*(;)|(?=[})])","endCaptures":{"1":{"name":"punctuation.terminator.rule.less"}},"patterns":[{"begin":"(((\\\\+_?)?):)(?=[\\\\s\\\\t]*)","beginCaptures":{"1":{"name":"punctuation.separator.key-value.less"}},"contentName":"meta.property-value.less","end":"(?=\\\\s*(;)|(?=[})]))","patterns":[{"include":"#comment-block"},{"include":"#builtin-functions"},{"include":"#less-functions"},{"include":"#less-variables"},{"include":"#numeric-values"},{"include":"#property-value-constants"},{"match":"-?(?:[_a-zA-Z]|[^\\\\x{00}-\\\\x{7F}]|(?:(:?\\\\\\\\[0-9a-f]{1,6}(\\\\r\\\\n|[\\\\s\\\\t\\\\r\\\\n\\\\f])?)|\\\\\\\\[^\\\\r\\\\n\\\\f0-9a-f]))(?:[-_a-zA-Z0-9]|[^\\\\x{00}-\\\\x{7F}]|(?:(:?\\\\\\\\[0-9a-f]{1,6}(\\\\r\\\\n|[\\\\t\\\\r\\\\n\\\\f])?)|\\\\\\\\[^\\\\r\\\\n\\\\f0-9a-f]))*","name":"variable.other.constant.animation-name.less string.unquoted.less"},{"include":"#less-math"},{"include":"#arbitrary-repetition"},{"include":"#important"}]}]},{"begin":"\\\\b(transition(-(property|duration|delay|timing-function))?)\\\\b","beginCaptures":{"1":{"name":"support.type.property-name.less"}},"end":"\\\\s*(;)|(?=[})])","endCaptures":{"1":{"name":"punctuation.terminator.rule.less"}},"patterns":[{"begin":"(((\\\\+_?)?):)(?=[\\\\s\\\\t]*)","beginCaptures":{"1":{"name":"punctuation.separator.key-value.less"}},"contentName":"meta.property-value.less","end":"(?=\\\\s*(;)|(?=[})]))","patterns":[{"include":"#time-type"},{"include":"#property-values"},{"include":"#cubic-bezier-function"},{"include":"#steps-function"},{"include":"#arbitrary-repetition"}]}]},{"begin":"\\\\b(?:backdrop-)?filter\\\\b","beginCaptures":{"0":{"name":"support.type.property-name.less"}},"end":"\\\\s*(;)|(?=[})])","endCaptures":{"1":{"name":"punctuation.terminator.rule.less"}},"name":"meta.property-name.less","patterns":[{"captures":{"1":{"name":"punctuation.separator.key-value.less"},"4":{"name":"meta.property-value.less"}},"match":"(((\\\\+_?)?):)([\\\\s\\\\t]*)"},{"match":"\\\\b(inherit|initial|unset|none)\\\\b","name":"meta.property-value.less"},{"include":"#filter-functions"}]},{"begin":"\\\\bwill-change\\\\b","beginCaptures":{"0":{"name":"support.type.property-name.less"}},"end":"\\\\s*(;)|(?=[})])","endCaptures":{"1":{"name":"punctuation.terminator.rule.less"}},"name":"meta.property-name.less","patterns":[{"captures":{"1":{"name":"punctuation.separator.key-value.less"},"4":{"name":"meta.property-value.less"}},"match":"(((\\\\+_?)?):)([\\\\s\\\\t]*)"},{"match":"unset|initial|inherit|will-change|auto|scroll-position|contents","name":"invalid.illegal.property-value.less"},{"match":"-?(?:[[-\\\\w][^\\\\x{00}-\\\\x{9f}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))(?:[[_a-zA-Z][^\\\\x{00}-\\\\x{9f}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))*","name":"support.constant.property-value.less"},{"include":"#arbitrary-repetition"}]},{"begin":"\\\\bcounter-(increment|(re)?set)\\\\b","beginCaptures":{"0":{"name":"support.type.property-name.less"}},"end":"\\\\s*(;)|(?=[})])","endCaptures":{"1":{"name":"punctuation.terminator.rule.less"}},"name":"meta.property-name.less","patterns":[{"captures":{"1":{"name":"punctuation.separator.key-value.less"},"4":{"name":"meta.property-value.less"}},"match":"(((\\\\+_?)?):)([\\\\s\\\\t]*)"},{"match":"-?(?:[[-\\\\w][^\\\\x{00}-\\\\x{9f}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))(?:[[_a-zA-Z][^\\\\x{00}-\\\\x{9f}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))*","name":"entity.name.constant.counter-name.less"},{"include":"#integer-type"},{"match":"unset|initial|inherit|auto","name":"invalid.illegal.property-value.less"}]},{"begin":"\\\\bcontainer(?:-name)?(?=\\\\s*?:)","end":"\\\\s*(;)|(?=[})])","endCaptures":{"1":{"name":"punctuation.terminator.rule.less"}},"name":"support.type.property-name.less","patterns":[{"begin":"(((\\\\+_?)?):)(?=[\\\\s\\\\t]*)","beginCaptures":{"1":{"name":"punctuation.separator.key-value.less"}},"contentName":"meta.property-value.less","end":"(?=\\\\s*(;)|(?=[})]))","patterns":[{"match":"\\\\bdefault\\\\b","name":"invalid.illegal.property-value.less"},{"include":"#global-property-values"},{"include":"#custom-property-name"},{"contentName":"variable.other.constant.container-name.less","match":"--|(?:-?(?:(?:[a-zA-Z_]|[\\\\x{00B7}\\\\x{00C0}-\\\\x{00D6}\\\\x{00D8}-\\\\x{00F6}\\\\x{00F8}-\\\\x{037D}\\\\x{037F}-\\\\x{1FFF}\\\\x{200C}\\\\x{200D}\\\\x{203F}\\\\x{2040}\\\\x{2070}-\\\\x{218F}\\\\x{2C00}-\\\\x{2FEF}\\\\x{3001}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFFD}\\\\x{10000}-\\\\x{EFFFF}])|(?:\\\\\\\\(?:\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\s\\\\R]))))(?:(?:[-\\\\da-zA-Z_]|[\\\\x{00B7}\\\\x{00C0}-\\\\x{00D6}\\\\x{00D8}-\\\\x{00F6}\\\\x{00F8}-\\\\x{037D}\\\\x{037F}-\\\\x{1FFF}\\\\x{200C}\\\\x{200D}\\\\x{203F}\\\\x{2040}\\\\x{2070}-\\\\x{218F}\\\\x{2C00}-\\\\x{2FEF}\\\\x{3001}-\\\\x{D7FF}\\\\x{F900}-\\\\x{FDCF}\\\\x{FDF0}-\\\\x{FFFD}\\\\x{10000}-\\\\x{EFFFF}])|(?:\\\\\\\\(?:\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\s\\\\R])))*","name":"support.constant.property-value.less"},{"include":"#property-values"}]}]},{"match":"\\\\b(accent-height|align-content|align-items|align-self|alignment-baseline|all|animation-timing-function|animation-range-start|animation-range-end|animation-range|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation-composition|animation|appearance|ascent|aspect-ratio|azimuth|backface-visibility|background-size|background-repeat-y|background-repeat-x|background-repeat|background-position-y|background-position-x|background-position|background-origin|background-image|background-color|background-clip|background-blend-mode|background-attachment|background|baseline-shift|begin|bias|blend-mode|border-top-left-radius|border-top-right-radius|border-bottom-left-radius|border-bottom-right-radius|border-end-end-radius|border-end-start-radius|border-start-end-radius|border-start-start-radius|border-block-start-color|border-block-start-style|border-block-start-width|border-block-start|border-block-end-color|border-block-end-style|border-block-end-width|border-block-end|border-block-color|border-block-style|border-block-width|border-block|border-inline-start-color|border-inline-start-style|border-inline-start-width|border-inline-start|border-inline-end-color|border-inline-end-style|border-inline-end-width|border-inline-end|border-inline-color|border-inline-style|border-inline-width|border-inline|border-top-color|border-top-style|border-top-width|border-top|border-right-color|border-right-style|border-right-width|border-right|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-left-color|border-left-style|border-left-width|border-left|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-image|border-color|border-style|border-width|border-radius|border-collapse|border-spacing|border|bottom|box-(align|decoration-break|direction|flex|ordinal-group|orient|pack|shadow|sizing)|break-(after|before|inside)|caption-side|clear|clip-path|clip-rule|clip|color(-(interpolation(-filters)?|profile|rendering))?|columns|column-(break-before|count|fill|gap|(rule(-(color|style|width))?)|span|width)|container-name|container-type|container|contain-intrinsic-block-size|contain-intrinsic-inline-size|contain-intrinsic-height|contain-intrinsic-size|contain-intrinsic-width|contain|content|counter-(increment|reset)|cursor|[cdf][xy]|direction|display|divisor|dominant-baseline|dur|elevation|empty-cells|enable-background|end|fallback|fill(-(opacity|rule))?|filter|flex(-(align|basis|direction|flow|grow|item-align|line-pack|negative|order|pack|positive|preferred-size|shrink|wrap))?|float|flood-(color|opacity)|font-display|font-family|font-feature-settings|font-kerning|font-language-override|font-size(-adjust)?|font-smoothing|font-stretch|font-style|font-synthesis|font-variant(-(alternates|caps|east-asian|ligatures|numeric|position))?|font-weight|font|fr|((column|row)-)?gap|glyph-orientation-(horizontal|vertical)|grid-(area|gap)|grid-auto-(columns|flow|rows)|grid-(column|row)(-(end|gap|start))?|grid-template(-(areas|columns|rows))?|grid|height|hyphens|image-(orientation|rendering|resolution)|inset(-(block|inline))?(-(start|end))?|isolation|justify-content|justify-items|justify-self|kerning|left|letter-spacing|lighting-color|line-(box-contain|break|clamp|height)|list-style(-(image|position|type))?|(margin|padding)(-(bottom|left|right|top)|(-(block|inline)?(-(end|start))?))?|marker(-(end|mid|start))?|mask(-(clip||composite|image|origin|position|repeat|size|type))?|(max|min)-(height|width)|mix-blend-mode|nbsp-mode|negative|object-(fit|position)|opacity|operator|order|orphans|outline(-(color|offset|style|width))?|overflow(-((inline|block)|scrolling|wrap|x|y))?|overscroll-behavior(-block|-(inline|x|y))?|pad(ding(-(bottom|left|right|top))?)?|page(-break-(after|before|inside))?|paint-order|pause(-(after|before))?|perspective(-origin(-(x|y))?)?|pitch(-range)?|place-content|place-self|pointer-events|position|prefix|quotes|range|resize|right|rotate|scale|scroll-behavior|shape-(image-threshold|margin|outside|rendering)|size|speak(-as)?|src|stop-(color|opacity)|stroke(-(dash(array|offset)|line(cap|join)|miterlimit|opacity|width))?|suffix|symbols|system|tab-size|table-layout|tap-highlight-color|text-align(-last)?|text-decoration(-(color|line|style))?|text-emphasis(-(color|position|style))?|text-(anchor|fill-color|height|indent|justify|orientation|overflow|rendering|size-adjust|shadow|transform|underline-position|wrap)|top|touch-action|transform(-origin(-(x|y))?)|transform(-style)?|transition(-(delay|duration|property|timing-function))?|translate|unicode-(bidi|range)|user-(drag|select)|vertical-align|visibility|white-space(-collapse)?|widows|width|will-change|word-(break|spacing|wrap)|writing-mode|z-index|zoom)\\\\b","name":"support.type.property-name.less"},{"match":"\\\\b(((contain-intrinsic|max|min)-)?(block|inline)?-size)\\\\b","name":"support.type.property-name.less"},{"include":"$self"}]},{"begin":"\\\\b((?:(?:\\\\+_?)?):)([\\\\s\\\\t]*)","beginCaptures":{"1":{"name":"punctuation.separator.key-value.less"},"2":{"name":"meta.property-value.less"}},"captures":{"1":{"name":"punctuation.separator.key-value.less"},"4":{"name":"meta.property-value.less"}},"contentName":"meta.property-value.less","end":"\\\\s*(;)|(?=[})])","endCaptures":{"1":{"name":"punctuation.terminator.rule.less"}},"patterns":[{"include":"#property-values"}]},{"include":"$self"}]},"scroll-function":{"begin":"\\\\b(scroll)(\\\\()","beginCaptures":{"1":{"name":"support.function.scroll.less"},"2":{"name":"punctuation.definition.group.begin.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"match":"root|nearest|self","name":"support.constant.scroller.less"},{"match":"block|inline|x|y","name":"support.constant.axis.less"},{"include":"#less-variables"},{"include":"#var-function"}]},"selector":{"patterns":[{"begin":"(?=[>~+/\\\\.*#a-zA-Z\\\\[&]|(\\\\:{1,2}[^\\\\s])|@\\\\{)","contentName":"meta.selector.less","end":"(?=@(?!\\\\{)|[{;])","patterns":[{"include":"#comment-line"},{"include":"#selectors"},{"include":"#less-namespace-accessors"},{"include":"#less-variable-interpolation"},{"include":"#important"}]}]},"selectors":{"patterns":[{"match":"\\\\b([a-z](?:(?:[-_a-z0-9\\\\x{00B7}]|\\\\\\\\\\\\.|[[\\\\x{00C0}-\\\\x{00D6}][\\\\x{00D8}-\\\\x{00F6}][\\\\x{00F8}-\\\\x{02FF}][\\\\x{0300}-\\\\x{037D}][\\\\x{037F}-\\\\x{1FFF}][\\\\x{200C}-\\\\x{200D}][\\\\x{203F}-\\\\x{2040}][\\\\x{2070}-\\\\x{218F}][\\\\x{2C00}-\\\\x{2FEF}][\\\\x{3001}-\\\\x{D7FF}][\\\\x{F900}-\\\\x{FDCF}][\\\\x{FDF0}-\\\\x{FFFD}][\\\\x{10000}-\\\\x{EFFFF}]]))*-(?:(?:[-_a-z0-9\\\\x{00B7}]|\\\\\\\\\\\\.|[[\\\\x{00C0}-\\\\x{00D6}][\\\\x{00D8}-\\\\x{00F6}][\\\\x{00F8}-\\\\x{02FF}][\\\\x{0300}-\\\\x{037D}][\\\\x{037F}-\\\\x{1FFF}][\\\\x{200C}-\\\\x{200D}][\\\\x{203F}-\\\\x{2040}][\\\\x{2070}-\\\\x{218F}][\\\\x{2C00}-\\\\x{2FEF}][\\\\x{3001}-\\\\x{D7FF}][\\\\x{F900}-\\\\x{FDCF}][\\\\x{FDF0}-\\\\x{FFFD}][\\\\x{10000}-\\\\x{EFFFF}]]))*)\\\\b","name":"entity.name.tag.custom.less"},{"match":"\\\\b(a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdi|bdo|big|blockquote|body|br|button|canvas|caption|circle|cite|clipPath|code|col|colgroup|content|data|dataList|dd|defs|del|details|dfn|dialog|dir|div|dl|dt|element|ellipse|em|embed|eventsource|fieldset|figcaption|figure|filter|footer|foreignObject|form|frame|frameset|g|glyph|glyphRef|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|image|img|input|ins|isindex|kbd|keygen|label|legend|li|line|linearGradient|link|main|map|mark|marker|mask|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|path|pattern|picture|polygon|polyline|pre|progress|q|radialGradient|rect|rp|ruby|rt|rtc|s|samp|script|section|select|shadow|small|source|span|stop|strike|strong|style|sub|summary|sup|svg|switch|symbol|table|tbody|td|template|textarea|textPath|tfoot|th|thead|time|title|tr|track|tref|tspan|tt|u|ul|use|var|video|wbr|xmp)\\\\b","name":"entity.name.tag.less"},{"begin":"(\\\\.)","beginCaptures":{"1":{"name":"punctuation.definition.entity.less"}},"end":"(?![-\\\\w]|[^\\\\x{00}-\\\\x{9f}]|\\\\\\\\([A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9])|(\\\\@(?=\\\\{)))","name":"entity.other.attribute-name.class.less","patterns":[{"include":"#less-variable-interpolation"}]},{"begin":"(#)","beginCaptures":{"1":{"name":"punctuation.definition.entity.less"}},"end":"(?![-\\\\w]|[^\\\\x{00}-\\\\x{9f}]|\\\\\\\\([A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9])|(\\\\@(?=\\\\{)))","name":"entity.other.attribute-name.id.less","patterns":[{"include":"#less-variable-interpolation"}]},{"begin":"(&)","beginCaptures":{"1":{"name":"punctuation.definition.entity.less"}},"contentName":"entity.other.attribute-name.parent.less","end":"(?![-\\\\w]|[^\\\\x{00}-\\\\x{9f}]|\\\\\\\\([A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9])|(\\\\@(?=\\\\{)))","name":"entity.other.attribute-name.parent.less","patterns":[{"include":"#less-variable-interpolation"},{"include":"#selectors"}]},{"include":"#pseudo-selectors"},{"include":"#less-extend"},{"match":"(?!\\\\+_?:)(?:>{1,3}|[~+])(?![>~+;}])","name":"punctuation.separator.combinator.less"},{"match":"((?:>{1,3}|[~+])){2,}","name":"invalid.illegal.combinator.less"},{"match":"\\\\/deep\\\\/","name":"invalid.illegal.combinator.less"},{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.section.braces.begin.less"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.section.braces.end.less"}},"name":"meta.attribute-selector.less","patterns":[{"include":"#less-variable-interpolation"},{"include":"#qualified-name"},{"match":"(-?(?:[[_a-zA-Z][^\\\\x{00}-\\\\x{7F}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))(?:[[-\\\\w][^\\\\x{00}-\\\\x{7F}]]|(?:\\\\\\\\\\\\h{1,6}[\\\\s\\\\t\\\\n\\\\f]?|\\\\\\\\[^\\\\n\\\\f\\\\h]))*)","name":"entity.other.attribute-name.less"},{"begin":"\\\\s*([~*|^$]?=)\\\\s*","beginCaptures":{"1":{"name":"keyword.operator.attribute-selector.less"}},"end":"(?=(\\\\s|\\\\]))","patterns":[{"include":"#less-variable-interpolation"},{"match":"[^\\\\s\\\\]\\\\['\\"]","name":"string.unquoted.less"},{"include":"#literal-string"},{"captures":{"1":{"name":"keyword.other.less"}},"match":"(?:\\\\s+([iI]))?"},{"match":"\\\\]","name":"punctuation.definition.entity.less"}]}]},{"include":"#arbitrary-repetition"},{"match":"\\\\*","name":"entity.name.tag.wildcard.less"}]},"shape-functions":{"patterns":[{"begin":"\\\\b(rect)(?=\\\\()","beginCaptures":{"0":{"name":"support.function.shape.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"match":"\\\\bauto\\\\b","name":"support.constant.property-value.less"},{"include":"#length-type"},{"include":"#comma-delimiter"}]}]},{"begin":"\\\\b(inset)(?=\\\\()","beginCaptures":{"0":{"name":"support.function.shape.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"match":"\\\\bround\\\\b","name":"keyword.other.less"},{"include":"#length-type"},{"include":"#percentage-type"}]}]},{"begin":"\\\\b(circle|ellipse)(?=\\\\()","beginCaptures":{"0":{"name":"support.function.shape.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"match":"\\\\bat\\\\b","name":"keyword.other.less"},{"match":"\\\\b(top|right|bottom|left|center|closest-side|farthest-side)\\\\b","name":"support.constant.property-value.less"},{"include":"#length-type"},{"include":"#percentage-type"}]}]},{"begin":"\\\\b(polygon)(?=\\\\()","beginCaptures":{"0":{"name":"support.function.shape.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"match":"\\\\b(nonzero|evenodd)\\\\b","name":"support.constant.property-value.less"},{"include":"#length-type"},{"include":"#percentage-type"}]}]}]},"steps-function":{"begin":"\\\\b(steps)(\\\\()","beginCaptures":{"1":{"name":"support.function.timing.less"},"2":{"name":"punctuation.definition.group.begin.less"}},"contentName":"meta.group.less","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"match":"jump-start|jump-end|jump-none|jump-both|start|end","name":"support.constant.step-position.less"},{"include":"#comma-delimiter"},{"include":"#integer-type"},{"include":"#less-variables"},{"include":"#var-function"},{"include":"#calc-function"}]},"string-content":{"patterns":[{"include":"#less-variable-interpolation"},{"match":"\\\\\\\\\\\\s*\\\\n","name":"constant.character.escape.newline.less"},{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.less"}]},"style-function":{"begin":"\\\\b(style)(?=\\\\()","beginCaptures":{"0":{"name":"support.function.style.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#rule-list-body"}]}]},"symbols-function":{"begin":"\\\\b(symbols)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.counter.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"match":"\\\\b(cyclic|numeric|alphabetic|symbolic|fixed)\\\\b","name":"support.constant.symbol-type.less"},{"include":"#comma-delimiter"},{"include":"#literal-string"},{"include":"#image-type"}]}]},"time-type":{"captures":{"1":{"name":"keyword.other.unit.less"}},"match":"(?i:[-+]?(?:(?:\\\\d*\\\\.\\\\d+(?:[eE](?:[-+]?\\\\d+))*)|(?:[-+]?\\\\d+))(s|ms))\\\\b","name":"constant.numeric.less"},"transform-functions":{"patterns":[{"begin":"\\\\b(matrix3d|scale3d|matrix|scale)(?=\\\\()","beginCaptures":{"0":{"name":"support.function.transform.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#comma-delimiter"},{"include":"#number-type"},{"include":"#less-variables"},{"include":"#var-function"}]}]},{"begin":"\\\\b(translate(3d)?)(?=\\\\()","beginCaptures":{"0":{"name":"support.function.transform.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#comma-delimiter"},{"include":"#percentage-type"},{"include":"#length-type"},{"include":"#number-type"},{"include":"#less-variables"},{"include":"#var-function"}]}]},{"begin":"\\\\b(translate[XY])(?=\\\\()","beginCaptures":{"0":{"name":"support.function.transform.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#percentage-type"},{"include":"#length-type"},{"include":"#number-type"},{"include":"#less-variables"},{"include":"#var-function"}]}]},{"begin":"\\\\b(rotate[XYZ]?|skew[XY])(?=\\\\()","beginCaptures":{"0":{"name":"support.function.transform.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#angle-type"},{"include":"#less-variables"},{"include":"#calc-function"},{"include":"#var-function"}]}]},{"begin":"\\\\b(skew)(?=\\\\()","beginCaptures":{"0":{"name":"support.function.transform.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#comma-delimiter"},{"include":"#angle-type"},{"include":"#less-variables"},{"include":"#calc-function"},{"include":"#var-function"}]}]},{"begin":"\\\\b(translateZ|perspective)(?=\\\\()","beginCaptures":{"0":{"name":"support.function.transform.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#length-type"},{"include":"#less-variables"},{"include":"#calc-function"},{"include":"#var-function"}]}]},{"begin":"\\\\b(rotate3d)(?=\\\\()","beginCaptures":{"0":{"name":"support.function.transform.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#comma-delimiter"},{"include":"#angle-type"},{"include":"#number-type"},{"include":"#less-variables"},{"include":"#calc-function"},{"include":"#var-function"}]}]},{"begin":"\\\\b(scale[XYZ])(?=\\\\()","beginCaptures":{"0":{"name":"support.function.transform.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#comma-delimiter"},{"include":"#number-type"},{"include":"#less-variables"},{"include":"#calc-function"},{"include":"#var-function"}]}]}]},"unicode-range":{"captures":{"1":{"name":"support.constant.unicode-range.prefix.less"},"2":{"name":"constant.codepoint-range.less"},"3":{"name":"punctuation.section.range.less"}},"match":"(?i)(u\\\\+)([0-9a-f?]{1,6}(?:(-)[0-9a-f]{1,6})?)","name":"support.unicode-range.less"},"unquoted-string":{"match":"[^\\\\s'\\"]","name":"string.unquoted.less"},"url-function":{"begin":"\\\\b(url)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.url.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#less-variables"},{"include":"#literal-string"},{"include":"#unquoted-string"},{"include":"#var-function"}]}]},"value-separator":{"captures":{"1":{"name":"punctuation.separator.less"}},"match":"\\\\s*(/)\\\\s*"},"var-function":{"begin":"\\\\b(var)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.var.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"include":"#comma-delimiter"},{"include":"#custom-property-name"},{"include":"#less-variables"},{"include":"#property-values"}]}]},"view-function":{"begin":"\\\\b(view)(?=\\\\()","beginCaptures":{"1":{"name":"support.function.view.less"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.end.less"}},"name":"meta.function-call.less","patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.begin.less"}},"end":"(?=\\\\))","patterns":[{"match":"block|inline|x|y|auto","name":"support.constant.property-value.less"},{"include":"#percentage-type"},{"include":"#length-type"},{"include":"#less-variables"},{"include":"#var-function"},{"include":"#calc-function"},{"include":"#arbitrary-repetition"}]}]}},"scopeName":"source.css.less"}`)),n=[e];export{n as default}; ================================================ FILE: jesse/static/_nuxt/BfHTSMKl.js ================================================ const e=Object.freeze(JSON.parse('{"colors":{"activityBar.activeBorder":"#80CBC4","activityBar.background":"#212121","activityBar.border":"#21212160","activityBar.dropBackground":"#f0717880","activityBar.foreground":"#EEFFFF","activityBarBadge.background":"#80CBC4","activityBarBadge.foreground":"#000000","badge.background":"#00000030","badge.foreground":"#545454","breadcrumb.activeSelectionForeground":"#80CBC4","breadcrumb.background":"#212121","breadcrumb.focusForeground":"#EEFFFF","breadcrumb.foreground":"#676767","breadcrumbPicker.background":"#212121","button.background":"#61616150","button.foreground":"#ffffff","debugConsole.errorForeground":"#f07178","debugConsole.infoForeground":"#89DDFF","debugConsole.warningForeground":"#FFCB6B","debugToolBar.background":"#212121","diffEditor.insertedTextBackground":"#89DDFF20","diffEditor.removedTextBackground":"#ff9cac20","dropdown.background":"#212121","dropdown.border":"#FFFFFF10","editor.background":"#212121","editor.findMatchBackground":"#000000","editor.findMatchBorder":"#80CBC4","editor.findMatchHighlight":"#EEFFFF","editor.findMatchHighlightBackground":"#00000050","editor.findMatchHighlightBorder":"#ffffff30","editor.findRangeHighlightBackground":"#FFCB6B30","editor.foreground":"#EEFFFF","editor.lineHighlightBackground":"#00000050","editor.lineHighlightBorder":"#00000000","editor.rangeHighlightBackground":"#FFFFFF0d","editor.selectionBackground":"#61616150","editor.selectionHighlightBackground":"#FFCC0020","editor.wordHighlightBackground":"#ff9cac30","editor.wordHighlightStrongBackground":"#C3E88D30","editorBracketMatch.background":"#212121","editorBracketMatch.border":"#FFCC0050","editorCursor.foreground":"#FFCC00","editorError.foreground":"#f0717870","editorGroup.border":"#00000030","editorGroup.dropBackground":"#f0717880","editorGroup.focusedEmptyBorder":"#f07178","editorGroupHeader.tabsBackground":"#212121","editorGutter.addedBackground":"#C3E88D60","editorGutter.deletedBackground":"#f0717860","editorGutter.modifiedBackground":"#82AAFF60","editorHoverWidget.background":"#212121","editorHoverWidget.border":"#FFFFFF10","editorIndentGuide.activeBackground":"#424242","editorIndentGuide.background":"#42424270","editorInfo.foreground":"#82AAFF70","editorLineNumber.activeForeground":"#676767","editorLineNumber.foreground":"#424242","editorLink.activeForeground":"#EEFFFF","editorMarkerNavigation.background":"#EEFFFF05","editorOverviewRuler.border":"#212121","editorOverviewRuler.errorForeground":"#f0717840","editorOverviewRuler.findMatchForeground":"#80CBC4","editorOverviewRuler.infoForeground":"#82AAFF40","editorOverviewRuler.warningForeground":"#FFCB6B40","editorRuler.foreground":"#424242","editorSuggestWidget.background":"#212121","editorSuggestWidget.border":"#FFFFFF10","editorSuggestWidget.foreground":"#EEFFFF","editorSuggestWidget.highlightForeground":"#80CBC4","editorSuggestWidget.selectedBackground":"#00000050","editorWarning.foreground":"#FFCB6B70","editorWhitespace.foreground":"#EEFFFF40","editorWidget.background":"#212121","editorWidget.border":"#80CBC4","editorWidget.resizeBorder":"#80CBC4","extensionBadge.remoteForeground":"#EEFFFF","extensionButton.prominentBackground":"#C3E88D90","extensionButton.prominentForeground":"#EEFFFF","extensionButton.prominentHoverBackground":"#C3E88D","focusBorder":"#FFFFFF00","foreground":"#EEFFFF","gitDecoration.conflictingResourceForeground":"#FFCB6B90","gitDecoration.deletedResourceForeground":"#f0717890","gitDecoration.ignoredResourceForeground":"#67676790","gitDecoration.modifiedResourceForeground":"#82AAFF90","gitDecoration.untrackedResourceForeground":"#C3E88D90","input.background":"#2B2B2B","input.border":"#FFFFFF10","input.foreground":"#EEFFFF","input.placeholderForeground":"#EEFFFF60","inputOption.activeBackground":"#EEFFFF30","inputOption.activeBorder":"#EEFFFF30","inputValidation.errorBorder":"#f07178","inputValidation.infoBorder":"#82AAFF","inputValidation.warningBorder":"#FFCB6B","list.activeSelectionBackground":"#212121","list.activeSelectionForeground":"#80CBC4","list.dropBackground":"#f0717880","list.focusBackground":"#EEFFFF20","list.focusForeground":"#EEFFFF","list.highlightForeground":"#80CBC4","list.hoverBackground":"#212121","list.hoverForeground":"#FFFFFF","list.inactiveSelectionBackground":"#00000030","list.inactiveSelectionForeground":"#80CBC4","listFilterWidget.background":"#00000030","listFilterWidget.noMatchesOutline":"#00000030","listFilterWidget.outline":"#00000030","menu.background":"#212121","menu.foreground":"#EEFFFF","menu.selectionBackground":"#00000050","menu.selectionBorder":"#00000030","menu.selectionForeground":"#80CBC4","menu.separatorBackground":"#EEFFFF","menubar.selectionBackground":"#00000030","menubar.selectionBorder":"#00000030","menubar.selectionForeground":"#80CBC4","notebook.focusedCellBorder":"#80CBC4","notebook.inactiveFocusedCellBorder":"#80CBC450","notificationLink.foreground":"#80CBC4","notifications.background":"#212121","notifications.foreground":"#EEFFFF","panel.background":"#212121","panel.border":"#21212160","panel.dropBackground":"#EEFFFF","panelTitle.activeBorder":"#80CBC4","panelTitle.activeForeground":"#FFFFFF","panelTitle.inactiveForeground":"#EEFFFF","peekView.border":"#00000030","peekViewEditor.background":"#2B2B2B","peekViewEditor.matchHighlightBackground":"#61616150","peekViewEditorGutter.background":"#2B2B2B","peekViewResult.background":"#2B2B2B","peekViewResult.matchHighlightBackground":"#61616150","peekViewResult.selectionBackground":"#67676770","peekViewTitle.background":"#2B2B2B","peekViewTitleDescription.foreground":"#EEFFFF60","pickerGroup.border":"#FFFFFF1a","pickerGroup.foreground":"#80CBC4","progressBar.background":"#80CBC4","quickInput.background":"#212121","quickInput.foreground":"#676767","quickInput.list.focusBackground":"#EEFFFF20","sash.hoverBorder":"#80CBC450","scrollbar.shadow":"#00000030","scrollbarSlider.activeBackground":"#80CBC4","scrollbarSlider.background":"#EEFFFF20","scrollbarSlider.hoverBackground":"#EEFFFF10","selection.background":"#00000080","settings.checkboxBackground":"#212121","settings.checkboxForeground":"#EEFFFF","settings.dropdownBackground":"#212121","settings.dropdownForeground":"#EEFFFF","settings.headerForeground":"#80CBC4","settings.modifiedItemIndicator":"#80CBC4","settings.numberInputBackground":"#212121","settings.numberInputForeground":"#EEFFFF","settings.textInputBackground":"#212121","settings.textInputForeground":"#EEFFFF","sideBar.background":"#212121","sideBar.border":"#21212160","sideBar.foreground":"#676767","sideBarSectionHeader.background":"#212121","sideBarSectionHeader.border":"#21212160","sideBarTitle.foreground":"#EEFFFF","statusBar.background":"#212121","statusBar.border":"#21212160","statusBar.debuggingBackground":"#C792EA","statusBar.debuggingForeground":"#ffffff","statusBar.foreground":"#616161","statusBar.noFolderBackground":"#212121","statusBarItem.activeBackground":"#f0717880","statusBarItem.hoverBackground":"#54545420","statusBarItem.remoteBackground":"#80CBC4","statusBarItem.remoteForeground":"#000000","tab.activeBackground":"#212121","tab.activeBorder":"#80CBC4","tab.activeForeground":"#FFFFFF","tab.activeModifiedBorder":"#676767","tab.border":"#212121","tab.inactiveBackground":"#212121","tab.inactiveForeground":"#676767","tab.inactiveModifiedBorder":"#904348","tab.unfocusedActiveBorder":"#545454","tab.unfocusedActiveForeground":"#EEFFFF","tab.unfocusedActiveModifiedBorder":"#c05a60","tab.unfocusedInactiveModifiedBorder":"#904348","terminal.ansiBlack":"#000000","terminal.ansiBlue":"#82AAFF","terminal.ansiBrightBlack":"#545454","terminal.ansiBrightBlue":"#82AAFF","terminal.ansiBrightCyan":"#89DDFF","terminal.ansiBrightGreen":"#C3E88D","terminal.ansiBrightMagenta":"#C792EA","terminal.ansiBrightRed":"#f07178","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#FFCB6B","terminal.ansiCyan":"#89DDFF","terminal.ansiGreen":"#C3E88D","terminal.ansiMagenta":"#C792EA","terminal.ansiRed":"#f07178","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#FFCB6B","terminalCursor.background":"#000000","terminalCursor.foreground":"#FFCB6B","textLink.activeForeground":"#EEFFFF","textLink.foreground":"#80CBC4","titleBar.activeBackground":"#212121","titleBar.activeForeground":"#EEFFFF","titleBar.border":"#21212160","titleBar.inactiveBackground":"#212121","titleBar.inactiveForeground":"#676767","tree.indentGuidesStroke":"#424242","widget.shadow":"#00000030"},"displayName":"Material Theme Darker","name":"material-theme-darker","semanticHighlighting":true,"tokenColors":[{"settings":{"background":"#212121","foreground":"#EEFFFF"}},{"scope":"string","settings":{"foreground":"#C3E88D"}},{"scope":"punctuation, constant.other.symbol","settings":{"foreground":"#89DDFF"}},{"scope":"constant.character.escape, text.html constant.character.entity.named","settings":{"foreground":"#EEFFFF"}},{"scope":"constant.language.boolean","settings":{"foreground":"#ff9cac"}},{"scope":"constant.numeric","settings":{"foreground":"#F78C6C"}},{"scope":"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments","settings":{"foreground":"#EEFFFF"}},{"scope":"keyword.other","settings":{"foreground":"#F78C6C"}},{"scope":"keyword, modifier, variable.language.this, support.type.object, constant.language","settings":{"foreground":"#89DDFF"}},{"scope":"entity.name.function, support.function","settings":{"foreground":"#82AAFF"}},{"scope":"storage.type, storage.modifier, storage.control","settings":{"foreground":"#C792EA"}},{"scope":"support.module, support.node","settings":{"fontStyle":"italic","foreground":"#f07178"}},{"scope":"support.type, constant.other.key","settings":{"foreground":"#FFCB6B"}},{"scope":"entity.name.type, entity.other.inherited-class, entity.other","settings":{"foreground":"#FFCB6B"}},{"scope":"comment","settings":{"fontStyle":"italic","foreground":"#545454"}},{"scope":"comment punctuation.definition.comment, string.quoted.docstring","settings":{"fontStyle":"italic","foreground":"#545454"}},{"scope":"punctuation","settings":{"foreground":"#89DDFF"}},{"scope":"entity.name, entity.name.type.class, support.type, support.class, meta.use","settings":{"foreground":"#FFCB6B"}},{"scope":"variable.object.property, meta.field.declaration entity.name.function","settings":{"foreground":"#f07178"}},{"scope":"meta.definition.method entity.name.function","settings":{"foreground":"#f07178"}},{"scope":"meta.function entity.name.function","settings":{"foreground":"#82AAFF"}},{"scope":"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end","settings":{"foreground":"#89DDFF"}},{"scope":"meta.embedded, source.groovy.embedded, meta.template.expression","settings":{"foreground":"#EEFFFF"}},{"scope":"entity.name.tag.yaml","settings":{"foreground":"#f07178"}},{"scope":"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json","settings":{"foreground":"#f07178"}},{"scope":"constant.language.json","settings":{"foreground":"#89DDFF"}},{"scope":"entity.other.attribute-name.class","settings":{"foreground":"#FFCB6B"}},{"scope":"entity.other.attribute-name.id","settings":{"foreground":"#F78C6C"}},{"scope":"source.css entity.name.tag","settings":{"foreground":"#FFCB6B"}},{"scope":"support.type.property-name.css","settings":{"foreground":"#B2CCD6"}},{"scope":"meta.tag, punctuation.definition.tag","settings":{"foreground":"#89DDFF"}},{"scope":"entity.name.tag","settings":{"foreground":"#f07178"}},{"scope":"entity.other.attribute-name","settings":{"foreground":"#C792EA"}},{"scope":"punctuation.definition.entity.html","settings":{"foreground":"#EEFFFF"}},{"scope":"markup.heading","settings":{"foreground":"#89DDFF"}},{"scope":"text.html.markdown meta.link.inline, meta.link.reference","settings":{"foreground":"#f07178"}},{"scope":"text.html.markdown beginning.punctuation.definition.list","settings":{"foreground":"#89DDFF"}},{"scope":"markup.italic","settings":{"fontStyle":"italic","foreground":"#f07178"}},{"scope":"markup.bold","settings":{"fontStyle":"bold","foreground":"#f07178"}},{"scope":"markup.bold markup.italic, markup.italic markup.bold","settings":{"fontStyle":"italic bold","foreground":"#f07178"}},{"scope":"markup.fenced_code.block.markdown punctuation.definition.markdown","settings":{"foreground":"#C3E88D"}},{"scope":"markup.inline.raw.string.markdown","settings":{"foreground":"#C3E88D"}},{"scope":"keyword.other.definition.ini","settings":{"foreground":"#f07178"}},{"scope":"entity.name.section.group-title.ini","settings":{"foreground":"#89DDFF"}},{"scope":"source.cs meta.class.identifier storage.type","settings":{"foreground":"#FFCB6B"}},{"scope":"source.cs meta.method.identifier entity.name.function","settings":{"foreground":"#f07178"}},{"scope":"source.cs meta.method-call meta.method, source.cs entity.name.function","settings":{"foreground":"#82AAFF"}},{"scope":"source.cs storage.type","settings":{"foreground":"#FFCB6B"}},{"scope":"source.cs meta.method.return-type","settings":{"foreground":"#FFCB6B"}},{"scope":"source.cs meta.preprocessor","settings":{"foreground":"#545454"}},{"scope":"source.cs entity.name.type.namespace","settings":{"foreground":"#EEFFFF"}},{"scope":"meta.jsx.children, SXNested","settings":{"foreground":"#EEFFFF"}},{"scope":"support.class.component","settings":{"foreground":"#FFCB6B"}},{"scope":"source.cpp meta.block variable.other","settings":{"foreground":"#EEFFFF"}},{"scope":"source.python meta.member.access.python","settings":{"foreground":"#f07178"}},{"scope":"source.python meta.function-call.python, meta.function-call.arguments","settings":{"foreground":"#82AAFF"}},{"scope":"meta.block","settings":{"foreground":"#f07178"}},{"scope":"entity.name.function.call","settings":{"foreground":"#82AAFF"}},{"scope":"source.php support.other.namespace, source.php meta.use support.class","settings":{"foreground":"#EEFFFF"}},{"scope":"constant.keyword","settings":{"fontStyle":"italic","foreground":"#89DDFF"}},{"scope":"entity.name.function","settings":{"foreground":"#82AAFF"}},{"settings":{"background":"#212121","foreground":"#EEFFFF"}},{"scope":["constant.other.placeholder"],"settings":{"foreground":"#f07178"}},{"scope":["markup.deleted"],"settings":{"foreground":"#f07178"}},{"scope":["markup.inserted"],"settings":{"foreground":"#C3E88D"}},{"scope":["markup.underline"],"settings":{"fontStyle":"underline"}},{"scope":["keyword.control"],"settings":{"fontStyle":"italic","foreground":"#89DDFF"}},{"scope":["variable.parameter"],"settings":{"fontStyle":"italic"}},{"scope":["variable.parameter.function.language.special.self.python"],"settings":{"fontStyle":"italic","foreground":"#f07178"}},{"scope":["constant.character.format.placeholder.other.python"],"settings":{"foreground":"#F78C6C"}},{"scope":["markup.quote"],"settings":{"fontStyle":"italic","foreground":"#89DDFF"}},{"scope":["markup.fenced_code.block"],"settings":{"foreground":"#EEFFFF90"}},{"scope":["punctuation.definition.quote"],"settings":{"foreground":"#ff9cac"}},{"scope":["meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#C792EA"}},{"scope":["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#FFCB6B"}},{"scope":["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#F78C6C"}},{"scope":["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#f07178"}},{"scope":["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#916b53"}},{"scope":["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#82AAFF"}},{"scope":["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#ff9cac"}},{"scope":["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#C792EA"}},{"scope":["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#C3E88D"}}],"type":"dark"}'));export{e as default}; ================================================ FILE: jesse/static/_nuxt/BfLuTCmN.js ================================================ /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var e={wordPattern:/(#?-?\d*\.\d\w*%?)|((::|[@#.!:])?[\w-?]+%?)|::|[@#.!:]/g,comments:{blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},t={defaultToken:"",tokenPostfix:".css",ws:`[ \r\f]*`,identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.bracket"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@strings"},["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@selectorname"},["[\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.bracket",next:"@selectorbody"}]],selectorbody:[{include:"@comments"},["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],["}",{token:"delimiter.bracket",next:"@pop"}]],selectorname:[["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@functioninvocation"},{include:"@numbers"},{include:"@name"},{include:"@strings"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","delimiter"],[",","delimiter"]],rulevalue:[{include:"@comments"},{include:"@strings"},{include:"@term"},["!important","keyword"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],urldeclaration:[{include:"@strings"},[`[^)\r ]+`,"string"],["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[/[^*/]+/,"comment"],[/./,"comment"]],name:[["@identifier","attribute.value"]],numbers:[["-?(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"attribute.value.number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","attribute.value.hex"]],units:[["(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","attribute.value.unit","@pop"]],keyframedeclaration:[["@identifier","attribute.value"],["{",{token:"delimiter.bracket",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.bracket",next:"@selectorbody"}],["}",{token:"delimiter.bracket",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"attribute.value",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"attribute.value",next:"@pop"}]],strings:[['~?"',{token:"string",next:"@stringenddoublequote"}],["~?'",{token:"string",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string",next:"@pop"}],[/[^\\"]+/,"string"],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string",next:"@pop"}],[/[^\\']+/,"string"],[".","string"]]}};export{e as conf,t as language}; ================================================ FILE: jesse/static/_nuxt/BfYIQCg8.js ================================================ import{d as U,m as x,u as $,r as c,a as O,c as k,w as p,n as B,o as L,P as z,s as S,h as j,e as I,f as u,_ as K,g as R,i as a,j as t,k as q,l as A,p as H,q as P,t as W,z as F}from"./CU_MfyYc.js";import{_ as G}from"./DK27pemE.js";const J=H(G),Q={class:"flex items-center justify-between"},X={class:"space-y-4"},Y={class:"flex justify-end gap-3"},oe=U({__name:"MonteCarloNotesModal",props:x({sessionId:{},initialTitle:{},initialDescription:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:x(["saved"],["update:modelValue"]),setup(y,{emit:b}){const n=y,C=b,s=$(y,"modelValue"),i=c(n.initialTitle||""),d=c(n.initialDescription||""),v=c(!1),m=c(),V=O(),g=k(()=>V.value==="light"?"vs-light":"vs-dark"),h={automaticLayout:!0,minimap:{enabled:!1},fontSize:15,lineHeight:21,wordWrap:"on"},w=k(()=>i.value!==(n.initialTitle||"")||d.value!==(n.initialDescription||""));p(g,o=>{var e,r;(r=(e=m.value)==null?void 0:e.$editor)==null||r.updateOptions({theme:o})}),p(()=>n.initialTitle,o=>{i.value=o||""}),p(()=>n.initialDescription,o=>{d.value=o||""}),p(s,async o=>{o?(await B(),setTimeout(()=>{var e;(e=m.value)!=null&&e.$editor&&(m.value.$editor.updateOptions({theme:g.value}),m.value.$editor.addCommand(2051,()=>{_()}))},100),window.addEventListener("keydown",f)):window.removeEventListener("keydown",f)}),L(()=>{window.removeEventListener("keydown",f)});function f(o){(o.metaKey||o.ctrlKey)&&o.key==="Enter"&&(o.preventDefault(),_())}async function _(){if(w.value){v.value=!0;try{await z().updateSessionNotes(n.sessionId,i.value,d.value),S("success","Notes saved successfully"),C("saved",{title:i.value,description:d.value}),s.value=!1}catch(o){j(o)}finally{v.value=!1}}}return(o,e)=>{const r=W,M=q,T=J,E=A,N=F,D=K;return R(),I(D,{modelValue:s.value,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value=l),ui:{width:"sm:max-w-3xl"}},{default:u(()=>[a(N,null,{header:u(()=>[t("div",Q,[e[5]||(e[5]=t("h3",{class:"text-lg font-semibold"},"Add Title & Notes",-1)),a(r,{color:"gray",variant:"ghost",icon:"i-heroicons-x-mark",size:"sm",onClick:e[0]||(e[0]=l=>s.value=!1)})])]),footer:u(()=>[t("div",Y,[a(r,{color:"gray",variant:"ghost",label:"Cancel",onClick:e[3]||(e[3]=l=>s.value=!1)}),a(r,{color:"primary",label:"Save",icon:"i-heroicons-check",disabled:!w.value,loading:v.value,onClick:_},null,8,["disabled","loading"])])]),default:u(()=>[t("div",X,[t("div",null,[e[6]||(e[6]=t("label",{class:"block text-sm font-medium mb-2"},"Title",-1)),a(M,{modelValue:i.value,"onUpdate:modelValue":e[1]||(e[1]=l=>i.value=l),placeholder:"Enter a title for this Monte Carlo session",maxlength:"255",size:"lg"},null,8,["modelValue"])]),t("div",null,[e[8]||(e[8]=t("label",{class:"block text-sm font-medium mb-2"},"Description",-1)),a(E,null,{default:u(()=>[a(T,{ref_key:"descriptionEditorRef",ref:m,modelValue:d.value,"onUpdate:modelValue":e[2]||(e[2]=l=>d.value=l),lang:"markdown",options:h,class:"border border-gray-200 dark:border-gray-800 rounded",style:{height:"400px"}},{default:u(()=>e[7]||(e[7]=[P(" Loading editor... ")])),_:1},8,["modelValue"])]),_:1})])])]),_:1})]),_:1},8,["modelValue"])}}});export{oe as _}; ================================================ FILE: jesse/static/_nuxt/BfivnA6A.js ================================================ const n=Object.freeze(JSON.parse(`{"displayName":"Jsonnet","name":"jsonnet","patterns":[{"include":"#expression"},{"include":"#keywords"}],"repository":{"builtin-functions":{"patterns":[{"match":"\\\\bstd[.](acos|asin|atan|ceil|char|codepoint|cos|exp|exponent)\\\\b","name":"support.function.jsonnet"},{"match":"\\\\bstd[.](filter|floor|force|length|log|makeArray|mantissa)\\\\b","name":"support.function.jsonnet"},{"match":"\\\\bstd[.](objectFields|objectHas|pow|sin|sqrt|tan|type|thisFile)\\\\b","name":"support.function.jsonnet"},{"match":"\\\\bstd[.](acos|asin|atan|ceil|char|codepoint|cos|exp|exponent)\\\\b","name":"support.function.jsonnet"},{"match":"\\\\bstd[.](abs|assertEqual|escapeString(Bash|Dollars|Json|Python))\\\\b","name":"support.function.jsonnet"},{"match":"\\\\bstd[.](filterMap|flattenArrays|foldl|foldr|format|join)\\\\b","name":"support.function.jsonnet"},{"match":"\\\\bstd[.](lines|manifest(Ini|Python(Vars)?)|map|max|min|mod)\\\\b","name":"support.function.jsonnet"},{"match":"\\\\bstd[.](set|set(Diff|Inter|Member|Union)|sort)\\\\b","name":"support.function.jsonnet"},{"match":"\\\\bstd[.](range|split|stringChars|substr|toString|uniq)\\\\b","name":"support.function.jsonnet"}]},"comment":{"patterns":[{"begin":"/\\\\*","end":"\\\\*/","name":"comment.block.jsonnet"},{"match":"//.*$","name":"comment.line.jsonnet"},{"match":"#.*$","name":"comment.block.jsonnet"}]},"double-quoted-strings":{"begin":"\\"","end":"\\"","name":"string.quoted.double.jsonnet","patterns":[{"match":"\\\\\\\\([\\"\\\\\\\\/bfnrt]|(u[0-9a-fA-F]{4}))","name":"constant.character.escape.jsonnet"},{"match":"\\\\\\\\[^\\"\\\\\\\\/bfnrtu]","name":"invalid.illegal.jsonnet"}]},"expression":{"patterns":[{"include":"#literals"},{"include":"#comment"},{"include":"#single-quoted-strings"},{"include":"#double-quoted-strings"},{"include":"#triple-quoted-strings"},{"include":"#builtin-functions"},{"include":"#functions"}]},"functions":{"patterns":[{"begin":"\\\\b([a-zA-Z_][a-z0-9A-Z_]*)\\\\s*\\\\(","beginCaptures":{"1":{"name":"entity.name.function.jsonnet"}},"end":"\\\\)","name":"meta.function","patterns":[{"include":"#expression"}]}]},"keywords":{"patterns":[{"match":"[!:~\\\\+\\\\-&\\\\|\\\\^=<>\\\\*\\\\/%]","name":"keyword.operator.jsonnet"},{"match":"\\\\$","name":"keyword.other.jsonnet"},{"match":"\\\\b(self|super|import|importstr|local|tailstrict)\\\\b","name":"keyword.other.jsonnet"},{"match":"\\\\b(if|then|else|for|in|error|assert)\\\\b","name":"keyword.control.jsonnet"},{"match":"\\\\b(function)\\\\b","name":"storage.type.jsonnet"},{"match":"[a-zA-Z_][a-z0-9A-Z_]*\\\\s*(:::|\\\\+:::)","name":"variable.parameter.jsonnet"},{"match":"[a-zA-Z_][a-z0-9A-Z_]*\\\\s*(::|\\\\+::)","name":"entity.name.type"},{"match":"[a-zA-Z_][a-z0-9A-Z_]*\\\\s*(:|\\\\+:)","name":"variable.parameter.jsonnet"}]},"literals":{"patterns":[{"match":"\\\\b(true|false|null)\\\\b","name":"constant.language.jsonnet"},{"match":"\\\\b(\\\\d+([Ee][+-]?\\\\d+)?)\\\\b","name":"constant.numeric.jsonnet"},{"match":"\\\\b\\\\d+[.]\\\\d*([Ee][+-]?\\\\d+)?\\\\b","name":"constant.numeric.jsonnet"},{"match":"\\\\b[.]\\\\d+([Ee][+-]?\\\\d+)?\\\\b","name":"constant.numeric.jsonnet"}]},"single-quoted-strings":{"begin":"'","end":"'","name":"string.quoted.double.jsonnet","patterns":[{"match":"\\\\\\\\(['\\\\\\\\/bfnrt]|(u[0-9a-fA-F]{4}))","name":"constant.character.escape.jsonnet"},{"match":"\\\\\\\\[^'\\\\\\\\/bfnrtu]","name":"invalid.illegal.jsonnet"}]},"triple-quoted-strings":{"patterns":[{"begin":"\\\\|\\\\|\\\\|","end":"\\\\|\\\\|\\\\|","name":"string.quoted.triple.jsonnet"}]}},"scopeName":"source.jsonnet"}`)),t=[n];export{t as default}; ================================================ FILE: jesse/static/_nuxt/BfjtVDDH.js ================================================ const e=Object.freeze(JSON.parse('{"colors":{"activityBar.activeBorder":"#ef5b48","activityBar.background":"#ffffff","activityBar.border":"#20252c","activityBar.foreground":"#0e1116","activityBar.inactiveForeground":"#0e1116","activityBarBadge.background":"#0349b4","activityBarBadge.foreground":"#ffffff","badge.background":"#0349b4","badge.foreground":"#ffffff","breadcrumb.activeSelectionForeground":"#0e1116","breadcrumb.focusForeground":"#0e1116","breadcrumb.foreground":"#0e1116","breadcrumbPicker.background":"#ffffff","button.background":"#055d20","button.foreground":"#ffffff","button.hoverBackground":"#024c1a","button.secondaryBackground":"#acb6c0","button.secondaryForeground":"#0e1116","button.secondaryHoverBackground":"#ced5dc","checkbox.background":"#e7ecf0","checkbox.border":"#20252c","debugConsole.errorForeground":"#a0111f","debugConsole.infoForeground":"#4b535d","debugConsole.sourceForeground":"#744500","debugConsole.warningForeground":"#603700","debugConsoleInputIcon.foreground":"#512598","debugIcon.breakpointForeground":"#a0111f","debugTokenExpression.boolean":"#024c1a","debugTokenExpression.error":"#86061d","debugTokenExpression.name":"#023b95","debugTokenExpression.number":"#024c1a","debugTokenExpression.string":"#032563","debugTokenExpression.value":"#032563","debugToolBar.background":"#ffffff","descriptionForeground":"#0e1116","diffEditor.insertedLineBackground":"#82e5964d","diffEditor.insertedTextBackground":"#43c66380","diffEditor.removedLineBackground":"#ffc1bc4d","diffEditor.removedTextBackground":"#ee5a5d66","dropdown.background":"#ffffff","dropdown.border":"#20252c","dropdown.foreground":"#0e1116","dropdown.listBackground":"#ffffff","editor.background":"#ffffff","editor.findMatchBackground":"#744500","editor.findMatchHighlightBackground":"#f0ce5380","editor.focusedStackFrameHighlightBackground":"#26a148","editor.foldBackground":"#66707b1a","editor.foreground":"#0e1116","editor.inactiveSelectionBackground":"#66707b","editor.lineHighlightBackground":"#e7ecf0","editor.linkedEditingBackground":"#0349b412","editor.selectionBackground":"#0e1116","editor.selectionForeground":"#ffffff","editor.selectionHighlightBackground":"#26a14840","editor.stackFrameHighlightBackground":"#b58407","editor.wordHighlightBackground":"#e7ecf080","editor.wordHighlightBorder":"#acb6c099","editor.wordHighlightStrongBackground":"#acb6c04d","editor.wordHighlightStrongBorder":"#acb6c099","editorBracketHighlight.foreground1":"#0349b4","editorBracketHighlight.foreground2":"#055d20","editorBracketHighlight.foreground3":"#744500","editorBracketHighlight.foreground4":"#a0111f","editorBracketHighlight.foreground5":"#971368","editorBracketHighlight.foreground6":"#622cbc","editorBracketHighlight.unexpectedBracket.foreground":"#0e1116","editorBracketMatch.background":"#26a14840","editorBracketMatch.border":"#26a14899","editorCursor.foreground":"#0349b4","editorGroup.border":"#20252c","editorGroupHeader.tabsBackground":"#ffffff","editorGroupHeader.tabsBorder":"#20252c","editorGutter.addedBackground":"#26a148","editorGutter.deletedBackground":"#ee5a5d","editorGutter.modifiedBackground":"#b58407","editorIndentGuide.activeBackground":"#0e11163d","editorIndentGuide.background":"#0e11161f","editorInlayHint.background":"#acb6c033","editorInlayHint.foreground":"#0e1116","editorInlayHint.paramBackground":"#acb6c033","editorInlayHint.paramForeground":"#0e1116","editorInlayHint.typeBackground":"#acb6c033","editorInlayHint.typeForeground":"#0e1116","editorLineNumber.activeForeground":"#0e1116","editorLineNumber.foreground":"#88929d","editorOverviewRuler.border":"#ffffff","editorWhitespace.foreground":"#acb6c0","editorWidget.background":"#ffffff","errorForeground":"#a0111f","focusBorder":"#0349b4","foreground":"#0e1116","gitDecoration.addedResourceForeground":"#055d20","gitDecoration.conflictingResourceForeground":"#873800","gitDecoration.deletedResourceForeground":"#a0111f","gitDecoration.ignoredResourceForeground":"#66707b","gitDecoration.modifiedResourceForeground":"#744500","gitDecoration.submoduleResourceForeground":"#0e1116","gitDecoration.untrackedResourceForeground":"#055d20","icon.foreground":"#0e1116","input.background":"#ffffff","input.border":"#20252c","input.foreground":"#0e1116","input.placeholderForeground":"#66707b","keybindingLabel.foreground":"#0e1116","list.activeSelectionBackground":"#acb6c033","list.activeSelectionForeground":"#0e1116","list.focusBackground":"#dff7ff","list.focusForeground":"#0e1116","list.highlightForeground":"#0349b4","list.hoverBackground":"#e7ecf0","list.hoverForeground":"#0e1116","list.inactiveFocusBackground":"#dff7ff","list.inactiveSelectionBackground":"#acb6c033","list.inactiveSelectionForeground":"#0e1116","minimapSlider.activeBackground":"#88929d47","minimapSlider.background":"#88929d33","minimapSlider.hoverBackground":"#88929d3d","notificationCenterHeader.background":"#e7ecf0","notificationCenterHeader.foreground":"#0e1116","notifications.background":"#ffffff","notifications.border":"#20252c","notifications.foreground":"#0e1116","notificationsErrorIcon.foreground":"#a0111f","notificationsInfoIcon.foreground":"#0349b4","notificationsWarningIcon.foreground":"#744500","panel.background":"#ffffff","panel.border":"#20252c","panelInput.border":"#20252c","panelTitle.activeBorder":"#ef5b48","panelTitle.activeForeground":"#0e1116","panelTitle.inactiveForeground":"#0e1116","pickerGroup.border":"#20252c","pickerGroup.foreground":"#0e1116","progressBar.background":"#0349b4","quickInput.background":"#ffffff","quickInput.foreground":"#0e1116","scrollbar.shadow":"#66707b33","scrollbarSlider.activeBackground":"#88929d47","scrollbarSlider.background":"#88929d33","scrollbarSlider.hoverBackground":"#88929d3d","settings.headerForeground":"#0e1116","settings.modifiedItemIndicator":"#b58407","sideBar.background":"#ffffff","sideBar.border":"#20252c","sideBar.foreground":"#0e1116","sideBarSectionHeader.background":"#ffffff","sideBarSectionHeader.border":"#20252c","sideBarSectionHeader.foreground":"#0e1116","sideBarTitle.foreground":"#0e1116","statusBar.background":"#ffffff","statusBar.border":"#20252c","statusBar.debuggingBackground":"#a0111f","statusBar.debuggingForeground":"#ffffff","statusBar.focusBorder":"#0349b480","statusBar.foreground":"#0e1116","statusBar.noFolderBackground":"#ffffff","statusBarItem.activeBackground":"#0e11161f","statusBarItem.focusBorder":"#0349b4","statusBarItem.hoverBackground":"#0e111614","statusBarItem.prominentBackground":"#acb6c033","statusBarItem.remoteBackground":"#e7ecf0","statusBarItem.remoteForeground":"#0e1116","symbolIcon.arrayForeground":"#702c00","symbolIcon.booleanForeground":"#023b95","symbolIcon.classForeground":"#702c00","symbolIcon.colorForeground":"#032563","symbolIcon.constantForeground":"#024c1a","symbolIcon.constructorForeground":"#341763","symbolIcon.enumeratorForeground":"#702c00","symbolIcon.enumeratorMemberForeground":"#023b95","symbolIcon.eventForeground":"#4b535d","symbolIcon.fieldForeground":"#702c00","symbolIcon.fileForeground":"#603700","symbolIcon.folderForeground":"#603700","symbolIcon.functionForeground":"#512598","symbolIcon.interfaceForeground":"#702c00","symbolIcon.keyForeground":"#023b95","symbolIcon.keywordForeground":"#86061d","symbolIcon.methodForeground":"#512598","symbolIcon.moduleForeground":"#86061d","symbolIcon.namespaceForeground":"#86061d","symbolIcon.nullForeground":"#023b95","symbolIcon.numberForeground":"#024c1a","symbolIcon.objectForeground":"#702c00","symbolIcon.operatorForeground":"#032563","symbolIcon.packageForeground":"#702c00","symbolIcon.propertyForeground":"#702c00","symbolIcon.referenceForeground":"#023b95","symbolIcon.snippetForeground":"#023b95","symbolIcon.stringForeground":"#032563","symbolIcon.structForeground":"#702c00","symbolIcon.textForeground":"#032563","symbolIcon.typeParameterForeground":"#032563","symbolIcon.unitForeground":"#023b95","symbolIcon.variableForeground":"#702c00","tab.activeBackground":"#ffffff","tab.activeBorder":"#ffffff","tab.activeBorderTop":"#ef5b48","tab.activeForeground":"#0e1116","tab.border":"#20252c","tab.hoverBackground":"#ffffff","tab.inactiveBackground":"#ffffff","tab.inactiveForeground":"#0e1116","tab.unfocusedActiveBorder":"#ffffff","tab.unfocusedActiveBorderTop":"#20252c","tab.unfocusedHoverBackground":"#e7ecf0","terminal.ansiBlack":"#0e1116","terminal.ansiBlue":"#0349b4","terminal.ansiBrightBlack":"#4b535d","terminal.ansiBrightBlue":"#1168e3","terminal.ansiBrightCyan":"#3192aa","terminal.ansiBrightGreen":"#055d20","terminal.ansiBrightMagenta":"#844ae7","terminal.ansiBrightRed":"#86061d","terminal.ansiBrightWhite":"#88929d","terminal.ansiBrightYellow":"#4e2c00","terminal.ansiCyan":"#1b7c83","terminal.ansiGreen":"#024c1a","terminal.ansiMagenta":"#622cbc","terminal.ansiRed":"#a0111f","terminal.ansiWhite":"#66707b","terminal.ansiYellow":"#3f2200","terminal.foreground":"#0e1116","textBlockQuote.background":"#ffffff","textBlockQuote.border":"#20252c","textCodeBlock.background":"#acb6c033","textLink.activeForeground":"#0349b4","textLink.foreground":"#0349b4","textPreformat.background":"#acb6c033","textPreformat.foreground":"#0e1116","textSeparator.foreground":"#88929d","titleBar.activeBackground":"#ffffff","titleBar.activeForeground":"#0e1116","titleBar.border":"#20252c","titleBar.inactiveBackground":"#ffffff","titleBar.inactiveForeground":"#0e1116","tree.indentGuidesStroke":"#88929d","welcomePage.buttonBackground":"#e7ecf0","welcomePage.buttonHoverBackground":"#ced5dc"},"displayName":"GitHub Light High Contrast","name":"github-light-high-contrast","semanticHighlighting":true,"tokenColors":[{"scope":["comment","punctuation.definition.comment","string.comment"],"settings":{"foreground":"#66707b"}},{"scope":["constant.other.placeholder","constant.character"],"settings":{"foreground":"#a0111f"}},{"scope":["constant","entity.name.constant","variable.other.constant","variable.other.enummember","variable.language","entity"],"settings":{"foreground":"#023b95"}},{"scope":["entity.name","meta.export.default","meta.definition.variable"],"settings":{"foreground":"#702c00"}},{"scope":["variable.parameter.function","meta.jsx.children","meta.block","meta.tag.attributes","entity.name.constant","meta.object.member","meta.embedded.expression"],"settings":{"foreground":"#0e1116"}},{"scope":"entity.name.function","settings":{"foreground":"#622cbc"}},{"scope":["entity.name.tag","support.class.component"],"settings":{"foreground":"#024c1a"}},{"scope":"keyword","settings":{"foreground":"#a0111f"}},{"scope":["storage","storage.type"],"settings":{"foreground":"#a0111f"}},{"scope":["storage.modifier.package","storage.modifier.import","storage.type.java"],"settings":{"foreground":"#0e1116"}},{"scope":["string","string punctuation.section.embedded source"],"settings":{"foreground":"#032563"}},{"scope":"support","settings":{"foreground":"#023b95"}},{"scope":"meta.property-name","settings":{"foreground":"#023b95"}},{"scope":"variable","settings":{"foreground":"#702c00"}},{"scope":"variable.other","settings":{"foreground":"#0e1116"}},{"scope":"invalid.broken","settings":{"fontStyle":"italic","foreground":"#6e011a"}},{"scope":"invalid.deprecated","settings":{"fontStyle":"italic","foreground":"#6e011a"}},{"scope":"invalid.illegal","settings":{"fontStyle":"italic","foreground":"#6e011a"}},{"scope":"invalid.unimplemented","settings":{"fontStyle":"italic","foreground":"#6e011a"}},{"scope":"carriage-return","settings":{"background":"#a0111f","content":"^M","fontStyle":"italic underline","foreground":"#ffffff"}},{"scope":"message.error","settings":{"foreground":"#6e011a"}},{"scope":"string variable","settings":{"foreground":"#023b95"}},{"scope":["source.regexp","string.regexp"],"settings":{"foreground":"#032563"}},{"scope":["string.regexp.character-class","string.regexp constant.character.escape","string.regexp source.ruby.embedded","string.regexp string.regexp.arbitrary-repitition"],"settings":{"foreground":"#032563"}},{"scope":"string.regexp constant.character.escape","settings":{"fontStyle":"bold","foreground":"#024c1a"}},{"scope":"support.constant","settings":{"foreground":"#023b95"}},{"scope":"support.variable","settings":{"foreground":"#023b95"}},{"scope":"support.type.property-name.json","settings":{"foreground":"#024c1a"}},{"scope":"meta.module-reference","settings":{"foreground":"#023b95"}},{"scope":"punctuation.definition.list.begin.markdown","settings":{"foreground":"#702c00"}},{"scope":["markup.heading","markup.heading entity.name"],"settings":{"fontStyle":"bold","foreground":"#023b95"}},{"scope":"markup.quote","settings":{"foreground":"#024c1a"}},{"scope":"markup.italic","settings":{"fontStyle":"italic","foreground":"#0e1116"}},{"scope":"markup.bold","settings":{"fontStyle":"bold","foreground":"#0e1116"}},{"scope":["markup.underline"],"settings":{"fontStyle":"underline"}},{"scope":["markup.strikethrough"],"settings":{"fontStyle":"strikethrough"}},{"scope":"markup.inline.raw","settings":{"foreground":"#023b95"}},{"scope":["markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted"],"settings":{"background":"#fff0ee","foreground":"#6e011a"}},{"scope":["punctuation.section.embedded"],"settings":{"foreground":"#a0111f"}},{"scope":["markup.inserted","meta.diff.header.to-file","punctuation.definition.inserted"],"settings":{"background":"#d2fedb","foreground":"#024c1a"}},{"scope":["markup.changed","punctuation.definition.changed"],"settings":{"background":"#ffc67b","foreground":"#702c00"}},{"scope":["markup.ignored","markup.untracked"],"settings":{"background":"#023b95","foreground":"#e7ecf0"}},{"scope":"meta.diff.range","settings":{"fontStyle":"bold","foreground":"#622cbc"}},{"scope":"meta.diff.header","settings":{"foreground":"#023b95"}},{"scope":"meta.separator","settings":{"fontStyle":"bold","foreground":"#023b95"}},{"scope":"meta.output","settings":{"foreground":"#023b95"}},{"scope":["brackethighlighter.tag","brackethighlighter.curly","brackethighlighter.round","brackethighlighter.square","brackethighlighter.angle","brackethighlighter.quote"],"settings":{"foreground":"#4b535d"}},{"scope":"brackethighlighter.unmatched","settings":{"foreground":"#6e011a"}},{"scope":["constant.other.reference.link","string.other.link"],"settings":{"foreground":"#032563"}}],"type":"light"}'));export{e as default}; ================================================ FILE: jesse/static/_nuxt/Bg-kzb6g.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"PureScript","fileTypes":["purs"],"name":"purescript","patterns":[{"captures":{"1":{"name":"punctuation.definition.entity.purescript"},"2":{"name":"punctuation.definition.entity.purescript"}},"match":"(\`)(?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*\\\\.)?[\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(\`)","name":"keyword.operator.function.infix.purescript"},{"begin":"^\\\\s*\\\\b(module)(?!')\\\\b","beginCaptures":{"1":{"name":"keyword.other.purescript"}},"end":"(where)","endCaptures":{"1":{"name":"keyword.other.purescript"}},"name":"meta.declaration.module.purescript","patterns":[{"include":"#comments"},{"include":"#module_name"},{"include":"#module_exports"},{"match":"[a-z]+","name":"invalid.purescript"}]},{"begin":"^\\\\s*\\\\b(class)(?!')\\\\b","beginCaptures":{"1":{"name":"storage.type.class.purescript"}},"end":"\\\\b(where)\\\\b|$","endCaptures":{"1":{"name":"keyword.other.purescript"}},"name":"meta.declaration.typeclass.purescript","patterns":[{"include":"#type_signature"}]},{"begin":"^\\\\s*\\\\b(else\\\\s+)?(derive\\\\s+)?(newtype\\\\s+)?(instance)(?!')\\\\b","beginCaptures":{"1":{"name":"keyword.other.purescript"},"2":{"name":"keyword.other.purescript"},"3":{"name":"keyword.other.purescript"},"4":{"name":"keyword.other.purescript"}},"contentName":"meta.type-signature.purescript","end":"\\\\b(where)\\\\b|$","endCaptures":{"1":{"name":"keyword.other.purescript"}},"name":"meta.declaration.instance.purescript","patterns":[{"include":"#type_signature"}]},{"begin":"^(\\\\s*)(foreign)\\\\s+(import)\\\\s+(data)\\\\s+([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)","beginCaptures":{"2":{"name":"keyword.other.purescript"},"3":{"name":"keyword.other.purescript"},"4":{"name":"keyword.other.purescript"},"5":{"name":"entity.name.type.purescript"},"6":{"name":"keyword.other.double-colon.purescript"}},"contentName":"meta.kind-signature.purescript","end":"^(?!\\\\1[ \\\\t]|[ \\\\t]*$)","name":"meta.foreign.data.purescript","patterns":[{"include":"#double_colon"},{"include":"#kind_signature"}]},{"begin":"^(\\\\s*)(foreign)\\\\s+(import)\\\\s+([\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)","beginCaptures":{"2":{"name":"keyword.other.purescript"},"3":{"name":"keyword.other.purescript"},"4":{"name":"entity.name.function.purescript"}},"contentName":"meta.type-signature.purescript","end":"^(?!\\\\1[ \\\\t]|[ \\\\t]*$)","name":"meta.foreign.purescript","patterns":[{"include":"#double_colon"},{"include":"#type_signature"}]},{"begin":"^\\\\s*\\\\b(import)(?!')\\\\b","beginCaptures":{"1":{"name":"keyword.other.purescript"}},"end":"($|(?=--))","name":"meta.import.purescript","patterns":[{"include":"#module_name"},{"include":"#module_exports"},{"captures":{"1":{"name":"keyword.other.purescript"}},"match":"\\\\b(as|hiding)\\\\b"}]},{"begin":"^(\\\\s)*(data|newtype)\\\\s+(.+?)\\\\s*(?=\\\\=|$)","beginCaptures":{"2":{"name":"storage.type.data.purescript"},"3":{"name":"meta.type-signature.purescript","patterns":[{"include":"#type_signature"}]}},"end":"^(?!\\\\1[ \\\\t]|[ \\\\t]*$)","name":"meta.declaration.type.data.purescript","patterns":[{"include":"#comments"},{"captures":{"0":{"name":"keyword.operator.assignment.purescript"}},"match":"="},{"captures":{"1":{"patterns":[{"include":"#data_ctor"}]},"2":{"name":"meta.type-signature.purescript","patterns":[{"include":"#type_signature"}]}},"match":"(?:(?:\\\\b([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*)\\\\s+)(?:(?(?:(?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*|(?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*\\\\.)?[\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*|(?:(?:[\\\\w()'→⇒\\\\[\\\\],]|->|=>)+\\\\s*)+))(?:\\\\s*(?:\\\\s+)\\\\s*\\\\g)?)?))"},{"captures":{"0":{"name":"punctuation.separator.pipe.purescript"}},"match":"\\\\|"},{"include":"#record_types"}]},{"begin":"^(\\\\s)*(type)\\\\s+(.+?)\\\\s*(?=\\\\=|$)","beginCaptures":{"2":{"name":"storage.type.data.purescript"},"3":{"name":"meta.type-signature.purescript","patterns":[{"include":"#type_signature"}]}},"contentName":"meta.type-signature.purescript","end":"^(?!\\\\1[ \\\\t]|[ \\\\t]*$)","name":"meta.declaration.type.type.purescript","patterns":[{"captures":{"0":{"name":"keyword.operator.assignment.purescript"}},"match":"="},{"include":"#type_signature"},{"include":"#record_types"},{"include":"#comments"}]},{"match":"^\\\\s*\\\\b(derive|where|data|type|newtype|infix[lr]?|foreign(\\\\s+import)?(\\\\s+data)?)(?!')\\\\b","name":"keyword.other.purescript"},{"match":"\\\\?(?:[\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*|[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)","name":"entity.name.function.typed-hole.purescript"},{"match":"^\\\\s*\\\\b(data|type|newtype)(?!')\\\\b","name":"storage.type.purescript"},{"match":"\\\\b(do|ado|if|then|else|case|of|let|in)(?!('|\\\\s*(:|=)))\\\\b","name":"keyword.control.purescript"},{"match":"\\\\b(?(?:[^()]|\\\\(\\\\g\\\\))*)(::|∷)(?(?:[^()]|\\\\(\\\\g\\\\))*)\\\\)"},{"begin":"^(\\\\s*)(?:(::|∷))","beginCaptures":{"2":{"name":"keyword.other.double-colon.purescript"}},"end":"^(?!\\\\1[ \\\\t]*|[ \\\\t]*$)","patterns":[{"include":"#type_signature"}]},{"include":"#data_ctor"},{"include":"#comments"},{"include":"#infix_op"},{"match":"\\\\<-|-\\\\>","name":"keyword.other.arrow.purescript"},{"match":"[\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]\`{}_\\"']]+","name":"keyword.operator.purescript"},{"match":",","name":"punctuation.separator.comma.purescript"}],"repository":{"block_comment":{"patterns":[{"applyEndPatternLast":1,"begin":"\\\\{-\\\\s*\\\\|","beginCaptures":{"0":{"name":"punctuation.definition.comment.documentation.purescript"}},"end":"-\\\\}","endCaptures":{"0":{"name":"punctuation.definition.comment.documentation.purescript"}},"name":"comment.block.documentation.purescript","patterns":[{"include":"#block_comment"}]},{"applyEndPatternLast":1,"begin":"\\\\{-","beginCaptures":{"0":{"name":"punctuation.definition.comment.purescript"}},"end":"-\\\\}","name":"comment.block.purescript","patterns":[{"include":"#block_comment"}]}]},"characters":{"patterns":[{"captures":{"1":{"name":"constant.character.escape.purescript"},"2":{"name":"constant.character.escape.octal.purescript"},"3":{"name":"constant.character.escape.hexadecimal.purescript"},"4":{"name":"constant.character.escape.control.purescript"}},"match":"(?:[ -\\\\[\\\\]-~]|(\\\\\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\\\\"'\\\\&]))|(\\\\\\\\o[0-7]+)|(\\\\\\\\x[0-9A-Fa-f]+)|(\\\\^[A-Z@\\\\[\\\\]\\\\\\\\\\\\^_]))"}]},"class_constraint":{"patterns":[{"captures":{"1":{"patterns":[{"match":"\\\\b[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*","name":"entity.name.type.purescript"}]},"2":{"patterns":[{"include":"#type_name"},{"include":"#generic_type"}]}},"match":"(?:(?:([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*)\\\\s+)(?:(?(?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*|(?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*\\\\.)?[\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)(?:\\\\s*(?:\\\\s+)\\\\s*\\\\g)?)))","name":"meta.class-constraint.purescript"}]},"comments":{"patterns":[{"begin":"(^[ \\\\t]+)?(?=--+\\\\s+\\\\|)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.purescript"}},"end":"(?!\\\\G)","patterns":[{"begin":"(--+)\\\\s+(\\\\|)","beginCaptures":{"1":{"name":"punctuation.definition.comment.purescript"},"2":{"name":"punctuation.definition.comment.documentation.purescript"}},"end":"\\\\n","name":"comment.line.double-dash.documentation.purescript"}]},{"begin":"(^[ \\\\t]+)?(?=--+(?![\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]\`{}_\\"']]))","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.purescript"}},"end":"(?!\\\\G)","patterns":[{"begin":"--","beginCaptures":{"0":{"name":"punctuation.definition.comment.purescript"}},"end":"\\\\n","name":"comment.line.double-dash.purescript"}]},{"include":"#block_comment"}]},"data_ctor":{"patterns":[{"match":"\\\\b[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*","name":"entity.name.tag.purescript"}]},"double_colon":{"patterns":[{"match":"(?:::|∷)","name":"keyword.other.double-colon.purescript"}]},"function_type_declaration":{"patterns":[{"begin":"^(\\\\s*)([\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)\\\\s*(?:(::|∷)(?!.*<-))","beginCaptures":{"2":{"name":"entity.name.function.purescript"},"3":{"name":"keyword.other.double-colon.purescript"}},"contentName":"meta.type-signature.purescript","end":"^(?!\\\\1[ \\\\t]|[ \\\\t]*$)","name":"meta.function.type-declaration.purescript","patterns":[{"include":"#double_colon"},{"include":"#type_signature"}]}]},"generic_type":{"patterns":[{"match":"\\\\b(?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*\\\\.)?[\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*","name":"variable.other.generic-type.purescript"}]},"infix_op":{"patterns":[{"match":"(?:\\\\((?!--+\\\\))[\\\\p{S}\\\\p{P}&&[^(),;\\\\[\\\\]\`{}_\\"']]+\\\\))","name":"entity.name.function.infix.purescript"}]},"kind_signature":{"patterns":[{"match":"\\\\*","name":"keyword.other.star.purescript"},{"match":"!","name":"keyword.other.exclaimation-point.purescript"},{"match":"#","name":"keyword.other.pound-sign.purescript"},{"match":"->|→","name":"keyword.other.arrow.purescript"}]},"module_exports":{"patterns":[{"begin":"\\\\(","end":"\\\\)","name":"meta.declaration.exports.purescript","patterns":[{"include":"#comments"},{"match":"\\\\b(?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*\\\\.)?[\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*","name":"entity.name.function.purescript"},{"include":"#type_name"},{"match":",","name":"punctuation.separator.comma.purescript"},{"include":"#infix_op"},{"match":"\\\\(.*?\\\\)","name":"meta.other.constructor-list.purescript"}]}]},"module_name":{"patterns":[{"match":"(?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*\\\\.)*[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*\\\\.?","name":"support.other.module.purescript"}]},"record_field_declaration":{"patterns":[{"begin":"([\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)\\\\s*(::|∷)","beginCaptures":{"1":{"patterns":[{"match":"(?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*\\\\.)?[\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*","name":"entity.other.attribute-name.purescript"}]},"2":{"name":"keyword.other.double-colon.purescript"}},"contentName":"meta.type-signature.purescript","end":"(?=([\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)\\\\s*(::|∷)|})","name":"meta.record-field.type-declaration.purescript","patterns":[{"include":"#type_signature"},{"include":"#record_types"}]}]},"record_types":{"patterns":[{"begin":"\\\\{","beginCaptures":{"0":{"name":"keyword.operator.type.record.begin.purescript"}},"end":"\\\\}","endCaptures":{"0":{"name":"keyword.operator.type.record.end.purescript"}},"name":"meta.type.record.purescript","patterns":[{"match":",","name":"punctuation.separator.comma.purescript"},{"include":"#record_field_declaration"},{"include":"#comments"}]}]},"type_name":{"patterns":[{"match":"\\\\b[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*","name":"entity.name.type.purescript"}]},"type_signature":{"patterns":[{"captures":{"1":{"patterns":[{"include":"#class_constraint"}]},"4":{"name":"keyword.other.big-arrow.purescript"}},"match":"(?:(?:\\\\()(?:(?(?:(?:(?:([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*)\\\\s+)(?:(?(?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*|(?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*\\\\.)?[\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)(?:\\\\s*(?:\\\\s+)\\\\s*\\\\g)?))))(?:\\\\s*(?:,)\\\\s*\\\\g)?))(?:\\\\))(?:\\\\s*(=>|<=|⇐|⇒)))","name":"meta.class-constraints.purescript"},{"captures":{"1":{"patterns":[{"include":"#class_constraint"}]},"4":{"name":"keyword.other.big-arrow.purescript"}},"match":"((?:(?:([\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*)\\\\s+)(?:(?(?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*|(?:[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*(?:\\\\.[\\\\p{Lu}\\\\p{Lt}][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)*\\\\.)?[\\\\p{Ll}_][\\\\p{Ll}_\\\\p{Lu}\\\\p{Lt}\\\\p{Nd}']*)(?:\\\\s*(?:\\\\s+)\\\\s*\\\\g)?))))\\\\s*(=>|<=|⇐|⇒)","name":"meta.class-constraints.purescript"},{"match":"->|→","name":"keyword.other.arrow.purescript"},{"match":"=>|⇒","name":"keyword.other.big-arrow.purescript"},{"match":"<=|⇐","name":"keyword.other.big-arrow-left.purescript"},{"match":"forall|∀","name":"keyword.other.forall.purescript"},{"include":"#generic_type"},{"include":"#type_name"},{"include":"#comments"}]}},"scopeName":"source.purescript"}`)),t=[e];export{t as default}; ================================================ FILE: jesse/static/_nuxt/BgDCqdQA.js ================================================ const e=Object.freeze(JSON.parse('{"colors":{"activityBar.activeBorder":"#a7c080d0","activityBar.activeFocusBorder":"#a7c080","activityBar.background":"#2d353b","activityBar.border":"#2d353b","activityBar.dropBackground":"#2d353b","activityBar.foreground":"#d3c6aa","activityBar.inactiveForeground":"#859289","activityBarBadge.background":"#a7c080","activityBarBadge.foreground":"#2d353b","badge.background":"#a7c080","badge.foreground":"#2d353b","breadcrumb.activeSelectionForeground":"#d3c6aa","breadcrumb.focusForeground":"#d3c6aa","breadcrumb.foreground":"#859289","button.background":"#a7c080","button.foreground":"#2d353b","button.hoverBackground":"#a7c080d0","button.secondaryBackground":"#3d484d","button.secondaryForeground":"#d3c6aa","button.secondaryHoverBackground":"#475258","charts.blue":"#7fbbb3","charts.foreground":"#d3c6aa","charts.green":"#a7c080","charts.orange":"#e69875","charts.purple":"#d699b6","charts.red":"#e67e80","charts.yellow":"#dbbc7f","checkbox.background":"#2d353b","checkbox.border":"#4f585e","checkbox.foreground":"#e69875","debugConsole.errorForeground":"#e67e80","debugConsole.infoForeground":"#a7c080","debugConsole.sourceForeground":"#d699b6","debugConsole.warningForeground":"#dbbc7f","debugConsoleInputIcon.foreground":"#83c092","debugIcon.breakpointCurrentStackframeForeground":"#7fbbb3","debugIcon.breakpointDisabledForeground":"#da6362","debugIcon.breakpointForeground":"#e67e80","debugIcon.breakpointStackframeForeground":"#e67e80","debugIcon.breakpointUnverifiedForeground":"#9aa79d","debugIcon.continueForeground":"#7fbbb3","debugIcon.disconnectForeground":"#d699b6","debugIcon.pauseForeground":"#dbbc7f","debugIcon.restartForeground":"#83c092","debugIcon.startForeground":"#83c092","debugIcon.stepBackForeground":"#7fbbb3","debugIcon.stepIntoForeground":"#7fbbb3","debugIcon.stepOutForeground":"#7fbbb3","debugIcon.stepOverForeground":"#7fbbb3","debugIcon.stopForeground":"#e67e80","debugTokenExpression.boolean":"#d699b6","debugTokenExpression.error":"#e67e80","debugTokenExpression.name":"#7fbbb3","debugTokenExpression.number":"#d699b6","debugTokenExpression.string":"#dbbc7f","debugTokenExpression.value":"#a7c080","debugToolBar.background":"#2d353b","descriptionForeground":"#859289","diffEditor.diagonalFill":"#4f585e","diffEditor.insertedTextBackground":"#569d7930","diffEditor.removedTextBackground":"#da636230","dropdown.background":"#2d353b","dropdown.border":"#4f585e","dropdown.foreground":"#9aa79d","editor.background":"#2d353b","editor.findMatchBackground":"#d77f4840","editor.findMatchHighlightBackground":"#899c4040","editor.findRangeHighlightBackground":"#47525860","editor.foldBackground":"#4f585e80","editor.foreground":"#d3c6aa","editor.hoverHighlightBackground":"#475258b0","editor.inactiveSelectionBackground":"#47525860","editor.lineHighlightBackground":"#3d484d90","editor.lineHighlightBorder":"#4f585e00","editor.rangeHighlightBackground":"#3d484d80","editor.selectionBackground":"#475258c0","editor.selectionHighlightBackground":"#47525860","editor.snippetFinalTabstopHighlightBackground":"#899c4040","editor.snippetFinalTabstopHighlightBorder":"#2d353b","editor.snippetTabstopHighlightBackground":"#3d484d","editor.symbolHighlightBackground":"#5a93a240","editor.wordHighlightBackground":"#47525858","editor.wordHighlightStrongBackground":"#475258b0","editorBracketHighlight.foreground1":"#e67e80","editorBracketHighlight.foreground2":"#dbbc7f","editorBracketHighlight.foreground3":"#a7c080","editorBracketHighlight.foreground4":"#7fbbb3","editorBracketHighlight.foreground5":"#e69875","editorBracketHighlight.foreground6":"#d699b6","editorBracketHighlight.unexpectedBracket.foreground":"#859289","editorBracketMatch.background":"#4f585e","editorBracketMatch.border":"#2d353b00","editorCodeLens.foreground":"#7f897da0","editorCursor.foreground":"#d3c6aa","editorError.background":"#da636200","editorError.foreground":"#da6362","editorGhostText.background":"#2d353b00","editorGhostText.foreground":"#7f897da0","editorGroup.border":"#21272b","editorGroup.dropBackground":"#4f585e60","editorGroupHeader.noTabsBackground":"#2d353b","editorGroupHeader.tabsBackground":"#2d353b","editorGutter.addedBackground":"#899c40a0","editorGutter.background":"#2d353b00","editorGutter.commentRangeForeground":"#7f897d","editorGutter.deletedBackground":"#da6362a0","editorGutter.modifiedBackground":"#5a93a2a0","editorHint.foreground":"#b87b9d","editorHoverWidget.background":"#343f44","editorHoverWidget.border":"#475258","editorIndentGuide.activeBackground":"#9aa79d50","editorIndentGuide.background":"#9aa79d20","editorInfo.background":"#5a93a200","editorInfo.foreground":"#5a93a2","editorInlayHint.background":"#2d353b00","editorInlayHint.foreground":"#7f897da0","editorInlayHint.parameterBackground":"#2d353b00","editorInlayHint.parameterForeground":"#7f897da0","editorInlayHint.typeBackground":"#2d353b00","editorInlayHint.typeForeground":"#7f897da0","editorLightBulb.foreground":"#dbbc7f","editorLightBulbAutoFix.foreground":"#83c092","editorLineNumber.activeForeground":"#9aa79de0","editorLineNumber.foreground":"#7f897da0","editorLink.activeForeground":"#a7c080","editorMarkerNavigation.background":"#343f44","editorMarkerNavigationError.background":"#da636280","editorMarkerNavigationInfo.background":"#5a93a280","editorMarkerNavigationWarning.background":"#bf983d80","editorOverviewRuler.addedForeground":"#899c40a0","editorOverviewRuler.border":"#2d353b00","editorOverviewRuler.commonContentForeground":"#859289","editorOverviewRuler.currentContentForeground":"#5a93a2","editorOverviewRuler.deletedForeground":"#da6362a0","editorOverviewRuler.errorForeground":"#e67e80","editorOverviewRuler.findMatchForeground":"#569d79","editorOverviewRuler.incomingContentForeground":"#569d79","editorOverviewRuler.infoForeground":"#d699b6","editorOverviewRuler.modifiedForeground":"#5a93a2a0","editorOverviewRuler.rangeHighlightForeground":"#569d79","editorOverviewRuler.selectionHighlightForeground":"#569d79","editorOverviewRuler.warningForeground":"#dbbc7f","editorOverviewRuler.wordHighlightForeground":"#4f585e","editorOverviewRuler.wordHighlightStrongForeground":"#4f585e","editorRuler.foreground":"#475258a0","editorSuggestWidget.background":"#3d484d","editorSuggestWidget.border":"#3d484d","editorSuggestWidget.foreground":"#d3c6aa","editorSuggestWidget.highlightForeground":"#a7c080","editorSuggestWidget.selectedBackground":"#475258","editorUnnecessaryCode.border":"#2d353b","editorUnnecessaryCode.opacity":"#00000080","editorWarning.background":"#bf983d00","editorWarning.foreground":"#bf983d","editorWhitespace.foreground":"#475258","editorWidget.background":"#2d353b","editorWidget.border":"#4f585e","editorWidget.foreground":"#d3c6aa","errorForeground":"#e67e80","extensionBadge.remoteBackground":"#a7c080","extensionBadge.remoteForeground":"#2d353b","extensionButton.prominentBackground":"#a7c080","extensionButton.prominentForeground":"#2d353b","extensionButton.prominentHoverBackground":"#a7c080d0","extensionIcon.preReleaseForeground":"#e69875","extensionIcon.starForeground":"#83c092","extensionIcon.verifiedForeground":"#a7c080","focusBorder":"#2d353b00","foreground":"#9aa79d","gitDecoration.addedResourceForeground":"#a7c080a0","gitDecoration.conflictingResourceForeground":"#d699b6a0","gitDecoration.deletedResourceForeground":"#e67e80a0","gitDecoration.ignoredResourceForeground":"#4f585e","gitDecoration.modifiedResourceForeground":"#7fbbb3a0","gitDecoration.stageDeletedResourceForeground":"#83c092a0","gitDecoration.stageModifiedResourceForeground":"#83c092a0","gitDecoration.submoduleResourceForeground":"#e69875a0","gitDecoration.untrackedResourceForeground":"#dbbc7fa0","gitlens.closedPullRequestIconColor":"#e67e80","gitlens.decorations.addedForegroundColor":"#a7c080","gitlens.decorations.branchAheadForegroundColor":"#83c092","gitlens.decorations.branchBehindForegroundColor":"#e69875","gitlens.decorations.branchDivergedForegroundColor":"#dbbc7f","gitlens.decorations.branchMissingUpstreamForegroundColor":"#e67e80","gitlens.decorations.branchUnpublishedForegroundColor":"#7fbbb3","gitlens.decorations.branchUpToDateForegroundColor":"#d3c6aa","gitlens.decorations.copiedForegroundColor":"#d699b6","gitlens.decorations.deletedForegroundColor":"#e67e80","gitlens.decorations.ignoredForegroundColor":"#9aa79d","gitlens.decorations.modifiedForegroundColor":"#7fbbb3","gitlens.decorations.renamedForegroundColor":"#d699b6","gitlens.decorations.untrackedForegroundColor":"#dbbc7f","gitlens.gutterBackgroundColor":"#2d353b","gitlens.gutterForegroundColor":"#d3c6aa","gitlens.gutterUncommittedForegroundColor":"#7fbbb3","gitlens.lineHighlightBackgroundColor":"#343f44","gitlens.lineHighlightOverviewRulerColor":"#a7c080","gitlens.mergedPullRequestIconColor":"#d699b6","gitlens.openPullRequestIconColor":"#83c092","gitlens.trailingLineForegroundColor":"#859289","gitlens.unpublishedCommitIconColor":"#dbbc7f","gitlens.unpulledChangesIconColor":"#e69875","gitlens.unpushlishedChangesIconColor":"#7fbbb3","icon.foreground":"#83c092","imagePreview.border":"#2d353b","input.background":"#2d353b00","input.border":"#4f585e","input.foreground":"#d3c6aa","input.placeholderForeground":"#7f897d","inputOption.activeBorder":"#83c092","inputValidation.errorBackground":"#da6362","inputValidation.errorBorder":"#e67e80","inputValidation.errorForeground":"#d3c6aa","inputValidation.infoBackground":"#5a93a2","inputValidation.infoBorder":"#7fbbb3","inputValidation.infoForeground":"#d3c6aa","inputValidation.warningBackground":"#bf983d","inputValidation.warningBorder":"#dbbc7f","inputValidation.warningForeground":"#d3c6aa","issues.closed":"#e67e80","issues.open":"#83c092","keybindingLabel.background":"#2d353b00","keybindingLabel.border":"#272e33","keybindingLabel.bottomBorder":"#21272b","keybindingLabel.foreground":"#d3c6aa","keybindingTable.headerBackground":"#3d484d","keybindingTable.rowsBackground":"#343f44","list.activeSelectionBackground":"#47525880","list.activeSelectionForeground":"#d3c6aa","list.dropBackground":"#343f4480","list.errorForeground":"#e67e80","list.focusBackground":"#47525880","list.focusForeground":"#d3c6aa","list.highlightForeground":"#a7c080","list.hoverBackground":"#2d353b00","list.hoverForeground":"#d3c6aa","list.inactiveFocusBackground":"#47525860","list.inactiveSelectionBackground":"#47525880","list.inactiveSelectionForeground":"#9aa79d","list.invalidItemForeground":"#da6362","list.warningForeground":"#dbbc7f","menu.background":"#2d353b","menu.foreground":"#9aa79d","menu.selectionBackground":"#343f44","menu.selectionForeground":"#d3c6aa","menubar.selectionBackground":"#2d353b","menubar.selectionBorder":"#2d353b","merge.border":"#2d353b00","merge.currentContentBackground":"#5a93a240","merge.currentHeaderBackground":"#5a93a280","merge.incomingContentBackground":"#569d7940","merge.incomingHeaderBackground":"#569d7980","minimap.errorHighlight":"#da636280","minimap.findMatchHighlight":"#569d7960","minimap.selectionHighlight":"#4f585ef0","minimap.warningHighlight":"#bf983d80","minimapGutter.addedBackground":"#899c40a0","minimapGutter.deletedBackground":"#da6362a0","minimapGutter.modifiedBackground":"#5a93a2a0","notebook.cellBorderColor":"#4f585e","notebook.cellHoverBackground":"#2d353b","notebook.cellStatusBarItemHoverBackground":"#343f44","notebook.cellToolbarSeparator":"#4f585e","notebook.focusedCellBackground":"#2d353b","notebook.focusedCellBorder":"#4f585e","notebook.focusedEditorBorder":"#4f585e","notebook.focusedRowBorder":"#4f585e","notebook.inactiveFocusedCellBorder":"#4f585e","notebook.outputContainerBackgroundColor":"#272e33","notebook.selectedCellBorder":"#4f585e","notebookStatusErrorIcon.foreground":"#e67e80","notebookStatusRunningIcon.foreground":"#7fbbb3","notebookStatusSuccessIcon.foreground":"#a7c080","notificationCenterHeader.background":"#3d484d","notificationCenterHeader.foreground":"#d3c6aa","notificationLink.foreground":"#a7c080","notifications.background":"#2d353b","notifications.foreground":"#d3c6aa","notificationsErrorIcon.foreground":"#e67e80","notificationsInfoIcon.foreground":"#7fbbb3","notificationsWarningIcon.foreground":"#dbbc7f","panel.background":"#2d353b","panel.border":"#2d353b","panelInput.border":"#4f585e","panelSection.border":"#21272b","panelSectionHeader.background":"#2d353b","panelTitle.activeBorder":"#a7c080d0","panelTitle.activeForeground":"#d3c6aa","panelTitle.inactiveForeground":"#859289","peekView.border":"#475258","peekViewEditor.background":"#343f44","peekViewEditor.matchHighlightBackground":"#bf983d50","peekViewEditorGutter.background":"#343f44","peekViewResult.background":"#343f44","peekViewResult.fileForeground":"#d3c6aa","peekViewResult.lineForeground":"#9aa79d","peekViewResult.matchHighlightBackground":"#bf983d50","peekViewResult.selectionBackground":"#569d7950","peekViewResult.selectionForeground":"#d3c6aa","peekViewTitle.background":"#475258","peekViewTitleDescription.foreground":"#d3c6aa","peekViewTitleLabel.foreground":"#a7c080","pickerGroup.border":"#a7c0801a","pickerGroup.foreground":"#d3c6aa","ports.iconRunningProcessForeground":"#e69875","problemsErrorIcon.foreground":"#e67e80","problemsInfoIcon.foreground":"#7fbbb3","problemsWarningIcon.foreground":"#dbbc7f","progressBar.background":"#a7c080","quickInputTitle.background":"#343f44","rust_analyzer.inlayHints.background":"#2d353b00","rust_analyzer.inlayHints.foreground":"#7f897da0","rust_analyzer.syntaxTreeBorder":"#e67e80","sash.hoverBorder":"#475258","scrollbar.shadow":"#00000070","scrollbarSlider.activeBackground":"#9aa79d","scrollbarSlider.background":"#4f585e80","scrollbarSlider.hoverBackground":"#4f585e","selection.background":"#475258e0","settings.checkboxBackground":"#2d353b","settings.checkboxBorder":"#4f585e","settings.checkboxForeground":"#e69875","settings.dropdownBackground":"#2d353b","settings.dropdownBorder":"#4f585e","settings.dropdownForeground":"#83c092","settings.focusedRowBackground":"#343f44","settings.headerForeground":"#9aa79d","settings.modifiedItemIndicator":"#7f897d","settings.numberInputBackground":"#2d353b","settings.numberInputBorder":"#4f585e","settings.numberInputForeground":"#d699b6","settings.rowHoverBackground":"#343f44","settings.textInputBackground":"#2d353b","settings.textInputBorder":"#4f585e","settings.textInputForeground":"#7fbbb3","sideBar.background":"#2d353b","sideBar.foreground":"#859289","sideBarSectionHeader.background":"#2d353b00","sideBarSectionHeader.foreground":"#9aa79d","sideBarTitle.foreground":"#9aa79d","statusBar.background":"#2d353b","statusBar.border":"#2d353b","statusBar.debuggingBackground":"#2d353b","statusBar.debuggingForeground":"#e69875","statusBar.foreground":"#9aa79d","statusBar.noFolderBackground":"#2d353b","statusBar.noFolderBorder":"#2d353b","statusBar.noFolderForeground":"#9aa79d","statusBarItem.activeBackground":"#47525870","statusBarItem.errorBackground":"#2d353b","statusBarItem.errorForeground":"#e67e80","statusBarItem.hoverBackground":"#475258a0","statusBarItem.prominentBackground":"#2d353b","statusBarItem.prominentForeground":"#d3c6aa","statusBarItem.prominentHoverBackground":"#475258a0","statusBarItem.remoteBackground":"#2d353b","statusBarItem.remoteForeground":"#9aa79d","statusBarItem.warningBackground":"#2d353b","statusBarItem.warningForeground":"#dbbc7f","symbolIcon.arrayForeground":"#7fbbb3","symbolIcon.booleanForeground":"#d699b6","symbolIcon.classForeground":"#dbbc7f","symbolIcon.colorForeground":"#d3c6aa","symbolIcon.constantForeground":"#83c092","symbolIcon.constructorForeground":"#d699b6","symbolIcon.enumeratorForeground":"#d699b6","symbolIcon.enumeratorMemberForeground":"#83c092","symbolIcon.eventForeground":"#dbbc7f","symbolIcon.fieldForeground":"#d3c6aa","symbolIcon.fileForeground":"#d3c6aa","symbolIcon.folderForeground":"#d3c6aa","symbolIcon.functionForeground":"#a7c080","symbolIcon.interfaceForeground":"#dbbc7f","symbolIcon.keyForeground":"#a7c080","symbolIcon.keywordForeground":"#e67e80","symbolIcon.methodForeground":"#a7c080","symbolIcon.moduleForeground":"#d699b6","symbolIcon.namespaceForeground":"#d699b6","symbolIcon.nullForeground":"#83c092","symbolIcon.numberForeground":"#d699b6","symbolIcon.objectForeground":"#d699b6","symbolIcon.operatorForeground":"#e69875","symbolIcon.packageForeground":"#d699b6","symbolIcon.propertyForeground":"#83c092","symbolIcon.referenceForeground":"#7fbbb3","symbolIcon.snippetForeground":"#d3c6aa","symbolIcon.stringForeground":"#a7c080","symbolIcon.structForeground":"#dbbc7f","symbolIcon.textForeground":"#d3c6aa","symbolIcon.typeParameterForeground":"#83c092","symbolIcon.unitForeground":"#d3c6aa","symbolIcon.variableForeground":"#7fbbb3","tab.activeBackground":"#2d353b","tab.activeBorder":"#a7c080d0","tab.activeForeground":"#d3c6aa","tab.border":"#2d353b","tab.hoverBackground":"#2d353b","tab.hoverForeground":"#d3c6aa","tab.inactiveBackground":"#2d353b","tab.inactiveForeground":"#7f897d","tab.lastPinnedBorder":"#a7c080d0","tab.unfocusedActiveBorder":"#859289","tab.unfocusedActiveForeground":"#9aa79d","tab.unfocusedHoverForeground":"#d3c6aa","tab.unfocusedInactiveForeground":"#7f897d","terminal.ansiBlack":"#343f44","terminal.ansiBlue":"#7fbbb3","terminal.ansiBrightBlack":"#859289","terminal.ansiBrightBlue":"#7fbbb3","terminal.ansiBrightCyan":"#83c092","terminal.ansiBrightGreen":"#a7c080","terminal.ansiBrightMagenta":"#d699b6","terminal.ansiBrightRed":"#e67e80","terminal.ansiBrightWhite":"#d3c6aa","terminal.ansiBrightYellow":"#dbbc7f","terminal.ansiCyan":"#83c092","terminal.ansiGreen":"#a7c080","terminal.ansiMagenta":"#d699b6","terminal.ansiRed":"#e67e80","terminal.ansiWhite":"#d3c6aa","terminal.ansiYellow":"#dbbc7f","terminal.foreground":"#d3c6aa","terminalCursor.foreground":"#d3c6aa","testing.iconErrored":"#e67e80","testing.iconFailed":"#e67e80","testing.iconPassed":"#83c092","testing.iconQueued":"#7fbbb3","testing.iconSkipped":"#d699b6","testing.iconUnset":"#dbbc7f","testing.runAction":"#83c092","textBlockQuote.background":"#272e33","textBlockQuote.border":"#475258","textCodeBlock.background":"#272e33","textLink.activeForeground":"#a7c080c0","textLink.foreground":"#a7c080","textPreformat.foreground":"#dbbc7f","titleBar.activeBackground":"#2d353b","titleBar.activeForeground":"#9aa79d","titleBar.border":"#2d353b","titleBar.inactiveBackground":"#2d353b","titleBar.inactiveForeground":"#7f897d","toolbar.hoverBackground":"#343f44","tree.indentGuidesStroke":"#7f897d","walkThrough.embeddedEditorBackground":"#272e33","welcomePage.buttonBackground":"#343f44","welcomePage.buttonHoverBackground":"#343f44a0","welcomePage.progress.foreground":"#a7c080","welcomePage.tileHoverBackground":"#343f44","widget.shadow":"#00000070"},"displayName":"Everforest Dark","name":"everforest-dark","semanticHighlighting":true,"semanticTokenColors":{"class:python":"#83c092","class:typescript":"#83c092","class:typescriptreact":"#83c092","enum:typescript":"#d699b6","enum:typescriptreact":"#d699b6","enumMember:typescript":"#7fbbb3","enumMember:typescriptreact":"#7fbbb3","interface:typescript":"#83c092","interface:typescriptreact":"#83c092","intrinsic:python":"#d699b6","macro:rust":"#83c092","memberOperatorOverload":"#e69875","module:python":"#7fbbb3","namespace:rust":"#d699b6","namespace:typescript":"#d699b6","namespace:typescriptreact":"#d699b6","operatorOverload":"#e69875","property.defaultLibrary:javascript":"#d699b6","property.defaultLibrary:javascriptreact":"#d699b6","property.defaultLibrary:typescript":"#d699b6","property.defaultLibrary:typescriptreact":"#d699b6","selfKeyword:rust":"#d699b6","variable.defaultLibrary:javascript":"#d699b6","variable.defaultLibrary:javascriptreact":"#d699b6","variable.defaultLibrary:typescript":"#d699b6","variable.defaultLibrary:typescriptreact":"#d699b6"},"tokenColors":[{"scope":"keyword, storage.type.function, storage.type.class, storage.type.enum, storage.type.interface, storage.type.property, keyword.operator.new, keyword.operator.expression, keyword.operator.new, keyword.operator.delete, storage.type.extends","settings":{"foreground":"#e67e80"}},{"scope":"keyword.other.debugger","settings":{"foreground":"#e67e80"}},{"scope":"storage, modifier, keyword.var, entity.name.tag, keyword.control.case, keyword.control.switch","settings":{"foreground":"#e69875"}},{"scope":"keyword.operator","settings":{"foreground":"#e69875"}},{"scope":"string, punctuation.definition.string.end, punctuation.definition.string.begin, punctuation.definition.string.template.begin, punctuation.definition.string.template.end","settings":{"foreground":"#dbbc7f"}},{"scope":"entity.other.attribute-name","settings":{"foreground":"#dbbc7f"}},{"scope":"constant.character.escape, punctuation.quasi.element, punctuation.definition.template-expression, punctuation.section.embedded, storage.type.format, constant.other.placeholder, constant.other.placeholder, variable.interpolation","settings":{"foreground":"#a7c080"}},{"scope":"entity.name.function, support.function, meta.function, meta.function-call, meta.definition.method","settings":{"foreground":"#a7c080"}},{"scope":"keyword.control.at-rule, keyword.control.import, keyword.control.export, storage.type.namespace, punctuation.decorator, keyword.control.directive, keyword.preprocessor, punctuation.definition.preprocessor, punctuation.definition.directive, keyword.other.import, keyword.other.package, entity.name.type.namespace, entity.name.scope-resolution, keyword.other.using, keyword.package, keyword.import, keyword.map","settings":{"foreground":"#83c092"}},{"scope":"storage.type.annotation","settings":{"foreground":"#83c092"}},{"scope":"entity.name.label, constant.other.label","settings":{"foreground":"#83c092"}},{"scope":"support.module, support.node, support.other.module, support.type.object.module, entity.name.type.module, entity.name.type.class.module, keyword.control.module","settings":{"foreground":"#83c092"}},{"scope":"storage.type, support.type, entity.name.type, keyword.type","settings":{"foreground":"#7fbbb3"}},{"scope":"entity.name.type.class, support.class, entity.name.class, entity.other.inherited-class, storage.class","settings":{"foreground":"#7fbbb3"}},{"scope":"constant.numeric","settings":{"foreground":"#d699b6"}},{"scope":"constant.language.boolean","settings":{"foreground":"#d699b6"}},{"scope":"entity.name.function.preprocessor","settings":{"foreground":"#d699b6"}},{"scope":"variable.language.this, variable.language.self, variable.language.super, keyword.other.this, variable.language.special, constant.language.null, constant.language.undefined, constant.language.nan","settings":{"foreground":"#d699b6"}},{"scope":"constant.language, support.constant","settings":{"foreground":"#d699b6"}},{"scope":"variable, support.variable, meta.definition.variable","settings":{"foreground":"#d3c6aa"}},{"scope":"variable.object.property, support.variable.property, variable.other.property, variable.other.object.property, variable.other.enummember, variable.other.member, meta.object-literal.key","settings":{"foreground":"#d3c6aa"}},{"scope":"punctuation, meta.brace, meta.delimiter, meta.bracket","settings":{"foreground":"#d3c6aa"}},{"scope":"heading.1.markdown, markup.heading.setext.1.markdown","settings":{"fontStyle":"bold","foreground":"#e67e80"}},{"scope":"heading.2.markdown, markup.heading.setext.2.markdown","settings":{"fontStyle":"bold","foreground":"#e69875"}},{"scope":"heading.3.markdown","settings":{"fontStyle":"bold","foreground":"#dbbc7f"}},{"scope":"heading.4.markdown","settings":{"fontStyle":"bold","foreground":"#a7c080"}},{"scope":"heading.5.markdown","settings":{"fontStyle":"bold","foreground":"#7fbbb3"}},{"scope":"heading.6.markdown","settings":{"fontStyle":"bold","foreground":"#d699b6"}},{"scope":"punctuation.definition.heading.markdown","settings":{"fontStyle":"regular","foreground":"#859289"}},{"scope":"string.other.link.title.markdown, constant.other.reference.link.markdown, string.other.link.description.markdown","settings":{"fontStyle":"regular","foreground":"#d699b6"}},{"scope":"markup.underline.link.image.markdown, markup.underline.link.markdown","settings":{"fontStyle":"underline","foreground":"#a7c080"}},{"scope":"punctuation.definition.string.begin.markdown, punctuation.definition.string.end.markdown, punctuation.definition.italic.markdown, punctuation.definition.quote.begin.markdown, punctuation.definition.metadata.markdown, punctuation.separator.key-value.markdown, punctuation.definition.constant.markdown","settings":{"foreground":"#859289"}},{"scope":"punctuation.definition.bold.markdown","settings":{"fontStyle":"regular","foreground":"#859289"}},{"scope":"meta.separator.markdown, punctuation.definition.constant.begin.markdown, punctuation.definition.constant.end.markdown","settings":{"fontStyle":"bold","foreground":"#859289"}},{"scope":"markup.italic","settings":{"fontStyle":"italic"}},{"scope":"markup.bold","settings":{"fontStyle":"bold"}},{"scope":"markup.bold markup.italic, markup.italic markup.bold","settings":{"fontStyle":"italic bold"}},{"scope":"punctuation.definition.markdown, punctuation.definition.raw.markdown","settings":{"foreground":"#dbbc7f"}},{"scope":"fenced_code.block.language","settings":{"foreground":"#dbbc7f"}},{"scope":"markup.fenced_code.block.markdown, markup.inline.raw.string.markdown","settings":{"foreground":"#a7c080"}},{"scope":"punctuation.definition.list.begin.markdown","settings":{"foreground":"#e67e80"}},{"scope":"punctuation.definition.heading.restructuredtext","settings":{"fontStyle":"bold","foreground":"#e69875"}},{"scope":"punctuation.definition.field.restructuredtext, punctuation.separator.key-value.restructuredtext, punctuation.definition.directive.restructuredtext, punctuation.definition.constant.restructuredtext, punctuation.definition.italic.restructuredtext, punctuation.definition.table.restructuredtext","settings":{"foreground":"#859289"}},{"scope":"punctuation.definition.bold.restructuredtext","settings":{"fontStyle":"regular","foreground":"#859289"}},{"scope":"entity.name.tag.restructuredtext, punctuation.definition.link.restructuredtext, punctuation.definition.raw.restructuredtext, punctuation.section.raw.restructuredtext","settings":{"foreground":"#83c092"}},{"scope":"constant.other.footnote.link.restructuredtext","settings":{"foreground":"#d699b6"}},{"scope":"support.directive.restructuredtext","settings":{"foreground":"#e67e80"}},{"scope":"entity.name.directive.restructuredtext, markup.raw.restructuredtext, markup.raw.inner.restructuredtext, string.other.link.title.restructuredtext","settings":{"foreground":"#a7c080"}},{"scope":"punctuation.definition.function.latex, punctuation.definition.function.tex, punctuation.definition.keyword.latex, constant.character.newline.tex, punctuation.definition.keyword.tex","settings":{"foreground":"#859289"}},{"scope":"support.function.be.latex","settings":{"foreground":"#e67e80"}},{"scope":"support.function.section.latex, keyword.control.table.cell.latex, keyword.control.table.newline.latex","settings":{"foreground":"#e69875"}},{"scope":"support.class.latex, variable.parameter.latex, variable.parameter.function.latex, variable.parameter.definition.label.latex, constant.other.reference.label.latex","settings":{"foreground":"#dbbc7f"}},{"scope":"keyword.control.preamble.latex","settings":{"foreground":"#d699b6"}},{"scope":"punctuation.separator.namespace.xml","settings":{"foreground":"#859289"}},{"scope":"entity.name.tag.html, entity.name.tag.xml, entity.name.tag.localname.xml","settings":{"foreground":"#e69875"}},{"scope":"entity.other.attribute-name.html, entity.other.attribute-name.xml, entity.other.attribute-name.localname.xml","settings":{"foreground":"#dbbc7f"}},{"scope":"string.quoted.double.html, string.quoted.single.html, punctuation.definition.string.begin.html, punctuation.definition.string.end.html, punctuation.separator.key-value.html, punctuation.definition.string.begin.xml, punctuation.definition.string.end.xml, string.quoted.double.xml, string.quoted.single.xml, punctuation.definition.tag.begin.html, punctuation.definition.tag.end.html, punctuation.definition.tag.xml, meta.tag.xml, meta.tag.preprocessor.xml, meta.tag.other.html, meta.tag.block.any.html, meta.tag.inline.any.html","settings":{"foreground":"#a7c080"}},{"scope":"variable.language.documentroot.xml, meta.tag.sgml.doctype.xml","settings":{"foreground":"#d699b6"}},{"scope":"storage.type.proto","settings":{"foreground":"#dbbc7f"}},{"scope":"string.quoted.double.proto.syntax, string.quoted.single.proto.syntax, string.quoted.double.proto, string.quoted.single.proto","settings":{"foreground":"#a7c080"}},{"scope":"entity.name.class.proto, entity.name.class.message.proto","settings":{"foreground":"#83c092"}},{"scope":"punctuation.definition.entity.css, punctuation.separator.key-value.css, punctuation.terminator.rule.css, punctuation.separator.list.comma.css","settings":{"foreground":"#859289"}},{"scope":"entity.other.attribute-name.class.css","settings":{"foreground":"#e67e80"}},{"scope":"keyword.other.unit","settings":{"foreground":"#e69875"}},{"scope":"entity.other.attribute-name.pseudo-class.css, entity.other.attribute-name.pseudo-element.css","settings":{"foreground":"#dbbc7f"}},{"scope":"string.quoted.single.css, string.quoted.double.css, support.constant.property-value.css, meta.property-value.css, punctuation.definition.string.begin.css, punctuation.definition.string.end.css, constant.numeric.css, support.constant.font-name.css, variable.parameter.keyframe-list.css","settings":{"foreground":"#a7c080"}},{"scope":"support.type.property-name.css","settings":{"foreground":"#83c092"}},{"scope":"support.type.vendored.property-name.css","settings":{"foreground":"#7fbbb3"}},{"scope":"entity.name.tag.css, entity.other.keyframe-offset.css, punctuation.definition.keyword.css, keyword.control.at-rule.keyframes.css, meta.selector.css","settings":{"foreground":"#d699b6"}},{"scope":"punctuation.definition.entity.scss, punctuation.separator.key-value.scss, punctuation.terminator.rule.scss, punctuation.separator.list.comma.scss","settings":{"foreground":"#859289"}},{"scope":"keyword.control.at-rule.keyframes.scss","settings":{"foreground":"#e69875"}},{"scope":"punctuation.definition.interpolation.begin.bracket.curly.scss, punctuation.definition.interpolation.end.bracket.curly.scss","settings":{"foreground":"#dbbc7f"}},{"scope":"punctuation.definition.string.begin.scss, punctuation.definition.string.end.scss, string.quoted.double.scss, string.quoted.single.scss, constant.character.css.sass, meta.property-value.scss","settings":{"foreground":"#a7c080"}},{"scope":"keyword.control.at-rule.include.scss, keyword.control.at-rule.use.scss, keyword.control.at-rule.mixin.scss, keyword.control.at-rule.extend.scss, keyword.control.at-rule.import.scss","settings":{"foreground":"#d699b6"}},{"scope":"meta.function.stylus","settings":{"foreground":"#d3c6aa"}},{"scope":"entity.name.function.stylus","settings":{"foreground":"#dbbc7f"}},{"scope":"string.unquoted.js","settings":{"foreground":"#d3c6aa"}},{"scope":"punctuation.accessor.js, punctuation.separator.key-value.js, punctuation.separator.label.js, keyword.operator.accessor.js","settings":{"foreground":"#859289"}},{"scope":"punctuation.definition.block.tag.jsdoc","settings":{"foreground":"#e67e80"}},{"scope":"storage.type.js, storage.type.function.arrow.js","settings":{"foreground":"#e69875"}},{"scope":"JSXNested","settings":{"foreground":"#d3c6aa"}},{"scope":"punctuation.definition.tag.jsx, entity.other.attribute-name.jsx, punctuation.definition.tag.begin.js.jsx, punctuation.definition.tag.end.js.jsx, entity.other.attribute-name.js.jsx","settings":{"foreground":"#a7c080"}},{"scope":"entity.name.type.module.ts","settings":{"foreground":"#d3c6aa"}},{"scope":"keyword.operator.type.annotation.ts, punctuation.accessor.ts, punctuation.separator.key-value.ts","settings":{"foreground":"#859289"}},{"scope":"punctuation.definition.tag.directive.ts, entity.other.attribute-name.directive.ts","settings":{"foreground":"#a7c080"}},{"scope":"entity.name.type.ts, entity.name.type.interface.ts, entity.other.inherited-class.ts, entity.name.type.alias.ts, entity.name.type.class.ts, entity.name.type.enum.ts","settings":{"foreground":"#83c092"}},{"scope":"storage.type.ts, storage.type.function.arrow.ts, storage.type.type.ts","settings":{"foreground":"#e69875"}},{"scope":"entity.name.type.module.ts","settings":{"foreground":"#7fbbb3"}},{"scope":"keyword.control.import.ts, keyword.control.export.ts, storage.type.namespace.ts","settings":{"foreground":"#d699b6"}},{"scope":"entity.name.type.module.tsx","settings":{"foreground":"#d3c6aa"}},{"scope":"keyword.operator.type.annotation.tsx, punctuation.accessor.tsx, punctuation.separator.key-value.tsx","settings":{"foreground":"#859289"}},{"scope":"punctuation.definition.tag.directive.tsx, entity.other.attribute-name.directive.tsx, punctuation.definition.tag.begin.tsx, punctuation.definition.tag.end.tsx, entity.other.attribute-name.tsx","settings":{"foreground":"#a7c080"}},{"scope":"entity.name.type.tsx, entity.name.type.interface.tsx, entity.other.inherited-class.tsx, entity.name.type.alias.tsx, entity.name.type.class.tsx, entity.name.type.enum.tsx","settings":{"foreground":"#83c092"}},{"scope":"entity.name.type.module.tsx","settings":{"foreground":"#7fbbb3"}},{"scope":"keyword.control.import.tsx, keyword.control.export.tsx, storage.type.namespace.tsx","settings":{"foreground":"#d699b6"}},{"scope":"storage.type.tsx, storage.type.function.arrow.tsx, storage.type.type.tsx, support.class.component.tsx","settings":{"foreground":"#e69875"}},{"scope":"storage.type.function.coffee","settings":{"foreground":"#e69875"}},{"scope":"meta.type-signature.purescript","settings":{"foreground":"#d3c6aa"}},{"scope":"keyword.other.double-colon.purescript, keyword.other.arrow.purescript, keyword.other.big-arrow.purescript","settings":{"foreground":"#e69875"}},{"scope":"entity.name.function.purescript","settings":{"foreground":"#dbbc7f"}},{"scope":"string.quoted.single.purescript, string.quoted.double.purescript, punctuation.definition.string.begin.purescript, punctuation.definition.string.end.purescript, string.quoted.triple.purescript, entity.name.type.purescript","settings":{"foreground":"#a7c080"}},{"scope":"support.other.module.purescript","settings":{"foreground":"#d699b6"}},{"scope":"punctuation.dot.dart","settings":{"foreground":"#859289"}},{"scope":"storage.type.primitive.dart","settings":{"foreground":"#e69875"}},{"scope":"support.class.dart","settings":{"foreground":"#dbbc7f"}},{"scope":"entity.name.function.dart, string.interpolated.single.dart, string.interpolated.double.dart","settings":{"foreground":"#a7c080"}},{"scope":"variable.language.dart","settings":{"foreground":"#7fbbb3"}},{"scope":"keyword.other.import.dart, storage.type.annotation.dart","settings":{"foreground":"#d699b6"}},{"scope":"entity.other.attribute-name.class.pug","settings":{"foreground":"#e67e80"}},{"scope":"storage.type.function.pug","settings":{"foreground":"#e69875"}},{"scope":"entity.other.attribute-name.tag.pug","settings":{"foreground":"#83c092"}},{"scope":"entity.name.tag.pug, storage.type.import.include.pug","settings":{"foreground":"#d699b6"}},{"scope":"meta.function-call.c, storage.modifier.array.bracket.square.c, meta.function.definition.parameters.c","settings":{"foreground":"#d3c6aa"}},{"scope":"punctuation.separator.dot-access.c, constant.character.escape.line-continuation.c","settings":{"foreground":"#859289"}},{"scope":"keyword.control.directive.include.c, punctuation.definition.directive.c, keyword.control.directive.pragma.c, keyword.control.directive.line.c, keyword.control.directive.define.c, keyword.control.directive.conditional.c, keyword.control.directive.diagnostic.error.c, keyword.control.directive.undef.c, keyword.control.directive.conditional.ifdef.c, keyword.control.directive.endif.c, keyword.control.directive.conditional.ifndef.c, keyword.control.directive.conditional.if.c, keyword.control.directive.else.c","settings":{"foreground":"#e67e80"}},{"scope":"punctuation.separator.pointer-access.c","settings":{"foreground":"#e69875"}},{"scope":"variable.other.member.c","settings":{"foreground":"#83c092"}},{"scope":"meta.function-call.cpp, storage.modifier.array.bracket.square.cpp, meta.function.definition.parameters.cpp, meta.body.function.definition.cpp","settings":{"foreground":"#d3c6aa"}},{"scope":"punctuation.separator.dot-access.cpp, constant.character.escape.line-continuation.cpp","settings":{"foreground":"#859289"}},{"scope":"keyword.control.directive.include.cpp, punctuation.definition.directive.cpp, keyword.control.directive.pragma.cpp, keyword.control.directive.line.cpp, keyword.control.directive.define.cpp, keyword.control.directive.conditional.cpp, keyword.control.directive.diagnostic.error.cpp, keyword.control.directive.undef.cpp, keyword.control.directive.conditional.ifdef.cpp, keyword.control.directive.endif.cpp, keyword.control.directive.conditional.ifndef.cpp, keyword.control.directive.conditional.if.cpp, keyword.control.directive.else.cpp, storage.type.namespace.definition.cpp, keyword.other.using.directive.cpp, storage.type.struct.cpp","settings":{"foreground":"#e67e80"}},{"scope":"punctuation.separator.pointer-access.cpp, punctuation.section.angle-brackets.begin.template.call.cpp, punctuation.section.angle-brackets.end.template.call.cpp","settings":{"foreground":"#e69875"}},{"scope":"variable.other.member.cpp","settings":{"foreground":"#83c092"}},{"scope":"keyword.other.using.cs","settings":{"foreground":"#e67e80"}},{"scope":"keyword.type.cs, constant.character.escape.cs, punctuation.definition.interpolation.begin.cs, punctuation.definition.interpolation.end.cs","settings":{"foreground":"#dbbc7f"}},{"scope":"string.quoted.double.cs, string.quoted.single.cs, punctuation.definition.string.begin.cs, punctuation.definition.string.end.cs","settings":{"foreground":"#a7c080"}},{"scope":"variable.other.object.property.cs","settings":{"foreground":"#83c092"}},{"scope":"entity.name.type.namespace.cs","settings":{"foreground":"#d699b6"}},{"scope":"keyword.symbol.fsharp, constant.language.unit.fsharp","settings":{"foreground":"#d3c6aa"}},{"scope":"keyword.format.specifier.fsharp, entity.name.type.fsharp","settings":{"foreground":"#dbbc7f"}},{"scope":"string.quoted.double.fsharp, string.quoted.single.fsharp, punctuation.definition.string.begin.fsharp, punctuation.definition.string.end.fsharp","settings":{"foreground":"#a7c080"}},{"scope":"entity.name.section.fsharp","settings":{"foreground":"#7fbbb3"}},{"scope":"support.function.attribute.fsharp","settings":{"foreground":"#d699b6"}},{"scope":"punctuation.separator.java, punctuation.separator.period.java","settings":{"foreground":"#859289"}},{"scope":"keyword.other.import.java, keyword.other.package.java","settings":{"foreground":"#e67e80"}},{"scope":"storage.type.function.arrow.java, keyword.control.ternary.java","settings":{"foreground":"#e69875"}},{"scope":"variable.other.property.java","settings":{"foreground":"#83c092"}},{"scope":"variable.language.wildcard.java, storage.modifier.import.java, storage.type.annotation.java, punctuation.definition.annotation.java, storage.modifier.package.java, entity.name.type.module.java","settings":{"foreground":"#d699b6"}},{"scope":"keyword.other.import.kotlin","settings":{"foreground":"#e67e80"}},{"scope":"storage.type.kotlin","settings":{"foreground":"#e69875"}},{"scope":"constant.language.kotlin","settings":{"foreground":"#83c092"}},{"scope":"entity.name.package.kotlin, storage.type.annotation.kotlin","settings":{"foreground":"#d699b6"}},{"scope":"entity.name.package.scala","settings":{"foreground":"#d699b6"}},{"scope":"constant.language.scala","settings":{"foreground":"#7fbbb3"}},{"scope":"entity.name.import.scala","settings":{"foreground":"#83c092"}},{"scope":"string.quoted.double.scala, string.quoted.single.scala, punctuation.definition.string.begin.scala, punctuation.definition.string.end.scala, string.quoted.double.interpolated.scala, string.quoted.single.interpolated.scala, string.quoted.triple.scala","settings":{"foreground":"#a7c080"}},{"scope":"entity.name.class, entity.other.inherited-class.scala","settings":{"foreground":"#dbbc7f"}},{"scope":"keyword.declaration.stable.scala, keyword.other.arrow.scala","settings":{"foreground":"#e69875"}},{"scope":"keyword.other.import.scala","settings":{"foreground":"#e67e80"}},{"scope":"keyword.operator.navigation.groovy, meta.method.body.java, meta.definition.method.groovy, meta.definition.method.signature.java","settings":{"foreground":"#d3c6aa"}},{"scope":"punctuation.separator.groovy","settings":{"foreground":"#859289"}},{"scope":"keyword.other.import.groovy, keyword.other.package.groovy, keyword.other.import.static.groovy","settings":{"foreground":"#e67e80"}},{"scope":"storage.type.def.groovy","settings":{"foreground":"#e69875"}},{"scope":"variable.other.interpolated.groovy, meta.method.groovy","settings":{"foreground":"#a7c080"}},{"scope":"storage.modifier.import.groovy, storage.modifier.package.groovy","settings":{"foreground":"#83c092"}},{"scope":"storage.type.annotation.groovy","settings":{"foreground":"#d699b6"}},{"scope":"keyword.type.go","settings":{"foreground":"#e67e80"}},{"scope":"entity.name.package.go","settings":{"foreground":"#83c092"}},{"scope":"keyword.import.go, keyword.package.go","settings":{"foreground":"#d699b6"}},{"scope":"entity.name.type.mod.rust","settings":{"foreground":"#d3c6aa"}},{"scope":"keyword.operator.path.rust, keyword.operator.member-access.rust","settings":{"foreground":"#859289"}},{"scope":"storage.type.rust","settings":{"foreground":"#e69875"}},{"scope":"support.constant.core.rust","settings":{"foreground":"#83c092"}},{"scope":"meta.attribute.rust, variable.language.rust, storage.type.module.rust","settings":{"foreground":"#d699b6"}},{"scope":"meta.function-call.swift, support.function.any-method.swift","settings":{"foreground":"#d3c6aa"}},{"scope":"support.variable.swift","settings":{"foreground":"#83c092"}},{"scope":"keyword.operator.class.php","settings":{"foreground":"#d3c6aa"}},{"scope":"storage.type.trait.php","settings":{"foreground":"#e69875"}},{"scope":"constant.language.php, support.other.namespace.php","settings":{"foreground":"#83c092"}},{"scope":"storage.type.modifier.access.control.public.cpp, storage.type.modifier.access.control.private.cpp","settings":{"foreground":"#7fbbb3"}},{"scope":"keyword.control.import.include.php, storage.type.php","settings":{"foreground":"#d699b6"}},{"scope":"meta.function-call.arguments.python","settings":{"foreground":"#d3c6aa"}},{"scope":"punctuation.definition.decorator.python, punctuation.separator.period.python","settings":{"foreground":"#859289"}},{"scope":"constant.language.python","settings":{"foreground":"#83c092"}},{"scope":"keyword.control.import.python, keyword.control.import.from.python","settings":{"foreground":"#d699b6"}},{"scope":"constant.language.lua","settings":{"foreground":"#83c092"}},{"scope":"entity.name.class.lua","settings":{"foreground":"#7fbbb3"}},{"scope":"meta.function.method.with-arguments.ruby","settings":{"foreground":"#d3c6aa"}},{"scope":"punctuation.separator.method.ruby","settings":{"foreground":"#859289"}},{"scope":"keyword.control.pseudo-method.ruby, storage.type.variable.ruby","settings":{"foreground":"#e69875"}},{"scope":"keyword.other.special-method.ruby","settings":{"foreground":"#a7c080"}},{"scope":"keyword.control.module.ruby, punctuation.definition.constant.ruby","settings":{"foreground":"#d699b6"}},{"scope":"string.regexp.character-class.ruby,string.regexp.interpolated.ruby,punctuation.definition.character-class.ruby,string.regexp.group.ruby, punctuation.section.regexp.ruby, punctuation.definition.group.ruby","settings":{"foreground":"#dbbc7f"}},{"scope":"variable.other.constant.ruby","settings":{"foreground":"#7fbbb3"}},{"scope":"keyword.other.arrow.haskell, keyword.other.big-arrow.haskell, keyword.other.double-colon.haskell","settings":{"foreground":"#e69875"}},{"scope":"storage.type.haskell","settings":{"foreground":"#dbbc7f"}},{"scope":"constant.other.haskell, string.quoted.double.haskell, string.quoted.single.haskell, punctuation.definition.string.begin.haskell, punctuation.definition.string.end.haskell","settings":{"foreground":"#a7c080"}},{"scope":"entity.name.function.haskell","settings":{"foreground":"#7fbbb3"}},{"scope":"entity.name.namespace, meta.preprocessor.haskell","settings":{"foreground":"#83c092"}},{"scope":"keyword.control.import.julia, keyword.control.export.julia","settings":{"foreground":"#e67e80"}},{"scope":"keyword.storage.modifier.julia","settings":{"foreground":"#e69875"}},{"scope":"constant.language.julia","settings":{"foreground":"#83c092"}},{"scope":"support.function.macro.julia","settings":{"foreground":"#d699b6"}},{"scope":"keyword.other.period.elm","settings":{"foreground":"#d3c6aa"}},{"scope":"storage.type.elm","settings":{"foreground":"#dbbc7f"}},{"scope":"keyword.other.r","settings":{"foreground":"#e69875"}},{"scope":"entity.name.function.r, variable.function.r","settings":{"foreground":"#a7c080"}},{"scope":"constant.language.r","settings":{"foreground":"#83c092"}},{"scope":"entity.namespace.r","settings":{"foreground":"#d699b6"}},{"scope":"punctuation.separator.module-function.erlang, punctuation.section.directive.begin.erlang","settings":{"foreground":"#859289"}},{"scope":"keyword.control.directive.erlang, keyword.control.directive.define.erlang","settings":{"foreground":"#e67e80"}},{"scope":"entity.name.type.class.module.erlang","settings":{"foreground":"#dbbc7f"}},{"scope":"string.quoted.double.erlang, string.quoted.single.erlang, punctuation.definition.string.begin.erlang, punctuation.definition.string.end.erlang","settings":{"foreground":"#a7c080"}},{"scope":"keyword.control.directive.export.erlang, keyword.control.directive.module.erlang, keyword.control.directive.import.erlang, keyword.control.directive.behaviour.erlang","settings":{"foreground":"#d699b6"}},{"scope":"variable.other.readwrite.module.elixir, punctuation.definition.variable.elixir","settings":{"foreground":"#83c092"}},{"scope":"constant.language.elixir","settings":{"foreground":"#7fbbb3"}},{"scope":"keyword.control.module.elixir","settings":{"foreground":"#d699b6"}},{"scope":"entity.name.type.value-signature.ocaml","settings":{"foreground":"#d3c6aa"}},{"scope":"keyword.other.ocaml","settings":{"foreground":"#e69875"}},{"scope":"constant.language.variant.ocaml","settings":{"foreground":"#83c092"}},{"scope":"storage.type.sub.perl, storage.type.declare.routine.perl","settings":{"foreground":"#e67e80"}},{"scope":"meta.function.lisp","settings":{"foreground":"#d3c6aa"}},{"scope":"storage.type.function-type.lisp","settings":{"foreground":"#e67e80"}},{"scope":"keyword.constant.lisp","settings":{"foreground":"#a7c080"}},{"scope":"entity.name.function.lisp","settings":{"foreground":"#83c092"}},{"scope":"constant.keyword.clojure, support.variable.clojure, meta.definition.variable.clojure","settings":{"foreground":"#a7c080"}},{"scope":"entity.global.clojure","settings":{"foreground":"#d699b6"}},{"scope":"entity.name.function.clojure","settings":{"foreground":"#7fbbb3"}},{"scope":"meta.scope.if-block.shell, meta.scope.group.shell","settings":{"foreground":"#d3c6aa"}},{"scope":"support.function.builtin.shell, entity.name.function.shell","settings":{"foreground":"#dbbc7f"}},{"scope":"string.quoted.double.shell, string.quoted.single.shell, punctuation.definition.string.begin.shell, punctuation.definition.string.end.shell, string.unquoted.heredoc.shell","settings":{"foreground":"#a7c080"}},{"scope":"keyword.control.heredoc-token.shell, variable.other.normal.shell, punctuation.definition.variable.shell, variable.other.special.shell, variable.other.positional.shell, variable.other.bracket.shell","settings":{"foreground":"#d699b6"}},{"scope":"support.function.builtin.fish","settings":{"foreground":"#e67e80"}},{"scope":"support.function.unix.fish","settings":{"foreground":"#e69875"}},{"scope":"variable.other.normal.fish, punctuation.definition.variable.fish, variable.other.fixed.fish, variable.other.special.fish","settings":{"foreground":"#7fbbb3"}},{"scope":"string.quoted.double.fish, punctuation.definition.string.end.fish, punctuation.definition.string.begin.fish, string.quoted.single.fish","settings":{"foreground":"#a7c080"}},{"scope":"constant.character.escape.single.fish","settings":{"foreground":"#d699b6"}},{"scope":"punctuation.definition.variable.powershell","settings":{"foreground":"#859289"}},{"scope":"entity.name.function.powershell, support.function.attribute.powershell, support.function.powershell","settings":{"foreground":"#dbbc7f"}},{"scope":"string.quoted.single.powershell, string.quoted.double.powershell, punctuation.definition.string.begin.powershell, punctuation.definition.string.end.powershell, string.quoted.double.heredoc.powershell","settings":{"foreground":"#a7c080"}},{"scope":"variable.other.member.powershell","settings":{"foreground":"#83c092"}},{"scope":"string.unquoted.alias.graphql","settings":{"foreground":"#d3c6aa"}},{"scope":"keyword.type.graphql","settings":{"foreground":"#e67e80"}},{"scope":"entity.name.fragment.graphql","settings":{"foreground":"#d699b6"}},{"scope":"entity.name.function.target.makefile","settings":{"foreground":"#e69875"}},{"scope":"variable.other.makefile","settings":{"foreground":"#dbbc7f"}},{"scope":"meta.scope.prerequisites.makefile","settings":{"foreground":"#a7c080"}},{"scope":"string.source.cmake","settings":{"foreground":"#a7c080"}},{"scope":"entity.source.cmake","settings":{"foreground":"#83c092"}},{"scope":"storage.source.cmake","settings":{"foreground":"#d699b6"}},{"scope":"punctuation.definition.map.viml","settings":{"foreground":"#859289"}},{"scope":"storage.type.map.viml","settings":{"foreground":"#e69875"}},{"scope":"constant.character.map.viml, constant.character.map.key.viml","settings":{"foreground":"#a7c080"}},{"scope":"constant.character.map.special.viml","settings":{"foreground":"#7fbbb3"}},{"scope":"constant.language.tmux, constant.numeric.tmux","settings":{"foreground":"#a7c080"}},{"scope":"entity.name.function.package-manager.dockerfile","settings":{"foreground":"#e69875"}},{"scope":"keyword.operator.flag.dockerfile","settings":{"foreground":"#dbbc7f"}},{"scope":"string.quoted.double.dockerfile, string.quoted.single.dockerfile","settings":{"foreground":"#a7c080"}},{"scope":"constant.character.escape.dockerfile","settings":{"foreground":"#83c092"}},{"scope":"entity.name.type.base-image.dockerfile, entity.name.image.dockerfile","settings":{"foreground":"#d699b6"}},{"scope":"punctuation.definition.separator.diff","settings":{"foreground":"#859289"}},{"scope":"markup.deleted.diff, punctuation.definition.deleted.diff","settings":{"foreground":"#e67e80"}},{"scope":"meta.diff.range.context, punctuation.definition.range.diff","settings":{"foreground":"#e69875"}},{"scope":"meta.diff.header.from-file","settings":{"foreground":"#dbbc7f"}},{"scope":"markup.inserted.diff, punctuation.definition.inserted.diff","settings":{"foreground":"#a7c080"}},{"scope":"markup.changed.diff, punctuation.definition.changed.diff","settings":{"foreground":"#7fbbb3"}},{"scope":"punctuation.definition.from-file.diff","settings":{"foreground":"#d699b6"}},{"scope":"entity.name.section.group-title.ini, punctuation.definition.entity.ini","settings":{"foreground":"#e67e80"}},{"scope":"punctuation.separator.key-value.ini","settings":{"foreground":"#e69875"}},{"scope":"string.quoted.double.ini, string.quoted.single.ini, punctuation.definition.string.begin.ini, punctuation.definition.string.end.ini","settings":{"foreground":"#a7c080"}},{"scope":"keyword.other.definition.ini","settings":{"foreground":"#83c092"}},{"scope":"support.function.aggregate.sql","settings":{"foreground":"#dbbc7f"}},{"scope":"string.quoted.single.sql, punctuation.definition.string.end.sql, punctuation.definition.string.begin.sql, string.quoted.double.sql","settings":{"foreground":"#a7c080"}},{"scope":"support.type.graphql","settings":{"foreground":"#dbbc7f"}},{"scope":"variable.parameter.graphql","settings":{"foreground":"#7fbbb3"}},{"scope":"constant.character.enum.graphql","settings":{"foreground":"#83c092"}},{"scope":"punctuation.support.type.property-name.begin.json, punctuation.support.type.property-name.end.json, punctuation.separator.dictionary.key-value.json, punctuation.definition.string.begin.json, punctuation.definition.string.end.json, punctuation.separator.dictionary.pair.json, punctuation.separator.array.json","settings":{"foreground":"#859289"}},{"scope":"support.type.property-name.json","settings":{"foreground":"#e69875"}},{"scope":"string.quoted.double.json","settings":{"foreground":"#a7c080"}},{"scope":"punctuation.separator.key-value.mapping.yaml","settings":{"foreground":"#859289"}},{"scope":"string.unquoted.plain.out.yaml, string.quoted.single.yaml, string.quoted.double.yaml, punctuation.definition.string.begin.yaml, punctuation.definition.string.end.yaml, string.unquoted.plain.in.yaml, string.unquoted.block.yaml","settings":{"foreground":"#a7c080"}},{"scope":"punctuation.definition.anchor.yaml, punctuation.definition.block.sequence.item.yaml","settings":{"foreground":"#83c092"}},{"scope":"keyword.key.toml","settings":{"foreground":"#e69875"}},{"scope":"string.quoted.single.basic.line.toml, string.quoted.single.literal.line.toml, punctuation.definition.keyValuePair.toml","settings":{"foreground":"#a7c080"}},{"scope":"constant.other.boolean.toml","settings":{"foreground":"#7fbbb3"}},{"scope":"entity.other.attribute-name.table.toml, punctuation.definition.table.toml, entity.other.attribute-name.table.array.toml, punctuation.definition.table.array.toml","settings":{"foreground":"#d699b6"}},{"scope":"comment, string.comment, punctuation.definition.comment","settings":{"fontStyle":"italic","foreground":"#859289"}}],"type":"dark"}'));export{e as default}; ================================================ FILE: jesse/static/_nuxt/BgYniUM_.js ================================================ const n=Object.freeze(JSON.parse('{"displayName":"Diff","name":"diff","patterns":[{"captures":{"1":{"name":"punctuation.definition.separator.diff"}},"match":"^((\\\\*{15})|(={67})|(-{3}))$\\\\n?","name":"meta.separator.diff"},{"match":"^\\\\d+(,\\\\d+)*(a|d|c)\\\\d+(,\\\\d+)*$\\\\n?","name":"meta.diff.range.normal"},{"captures":{"1":{"name":"punctuation.definition.range.diff"},"2":{"name":"meta.toc-list.line-number.diff"},"3":{"name":"punctuation.definition.range.diff"}},"match":"^(@@)\\\\s*(.+?)\\\\s*(@@)($\\\\n?)?","name":"meta.diff.range.unified"},{"captures":{"3":{"name":"punctuation.definition.range.diff"},"4":{"name":"punctuation.definition.range.diff"},"6":{"name":"punctuation.definition.range.diff"},"7":{"name":"punctuation.definition.range.diff"}},"match":"^(((\\\\-{3}) .+ (\\\\-{4}))|((\\\\*{3}) .+ (\\\\*{4})))$\\\\n?","name":"meta.diff.range.context"},{"match":"^diff --git a/.*$\\\\n?","name":"meta.diff.header.git"},{"match":"^diff (-|\\\\S+\\\\s+\\\\S+).*$\\\\n?","name":"meta.diff.header.command"},{"captures":{"4":{"name":"punctuation.definition.from-file.diff"},"6":{"name":"punctuation.definition.from-file.diff"},"7":{"name":"punctuation.definition.from-file.diff"}},"match":"(^(((-{3}) .+)|((\\\\*{3}) .+))$\\\\n?|^(={4}) .+(?= - ))","name":"meta.diff.header.from-file"},{"captures":{"2":{"name":"punctuation.definition.to-file.diff"},"3":{"name":"punctuation.definition.to-file.diff"},"4":{"name":"punctuation.definition.to-file.diff"}},"match":"(^(\\\\+{3}) .+$\\\\n?| (-) .* (={4})$\\\\n?)","name":"meta.diff.header.to-file"},{"captures":{"3":{"name":"punctuation.definition.inserted.diff"},"6":{"name":"punctuation.definition.inserted.diff"}},"match":"^(((>)( .*)?)|((\\\\+).*))$\\\\n?","name":"markup.inserted.diff"},{"captures":{"1":{"name":"punctuation.definition.changed.diff"}},"match":"^(!).*$\\\\n?","name":"markup.changed.diff"},{"captures":{"3":{"name":"punctuation.definition.deleted.diff"},"6":{"name":"punctuation.definition.deleted.diff"}},"match":"^(((<)( .*)?)|((-).*))$\\\\n?","name":"markup.deleted.diff"},{"begin":"^(#)","captures":{"1":{"name":"punctuation.definition.comment.diff"}},"comment":"Git produces unified diffs with embedded comments\\"","end":"\\\\n","name":"comment.line.number-sign.diff"},{"match":"^index [0-9a-f]{7,40}\\\\.\\\\.[0-9a-f]{7,40}.*$\\\\n?","name":"meta.diff.index.git"},{"captures":{"1":{"name":"punctuation.separator.key-value.diff"},"2":{"name":"meta.toc-list.file-name.diff"}},"match":"^Index(:) (.+)$\\\\n?","name":"meta.diff.index"},{"match":"^Only in .*: .*$\\\\n?","name":"meta.diff.only-in"}],"scopeName":"source.diff"}')),e=[n];export{e as default}; ================================================ FILE: jesse/static/_nuxt/BiFfXF7O.js ================================================ import e from"./COK4E0Yg.js";const t=Object.freeze(JSON.parse(`{"displayName":"SAS","fileTypes":["sas"],"foldingStartMarker":"(?i:(proc|data|%macro).*;$)","foldingStopMarker":"(?i:(run|quit|%mend)\\\\s?);","name":"sas","patterns":[{"include":"#starComment"},{"include":"#blockComment"},{"include":"#macro"},{"include":"#constant"},{"include":"#quote"},{"include":"#operator"},{"begin":"\\\\b(?i:(data))\\\\s+","beginCaptures":{"1":{"name":"keyword.other.sas"}},"comment":"Begins a DATA step and provides names for any output SAS data sets, views, or programs.","end":"(;)","patterns":[{"include":"#blockComment"},{"include":"#dataSet"},{"captures":{"1":{"name":"keyword.other.sas"},"2":{"name":"keyword.other.sas"}},"match":"(?i:(?:(stack|pgm|view|source)\\\\s?=\\\\s?)|(debug|nesting|nolist))"}]},{"begin":"\\\\b(?i:(set|update|modify|merge))\\\\s+","beginCaptures":{"1":{"name":"support.function.sas"},"2":{"name":"entity.name.class.sas"},"3":{"name":"entity.name.class.sas"}},"comment":"DATA set File-Handling Statements for DATA step","end":"(;)","patterns":[{"include":"#blockComment"},{"include":"#dataSet"}]},{"match":"(?i:\\\\b(if|while|until|for|do|end|then|else|run|quit|cancel|options)\\\\b)","name":"keyword.control.sas"},{"captures":{"1":{"name":"support.class.sas"},"3":{"name":"entity.name.function.sas"}},"match":"(?i:(%(bquote|do|else|end|eval|global|goto|if|inc|include|index|input|length|let|list|local|lowcase|macro|mend|nrbquote|nrquote|nrstr|put|qscan|qsysfunc|quote|run|scan|str|substr|syscall|sysevalf|sysexec|sysfunc|sysrc|then|to|unquote|upcase|until|while|window)\\\\b))\\\\s*(\\\\w*)","name":"keyword.other.sas"},{"begin":"(?i:\\\\b(proc\\\\s*(sql))\\\\b)","beginCaptures":{"1":{"name":"support.function.sas"},"2":{"name":"support.class.sas"}},"comment":"Looks like for this to work there must be a *name* as well as the patterns/include bit.","end":"(?i:\\\\b(quit)\\\\s*;)","endCaptures":{"1":{"name":"keyword.control.sas"}},"name":"meta.sql.sas","patterns":[{"include":"#starComment"},{"include":"#blockComment"},{"include":"source.sql"}]},{"match":"(?i:\\\\b(by|label|format)\\\\b)","name":"keyword.datastep.sas"},{"captures":{"1":{"name":"support.function.sas"},"2":{"name":"support.class.sas"}},"match":"(?i:\\\\b(proc (\\\\w+))\\\\b)","name":"meta.function-call.sas"},{"match":"(?i:\\\\b(_n_|_error_)\\\\b)","name":"variable.language.sas"},{"captures":{"1":{"name":"support.class.sas"}},"match":"\\\\b(?i:(_all_|_character_|_cmd_|_freq_|_i_|_infile_|_last_|_msg_|_null_|_numeric_|_temporary_|_type_|abort|abs|addr|adjrsq|airy|alpha|alter|altlog|altprint|and|arcos|array|arsin|as|atan|attrc|attrib|attrn|authserver|autoexec|awscontrol|awsdef|awsmenu|awsmenumerge|awstitle|backward|band|base|betainv|between|blocksize|blshift|bnot|bor|brshift|bufno|bufsize|bxor|by|byerr|byline|byte|calculated|call|cards|cards4|case|catcache|cbufno|cdf|ceil|center|cexist|change|chisq|cinv|class|cleanup|close|cnonct|cntllev|coalesce|codegen|col|collate|collin|column|comamid|comaux1|comaux2|comdef|compbl|compound|compress|config|continue|convert|cos|cosh|cpuid|create|cross|crosstab|css|curobs|cv|daccdb|daccdbsl|daccsl|daccsyd|dacctab|dairy|datalines|datalines4|date|datejul|datepart|datetime|day|dbcslang|dbcstype|dclose|ddm|delete|delimiter|depdb|depdbsl|depsl|depsyd|deptab|dequote|descending|descript|design=|device|dflang|dhms|dif|digamma|dim|dinfo|display|distinct|dkricond|dkrocond|dlm|dnum|do|dopen|doptname|doptnum|dread|drop|dropnote|dsname|dsnferr|echo|else|emaildlg|emailid|emailpw|emailserver|emailsys|encrypt|end|endsas|engine|eof|eov|erf|erfc|error|errorcheck|errors|exist|exp|fappend|fclose|fcol|fdelete|feedback|fetch|fetchobs|fexist|fget|file|fileclose|fileexist|filefmt|filename|fileref|filevar|finfo|finv|fipname|fipnamel|fipstate|first|firstobs|floor|fmterr|fmtsearch|fnonct|fnote|font|fontalias|footnote[1-9]?|fopen|foptname|foptnum|force|formatted|formchar|formdelim|formdlim|forward|fpoint|fpos|fput|fread|frewind|frlen|from|fsep|full|fullstimer|fuzz|fwrite|gaminv|gamma|getoption|getvarc|getvarn|go|goto|group|gwindow|hbar|hbound|helpenv|helploc|hms|honorappearance|hosthelp|hostprint|hour|hpct|html|hvar|ibessel|ibr|id|if|index|indexc|indexw|infile|informat|initcmd|initstmt|inner|input|inputc|inputn|inr|insert|int|intck|intnx|into|intrr|invaliddata|irr|is|jbessel|join|juldate|keep|kentb|kurtosis|label|lag|last|lbound|leave|left|length|levels|lgamma|lib|libname|library|libref|line|linesize|link|list|log|log10|log2|logpdf|logpmf|logsdf|lostcard|lowcase|lrecl|ls|macro|macrogen|maps|mautosource|max|maxdec|maxr|mdy|mean|measures|median|memtype|merge|merror|min|minute|missing|missover|mlogic|mod|mode|model|modify|month|mopen|mort|mprint|mrecall|msglevel|msymtabmax|mvarsize|myy|n|nest|netpv|new|news|nmiss|no|nobatch|nobs|nocaps|nocardimage|nocenter|nocharcode|nocmdmac|nocol|nocum|nodate|nodbcs|nodetails|nodmr|nodms|nodmsbatch|nodup|nodupkey|noduplicates|noechoauto|noequals|noerrorabend|noexitwindows|nofullstimer|noicon|noimplmac|noint|nolist|noloadlist|nomiss|nomlogic|nomprint|nomrecall|nomsgcase|nomstored|nomultenvappl|nonotes|nonumber|noobs|noovp|nopad|nopercent|noprint|noprintinit|normal|norow|norsasuser|nosetinit|nosource|nosource2|nosplash|nosymbolgen|note|notes|notitle|notitles|notsorted|noverbose|noxsync|noxwait|npv|null|number|numkeys|nummousekeys|nway|obs|ods|on|open|option|order|ordinal|otherwise|out|outer|outp=|output|over|ovp|p(1|5|10|25|50|75|90|95|99)|pad|pad2|page|pageno|pagesize|paired|parm|parmcards|path|pathdll|pathname|pdf|peek|peekc|pfkey|pmf|point|poisson|poke|position|printer|probbeta|probbnml|probchi|probf|probgam|probhypr|probit|probnegb|probnorm|probsig|probt|procleave|project|prt|propcase|prxmatch|prxparse|prxchange|prxposn|ps|put|putc|putn|pw|pwreq|qtr|quote|r|ranbin|rancau|ranexp|rangam|range|ranks|rannor|ranpoi|rantbl|rantri|ranuni|read|recfm|register|regr|remote|remove|rename|repeat|replace|resolve|retain|return|reuse|reverse|rewind|right|round|rsquare|rtf|rtrace|rtraceloc|s|s2|samploc|sasautos|sascontrol|sasfrscr|sashelp|sasmsg|sasmstore|sasscript|sasuser|saving|scan|sdf|second|select|selection|separated|seq|serror|set|setcomm|setot|sign|simple|sin|sinh|siteinfo|skewness|skip|sle|sls|sortedby|sortpgm|sortseq|sortsize|soundex|source2|spedis|splashlocation|split|spool|sqrt|start|std|stderr|stdin|stfips|stimer|stname|stnamel|stop|stopover|strip|subgroup|subpopn|substr|sum|sumwgt|symbol|symbolgen|symget|symput|sysget|sysin|sysleave|sysmsg|sysparm|sysprint|sysprintfont|sysprod|sysrc|system|t|table|tables|tan|tanh|tapeclose|tbufsize|terminal|test|then|time|timepart|tinv|title[1-9]?|tnonct|to|today|tol|tooldef|totper|transformout|translate|trantab|tranwrd|trigamma|trim|trimn|trunc|truncover|type|unformatted|uniform|union|until|upcase|update|user|usericon|uss|validate|value|var|varfmt|varinfmt|varlabel|varlen|varname|varnum|varray|varrayx|vartype|verify|vformat|vformatd|vformatdx|vformatn|vformatnx|vformatw|vformatwx|vformatx|vinarray|vinarrayx|vinformat|vinformatd|vinformatdx|vinformatn|vinformatnx|vinformatw|vinformatwx|vinformatx|vlabel|vlabelx|vlength|vlengthx|vname|vnamex|vnferr|vtype|vtypex|weekday|weight|when|where|while|wincharset|window|work|workinit|workterm|write|wsum|wsumx|x|xsync|xwait|year|yearcutoff|yes|yyq|zipfips|zipname|zipnamel|zipstate))\\\\b","name":"support.function.sas"}],"repository":{"blockComment":{"patterns":[{"begin":"\\\\/\\\\*","end":"\\\\*\\\\/","name":"comment.block.slashstar.sas"}]},"constant":{"patterns":[{"comment":"numeric constant","match":"(?^~]?=(:)?|>|<|\\\\||!|¦|¬|^|~|<>|><|\\\\|\\\\|)","name":"keyword.operator.sas"}]},"quote":{"patterns":[{"begin":"(?","match":"\\\\b\\\\d+\\\\.\\\\d+\\\\b","name":"constant.numeric.qml"},{"description":"as ","match":"(?<=as)\\\\s+[A-Z]\\\\w*\\\\b","name":"entity.name.type.qml"},{"include":"#identifier"},{"include":"#comment"}]}]},"keywords":{"patterns":[{"include":"#data-types"},{"include":"#reserved-words"}]},"method-attributes":{"patterns":[{"begin":"\\\\b(function)\\\\b","beginCaptures":{"1":{"name":"storage.type.qml"}},"end":"(?<=\\\\})","patterns":[{"begin":"([_a-zA-Z]\\\\w*)\\\\s*\\\\(","beginCaptures":{"1":{"name":"entity.name.function.qml"}},"end":"\\\\)","patterns":[{"include":"#identifier"}]},{"begin":"\\\\{","contentName":"meta.embedded.block.js","end":"\\\\}","patterns":[{"include":"source.js"}]}]}]},"object":{"patterns":[{"begin":"\\\\b([A-Z]\\\\w*)\\\\s*\\\\{","beginCaptures":{"1":{"name":"entity.name.type.qml"}},"end":"\\\\}","patterns":[{"include":"$self"},{"include":"#group-attributes"},{"include":"#method-attributes"},{"include":"#signal-attributes"},{"include":"#comment"},{"include":"#attributes-dictionary"}]}]},"reserved-words":{"patterns":[{"description":"Attribute modifier.","match":"\\\\b(default|alias|readonly|required)\\\\b","name":"storage.modifier.qml"},{"match":"\\\\b(property|id|on)\\\\b","name":"keyword.other.qml"},{"description":"Special words for signal handlers including property change.","match":"\\\\b(on[A-Z]\\\\w*(Changed)?)\\\\b","name":"keyword.control.qml"}]},"signal-attributes":{"patterns":[{"begin":"\\\\b(signal)\\\\b","beginCaptures":{"1":{"name":"storage.type.qml"}},"end":"$","patterns":[{"begin":"([_a-zA-Z]\\\\w*)\\\\s*\\\\(","beginCaptures":{"1":{"name":"entity.name.function.qml"}},"end":"\\\\)","patterns":[{"include":"#keywords"},{"include":"#identifier"}]},{"include":"#identifier"},{"include":"#comment"}]}]},"string":{"description":"String literal with double or signle quote.","patterns":[{"begin":"'","end":"'","name":"string.quoted.single.qml"},{"begin":"\\"","end":"\\"","name":"string.quoted.double.qml"}]},"typename":{"description":"The name of type. First letter must be uppercase.","patterns":[{"match":"\\\\b[A-Z]\\\\w*\\\\b","name":"entity.name.type.qml"}]}},"scopeName":"source.qml","embeddedLangs":["javascript"]}`)),a=[...e,t];export{a as default}; ================================================ FILE: jesse/static/_nuxt/BjABl1g7.js ================================================ const n=Object.freeze(JSON.parse(`{"displayName":"INI","name":"ini","patterns":[{"begin":"(^[ \\\\t]+)?(?=#)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.ini"}},"end":"(?!\\\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.ini"}},"end":"\\\\n","name":"comment.line.number-sign.ini"}]},{"begin":"(^[ \\\\t]+)?(?=;)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.ini"}},"end":"(?!\\\\G)","patterns":[{"begin":";","beginCaptures":{"0":{"name":"punctuation.definition.comment.ini"}},"end":"\\\\n","name":"comment.line.semicolon.ini"}]},{"captures":{"1":{"name":"keyword.other.definition.ini"},"2":{"name":"punctuation.separator.key-value.ini"}},"match":"\\\\b([a-zA-Z0-9_.-]+)\\\\b\\\\s*(=)"},{"captures":{"1":{"name":"punctuation.definition.entity.ini"},"3":{"name":"punctuation.definition.entity.ini"}},"match":"^(\\\\[)(.*?)(\\\\])","name":"entity.name.section.group-title.ini"},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ini"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.ini"}},"name":"string.quoted.single.ini","patterns":[{"match":"\\\\\\\\.","name":"constant.character.escape.ini"}]},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ini"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.ini"}},"name":"string.quoted.double.ini"}],"scopeName":"source.ini","aliases":["properties"]}`)),i=[n];export{i as default}; ================================================ FILE: jesse/static/_nuxt/BjQB5zDj.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"dotEnv","name":"dotenv","patterns":[{"captures":{"1":{"patterns":[{"include":"#line-comment"}]}},"comment":"Full Line Comment","match":"^\\\\s?(#.*$)\\\\n"},{"captures":{"1":{"patterns":[{"include":"#key"}]},"2":{"name":"keyword.operator.assignment.dotenv"},"3":{"name":"property.value.dotenv","patterns":[{"include":"#line-comment"},{"include":"#double-quoted-string"},{"include":"#single-quoted-string"},{"include":"#interpolation"}]}},"comment":"ENV entry","match":"^\\\\s?(.*?)\\\\s?(\\\\=)(.*)$"}],"repository":{"double-quoted-string":{"captures":{"1":{"patterns":[{"include":"#interpolation"},{"include":"#escape-characters"}]}},"comment":"Double Quoted String","match":"\\"(.*)\\"","name":"string.quoted.double.dotenv"},"escape-characters":{"comment":"Escape characters","match":"\\\\\\\\[nrtfb\\"'\\\\\\\\]|\\\\\\\\u[0123456789ABCDEF]{4}","name":"constant.character.escape.dotenv"},"interpolation":{"captures":{"1":{"name":"keyword.interpolation.begin.dotenv"},"2":{"name":"variable.interpolation.dotenv"},"3":{"name":"keyword.interpolation.end.dotenv"}},"comment":"Interpolation (variable substitution)","match":"(\\\\$\\\\{)(.*)(\\\\})"},"key":{"captures":{"1":{"name":"keyword.key.export.dotenv"},"2":{"name":"variable.key.dotenv","patterns":[{"include":"#variable"}]}},"comment":"Key","match":"(export\\\\s)?(.*)"},"line-comment":{"comment":"Comment","match":"#.*$","name":"comment.line.dotenv"},"single-quoted-string":{"comment":"Single Quoted String","match":"'(.*)'","name":"string.quoted.single.dotenv"},"variable":{"comment":"env variable","match":"[a-zA-Z_]+[a-zA-Z0-9_]*"}},"scopeName":"source.dotenv"}`)),t=[e];export{t as default}; ================================================ FILE: jesse/static/_nuxt/BjtZpFsH.js ================================================ import{a1 as Et}from"./CU_MfyYc.js";/*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var Lt=Object.defineProperty,Ot=Object.getOwnPropertyDescriptor,Nt=Object.getOwnPropertyNames,Rt=Object.prototype.hasOwnProperty,Mt=(e,r,i,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of Nt(r))!Rt.call(e,t)&&t!==i&&Lt(e,t,{get:()=>r[t],enumerable:!(n=Ot(r,t))||n.enumerable});return e},Dt=(e,r,i)=>(Mt(e,r,"default"),i),f={};Dt(f,Et);var Ft=2*60*1e3,Ut=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>Ft&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=f.editor.createWebWorker({moduleId:"vs/language/json/jsonWorker",label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId,enableSchemaRequest:this._defaults.diagnosticsOptions.enableSchemaRequest}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let r;return this._getClient().then(i=>{r=i}).then(i=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(i=>r)}},le;(function(e){function r(i){return typeof i=="string"}e.is=r})(le||(le={}));var Q;(function(e){function r(i){return typeof i=="string"}e.is=r})(Q||(Q={}));var fe;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function r(i){return typeof i=="number"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=r})(fe||(fe={}));var W;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function r(i){return typeof i=="number"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=r})(W||(W={}));var O;(function(e){function r(n,t){return n===Number.MAX_VALUE&&(n=W.MAX_VALUE),t===Number.MAX_VALUE&&(t=W.MAX_VALUE),{line:n,character:t}}e.create=r;function i(n){let t=n;return a.objectLiteral(t)&&a.uinteger(t.line)&&a.uinteger(t.character)}e.is=i})(O||(O={}));var m;(function(e){function r(n,t,o,s){if(a.uinteger(n)&&a.uinteger(t)&&a.uinteger(o)&&a.uinteger(s))return{start:O.create(n,t),end:O.create(o,s)};if(O.is(n)&&O.is(t))return{start:n,end:t};throw new Error(`Range#create called with invalid arguments[${n}, ${t}, ${o}, ${s}]`)}e.create=r;function i(n){let t=n;return a.objectLiteral(t)&&O.is(t.start)&&O.is(t.end)}e.is=i})(m||(m={}));var H;(function(e){function r(n,t){return{uri:n,range:t}}e.create=r;function i(n){let t=n;return a.objectLiteral(t)&&m.is(t.range)&&(a.string(t.uri)||a.undefined(t.uri))}e.is=i})(H||(H={}));var de;(function(e){function r(n,t,o,s){return{targetUri:n,targetRange:t,targetSelectionRange:o,originSelectionRange:s}}e.create=r;function i(n){let t=n;return a.objectLiteral(t)&&m.is(t.targetRange)&&a.string(t.targetUri)&&m.is(t.targetSelectionRange)&&(m.is(t.originSelectionRange)||a.undefined(t.originSelectionRange))}e.is=i})(de||(de={}));var Y;(function(e){function r(n,t,o,s){return{red:n,green:t,blue:o,alpha:s}}e.create=r;function i(n){const t=n;return a.objectLiteral(t)&&a.numberRange(t.red,0,1)&&a.numberRange(t.green,0,1)&&a.numberRange(t.blue,0,1)&&a.numberRange(t.alpha,0,1)}e.is=i})(Y||(Y={}));var ge;(function(e){function r(n,t){return{range:n,color:t}}e.create=r;function i(n){const t=n;return a.objectLiteral(t)&&m.is(t.range)&&Y.is(t.color)}e.is=i})(ge||(ge={}));var pe;(function(e){function r(n,t,o){return{label:n,textEdit:t,additionalTextEdits:o}}e.create=r;function i(n){const t=n;return a.objectLiteral(t)&&a.string(t.label)&&(a.undefined(t.textEdit)||T.is(t))&&(a.undefined(t.additionalTextEdits)||a.typedArray(t.additionalTextEdits,T.is))}e.is=i})(pe||(pe={}));var P;(function(e){e.Comment="comment",e.Imports="imports",e.Region="region"})(P||(P={}));var ve;(function(e){function r(n,t,o,s,u,g){const c={startLine:n,endLine:t};return a.defined(o)&&(c.startCharacter=o),a.defined(s)&&(c.endCharacter=s),a.defined(u)&&(c.kind=u),a.defined(g)&&(c.collapsedText=g),c}e.create=r;function i(n){const t=n;return a.objectLiteral(t)&&a.uinteger(t.startLine)&&a.uinteger(t.startLine)&&(a.undefined(t.startCharacter)||a.uinteger(t.startCharacter))&&(a.undefined(t.endCharacter)||a.uinteger(t.endCharacter))&&(a.undefined(t.kind)||a.string(t.kind))}e.is=i})(ve||(ve={}));var G;(function(e){function r(n,t){return{location:n,message:t}}e.create=r;function i(n){let t=n;return a.defined(t)&&H.is(t.location)&&a.string(t.message)}e.is=i})(G||(G={}));var F;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(F||(F={}));var me;(function(e){e.Unnecessary=1,e.Deprecated=2})(me||(me={}));var he;(function(e){function r(i){const n=i;return a.objectLiteral(n)&&a.string(n.href)}e.is=r})(he||(he={}));var z;(function(e){function r(n,t,o,s,u,g){let c={range:n,message:t};return a.defined(o)&&(c.severity=o),a.defined(s)&&(c.code=s),a.defined(u)&&(c.source=u),a.defined(g)&&(c.relatedInformation=g),c}e.create=r;function i(n){var t;let o=n;return a.defined(o)&&m.is(o.range)&&a.string(o.message)&&(a.number(o.severity)||a.undefined(o.severity))&&(a.integer(o.code)||a.string(o.code)||a.undefined(o.code))&&(a.undefined(o.codeDescription)||a.string((t=o.codeDescription)===null||t===void 0?void 0:t.href))&&(a.string(o.source)||a.undefined(o.source))&&(a.undefined(o.relatedInformation)||a.typedArray(o.relatedInformation,G.is))}e.is=i})(z||(z={}));var U;(function(e){function r(n,t,...o){let s={title:n,command:t};return a.defined(o)&&o.length>0&&(s.arguments=o),s}e.create=r;function i(n){let t=n;return a.defined(t)&&a.string(t.title)&&a.string(t.command)}e.is=i})(U||(U={}));var T;(function(e){function r(o,s){return{range:o,newText:s}}e.replace=r;function i(o,s){return{range:{start:o,end:o},newText:s}}e.insert=i;function n(o){return{range:o,newText:""}}e.del=n;function t(o){const s=o;return a.objectLiteral(s)&&a.string(s.newText)&&m.is(s.range)}e.is=t})(T||(T={}));var Z;(function(e){function r(n,t,o){const s={label:n};return t!==void 0&&(s.needsConfirmation=t),o!==void 0&&(s.description=o),s}e.create=r;function i(n){const t=n;return a.objectLiteral(t)&&a.string(t.label)&&(a.boolean(t.needsConfirmation)||t.needsConfirmation===void 0)&&(a.string(t.description)||t.description===void 0)}e.is=i})(Z||(Z={}));var j;(function(e){function r(i){const n=i;return a.string(n)}e.is=r})(j||(j={}));var _e;(function(e){function r(o,s,u){return{range:o,newText:s,annotationId:u}}e.replace=r;function i(o,s,u){return{range:{start:o,end:o},newText:s,annotationId:u}}e.insert=i;function n(o,s){return{range:o,newText:"",annotationId:s}}e.del=n;function t(o){const s=o;return T.is(s)&&(Z.is(s.annotationId)||j.is(s.annotationId))}e.is=t})(_e||(_e={}));var K;(function(e){function r(n,t){return{textDocument:n,edits:t}}e.create=r;function i(n){let t=n;return a.defined(t)&&re.is(t.textDocument)&&Array.isArray(t.edits)}e.is=i})(K||(K={}));var C;(function(e){function r(n,t,o){let s={kind:"create",uri:n};return t!==void 0&&(t.overwrite!==void 0||t.ignoreIfExists!==void 0)&&(s.options=t),o!==void 0&&(s.annotationId=o),s}e.create=r;function i(n){let t=n;return t&&t.kind==="create"&&a.string(t.uri)&&(t.options===void 0||(t.options.overwrite===void 0||a.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||a.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||j.is(t.annotationId))}e.is=i})(C||(C={}));var ee;(function(e){function r(n,t,o,s){let u={kind:"rename",oldUri:n,newUri:t};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(u.options=o),s!==void 0&&(u.annotationId=s),u}e.create=r;function i(n){let t=n;return t&&t.kind==="rename"&&a.string(t.oldUri)&&a.string(t.newUri)&&(t.options===void 0||(t.options.overwrite===void 0||a.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||a.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||j.is(t.annotationId))}e.is=i})(ee||(ee={}));var te;(function(e){function r(n,t,o){let s={kind:"delete",uri:n};return t!==void 0&&(t.recursive!==void 0||t.ignoreIfNotExists!==void 0)&&(s.options=t),o!==void 0&&(s.annotationId=o),s}e.create=r;function i(n){let t=n;return t&&t.kind==="delete"&&a.string(t.uri)&&(t.options===void 0||(t.options.recursive===void 0||a.boolean(t.options.recursive))&&(t.options.ignoreIfNotExists===void 0||a.boolean(t.options.ignoreIfNotExists)))&&(t.annotationId===void 0||j.is(t.annotationId))}e.is=i})(te||(te={}));var ne;(function(e){function r(i){let n=i;return n&&(n.changes!==void 0||n.documentChanges!==void 0)&&(n.documentChanges===void 0||n.documentChanges.every(t=>a.string(t.kind)?C.is(t)||ee.is(t)||te.is(t):K.is(t)))}e.is=r})(ne||(ne={}));var ke;(function(e){function r(n){return{uri:n}}e.create=r;function i(n){let t=n;return a.defined(t)&&a.string(t.uri)}e.is=i})(ke||(ke={}));var be;(function(e){function r(n,t){return{uri:n,version:t}}e.create=r;function i(n){let t=n;return a.defined(t)&&a.string(t.uri)&&a.integer(t.version)}e.is=i})(be||(be={}));var re;(function(e){function r(n,t){return{uri:n,version:t}}e.create=r;function i(n){let t=n;return a.defined(t)&&a.string(t.uri)&&(t.version===null||a.integer(t.version))}e.is=i})(re||(re={}));var we;(function(e){function r(n,t,o,s){return{uri:n,languageId:t,version:o,text:s}}e.create=r;function i(n){let t=n;return a.defined(t)&&a.string(t.uri)&&a.string(t.languageId)&&a.integer(t.version)&&a.string(t.text)}e.is=i})(we||(we={}));var ie;(function(e){e.PlainText="plaintext",e.Markdown="markdown";function r(i){const n=i;return n===e.PlainText||n===e.Markdown}e.is=r})(ie||(ie={}));var S;(function(e){function r(i){const n=i;return a.objectLiteral(i)&&ie.is(n.kind)&&a.string(n.value)}e.is=r})(S||(S={}));var h;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(h||(h={}));var oe;(function(e){e.PlainText=1,e.Snippet=2})(oe||(oe={}));var Ae;(function(e){e.Deprecated=1})(Ae||(Ae={}));var Ie;(function(e){function r(n,t,o){return{newText:n,insert:t,replace:o}}e.create=r;function i(n){const t=n;return t&&a.string(t.newText)&&m.is(t.insert)&&m.is(t.replace)}e.is=i})(Ie||(Ie={}));var Ee;(function(e){e.asIs=1,e.adjustIndentation=2})(Ee||(Ee={}));var Le;(function(e){function r(i){const n=i;return n&&(a.string(n.detail)||n.detail===void 0)&&(a.string(n.description)||n.description===void 0)}e.is=r})(Le||(Le={}));var Oe;(function(e){function r(i){return{label:i}}e.create=r})(Oe||(Oe={}));var Ne;(function(e){function r(i,n){return{items:i||[],isIncomplete:!!n}}e.create=r})(Ne||(Ne={}));var X;(function(e){function r(n){return n.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}e.fromPlainText=r;function i(n){const t=n;return a.string(t)||a.objectLiteral(t)&&a.string(t.language)&&a.string(t.value)}e.is=i})(X||(X={}));var Re;(function(e){function r(i){let n=i;return!!n&&a.objectLiteral(n)&&(S.is(n.contents)||X.is(n.contents)||a.typedArray(n.contents,X.is))&&(i.range===void 0||m.is(i.range))}e.is=r})(Re||(Re={}));var Me;(function(e){function r(i,n){return n?{label:i,documentation:n}:{label:i}}e.create=r})(Me||(Me={}));var De;(function(e){function r(i,n,...t){let o={label:i};return a.defined(n)&&(o.documentation=n),a.defined(t)?o.parameters=t:o.parameters=[],o}e.create=r})(De||(De={}));var V;(function(e){e.Text=1,e.Read=2,e.Write=3})(V||(V={}));var Fe;(function(e){function r(i,n){let t={range:i};return a.number(n)&&(t.kind=n),t}e.create=r})(Fe||(Fe={}));var _;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(_||(_={}));var Ue;(function(e){e.Deprecated=1})(Ue||(Ue={}));var Te;(function(e){function r(i,n,t,o,s){let u={name:i,kind:n,location:{uri:o,range:t}};return s&&(u.containerName=s),u}e.create=r})(Te||(Te={}));var je;(function(e){function r(i,n,t,o){return o!==void 0?{name:i,kind:n,location:{uri:t,range:o}}:{name:i,kind:n,location:{uri:t}}}e.create=r})(je||(je={}));var xe;(function(e){function r(n,t,o,s,u,g){let c={name:n,detail:t,kind:o,range:s,selectionRange:u};return g!==void 0&&(c.children=g),c}e.create=r;function i(n){let t=n;return t&&a.string(t.name)&&a.number(t.kind)&&m.is(t.range)&&m.is(t.selectionRange)&&(t.detail===void 0||a.string(t.detail))&&(t.deprecated===void 0||a.boolean(t.deprecated))&&(t.children===void 0||Array.isArray(t.children))&&(t.tags===void 0||Array.isArray(t.tags))}e.is=i})(xe||(xe={}));var ye;(function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"})(ye||(ye={}));var q;(function(e){e.Invoked=1,e.Automatic=2})(q||(q={}));var Pe;(function(e){function r(n,t,o){let s={diagnostics:n};return t!=null&&(s.only=t),o!=null&&(s.triggerKind=o),s}e.create=r;function i(n){let t=n;return a.defined(t)&&a.typedArray(t.diagnostics,z.is)&&(t.only===void 0||a.typedArray(t.only,a.string))&&(t.triggerKind===void 0||t.triggerKind===q.Invoked||t.triggerKind===q.Automatic)}e.is=i})(Pe||(Pe={}));var Ve;(function(e){function r(n,t,o){let s={title:n},u=!0;return typeof t=="string"?(u=!1,s.kind=t):U.is(t)?s.command=t:s.edit=t,u&&o!==void 0&&(s.kind=o),s}e.create=r;function i(n){let t=n;return t&&a.string(t.title)&&(t.diagnostics===void 0||a.typedArray(t.diagnostics,z.is))&&(t.kind===void 0||a.string(t.kind))&&(t.edit!==void 0||t.command!==void 0)&&(t.command===void 0||U.is(t.command))&&(t.isPreferred===void 0||a.boolean(t.isPreferred))&&(t.edit===void 0||ne.is(t.edit))}e.is=i})(Ve||(Ve={}));var Se;(function(e){function r(n,t){let o={range:n};return a.defined(t)&&(o.data=t),o}e.create=r;function i(n){let t=n;return a.defined(t)&&m.is(t.range)&&(a.undefined(t.command)||U.is(t.command))}e.is=i})(Se||(Se={}));var Be;(function(e){function r(n,t){return{tabSize:n,insertSpaces:t}}e.create=r;function i(n){let t=n;return a.defined(t)&&a.uinteger(t.tabSize)&&a.boolean(t.insertSpaces)}e.is=i})(Be||(Be={}));var We;(function(e){function r(n,t,o){return{range:n,target:t,data:o}}e.create=r;function i(n){let t=n;return a.defined(t)&&m.is(t.range)&&(a.undefined(t.target)||a.string(t.target))}e.is=i})(We||(We={}));var He;(function(e){function r(n,t){return{range:n,parent:t}}e.create=r;function i(n){let t=n;return a.objectLiteral(t)&&m.is(t.range)&&(t.parent===void 0||e.is(t.parent))}e.is=i})(He||(He={}));var ze;(function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator"})(ze||(ze={}));var Xe;(function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"})(Xe||(Xe={}));var qe;(function(e){function r(i){const n=i;return a.objectLiteral(n)&&(n.resultId===void 0||typeof n.resultId=="string")&&Array.isArray(n.data)&&(n.data.length===0||typeof n.data[0]=="number")}e.is=r})(qe||(qe={}));var Je;(function(e){function r(n,t){return{range:n,text:t}}e.create=r;function i(n){const t=n;return t!=null&&m.is(t.range)&&a.string(t.text)}e.is=i})(Je||(Je={}));var $e;(function(e){function r(n,t,o){return{range:n,variableName:t,caseSensitiveLookup:o}}e.create=r;function i(n){const t=n;return t!=null&&m.is(t.range)&&a.boolean(t.caseSensitiveLookup)&&(a.string(t.variableName)||t.variableName===void 0)}e.is=i})($e||($e={}));var Qe;(function(e){function r(n,t){return{range:n,expression:t}}e.create=r;function i(n){const t=n;return t!=null&&m.is(t.range)&&(a.string(t.expression)||t.expression===void 0)}e.is=i})(Qe||(Qe={}));var Ye;(function(e){function r(n,t){return{frameId:n,stoppedLocation:t}}e.create=r;function i(n){const t=n;return a.defined(t)&&m.is(n.stoppedLocation)}e.is=i})(Ye||(Ye={}));var se;(function(e){e.Type=1,e.Parameter=2;function r(i){return i===1||i===2}e.is=r})(se||(se={}));var ae;(function(e){function r(n){return{value:n}}e.create=r;function i(n){const t=n;return a.objectLiteral(t)&&(t.tooltip===void 0||a.string(t.tooltip)||S.is(t.tooltip))&&(t.location===void 0||H.is(t.location))&&(t.command===void 0||U.is(t.command))}e.is=i})(ae||(ae={}));var Ge;(function(e){function r(n,t,o){const s={position:n,label:t};return o!==void 0&&(s.kind=o),s}e.create=r;function i(n){const t=n;return a.objectLiteral(t)&&O.is(t.position)&&(a.string(t.label)||a.typedArray(t.label,ae.is))&&(t.kind===void 0||se.is(t.kind))&&t.textEdits===void 0||a.typedArray(t.textEdits,T.is)&&(t.tooltip===void 0||a.string(t.tooltip)||S.is(t.tooltip))&&(t.paddingLeft===void 0||a.boolean(t.paddingLeft))&&(t.paddingRight===void 0||a.boolean(t.paddingRight))}e.is=i})(Ge||(Ge={}));var Ze;(function(e){function r(i){return{kind:"snippet",value:i}}e.createSnippet=r})(Ze||(Ze={}));var Ke;(function(e){function r(i,n,t,o){return{insertText:i,filterText:n,range:t,command:o}}e.create=r})(Ke||(Ke={}));var Ce;(function(e){function r(i){return{items:i}}e.create=r})(Ce||(Ce={}));var et;(function(e){e.Invoked=0,e.Automatic=1})(et||(et={}));var tt;(function(e){function r(i,n){return{range:i,text:n}}e.create=r})(tt||(tt={}));var nt;(function(e){function r(i,n){return{triggerKind:i,selectedCompletionInfo:n}}e.create=r})(nt||(nt={}));var rt;(function(e){function r(i){const n=i;return a.objectLiteral(n)&&Q.is(n.uri)&&a.string(n.name)}e.is=r})(rt||(rt={}));var it;(function(e){function r(o,s,u,g){return new Tt(o,s,u,g)}e.create=r;function i(o){let s=o;return!!(a.defined(s)&&a.string(s.uri)&&(a.undefined(s.languageId)||a.string(s.languageId))&&a.uinteger(s.lineCount)&&a.func(s.getText)&&a.func(s.positionAt)&&a.func(s.offsetAt))}e.is=i;function n(o,s){let u=o.getText(),g=t(s,(v,d)=>{let k=v.range.start.line-d.range.start.line;return k===0?v.range.start.character-d.range.start.character:k}),c=u.length;for(let v=g.length-1;v>=0;v--){let d=g[v],k=o.offsetAt(d.range.start),p=o.offsetAt(d.range.end);if(p<=c)u=u.substring(0,k)+d.newText+u.substring(p,u.length);else throw new Error("Overlapping edit");c=k}return u}e.applyEdits=n;function t(o,s){if(o.length<=1)return o;const u=o.length/2|0,g=o.slice(0,u),c=o.slice(u);t(g,s),t(c,s);let v=0,d=0,k=0;for(;v0&&e.push(r.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let r=this.getLineOffsets(),i=0,n=r.length;if(n===0)return O.create(0,e);for(;ie?n=o:i=o+1}let t=i-1;return O.create(t,e-r[t])}offsetAt(e){let r=this.getLineOffsets();if(e.line>=r.length)return this._content.length;if(e.line<0)return 0;let i=r[e.line],n=e.line+1"u"}e.undefined=n;function t(p){return p===!0||p===!1}e.boolean=t;function o(p){return r.call(p)==="[object String]"}e.string=o;function s(p){return r.call(p)==="[object Number]"}e.number=s;function u(p,N,J){return r.call(p)==="[object Number]"&&N<=p&&p<=J}e.numberRange=u;function g(p){return r.call(p)==="[object Number]"&&-2147483648<=p&&p<=2147483647}e.integer=g;function c(p){return r.call(p)==="[object Number]"&&0<=p&&p<=2147483647}e.uinteger=c;function v(p){return r.call(p)==="[object Function]"}e.func=v;function d(p){return p!==null&&typeof p=="object"}e.objectLiteral=d;function k(p,N){return Array.isArray(p)&&p.every(N)}e.typedArray=k})(a||(a={}));var jt=class{constructor(e,r,i){this._languageId=e,this._worker=r,this._disposables=[],this._listener=Object.create(null);const n=o=>{let s=o.getLanguageId();if(s!==this._languageId)return;let u;this._listener[o.uri.toString()]=o.onDidChangeContent(()=>{window.clearTimeout(u),u=window.setTimeout(()=>this._doValidate(o.uri,s),500)}),this._doValidate(o.uri,s)},t=o=>{f.editor.setModelMarkers(o,this._languageId,[]);let s=o.uri.toString(),u=this._listener[s];u&&(u.dispose(),delete this._listener[s])};this._disposables.push(f.editor.onDidCreateModel(n)),this._disposables.push(f.editor.onWillDisposeModel(t)),this._disposables.push(f.editor.onDidChangeModelLanguage(o=>{t(o.model),n(o.model)})),this._disposables.push(i(o=>{f.editor.getModels().forEach(s=>{s.getLanguageId()===this._languageId&&(t(s),n(s))})})),this._disposables.push({dispose:()=>{f.editor.getModels().forEach(t);for(let o in this._listener)this._listener[o].dispose()}}),f.editor.getModels().forEach(n)}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables.length=0}_doValidate(e,r){this._worker(e).then(i=>i.doValidation(e.toString())).then(i=>{const n=i.map(o=>yt(e,o));let t=f.editor.getModel(e);t&&t.getLanguageId()===r&&f.editor.setModelMarkers(t,r,n)}).then(void 0,i=>{console.error(i)})}};function xt(e){switch(e){case F.Error:return f.MarkerSeverity.Error;case F.Warning:return f.MarkerSeverity.Warning;case F.Information:return f.MarkerSeverity.Info;case F.Hint:return f.MarkerSeverity.Hint;default:return f.MarkerSeverity.Info}}function yt(e,r){let i=typeof r.code=="number"?String(r.code):r.code;return{severity:xt(r.severity),startLineNumber:r.range.start.line+1,startColumn:r.range.start.character+1,endLineNumber:r.range.end.line+1,endColumn:r.range.end.character+1,message:r.message,code:i,source:r.source}}var Pt=class{constructor(e,r){this._worker=e,this._triggerCharacters=r}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(e,r,i,n){const t=e.uri;return this._worker(t).then(o=>o.doComplete(t.toString(),R(r))).then(o=>{if(!o)return;const s=e.getWordUntilPosition(r),u=new f.Range(r.lineNumber,s.startColumn,r.lineNumber,s.endColumn),g=o.items.map(c=>{const v={label:c.label,insertText:c.insertText||c.label,sortText:c.sortText,filterText:c.filterText,documentation:c.documentation,detail:c.detail,command:Bt(c.command),range:u,kind:St(c.kind)};return c.textEdit&&(Vt(c.textEdit)?v.range={insert:w(c.textEdit.insert),replace:w(c.textEdit.replace)}:v.range=w(c.textEdit.range),v.insertText=c.textEdit.newText),c.additionalTextEdits&&(v.additionalTextEdits=c.additionalTextEdits.map(B)),c.insertTextFormat===oe.Snippet&&(v.insertTextRules=f.languages.CompletionItemInsertTextRule.InsertAsSnippet),v});return{isIncomplete:o.isIncomplete,suggestions:g}})}};function R(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function pt(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function w(e){if(e)return new f.Range(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function Vt(e){return typeof e.insert<"u"&&typeof e.replace<"u"}function St(e){const r=f.languages.CompletionItemKind;switch(e){case h.Text:return r.Text;case h.Method:return r.Method;case h.Function:return r.Function;case h.Constructor:return r.Constructor;case h.Field:return r.Field;case h.Variable:return r.Variable;case h.Class:return r.Class;case h.Interface:return r.Interface;case h.Module:return r.Module;case h.Property:return r.Property;case h.Unit:return r.Unit;case h.Value:return r.Value;case h.Enum:return r.Enum;case h.Keyword:return r.Keyword;case h.Snippet:return r.Snippet;case h.Color:return r.Color;case h.File:return r.File;case h.Reference:return r.Reference}return r.Property}function B(e){if(e)return{range:w(e.range),text:e.newText}}function Bt(e){return e&&e.command==="editor.action.triggerSuggest"?{id:e.command,title:e.title,arguments:e.arguments}:void 0}var Wt=class{constructor(e){this._worker=e}provideHover(e,r,i){let n=e.uri;return this._worker(n).then(t=>t.doHover(n.toString(),R(r))).then(t=>{if(t)return{range:w(t.range),contents:zt(t.contents)}})}};function Ht(e){return e&&typeof e=="object"&&typeof e.kind=="string"}function ot(e){return typeof e=="string"?{value:e}:Ht(e)?e.kind==="plaintext"?{value:e.value.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}:{value:e.value}:{value:"```"+e.language+` `+e.value+"\n```\n"}}function zt(e){if(e)return Array.isArray(e)?e.map(ot):[ot(e)]}var hn=class{constructor(e){this._worker=e}provideDocumentHighlights(e,r,i){const n=e.uri;return this._worker(n).then(t=>t.findDocumentHighlights(n.toString(),R(r))).then(t=>{if(t)return t.map(o=>({range:w(o.range),kind:Xt(o.kind)}))})}};function Xt(e){switch(e){case V.Read:return f.languages.DocumentHighlightKind.Read;case V.Write:return f.languages.DocumentHighlightKind.Write;case V.Text:return f.languages.DocumentHighlightKind.Text}return f.languages.DocumentHighlightKind.Text}var _n=class{constructor(e){this._worker=e}provideDefinition(e,r,i){const n=e.uri;return this._worker(n).then(t=>t.findDefinition(n.toString(),R(r))).then(t=>{if(t)return[vt(t)]})}};function vt(e){return{uri:f.Uri.parse(e.uri),range:w(e.range)}}var kn=class{constructor(e){this._worker=e}provideReferences(e,r,i,n){const t=e.uri;return this._worker(t).then(o=>o.findReferences(t.toString(),R(r))).then(o=>{if(o)return o.map(vt)})}},bn=class{constructor(e){this._worker=e}provideRenameEdits(e,r,i,n){const t=e.uri;return this._worker(t).then(o=>o.doRename(t.toString(),R(r),i)).then(o=>qt(o))}};function qt(e){if(!e||!e.changes)return;let r=[];for(let i in e.changes){const n=f.Uri.parse(i);for(let t of e.changes[i])r.push({resource:n,versionId:void 0,textEdit:{range:w(t.range),text:t.newText}})}return{edits:r}}var Jt=class{constructor(e){this._worker=e}provideDocumentSymbols(e,r){const i=e.uri;return this._worker(i).then(n=>n.findDocumentSymbols(i.toString())).then(n=>{if(n)return n.map(t=>$t(t)?mt(t):{name:t.name,detail:"",containerName:t.containerName,kind:ht(t.kind),range:w(t.location.range),selectionRange:w(t.location.range),tags:[]})})}};function $t(e){return"children"in e}function mt(e){return{name:e.name,detail:e.detail??"",kind:ht(e.kind),range:w(e.range),selectionRange:w(e.selectionRange),tags:e.tags??[],children:(e.children??[]).map(r=>mt(r))}}function ht(e){let r=f.languages.SymbolKind;switch(e){case _.File:return r.File;case _.Module:return r.Module;case _.Namespace:return r.Namespace;case _.Package:return r.Package;case _.Class:return r.Class;case _.Method:return r.Method;case _.Property:return r.Property;case _.Field:return r.Field;case _.Constructor:return r.Constructor;case _.Enum:return r.Enum;case _.Interface:return r.Interface;case _.Function:return r.Function;case _.Variable:return r.Variable;case _.Constant:return r.Constant;case _.String:return r.String;case _.Number:return r.Number;case _.Boolean:return r.Boolean;case _.Array:return r.Array}return r.Function}var wn=class{constructor(e){this._worker=e}provideLinks(e,r){const i=e.uri;return this._worker(i).then(n=>n.findDocumentLinks(i.toString())).then(n=>{if(n)return{links:n.map(t=>({range:w(t.range),url:t.target}))}})}},Qt=class{constructor(e){this._worker=e}provideDocumentFormattingEdits(e,r,i){const n=e.uri;return this._worker(n).then(t=>t.format(n.toString(),null,_t(r)).then(o=>{if(!(!o||o.length===0))return o.map(B)}))}},Yt=class{constructor(e){this._worker=e,this.canFormatMultipleRanges=!1}provideDocumentRangeFormattingEdits(e,r,i,n){const t=e.uri;return this._worker(t).then(o=>o.format(t.toString(),pt(r),_t(i)).then(s=>{if(!(!s||s.length===0))return s.map(B)}))}};function _t(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}var Gt=class{constructor(e){this._worker=e}provideDocumentColors(e,r){const i=e.uri;return this._worker(i).then(n=>n.findDocumentColors(i.toString())).then(n=>{if(n)return n.map(t=>({color:t.color,range:w(t.range)}))})}provideColorPresentations(e,r,i){const n=e.uri;return this._worker(n).then(t=>t.getColorPresentations(n.toString(),r.color,pt(r.range))).then(t=>{if(t)return t.map(o=>{let s={label:o.label};return o.textEdit&&(s.textEdit=B(o.textEdit)),o.additionalTextEdits&&(s.additionalTextEdits=o.additionalTextEdits.map(B)),s})})}},Zt=class{constructor(e){this._worker=e}provideFoldingRanges(e,r,i){const n=e.uri;return this._worker(n).then(t=>t.getFoldingRanges(n.toString(),r)).then(t=>{if(t)return t.map(o=>{const s={start:o.startLine+1,end:o.endLine+1};return typeof o.kind<"u"&&(s.kind=Kt(o.kind)),s})})}};function Kt(e){switch(e){case P.Comment:return f.languages.FoldingRangeKind.Comment;case P.Imports:return f.languages.FoldingRangeKind.Imports;case P.Region:return f.languages.FoldingRangeKind.Region}}var Ct=class{constructor(e){this._worker=e}provideSelectionRanges(e,r,i){const n=e.uri;return this._worker(n).then(t=>t.getSelectionRanges(n.toString(),r.map(R))).then(t=>{if(t)return t.map(o=>{const s=[];for(;o;)s.push({range:w(o.range)}),o=o.parent;return s})})}};function en(e,r=!1){const i=e.length;let n=0,t="",o=0,s=16,u=0,g=0,c=0,v=0,d=0;function k(l,A){let L=0,I=0;for(;L=48&&b<=57)I=I*16+b-48;else if(b>=65&&b<=70)I=I*16+b-65+10;else if(b>=97&&b<=102)I=I*16+b-97+10;else break;n++,L++}return L=i){l+=e.substring(A,n),d=2;break}const L=e.charCodeAt(n);if(L===34){l+=e.substring(A,n),n++;break}if(L===92){if(l+=e.substring(A,n),n++,n>=i){d=2;break}switch(e.charCodeAt(n++)){case 34:l+='"';break;case 92:l+="\\";break;case 47:l+="/";break;case 98:l+="\b";break;case 102:l+="\f";break;case 110:l+=` `;break;case 114:l+="\r";break;case 116:l+=" ";break;case 117:const b=k(4);b>=0?l+=String.fromCharCode(b):d=4;break;default:d=5}A=n;continue}if(L>=0&&L<=31)if(x(L)){l+=e.substring(A,n),d=2;break}else d=6;n++}return l}function ce(){if(t="",d=0,o=n,g=u,v=c,n>=i)return o=i,s=17;let l=e.charCodeAt(n);if($(l)){do n++,t+=String.fromCharCode(l),l=e.charCodeAt(n);while($(l));return s=15}if(x(l))return n++,t+=String.fromCharCode(l),l===13&&e.charCodeAt(n)===10&&(n++,t+=` `),u++,c=n,s=14;switch(l){case 123:return n++,s=1;case 125:return n++,s=2;case 91:return n++,s=3;case 93:return n++,s=4;case 58:return n++,s=6;case 44:return n++,s=5;case 34:return n++,t=J(),s=10;case 47:const A=n-1;if(e.charCodeAt(n+1)===47){for(n+=2;n=12&&l<=15);return l}return{setPosition:p,getPosition:()=>n,scan:r?It:ce,getToken:()=>s,getTokenValue:()=>t,getTokenOffset:()=>o,getTokenLength:()=>n-o,getTokenStartLine:()=>g,getTokenStartCharacter:()=>o-v,getTokenError:()=>d}}function $(e){return e===32||e===9}function x(e){return e===10||e===13}function M(e){return e>=48&&e<=57}var st;(function(e){e[e.lineFeed=10]="lineFeed",e[e.carriageReturn=13]="carriageReturn",e[e.space=32]="space",e[e._0=48]="_0",e[e._1=49]="_1",e[e._2=50]="_2",e[e._3=51]="_3",e[e._4=52]="_4",e[e._5=53]="_5",e[e._6=54]="_6",e[e._7=55]="_7",e[e._8=56]="_8",e[e._9=57]="_9",e[e.a=97]="a",e[e.b=98]="b",e[e.c=99]="c",e[e.d=100]="d",e[e.e=101]="e",e[e.f=102]="f",e[e.g=103]="g",e[e.h=104]="h",e[e.i=105]="i",e[e.j=106]="j",e[e.k=107]="k",e[e.l=108]="l",e[e.m=109]="m",e[e.n=110]="n",e[e.o=111]="o",e[e.p=112]="p",e[e.q=113]="q",e[e.r=114]="r",e[e.s=115]="s",e[e.t=116]="t",e[e.u=117]="u",e[e.v=118]="v",e[e.w=119]="w",e[e.x=120]="x",e[e.y=121]="y",e[e.z=122]="z",e[e.A=65]="A",e[e.B=66]="B",e[e.C=67]="C",e[e.D=68]="D",e[e.E=69]="E",e[e.F=70]="F",e[e.G=71]="G",e[e.H=72]="H",e[e.I=73]="I",e[e.J=74]="J",e[e.K=75]="K",e[e.L=76]="L",e[e.M=77]="M",e[e.N=78]="N",e[e.O=79]="O",e[e.P=80]="P",e[e.Q=81]="Q",e[e.R=82]="R",e[e.S=83]="S",e[e.T=84]="T",e[e.U=85]="U",e[e.V=86]="V",e[e.W=87]="W",e[e.X=88]="X",e[e.Y=89]="Y",e[e.Z=90]="Z",e[e.asterisk=42]="asterisk",e[e.backslash=92]="backslash",e[e.closeBrace=125]="closeBrace",e[e.closeBracket=93]="closeBracket",e[e.colon=58]="colon",e[e.comma=44]="comma",e[e.dot=46]="dot",e[e.doubleQuote=34]="doubleQuote",e[e.minus=45]="minus",e[e.openBrace=123]="openBrace",e[e.openBracket=91]="openBracket",e[e.plus=43]="plus",e[e.slash=47]="slash",e[e.formFeed=12]="formFeed",e[e.tab=9]="tab"})(st||(st={}));new Array(20).fill(0).map((e,r)=>" ".repeat(r));var D=200;new Array(D).fill(0).map((e,r)=>` `+" ".repeat(r)),new Array(D).fill(0).map((e,r)=>"\r"+" ".repeat(r)),new Array(D).fill(0).map((e,r)=>`\r `+" ".repeat(r)),new Array(D).fill(0).map((e,r)=>` `+" ".repeat(r)),new Array(D).fill(0).map((e,r)=>"\r"+" ".repeat(r)),new Array(D).fill(0).map((e,r)=>`\r `+" ".repeat(r));var at;(function(e){e.DEFAULT={allowTrailingComma:!1}})(at||(at={}));var tn=en,ut;(function(e){e[e.None=0]="None",e[e.UnexpectedEndOfComment=1]="UnexpectedEndOfComment",e[e.UnexpectedEndOfString=2]="UnexpectedEndOfString",e[e.UnexpectedEndOfNumber=3]="UnexpectedEndOfNumber",e[e.InvalidUnicode=4]="InvalidUnicode",e[e.InvalidEscapeCharacter=5]="InvalidEscapeCharacter",e[e.InvalidCharacter=6]="InvalidCharacter"})(ut||(ut={}));var ct;(function(e){e[e.OpenBraceToken=1]="OpenBraceToken",e[e.CloseBraceToken=2]="CloseBraceToken",e[e.OpenBracketToken=3]="OpenBracketToken",e[e.CloseBracketToken=4]="CloseBracketToken",e[e.CommaToken=5]="CommaToken",e[e.ColonToken=6]="ColonToken",e[e.NullKeyword=7]="NullKeyword",e[e.TrueKeyword=8]="TrueKeyword",e[e.FalseKeyword=9]="FalseKeyword",e[e.StringLiteral=10]="StringLiteral",e[e.NumericLiteral=11]="NumericLiteral",e[e.LineCommentTrivia=12]="LineCommentTrivia",e[e.BlockCommentTrivia=13]="BlockCommentTrivia",e[e.LineBreakTrivia=14]="LineBreakTrivia",e[e.Trivia=15]="Trivia",e[e.Unknown=16]="Unknown",e[e.EOF=17]="EOF"})(ct||(ct={}));var lt;(function(e){e[e.InvalidSymbol=1]="InvalidSymbol",e[e.InvalidNumberFormat=2]="InvalidNumberFormat",e[e.PropertyNameExpected=3]="PropertyNameExpected",e[e.ValueExpected=4]="ValueExpected",e[e.ColonExpected=5]="ColonExpected",e[e.CommaExpected=6]="CommaExpected",e[e.CloseBraceExpected=7]="CloseBraceExpected",e[e.CloseBracketExpected=8]="CloseBracketExpected",e[e.EndOfFileExpected=9]="EndOfFileExpected",e[e.InvalidCommentToken=10]="InvalidCommentToken",e[e.UnexpectedEndOfComment=11]="UnexpectedEndOfComment",e[e.UnexpectedEndOfString=12]="UnexpectedEndOfString",e[e.UnexpectedEndOfNumber=13]="UnexpectedEndOfNumber",e[e.InvalidUnicode=14]="InvalidUnicode",e[e.InvalidEscapeCharacter=15]="InvalidEscapeCharacter",e[e.InvalidCharacter=16]="InvalidCharacter"})(lt||(lt={}));function nn(e){return{getInitialState:()=>new bt(null,null,!1,null),tokenize:(r,i)=>gn(e,r,i)}}var ft="delimiter.bracket.json",dt="delimiter.array.json",rn="delimiter.colon.json",on="delimiter.comma.json",sn="keyword.json",an="keyword.json",un="string.value.json",cn="number.json",ln="string.key.json",fn="comment.block.json",dn="comment.line.json",y=class kt{constructor(r,i){this.parent=r,this.type=i}static pop(r){return r?r.parent:null}static push(r,i){return new kt(r,i)}static equals(r,i){if(!r&&!i)return!0;if(!r||!i)return!1;for(;r&&i;){if(r===i)return!0;if(r.type!==i.type)return!1;r=r.parent,i=i.parent}return!0}},bt=class ue{constructor(r,i,n,t){this._state=r,this.scanError=i,this.lastWasColon=n,this.parents=t}clone(){return new ue(this._state,this.scanError,this.lastWasColon,this.parents)}equals(r){return r===this?!0:!r||!(r instanceof ue)?!1:this.scanError===r.scanError&&this.lastWasColon===r.lastWasColon&&y.equals(this.parents,r.parents)}getStateData(){return this._state}setStateData(r){this._state=r}};function gn(e,r,i,n=0){let t=0,o=!1;switch(i.scanError){case 2:r='"'+r,t=1;break;case 1:r="/*"+r,t=2;break}const s=tn(r);let u=i.lastWasColon,g=i.parents;const c={tokens:[],endState:i.clone()};for(;;){let v=n+s.getPosition(),d="";const k=s.scan();if(k===17)break;if(v===n+s.getPosition())throw new Error("Scanner did not advance, next 3 characters are: "+r.substr(s.getPosition(),3));switch(o&&(v-=t),o=t>0,k){case 1:g=y.push(g,0),d=ft,u=!1;break;case 2:g=y.pop(g),d=ft,u=!1;break;case 3:g=y.push(g,1),d=dt,u=!1;break;case 4:g=y.pop(g),d=dt,u=!1;break;case 6:d=rn,u=!0;break;case 5:d=on,u=!1;break;case 8:case 9:d=sn,u=!1;break;case 7:d=an,u=!1;break;case 10:const N=(g?g.type:0)===1;d=u||N?un:ln,u=!1;break;case 11:d=cn,u=!1;break}switch(k){case 12:d=dn;break;case 13:d=fn;break}c.endState=new bt(i.getStateData(),s.getTokenError(),u,g),c.tokens.push({startIndex:v,scopes:d})}return c}var E;function An(){return new Promise((e,r)=>{if(!E)return r("JSON not registered!");e(E)})}var pn=class extends jt{constructor(e,r,i){super(e,r,i.onDidChange),this._disposables.push(f.editor.onWillDisposeModel(n=>{this._resetSchema(n.uri)})),this._disposables.push(f.editor.onDidChangeModelLanguage(n=>{this._resetSchema(n.model.uri)}))}_resetSchema(e){this._worker().then(r=>{r.resetSchema(e.toString())})}};function In(e){const r=[],i=[],n=new Ut(e);r.push(n),E=(...s)=>n.getLanguageServiceWorker(...s);function t(){const{languageId:s,modeConfiguration:u}=e;wt(i),u.documentFormattingEdits&&i.push(f.languages.registerDocumentFormattingEditProvider(s,new Qt(E))),u.documentRangeFormattingEdits&&i.push(f.languages.registerDocumentRangeFormattingEditProvider(s,new Yt(E))),u.completionItems&&i.push(f.languages.registerCompletionItemProvider(s,new Pt(E,[" ",":",'"']))),u.hovers&&i.push(f.languages.registerHoverProvider(s,new Wt(E))),u.documentSymbols&&i.push(f.languages.registerDocumentSymbolProvider(s,new Jt(E))),u.tokens&&i.push(f.languages.setTokensProvider(s,nn(!0))),u.colors&&i.push(f.languages.registerColorProvider(s,new Gt(E))),u.foldingRanges&&i.push(f.languages.registerFoldingRangeProvider(s,new Zt(E))),u.diagnostics&&i.push(new pn(s,E,e)),u.selectionRanges&&i.push(f.languages.registerSelectionRangeProvider(s,new Ct(E)))}t(),r.push(f.languages.setLanguageConfiguration(e.languageId,vn));let o=e.modeConfiguration;return e.onDidChange(s=>{s.modeConfiguration!==o&&(o=s.modeConfiguration,t())}),r.push(gt(i)),gt(r)}function gt(e){return{dispose:()=>wt(e)}}function wt(e){for(;e.length;)e.pop().dispose()}var vn={wordPattern:/(-?\d*\.\d\w*)|([^\[\{\]\}\:\"\,\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:'"',close:'"',notIn:["string"]}]};export{Pt as CompletionAdapter,_n as DefinitionAdapter,jt as DiagnosticsAdapter,Gt as DocumentColorAdapter,Qt as DocumentFormattingEditProvider,hn as DocumentHighlightAdapter,wn as DocumentLinkAdapter,Yt as DocumentRangeFormattingEditProvider,Jt as DocumentSymbolAdapter,Zt as FoldingRangeAdapter,Wt as HoverAdapter,kn as ReferenceAdapter,bn as RenameAdapter,Ct as SelectionRangeAdapter,Ut as WorkerManager,R as fromPosition,pt as fromRange,An as getWorker,In as setupMode,w as toRange,B as toTextEdit}; ================================================ FILE: jesse/static/_nuxt/Bk9BmIv8.js ================================================ import{d as w,m as C,u as I,A as S,r as m,w as _,c as V,J as o,e as D,f as O,L as T,g as l,C as d,E as F,x as u,j as r,F as B,O as E,H as f,G as n}from"./CU_MfyYc.js";const A={key:0,class:"flex justify-center items-center py-12"},q={key:1},L={class:"flex flex-col"},M={class:"-my-2 overflow-x-auto"},N={class:"py-2 align-middle inline-block min-w-full"},P={class:"border dark:border-gray-600 overflow-hidden sm:rounded"},j={class:"min-w-full divide-y divide-gray-200 dark:divide-gray-600"},z={class:"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-500 dark:text-gray-400"},Q=["textContent"],G=["textContent"],H=["textContent"],J={key:2,class:"text-center py-12 text-red-600 dark:text-red-400"},U=w({__name:"OrderDetailsSlideOver",props:C({orderId:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:["update:modelValue"],setup(g){const i=I(g,"modelValue"),c=g,k=S(),y=m(!1),s=m(""),e=m(null);_(()=>c.orderId,async a=>{a&&i.value&&await x()}),_(i,async a=>{a&&c.orderId&&await x()});async function x(){if(c.orderId){y.value=!0,s.value="",e.value=null;try{const a=await k.fetchOrderDetails(c.orderId);a?e.value=a:s.value="Failed to load order details"}catch(a){s.value=a.message||"Failed to load order details"}finally{y.value=!1}}}const b=V(()=>e.value?[["ID",{value:e.value.id,tag:"code"}],["Exchange ID",{value:e.value.exchange_id||"-",tag:e.value.exchange_id?"code":void 0}],["Trade ID",{value:e.value.trade_id||"-",tag:e.value.trade_id?"code":void 0}],["Symbol",{value:e.value.symbol}],["Exchange",{value:e.value.exchange}],["Side",{value:e.value.side,style:e.value.side==="buy"?"text-green-600 dark:text-green-400":"text-red-600 dark:text-red-400"}],["Type",{value:e.value.type}],["Price",{value:e.value.price?o.roundPrice(e.value.price):"-"}],["Quantity",{value:e.value.qty,style:e.value.qty>0?"text-green-600 dark:text-green-400":"text-red-600 dark:text-red-400"}],["Filled Quantity",{value:e.value.filled_qty}],["Fee",{value:e.value.fee!==null&&e.value.fee!==void 0?o.roundPrice(e.value.fee):"-"}],["Status",{value:e.value.status}],["Reduce Only",{value:e.value.reduce_only?"Yes":"No"}],["Submitted Via",{value:e.value.submitted_via||"-"}],["Created At",{value:o.timestampToTime(e.value.created_at)}],["Executed At",{value:e.value.executed_at?o.timestampToTime(e.value.executed_at):"-"}],["Canceled At",{value:e.value.canceled_at?o.timestampToTime(e.value.canceled_at):"-"}]]:[]);return(a,v)=>{const h=T;return l(),D(h,{modelValue:i.value,"onUpdate:modelValue":v[0]||(v[0]=t=>i.value=t),size:"big",title:"Order Details"},{default:O(()=>[u(y)?(l(),d("div",A,v[1]||(v[1]=[r("div",{class:"animate-spin rounded-full h-12 w-12 border-b-2 border-indigo-600"},null,-1)]))):u(e)?(l(),d("div",q,[r("div",L,[r("div",M,[r("div",N,[r("div",P,[r("table",j,[r("tbody",null,[(l(!0),d(B,null,E(u(b),(t,p)=>(l(),d("tr",{key:p,class:f(p%2===0?"bg-white dark:bg-gray-700":"bg-gray-50 dark:bg-backdrop-dark")},[r("td",z,n(t[0]),1),r("td",{class:f(["px-6 py-4 whitespace-nowrap text-sm font-bold",t[1].style])},[t[1].tag==="code"?(l(),d("code",{key:0,class:"rounded border dark:border-gray-600 bg-gray-50 dark:bg-gray-700 select-text text-sm dark:text-gray-300 px-2 py-1",textContent:n(t[1].value===0?"":t[1].value)},null,8,Q)):t[1].tag==="pre"?(l(),d("pre",{key:1,class:"whitespace-pre-line rounded border dark:border-gray-600 bg-gray-50 dark:bg-gray-700 select-text text-sm dark:text-gray-300 px-2 py-1",textContent:n(t[1].value===0?"":t[1].value)},null,8,G)):(l(),d("span",{key:2,textContent:n(t[1].value===0?"":t[1].value)},null,8,H))],2)],2))),128))])])])])])])])):u(s)?(l(),d("div",J,n(u(s)),1)):F("",!0)]),_:1},8,["modelValue"])}}});export{U as _}; ================================================ FILE: jesse/static/_nuxt/BknIz3MU.js ================================================ const e=Object.freeze(JSON.parse('{"displayName":"SSH Config","fileTypes":["ssh_config",".ssh/config","sshd_config"],"name":"ssh-config","patterns":[{"match":"\\\\b(A(cceptEnv|dd(ressFamily|KeysToAgent)|llow(AgentForwarding|Groups|StreamLocalForwarding|TcpForwarding|Users)|uth(enticationMethods|orized((Keys(Command(User)?|File)|Principals(Command(User)?|File)))))|B(anner|atchMode|ind(Address|Interface))|C(anonical(Domains|ize(FallbackLocal|Hostname|MaxDots|PermittedCNAMEs))|ertificateFile|hallengeResponseAuthentication|heckHostIP|hrootDirectory|iphers?|learAllForwardings|ientAlive(CountMax|Interval)|ompression(Level)?|onnect(Timeout|ionAttempts)|ontrolMaster|ontrolPath|ontrolPersist)|D(eny(Groups|Users)|isableForwarding|ynamicForward)|E(nableSSHKeysign|scapeChar|xitOnForwardFailure|xposeAuthInfo)|F(ingerprintHash|orceCommand|orward(Agent|X11(Timeout|Trusted)?))|G(atewayPorts|SSAPI(Authentication|CleanupCredentials|ClientIdentity|DelegateCredentials|KeyExchange|RenewalForcesRekey|ServerIdentity|StrictAcceptorCheck|TrustDns)|atewayPorts|lobalKnownHostsFile)|H(ashKnownHosts|ost(based(AcceptedKeyTypes|Authentication|KeyTypes|UsesNameFromPacketOnly)|Certificate|Key(Agent|Algorithms|Alias)?|Name))|I(dentit(iesOnly|y(Agent|File))|gnore(Rhosts|Unknown|UserKnownHosts)|nclude|PQoS)|K(bdInteractive(Authentication|Devices)|erberos(Authentication|GetAFSToken|OrLocalPasswd|TicketCleanup)|exAlgorithms)|L(istenAddress|ocal(Command|Forward)|oginGraceTime|ogLevel)|M(ACs|atch|ax(AuthTries|Sessions|Startups))|N(oHostAuthenticationForLocalhost|umberOfPasswordPrompts)|P(KCS11Provider|asswordAuthentication|ermit(EmptyPasswords|LocalCommand|Open|RootLogin|TTY|Tunnel|User(Environment|RC))|idFile|ort|referredAuthentications|rint(LastLog|Motd)|rotocol|roxy(Command|Jump|UseFdpass)|ubkey(AcceptedKeyTypes|Authentication))|R(Domain|SAAuthentication|ekeyLimit|emote(Command|Forward)|equestTTY|evoked(HostKeys|Keys)|hostsRSAAuthentication)|S(endEnv|erverAlive(CountMax|Interval)|treamLocalBind(Mask|Unlink)|trict(HostKeyChecking|Modes)|ubsystem|yslogFacility)|T(CPKeepAlive|rustedUserCAKeys|unnel(Device)?)|U(pdateHostKeys|se(BlacklistedKeys|DNS|Keychain|PAM|PrivilegedPort|r(KnownHostsFile)?))|V(erifyHostKeyDNS|ersionAddendum|isualHostKey)|X(11(DisplayOffset|Forwarding|UseLocalhost)|AuthLocation))\\\\b","name":"keyword.other.ssh-config"},{"begin":"(^[ \\\\t]+)?(?=#)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.ssh-config"}},"end":"(?!\\\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.ssh-config"}},"end":"\\\\n","name":"comment.line.number-sign.ssh-config"}]},{"begin":"(^[ \\\\t]+)?(?=//)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.ssh-config"}},"end":"(?!\\\\G)","patterns":[{"begin":"//","beginCaptures":{"0":{"name":"punctuation.definition.comment.ssh-config"}},"end":"\\\\n","name":"comment.line.double-slash.ssh-config"}]},{"captures":{"1":{"name":"storage.type.ssh-config"},"2":{"name":"entity.name.section.ssh-config"},"3":{"name":"meta.toc-list.ssh-config"}},"match":"(?:^| |\\\\t)(Host)\\\\s+((.*))$"},{"match":"\\\\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\b","name":"constant.numeric.ssh-config"},{"match":"\\\\b[0-9]+\\\\b","name":"constant.numeric.ssh-config"},{"match":"\\\\b(yes|no)\\\\b","name":"constant.language.ssh-config"},{"match":"\\\\b[A-Z_]+\\\\b","name":"constant.language.ssh-config"}],"scopeName":"source.ssh-config"}')),n=[e];export{n as default}; ================================================ FILE: jesse/static/_nuxt/Bkuqu6BP.js ================================================ const e=Object.freeze(JSON.parse('{"colors":{"activityBar.activeBorder":"#4d9375","activityBar.background":"#000","activityBar.border":"#191919","activityBar.foreground":"#dbd7cacc","activityBar.inactiveForeground":"#dedcd550","activityBarBadge.background":"#bfbaaa","activityBarBadge.foreground":"#000","badge.background":"#dedcd590","badge.foreground":"#000","breadcrumb.activeSelectionForeground":"#eeeeee18","breadcrumb.background":"#121212","breadcrumb.focusForeground":"#dbd7cacc","breadcrumb.foreground":"#959da5","breadcrumbPicker.background":"#000","button.background":"#4d9375","button.foreground":"#000","button.hoverBackground":"#4d9375","checkbox.background":"#121212","checkbox.border":"#2f363d","debugToolBar.background":"#000","descriptionForeground":"#dedcd590","diffEditor.insertedTextBackground":"#4d937550","diffEditor.removedTextBackground":"#ab595950","dropdown.background":"#000","dropdown.border":"#191919","dropdown.foreground":"#dbd7cacc","dropdown.listBackground":"#121212","editor.background":"#000","editor.findMatchBackground":"#e6cc7722","editor.findMatchHighlightBackground":"#e6cc7744","editor.focusedStackFrameHighlightBackground":"#b808","editor.foldBackground":"#eeeeee10","editor.foreground":"#dbd7cacc","editor.inactiveSelectionBackground":"#eeeeee10","editor.lineHighlightBackground":"#121212","editor.selectionBackground":"#eeeeee18","editor.selectionHighlightBackground":"#eeeeee10","editor.stackFrameHighlightBackground":"#a707","editor.wordHighlightBackground":"#1c6b4805","editor.wordHighlightStrongBackground":"#1c6b4810","editorBracketHighlight.foreground1":"#5eaab5","editorBracketHighlight.foreground2":"#4d9375","editorBracketHighlight.foreground3":"#d4976c","editorBracketHighlight.foreground4":"#d9739f","editorBracketHighlight.foreground5":"#e6cc77","editorBracketHighlight.foreground6":"#6394bf","editorBracketMatch.background":"#4d937520","editorError.foreground":"#cb7676","editorGroup.border":"#191919","editorGroupHeader.tabsBackground":"#000","editorGroupHeader.tabsBorder":"#191919","editorGutter.addedBackground":"#4d9375","editorGutter.commentRangeForeground":"#dedcd550","editorGutter.deletedBackground":"#cb7676","editorGutter.foldingControlForeground":"#dedcd590","editorGutter.modifiedBackground":"#6394bf","editorHint.foreground":"#4d9375","editorIndentGuide.activeBackground":"#ffffff30","editorIndentGuide.background":"#ffffff15","editorInfo.foreground":"#6394bf","editorInlayHint.background":"#121212","editorInlayHint.foreground":"#444444","editorLineNumber.activeForeground":"#bfbaaa","editorLineNumber.foreground":"#dedcd550","editorOverviewRuler.border":"#111","editorStickyScroll.background":"#121212","editorStickyScrollHover.background":"#121212","editorWarning.foreground":"#d4976c","editorWhitespace.foreground":"#ffffff15","editorWidget.background":"#000","errorForeground":"#cb7676","focusBorder":"#00000000","foreground":"#dbd7cacc","gitDecoration.addedResourceForeground":"#4d9375","gitDecoration.conflictingResourceForeground":"#d4976c","gitDecoration.deletedResourceForeground":"#cb7676","gitDecoration.ignoredResourceForeground":"#dedcd550","gitDecoration.modifiedResourceForeground":"#6394bf","gitDecoration.submoduleResourceForeground":"#dedcd590","gitDecoration.untrackedResourceForeground":"#5eaab5","input.background":"#121212","input.border":"#191919","input.foreground":"#dbd7cacc","input.placeholderForeground":"#dedcd590","inputOption.activeBackground":"#dedcd550","list.activeSelectionBackground":"#121212","list.activeSelectionForeground":"#dbd7cacc","list.focusBackground":"#121212","list.highlightForeground":"#4d9375","list.hoverBackground":"#121212","list.hoverForeground":"#dbd7cacc","list.inactiveFocusBackground":"#000","list.inactiveSelectionBackground":"#121212","list.inactiveSelectionForeground":"#dbd7cacc","menu.separatorBackground":"#191919","notificationCenterHeader.background":"#000","notificationCenterHeader.foreground":"#959da5","notifications.background":"#000","notifications.border":"#191919","notifications.foreground":"#dbd7cacc","notificationsErrorIcon.foreground":"#cb7676","notificationsInfoIcon.foreground":"#6394bf","notificationsWarningIcon.foreground":"#d4976c","panel.background":"#000","panel.border":"#191919","panelInput.border":"#2f363d","panelTitle.activeBorder":"#4d9375","panelTitle.activeForeground":"#dbd7cacc","panelTitle.inactiveForeground":"#959da5","peekViewEditor.background":"#000","peekViewEditor.matchHighlightBackground":"#ffd33d33","peekViewResult.background":"#000","peekViewResult.matchHighlightBackground":"#ffd33d33","pickerGroup.border":"#191919","pickerGroup.foreground":"#dbd7cacc","problemsErrorIcon.foreground":"#cb7676","problemsInfoIcon.foreground":"#6394bf","problemsWarningIcon.foreground":"#d4976c","progressBar.background":"#4d9375","quickInput.background":"#000","quickInput.foreground":"#dbd7cacc","quickInputList.focusBackground":"#121212","scrollbar.shadow":"#0000","scrollbarSlider.activeBackground":"#dedcd550","scrollbarSlider.background":"#dedcd510","scrollbarSlider.hoverBackground":"#dedcd550","settings.headerForeground":"#dbd7cacc","settings.modifiedItemIndicator":"#4d9375","sideBar.background":"#000","sideBar.border":"#191919","sideBar.foreground":"#bfbaaa","sideBarSectionHeader.background":"#000","sideBarSectionHeader.border":"#191919","sideBarSectionHeader.foreground":"#dbd7cacc","sideBarTitle.foreground":"#dbd7cacc","statusBar.background":"#000","statusBar.border":"#191919","statusBar.debuggingBackground":"#121212","statusBar.debuggingForeground":"#bfbaaa","statusBar.foreground":"#bfbaaa","statusBar.noFolderBackground":"#000","statusBarItem.prominentBackground":"#121212","tab.activeBackground":"#000","tab.activeBorder":"#191919","tab.activeBorderTop":"#dedcd590","tab.activeForeground":"#dbd7cacc","tab.border":"#191919","tab.hoverBackground":"#121212","tab.inactiveBackground":"#000","tab.inactiveForeground":"#959da5","tab.unfocusedActiveBorder":"#191919","tab.unfocusedActiveBorderTop":"#191919","tab.unfocusedHoverBackground":"#000","terminal.ansiBlack":"#393a34","terminal.ansiBlue":"#6394bf","terminal.ansiBrightBlack":"#777777","terminal.ansiBrightBlue":"#6394bf","terminal.ansiBrightCyan":"#5eaab5","terminal.ansiBrightGreen":"#4d9375","terminal.ansiBrightMagenta":"#d9739f","terminal.ansiBrightRed":"#cb7676","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#e6cc77","terminal.ansiCyan":"#5eaab5","terminal.ansiGreen":"#4d9375","terminal.ansiMagenta":"#d9739f","terminal.ansiRed":"#cb7676","terminal.ansiWhite":"#dbd7ca","terminal.ansiYellow":"#e6cc77","terminal.foreground":"#dbd7cacc","terminal.selectionBackground":"#eeeeee18","textBlockQuote.background":"#000","textBlockQuote.border":"#191919","textCodeBlock.background":"#000","textLink.activeForeground":"#4d9375","textLink.foreground":"#4d9375","textPreformat.foreground":"#d1d5da","textSeparator.foreground":"#586069","titleBar.activeBackground":"#000","titleBar.activeForeground":"#bfbaaa","titleBar.border":"#121212","titleBar.inactiveBackground":"#000","titleBar.inactiveForeground":"#959da5","tree.indentGuidesStroke":"#2f363d","welcomePage.buttonBackground":"#2f363d","welcomePage.buttonHoverBackground":"#444d56"},"displayName":"Vitesse Black","name":"vitesse-black","semanticHighlighting":true,"semanticTokenColors":{"class":"#6872ab","interface":"#5d99a9","namespace":"#db889a","property":"#b8a965","type":"#5d99a9"},"tokenColors":[{"scope":["comment","punctuation.definition.comment","string.comment"],"settings":{"foreground":"#758575dd"}},{"scope":["delimiter.bracket","delimiter","invalid.illegal.character-not-allowed-here.html","keyword.operator.rest","keyword.operator.spread","keyword.operator.type.annotation","keyword.operator.relational","keyword.operator.assignment","keyword.operator.type","meta.brace","meta.tag.block.any.html","meta.tag.inline.any.html","meta.tag.structure.input.void.html","meta.type.annotation","meta.embedded.block.github-actions-expression","storage.type.function.arrow","meta.objectliteral.ts","punctuation","punctuation.definition.string.begin.html.vue","punctuation.definition.string.end.html.vue"],"settings":{"foreground":"#444444"}},{"scope":["constant","entity.name.constant","variable.language","meta.definition.variable"],"settings":{"foreground":"#c99076"}},{"scope":["entity","entity.name"],"settings":{"foreground":"#80a665"}},{"scope":"variable.parameter.function","settings":{"foreground":"#dbd7cacc"}},{"scope":["entity.name.tag","tag.html"],"settings":{"foreground":"#4d9375"}},{"scope":"entity.name.function","settings":{"foreground":"#80a665"}},{"scope":["keyword","storage.type.class.jsdoc","punctuation.definition.template-expression"],"settings":{"foreground":"#4d9375"}},{"scope":["storage","storage.type","support.type.builtin","constant.language.undefined","constant.language.null","constant.language.import-export-all.ts"],"settings":{"foreground":"#cb7676"}},{"scope":["text.html.derivative","storage.modifier.package","storage.modifier.import","storage.type.java"],"settings":{"foreground":"#dbd7cacc"}},{"scope":["string","string punctuation.section.embedded source","attribute.value"],"settings":{"foreground":"#c98a7d"}},{"scope":["punctuation.definition.string"],"settings":{"foreground":"#c98a7d77"}},{"scope":["punctuation.support.type.property-name"],"settings":{"foreground":"#b8a96577"}},{"scope":"support","settings":{"foreground":"#b8a965"}},{"scope":["property","meta.property-name","meta.object-literal.key","entity.name.tag.yaml","attribute.name"],"settings":{"foreground":"#b8a965"}},{"scope":["entity.other.attribute-name","invalid.deprecated.entity.other.attribute-name.html"],"settings":{"foreground":"#bd976a"}},{"scope":["variable","identifier"],"settings":{"foreground":"#bd976a"}},{"scope":["support.type.primitive","entity.name.type"],"settings":{"foreground":"#5DA994"}},{"scope":"namespace","settings":{"foreground":"#db889a"}},{"scope":["keyword.operator","keyword.operator.assignment.compound","meta.var.expr.ts"],"settings":{"foreground":"#cb7676"}},{"scope":"invalid.broken","settings":{"fontStyle":"italic","foreground":"#fdaeb7"}},{"scope":"invalid.deprecated","settings":{"fontStyle":"italic","foreground":"#fdaeb7"}},{"scope":"invalid.illegal","settings":{"fontStyle":"italic","foreground":"#fdaeb7"}},{"scope":"invalid.unimplemented","settings":{"fontStyle":"italic","foreground":"#fdaeb7"}},{"scope":"carriage-return","settings":{"background":"#f97583","content":"^M","fontStyle":"italic underline","foreground":"#24292e"}},{"scope":"message.error","settings":{"foreground":"#fdaeb7"}},{"scope":"string variable","settings":{"foreground":"#c98a7d"}},{"scope":["source.regexp","string.regexp"],"settings":{"foreground":"#c4704f"}},{"scope":["string.regexp.character-class","string.regexp constant.character.escape","string.regexp source.ruby.embedded","string.regexp string.regexp.arbitrary-repitition"],"settings":{"foreground":"#c98a7d"}},{"scope":"string.regexp constant.character.escape","settings":{"foreground":"#e6cc77"}},{"scope":["support.constant"],"settings":{"foreground":"#c99076"}},{"scope":["keyword.operator.quantifier.regexp","constant.numeric","number"],"settings":{"foreground":"#4C9A91"}},{"scope":["keyword.other.unit"],"settings":{"foreground":"#cb7676"}},{"scope":["constant.language.boolean","constant.language"],"settings":{"foreground":"#4d9375"}},{"scope":"meta.module-reference","settings":{"foreground":"#4d9375"}},{"scope":"punctuation.definition.list.begin.markdown","settings":{"foreground":"#d4976c"}},{"scope":["markup.heading","markup.heading entity.name"],"settings":{"fontStyle":"bold","foreground":"#4d9375"}},{"scope":"markup.quote","settings":{"foreground":"#5d99a9"}},{"scope":"markup.italic","settings":{"fontStyle":"italic","foreground":"#dbd7cacc"}},{"scope":"markup.bold","settings":{"fontStyle":"bold","foreground":"#dbd7cacc"}},{"scope":"markup.raw","settings":{"foreground":"#4d9375"}},{"scope":["markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted"],"settings":{"background":"#86181d","foreground":"#fdaeb7"}},{"scope":["markup.inserted","meta.diff.header.to-file","punctuation.definition.inserted"],"settings":{"background":"#144620","foreground":"#85e89d"}},{"scope":["markup.changed","punctuation.definition.changed"],"settings":{"background":"#c24e00","foreground":"#ffab70"}},{"scope":["markup.ignored","markup.untracked"],"settings":{"background":"#79b8ff","foreground":"#2f363d"}},{"scope":"meta.diff.range","settings":{"fontStyle":"bold","foreground":"#b392f0"}},{"scope":"meta.diff.header","settings":{"foreground":"#79b8ff"}},{"scope":"meta.separator","settings":{"fontStyle":"bold","foreground":"#79b8ff"}},{"scope":"meta.output","settings":{"foreground":"#79b8ff"}},{"scope":["brackethighlighter.tag","brackethighlighter.curly","brackethighlighter.round","brackethighlighter.square","brackethighlighter.angle","brackethighlighter.quote"],"settings":{"foreground":"#d1d5da"}},{"scope":"brackethighlighter.unmatched","settings":{"foreground":"#fdaeb7"}},{"scope":["constant.other.reference.link","string.other.link","punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown"],"settings":{"foreground":"#c98a7d"}},{"scope":["markup.underline.link.markdown","markup.underline.link.image.markdown"],"settings":{"fontStyle":"underline","foreground":"#dedcd590"}},{"scope":["type.identifier","constant.other.character-class.regexp"],"settings":{"foreground":"#6872ab"}},{"scope":["entity.other.attribute-name.html.vue"],"settings":{"foreground":"#80a665"}},{"scope":["invalid.illegal.unrecognized-tag.html"],"settings":{"fontStyle":"normal"}}],"type":"dark"}'));export{e as default}; ================================================ FILE: jesse/static/_nuxt/Bl1h29GH.js ================================================ import e from"./BPhBrDlE.js";const n=Object.freeze(JSON.parse(`{"displayName":"SCSS","name":"scss","patterns":[{"include":"#variable_setting"},{"include":"#at_rule_forward"},{"include":"#at_rule_use"},{"include":"#at_rule_include"},{"include":"#at_rule_import"},{"include":"#general"},{"include":"#flow_control"},{"include":"#rules"},{"include":"#property_list"},{"include":"#at_rule_mixin"},{"include":"#at_rule_media"},{"include":"#at_rule_function"},{"include":"#at_rule_charset"},{"include":"#at_rule_option"},{"include":"#at_rule_namespace"},{"include":"#at_rule_fontface"},{"include":"#at_rule_page"},{"include":"#at_rule_keyframes"},{"include":"#at_rule_at_root"},{"include":"#at_rule_supports"},{"match":";","name":"punctuation.terminator.rule.css"}],"repository":{"at_rule_at_root":{"begin":"\\\\s*((@)(at-root))(\\\\s+|$)","beginCaptures":{"1":{"name":"keyword.control.at-rule.at-root.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?={)","name":"meta.at-rule.at-root.scss","patterns":[{"include":"#function_attributes"},{"include":"#functions"},{"include":"#selectors"}]},"at_rule_charset":{"begin":"\\\\s*((@)charset\\\\b)\\\\s*","captures":{"1":{"name":"keyword.control.at-rule.charset.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*((?=;|$))","name":"meta.at-rule.charset.scss","patterns":[{"include":"#variable"},{"include":"#string_single"},{"include":"#string_double"}]},"at_rule_content":{"begin":"\\\\s*((@)content\\\\b)\\\\s*","captures":{"1":{"name":"keyword.control.content.scss"}},"end":"\\\\s*((?=;))","name":"meta.content.scss","patterns":[{"include":"#variable"},{"include":"#selectors"},{"include":"#property_values"}]},"at_rule_each":{"begin":"\\\\s*((@)each\\\\b)\\\\s*","captures":{"1":{"name":"keyword.control.each.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*((?=}))","name":"meta.at-rule.each.scss","patterns":[{"match":"\\\\b(in|,)\\\\b","name":"keyword.control.operator"},{"include":"#variable"},{"include":"#property_values"},{"include":"$self"}]},"at_rule_else":{"begin":"\\\\s*((@)else(\\\\s*(if)?))\\\\s*","captures":{"1":{"name":"keyword.control.else.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?={)","name":"meta.at-rule.else.scss","patterns":[{"include":"#conditional_operators"},{"include":"#variable"},{"include":"#property_values"}]},"at_rule_extend":{"begin":"\\\\s*((@)extend\\\\b)\\\\s*","captures":{"1":{"name":"keyword.control.at-rule.extend.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=;)","name":"meta.at-rule.extend.scss","patterns":[{"include":"#variable"},{"include":"#selectors"},{"include":"#property_values"}]},"at_rule_fontface":{"patterns":[{"begin":"^\\\\s*((@)font-face\\\\b)","beginCaptures":{"1":{"name":"keyword.control.at-rule.fontface.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?={)","name":"meta.at-rule.fontface.scss","patterns":[{"include":"#function_attributes"}]}]},"at_rule_for":{"begin":"\\\\s*((@)for\\\\b)\\\\s*","captures":{"1":{"name":"keyword.control.for.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?={)","name":"meta.at-rule.for.scss","patterns":[{"match":"(==|!=|<=|>=|<|>|from|to|through)","name":"keyword.control.operator"},{"include":"#variable"},{"include":"#property_values"},{"include":"$self"}]},"at_rule_forward":{"begin":"\\\\s*((@)forward\\\\b)\\\\s*","captures":{"1":{"name":"keyword.control.at-rule.forward.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=;)","name":"meta.at-rule.forward.scss","patterns":[{"match":"\\\\b(as|hide|show)\\\\b","name":"keyword.control.operator"},{"captures":{"1":{"name":"entity.other.attribute-name.module.scss"},"2":{"name":"punctuation.definition.wildcard.scss"}},"match":"\\\\b([\\\\w-]+)(\\\\*)"},{"match":"\\\\b[\\\\w-]+\\\\b","name":"entity.name.function.scss"},{"include":"#variable"},{"include":"#string_single"},{"include":"#string_double"},{"include":"#comment_line"},{"include":"#comment_block"}]},"at_rule_function":{"patterns":[{"begin":"\\\\s*((@)function\\\\b)\\\\s*","captures":{"1":{"name":"keyword.control.at-rule.function.scss"},"2":{"name":"punctuation.definition.keyword.scss"},"3":{"name":"entity.name.function.scss"}},"end":"\\\\s*(?={)","name":"meta.at-rule.function.scss","patterns":[{"include":"#function_attributes"}]},{"captures":{"1":{"name":"keyword.control.at-rule.function.scss"},"2":{"name":"punctuation.definition.keyword.scss"},"3":{"name":"entity.name.function.scss"}},"match":"\\\\s*((@)function\\\\b)\\\\s*","name":"meta.at-rule.function.scss"}]},"at_rule_if":{"begin":"\\\\s*((@)if\\\\b)\\\\s*","captures":{"1":{"name":"keyword.control.if.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?={)","name":"meta.at-rule.if.scss","patterns":[{"include":"#conditional_operators"},{"include":"#variable"},{"include":"#property_values"}]},"at_rule_import":{"begin":"\\\\s*((@)import\\\\b)\\\\s*","captures":{"1":{"name":"keyword.control.at-rule.import.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*((?=;)|(?=}))","name":"meta.at-rule.import.scss","patterns":[{"include":"#variable"},{"include":"#string_single"},{"include":"#string_double"},{"include":"#functions"},{"include":"#comment_line"}]},"at_rule_include":{"patterns":[{"begin":"(?<=@include)\\\\s+(?:([\\\\w-]+)\\\\s*(\\\\.))?([\\\\w-]+)\\\\s*(\\\\()","beginCaptures":{"1":{"name":"variable.scss"},"2":{"name":"punctuation.access.module.scss"},"3":{"name":"entity.name.function.scss"},"4":{"name":"punctuation.definition.parameters.begin.bracket.round.scss"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.bracket.round.scss"}},"name":"meta.at-rule.include.scss","patterns":[{"include":"#function_attributes"}]},{"captures":{"0":{"name":"meta.at-rule.include.scss"},"1":{"name":"variable.scss"},"2":{"name":"punctuation.access.module.scss"},"3":{"name":"entity.name.function.scss"}},"match":"(?<=@include)\\\\s+(?:([\\\\w-]+)\\\\s*(\\\\.))?([\\\\w-]+)"},{"captures":{"0":{"name":"meta.at-rule.include.scss"},"1":{"name":"keyword.control.at-rule.include.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"match":"((@)include)\\\\b"}]},"at_rule_keyframes":{"begin":"(?<=^|\\\\s)(@)(?:-(?:webkit|moz)-)?keyframes\\\\b","beginCaptures":{"0":{"name":"keyword.control.at-rule.keyframes.scss"},"1":{"name":"punctuation.definition.keyword.scss"}},"end":"(?<=})","name":"meta.at-rule.keyframes.scss","patterns":[{"captures":{"1":{"name":"entity.name.function.scss"}},"match":"(?<=@keyframes)\\\\s+((?:[_A-Za-z][-\\\\w]|-[_A-Za-z])[-\\\\w]*)"},{"begin":"(?<=@keyframes)\\\\s+(\\")","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.scss"}},"contentName":"entity.name.function.scss","end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.scss"}},"name":"string.quoted.double.scss","patterns":[{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"include":"#interpolation"}]},{"begin":"(?<=@keyframes)\\\\s+(')","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.scss"}},"contentName":"entity.name.function.scss","end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.scss"}},"name":"string.quoted.single.scss","patterns":[{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"include":"#interpolation"}]},{"begin":"{","beginCaptures":{"0":{"name":"punctuation.section.keyframes.begin.scss"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.keyframes.end.scss"}},"patterns":[{"match":"\\\\b(?:(?:100|[1-9]\\\\d|\\\\d)%|from|to)(?=\\\\s*{)","name":"entity.other.attribute-name.scss"},{"include":"#flow_control"},{"include":"#interpolation"},{"include":"#property_list"},{"include":"#rules"}]}]},"at_rule_media":{"patterns":[{"begin":"^\\\\s*((@)media)\\\\b","beginCaptures":{"1":{"name":"keyword.control.at-rule.media.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?={)","name":"meta.at-rule.media.scss","patterns":[{"include":"#comment_docblock"},{"include":"#comment_block"},{"include":"#comment_line"},{"match":"\\\\b(only)\\\\b","name":"keyword.control.operator.css.scss"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.media-query.begin.bracket.round.scss"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.media-query.end.bracket.round.scss"}},"name":"meta.property-list.media-query.scss","patterns":[{"begin":"(?=|<|>","name":"keyword.operator.comparison.scss"},"conditional_operators":{"patterns":[{"include":"#comparison_operators"},{"include":"#logical_operators"}]},"constant_default":{"match":"!default","name":"keyword.other.default.scss"},"constant_functions":{"begin":"(?:([\\\\w-]+)(\\\\.))?([\\\\w-]+)(\\\\()","beginCaptures":{"1":{"name":"variable.scss"},"2":{"name":"punctuation.access.module.scss"},"3":{"name":"support.function.misc.scss"},"4":{"name":"punctuation.section.function.scss"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.section.function.scss"}},"patterns":[{"include":"#parameters"}]},"constant_important":{"match":"!important","name":"keyword.other.important.scss"},"constant_mathematical_symbols":{"match":"\\\\b(\\\\+|-|\\\\*|/)\\\\b","name":"support.constant.mathematical-symbols.scss"},"constant_optional":{"match":"!optional","name":"keyword.other.optional.scss"},"constant_sass_functions":{"begin":"(headings|stylesheet-url|rgba?|hsla?|ie-hex-str|red|green|blue|alpha|opacity|hue|saturation|lightness|prefixed|prefix|-moz|-svg|-css2|-pie|-webkit|-ms|font-(?:files|url)|grid-image|image-(?:width|height|url|color)|sprites?|sprite-(?:map|map-name|file|url|position)|inline-(?:font-files|image)|opposite-position|grad-point|grad-end-position|color-stops|color-stops-in-percentages|grad-color-stops|(?:radial|linear)-(?:gradient|svg-gradient)|opacify|fade-?in|transparentize|fade-?out|lighten|darken|saturate|desaturate|grayscale|adjust-(?:hue|lightness|saturation|color)|scale-(?:lightness|saturation|color)|change-color|spin|complement|invert|mix|-compass-(?:list|space-list|slice|nth|list-size)|blank|compact|nth|first-value-of|join|length|append|nest|append-selector|headers|enumerate|range|percentage|unitless|unit|if|type-of|comparable|elements-of-type|quote|unquote|escape|e|sin|cos|tan|abs|round|ceil|floor|pi|translate(?:X|Y))(\\\\()","beginCaptures":{"1":{"name":"support.function.misc.scss"},"2":{"name":"punctuation.section.function.scss"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.section.function.scss"}},"patterns":[{"include":"#parameters"}]},"flow_control":{"patterns":[{"include":"#at_rule_if"},{"include":"#at_rule_else"},{"include":"#at_rule_warn"},{"include":"#at_rule_for"},{"include":"#at_rule_while"},{"include":"#at_rule_each"},{"include":"#at_rule_return"}]},"function_attributes":{"patterns":[{"match":":","name":"punctuation.separator.key-value.scss"},{"include":"#general"},{"include":"#property_values"},{"match":"[={}\\\\?;@]","name":"invalid.illegal.scss"}]},"functions":{"patterns":[{"begin":"([\\\\w-]{1,})(\\\\()\\\\s*","beginCaptures":{"1":{"name":"support.function.misc.scss"},"2":{"name":"punctuation.section.function.scss"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.section.function.scss"}},"patterns":[{"include":"#parameters"}]},{"match":"([\\\\w-]{1,})","name":"support.function.misc.scss"}]},"general":{"patterns":[{"include":"#variable"},{"include":"#comment_docblock"},{"include":"#comment_block"},{"include":"#comment_line"}]},"interpolation":{"begin":"#{","beginCaptures":{"0":{"name":"punctuation.definition.interpolation.begin.bracket.curly.scss"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.interpolation.end.bracket.curly.scss"}},"name":"variable.interpolation.scss","patterns":[{"include":"#variable"},{"include":"#property_values"}]},"logical_operators":{"match":"\\\\b(not|or|and)\\\\b","name":"keyword.operator.logical.scss"},"map":{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.map.begin.bracket.round.scss"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.map.end.bracket.round.scss"}},"name":"meta.definition.variable.map.scss","patterns":[{"include":"#comment_docblock"},{"include":"#comment_block"},{"include":"#comment_line"},{"captures":{"1":{"name":"support.type.map.key.scss"},"2":{"name":"punctuation.separator.key-value.scss"}},"match":"\\\\b([\\\\w-]+)\\\\s*(:)"},{"match":",","name":"punctuation.separator.delimiter.scss"},{"include":"#map"},{"include":"#variable"},{"include":"#property_values"}]},"operators":{"match":"[-+*/](?!\\\\s*[-+*/])","name":"keyword.operator.css"},"parameters":{"patterns":[{"include":"#variable"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.scss"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.scss"}},"patterns":[{"include":"#function_attributes"}]},{"include":"#property_values"},{"include":"#comment_block"},{"match":"[^'\\",) \\\\t]+","name":"variable.parameter.url.scss"},{"match":",","name":"punctuation.separator.delimiter.scss"}]},"parent_selector_suffix":{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"patterns":[{"include":"#interpolation"},{"match":"\\\\\\\\([0-9a-fA-F]{1,6}|.)","name":"constant.character.escape.scss"},{"match":"\\\\$|}","name":"invalid.illegal.identifier.scss"}]}},"match":"(?<=&)((?:[-a-zA-Z_0-9]|[^\\\\x00-\\\\x7F]|\\\\\\\\(?:[0-9a-fA-F]{1,6}|.)|\\\\#\\\\{|\\\\$|})+)(?=$|[\\\\s,.\\\\#)\\\\[:{>+~|]|/\\\\*)","name":"entity.other.attribute-name.parent-selector-suffix.css"},"properties":{"patterns":[{"begin":"(?+~|]|\\\\.[^$]|/\\\\*|;)","name":"entity.other.attribute-name.class.css"},"selector_custom":{"match":"\\\\b([a-zA-Z0-9]+(-[a-zA-Z0-9]+)+)(?=\\\\.|\\\\s++[^:]|\\\\s*[,\\\\[{]|:(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|indeterminate|root|nth-(child|last-child|of-type|last-of-type)|first-child|last-child|first-of-type|last-of-type|only-child|only-of-type|empty|not|valid|invalid)(\\\\([0-9A-Za-z]*\\\\))?)","name":"entity.name.tag.custom.scss"},"selector_id":{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"patterns":[{"include":"#interpolation"},{"match":"\\\\\\\\([0-9a-fA-F]{1,6}|.)","name":"constant.character.escape.scss"},{"match":"\\\\$|}","name":"invalid.illegal.identifier.scss"}]}},"match":"(\\\\#)((?:[-a-zA-Z_0-9]|[^\\\\x00-\\\\x7F]|\\\\\\\\(?:[0-9a-fA-F]{1,6}|.)|\\\\#\\\\{|\\\\.?\\\\$|})+)(?=$|[\\\\s,\\\\#)\\\\[:{>+~|]|\\\\.[^$]|/\\\\*)","name":"entity.other.attribute-name.id.css"},"selector_placeholder":{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"patterns":[{"include":"#interpolation"},{"match":"\\\\\\\\([0-9a-fA-F]{1,6}|.)","name":"constant.character.escape.scss"},{"match":"\\\\$|}","name":"invalid.illegal.identifier.scss"}]}},"match":"(%)((?:[-a-zA-Z_0-9]|[^\\\\x00-\\\\x7F]|\\\\\\\\(?:[0-9a-fA-F]{1,6}|.)|\\\\#\\\\{|\\\\.\\\\$|\\\\$|})+)(?=;|$|[\\\\s,\\\\#)\\\\[:{>+~|]|\\\\.[^$]|/\\\\*)","name":"entity.other.attribute-name.placeholder.css"},"selector_pseudo_class":{"patterns":[{"begin":"((:)\\\\bnth-(?:child|last-child|of-type|last-of-type))(\\\\()","beginCaptures":{"1":{"name":"entity.other.attribute-name.pseudo-class.css"},"2":{"name":"punctuation.definition.entity.css"},"3":{"name":"punctuation.definition.pseudo-class.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.pseudo-class.end.bracket.round.css"}},"patterns":[{"include":"#interpolation"},{"match":"\\\\d+","name":"constant.numeric.css"},{"match":"(?<=\\\\d)n\\\\b|\\\\b(n|even|odd)\\\\b","name":"constant.other.scss"},{"match":"\\\\w+","name":"invalid.illegal.scss"}]},{"include":"source.css#pseudo-classes"},{"include":"source.css#pseudo-elements"},{"include":"source.css#functional-pseudo-classes"}]},"selectors":{"patterns":[{"include":"source.css#tag-names"},{"include":"#selector_custom"},{"include":"#selector_class"},{"include":"#selector_id"},{"include":"#selector_pseudo_class"},{"include":"#tag_wildcard"},{"include":"#tag_parent_reference"},{"include":"source.css#pseudo-elements"},{"include":"#selector_attribute"},{"include":"#selector_placeholder"},{"include":"#parent_selector_suffix"}]},"string_double":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.scss"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.scss"}},"name":"string.quoted.double.scss","patterns":[{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"include":"#interpolation"}]},"string_single":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.scss"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.scss"}},"name":"string.quoted.single.scss","patterns":[{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"include":"#interpolation"}]},"tag_parent_reference":{"match":"&","name":"entity.name.tag.reference.scss"},"tag_wildcard":{"match":"\\\\*","name":"entity.name.tag.wildcard.scss"},"variable":{"patterns":[{"include":"#variables"},{"include":"#interpolation"}]},"variable_setting":{"begin":"(?=\\\\$[\\\\w-]+\\\\s*:)","contentName":"meta.definition.variable.scss","end":";","endCaptures":{"0":{"name":"punctuation.terminator.rule.scss"}},"patterns":[{"match":"\\\\$[\\\\w-]+(?=\\\\s*:)","name":"variable.scss"},{"begin":":","beginCaptures":{"0":{"name":"punctuation.separator.key-value.scss"}},"end":"(?=;)","patterns":[{"include":"#comment_docblock"},{"include":"#comment_block"},{"include":"#comment_line"},{"include":"#map"},{"include":"#property_values"},{"include":"#variable"},{"match":",","name":"punctuation.separator.delimiter.scss"}]}]},"variables":{"patterns":[{"captures":{"1":{"name":"variable.scss"},"2":{"name":"punctuation.access.module.scss"},"3":{"name":"variable.scss"}},"match":"\\\\b([\\\\w-]+)(\\\\.)(\\\\$[\\\\w-]+)\\\\b"},{"match":"(\\\\$|\\\\-\\\\-)[A-Za-z0-9_-]+\\\\b","name":"variable.scss"}]}},"scopeName":"source.css.scss","embeddedLangs":["css"]}`)),s=[...e,n];export{s as default}; ================================================ FILE: jesse/static/_nuxt/BlxRB_8X.js ================================================ import t from"./DRhBOlRY.js";import e from"./ySlJ1b_l.js";import"./BMYPR7BL.js";import"./BPhBrDlE.js";import"./Dj6nwHGl.js";import"./BQoSv7ci.js";import"./e4jU7D2d.js";const n=Object.freeze(JSON.parse(`{"displayName":"Vue HTML","fileTypes":[],"name":"vue-html","patterns":[{"include":"source.vue#vue-interpolations"},{"begin":"(<)([A-Z][a-zA-Z0-9:-]*)(?=[^>]*>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"support.class.component.html"}},"end":"(>)(<)(/)(\\\\2)(>)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"},"2":{"name":"punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html"},"3":{"name":"punctuation.definition.tag.begin.html"},"4":{"name":"support.class.component.html"},"5":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.any.html","patterns":[{"include":"#tag-stuff"}]},{"begin":"(<)([a-z][a-zA-Z0-9:-]*)(?=[^>]*>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.begin.html"},"2":{"name":"entity.name.tag.html"}},"end":"(>)(<)(/)(\\\\2)(>)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"},"2":{"name":"punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html"},"3":{"name":"punctuation.definition.tag.begin.html"},"4":{"name":"entity.name.tag.html"},"5":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.any.html","patterns":[{"include":"#tag-stuff"}]},{"begin":"(<\\\\?)(xml)","captures":{"1":{"name":"punctuation.definition.tag.html"},"2":{"name":"entity.name.tag.xml.html"}},"end":"(\\\\?>)","name":"meta.tag.preprocessor.xml.html","patterns":[{"include":"#tag-generic-attribute"},{"include":"#string-double-quoted"},{"include":"#string-single-quoted"}]},{"begin":"","name":"comment.block.html"},{"begin":"","name":"meta.tag.sgml.html","patterns":[{"begin":"(?i:DOCTYPE)","captures":{"1":{"name":"entity.name.tag.doctype.html"}},"end":"(?=>)","name":"meta.tag.sgml.doctype.html","patterns":[{"match":"\\"[^\\">]*\\"","name":"string.quoted.double.doctype.identifiers-and-DTDs.html"}]},{"begin":"\\\\[CDATA\\\\[","end":"]](?=>)","name":"constant.other.inline-data.html"},{"match":"(\\\\s*)(?!--|>)\\\\S(\\\\s*)","name":"invalid.illegal.bad-comments-or-CDATA.html"}]},{"begin":"()","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.block.any.html","patterns":[{"include":"#tag-stuff"}]},{"begin":"()","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.block.any.html","patterns":[{"include":"#tag-stuff"}]},{"begin":"()","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.structure.any.html","patterns":[{"include":"#tag-stuff"}]},{"begin":"()","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.block.any.html","patterns":[{"include":"#tag-stuff"}]},{"begin":"()","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.inline.any.html","patterns":[{"include":"#tag-stuff"}]},{"begin":"()","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.other.html","patterns":[{"include":"#tag-stuff"}]},{"include":"#entities"},{"match":"<>","name":"invalid.illegal.incomplete.html"},{"match":"<","name":"invalid.illegal.bad-angle-bracket.html"}],"repository":{"entities":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.entity.html"},"3":{"name":"punctuation.definition.entity.html"}},"match":"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)","name":"constant.character.entity.html"},{"match":"&","name":"invalid.illegal.bad-ampersand.html"}]},"string-double-quoted":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}},"name":"string.quoted.double.html","patterns":[{"include":"source.vue#vue-interpolations"},{"include":"#entities"}]},"string-single-quoted":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}},"name":"string.quoted.single.html","patterns":[{"include":"source.vue#vue-interpolations"},{"include":"#entities"}]},"tag-generic-attribute":{"match":"(?<=[^=])\\\\b([a-zA-Z0-9:\\\\-_]+)","name":"entity.other.attribute-name.html"},"tag-id-attribute":{"begin":"\\\\b(id)\\\\b\\\\s*(=)","captures":{"1":{"name":"entity.other.attribute-name.id.html"},"2":{"name":"punctuation.separator.key-value.html"}},"end":"(?!\\\\G)(?<='|\\"|[^\\\\s<>/])","name":"meta.attribute-with-value.id.html","patterns":[{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"contentName":"meta.toc-list.id.html","end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}},"name":"string.quoted.double.html","patterns":[{"include":"source.vue#vue-interpolations"},{"include":"#entities"}]},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"contentName":"meta.toc-list.id.html","end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}},"name":"string.quoted.single.html","patterns":[{"include":"source.vue#vue-interpolations"},{"include":"#entities"}]},{"captures":{"0":{"name":"meta.toc-list.id.html"}},"match":"(?<==)(?:[^\\\\s<>/'\\"]|/(?!>))+","name":"string.unquoted.html"}]},"tag-stuff":{"patterns":[{"include":"#vue-directives"},{"include":"#tag-id-attribute"},{"include":"#tag-generic-attribute"},{"include":"#string-double-quoted"},{"include":"#string-single-quoted"},{"include":"#unquoted-attribute"}]},"unquoted-attribute":{"match":"(?<==)(?:[^\\\\s<>/'\\"]|/(?!>))+","name":"string.unquoted.html"},"vue-directives":{"begin":"(?:\\\\b(v-)|(:|@|#))([a-zA-Z0-9\\\\-_]+)(?:\\\\:([a-zA-Z\\\\-_]+))?(?:\\\\.([a-zA-Z\\\\-_]+))*\\\\s*(=)","captures":{"1":{"name":"entity.other.attribute-name.html"},"2":{"name":"punctuation.separator.key-value.html"},"3":{"name":"entity.other.attribute-name.html"},"4":{"name":"entity.other.attribute-name.html"},"5":{"name":"entity.other.attribute-name.html"},"6":{"name":"punctuation.separator.key-value.html"}},"end":"(?<='|\\")|(?=[\\\\s<>\`])","name":"meta.directive.vue","patterns":[{"begin":"\`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"end":"\`","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}},"name":"source.directive.vue","patterns":[{"include":"source.js#expression"}]},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}},"name":"source.directive.vue","patterns":[{"include":"source.js#expression"}]},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.html"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.html"}},"name":"source.directive.vue","patterns":[{"include":"source.js#expression"}]}]}},"scopeName":"text.html.vue-html","embeddedLangs":["vue","javascript"],"embeddedLangsLazy":[]}`)),d=[...t,...e,n];export{d as default}; ================================================ FILE: jesse/static/_nuxt/BoXegm-a.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"D","fileTypes":["d","di","dpp"],"name":"d","patterns":[{"include":"#comment"},{"include":"#type"},{"include":"#statement"},{"include":"#expression"}],"repository":{"aggregate-declaration":{"patterns":[{"include":"#class-declaration"},{"include":"#interface-declaration"},{"include":"#struct-declaration"},{"include":"#union-declaration"},{"include":"#mixin-template-declaration"},{"include":"#template-declaration"}]},"alias-declaration":{"patterns":[{"begin":"\\\\b(alias)\\\\b\\\\s*","beginCaptures":{"1":{"name":"keyword.other.alias.d"}},"end":";","endCaptures":{"0":{"name":"meta.alias.end.d"}},"patterns":[{"include":"#type"},{"match":"=(?![=>])","name":"keyword.operator.equal.alias.d"},{"include":"#expression"}]}]},"align-attribute":{"patterns":[{"begin":"\\\\balign\\\\s*\\\\(","end":"\\\\)","name":"storage.modifier.align-attribute.d","patterns":[{"include":"#integer-literal"}]},{"match":"\\\\balign\\\\b\\\\s*(?!\\\\()","name":"storage.modifier.align-attribute.d"}]},"alternate-wysiwyg-string":{"patterns":[{"begin":"\`","end":"\`[cwd]?","name":"string.alternate-wysiwyg-string.d","patterns":[{"include":"#wysiwyg-characters"}]}]},"arbitrary-delimited-string":{"begin":"q\\"(\\\\w+)","end":"\\\\1\\"","name":"string.delimited.d","patterns":[{"match":".","name":"string.delimited.d"}]},"arithmetic-expression":{"patterns":[{"match":"\\\\^\\\\^|\\\\+\\\\+|--|(?>>=|\\\\^\\\\^=|>>=|<<=|~=|\\\\^=|\\\\|=|&=|%=|/=|\\\\*=|-=|\\\\+=|=(?!>)","name":"keyword.operator.assign.d"}]},"attribute":{"patterns":[{"include":"#linkage-attribute"},{"include":"#align-attribute"},{"include":"#deprecated-attribute"},{"include":"#protection-attribute"},{"include":"#pragma"},{"match":"\\\\b(static|extern|abstract|final|override|synchronized|auto|scope|const|immutable|inout|shared|__gshared|nothrow|pure|ref)\\\\b","name":"entity.other.attribute-name.d"},{"include":"#property"}]},"base-type":{"patterns":[{"match":"\\\\b(auto|bool|byte|ubyte|short|ushort|int|uint|long|ulong|char|wchar|dchar|float|double|real|ifloat|idouble|ireal|cfloat|cdouble|creal|void|noreturn)\\\\b","name":"storage.type.basic-type.d"},{"match":"\\\\b(string|wstring|dstring|size_t|ptrdiff_t)\\\\b(?!\\\\s*=)","name":"storage.type.basic-type.d"}]},"binary-integer":{"patterns":[{"match":"\\\\b(0b|0B)[0-1_]+(Lu|LU|uL|UL|L|u|U)?\\\\b","name":"constant.numeric.integer.binary.d"}]},"bitwise-expression":{"patterns":[{"match":"\\\\||\\\\^|&","name":"keyword.operator.bitwise.d"}]},"block-comment":{"patterns":[{"begin":"/((?!\\\\*/)\\\\*)+","beginCaptures":{"0":{"name":"comment.block.begin.d"}},"end":"\\\\*+/","endCaptures":{"0":{"name":"comment.block.end.d"}},"name":"comment.block.content.d"}]},"break-statement":{"patterns":[{"match":"\\\\bbreak\\\\b","name":"keyword.control.break.d"}]},"case-statement":{"patterns":[{"begin":"\\\\b(case)\\\\b\\\\s*","beginCaptures":{"1":{"name":"keyword.control.case.range.d"}},"end":":","endCaptures":{"0":{"name":"meta.case.end.d"}},"patterns":[{"include":"#comment"},{"include":"#expression"},{"include":"#comma"}]}]},"cast-expression":{"patterns":[{"begin":"\\\\b(cast)\\\\s*(\\\\()","beginCaptures":{"1":{"name":"keyword.operator.cast.d"},"2":{"name":"keyword.operator.cast.begin.d"}},"end":"\\\\)","endCaptures":{"0":{"name":"keyword.operator.cast.end.d"}},"patterns":[{"include":"#type"},{"include":"#extended-type"}]}]},"catch":{"patterns":[{"begin":"\\\\b(catch)\\\\b\\\\s*(?=\\\\()","captures":{"1":{"name":"keyword.control.catch.d"}},"end":"(?<=\\\\))","patterns":[{"begin":"\\\\(","end":"\\\\)","patterns":[{"include":"source.d"}]}]}]},"catches":{"patterns":[{"include":"#catch"}]},"character":{"patterns":[{"match":"[\\\\w\\\\s]+","name":"string.character.d"}]},"character-literal":{"patterns":[{"begin":"'","end":"'","name":"string.character-literal.d","patterns":[{"include":"#character"},{"include":"#escape-sequence"}]}]},"class-declaration":{"patterns":[{"captures":{"1":{"name":"storage.type.class.d"},"2":{"name":"entity.name.class.d"}},"match":"\\\\b(class)(?:\\\\s+([A-Za-z_][\\\\w_\\\\d]*))?\\\\b"},{"include":"#protection-attribute"},{"include":"#class-members"}]},"class-members":{"patterns":[{"include":"#shared-static-constructor"},{"include":"#shared-static-destructor"},{"include":"#constructor"},{"include":"#destructor"},{"include":"#postblit"},{"include":"#invariant"},{"include":"#member-function-attribute"}]},"colon":{"patterns":[{"match":":","name":"support.type.colon.d"}]},"comma":{"patterns":[{"match":",","name":"keyword.operator.comma.d"}]},"comment":{"patterns":[{"include":"#block-comment"},{"include":"#line-comment"},{"include":"#nesting-block-comment"}]},"condition":{"patterns":[{"include":"#version-condition"},{"include":"#debug-condition"},{"include":"#static-if-condition"}]},"conditional-declaration":{"patterns":[{"include":"#condition"},{"match":"\\\\belse\\\\b","name":"keyword.control.else.d"},{"include":"#colon"},{"include":"#decl-defs"}]},"conditional-expression":{"patterns":[{"match":"\\\\s(\\\\?|:)\\\\s","name":"keyword.operator.ternary.d"}]},"conditional-statement":{"patterns":[{"include":"#condition"},{"include":"#no-scope-non-empty-statement"},{"match":"\\\\belse\\\\b","name":"keyword.control.else.d"}]},"constructor":{"patterns":[{"match":"\\\\bthis\\\\b","name":"entity.name.function.constructor.d"}]},"continue-statement":{"patterns":[{"match":"\\\\bcontinue\\\\b","name":"keyword.control.continue.d"}]},"debug-condition":{"patterns":[{"begin":"\\\\bdebug\\\\s*\\\\(","beginCaptures":{"0":{"name":"keyword.other.debug.identifier.begin.d"}},"end":"\\\\)","endCaptures":{"0":{"name":"keyword.other.debug.identifier.end.d"}},"patterns":[{"include":"#integer-literal"},{"include":"#identifier"}]},{"match":"\\\\bdebug\\\\b\\\\s*(?!\\\\()","name":"keyword.other.debug.plain.d"}]},"debug-specification":{"patterns":[{"match":"\\\\bdebug\\\\b\\\\s*(?==)","name":"keyword.other.debug-specification.d"}]},"decimal-float":{"patterns":[{"match":"\\\\b((\\\\.[0-9])|(0\\\\.)|(([1-9]|(0[1-9_]))[0-9_]*\\\\.))[0-9_]*((e-|E-|e\\\\+|E\\\\+|e|E)[0-9][0-9_]*)?[LfF]?i?\\\\b","name":"constant.numeric.float.decimal.d"}]},"decimal-integer":{"patterns":[{"match":"\\\\b(0(?=[^\\\\dxXbB]))|([1-9][0-9_]*)(Lu|LU|uL|UL|L|u|U)?\\\\b","name":"constant.numeric.integer.decimal.d"}]},"declaration":{"patterns":[{"include":"#alias-declaration"},{"include":"#aggregate-declaration"},{"include":"#enum-declaration"},{"include":"#import-declaration"},{"include":"#storage-class"},{"include":"#void-initializer"},{"include":"#mixin-declaration"}]},"declaration-statement":{"patterns":[{"include":"#declaration"}]},"default-statement":{"patterns":[{"captures":{"1":{"name":"keyword.control.case.default.d"},"2":{"name":"meta.default.colon.d"}},"match":"\\\\b(default)\\\\s*(:)"}]},"delete-expression":{"patterns":[{"match":"\\\\bdelete\\\\s+","name":"keyword.other.delete.d"}]},"delimited-string":{"begin":"q\\"","end":"\\"","name":"string.delimited.d","patterns":[{"include":"#delimited-string-bracket"},{"include":"#delimited-string-parens"},{"include":"#delimited-string-angle-brackets"},{"include":"#delimited-string-braces"}]},"delimited-string-angle-brackets":{"patterns":[{"begin":"<","end":">","name":"constant.character.angle-brackets.d","patterns":[{"include":"#wysiwyg-characters"}]}]},"delimited-string-braces":{"patterns":[{"begin":"\\\\{","end":"\\\\}","name":"constant.character.delimited.braces.d","patterns":[{"include":"#wysiwyg-characters"}]}]},"delimited-string-bracket":{"patterns":[{"begin":"\\\\[","end":"\\\\]","name":"constant.characters.delimited.brackets.d","patterns":[{"include":"#wysiwyg-characters"}]}]},"delimited-string-parens":{"patterns":[{"begin":"\\\\(","end":"\\\\)","name":"constant.character.delimited.parens.d","patterns":[{"include":"#wysiwyg-characters"}]}]},"deprecated-statement":{"patterns":[{"begin":"\\\\bdeprecated\\\\s*\\\\(","beginCaptures":{"0":{"name":"keyword.other.deprecated.begin.d"}},"end":"\\\\)","endCaptures":{"0":{"name":"keyword.other.deprecated.end.d"}},"patterns":[{"include":"#comment"},{"include":"#expression"},{"include":"#comma"}]},{"match":"\\\\bdeprecated\\\\b\\\\s*(?!\\\\()","name":"keyword.other.deprecated.plain.d"}]},"destructor":{"patterns":[{"match":"\\\\b~this\\\\s*\\\\(\\\\s*\\\\)","name":"entity.name.class.destructor.d"}]},"do-statement":{"patterns":[{"match":"\\\\bdo\\\\b","name":"keyword.control.do.d"}]},"double-quoted-characters":{"patterns":[{"include":"#character"},{"include":"#end-of-line"},{"include":"#escape-sequence"}]},"double-quoted-string":{"patterns":[{"begin":"\\"","end":"\\"[cwd]?","name":"string.double-quoted-string.d","patterns":[{"include":"#double-quoted-characters"}]}]},"end-of-line":{"patterns":[{"match":"\\\\n+","name":"string.character.end-of-line.d"}]},"enum-declaration":{"patterns":[{"begin":"\\\\b(enum)\\\\b\\\\s+(?=.*[=;])","beginCaptures":{"1":{"name":"storage.type.enum.d"}},"end":"([A-Za-z_][\\\\w_\\\\d]*)\\\\s*(?=;|=|\\\\()(;)?","endCaptures":{"1":{"name":"entity.name.type.enum.d"},"2":{"name":"meta.enum.end.d"}},"patterns":[{"include":"#type"},{"include":"#extended-type"},{"match":"=(?![=>])","name":"keyword.operator.equal.alias.d"}]}]},"eof":{"patterns":[{"begin":"__EOF__","beginCaptures":{"0":{"name":"comment.block.documentation.eof.start.d"}},"end":"(?!__NEVER_MATCH__)__NEVER_MATCH__","name":"text.eof.d"}]},"equal":{"patterns":[{"match":"=(?![=>])","name":"keyword.operator.equal.d"}]},"escape-sequence":{"patterns":[{"match":"(\\\\\\\\(?:quot|amp|lt|gt|OElig|oelig|Scaron|scaron|Yuml|circ|tilde|ensp|emsp|thinsp|zwnj|zwj|lrm|rlm|ndash|mdash|lsquo|rsquo|sbquo|ldquo|rdquo|bdquo|dagger|Dagger|permil|lsaquo|rsaquo|euro|nbsp|iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|Atilde|Auml|Aring|Aelig|Ccedil|egrave|eacute|ecirc|iuml|eth|ntilde|ograve|oacute|ocirc|otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|yuml|fnof|Alpha|Beta|Gamma|Delta|Epsilon|Zeta|Eta|Theta|Iota|Kappa|Lambda|Mu|Nu|Xi|Omicron|Pi|Rho|Sigma|Tau|Upsilon|Phi|Chi|Psi|Omega|alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigmaf|sigma|tau|upsilon|phi|chi|psi|omega|thetasym|upsih|piv|bull|hellip|prime|Prime|oline|frasl|weierp|image|real|trade|alefsym|larr|uarr|rarr|darr|harr|crarr|lArr|uArr|rArr|dArr|hArr|forall|part|exist|empty|nabla|isin|notin|ni|prod|sum|minux|lowast|radic|prop|infin|ang|and|or|cap|cup|int|there4|sim|cong|asymp|ne|equiv|le|ge|sub|sup|nsub|sube|supe|oplus|otimes|perp|sdot|lceil|rceil|lfloor|rfloor|loz|spades|clubs|hearts|diams|lang|rang))","name":"constant.character.escape-sequence.entity.d"},{"match":"(\\\\\\\\x[0-9a-fA-F_]{2}|\\\\\\\\u[0-9a-fA-F_]{4}|\\\\\\\\U[0-9a-fA-F_]{8}|\\\\\\\\[0-7]{1,3})","name":"constant.character.escape-sequence.number.d"},{"match":"(\\\\\\\\t|\\\\\\\\'|\\\\\\\\\\"|\\\\\\\\\\\\?|\\\\\\\\0|\\\\\\\\a|\\\\\\\\b|\\\\\\\\f|\\\\\\\\n|\\\\\\\\r|\\\\\\\\v|\\\\\\\\\\\\\\\\)","name":"constant.character.escape-sequence.d"}]},"expression":{"patterns":[{"include":"#index-expression"},{"include":"#expression-no-index"}]},"expression-no-index":{"patterns":[{"include":"#function-literal"},{"include":"#assert-expression"},{"include":"#assign-expression"},{"include":"#mixin-expression"},{"include":"#import-expression"},{"include":"#traits-expression"},{"include":"#is-expression"},{"include":"#typeid-expression"},{"include":"#shift-expression"},{"include":"#logical-expression"},{"include":"#rel-expression"},{"include":"#bitwise-expression"},{"include":"#identity-expression"},{"include":"#in-expression"},{"include":"#conditional-expression"},{"include":"#arithmetic-expression"},{"include":"#new-expression"},{"include":"#delete-expression"},{"include":"#cast-expression"},{"include":"#type-specialization"},{"include":"#comma"},{"include":"#special-keyword"},{"include":"#functions"},{"include":"#type"},{"include":"#parentheses-expression"},{"include":"#lexical"}]},"extended-type":{"patterns":[{"match":"\\\\b((\\\\.\\\\s*)?[_\\\\w][_\\\\d\\\\w]*)(\\\\s*\\\\.\\\\s*[_\\\\w][_\\\\d\\\\w]*)*\\\\b","name":"entity.name.type.d"},{"begin":"\\\\[","beginCaptures":{"0":{"name":"storage.type.array.expression.begin.d"}},"end":"\\\\]","endCaptures":{"0":{"name":"storage.type.array.expression.end.d"}},"patterns":[{"match":"\\\\.\\\\.|\\\\$","name":"keyword.operator.slice.d"},{"include":"#type"},{"include":"#expression"}]}]},"final-switch-statement":{"patterns":[{"begin":"\\\\b(final\\\\s+switch)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.final.switch.d"}},"end":"(?<=\\\\))","patterns":[{"begin":"\\\\(","end":"\\\\)","patterns":[{"include":"source.d"}]}]}]},"finally-statement":{"patterns":[{"match":"\\\\bfinally\\\\b","name":"keyword.control.throw.d"}]},"float-literal":{"patterns":[{"include":"#decimal-float"},{"include":"#hexadecimal-float"}]},"for-statement":{"patterns":[{"begin":"\\\\b(for)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.for.d"}},"end":"(?<=\\\\))","patterns":[{"begin":"\\\\(","end":"\\\\)","patterns":[{"include":"source.d"}]}]}]},"foreach-reverse-statement":{"patterns":[{"begin":"\\\\b(foreach_reverse)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.foreach_reverse.d"}},"end":"(?<=\\\\))","patterns":[{"begin":"\\\\(","end":"\\\\)","patterns":[{"match":";","name":"keyword.operator.semi-colon.d"},{"include":"source.d"}]}]}]},"foreach-statement":{"patterns":[{"begin":"\\\\b(foreach)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.foreach.d"}},"end":"(?<=\\\\))","patterns":[{"begin":"\\\\(","end":"\\\\)","patterns":[{"match":";","name":"keyword.operator.semi-colon.d"},{"include":"source.d"}]}]}]},"function-attribute":{"patterns":[{"match":"\\\\b(nothrow|pure)\\\\b","name":"storage.type.modifier.function-attribute.d"},{"include":"#property"}]},"function-body":{"patterns":[{"include":"#in-statement"},{"include":"#out-statement"},{"include":"#block-statement"}]},"function-literal":{"patterns":[{"match":"=>","name":"keyword.operator.lambda.d"},{"match":"\\\\b(function|delegate)\\\\b","name":"keyword.other.function-literal.d"},{"begin":"\\\\b([_\\\\w][_\\\\d\\\\w]*)\\\\s*(=>)","beginCaptures":{"1":{"name":"variable.parameter.d"},"2":{"name":"meta.lexical.token.symbolic.d"}},"end":"(?=[\\\\);,\\\\]}])","patterns":[{"include":"source.d"}]},{"begin":"(?<=\\\\)|\\\\()(\\\\s*)({)","beginCaptures":{"1":{"name":"source.d"},"2":{"name":"source.d"}},"end":"}","patterns":[{"include":"source.d"}]}]},"function-prelude":{"patterns":[{"match":"(?!typeof|typeid)((\\\\.\\\\s*)?[_\\\\w][_\\\\d\\\\w]*)(\\\\s*\\\\.\\\\s*[_\\\\w][_\\\\d\\\\w]*)*\\\\s*(?=\\\\()","name":"entity.name.function.d"}]},"functions":{"patterns":[{"include":"#function-attribute"},{"include":"#function-prelude"}]},"goto-statement":{"patterns":[{"match":"\\\\bgoto\\\\s+default\\\\b","name":"keyword.control.goto.d"},{"match":"\\\\bgoto\\\\s+case\\\\b","name":"keyword.control.goto.d"},{"match":"\\\\bgoto\\\\b","name":"keyword.control.goto.d"}]},"hex-string":{"patterns":[{"begin":"x\\"","end":"\\"[cwd]?","name":"string.hex-string.d","patterns":[{"match":"[a-fA-F0-9_s]+","name":"constant.character.hex-string.d"}]}]},"hexadecimal-float":{"patterns":[{"match":"\\\\b0[xX][0-9a-fA-F_]*(\\\\.[0-9a-fA-F_]*)?(p-|P-|p\\\\+|P\\\\+|p|P)[0-9][0-9_]*[LfF]?i?\\\\b","name":"constant.numeric.float.hexadecimal.d"}]},"hexadecimal-integer":{"patterns":[{"match":"\\\\b(0x|0X)([0-9a-fA-F][0-9a-fA-F_]*)(Lu|LU|uL|UL|L|u|U)?\\\\b","name":"constant.numeric.integer.hexadecimal.d"}]},"identifier":{"patterns":[{"match":"\\\\b((\\\\.\\\\s*)?[_\\\\w][_\\\\d\\\\w]*)(\\\\s*\\\\.\\\\s*[_\\\\w][_\\\\d\\\\w]*)*\\\\b","name":"variable.d"}]},"identifier-list":{"patterns":[{"match":",","name":"keyword.other.comma.d"},{"include":"#identifier"}]},"identity-expression":{"patterns":[{"match":"\\\\b(is|!is)\\\\b","name":"keyword.operator.identity.d"}]},"if-statement":{"patterns":[{"begin":"\\\\b(if)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.if.d"}},"end":"(?<=\\\\))","patterns":[{"begin":"\\\\(","end":"\\\\)","patterns":[{"include":"source.d"}]}]},{"match":"\\\\belse\\\\b\\\\s*","name":"keyword.control.else.d"}]},"import-declaration":{"patterns":[{"begin":"\\\\b(static\\\\s+)?(import)\\\\s+(?!\\\\()","beginCaptures":{"1":{"name":"keyword.package.import.d"},"2":{"name":"keyword.package.import.d"}},"end":";","endCaptures":{"0":{"name":"meta.import.end.d"}},"patterns":[{"include":"#import-identifier"},{"include":"#comma"},{"include":"#comment"}]}]},"import-expression":{"patterns":[{"begin":"\\\\b(import)\\\\s*(\\\\()","beginCaptures":{"1":{"name":"keyword.other.import.d"},"2":{"name":"keyword.other.import.begin.d"}},"end":"\\\\)","endCaptures":{"0":{"name":"keyword.other.import.end.d"}},"patterns":[{"include":"#comment"},{"include":"#expression"},{"include":"#comma"}]}]},"import-identifier":{"patterns":[{"match":"([_a-zA-Z][_\\\\d\\\\w]*)(\\\\s*\\\\.\\\\s*[_a-zA-Z][_\\\\d\\\\w]*)*","name":"variable.parameter.import.d"}]},"in-expression":{"patterns":[{"match":"\\\\b(in|!in)\\\\b","name":"keyword.operator.in.d"}]},"in-statement":{"patterns":[{"match":"\\\\bin\\\\b","name":"keyword.control.in.d"}]},"index-expression":{"patterns":[{"begin":"\\\\[","end":"\\\\]","patterns":[{"match":"\\\\.\\\\.|\\\\$","name":"keyword.operator.slice.d"},{"include":"#expression-no-index"}]}]},"integer-literal":{"patterns":[{"include":"#decimal-integer"},{"include":"#binary-integer"},{"include":"#hexadecimal-integer"}]},"interface-declaration":{"patterns":[{"captures":{"1":{"name":"storage.type.interface.d"},"2":{"name":"entity.name.type.interface.d"}},"match":"\\\\b(interface)(?:\\\\s+([A-Za-z_][\\\\w_\\\\d]*))?\\\\b"}]},"invariant":{"patterns":[{"match":"\\\\binvariant\\\\s*\\\\(\\\\s*\\\\)","name":"entity.name.class.invariant.d"}]},"is-expression":{"patterns":[{"begin":"\\\\bis\\\\s*\\\\(","beginCaptures":{"0":{"name":"keyword.token.is.begin.d"}},"end":"\\\\)","endCaptures":{"0":{"name":"keyword.token.is.end.d"}},"patterns":[{"include":"#comment"},{"include":"#expression"},{"include":"#comma"}]}]},"keyword":{"patterns":[{"match":"\\\\babstract\\\\b","name":"keyword.token.abstract.d"},{"match":"\\\\balias\\\\b","name":"keyword.token.alias.d"},{"match":"\\\\balign\\\\b","name":"keyword.token.align.d"},{"match":"\\\\basm\\\\b","name":"keyword.token.asm.d"},{"match":"\\\\bassert\\\\b","name":"keyword.token.assert.d"},{"match":"\\\\bauto\\\\b","name":"keyword.token.auto.d"},{"match":"\\\\bbool\\\\b","name":"keyword.token.bool.d"},{"match":"\\\\bbreak\\\\b","name":"keyword.token.break.d"},{"match":"\\\\bbyte\\\\b","name":"keyword.token.byte.d"},{"match":"\\\\bcase\\\\b","name":"keyword.token.case.d"},{"match":"\\\\bcast\\\\b","name":"keyword.token.cast.d"},{"match":"\\\\bcatch\\\\b","name":"keyword.token.catch.d"},{"match":"\\\\bcdouble\\\\b","name":"keyword.token.cdouble.d"},{"match":"\\\\bcent\\\\b","name":"keyword.token.cent.d"},{"match":"\\\\bcfloat\\\\b","name":"keyword.token.cfloat.d"},{"match":"\\\\bchar\\\\b","name":"keyword.token.char.d"},{"match":"\\\\bclass\\\\b","name":"keyword.token.class.d"},{"match":"\\\\bconst\\\\b","name":"keyword.token.const.d"},{"match":"\\\\bcontinue\\\\b","name":"keyword.token.continue.d"},{"match":"\\\\bcreal\\\\b","name":"keyword.token.creal.d"},{"match":"\\\\bdchar\\\\b","name":"keyword.token.dchar.d"},{"match":"\\\\bdebug\\\\b","name":"keyword.token.debug.d"},{"match":"\\\\bdefault\\\\b","name":"keyword.token.default.d"},{"match":"\\\\bdelegate\\\\b","name":"keyword.token.delegate.d"},{"match":"\\\\bdelete\\\\b","name":"keyword.token.delete.d"},{"match":"\\\\bdeprecated\\\\b","name":"keyword.token.deprecated.d"},{"match":"\\\\bdo\\\\b","name":"keyword.token.do.d"},{"match":"\\\\bdouble\\\\b","name":"keyword.token.double.d"},{"match":"\\\\belse\\\\b","name":"keyword.token.else.d"},{"match":"\\\\benum\\\\b","name":"keyword.token.enum.d"},{"match":"\\\\bexport\\\\b","name":"keyword.token.export.d"},{"match":"\\\\bextern\\\\b","name":"keyword.token.extern.d"},{"match":"\\\\bfalse\\\\b","name":"constant.language.boolean.false.d"},{"match":"\\\\bfinal\\\\b","name":"keyword.token.final.d"},{"match":"\\\\bfinally\\\\b","name":"keyword.token.finally.d"},{"match":"\\\\bfloat\\\\b","name":"keyword.token.float.d"},{"match":"\\\\bfor\\\\b","name":"keyword.token.for.d"},{"match":"\\\\bforeach\\\\b","name":"keyword.token.foreach.d"},{"match":"\\\\bforeach_reverse\\\\b","name":"keyword.token.foreach_reverse.d"},{"match":"\\\\bfunction\\\\b","name":"keyword.token.function.d"},{"match":"\\\\bgoto\\\\b","name":"keyword.token.goto.d"},{"match":"\\\\bidouble\\\\b","name":"keyword.token.idouble.d"},{"match":"\\\\bif\\\\b","name":"keyword.token.if.d"},{"match":"\\\\bifloat\\\\b","name":"keyword.token.ifloat.d"},{"match":"\\\\bimmutable\\\\b","name":"keyword.token.immutable.d"},{"match":"\\\\bimport\\\\b","name":"keyword.token.import.d"},{"match":"\\\\bin\\\\b","name":"keyword.token.in.d"},{"match":"\\\\binout\\\\b","name":"keyword.token.inout.d"},{"match":"\\\\bint\\\\b","name":"keyword.token.int.d"},{"match":"\\\\binterface\\\\b","name":"keyword.token.interface.d"},{"match":"\\\\binvariant\\\\b","name":"keyword.token.invariant.d"},{"match":"\\\\bireal\\\\b","name":"keyword.token.ireal.d"},{"match":"\\\\bis\\\\b","name":"keyword.token.is.d"},{"match":"\\\\blazy\\\\b","name":"keyword.token.lazy.d"},{"match":"\\\\blong\\\\b","name":"keyword.token.long.d"},{"match":"\\\\bmacro\\\\b","name":"keyword.token.macro.d"},{"match":"\\\\bmixin\\\\b","name":"keyword.token.mixin.d"},{"match":"\\\\bmodule\\\\b","name":"keyword.token.module.d"},{"match":"\\\\bnew\\\\b","name":"keyword.token.new.d"},{"match":"\\\\bnothrow\\\\b","name":"keyword.token.nothrow.d"},{"match":"\\\\bnull\\\\b","name":"constant.language.null.d"},{"match":"\\\\bout\\\\b","name":"keyword.token.out.d"},{"match":"\\\\boverride\\\\b","name":"keyword.token.override.d"},{"match":"\\\\bpackage\\\\b","name":"keyword.token.package.d"},{"match":"\\\\bpragma\\\\b","name":"keyword.token.pragma.d"},{"match":"\\\\bprivate\\\\b","name":"keyword.token.private.d"},{"match":"\\\\bprotected\\\\b","name":"keyword.token.protected.d"},{"match":"\\\\bpublic\\\\b","name":"keyword.token.public.d"},{"match":"\\\\bpure\\\\b","name":"keyword.token.pure.d"},{"match":"\\\\breal\\\\b","name":"keyword.token.real.d"},{"match":"\\\\bref\\\\b","name":"keyword.token.ref.d"},{"match":"\\\\breturn\\\\b","name":"keyword.token.return.d"},{"match":"\\\\bscope\\\\b","name":"keyword.token.scope.d"},{"match":"\\\\bshared\\\\b","name":"keyword.token.shared.d"},{"match":"\\\\bshort\\\\b","name":"keyword.token.short.d"},{"match":"\\\\bstatic\\\\b","name":"keyword.token.static.d"},{"match":"\\\\bstruct\\\\b","name":"keyword.token.struct.d"},{"match":"\\\\bsuper\\\\b","name":"keyword.token.super.d"},{"match":"\\\\bswitch\\\\b","name":"keyword.token.switch.d"},{"match":"\\\\bsynchronized\\\\b","name":"keyword.token.synchronized.d"},{"match":"\\\\btemplate\\\\b","name":"keyword.token.template.d"},{"match":"\\\\bthis\\\\b","name":"keyword.token.this.d"},{"match":"\\\\bthrow\\\\b","name":"keyword.token.throw.d"},{"match":"\\\\btrue\\\\b","name":"constant.language.boolean.true.d"},{"match":"\\\\btry\\\\b","name":"keyword.token.try.d"},{"match":"\\\\btypedef\\\\b","name":"keyword.token.typedef.d"},{"match":"\\\\btypeid\\\\b","name":"keyword.token.typeid.d"},{"match":"\\\\btypeof\\\\b","name":"keyword.token.typeof.d"},{"match":"\\\\bubyte\\\\b","name":"keyword.token.ubyte.d"},{"match":"\\\\bucent\\\\b","name":"keyword.token.ucent.d"},{"match":"\\\\buint\\\\b","name":"keyword.token.uint.d"},{"match":"\\\\bulong\\\\b","name":"keyword.token.ulong.d"},{"match":"\\\\bunion\\\\b","name":"keyword.token.union.d"},{"match":"\\\\bunittest\\\\b","name":"keyword.token.unittest.d"},{"match":"\\\\bushort\\\\b","name":"keyword.token.ushort.d"},{"match":"\\\\bversion\\\\b","name":"keyword.token.version.d"},{"match":"\\\\bvoid\\\\b","name":"keyword.token.void.d"},{"match":"\\\\bvolatile\\\\b","name":"keyword.token.volatile.d"},{"match":"\\\\bwchar\\\\b","name":"keyword.token.wchar.d"},{"match":"\\\\bwhile\\\\b","name":"keyword.token.while.d"},{"match":"\\\\bwith\\\\b","name":"keyword.token.with.d"},{"match":"\\\\b__FILE__\\\\b","name":"keyword.token.__FILE__.d"},{"match":"\\\\b__MODULE__\\\\b","name":"keyword.token.__MODULE__.d"},{"match":"\\\\b__LINE__\\\\b","name":"keyword.token.__LINE__.d"},{"match":"\\\\b__FUNCTION__\\\\b","name":"keyword.token.__FUNCTION__.d"},{"match":"\\\\b__PRETTY_FUNCTION__\\\\b","name":"keyword.token.__PRETTY_FUNCTION__.d"},{"match":"\\\\b__gshared\\\\b","name":"keyword.token.__gshared.d"},{"match":"\\\\b__traits\\\\b","name":"keyword.token.__traits.d"},{"match":"\\\\b__vector\\\\b","name":"keyword.token.__vector.d"},{"match":"\\\\b__parameters\\\\b","name":"keyword.token.__parameters.d"}]},"labeled-statement":{"patterns":[{"match":"\\\\b(?!abstract|alias|align|asm|assert|auto|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|in|inout|int|interface|invariant|ireal|is|lazy|long|macro|mixin|module|new|nothrow|noreturn|null|out|override|package|pragma|private|protected|public|pure|real|ref|return|scope|shared|short|static|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|__FILE__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__|__gshared|__traits|__vector|__parameters)[a-zA-Z_][a-zA-Z_0-9]*\\\\s*:","name":"entity.name.d"}]},"lexical":{"patterns":[{"include":"#comment"},{"include":"#string-literal"},{"include":"#character-literal"},{"include":"#float-literal"},{"include":"#integer-literal"},{"include":"#eof"},{"include":"#special-tokens"},{"include":"#special-token-sequence"},{"include":"#keyword"},{"include":"#identifier"}]},"line-comment":{"patterns":[{"match":"//+.*$","name":"comment.line.d"}]},"linkage-attribute":{"patterns":[{"begin":"\\\\bextern\\\\s*\\\\(\\\\s*C\\\\+\\\\+\\\\s*,","beginCaptures":{"0":{"name":"keyword.other.extern.cplusplus.begin.d"}},"end":"\\\\)","endCaptures":{"0":{"name":"keyword.other.extern.cplusplus.end.d"}},"patterns":[{"include":"#identifier"},{"include":"#comma"}]},{"begin":"\\\\bextern\\\\s*\\\\(","beginCaptures":{"0":{"name":"keyword.other.extern.begin.d"}},"end":"\\\\)","endCaptures":{"0":{"name":"keyword.other.extern.end.d"}},"patterns":[{"include":"#linkage-type"}]}]},"linkage-type":{"patterns":[{"match":"C|C\\\\+\\\\+|D|Windows|Pascal|System","name":"storage.modifier.linkage-type.d"}]},"logical-expression":{"patterns":[{"match":"\\\\|\\\\||&&|==|!=|!","name":"keyword.operator.logical.d"}]},"member-function-attribute":{"patterns":[{"match":"\\\\b(const|immutable|inout|shared)\\\\b","name":"storage.type.modifier.member-function-attribute"}]},"mixin-declaration":{"patterns":[{"begin":"\\\\bmixin\\\\s*\\\\(","beginCaptures":{"0":{"name":"keyword.mixin.begin.d"}},"end":"\\\\)","endCaptures":{"0":{"name":"keyword.mixin.end.d"}},"patterns":[{"include":"#comment"},{"include":"#expression"},{"include":"#comma"}]}]},"mixin-expression":{"patterns":[{"begin":"\\\\bmixin\\\\s*\\\\(","beginCaptures":{"0":{"name":"keyword.other.mixin.begin.d"}},"end":"\\\\)","endCaptures":{"0":{"name":"keyword.other.mixin.end.d"}},"patterns":[{"include":"#comment"},{"include":"#expression"},{"include":"#comma"}]}]},"mixin-statement":{"patterns":[{"begin":"\\\\bmixin\\\\s*\\\\(","beginCaptures":{"0":{"name":"keyword.control.mixin.begin.d"}},"end":"\\\\)","endCaptures":{"0":{"name":"keyword.control.mixin.end.d"}},"patterns":[{"include":"#comment"},{"include":"#expression"},{"include":"#comma"}]}]},"mixin-template-declaration":{"patterns":[{"captures":{"1":{"name":"storage.type.mixintemplate.d"},"2":{"name":"entity.name.type.mixintemplate.d"}},"match":"\\\\b(mixin\\\\s*template)(?:\\\\s+([A-Za-z_][\\\\w_\\\\d]*))?\\\\b"}]},"module":{"packages":[{"import":"#module-declaration"}]},"module-declaration":{"patterns":[{"begin":"\\\\b(module)\\\\s+","beginCaptures":{"1":{"name":"keyword.package.module.d"}},"end":";","endCaptures":{"0":{"name":"meta.module.end.d"}},"patterns":[{"include":"#module-identifier"},{"include":"#comment"}]}]},"module-identifier":{"patterns":[{"match":"([_a-zA-Z][_\\\\d\\\\w]*)(\\\\s*\\\\.\\\\s*[_a-zA-Z][_\\\\d\\\\w]*)*","name":"variable.parameter.module.d"}]},"nesting-block-comment":{"patterns":[{"begin":"/((?!\\\\+/)\\\\+)+","beginCaptures":{"0":{"name":"comment.block.documentation.begin.d"}},"end":"\\\\++/","endCaptures":{"0":{"name":"comment.block.documentation.end.d"}},"name":"comment.block.documentation.content.d","patterns":[{"include":"#nesting-block-comment"}]}]},"new-expression":{"patterns":[{"match":"\\\\bnew\\\\s+","name":"keyword.other.new.d"}]},"non-block-statement":{"patterns":[{"include":"#module-declaration"},{"include":"#labeled-statement"},{"include":"#if-statement"},{"include":"#while-statement"},{"include":"#do-statement"},{"include":"#for-statement"},{"include":"#static-foreach"},{"include":"#static-foreach-reverse"},{"include":"#foreach-statement"},{"include":"#foreach-reverse-statement"},{"include":"#switch-statement"},{"include":"#final-switch-statement"},{"include":"#case-statement"},{"include":"#default-statement"},{"include":"#continue-statement"},{"include":"#break-statement"},{"include":"#return-statement"},{"include":"#goto-statement"},{"include":"#with-statement"},{"include":"#synchronized-statement"},{"include":"#try-statement"},{"include":"#catches"},{"include":"#scope-guard-statement"},{"include":"#throw-statement"},{"include":"#finally-statement"},{"include":"#asm-statement"},{"include":"#pragma-statement"},{"include":"#mixin-statement"},{"include":"#conditional-statement"},{"include":"#static-assert"},{"include":"#deprecated-statement"},{"include":"#unit-test"},{"include":"#declaration-statement"}]},"operands":{"patterns":[{"match":"\\\\?|:","name":"keyword.operator.ternary.assembly.d"},{"match":"\\\\]|\\\\[","name":"keyword.operator.bracket.assembly.d"},{"match":">>>|\\\\|\\\\||&&|==|!=|<=|>=|<<|>>|\\\\||\\\\^|&|<|>|\\\\+|-|\\\\*|/|%|~|!","name":"keyword.operator.assembly.d"}]},"out-statement":{"patterns":[{"begin":"\\\\bout\\\\s*\\\\(","beginCaptures":{"0":{"name":"keyword.control.out.begin.d"}},"end":"\\\\)","endCaptures":{"0":{"name":"keyword.control.out.end.d"}},"patterns":[{"include":"#identifier"}]},{"match":"\\\\bout\\\\b","name":"keyword.control.out.d"}]},"parentheses-expression":{"patterns":[{"begin":"\\\\(","end":"\\\\)","patterns":[{"include":"#expression"}]}]},"postblit":{"patterns":[{"match":"\\\\bthis\\\\s*\\\\(\\\\s*this\\\\s*\\\\)\\\\s","name":"entity.name.class.postblit.d"}]},"pragma":{"patterns":[{"match":"\\\\bpragma\\\\s*\\\\(\\\\s*[_\\\\w][_\\\\d\\\\w]*\\\\s*\\\\)","name":"keyword.other.pragma.d"},{"begin":"\\\\bpragma\\\\s*\\\\(\\\\s*[_\\\\w][_\\\\d\\\\w]*\\\\s*,","end":"\\\\)","name":"keyword.other.pragma.d","patterns":[{"include":"#expression"}]},{"match":"^#!.+","name":"gfm.markup.header.preprocessor.script-tag.d"}]},"pragma-statement":{"patterns":[{"include":"#pragma"}]},"property":{"patterns":[{"match":"@(property|safe|trusted|system|disable|nogc)\\\\b","name":"entity.name.tag.property.d"},{"include":"#user-defined-attribute"}]},"protection-attribute":{"patterns":[{"match":"\\\\b(private|package|protected|public|export)\\\\b","name":"keyword.other.protections.d"}]},"register":{"patterns":[{"match":"\\\\b(XMM0|XMM1|XMM2|XMM3|XMM4|XMM5|XMM6|XMM7|MM0|MM1|MM2|MM3|MM4|MM5|MM6|MM7|ST\\\\(0\\\\)|ST\\\\(1\\\\)|ST\\\\(2\\\\)|ST\\\\(3\\\\)|ST\\\\(4\\\\)|ST\\\\(5\\\\)|ST\\\\(6\\\\)|ST\\\\(7\\\\)|ST|TR1|TR2|TR3|TR4|TR5|TR6|TR7|DR0|DR1|DR2|DR3|DR4|DR5|DR6|DR7|CR0|CR2|CR3|CR4|EAX|EBX|ECX|EDX|EBP|ESP|EDI|ESI|AL|AH|AX|BL|BH|BX|CL|CH|CX|DL|DH|DX|BP|SP|DI|SI|ES|CS|SS|DS|GS|FS)\\\\b","name":"storage.type.assembly.register.d"}]},"register-64":{"patterns":[{"match":"\\\\b(RAX|RBX|RCX|RDX|BPL|RBP|SPL|RSP|DIL|RDI|SIL|RSI|R8B|R8W|R8D|R8|R9B|R9W|R9D|R9|R10B|R10W|R10D|R10|R11B|R11W|R11D|R11|R12B|R12W|R12D|R12|R13B|R13W|R13D|R13|R14B|R14W|R14D|R14|R15B|R15W|R15D|R15|XMM8|XMM9|XMM10|XMM11|XMM12|XMM13|XMM14|XMM15|YMM0|YMM1|YMM2|YMM3|YMM4|YMM5|YMM6|YMM7|YMM8|YMM9|YMM10|YMM11|YMM12|YMM13|YMM14|YMM15)\\\\b","name":"storage.type.assembly.register-64.d"}]},"rel-expression":{"patterns":[{"match":"!<>=|!<>|<>=|!>=|!<=|<=|>=|<>|!>|!<|<|>","name":"keyword.operator.rel.d"}]},"return-statement":{"patterns":[{"match":"\\\\breturn\\\\b","name":"keyword.control.return.d"}]},"scope-guard-statement":{"patterns":[{"match":"\\\\bscope\\\\s*\\\\((exit|success|failure)\\\\)","name":"keyword.control.scope.d"}]},"semi-colon":{"patterns":[{"match":";","name":"meta.statement.end.d"}]},"shared-static-constructor":{"patterns":[{"match":"\\\\b(shared\\\\s+)?static\\\\s+this\\\\s*\\\\(\\\\s*\\\\)","name":"entity.name.class.constructor.shared-static.d"},{"include":"#function-body"}]},"shared-static-destructor":{"patterns":[{"match":"\\\\b(shared\\\\s+)?static\\\\s+~this\\\\s*\\\\(\\\\s*\\\\)","name":"entity.name.class.destructor.static.d"}]},"shift-expression":{"patterns":[{"match":"<<|>>|>>>","name":"keyword.operator.shift.d"},{"include":"#add-expression"}]},"special-keyword":{"patterns":[{"match":"\\\\b(__FILE__|__FILE_FULL_PATH__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__)\\\\b","name":"constant.language.special-keyword.d"}]},"special-token-sequence":{"patterns":[{"match":"#\\\\s*line.*","name":"gfm.markup.italic.special-token-sequence.d"}]},"special-tokens":{"patterns":[{"match":"\\\\b(__DATE__|__TIME__|__TIMESTAMP__|__VENDOR__|__VERSION__)\\\\b","name":"gfm.markup.raw.special-tokens.d"}]},"statement":{"patterns":[{"include":"#non-block-statement"},{"include":"#semi-colon"}]},"static-assert":{"patterns":[{"begin":"\\\\bstatic\\\\s+assert\\\\b\\\\s*\\\\(","beginCaptures":{"0":{"name":"keyword.other.static-assert.begin.d"}},"end":"\\\\)","endCaptures":{"0":{"name":"keyword.other.static-assert.end.d"}},"patterns":[{"include":"#expression"}]}]},"static-foreach":{"patterns":[{"begin":"\\\\b(static\\\\s+foreach)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.static-foreach.d"}},"end":"(?<=\\\\))","patterns":[{"begin":"\\\\(","end":"\\\\)","patterns":[{"match":";","name":"keyword.operator.semi-colon.d"},{"include":"source.d"}]}]}]},"static-foreach-reverse":{"patterns":[{"begin":"\\\\b(static\\\\s+foreach_reverse)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.static-foreach.d"}},"end":"(?<=\\\\))","patterns":[{"begin":"\\\\(","end":"\\\\)","patterns":[{"match":";","name":"keyword.operator.semi-colon.d"},{"include":"source.d"}]}]}]},"static-if-condition":{"patterns":[{"begin":"\\\\bstatic\\\\s+if\\\\b\\\\s*\\\\(","beginCaptures":{"0":{"name":"keyword.control.static-if.begin.d"}},"end":"\\\\)","endCaptures":{"0":{"name":"keyword.control.static-if.end.d"}},"patterns":[{"include":"#comment"},{"include":"#expression"}]}]},"storage-class":{"patterns":[{"match":"\\\\b(deprecated|enum|static|extern|abstract|final|override|synchronized|auto|scope|const|immutable|inout|shared|__gshared|nothrow|pure|ref)\\\\b","name":"storage.class.d"},{"include":"#linkage-attribute"},{"include":"#align-attribute"},{"include":"#property"}]},"string-literal":{"patterns":[{"include":"#wysiwyg-string"},{"include":"#alternate-wysiwyg-string"},{"include":"#hex-string"},{"include":"#arbitrary-delimited-string"},{"include":"#delimited-string"},{"include":"#double-quoted-string"},{"include":"#token-string"}]},"struct-declaration":{"patterns":[{"captures":{"1":{"name":"storage.type.struct.d"},"2":{"name":"entity.name.type.struct.d"}},"match":"\\\\b(struct)(?:\\\\s+([A-Za-z_][\\\\w_\\\\d]*))?\\\\b"}]},"switch-statement":{"patterns":[{"begin":"\\\\b(switch)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.switch.d"}},"end":"(?<=\\\\))","patterns":[{"begin":"\\\\(","end":"\\\\)","patterns":[{"include":"source.d"}]}]}]},"synchronized-statement":{"patterns":[{"begin":"\\\\b(synchronized)\\\\b\\\\s*(?=\\\\()","captures":{"1":{"name":"keyword.control.synchronized.d"}},"end":"(?<=\\\\))","patterns":[{"begin":"\\\\(","end":"\\\\)","patterns":[{"include":"source.d"}]}]}]},"template-declaration":{"patterns":[{"captures":{"1":{"name":"storage.type.template.d"},"2":{"name":"entity.name.type.template.d"}},"match":"\\\\b(template)(?:\\\\s+([A-Za-z_][\\\\w_\\\\d]*))?\\\\b"}]},"throw-statement":{"patterns":[{"match":"\\\\bthrow\\\\b","name":"keyword.control.throw.d"}]},"token-string":{"begin":"q\\\\{","beginCaptures":{"0":{"name":"string.quoted.token.d"}},"end":"\\\\}[cdw]?","endCaptures":{"0":{"name":"string.quoted.token.d"}},"patterns":[{"include":"#token-string-content"}]},"token-string-content":{"patterns":[{"begin":"{","end":"}","patterns":[{"include":"#token-string-content"}]},{"include":"#comment"},{"include":"#tokens"}]},"tokens":{"patterns":[{"include":"#string-literal"},{"include":"#character-literal"},{"include":"#integer-literal"},{"include":"#float-literal"},{"include":"#keyword"},{"match":"~=|~|>>>|>>=|>>|>=|>|=>|==|=|<>|<=|<<|<|%=|%|#|&=|&&|&|\\\\$|\\\\|=|\\\\|\\\\||\\\\||\\\\+=|\\\\+\\\\+|\\\\+|\\\\^=|\\\\^\\\\^=|\\\\^\\\\^|\\\\^|\\\\*=|\\\\*|\\\\}|\\\\{|\\\\]|\\\\[|\\\\)|\\\\(|\\\\.\\\\.\\\\.|\\\\.\\\\.|\\\\.|\\\\?|\\\\!>=|\\\\!>|\\\\!=|\\\\!<>=|\\\\!<>|\\\\!<=|\\\\!<|\\\\!|/=|/|@|:|;|,|-=|--|-","name":"meta.lexical.token.symbolic.d"},{"include":"#identifier"}]},"traits-argument":{"patterns":[{"include":"#expression"},{"include":"#type"}]},"traits-arguments":{"patterns":[{"include":"#traits-argument"},{"include":"#comma"}]},"traits-expression":{"patterns":[{"begin":"\\\\b__traits\\\\s*\\\\(","beginCaptures":{"0":{"name":"keyword.other.traits.begin.d"}},"end":"\\\\)","endCaptures":{"0":{"name":"keyword.other.traits.end.d"}},"patterns":[{"include":"#traits-keyword"},{"include":"#comma"},{"include":"#traits-argument"}]}]},"traits-keyword":{"patterns":[{"match":"isAbstractClass|isArithmetic|isAssociativeArray|isFinalClass|isPOD|isNested|isFloating|isIntegral|isScalar|isStaticArray|isUnsigned|isVirtualFunction|isVirtualMethod|isAbstractFunction|isFinalFunction|isStaticFunction|isOverrideFunction|isRef|isOut|isLazy|hasMember|identifier|getAliasThis|getAttributes|getMember|getOverloads|getProtection|getVirtualFunctions|getVirtualMethods|getUnitTests|parent|classInstanceSize|getVirtualIndex|allMembers|derivedMembers|isSame|compiles","name":"support.constant.traits-keyword.d"}]},"try-statement":{"patterns":[{"match":"\\\\btry\\\\b","name":"keyword.control.try.d"}]},"type":{"patterns":[{"include":"#typeof"},{"include":"#base-type"},{"include":"#type-ctor"},{"begin":"!\\\\(","end":"\\\\)","patterns":[{"include":"#type"},{"include":"#expression"}]}]},"type-ctor":{"patterns":[{"match":"(const|immutable|inout|shared)\\\\b","name":"storage.type.modifier.d"}]},"type-specialization":{"patterns":[{"match":"\\\\b(struct|union|class|interface|enum|function|delegate|super|const|immutable|inout|shared|return|__parameters)\\\\b","name":"keyword.other.storage.type-specialization.d"}]},"typeid-expression":{"patterns":[{"match":"\\\\btypeid\\\\s*(?=\\\\()","name":"keyword.other.typeid.d"}]},"typeof":{"begin":"typeof\\\\s*\\\\(","end":"\\\\)","name":"keyword.token.typeof.d","patterns":[{"match":"return","name":"keyword.control.return.d"},{"include":"#expression"}]},"union-declaration":{"patterns":[{"captures":{"1":{"name":"storage.type.union.d"},"2":{"name":"entity.name.type.union.d"}},"match":"\\\\b(union)(?:\\\\s+([A-Za-z_][\\\\w_\\\\d]*))?\\\\b"}]},"user-defined-attribute":{"patterns":[{"match":"@([_\\\\w][_\\\\d\\\\w]*)\\\\b","name":"entity.name.tag.user-defined-property.d"},{"begin":"@([_\\\\w][_\\\\d\\\\w]*)?\\\\(","end":"\\\\)","name":"entity.name.tag.user-defined-property.d","patterns":[{"include":"#expression"}]}]},"version-condition":{"patterns":[{"match":"\\\\bversion\\\\s*\\\\(\\\\s*unittest\\\\s*\\\\)","name":"keyword.other.version.unittest.d"},{"match":"\\\\bversion\\\\s*\\\\(\\\\s*assert\\\\s*\\\\)","name":"keyword.other.version.assert.d"},{"begin":"\\\\bversion\\\\s*\\\\(","beginCaptures":{"0":{"name":"keyword.other.version.identifier.begin.d"}},"end":"\\\\)","endCaptures":{"0":{"name":"keyword.other.version.identifer.end.d"}},"patterns":[{"include":"#integer-literal"},{"include":"#identifier"}]},{"include":"#version-specification"}]},"version-specification":{"patterns":[{"match":"\\\\bversion\\\\b\\\\s*(?==)","name":"keyword.other.version-specification.d"}]},"void-initializer":{"patterns":[{"match":"\\\\bvoid\\\\b","name":"support.type.void.d"}]},"while-statement":{"patterns":[{"begin":"\\\\b(while)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.while.d"}},"end":"(?<=\\\\))","patterns":[{"begin":"\\\\(","end":"\\\\)","patterns":[{"include":"source.d"}]}]}]},"with-statement":{"patterns":[{"begin":"\\\\b(with)\\\\b\\\\s*(?=\\\\()","captures":{"1":{"name":"keyword.control.with.d"}},"end":"(?<=\\\\))","patterns":[{"begin":"\\\\(","end":"\\\\)","patterns":[{"include":"source.d"}]}]}]},"wysiwyg-characters":{"patterns":[{"include":"#character"},{"include":"#end-of-line"}]},"wysiwyg-string":{"patterns":[{"begin":"r\\\\\\"","end":"\\\\\\"[cwd]?","name":"string.wysiwyg-string.d","patterns":[{"include":"#wysiwyg-characters"}]}]}},"scopeName":"source.d"}`)),t=[e];export{t as default}; ================================================ FILE: jesse/static/_nuxt/Bp6g37R7.js ================================================ const e=Object.freeze(JSON.parse('{"displayName":"CODEOWNERS","name":"codeowners","patterns":[{"include":"#comment"},{"include":"#pattern"},{"include":"#owner"}],"repository":{"comment":{"patterns":[{"begin":"^\\\\s*#","captures":{"0":{"name":"punctuation.definition.comment.codeowners"}},"end":"$","name":"comment.line.codeowners"}]},"owner":{"match":"\\\\S*@\\\\S+","name":"storage.type.function.codeowners"},"pattern":{"match":"^\\\\s*(\\\\S+)","name":"variable.other.codeowners"}},"scopeName":"text.codeowners"}')),n=[e];export{n as default}; ================================================ FILE: jesse/static/_nuxt/BpWG_bgh.js ================================================ const e=Object.freeze(JSON.parse('{"displayName":"TypeSpec","fileTypes":["tsp"],"name":"typespec","patterns":[{"include":"#statement"}],"repository":{"alias-id":{"begin":"(=)\\\\s*","beginCaptures":{"1":{"name":"keyword.operator.assignment.tsp"}},"end":"(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.alias-id.typespec","patterns":[{"include":"#expression"}]},"alias-statement":{"begin":"\\\\b(alias)\\\\b\\\\s+(\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\b|`(?:[^`\\\\\\\\]|\\\\\\\\.)*`)\\\\s*","beginCaptures":{"1":{"name":"keyword.other.tsp"},"2":{"name":"entity.name.type.tsp"}},"end":"(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.alias-statement.typespec","patterns":[{"include":"#alias-id"},{"include":"#type-parameters"}]},"augment-decorator-statement":{"begin":"((@@)\\\\b[_$[:alpha:]](?:[_$[:alnum:]]|\\\\.[_$[:alpha:]])*\\\\b)","beginCaptures":{"1":{"name":"entity.name.tag.tsp"},"2":{"name":"entity.name.tag.tsp"}},"end":"(?=[_$[:alpha:]])|(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.augment-decorator-statement.typespec","patterns":[{"include":"#token"},{"include":"#parenthesized-expression"}]},"block-comment":{"begin":"/\\\\*","end":"\\\\*/","name":"comment.block.tsp"},"boolean-literal":{"match":"\\\\b(true|false)\\\\b","name":"constant.language.tsp"},"callExpression":{"begin":"(\\\\b[_$[:alpha:]](?:[_$[:alnum:]]|\\\\.[_$[:alpha:]])*\\\\b)\\\\s*(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.tsp"},"2":{"name":"punctuation.parenthesis.open.tsp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.parenthesis.close.tsp"}},"name":"meta.callExpression.typespec","patterns":[{"include":"#token"},{"include":"#expression"},{"include":"#punctuation-comma"}]},"const-statement":{"begin":"\\\\b(const)\\\\b\\\\s+(\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\b|`(?:[^`\\\\\\\\]|\\\\\\\\.)*`)","beginCaptures":{"1":{"name":"keyword.other.tsp"},"2":{"name":"variable.name.tsp"}},"end":"(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.const-statement.typespec","patterns":[{"include":"#type-annotation"},{"include":"#operator-assignment"},{"include":"#expression"}]},"decorator":{"begin":"((@)\\\\b[_$[:alpha:]](?:[_$[:alnum:]]|\\\\.[_$[:alpha:]])*\\\\b)","beginCaptures":{"1":{"name":"entity.name.tag.tsp"},"2":{"name":"entity.name.tag.tsp"}},"end":"(?=[_$[:alpha:]])|(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.decorator.typespec","patterns":[{"include":"#token"},{"include":"#parenthesized-expression"}]},"decorator-declaration-statement":{"begin":"(?:(extern)\\\\s+)?\\\\b(dec)\\\\b\\\\s+(\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\b|`(?:[^`\\\\\\\\]|\\\\\\\\.)*`)","beginCaptures":{"1":{"name":"keyword.other.tsp"},"2":{"name":"keyword.other.tsp"},"3":{"name":"entity.name.function.tsp"}},"end":"(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.decorator-declaration-statement.typespec","patterns":[{"include":"#token"},{"include":"#operation-parameters"}]},"directive":{"begin":"\\\\s*(#\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\b)","beginCaptures":{"1":{"name":"keyword.directive.name.tsp"}},"end":"$|(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.directive.typespec","patterns":[{"include":"#string-literal"},{"include":"#identifier-expression"}]},"doc-comment":{"begin":"/\\\\*\\\\*","beginCaptures":{"0":{"name":"comment.block.tsp"}},"end":"\\\\*/","endCaptures":{"0":{"name":"comment.block.tsp"}},"name":"comment.block.tsp","patterns":[{"include":"#doc-comment-block"}]},"doc-comment-block":{"patterns":[{"include":"#doc-comment-param"},{"include":"#doc-comment-return-tag"},{"include":"#doc-comment-unknown-tag"}]},"doc-comment-param":{"captures":{"1":{"name":"keyword.tag.tspdoc"},"2":{"name":"keyword.tag.tspdoc"},"3":{"name":"variable.name.tsp"}},"match":"((@)(?:param|template|prop))\\\\s+(\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\b|`(?:[^`\\\\\\\\]|\\\\\\\\.)*`)\\\\b","name":"comment.block.tsp"},"doc-comment-return-tag":{"captures":{"1":{"name":"keyword.tag.tspdoc"},"2":{"name":"keyword.tag.tspdoc"}},"match":"((@)(?:returns))\\\\b","name":"comment.block.tsp"},"doc-comment-unknown-tag":{"captures":{"1":{"name":"entity.name.tag.tsp"},"2":{"name":"entity.name.tag.tsp"}},"match":"((@)(?:\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\b|`(?:[^`\\\\\\\\]|\\\\\\\\.)*`))\\\\b","name":"comment.block.tsp"},"else-expression":{"begin":"\\\\b(else)\\\\b","beginCaptures":{"1":{"name":"keyword.other.tsp"}},"end":"((?<=\\\\})|(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b))","name":"meta.else-expression.typespec","patterns":[{"include":"#projection-expression"},{"include":"#projection-body"}]},"else-if-expression":{"begin":"\\\\b(else)\\\\s+(if)\\\\b","beginCaptures":{"1":{"name":"keyword.other.tsp"},"2":{"name":"keyword.other.tsp"}},"end":"((?<=\\\\})|(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b))","name":"meta.else-if-expression.typespec","patterns":[{"include":"#projection-expression"},{"include":"#projection-body"}]},"enum-body":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.curlybrace.open.tsp"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.curlybrace.close.tsp"}},"name":"meta.enum-body.typespec","patterns":[{"include":"#enum-member"},{"include":"#token"},{"include":"#directive"},{"include":"#decorator"},{"include":"#punctuation-comma"}]},"enum-member":{"begin":"(?:(\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\b|`(?:[^`\\\\\\\\]|\\\\\\\\.)*`)\\\\s*(:?))","beginCaptures":{"1":{"name":"variable.name.tsp"},"2":{"name":"keyword.operator.type.annotation.tsp"}},"end":"(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.enum-member.typespec","patterns":[{"include":"#token"},{"include":"#type-annotation"}]},"enum-statement":{"begin":"\\\\b(enum)\\\\b\\\\s+(\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\b|`(?:[^`\\\\\\\\]|\\\\\\\\.)*`)","beginCaptures":{"1":{"name":"keyword.other.tsp"},"2":{"name":"entity.name.type.tsp"}},"end":"(?<=\\\\})|(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.enum-statement.typespec","patterns":[{"include":"#token"},{"include":"#enum-body"}]},"escape-character":{"match":"\\\\\\\\.","name":"constant.character.escape.tsp"},"expression":{"patterns":[{"include":"#token"},{"include":"#directive"},{"include":"#parenthesized-expression"},{"include":"#valueof"},{"include":"#typeof"},{"include":"#type-arguments"},{"include":"#object-literal"},{"include":"#tuple-literal"},{"include":"#tuple-expression"},{"include":"#model-expression"},{"include":"#callExpression"},{"include":"#identifier-expression"}]},"function-call":{"begin":"(\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\b|`(?:[^`\\\\\\\\]|\\\\\\\\.)*`)\\\\s*(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.tsp"},"2":{"name":"punctuation.parenthesis.open.tsp"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.parenthesis.close.tsp"}},"name":"meta.function-call.typespec","patterns":[{"include":"#expression"}]},"function-declaration-statement":{"begin":"(?:(extern)\\\\s+)?\\\\b(fn)\\\\b\\\\s+(\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\b|`(?:[^`\\\\\\\\]|\\\\\\\\.)*`)","beginCaptures":{"1":{"name":"keyword.other.tsp"},"2":{"name":"keyword.other.tsp"},"3":{"name":"entity.name.function.tsp"}},"end":"(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.function-declaration-statement.typespec","patterns":[{"include":"#token"},{"include":"#operation-parameters"},{"include":"#type-annotation"}]},"identifier-expression":{"match":"\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\b|`(?:[^`\\\\\\\\]|\\\\\\\\.)*`","name":"entity.name.type.tsp"},"if-expression":{"begin":"\\\\b(if)\\\\b","beginCaptures":{"1":{"name":"keyword.other.tsp"}},"end":"((?<=\\\\})|(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b))","name":"meta.if-expression.typespec","patterns":[{"include":"#projection-expression"},{"include":"#projection-body"}]},"import-statement":{"begin":"\\\\b(import)\\\\b","beginCaptures":{"1":{"name":"keyword.other.tsp"}},"end":"(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.import-statement.typespec","patterns":[{"include":"#token"}]},"interface-body":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.curlybrace.open.tsp"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.curlybrace.close.tsp"}},"name":"meta.interface-body.typespec","patterns":[{"include":"#token"},{"include":"#directive"},{"include":"#decorator"},{"include":"#interface-member"},{"include":"#punctuation-semicolon"}]},"interface-heritage":{"begin":"\\\\b(extends)\\\\b","beginCaptures":{"1":{"name":"keyword.other.tsp"}},"end":"((?=\\\\{)|(?=;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b))","name":"meta.interface-heritage.typespec","patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}]},"interface-member":{"begin":"(?:\\\\b(op)\\\\b\\\\s+)?(\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\b|`(?:[^`\\\\\\\\]|\\\\\\\\.)*`)","beginCaptures":{"1":{"name":"keyword.other.tsp"},"2":{"name":"entity.name.function.tsp"}},"end":"(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.interface-member.typespec","patterns":[{"include":"#token"},{"include":"#operation-signature"}]},"interface-statement":{"begin":"\\\\b(interface)\\\\b","beginCaptures":{"1":{"name":"keyword.other.tsp"}},"end":"(?<=\\\\})|(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.interface-statement.typespec","patterns":[{"include":"#token"},{"include":"#type-parameters"},{"include":"#interface-heritage"},{"include":"#interface-body"},{"include":"#expression"}]},"line-comment":{"match":"//.*$","name":"comment.line.double-slash.tsp"},"model-expression":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.curlybrace.open.tsp"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.curlybrace.close.tsp"}},"name":"meta.model-expression.typespec","patterns":[{"include":"#model-property"},{"include":"#token"},{"include":"#directive"},{"include":"#decorator"},{"include":"#spread-operator"},{"include":"#punctuation-semicolon"}]},"model-heritage":{"begin":"\\\\b(extends|is)\\\\b","beginCaptures":{"1":{"name":"keyword.other.tsp"}},"end":"((?=\\\\{)|(?=;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b))","name":"meta.model-heritage.typespec","patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}]},"model-property":{"begin":"(?:(\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\b|`(?:[^`\\\\\\\\]|\\\\\\\\.)*`)|(\\\\\\"(?:[^\\\\\\"\\\\\\\\]|\\\\\\\\.)*\\\\\\"))","beginCaptures":{"1":{"name":"variable.name.tsp"},"2":{"name":"string.quoted.double.tsp"}},"end":"(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.model-property.typespec","patterns":[{"include":"#token"},{"include":"#type-annotation"},{"include":"#operator-assignment"},{"include":"#expression"}]},"model-statement":{"begin":"\\\\b(model)\\\\b","beginCaptures":{"1":{"name":"keyword.other.tsp"}},"end":"(?<=\\\\})|(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.model-statement.typespec","patterns":[{"include":"#token"},{"include":"#type-parameters"},{"include":"#model-heritage"},{"include":"#expression"}]},"namespace-body":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.curlybrace.open.tsp"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.curlybrace.close.tsp"}},"name":"meta.namespace-body.typespec","patterns":[{"include":"#statement"}]},"namespace-name":{"begin":"(?=[_$[:alpha:]])","end":"((?=\\\\{)|(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b))","name":"meta.namespace-name.typespec","patterns":[{"include":"#identifier-expression"},{"include":"#punctuation-accessor"}]},"namespace-statement":{"begin":"\\\\b(namespace)\\\\b","beginCaptures":{"1":{"name":"keyword.other.tsp"}},"end":"((?<=\\\\})|(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b))","name":"meta.namespace-statement.typespec","patterns":[{"include":"#token"},{"include":"#namespace-name"},{"include":"#namespace-body"}]},"numeric-literal":{"match":"(?:\\\\b(?)|(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","endCaptures":{"0":{"name":"keyword.operator.assignment.tsp"}},"name":"meta.type-argument.typespec","patterns":[{"include":"#token"},{"include":"#expression"},{"include":"#punctuation-comma"}]},"type-arguments":{"begin":"<","beginCaptures":{"0":{"name":"punctuation.definition.typeparameters.begin.tsp"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.typeparameters.end.tsp"}},"name":"meta.type-arguments.typespec","patterns":[{"include":"#type-argument"},{"include":"#expression"},{"include":"#punctuation-comma"}]},"type-parameter":{"begin":"(\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\b|`(?:[^`\\\\\\\\]|\\\\\\\\.)*`)","beginCaptures":{"1":{"name":"entity.name.type.tsp"}},"end":"(?=>)|(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.type-parameter.typespec","patterns":[{"include":"#token"},{"include":"#type-parameter-constraint"},{"include":"#type-parameter-default"}]},"type-parameter-constraint":{"begin":"extends","beginCaptures":{"0":{"name":"keyword.other.tsp"}},"end":"(?=>)|(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.type-parameter-constraint.typespec","patterns":[{"include":"#expression"}]},"type-parameter-default":{"begin":"=","beginCaptures":{"0":{"name":"keyword.operator.assignment.tsp"}},"end":"(?=>)|(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.type-parameter-default.typespec","patterns":[{"include":"#expression"}]},"type-parameters":{"begin":"<","beginCaptures":{"0":{"name":"punctuation.definition.typeparameters.begin.tsp"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.typeparameters.end.tsp"}},"name":"meta.type-parameters.typespec","patterns":[{"include":"#type-parameter"},{"include":"#punctuation-comma"}]},"typeof":{"begin":"\\\\b(typeof)","beginCaptures":{"1":{"name":"keyword.other.tsp"}},"end":"(?=>)|(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.typeof.typespec","patterns":[{"include":"#expression"}]},"union-body":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.curlybrace.open.tsp"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.curlybrace.close.tsp"}},"name":"meta.union-body.typespec","patterns":[{"include":"#union-variant"},{"include":"#token"},{"include":"#directive"},{"include":"#decorator"},{"include":"#expression"},{"include":"#punctuation-comma"}]},"union-statement":{"begin":"\\\\b(union)\\\\b\\\\s+(\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\b|`(?:[^`\\\\\\\\]|\\\\\\\\.)*`)","beginCaptures":{"1":{"name":"keyword.other.tsp"},"2":{"name":"entity.name.type.tsp"}},"end":"(?<=\\\\})|(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.union-statement.typespec","patterns":[{"include":"#token"},{"include":"#union-body"}]},"union-variant":{"begin":"(?:(\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\b|`(?:[^`\\\\\\\\]|\\\\\\\\.)*`)\\\\s*(:))","beginCaptures":{"1":{"name":"variable.name.tsp"},"2":{"name":"keyword.operator.type.annotation.tsp"}},"end":"(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.union-variant.typespec","patterns":[{"include":"#token"},{"include":"#expression"}]},"using-statement":{"begin":"\\\\b(using)\\\\b","beginCaptures":{"1":{"name":"keyword.other.tsp"}},"end":"(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.using-statement.typespec","patterns":[{"include":"#token"},{"include":"#identifier-expression"},{"include":"#punctuation-accessor"}]},"valueof":{"begin":"\\\\b(valueof)","beginCaptures":{"1":{"name":"keyword.other.tsp"}},"end":"(?=>)|(?=,|;|@|\\\\)|\\\\}|\\\\b(?:extern)\\\\b|\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\b)","name":"meta.valueof.typespec","patterns":[{"include":"#expression"}]}},"scopeName":"source.tsp","aliases":["tsp"]}')),n=[e];export{n as default}; ================================================ FILE: jesse/static/_nuxt/BsOYHjMa.js ================================================ import e from"./Dj6nwHGl.js";import t from"./BMYPR7BL.js";import n from"./e4jU7D2d.js";import"./ySlJ1b_l.js";import"./BPhBrDlE.js";const a=Object.freeze(JSON.parse('{"displayName":"Edge","injections":{"text.html.edge - (meta.embedded | meta.tag | comment.block.edge), L:(text.html.edge meta.tag - (comment.block.edge | meta.embedded.block.edge)), L:(source.ts.embedded.html - (comment.block.edge | meta.embedded.block.edge))":{"patterns":[{"include":"#comment"},{"include":"#escapedMustache"},{"include":"#safeMustache"},{"include":"#mustache"},{"include":"#nonSeekableTag"},{"include":"#tag"}]}},"name":"edge","patterns":[{"include":"text.html.basic"},{"include":"text.html.derivative"}],"repository":{"comment":{"begin":"\\\\{{--","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.edge"}},"end":"\\\\--}}","endCaptures":{"0":{"name":"punctuation.definition.comment.end.edge"}},"name":"comment.block"},"escapedMustache":{"begin":"\\\\@{{","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.edge"}},"end":"\\\\}}","endCaptures":{"0":{"name":"punctuation.definition.comment.end.edge"}},"name":"comment.block"},"mustache":{"begin":"\\\\{{","beginCaptures":{"0":{"name":"punctuation.mustache.begin"}},"end":"\\\\}}","endCaptures":{"0":{"name":"punctuation.mustache.end"}},"name":"meta.embedded.block.javascript","patterns":[{"include":"source.ts#expression"}]},"nonSeekableTag":{"captures":{"2":{"name":"support.function.edge"}},"match":"^(\\\\s*)((@{1,2})(!)?([a-zA-Z._]+))(~)?$","name":"meta.embedded.block.javascript","patterns":[{"include":"source.ts#expression"}]},"safeMustache":{"begin":"\\\\{{{","beginCaptures":{"0":{"name":"punctuation.mustache.begin"}},"end":"\\\\}}}","endCaptures":{"0":{"name":"punctuation.mustache.end"}},"name":"meta.embedded.block.javascript","patterns":[{"include":"source.ts#expression"}]},"tag":{"begin":"^(\\\\s*)((@{1,2})(!)?([a-zA-Z._]+)(\\\\s{0,2}))(\\\\()","beginCaptures":{"2":{"name":"support.function.edge"},"7":{"name":"punctuation.paren.open"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.paren.close"}},"name":"meta.embedded.block.javascript","patterns":[{"include":"source.ts#expression"}]}},"scopeName":"text.html.edge","embeddedLangs":["typescript","html","html-derivative"]}')),o=[...e,...t,...n,a];export{o as default}; ================================================ FILE: jesse/static/_nuxt/Bt5ljtES.js ================================================ import{d as I,m as _,u as O,A as E,r as c,w as y,c as f,J as a,K as x,e as g,f as M,L as N,g as s,C as d,E as F,x as l,j as L,i as m,M as q,N as z,G as A}from"./CU_MfyYc.js";import{_ as j}from"./RFJ54-KY.js";import{_ as K}from"./D35nYK_C.js";const Q={key:0,class:"flex justify-center items-center py-12"},G={key:1},H={key:0},J={key:2,class:"text-center py-12 text-red-600 dark:text-red-400"},W=I({__name:"ClosedTradeDetailsSlideOver",props:_({tradeId:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:_(["order-click"],["update:modelValue"]),setup(v,{emit:T}){const i=O(v,"modelValue"),n=v,h=T,k=E(),u=c(!1),o=c(""),e=c(null);y(()=>n.tradeId,async t=>{t&&i.value&&await p()}),y(i,async t=>{t&&n.tradeId&&await p()});async function p(){if(n.tradeId){u.value=!0,o.value="",e.value=null;try{const t=await k.fetchTradeDetails(n.tradeId);t?e.value=t:o.value="Failed to load trade details"}catch(t){o.value=t.message||"Failed to load trade details"}finally{u.value=!1}}}const S=f(()=>e.value?[["ID",e.value.id],["Symbol",e.value.symbol],["Exchange",e.value.exchange],["Strategy",e.value.strategy_name],["Type",e.value.type],["Timeframe",e.value.timeframe],["Leverage",`${e.value.leverage}x`],["Entry Price",a.roundPrice(e.value.entry_price)],["Exit Price",e.value.exit_price?a.roundPrice(e.value.exit_price):"-"],["Quantity",e.value.qty],["Size",a.roundPrice(e.value.size)],["Fee",e.value.fee!==null?a.roundPrice(e.value.fee):"-"],["PNL",e.value.pnl!==null&&e.value.pnl_percentage!==null?`${x.round(e.value.pnl,2)} (${x.round(e.value.pnl_percentage,2)}%)`:"-"],["Opened At",a.timestampToTime(e.value.opened_at)],["Closed At",e.value.closed_at?a.timestampToTime(e.value.closed_at):"-"],["Holding Period",e.value.holding_period!==null?`${Math.round(e.value.holding_period)}s`:"-"],["Status",e.value.status]]:[]),b=f(()=>!e.value||!e.value.orders?[]:e.value.orders.map(t=>[{value:t.id.slice(-12),style:"text-xs font-mono",tooltip:t.id,tag:"code"},{value:t.side,style:a.colorBasedOnSide(t.side)},{value:t.type,style:"text-xs"},{value:t.price?a.roundPrice(t.price):"-",style:"text-xs"},{value:t.qty,style:"text-xs"},{value:t.filled_qty,style:"text-xs"},{value:t.status,style:"text-xs"},{value:a.timestampToTimeOnly(t.created_at),style:"text-xs",tooltip:a.timestampToTime(t.created_at)}]));function V(t){e.value&&e.value.orders&&e.value.orders[t]&&h("order-click",e.value.orders[t].id)}return(t,r)=>{const P=q,C=z,D=j,$=K,w=N;return s(),g(w,{modelValue:i.value,"onUpdate:modelValue":r[0]||(r[0]=B=>i.value=B),size:"big",title:"Trade Details"},{default:M(()=>[l(u)?(s(),d("div",Q,r[1]||(r[1]=[L("div",{class:"animate-spin rounded-full h-12 w-12 border-b-2 border-indigo-600"},null,-1)]))):l(e)?(s(),d("div",G,[m(P,{data:l(S)},null,8,["data"]),m(C,{class:"mt-8 mb-4",title:"Orders"}),l(e).orders&&l(e).orders.length?(s(),d("div",H,[m(D,{data:l(b),"header-items":["ID","Side","Type","Price","QTY","Filled","Status","Created"],header:"",clickable:!0,onRowClick:V},null,8,["data"])])):(s(),g($,{key:1}))])):l(o)?(s(),d("div",J,A(l(o)),1)):F("",!0)]),_:1},8,["modelValue"])}}});export{W as _}; ================================================ FILE: jesse/static/_nuxt/BthQWCQV.js ================================================ const e=Object.freeze(JSON.parse('{"colors":{"activityBar.background":"#222222","activityBarBadge.background":"#1D978D","button.background":"#0077B5","button.foreground":"#FFF","button.hoverBackground":"#005076","debugExceptionWidget.background":"#141414","debugExceptionWidget.border":"#FFF","debugToolBar.background":"#141414","editor.background":"#222222","editor.foreground":"#E6E6E6","editor.inactiveSelectionBackground":"#3a3d41","editor.lineHighlightBackground":"#141414","editor.lineHighlightBorder":"#141414","editor.selectionHighlightBackground":"#add6ff26","editorIndentGuide.activeBackground":"#707070","editorIndentGuide.background":"#404040","editorLink.activeForeground":"#0077B5","editorSuggestWidget.selectedBackground":"#0077B5","extensionButton.prominentBackground":"#0077B5","extensionButton.prominentForeground":"#FFF","extensionButton.prominentHoverBackground":"#005076","focusBorder":"#0077B5","gitDecoration.addedResourceForeground":"#ECB22E","gitDecoration.conflictingResourceForeground":"#FFF","gitDecoration.deletedResourceForeground":"#FFF","gitDecoration.ignoredResourceForeground":"#877583","gitDecoration.modifiedResourceForeground":"#ECB22E","gitDecoration.untrackedResourceForeground":"#ECB22E","input.placeholderForeground":"#7A7A7A","list.activeSelectionBackground":"#222222","list.dropBackground":"#383b3d","list.focusBackground":"#0077B5","list.hoverBackground":"#222222","menu.background":"#252526","menu.foreground":"#E6E6E6","notificationLink.foreground":"#0077B5","settings.numberInputBackground":"#292929","settings.textInputBackground":"#292929","sideBarSectionHeader.background":"#222222","sideBarTitle.foreground":"#E6E6E6","statusBar.background":"#222222","statusBar.debuggingBackground":"#1D978D","statusBar.noFolderBackground":"#141414","textLink.activeForeground":"#0077B5","textLink.foreground":"#0077B5","titleBar.activeBackground":"#222222","titleBar.activeForeground":"#E6E6E6","titleBar.inactiveBackground":"#222222","titleBar.inactiveForeground":"#7A7A7A"},"displayName":"Slack Dark","name":"slack-dark","tokenColors":[{"scope":["meta.embedded","source.groovy.embedded"],"settings":{"foreground":"#D4D4D4"}},{"scope":"emphasis","settings":{"fontStyle":"italic"}},{"scope":"strong","settings":{"fontStyle":"bold"}},{"scope":"header","settings":{"foreground":"#000080"}},{"scope":"comment","settings":{"foreground":"#6A9955"}},{"scope":"constant.language","settings":{"foreground":"#569cd6"}},{"scope":["constant.numeric"],"settings":{"foreground":"#b5cea8"}},{"scope":"constant.regexp","settings":{"foreground":"#646695"}},{"scope":"entity.name.tag","settings":{"foreground":"#569cd6"}},{"scope":"entity.name.tag.css","settings":{"foreground":"#d7ba7d"}},{"scope":"entity.other.attribute-name","settings":{"foreground":"#9cdcfe"}},{"scope":["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.attribute.scss","entity.other.attribute-name.scss"],"settings":{"foreground":"#d7ba7d"}},{"scope":"invalid","settings":{"foreground":"#f44747"}},{"scope":"markup.underline","settings":{"fontStyle":"underline"}},{"scope":"markup.bold","settings":{"fontStyle":"bold","foreground":"#569cd6"}},{"scope":"markup.heading","settings":{"fontStyle":"bold","foreground":"#569cd6"}},{"scope":"markup.italic","settings":{"fontStyle":"italic"}},{"scope":"markup.inserted","settings":{"foreground":"#b5cea8"}},{"scope":"markup.deleted","settings":{"foreground":"#ce9178"}},{"scope":"markup.changed","settings":{"foreground":"#569cd6"}},{"scope":"punctuation.definition.quote.begin.markdown","settings":{"foreground":"#6A9955"}},{"scope":"punctuation.definition.list.begin.markdown","settings":{"foreground":"#6796e6"}},{"scope":"markup.inline.raw","settings":{"foreground":"#ce9178"}},{"scope":"punctuation.definition.tag","settings":{"foreground":"#808080"}},{"scope":"meta.preprocessor","settings":{"foreground":"#569cd6"}},{"scope":"meta.preprocessor.string","settings":{"foreground":"#ce9178"}},{"scope":"meta.preprocessor.numeric","settings":{"foreground":"#b5cea8"}},{"scope":"meta.structure.dictionary.key.python","settings":{"foreground":"#9cdcfe"}},{"scope":"meta.diff.header","settings":{"foreground":"#569cd6"}},{"scope":"storage","settings":{"foreground":"#569cd6"}},{"scope":"storage.type","settings":{"foreground":"#569cd6"}},{"scope":"storage.modifier","settings":{"foreground":"#569cd6"}},{"scope":"string","settings":{"foreground":"#ce9178"}},{"scope":"string.tag","settings":{"foreground":"#ce9178"}},{"scope":"string.value","settings":{"foreground":"#ce9178"}},{"scope":"string.regexp","settings":{"foreground":"#d16969"}},{"scope":["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],"settings":{"foreground":"#569cd6"}},{"scope":["meta.template.expression"],"settings":{"foreground":"#d4d4d4"}},{"scope":["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],"settings":{"foreground":"#9cdcfe"}},{"scope":"keyword","settings":{"foreground":"#569cd6"}},{"scope":"keyword.control","settings":{"foreground":"#569cd6"}},{"scope":"keyword.operator","settings":{"foreground":"#d4d4d4"}},{"scope":["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.instanceof","keyword.operator.logical.python"],"settings":{"foreground":"#569cd6"}},{"scope":"keyword.other.unit","settings":{"foreground":"#b5cea8"}},{"scope":["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],"settings":{"foreground":"#569cd6"}},{"scope":"support.function.git-rebase","settings":{"foreground":"#9cdcfe"}},{"scope":"constant.sha.git-rebase","settings":{"foreground":"#b5cea8"}},{"scope":["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],"settings":{"foreground":"#d4d4d4"}},{"scope":"variable.language","settings":{"foreground":"#569cd6"}},{"scope":["entity.name.function","support.function","support.constant.handlebars"],"settings":{"foreground":"#DCDCAA"}},{"scope":["meta.return-type","support.class","support.type","entity.name.type","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],"settings":{"foreground":"#4EC9B0"}},{"scope":["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],"settings":{"foreground":"#4EC9B0"}},{"scope":"keyword.control","settings":{"foreground":"#C586C0"}},{"scope":["variable","meta.definition.variable.name","support.variable","entity.name.variable"],"settings":{"foreground":"#9CDCFE"}},{"scope":["meta.object-literal.key"],"settings":{"foreground":"#9CDCFE"}},{"scope":["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],"settings":{"foreground":"#CE9178"}},{"scope":["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],"settings":{"foreground":"#CE9178"}},{"scope":["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],"settings":{"foreground":"#d16969"}},{"scope":["keyword.operator.or.regexp","keyword.control.anchor.regexp"],"settings":{"foreground":"#DCDCAA"}},{"scope":"keyword.operator.quantifier.regexp","settings":{"foreground":"#d7ba7d"}},{"scope":"constant.character","settings":{"foreground":"#569cd6"}},{"scope":"constant.character.escape","settings":{"foreground":"#d7ba7d"}},{"scope":"token.info-token","settings":{"foreground":"#6796e6"}},{"scope":"token.warn-token","settings":{"foreground":"#cd9731"}},{"scope":"token.error-token","settings":{"foreground":"#f44747"}},{"scope":"token.debug-token","settings":{"foreground":"#b267e6"}}],"type":"dark"}'));export{e as default}; ================================================ FILE: jesse/static/_nuxt/Bu5BbsvL.js ================================================ const e=Object.freeze(JSON.parse('{"displayName":"AppleScript","fileTypes":["applescript","scpt","script editor"],"firstLineMatch":"^#!.*(osascript)","name":"applescript","patterns":[{"include":"#blocks"},{"include":"#inline"}],"repository":{"attributes.considering-ignoring":{"patterns":[{"match":",","name":"punctuation.separator.array.attributes.applescript"},{"match":"\\\\b(and)\\\\b","name":"keyword.control.attributes.and.applescript"},{"match":"\\\\b(?i:case|diacriticals|hyphens|numeric\\\\s+strings|punctuation|white\\\\s+space)\\\\b","name":"constant.other.attributes.text.applescript"},{"match":"\\\\b(?i:application\\\\s+responses)\\\\b","name":"constant.other.attributes.application.applescript"}]},"blocks":{"patterns":[{"begin":"^\\\\s*(script)\\\\s+(\\\\w+)","beginCaptures":{"1":{"name":"keyword.control.script.applescript"},"2":{"name":"entity.name.type.script-object.applescript"}},"end":"^\\\\s*(end(?:\\\\s+script)?)(?=\\\\s*(--.*?)?$)","endCaptures":{"1":{"name":"keyword.control.script.applescript"}},"name":"meta.block.script.applescript","patterns":[{"include":"$self"}]},{"begin":"^\\\\s*(to|on)\\\\s+(\\\\w+)(\\\\()((?:[\\\\s,:\\\\{\\\\}]*(?:\\\\w+)?)*)(\\\\))","beginCaptures":{"1":{"name":"keyword.control.function.applescript"},"2":{"name":"entity.name.function.handler.applescript"},"3":{"name":"punctuation.definition.parameters.begin.applescript"},"4":{"name":"variable.parameter.handler.applescript"},"5":{"name":"punctuation.definition.parameters.end.applescript"}},"comment":"\\n\\t\\t\\t\\t\\t\\tThis is not a very well-designed rule. For now,\\n\\t\\t\\t\\t\\t\\twe can leave it like this though, as it sorta works.\\n\\t\\t\\t\\t\\t","end":"^\\\\s*(end)(?:\\\\s+(\\\\2))?(?=\\\\s*(--.*?)?$)","endCaptures":{"1":{"name":"keyword.control.function.applescript"}},"name":"meta.function.positional.applescript","patterns":[{"include":"$self"}]},{"begin":"^\\\\s*(to|on)\\\\s+(\\\\w+)(?:\\\\s+(of|in)\\\\s+(\\\\w+))?(?=\\\\s+(above|against|apart\\\\s+from|around|aside\\\\s+from|at|below|beneath|beside|between|by|for|from|instead\\\\s+of|into|on|onto|out\\\\s+of|over|thru|under)\\\\b)","beginCaptures":{"1":{"name":"keyword.control.function.applescript"},"2":{"name":"entity.name.function.handler.applescript"},"3":{"name":"keyword.control.function.applescript"},"4":{"name":"variable.parameter.handler.direct.applescript"}},"comment":"TODO: match `given` parameters","end":"^\\\\s*(end)(?:\\\\s+(\\\\2))?(?=\\\\s*(--.*?)?$)","endCaptures":{"1":{"name":"keyword.control.function.applescript"}},"name":"meta.function.prepositional.applescript","patterns":[{"captures":{"1":{"name":"keyword.control.preposition.applescript"},"2":{"name":"variable.parameter.handler.applescript"}},"match":"\\\\b(?i:above|against|apart\\\\s+from|around|aside\\\\s+from|at|below|beneath|beside|between|by|for|from|instead\\\\s+of|into|on|onto|out\\\\s+of|over|thru|under)\\\\s+(\\\\w+)\\\\b"},{"include":"$self"}]},{"begin":"^\\\\s*(to|on)\\\\s+(\\\\w+)(?=\\\\s*(--.*?)?$)","beginCaptures":{"1":{"name":"keyword.control.function.applescript"},"2":{"name":"entity.name.function.handler.applescript"}},"end":"^\\\\s*(end)(?:\\\\s+(\\\\2))?(?=\\\\s*(--.*?)?$)","endCaptures":{"1":{"name":"keyword.control.function.applescript"}},"name":"meta.function.parameterless.applescript","patterns":[{"include":"$self"}]},{"include":"#blocks.tell"},{"include":"#blocks.repeat"},{"include":"#blocks.statement"},{"include":"#blocks.other"}]},"blocks.other":{"patterns":[{"begin":"^\\\\s*(considering)\\\\b","end":"^\\\\s*(end(?:\\\\s+considering)?)(?=\\\\s*(--.*?)?$)","name":"meta.block.considering.applescript","patterns":[{"begin":"(?<=considering)","end":"(?|<|≥|>=|≤|<=)","name":"keyword.operator.comparison.applescript"},{"match":"(?ix)\\\\b\\n\\t\\t\\t\\t\\t\\t(and|or|div|mod|as|not\\n\\t\\t\\t\\t\\t\\t|(a\\\\s+)?(ref(\\\\s+to)?|reference\\\\s+to)\\n\\t\\t\\t\\t\\t\\t|equal(s|\\\\s+to)|contains?|comes\\\\s+(after|before)|(start|begin|end)s?\\\\s+with\\n\\t\\t\\t\\t\\t\\t)\\n\\t\\t\\t\\t\\t\\\\b","name":"keyword.operator.word.applescript"},{"comment":"In double quotes so we can use a single quote in the keywords.","match":"(?ix)\\\\b\\n\\t\\t\\t\\t\\t\\t(is(n\'t|\\\\s+not)?(\\\\s+(equal(\\\\s+to)?|(less|greater)\\\\s+than(\\\\s+or\\\\s+equal(\\\\s+to)?)?|in|contained\\\\s+by))?\\n\\t\\t\\t\\t\\t\\t|does(n\'t|\\\\s+not)\\\\s+(equal|come\\\\s+(before|after)|contain)\\n\\t\\t\\t\\t\\t\\t)\\n\\t\\t\\t\\t\\t\\\\b","name":"keyword.operator.word.applescript"},{"match":"\\\\b(?i:some|every|whose|where|that|id|index|\\\\d+(st|nd|rd|th)|first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|last|front|back|middle|named|beginning|end|from|to|thr(u|ough)|before|(front|back|beginning|end)\\\\s+of|after|behind|in\\\\s+(front|back|beginning|end)\\\\s+of)\\\\b","name":"keyword.operator.reference.applescript"},{"match":"\\\\b(?i:continue|return|exit(\\\\s+repeat)?)\\\\b","name":"keyword.control.loop.applescript"},{"match":"\\\\b(?i:about|above|after|against|and|apart\\\\s+from|around|as|aside\\\\s+from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|contain|contains|contains|copy|div|does|eighth|else|end|equal|equals|error|every|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead\\\\s+of|into|is|it|its|last|local|me|middle|mod|my|ninth|not|of|on|onto|or|out\\\\s+of|over|prop|property|put|ref|reference|repeat|returning|script|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\\\\b","name":"keyword.other.applescript"}]},"built-in.punctuation":{"patterns":[{"match":"¬","name":"punctuation.separator.continuation.line.applescript"},{"comment":"the : in property assignments","match":":","name":"punctuation.separator.key-value.property.applescript"},{"comment":"the parentheses in groups","match":"[()]","name":"punctuation.section.group.applescript"}]},"built-in.support":{"patterns":[{"match":"\\\\b(?i:POSIX\\\\s+path|frontmost|id|name|running|version|days?|weekdays?|months?|years?|time|date\\\\s+string|time\\\\s+string|length|rest|reverse|items?|contents|quoted\\\\s+form|characters?|paragraphs?|words?)\\\\b","name":"support.function.built-in.property.applescript"},{"match":"\\\\b(?i:activate|log|clipboard\\\\s+info|set\\\\s+the\\\\s+clipboard\\\\s+to|the\\\\s+clipboard|info\\\\s+for|list\\\\s+(disks|folder)|mount\\\\s+volume|path\\\\s+to(\\\\s+resource)?|close\\\\s+access|get\\\\s+eof|open\\\\s+for\\\\s+access|read|set\\\\s+eof|write|open\\\\s+location|current\\\\s+date|do\\\\s+shell\\\\s+script|get\\\\s+volume\\\\s+settings|random\\\\s+number|round|set\\\\s+volume|system\\\\s+(attribute|info)|time\\\\s+to\\\\s+GMT|load\\\\s+script|run\\\\s+script|scripting\\\\s+components|store\\\\s+script|copy|count|get|launch|run|set|ASCII\\\\s+(character|number)|localized\\\\s+string|offset|summarize|beep|choose\\\\s+(application|color|file(\\\\s+name)?|folder|from\\\\s+list|remote\\\\s+application|URL)|delay|display\\\\s+(alert|dialog)|say)\\\\b","name":"support.function.built-in.command.applescript"},{"match":"\\\\b(?i:get|run)\\\\b","name":"support.function.built-in.applescript"},{"match":"\\\\b(?i:anything|data|text|upper\\\\s+case|propert(y|ies))\\\\b","name":"support.class.built-in.applescript"},{"match":"\\\\b(?i:alias|class)(es)?\\\\b","name":"support.class.built-in.applescript"},{"match":"\\\\b(?i:app(lication)?|boolean|character|constant|date|event|file(\\\\s+specification)?|handler|integer|item|keystroke|linked\\\\s+list|list|machine|number|picture|preposition|POSIX\\\\s+file|real|record|reference(\\\\s+form)?|RGB\\\\s+color|script|sound|text\\\\s+item|type\\\\s+class|vector|writing\\\\s+code(\\\\s+info)?|zone|((international|styled(\\\\s+(Clipboard|Unicode))?|Unicode)\\\\s+)?text|((C|encoded|Pascal)\\\\s+)?string)s?\\\\b","name":"support.class.built-in.applescript"},{"match":"(?ix)\\\\b\\n\\t\\t\\t\\t\\t\\t(\\t(cubic\\\\s+(centi)?|square\\\\s+(kilo)?|centi|kilo)met(er|re)s\\n\\t\\t\\t\\t\\t\\t|\\tsquare\\\\s+(yards|feet|miles)|cubic\\\\s+(yards|feet|inches)|miles|inches\\n\\t\\t\\t\\t\\t\\t|\\tlit(re|er)s|gallons|quarts\\n\\t\\t\\t\\t\\t\\t|\\t(kilo)?grams|ounces|pounds\\n\\t\\t\\t\\t\\t\\t|\\tdegrees\\\\s+(Celsius|Fahrenheit|Kelvin)\\n\\t\\t\\t\\t\\t\\t)\\n\\t\\t\\t\\t\\t\\\\b","name":"support.class.built-in.unit.applescript"},{"match":"\\\\b(?i:seconds|minutes|hours|days)\\\\b","name":"support.class.built-in.time.applescript"}]},"comments":{"patterns":[{"begin":"^\\\\s*(#!)","captures":{"1":{"name":"punctuation.definition.comment.applescript"}},"end":"\\\\n","name":"comment.line.number-sign.applescript"},{"begin":"(^[ \\\\t]+)?(?=#)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.applescript"}},"end":"(?!\\\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.applescript"}},"end":"\\\\n","name":"comment.line.number-sign.applescript"}]},{"begin":"(^[ \\\\t]+)?(?=--)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.applescript"}},"end":"(?!\\\\G)","patterns":[{"begin":"--","beginCaptures":{"0":{"name":"punctuation.definition.comment.applescript"}},"end":"\\\\n","name":"comment.line.double-dash.applescript"}]},{"begin":"\\\\(\\\\*","captures":{"0":{"name":"punctuation.definition.comment.applescript"}},"end":"\\\\*\\\\)","name":"comment.block.applescript","patterns":[{"include":"#comments.nested"}]}]},"comments.nested":{"patterns":[{"begin":"\\\\(\\\\*","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.applescript"}},"end":"\\\\*\\\\)","endCaptures":{"0":{"name":"punctuation.definition.comment.end.applescript"}},"name":"comment.block.applescript","patterns":[{"include":"#comments.nested"}]}]},"data-structures":{"patterns":[{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.array.begin.applescript"}},"comment":"We cannot necessarily distinguish \\"records\\" from \\"arrays\\", and so this could be either.","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.array.end.applescript"}},"name":"meta.array.applescript","patterns":[{"captures":{"1":{"name":"constant.other.key.applescript"},"2":{"name":"meta.identifier.applescript"},"3":{"name":"punctuation.definition.identifier.applescript"},"4":{"name":"punctuation.definition.identifier.applescript"},"5":{"name":"punctuation.separator.key-value.applescript"}},"match":"(\\\\w+|((\\\\|)[^|\\\\n]*(\\\\|)))\\\\s*(:)"},{"match":":","name":"punctuation.separator.key-value.applescript"},{"match":",","name":"punctuation.separator.array.applescript"},{"include":"#inline"}]},{"begin":"(?:(?<=application )|(?<=app ))(\\")","captures":{"1":{"name":"punctuation.definition.string.applescript"}},"end":"(\\")","name":"string.quoted.double.application-name.applescript","patterns":[{"match":"\\\\\\\\.","name":"constant.character.escape.applescript"}]},{"begin":"(\\")","captures":{"1":{"name":"punctuation.definition.string.applescript"}},"end":"(\\")","name":"string.quoted.double.applescript","patterns":[{"match":"\\\\\\\\.","name":"constant.character.escape.applescript"}]},{"captures":{"1":{"name":"punctuation.definition.identifier.applescript"},"2":{"name":"punctuation.definition.identifier.applescript"}},"match":"(\\\\|)[^|\\\\n]*(\\\\|)","name":"meta.identifier.applescript"},{"captures":{"1":{"name":"punctuation.definition.data.applescript"},"2":{"name":"support.class.built-in.applescript"},"3":{"name":"storage.type.utxt.applescript"},"4":{"name":"string.unquoted.data.applescript"},"5":{"name":"punctuation.definition.data.applescript"},"6":{"name":"keyword.operator.applescript"},"7":{"name":"support.class.built-in.applescript"}},"match":"(«)(data) (utxt|utf8)([[:xdigit:]]*)(»)(?:\\\\s+(as)\\\\s+(?i:Unicode\\\\s+text))?","name":"constant.other.data.utxt.applescript"},{"begin":"(«)(\\\\w+)\\\\b(?=\\\\s)","beginCaptures":{"1":{"name":"punctuation.definition.data.applescript"},"2":{"name":"support.class.built-in.applescript"}},"end":"(»)","endCaptures":{"1":{"name":"punctuation.definition.data.applescript"}},"name":"constant.other.data.raw.applescript"},{"captures":{"1":{"name":"punctuation.definition.data.applescript"},"2":{"name":"punctuation.definition.data.applescript"}},"match":"(«)[^»]*(»)","name":"invalid.illegal.data.applescript"}]},"finder":{"patterns":[{"match":"\\\\b(item|container|(computer|disk|trash)-object|disk|folder|((alias|application|document|internet location) )?file|clipping|package)s?\\\\b","name":"support.class.finder.items.applescript"},{"match":"\\\\b((Finder|desktop|information|preferences|clipping) )windows?\\\\b","name":"support.class.finder.window-classes.applescript"},{"match":"\\\\b(preferences|(icon|column|list) view options|(label|column|alias list)s?)\\\\b","name":"support.class.finder.type-definitions.applescript"},{"match":"\\\\b(copy|find|sort|clean up|eject|empty( trash)|erase|reveal|update)\\\\b","name":"support.function.finder.items.applescript"},{"match":"\\\\b(insertion location|product version|startup disk|desktop|trash|home|computer container|finder preferences)\\\\b","name":"support.constant.finder.applescript"},{"match":"\\\\b(visible)\\\\b","name":"support.variable.finder.applescript"}]},"inline":{"patterns":[{"include":"#comments"},{"include":"#data-structures"},{"include":"#built-in"},{"include":"#standardadditions"}]},"itunes":{"patterns":[{"match":"\\\\b(artwork|application|encoder|EQ preset|item|source|visual|(EQ |browser )?window|((audio CD|device|shared|URL|file) )?track|playlist window|((audio CD|device|radio tuner|library|folder|user) )?playlist)s?\\\\b","name":"support.class.itunes.applescript"},{"match":"\\\\b(add|back track|convert|fast forward|(next|previous) track|pause|play(pause)?|refresh|resume|rewind|search|stop|update|eject|subscribe|update(Podcast|AllPodcasts)|download)\\\\b","name":"support.function.itunes.applescript"},{"match":"\\\\b(current (playlist|stream (title|URL)|track)|player state)\\\\b","name":"support.constant.itunes.applescript"},{"match":"\\\\b(current (encoder|EQ preset|visual)|EQ enabled|fixed indexing|full screen|mute|player position|sound volume|visuals enabled|visual size)\\\\b","name":"support.variable.itunes.applescript"}]},"standard-suite":{"patterns":[{"match":"\\\\b(colors?|documents?|items?|windows?)\\\\b","name":"support.class.standard-suite.applescript"},{"match":"\\\\b(close|count|delete|duplicate|exists|make|move|open|print|quit|save|activate|select|data size)\\\\b","name":"support.function.standard-suite.applescript"},{"match":"\\\\b(name|frontmost|version)\\\\b","name":"support.constant.standard-suite.applescript"},{"match":"\\\\b(selection)\\\\b","name":"support.variable.standard-suite.applescript"},{"match":"\\\\b(attachments?|attribute runs?|characters?|paragraphs?|texts?|words?)\\\\b","name":"support.class.text-suite.applescript"}]},"standardadditions":{"patterns":[{"match":"\\\\b((alert|dialog) reply)\\\\b","name":"support.class.standardadditions.user-interaction.applescript"},{"match":"\\\\b(file information)\\\\b","name":"support.class.standardadditions.file.applescript"},{"match":"\\\\b(POSIX files?|system information|volume settings)\\\\b","name":"support.class.standardadditions.miscellaneous.applescript"},{"match":"\\\\b(URLs?|internet address(es)?|web pages?|FTP items?)\\\\b","name":"support.class.standardadditions.internet.applescript"},{"match":"\\\\b(info for|list (disks|folder)|mount volume|path to( resource)?)\\\\b","name":"support.function.standardadditions.file.applescript"},{"match":"\\\\b(beep|choose (application|color|file( name)?|folder|from list|remote application|URL)|delay|display (alert|dialog)|say)\\\\b","name":"support.function.standardadditions.user-interaction.applescript"},{"match":"\\\\b(ASCII (character|number)|localized string|offset|summarize)\\\\b","name":"support.function.standardadditions.string.applescript"},{"match":"\\\\b(set the clipboard to|the clipboard|clipboard info)\\\\b","name":"support.function.standardadditions.clipboard.applescript"},{"match":"\\\\b(open for access|close access|read|write|get eof|set eof)\\\\b","name":"support.function.standardadditions.file-i-o.applescript"},{"match":"\\\\b((load|store|run) script|scripting components)\\\\b","name":"support.function.standardadditions.scripting.applescript"},{"match":"\\\\b(current date|do shell script|get volume settings|random number|round|set volume|system attribute|system info|time to GMT)\\\\b","name":"support.function.standardadditions.miscellaneous.applescript"},{"match":"\\\\b(opening folder|(closing|moving) folder window for|adding folder items to|removing folder items from)\\\\b","name":"support.function.standardadditions.folder-actions.applescript"},{"match":"\\\\b(open location|handle CGI request)\\\\b","name":"support.function.standardadditions.internet.applescript"}]},"system-events":{"patterns":[{"match":"\\\\b(audio (data|file))\\\\b","name":"support.class.system-events.audio-file.applescript"},{"match":"\\\\b(alias(es)?|(Classic|local|network|system|user) domain objects?|disk( item)?s?|domains?|file( package)?s?|folders?|items?)\\\\b","name":"support.class.system-events.disk-folder-file.applescript"},{"match":"\\\\b(delete|open|move)\\\\b","name":"support.function.system-events.disk-folder-file.applescript"},{"match":"\\\\b(folder actions?|scripts?)\\\\b","name":"support.class.system-events.folder-actions.applescript"},{"match":"\\\\b(attach action to|attached scripts|edit action of|remove action from)\\\\b","name":"support.function.system-events.folder-actions.applescript"},{"match":"\\\\b(movie data|movie file)\\\\b","name":"support.class.system-events.movie-file.applescript"},{"match":"\\\\b(log out|restart|shut down|sleep)\\\\b","name":"support.function.system-events.power.applescript"},{"match":"\\\\b(((application |desk accessory )?process|(check|combo )?box)(es)?|(action|attribute|browser|(busy|progress|relevance) indicator|color well|column|drawer|group|grow area|image|incrementor|list|menu( bar)?( item)?|(menu |pop up |radio )?button|outline|(radio|tab|splitter) group|row|scroll (area|bar)|sheet|slider|splitter|static text|table|text (area|field)|tool bar|UI element|window)s?)\\\\b","name":"support.class.system-events.processes.applescript"},{"match":"\\\\b(click|key code|keystroke|perform|select)\\\\b","name":"support.function.system-events.processes.applescript"},{"match":"\\\\b(property list (file|item))\\\\b","name":"support.class.system-events.property-list.applescript"},{"match":"\\\\b(annotation|QuickTime (data|file)|track)s?\\\\b","name":"support.class.system-events.quicktime-file.applescript"},{"match":"\\\\b((abort|begin|end) transaction)\\\\b","name":"support.function.system-events.system-events.applescript"},{"match":"\\\\b(XML (attribute|data|element|file)s?)\\\\b","name":"support.class.system-events.xml.applescript"},{"match":"\\\\b(print settings|users?|login items?)\\\\b","name":"support.class.sytem-events.other.applescript"}]},"textmate":{"patterns":[{"match":"\\\\b(print settings)\\\\b","name":"support.class.textmate.applescript"},{"match":"\\\\b(get url|insert|reload bundles)\\\\b","name":"support.function.textmate.applescript"}]}},"scopeName":"source.applescript"}')),t=[e];export{t as default}; ================================================ FILE: jesse/static/_nuxt/Bu73EIfS.js ================================================ import e from"./BLhTXw86.js";const t=Object.freeze(JSON.parse(`{"displayName":"1C (Enterprise)","fileTypes":["bsl","os"],"name":"bsl","patterns":[{"include":"#basic"},{"include":"#miscellaneous"},{"begin":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(Процедура|Procedure|Функция|Function)\\\\s+([a-zа-яё0-9_]+)\\\\s*(\\\\())","beginCaptures":{"1":{"name":"storage.type.bsl"},"2":{"name":"entity.name.function.bsl"},"3":{"name":"punctuation.bracket.begin.bsl"}},"comment":"Proc and function definition","end":"(?i:(\\\\))\\\\s*((Экспорт|Export)(?=[^\\\\wа-яё\\\\.]|$))?)","endCaptures":{"1":{"name":"punctuation.bracket.end.bsl"},"2":{"name":"storage.modifier.bsl"}},"patterns":[{"include":"#annotations"},{"include":"#basic"},{"match":"(=)","name":"keyword.operator.assignment.bsl"},{"match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(Знач|Val)(?=[^\\\\wа-яё\\\\.]|$))","name":"storage.modifier.bsl"},{"match":"(?<=[^\\\\wа-яё\\\\.]|^)((?<==)(?i)[a-zа-яё0-9_]+)(?=[^\\\\wа-яё\\\\.]|$)","name":"invalid.illegal.bsl"},{"match":"(?<=[^\\\\wа-яё\\\\.]|^)((?<==\\\\s)\\\\s*(?i)[a-zа-яё0-9_]+)(?=[^\\\\wа-яё\\\\.]|$)","name":"invalid.illegal.bsl"},{"match":"(?i:[a-zа-яё0-9_]+)","name":"variable.parameter.bsl"}]},{"begin":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(Перем|Var)\\\\s+([a-zа-яё0-9_]+)\\\\s*)","beginCaptures":{"1":{"name":"storage.type.var.bsl"},"2":{"name":"variable.bsl"}},"comment":"Define of variable","end":"(;)","endCaptures":{"1":{"name":"keyword.operator.bsl"}},"patterns":[{"match":"(,)","name":"keyword.operator.bsl"},{"match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(Экспорт|Export)(?=[^\\\\wа-яё\\\\.]|$))","name":"storage.modifier.bsl"},{"match":"(?i:[a-zа-яё0-9_]+)","name":"variable.bsl"}]},{"begin":"(?i:(?<=;|^)\\\\s*(Если|If))","beginCaptures":{"1":{"name":"keyword.control.conditional.bsl"}},"comment":"Conditional","end":"(?i:(Тогда|Then))","endCaptures":{"1":{"name":"keyword.control.conditional.bsl"}},"name":"meta.conditional.bsl","patterns":[{"include":"#basic"},{"include":"#miscellaneous"}]},{"begin":"(?i:(?<=;|^)\\\\s*([\\\\wа-яё]+))\\\\s*(=)","beginCaptures":{"1":{"name":"variable.assignment.bsl"},"2":{"name":"keyword.operator.assignment.bsl"}},"comment":"Variable assignment","end":"(?i:(?=(;|Иначе|Конец|Els|End)))","name":"meta.var-single-variable.bsl","patterns":[{"include":"#basic"},{"include":"#miscellaneous"}]},{"match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(КонецПроцедуры|EndProcedure|КонецФункции|EndFunction)(?=[^\\\\wа-яё\\\\.]|$))","name":"storage.type.bsl"},{"match":"(?i)#(Использовать|Use)(?=[^\\\\wа-яё\\\\.]|$)","name":"keyword.control.import.bsl"},{"match":"(?i)#native","name":"keyword.control.native.bsl"},{"match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(Прервать|Break|Продолжить|Continue|Возврат|Return)(?=[^\\\\wа-яё\\\\.]|$))","name":"keyword.control.bsl"},{"match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(Если|If|Иначе|Else|ИначеЕсли|ElsIf|Тогда|Then|КонецЕсли|EndIf)(?=[^\\\\wа-яё\\\\.]|$))","name":"keyword.control.conditional.bsl"},{"match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(Попытка|Try|Исключение|Except|КонецПопытки|EndTry|ВызватьИсключение|Raise)(?=[^\\\\wа-яё\\\\.]|$))","name":"keyword.control.exception.bsl"},{"match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(Пока|While|(Для|For)(\\\\s+(Каждого|Each))?|Из|In|По|To|Цикл|Do|КонецЦикла|EndDo)(?=[^\\\\wа-яё\\\\.]|$))","name":"keyword.control.repeat.bsl"},{"match":"(?i:&(НаКлиенте((НаСервере(БезКонтекста)?)?)|AtClient((AtServer(NoContext)?)?)|НаСервере(БезКонтекста)?|AtServer(NoContext)?))","name":"storage.modifier.directive.bsl"},{"include":"#annotations"},{"match":"(?i:#(Если|If|ИначеЕсли|ElsIf|Иначе|Else|КонецЕсли|EndIf).*(Тогда|Then)?)","name":"keyword.other.preprocessor.bsl"},{"begin":"(?i)(#(Область|Region))(\\\\s+([\\\\wа-яё]+))?","beginCaptures":{"1":{"name":"keyword.other.section.bsl"},"4":{"name":"entity.name.section.bsl"}},"comment":"Region start","end":"$"},{"comment":"Region end","match":"(?i)#(КонецОбласти|EndRegion)","name":"keyword.other.section.bsl"},{"comment":"Delete start","match":"(?i)#(Удаление|Delete)","name":"keyword.other.section.bsl"},{"comment":"Delete end","match":"(?i)#(КонецУдаления|EndDelete)","name":"keyword.other.section.bsl"},{"comment":"Inster start","match":"(?i)#(Вставка|Insert)","name":"keyword.other.section.bsl"},{"comment":"Insert end","match":"(?i)#(КонецВставки|EndInsert)","name":"keyword.other.section.bsl"}],"repository":{"annotations":{"patterns":[{"begin":"(?i)(&([a-zа-яё0-9_]+))\\\\s*(\\\\()","beginCaptures":{"1":{"name":"storage.type.annotation.bsl"},"3":{"name":"punctuation.bracket.begin.bsl"}},"comment":"Annotations with parameters","end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.bracket.end.bsl"}},"patterns":[{"include":"#basic"},{"match":"(=)","name":"keyword.operator.assignment.bsl"},{"match":"(?<=[^\\\\wа-яё\\\\.]|^)((?<==)(?i)[a-zа-яё0-9_]+)(?=[^\\\\wа-яё\\\\.]|$)","name":"invalid.illegal.bsl"},{"match":"(?<=[^\\\\wа-яё\\\\.]|^)((?<==\\\\s)\\\\s*(?i)[a-zа-яё0-9_]+)(?=[^\\\\wа-яё\\\\.]|$)","name":"invalid.illegal.bsl"},{"match":"(?i)[a-zа-яё0-9_]+","name":"variable.annotation.bsl"}]},{"comment":"Annotations without parameters","match":"(?i)(&([a-zа-яё0-9_]+))","name":"storage.type.annotation.bsl"}]},"basic":{"patterns":[{"begin":"//","end":"$","name":"comment.line.double-slash.bsl"},{"begin":"\\\\\\"","end":"\\\\\\"(?![\\\\\\"])","name":"string.quoted.double.bsl","patterns":[{"include":"#query"},{"match":"\\\\\\"\\\\\\"","name":"constant.character.escape.bsl"},{"match":"(^\\\\s*//.*$)","name":"comment.line.double-slash.bsl"}]},{"match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(Неопределено|Undefined|Истина|True|Ложь|False|NULL)(?=[^\\\\wа-яё\\\\.]|$))","name":"constant.language.bsl"},{"match":"(?<=[^\\\\wа-яё\\\\.]|^)(\\\\d+\\\\.?\\\\d*)(?=[^\\\\wа-яё\\\\.]|$)","name":"constant.numeric.bsl"},{"match":"\\\\'((\\\\d{4}[^\\\\d\\\\']*\\\\d{2}[^\\\\d\\\\']*\\\\d{2})([^\\\\d\\\\']*\\\\d{2}[^\\\\d\\\\']*\\\\d{2}([^\\\\d\\\\']*\\\\d{2})?)?)\\\\'","name":"constant.other.date.bsl"},{"match":"(,)","name":"keyword.operator.bsl"},{"match":"(\\\\()","name":"punctuation.bracket.begin.bsl"},{"match":"(\\\\))","name":"punctuation.bracket.end.bsl"}]},"miscellaneous":{"patterns":[{"match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(НЕ|NOT|И|AND|ИЛИ|OR)(?=[^\\\\wа-яё\\\\.]|$))","name":"keyword.operator.logical.bsl"},{"match":"<=|>=|=|<|>","name":"keyword.operator.comparison.bsl"},{"match":"(\\\\+|-|\\\\*|/|%)","name":"keyword.operator.arithmetic.bsl"},{"match":"(;|\\\\?)","name":"keyword.operator.bsl"},{"comment":"Functions w/o brackets","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(Новый|New)(?=[^\\\\wа-яё\\\\.]|$))","name":"support.function.bsl"},{"comment":"Глобальный контекст - функции работы со значениями типа Строка","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(СтрДлина|StrLen|СокрЛ|TrimL|СокрП|TrimR|СокрЛП|TrimAll|Лев|Left|Прав|Right|Сред|Mid|СтрНайти|StrFind|ВРег|Upper|НРег|Lower|ТРег|Title|Символ|Char|КодСимвола|CharCode|ПустаяСтрока|IsBlankString|СтрЗаменить|StrReplace|СтрЧислоСтрок|StrLineCount|СтрПолучитьСтроку|StrGetLine|СтрЧислоВхождений|StrOccurrenceCount|СтрСравнить|StrCompare|СтрНачинаетсяС|StrStartWith|СтрЗаканчиваетсяНа|StrEndsWith|СтрРазделить|StrSplit|СтрСоединить|StrConcat)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - функции работы со значениями типа Число","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(Цел|Int|Окр|Round|ACos|ASin|ATan|Cos|Exp|Log|Log10|Pow|Sin|Sqrt|Tan)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - функции работы со значениями типа Дата","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(Год|Year|Месяц|Month|День|Day|Час|Hour|Минута|Minute|Секунда|Second|НачалоГода|BegOfYear|НачалоДня|BegOfDay|НачалоКвартала|BegOfQuarter|НачалоМесяца|BegOfMonth|НачалоМинуты|BegOfMinute|НачалоНедели|BegOfWeek|НачалоЧаса|BegOfHour|КонецГода|EndOfYear|КонецДня|EndOfDay|КонецКвартала|EndOfQuarter|КонецМесяца|EndOfMonth|КонецМинуты|EndOfMinute|КонецНедели|EndOfWeek|КонецЧаса|EndOfHour|НеделяГода|WeekOfYear|ДеньГода|DayOfYear|ДеньНедели|WeekDay|ТекущаяДата|CurrentDate|ДобавитьМесяц|AddMonth)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - функции работы со значениями типа Тип","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(Тип|Type|ТипЗнч|TypeOf)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - функции преобразования значений","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(Булево|Boolean|Число|Number|Строка|String|Дата|Date)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - процедуры и функции интерактивной работы","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(ПоказатьВопрос|ShowQueryBox|Вопрос|DoQueryBox|ПоказатьПредупреждение|ShowMessageBox|Предупреждение|DoMessageBox|Сообщить|Message|ОчиститьСообщения|ClearMessages|ОповеститьОбИзменении|NotifyChanged|Состояние|Status|Сигнал|Beep|ПоказатьЗначение|ShowValue|ОткрытьЗначение|OpenValue|Оповестить|Notify|ОбработкаПрерыванияПользователя|UserInterruptProcessing|ОткрытьСодержаниеСправки|OpenHelpContent|ОткрытьИндексСправки|OpenHelpIndex|ОткрытьСправку|OpenHelp|ПоказатьИнформациюОбОшибке|ShowErrorInfo|КраткоеПредставлениеОшибки|BriefErrorDescription|ПодробноеПредставлениеОшибки|DetailErrorDescription|ПолучитьФорму|GetForm|ЗакрытьСправку|CloseHelp|ПоказатьОповещениеПользователя|ShowUserNotification|ОткрытьФорму|OpenForm|ОткрытьФормуМодально|OpenFormModal|АктивноеОкно|ActiveWindow|ВыполнитьОбработкуОповещения|ExecuteNotifyProcessing)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - функции для вызова диалога ввода данных","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(ПоказатьВводЗначения|ShowInputValue|ВвестиЗначение|InputValue|ПоказатьВводЧисла|ShowInputNumber|ВвестиЧисло|InputNumber|ПоказатьВводСтроки|ShowInputString|ВвестиСтроку|InputString|ПоказатьВводДаты|ShowInputDate|ВвестиДату|InputDate)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - функции форматирования","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(Формат|Format|ЧислоПрописью|NumberInWords|НСтр|NStr|ПредставлениеПериода|PeriodPresentation|СтрШаблон|StrTemplate)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - функции обращения к конфигурации","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(ПолучитьОбщийМакет|GetCommonTemplate|ПолучитьОбщуюФорму|GetCommonForm|ПредопределенноеЗначение|PredefinedValue|ПолучитьПолноеИмяПредопределенногоЗначения|GetPredefinedValueFullName)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - процедуры и функции сеанса работы","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(ПолучитьЗаголовокСистемы|GetCaption|ПолучитьСкоростьКлиентскогоСоединения|GetClientConnectionSpeed|ПодключитьОбработчикОжидания|AttachIdleHandler|УстановитьЗаголовокСистемы|SetCaption|ОтключитьОбработчикОжидания|DetachIdleHandler|ИмяКомпьютера|ComputerName|ЗавершитьРаботуСистемы|Exit|ИмяПользователя|UserName|ПрекратитьРаботуСистемы|Terminate|ПолноеИмяПользователя|UserFullName|ЗаблокироватьРаботуПользователя|LockApplication|КаталогПрограммы|BinDir|КаталогВременныхФайлов|TempFilesDir|ПравоДоступа|AccessRight|РольДоступна|IsInRole|ТекущийЯзык|CurrentLanguage|ТекущийКодЛокализации|CurrentLocaleCode|СтрокаСоединенияИнформационнойБазы|InfoBaseConnectionString|ПодключитьОбработчикОповещения|AttachNotificationHandler|ОтключитьОбработчикОповещения|DetachNotificationHandler|ПолучитьСообщенияПользователю|GetUserMessages|ПараметрыДоступа|AccessParameters|ПредставлениеПриложения|ApplicationPresentation|ТекущийЯзыкСистемы|CurrentSystemLanguage|ЗапуститьСистему|RunSystem|ТекущийРежимЗапуска|CurrentRunMode|УстановитьЧасовойПоясСеанса|SetSessionTimeZone|ЧасовойПоясСеанса|SessionTimeZone|ТекущаяДатаСеанса|CurrentSessionDate|УстановитьКраткийЗаголовокПриложения|SetShortApplicationCaption|ПолучитьКраткийЗаголовокПриложения|GetShortApplicationCaption|ПредставлениеПрава|RightPresentation|ВыполнитьПроверкуПравДоступа|VerifyAccessRights|РабочийКаталогДанныхПользователя|UserDataWorkDir|КаталогДокументов|DocumentsDir|ПолучитьИнформациюЭкрановКлиента|GetClientDisplaysInformation|ТекущийВариантОсновногоШрифтаКлиентскогоПриложения|ClientApplicationBaseFontCurrentVariant|ТекущийВариантИнтерфейсаКлиентскогоПриложения|ClientApplicationInterfaceCurrentVariant|УстановитьЗаголовокКлиентскогоПриложения|SetClientApplicationCaption|ПолучитьЗаголовокКлиентскогоПриложения|GetClientApplicationCaption|НачатьПолучениеКаталогаВременныхФайлов|BeginGettingTempFilesDir|НачатьПолучениеКаталогаДокументов|BeginGettingDocumentsDir|НачатьПолучениеРабочегоКаталогаДанныхПользователя|BeginGettingUserDataWorkDir|ПодключитьОбработчикЗапросаНастроекКлиентаЛицензирования|AttachLicensingClientParametersRequestHandler|ОтключитьОбработчикЗапросаНастроекКлиентаЛицензирования|DetachLicensingClientParametersRequestHandler|КаталогБиблиотекиМобильногоУстройства|MobileDeviceLibraryDir)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - процедуры и функции сохранения значений","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(ЗначениеВСтрокуВнутр|ValueToStringInternal|ЗначениеИзСтрокиВнутр|ValueFromStringInternal|ЗначениеВФайл|ValueToFile|ЗначениеИзФайла|ValueFromFile)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - Процедуры и функции работы с операционной системой","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(КомандаСистемы|System|ЗапуститьПриложение|RunApp|ПолучитьCOMОбъект|GetCOMObject|ПользователиОС|OSUsers|НачатьЗапускПриложения|BeginRunningApplication)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - Процедуры и функции работы с внешними компонентами","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(ПодключитьВнешнююКомпоненту|AttachAddIn|НачатьУстановкуВнешнейКомпоненты|BeginInstallAddIn|УстановитьВнешнююКомпоненту|InstallAddIn|НачатьПодключениеВнешнейКомпоненты|BeginAttachingAddIn)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - Процедуры и функции работы с файлами","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(КопироватьФайл|FileCopy|ПереместитьФайл|MoveFile|УдалитьФайлы|DeleteFiles|НайтиФайлы|FindFiles|СоздатьКаталог|CreateDirectory|ПолучитьИмяВременногоФайла|GetTempFileName|РазделитьФайл|SplitFile|ОбъединитьФайлы|MergeFiles|ПолучитьФайл|GetFile|НачатьПомещениеФайла|BeginPutFile|ПоместитьФайл|PutFile|ЭтоАдресВременногоХранилища|IsTempStorageURL|УдалитьИзВременногоХранилища|DeleteFromTempStorage|ПолучитьИзВременногоХранилища|GetFromTempStorage|ПоместитьВоВременноеХранилище|PutToTempStorage|ПодключитьРасширениеРаботыСФайлами|AttachFileSystemExtension|НачатьУстановкуРасширенияРаботыСФайлами|BeginInstallFileSystemExtension|УстановитьРасширениеРаботыСФайлами|InstallFileSystemExtension|ПолучитьФайлы|GetFiles|ПоместитьФайлы|PutFiles|ЗапроситьРазрешениеПользователя|RequestUserPermission|ПолучитьМаскуВсеФайлы|GetAllFilesMask|ПолучитьМаскуВсеФайлыКлиента|GetClientAllFilesMask|ПолучитьМаскуВсеФайлыСервера|GetServerAllFilesMask|ПолучитьРазделительПути|GetPathSeparator|ПолучитьРазделительПутиКлиента|GetClientPathSeparator|ПолучитьРазделительПутиСервера|GetServerPathSeparator|НачатьПодключениеРасширенияРаботыСФайлами|BeginAttachingFileSystemExtension|НачатьЗапросРазрешенияПользователя|BeginRequestingUserPermission|НачатьПоискФайлов|BeginFindingFiles|НачатьСозданиеКаталога|BeginCreatingDirectory|НачатьКопированиеФайла|BeginCopyingFile|НачатьПеремещениеФайла|BeginMovingFile|НачатьУдалениеФайлов|BeginDeletingFiles|НачатьПолучениеФайлов|BeginGettingFiles|НачатьПомещениеФайлов|BeginPuttingFiles|НачатьСозданиеДвоичныхДанныхИзФайла|BeginCreateBinaryDataFromFile)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - Процедуры и функции работы с информационной базой","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(НачатьТранзакцию|BeginTransaction|ЗафиксироватьТранзакцию|CommitTransaction|ОтменитьТранзакцию|RollbackTransaction|УстановитьМонопольныйРежим|SetExclusiveMode|МонопольныйРежим|ExclusiveMode|ПолучитьОперативнуюОтметкуВремени|GetRealTimeTimestamp|ПолучитьСоединенияИнформационнойБазы|GetInfoBaseConnections|НомерСоединенияИнформационнойБазы|InfoBaseConnectionNumber|КонфигурацияИзменена|ConfigurationChanged|КонфигурацияБазыДанныхИзмененаДинамически|DataBaseConfigurationChangedDynamically|УстановитьВремяОжиданияБлокировкиДанных|SetLockWaitTime|ОбновитьНумерациюОбъектов|RefreshObjectsNumbering|ПолучитьВремяОжиданияБлокировкиДанных|GetLockWaitTime|КодЛокализацииИнформационнойБазы|InfoBaseLocaleCode|УстановитьМинимальнуюДлинуПаролейПользователей|SetUserPasswordMinLength|ПолучитьМинимальнуюДлинуПаролейПользователей|GetUserPasswordMinLength|ИнициализироватьПредопределенныеДанные|InitializePredefinedData|УдалитьДанныеИнформационнойБазы|EraseInfoBaseData|УстановитьПроверкуСложностиПаролейПользователей|SetUserPasswordStrengthCheck|ПолучитьПроверкуСложностиПаролейПользователей|GetUserPasswordStrengthCheck|ПолучитьСтруктуруХраненияБазыДанных|GetDBStorageStructureInfo|УстановитьПривилегированныйРежим|SetPrivilegedMode|ПривилегированныйРежим|PrivilegedMode|ТранзакцияАктивна|TransactionActive|НеобходимостьЗавершенияСоединения|ConnectionStopRequest|НомерСеансаИнформационнойБазы|InfoBaseSessionNumber|ПолучитьСеансыИнформационнойБазы|GetInfoBaseSessions|ЗаблокироватьДанныеДляРедактирования|LockDataForEdit|УстановитьСоединениеСВнешнимИсточникомДанных|ConnectExternalDataSource|РазблокироватьДанныеДляРедактирования|UnlockDataForEdit|РазорватьСоединениеСВнешнимИсточникомДанных|DisconnectExternalDataSource|ПолучитьБлокировкуСеансов|GetSessionsLock|УстановитьБлокировкуСеансов|SetSessionsLock|ОбновитьПовторноИспользуемыеЗначения|RefreshReusableValues|УстановитьБезопасныйРежим|SetSafeMode|БезопасныйРежим|SafeMode|ПолучитьДанныеВыбора|GetChoiceData|УстановитьЧасовойПоясИнформационнойБазы|SetInfoBaseTimeZone|ПолучитьЧасовойПоясИнформационнойБазы|GetInfoBaseTimeZone|ПолучитьОбновлениеКонфигурацииБазыДанных|GetDataBaseConfigurationUpdate|УстановитьБезопасныйРежимРазделенияДанных|SetDataSeparationSafeMode|БезопасныйРежимРазделенияДанных|DataSeparationSafeMode|УстановитьВремяЗасыпанияПассивногоСеанса|SetPassiveSessionHibernateTime|ПолучитьВремяЗасыпанияПассивногоСеанса|GetPassiveSessionHibernateTime|УстановитьВремяЗавершенияСпящегоСеанса|SetHibernateSessionTerminateTime|ПолучитьВремяЗавершенияСпящегоСеанса|GetHibernateSessionTerminateTime|ПолучитьТекущийСеансИнформационнойБазы|GetCurrentInfoBaseSession|ПолучитьИдентификаторКонфигурации|GetConfigurationID|УстановитьНастройкиКлиентаЛицензирования|SetLicensingClientParameters|ПолучитьИмяКлиентаЛицензирования|GetLicensingClientName|ПолучитьДополнительныйПараметрКлиентаЛицензирования|GetLicensingClientAdditionalParameter|ПолучитьОтключениеБезопасногоРежима|GetSafeModeDisabled|УстановитьОтключениеБезопасногоРежима|SetSafeModeDisabled)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - Процедуры и функции работы с данными информационной базы","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(НайтиПомеченныеНаУдаление|FindMarkedForDeletion|НайтиПоСсылкам|FindByRef|УдалитьОбъекты|DeleteObjects|УстановитьОбновлениеПредопределенныхДанныхИнформационнойБазы|SetInfoBasePredefinedDataUpdate|ПолучитьОбновлениеПредопределенныхДанныхИнформационнойБазы|GetInfoBasePredefinedData)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - Процедуры и функции работы с XML","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(XMLСтрока|XMLString|XMLЗначение|XMLValue|XMLТип|XMLType|XMLТипЗнч|XMLTypeOf|ИзXMLТипа|FromXMLType|ВозможностьЧтенияXML|CanReadXML|ПолучитьXMLТип|GetXMLType|ПрочитатьXML|ReadXML|ЗаписатьXML|WriteXML|НайтиНедопустимыеСимволыXML|FindDisallowedXMLCharacters|ИмпортМоделиXDTO|ImportXDTOModel|СоздатьФабрикуXDTO|CreateXDTOFactory)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - Процедуры и функции работы с JSON","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(ЗаписатьJSON|WriteJSON|ПрочитатьJSON|ReadJSON|ПрочитатьДатуJSON|ReadJSONDate|ЗаписатьДатуJSON|WriteJSONDate)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - Процедуры и функции работы с журналом регистрации","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(ЗаписьЖурналаРегистрации|WriteLogEvent|ПолучитьИспользованиеЖурналаРегистрации|GetEventLogUsing|УстановитьИспользованиеЖурналаРегистрации|SetEventLogUsing|ПредставлениеСобытияЖурналаРегистрации|EventLogEventPresentation|ВыгрузитьЖурналРегистрации|UnloadEventLog|ПолучитьЗначенияОтбораЖурналаРегистрации|GetEventLogFilterValues|УстановитьИспользованиеСобытияЖурналаРегистрации|SetEventLogEventUse|ПолучитьИспользованиеСобытияЖурналаРегистрации|GetEventLogEventUse|СкопироватьЖурналРегистрации|CopyEventLog|ОчиститьЖурналРегистрации|ClearEventLog)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - Процедуры и функции работы с универсальными объектами","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(ЗначениеВДанныеФормы|ValueToFormData|ДанныеФормыВЗначение|FormDataToValue|КопироватьДанныеФормы|CopyFormData|УстановитьСоответствиеОбъектаИФормы|SetObjectAndFormConformity|ПолучитьСоответствиеОбъектаИФормы|GetObjectAndFormConformity)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - Процедуры и функции работы с функциональными опциями","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(ПолучитьФункциональнуюОпцию|GetFunctionalOption|ПолучитьФункциональнуюОпциюИнтерфейса|GetInterfaceFunctionalOption|УстановитьПараметрыФункциональныхОпцийИнтерфейса|SetInterfaceFunctionalOptionParameters|ПолучитьПараметрыФункциональныхОпцийИнтерфейса|GetInterfaceFunctionalOptionParameters|ОбновитьИнтерфейс|RefreshInterface)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - Процедуры и функции работы с криптографией","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(УстановитьРасширениеРаботыСКриптографией|InstallCryptoExtension|НачатьУстановкуРасширенияРаботыСКриптографией|BeginInstallCryptoExtension|ПодключитьРасширениеРаботыСКриптографией|AttachCryptoExtension|НачатьПодключениеРасширенияРаботыСКриптографией|BeginAttachingCryptoExtension)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - Процедуры и функции работы со стандартным интерфейсом OData","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(УстановитьСоставСтандартногоИнтерфейсаOData|SetStandardODataInterfaceContent|ПолучитьСоставСтандартногоИнтерфейсаOData|GetStandardODataInterfaceContent)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - Процедуры и функции работы с двоичными данными","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(СоединитьБуферыДвоичныхДанных|ConcatBinaryDataBuffers)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - Прочие процедуры и функции","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(Мин|Min|Макс|Max|ОписаниеОшибки|ErrorDescription|Вычислить|Eval|ИнформацияОбОшибке|ErrorInfo|Base64Значение|Base64Value|Base64Строка|Base64String|ЗаполнитьЗначенияСвойств|FillPropertyValues|ЗначениеЗаполнено|ValueIsFilled|ПолучитьПредставленияНавигационныхСсылок|GetURLsPresentations|НайтиОкноПоНавигационнойСсылке|FindWindowByURL|ПолучитьОкна|GetWindows|ПерейтиПоНавигационнойСсылке|GotoURL|ПолучитьНавигационнуюСсылку|GetURL|ПолучитьДопустимыеКодыЛокализации|GetAvailableLocaleCodes|ПолучитьНавигационнуюСсылкуИнформационнойБазы|GetInfoBaseURL|ПредставлениеКодаЛокализации|LocaleCodePresentation|ПолучитьДопустимыеЧасовыеПояса|GetAvailableTimeZones|ПредставлениеЧасовогоПояса|TimeZonePresentation|ТекущаяУниверсальнаяДата|CurrentUniversalDate|ТекущаяУниверсальнаяДатаВМиллисекундах|CurrentUniversalDateInMilliseconds|МестноеВремя|ToLocalTime|УниверсальноеВремя|ToUniversalTime|ЧасовойПояс|TimeZone|СмещениеЛетнегоВремени|DaylightTimeOffset|СмещениеСтандартногоВремени|StandardTimeOffset|КодироватьСтроку|EncodeString|РаскодироватьСтроку|DecodeString|Найти|Find|ПродолжитьВызов|ProceedWithCall)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - События приложения и сеанса","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(ПередНачаломРаботыСистемы|BeforeStart|ПриНачалеРаботыСистемы|OnStart|ПередЗавершениемРаботыСистемы|BeforeExit|ПриЗавершенииРаботыСистемы|OnExit|ОбработкаВнешнегоСобытия|ExternEventProcessing|УстановкаПараметровСеанса|SessionParametersSetting|ПриИзмененииПараметровЭкрана|OnChangeDisplaySettings)\\\\s*(?=\\\\())","name":"support.function.bsl"},{"comment":"Глобальный контекст - Свойства (классы)","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(WSСсылки|WSReferences|БиблиотекаКартинок|PictureLib|БиблиотекаМакетовОформленияКомпоновкиДанных|DataCompositionAppearanceTemplateLib|БиблиотекаСтилей|StyleLib|БизнесПроцессы|BusinessProcesses|ВнешниеИсточникиДанных|ExternalDataSources|ВнешниеОбработки|ExternalDataProcessors|ВнешниеОтчеты|ExternalReports|Документы|Documents|ДоставляемыеУведомления|DeliverableNotifications|ЖурналыДокументов|DocumentJournals|Задачи|Tasks|ИнформацияОбИнтернетСоединении|InternetConnectionInformation|ИспользованиеРабочейДаты|WorkingDateUse|ИсторияРаботыПользователя|UserWorkHistory|Константы|Constants|КритерииОтбора|FilterCriteria|Метаданные|Metadata|Обработки|DataProcessors|ОтправкаДоставляемыхУведомлений|DeliverableNotificationSend|Отчеты|Reports|ПараметрыСеанса|SessionParameters|Перечисления|Enums|ПланыВидовРасчета|ChartsOfCalculationTypes|ПланыВидовХарактеристик|ChartsOfCharacteristicTypes|ПланыОбмена|ExchangePlans|ПланыСчетов|ChartsOfAccounts|ПолнотекстовыйПоиск|FullTextSearch|ПользователиИнформационнойБазы|InfoBaseUsers|Последовательности|Sequences|РасширенияКонфигурации|ConfigurationExtensions|РегистрыБухгалтерии|AccountingRegisters|РегистрыНакопления|AccumulationRegisters|РегистрыРасчета|CalculationRegisters|РегистрыСведений|InformationRegisters|РегламентныеЗадания|ScheduledJobs|СериализаторXDTO|XDTOSerializer|Справочники|Catalogs|СредстваГеопозиционирования|LocationTools|СредстваКриптографии|CryptoToolsManager|СредстваМультимедиа|MultimediaTools|СредстваОтображенияРекламы|AdvertisingPresentationTools|СредстваПочты|MailTools|СредстваТелефонии|TelephonyTools|ФабрикаXDTO|XDTOFactory|ФайловыеПотоки|FileStreams|ФоновыеЗадания|BackgroundJobs|ХранилищаНастроек|SettingsStorages|ВстроенныеПокупки|InAppPurchases|ОтображениеРекламы|AdRepresentation|ПанельЗадачОС|OSTaskbar|ПроверкаВстроенныхПокупок|InAppPurchasesValidation)(?=[^\\\\wа-яё]|$))","name":"support.class.bsl"},{"comment":"Глобальный контекст - Свойства (переменные)","match":"(?i:(?<=[^\\\\wа-яё\\\\.]|^)(ГлавныйИнтерфейс|MainInterface|ГлавныйСтиль|MainStyle|ПараметрЗапуска|LaunchParameter|РабочаяДата|WorkingDate|ХранилищеВариантовОтчетов|ReportsVariantsStorage|ХранилищеНастроекДанныхФорм|FormDataSettingsStorage|ХранилищеОбщихНастроек|CommonSettingsStorage|ХранилищеПользовательскихНастроекДинамическихСписков|DynamicListsUserSettingsStorage|ХранилищеПользовательскихНастроекОтчетов|ReportsUserSettingsStorage|ХранилищеСистемныхНастроек|SystemSettingsStorage)(?=[^\\\\wа-яё]|$))","name":"support.variable.bsl"}]},"query":{"begin":"(?i)(?<=[^\\\\wа-яё\\\\.]|^)(Выбрать|Select(\\\\s+Разрешенные|\\\\s+Allowed)?(\\\\s+Различные|\\\\s+Distinct)?(\\\\s+Первые|\\\\s+Top)?)(?=[^\\\\wа-яё\\\\.]|$)","beginCaptures":{"1":{"name":"keyword.control.sdbl"}},"end":"(?=\\\\\\"[^\\\\\\"])","patterns":[{"begin":"^\\\\s*//","end":"$","name":"comment.line.double-slash.bsl"},{"match":"(//((\\\\\\"\\\\\\")|[^\\\\\\"])*)","name":"comment.line.double-slash.sdbl"},{"match":"\\\\\\"\\\\\\"[^\\"]*\\\\\\"\\\\\\"","name":"string.quoted.double.sdbl"},{"include":"source.sdbl"}]}},"scopeName":"source.bsl","embeddedLangs":["sdbl"],"aliases":["1c"]}`)),a=[...e,t];export{a as default}; ================================================ FILE: jesse/static/_nuxt/BuapDI9Y.js ================================================ /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},s=["abstract","activate","and","any","array","as","asc","assert","autonomous","begin","bigdecimal","blob","boolean","break","bulk","by","case","cast","catch","char","class","collect","commit","const","continue","convertcurrency","decimal","default","delete","desc","do","double","else","end","enum","exception","exit","export","extends","false","final","finally","float","for","from","future","get","global","goto","group","having","hint","if","implements","import","in","inner","insert","instanceof","int","interface","into","join","last_90_days","last_month","last_n_days","last_week","like","limit","list","long","loop","map","merge","native","new","next_90_days","next_month","next_n_days","next_week","not","null","nulls","number","object","of","on","or","outer","override","package","parallel","pragma","private","protected","public","retrieve","return","returning","rollback","savepoint","search","select","set","short","sort","stat","static","strictfp","super","switch","synchronized","system","testmethod","then","this","this_month","this_week","throw","throws","today","tolabel","tomorrow","transaction","transient","trigger","true","try","type","undelete","update","upsert","using","virtual","void","volatile","webservice","when","where","while","yesterday"],o=e=>e.charAt(0).toUpperCase()+e.substr(1),t=[];s.forEach(e=>{t.push(e),t.push(e.toUpperCase()),t.push(o(e))});var i={defaultToken:"",tokenPostfix:".apex",keywords:t,operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@apexdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],apexdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}};export{n as conf,i as language}; ================================================ FILE: jesse/static/_nuxt/BuljS_lV.js ================================================ import{Q as _,d as ee,C as r,g as o,j as u,H as n,E as h,i as j,ay as z,F as I,O as U,R as k,aj as $,ar as te,ak as ae,t as L,ac as G,am as oe,an as F,c as y,az as ne,V as M,aA as D,aB as q,aq as E,e as O,G as v,q as se}from"./CU_MfyYc.js";import{_ as H}from"./DP9I38t9.js";const le={wrapper:"relative overflow-x-auto",base:"min-w-full table-fixed",divide:"divide-y divide-gray-300 dark:divide-gray-700",thead:"relative",tbody:"divide-y divide-gray-200 dark:divide-gray-800",tr:{base:"",selected:"bg-gray-50 dark:bg-gray-800/50",active:"hover:bg-gray-50 dark:hover:bg-gray-800/50 cursor-pointer"},th:{base:"text-left rtl:text-right",padding:"px-4 py-3.5",color:"text-gray-900 dark:text-white",font:"font-semibold",size:"text-sm"},td:{base:"whitespace-nowrap",padding:"px-4 py-4",color:"text-gray-500 dark:text-gray-400",font:"",size:"text-sm"},checkbox:{padding:"ps-4"},loadingState:{wrapper:"flex flex-col items-center justify-center flex-1 px-6 py-14 sm:px-14",label:"text-sm text-center text-gray-900 dark:text-white",icon:"w-6 h-6 mx-auto text-gray-400 dark:text-gray-500 mb-4 animate-spin"},emptyState:{wrapper:"flex flex-col items-center justify-center flex-1 px-6 py-14 sm:px-14",label:"text-sm text-center text-gray-900 dark:text-white",icon:"w-6 h-6 mx-auto text-gray-400 dark:text-gray-500 mb-4"},progress:{wrapper:"absolute inset-x-0 -bottom-[0.5px] p-0"},default:{sortAscIcon:"i-heroicons-bars-arrow-up-20-solid",sortDescIcon:"i-heroicons-bars-arrow-down-20-solid",sortButton:{icon:"i-heroicons-arrows-up-down-20-solid",trailing:!0,square:!0,color:"gray",variant:"ghost",class:"-m-1.5"},progress:{color:"primary",animation:"carousel"},loadingState:{icon:"i-heroicons-arrow-path-20-solid",label:"Loading..."},emptyState:{icon:"i-heroicons-circle-stack-20-solid",label:"No items."}}};function re(e){return e?e[0].toUpperCase()+e.slice(1):""}const g=ae(E.ui.strategy,E.ui.table,le);function ie(e,l){return e===l}function P(e,l,f){return e===l?0:f==="asc"?el?-1:1}const ue=ee({components:{UIcon:G,UButton:L,UProgress:H,UCheckbox:z},inheritAttrs:!1,props:{modelValue:{type:Array,default:null},by:{type:[String,Function],default:()=>ie},rows:{type:Array,default:()=>[]},columns:{type:Array,default:null},columnAttribute:{type:String,default:"label"},sort:{type:Object,default:()=>({})},sortMode:{type:String,default:"auto"},sortButton:{type:Object,default:()=>g.default.sortButton},sortAscIcon:{type:String,default:()=>g.default.sortAscIcon},sortDescIcon:{type:String,default:()=>g.default.sortDescIcon},loading:{type:Boolean,default:!1},loadingState:{type:Object,default:()=>g.default.loadingState},emptyState:{type:Object,default:()=>g.default.emptyState},progress:{type:Object,default:()=>g.default.progress},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:()=>({})}},emits:["update:modelValue","update:sort"],setup(e,{emit:l,attrs:f}){const{ui:S,attrs:R}=oe("table",F(e,"ui"),g,F(e,"class")),w=y(()=>e.columns??Object.keys(e.rows[0]??{}).map(t=>({key:t,label:re(t),sortable:!1,class:void 0,sort:P}))),s=ne(e,"sort",l,{passive:!0,defaultValue:M({},e.sort,{column:null,direction:"asc"})}),V={column:s.value.column,direction:null},C=y(()=>{var p;if(!((p=s.value)!=null&&p.column)||e.sortMode==="manual")return e.rows;const{column:t,direction:i}=s.value;return e.rows.slice().sort((W,X)=>{var N;const Y=D(W,t),Z=D(X,t);return(((N=w.value.find(x=>x.key===t))==null?void 0:N.sort)??P)(Y,Z,i)})}),d=y({get(){return e.modelValue},set(t){l("update:modelValue",t)}}),a=y(()=>d.value&&d.value.length>0&&d.value.lengthe.emptyState===null?null:{...S.value.default.emptyState,...e.emptyState}),c=y(()=>e.loadingState===null?null:{...S.value.default.loadingState,...e.loadingState});function B(t,i){if(typeof e.by=="string"){const p=e.by;return(t==null?void 0:t[p])===(i==null?void 0:i[p])}return e.by(t,i)}function b(t){return e.modelValue?d.value.some(i=>B(q(i),q(t))):!1}function A(t){if(s.value.column===t.key){const i=!t.direction||t.direction==="asc"?"desc":"asc";s.value.direction===i?s.value=M({},V,{column:null,direction:"asc"}):s.value={column:s.value.column,direction:s.value.direction==="asc"?"desc":"asc"}}else s.value={column:t.key,direction:t.direction||"asc"}}function Q(t){f.onSelect&&f.onSelect(t)}function T(){e.rows.forEach(t=>{b(t)||d.value.push(t)})}function J(t){t.target.checked?T():d.value=[]}function K(t,i,p=""){return D(t,i,p)}return{ui:S,attrs:R,sort:s,columns:w,rows:C,selected:d,indeterminate:a,emptyState:m,loadingState:c,isSelected:b,onSort:A,onSelect:Q,onChange:J,getRowData:K}}}),de={key:1},ce={key:0},pe={key:0},ge=["colspan"],me={key:1},ye=["colspan"],fe=["onClick"];function be(e,l,f,S,R,w){const s=z,V=L,C=H,d=G;return o(),r("div",$({class:e.ui.wrapper},e.attrs),[u("table",{class:n([e.ui.base,e.ui.divide])},[u("thead",{class:n(e.ui.thead)},[u("tr",{class:n(e.ui.tr.base)},[e.modelValue?(o(),r("th",{key:0,scope:"col",class:n(e.ui.checkbox.padding)},[j(s,{"model-value":e.indeterminate||e.selected.length===e.rows.length,indeterminate:e.indeterminate,"aria-label":"Select all",onChange:e.onChange},null,8,["model-value","indeterminate","onChange"])],2)):h("",!0),(o(!0),r(I,null,U(e.columns,(a,m)=>(o(),r("th",{key:m,scope:"col",class:n([e.ui.th.base,e.ui.th.padding,e.ui.th.color,e.ui.th.font,e.ui.th.size,a.class])},[k(e.$slots,`${a.key}-header`,{column:a,sort:e.sort,onSort:e.onSort},()=>[a.sortable?(o(),O(V,$({key:0,ref_for:!0},{...e.ui.default.sortButton||{},...e.sortButton},{icon:!e.sort.column||e.sort.column!==a.key?e.sortButton.icon||e.ui.default.sortButton.icon:e.sort.direction==="asc"?e.sortAscIcon:e.sortDescIcon,label:a[e.columnAttribute],onClick:c=>e.onSort(a)}),null,16,["icon","label","onClick"])):(o(),r("span",de,v(a[e.columnAttribute]),1))])],2))),128))],2),e.loading&&e.progress?(o(),r("tr",ce,[u("td",{colspan:0,class:n(e.ui.progress.wrapper)},[j(C,$({...e.ui.default.progress||{},...e.progress},{size:"2xs"}),null,16)],2)])):h("",!0)],2),u("tbody",{class:n(e.ui.tbody)},[e.loadingState&&e.loading&&!e.rows.length?(o(),r("tr",pe,[u("td",{colspan:e.columns.length+(e.modelValue?1:0)},[k(e.$slots,"loading-state",{},()=>[u("div",{class:n(e.ui.loadingState.wrapper)},[e.loadingState.icon?(o(),O(d,{key:0,name:e.loadingState.icon,class:n(e.ui.loadingState.icon),"aria-hidden":"true"},null,8,["name","class"])):h("",!0),u("p",{class:n(e.ui.loadingState.label)},v(e.loadingState.label),3)],2)])],8,ge)])):e.emptyState&&!e.rows.length?(o(),r("tr",me,[u("td",{colspan:e.columns.length+(e.modelValue?1:0)},[k(e.$slots,"empty-state",{},()=>[u("div",{class:n(e.ui.emptyState.wrapper)},[e.emptyState.icon?(o(),O(d,{key:0,name:e.emptyState.icon,class:n(e.ui.emptyState.icon),"aria-hidden":"true"},null,8,["name","class"])):h("",!0),u("p",{class:n(e.ui.emptyState.label)},v(e.emptyState.label),3)],2)])],8,ye)])):(o(!0),r(I,{key:2},U(e.rows,(a,m)=>(o(),r("tr",{key:m,class:n([e.ui.tr.base,e.isSelected(a)&&e.ui.tr.selected,e.$attrs.onSelect&&e.ui.tr.active,a==null?void 0:a.class]),onClick:()=>e.onSelect(a)},[e.modelValue?(o(),r("td",{key:0,class:n(e.ui.checkbox.padding)},[j(s,{modelValue:e.selected,"onUpdate:modelValue":l[0]||(l[0]=c=>e.selected=c),value:a,"aria-label":"Select row",onClick:l[1]||(l[1]=te(()=>{},["stop"]))},null,8,["modelValue","value"])],2)):h("",!0),(o(!0),r(I,null,U(e.columns,(c,B)=>{var b;return o(),r("td",{key:B,class:n([e.ui.td.base,e.ui.td.padding,e.ui.td.color,e.ui.td.font,e.ui.td.size,(b=a[c.key])==null?void 0:b.class])},[k(e.$slots,`${c.key}-data`,{column:c,row:a,index:m,getRowData:A=>e.getRowData(a,c.key,A)},()=>[se(v(e.getRowData(a,c.key)),1)])],2)}),128))],10,fe))),128))],2)],2)],16)}const ve=_(ue,[["render",be]]);export{ve as _}; ================================================ FILE: jesse/static/_nuxt/BupSXVCO.js ================================================ /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var o=e=>`\\b${e}\\b`,n=e=>`(?!${e})`,r="[_a-zA-Z]",i="[_a-zA-Z0-9]",t=o(`${r}${i}*`),a=o("[_a-zA-Z-0-9]+"),s=["import","model","scalar","namespace","op","interface","union","using","is","extends","enum","alias","return","void","if","else","projection","dec","extern","fn"],c=["true","false","null","unknown","never"],g="[ \\t\\r\\n]",l="[0-9]+",k={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"/**",close:" */",notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],indentationRules:{decreaseIndentPattern:new RegExp("^((?!.*?/\\*).*\\*/)?\\s*[\\}\\]].*$"),increaseIndentPattern:new RegExp("^((?!//).)*(\\{([^}\"'`/]*|(\\t|[ ])*//.*)|\\([^)\"'`/]*|\\[[^\\]\"'`/]*)$"),unIndentedLinePattern:new RegExp("^(\\t|[ ])*[ ]\\*[^/]*\\*/\\s*$|^(\\t|[ ])*[ ]\\*/\\s*$|^(\\t|[ ])*[ ]\\*([ ]([^\\*]|\\*(?!/))*)?$")}},x={defaultToken:"",tokenPostfix:".tsp",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],symbols:/[=:;<>]+/,keywords:s,namedLiterals:c,escapes:'\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|"|\\${)',tokenizer:{root:[{include:"@expression"},{include:"@whitespace"}],stringVerbatim:[{regex:'(|"|"")[^"]',action:{token:"string"}},{regex:`"""${n('"')}`,action:{token:"string",next:"@pop"}}],stringLiteral:[{regex:"\\${",action:{token:"delimiter.bracket",next:"@bracketCounting"}},{regex:'[^\\\\"$]+',action:{token:"string"}},{regex:"@escapes",action:{token:"string.escape"}},{regex:"\\\\.",action:{token:"string.escape.invalid"}},{regex:'"',action:{token:"string",next:"@pop"}}],bracketCounting:[{regex:"{",action:{token:"delimiter.bracket",next:"@bracketCounting"}},{regex:"}",action:{token:"delimiter.bracket",next:"@pop"}},{include:"@expression"}],comment:[{regex:"[^\\*]+",action:{token:"comment"}},{regex:"\\*\\/",action:{token:"comment",next:"@pop"}},{regex:"[\\/*]",action:{token:"comment"}}],whitespace:[{regex:g},{regex:"\\/\\*",action:{token:"comment",next:"@comment"}},{regex:"\\/\\/.*$",action:{token:"comment"}}],expression:[{regex:'"""',action:{token:"string",next:"@stringVerbatim"}},{regex:`"${n('""')}`,action:{token:"string",next:"@stringLiteral"}},{regex:l,action:{token:"number"}},{regex:t,action:{cases:{"@keywords":{token:"keyword"},"@namedLiterals":{token:"keyword"},"@default":{token:"identifier"}}}},{regex:`@${t}`,action:{token:"tag"}},{regex:`#${a}`,action:{token:"directive"}}]}};export{k as conf,x as language}; ================================================ FILE: jesse/static/_nuxt/Bvotw-X0.js ================================================ const e=Object.freeze(JSON.parse('{"displayName":"Makefile","name":"make","patterns":[{"include":"#comment"},{"include":"#variables"},{"include":"#variable-assignment"},{"include":"#directives"},{"include":"#recipe"},{"include":"#target"}],"repository":{"another-variable-braces":{"patterns":[{"begin":"(?<={)(?!})","end":"(?=}|((?]))"},{"captures":{"1":{"name":"keyword.other.julia"},"2":{"name":"keyword.operator.dots.julia"},"3":{"name":"entity.name.function.julia"},"4":{"name":"support.type.julia"}},"comment":"similar regex to previous, but with keyword not 1-line syntax","match":"\\\\b(function|macro)(?:\\\\s+(?:(?:[[:alpha:]_\\\\p{Lu}\\\\p{Ll}\\\\p{Lt}\\\\p{Lm}\\\\p{Lo}\\\\p{Nl}\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\P{So}←-⇿])(?:[[:word:]_!\\\\p{Lu}\\\\p{Ll}\\\\p{Lt}\\\\p{Lm}\\\\p{Lo}\\\\p{Nl}\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\P{Mn}\\u0001-¡]|[^\\\\P{Mc}\\u0001-¡]|[^\\\\P{Nd}\\u0001-¡]|[^\\\\P{Pc}\\u0001-¡]|[^\\\\P{Sk}\\u0001-¡]|[^\\\\P{Me}\\u0001-¡]|[^\\\\P{No}\\u0001-¡]|[′-‷⁗]|[^\\\\P{So}←-⇿])*(\\\\.))?((?:[[:alpha:]_\\\\p{Lu}\\\\p{Ll}\\\\p{Lt}\\\\p{Lm}\\\\p{Lo}\\\\p{Nl}\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\P{So}←-⇿])(?:[[:word:]_!\\\\p{Lu}\\\\p{Ll}\\\\p{Lt}\\\\p{Lm}\\\\p{Lo}\\\\p{Nl}\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\P{Mn}\\u0001-¡]|[^\\\\P{Mc}\\u0001-¡]|[^\\\\P{Nd}\\u0001-¡]|[^\\\\P{Pc}\\u0001-¡]|[^\\\\P{Sk}\\u0001-¡]|[^\\\\P{Me}\\u0001-¡]|[^\\\\P{No}\\u0001-¡]|[′-‷⁗]|[^\\\\P{So}←-⇿])*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?|\\\\s*)(?=\\\\()"}]},"keyword":{"patterns":[{"match":"\\\\b(?|->|-->|<--|←|→|↔|↚|↛|↞|↠|↢|↣|↦|↤|↮|⇎|⇍|⇏|⇐|⇒|⇔|⇴|⇶|⇷|⇸|⇹|⇺|⇻|⇼|⇽|⇾|⇿|⟵|⟶|⟷|⟹|⟺|⟻|⟼|⟽|⟾|⟿|⤀|⤁|⤂|⤃|⤄|⤅|⤆|⤇|⤌|⤍|⤎|⤏|⤐|⤑|⤔|⤕|⤖|⤗|⤘|⤝|⤞|⤟|⤠|⥄|⥅|⥆|⥇|⥈|⥊|⥋|⥎|⥐|⥒|⥓|⥖|⥗|⥚|⥛|⥞|⥟|⥢|⥤|⥦|⥧|⥨|⥩|⥪|⥫|⥬|⥭|⥰|⧴|⬱|⬰|⬲|⬳|⬴|⬵|⬶|⬷|⬸|⬹|⬺|⬻|⬼|⬽|⬾|⬿|⭀|⭁|⭂|⭃|⥷|⭄|⥺|⭇|⭈|⭉|⭊|⭋|⭌|←|→|⇜|⇝|↜|↝|↩|↪|↫|↬|↼|↽|⇀|⇁|⇄|⇆|⇇|⇉|⇋|⇌|⇚|⇛|⇠|⇢|↷|↶|↺|↻|=>)","name":"keyword.operator.arrow.julia"},{"match":"(?::=|\\\\+=|-=|\\\\*=|//=|/=|\\\\.//=|\\\\./=|\\\\.\\\\*=|\\\\\\\\=|\\\\.\\\\\\\\=|\\\\^=|\\\\.\\\\^=|%=|\\\\.%=|÷=|\\\\.÷=|\\\\|=|&=|\\\\.&=|⊻=|\\\\.⊻=|\\\\$=|<<=|>>=|>>>=|=(?!=))","name":"keyword.operator.update.julia"},{"match":"(?:<<|>>>|>>|\\\\.>>>|\\\\.>>|\\\\.<<)","name":"keyword.operator.shift.julia"},{"captures":{"1":{"name":"keyword.operator.relation.types.julia"},"2":{"name":"support.type.julia"},"3":{"name":"keyword.operator.transpose.julia"}},"match":"(?:\\\\s*(::|>:|<:)\\\\s*((?:(?:Union)?\\\\([^)]*\\\\)|[[:alpha:]_$∇][[:word:]⁺-ₜ!′\\\\.]*(?:(?:{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})|(?:\\".+?(?)>=|>|<|≥|≤|===|==|≡|!=|≠|!==|≢|∈|∉|∋|∌|⊆|⊈|⊂|⊄|⊊|∝|∊|∍|∥|∦|∷|∺|∻|∽|∾|≁|≃|≂|≄|≅|≆|≇|≈|≉|≊|≋|≌|≍|≎|≐|≑|≒|≓|≖|≗|≘|≙|≚|≛|≜|≝|≞|≟|≣|≦|≧|≨|≩|≪|≫|≬|≭|≮|≯|≰|≱|≲|≳|≴|≵|≶|≷|≸|≹|≺|≻|≼|≽|≾|≿|⊀|⊁|⊃|⊅|⊇|⊉|⊋|⊏|⊐|⊑|⊒|⊜|⊩|⊬|⊮|⊰|⊱|⊲|⊳|⊴|⊵|⊶|⊷|⋍|⋐|⋑|⋕|⋖|⋗|⋘|⋙|⋚|⋛|⋜|⋝|⋞|⋟|⋠|⋡|⋢|⋣|⋤|⋥|⋦|⋧|⋨|⋩|⋪|⋫|⋬|⋭|⋲|⋳|⋴|⋵|⋶|⋷|⋸|⋹|⋺|⋻|⋼|⋽|⋾|⋿|⟈|⟉|⟒|⦷|⧀|⧁|⧡|⧣|⧤|⧥|⩦|⩧|⩪|⩫|⩬|⩭|⩮|⩯|⩰|⩱|⩲|⩳|⩵|⩶|⩷|⩸|⩹|⩺|⩻|⩼|⩽|⩾|⩿|⪀|⪁|⪂|⪃|⪄|⪅|⪆|⪇|⪈|⪉|⪊|⪋|⪌|⪍|⪎|⪏|⪐|⪑|⪒|⪓|⪔|⪕|⪖|⪗|⪘|⪙|⪚|⪛|⪜|⪝|⪞|⪟|⪠|⪡|⪢|⪣|⪤|⪥|⪦|⪧|⪨|⪩|⪪|⪫|⪬|⪭|⪮|⪯|⪰|⪱|⪲|⪳|⪴|⪵|⪶|⪷|⪸|⪹|⪺|⪻|⪼|⪽|⪾|⪿|⫀|⫁|⫂|⫃|⫄|⫅|⫆|⫇|⫈|⫉|⫊|⫋|⫌|⫍|⫎|⫏|⫐|⫑|⫒|⫓|⫔|⫕|⫖|⫗|⫘|⫙|⫷|⫸|⫹|⫺|⊢|⊣|⟂|⫪|⫫|<:|>:))","name":"keyword.operator.relation.julia"},{"match":"(?<=\\\\s)(?:\\\\?)(?=\\\\s)","name":"keyword.operator.ternary.julia"},{"match":"(?<=\\\\s)(?:\\\\:)(?=\\\\s)","name":"keyword.operator.ternary.julia"},{"match":"(?:\\\\|\\\\||&&|(?)","name":"keyword.operator.applies.julia"},{"match":"(?:\\\\||\\\\.\\\\||\\\\&|\\\\.\\\\&|~|¬|\\\\.~|⊻|\\\\.⊻)","name":"keyword.operator.bitwise.julia"},{"match":"\\\\.?(?:\\\\+\\\\+|\\\\-\\\\-|\\\\+|\\\\-|−|¦|\\\\||⊕|⊖|⊞|⊟|∪|∨|⊔|±|∓|∔|∸|≏|⊎|⊻|⊽|⋎|⋓|⟇|⧺|⧻|⨈|⨢|⨣|⨤|⨥|⨦|⨧|⨨|⨩|⨪|⨫|⨬|⨭|⨮|⨹|⨺|⩁|⩂|⩅|⩊|⩌|⩏|⩐|⩒|⩔|⩖|⩗|⩛|⩝|⩡|⩢|⩣|\\\\*|//?|⌿|÷|%|&|·|·|⋅|∘|×|\\\\\\\\|∩|∧|⊗|⊘|⊙|⊚|⊛|⊠|⊡|⊓|∗|∙|∤|⅋|≀|⊼|⋄|⋆|⋇|⋉|⋊|⋋|⋌|⋏|⋒|⟑|⦸|⦼|⦾|⦿|⧶|⧷|⨇|⨰|⨱|⨲|⨳|⨴|⨵|⨶|⨷|⨸|⨻|⨼|⨽|⩀|⩃|⩄|⩋|⩍|⩎|⩑|⩓|⩕|⩘|⩚|⩜|⩞|⩟|⩠|⫛|⊍|▷|⨝|⟕|⟖|⟗|⨟|\\\\^|↑|↓|⇵|⟰|⟱|⤈|⤉|⤊|⤋|⤒|⤓|⥉|⥌|⥍|⥏|⥑|⥔|⥕|⥘|⥙|⥜|⥝|⥠|⥡|⥣|⥥|⥮|⥯|↑|↓|√|∛|∜|⋆|±|∓)","name":"keyword.operator.arithmetic.julia"},{"match":"(?:∘)","name":"keyword.operator.compose.julia"},{"match":"(?:::|(?<=\\\\s)isa(?=\\\\s))","name":"keyword.operator.isa.julia"},{"match":"(?:(?<=\\\\s)in(?=\\\\s))","name":"keyword.operator.relation.in.julia"},{"match":"(?:\\\\.(?=(?:@|_|\\\\p{L}))|\\\\.\\\\.+|…|⁝|⋮|⋱|⋰|⋯)","name":"keyword.operator.dots.julia"},{"match":"(?:\\\\$)(?=.+)","name":"keyword.operator.interpolation.julia"},{"captures":{"2":{"name":"keyword.operator.transposed-variable.julia"}},"match":"((?:[[:alpha:]_\\\\p{Lu}\\\\p{Ll}\\\\p{Lt}\\\\p{Lm}\\\\p{Lo}\\\\p{Nl}\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\P{So}←-⇿])(?:[[:word:]_!\\\\p{Lu}\\\\p{Ll}\\\\p{Lt}\\\\p{Lm}\\\\p{Lo}\\\\p{Nl}\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\P{Mn}\\u0001-¡]|[^\\\\P{Mc}\\u0001-¡]|[^\\\\P{Nd}\\u0001-¡]|[^\\\\P{Pc}\\u0001-¡]|[^\\\\P{Sk}\\u0001-¡]|[^\\\\P{Me}\\u0001-¡]|[^\\\\P{No}\\u0001-¡]|[′-‷⁗]|[^\\\\P{So}←-⇿])*)(('|(\\\\.'))*\\\\.?')"},{"captures":{"1":{"name":"bracket.end.julia"},"2":{"name":"keyword.operator.transposed-matrix.julia"}},"match":"(\\\\])((?:'|(?:\\\\.'))*\\\\.?')"},{"captures":{"1":{"name":"bracket.end.julia"},"2":{"name":"keyword.operator.transposed-parens.julia"}},"match":"(\\\\))((?:'|(?:\\\\.'))*\\\\.?')"}]},"parentheses":{"patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"meta.bracket.julia"}},"end":"(\\\\))((?:\\\\.)?'*)","endCaptures":{"1":{"name":"meta.bracket.julia"},"2":{"name":"keyword.operator.transpose.julia"}},"patterns":[{"include":"#self_no_for_block"}]}]},"punctuation":{"patterns":[{"match":",","name":"punctuation.separator.comma.julia"},{"match":";","name":"punctuation.separator.semicolon.julia"}]},"self_no_for_block":{"comment":"Same as $self, but does not contain #for_block. 'outer' is not valid in some contexts (e.g. generators, comprehensions, indexing), so use this when matching those in begin/end patterns. Keep this up-to-date with $self!","patterns":[{"include":"#operator"},{"include":"#array"},{"include":"#string"},{"include":"#parentheses"},{"include":"#bracket"},{"include":"#function_decl"},{"include":"#function_call"},{"include":"#keyword"},{"include":"#number"},{"include":"#comment"},{"include":"#type_decl"},{"include":"#symbol"},{"include":"#punctuation"}]},"string":{"patterns":[{"begin":"(?:(@doc)\\\\s((?:doc)?\\"\\"\\")|(doc\\"\\"\\"))","beginCaptures":{"1":{"name":"support.function.macro.julia"},"2":{"name":"punctuation.definition.string.begin.julia"}},"end":"(\\"\\"\\") ?(->)?","endCaptures":{"1":{"name":"punctuation.definition.string.end.julia"},"2":{"name":"keyword.operator.arrow.julia"}},"name":"string.docstring.julia","patterns":[{"include":"#string_escaped_char"},{"include":"#string_dollar_sign_interpolate"}]},{"begin":"(i?cxx)(\\"\\"\\")","beginCaptures":{"1":{"name":"support.function.macro.julia"},"2":{"name":"punctuation.definition.string.begin.julia"}},"contentName":"meta.embedded.inline.cpp","end":"\\"\\"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.julia"}},"name":"embed.cxx.julia","patterns":[{"include":"source.cpp#root_context"},{"include":"#string_dollar_sign_interpolate"}]},{"begin":"(py)(\\"\\"\\")","beginCaptures":{"1":{"name":"support.function.macro.julia"},"2":{"name":"punctuation.definition.string.begin.julia"}},"contentName":"meta.embedded.inline.python","end":"([\\\\s\\\\w]*)(\\"\\"\\")","endCaptures":{"2":{"name":"punctuation.definition.string.end.julia"}},"name":"embed.python.julia","patterns":[{"include":"source.python"},{"include":"#string_dollar_sign_interpolate"}]},{"begin":"(js)(\\"\\"\\")","beginCaptures":{"1":{"name":"support.function.macro.julia"},"2":{"name":"punctuation.definition.string.begin.julia"}},"contentName":"meta.embedded.inline.javascript","end":"\\"\\"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.julia"}},"name":"embed.js.julia","patterns":[{"include":"source.js"},{"include":"#string_dollar_sign_interpolate"}]},{"begin":"(R)(\\"\\"\\")","beginCaptures":{"1":{"name":"support.function.macro.julia"},"2":{"name":"punctuation.definition.string.begin.julia"}},"contentName":"meta.embedded.inline.r","end":"\\"\\"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.julia"}},"name":"embed.R.julia","patterns":[{"include":"source.r"},{"include":"#string_dollar_sign_interpolate"}]},{"begin":"(raw)(\\"\\"\\")","beginCaptures":{"1":{"name":"support.function.macro.julia"},"2":{"name":"punctuation.definition.string.begin.julia"}},"end":"\\"\\"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.julia"}},"name":"string.quoted.other.julia","patterns":[{"include":"#string_escaped_char"}]},{"begin":"(raw)(\\")","beginCaptures":{"1":{"name":"support.function.macro.julia"},"2":{"name":"punctuation.definition.string.begin.julia"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.julia"}},"name":"string.quoted.other.julia","patterns":[{"include":"#string_escaped_char"}]},{"begin":"(sql)(\\"\\"\\")","beginCaptures":{"1":{"name":"support.function.macro.julia"},"2":{"name":"punctuation.definition.string.begin.julia"}},"contentName":"meta.embedded.inline.sql","end":"\\"\\"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.julia"}},"name":"embed.sql.julia","patterns":[{"include":"source.sql"},{"include":"#string_dollar_sign_interpolate"}]},{"begin":"var\\"\\"\\"","end":"\\"\\"\\"","name":"constant.other.symbol.julia","patterns":[{"include":"#string_escaped_char"}]},{"begin":"var\\"","end":"\\"","name":"constant.other.symbol.julia","patterns":[{"include":"#string_escaped_char"}]},{"begin":"^\\\\s?(doc)?(\\"\\"\\")\\\\s?$","beginCaptures":{"1":{"name":"support.function.macro.julia"},"2":{"name":"punctuation.definition.string.begin.julia"}},"comment":"This only matches docstrings that start and end with triple quotes on\\ntheir own line in the void","end":"(\\"\\"\\")","endCaptures":{"1":{"name":"punctuation.definition.string.end.julia"}},"name":"string.docstring.julia","patterns":[{"include":"#string_escaped_char"},{"include":"#string_dollar_sign_interpolate"}]},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.julia"}},"end":"'(?!')","endCaptures":{"0":{"name":"punctuation.definition.string.end.julia"}},"name":"string.quoted.single.julia","patterns":[{"include":"#string_escaped_char"}]},{"begin":"\\"\\"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.multiline.begin.julia"}},"comment":"multi-line string with triple double quotes","end":"\\"\\"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.multiline.end.julia"}},"name":"string.quoted.triple.double.julia","patterns":[{"include":"#string_escaped_char"},{"include":"#string_dollar_sign_interpolate"}]},{"begin":"\\"(?!\\"\\")","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.julia"}},"comment":"String with single pair of double quotes. Regex matches isolated double quote","end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.julia"}},"name":"string.quoted.double.julia","patterns":[{"include":"#string_escaped_char"},{"include":"#string_dollar_sign_interpolate"}]},{"begin":"r\\"\\"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.regexp.begin.julia"}},"end":"(\\"\\"\\")([imsx]{0,4})?","endCaptures":{"1":{"name":"punctuation.definition.string.regexp.end.julia"},"2":{"comment":"I took this scope name from python regex grammar","name":"keyword.other.option-toggle.regexp.julia"}},"name":"string.regexp.julia","patterns":[{"include":"#string_escaped_char"}]},{"begin":"r\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.regexp.begin.julia"}},"end":"(\\")([imsx]{0,4})?","endCaptures":{"1":{"name":"punctuation.definition.string.regexp.end.julia"},"2":{"comment":"I took this scope name from python regex grammar","name":"keyword.other.option-toggle.regexp.julia"}},"name":"string.regexp.julia","patterns":[{"include":"#string_escaped_char"}]},{"begin":"(?!:_)(?:struct|mutable\\\\s+struct|abstract\\\\s+type|primitive\\\\s+type)\\\\s+((?:[[:alpha:]_\\\\p{Lu}\\\\p{Ll}\\\\p{Lt}\\\\p{Lm}\\\\p{Lo}\\\\p{Nl}\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\P{So}←-⇿])(?:[[:word:]_!\\\\p{Lu}\\\\p{Ll}\\\\p{Lt}\\\\p{Lm}\\\\p{Lo}\\\\p{Nl}\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\P{Mn}\\u0001-¡]|[^\\\\P{Mc}\\u0001-¡]|[^\\\\P{Nd}\\u0001-¡]|[^\\\\P{Pc}\\u0001-¡]|[^\\\\P{Sk}\\u0001-¡]|[^\\\\P{Me}\\u0001-¡]|[^\\\\P{No}\\u0001-¡]|[′-‷⁗]|[^\\\\P{So}←-⇿])*)(\\\\s*(<:)\\\\s*(?:[[:alpha:]_\\\\p{Lu}\\\\p{Ll}\\\\p{Lt}\\\\p{Lm}\\\\p{Lo}\\\\p{Nl}\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\P{So}←-⇿])(?:[[:word:]_!\\\\p{Lu}\\\\p{Ll}\\\\p{Lt}\\\\p{Lm}\\\\p{Lo}\\\\p{Nl}\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\P{Mn}\\u0001-¡]|[^\\\\P{Mc}\\u0001-¡]|[^\\\\P{Nd}\\u0001-¡]|[^\\\\P{Pc}\\u0001-¡]|[^\\\\P{Sk}\\u0001-¡]|[^\\\\P{Me}\\u0001-¡]|[^\\\\P{No}\\u0001-¡]|[′-‷⁗]|[^\\\\P{So}←-⇿])*(?:{.*})?)?","name":"meta.type.julia"}]}},"scopeName":"source.julia","embeddedLangs":["cpp","python","javascript","r","sql"],"aliases":["jl"]}`)),b=[...e,...n,...t,...a,...i,o];export{b as default}; ================================================ FILE: jesse/static/_nuxt/Bw305WKR.js ================================================ const e=Object.freeze(JSON.parse('{"colors":{"activityBar.background":"#E7E8E6","activityBar.foreground":"#2DAE58","activityBar.inactiveForeground":"#68696888","activityBarBadge.background":"#09A1ED","badge.background":"#09A1ED","badge.foreground":"#ffffff","button.background":"#2DAE58","debugExceptionWidget.background":"#FFAEAC33","debugExceptionWidget.border":"#FF5C57","debugToolBar.border":"#E9EAEB","diffEditor.insertedTextBackground":"#2DAE5824","diffEditor.removedTextBackground":"#FFAEAC44","dropdown.border":"#E9EAEB","editor.background":"#FAFBFC","editor.findMatchBackground":"#00E6E06A","editor.findMatchHighlightBackground":"#00E6E02A","editor.findRangeHighlightBackground":"#F5B90011","editor.focusedStackFrameHighlightBackground":"#2DAE5822","editor.foreground":"#565869","editor.hoverHighlightBackground":"#00E6E018","editor.rangeHighlightBackground":"#F5B90033","editor.selectionBackground":"#2DAE5822","editor.snippetTabstopHighlightBackground":"#ADB1C23A","editor.stackFrameHighlightBackground":"#F5B90033","editor.wordHighlightBackground":"#ADB1C23A","editorError.foreground":"#FF5C56","editorGroup.emptyBackground":"#F3F4F5","editorGutter.addedBackground":"#2DAE58","editorGutter.deletedBackground":"#FF5C57","editorGutter.modifiedBackground":"#00A39FAA","editorInlayHint.background":"#E9EAEB","editorInlayHint.foreground":"#565869","editorLineNumber.activeForeground":"#35CF68","editorLineNumber.foreground":"#9194A2aa","editorLink.activeForeground":"#35CF68","editorOverviewRuler.addedForeground":"#2DAE58","editorOverviewRuler.deletedForeground":"#FF5C57","editorOverviewRuler.errorForeground":"#FF5C56","editorOverviewRuler.findMatchForeground":"#13BBB7AA","editorOverviewRuler.modifiedForeground":"#00A39FAA","editorOverviewRuler.warningForeground":"#CF9C00","editorOverviewRuler.wordHighlightForeground":"#ADB1C288","editorOverviewRuler.wordHighlightStrongForeground":"#35CF68","editorWarning.foreground":"#CF9C00","editorWhitespace.foreground":"#ADB1C255","extensionButton.prominentBackground":"#2DAE58","extensionButton.prominentHoverBackground":"#238744","focusBorder":"#09A1ED","foreground":"#686968","gitDecoration.modifiedResourceForeground":"#00A39F","gitDecoration.untrackedResourceForeground":"#2DAE58","input.border":"#E9EAEB","list.activeSelectionBackground":"#09A1ED","list.activeSelectionForeground":"#ffffff","list.errorForeground":"#FF5C56","list.focusBackground":"#BCE7FC99","list.focusForeground":"#11658F","list.hoverBackground":"#E9EAEB","list.inactiveSelectionBackground":"#89B5CB33","list.warningForeground":"#B38700","menu.background":"#FAFBFC","menu.selectionBackground":"#E9EAEB","menu.selectionForeground":"#686968","menubar.selectionBackground":"#E9EAEB","menubar.selectionForeground":"#686968","merge.currentContentBackground":"#35CF6833","merge.currentHeaderBackground":"#35CF6866","merge.incomingContentBackground":"#14B1FF33","merge.incomingHeaderBackground":"#14B1FF77","peekView.border":"#09A1ED","peekViewEditor.background":"#14B1FF08","peekViewEditor.matchHighlightBackground":"#F5B90088","peekViewEditor.matchHighlightBorder":"#F5B900","peekViewEditorStickyScroll.background":"#EDF4FB","peekViewResult.matchHighlightBackground":"#F5B90088","peekViewResult.selectionBackground":"#09A1ED","peekViewResult.selectionForeground":"#FFFFFF","peekViewTitle.background":"#09A1ED11","selection.background":"#2DAE5844","settings.modifiedItemIndicator":"#13BBB7","sideBar.background":"#F3F4F5","sideBar.border":"#DEDFE0","sideBarSectionHeader.background":"#E9EAEB","sideBarSectionHeader.border":"#DEDFE0","statusBar.background":"#2DAE58","statusBar.debuggingBackground":"#13BBB7","statusBar.debuggingBorder":"#00A39F","statusBar.noFolderBackground":"#565869","statusBarItem.remoteBackground":"#238744","tab.activeBorderTop":"#2DAE58","terminal.ansiBlack":"#565869","terminal.ansiBlue":"#09A1ED","terminal.ansiBrightBlack":"#75798F","terminal.ansiBrightBlue":"#14B1FF","terminal.ansiBrightCyan":"#13BBB7","terminal.ansiBrightGreen":"#35CF68","terminal.ansiBrightMagenta":"#FF94D2","terminal.ansiBrightRed":"#FFAEAC","terminal.ansiBrightWhite":"#FFFFFF","terminal.ansiBrightYellow":"#F5B900","terminal.ansiCyan":"#13BBB7","terminal.ansiGreen":"#2DAE58","terminal.ansiMagenta":"#F767BB","terminal.ansiRed":"#FF5C57","terminal.ansiWhite":"#FAFBF9","terminal.ansiYellow":"#CF9C00","titleBar.activeBackground":"#F3F4F5"},"displayName":"Snazzy Light","name":"snazzy-light","tokenColors":[{"scope":"invalid.illegal","settings":{"foreground":"#FF5C56"}},{"scope":["meta.object-literal.key","meta.object-literal.key constant.character.escape","meta.object-literal string","meta.object-literal string constant.character.escape","support.type.property-name","support.type.property-name constant.character.escape"],"settings":{"foreground":"#11658F"}},{"scope":["keyword","storage","meta.class storage.type","keyword.operator.expression.import","keyword.operator.new","keyword.operator.expression.delete"],"settings":{"foreground":"#F767BB"}},{"scope":["support.type","meta.type.annotation entity.name.type","new.expr meta.type.parameters entity.name.type","storage.type.primitive","storage.type.built-in.primitive","meta.function.parameter storage.type"],"settings":{"foreground":"#2DAE58"}},{"scope":["storage.type.annotation"],"settings":{"foreground":"#C25193"}},{"scope":"keyword.other.unit","settings":{"foreground":"#FF5C57CC"}},{"scope":["constant.language","support.constant","variable.language"],"settings":{"foreground":"#2DAE58"}},{"scope":["variable","support.variable"],"settings":{"foreground":"#565869"}},{"scope":"variable.language.this","settings":{"foreground":"#13BBB7"}},{"scope":["entity.name.function","support.function"],"settings":{"foreground":"#09A1ED"}},{"scope":["entity.name.function.decorator"],"settings":{"foreground":"#11658F"}},{"scope":["meta.class entity.name.type","new.expr entity.name.type","entity.other.inherited-class","support.class"],"settings":{"foreground":"#13BBB7"}},{"scope":["keyword.preprocessor.pragma","keyword.control.directive.include","keyword.other.preprocessor"],"settings":{"foreground":"#11658F"}},{"scope":"entity.name.exception","settings":{"foreground":"#FF5C56"}},{"scope":"entity.name.section","settings":{}},{"scope":["constant.numeric"],"settings":{"foreground":"#FF5C57"}},{"scope":["constant","constant.character"],"settings":{"foreground":"#2DAE58"}},{"scope":"string","settings":{"foreground":"#CF9C00"}},{"scope":"string","settings":{"foreground":"#CF9C00"}},{"scope":"constant.character.escape","settings":{"foreground":"#F5B900"}},{"scope":["string.regexp","string.regexp constant.character.escape"],"settings":{"foreground":"#13BBB7"}},{"scope":["keyword.operator.quantifier.regexp","keyword.operator.negation.regexp","keyword.operator.or.regexp","string.regexp punctuation","string.regexp keyword","string.regexp keyword.control","string.regexp constant","variable.other.regexp"],"settings":{"foreground":"#00A39F"}},{"scope":["string.regexp keyword.other"],"settings":{"foreground":"#00A39F88"}},{"scope":"constant.other.symbol","settings":{"foreground":"#CF9C00"}},{"scope":["comment","punctuation.definition.comment"],"settings":{"foreground":"#ADB1C2"}},{"scope":"comment.block.preprocessor","settings":{"fontStyle":"","foreground":"#9194A2"}},{"scope":"comment.block.documentation entity.name.type","settings":{"foreground":"#2DAE58"}},{"scope":["comment.block.documentation storage","comment.block.documentation keyword.other","meta.class comment.block.documentation storage.type"],"settings":{"foreground":"#9194A2"}},{"scope":["comment.block.documentation variable"],"settings":{"foreground":"#C25193"}},{"scope":["punctuation"],"settings":{"foreground":"#ADB1C2"}},{"scope":["keyword.operator","keyword.other.arrow","keyword.control.@"],"settings":{"foreground":"#ADB1C2"}},{"scope":["meta.tag.metadata.doctype.html entity.name.tag","meta.tag.metadata.doctype.html entity.other.attribute-name.html","meta.tag.sgml.doctype","meta.tag.sgml.doctype string","meta.tag.sgml.doctype entity.name.tag","meta.tag.sgml punctuation.definition.tag.html"],"settings":{"foreground":"#9194A2"}},{"scope":["meta.tag","punctuation.definition.tag.html","punctuation.definition.tag.begin.html","punctuation.definition.tag.end.html"],"settings":{"foreground":"#ADB1C2"}},{"scope":["entity.name.tag"],"settings":{"foreground":"#13BBB7"}},{"scope":["meta.tag entity.other.attribute-name","entity.other.attribute-name.html"],"settings":{"foreground":"#FF8380"}},{"scope":["constant.character.entity","punctuation.definition.entity"],"settings":{"foreground":"#CF9C00"}},{"scope":["source.css"],"settings":{"foreground":"#ADB1C2"}},{"scope":["meta.selector","meta.selector entity","meta.selector entity punctuation","source.css entity.name.tag"],"settings":{"foreground":"#F767BB"}},{"scope":["keyword.control.at-rule","keyword.control.at-rule punctuation.definition.keyword"],"settings":{"foreground":"#C25193"}},{"scope":"source.css variable","settings":{"foreground":"#11658F"}},{"scope":["source.css meta.property-name","source.css support.type.property-name"],"settings":{"foreground":"#565869"}},{"scope":["source.css support.type.vendored.property-name"],"settings":{"foreground":"#565869AA"}},{"scope":["meta.property-value","support.constant.property-value"],"settings":{"foreground":"#13BBB7"}},{"scope":["source.css support.constant"],"settings":{"foreground":"#2DAE58"}},{"scope":["punctuation.definition.entity.css","keyword.operator.combinator.css"],"settings":{"foreground":"#FF82CBBB"}},{"scope":["source.css support.function"],"settings":{"foreground":"#09A1ED"}},{"scope":"keyword.other.important","settings":{"foreground":"#238744"}},{"scope":["source.css.scss"],"settings":{"foreground":"#F767BB"}},{"scope":["source.css.scss entity.other.attribute-name.class.css","source.css.scss entity.other.attribute-name.id.css"],"settings":{"foreground":"#F767BB"}},{"scope":["entity.name.tag.reference.scss"],"settings":{"foreground":"#C25193"}},{"scope":["source.css.scss meta.at-rule keyword","source.css.scss meta.at-rule keyword punctuation","source.css.scss meta.at-rule operator.logical","keyword.control.content.scss","keyword.control.return.scss","keyword.control.return.scss punctuation.definition.keyword"],"settings":{"foreground":"#C25193"}},{"scope":["meta.at-rule.mixin.scss","meta.at-rule.include.scss","source.css.scss meta.at-rule.if","source.css.scss meta.at-rule.else","source.css.scss meta.at-rule.each","source.css.scss meta.at-rule variable.parameter"],"settings":{"foreground":"#ADB1C2"}},{"scope":["source.css.less entity.other.attribute-name.class.css"],"settings":{"foreground":"#F767BB"}},{"scope":"source.stylus meta.brace.curly.css","settings":{"foreground":"#ADB1C2"}},{"scope":["source.stylus entity.other.attribute-name.class","source.stylus entity.other.attribute-name.id","source.stylus entity.name.tag"],"settings":{"foreground":"#F767BB"}},{"scope":["source.stylus support.type.property-name"],"settings":{"foreground":"#565869"}},{"scope":["source.stylus variable"],"settings":{"foreground":"#11658F"}},{"scope":"markup.changed","settings":{"foreground":"#888888"}},{"scope":"markup.deleted","settings":{"foreground":"#888888"}},{"scope":"markup.italic","settings":{"fontStyle":"italic"}},{"scope":"markup.error","settings":{"foreground":"#FF5C56"}},{"scope":"markup.inserted","settings":{"foreground":"#888888"}},{"scope":"meta.link","settings":{"foreground":"#CF9C00"}},{"scope":"string.other.link.title.markdown","settings":{"foreground":"#09A1ED"}},{"scope":["markup.output","markup.raw"],"settings":{"foreground":"#999999"}},{"scope":"markup.prompt","settings":{"foreground":"#999999"}},{"scope":"markup.heading","settings":{"foreground":"#2DAE58"}},{"scope":"markup.bold","settings":{"fontStyle":"bold"}},{"scope":"markup.traceback","settings":{"foreground":"#FF5C56"}},{"scope":"markup.underline","settings":{"fontStyle":"underline"}},{"scope":"markup.quote","settings":{"foreground":"#777985"}},{"scope":["markup.bold","markup.italic"],"settings":{"foreground":"#13BBB7"}},{"scope":"markup.inline.raw","settings":{"fontStyle":"","foreground":"#F767BB"}},{"scope":["meta.brace.round","meta.brace.square","storage.type.function.arrow"],"settings":{"foreground":"#ADB1C2"}},{"scope":["constant.language.import-export-all","meta.import keyword.control.default"],"settings":{"foreground":"#C25193"}},{"scope":["support.function.js"],"settings":{"foreground":"#11658F"}},{"scope":"string.regexp.js","settings":{"foreground":"#13BBB7"}},{"scope":["variable.language.super","support.type.object.module.js"],"settings":{"foreground":"#F767BB"}},{"scope":"meta.jsx.children","settings":{"foreground":"#686968"}},{"scope":"entity.name.tag.yaml","settings":{"foreground":"#11658F"}},{"scope":"variable.other.alias.yaml","settings":{"foreground":"#2DAE58"}},{"scope":["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],"settings":{"foreground":"#75798F"}},{"scope":["meta.use.php entity.other.alias.php"],"settings":{"foreground":"#13BBB7"}},{"scope":["source.php support.function.construct","source.php support.function.var"],"settings":{"foreground":"#11658F"}},{"scope":["storage.modifier.extends.php","source.php keyword.other","storage.modifier.php"],"settings":{"foreground":"#F767BB"}},{"scope":["meta.class.body.php storage.type.php"],"settings":{"foreground":"#F767BB"}},{"scope":["storage.type.php","meta.class.body.php meta.function-call.php storage.type.php","meta.class.body.php meta.function.php storage.type.php"],"settings":{"foreground":"#2DAE58"}},{"scope":["source.php keyword.other.DML"],"settings":{"foreground":"#D94E4A"}},{"scope":["source.sql.embedded.php keyword.operator"],"settings":{"foreground":"#2DAE58"}},{"scope":["source.ini keyword","source.toml keyword","source.env variable"],"settings":{"foreground":"#11658F"}},{"scope":["source.ini entity.name.section","source.toml entity.other.attribute-name"],"settings":{"foreground":"#F767BB"}},{"scope":["source.go storage.type"],"settings":{"foreground":"#2DAE58"}},{"scope":["keyword.import.go","keyword.package.go"],"settings":{"foreground":"#FF5C56"}},{"scope":["source.reason variable.language string"],"settings":{"foreground":"#565869"}},{"scope":["source.reason support.type","source.reason constant.language","source.reason constant.language constant.numeric","source.reason support.type string.regexp"],"settings":{"foreground":"#2DAE58"}},{"scope":["source.reason keyword.operator keyword.control","source.reason keyword.control.less","source.reason keyword.control.flow"],"settings":{"foreground":"#ADB1C2"}},{"scope":["source.reason string.regexp"],"settings":{"foreground":"#CF9C00"}},{"scope":["source.reason support.property-value"],"settings":{"foreground":"#11658F"}},{"scope":["source.rust support.function.core.rust"],"settings":{"foreground":"#11658F"}},{"scope":["source.rust storage.type.core.rust","source.rust storage.class.std"],"settings":{"foreground":"#2DAE58"}},{"scope":["source.rust entity.name.type.rust"],"settings":{"foreground":"#13BBB7"}},{"scope":["storage.type.function.coffee"],"settings":{"foreground":"#ADB1C2"}},{"scope":["keyword.type.cs","storage.type.cs"],"settings":{"foreground":"#2DAE58"}},{"scope":["entity.name.type.namespace.cs"],"settings":{"foreground":"#13BBB7"}},{"scope":"meta.diff.header","settings":{"foreground":"#11658F"}},{"scope":["markup.inserted.diff"],"settings":{"foreground":"#2DAE58"}},{"scope":["markup.deleted.diff"],"settings":{"foreground":"#FF5C56"}},{"scope":["meta.diff.range","meta.diff.index","meta.separator"],"settings":{"foreground":"#09A1ED"}},{"scope":"source.makefile variable","settings":{"foreground":"#11658F"}},{"scope":["keyword.control.protocol-specification.objc"],"settings":{"foreground":"#F767BB"}},{"scope":["meta.parens storage.type.objc","meta.return-type.objc support.class","meta.return-type.objc storage.type.objc"],"settings":{"foreground":"#2DAE58"}},{"scope":["source.sql keyword"],"settings":{"foreground":"#11658F"}},{"scope":["keyword.other.special-method.dockerfile"],"settings":{"foreground":"#09A1ED"}},{"scope":"constant.other.symbol.elixir","settings":{"foreground":"#11658F"}},{"scope":["storage.type.elm","support.module.elm"],"settings":{"foreground":"#13BBB7"}},{"scope":["source.elm keyword.other"],"settings":{"foreground":"#ADB1C2"}},{"scope":["source.erlang entity.name.type.class"],"settings":{"foreground":"#13BBB7"}},{"scope":["variable.other.field.erlang"],"settings":{"foreground":"#11658F"}},{"scope":["source.erlang constant.other.symbol"],"settings":{"foreground":"#2DAE58"}},{"scope":["storage.type.haskell"],"settings":{"foreground":"#2DAE58"}},{"scope":["meta.declaration.class.haskell storage.type.haskell","meta.declaration.instance.haskell storage.type.haskell"],"settings":{"foreground":"#13BBB7"}},{"scope":["meta.preprocessor.haskell"],"settings":{"foreground":"#75798F"}},{"scope":["source.haskell keyword.control"],"settings":{"foreground":"#F767BB"}},{"scope":["tag.end.latte","tag.begin.latte"],"settings":{"foreground":"#ADB1C2"}},{"scope":"source.po keyword.control","settings":{"foreground":"#11658F"}},{"scope":"source.po storage.type","settings":{"foreground":"#9194A2"}},{"scope":"constant.language.po","settings":{"foreground":"#13BBB7"}},{"scope":"meta.header.po string","settings":{"foreground":"#FF8380"}},{"scope":"source.po meta.header.po","settings":{"foreground":"#ADB1C2"}},{"scope":["source.ocaml markup.underline"],"settings":{"fontStyle":""}},{"scope":["source.ocaml punctuation.definition.tag emphasis","source.ocaml entity.name.class constant.numeric","source.ocaml support.type"],"settings":{"foreground":"#F767BB"}},{"scope":["source.ocaml constant.numeric entity.other.attribute-name"],"settings":{"foreground":"#13BBB7"}},{"scope":["source.ocaml comment meta.separator"],"settings":{"foreground":"#ADB1C2"}},{"scope":["source.ocaml support.type strong","source.ocaml keyword.control strong"],"settings":{"foreground":"#ADB1C2"}},{"scope":["source.ocaml support.constant.property-value"],"settings":{"foreground":"#11658F"}},{"scope":["source.scala entity.name.class"],"settings":{"foreground":"#13BBB7"}},{"scope":["storage.type.scala"],"settings":{"foreground":"#2DAE58"}},{"scope":["variable.parameter.scala"],"settings":{"foreground":"#11658F"}},{"scope":["meta.bracket.scala","meta.colon.scala"],"settings":{"foreground":"#ADB1C2"}},{"scope":["meta.metadata.simple.clojure"],"settings":{"foreground":"#ADB1C2"}},{"scope":["meta.metadata.simple.clojure meta.symbol"],"settings":{"foreground":"#13BBB7"}},{"scope":["source.r keyword.other"],"settings":{"foreground":"#ADB1C2"}},{"scope":["source.svelte meta.block.ts entity.name.label"],"settings":{"foreground":"#11658F"}},{"scope":["keyword.operator.word.applescript"],"settings":{"foreground":"#F767BB"}},{"scope":["meta.function-call.livescript"],"settings":{"foreground":"#09A1ED"}},{"scope":["variable.language.self.lua"],"settings":{"foreground":"#13BBB7"}},{"scope":["entity.name.type.class.swift","meta.inheritance-clause.swift","meta.import.swift entity.name.type"],"settings":{"foreground":"#13BBB7"}},{"scope":["source.swift punctuation.section.embedded"],"settings":{"foreground":"#B38700"}},{"scope":["variable.parameter.function.swift entity.name.function.swift"],"settings":{"foreground":"#565869"}},{"scope":"meta.function-call.twig","settings":{"foreground":"#565869"}},{"scope":"string.unquoted.tag-string.django","settings":{"foreground":"#565869"}},{"scope":["entity.tag.tagbraces.django","entity.tag.filter-pipe.django"],"settings":{"foreground":"#ADB1C2"}},{"scope":["meta.section.attributes.haml constant.language","meta.section.attributes.plain.haml constant.other.symbol"],"settings":{"foreground":"#FF8380"}},{"scope":["meta.prolog.haml"],"settings":{"foreground":"#9194A2"}},{"scope":["support.constant.handlebars"],"settings":{"foreground":"#ADB1C2"}},{"scope":"text.log log.constant","settings":{"foreground":"#C25193"}},{"scope":["source.c string constant.other.placeholder","source.cpp string constant.other.placeholder"],"settings":{"foreground":"#B38700"}},{"scope":"constant.other.key.groovy","settings":{"foreground":"#11658F"}},{"scope":"storage.type.groovy","settings":{"foreground":"#13BBB7"}},{"scope":"meta.definition.variable.groovy storage.type.groovy","settings":{"foreground":"#2DAE58"}},{"scope":"storage.modifier.import.groovy","settings":{"foreground":"#CF9C00"}},{"scope":["entity.other.attribute-name.class.pug","entity.other.attribute-name.id.pug"],"settings":{"foreground":"#13BBB7"}},{"scope":["constant.name.attribute.tag.pug"],"settings":{"foreground":"#ADB1C2"}},{"scope":"entity.name.tag.style.html","settings":{"foreground":"#13BBB7"}},{"scope":"entity.name.type.wasm","settings":{"foreground":"#2DAE58"}}],"type":"light"}'));export{e as default}; ================================================ FILE: jesse/static/_nuxt/BwHcMc3Y.js ================================================ import{_ as me}from"./Dr_JbmT0.js";import{d as ve,a6 as fe,a4 as pe,A as _e,c as k,r as u,J as ye,B as he,w as N,a7 as ge,a8 as P,h as S,C as V,j as l,i as t,x as a,E as z,e as be,D as _,F as we,O as xe,f as A,t as ke,k as Se,a9 as Ve,aa as Ce,_ as Te,g as h,ab as Le,I as O,s as B}from"./CU_MfyYc.js";import{_ as Ue}from"./CvhZxjKo.js";import{_ as Me}from"./DPg46dy1.js";import{_ as qe}from"./_FEXNRsZ.js";import{u as De}from"./Cwg39VG_.js";import"./C6794tGI.js";import"./Cw4FHd9N.js";import"./BuljS_lV.js";import"./DP9I38t9.js";import"./DK27pemE.js";const Ne={class:"w-full"},Pe={class:"container mx-auto px-4 pt-16 pb-6 max-w-7xl"},Re={class:"mb-6 flex flex-col gap-4 md:flex-row md:items-center md:justify-between"},Fe={class:"flex items-center gap-3"},$e={class:"flex flex-col gap-3 sm:flex-row sm:items-center"},je={key:0,class:"space-y-4"},ze={class:"bg-white dark:bg-gray-800 shadow rounded-lg overflow-hidden"},Ae={class:"divide-y divide-gray-200 dark:divide-gray-700"},Be={class:"hidden md:grid md:grid-cols-12 gap-4 items-center"},Oe={class:"col-span-3"},He={class:"col-span-2"},Ee={class:"col-span-1 text-center"},Je={class:"col-span-2 text-center"},Ge={class:"col-span-2"},We={class:"col-span-2 flex justify-end gap-2"},Ke={class:"md:hidden space-y-3"},Qe={class:"flex items-start justify-between"},Xe={class:"flex-1"},Ye={class:"flex items-center justify-between"},Ze={class:"flex items-center justify-between"},Ie={class:"flex gap-1"},es={key:1,class:"space-y-4"},ss={key:0,class:"flex justify-center"},ls={key:2,class:"bg-white dark:bg-gray-800 shadow rounded-lg p-12 text-center"},ts={class:"p-6"},as={class:"mb-6"},os={class:"flex justify-end gap-3"},R=50,hs=ve({__name:"history",setup(ns){De({title:"Sessions History - Jesse"});const m=fe(),U=pe(),y=_e(),H=k(()=>y.tabs),r=u([]),C=u(!1),T=u(null),M=u(!1),F=u(!1),$=u(!0),d=u(0),q=u(!1),c=u(null),g=u(!1),j=u(!1),b=u(30),w=k({get:()=>m.query.title||"",set:s=>{const e={...m.query};s?e.title=s:delete e.title,U.push({query:e})}}),v=k({get:()=>m.query.status||"all",set:s=>{const e={...m.query};s==="all"?delete e.status:e.status=s,U.push({query:e})}}),f=k({get:()=>m.query.mode||"all",set:s=>{const e={...m.query};s==="all"?delete e.mode:e.mode=s,U.push({query:e})}}),p=k({get:()=>m.query.dateRange||"all_time",set:s=>{const e={...m.query};s==="all_time"?delete e.dateRange:e.dateRange=s,U.push({query:e})}}),E=[{label:"All Statuses",value:"all"},{label:"Running",value:"running"},{label:"Stopped",value:"stopped"},{label:"Terminated",value:"terminated"}],J=[{label:"All Modes",value:"all"},{label:"Live Trading",value:"livetrade"},{label:"Paper Trading",value:"papertrade"}],G=[{label:"All Time",value:"all_time"},{label:"Last 7 Days",value:"7_days"},{label:"Last 30 Days",value:"30_days"},{label:"Last 90 Days",value:"90_days"}],W=[{label:"1 day",value:1},{label:"7 days",value:7},{label:"30 days",value:30},{label:"3 months",value:90},{label:"6 months",value:180},{label:"1 year",value:365},{label:"2 years",value:730},{label:"All existing sessions",value:-1}],K=k(()=>r.value.map(s=>({...s,updated_at:ye.timestampToReadableDateTime(s.updated_at)})));he(()=>{setTimeout(()=>{x()},20)});const Q=ge(()=>{d.value=0,x()},300);N(w,()=>{Q()}),N(v,()=>{d.value=0,x()}),N(f,()=>{d.value=0,x()}),N(p,()=>{d.value=0,x()});async function x(){var s;M.value=!0;try{const i=(await P("/live/sessions",{limit:R,offset:0,title_search:w.value||null,status_filter:v.value==="all"?null:v.value,mode_filter:f.value==="all"?null:f.value,date_filter:p.value==="all_time"?null:p.value},!0)).data.value;r.value=(i==null?void 0:i.sessions)||[],d.value=r.value.length,$.value=((s=i==null?void 0:i.sessions)==null?void 0:s.length)===R}catch(e){S(e)}finally{M.value=!1}}async function X(){F.value=!0;try{const e=(await P("/live/sessions",{limit:R,offset:d.value,title_search:w.value||null,status_filter:v.value==="all"?null:v.value,mode_filter:f.value==="all"?null:f.value,date_filter:p.value==="all_time"?null:p.value},!0)).data.value,i=(e==null?void 0:e.sessions)||[];r.value=[...r.value,...i],d.value+=i.length,$.value=i.length===R}catch(s){S(s)}finally{F.value=!1}}function Y(s){le(s.rawSession)}async function Z(s){if(y.tabs[s]){await O(`/live/${s}`);return}await y.loadSession(s)&&(await y.ensureTab(s),await O(`/live/${s}`))}function I(s){T.value=s,C.value=!0}async function ee(){T.value&&(await se(T.value),r.value=r.value.filter(s=>s.id!==T.value),d.value-=1),C.value=!1,T.value=null}async function se(s){if(y.tabs[s]){B("error","Cannot delete a session that is currently open in a tab. Close the tab first.");return}try{const e=await P(`/live/sessions/${s}/remove`,{},!0);if(e.error.value){S(e.error.value);return}B("success","Session deleted successfully")}catch(e){S(e)}}function le(s){c.value=s,q.value=!0}async function te(){j.value=!0;try{const s=await P("/live/purge-sessions",{days_old:b.value===-1?null:b.value},!0);if(s.error.value){S(s.error.value);return}const e=s.data.value;B("success",`Successfully purged ${e.deleted_count} session(s)`),g.value=!1,d.value=0,await x()}catch(s){S(s)}finally{j.value=!1}}function ae(){g.value=!1,b.value=30}function oe(s){if(c.value){const e=r.value.find(i=>i.id===c.value.id);e&&(e.title=s.title,e.description=s.description,c.value.title=s.title,c.value.description=s.description)}}return(s,e)=>{const i=me,L=ke,ne=Se,D=Ve,o=Ue,ie=Me,ue=Ce,re=qe,de=Le,ce=Te;return h(),V("div",null,[l("div",Ne,[t(i,{"current-tab":null,tabs:a(H),onClose:a(y).closeTab,onCancel:a(y).cancel},null,8,["tabs","onClose","onCancel"])]),l("div",Pe,[l("div",Re,[l("div",Fe,[e[9]||(e[9]=l("h1",{class:"text-xl md:text-2xl font-bold text-gray-900 dark:text-white"}," Sessions History ",-1)),t(L,{icon:"i-heroicons-trash",color:"red",variant:"soft",size:"sm",label:"Purge",onClick:e[0]||(e[0]=n=>g.value=!0)})]),l("div",$e,[t(ne,{modelValue:a(w),"onUpdate:modelValue":e[1]||(e[1]=n=>_(w)?w.value=n:null),placeholder:"Search by title...",icon:"i-heroicons-magnifying-glass",size:"sm",class:"w-full sm:w-64"},null,8,["modelValue"]),t(D,{modelValue:a(v),"onUpdate:modelValue":e[2]||(e[2]=n=>_(v)?v.value=n:null),options:E,size:"sm",class:"w-full sm:w-40"},null,8,["modelValue"]),t(D,{modelValue:a(f),"onUpdate:modelValue":e[3]||(e[3]=n=>_(f)?f.value=n:null),options:J,size:"sm",class:"w-full sm:w-40"},null,8,["modelValue"]),t(D,{modelValue:a(p),"onUpdate:modelValue":e[4]||(e[4]=n=>_(p)?p.value=n:null),options:G,size:"sm",class:"w-full sm:w-40"},null,8,["modelValue"])])]),a(M)?(h(),V("div",je,[l("div",ze,[l("div",Ae,[(h(),V(we,null,xe(5,n=>l("div",{key:n,class:"p-4"},[l("div",Be,[l("div",Oe,[t(o,{class:"h-4 w-full mb-2"}),t(o,{class:"h-3 w-2/3"})]),l("div",He,[t(o,{class:"h-4 w-full mb-2"}),t(o,{class:"h-3 w-2/3"})]),l("div",Ee,[t(o,{class:"h-6 w-16 mx-auto"})]),l("div",Je,[t(o,{class:"h-6 w-20 mx-auto"})]),l("div",Ge,[t(o,{class:"h-4 w-full"})]),l("div",We,[t(o,{class:"h-8 w-8"}),t(o,{class:"h-8 w-8"}),t(o,{class:"h-8 w-8"})])]),l("div",Ke,[l("div",Qe,[l("div",Xe,[t(o,{class:"h-4 w-3/4 mb-2"}),t(o,{class:"h-3 w-1/2"})]),t(o,{class:"h-6 w-16 ml-2"})]),l("div",Ye,[t(o,{class:"h-4 w-24"}),t(o,{class:"h-4 w-16"})]),l("div",Ze,[t(o,{class:"h-3 w-32"}),l("div",Ie,[t(o,{class:"h-8 w-8"}),t(o,{class:"h-8 w-8"}),t(o,{class:"h-8 w-8"})])])])])),64))])])])):a(r).length?(h(),V("div",es,[t(ie,{sessions:a(K),"show-history-actions":!0,onNotes:Y,onLoad:Z,onDelete:I},null,8,["sessions"]),a($)?(h(),V("div",ss,[t(L,{label:"Load More",variant:"soft",color:"gray",loading:a(F),onClick:X},null,8,["loading"])])):z("",!0)])):!a(M)&&a(r).length===0?(h(),V("div",ls,e[10]||(e[10]=[l("div",{class:"text-gray-400 dark:text-gray-500"},[l("i",{class:"i-heroicons-clock h-12 w-12 mx-auto mb-4"}),l("p",{class:"text-lg"},"No live trading history found"),l("p",{class:"text-sm mt-2"},"Start a live session or change filters to see items in your history")],-1)]))):z("",!0),t(ue,{modelValue:a(C),"onUpdate:modelValue":e[5]||(e[5]=n=>_(C)?C.value=n:null),title:"Delete Live Session",description:"Are you sure you want to delete this live session? This action cannot be undone.",type:"info"},{default:A(()=>[t(L,{variant:"solid",color:"red",block:"",class:"sm:w-auto",label:"Delete",onClick:ee})]),_:1},8,["modelValue"]),a(c)?(h(),be(re,{key:3,modelValue:a(q),"onUpdate:modelValue":e[6]||(e[6]=n=>_(q)?q.value=n:null),"session-id":a(c).id,"initial-title":a(c).title,"initial-description":a(c).description,onSaved:oe},null,8,["modelValue","session-id","initial-title","initial-description"])):z("",!0),t(ce,{modelValue:a(g),"onUpdate:modelValue":e[8]||(e[8]=n=>_(g)?g.value=n:null)},{default:A(()=>[l("div",ts,[e[13]||(e[13]=l("h3",{class:"text-lg font-semibold text-gray-900 dark:text-white mb-4"}," Purge Live Sessions ",-1)),l("div",as,[e[11]||(e[11]=l("div",{class:"bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4 mb-4"},[l("div",{class:"flex items-start gap-3"},[l("i",{class:"i-heroicons-exclamation-triangle text-red-600 dark:text-red-400 text-xl flex-shrink-0 mt-0.5"}),l("div",{class:"text-sm text-red-800 dark:text-red-200"},[l("p",{class:"font-semibold mb-1"}," Warning: This action is permanent! "),l("p",null,"Deleted sessions cannot be recovered. Please select carefully.")])])],-1)),t(de,{label:"Delete sessions older than:",class:"mb-4"},{default:A(()=>[t(D,{modelValue:a(b),"onUpdate:modelValue":e[7]||(e[7]=n=>_(b)?b.value=n:null),options:W,size:"md"},null,8,["modelValue"])]),_:1}),e[12]||(e[12]=l("p",{class:"text-sm text-gray-600 dark:text-gray-400"}," This will permanently delete all live sessions that match your criteria. ",-1))]),l("div",os,[t(L,{color:"gray",variant:"ghost",label:"Cancel",onClick:ae}),t(L,{color:"red",label:"Purge Sessions",loading:a(j),onClick:te},null,8,["loading"])])])]),_:1},8,["modelValue"])])])}}});export{hs as default}; ================================================ FILE: jesse/static/_nuxt/BwXTMy5W.js ================================================ const n=Object.freeze(JSON.parse(`{"displayName":"Beancount","fileTypes":["beancount"],"name":"beancount","patterns":[{"comment":"Comments","match":";.*","name":"comment.line.beancount"},{"begin":"^\\\\s*(poptag|pushtag)\\\\s+(#)([A-Za-z0-9\\\\-_/.]+)","beginCaptures":{"1":{"name":"support.function.beancount"},"2":{"name":"keyword.operator.tag.beancount"},"3":{"name":"entity.name.tag.beancount"}},"comment":"Tag directive","end":"(?=(^\\\\s*$|^\\\\S))","name":"meta.directive.tag.beancount","patterns":[{"include":"#comments"},{"include":"#illegal"}]},{"begin":"^\\\\s*(include)\\\\s+(\\\\\\".*\\\\\\")","beginCaptures":{"1":{"name":"support.function.beancount"},"2":{"name":"string.quoted.double.beancount"}},"comment":"Include directive","end":"(?=(^\\\\s*$|^\\\\S))","name":"meta.directive.include.beancount","patterns":[{"include":"#comments"},{"include":"#illegal"}]},{"begin":"^\\\\s*(option)\\\\s+(\\\\\\".*\\\\\\")\\\\s+(\\\\\\".*\\\\\\")","beginCaptures":{"1":{"name":"support.function.beancount"},"2":{"name":"support.variable.beancount"},"3":{"name":"string.quoted.double.beancount"}},"comment":"Option directive","end":"(?=(^\\\\s*$|^\\\\S))","name":"meta.directive.option.beancount","patterns":[{"include":"#comments"},{"include":"#illegal"}]},{"begin":"^\\\\s*(plugin)\\\\s*(\\"(.*?)\\")\\\\s*(\\".*?\\")?","beginCaptures":{"1":{"name":"support.function.beancount"},"2":{"name":"string.quoted.double.beancount"},"3":{"name":"entity.name.function.beancount"},"4":{"name":"string.quoted.double.beancount"}},"comment":"Plugin directive","end":"(?=(^\\\\s*$|^\\\\S))","name":"keyword.operator.directive.beancount","patterns":[{"include":"#comments"},{"include":"#illegal"}]},{"begin":"([0-9]{4})([\\\\-|/])([0-9]{2})([\\\\-|/])([0-9]{2})\\\\s+(open|close|pad)\\\\b","beginCaptures":{"1":{"name":"constant.numeric.date.year.beancount"},"2":{"name":"punctuation.separator.beancount"},"3":{"name":"constant.numeric.date.month.beancount"},"4":{"name":"punctuation.separator.beancount"},"5":{"name":"constant.numeric.date.day.beancount"},"6":{"name":"support.function.beancount"}},"comment":"Open/Close/Pad directive","end":"(?=(^\\\\s*$|^\\\\S))","name":"meta.directive.dated.beancount","patterns":[{"include":"#comments"},{"include":"#meta"},{"include":"#account"},{"include":"#commodity"},{"match":"\\\\,","name":"punctuation.separator.beancount"},{"include":"#illegal"}]},{"begin":"([0-9]{4})([\\\\-|/])([0-9]{2})([\\\\-|/])([0-9]{2})\\\\s+(custom)\\\\b","beginCaptures":{"1":{"name":"constant.numeric.date.year.beancount"},"2":{"name":"punctuation.separator.beancount"},"3":{"name":"constant.numeric.date.month.beancount"},"4":{"name":"punctuation.separator.beancount"},"5":{"name":"constant.numeric.date.day.beancount"},"6":{"name":"support.function.beancount"}},"comment":"Custom directive","end":"(?=(^\\\\s*$|^\\\\S))","name":"meta.directive.dated.beancount","patterns":[{"include":"#comments"},{"include":"#meta"},{"include":"#string"},{"include":"#bool"},{"include":"#amount"},{"include":"#number"},{"include":"#date"},{"include":"#account"},{"include":"#illegal"}]},{"begin":"([0-9]{4})([\\\\-|/])([0-9]{2})([\\\\-|/])([0-9]{2})\\\\s(event)","beginCaptures":{"1":{"name":"constant.numeric.date.year.beancount"},"2":{"name":"punctuation.separator.beancount"},"3":{"name":"constant.numeric.date.month.beancount"},"4":{"name":"punctuation.separator.beancount"},"5":{"name":"constant.numeric.date.day.beancount"},"6":{"name":"support.function.directive.beancount"}},"comment":"Event directive","end":"(?=(^\\\\s*$|^\\\\S))","name":"meta.directive.dated.beancount","patterns":[{"include":"#comments"},{"include":"#meta"},{"include":"#string"},{"include":"#illegal"}]},{"begin":"([0-9]{4})([\\\\-|/])([0-9]{2})([\\\\-|/])([0-9]{2})\\\\s(commodity)","beginCaptures":{"1":{"name":"constant.numeric.date.year.beancount"},"2":{"name":"punctuation.separator.beancount"},"3":{"name":"constant.numeric.date.month.beancount"},"4":{"name":"punctuation.separator.beancount"},"5":{"name":"constant.numeric.date.day.beancount"},"6":{"name":"support.function.directive.beancount"}},"comment":"Commodity directive","end":"(?=(^\\\\s*$|^\\\\S))","name":"meta.directive.dated.beancount","patterns":[{"include":"#comments"},{"include":"#meta"},{"include":"#commodity"},{"include":"#illegal"}]},{"begin":"([0-9]{4})([\\\\-|/])([0-9]{2})([\\\\-|/])([0-9]{2})\\\\s(note|document)","beginCaptures":{"1":{"name":"constant.numeric.date.year.beancount"},"2":{"name":"punctuation.separator.beancount"},"3":{"name":"constant.numeric.date.month.beancount"},"4":{"name":"punctuation.separator.beancount"},"5":{"name":"constant.numeric.date.day.beancount"},"6":{"name":"support.function.directive.beancount"}},"comment":"Note/Document directive","end":"(?=(^\\\\s*$|^\\\\S))","name":"meta.directive.dated.beancount","patterns":[{"include":"#comments"},{"include":"#meta"},{"include":"#account"},{"include":"#string"},{"include":"#illegal"}]},{"begin":"([0-9]{4})([\\\\-|/])([0-9]{2})([\\\\-|/])([0-9]{2})\\\\s(price)","beginCaptures":{"1":{"name":"constant.numeric.date.year.beancount"},"2":{"name":"punctuation.separator.beancount"},"3":{"name":"constant.numeric.date.month.beancount"},"4":{"name":"punctuation.separator.beancount"},"5":{"name":"constant.numeric.date.day.beancount"},"6":{"name":"support.function.directive.beancount"}},"comment":"Price directives","end":"(?=(^\\\\s*$|^\\\\S))","name":"meta.directive.dated.beancount","patterns":[{"include":"#comments"},{"include":"#meta"},{"include":"#commodity"},{"include":"#amount"},{"include":"#illegal"}]},{"begin":"([0-9]{4})([\\\\-|/])([0-9]{2})([\\\\-|/])([0-9]{2})\\\\s(balance)","beginCaptures":{"1":{"name":"constant.numeric.date.year.beancount"},"2":{"name":"punctuation.separator.beancount"},"3":{"name":"constant.numeric.date.month.beancount"},"4":{"name":"punctuation.separator.beancount"},"5":{"name":"constant.numeric.date.day.beancount"},"6":{"name":"support.function.directive.beancount"}},"comment":"Balance directives","end":"(?=(^\\\\s*$|^\\\\S))","name":"meta.directive.dated.beancount","patterns":[{"include":"#comments"},{"include":"#meta"},{"include":"#account"},{"include":"#amount"},{"include":"#illegal"}]},{"begin":"([0-9]{4})([\\\\-|/])([0-9]{2})([\\\\-|/])([0-9]{2})\\\\s*(txn|[*!&#?%PSTCURM])\\\\s*(\\".*?\\")?\\\\s*(\\".*?\\")?","beginCaptures":{"1":{"name":"constant.numeric.date.year.beancount"},"2":{"name":"punctuation.separator.beancount"},"3":{"name":"constant.numeric.date.month.beancount"},"4":{"name":"punctuation.separator.beancount"},"5":{"name":"constant.numeric.date.day.beancount"},"6":{"name":"support.function.directive.beancount"},"7":{"name":"string.quoted.tiers.beancount"},"8":{"name":"string.quoted.narration.beancount"}},"comment":"Transaction directive","end":"(?=(^\\\\s*$|^\\\\S))","name":"meta.directive.transaction.beancount","patterns":[{"include":"#comments"},{"include":"#posting"},{"include":"#meta"},{"include":"#tag"},{"include":"#link"},{"include":"#illegal"}]}],"repository":{"account":{"begin":"([A-Z][a-z]+)(:)","beginCaptures":{"1":{"name":"variable.language.beancount"},"2":{"name":"punctuation.separator.beancount"}},"end":"\\\\s","name":"meta.account.beancount","patterns":[{"begin":"(\\\\S+)([:]?)","beginCaptures":{"1":{"name":"variable.other.account.beancount"},"2":{"name":"punctuation.separator.beancount"}},"comment":"Sub accounts","end":"([:]?)|(\\\\s)","patterns":[{"include":"$self"},{"include":"#illegal"}]}]},"amount":{"captures":{"1":{"name":"keyword.operator.modifier.beancount"},"2":{"name":"constant.numeric.currency.beancount"},"3":{"name":"entity.name.type.commodity.beancount"}},"match":"([\\\\-|\\\\+]?)(\\\\d+(?:,\\\\d{3})*(?:\\\\.\\\\d*)?)\\\\s*([A-Z][A-Z0-9\\\\'\\\\.\\\\_\\\\-]{0,22}[A-Z0-9])","name":"meta.amount.beancount"},"bool":{"captures":{"0":{"name":"constant.language.bool.beancount"},"2":{"name":"constant.numeric.currency.beancount"},"3":{"name":"entity.name.type.commodity.beancount"}},"match":"TRUE|FALSE"},"comments":{"captures":{"1":{"name":"comment.line.beancount"}},"match":"(;.*)$"},"commodity":{"match":"([A-Z][A-Z0-9\\\\'\\\\.\\\\_\\\\-]{0,22}[A-Z0-9])","name":"entity.name.type.commodity.beancount"},"cost":{"begin":"\\\\{\\\\{?","beginCaptures":{"0":{"name":"keyword.operator.assignment.beancount"}},"end":"\\\\}\\\\}?","endCaptures":{"0":{"name":"keyword.operator.assignment.beancount"}},"name":"meta.cost.beancount","patterns":[{"include":"#amount"},{"include":"#date"},{"match":"\\\\,","name":"punctuation.separator.beancount"},{"include":"#illegal"}]},"date":{"captures":{"1":{"name":"constant.numeric.date.year.beancount"},"2":{"name":"punctuation.separator.beancount"},"3":{"name":"constant.numeric.date.month.beancount"},"4":{"name":"punctuation.separator.beancount"},"5":{"name":"constant.numeric.date.day.beancount"}},"match":"([0-9]{4})([\\\\-|/])([0-9]{2})([\\\\-|/])([0-9]{2})","name":"meta.date.beancount"},"flag":{"match":"(?<=\\\\s)([*!&#?%PSTCURM])(?=\\\\s+)","name":"keyword.other.beancount"},"illegal":{"match":"[^\\\\s]","name":"invalid.illegal.unrecognized.beancount"},"link":{"captures":{"1":{"name":"keyword.operator.link.beancount"},"2":{"name":"markup.underline.link.beancount"}},"match":"(\\\\^)([A-Za-z0-9\\\\-_/.]+)"},"meta":{"begin":"^\\\\s*([a-z][A-Za-z0-9\\\\-_]+)([:])","beginCaptures":{"1":{"name":"keyword.operator.directive.beancount"},"2":{"name":"punctuation.separator.beancount"}},"end":"\\\\n","name":"meta.meta.beancount","patterns":[{"include":"#string"},{"include":"#account"},{"include":"#bool"},{"include":"#commodity"},{"include":"#date"},{"include":"#tag"},{"include":"#amount"},{"include":"#number"},{"include":"#comments"},{"include":"#illegal"}]},"number":{"captures":{"1":{"name":"keyword.operator.modifier.beancount"},"2":{"name":"constant.numeric.currency.beancount"}},"match":"([\\\\-|\\\\+]?)(\\\\d+(?:,\\\\d{3})*(?:\\\\.\\\\d*)?)"},"posting":{"begin":"^\\\\s+(?=([A-Z\\\\!]))","end":"(?=(^\\\\s*$|^\\\\S|^\\\\s*[A-Z]))","name":"meta.posting.beancount","patterns":[{"include":"#meta"},{"include":"#comments"},{"include":"#flag"},{"include":"#account"},{"include":"#amount"},{"include":"#cost"},{"include":"#date"},{"include":"#price"},{"include":"#illegal"}]},"price":{"begin":"\\\\@\\\\@?","beginCaptures":{"0":{"name":"keyword.operator.assignment.beancount"}},"end":"(?=(;|\\\\n))","name":"meta.price.beancount","patterns":[{"include":"#amount"},{"include":"#illegal"}]},"string":{"begin":"\\\\\\"","end":"\\\\\\"","name":"string.quoted.double.beancount","patterns":[{"match":"\\\\\\\\.","name":"constant.character.escape.beancount"}]},"tag":{"captures":{"1":{"name":"keyword.operator.tag.beancount"},"2":{"name":"entity.name.tag.beancount"}},"match":"(#)([A-Za-z0-9\\\\-_/.]+)"}},"scopeName":"text.beancount"}`)),e=[n];export{e as default}; ================================================ FILE: jesse/static/_nuxt/BygKL3ZF.js ================================================ /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var e={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"""',close:'"""',notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"""',close:'"""'},{open:'"',close:'"'}],folding:{offSide:!0}},n={defaultToken:"invalid",tokenPostfix:".gql",keywords:["null","true","false","query","mutation","subscription","extend","schema","directive","scalar","type","interface","union","enum","input","implements","fragment","on"],typeKeywords:["Int","Float","String","Boolean","ID"],directiveLocations:["SCHEMA","SCALAR","OBJECT","FIELD_DEFINITION","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION","QUERY","MUTATION","SUBSCRIPTION","FIELD","FRAGMENT_DEFINITION","FRAGMENT_SPREAD","INLINE_FRAGMENT","VARIABLE_DEFINITION"],operators:["=","!","?",":","&","|"],symbols:/[=!?:&|]+/,escapes:/\\(?:["\\\/bfnrt]|u[0-9A-Fa-f]{4})/,tokenizer:{root:[[/[a-z_][\w$]*/,{cases:{"@keywords":"keyword","@default":"key.identifier"}}],[/[$][\w$]*/,{cases:{"@keywords":"keyword","@default":"argument.identifier"}}],[/[A-Z][\w\$]*/,{cases:{"@typeKeywords":"keyword","@default":"type.identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,{token:"annotation",log:"annotation token: $0"}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/"""/,{token:"string",next:"@mlstring",nextEmbedded:"markdown"}],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}]],mlstring:[[/[^"]+/,"string"],['"""',{token:"string",next:"@pop",nextEmbedded:"@pop"}]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/#.*$/,"comment"]]}};export{e as conf,n as language}; ================================================ FILE: jesse/static/_nuxt/BypH-vXm.js ================================================ /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var e={comments:{lineComment:"#"}},t={defaultToken:"keyword",ignoreCase:!0,tokenPostfix:".azcli",str:/[^#\s]/,tokenizer:{root:[{include:"@comment"},[/\s-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}],[/^-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}]],type:[{include:"@comment"},[/-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":"key.identifier"}}],[/@str+\s*/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}]],comment:[[/#.*$/,{cases:{"@eos":{token:"comment",next:"@popall"}}}]]}};export{e as conf,t as language}; ================================================ FILE: jesse/static/_nuxt/BzJJZx-M.js ================================================ const e=Object.freeze(JSON.parse('{"colors":{"activityBar.activeBackground":"#BD93F910","activityBar.activeBorder":"#FF79C680","activityBar.background":"#343746","activityBar.foreground":"#F8F8F2","activityBar.inactiveForeground":"#6272A4","activityBarBadge.background":"#FF79C6","activityBarBadge.foreground":"#F8F8F2","badge.background":"#44475A","badge.foreground":"#F8F8F2","breadcrumb.activeSelectionForeground":"#F8F8F2","breadcrumb.background":"#282A36","breadcrumb.focusForeground":"#F8F8F2","breadcrumb.foreground":"#6272A4","breadcrumbPicker.background":"#191A21","button.background":"#44475A","button.foreground":"#F8F8F2","button.secondaryBackground":"#282A36","button.secondaryForeground":"#F8F8F2","button.secondaryHoverBackground":"#343746","debugToolBar.background":"#21222C","diffEditor.insertedTextBackground":"#50FA7B20","diffEditor.removedTextBackground":"#FF555550","dropdown.background":"#343746","dropdown.border":"#191A21","dropdown.foreground":"#F8F8F2","editor.background":"#282A36","editor.findMatchBackground":"#FFB86C80","editor.findMatchHighlightBackground":"#FFFFFF40","editor.findRangeHighlightBackground":"#44475A75","editor.foldBackground":"#21222C80","editor.foreground":"#F8F8F2","editor.hoverHighlightBackground":"#8BE9FD50","editor.lineHighlightBorder":"#44475A","editor.rangeHighlightBackground":"#BD93F915","editor.selectionBackground":"#44475A","editor.selectionHighlightBackground":"#424450","editor.snippetFinalTabstopHighlightBackground":"#282A36","editor.snippetFinalTabstopHighlightBorder":"#50FA7B","editor.snippetTabstopHighlightBackground":"#282A36","editor.snippetTabstopHighlightBorder":"#6272A4","editor.wordHighlightBackground":"#8BE9FD50","editor.wordHighlightStrongBackground":"#50FA7B50","editorBracketHighlight.foreground1":"#F8F8F2","editorBracketHighlight.foreground2":"#FF79C6","editorBracketHighlight.foreground3":"#8BE9FD","editorBracketHighlight.foreground4":"#50FA7B","editorBracketHighlight.foreground5":"#BD93F9","editorBracketHighlight.foreground6":"#FFB86C","editorBracketHighlight.unexpectedBracket.foreground":"#FF5555","editorCodeLens.foreground":"#6272A4","editorError.foreground":"#FF5555","editorGroup.border":"#BD93F9","editorGroup.dropBackground":"#44475A70","editorGroupHeader.tabsBackground":"#191A21","editorGutter.addedBackground":"#50FA7B80","editorGutter.deletedBackground":"#FF555580","editorGutter.modifiedBackground":"#8BE9FD80","editorHoverWidget.background":"#282A36","editorHoverWidget.border":"#6272A4","editorIndentGuide.activeBackground":"#FFFFFF45","editorIndentGuide.background":"#FFFFFF1A","editorLineNumber.foreground":"#6272A4","editorLink.activeForeground":"#8BE9FD","editorMarkerNavigation.background":"#21222C","editorOverviewRuler.addedForeground":"#50FA7B80","editorOverviewRuler.border":"#191A21","editorOverviewRuler.currentContentForeground":"#50FA7B","editorOverviewRuler.deletedForeground":"#FF555580","editorOverviewRuler.errorForeground":"#FF555580","editorOverviewRuler.incomingContentForeground":"#BD93F9","editorOverviewRuler.infoForeground":"#8BE9FD80","editorOverviewRuler.modifiedForeground":"#8BE9FD80","editorOverviewRuler.selectionHighlightForeground":"#FFB86C","editorOverviewRuler.warningForeground":"#FFB86C80","editorOverviewRuler.wordHighlightForeground":"#8BE9FD","editorOverviewRuler.wordHighlightStrongForeground":"#50FA7B","editorRuler.foreground":"#FFFFFF1A","editorSuggestWidget.background":"#21222C","editorSuggestWidget.foreground":"#F8F8F2","editorSuggestWidget.selectedBackground":"#44475A","editorWarning.foreground":"#8BE9FD","editorWhitespace.foreground":"#FFFFFF1A","editorWidget.background":"#21222C","errorForeground":"#FF5555","extensionButton.prominentBackground":"#50FA7B90","extensionButton.prominentForeground":"#F8F8F2","extensionButton.prominentHoverBackground":"#50FA7B60","focusBorder":"#6272A4","foreground":"#F8F8F2","gitDecoration.conflictingResourceForeground":"#FFB86C","gitDecoration.deletedResourceForeground":"#FF5555","gitDecoration.ignoredResourceForeground":"#6272A4","gitDecoration.modifiedResourceForeground":"#8BE9FD","gitDecoration.untrackedResourceForeground":"#50FA7B","inlineChat.regionHighlight":"#343746","input.background":"#282A36","input.border":"#191A21","input.foreground":"#F8F8F2","input.placeholderForeground":"#6272A4","inputOption.activeBorder":"#BD93F9","inputValidation.errorBorder":"#FF5555","inputValidation.infoBorder":"#FF79C6","inputValidation.warningBorder":"#FFB86C","list.activeSelectionBackground":"#44475A","list.activeSelectionForeground":"#F8F8F2","list.dropBackground":"#44475A","list.errorForeground":"#FF5555","list.focusBackground":"#44475A75","list.highlightForeground":"#8BE9FD","list.hoverBackground":"#44475A75","list.inactiveSelectionBackground":"#44475A75","list.warningForeground":"#FFB86C","listFilterWidget.background":"#343746","listFilterWidget.noMatchesOutline":"#FF5555","listFilterWidget.outline":"#424450","merge.currentHeaderBackground":"#50FA7B90","merge.incomingHeaderBackground":"#BD93F990","panel.background":"#282A36","panel.border":"#BD93F9","panelTitle.activeBorder":"#FF79C6","panelTitle.activeForeground":"#F8F8F2","panelTitle.inactiveForeground":"#6272A4","peekView.border":"#44475A","peekViewEditor.background":"#282A36","peekViewEditor.matchHighlightBackground":"#F1FA8C80","peekViewResult.background":"#21222C","peekViewResult.fileForeground":"#F8F8F2","peekViewResult.lineForeground":"#F8F8F2","peekViewResult.matchHighlightBackground":"#F1FA8C80","peekViewResult.selectionBackground":"#44475A","peekViewResult.selectionForeground":"#F8F8F2","peekViewTitle.background":"#191A21","peekViewTitleDescription.foreground":"#6272A4","peekViewTitleLabel.foreground":"#F8F8F2","pickerGroup.border":"#BD93F9","pickerGroup.foreground":"#8BE9FD","progressBar.background":"#FF79C6","selection.background":"#BD93F9","settings.checkboxBackground":"#21222C","settings.checkboxBorder":"#191A21","settings.checkboxForeground":"#F8F8F2","settings.dropdownBackground":"#21222C","settings.dropdownBorder":"#191A21","settings.dropdownForeground":"#F8F8F2","settings.headerForeground":"#F8F8F2","settings.modifiedItemIndicator":"#FFB86C","settings.numberInputBackground":"#21222C","settings.numberInputBorder":"#191A21","settings.numberInputForeground":"#F8F8F2","settings.textInputBackground":"#21222C","settings.textInputBorder":"#191A21","settings.textInputForeground":"#F8F8F2","sideBar.background":"#21222C","sideBarSectionHeader.background":"#282A36","sideBarSectionHeader.border":"#191A21","sideBarTitle.foreground":"#F8F8F2","statusBar.background":"#191A21","statusBar.debuggingBackground":"#FF5555","statusBar.debuggingForeground":"#191A21","statusBar.foreground":"#F8F8F2","statusBar.noFolderBackground":"#191A21","statusBar.noFolderForeground":"#F8F8F2","statusBarItem.prominentBackground":"#FF5555","statusBarItem.prominentHoverBackground":"#FFB86C","statusBarItem.remoteBackground":"#BD93F9","statusBarItem.remoteForeground":"#282A36","tab.activeBackground":"#282A36","tab.activeBorderTop":"#FF79C680","tab.activeForeground":"#F8F8F2","tab.border":"#191A21","tab.inactiveBackground":"#21222C","tab.inactiveForeground":"#6272A4","terminal.ansiBlack":"#21222C","terminal.ansiBlue":"#BD93F9","terminal.ansiBrightBlack":"#6272A4","terminal.ansiBrightBlue":"#D6ACFF","terminal.ansiBrightCyan":"#A4FFFF","terminal.ansiBrightGreen":"#69FF94","terminal.ansiBrightMagenta":"#FF92DF","terminal.ansiBrightRed":"#FF6E6E","terminal.ansiBrightWhite":"#FFFFFF","terminal.ansiBrightYellow":"#FFFFA5","terminal.ansiCyan":"#8BE9FD","terminal.ansiGreen":"#50FA7B","terminal.ansiMagenta":"#FF79C6","terminal.ansiRed":"#FF5555","terminal.ansiWhite":"#F8F8F2","terminal.ansiYellow":"#F1FA8C","terminal.background":"#282A36","terminal.foreground":"#F8F8F2","titleBar.activeBackground":"#21222C","titleBar.activeForeground":"#F8F8F2","titleBar.inactiveBackground":"#191A21","titleBar.inactiveForeground":"#6272A4","walkThrough.embeddedEditorBackground":"#21222C"},"displayName":"Dracula Theme","name":"dracula","semanticHighlighting":true,"tokenColors":[{"scope":["emphasis"],"settings":{"fontStyle":"italic"}},{"scope":["strong"],"settings":{"fontStyle":"bold"}},{"scope":["header"],"settings":{"foreground":"#BD93F9"}},{"scope":["meta.diff","meta.diff.header"],"settings":{"foreground":"#6272A4"}},{"scope":["markup.inserted"],"settings":{"foreground":"#50FA7B"}},{"scope":["markup.deleted"],"settings":{"foreground":"#FF5555"}},{"scope":["markup.changed"],"settings":{"foreground":"#FFB86C"}},{"scope":["invalid"],"settings":{"fontStyle":"underline italic","foreground":"#FF5555"}},{"scope":["invalid.deprecated"],"settings":{"fontStyle":"underline italic","foreground":"#F8F8F2"}},{"scope":["entity.name.filename"],"settings":{"foreground":"#F1FA8C"}},{"scope":["markup.error"],"settings":{"foreground":"#FF5555"}},{"scope":["markup.underline"],"settings":{"fontStyle":"underline"}},{"scope":["markup.bold"],"settings":{"fontStyle":"bold","foreground":"#FFB86C"}},{"scope":["markup.heading"],"settings":{"fontStyle":"bold","foreground":"#BD93F9"}},{"scope":["markup.italic"],"settings":{"fontStyle":"italic","foreground":"#F1FA8C"}},{"scope":["beginning.punctuation.definition.list.markdown","beginning.punctuation.definition.quote.markdown","punctuation.definition.link.restructuredtext"],"settings":{"foreground":"#8BE9FD"}},{"scope":["markup.inline.raw","markup.raw.restructuredtext"],"settings":{"foreground":"#50FA7B"}},{"scope":["markup.underline.link","markup.underline.link.image"],"settings":{"foreground":"#8BE9FD"}},{"scope":["meta.link.reference.def.restructuredtext","punctuation.definition.directive.restructuredtext","string.other.link.description","string.other.link.title"],"settings":{"foreground":"#FF79C6"}},{"scope":["entity.name.directive.restructuredtext","markup.quote"],"settings":{"fontStyle":"italic","foreground":"#F1FA8C"}},{"scope":["meta.separator.markdown"],"settings":{"foreground":"#6272A4"}},{"scope":["fenced_code.block.language","markup.raw.inner.restructuredtext","markup.fenced_code.block.markdown punctuation.definition.markdown"],"settings":{"foreground":"#50FA7B"}},{"scope":["punctuation.definition.constant.restructuredtext"],"settings":{"foreground":"#BD93F9"}},{"scope":["markup.heading.markdown punctuation.definition.string.begin","markup.heading.markdown punctuation.definition.string.end"],"settings":{"foreground":"#BD93F9"}},{"scope":["meta.paragraph.markdown punctuation.definition.string.begin","meta.paragraph.markdown punctuation.definition.string.end"],"settings":{"foreground":"#F8F8F2"}},{"scope":["markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.begin","markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.end"],"settings":{"foreground":"#F1FA8C"}},{"scope":["entity.name.type.class","entity.name.class"],"settings":{"fontStyle":"normal","foreground":"#8BE9FD"}},{"scope":["keyword.expressions-and-types.swift","keyword.other.this","variable.language","variable.language punctuation.definition.variable.php","variable.other.readwrite.instance.ruby","variable.parameter.function.language.special"],"settings":{"fontStyle":"italic","foreground":"#BD93F9"}},{"scope":["entity.other.inherited-class"],"settings":{"fontStyle":"italic","foreground":"#8BE9FD"}},{"scope":["comment","punctuation.definition.comment","unused.comment","wildcard.comment"],"settings":{"foreground":"#6272A4"}},{"scope":["comment keyword.codetag.notation","comment.block.documentation keyword","comment.block.documentation storage.type.class"],"settings":{"foreground":"#FF79C6"}},{"scope":["comment.block.documentation entity.name.type"],"settings":{"fontStyle":"italic","foreground":"#8BE9FD"}},{"scope":["comment.block.documentation entity.name.type punctuation.definition.bracket"],"settings":{"foreground":"#8BE9FD"}},{"scope":["comment.block.documentation variable"],"settings":{"fontStyle":"italic","foreground":"#FFB86C"}},{"scope":["constant","variable.other.constant"],"settings":{"foreground":"#BD93F9"}},{"scope":["constant.character.escape","constant.character.string.escape","constant.regexp"],"settings":{"foreground":"#FF79C6"}},{"scope":["entity.name.tag"],"settings":{"foreground":"#FF79C6"}},{"scope":["entity.other.attribute-name.parent-selector"],"settings":{"foreground":"#FF79C6"}},{"scope":["entity.other.attribute-name"],"settings":{"fontStyle":"italic","foreground":"#50FA7B"}},{"scope":["entity.name.function","meta.function-call.object","meta.function-call.php","meta.function-call.static","meta.method-call.java meta.method","meta.method.groovy","support.function.any-method.lua","keyword.operator.function.infix"],"settings":{"foreground":"#50FA7B"}},{"scope":["entity.name.variable.parameter","meta.at-rule.function variable","meta.at-rule.mixin variable","meta.function.arguments variable.other.php","meta.selectionset.graphql meta.arguments.graphql variable.arguments.graphql","variable.parameter"],"settings":{"fontStyle":"italic","foreground":"#FFB86C"}},{"scope":["meta.decorator variable.other.readwrite","meta.decorator variable.other.property"],"settings":{"fontStyle":"italic","foreground":"#50FA7B"}},{"scope":["meta.decorator variable.other.object"],"settings":{"foreground":"#50FA7B"}},{"scope":["keyword","punctuation.definition.keyword"],"settings":{"foreground":"#FF79C6"}},{"scope":["keyword.control.new","keyword.operator.new"],"settings":{"fontStyle":"bold"}},{"scope":["meta.selector"],"settings":{"foreground":"#FF79C6"}},{"scope":["support"],"settings":{"fontStyle":"italic","foreground":"#8BE9FD"}},{"scope":["support.function.magic","support.variable","variable.other.predefined"],"settings":{"fontStyle":"regular","foreground":"#BD93F9"}},{"scope":["support.function","support.type.property-name"],"settings":{"fontStyle":"regular"}},{"scope":["constant.other.symbol.hashkey punctuation.definition.constant.ruby","entity.other.attribute-name.placeholder punctuation","entity.other.attribute-name.pseudo-class punctuation","entity.other.attribute-name.pseudo-element punctuation","meta.group.double.toml","meta.group.toml","meta.object-binding-pattern-variable punctuation.destructuring","punctuation.colon.graphql","punctuation.definition.block.scalar.folded.yaml","punctuation.definition.block.scalar.literal.yaml","punctuation.definition.block.sequence.item.yaml","punctuation.definition.entity.other.inherited-class","punctuation.function.swift","punctuation.separator.dictionary.key-value","punctuation.separator.hash","punctuation.separator.inheritance","punctuation.separator.key-value","punctuation.separator.key-value.mapping.yaml","punctuation.separator.namespace","punctuation.separator.pointer-access","punctuation.separator.slice","string.unquoted.heredoc punctuation.definition.string","support.other.chomping-indicator.yaml","punctuation.separator.annotation"],"settings":{"foreground":"#FF79C6"}},{"scope":["keyword.operator.other.powershell","keyword.other.statement-separator.powershell","meta.brace.round","meta.function-call punctuation","punctuation.definition.arguments.begin","punctuation.definition.arguments.end","punctuation.definition.entity.begin","punctuation.definition.entity.end","punctuation.definition.tag.cs","punctuation.definition.type.begin","punctuation.definition.type.end","punctuation.section.scope.begin","punctuation.section.scope.end","punctuation.terminator.expression.php","storage.type.generic.java","string.template meta.brace","string.template punctuation.accessor"],"settings":{"foreground":"#F8F8F2"}},{"scope":["meta.string-contents.quoted.double punctuation.definition.variable","punctuation.definition.interpolation.begin","punctuation.definition.interpolation.end","punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded.begin","punctuation.section.embedded.coffee","punctuation.section.embedded.end","punctuation.section.embedded.end source.php","punctuation.section.embedded.end source.ruby","punctuation.definition.variable.makefile"],"settings":{"foreground":"#FF79C6"}},{"scope":["entity.name.function.target.makefile","entity.name.section.toml","entity.name.tag.yaml","variable.other.key.toml"],"settings":{"foreground":"#8BE9FD"}},{"scope":["constant.other.date","constant.other.timestamp"],"settings":{"foreground":"#FFB86C"}},{"scope":["variable.other.alias.yaml"],"settings":{"fontStyle":"italic underline","foreground":"#50FA7B"}},{"scope":["storage","meta.implementation storage.type.objc","meta.interface-or-protocol storage.type.objc","source.groovy storage.type.def"],"settings":{"fontStyle":"regular","foreground":"#FF79C6"}},{"scope":["entity.name.type","keyword.primitive-datatypes.swift","keyword.type.cs","meta.protocol-list.objc","meta.return-type.objc","source.go storage.type","source.groovy storage.type","source.java storage.type","source.powershell entity.other.attribute-name","storage.class.std.rust","storage.type.attribute.swift","storage.type.c","storage.type.core.rust","storage.type.cs","storage.type.groovy","storage.type.objc","storage.type.php","storage.type.haskell","storage.type.ocaml"],"settings":{"fontStyle":"italic","foreground":"#8BE9FD"}},{"scope":["entity.name.type.type-parameter","meta.indexer.mappedtype.declaration entity.name.type","meta.type.parameters entity.name.type"],"settings":{"foreground":"#FFB86C"}},{"scope":["storage.modifier"],"settings":{"foreground":"#FF79C6"}},{"scope":["string.regexp","constant.other.character-class.set.regexp","constant.character.escape.backslash.regexp"],"settings":{"foreground":"#F1FA8C"}},{"scope":["punctuation.definition.group.capture.regexp"],"settings":{"foreground":"#FF79C6"}},{"scope":["string.regexp punctuation.definition.string.begin","string.regexp punctuation.definition.string.end"],"settings":{"foreground":"#FF5555"}},{"scope":["punctuation.definition.character-class.regexp"],"settings":{"foreground":"#8BE9FD"}},{"scope":["punctuation.definition.group.regexp"],"settings":{"foreground":"#FFB86C"}},{"scope":["punctuation.definition.group.assertion.regexp","keyword.operator.negation.regexp"],"settings":{"foreground":"#FF5555"}},{"scope":["meta.assertion.look-ahead.regexp"],"settings":{"foreground":"#50FA7B"}},{"scope":["string"],"settings":{"foreground":"#F1FA8C"}},{"scope":["punctuation.definition.string.begin","punctuation.definition.string.end"],"settings":{"foreground":"#E9F284"}},{"scope":["punctuation.support.type.property-name.begin","punctuation.support.type.property-name.end"],"settings":{"foreground":"#8BE9FE"}},{"scope":["string.quoted.docstring.multi","string.quoted.docstring.multi.python punctuation.definition.string.begin","string.quoted.docstring.multi.python punctuation.definition.string.end","string.quoted.docstring.multi.python constant.character.escape"],"settings":{"foreground":"#6272A4"}},{"scope":["variable","constant.other.key.perl","support.variable.property","variable.other.constant.js","variable.other.constant.ts","variable.other.constant.tsx"],"settings":{"foreground":"#F8F8F2"}},{"scope":["meta.import variable.other.readwrite","meta.variable.assignment.destructured.object.coffee variable"],"settings":{"fontStyle":"italic","foreground":"#FFB86C"}},{"scope":["meta.import variable.other.readwrite.alias","meta.export variable.other.readwrite.alias","meta.variable.assignment.destructured.object.coffee variable variable"],"settings":{"fontStyle":"normal","foreground":"#F8F8F2"}},{"scope":["meta.selectionset.graphql variable"],"settings":{"foreground":"#F1FA8C"}},{"scope":["meta.selectionset.graphql meta.arguments variable"],"settings":{"foreground":"#F8F8F2"}},{"scope":["entity.name.fragment.graphql","variable.fragment.graphql"],"settings":{"foreground":"#8BE9FD"}},{"scope":["constant.other.symbol.hashkey.ruby","keyword.operator.dereference.java","keyword.operator.navigation.groovy","meta.scope.for-loop.shell punctuation.definition.string.begin","meta.scope.for-loop.shell punctuation.definition.string.end","meta.scope.for-loop.shell string","storage.modifier.import","punctuation.section.embedded.begin.tsx","punctuation.section.embedded.end.tsx","punctuation.section.embedded.begin.jsx","punctuation.section.embedded.end.jsx","punctuation.separator.list.comma.css","constant.language.empty-list.haskell"],"settings":{"foreground":"#F8F8F2"}},{"scope":["source.shell variable.other"],"settings":{"foreground":"#BD93F9"}},{"scope":["support.constant"],"settings":{"fontStyle":"normal","foreground":"#BD93F9"}},{"scope":["meta.scope.prerequisites.makefile"],"settings":{"foreground":"#F1FA8C"}},{"scope":["meta.attribute-selector.scss"],"settings":{"foreground":"#F1FA8C"}},{"scope":["punctuation.definition.attribute-selector.end.bracket.square.scss","punctuation.definition.attribute-selector.begin.bracket.square.scss"],"settings":{"foreground":"#F8F8F2"}},{"scope":["meta.preprocessor.haskell"],"settings":{"foreground":"#6272A4"}},{"scope":["log.error"],"settings":{"fontStyle":"bold","foreground":"#FF5555"}},{"scope":["log.warning"],"settings":{"fontStyle":"bold","foreground":"#F1FA8C"}}],"type":"dark"}'));export{e as default}; ================================================ FILE: jesse/static/_nuxt/Bzb7OGdO.js ================================================ /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var e={wordPattern:/(#?-?\d*\.\d\w*%?)|([@$#!.:]?[\w-?]+%?)|[@#!.]/g,comments:{blockComment:["/*","*/"],lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},t={defaultToken:"",tokenPostfix:".scss",ws:`[ \r\f]*`,identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@variabledeclaration"},{include:"@warndebug"},["[@](include)",{token:"keyword",next:"@includedeclaration"}],["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["[@](function)",{token:"keyword",next:"@functiondeclaration"}],["[@](mixin)",{token:"keyword",next:"@mixindeclaration"}],["url(\\-prefix)?\\(",{token:"meta",next:"@urldeclaration"}],{include:"@controlstatement"},{include:"@selectorname"},["[&\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.curly",next:"@selectorbody"}]],selectorbody:[["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],{include:"@selector"},["[@](extend)",{token:"keyword",next:"@extendbody"}],["[@](return)",{token:"keyword",next:"@declarationbody"}],["}",{token:"delimiter.curly",next:"@pop"}]],selectorname:[["#{",{token:"meta",next:"@variableinterpolation"}],["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["url(\\-prefix)?\\(",{token:"meta",next:"@urldeclaration"}],{include:"@functioninvocation"},{include:"@numbers"},{include:"@strings"},{include:"@variablereference"},["(and\\b|or\\b|not\\b)","operator"],{include:"@name"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","operator"],[",","delimiter"],["!default","literal"],["\\(",{token:"delimiter.parenthesis",next:"@parenthizedterm"}]],rulevalue:[{include:"@term"},["!important","literal"],[";","delimiter","@pop"],["{",{token:"delimiter.curly",switchTo:"@nestedproperty"}],["(?=})",{token:"",next:"@pop"}]],nestedproperty:[["[*_]?@identifier@ws:","attribute.name","@rulevalue"],{include:"@comments"},["}",{token:"delimiter.curly",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],variabledeclaration:[["\\$@identifier@ws:","variable.decl","@declarationbody"]],urldeclaration:[{include:"@strings"},[`[^)\r ]+`,"string"],["\\)",{token:"meta",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],extendbody:[{include:"@selectorname"},["!optional","literal"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],variablereference:[["\\$@identifier","variable.ref"],["\\.\\.\\.","operator"],["#{",{token:"meta",next:"@variableinterpolation"}]],variableinterpolation:[{include:"@variablereference"},["}",{token:"meta",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],name:[["@identifier","attribute.value"]],numbers:[["(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","number.hex"]],units:[["(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","number","@pop"]],functiondeclaration:[["@identifier@ws\\(",{token:"meta",next:"@parameterdeclaration"}],["{",{token:"delimiter.curly",switchTo:"@functionbody"}]],mixindeclaration:[["@identifier@ws\\(",{token:"meta",next:"@parameterdeclaration"}],["@identifier","meta"],["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],parameterdeclaration:[["\\$@identifier@ws:","variable.decl"],["\\.\\.\\.","operator"],[",","delimiter"],{include:"@term"},["\\)",{token:"meta",next:"@pop"}]],includedeclaration:[{include:"@functioninvocation"},["@identifier","meta"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}],["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],keyframedeclaration:[["@identifier","meta"],["{",{token:"delimiter.curly",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.curly",next:"@selectorbody"}],["}",{token:"delimiter.curly",next:"@pop"}]],controlstatement:[["[@](if|else|for|while|each|media)",{token:"keyword.flow",next:"@controlstatementdeclaration"}]],controlstatementdeclaration:[["(in|from|through|if|to)\\b",{token:"keyword.flow"}],{include:"@term"},["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],functionbody:[["[@](return)",{token:"keyword"}],{include:"@variabledeclaration"},{include:"@term"},{include:"@controlstatement"},[";","delimiter"],["}",{token:"delimiter.curly",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"meta",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"meta",next:"@pop"}]],strings:[['~?"',{token:"string.delimiter",next:"@stringenddoublequote"}],["~?'",{token:"string.delimiter",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string.delimiter",next:"@pop"}],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string.delimiter",next:"@pop"}],[".","string"]]}};export{e as conf,t as language}; ================================================ FILE: jesse/static/_nuxt/C-_shW-Y.js ================================================ const e=Object.freeze(JSON.parse('{"colors":{"activityBar.activeBackground":"#00000000","activityBar.activeBorder":"#00000000","activityBar.activeFocusBorder":"#00000000","activityBar.background":"#181926","activityBar.border":"#00000000","activityBar.dropBorder":"#c6a0f633","activityBar.foreground":"#c6a0f6","activityBar.inactiveForeground":"#6e738d","activityBarBadge.background":"#c6a0f6","activityBarBadge.foreground":"#181926","activityBarTop.activeBorder":"#00000000","activityBarTop.dropBorder":"#c6a0f633","activityBarTop.foreground":"#c6a0f6","activityBarTop.inactiveForeground":"#6e738d","badge.background":"#494d64","badge.foreground":"#cad3f5","banner.background":"#494d64","banner.foreground":"#cad3f5","banner.iconForeground":"#cad3f5","breadcrumb.activeSelectionForeground":"#c6a0f6","breadcrumb.background":"#24273a","breadcrumb.focusForeground":"#c6a0f6","breadcrumb.foreground":"#cad3f5cc","breadcrumbPicker.background":"#1e2030","button.background":"#c6a0f6","button.border":"#00000000","button.foreground":"#181926","button.hoverBackground":"#dac1f9","button.secondaryBackground":"#5b6078","button.secondaryBorder":"#c6a0f6","button.secondaryForeground":"#cad3f5","button.secondaryHoverBackground":"#6a708c","button.separator":"#00000000","charts.blue":"#8aadf4","charts.foreground":"#cad3f5","charts.green":"#a6da95","charts.lines":"#b8c0e0","charts.orange":"#f5a97f","charts.purple":"#c6a0f6","charts.red":"#ed8796","charts.yellow":"#eed49f","checkbox.background":"#494d64","checkbox.border":"#00000000","checkbox.foreground":"#c6a0f6","commandCenter.activeBackground":"#5b607833","commandCenter.activeBorder":"#c6a0f6","commandCenter.activeForeground":"#c6a0f6","commandCenter.background":"#1e2030","commandCenter.border":"#00000000","commandCenter.foreground":"#b8c0e0","commandCenter.inactiveBorder":"#00000000","commandCenter.inactiveForeground":"#b8c0e0","debugConsole.errorForeground":"#ed8796","debugConsole.infoForeground":"#8aadf4","debugConsole.sourceForeground":"#f4dbd6","debugConsole.warningForeground":"#f5a97f","debugConsoleInputIcon.foreground":"#cad3f5","debugExceptionWidget.background":"#181926","debugExceptionWidget.border":"#c6a0f6","debugIcon.breakpointCurrentStackframeForeground":"#5b6078","debugIcon.breakpointDisabledForeground":"#ed879699","debugIcon.breakpointForeground":"#ed8796","debugIcon.breakpointStackframeForeground":"#5b6078","debugIcon.breakpointUnverifiedForeground":"#a47487","debugIcon.continueForeground":"#a6da95","debugIcon.disconnectForeground":"#5b6078","debugIcon.pauseForeground":"#8aadf4","debugIcon.restartForeground":"#8bd5ca","debugIcon.startForeground":"#a6da95","debugIcon.stepBackForeground":"#5b6078","debugIcon.stepIntoForeground":"#cad3f5","debugIcon.stepOutForeground":"#cad3f5","debugIcon.stepOverForeground":"#c6a0f6","debugIcon.stopForeground":"#ed8796","debugTokenExpression.boolean":"#c6a0f6","debugTokenExpression.error":"#ed8796","debugTokenExpression.number":"#f5a97f","debugTokenExpression.string":"#a6da95","debugToolBar.background":"#181926","debugToolBar.border":"#00000000","descriptionForeground":"#cad3f5","diffEditor.border":"#5b6078","diffEditor.diagonalFill":"#5b607899","diffEditor.insertedLineBackground":"#a6da9526","diffEditor.insertedTextBackground":"#a6da951a","diffEditor.removedLineBackground":"#ed879626","diffEditor.removedTextBackground":"#ed87961a","diffEditorOverview.insertedForeground":"#a6da95cc","diffEditorOverview.removedForeground":"#ed8796cc","disabledForeground":"#a5adcb","dropdown.background":"#1e2030","dropdown.border":"#c6a0f6","dropdown.foreground":"#cad3f5","dropdown.listBackground":"#5b6078","editor.background":"#24273a","editor.findMatchBackground":"#604456","editor.findMatchBorder":"#ed879633","editor.findMatchHighlightBackground":"#455c6d","editor.findMatchHighlightBorder":"#91d7e333","editor.findRangeHighlightBackground":"#455c6d","editor.findRangeHighlightBorder":"#91d7e333","editor.focusedStackFrameHighlightBackground":"#a6da9526","editor.foldBackground":"#91d7e340","editor.foreground":"#cad3f5","editor.hoverHighlightBackground":"#91d7e340","editor.lineHighlightBackground":"#cad3f512","editor.lineHighlightBorder":"#00000000","editor.rangeHighlightBackground":"#91d7e340","editor.rangeHighlightBorder":"#00000000","editor.selectionBackground":"#939ab740","editor.selectionHighlightBackground":"#939ab733","editor.selectionHighlightBorder":"#939ab733","editor.stackFrameHighlightBackground":"#eed49f26","editor.wordHighlightBackground":"#939ab733","editor.wordHighlightStrongBackground":"#8aadf433","editorBracketHighlight.foreground1":"#ed8796","editorBracketHighlight.foreground2":"#f5a97f","editorBracketHighlight.foreground3":"#eed49f","editorBracketHighlight.foreground4":"#a6da95","editorBracketHighlight.foreground5":"#7dc4e4","editorBracketHighlight.foreground6":"#c6a0f6","editorBracketHighlight.unexpectedBracket.foreground":"#ee99a0","editorBracketMatch.background":"#939ab71a","editorBracketMatch.border":"#939ab7","editorCodeLens.foreground":"#8087a2","editorCursor.background":"#24273a","editorCursor.foreground":"#f4dbd6","editorError.background":"#00000000","editorError.border":"#00000000","editorError.foreground":"#ed8796","editorGroup.border":"#5b6078","editorGroup.dropBackground":"#c6a0f633","editorGroup.emptyBackground":"#24273a","editorGroupHeader.tabsBackground":"#181926","editorGutter.addedBackground":"#a6da95","editorGutter.background":"#24273a","editorGutter.commentGlyphForeground":"#c6a0f6","editorGutter.commentRangeForeground":"#363a4f","editorGutter.deletedBackground":"#ed8796","editorGutter.foldingControlForeground":"#939ab7","editorGutter.modifiedBackground":"#eed49f","editorHoverWidget.background":"#1e2030","editorHoverWidget.border":"#5b6078","editorHoverWidget.foreground":"#cad3f5","editorIndentGuide.activeBackground":"#5b6078","editorIndentGuide.background":"#494d64","editorInfo.background":"#00000000","editorInfo.border":"#00000000","editorInfo.foreground":"#8aadf4","editorInlayHint.background":"#1e2030bf","editorInlayHint.foreground":"#5b6078","editorInlayHint.parameterBackground":"#1e2030bf","editorInlayHint.parameterForeground":"#a5adcb","editorInlayHint.typeBackground":"#1e2030bf","editorInlayHint.typeForeground":"#b8c0e0","editorLightBulb.foreground":"#eed49f","editorLineNumber.activeForeground":"#c6a0f6","editorLineNumber.foreground":"#8087a2","editorLink.activeForeground":"#c6a0f6","editorMarkerNavigation.background":"#1e2030","editorMarkerNavigationError.background":"#ed8796","editorMarkerNavigationInfo.background":"#8aadf4","editorMarkerNavigationWarning.background":"#f5a97f","editorOverviewRuler.background":"#1e2030","editorOverviewRuler.border":"#cad3f512","editorOverviewRuler.modifiedForeground":"#eed49f","editorRuler.foreground":"#5b6078","editorStickyScrollHover.background":"#363a4f","editorSuggestWidget.background":"#1e2030","editorSuggestWidget.border":"#5b6078","editorSuggestWidget.foreground":"#cad3f5","editorSuggestWidget.highlightForeground":"#c6a0f6","editorSuggestWidget.selectedBackground":"#363a4f","editorWarning.background":"#00000000","editorWarning.border":"#00000000","editorWarning.foreground":"#f5a97f","editorWhitespace.foreground":"#939ab766","editorWidget.background":"#1e2030","editorWidget.foreground":"#cad3f5","editorWidget.resizeBorder":"#5b6078","errorForeground":"#ed8796","errorLens.errorBackground":"#ed879626","errorLens.errorBackgroundLight":"#ed879626","errorLens.errorForeground":"#ed8796","errorLens.errorForegroundLight":"#ed8796","errorLens.errorMessageBackground":"#ed879626","errorLens.hintBackground":"#a6da9526","errorLens.hintBackgroundLight":"#a6da9526","errorLens.hintForeground":"#a6da95","errorLens.hintForegroundLight":"#a6da95","errorLens.hintMessageBackground":"#a6da9526","errorLens.infoBackground":"#8aadf426","errorLens.infoBackgroundLight":"#8aadf426","errorLens.infoForeground":"#8aadf4","errorLens.infoForegroundLight":"#8aadf4","errorLens.infoMessageBackground":"#8aadf426","errorLens.statusBarErrorForeground":"#ed8796","errorLens.statusBarHintForeground":"#a6da95","errorLens.statusBarIconErrorForeground":"#ed8796","errorLens.statusBarIconWarningForeground":"#f5a97f","errorLens.statusBarInfoForeground":"#8aadf4","errorLens.statusBarWarningForeground":"#f5a97f","errorLens.warningBackground":"#f5a97f26","errorLens.warningBackgroundLight":"#f5a97f26","errorLens.warningForeground":"#f5a97f","errorLens.warningForegroundLight":"#f5a97f","errorLens.warningMessageBackground":"#f5a97f26","extensionBadge.remoteBackground":"#8aadf4","extensionBadge.remoteForeground":"#181926","extensionButton.prominentBackground":"#c6a0f6","extensionButton.prominentForeground":"#181926","extensionButton.prominentHoverBackground":"#dac1f9","extensionButton.separator":"#24273a","extensionIcon.preReleaseForeground":"#5b6078","extensionIcon.sponsorForeground":"#f5bde6","extensionIcon.starForeground":"#eed49f","extensionIcon.verifiedForeground":"#a6da95","focusBorder":"#c6a0f6","foreground":"#cad3f5","gitDecoration.addedResourceForeground":"#a6da95","gitDecoration.conflictingResourceForeground":"#c6a0f6","gitDecoration.deletedResourceForeground":"#ed8796","gitDecoration.ignoredResourceForeground":"#6e738d","gitDecoration.modifiedResourceForeground":"#eed49f","gitDecoration.stageDeletedResourceForeground":"#ed8796","gitDecoration.stageModifiedResourceForeground":"#eed49f","gitDecoration.submoduleResourceForeground":"#8aadf4","gitDecoration.untrackedResourceForeground":"#a6da95","gitlens.closedAutolinkedIssueIconColor":"#c6a0f6","gitlens.closedPullRequestIconColor":"#ed8796","gitlens.decorations.branchAheadForegroundColor":"#a6da95","gitlens.decorations.branchBehindForegroundColor":"#f5a97f","gitlens.decorations.branchDivergedForegroundColor":"#eed49f","gitlens.decorations.branchMissingUpstreamForegroundColor":"#f5a97f","gitlens.decorations.branchUnpublishedForegroundColor":"#a6da95","gitlens.decorations.statusMergingOrRebasingConflictForegroundColor":"#ee99a0","gitlens.decorations.statusMergingOrRebasingForegroundColor":"#eed49f","gitlens.decorations.workspaceCurrentForegroundColor":"#c6a0f6","gitlens.decorations.workspaceRepoMissingForegroundColor":"#a5adcb","gitlens.decorations.workspaceRepoOpenForegroundColor":"#c6a0f6","gitlens.decorations.worktreeHasUncommittedChangesForegroundColor":"#f5a97f","gitlens.decorations.worktreeMissingForegroundColor":"#ee99a0","gitlens.graphChangesColumnAddedColor":"#a6da95","gitlens.graphChangesColumnDeletedColor":"#ed8796","gitlens.graphLane10Color":"#f5bde6","gitlens.graphLane1Color":"#c6a0f6","gitlens.graphLane2Color":"#eed49f","gitlens.graphLane3Color":"#8aadf4","gitlens.graphLane4Color":"#f0c6c6","gitlens.graphLane5Color":"#a6da95","gitlens.graphLane6Color":"#b7bdf8","gitlens.graphLane7Color":"#f4dbd6","gitlens.graphLane8Color":"#ed8796","gitlens.graphLane9Color":"#8bd5ca","gitlens.graphMinimapMarkerHeadColor":"#a6da95","gitlens.graphMinimapMarkerHighlightsColor":"#eed49f","gitlens.graphMinimapMarkerLocalBranchesColor":"#8aadf4","gitlens.graphMinimapMarkerRemoteBranchesColor":"#739df2","gitlens.graphMinimapMarkerStashesColor":"#c6a0f6","gitlens.graphMinimapMarkerTagsColor":"#f0c6c6","gitlens.graphMinimapMarkerUpstreamColor":"#96d382","gitlens.graphScrollMarkerHeadColor":"#a6da95","gitlens.graphScrollMarkerHighlightsColor":"#eed49f","gitlens.graphScrollMarkerLocalBranchesColor":"#8aadf4","gitlens.graphScrollMarkerRemoteBranchesColor":"#739df2","gitlens.graphScrollMarkerStashesColor":"#c6a0f6","gitlens.graphScrollMarkerTagsColor":"#f0c6c6","gitlens.graphScrollMarkerUpstreamColor":"#96d382","gitlens.gutterBackgroundColor":"#363a4f4d","gitlens.gutterForegroundColor":"#cad3f5","gitlens.gutterUncommittedForegroundColor":"#c6a0f6","gitlens.lineHighlightBackgroundColor":"#c6a0f626","gitlens.lineHighlightOverviewRulerColor":"#c6a0f6cc","gitlens.mergedPullRequestIconColor":"#c6a0f6","gitlens.openAutolinkedIssueIconColor":"#a6da95","gitlens.openPullRequestIconColor":"#a6da95","gitlens.trailingLineBackgroundColor":"#00000000","gitlens.trailingLineForegroundColor":"#cad3f54d","gitlens.unpublishedChangesIconColor":"#a6da95","gitlens.unpublishedCommitIconColor":"#a6da95","gitlens.unpulledChangesIconColor":"#f5a97f","icon.foreground":"#c6a0f6","input.background":"#363a4f","input.border":"#00000000","input.foreground":"#cad3f5","input.placeholderForeground":"#cad3f573","inputOption.activeBackground":"#5b6078","inputOption.activeBorder":"#c6a0f6","inputOption.activeForeground":"#cad3f5","inputValidation.errorBackground":"#ed8796","inputValidation.errorBorder":"#18192633","inputValidation.errorForeground":"#181926","inputValidation.infoBackground":"#8aadf4","inputValidation.infoBorder":"#18192633","inputValidation.infoForeground":"#181926","inputValidation.warningBackground":"#f5a97f","inputValidation.warningBorder":"#18192633","inputValidation.warningForeground":"#181926","issues.closed":"#c6a0f6","issues.newIssueDecoration":"#f4dbd6","issues.open":"#a6da95","list.activeSelectionBackground":"#363a4f","list.activeSelectionForeground":"#cad3f5","list.dropBackground":"#c6a0f633","list.focusAndSelectionBackground":"#494d64","list.focusBackground":"#363a4f","list.focusForeground":"#cad3f5","list.focusOutline":"#00000000","list.highlightForeground":"#c6a0f6","list.hoverBackground":"#363a4f80","list.hoverForeground":"#cad3f5","list.inactiveSelectionBackground":"#363a4f","list.inactiveSelectionForeground":"#cad3f5","list.warningForeground":"#f5a97f","listFilterWidget.background":"#494d64","listFilterWidget.noMatchesOutline":"#ed8796","listFilterWidget.outline":"#00000000","menu.background":"#24273a","menu.border":"#24273a80","menu.foreground":"#cad3f5","menu.selectionBackground":"#5b6078","menu.selectionBorder":"#00000000","menu.selectionForeground":"#cad3f5","menu.separatorBackground":"#5b6078","menubar.selectionBackground":"#494d64","menubar.selectionForeground":"#cad3f5","merge.commonContentBackground":"#494d64","merge.commonHeaderBackground":"#5b6078","merge.currentContentBackground":"#a6da9533","merge.currentHeaderBackground":"#a6da9566","merge.incomingContentBackground":"#8aadf433","merge.incomingHeaderBackground":"#8aadf466","minimap.background":"#1e203080","minimap.errorHighlight":"#ed8796bf","minimap.findMatchHighlight":"#91d7e34d","minimap.selectionHighlight":"#5b6078bf","minimap.selectionOccurrenceHighlight":"#5b6078bf","minimap.warningHighlight":"#f5a97fbf","minimapGutter.addedBackground":"#a6da95bf","minimapGutter.deletedBackground":"#ed8796bf","minimapGutter.modifiedBackground":"#eed49fbf","minimapSlider.activeBackground":"#c6a0f699","minimapSlider.background":"#c6a0f633","minimapSlider.hoverBackground":"#c6a0f666","notificationCenter.border":"#c6a0f6","notificationCenterHeader.background":"#1e2030","notificationCenterHeader.foreground":"#cad3f5","notificationLink.foreground":"#8aadf4","notificationToast.border":"#c6a0f6","notifications.background":"#1e2030","notifications.border":"#c6a0f6","notifications.foreground":"#cad3f5","notificationsErrorIcon.foreground":"#ed8796","notificationsInfoIcon.foreground":"#8aadf4","notificationsWarningIcon.foreground":"#f5a97f","panel.background":"#24273a","panel.border":"#5b6078","panelSection.border":"#5b6078","panelSection.dropBackground":"#c6a0f633","panelTitle.activeBorder":"#c6a0f6","panelTitle.activeForeground":"#cad3f5","panelTitle.inactiveForeground":"#a5adcb","peekView.border":"#c6a0f6","peekViewEditor.background":"#1e2030","peekViewEditor.matchHighlightBackground":"#91d7e34d","peekViewEditor.matchHighlightBorder":"#00000000","peekViewEditorGutter.background":"#1e2030","peekViewResult.background":"#1e2030","peekViewResult.fileForeground":"#cad3f5","peekViewResult.lineForeground":"#cad3f5","peekViewResult.matchHighlightBackground":"#91d7e34d","peekViewResult.selectionBackground":"#363a4f","peekViewResult.selectionForeground":"#cad3f5","peekViewTitle.background":"#24273a","peekViewTitleDescription.foreground":"#b8c0e0b3","peekViewTitleLabel.foreground":"#cad3f5","pickerGroup.border":"#c6a0f6","pickerGroup.foreground":"#c6a0f6","problemsErrorIcon.foreground":"#ed8796","problemsInfoIcon.foreground":"#8aadf4","problemsWarningIcon.foreground":"#f5a97f","progressBar.background":"#c6a0f6","pullRequests.closed":"#ed8796","pullRequests.draft":"#939ab7","pullRequests.merged":"#c6a0f6","pullRequests.notification":"#cad3f5","pullRequests.open":"#a6da95","sash.hoverBorder":"#c6a0f6","scrollbar.shadow":"#181926","scrollbarSlider.activeBackground":"#363a4f66","scrollbarSlider.background":"#5b607880","scrollbarSlider.hoverBackground":"#6e738d","selection.background":"#c6a0f666","settings.dropdownBackground":"#494d64","settings.dropdownListBorder":"#00000000","settings.focusedRowBackground":"#5b607833","settings.headerForeground":"#cad3f5","settings.modifiedItemIndicator":"#c6a0f6","settings.numberInputBackground":"#494d64","settings.numberInputBorder":"#00000000","settings.textInputBackground":"#494d64","settings.textInputBorder":"#00000000","sideBar.background":"#1e2030","sideBar.border":"#00000000","sideBar.dropBackground":"#c6a0f633","sideBar.foreground":"#cad3f5","sideBarSectionHeader.background":"#1e2030","sideBarSectionHeader.foreground":"#cad3f5","sideBarTitle.foreground":"#c6a0f6","statusBar.background":"#181926","statusBar.border":"#00000000","statusBar.debuggingBackground":"#f5a97f","statusBar.debuggingBorder":"#00000000","statusBar.debuggingForeground":"#181926","statusBar.foreground":"#cad3f5","statusBar.noFolderBackground":"#181926","statusBar.noFolderBorder":"#00000000","statusBar.noFolderForeground":"#cad3f5","statusBarItem.activeBackground":"#5b607866","statusBarItem.errorBackground":"#00000000","statusBarItem.errorForeground":"#ed8796","statusBarItem.hoverBackground":"#5b607833","statusBarItem.prominentBackground":"#00000000","statusBarItem.prominentForeground":"#c6a0f6","statusBarItem.prominentHoverBackground":"#5b607833","statusBarItem.remoteBackground":"#8aadf4","statusBarItem.remoteForeground":"#181926","statusBarItem.warningBackground":"#00000000","statusBarItem.warningForeground":"#f5a97f","symbolIcon.arrayForeground":"#f5a97f","symbolIcon.booleanForeground":"#c6a0f6","symbolIcon.classForeground":"#eed49f","symbolIcon.colorForeground":"#f5bde6","symbolIcon.constantForeground":"#f5a97f","symbolIcon.constructorForeground":"#b7bdf8","symbolIcon.enumeratorForeground":"#eed49f","symbolIcon.enumeratorMemberForeground":"#eed49f","symbolIcon.eventForeground":"#f5bde6","symbolIcon.fieldForeground":"#cad3f5","symbolIcon.fileForeground":"#c6a0f6","symbolIcon.folderForeground":"#c6a0f6","symbolIcon.functionForeground":"#8aadf4","symbolIcon.interfaceForeground":"#eed49f","symbolIcon.keyForeground":"#8bd5ca","symbolIcon.keywordForeground":"#c6a0f6","symbolIcon.methodForeground":"#8aadf4","symbolIcon.moduleForeground":"#cad3f5","symbolIcon.namespaceForeground":"#eed49f","symbolIcon.nullForeground":"#ee99a0","symbolIcon.numberForeground":"#f5a97f","symbolIcon.objectForeground":"#eed49f","symbolIcon.operatorForeground":"#8bd5ca","symbolIcon.packageForeground":"#f0c6c6","symbolIcon.propertyForeground":"#ee99a0","symbolIcon.referenceForeground":"#eed49f","symbolIcon.snippetForeground":"#f0c6c6","symbolIcon.stringForeground":"#a6da95","symbolIcon.structForeground":"#8bd5ca","symbolIcon.textForeground":"#cad3f5","symbolIcon.typeParameterForeground":"#ee99a0","symbolIcon.unitForeground":"#cad3f5","symbolIcon.variableForeground":"#cad3f5","tab.activeBackground":"#24273a","tab.activeBorder":"#00000000","tab.activeBorderTop":"#c6a0f6","tab.activeForeground":"#c6a0f6","tab.activeModifiedBorder":"#eed49f","tab.border":"#1e2030","tab.hoverBackground":"#2e324a","tab.hoverBorder":"#00000000","tab.hoverForeground":"#c6a0f6","tab.inactiveBackground":"#1e2030","tab.inactiveForeground":"#6e738d","tab.inactiveModifiedBorder":"#eed49f4d","tab.lastPinnedBorder":"#c6a0f6","tab.unfocusedActiveBackground":"#1e2030","tab.unfocusedActiveBorder":"#00000000","tab.unfocusedActiveBorderTop":"#c6a0f64d","tab.unfocusedInactiveBackground":"#141620","table.headerBackground":"#363a4f","table.headerForeground":"#cad3f5","terminal.ansiBlack":"#494d64","terminal.ansiBlue":"#8aadf4","terminal.ansiBrightBlack":"#5b6078","terminal.ansiBrightBlue":"#78a1f6","terminal.ansiBrightCyan":"#63cbc0","terminal.ansiBrightGreen":"#8ccf7f","terminal.ansiBrightMagenta":"#f2a9dd","terminal.ansiBrightRed":"#ec7486","terminal.ansiBrightWhite":"#b8c0e0","terminal.ansiBrightYellow":"#e1c682","terminal.ansiCyan":"#8bd5ca","terminal.ansiGreen":"#a6da95","terminal.ansiMagenta":"#f5bde6","terminal.ansiRed":"#ed8796","terminal.ansiWhite":"#a5adcb","terminal.ansiYellow":"#eed49f","terminal.border":"#5b6078","terminal.dropBackground":"#c6a0f633","terminal.foreground":"#cad3f5","terminal.inactiveSelectionBackground":"#5b607880","terminal.selectionBackground":"#5b6078","terminal.tab.activeBorder":"#c6a0f6","terminalCommandDecoration.defaultBackground":"#5b6078","terminalCommandDecoration.errorBackground":"#ed8796","terminalCommandDecoration.successBackground":"#a6da95","terminalCursor.background":"#24273a","terminalCursor.foreground":"#f4dbd6","textBlockQuote.background":"#1e2030","textBlockQuote.border":"#181926","textCodeBlock.background":"#24273a","textLink.activeForeground":"#91d7e3","textLink.foreground":"#8aadf4","textPreformat.foreground":"#cad3f5","textSeparator.foreground":"#c6a0f6","titleBar.activeBackground":"#181926","titleBar.activeForeground":"#cad3f5","titleBar.border":"#00000000","titleBar.inactiveBackground":"#181926","titleBar.inactiveForeground":"#cad3f580","tree.inactiveIndentGuidesStroke":"#494d64","tree.indentGuidesStroke":"#939ab7","walkThrough.embeddedEditorBackground":"#24273a4d","welcomePage.progress.background":"#181926","welcomePage.progress.foreground":"#c6a0f6","welcomePage.tileBackground":"#1e2030","widget.shadow":"#1e203080","window.activeBorder":"#00000000","window.inactiveBorder":"#00000000"},"displayName":"Catppuccin Macchiato","name":"catppuccin-macchiato","semanticHighlighting":true,"semanticTokenColors":{"boolean":{"foreground":"#f5a97f"},"builtinAttribute.attribute.library:rust":{"foreground":"#8aadf4"},"class.builtin:python":{"foreground":"#c6a0f6"},"class:python":{"foreground":"#eed49f"},"constant.builtin.readonly:nix":{"foreground":"#c6a0f6"},"enumMember":{"foreground":"#8bd5ca"},"function.decorator:python":{"foreground":"#f5a97f"},"generic.attribute:rust":{"foreground":"#cad3f5"},"heading":{"foreground":"#ed8796"},"number":{"foreground":"#f5a97f"},"pol":{"foreground":"#f0c6c6"},"property.readonly:javascript":{"foreground":"#cad3f5"},"property.readonly:javascriptreact":{"foreground":"#cad3f5"},"property.readonly:typescript":{"foreground":"#cad3f5"},"property.readonly:typescriptreact":{"foreground":"#cad3f5"},"selfKeyword":{"foreground":"#ed8796"},"text.emph":{"fontStyle":"italic","foreground":"#ed8796"},"text.math":{"foreground":"#f0c6c6"},"text.strong":{"fontStyle":"bold","foreground":"#ed8796"},"tomlArrayKey":{"fontStyle":"","foreground":"#8aadf4"},"tomlTableKey":{"fontStyle":"","foreground":"#8aadf4"},"type.defaultLibrary:go":{"foreground":"#c6a0f6"},"variable.defaultLibrary":{"foreground":"#ee99a0"},"variable.readonly.defaultLibrary:go":{"foreground":"#c6a0f6"},"variable.readonly:javascript":{"foreground":"#cad3f5"},"variable.readonly:javascriptreact":{"foreground":"#cad3f5"},"variable.readonly:scala":{"foreground":"#cad3f5"},"variable.readonly:typescript":{"foreground":"#cad3f5"},"variable.readonly:typescriptreact":{"foreground":"#cad3f5"},"variable.typeHint:python":{"foreground":"#eed49f"}},"tokenColors":[{"scope":["text","source","variable.other.readwrite","punctuation.definition.variable"],"settings":{"foreground":"#cad3f5"}},{"scope":"punctuation","settings":{"fontStyle":"","foreground":"#939ab7"}},{"scope":["comment","punctuation.definition.comment"],"settings":{"fontStyle":"italic","foreground":"#6e738d"}},{"scope":["string","punctuation.definition.string"],"settings":{"foreground":"#a6da95"}},{"scope":"constant.character.escape","settings":{"foreground":"#f5bde6"}},{"scope":["constant.numeric","variable.other.constant","entity.name.constant","constant.language.boolean","constant.language.false","constant.language.true","keyword.other.unit.user-defined","keyword.other.unit.suffix.floating-point"],"settings":{"foreground":"#f5a97f"}},{"scope":["keyword","keyword.operator.word","keyword.operator.new","variable.language.super","support.type.primitive","storage.type","storage.modifier","punctuation.definition.keyword"],"settings":{"fontStyle":"","foreground":"#c6a0f6"}},{"scope":"entity.name.tag.documentation","settings":{"foreground":"#c6a0f6"}},{"scope":["keyword.operator","punctuation.accessor","punctuation.definition.generic","meta.function.closure punctuation.section.parameters","punctuation.definition.tag","punctuation.separator.key-value"],"settings":{"foreground":"#8bd5ca"}},{"scope":["entity.name.function","meta.function-call.method","support.function","support.function.misc","variable.function"],"settings":{"fontStyle":"italic","foreground":"#8aadf4"}},{"scope":["entity.name.class","entity.other.inherited-class","support.class","meta.function-call.constructor","entity.name.struct"],"settings":{"fontStyle":"italic","foreground":"#eed49f"}},{"scope":"entity.name.enum","settings":{"fontStyle":"italic","foreground":"#eed49f"}},{"scope":["meta.enum variable.other.readwrite","variable.other.enummember"],"settings":{"foreground":"#8bd5ca"}},{"scope":"meta.property.object","settings":{"foreground":"#8bd5ca"}},{"scope":["meta.type","meta.type-alias","support.type","entity.name.type"],"settings":{"fontStyle":"italic","foreground":"#eed49f"}},{"scope":["meta.annotation variable.function","meta.annotation variable.annotation.function","meta.annotation punctuation.definition.annotation","meta.decorator","punctuation.decorator"],"settings":{"foreground":"#f5a97f"}},{"scope":["variable.parameter","meta.function.parameters"],"settings":{"fontStyle":"italic","foreground":"#ee99a0"}},{"scope":["constant.language","support.function.builtin"],"settings":{"foreground":"#ed8796"}},{"scope":"entity.other.attribute-name.documentation","settings":{"foreground":"#ed8796"}},{"scope":["keyword.control.directive","punctuation.definition.directive"],"settings":{"foreground":"#eed49f"}},{"scope":"punctuation.definition.typeparameters","settings":{"foreground":"#91d7e3"}},{"scope":"entity.name.namespace","settings":{"foreground":"#eed49f"}},{"scope":"support.type.property-name.css","settings":{"fontStyle":"","foreground":"#8aadf4"}},{"scope":["variable.language.this","variable.language.this punctuation.definition.variable"],"settings":{"foreground":"#ed8796"}},{"scope":"variable.object.property","settings":{"foreground":"#cad3f5"}},{"scope":["string.template variable","string variable"],"settings":{"foreground":"#cad3f5"}},{"scope":"keyword.operator.new","settings":{"fontStyle":"bold"}},{"scope":"storage.modifier.specifier.extern.cpp","settings":{"foreground":"#c6a0f6"}},{"scope":["entity.name.scope-resolution.template.call.cpp","entity.name.scope-resolution.parameter.cpp","entity.name.scope-resolution.cpp","entity.name.scope-resolution.function.definition.cpp"],"settings":{"foreground":"#eed49f"}},{"scope":"storage.type.class.doxygen","settings":{"fontStyle":""}},{"scope":["storage.modifier.reference.cpp"],"settings":{"foreground":"#8bd5ca"}},{"scope":"meta.interpolation.cs","settings":{"foreground":"#cad3f5"}},{"scope":"comment.block.documentation.cs","settings":{"foreground":"#cad3f5"}},{"scope":["source.css entity.other.attribute-name.class.css","entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css"],"settings":{"foreground":"#eed49f"}},{"scope":"punctuation.separator.operator.css","settings":{"foreground":"#8bd5ca"}},{"scope":"source.css entity.other.attribute-name.pseudo-class","settings":{"foreground":"#8bd5ca"}},{"scope":"source.css constant.other.unicode-range","settings":{"foreground":"#f5a97f"}},{"scope":"source.css variable.parameter.url","settings":{"fontStyle":"","foreground":"#a6da95"}},{"scope":["support.type.vendored.property-name"],"settings":{"foreground":"#91d7e3"}},{"scope":["source.css meta.property-value variable","source.css meta.property-value variable.other.less","source.css meta.property-value variable.other.less punctuation.definition.variable.less","meta.definition.variable.scss"],"settings":{"foreground":"#ee99a0"}},{"scope":["source.css meta.property-list variable","meta.property-list variable.other.less","meta.property-list variable.other.less punctuation.definition.variable.less"],"settings":{"foreground":"#8aadf4"}},{"scope":"keyword.other.unit.percentage.css","settings":{"foreground":"#f5a97f"}},{"scope":"source.css meta.attribute-selector","settings":{"foreground":"#a6da95"}},{"scope":["keyword.other.definition.ini","punctuation.support.type.property-name.json","support.type.property-name.json","punctuation.support.type.property-name.toml","support.type.property-name.toml","entity.name.tag.yaml","punctuation.support.type.property-name.yaml","support.type.property-name.yaml"],"settings":{"fontStyle":"","foreground":"#8aadf4"}},{"scope":["constant.language.json","constant.language.yaml"],"settings":{"foreground":"#f5a97f"}},{"scope":["entity.name.type.anchor.yaml","variable.other.alias.yaml"],"settings":{"fontStyle":"","foreground":"#eed49f"}},{"scope":["support.type.property-name.table","entity.name.section.group-title.ini"],"settings":{"foreground":"#eed49f"}},{"scope":"constant.other.time.datetime.offset.toml","settings":{"foreground":"#f5bde6"}},{"scope":["punctuation.definition.anchor.yaml","punctuation.definition.alias.yaml"],"settings":{"foreground":"#f5bde6"}},{"scope":"entity.other.document.begin.yaml","settings":{"foreground":"#f5bde6"}},{"scope":"markup.changed.diff","settings":{"foreground":"#f5a97f"}},{"scope":["meta.diff.header.from-file","meta.diff.header.to-file","punctuation.definition.from-file.diff","punctuation.definition.to-file.diff"],"settings":{"foreground":"#8aadf4"}},{"scope":"markup.inserted.diff","settings":{"foreground":"#a6da95"}},{"scope":"markup.deleted.diff","settings":{"foreground":"#ed8796"}},{"scope":["variable.other.env"],"settings":{"foreground":"#8aadf4"}},{"scope":["string.quoted variable.other.env"],"settings":{"foreground":"#cad3f5"}},{"scope":"support.function.builtin.gdscript","settings":{"foreground":"#8aadf4"}},{"scope":"constant.language.gdscript","settings":{"foreground":"#f5a97f"}},{"scope":"comment meta.annotation.go","settings":{"foreground":"#ee99a0"}},{"scope":"comment meta.annotation.parameters.go","settings":{"foreground":"#f5a97f"}},{"scope":"constant.language.go","settings":{"foreground":"#f5a97f"}},{"scope":"variable.graphql","settings":{"foreground":"#cad3f5"}},{"scope":"string.unquoted.alias.graphql","settings":{"foreground":"#f0c6c6"}},{"scope":"constant.character.enum.graphql","settings":{"foreground":"#8bd5ca"}},{"scope":"meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql","settings":{"foreground":"#f0c6c6"}},{"scope":["keyword.other.doctype","meta.tag.sgml.doctype punctuation.definition.tag","meta.tag.metadata.doctype entity.name.tag","meta.tag.metadata.doctype punctuation.definition.tag"],"settings":{"foreground":"#c6a0f6"}},{"scope":["entity.name.tag"],"settings":{"fontStyle":"","foreground":"#8aadf4"}},{"scope":["text.html constant.character.entity","text.html constant.character.entity punctuation","constant.character.entity.xml","constant.character.entity.xml punctuation","constant.character.entity.js.jsx","constant.charactger.entity.js.jsx punctuation","constant.character.entity.tsx","constant.character.entity.tsx punctuation"],"settings":{"foreground":"#ed8796"}},{"scope":["entity.other.attribute-name"],"settings":{"foreground":"#eed49f"}},{"scope":["support.class.component","support.class.component.jsx","support.class.component.tsx","support.class.component.vue"],"settings":{"fontStyle":"","foreground":"#f5bde6"}},{"scope":["punctuation.definition.annotation","storage.type.annotation"],"settings":{"foreground":"#f5a97f"}},{"scope":"constant.other.enum.java","settings":{"foreground":"#8bd5ca"}},{"scope":"storage.modifier.import.java","settings":{"foreground":"#cad3f5"}},{"scope":"comment.block.javadoc.java keyword.other.documentation.javadoc.java","settings":{"fontStyle":""}},{"scope":"meta.export variable.other.readwrite.js","settings":{"foreground":"#ee99a0"}},{"scope":["variable.other.constant.js","variable.other.constant.ts","variable.other.property.js","variable.other.property.ts"],"settings":{"foreground":"#cad3f5"}},{"scope":["variable.other.jsdoc","comment.block.documentation variable.other"],"settings":{"fontStyle":"","foreground":"#ee99a0"}},{"scope":"storage.type.class.jsdoc","settings":{"fontStyle":""}},{"scope":"support.type.object.console.js","settings":{"foreground":"#cad3f5"}},{"scope":["support.constant.node","support.type.object.module.js"],"settings":{"foreground":"#c6a0f6"}},{"scope":"storage.modifier.implements","settings":{"foreground":"#c6a0f6"}},{"scope":["constant.language.null.js","constant.language.null.ts","constant.language.undefined.js","constant.language.undefined.ts","support.type.builtin.ts"],"settings":{"foreground":"#c6a0f6"}},{"scope":"variable.parameter.generic","settings":{"foreground":"#eed49f"}},{"scope":["keyword.declaration.function.arrow.js","storage.type.function.arrow.ts"],"settings":{"foreground":"#8bd5ca"}},{"scope":"punctuation.decorator.ts","settings":{"fontStyle":"italic","foreground":"#8aadf4"}},{"scope":["keyword.operator.expression.in.js","keyword.operator.expression.in.ts","keyword.operator.expression.infer.ts","keyword.operator.expression.instanceof.js","keyword.operator.expression.instanceof.ts","keyword.operator.expression.is","keyword.operator.expression.keyof.ts","keyword.operator.expression.of.js","keyword.operator.expression.of.ts","keyword.operator.expression.typeof.ts"],"settings":{"foreground":"#c6a0f6"}},{"scope":"support.function.macro.julia","settings":{"fontStyle":"italic","foreground":"#8bd5ca"}},{"scope":"constant.language.julia","settings":{"foreground":"#f5a97f"}},{"scope":"constant.other.symbol.julia","settings":{"foreground":"#ee99a0"}},{"scope":"text.tex keyword.control.preamble","settings":{"foreground":"#8bd5ca"}},{"scope":"text.tex support.function.be","settings":{"foreground":"#91d7e3"}},{"scope":"constant.other.general.math.tex","settings":{"foreground":"#f0c6c6"}},{"scope":"variable.language.liquid","settings":{"foreground":"#f5bde6"}},{"scope":"comment.line.double-dash.documentation.lua storage.type.annotation.lua","settings":{"fontStyle":"","foreground":"#c6a0f6"}},{"scope":["comment.line.double-dash.documentation.lua entity.name.variable.lua","comment.line.double-dash.documentation.lua variable.lua"],"settings":{"foreground":"#cad3f5"}},{"scope":["heading.1.markdown punctuation.definition.heading.markdown","heading.1.markdown","heading.1.quarto punctuation.definition.heading.quarto","heading.1.quarto","markup.heading.atx.1.mdx","markup.heading.atx.1.mdx punctuation.definition.heading.mdx","markup.heading.setext.1.markdown","markup.heading.heading-0.asciidoc"],"settings":{"foreground":"#ed8796"}},{"scope":["heading.2.markdown punctuation.definition.heading.markdown","heading.2.markdown","heading.2.quarto punctuation.definition.heading.quarto","heading.2.quarto","markup.heading.atx.2.mdx","markup.heading.atx.2.mdx punctuation.definition.heading.mdx","markup.heading.setext.2.markdown","markup.heading.heading-1.asciidoc"],"settings":{"foreground":"#f5a97f"}},{"scope":["heading.3.markdown punctuation.definition.heading.markdown","heading.3.markdown","heading.3.quarto punctuation.definition.heading.quarto","heading.3.quarto","markup.heading.atx.3.mdx","markup.heading.atx.3.mdx punctuation.definition.heading.mdx","markup.heading.heading-2.asciidoc"],"settings":{"foreground":"#eed49f"}},{"scope":["heading.4.markdown punctuation.definition.heading.markdown","heading.4.markdown","heading.4.quarto punctuation.definition.heading.quarto","heading.4.quarto","markup.heading.atx.4.mdx","markup.heading.atx.4.mdx punctuation.definition.heading.mdx","markup.heading.heading-3.asciidoc"],"settings":{"foreground":"#a6da95"}},{"scope":["heading.5.markdown punctuation.definition.heading.markdown","heading.5.markdown","heading.5.quarto punctuation.definition.heading.quarto","heading.5.quarto","markup.heading.atx.5.mdx","markup.heading.atx.5.mdx punctuation.definition.heading.mdx","markup.heading.heading-4.asciidoc"],"settings":{"foreground":"#8aadf4"}},{"scope":["heading.6.markdown punctuation.definition.heading.markdown","heading.6.markdown","heading.6.quarto punctuation.definition.heading.quarto","heading.6.quarto","markup.heading.atx.6.mdx","markup.heading.atx.6.mdx punctuation.definition.heading.mdx","markup.heading.heading-5.asciidoc"],"settings":{"foreground":"#c6a0f6"}},{"scope":"markup.bold","settings":{"fontStyle":"bold","foreground":"#ed8796"}},{"scope":"markup.italic","settings":{"fontStyle":"italic","foreground":"#ed8796"}},{"scope":"markup.strikethrough","settings":{"fontStyle":"strikethrough","foreground":"#a5adcb"}},{"scope":["punctuation.definition.link","markup.underline.link"],"settings":{"foreground":"#8aadf4"}},{"scope":["text.html.markdown punctuation.definition.link.title","text.html.quarto punctuation.definition.link.title","string.other.link.title.markdown","string.other.link.title.quarto","markup.link","punctuation.definition.constant.markdown","punctuation.definition.constant.quarto","constant.other.reference.link.markdown","constant.other.reference.link.quarto","markup.substitution.attribute-reference"],"settings":{"foreground":"#b7bdf8"}},{"scope":["punctuation.definition.raw.markdown","punctuation.definition.raw.quarto","markup.inline.raw.string.markdown","markup.inline.raw.string.quarto","markup.raw.block.markdown","markup.raw.block.quarto"],"settings":{"foreground":"#a6da95"}},{"scope":"fenced_code.block.language","settings":{"foreground":"#91d7e3"}},{"scope":["markup.fenced_code.block punctuation.definition","markup.raw support.asciidoc"],"settings":{"foreground":"#939ab7"}},{"scope":["markup.quote","punctuation.definition.quote.begin"],"settings":{"foreground":"#f5bde6"}},{"scope":"meta.separator.markdown","settings":{"foreground":"#8bd5ca"}},{"scope":["punctuation.definition.list.begin.markdown","punctuation.definition.list.begin.quarto","markup.list.bullet"],"settings":{"foreground":"#8bd5ca"}},{"scope":"markup.heading.quarto","settings":{"fontStyle":"bold"}},{"scope":["entity.other.attribute-name.multipart.nix","entity.other.attribute-name.single.nix"],"settings":{"foreground":"#8aadf4"}},{"scope":"variable.parameter.name.nix","settings":{"fontStyle":"","foreground":"#cad3f5"}},{"scope":"meta.embedded variable.parameter.name.nix","settings":{"fontStyle":"","foreground":"#b7bdf8"}},{"scope":"string.unquoted.path.nix","settings":{"fontStyle":"","foreground":"#f5bde6"}},{"scope":["support.attribute.builtin","meta.attribute.php"],"settings":{"foreground":"#eed49f"}},{"scope":"meta.function.parameters.php punctuation.definition.variable.php","settings":{"foreground":"#ee99a0"}},{"scope":"constant.language.php","settings":{"foreground":"#c6a0f6"}},{"scope":"text.html.php support.function","settings":{"foreground":"#91d7e3"}},{"scope":"keyword.other.phpdoc.php","settings":{"fontStyle":""}},{"scope":["support.variable.magic.python","meta.function-call.arguments.python"],"settings":{"foreground":"#cad3f5"}},{"scope":["support.function.magic.python"],"settings":{"fontStyle":"italic","foreground":"#91d7e3"}},{"scope":["variable.parameter.function.language.special.self.python","variable.language.special.self.python"],"settings":{"fontStyle":"italic","foreground":"#ed8796"}},{"scope":["keyword.control.flow.python","keyword.operator.logical.python"],"settings":{"foreground":"#c6a0f6"}},{"scope":"storage.type.function.python","settings":{"foreground":"#c6a0f6"}},{"scope":["support.token.decorator.python","meta.function.decorator.identifier.python"],"settings":{"foreground":"#91d7e3"}},{"scope":["meta.function-call.python"],"settings":{"foreground":"#8aadf4"}},{"scope":["entity.name.function.decorator.python","punctuation.definition.decorator.python"],"settings":{"fontStyle":"italic","foreground":"#f5a97f"}},{"scope":"constant.character.format.placeholder.other.python","settings":{"foreground":"#f5bde6"}},{"scope":["support.type.exception.python","support.function.builtin.python"],"settings":{"foreground":"#f5a97f"}},{"scope":["support.type.python"],"settings":{"foreground":"#f5a97f"}},{"scope":"constant.language.python","settings":{"foreground":"#c6a0f6"}},{"scope":["meta.indexed-name.python","meta.item-access.python"],"settings":{"fontStyle":"italic","foreground":"#ee99a0"}},{"scope":"storage.type.string.python","settings":{"fontStyle":"italic","foreground":"#a6da95"}},{"scope":"meta.function.parameters.python","settings":{"fontStyle":""}},{"scope":["string.regexp punctuation.definition.string.begin","string.regexp punctuation.definition.string.end"],"settings":{"foreground":"#f5bde6"}},{"scope":"keyword.control.anchor.regexp","settings":{"foreground":"#c6a0f6"}},{"scope":"string.regexp.ts","settings":{"foreground":"#cad3f5"}},{"scope":["punctuation.definition.group.regexp","keyword.other.back-reference.regexp"],"settings":{"foreground":"#a6da95"}},{"scope":"punctuation.definition.character-class.regexp","settings":{"foreground":"#eed49f"}},{"scope":"constant.other.character-class.regexp","settings":{"foreground":"#f5bde6"}},{"scope":"constant.other.character-class.range.regexp","settings":{"foreground":"#f4dbd6"}},{"scope":"keyword.operator.quantifier.regexp","settings":{"foreground":"#8bd5ca"}},{"scope":"constant.character.numeric.regexp","settings":{"foreground":"#f5a97f"}},{"scope":["punctuation.definition.group.no-capture.regexp","meta.assertion.look-ahead.regexp","meta.assertion.negative-look-ahead.regexp"],"settings":{"foreground":"#8aadf4"}},{"scope":["meta.annotation.rust","meta.annotation.rust punctuation","meta.attribute.rust","punctuation.definition.attribute.rust"],"settings":{"fontStyle":"italic","foreground":"#eed49f"}},{"scope":["meta.attribute.rust string.quoted.double.rust","meta.attribute.rust string.quoted.single.char.rust"],"settings":{"fontStyle":""}},{"scope":["entity.name.function.macro.rules.rust","storage.type.module.rust","storage.modifier.rust","storage.type.struct.rust","storage.type.enum.rust","storage.type.trait.rust","storage.type.union.rust","storage.type.impl.rust","storage.type.rust","storage.type.function.rust","storage.type.type.rust"],"settings":{"fontStyle":"","foreground":"#c6a0f6"}},{"scope":"entity.name.type.numeric.rust","settings":{"fontStyle":"","foreground":"#c6a0f6"}},{"scope":"meta.generic.rust","settings":{"foreground":"#f5a97f"}},{"scope":"entity.name.impl.rust","settings":{"fontStyle":"italic","foreground":"#eed49f"}},{"scope":"entity.name.module.rust","settings":{"foreground":"#f5a97f"}},{"scope":"entity.name.trait.rust","settings":{"fontStyle":"italic","foreground":"#eed49f"}},{"scope":"storage.type.source.rust","settings":{"foreground":"#eed49f"}},{"scope":"entity.name.union.rust","settings":{"foreground":"#eed49f"}},{"scope":"meta.enum.rust storage.type.source.rust","settings":{"foreground":"#8bd5ca"}},{"scope":["support.macro.rust","meta.macro.rust support.function.rust","entity.name.function.macro.rust"],"settings":{"fontStyle":"italic","foreground":"#8aadf4"}},{"scope":["storage.modifier.lifetime.rust","entity.name.type.lifetime"],"settings":{"fontStyle":"italic","foreground":"#8aadf4"}},{"scope":"string.quoted.double.rust constant.other.placeholder.rust","settings":{"foreground":"#f5bde6"}},{"scope":"meta.function.return-type.rust meta.generic.rust storage.type.rust","settings":{"foreground":"#cad3f5"}},{"scope":"meta.function.call.rust","settings":{"foreground":"#8aadf4"}},{"scope":"punctuation.brackets.angle.rust","settings":{"foreground":"#91d7e3"}},{"scope":"constant.other.caps.rust","settings":{"foreground":"#f5a97f"}},{"scope":["meta.function.definition.rust variable.other.rust"],"settings":{"foreground":"#ee99a0"}},{"scope":"meta.function.call.rust variable.other.rust","settings":{"foreground":"#cad3f5"}},{"scope":"variable.language.self.rust","settings":{"foreground":"#ed8796"}},{"scope":["variable.other.metavariable.name.rust","meta.macro.metavariable.rust keyword.operator.macro.dollar.rust"],"settings":{"foreground":"#f5bde6"}},{"scope":["comment.line.shebang","comment.line.shebang punctuation.definition.comment","comment.line.shebang","punctuation.definition.comment.shebang.shell","meta.shebang.shell"],"settings":{"fontStyle":"italic","foreground":"#f5bde6"}},{"scope":"comment.line.shebang constant.language","settings":{"fontStyle":"italic","foreground":"#8bd5ca"}},{"scope":["meta.function-call.arguments.shell punctuation.definition.variable.shell","meta.function-call.arguments.shell punctuation.section.interpolation","meta.function-call.arguments.shell punctuation.definition.variable.shell","meta.function-call.arguments.shell punctuation.section.interpolation"],"settings":{"foreground":"#ed8796"}},{"scope":"meta.string meta.interpolation.parameter.shell variable.other.readwrite","settings":{"fontStyle":"italic","foreground":"#f5a97f"}},{"scope":["source.shell punctuation.section.interpolation","punctuation.definition.evaluation.backticks.shell"],"settings":{"foreground":"#8bd5ca"}},{"scope":"entity.name.tag.heredoc.shell","settings":{"foreground":"#c6a0f6"}},{"scope":"string.quoted.double.shell variable.other.normal.shell","settings":{"foreground":"#cad3f5"}}],"type":"dark"}'));export{e as default}; ================================================ FILE: jesse/static/_nuxt/C-nORZOA.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"Dream Maker","fileTypes":["dm","dme"],"foldingStartMarker":"/\\\\*\\\\*(?!\\\\*)|^(?![^{]*?//|[^{]*?/\\\\*(?!.*?\\\\*/.*?\\\\{)).*?\\\\{\\\\s*($|//|/\\\\*(?!.*?\\\\*/.*\\\\S))","foldingStopMarker":"(?|<)(=)?|\\\\.|:|/(=)?|~|\\\\+(\\\\+|=)?|-(-|=)?|\\\\*(\\\\*|=)?|%|>>|<<|=(=)?|!(=)?|<>|&|&&|\\\\^|\\\\||\\\\|\\\\||\\\\bto\\\\b|\\\\bin\\\\b|\\\\bstep\\\\b)","name":"keyword.operator.dm"},{"match":"\\\\b([A-Z_][A-Z_0-9]*)\\\\b","name":"constant.language.dm"},{"match":"\\\\bnull\\\\b","name":"constant.language.dm"},{"begin":"{\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.dm"}},"end":"\\"}","endCaptures":{"0":{"name":"punctuation.definition.string.end.dm"}},"name":"string.quoted.triple.dm","patterns":[{"include":"#string_escaped_char"},{"include":"#string_embedded_expression"}]},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.dm"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.dm"}},"name":"string.quoted.double.dm","patterns":[{"include":"#string_escaped_char"},{"include":"#string_embedded_expression"}]},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.dm"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.dm"}},"name":"string.quoted.single.dm","patterns":[{"include":"#string_escaped_char"}]},{"begin":"^\\\\s*((\\\\#)\\\\s*define)\\\\s+((?[a-zA-Z_][a-zA-Z0-9_]*))(?:(\\\\()(\\\\s*\\\\g\\\\s*((,)\\\\s*\\\\g\\\\s*)*(?:\\\\.\\\\.\\\\.)?)(\\\\)))","beginCaptures":{"1":{"name":"keyword.control.directive.define.dm"},"2":{"name":"punctuation.definition.directive.dm"},"3":{"name":"entity.name.function.preprocessor.dm"},"5":{"name":"punctuation.definition.parameters.begin.dm"},"6":{"name":"variable.parameter.preprocessor.dm"},"8":{"name":"punctuation.separator.parameters.dm"},"9":{"name":"punctuation.definition.parameters.end.dm"}},"end":"(?=(?://|/\\\\*))|(?[a-zA-Z_][a-zA-Z0-9_]*))","beginCaptures":{"1":{"name":"keyword.control.directive.define.dm"},"2":{"name":"punctuation.definition.directive.dm"},"3":{"name":"variable.other.preprocessor.dm"}},"end":"(?=(?://|/\\\\*))|(?\\\\\\\\\\\\s*\\\\n)","name":"punctuation.separator.continuation.dm"}]},{"begin":"^\\\\s*(?:((#)\\\\s*(?:elif|else|if|ifdef|ifndef))|((#)\\\\s*(undef|include)))\\\\b","beginCaptures":{"1":{"name":"keyword.control.directive.conditional.dm"},"2":{"name":"punctuation.definition.directive.dm"},"3":{"name":"keyword.control.directive.$5.dm"},"4":{"name":"punctuation.definition.directive.dm"}},"end":"(?=(?://|/\\\\*))|(?\\\\\\\\\\\\s*\\\\n)","name":"punctuation.separator.continuation.dm"}]},{"include":"#block"},{"begin":"(?:^|(?:(?=\\\\s)(?])))(\\\\s*)(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\\\s*\\\\()((?:[A-Za-z_][A-Za-z0-9_]*+|::)++|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\(\\\\)|\\\\[\\\\])))\\\\s*(?=\\\\()","beginCaptures":{"1":{"name":"punctuation.whitespace.function.leading.dm"},"3":{"name":"entity.name.function.dm"},"4":{"name":"punctuation.definition.parameters.dm"}},"end":"(?<=\\\\})|(?=#)|(;)?","name":"meta.function.dm","patterns":[{"include":"#comments"},{"include":"#parens"},{"match":"\\\\bconst\\\\b","name":"storage.modifier.dm"},{"include":"#block"}]}],"repository":{"access":{"match":"\\\\.[a-zA-Z_][a-zA-Z_0-9]*\\\\b(?!\\\\s*\\\\()","name":"variable.other.dot-access.dm"},"block":{"begin":"\\\\{","end":"\\\\}","name":"meta.block.dm","patterns":[{"include":"#block_innards"}]},"block_innards":{"patterns":[{"include":"#preprocessor-rule-enabled-block"},{"include":"#preprocessor-rule-disabled-block"},{"include":"#preprocessor-rule-other-block"},{"include":"#access"},{"captures":{"1":{"name":"punctuation.whitespace.function-call.leading.dm"},"2":{"name":"support.function.any-method.dm"},"3":{"name":"punctuation.definition.parameters.dm"}},"match":"(?:(?=\\\\s)(?:(?<=else|new|return)|(?\\\\\\\\\\\\s*\\\\n)","name":"punctuation.separator.continuation.dm"}]}]},"disabled":{"begin":"^\\\\s*#\\\\s*if(n?def)?\\\\b.*$","comment":"eat nested preprocessor if(def)s","end":"^\\\\s*#\\\\s*endif\\\\b.*$","patterns":[{"include":"#disabled"}]},"parens":{"begin":"\\\\(","end":"\\\\)","name":"meta.parens.dm","patterns":[{"include":"$base"}]},"preprocessor-rule-disabled":{"begin":"^\\\\s*(#(if)\\\\s+(0)\\\\b).*","captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.if.dm"},"3":{"name":"constant.numeric.preprocessor.dm"}},"end":"^\\\\s*(#\\\\s*(endif)\\\\b)","patterns":[{"begin":"^\\\\s*(#\\\\s*(else)\\\\b)","captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.else.dm"}},"end":"(?=^\\\\s*#\\\\s*endif\\\\b.*$)","patterns":[{"include":"$base"}]},{"begin":"","end":"(?=^\\\\s*#\\\\s*(else|endif)\\\\b.*$)","name":"comment.block.preprocessor.if-branch","patterns":[{"include":"#disabled"}]}]},"preprocessor-rule-disabled-block":{"begin":"^\\\\s*(#(if)\\\\s+(0)\\\\b).*","captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.if.dm"},"3":{"name":"constant.numeric.preprocessor.dm"}},"end":"^\\\\s*(#\\\\s*(endif)\\\\b)","patterns":[{"begin":"^\\\\s*(#\\\\s*(else)\\\\b)","captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.else.dm"}},"end":"(?=^\\\\s*#\\\\s*endif\\\\b.*$)","patterns":[{"include":"#block_innards"}]},{"begin":"","end":"(?=^\\\\s*#\\\\s*(else|endif)\\\\b.*$)","name":"comment.block.preprocessor.if-branch.in-block","patterns":[{"include":"#disabled"}]}]},"preprocessor-rule-enabled":{"begin":"^\\\\s*(#(if)\\\\s+(0*1)\\\\b)","captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.if.dm"},"3":{"name":"constant.numeric.preprocessor.dm"}},"end":"^\\\\s*(#\\\\s*(endif)\\\\b)","patterns":[{"begin":"^\\\\s*(#\\\\s*(else)\\\\b).*","captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.else.dm"}},"contentName":"comment.block.preprocessor.else-branch","end":"(?=^\\\\s*#\\\\s*endif\\\\b.*$)","patterns":[{"include":"#disabled"}]},{"begin":"","end":"(?=^\\\\s*#\\\\s*(else|endif)\\\\b.*$)","patterns":[{"include":"$base"}]}]},"preprocessor-rule-enabled-block":{"begin":"^\\\\s*(#(if)\\\\s+(0*1)\\\\b)","captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.if.dm"},"3":{"name":"constant.numeric.preprocessor.dm"}},"end":"^\\\\s*(#\\\\s*(endif)\\\\b)","patterns":[{"begin":"^\\\\s*(#\\\\s*(else)\\\\b).*","captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.else.dm"}},"contentName":"comment.block.preprocessor.else-branch.in-block","end":"(?=^\\\\s*#\\\\s*endif\\\\b.*$)","patterns":[{"include":"#disabled"}]},{"begin":"","end":"(?=^\\\\s*#\\\\s*(else|endif)\\\\b.*$)","patterns":[{"include":"#block_innards"}]}]},"preprocessor-rule-other":{"begin":"^\\\\s*((#\\\\s*(if(n?def)?))\\\\b.*?(?:(?=(?://|/\\\\*))|$))","captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.dm"}},"end":"^\\\\s*((#\\\\s*(endif))\\\\b).*$","patterns":[{"include":"$base"}]},"preprocessor-rule-other-block":{"begin":"^\\\\s*(#\\\\s*(if(n?def)?)\\\\b.*?(?:(?=(?://|/\\\\*))|$))","captures":{"1":{"name":"meta.preprocessor.dm"},"2":{"name":"keyword.control.import.dm"}},"end":"^\\\\s*(#\\\\s*(endif)\\\\b).*$","patterns":[{"include":"#block_innards"}]},"string_embedded_expression":{"patterns":[{"begin":"(?\\"n\\\\n \\\\[])","name":"constant.character.escape.dm"},{"match":"\\\\\\\\.","name":"invalid.illegal.unknown-escape.dm"}]}},"scopeName":"source.dm"}`)),n=[e];export{n as default}; ================================================ FILE: jesse/static/_nuxt/C-wny61x.js ================================================ import e from"./ySlJ1b_l.js";import t from"./Dj6nwHGl.js";import n from"./BPhBrDlE.js";import a from"./BMYPR7BL.js";const i=Object.freeze(JSON.parse(`{"displayName":"Glimmer JS","injections":{"L:source.gjs -comment -(string -meta.embedded)":{"patterns":[{"include":"#main"}]}},"name":"glimmer-js","patterns":[{"include":"#main"},{"include":"source.js"}],"repository":{"as-keyword":{"match":"\\\\s\\\\b(as)\\\\b(?=\\\\s\\\\|)","name":"keyword.control","patterns":[]},"as-params":{"begin":"(?)","endCaptures":{"1":{"name":"punctuation.definition.tag"},"2":{"name":"punctuation.definition.tag"}},"name":"meta.tag.any.ember-handlebars","patterns":[{"include":"#tag-like-content"}]},"digit":{"captures":{"0":{"name":"constant.numeric"},"1":{"name":"constant.numeric"},"2":{"name":"constant.numeric"}},"match":"\\\\d*(\\\\.)?\\\\d+","patterns":[]},"entities":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.entity.html.ember-handlebars"},"3":{"name":"punctuation.definition.entity.html.ember-handlebars"}},"match":"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)","name":"constant.character.entity.html.ember-handlebars"},{"match":"&","name":"invalid.illegal.bad-ampersand.html.ember-handlebars"}]},"glimmer-argument":{"captures":{"1":{"name":"entity.other.attribute-name.ember-handlebars.argument","patterns":[{"match":"(@)","name":"markup.italic"}]},"2":{"name":"punctuation.separator.key-value.html.ember-handlebars"}},"match":"\\\\s(@[a-zA-Z0-9:_.-]+)(=)?"},"glimmer-as-stuff":{"patterns":[{"include":"#as-keyword"},{"include":"#as-params"}]},"glimmer-block":{"begin":"({{~?)(#|/)(([@\\\\$a-zA-Z0-9_/.-]+))","captures":{"1":{"name":"punctuation.definition.tag"},"2":{"name":"punctuation.definition.tag"},"3":{"name":"keyword.control","patterns":[{"include":"#glimmer-component-path"},{"match":"(\\\\/)+","name":"punctuation.definition.tag"},{"match":"(\\\\.)+","name":"punctuation.definition.tag"}]}},"end":"(~?}})","name":"entity.expression.ember-handlebars","patterns":[{"include":"#glimmer-as-stuff"},{"include":"#glimmer-supexp-content"}]},"glimmer-bools":{"captures":{"0":{"name":"keyword.operator"},"1":{"name":"keyword.operator"},"2":{"name":"string.regexp"},"3":{"name":"string.regexp"},"4":{"name":"keyword.operator"}},"match":"({{~?)(true|false|null|undefined|\\\\d*(\\\\.)?\\\\d+)(~?}})","name":"entity.expression.ember-handlebars"},"glimmer-comment-block":{"begin":"{{!--","captures":{"0":{"name":"punctuation.definition.block.comment.glimmer"}},"end":"--}}","name":"comment.block.glimmer","patterns":[{"include":"#script"},{"include":"#attention"}]},"glimmer-comment-inline":{"begin":"{{!","captures":{"0":{"name":"punctuation.definition.block.comment.glimmer"}},"end":"}}","name":"comment.inline.glimmer","patterns":[{"include":"#script"},{"include":"#attention"}]},"glimmer-component-path":{"captures":{"1":{"name":"punctuation.definition.tag"}},"match":"(::|_|\\\\$|\\\\.)"},"glimmer-control-expression":{"begin":"({{~?)(([-a-zA-Z_0-9/]+)\\\\s)","captures":{"1":{"name":"keyword.operator"},"2":{"name":"keyword.operator"},"3":{"name":"keyword.control"}},"end":"(~?}})","name":"entity.expression.ember-handlebars","patterns":[{"include":"#glimmer-supexp-content"}]},"glimmer-else-block":{"captures":{"0":{"name":"punctuation.definition.tag"},"1":{"name":"punctuation.definition.tag"},"2":{"name":"keyword.control"},"3":{"name":"keyword.control","patterns":[{"include":"#glimmer-subexp"},{"include":"#string-single-quoted-handlebars"},{"include":"#string-double-quoted-handlebars"},{"include":"#boolean"},{"include":"#digit"},{"include":"#param"},{"include":"#glimmer-parameter-name"},{"include":"#glimmer-parameter-value"}]},"4":{"name":"punctuation.definition.tag"}},"match":"({{~?)(else\\\\s[a-z]+\\\\s|else)([()@a-zA-Z0-9\\\\.\\\\s\\\\b]+)?(~?}})","name":"entity.expression.ember-handlebars"},"glimmer-expression":{"begin":"({{~?)(([()\\\\s@a-zA-Z0-9_.-]+))","captures":{"1":{"name":"keyword.operator"},"2":{"name":"keyword.operator"},"3":{"name":"support.function","patterns":[{"match":"[(]+","name":"string.regexp"},{"match":"[)]+","name":"string.regexp"},{"match":"(\\\\.)+","name":"punctuation.definition.tag"},{"include":"#glimmer-supexp-content"}]}},"end":"(~?}})","name":"entity.expression.ember-handlebars","patterns":[{"include":"#glimmer-supexp-content"}]},"glimmer-expression-property":{"begin":"({{~?)((@|this.)([a-zA-Z0-9_.-]+))","captures":{"1":{"name":"keyword.operator"},"2":{"name":"keyword.operator"},"3":{"name":"support.function","patterns":[{"match":"(@|this)","name":"variable.language"},{"match":"(\\\\.)+","name":"punctuation.definition.tag"}]},"4":{"name":"support.function","patterns":[{"match":"(\\\\.)+","name":"punctuation.definition.tag"}]}},"end":"(~?}})","name":"entity.expression.ember-handlebars","patterns":[{"include":"#glimmer-supexp-content"}]},"glimmer-parameter-name":{"captures":{"1":{"name":"variable.parameter.name.ember-handlebars"},"2":{"name":"punctuation.definition.expression.ember-handlebars"}},"match":"\\\\b([a-zA-Z0-9_-]+)(\\\\s?=)","patterns":[]},"glimmer-parameter-value":{"captures":{"1":{"name":"support.function","patterns":[{"match":"(\\\\.)+","name":"punctuation.definition.tag"}]}},"match":"\\\\b([a-zA-Z0-9:_.-]+)\\\\b(?!=)","patterns":[]},"glimmer-special-block":{"captures":{"0":{"name":"keyword.operator"},"1":{"name":"keyword.operator"},"2":{"name":"keyword.control"},"3":{"name":"keyword.operator"}},"match":"({{~?)(yield|outlet)(~?}})","name":"entity.expression.ember-handlebars"},"glimmer-subexp":{"begin":"(\\\\()([@a-zA-Z0-9.-]+)","captures":{"1":{"name":"keyword.other"},"2":{"name":"keyword.control"}},"end":"(\\\\))","name":"entity.subexpression.ember-handlebars","patterns":[{"include":"#glimmer-supexp-content"}]},"glimmer-supexp-content":{"patterns":[{"include":"#glimmer-subexp"},{"include":"#string-single-quoted-handlebars"},{"include":"#string-double-quoted-handlebars"},{"include":"#boolean"},{"include":"#digit"},{"include":"#param"},{"include":"#glimmer-parameter-name"},{"include":"#glimmer-parameter-value"}]},"glimmer-unescaped-expression":{"begin":"{{{","captures":{"0":{"name":"keyword.operator"}},"end":"}}}","name":"entity.unescaped.expression.ember-handlebars","patterns":[{"include":"#string-single-quoted-handlebars"},{"include":"#string-double-quoted-handlebars"},{"include":"#glimmer-subexp"},{"include":"#param"}]},"html-attribute":{"captures":{"1":{"name":"entity.other.attribute-name.ember-handlebars","patterns":[{"match":"(\\\\.\\\\.\\\\.attributes)","name":"markup.bold"}]},"2":{"name":"punctuation.separator.key-value.html.ember-handlebars"}},"match":"\\\\s([a-zA-Z0-9:_.-]+)(=)?"},"html-comment":{"begin":"/,{token:"comment",next:"@pop"}],[/","endCaptures":{"0":{"name":"punctuation.definition.comment.apex"}},"name":"comment.block.apex"},"xml-doc-comment":{"patterns":[{"include":"#xml-comment"},{"include":"#xml-character-entity"},{"include":"#xml-cdata"},{"include":"#xml-tag"}]},"xml-string":{"patterns":[{"begin":"\\\\'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.apex"}},"end":"\\\\'","endCaptures":{"0":{"name":"punctuation.definition.string.end.apex"}},"name":"string.quoted.single.apex","patterns":[{"include":"#xml-character-entity"}]},{"begin":"\\\\\\"","beginCaptures":{"0":{"name":"punctuation.definition.stringdoublequote.begin.apex"}},"end":"\\\\\\"","endCaptures":{"0":{"name":"punctuation.definition.stringdoublequote.end.apex"}},"name":"string.quoted.double.apex","patterns":[{"include":"#xml-character-entity"}]}]},"xml-tag":{"begin":"()","endCaptures":{"1":{"name":"punctuation.definition.tag.apex"}},"name":"meta.tag.apex","patterns":[{"include":"#xml-attribute"}]}},"scopeName":"source.apex"}`)),n=[e];export{n as default}; ================================================ FILE: jesse/static/_nuxt/COK4E0Yg.js ================================================ const e=Object.freeze(JSON.parse('{"displayName":"SQL","name":"sql","patterns":[{"match":"((?]?=|<>|<|>","name":"keyword.operator.comparison.sql"},{"match":"-|\\\\+|/","name":"keyword.operator.math.sql"},{"match":"\\\\|\\\\|","name":"keyword.operator.concatenator.sql"},{"captures":{"1":{"name":"support.function.aggregate.sql"}},"match":"(?i)\\\\b(approx_count_distinct|approx_percentile_cont|approx_percentile_disc|avg|checksum_agg|count|count_big|group|grouping|grouping_id|max|min|sum|stdev|stdevp|var|varp)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.analytic.sql"}},"match":"(?i)\\\\b(cume_dist|first_value|lag|last_value|lead|percent_rank|percentile_cont|percentile_disc)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.bitmanipulation.sql"}},"match":"(?i)\\\\b(bit_count|get_bit|left_shift|right_shift|set_bit)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.conversion.sql"}},"match":"(?i)\\\\b(cast|convert|parse|try_cast|try_convert|try_parse)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.collation.sql"}},"match":"(?i)\\\\b(collationproperty|tertiary_weights)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.cryptographic.sql"}},"match":"(?i)\\\\b(asymkey_id|asymkeyproperty|certproperty|cert_id|crypt_gen_random|decryptbyasymkey|decryptbycert|decryptbykey|decryptbykeyautoasymkey|decryptbykeyautocert|decryptbypassphrase|encryptbyasymkey|encryptbycert|encryptbykey|encryptbypassphrase|hashbytes|is_objectsigned|key_guid|key_id|key_name|signbyasymkey|signbycert|symkeyproperty|verifysignedbycert|verifysignedbyasymkey)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.cursor.sql"}},"match":"(?i)\\\\b(cursor_status)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.datetime.sql"}},"match":"(?i)\\\\b(sysdatetime|sysdatetimeoffset|sysutcdatetime|current_time(stamp)?|getdate|getutcdate|datename|datepart|day|month|year|datefromparts|datetime2fromparts|datetimefromparts|datetimeoffsetfromparts|smalldatetimefromparts|timefromparts|datediff|dateadd|datetrunc|eomonth|switchoffset|todatetimeoffset|isdate|date_bucket)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.datatype.sql"}},"match":"(?i)\\\\b(datalength|ident_current|ident_incr|ident_seed|identity|sql_variant_property)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.expression.sql"}},"match":"(?i)\\\\b(coalesce|nullif)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.globalvar.sql"}},"match":"(?n.key===c.key)}function C(c){const n=r.value.findIndex(f=>f.key===c.key);n===-1?r.value.push(c):r.value.splice(n,1)}return(c,n)=>(u(),m("div",Q,[s(i)?(u(),m("div",{key:0,class:"fixed inset-0 w-screen z-10",onClick:n[0]||(n[0]=f=>i.value=!s(i))})):V("",!0),t("button",{class:_(["relative min-w-40 xl:min-w-52 w-full bg-white dark:bg-gray-800 flex justify-between items-center px-2 py-0.5 rounded-md border-[2px] border-gray-300 dark:border-gray-900",s(i)?"z-20":""]),onClick:n[1]||(n[1]=f=>i.value=!s(i))},[t("div",null,B(r.value.length)+" selected ",1),t("div",{class:_(["transition-all duration-200",s(i)?"-rotate-180":"rotate-0"])},[l(s(q),{class:"h-3 w-3 text-gray-400 dark:text-gray-600"})],2)],2),t("div",{class:_(["absolute w-full max-h-60 overflow-y-scroll top-9 bg-white dark:bg-gray-800 right-0 rounded-md border-[2px] border-gray-300 dark:border-gray-900 z-20 p-0.5",b.animate?s(i)?"transition-all h-60 opacity-100":"transition-all h-0 opacity-0 pointer-events-none":s(i)?"h-60":"h-0 opacity-0"])},[(u(!0),m(j,null,z($.options,f=>(u(),m("button",{key:f.key,class:"w-full flex justify-between items-center hover:bg-gray-100 hover:dark:bg-gray-800 p-1 rounded-md",onClick:F=>C(f)},[t("div",X,B(f.label),1),w(f)?(u(),m("div",Y,[l(s(U),{class:"h-4 w-4 text-gray-600 dark:text-gray-400"})])):V("",!0)],8,W))),128))],2)]))}}),ee={class:"relative"},te=["onClick"],re={class:"w-full text-sm text-left"},se={key:0},oe=M({__name:"SingleSelect",props:N({options:{type:Array,required:!0},animate:{type:Boolean,default:!1}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(b){const r=I(b,"modelValue"),$=b,i=S(!1);function w(C){r.value=C}return(C,c)=>(u(),m("div",ee,[s(i)?(u(),m("div",{key:0,class:"fixed inset-0 w-screen z-10",onClick:c[0]||(c[0]=n=>i.value=!s(i))})):V("",!0),t("button",{class:_(["relative min-w-40 xl:min-w-52 w-full bg-white dark:bg-gray-800 flex justify-between items-center px-2 py-0.5 rounded-md border-[2px] border-gray-300 dark:border-gray-900",s(i)?"z-20":""]),onClick:c[1]||(c[1]=n=>i.value=!s(i))},[t("div",null,B(r.value.label),1),t("div",{class:_(["transition-all duration-200",s(i)?"-rotate-180":"rotate-0"])},[l(s(q),{class:"h-3 w-3 text-gray-400 dark:text-gray-600"})],2)],2),t("div",{class:_(["absolute w-full max-h-60 overflow-y-scroll top-9 bg-white dark:bg-gray-800 right-0 rounded-md border-[2px] border-gray-300 dark:border-gray-900 z-20 p-0.5",b.animate?s(i)?"transition-all h-60 opacity-100":"transition-all h-0 opacity-0 pointer-events-none":s(i)?"h-60":"h-0 opacity-0"])},[(u(!0),m(j,null,z($.options,n=>(u(),m("button",{key:n.key,class:"w-full flex justify-between items-center hover:bg-gray-100 hover:dark:bg-gray-800 p-1 rounded-md",onClick:f=>w(n)},[t("div",re,B(n.label),1),n.key==r.value.key?(u(),m("div",se,[l(s(U),{class:"h-4 w-4 text-gray-600 dark:text-gray-400"})])):V("",!0)],8,te))),128))],2)]))}}),ae={class:"w-full"},ne={class:"mt-4 md:mt-8 p-3 md:p-4"},le={class:"space-y-4 lg:space-y-0 lg:flex justify-center items-center mb-4"},ie={class:"space-y-4 md:space-y-0 md:flex justify-center items-center lg:mb-0"},de={class:"flex items-center"},ue={class:"flex items-center md:ml-4"},ce={class:"lg:ml-4"},me={class:"flex flex-wrap gap-2 items-center"},pe={class:"overflow-x-auto -mx-3 md:mx-0"},fe={class:"flex min-w-max"},ge={class:"flex flex-col border-r-2 dark:border-gray-900 font-bold flex-shrink-0"},ye={class:"text-center"},be={class:"flex overflow-x-auto"},ke={class:"px-2 md:px-4 flex items-center justify-center border-b border-t-2 dark:border-gray-900 h-16 md:h-20 bg-white dark:bg-backdrop-dark gap-1"},xe={class:"text-xs md:text-sm text-gray-700 dark:text-gray-300 truncate"},Ce=M({__name:"benchmark",setup(b){P({title:"Benchmark"});const r=J(),$=K(),i=A(()=>r.tabs),w=S(r.benchmarkColumns),C=S(r.benchmarkSorts);r.benchmarkFilters.length===0&&r.setBenchmarkFilters(w.value);const c=S(JSON.parse(JSON.stringify(r.benchmarkFilters)));Object.keys(r.benchmarkSelectedSort).length==0&&r.setBenchmarkSort(C.value[0]);const n=S(r.benchmarkSelectedSort),f=A(()=>{var g,x,h;const k=r.tabs,o=[];for(const y in k){const d=k[y],e={id:d.id,strategy:((g=d.form.routes[0])==null?void 0:g.strategy)??"",start_date:d.form.start_date,finish_date:d.form.finish_date,fast_mode:d.form.fast_mode,exchange:d.form.exchange,symbol:((x=d.form.routes[0])==null?void 0:x.symbol)??"",timeframe:((h=d.form.routes[0])==null?void 0:h.timeframe)??""},a=d.results.metrics;Object.keys(a).length>0&&(e.total_closed_trades=a.total,e.net_profit=p.round(a.net_profit,1),e.net_profit_percentage=`${p.round(a.net_profit_percentage,1)} %`,e.total_paid_fees=p.round(a.fee,1),e.max_drawdown=`${p.round(a.max_drawdown,1)} %`,e.annual_return=`${p.round(a.annual_return,1)} %`,e.expectancy=`${p.round(a.expectancy_percentage,1)} %`,e.ratio_avg_win_loss=p.round(a.ratio_avg_win_loss,1),e.win_rate=`${p.round(a.win_rate*100,1)} %`,e.longs_percentage=`${p.round(a.longs_percentage,1)} %`,e.shorts_percentage=`${p.round(a.shorts_percentage,1)} %`,e.average_holding_hours=p.round(a.average_holding_period/3600,1),e.sharpe_ratio=p.round(a.sharpe_ratio,1),e.sortino_ratio=p.round(a.sortino_ratio,1),e.calmar_ratio=p.round(a.calmar_ratio,1),e.omega_ratio=p.round(a.omega_ratio,1)),d.results.executing&&!d.results.exception.error?(e.progress=`${d.results.progressbar.current}%`,e.status="running"):d.results.exception.error&&d.results.executing?(e.progress="❌",e.status="error"):Object.keys(a).length===0?e.status="":(e.progress="✅",e.status="finished"),o.push(e)}return o}),F=A(()=>n.value.key==="none"?f.value:[...f.value].sort((k,o)=>{const g=n.value.key,x=parseFloat(k[g])||null,h=parseFloat(o[g])||null;return x===null&&h===null?0:x===null?1:h===null||x>h?-1:xw.value.findIndex(g=>g.key===k.key)-w.value.findIndex(g=>g.key===o.key)),r.setBenchmarkFilters(c.value)}return R(c,D,{deep:!0}),R(n,k=>{r.setBenchmarkSort(k)},{deep:!0}),(k,o)=>{const g=G,x=Z,h=oe,y=H,d=L;return u(),m(j,null,[t("div",ae,[l(g,{"current-tab":null,tabs:i.value,onClose:o[0]||(o[0]=e=>s(r).closeTab(e,s($).path))},null,8,["tabs"])]),t("div",ne,[t("div",le,[t("div",ie,[t("div",de,[o[4]||(o[4]=t("div",{class:"font-bold whitespace-nowrap mr-3 text-sm md:text-base"},"Filter by:",-1)),l(x,{modelValue:c.value,"onUpdate:modelValue":o[1]||(o[1]=e=>c.value=e),options:w.value},null,8,["modelValue","options"])]),t("div",ue,[o[5]||(o[5]=t("div",{class:"font-bold whitespace-nowrap mr-3 text-sm md:text-base"},"Sort by:",-1)),l(h,{modelValue:n.value,"onUpdate:modelValue":o[2]||(o[2]=e=>n.value=e),options:C.value},null,8,["modelValue","options"])])]),t("div",ce,[o[10]||(o[10]=t("div",{class:"font-bold mb-3 text-sm md:text-base lg:hidden"},"Actions:",-1)),t("div",me,[o[9]||(o[9]=t("div",{class:"hidden lg:block font-bold mr-2"},"Actions:",-1)),l(y,{icon:"i-heroicons-arrow-path",size:"sm",class:"flex-1 sm:flex-none",onClick:s(r).rerunAll},{default:v(()=>o[6]||(o[6]=[t("span",{class:"hidden sm:inline"},"Rerun All",-1),t("span",{class:"sm:hidden"},"Rerun",-1)])),_:1},8,["onClick"]),l(y,{icon:"i-heroicons-arrow-path",color:"rose",size:"sm",class:"flex-1 sm:flex-none",onClick:s(r).rerunFailed},{default:v(()=>o[7]||(o[7]=[t("span",{class:"hidden sm:inline"},"Rerun Failed Only",-1),t("span",{class:"sm:hidden"},"Failed",-1)])),_:1},8,["onClick"]),l(y,{icon:"i-heroicons-stop",color:"gray",size:"sm",class:"flex-1 sm:flex-none",onClick:s(r).cancelAllRunning},{default:v(()=>o[8]||(o[8]=[t("span",{class:"hidden sm:inline"},"Cancel All",-1),t("span",{class:"sm:hidden"},"Cancel",-1)])),_:1},8,["onClick"])])])]),t("div",pe,[t("div",fe,[t("div",ge,[o[11]||(o[11]=t("div",{class:"border-b-2 dark:border-gray-900 h-16 md:h-20"},null,-1)),(u(!0),m(j,null,z(c.value,(e,a)=>(u(),m("div",{key:e.key,class:_(["text-xs md:text-sm uppercase border-b border-l dark:border-gray-900 min-w-[10rem] md:min-w-[13rem] min-h-[3.5rem] md:min-h-[4rem] flex items-center justify-center px-2",a%2===0?"bg-gray-50 dark:bg-gray-800":"bg-white dark:bg-backdrop-dark"])},[t("span",ye,B(e.label),1)],2))),128))]),t("div",be,[(u(!0),m(j,null,z(F.value,e=>(u(),m("div",{key:e.id,class:"flex flex-col border-r dark:border-gray-900 flex-shrink-0"},[t("div",ke,[l(d,{text:"Rerun","open-delay":500,popper:{arrow:!0}},{default:v(()=>[l(y,{size:"xs",class:"md:mr-2",variant:"ghost",icon:"i-heroicons-arrow-path",disabled:e.status==="running",onClick:a=>s(r).rerun(e.id)},null,8,["disabled","onClick"])]),_:2},1024),l(d,{text:"Go to backtest page","open-delay":500,popper:{arrow:!0}},{default:v(()=>[l(y,{to:`/backtest/${e.id}`,size:"xs",class:"md:mr-2",variant:"ghost",color:"gray",icon:"i-heroicons-arrow-top-right-on-square"},null,8,["to"])]),_:2},1024),l(d,{text:"Duplicate","open-delay":500,popper:{arrow:!0}},{default:v(()=>[l(y,{size:"xs",class:"md:mr-2",variant:"ghost",icon:"i-heroicons-document-duplicate",color:"blue",onClick:a=>s(r).duplicateTab(e.id)},null,8,["onClick"])]),_:2},1024),e.status==="running"?(u(),T(d,{key:0,text:"Cancel","open-delay":500,popper:{arrow:!0}},{default:v(()=>[l(y,{size:"xs",variant:"ghost",icon:"i-heroicons-stop",color:"gray",onClick:a=>s(r).cancel(e.id)},null,8,["onClick"])]),_:2},1024)):(u(),T(d,{key:1,text:"Close tab","open-delay":500,popper:{arrow:!0}},{default:v(()=>[l(y,{size:"xs",variant:"ghost",icon:"i-heroicons-trash",color:"red",disabled:Object.keys(F.value).length==1,onClick:a=>s(r).closeTab(e.id,s($).path)},null,8,["disabled","onClick"])]),_:2},1024))]),(u(!0),m(j,null,z(c.value,(a,E)=>(u(),m("div",{key:a.key,class:_(["border-b dark:border-gray-900 min-w-[6rem] text-center min-h-[3.5rem] md:min-h-[4rem] w-[10em] md:w-[13em]",e.status==="running"?"animate-pulse":""])},[t("div",{class:_(["px-2 md:px-4 py-3 md:py-4 w-full h-full truncate flex items-center justify-center",E%2===0?"bg-gray-50 dark:bg-gray-800":"bg-white dark:bg-backdrop-dark"])},[t("span",xe,B(e[a.key]||"-"),1)],2)],2))),128))]))),128)),l(d,{text:"Add New Tab","open-delay":500,popper:{arrow:!0}},{default:v(()=>[t("button",{class:"w-16 md:w-20 h-full px-2 md:px-4 flex flex-col justify-between items-center border-dashed border-2 dark:border-gray-900 bg-white hover:bg-gray-50 dark:bg-backdrop-dark hover:dark:bg-gray-800 py-8 md:py-10 flex-shrink-0",onClick:o[3]||(o[3]=e=>s(r).addTab())},[l(s(O),{class:"h-5 w-5 md:h-6 md:w-6 text-gray-400 dark:text-gray-100"}),l(s(O),{class:"h-5 w-5 md:h-6 md:w-6 text-gray-400 dark:text-gray-100"}),l(s(O),{class:"h-5 w-5 md:h-6 md:w-6 text-gray-400 dark:text-gray-100"})])]),_:1})])])])])],64)}}});export{Ce as default}; ================================================ FILE: jesse/static/_nuxt/CQ0soPOq.js ================================================ import e from"./BMYPR7BL.js";import t from"./COK4E0Yg.js";import n from"./BPhBrDlE.js";import a from"./C3t2pwGQ.js";import r from"./ySlJ1b_l.js";import i from"./atvbtKCR.js";const s=Object.freeze(JSON.parse(`{"displayName":"Crystal","fileTypes":["cr"],"firstLineMatch":"^#!/.*\\\\bcrystal","foldingStartMarker":"^(\\\\s*+(annotation|module|class|struct|union|enum|def(?!.*\\\\bend\\\\s*$)|unless|if|case|begin|for|while|until|^=begin|(\\"(\\\\\\\\.|[^\\"])*+\\"|'(\\\\\\\\.|[^'])*+'|[^#\\"'])*(\\\\s(do|begin|case)|(?~]\\\\s*+(if|unless)))\\\\b(?![^;]*+;.*?\\\\bend\\\\b)|(\\"(\\\\\\\\.|[^\\"])*+\\"|'(\\\\\\\\.|[^'])*+'|[^#\\"'])*(\\\\{(?![^}]*+\\\\})|\\\\[(?![^\\\\]]*+\\\\]))).*$|[#].*?\\\\(fold\\\\)\\\\s*+$","foldingStopMarker":"((^|;)\\\\s*+end\\\\s*+([#].*)?$|(^|;)\\\\s*+end\\\\..*$|^\\\\s*+[}\\\\]],?\\\\s*+([#].*)?$|[#].*?\\\\(end\\\\)\\\\s*+$|^=end)","name":"crystal","patterns":[{"captures":{"1":{"name":"keyword.control.class.crystal"},"2":{"name":"keyword.control.class.crystal"},"3":{"name":"entity.name.type.class.crystal"},"5":{"name":"punctuation.separator.crystal"},"6":{"name":"support.class.other.type-param.crystal"},"7":{"name":"entity.other.inherited-class.crystal"},"8":{"name":"punctuation.separator.crystal"},"9":{"name":"punctuation.separator.crystal"},"10":{"name":"support.class.other.type-param.crystal"},"11":{"name":"punctuation.definition.variable.crystal"}},"match":"^\\\\s*(abstract)?\\\\s*(class|struct|union|annotation|enum)\\\\s+(([.A-Z_:\\\\x{80}-\\\\x{10FFFF}][.\\\\w:\\\\x{80}-\\\\x{10FFFF}]*(\\\\(([,\\\\s.a-zA-Z0-9_:\\\\x{80}-\\\\x{10FFFF}]+)\\\\))?(\\\\s*(<)\\\\s*[.:A-Z\\\\x{80}-\\\\x{10FFFF}][.:\\\\w\\\\x{80}-\\\\x{10FFFF}]*(\\\\(([.a-zA-Z0-9_:]+\\\\s,)\\\\))?)?)|((<<)\\\\s*[.A-Z0-9_:\\\\x{80}-\\\\x{10FFFF}]+))","name":"meta.class.crystal"},{"captures":{"1":{"name":"keyword.control.module.crystal"},"2":{"name":"entity.name.type.module.crystal"},"3":{"name":"entity.other.inherited-class.module.first.crystal"},"4":{"name":"punctuation.separator.inheritance.crystal"},"5":{"name":"entity.other.inherited-class.module.second.crystal"},"6":{"name":"punctuation.separator.inheritance.crystal"},"7":{"name":"entity.other.inherited-class.module.third.crystal"},"8":{"name":"punctuation.separator.inheritance.crystal"}},"match":"^\\\\s*(module)\\\\s+(([A-Z\\\\x{80}-\\\\x{10FFFF}][\\\\w\\\\x{80}-\\\\x{10FFFF}]*(::))?([A-Z\\\\x{80}-\\\\x{10FFFF}][\\\\w\\\\x{80}-\\\\x{10FFFF}]*(::))?([A-Z\\\\x{80}-\\\\x{10FFFF}][\\\\w\\\\x{80}-\\\\x{10FFFF}]*(::))*[A-Z\\\\x{80}-\\\\x{10FFFF}][\\\\w\\\\x{80}-\\\\x{10FFFF}]*)","name":"meta.module.crystal"},{"captures":{"1":{"name":"keyword.control.lib.crystal"},"2":{"name":"entity.name.type.lib.crystal"},"3":{"name":"entity.other.inherited-class.lib.first.crystal"},"4":{"name":"punctuation.separator.inheritance.crystal"},"5":{"name":"entity.other.inherited-class.lib.second.crystal"},"6":{"name":"punctuation.separator.inheritance.crystal"},"7":{"name":"entity.other.inherited-class.lib.third.crystal"},"8":{"name":"punctuation.separator.inheritance.crystal"}},"match":"^\\\\s*(lib)\\\\s+(([A-Z]\\\\w*(::))?([A-Z]\\\\w*(::))?([A-Z]\\\\w*(::))*[A-Z]\\\\w*)","name":"meta.lib.crystal"},{"captures":{"1":{"name":"keyword.control.lib.type.crystal"},"2":{"name":"entity.name.lib.type.crystal"},"3":{"name":"keyword.control.lib.crystal"},"4":{"name":"entity.name.lib.type.value.crystal"}},"comment":"type in lib","match":"(?|_|\\\\*|\\\\$|\\\\?|:|\\"|-[0adFiIlpv])","name":"variable.other.readwrite.global.pre-defined.crystal"},{"begin":"\\\\b(ENV)\\\\[","beginCaptures":{"1":{"name":"variable.other.constant.crystal"}},"end":"\\\\]","name":"meta.environment-variable.crystal","patterns":[{"include":"$self"}]},{"comment":"Literals name of Crystal","match":"\\\\b[A-Z\\\\x{80}-\\\\x{10FFFF}][\\\\w\\\\x{80}-\\\\x{10FFFF}]*","name":"support.class.crystal"},{"comment":"Fetch from https://crystal-lang.org/api/0.36.1/toplevel.html","match":"(?[a-zA-Z_]\\\\w*(?>\\\\.|::))?(?>[a-zA-Z_]\\\\w*(?>[?!]|=(?!>))?|\\\\^|===?|!=|>[>=]?|<=>|<[<=]?|[%&\`/\\\\|]|\\\\*\\\\*?|=?~|[-+]@?|\\\\[][?=]?|\\\\[]=?))\\\\s*(\\\\()","beginCaptures":{"1":{"name":"keyword.control.def.crystal"},"2":{"name":"entity.name.function.crystal"},"3":{"name":"punctuation.definition.parameters.crystal"}},"comment":"The method pattern comes from the symbol pattern. See there for an explanation.","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.crystal"}},"name":"meta.function.method.with-arguments.crystal","patterns":[{"begin":"(?![\\\\s,)])","end":"(?=,|\\\\)\\\\s*)","patterns":[{"captures":{"1":{"name":"storage.type.variable.crystal"},"2":{"name":"constant.other.symbol.hashkey.parameter.function.crystal"},"3":{"name":"punctuation.definition.constant.hashkey.crystal"},"4":{"name":"variable.parameter.function.crystal"}},"match":"\\\\G([&*]?)(?:([_a-zA-Z]\\\\w*(:))|([_a-zA-Z]\\\\w*))"},{"include":"$self"}]}]},{"captures":{"1":{"name":"keyword.control.def.crystal"},"3":{"name":"entity.name.function.crystal"}},"comment":" the optional name is just to catch the def also without a method-name","match":"(?=def\\\\b)(?<=^|\\\\s)(def)\\\\b(\\\\s+((?>[a-zA-Z_]\\\\w*(?>\\\\.|::))?(?>[a-zA-Z_]\\\\w*(?>[?!]|=(?!>))?|\\\\^|===?|!=|>[>=]?|<=>|<[<=]?|[%&\`/\\\\|]|\\\\*\\\\*?|=?~|[-+]@?|\\\\[][?=]?|\\\\[]=?)))?","name":"meta.function.method.without-arguments.crystal"},{"comment":"Floating point literal (fraction)","match":"\\\\b[0-9][0-9_]*\\\\.[0-9][0-9_]*([eE][+-]?[0-9_]+)?(f32|f64)?\\\\b","name":"constant.numeric.float.crystal"},{"comment":"Floating point literal (exponent)","match":"\\\\b[0-9][0-9_]*(\\\\.[0-9][0-9_]*)?[eE][+-]?[0-9_]+(f32|f64)?\\\\b","name":"constant.numeric.float.crystal"},{"comment":"Floating point literal (typed)","match":"\\\\b[0-9][0-9_]*(\\\\.[0-9][0-9_]*)?([eE][+-]?[0-9_]+)?(f32|f64)\\\\b","name":"constant.numeric.float.crystal"},{"comment":"Integer literal (decimal)","match":"\\\\b(?!0[0-9])[0-9][0-9_]*([ui](8|16|32|64|128))?\\\\b","name":"constant.numeric.integer.decimal.crystal"},{"comment":"Integer literal (hexadecimal)","match":"\\\\b0x[a-fA-F0-9_]+([ui](8|16|32|64|128))?\\\\b","name":"constant.numeric.integer.hexadecimal.crystal"},{"comment":"Integer literal (octal)","match":"\\\\b0o[0-7_]+([ui](8|16|32|64|128))?\\\\b","name":"constant.numeric.integer.octal.crystal"},{"comment":"Integer literal (binary)","match":"\\\\b0b[01_]+([ui](8|16|32|64|128))?\\\\b","name":"constant.numeric.integer.binary.crystal"},{"begin":":'","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.crystal"}},"comment":"symbol literal with '' delimiter","end":"'","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.crystal"}},"name":"constant.other.symbol.crystal","patterns":[{"match":"\\\\\\\\['\\\\\\\\]","name":"constant.character.escape.crystal"}]},{"begin":":\\"","beginCaptures":{"0":{"name":"punctuation.section.symbol.begin.crystal"}},"comment":"symbol literal with \\"\\" delimiter","end":"\\"","endCaptures":{"0":{"name":"punctuation.section.symbol.end.crystal"}},"name":"constant.other.symbol.interpolated.crystal","patterns":[{"include":"#interpolated_crystal"},{"include":"#escaped_char"}]},{"comment":"Needs higher precedence than regular expressions.","match":"(?","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.interpolated.crystal","patterns":[{"include":"#interpolated_crystal"},{"include":"#escaped_char"},{"include":"#nest_ltgt_i"}]},{"begin":"%x\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"execute string (allow for interpolation)","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.interpolated.crystal","patterns":[{"include":"#interpolated_crystal"},{"include":"#escaped_char"},{"include":"#nest_parens_i"}]},{"begin":"%x\\\\|","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"execute string (allow for interpolation)","end":"\\\\|","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.interpolated.crystal","patterns":[{"include":"#interpolated_crystal"},{"include":"#escaped_char"}]},{"begin":"(?:^|(?<=[=>~(?:\\\\[,|&;]|[\\\\s;]if\\\\s|[\\\\s;]elsif\\\\s|[\\\\s;]while\\\\s|[\\\\s;]unless\\\\s|[\\\\s;]when\\\\s|[\\\\s;]assert_match\\\\s|[\\\\s;]or\\\\s|[\\\\s;]and\\\\s|[\\\\s;]not\\\\s|[\\\\s.]index\\\\s|[\\\\s.]scan\\\\s|[\\\\s.]sub\\\\s|[\\\\s.]sub!\\\\s|[\\\\s.]gsub\\\\s|[\\\\s.]gsub!\\\\s|[\\\\s.]match\\\\s)|(?<=^when\\\\s|^if\\\\s|^elsif\\\\s|^while\\\\s|^unless\\\\s))\\\\s*((/))(?![*+{}?])","captures":{"1":{"name":"string.regexp.classic.crystal"},"2":{"name":"punctuation.definition.string.crystal"}},"comment":"regular expressions (normal) we only start a regexp if the character before it (excluding whitespace) is what we think is before a regexp","contentName":"string.regexp.classic.crystal","end":"((/[imsx]*))","patterns":[{"include":"#regex_sub"}]},{"begin":"%r\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"regular expressions (literal)","end":"\\\\}[imsx]*","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.regexp.mod-r.crystal","patterns":[{"include":"#regex_sub"},{"include":"#nest_curly_r"}]},{"begin":"%r\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"regular expressions (literal)","end":"\\\\][imsx]*","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.regexp.mod-r.crystal","patterns":[{"include":"#regex_sub"},{"include":"#nest_brackets_r"}]},{"begin":"%r\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"regular expressions (literal)","end":"\\\\)[imsx]*","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.regexp.mod-r.crystal","patterns":[{"include":"#regex_sub"},{"include":"#nest_parens_r"}]},{"begin":"%r\\\\<","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"regular expressions (literal)","end":"\\\\>[imsx]*","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.regexp.mod-r.crystal","patterns":[{"include":"#regex_sub"},{"include":"#nest_ltgt_r"}]},{"begin":"%r\\\\|","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"regular expressions (literal)","end":"\\\\|[imsx]*","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.regexp.mod-r.crystal","patterns":[{"include":"#regex_sub"}]},{"begin":"%Q?\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"literal capable of interpolation ()","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.quoted.other.literal.upper.crystal","patterns":[{"include":"#interpolated_crystal"},{"include":"#escaped_char"},{"include":"#nest_parens_i"}]},{"begin":"%Q?\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"literal capable of interpolation []","end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.quoted.other.literal.upper.crystal","patterns":[{"include":"#interpolated_crystal"},{"include":"#escaped_char"},{"include":"#nest_brackets_i"}]},{"begin":"%Q?\\\\<","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"literal capable of interpolation <>","end":"\\\\>","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.quoted.other.literal.upper.crystal","patterns":[{"include":"#interpolated_crystal"},{"include":"#escaped_char"},{"include":"#nest_ltgt_i"}]},{"begin":"%Q?\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"literal capable of interpolation -- {}","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.quoted.double.crystal.mod","patterns":[{"include":"#interpolated_crystal"},{"include":"#escaped_char"},{"include":"#nest_curly_i"}]},{"begin":"%Q\\\\|","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"literal capable of interpolation -- ||","end":"\\\\|","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.quoted.other.literal.upper.crystal","patterns":[{"include":"#interpolated_crystal"},{"include":"#escaped_char"}]},{"begin":"%[qwi]\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"literal incapable of interpolation -- ()","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.quoted.other.literal.lower.crystal","patterns":[{"match":"\\\\\\\\\\\\)|\\\\\\\\\\\\\\\\","name":"constant.character.escape.crystal"},{"include":"#nest_parens"}]},{"begin":"%[qwi]\\\\<","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"literal incapable of interpolation -- <>","end":"\\\\>","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.quoted.other.literal.lower.crystal","patterns":[{"match":"\\\\\\\\\\\\>|\\\\\\\\\\\\\\\\","name":"constant.character.escape.crystal"},{"include":"#nest_ltgt"}]},{"begin":"%[qwi]\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"literal incapable of interpolation -- []","end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.quoted.other.literal.lower.crystal","patterns":[{"match":"\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\","name":"constant.character.escape.crystal"},{"include":"#nest_brackets"}]},{"begin":"%[qwi]\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"literal incapable of interpolation -- {}","end":"\\\\}","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.quoted.other.literal.lower.crystal","patterns":[{"match":"\\\\\\\\\\\\}|\\\\\\\\\\\\\\\\","name":"constant.character.escape.crystal"},{"include":"#nest_curly"}]},{"begin":"%[qwi]\\\\|","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"literal incapable of interpolation -- ||","end":"\\\\|","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.quoted.other.literal.lower.crystal","patterns":[{"comment":"Cant be named because its not necessarily an escape.","match":"\\\\\\\\."}]},{"captures":{"1":{"name":"punctuation.definition.constant.crystal"}},"comment":"symbols","match":"(?[a-zA-Z_\\\\x{80}-\\\\x{10FFFF}][\\\\w\\\\x{80}-\\\\x{10FFFF}]*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<[<=]?|<=>|[%&\`/\\\\|]|\\\\*\\\\*?|=?~|[-+]@?|\\\\[\\\\][?=]?|@@?[a-zA-Z_\\\\x{80}-\\\\x{10FFFF}][\\\\w\\\\x{80}-\\\\x{10FFFF}]*)","name":"constant.other.symbol.crystal"},{"captures":{"1":{"name":"punctuation.definition.constant.crystal"}},"comment":"symbols","match":"(?>[a-zA-Z_\\\\x{80}-\\\\x{10FFFF}][\\\\w\\\\x{80}-\\\\x{10FFFF}]*(?>[?!])?)(:)(?!:)","name":"constant.other.symbol.crystal.19syntax"},{"captures":{"1":{"name":"punctuation.definition.comment.crystal"}},"match":"(?:^[ \\\\t]+)?(#).*$\\\\n?","name":"comment.line.number-sign.crystal"},{"match":"(?<<-('?)((?:[_\\\\w]+_|)HTML)\\\\b\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"heredoc with embedded HTML and indented terminator","contentName":"text.html.embedded.crystal","end":"\\\\s*\\\\2\\\\b","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.unquoted.embedded.html.crystal","patterns":[{"include":"#heredoc"},{"include":"text.html.basic"},{"include":"#interpolated_crystal"},{"include":"#escaped_char"}]},{"begin":"(?><<-('?)((?:[_\\\\w]+_|)SQL)\\\\b\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"heredoc with embedded SQL and indented terminator","contentName":"text.sql.embedded.crystal","end":"\\\\s*\\\\2\\\\b","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.unquoted.embedded.sql.crystal","patterns":[{"include":"#heredoc"},{"include":"source.sql"},{"include":"#interpolated_crystal"},{"include":"#escaped_char"}]},{"begin":"(?><<-('?)((?:[_\\\\w]+_|)CSS)\\\\b\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"heredoc with embedded css and intented terminator","contentName":"text.css.embedded.crystal","end":"\\\\s*\\\\2\\\\b","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.unquoted.embedded.css.crystal","patterns":[{"include":"#heredoc"},{"include":"source.css"},{"include":"#interpolated_crystal"},{"include":"#escaped_char"}]},{"begin":"(?><<-('?)((?:[_\\\\w]+_|)CPP)\\\\b\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"heredoc with embedded c++ and intented terminator","contentName":"text.c++.embedded.crystal","end":"\\\\s*\\\\2\\\\b","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.unquoted.embedded.cplusplus.crystal","patterns":[{"include":"#heredoc"},{"include":"source.c++"},{"include":"#interpolated_crystal"},{"include":"#escaped_char"}]},{"begin":"(?><<-('?)((?:[_\\\\w]+_|)C)\\\\b\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"heredoc with embedded c++ and intented terminator","contentName":"text.c.embedded.crystal","end":"\\\\s*\\\\2\\\\b","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.unquoted.embedded.c.crystal","patterns":[{"include":"#heredoc"},{"include":"source.c"},{"include":"#interpolated_crystal"},{"include":"#escaped_char"}]},{"begin":"(?><<-('?)((?:[_\\\\w]+_|)(?:JS|JAVASCRIPT))\\\\b\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"heredoc with embedded javascript and intented terminator","contentName":"text.js.embedded.crystal","end":"\\\\s*\\\\2\\\\b","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.unquoted.embedded.js.crystal","patterns":[{"include":"#heredoc"},{"include":"source.js"},{"include":"#interpolated_crystal"},{"include":"#escaped_char"}]},{"begin":"(?><<-('?)((?:[_\\\\w]+_|)JQUERY)\\\\b\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"heredoc with embedded javascript and intented terminator","contentName":"text.js.jquery.embedded.crystal","end":"\\\\s*\\\\2\\\\b","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.unquoted.embedded.js.jquery.crystal","patterns":[{"include":"#heredoc"},{"include":"source.js.jquery"},{"include":"#interpolated_crystal"},{"include":"#escaped_char"}]},{"begin":"(?><<-('?)((?:[_\\\\w]+_|)(?:SH|SHELL))\\\\b\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"heredoc with embedded shell and intented terminator","contentName":"text.shell.embedded.crystal","end":"\\\\s*\\\\2\\\\b","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.unquoted.embedded.shell.crystal","patterns":[{"include":"#heredoc"},{"include":"source.shell"},{"include":"#interpolated_crystal"},{"include":"#escaped_char"}]},{"begin":"(?><<-('?)((?:[_\\\\w]+_|)CRYSTAL)\\\\b\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"heredoc with embedded crystal and intented terminator","contentName":"text.crystal.embedded.crystal","end":"\\\\s*\\\\2\\\\b","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.unquoted.embedded.crystal.crystal","patterns":[{"include":"#heredoc"},{"include":"source.crystal"},{"include":"#interpolated_crystal"},{"include":"#escaped_char"}]},{"begin":"(?><<-'(\\\\w+)')","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"heredoc with indented terminator","end":"\\\\s*\\\\1\\\\b","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.unquoted.heredoc.crystal","patterns":[{"include":"#heredoc"},{"include":"#escaped_char"}]},{"begin":"(?><<-(\\\\w+)\\\\b)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.crystal"}},"comment":"heredoc with indented terminator","end":"\\\\s*\\\\1\\\\b","endCaptures":{"0":{"name":"punctuation.definition.string.end.crystal"}},"name":"string.unquoted.heredoc.crystal","patterns":[{"include":"#heredoc"},{"include":"#interpolated_crystal"},{"include":"#escaped_char"}]},{"begin":"(?<={|{\\\\s|[^A-Za-z0-9_]do|^do|[^A-Za-z0-9_]do\\\\s|^do\\\\s)(\\\\|)","captures":{"1":{"name":"punctuation.separator.variable.crystal"}},"end":"(?","name":"punctuation.separator.key-value"},{"match":"->","name":"support.function.kernel.crystal"},{"match":"<<=|%=|&{1,2}=|\\\\*=|\\\\*\\\\*=|\\\\+=|-=|\\\\^=|\\\\|{1,2}=|<<","name":"keyword.operator.assignment.augmented.crystal"},{"match":"<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\\\t])\\\\?","name":"keyword.operator.comparison.crystal"},{"match":"(?<=^|[ \\\\t])!|&&|\\\\|\\\\||\\\\^","name":"keyword.operator.logical.crystal"},{"match":"(\\\\{\\\\%|\\\\%\\\\}|\\\\{\\\\{|\\\\}\\\\})","name":"keyword.operator.macro.crystal"},{"captures":{"1":{"name":"punctuation.separator.method.crystal"}},"comment":"Safe navigation operator","match":"(&\\\\.)\\\\s*(?![A-Z])"},{"match":"(%|&|\\\\*\\\\*|\\\\*|\\\\+|\\\\-|/)","name":"keyword.operator.arithmetic.crystal"},{"match":"=","name":"keyword.operator.assignment.crystal"},{"match":"\\\\||~|>>","name":"keyword.operator.other.crystal"},{"match":":","name":"punctuation.separator.other.crystal"},{"match":"\\\\;","name":"punctuation.separator.statement.crystal"},{"match":",","name":"punctuation.separator.object.crystal"},{"match":"\\\\.|::","name":"punctuation.separator.method.crystal"},{"match":"\\\\{|\\\\}","name":"punctuation.section.scope.crystal"},{"match":"\\\\[|\\\\]","name":"punctuation.section.array.crystal"},{"match":"\\\\(|\\\\)","name":"punctuation.section.function.crystal"},{"begin":"(?=[a-zA-Z0-9_!?]+\\\\()","end":"(?<=\\\\))","name":"meta.function-call.crystal","patterns":[{"match":"([a-zA-Z0-9_!?]+)(?=\\\\()","name":"entity.name.function.crystal"},{"include":"$self"}]},{"comment":"This is kindof experimental. There really is no way to perfectly match all regular variables, but you can pretty well assume that any normal word in certain curcumstances that havnt already been scoped as something else are probably variables, and the advantages beat the potential errors","match":"((?<=\\\\W)\\\\b|^)\\\\w+\\\\b(?=\\\\s*([\\\\]\\\\)\\\\}\\\\=\\\\+\\\\-\\\\*\\\\/\\\\^\\\\$\\\\,\\\\.]|<\\\\s|<<[\\\\s|\\\\.]))","name":"variable.other.crystal"}],"repository":{"escaped_char":{"comment":"https://crystal-lang.org/reference/syntax_and_semantics/literals/string.html","match":"\\\\\\\\(?:[0-7]{1,3}|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|u\\\\{[a-fA-F0-9 ]+\\\\}|.)","name":"constant.character.escape.crystal"},"heredoc":{"begin":"^<<-?\\\\w+","end":"$","patterns":[{"include":"$self"}]},"interpolated_crystal":{"patterns":[{"begin":"#\\\\{","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.crystal"}},"contentName":"source.crystal","end":"(\\\\})","endCaptures":{"0":{"name":"punctuation.section.embedded.end.crystal"},"1":{"name":"source.crystal"}},"name":"meta.embedded.line.crystal","patterns":[{"include":"#nest_curly_and_self"},{"include":"$self"}],"repository":{"nest_curly_and_self":{"patterns":[{"begin":"\\\\{","captures":{"0":{"name":"punctuation.section.scope.crystal"}},"end":"\\\\}","patterns":[{"include":"#nest_curly_and_self"}]},{"include":"$self"}]}}},{"captures":{"1":{"name":"punctuation.definition.variable.crystal"}},"match":"(#@)[a-zA-Z_]\\\\w*","name":"variable.other.readwrite.instance.crystal"},{"captures":{"1":{"name":"punctuation.definition.variable.crystal"}},"match":"(#@@)[a-zA-Z_]\\\\w*","name":"variable.other.readwrite.class.crystal"},{"captures":{"1":{"name":"punctuation.definition.variable.crystal"}},"match":"(#\\\\$)[a-zA-Z_]\\\\w*","name":"variable.other.readwrite.global.crystal"}]},"nest_brackets":{"begin":"\\\\[","captures":{"0":{"name":"punctuation.section.scope.crystal"}},"end":"\\\\]","patterns":[{"include":"#nest_brackets"}]},"nest_brackets_i":{"begin":"\\\\[","captures":{"0":{"name":"punctuation.section.scope.crystal"}},"end":"\\\\]","patterns":[{"include":"#interpolated_crystal"},{"include":"#escaped_char"},{"include":"#nest_brackets_i"}]},"nest_brackets_r":{"begin":"\\\\[","captures":{"0":{"name":"punctuation.section.scope.crystal"}},"end":"\\\\]","patterns":[{"include":"#regex_sub"},{"include":"#nest_brackets_r"}]},"nest_curly":{"begin":"\\\\{","captures":{"0":{"name":"punctuation.section.scope.crystal"}},"end":"\\\\}","patterns":[{"include":"#nest_curly"}]},"nest_curly_and_self":{"patterns":[{"begin":"\\\\{","captures":{"0":{"name":"punctuation.section.scope.crystal"}},"end":"\\\\}","patterns":[{"include":"#nest_curly_and_self"}]},{"include":"$self"}]},"nest_curly_i":{"begin":"\\\\{","captures":{"0":{"name":"punctuation.section.scope.crystal"}},"end":"\\\\}","patterns":[{"include":"#interpolated_crystal"},{"include":"#escaped_char"},{"include":"#nest_curly_i"}]},"nest_curly_r":{"begin":"\\\\{","captures":{"0":{"name":"punctuation.section.scope.crystal"}},"end":"\\\\}","patterns":[{"include":"#regex_sub"},{"include":"#nest_curly_r"}]},"nest_ltgt":{"begin":"\\\\<","captures":{"0":{"name":"punctuation.section.scope.crystal"}},"end":"\\\\>","patterns":[{"include":"#nest_ltgt"}]},"nest_ltgt_i":{"begin":"\\\\<","captures":{"0":{"name":"punctuation.section.scope.crystal"}},"end":"\\\\>","patterns":[{"include":"#interpolated_crystal"},{"include":"#escaped_char"},{"include":"#nest_ltgt_i"}]},"nest_ltgt_r":{"begin":"\\\\<","captures":{"0":{"name":"punctuation.section.scope.crystal"}},"end":"\\\\>","patterns":[{"include":"#regex_sub"},{"include":"#nest_ltgt_r"}]},"nest_parens":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.section.scope.crystal"}},"end":"\\\\)","patterns":[{"include":"#nest_parens"}]},"nest_parens_i":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.section.scope.crystal"}},"end":"\\\\)","patterns":[{"include":"#interpolated_crystal"},{"include":"#escaped_char"},{"include":"#nest_parens_i"}]},"nest_parens_r":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.section.scope.crystal"}},"end":"\\\\)","patterns":[{"include":"#regex_sub"},{"include":"#nest_parens_r"}]},"regex_sub":{"patterns":[{"include":"#interpolated_crystal"},{"include":"#escaped_char"},{"captures":{"1":{"name":"punctuation.definition.arbitrary-repetition.crystal"},"3":{"name":"punctuation.definition.arbitrary-repetition.crystal"}},"match":"({)\\\\d+(,\\\\d+)?(})","name":"string.regexp.arbitrary-repetition.crystal"},{"begin":"\\\\[(?:\\\\^?])?","captures":{"0":{"name":"punctuation.definition.character-class.crystal"}},"end":"]","name":"string.regexp.character-class.crystal","patterns":[{"include":"#escaped_char"}]},{"begin":"\\\\(","captures":{"0":{"name":"punctuation.definition.group.crystal"}},"end":"\\\\)","name":"string.regexp.group.crystal","patterns":[{"include":"#regex_sub"}]},{"captures":{"1":{"name":"punctuation.definition.comment.crystal"}},"comment":"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.","match":"(?<=^|\\\\s)(#)\\\\s[[a-zA-Z0-9,. \\\\t?!-][^\\\\x{00}-\\\\x{7F}]]*$","name":"comment.line.number-sign.crystal"}]}},"scopeName":"source.crystal","embeddedLangs":["html","sql","css","c","javascript","shellscript"]}`)),p=[...e,...t,...n,...a,...r,...i,s];export{p as default}; ================================================ FILE: jesse/static/_nuxt/CQjiPCtT.js ================================================ const e=Object.freeze(JSON.parse(`{"displayName":"Tasl","fileTypes":["tasl"],"name":"tasl","patterns":[{"include":"#comment"},{"include":"#namespace"},{"include":"#type"},{"include":"#class"},{"include":"#edge"}],"repository":{"class":{"begin":"(?:^\\\\s*)(class)\\\\b","beginCaptures":{"1":{"name":"keyword.control.tasl.class"}},"end":"$","patterns":[{"include":"#key"},{"include":"#export"},{"include":"#expression"}]},"comment":{"captures":{"1":{"name":"punctuation.definition.comment.tasl"}},"match":"(#).*$","name":"comment.line.number-sign.tasl"},"component":{"begin":"->","beginCaptures":{"0":{"name":"punctuation.separator.tasl.component"}},"end":"$","patterns":[{"include":"#expression"}]},"coproduct":{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.block.tasl.coproduct"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.definition.block.tasl.coproduct"}},"patterns":[{"include":"#comment"},{"include":"#term"},{"include":"#option"}]},"datatype":{"match":"[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+","name":"string.regexp"},"edge":{"begin":"(?:^\\\\s*)(edge)\\\\b","beginCaptures":{"1":{"name":"keyword.control.tasl.edge"}},"end":"$","patterns":[{"include":"#key"},{"include":"#export"},{"match":"=/","name":"punctuation.separator.tasl.edge.source"},{"match":"/=>","name":"punctuation.separator.tasl.edge.target"},{"match":"=>","name":"punctuation.separator.tasl.edge"},{"include":"#expression"}]},"export":{"match":"::","name":"keyword.operator.tasl.export"},"expression":{"patterns":[{"include":"#literal"},{"include":"#uri"},{"include":"#product"},{"include":"#coproduct"},{"include":"#reference"},{"include":"#optional"},{"include":"#identifier"}]},"identifier":{"captures":{"1":{"name":"variable"}},"match":"([a-zA-Z][a-zA-Z0-9]*)\\\\b"},"key":{"match":"[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+","name":"markup.bold entity.name.class"},"literal":{"patterns":[{"include":"#datatype"}]},"namespace":{"captures":{"1":{"name":"keyword.control.tasl.namespace"},"2":{"patterns":[{"include":"#namespaceURI"},{"match":"[a-zA-Z][a-zA-Z0-9]*\\\\b","name":"entity.name"}]}},"match":"(?:^\\\\s*)(namespace)\\\\b(.*)"},"namespaceURI":{"match":"[a-z]+:[a-zA-Z0-9-._~:\\\\/?#\\\\[\\\\]@!$&'()*+,;%=]+","name":"markup.underline.link"},"option":{"begin":"<-","beginCaptures":{"0":{"name":"punctuation.separator.tasl.option"}},"end":"$","patterns":[{"include":"#expression"}]},"optional":{"begin":"\\\\?","beginCaptures":{"0":{"name":"keyword.operator"}},"end":"$","patterns":[{"include":"#expression"}]},"product":{"begin":"{","beginCaptures":{"0":{"name":"punctuation.definition.block.tasl.product"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.block.tasl.product"}},"patterns":[{"include":"#comment"},{"include":"#term"},{"include":"#component"}]},"reference":{"captures":{"1":{"name":"markup.bold keyword.operator"},"2":{"patterns":[{"include":"#key"}]}},"match":"(\\\\*)\\\\s*(.*)"},"term":{"match":"[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+","name":"entity.other.tasl.key"},"type":{"begin":"(?:^\\\\s*)(type)\\\\b","beginCaptures":{"1":{"name":"keyword.control.tasl.type"}},"end":"$","patterns":[{"include":"#expression"}]},"uri":{"match":"<>","name":"variable.other.constant"}},"scopeName":"source.tasl"}`)),n=[e];export{n as default}; ================================================ FILE: jesse/static/_nuxt/CRzUWN8h.js ================================================ import{Q as a,C as o,g as t,j as s,R as c}from"./CU_MfyYc.js";const n={},r={class:"py-10 mx-auto"},l={class:"mx-auto max-w-7xl px-2 md:px-8"},_={class:"max-w-[600px] mx-auto"};function d(e,m){return t(),o("div",r,[s("main",null,[s("div",l,[s("div",_,[c(e.$slots,"default")])])])])}const x=a(n,[["render",d]]);export{x as S}; ================================================ FILE: jesse/static/_nuxt/CS3Unz2-.js ================================================ const e=Object.freeze(JSON.parse('{"colors":{"activityBar.activeBorder":"#a6accd","activityBar.background":"#1b1e28","activityBar.dropBorder":"#a6accd","activityBar.foreground":"#a6accd","activityBar.inactiveForeground":"#a6accd66","activityBarBadge.background":"#303340","activityBarBadge.foreground":"#e4f0fb","badge.background":"#303340","badge.foreground":"#e4f0fb","breadcrumb.activeSelectionForeground":"#e4f0fb","breadcrumb.background":"#00000000","breadcrumb.focusForeground":"#e4f0fb","breadcrumb.foreground":"#767c9dcc","breadcrumbPicker.background":"#1b1e28","button.background":"#303340","button.foreground":"#ffffff","button.hoverBackground":"#50647750","button.secondaryBackground":"#a6accd","button.secondaryForeground":"#ffffff","button.secondaryHoverBackground":"#a6accd","charts.blue":"#ADD7FF","charts.foreground":"#a6accd","charts.green":"#5DE4c7","charts.lines":"#a6accd80","charts.orange":"#89ddff","charts.purple":"#f087bd","charts.red":"#d0679d","charts.yellow":"#fffac2","checkbox.background":"#1b1e28","checkbox.border":"#ffffff10","checkbox.foreground":"#e4f0fb","debugConsole.errorForeground":"#d0679d","debugConsole.infoForeground":"#ADD7FF","debugConsole.sourceForeground":"#a6accd","debugConsole.warningForeground":"#fffac2","debugConsoleInputIcon.foreground":"#a6accd","debugExceptionWidget.background":"#d0679d","debugExceptionWidget.border":"#d0679d","debugIcon.breakpointCurrentStackframeForeground":"#fffac2","debugIcon.breakpointDisabledForeground":"#7390AA","debugIcon.breakpointForeground":"#d0679d","debugIcon.breakpointStackframeForeground":"#5fb3a1","debugIcon.breakpointUnverifiedForeground":"#7390AA","debugIcon.continueForeground":"#ADD7FF","debugIcon.disconnectForeground":"#d0679d","debugIcon.pauseForeground":"#ADD7FF","debugIcon.restartForeground":"#5fb3a1","debugIcon.startForeground":"#5fb3a1","debugIcon.stepBackForeground":"#ADD7FF","debugIcon.stepIntoForeground":"#ADD7FF","debugIcon.stepOutForeground":"#ADD7FF","debugIcon.stepOverForeground":"#ADD7FF","debugIcon.stopForeground":"#d0679d","debugTokenExpression.boolean":"#89ddff","debugTokenExpression.error":"#d0679d","debugTokenExpression.name":"#e4f0fb","debugTokenExpression.number":"#5fb3a1","debugTokenExpression.string":"#89ddff","debugTokenExpression.value":"#a6accd99","debugToolBar.background":"#303340","debugView.exceptionLabelBackground":"#d0679d","debugView.exceptionLabelForeground":"#e4f0fb","debugView.stateLabelBackground":"#303340","debugView.stateLabelForeground":"#a6accd","debugView.valueChangedHighlight":"#89ddff","descriptionForeground":"#a6accdb3","diffEditor.diagonalFill":"#a6accd33","diffEditor.insertedTextBackground":"#50647715","diffEditor.removedTextBackground":"#d0679d20","dropdown.background":"#1b1e28","dropdown.border":"#ffffff10","dropdown.foreground":"#e4f0fb","editor.background":"#1b1e28","editor.findMatchBackground":"#ADD7FF40","editor.findMatchBorder":"#ADD7FF","editor.findMatchHighlightBackground":"#ADD7FF40","editor.findRangeHighlightBackground":"#ADD7FF40","editor.focusedStackFrameHighlightBackground":"#7abd7a4d","editor.foldBackground":"#717cb40b","editor.foreground":"#a6accd","editor.hoverHighlightBackground":"#264f7840","editor.inactiveSelectionBackground":"#717cb425","editor.lineHighlightBackground":"#717cb425","editor.lineHighlightBorder":"#00000000","editor.linkedEditingBackground":"#d0679d4d","editor.rangeHighlightBackground":"#ffffff0b","editor.selectionBackground":"#717cb425","editor.selectionHighlightBackground":"#00000000","editor.selectionHighlightBorder":"#ADD7FF80","editor.snippetFinalTabstopHighlightBorder":"#525252","editor.snippetTabstopHighlightBackground":"#7c7c7c4d","editor.stackFrameHighlightBackground":"#ffff0033","editor.symbolHighlightBackground":"#89ddff60","editor.wordHighlightBackground":"#ADD7FF20","editor.wordHighlightStrongBackground":"#ADD7FF40","editorBracketMatch.background":"#00000000","editorBracketMatch.border":"#e4f0fb40","editorCodeLens.foreground":"#a6accd","editorCursor.foreground":"#a6accd","editorError.foreground":"#d0679d","editorGroup.border":"#00000030","editorGroup.dropBackground":"#7390AA80","editorGroupHeader.noTabsBackground":"#1b1e28","editorGroupHeader.tabsBackground":"#1b1e28","editorGutter.addedBackground":"#5fb3a140","editorGutter.background":"#1b1e28","editorGutter.commentRangeForeground":"#a6accd","editorGutter.deletedBackground":"#d0679d40","editorGutter.foldingControlForeground":"#a6accd","editorGutter.modifiedBackground":"#ADD7FF20","editorHint.foreground":"#7390AAb3","editorHoverWidget.background":"#1b1e28","editorHoverWidget.border":"#ffffff10","editorHoverWidget.foreground":"#a6accd","editorHoverWidget.statusBarBackground":"#202430","editorIndentGuide.activeBackground":"#e3e4e229","editorIndentGuide.background":"#303340","editorInfo.foreground":"#ADD7FF","editorInlineHint.background":"#a6accd","editorInlineHint.foreground":"#1b1e28","editorLightBulb.foreground":"#fffac2","editorLightBulbAutoFix.foreground":"#ADD7FF","editorLineNumber.activeForeground":"#a6accd","editorLineNumber.foreground":"#767c9d50","editorLink.activeForeground":"#ADD7FF","editorMarkerNavigation.background":"#2d2d30","editorMarkerNavigationError.background":"#d0679d","editorMarkerNavigationInfo.background":"#ADD7FF","editorMarkerNavigationWarning.background":"#fffac2","editorOverviewRuler.addedForeground":"#5fb3a199","editorOverviewRuler.border":"#00000000","editorOverviewRuler.bracketMatchForeground":"#a0a0a0","editorOverviewRuler.commonContentForeground":"#a6accd66","editorOverviewRuler.currentContentForeground":"#5fb3a180","editorOverviewRuler.deletedForeground":"#d0679d99","editorOverviewRuler.errorForeground":"#d0679db3","editorOverviewRuler.findMatchForeground":"#e4f0fb20","editorOverviewRuler.incomingContentForeground":"#89ddff80","editorOverviewRuler.infoForeground":"#ADD7FF","editorOverviewRuler.modifiedForeground":"#89ddff99","editorOverviewRuler.rangeHighlightForeground":"#89ddff99","editorOverviewRuler.selectionHighlightForeground":"#a0a0a0cc","editorOverviewRuler.warningForeground":"#fffac2","editorOverviewRuler.wordHighlightForeground":"#a0a0a0cc","editorOverviewRuler.wordHighlightStrongForeground":"#89ddffcc","editorPane.background":"#1b1e28","editorRuler.foreground":"#e4f0fb10","editorSuggestWidget.background":"#1b1e28","editorSuggestWidget.border":"#ffffff10","editorSuggestWidget.foreground":"#a6accd","editorSuggestWidget.highlightForeground":"#5DE4c7","editorSuggestWidget.selectedBackground":"#00000050","editorUnnecessaryCode.opacity":"#000000aa","editorWarning.foreground":"#fffac2","editorWhitespace.foreground":"#303340","editorWidget.background":"#1b1e28","editorWidget.border":"#a6accd","editorWidget.foreground":"#a6accd","errorForeground":"#d0679d","extensionBadge.remoteBackground":"#303340","extensionBadge.remoteForeground":"#e4f0fb","extensionButton.prominentBackground":"#30334090","extensionButton.prominentForeground":"#ffffff","extensionButton.prominentHoverBackground":"#303340","extensionIcon.starForeground":"#fffac2","focusBorder":"#00000000","foreground":"#a6accd","gitDecoration.addedResourceForeground":"#5fb3a1","gitDecoration.conflictingResourceForeground":"#d0679d","gitDecoration.deletedResourceForeground":"#d0679d","gitDecoration.ignoredResourceForeground":"#767c9d70","gitDecoration.modifiedResourceForeground":"#ADD7FF","gitDecoration.renamedResourceForeground":"#5DE4c7","gitDecoration.stageDeletedResourceForeground":"#d0679d","gitDecoration.stageModifiedResourceForeground":"#ADD7FF","gitDecoration.submoduleResourceForeground":"#89ddff","gitDecoration.untrackedResourceForeground":"#5DE4c7","icon.foreground":"#a6accd","imagePreview.border":"#303340","input.background":"#ffffff05","input.border":"#ffffff10","input.foreground":"#e4f0fb","input.placeholderForeground":"#a6accd60","inputOption.activeBackground":"#00000000","inputOption.activeBorder":"#00000000","inputOption.activeForeground":"#ffffff","inputValidation.errorBackground":"#1b1e28","inputValidation.errorBorder":"#d0679d","inputValidation.errorForeground":"#d0679d","inputValidation.infoBackground":"#506477","inputValidation.infoBorder":"#89ddff","inputValidation.warningBackground":"#506477","inputValidation.warningBorder":"#fffac2","list.activeSelectionBackground":"#30334080","list.activeSelectionForeground":"#e4f0fb","list.deemphasizedForeground":"#767c9d","list.dropBackground":"#506477","list.errorForeground":"#d0679d","list.filterMatchBackground":"#89ddff60","list.focusBackground":"#30334080","list.focusForeground":"#a6accd","list.focusOutline":"#00000000","list.highlightForeground":"#5fb3a1","list.hoverBackground":"#30334080","list.hoverForeground":"#e4f0fb","list.inactiveSelectionBackground":"#30334080","list.inactiveSelectionForeground":"#e4f0fb","list.invalidItemForeground":"#fffac2","list.warningForeground":"#fffac2","listFilterWidget.background":"#303340","listFilterWidget.noMatchesOutline":"#d0679d","listFilterWidget.outline":"#00000000","menu.background":"#1b1e28","menu.foreground":"#e4f0fb","menu.selectionBackground":"#303340","menu.selectionForeground":"#7390AA","menu.separatorBackground":"#767c9d","menubar.selectionBackground":"#717cb425","menubar.selectionForeground":"#a6accd","merge.commonContentBackground":"#a6accd29","merge.commonHeaderBackground":"#a6accd66","merge.currentContentBackground":"#5fb3a133","merge.currentHeaderBackground":"#5fb3a180","merge.incomingContentBackground":"#89ddff33","merge.incomingHeaderBackground":"#89ddff80","minimap.errorHighlight":"#d0679d","minimap.findMatchHighlight":"#ADD7FF","minimap.selectionHighlight":"#e4f0fb40","minimap.warningHighlight":"#fffac2","minimapGutter.addedBackground":"#5fb3a180","minimapGutter.deletedBackground":"#d0679d80","minimapGutter.modifiedBackground":"#ADD7FF80","minimapSlider.activeBackground":"#a6accd30","minimapSlider.background":"#a6accd20","minimapSlider.hoverBackground":"#a6accd30","notebook.cellBorderColor":"#1b1e28","notebook.cellInsertionIndicator":"#00000000","notebook.cellStatusBarItemHoverBackground":"#ffffff26","notebook.cellToolbarSeparator":"#303340","notebook.focusedCellBorder":"#00000000","notebook.focusedEditorBorder":"#00000000","notebook.focusedRowBorder":"#00000000","notebook.inactiveFocusedCellBorder":"#00000000","notebook.outputContainerBackgroundColor":"#1b1e28","notebook.rowHoverBackground":"#30334000","notebook.selectedCellBackground":"#303340","notebook.selectedCellBorder":"#1b1e28","notebook.symbolHighlightBackground":"#ffffff0b","notebookScrollbarSlider.activeBackground":"#a6accd25","notebookScrollbarSlider.background":"#00000050","notebookScrollbarSlider.hoverBackground":"#a6accd25","notebookStatusErrorIcon.foreground":"#d0679d","notebookStatusRunningIcon.foreground":"#a6accd","notebookStatusSuccessIcon.foreground":"#5fb3a1","notificationCenterHeader.background":"#303340","notificationLink.foreground":"#ADD7FF","notifications.background":"#1b1e28","notifications.border":"#303340","notifications.foreground":"#e4f0fb","notificationsErrorIcon.foreground":"#d0679d","notificationsInfoIcon.foreground":"#ADD7FF","notificationsWarningIcon.foreground":"#fffac2","panel.background":"#1b1e28","panel.border":"#00000030","panel.dropBorder":"#a6accd","panelSection.border":"#1b1e28","panelSection.dropBackground":"#7390AA80","panelSectionHeader.background":"#303340","panelTitle.activeBorder":"#a6accd","panelTitle.activeForeground":"#a6accd","panelTitle.inactiveForeground":"#a6accd99","peekView.border":"#00000030","peekViewEditor.background":"#a6accd05","peekViewEditor.matchHighlightBackground":"#303340","peekViewEditorGutter.background":"#a6accd05","peekViewResult.background":"#a6accd05","peekViewResult.fileForeground":"#ffffff","peekViewResult.lineForeground":"#a6accd","peekViewResult.matchHighlightBackground":"#303340","peekViewResult.selectionBackground":"#717cb425","peekViewResult.selectionForeground":"#ffffff","peekViewTitle.background":"#a6accd05","peekViewTitleDescription.foreground":"#a6accd60","peekViewTitleLabel.foreground":"#ffffff","pickerGroup.border":"#a6accd","pickerGroup.foreground":"#89ddff","problemsErrorIcon.foreground":"#d0679d","problemsInfoIcon.foreground":"#ADD7FF","problemsWarningIcon.foreground":"#fffac2","progressBar.background":"#89ddff","quickInput.background":"#1b1e28","quickInput.foreground":"#a6accd","quickInputList.focusBackground":"#a6accd10","quickInputTitle.background":"#ffffff1b","sash.hoverBorder":"#00000000","scm.providerBorder":"#e4f0fb10","scrollbar.shadow":"#00000000","scrollbarSlider.activeBackground":"#a6accd25","scrollbarSlider.background":"#00000080","scrollbarSlider.hoverBackground":"#a6accd25","searchEditor.findMatchBackground":"#ADD7FF50","searchEditor.textInputBorder":"#ffffff10","selection.background":"#a6accd","settings.checkboxBackground":"#1b1e28","settings.checkboxBorder":"#ffffff10","settings.checkboxForeground":"#e4f0fb","settings.dropdownBackground":"#1b1e28","settings.dropdownBorder":"#ffffff10","settings.dropdownForeground":"#e4f0fb","settings.dropdownListBorder":"#e4f0fb10","settings.focusedRowBackground":"#00000000","settings.headerForeground":"#e4f0fb","settings.modifiedItemIndicator":"#ADD7FF","settings.numberInputBackground":"#ffffff05","settings.numberInputBorder":"#ffffff10","settings.numberInputForeground":"#e4f0fb","settings.textInputBackground":"#ffffff05","settings.textInputBorder":"#ffffff10","settings.textInputForeground":"#e4f0fb","sideBar.background":"#1b1e28","sideBar.dropBackground":"#7390AA80","sideBar.foreground":"#767c9d","sideBarSectionHeader.background":"#1b1e28","sideBarSectionHeader.foreground":"#a6accd","sideBarTitle.foreground":"#a6accd","statusBar.background":"#1b1e28","statusBar.debuggingBackground":"#303340","statusBar.debuggingForeground":"#ffffff","statusBar.foreground":"#a6accd","statusBar.noFolderBackground":"#1b1e28","statusBar.noFolderForeground":"#a6accd","statusBarItem.activeBackground":"#ffffff2e","statusBarItem.errorBackground":"#d0679d","statusBarItem.errorForeground":"#ffffff","statusBarItem.hoverBackground":"#ffffff1f","statusBarItem.prominentBackground":"#00000080","statusBarItem.prominentForeground":"#a6accd","statusBarItem.prominentHoverBackground":"#0000004d","statusBarItem.remoteBackground":"#303340","statusBarItem.remoteForeground":"#e4f0fb","symbolIcon.arrayForeground":"#a6accd","symbolIcon.booleanForeground":"#a6accd","symbolIcon.classForeground":"#fffac2","symbolIcon.colorForeground":"#a6accd","symbolIcon.constantForeground":"#a6accd","symbolIcon.constructorForeground":"#f087bd","symbolIcon.enumeratorForeground":"#fffac2","symbolIcon.enumeratorMemberForeground":"#ADD7FF","symbolIcon.eventForeground":"#fffac2","symbolIcon.fieldForeground":"#ADD7FF","symbolIcon.fileForeground":"#a6accd","symbolIcon.folderForeground":"#a6accd","symbolIcon.functionForeground":"#f087bd","symbolIcon.interfaceForeground":"#ADD7FF","symbolIcon.keyForeground":"#a6accd","symbolIcon.keywordForeground":"#a6accd","symbolIcon.methodForeground":"#f087bd","symbolIcon.moduleForeground":"#a6accd","symbolIcon.namespaceForeground":"#a6accd","symbolIcon.nullForeground":"#a6accd","symbolIcon.numberForeground":"#a6accd","symbolIcon.objectForeground":"#a6accd","symbolIcon.operatorForeground":"#a6accd","symbolIcon.packageForeground":"#a6accd","symbolIcon.propertyForeground":"#a6accd","symbolIcon.referenceForeground":"#a6accd","symbolIcon.snippetForeground":"#a6accd","symbolIcon.stringForeground":"#a6accd","symbolIcon.structForeground":"#a6accd","symbolIcon.textForeground":"#a6accd","symbolIcon.typeParameterForeground":"#a6accd","symbolIcon.unitForeground":"#a6accd","symbolIcon.variableForeground":"#ADD7FF","tab.activeBackground":"#30334080","tab.activeForeground":"#e4f0fb","tab.activeModifiedBorder":"#ADD7FF","tab.border":"#00000000","tab.inactiveBackground":"#1b1e28","tab.inactiveForeground":"#767c9d","tab.inactiveModifiedBorder":"#ADD7FF80","tab.lastPinnedBorder":"#00000000","tab.unfocusedActiveBackground":"#1b1e28","tab.unfocusedActiveForeground":"#a6accd","tab.unfocusedActiveModifiedBorder":"#ADD7FF40","tab.unfocusedInactiveBackground":"#1b1e28","tab.unfocusedInactiveForeground":"#a6accd80","tab.unfocusedInactiveModifiedBorder":"#ADD7FF40","terminal.ansiBlack":"#1b1e28","terminal.ansiBlue":"#89ddff","terminal.ansiBrightBlack":"#a6accd","terminal.ansiBrightBlue":"#ADD7FF","terminal.ansiBrightCyan":"#ADD7FF","terminal.ansiBrightGreen":"#5DE4c7","terminal.ansiBrightMagenta":"#f087bd","terminal.ansiBrightRed":"#d0679d","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#fffac2","terminal.ansiCyan":"#89ddff","terminal.ansiGreen":"#5DE4c7","terminal.ansiMagenta":"#f087bd","terminal.ansiRed":"#d0679d","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#fffac2","terminal.border":"#00000000","terminal.foreground":"#a6accd","terminal.selectionBackground":"#717cb425","terminalCommandDecoration.defaultBackground":"#767c9d","terminalCommandDecoration.errorBackground":"#d0679d","terminalCommandDecoration.successBackground":"#5DE4c7","testing.iconErrored":"#d0679d","testing.iconFailed":"#d0679d","testing.iconPassed":"#5DE4c7","testing.iconQueued":"#fffac2","testing.iconSkipped":"#7390AA","testing.iconUnset":"#7390AA","testing.message.error.decorationForeground":"#d0679d","testing.message.error.lineBackground":"#d0679d33","testing.message.hint.decorationForeground":"#7390AAb3","testing.message.info.decorationForeground":"#ADD7FF","testing.message.info.lineBackground":"#89ddff33","testing.message.warning.decorationForeground":"#fffac2","testing.message.warning.lineBackground":"#fffac233","testing.peekBorder":"#d0679d","testing.runAction":"#5DE4c7","textBlockQuote.background":"#7390AA1a","textBlockQuote.border":"#89ddff80","textCodeBlock.background":"#00000050","textLink.activeForeground":"#ADD7FF","textLink.foreground":"#ADD7FF","textPreformat.foreground":"#e4f0fb","textSeparator.foreground":"#ffffff2e","titleBar.activeBackground":"#1b1e28","titleBar.activeForeground":"#a6accd","titleBar.inactiveBackground":"#1b1e28","titleBar.inactiveForeground":"#767c9d","tree.indentGuidesStroke":"#303340","tree.tableColumnsBorder":"#a6accd20","welcomePage.progress.background":"#ffffff05","welcomePage.progress.foreground":"#5fb3a1","welcomePage.tileBackground":"#1b1e28","welcomePage.tileHoverBackground":"#303340","widget.shadow":"#00000030"},"displayName":"Poimandres","name":"poimandres","tokenColors":[{"scope":["comment","punctuation.definition.comment"],"settings":{"fontStyle":"italic","foreground":"#767c9dB0"}},{"scope":"meta.parameters comment.block","settings":{"fontStyle":"italic","foreground":"#a6accd"}},{"scope":["variable.other.constant.object","variable.other.readwrite.alias","meta.import variable.other.readwrite"],"settings":{"foreground":"#ADD7FF"}},{"scope":["variable.other","support.type.object"],"settings":{"foreground":"#e4f0fb"}},{"scope":["variable.other.object.property","variable.other.property","support.variable.property"],"settings":{"foreground":"#e4f0fb"}},{"scope":["entity.name.function.method","string.unquoted","meta.object.member"],"settings":{"foreground":"#ADD7FF"}},{"scope":["variable - meta.import","constant.other.placeholder","meta.object-literal.key-meta.object.member"],"settings":{"foreground":"#e4f0fb"}},{"scope":["keyword.control.flow"],"settings":{"foreground":"#5DE4c7c0"}},{"scope":["keyword.operator.new","keyword.control.new"],"settings":{"foreground":"#5DE4c7"}},{"scope":["variable.language.this","storage.modifier.async","storage.modifier","variable.language.super"],"settings":{"foreground":"#5DE4c7"}},{"scope":["support.class.error","keyword.control.trycatch","keyword.operator.expression.delete","keyword.operator.expression.void","keyword.operator.void","keyword.operator.delete","constant.language.null","constant.language.boolean.false","constant.language.undefined"],"settings":{"foreground":"#d0679d"}},{"scope":["variable.parameter","variable.other.readwrite.js","meta.definition.variable variable.other.constant","meta.definition.variable variable.other.readwrite"],"settings":{"foreground":"#e4f0fb"}},{"scope":["constant.other.color"],"settings":{"foreground":"#ffffff"}},{"scope":["invalid","invalid.illegal"],"settings":{"foreground":"#d0679d"}},{"scope":["invalid.deprecated"],"settings":{"foreground":"#d0679d"}},{"scope":["keyword.control","keyword"],"settings":{"foreground":"#a6accd"}},{"scope":["keyword.operator","storage.type"],"settings":{"foreground":"#91B4D5"}},{"scope":["keyword.control.module","keyword.control.import","keyword.control.export","keyword.control.default","meta.import","meta.export"],"settings":{"foreground":"#5DE4c7"}},{"scope":["Keyword","Storage"],"settings":{"fontStyle":"italic"}},{"scope":["keyword-meta.export"],"settings":{"foreground":"#ADD7FF"}},{"scope":["meta.brace","punctuation","keyword.operator.existential"],"settings":{"foreground":"#a6accd"}},{"scope":["constant.other.color","meta.tag","punctuation.definition.tag","punctuation.separator.inheritance.php","punctuation.definition.tag.html","punctuation.definition.tag.begin.html","punctuation.definition.tag.end.html","punctuation.section.embedded","keyword.other.template","keyword.other.substitution","meta.objectliteral"],"settings":{"foreground":"#e4f0fb"}},{"scope":["support.class.component"],"settings":{"foreground":"#5DE4c7"}},{"scope":["entity.name.tag","entity.name.tag","meta.tag.sgml","markup.deleted.git_gutter"],"settings":{"foreground":"#5DE4c7"}},{"scope":"variable.function, source meta.function-call entity.name.function, source meta.function-call entity.name.function, source meta.method-call entity.name.function, meta.class meta.group.braces.curly meta.function-call variable.function, meta.class meta.field.declaration meta.function-call entity.name.function, variable.function.constructor, meta.block meta.var.expr meta.function-call entity.name.function, support.function.console, meta.function-call support.function, meta.property.class variable.other.class, punctuation.definition.entity.css","settings":{"foreground":"#e4f0fbd0"}},{"scope":"entity.name.function, meta.class entity.name.class, meta.class entity.name.type.class, meta.class meta.function-call variable.function, keyword.other.important","settings":{"foreground":"#ADD7FF"}},{"scope":["source.cpp meta.block variable.other"],"settings":{"foreground":"#ADD7FF"}},{"scope":["support.other.variable","string.other.link"],"settings":{"foreground":"#5DE4c7"}},{"scope":["constant.numeric","support.constant","constant.character","constant.escape","keyword.other.unit","keyword.other","string","constant.language","constant.other.symbol","constant.other.key","markup.heading","markup.inserted.git_gutter","meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js","text.html.derivative"],"settings":{"foreground":"#5DE4c7"}},{"scope":["entity.other.inherited-class"],"settings":{"foreground":"#ADD7FF"}},{"scope":["meta.type.declaration"],"settings":{"foreground":"#ADD7FF"}},{"scope":["entity.name.type.alias"],"settings":{"foreground":"#a6accd"}},{"scope":["keyword.control.as","entity.name.type","support.type"],"settings":{"foreground":"#a6accdC0"}},{"scope":["entity.name","support.orther.namespace.use.php","meta.use.php","support.other.namespace.php","markup.changed.git_gutter","support.type.sys-types"],"settings":{"foreground":"#91B4D5"}},{"scope":["support.class","support.constant","variable.other.constant.object"],"settings":{"foreground":"#ADD7FF"}},{"scope":["source.css support.type.property-name","source.sass support.type.property-name","source.scss support.type.property-name","source.less support.type.property-name","source.stylus support.type.property-name","source.postcss support.type.property-name"],"settings":{"foreground":"#ADD7FF"}},{"scope":["entity.name.module.js","variable.import.parameter.js","variable.other.class.js"],"settings":{"foreground":"#e4f0fb"}},{"scope":["variable.language"],"settings":{"fontStyle":"italic","foreground":"#ADD7FF"}},{"scope":["entity.name.method.js"],"settings":{"fontStyle":"italic","foreground":"#91B4D5"}},{"scope":["meta.class-method.js entity.name.function.js","variable.function.constructor"],"settings":{"foreground":"#91B4D5"}},{"scope":["entity.other.attribute-name"],"settings":{"fontStyle":"italic","foreground":"#91B4D5"}},{"scope":["text.html.basic entity.other.attribute-name.html","text.html.basic entity.other.attribute-name"],"settings":{"fontStyle":"italic","foreground":"#5fb3a1"}},{"scope":["entity.other.attribute-name.class"],"settings":{"foreground":"#5fb3a1"}},{"scope":["source.sass keyword.control"],"settings":{"foreground":"#42675A"}},{"scope":["markup.inserted"],"settings":{"foreground":"#ADD7FF"}},{"scope":["markup.deleted"],"settings":{"foreground":"#506477"}},{"scope":["markup.changed"],"settings":{"foreground":"#91B4D5"}},{"scope":["string.regexp"],"settings":{"foreground":"#5fb3a1"}},{"scope":["constant.character.escape"],"settings":{"foreground":"#5fb3a1"}},{"scope":["*url*","*link*","*uri*"],"settings":{"fontStyle":"underline","foreground":"#ADD7FF"}},{"scope":["tag.decorator.js entity.name.tag.js","tag.decorator.js punctuation.definition.tag.js"],"settings":{"fontStyle":"italic","foreground":"#42675A"}},{"scope":["source.js constant.other.object.key.js string.unquoted.label.js"],"settings":{"fontStyle":"italic","foreground":"#5fb3a1"}},{"scope":["source.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#e4f0fb"}},{"scope":["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#ADD7FF"}},{"scope":["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#91B4D5"}},{"scope":["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#7390AA"}},{"scope":["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#e4f0fb"}},{"scope":["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#ADD7FF"}},{"scope":["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#91B4D5"}},{"scope":["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#7390AA"}},{"scope":["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],"settings":{"foreground":"#e4f0fb"}},{"scope":["text.html.markdown","punctuation.definition.list_item.markdown"],"settings":{"foreground":"#e4f0fb"}},{"scope":["text.html.markdown markup.inline.raw.markdown"],"settings":{"foreground":"#ADD7FF"}},{"scope":["text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown"],"settings":{"foreground":"#91B4D5"}},{"scope":["markdown.heading","markup.heading | markup.heading entity.name","markup.heading.markdown punctuation.definition.heading.markdown"],"settings":{"foreground":"#e4f0fb"}},{"scope":["markup.italic"],"settings":{"fontStyle":"italic","foreground":"#7390AA"}},{"scope":["markup.bold","markup.bold string"],"settings":{"fontStyle":"bold","foreground":"#7390AA"}},{"scope":["markup.bold markup.italic","markup.italic markup.bold","markup.quote markup.bold","markup.bold markup.italic string","markup.italic markup.bold string","markup.quote markup.bold string"],"settings":{"fontStyle":"bold","foreground":"#7390AA"}},{"scope":["markup.underline"],"settings":{"fontStyle":"underline","foreground":"#7390AA"}},{"scope":["markup.strike"],"settings":{"fontStyle":"italic"}},{"scope":["markup.quote punctuation.definition.blockquote.markdown"],"settings":{"foreground":"#5DE4c7"}},{"scope":["markup.quote"],"settings":{"fontStyle":"italic"}},{"scope":["string.other.link.title.markdown"],"settings":{"foreground":"#ADD7FF"}},{"scope":["string.other.link.description.title.markdown"],"settings":{"foreground":"#ADD7FF"}},{"scope":["constant.other.reference.link.markdown"],"settings":{"foreground":"#ADD7FF"}},{"scope":["markup.raw.block"],"settings":{"foreground":"#ADD7FF"}},{"scope":["markup.raw.block.fenced.markdown"],"settings":{"foreground":"#50647750"}},{"scope":["punctuation.definition.fenced.markdown"],"settings":{"foreground":"#50647750"}},{"scope":["markup.raw.block.fenced.markdown","variable.language.fenced.markdown","punctuation.section.class.end"],"settings":{"foreground":"#91B4D5"}},{"scope":["variable.language.fenced.markdown"],"settings":{"foreground":"#91B4D5"}},{"scope":["meta.separator"],"settings":{"fontStyle":"bold","foreground":"#7390AA"}},{"scope":["markup.table"],"settings":{"foreground":"#ADD7FF"}},{"scope":"token.info-token","settings":{"foreground":"#89ddff"}},{"scope":"token.warn-token","settings":{"foreground":"#fffac2"}},{"scope":"token.error-token","settings":{"foreground":"#d0679d"}},{"scope":"token.debug-token","settings":{"foreground":"#e4f0fb"}},{"scope":["entity.name.section.markdown","markup.heading.setext.1.markdown","markup.heading.setext.2.markdown"],"settings":{"fontStyle":"bold","foreground":"#e4f0fb"}},{"scope":"meta.paragraph.markdown","settings":{"foreground":"#e4f0fbd0"}},{"scope":["punctuation.definition.from-file.diff","meta.diff.header.from-file"],"settings":{"foreground":"#506477"}},{"scope":"markup.inline.raw.string.markdown","settings":{"foreground":"#7390AA"}},{"scope":"meta.separator.markdown","settings":{"foreground":"#767c9d"}},{"scope":"markup.bold.markdown","settings":{"fontStyle":"bold"}},{"scope":"markup.italic.markdown","settings":{"fontStyle":"italic"}},{"scope":["beginning.punctuation.definition.list.markdown","punctuation.definition.list.begin.markdown","markup.list.unnumbered.markdown"],"settings":{"foreground":"#ADD7FF"}},{"scope":["string.other.link.description.title.markdown punctuation.definition.string.markdown","meta.link.inline.markdown string.other.link.description.title.markdown","string.other.link.description.title.markdown punctuation.definition.string.begin.markdown","string.other.link.description.title.markdown punctuation.definition.string.end.markdown","meta.image.inline.markdown string.other.link.description.title.markdown"],"settings":{"fontStyle":"","foreground":"#ADD7FF"}},{"scope":["meta.link.inline.markdown string.other.link.title.markdown","meta.link.reference.markdown string.other.link.title.markdown","meta.link.reference.def.markdown markup.underline.link.markdown"],"settings":{"fontStyle":"underline","foreground":"#ADD7FF"}},{"scope":["markup.underline.link.markdown","string.other.link.description.title.markdown"],"settings":{"foreground":"#5DE4c7"}},{"scope":["fenced_code.block.language","markup.inline.raw.markdown"],"settings":{"foreground":"#ADD7FF"}},{"scope":["punctuation.definition.markdown","punctuation.definition.raw.markdown","punctuation.definition.heading.markdown","punctuation.definition.bold.markdown","punctuation.definition.italic.markdown"],"settings":{"foreground":"#ADD7FF"}},{"scope":["source.ignore","log.error","log.exception"],"settings":{"foreground":"#d0679d"}},{"scope":["log.verbose"],"settings":{"foreground":"#a6accd"}}],"type":"dark"}'));export{e as default}; ================================================ FILE: jesse/static/_nuxt/CSHBycmS.js ================================================ const e=Object.freeze(JSON.parse('{"displayName":"PowerQuery","fileTypes":["pq","pqm"],"name":"powerquery","patterns":[{"include":"#Noise"},{"include":"#LiteralExpression"},{"include":"#Keywords"},{"include":"#ImplicitVariable"},{"include":"#IntrinsicVariable"},{"include":"#Operators"},{"include":"#DotOperators"},{"include":"#TypeName"},{"include":"#RecordExpression"},{"include":"#Punctuation"},{"include":"#QuotedIdentifier"},{"include":"#Identifier"}],"repository":{"BlockComment":{"begin":"/\\\\*","end":"\\\\*/","name":"comment.block.powerquery"},"DecimalNumber":{"match":"(?)|(=)|(<>|<|>|<=|>=)|(&)|(\\\\+|-|\\\\*|\\\\/)|(!)|(\\\\?)"},"Punctuation":{"captures":{"1":{"name":"punctuation.separator.powerquery"},"2":{"name":"punctuation.section.parens.begin.powerquery"},"3":{"name":"punctuation.section.parens.end.powerquery"},"4":{"name":"punctuation.section.braces.begin.powerquery"},"5":{"name":"punctuation.section.braces.end.powerquery"}},"match":"(,)|(\\\\()|(\\\\))|({)|(})"},"QuotedIdentifier":{"begin":"#\\"","beginCaptures":{"0":{"name":"punctuation.definition.quotedidentifier.begin.powerquery"}},"end":"\\"(?!\\")","endCaptures":{"0":{"name":"punctuation.definition.quotedidentifier.end.powerquery"}},"name":"entity.name.powerquery","patterns":[{"match":"\\"\\"","name":"constant.character.escape.quote.powerquery"},{"include":"#EscapeSequence"}]},"RecordExpression":{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.section.brackets.begin.powerquery"}},"contentName":"meta.recordexpression.powerquery","end":"\\\\]","endCaptures":{"0":{"name":"punctuation.section.brackets.end.powerquery"}},"patterns":[{"include":"$self"}]},"String":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.powerquery"}},"end":"\\"(?!\\")","endCaptures":{"0":{"name":"punctuation.definition.string.end.powerquery"}},"name":"string.quoted.double.powerquery","patterns":[{"match":"\\"\\"","name":"constant.character.escape.quote.powerquery"},{"include":"#EscapeSequence"}]},"TypeName":{"captures":{"1":{"name":"storage.modifier.powerquery"},"2":{"name":"storage.type.powerquery"}},"match":"\\\\b(?:(optional|nullable)|(action|any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|null|number|record|table|text|type))\\\\b"},"Whitespace":{"match":"\\\\s+"}},"scopeName":"source.powerquery"}')),n=[e];export{n as default}; ================================================ FILE: jesse/static/_nuxt/CSp6iqVD.js ================================================ import e from"./e4jU7D2d.js";import n from"./BEhvmC7f.js";import c from"./DhUJRlN_.js";import a from"./ySlJ1b_l.js";import o from"./atvbtKCR.js";import t from"./CVw76BM1.js";import r from"./DbXoA79R.js";import l from"./CYFUjXW1.js";import"./BMYPR7BL.js";import"./BPhBrDlE.js";import"./DWJ3fJO_.js";import"./COyJrUc7.js";import"./C3t2pwGQ.js";import"./COK4E0Yg.js";import"./m4gc_qpA.js";import"./cPjAOO0u.js";import"./xI-RfyKK.js";import"./DjHMNizO.js";import"./Dj6nwHGl.js";import"./BAng5TT0.js";import"./B6W0miNI.js";import"./Dbxjm_CC.js";const s=Object.freeze(JSON.parse('{"displayName":"reStructuredText","name":"rst","patterns":[{"include":"#body"}],"repository":{"anchor":{"match":"^\\\\.{2}\\\\s+(_[^:]+:)\\\\s*","name":"entity.name.tag.anchor"},"block":{"begin":"^(\\\\s*)(\\\\.{2}\\\\s+\\\\S+::)(.*)","beginCaptures":{"2":{"name":"keyword.control"},"3":{"name":"variable"}},"end":"^(?!\\\\1\\\\s|\\\\s*$)","patterns":[{"include":"#block-param"},{"include":"#body"}]},"block-comment":{"begin":"^(\\\\s*)\\\\.{2}(\\\\s+|$)","end":"^(?=\\\\S)|^\\\\s*$","name":"comment.block","patterns":[{"begin":"^\\\\s{3,}(?=\\\\S)","name":"comment.block","while":"^\\\\s{3}.*|^\\\\s*$"}]},"block-param":{"patterns":[{"captures":{"1":{"name":"keyword.control"},"2":{"name":"variable.parameter"}},"match":"(:param\\\\s+(.+?):)(?:\\\\s|$)"},{"captures":{"1":{"name":"keyword.control"},"2":{"patterns":[{"match":"\\\\b(0x[a-fA-F\\\\d]+|\\\\d+)\\\\b","name":"constant.numeric"},{"include":"#inline-markup"}]}},"match":"(:.+?:)(?:$|\\\\s+(.*))"}]},"blocks":{"patterns":[{"include":"#domains"},{"include":"#doctest"},{"include":"#code-block-cpp"},{"include":"#code-block-py"},{"include":"#code-block-console"},{"include":"#code-block-javascript"},{"include":"#code-block-yaml"},{"include":"#code-block-cmake"},{"include":"#code-block-kconfig"},{"include":"#code-block-ruby"},{"include":"#code-block-dts"},{"include":"#code-block"},{"include":"#doctest-block"},{"include":"#raw-html"},{"include":"#block"},{"include":"#literal-block"},{"include":"#block-comment"}]},"body":{"patterns":[{"include":"#title"},{"include":"#inline-markup"},{"include":"#anchor"},{"include":"#line-block"},{"include":"#replace-include"},{"include":"#footnote"},{"include":"#substitution"},{"include":"#blocks"},{"include":"#table"},{"include":"#simple-table"},{"include":"#options-list"}]},"bold":{"begin":"(?<=[\\\\s\\"\'(\\\\[{<]|^)\\\\*{2}[^\\\\s*]","end":"\\\\*{2}|^\\\\s*$","name":"markup.bold"},"citation":{"applyEndPatternLast":0,"begin":"(?<=[\\\\s\\"\'(\\\\[{<]|^)`[^\\\\s`]","end":"`_{,2}|^\\\\s*$","name":"entity.name.tag"},"code-block":{"begin":"^(\\\\s*)(\\\\.{2}\\\\s+(code|code-block)::)","beginCaptures":{"2":{"name":"keyword.control"}},"patterns":[{"include":"#block-param"}],"while":"^\\\\1(?=\\\\s)|^\\\\s*$"},"code-block-cmake":{"begin":"^(\\\\s*)(\\\\.{2}\\\\s+(code|code-block)::)\\\\s*(cmake)\\\\s*$","beginCaptures":{"2":{"name":"keyword.control"},"4":{"name":"variable.parameter.codeblock.cmake"}},"patterns":[{"include":"#block-param"},{"include":"source.cmake"}],"while":"^\\\\1(?=\\\\s)|^\\\\s*$"},"code-block-console":{"begin":"^(\\\\s*)(\\\\.{2}\\\\s+(code|code-block)::)\\\\s*(console|shell|bash)\\\\s*$","beginCaptures":{"2":{"name":"keyword.control"},"4":{"name":"variable.parameter.codeblock.console"}},"patterns":[{"include":"#block-param"},{"include":"source.shell"}],"while":"^\\\\1(?=\\\\s)|^\\\\s*$"},"code-block-cpp":{"begin":"^(\\\\s*)(\\\\.{2}\\\\s+(code|code-block)::)\\\\s*(c|c\\\\+\\\\+|cpp|C|C\\\\+\\\\+|CPP|Cpp)\\\\s*$","beginCaptures":{"2":{"name":"keyword.control"},"4":{"name":"variable.parameter.codeblock.cpp"}},"patterns":[{"include":"#block-param"},{"include":"source.cpp"}],"while":"^\\\\1(?=\\\\s)|^\\\\s*$"},"code-block-dts":{"begin":"^(\\\\s*)(\\\\.{2}\\\\s+(code|code-block)::)\\\\s*(dts|DTS|devicetree)\\\\s*$","beginCaptures":{"2":{"name":"keyword.control"},"4":{"name":"variable.parameter.codeblock.dts"}},"patterns":[{"include":"#block-param"},{"include":"source.dts"}],"while":"^\\\\1(?=\\\\s)|^\\\\s*$"},"code-block-javascript":{"begin":"^(\\\\s*)(\\\\.{2}\\\\s+(code|code-block)::)\\\\s*(javascript)\\\\s*$","beginCaptures":{"2":{"name":"keyword.control"},"4":{"name":"variable.parameter.codeblock.js"}},"patterns":[{"include":"#block-param"},{"include":"source.js"}],"while":"^\\\\1(?=\\\\s)|^\\\\s*$"},"code-block-kconfig":{"begin":"^(\\\\s*)(\\\\.{2}\\\\s+(code|code-block)::)\\\\s*([kK]config)\\\\s*$","beginCaptures":{"2":{"name":"keyword.control"},"4":{"name":"variable.parameter.codeblock.kconfig"}},"patterns":[{"include":"#block-param"},{"include":"source.kconfig"}],"while":"^\\\\1(?=\\\\s)|^\\\\s*$"},"code-block-py":{"begin":"^(\\\\s*)(\\\\.{2}\\\\s+(code|code-block)::)\\\\s*(python)\\\\s*$","beginCaptures":{"2":{"name":"keyword.control"},"4":{"name":"variable.parameter.codeblock.py"}},"patterns":[{"include":"#block-param"},{"include":"source.python"}],"while":"^\\\\1(?=\\\\s)|^\\\\s*$"},"code-block-ruby":{"begin":"^(\\\\s*)(\\\\.{2}\\\\s+(code|code-block)::)\\\\s*(ruby)\\\\s*$","beginCaptures":{"2":{"name":"keyword.control"},"4":{"name":"variable.parameter.codeblock.ruby"}},"patterns":[{"include":"#block-param"},{"include":"source.ruby"}],"while":"^\\\\1(?=\\\\s)|^\\\\s*$"},"code-block-yaml":{"begin":"^(\\\\s*)(\\\\.{2}\\\\s+(code|code-block)::)\\\\s*(ya?ml)\\\\s*$","beginCaptures":{"2":{"name":"keyword.control"},"4":{"name":"variable.parameter.codeblock.yaml"}},"patterns":[{"include":"#block-param"},{"include":"source.yaml"}],"while":"^\\\\1(?=\\\\s)|^\\\\s*$"},"doctest":{"begin":"^(>>>)\\\\s*(.*)","beginCaptures":{"1":{"name":"keyword.control"},"2":{"patterns":[{"include":"source.python"}]}},"end":"^\\\\s*$"},"doctest-block":{"begin":"^(\\\\s*)(\\\\.{2}\\\\s+doctest::)\\\\s*$","beginCaptures":{"2":{"name":"keyword.control"}},"patterns":[{"include":"#block-param"},{"include":"source.python"}],"while":"^\\\\1(?=\\\\s)|^\\\\s*$"},"domain-auto":{"begin":"^(\\\\s*)(\\\\.{2}\\\\s+auto(?:class|module|exception|function|decorator|data|method|attribute|property)::)\\\\s*(.*)","beginCaptures":{"2":{"name":"keyword.control.py"},"3":{"patterns":[{"include":"source.python"}]}},"patterns":[{"include":"#block-param"},{"include":"#body"}],"while":"^\\\\1(?=\\\\s)|^\\\\s*$"},"domain-cpp":{"begin":"^(\\\\s*)(\\\\.{2}\\\\s+(?:cpp|c):(?:class|struct|function|member|var|type|enum|enum-struct|enum-class|enumerator|union|concept)::)\\\\s*(?:(@\\\\w+)|(.*))","beginCaptures":{"2":{"name":"keyword.control"},"3":{"name":"entity.name.tag"},"4":{"patterns":[{"include":"source.cpp"}]}},"patterns":[{"include":"#block-param"},{"include":"#body"}],"while":"^\\\\1(?=\\\\s)|^\\\\s*$"},"domain-js":{"begin":"^(\\\\s*)(\\\\.{2}\\\\s+js:\\\\w+::)\\\\s*(.*)","beginCaptures":{"2":{"name":"keyword.control"},"3":{"patterns":[{"include":"source.js"}]}},"end":"^(?!\\\\1[ \\\\t]|$)","patterns":[{"include":"#block-param"},{"include":"#body"}]},"domain-py":{"begin":"^(\\\\s*)(\\\\.{2}\\\\s+py:(?:module|function|data|exception|class|attribute|property|method|staticmethod|classmethod|decorator|decoratormethod)::)\\\\s*(.*)","beginCaptures":{"2":{"name":"keyword.control"},"3":{"patterns":[{"include":"source.python"}]}},"patterns":[{"include":"#block-param"},{"include":"#body"}],"while":"^\\\\1(?=\\\\s)|^\\\\s*$"},"domains":{"patterns":[{"include":"#domain-cpp"},{"include":"#domain-py"},{"include":"#domain-auto"},{"include":"#domain-js"}]},"escaped":{"match":"\\\\\\\\.","name":"constant.character.escape"},"footnote":{"match":"^\\\\s*\\\\.{2}\\\\s+\\\\[(?:[\\\\w\\\\.-]+|[#*]|#\\\\w+)\\\\]\\\\s+","name":"entity.name.tag"},"footnote-ref":{"match":"\\\\[(?:[\\\\w\\\\.-]+|[#*])\\\\]_","name":"entity.name.tag"},"ignore":{"patterns":[{"match":"\'[`*]+\'"},{"match":"<[`*]+>"},{"match":"{[`*]+}"},{"match":"\\\\([`*]+\\\\)"},{"match":"\\\\[[`*]+\\\\]"},{"match":"\\"[`*]+\\""}]},"inline-markup":{"patterns":[{"include":"#escaped"},{"include":"#ignore"},{"include":"#ref"},{"include":"#literal"},{"include":"#monospaced"},{"include":"#citation"},{"include":"#bold"},{"include":"#italic"},{"include":"#list"},{"include":"#macro"},{"include":"#reference"},{"include":"#footnote-ref"}]},"italic":{"begin":"(?<=[\\\\s\\"\'(\\\\[{<]|^)\\\\*[^\\\\s*]","end":"\\\\*|^\\\\s*$","name":"markup.italic"},"line-block":{"match":"^\\\\|\\\\s+","name":"keyword.control"},"list":{"match":"^\\\\s*(\\\\d+\\\\.|\\\\* -|[a-zA-Z#]\\\\.|[iIvVxXmMcC]+\\\\.|\\\\(\\\\d+\\\\)|\\\\d+\\\\)|[*+-])\\\\s+","name":"keyword.control"},"literal":{"captures":{"1":{"name":"keyword.control"},"2":{"name":"entity.name.tag"}},"match":"(:\\\\S+:)(`.*?`\\\\\\\\?)"},"literal-block":{"begin":"^(\\\\s*)(.*)(::)\\\\s*$","beginCaptures":{"2":{"patterns":[{"include":"#inline-markup"}]},"3":{"name":"keyword.control"}},"while":"^\\\\1(?=\\\\s)|^\\\\s*$"},"macro":{"match":"\\\\|[^\\\\|]+\\\\|","name":"entity.name.tag"},"monospaced":{"begin":"(?<=[\\\\s\\"\'(\\\\[{<]|^)``[^\\\\s`]","end":"``|^\\\\s*$","name":"string.interpolated"},"options-list":{"match":"(?:(?:^|,\\\\s+)(?:[-+]\\\\w|--?[a-zA-Z][\\\\w-]+|/\\\\w+)(?:[ =](?:\\\\w+|<[^<>]+?>))?)+(?= |\\\\t|$)","name":"variable.parameter"},"raw-html":{"begin":"^(\\\\s*)(\\\\.{2}\\\\s+raw\\\\s*::)\\\\s+(html)\\\\s*$","beginCaptures":{"2":{"name":"keyword.control"},"3":{"name":"variable.parameter.html"}},"patterns":[{"include":"#block-param"},{"include":"text.html.derivative"}],"while":"^\\\\1(?=\\\\s)|^\\\\s*$"},"ref":{"begin":"(:ref:)`","beginCaptures":{"1":{"name":"keyword.control"}},"end":"`|^\\\\s*$","name":"entity.name.tag","patterns":[{"match":"<.*?>","name":"markup.underline.link"}]},"reference":{"match":"[\\\\w-]*[a-zA-Z\\\\d-]__?\\\\b","name":"entity.name.tag"},"replace-include":{"captures":{"1":{"name":"keyword.control"},"2":{"name":"entity.name.tag"},"3":{"name":"keyword.control"}},"match":"^\\\\s*(\\\\.{2})\\\\s+(\\\\|[^\\\\|]+\\\\|)\\\\s+(replace::)"},"simple-table":{"match":"^[=\\\\s]+$","name":"keyword.control.table"},"substitution":{"match":"^\\\\.{2}\\\\s*\\\\|([^|]+)\\\\|","name":"entity.name.tag"},"table":{"begin":"^\\\\s*\\\\+[=+-]+\\\\+\\\\s*$","beginCaptures":{"0":{"name":"keyword.control.table"}},"end":"^(?![+|])","patterns":[{"match":"[=+|-]","name":"keyword.control.table"}]},"title":{"match":"^(\\\\*{3,}|#{3,}|\\\\={3,}|~{3,}|\\\\+{3,}|-{3,}|`{3,}|\\\\^{3,}|:{3,}|\\"{3,}|_{3,}|\'{3,})$","name":"markup.heading"}},"scopeName":"source.rst","embeddedLangs":["html-derivative","cpp","python","javascript","shellscript","yaml","cmake","ruby"]}')),P=[...e,...n,...c,...a,...o,...t,...r,...l,s];export{P as default}; ================================================ FILE: jesse/static/_nuxt/CTNlIIiR.js ================================================ /*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:"(",close:")",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],folding:{markers:{start:new RegExp("^\\s*(#|//)region\\b"),end:new RegExp("^\\s*(#|//)endregion\\b")}}},t={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.root"}],[/)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)(\w+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],phpInSimpleState:[[/<\?((php)|=)?/,"metatag.php"],[/\?>/,{token:"metatag.php",switchTo:"@$S2.$S3"}],{include:"phpRoot"}],phpInEmbeddedState:[[/<\?((php)|=)?/,"metatag.php"],[/\?>/,{token:"metatag.php",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"phpRoot"}],phpRoot:[[/[a-zA-Z_]\w*/,{cases:{"@phpKeywords":{token:"keyword.php"},"@phpCompileTimeConstants":{token:"constant.php"},"@default":"identifier.php"}}],[/[$a-zA-Z_]\w*/,{cases:{"@phpPreDefinedVariables":{token:"variable.predefined.php"},"@default":"variable.php"}}],[/[{}]/,"delimiter.bracket.php"],[/[\[\]]/,"delimiter.array.php"],[/[()]/,"delimiter.parenthesis.php"],[/[ \t\r\n]+/],[/(#|\/\/)$/,"comment.php"],[/(#|\/\/)/,"comment.php","@phpLineComment"],[/\/\*/,"comment.php","@phpComment"],[/"/,"string.php","@phpDoubleQuoteString"],[/'/,"string.php","@phpSingleQuoteString"],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,\@]/,"delimiter.php"],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float.php"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float.php"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex.php"],[/0[0-7']*[0-7]/,"number.octal.php"],[/0[bB][0-1']*[0-1]/,"number.binary.php"],[/\d[\d']*/,"number.php"],[/\d/,"number.php"]],phpComment:[[/\*\//,"comment.php","@pop"],[/[^*]+/,"comment.php"],[/./,"comment.php"]],phpLineComment:[[/\?>/,{token:"@rematch",next:"@pop"}],[/.$/,"comment.php","@pop"],[/[^?]+$/,"comment.php","@pop"],[/[^?]+/,"comment.php"],[/./,"comment.php"]],phpDoubleQuoteString:[[/[^\\"]+/,"string.php"],[/@escapes/,"string.escape.php"],[/\\./,"string.escape.invalid.php"],[/"/,"string.php","@pop"]],phpSingleQuoteString:[[/[^\\']+/,"string.php"],[/@escapes/,"string.escape.php"],[/\\./,"string.escape.invalid.php"],[/'/,"string.php","@pop"]]},phpKeywords:["abstract","and","array","as","break","callable","case","catch","cfunction","class","clone","const","continue","declare","default","do","else","elseif","enddeclare","endfor","endforeach","endif","endswitch","endwhile","extends","false","final","for","foreach","function","global","goto","if","implements","interface","instanceof","insteadof","namespace","new","null","object","old_function","or","private","protected","public","resource","static","switch","throw","trait","try","true","use","var","while","xor","die","echo","empty","exit","eval","include","include_once","isset","list","require","require_once","return","print","unset","yield","__construct"],phpCompileTimeConstants:["__CLASS__","__DIR__","__FILE__","__LINE__","__NAMESPACE__","__METHOD__","__FUNCTION__","__TRAIT__"],phpPreDefinedVariables:["$GLOBALS","$_SERVER","$_GET","$_POST","$_FILES","$_REQUEST","$_SESSION","$_ENV","$_COOKIE","$php_errormsg","$HTTP_RAW_POST_DATA","$http_response_header","$argc","$argv"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/};export{e as conf,t as language}; ================================================ FILE: jesse/static/_nuxt/CTRr51gU.js ================================================ const e=Object.freeze(JSON.parse('{"colors":{"activityBar.background":"#f6f6f6","activityBar.foreground":"#9E9E9E","activityBarBadge.background":"#616161","badge.background":"#E0E0E0","badge.foreground":"#616161","button.background":"#757575","button.hoverBackground":"#616161","debugIcon.breakpointCurrentStackframeForeground":"#1976D2","debugIcon.breakpointDisabledForeground":"#848484","debugIcon.breakpointForeground":"#D32F2F","debugIcon.breakpointStackframeForeground":"#1976D2","debugIcon.continueForeground":"#6f42c1","debugIcon.disconnectForeground":"#6f42c1","debugIcon.pauseForeground":"#6f42c1","debugIcon.restartForeground":"#1976D2","debugIcon.startForeground":"#1976D2","debugIcon.stepBackForeground":"#6f42c1","debugIcon.stepIntoForeground":"#6f42c1","debugIcon.stepOutForeground":"#6f42c1","debugIcon.stepOverForeground":"#6f42c1","debugIcon.stopForeground":"#1976D2","diffEditor.insertedTextBackground":"#b7e7a44b","diffEditor.removedTextBackground":"#e597af52","editor.background":"#ffffff","editor.foreground":"#212121","editor.lineHighlightBorder":"#f2f2f2","editorBracketMatch.background":"#E7F3FF","editorBracketMatch.border":"#c8e1ff","editorGroupHeader.tabsBackground":"#f6f6f6","editorGroupHeader.tabsBorder":"#fff","editorIndentGuide.background":"#EEE","editorLineNumber.activeForeground":"#757575","editorLineNumber.foreground":"#CCC","editorSuggestWidget.background":"#F3F3F3","extensionButton.prominentBackground":"#000000AA","extensionButton.prominentHoverBackground":"#000000BB","focusBorder":"#D0D0D0","foreground":"#757575","gitDecoration.ignoredResourceForeground":"#AAAAAA","input.border":"#E9E9E9","inputOption.activeBackground":"#EDEDED","list.activeSelectionBackground":"#EEE","list.activeSelectionForeground":"#212121","list.focusBackground":"#ddd","list.focusForeground":"#212121","list.highlightForeground":"#212121","list.inactiveSelectionBackground":"#E0E0E0","list.inactiveSelectionForeground":"#212121","panel.background":"#fff","panel.border":"#f4f4f4","panelTitle.activeBorder":"#fff","panelTitle.inactiveForeground":"#BDBDBD","peekView.border":"#E0E0E0","peekViewEditor.background":"#f8f8f8","pickerGroup.foreground":"#000","progressBar.background":"#000","scrollbar.shadow":"#FFF","sideBar.background":"#f6f6f6","sideBar.border":"#f6f6f6","sideBarSectionHeader.background":"#EEE","sideBarTitle.foreground":"#999","statusBar.background":"#f6f6f6","statusBar.border":"#f6f6f6","statusBar.debuggingBackground":"#f6f6f6","statusBar.foreground":"#7E7E7E","statusBar.noFolderBackground":"#f6f6f6","statusBarItem.prominentBackground":"#0000001a","statusBarItem.remoteBackground":"#f6f6f600","statusBarItem.remoteForeground":"#7E7E7E","symbolIcon.classForeground":"#dd8500","symbolIcon.constructorForeground":"#6f42c1","symbolIcon.enumeratorForeground":"#dd8500","symbolIcon.enumeratorMemberForeground":"#1976D2","symbolIcon.eventForeground":"#dd8500","symbolIcon.fieldForeground":"#1976D2","symbolIcon.functionForeground":"#6f42c1","symbolIcon.interfaceForeground":"#1976D2","symbolIcon.methodForeground":"#6f42c1","symbolIcon.variableForeground":"#1976D2","tab.activeBorder":"#FFF","tab.activeForeground":"#424242","tab.border":"#f6f6f6","tab.inactiveBackground":"#f6f6f6","tab.inactiveForeground":"#BDBDBD","tab.unfocusedActiveBorder":"#fff","terminal.ansiBlack":"#333","terminal.ansiBlue":"#e0e0e0","terminal.ansiBrightBlack":"#a1a1a1","terminal.ansiBrightBlue":"#6871ff","terminal.ansiBrightCyan":"#57d9ad","terminal.ansiBrightGreen":"#a3d900","terminal.ansiBrightMagenta":"#a37acc","terminal.ansiBrightRed":"#d6656a","terminal.ansiBrightWhite":"#7E7E7E","terminal.ansiBrightYellow":"#e7c547","terminal.ansiCyan":"#4dbf99","terminal.ansiGreen":"#77cc00","terminal.ansiMagenta":"#9966cc","terminal.ansiRed":"#D32F2F","terminal.ansiWhite":"#c7c7c7","terminal.ansiYellow":"#f29718","terminal.background":"#fff","textLink.activeForeground":"#000","textLink.foreground":"#000","titleBar.activeBackground":"#f6f6f6","titleBar.border":"#FFFFFF00","titleBar.inactiveBackground":"#f6f6f6"},"displayName":"Min Light","name":"min-light","tokenColors":[{"settings":{"foreground":"#24292eff"}},{"scope":["keyword.operator.accessor","meta.group.braces.round.function.arguments","meta.template.expression","markup.fenced_code meta.embedded.block"],"settings":{"foreground":"#24292eff"}},{"scope":"emphasis","settings":{"fontStyle":"italic"}},{"scope":["strong","markup.heading.markdown","markup.bold.markdown"],"settings":{"fontStyle":"bold"}},{"scope":["markup.italic.markdown"],"settings":{"fontStyle":"italic"}},{"scope":"meta.link.inline.markdown","settings":{"fontStyle":"underline","foreground":"#1976D2"}},{"scope":["string","markup.fenced_code","markup.inline"],"settings":{"foreground":"#2b5581"}},{"scope":["comment","string.quoted.docstring.multi"],"settings":{"foreground":"#c2c3c5"}},{"scope":["constant.numeric","constant.language","constant.other.placeholder","constant.character.format.placeholder","variable.language.this","variable.other.object","variable.other.class","variable.other.constant","meta.property-name","meta.property-value","support"],"settings":{"foreground":"#1976D2"}},{"scope":["keyword","storage.modifier","storage.type","storage.control.clojure","entity.name.function.clojure","entity.name.tag.yaml","support.function.node","support.type.property-name.json","punctuation.separator.key-value","punctuation.definition.template-expression"],"settings":{"foreground":"#D32F2F"}},{"scope":"variable.parameter.function","settings":{"foreground":"#FF9800"}},{"scope":["support.function","entity.name.type","entity.other.inherited-class","meta.function-call","meta.instance.constructor","entity.other.attribute-name","entity.name.function","constant.keyword.clojure"],"settings":{"foreground":"#6f42c1"}},{"scope":["entity.name.tag","string.quoted","string.regexp","string.interpolated","string.template","string.unquoted.plain.out.yaml","keyword.other.template"],"settings":{"foreground":"#22863a"}},{"scope":"token.info-token","settings":{"foreground":"#316bcd"}},{"scope":"token.warn-token","settings":{"foreground":"#cd9731"}},{"scope":"token.error-token","settings":{"foreground":"#cd3131"}},{"scope":"token.debug-token","settings":{"foreground":"#800080"}},{"scope":["strong","markup.heading.markdown","markup.bold.markdown"],"settings":{"foreground":"#6f42c1"}},{"scope":["punctuation.definition.arguments","punctuation.definition.dict","punctuation.separator","meta.function-call.arguments"],"settings":{"foreground":"#212121"}},{"scope":["markup.underline.link","punctuation.definition.metadata.markdown"],"settings":{"foreground":"#22863a"}},{"scope":["beginning.punctuation.definition.list.markdown"],"settings":{"foreground":"#6f42c1"}},{"scope":["punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown","string.other.link.title.markdown","string.other.link.description.markdown"],"settings":{"foreground":"#d32f2f"}}],"type":"light"}'));export{e as default}; ================================================ FILE: jesse/static/_nuxt/CUKaiP0K.js ================================================ import{d as G,r as u,c as B,J as ce,C as x,i as s,f as m,x as n,D as $,g as y,j as t,v as de,t as J,G as T,E as N,a6 as ue,a4 as me,P as _e,B as pe,w as O,a7 as fe,a8 as F,h as D,e as ve,F as ye,O as he,k as ge,a9 as xe,aa as be,_ as we,ab as ke,I as Se,s as E}from"./CU_MfyYc.js";import{_ as Ce}from"./CvhZxjKo.js";import{_ as $e}from"./Cw4FHd9N.js";import{_ as Me}from"./BuljS_lV.js";import{_ as Ve}from"./BfYIQCg8.js";import{u as Ue}from"./Cwg39VG_.js";import"./DP9I38t9.js";import"./DK27pemE.js";const Te={class:"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden shadow-sm"},De={class:"flex flex-col"},Ne={class:"text-sm font-medium text-gray-900 dark:text-white"},je={class:"text-xs text-gray-500 dark:text-gray-400"},Re={class:"flex flex-col"},qe={class:"text-sm text-gray-700 dark:text-gray-300"},ze={class:"text-xs text-gray-500 dark:text-gray-400"},Pe={class:"flex justify-center gap-1 text-lg"},Fe={key:0},Ae={key:1},Be={key:2,class:"text-gray-400 text-sm"},Le={class:"flex justify-center"},He={class:"text-sm"},Oe={class:"flex justify-center"},Ee={class:"text-sm text-gray-500 dark:text-gray-400"},Ie={class:"flex items-center justify-end gap-1"},Ge=G({__name:"MonteCarloSessionsTable",props:{sessions:{}},emits:["notes","load","delete"],setup(I){const S=I,M=u({column:"updated_at",direction:"desc"}),L=[{key:"strategy",label:"Strategy"},{key:"session",label:"Session"},{key:"simulation_types",label:"Types",class:"text-center"},{key:"num_scenarios",label:"Scenarios",class:"text-center"},{key:"status",label:"Status",class:"text-center"},{key:"updated_at",label:"Date",sortable:!0},{key:"actions",label:"",class:"w-32 text-right"}],_=B(()=>S.sessions.map(o=>{var h,C,g,d,b,a,p,U,w,k,f,v,R,q,z,P;return{id:o.id,title:o.title,strategy:(d=(g=(C=(h=o.state)==null?void 0:h.form)==null?void 0:C.routes)==null?void 0:g[0])==null?void 0:d.strategy,exchange:(a=(b=o.state)==null?void 0:b.form)==null?void 0:a.exchange,symbol:(k=(w=(U=(p=o.state)==null?void 0:p.form)==null?void 0:U.routes)==null?void 0:w[0])==null?void 0:k.symbol,timeframe:(q=(R=(v=(f=o.state)==null?void 0:f.form)==null?void 0:v.routes)==null?void 0:R[0])==null?void 0:q.timeframe,has_trades:o.has_trades,has_candles:o.has_candles,num_scenarios:(P=(z=o.state)==null?void 0:z.form)==null?void 0:P.num_scenarios,status:o.status,updated_at:ce.timestampToReadableDateTime(o.updated_at),rawSession:o}}));function V(o){switch(o==null?void 0:o.toLowerCase()){case"running":return"blue";case"finished":return"green";case"stopped":return"red";case"terminated":return"yellow";default:return"gray"}}return(o,h)=>{const C=$e,g=J,d=de,b=Me;return y(),x("div",Te,[s(b,{sort:n(M),"onUpdate:sort":h[0]||(h[0]=a=>$(M)?M.value=a:null),rows:n(_),columns:L,class:"w-full",ui:{td:{base:"whitespace-nowrap"},th:{base:"whitespace-nowrap"}}},{"strategy-data":m(({row:a})=>[t("div",De,[t("span",Ne,T(a.title||a.strategy||"Unknown Strategy"),1),t("span",je,T(a.exchange||"Unknown Exchange"),1)])]),"session-data":m(({row:a})=>[t("div",Re,[t("span",qe,T(a.symbol||"N/A"),1),t("span",ze,T(a.timeframe||"N/A"),1)])]),"simulation_types-data":m(({row:a})=>[t("div",Pe,[a.has_trades?(y(),x("span",Fe,"🔀")):N("",!0),a.has_candles?(y(),x("span",Ae,"📈")):N("",!0),!a.has_trades&&!a.has_candles?(y(),x("span",Be,"-")):N("",!0)])]),"num_scenarios-data":m(({row:a})=>[t("div",Le,[t("span",He,T(a.num_scenarios),1)])]),"status-data":m(({row:a})=>[t("div",Oe,[s(C,{color:V(a.status),label:a.status,variant:"soft",size:"xs"},null,8,["color","label"])])]),"updated_at-data":m(({row:a})=>[t("span",Ee,T(a.updated_at),1)]),"actions-data":m(({row:a})=>[t("div",Ie,[s(d,{text:"Add Note"},{default:m(()=>[s(g,{size:"xs",variant:"ghost",color:"gray",icon:"i-heroicons-pencil-square",onClick:p=>o.$emit("notes",a.rawSession)},null,8,["onClick"])]),_:2},1024),s(d,{text:"Load Session"},{default:m(()=>[s(g,{size:"xs",variant:"ghost",color:"gray",icon:"i-heroicons-arrow-right",onClick:p=>o.$emit("load",a.id)},null,8,["onClick"])]),_:2},1024),s(d,{text:"Delete"},{default:m(()=>[s(g,{size:"xs",variant:"ghost",color:"red",icon:"i-heroicons-trash",onClick:p=>o.$emit("delete",a.id)},null,8,["onClick"])]),_:2},1024)])]),_:1},8,["sort","rows"])])}}}),Je={class:"container mx-auto px-4 pt-16 pb-6 max-w-7xl"},We={class:"mb-6 flex flex-col gap-4 md:flex-row md:items-center md:justify-between"},Ke={class:"flex items-center gap-3"},Qe={class:"flex flex-col gap-3 sm:flex-row sm:items-center"},Xe={key:0,class:"space-y-4"},Ye={class:"bg-white dark:bg-gray-800 shadow rounded-lg overflow-hidden"},Ze={class:"divide-y divide-gray-200 dark:divide-gray-700"},et={class:"hidden md:grid md:grid-cols-12 gap-4 items-center"},tt={class:"col-span-3"},st={class:"col-span-2"},at={class:"col-span-2 text-center"},lt={class:"col-span-2 text-center"},ot={class:"col-span-2"},nt={class:"col-span-1 flex justify-end gap-2"},it={class:"md:hidden space-y-3"},rt={class:"flex items-start justify-between"},ct={class:"flex-1"},dt={class:"flex items-center justify-between"},ut={class:"flex items-center justify-between"},mt={class:"flex gap-1"},_t={key:1,class:"space-y-4"},pt={key:0,class:"flex justify-center"},ft={key:2,class:"bg-white dark:bg-gray-800 shadow rounded-lg p-12 text-center"},vt={class:"p-6"},yt={class:"mb-6"},ht={class:"flex justify-end gap-3"},A=50,Mt=G({__name:"history",setup(I){Ue({title:"Monte Carlo History - Jesse"});const S=ue(),M=me(),L=_e(),_=u([]),V=u(!1),o=u(null),h=u(!1),C=u(!1),g=u(!0),d=u(0),b=u(!1),a=u(null),p=u(!1),U=u(!1),w=u(30),k=B({get:()=>S.query.title||"",set:l=>{const e={...S.query};l?e.title=l:delete e.title,M.push({query:e})}}),f=B({get:()=>S.query.status||"all",set:l=>{const e={...S.query};l==="all"?delete e.status:e.status=l,M.push({query:e})}}),v=B({get:()=>S.query.dateRange||"all_time",set:l=>{const e={...S.query};l==="all_time"?delete e.dateRange:e.dateRange=l,M.push({query:e})}}),R=[{label:"All Statuses",value:"all"},{label:"Running",value:"running"},{label:"Finished",value:"finished"},{label:"Stopped",value:"stopped"},{label:"Terminated",value:"terminated"}],q=[{label:"All Time",value:"all_time"},{label:"Last 7 Days",value:"7_days"},{label:"Last 30 Days",value:"30_days"},{label:"Last 90 Days",value:"90_days"}],z=[{label:"1 day",value:1},{label:"7 days",value:7},{label:"30 days",value:30},{label:"3 months",value:90},{label:"6 months",value:180},{label:"1 year",value:365},{label:"2 years",value:730},{label:"All existing sessions",value:-1}];pe(()=>{setTimeout(()=>{j()},20)});const P=fe(()=>{d.value=0,j()},300);O(k,()=>{P()}),O(f,()=>{d.value=0,j()}),O(v,()=>{d.value=0,j()});async function j(){var l;h.value=!0;try{const r=(await F("/monte-carlo/sessions",{limit:A,offset:0,title_search:k.value||null,status_filter:f.value==="all"?null:f.value,date_filter:v.value==="all_time"?null:v.value},!0)).data.value;_.value=(r==null?void 0:r.sessions)||[],d.value=_.value.length,g.value=((l=r==null?void 0:r.sessions)==null?void 0:l.length)===A}catch(e){D(e)}finally{h.value=!1}}async function W(){C.value=!0;try{const e=(await F("/monte-carlo/sessions",{limit:A,offset:d.value,title_search:k.value||null,status_filter:f.value==="all"?null:f.value,date_filter:v.value==="all_time"?null:v.value},!0)).data.value,r=(e==null?void 0:e.sessions)||[];_.value=[..._.value,...r],d.value+=r.length,g.value=r.length===A}catch(l){D(l)}finally{C.value=!1}}async function K(l){await Se(`/monte-carlo/${l}`)}function Q(l){o.value=l,V.value=!0}async function X(){o.value&&(await Y(o.value),_.value=_.value.filter(l=>l.id!==o.value),d.value-=1),V.value=!1,o.value=null}async function Y(l){if(l===L.form.id){E("error","Cannot delete the current session.");return}try{const e=await F(`/monte-carlo/sessions/${l}/remove`,{},!0);if(e.error.value){D(e.error.value);return}E("success","Session deleted successfully")}catch(e){D(e)}}function Z(l){a.value=l,b.value=!0}async function ee(){U.value=!0;try{const l=await F("/monte-carlo/purge-sessions",{days_old:w.value===-1?null:w.value},!0);if(l.error.value){D(l.error.value);return}const e=l.data.value;E("success",`Successfully purged ${e.deleted_count} session(s)`),p.value=!1,d.value=0,await j()}catch(l){D(l)}finally{U.value=!1}}function te(){p.value=!1,w.value=30}function se(l){if(a.value){const e=_.value.find(r=>r.id===a.value.id);e&&(e.title=l.title,e.description=l.description,a.value.title=l.title,a.value.description=l.description)}}return(l,e)=>{const r=J,ae=ge,H=xe,i=Ce,le=Ge,oe=be,ne=Ve,ie=ke,re=we;return y(),x("div",null,[t("div",Je,[t("div",We,[t("div",Ke,[e[9]||(e[9]=t("h1",{class:"text-xl md:text-2xl font-bold text-gray-900 dark:text-white"}," Monte Carlo History ",-1)),s(r,{icon:"i-heroicons-trash",color:"red",variant:"soft",size:"sm",label:"Purge",onClick:e[0]||(e[0]=c=>p.value=!0)})]),t("div",Qe,[s(ae,{modelValue:n(k),"onUpdate:modelValue":e[1]||(e[1]=c=>$(k)?k.value=c:null),placeholder:"Search by title...",icon:"i-heroicons-magnifying-glass",size:"sm",class:"w-full sm:w-64"},null,8,["modelValue"]),s(H,{modelValue:n(f),"onUpdate:modelValue":e[2]||(e[2]=c=>$(f)?f.value=c:null),options:R,size:"sm",class:"w-full sm:w-40"},null,8,["modelValue"]),s(H,{modelValue:n(v),"onUpdate:modelValue":e[3]||(e[3]=c=>$(v)?v.value=c:null),options:q,size:"sm",class:"w-full sm:w-40"},null,8,["modelValue"])])]),n(h)?(y(),x("div",Xe,[t("div",Ye,[t("div",Ze,[(y(),x(ye,null,he(5,c=>t("div",{key:c,class:"p-4"},[t("div",et,[t("div",tt,[s(i,{class:"h-4 w-full mb-2"}),s(i,{class:"h-3 w-2/3"})]),t("div",st,[s(i,{class:"h-4 w-full mb-2"}),s(i,{class:"h-3 w-2/3"})]),t("div",at,[s(i,{class:"h-4 w-16 mx-auto"})]),t("div",lt,[s(i,{class:"h-6 w-20 mx-auto"})]),t("div",ot,[s(i,{class:"h-4 w-full"})]),t("div",nt,[s(i,{class:"h-8 w-8"}),s(i,{class:"h-8 w-8"}),s(i,{class:"h-8 w-8"})])]),t("div",it,[t("div",rt,[t("div",ct,[s(i,{class:"h-4 w-3/4 mb-2"}),s(i,{class:"h-3 w-1/2"})]),s(i,{class:"h-6 w-16 ml-2"})]),t("div",dt,[s(i,{class:"h-4 w-24"}),s(i,{class:"h-4 w-16"})]),t("div",ut,[s(i,{class:"h-3 w-32"}),t("div",mt,[s(i,{class:"h-8 w-8"}),s(i,{class:"h-8 w-8"}),s(i,{class:"h-8 w-8"})])])])])),64))])])])):n(_).length?(y(),x("div",_t,[s(le,{sessions:n(_),onNotes:Z,onLoad:K,onDelete:Q},null,8,["sessions"]),n(g)?(y(),x("div",pt,[s(r,{label:"Load More",variant:"soft",color:"gray",loading:n(C),onClick:W},null,8,["loading"])])):N("",!0)])):!n(h)&&n(_).length===0?(y(),x("div",ft,e[10]||(e[10]=[t("div",{class:"text-gray-400 dark:text-gray-500"},[t("i",{class:"i-heroicons-clock h-12 w-12 mx-auto mb-4"}),t("p",{class:"text-lg"},"No Monte Carlo history found"),t("p",{class:"text-sm mt-2"},"Run a Monte Carlo simulation or change filters to see items in your history")],-1)]))):N("",!0),s(oe,{modelValue:n(V),"onUpdate:modelValue":e[4]||(e[4]=c=>$(V)?V.value=c:null),title:"Delete Monte Carlo Session",description:"Are you sure you want to delete this Monte Carlo session? This action cannot be undone.",type:"info"},{default:m(()=>[s(r,{variant:"solid",color:"red",block:"",class:"sm:w-auto",label:"Delete",onClick:X})]),_:1},8,["modelValue"]),n(a)?(y(),ve(ne,{key:3,modelValue:n(b),"onUpdate:modelValue":e[5]||(e[5]=c=>$(b)?b.value=c:null),"session-id":n(a).id,"initial-title":n(a).title,"initial-description":n(a).description,"initial-strategy-codes":n(a).strategy_codes,onSaved:e[6]||(e[6]=c=>se({title:"",description:""}))},null,8,["modelValue","session-id","initial-title","initial-description","initial-strategy-codes"])):N("",!0),s(re,{modelValue:n(p),"onUpdate:modelValue":e[8]||(e[8]=c=>$(p)?p.value=c:null)},{default:m(()=>[t("div",vt,[e[13]||(e[13]=t("h3",{class:"text-lg font-semibold text-gray-900 dark:text-white mb-4"}," Purge Monte Carlo Sessions ",-1)),t("div",yt,[e[11]||(e[11]=t("div",{class:"bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4 mb-4"},[t("div",{class:"flex items-start gap-3"},[t("i",{class:"i-heroicons-exclamation-triangle text-red-600 dark:text-red-400 text-xl flex-shrink-0 mt-0.5"}),t("div",{class:"text-sm text-red-800 dark:text-red-200"},[t("p",{class:"font-semibold mb-1"}," Warning: This action is permanent! "),t("p",null,"Deleted sessions cannot be recovered. Please select carefully.")])])],-1)),s(ie,{label:"Delete sessions older than:",class:"mb-4"},{default:m(()=>[s(H,{modelValue:n(w),"onUpdate:modelValue":e[7]||(e[7]=c=>$(w)?w.value=c:null),options:z,size:"md"},null,8,["modelValue"])]),_:1}),e[12]||(e[12]=t("p",{class:"text-sm text-gray-600 dark:text-gray-400"}," This will permanently delete all Monte Carlo sessions that match your criteria. ",-1))]),t("div",ht,[s(r,{color:"gray",variant:"ghost",label:"Cancel",onClick:te}),s(r,{color:"red",label:"Purge Sessions",loading:n(U),onClick:ee},null,8,["loading"])])])]),_:1},8,["modelValue"])])])}}});export{Mt as default}; ================================================ FILE: jesse/static/_nuxt/CU_MfyYc.js ================================================ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./E1yjnBiT.js","./DMpbkAFi.js","./C6794tGI.js","./BacktestTabs.CTcEQ1jl.css","./D35nYK_C.js","./BW0IIeyO.js","./CircleProgressbar.Bqs-YaMH.css","./D-1_drer.js","./DZb6Dd70.js","./C4bX54si.js","./CqvT4tPC.js","./CYcD1Eih.js","./s0YP2YF7.js","./9VOnL4Iz.js","./CvhZxjKo.js","./Cw4FHd9N.js","./wLBHnxd4.js","./DK27pemE.js","./BS9OwPT8.js","./Cwg39VG_.js","./X3S5orim.js","./CP8nbYEq.js","./DyLYGjHh.js","./BuljS_lV.js","./DP9I38t9.js","./Progress.CWZn3LuJ.css","./DGRk4fvy.js","./rKxcFsZi.js","./Bad53t6V.js","./CRzUWN8h.js","./rUbGlJbN.js","./BJ5jdafP.js","./Dr_JbmT0.js","./LiveTabs.15UVtLVQ.css","./Bt5ljtES.js","./RFJ54-KY.js","./Bk9BmIv8.js","./DnWQm4Tq.js","./_FEXNRsZ.js","./BwHcMc3Y.js","./DPg46dy1.js","./O-0jUIAi.js","./CvkRSmvA.js","./zIqOaAtZ.js","./qXRMwz9A.js","./DMFWKIsW.js","./BfYIQCg8.js","./CViTd9PT.js","./_id_.PO5SUJPO.css","./CUKaiP0K.js","./dUAF8qyF.js","./index.dzGxyoTu.css","./Du3IqvzK.js","./BMl_rFTw.js","./CD20-hSi.js","./_id_.CZ9YoXDN.css","./DmtRXgke.js","./BFk92hFI.js","./BaOuBgqt.js","./BKENxkRn.js","./StrategiesSidebar.BLGw1dq7.css","./B1vp6HhI.js","./index.lQPmb1y9.css","./DaasEFj5.js","./IconCSS.RN4HczVp.css","./DXXGBMMv.js","./DmDlXweU.js","./DQ5Sj-RJ.js","./error-404.DZraUJun.css","./CfBo882q.js","./error-500.XmAVHPl_.css"])))=>i.map(i=>d[i]); var Rye=Object.defineProperty;var Mye=(n,e,t)=>e in n?Rye(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var np=(n,e,t)=>Mye(n,typeof e!="symbol"?e+"":e,t);/** * @vue/shared v3.5.12 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **//*! #__NO_SIDE_EFFECTS__ */function Pye(n){const e=Object.create(null);for(const t of n.split(","))e[t]=1;return t=>t in e}const Oye={},Fye=()=>{},Bye=Object.assign,Wye=(n,e)=>{const t=n.indexOf(e);t>-1&&n.splice(t,1)},Hye=Object.prototype.hasOwnProperty,QN=(n,e)=>Hye.call(n,e),dg=Array.isArray,KS=n=>BR(n)==="[object Map]",Vye=n=>BR(n)==="[object Set]",Ux=n=>typeof n=="function",zye=n=>typeof n=="string",Yk=n=>typeof n=="symbol",kw=n=>n!==null&&typeof n=="object",$ye=Object.prototype.toString,BR=n=>$ye.call(n),Uye=n=>BR(n).slice(8,-1),jye=n=>BR(n)==="[object Object]",jH=n=>zye(n)&&n!=="NaN"&&n[0]!=="-"&&""+parseInt(n,10)===n,am=(n,e)=>!Object.is(n,e),Kye=(n,e,t,i=!1)=>{Object.defineProperty(n,e,{configurable:!0,enumerable:!1,writable:i,value:t})};/** * @vue/reactivity v3.5.12 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/let ya;class Zne{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=ya,!e&&ya&&(this.index=(ya.scopes||(ya.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e0)return;if(GS){let e=GS;for(GS=void 0;e;){const t=e.next;e.next=void 0,e.flags&=-9,e=t}}let n;for(;qS;){let e=qS;for(qS=void 0;e;){const t=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(i){n||(n=i)}e=t}}if(n)throw n}function Jne(n){for(let e=n.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function ese(n){let e,t=n.depsTail,i=t;for(;i;){const s=i.prevDep;i.version===-1?(i===t&&(t=s),ZH(i),qye(i)):e=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=s}n.deps=e,n.depsTail=t}function e8(n){for(let e=n.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(tse(e.dep.computed)||e.dep.version!==e.version))return!0;return!!n._dirty}function tse(n){if(n.flags&4&&!(n.flags&16)||(n.flags&=-17,n.globalVersion===jx))return;n.globalVersion=jx;const e=n.dep;if(n.flags|=2,e.version>0&&!n.isSSR&&n.deps&&!e8(n)){n.flags&=-3;return}const t=ys,i=Ud;ys=n,Ud=!0;try{Jne(n);const s=n.fn(n._value);(e.version===0||am(s,n._value))&&(n._value=s,e.version++)}catch(s){throw e.version++,s}finally{ys=t,Ud=i,ese(n),n.flags&=-3}}function ZH(n,e=!1){const{dep:t,prevSub:i,nextSub:s}=n;if(i&&(i.nextSub=s,n.prevSub=void 0),s&&(s.prevSub=i,n.nextSub=void 0),t.subs===n&&(t.subs=i,!i&&t.computed)){t.computed.flags&=-5;for(let o=t.computed.deps;o;o=o.nextDep)ZH(o,!0)}!e&&!--t.sc&&t.map&&t.map.delete(t.key)}function qye(n){const{prevDep:e,nextDep:t}=n;e&&(e.nextDep=t,n.prevDep=void 0),t&&(t.prevDep=e,n.nextDep=void 0)}let Ud=!0;const ise=[];function a_(){ise.push(Ud),Ud=!1}function l_(){const n=ise.pop();Ud=n===void 0?!0:n}function pG(n){const{cleanup:e}=n;if(n.cleanup=void 0,e){const t=ys;ys=void 0;try{e()}finally{ys=t}}}let jx=0,Gye=class{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}};class WR{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(e){if(!ys||!Ud||ys===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==ys)t=this.activeLink=new Gye(ys,this),ys.deps?(t.prevDep=ys.depsTail,ys.depsTail.nextDep=t,ys.depsTail=t):ys.deps=ys.depsTail=t,nse(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){const i=t.nextDep;i.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=i),t.prevDep=ys.depsTail,t.nextDep=void 0,ys.depsTail.nextDep=t,ys.depsTail=t,ys.deps===t&&(ys.deps=i)}return t}trigger(e){this.version++,jx++,this.notify(e)}notify(e){qH();try{for(let t=this.subs;t;t=t.prevSub)t.sub.notify()&&t.sub.dep.notify()}finally{GH()}}}function nse(n){if(n.dep.sc++,n.sub.flags&4){const e=n.dep.computed;if(e&&!n.dep.subs){e.flags|=20;for(let i=e.deps;i;i=i.nextDep)nse(i)}const t=n.dep.subs;t!==n&&(n.prevSub=t,t&&(t.nextSub=n)),n.dep.subs=n}}const JN=new WeakMap,Bv=Symbol(""),t8=Symbol(""),Kx=Symbol("");function ea(n,e,t){if(Ud&&ys){let i=JN.get(n);i||JN.set(n,i=new Map);let s=i.get(t);s||(i.set(t,s=new WR),s.map=i,s.key=t),s.track()}}function Ff(n,e,t,i,s,o){const r=JN.get(n);if(!r){jx++;return}const a=l=>{l&&l.trigger()};if(qH(),e==="clear")r.forEach(a);else{const l=dg(n),c=l&&jH(t);if(l&&t==="length"){const d=Number(i);r.forEach((u,h)=>{(h==="length"||h===Kx||!Yk(h)&&h>=d)&&a(u)})}else switch((t!==void 0||r.has(void 0))&&a(r.get(t)),c&&a(r.get(Kx)),e){case"add":l?c&&a(r.get("length")):(a(r.get(Bv)),KS(n)&&a(r.get(t8)));break;case"delete":l||(a(r.get(Bv)),KS(n)&&a(r.get(t8)));break;case"set":KS(n)&&a(r.get(Bv));break}}GH()}function Zye(n,e){const t=JN.get(n);return t&&t.get(e)}function Db(n){const e=zi(n);return e===n?e:(ea(e,"iterate",Kx),Xc(n)?e:e.map(ta))}function HR(n){return ea(n=zi(n),"iterate",Kx),n}const Yye={__proto__:null,[Symbol.iterator](){return q4(this,Symbol.iterator,ta)},concat(...n){return Db(this).concat(...n.map(e=>dg(e)?Db(e):e))},entries(){return q4(this,"entries",n=>(n[1]=ta(n[1]),n))},every(n,e){return af(this,"every",n,e,void 0,arguments)},filter(n,e){return af(this,"filter",n,e,t=>t.map(ta),arguments)},find(n,e){return af(this,"find",n,e,ta,arguments)},findIndex(n,e){return af(this,"findIndex",n,e,void 0,arguments)},findLast(n,e){return af(this,"findLast",n,e,ta,arguments)},findLastIndex(n,e){return af(this,"findLastIndex",n,e,void 0,arguments)},forEach(n,e){return af(this,"forEach",n,e,void 0,arguments)},includes(...n){return G4(this,"includes",n)},indexOf(...n){return G4(this,"indexOf",n)},join(n){return Db(this).join(n)},lastIndexOf(...n){return G4(this,"lastIndexOf",n)},map(n,e){return af(this,"map",n,e,void 0,arguments)},pop(){return yy(this,"pop")},push(...n){return yy(this,"push",n)},reduce(n,...e){return mG(this,"reduce",n,e)},reduceRight(n,...e){return mG(this,"reduceRight",n,e)},shift(){return yy(this,"shift")},some(n,e){return af(this,"some",n,e,void 0,arguments)},splice(...n){return yy(this,"splice",n)},toReversed(){return Db(this).toReversed()},toSorted(n){return Db(this).toSorted(n)},toSpliced(...n){return Db(this).toSpliced(...n)},unshift(...n){return yy(this,"unshift",n)},values(){return q4(this,"values",ta)}};function q4(n,e,t){const i=HR(n),s=i[e]();return i!==n&&!Xc(n)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.value&&(o.value=t(o.value)),o}),s}const Xye=Array.prototype;function af(n,e,t,i,s,o){const r=HR(n),a=r!==n&&!Xc(n),l=r[e];if(l!==Xye[e]){const u=l.apply(n,o);return a?ta(u):u}let c=t;r!==n&&(a?c=function(u,h){return t.call(this,ta(u),h,n)}:t.length>2&&(c=function(u,h){return t.call(this,u,h,n)}));const d=l.call(r,c,i);return a&&s?s(d):d}function mG(n,e,t,i){const s=HR(n);let o=t;return s!==n&&(Xc(n)?t.length>3&&(o=function(r,a,l){return t.call(this,r,a,l,n)}):o=function(r,a,l){return t.call(this,r,ta(a),l,n)}),s[e](o,...i)}function G4(n,e,t){const i=zi(n);ea(i,"iterate",Kx);const s=i[e](...t);return(s===-1||s===!1)&&JH(t[0])?(t[0]=zi(t[0]),i[e](...t)):s}function yy(n,e,t=[]){a_(),qH();const i=zi(n)[e].apply(n,t);return GH(),l_(),i}const Qye=Pye("__proto__,__v_isRef,__isVue"),sse=new Set(Object.getOwnPropertyNames(Symbol).filter(n=>n!=="arguments"&&n!=="caller").map(n=>Symbol[n]).filter(Yk));function Jye(n){Yk(n)||(n=String(n));const e=zi(this);return ea(e,"has",n),e.hasOwnProperty(n)}class ose{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,i){const s=this._isReadonly,o=this._isShallow;if(t==="__v_isReactive")return!s;if(t==="__v_isReadonly")return s;if(t==="__v_isShallow")return o;if(t==="__v_raw")return i===(s?o?cSe:cse:o?lse:ase).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(i)?e:void 0;const r=dg(e);if(!s){let l;if(r&&(l=Yye[t]))return l;if(t==="hasOwnProperty")return Jye}const a=Reflect.get(e,t,Cn(e)?e:i);return(Yk(t)?sse.has(t):Qye(t))||(s||ea(e,"get",t),o)?a:Cn(a)?r&&jH(t)?a:a.value:kw(a)?s?XH(a):Ba(a):a}}class rse extends ose{constructor(e=!1){super(!1,e)}set(e,t,i,s){let o=e[t];if(!this._isShallow){const l=Dm(o);if(!Xc(i)&&!Dm(i)&&(o=zi(o),i=zi(i)),!dg(e)&&Cn(o)&&!Cn(i))return l?!1:(o.value=i,!0)}const r=dg(e)&&jH(t)?Number(t)n,oE=n=>Reflect.getPrototypeOf(n);function sSe(n,e,t){return function(...i){const s=this.__v_raw,o=zi(s),r=KS(o),a=n==="entries"||n===Symbol.iterator&&r,l=n==="keys"&&r,c=s[n](...i),d=t?i8:e?n8:ta;return!e&&ea(o,"iterate",l?t8:Bv),{next(){const{value:u,done:h}=c.next();return h?{value:u,done:h}:{value:a?[d(u[0]),d(u[1])]:d(u),done:h}},[Symbol.iterator](){return this}}}}function rE(n){return function(...e){return n==="delete"?!1:n==="clear"?void 0:this}}function oSe(n,e){const t={get(s){const o=this.__v_raw,r=zi(o),a=zi(s);n||(am(s,a)&&ea(r,"get",s),ea(r,"get",a));const{has:l}=oE(r),c=e?i8:n?n8:ta;if(l.call(r,s))return c(o.get(s));if(l.call(r,a))return c(o.get(a));o!==r&&o.get(s)},get size(){const s=this.__v_raw;return!n&&ea(zi(s),"iterate",Bv),Reflect.get(s,"size",s)},has(s){const o=this.__v_raw,r=zi(o),a=zi(s);return n||(am(s,a)&&ea(r,"has",s),ea(r,"has",a)),s===a?o.has(s):o.has(s)||o.has(a)},forEach(s,o){const r=this,a=r.__v_raw,l=zi(a),c=e?i8:n?n8:ta;return!n&&ea(l,"iterate",Bv),a.forEach((d,u)=>s.call(o,c(d),c(u),r))}};return Bye(t,n?{add:rE("add"),set:rE("set"),delete:rE("delete"),clear:rE("clear")}:{add(s){!e&&!Xc(s)&&!Dm(s)&&(s=zi(s));const o=zi(this);return oE(o).has.call(o,s)||(o.add(s),Ff(o,"add",s,s)),this},set(s,o){!e&&!Xc(o)&&!Dm(o)&&(o=zi(o));const r=zi(this),{has:a,get:l}=oE(r);let c=a.call(r,s);c||(s=zi(s),c=a.call(r,s));const d=l.call(r,s);return r.set(s,o),c?am(o,d)&&Ff(r,"set",s,o):Ff(r,"add",s,o),this},delete(s){const o=zi(this),{has:r,get:a}=oE(o);let l=r.call(o,s);l||(s=zi(s),l=r.call(o,s)),a&&a.call(o,s);const c=o.delete(s);return l&&Ff(o,"delete",s,void 0),c},clear(){const s=zi(this),o=s.size!==0,r=s.clear();return o&&Ff(s,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(s=>{t[s]=sSe(s,n,e)}),t}function YH(n,e){const t=oSe(n,e);return(i,s,o)=>s==="__v_isReactive"?!n:s==="__v_isReadonly"?n:s==="__v_raw"?i:Reflect.get(QN(t,s)&&s in i?t:i,s,o)}const rSe={get:YH(!1,!1)},aSe={get:YH(!1,!0)},lSe={get:YH(!0,!1)};const ase=new WeakMap,lse=new WeakMap,cse=new WeakMap,cSe=new WeakMap;function dSe(n){switch(n){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function uSe(n){return n.__v_skip||!Object.isExtensible(n)?0:dSe(Uye(n))}function Ba(n){return Dm(n)?n:QH(n,!1,tSe,rSe,ase)}function Kf(n){return QH(n,!1,nSe,aSe,lse)}function XH(n){return QH(n,!0,iSe,lSe,cse)}function QH(n,e,t,i,s){if(!kw(n)||n.__v_raw&&!(e&&n.__v_isReactive))return n;const o=s.get(n);if(o)return o;const r=uSe(n);if(r===0)return n;const a=new Proxy(n,r===2?i:t);return s.set(n,a),a}function ug(n){return Dm(n)?ug(n.__v_raw):!!(n&&n.__v_isReactive)}function Dm(n){return!!(n&&n.__v_isReadonly)}function Xc(n){return!!(n&&n.__v_isShallow)}function JH(n){return n?!!n.__v_raw:!1}function zi(n){const e=n&&n.__v_raw;return e?zi(e):n}function eV(n){return!QN(n,"__v_skip")&&Object.isExtensible(n)&&Kye(n,"__v_skip",!0),n}const ta=n=>kw(n)?Ba(n):n,n8=n=>kw(n)?XH(n):n;function Cn(n){return n?n.__v_isRef===!0:!1}function Ue(n){return dse(n,!1)}function Sg(n){return dse(n,!0)}function dse(n,e){return Cn(n)?n:new hSe(n,e)}class hSe{constructor(e,t){this.dep=new WR,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:zi(e),this._value=t?e:ta(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){const t=this._rawValue,i=this.__v_isShallow||Xc(e)||Dm(e);e=i?e:zi(e),am(e,t)&&(this._rawValue=e,this._value=i?e:ta(e),this.dep.trigger())}}function Imt(n){n.dep&&n.dep.trigger()}function j(n){return Cn(n)?n.value:n}function Z4(n){return Ux(n)?n():j(n)}const fSe={get:(n,e,t)=>e==="__v_raw"?n:j(Reflect.get(n,e,t)),set:(n,e,t,i)=>{const s=n[e];return Cn(s)&&!Cn(t)?(s.value=t,!0):Reflect.set(n,e,t,i)}};function use(n){return ug(n)?n:new Proxy(n,fSe)}class gSe{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new WR,{get:i,set:s}=e(t.track.bind(t),t.trigger.bind(t));this._get=i,this._set=s}get value(){return this._value=this._get()}set value(e){this._set(e)}}function hse(n){return new gSe(n)}function pSe(n){const e=dg(n)?new Array(n.length):{};for(const t in n)e[t]=fse(n,t);return e}class mSe{constructor(e,t,i){this._object=e,this._key=t,this._defaultValue=i,this.__v_isRef=!0,this._value=void 0}get value(){const e=this._object[this._key];return this._value=e===void 0?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){return Zye(zi(this._object),this._key)}}class _Se{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Ps(n,e,t){return Cn(n)?n:Ux(n)?new _Se(n):kw(n)&&arguments.length>1?fse(n,e,t):Ue(n)}function fse(n,e,t){const i=n[e];return Cn(i)?i:new mSe(n,e,t)}class vSe{constructor(e,t,i){this.fn=e,this.setter=t,this._value=void 0,this.dep=new WR(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=jx-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&ys!==this)return Qne(this,!0),!0}get value(){const e=this.dep.track();return tse(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function bSe(n,e,t=!1){let i,s;return Ux(n)?i=n:(i=n.get,s=n.set),new vSe(i,s,t)}const aE={},e2=new WeakMap;let ev;function CSe(n,e=!1,t=ev){if(t){let i=e2.get(t);i||e2.set(t,i=[]),i.push(n)}}function wSe(n,e,t=Oye){const{immediate:i,deep:s,once:o,scheduler:r,augmentJob:a,call:l}=t,c=S=>s?S:Xc(S)||s===!1||s===0?Bf(S,1):Bf(S);let d,u,h,f,g=!1,p=!1;if(Cn(n)?(u=()=>n.value,g=Xc(n)):ug(n)?(u=()=>c(n),g=!0):dg(n)?(p=!0,g=n.some(S=>ug(S)||Xc(S)),u=()=>n.map(S=>{if(Cn(S))return S.value;if(ug(S))return c(S);if(Ux(S))return l?l(S,2):S()})):Ux(n)?e?u=l?()=>l(n,2):n:u=()=>{if(h){a_();try{h()}finally{l_()}}const S=ev;ev=d;try{return l?l(n,3,[f]):n(f)}finally{ev=S}}:u=Fye,e&&s){const S=u,x=s===!0?1/0:s;u=()=>Bf(S(),x)}const _=r_(),b=()=>{d.stop(),_&&Wye(_.effects,d)};if(o&&e){const S=e;e=(...x)=>{S(...x),b()}}let w=p?new Array(n.length).fill(aE):aE;const y=S=>{if(!(!(d.flags&1)||!d.dirty&&!S))if(e){const x=d.run();if(s||g||(p?x.some((k,D)=>am(k,w[D])):am(x,w))){h&&h();const k=ev;ev=d;try{const D=[x,w===aE?void 0:p&&w[0]===aE?[]:w,f];l?l(e,3,D):e(...D),w=x}finally{ev=k}}}else d.run()};return a&&a(y),d=new Yne(u),d.scheduler=r?()=>r(y,!1):y,f=S=>CSe(S,!1,d),h=d.onStop=()=>{const S=e2.get(d);if(S){if(l)l(S,4);else for(const x of S)x();e2.delete(d)}},e?i?y(!0):w=d.run():r?r(y.bind(null,!0),!0):d.run(),b.pause=d.pause.bind(d),b.resume=d.resume.bind(d),b.stop=b,b}function Bf(n,e=1/0,t){if(e<=0||!kw(n)||n.__v_skip||(t=t||new Set,t.has(n)))return n;if(t.add(n),e--,Cn(n))Bf(n.value,e,t);else if(dg(n))for(let i=0;i{Bf(i,e,t)});else if(jye(n)){for(const i in n)Bf(n[i],e,t);for(const i of Object.getOwnPropertySymbols(n))Object.prototype.propertyIsEnumerable.call(n,i)&&Bf(n[i],e,t)}return n}/** * @vue/shared v3.5.12 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **//*! #__NO_SIDE_EFFECTS__ */function ySe(n){const e=Object.create(null);for(const t of n.split(","))e[t]=1;return t=>t in e}const Gn={},F1=[],hg=()=>{},SSe=()=>!1,VR=n=>n.charCodeAt(0)===111&&n.charCodeAt(1)===110&&(n.charCodeAt(2)>122||n.charCodeAt(2)<97),gse=n=>n.startsWith("onUpdate:"),Ra=Object.assign,pse=(n,e)=>{const t=n.indexOf(e);t>-1&&n.splice(t,1)},xSe=Object.prototype.hasOwnProperty,Ss=(n,e)=>xSe.call(n,e),Zi=Array.isArray,LSe=n=>zR(n)==="[object Map]",kSe=n=>zR(n)==="[object Set]",DSe=n=>zR(n)==="[object RegExp]",Fi=n=>typeof n=="function",Yo=n=>typeof n=="string",tV=n=>typeof n=="symbol",Xo=n=>n!==null&&typeof n=="object",iV=n=>(Xo(n)||Fi(n))&&Fi(n.then)&&Fi(n.catch),mse=Object.prototype.toString,zR=n=>mse.call(n),ISe=n=>zR(n)==="[object Object]",B1=ySe(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),$R=n=>{const e=Object.create(null);return t=>e[t]||(e[t]=n(t))},ESe=/-(\w)/g,id=$R(n=>n.replace(ESe,(e,t)=>t?t.toUpperCase():"")),TSe=/\B([A-Z])/g,Dw=$R(n=>n.replace(TSe,"-$1").toLowerCase()),nV=$R(n=>n.charAt(0).toUpperCase()+n.slice(1)),Y4=$R(n=>n?`on${nV(n)}`:""),Ib=(n,e)=>!Object.is(n,e),ZS=(n,...e)=>{for(let t=0;t{Object.defineProperty(n,e,{configurable:!0,enumerable:!1,writable:i,value:t})},ASe=n=>{const e=parseFloat(n);return isNaN(e)?n:e},RSe=n=>{const e=Yo(n)?Number(n):NaN;return isNaN(e)?n:e};let _G;const UR=()=>_G||(_G=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Im(n){if(Zi(n)){const e={};for(let t=0;t{if(t){const i=t.split(PSe);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e}function st(n){let e="";if(Yo(n))e=n;else if(Zi(n))for(let t=0;t!!(n&&n.__v_isRef===!0),Ni=n=>Yo(n)?n:n==null?"":Zi(n)||Xo(n)&&(n.toString===mse||!Fi(n.toString))?_se(n)?Ni(n.value):JSON.stringify(n,vse,2):String(n),vse=(n,e)=>_se(e)?vse(n,e.value):LSe(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((t,[i,s],o)=>(t[X4(i,o)+" =>"]=s,t),{})}:kSe(e)?{[`Set(${e.size})`]:[...e.values()].map(t=>X4(t))}:tV(e)?X4(e):Xo(e)&&!Zi(e)&&!ISe(e)?String(e):e,X4=(n,e="")=>{var t;return tV(n)?`Symbol(${(t=n.description)!=null?t:e})`:n};/** * @vue/runtime-core v3.5.12 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/function Xk(n,e,t,i){try{return i?n(...i):n()}catch(s){Iw(s,e,t)}}function Jd(n,e,t,i){if(Fi(n)){const s=Xk(n,e,t,i);return s&&iV(s)&&s.catch(o=>{Iw(o,e,t)}),s}if(Zi(n)){const s=[];for(let o=0;o>>1,s=La[i],o=qx(s);o=qx(t)?La.push(n):La.splice(WSe(e),0,n),n.flags|=1,Cse()}}function Cse(){t2||(t2=bse.then(wse))}function s8(n){Zi(n)?W1.push(...n):Sp&&n.id===-1?Sp.splice(e1+1,0,n):n.flags&1||(W1.push(n),n.flags|=1),Cse()}function vG(n,e,t=Hu+1){for(;tqx(t)-qx(i));if(W1.length=0,Sp){Sp.push(...e);return}for(Sp=e,e1=0;e1n.id==null?n.flags&2?-1:1/0:n.id;function wse(n){try{for(Hu=0;Hu{i._d&&NG(-1);const o=n2(e);let r;try{r=n(...s)}finally{n2(o),i._d&&NG(1)}return r};return i._n=!0,i._c=!0,i._d=!0,i}function HSe(n,e){if(qo===null)return n;const t=qR(qo),i=n.dirs||(n.dirs=[]);for(let s=0;sn.__isTeleport,YS=n=>n&&(n.disabled||n.disabled===""),VSe=n=>n&&(n.defer||n.defer===""),bG=n=>typeof SVGElement<"u"&&n instanceof SVGElement,CG=n=>typeof MathMLElement=="function"&&n instanceof MathMLElement,o8=(n,e)=>{const t=n&&n.to;return Yo(t)?e?e(t):null:t},zSe={name:"Teleport",__isTeleport:!0,process(n,e,t,i,s,o,r,a,l,c){const{mc:d,pc:u,pbc:h,o:{insert:f,querySelector:g,createText:p,createComment:_}}=c,b=YS(e.props);let{shapeFlag:w,children:y,dynamicChildren:S}=e;if(n==null){const x=e.el=p(""),k=e.anchor=p("");f(x,t,i),f(k,t,i);const D=(N,P)=>{w&16&&(s&&s.isCE&&(s.ce._teleportTarget=N),d(y,N,P,s,o,r,a,l))},I=()=>{const N=e.target=o8(e.props,g),P=kse(N,e,p,f);N&&(r!=="svg"&&bG(N)?r="svg":r!=="mathml"&&CG(N)&&(r="mathml"),b||(D(N,P),tN(e,!1)))};b&&(D(t,k),tN(e,!0)),VSe(e.props)?ar(I,o):I()}else{e.el=n.el,e.targetStart=n.targetStart;const x=e.anchor=n.anchor,k=e.target=n.target,D=e.targetAnchor=n.targetAnchor,I=YS(n.props),N=I?t:k,P=I?x:D;if(r==="svg"||bG(k)?r="svg":(r==="mathml"||CG(k))&&(r="mathml"),S?(h(n.dynamicChildren,S,N,s,o,r,a),dV(n,e,!0)):l||u(n,e,N,P,s,o,r,a,!1),b)I?e.props&&n.props&&e.props.to!==n.props.to&&(e.props.to=n.props.to):lE(e,t,x,c,1);else if((e.props&&e.props.to)!==(n.props&&n.props.to)){const O=e.target=o8(e.props,g);O&&lE(e,O,null,c,0)}else I&&lE(e,k,D,c,1);tN(e,b)}},remove(n,e,t,{um:i,o:{remove:s}},o){const{shapeFlag:r,children:a,anchor:l,targetStart:c,targetAnchor:d,target:u,props:h}=n;if(u&&(s(c),s(d)),o&&s(l),r&16){const f=o||!YS(h);for(let g=0;g{n.isMounted=!0}),Jk(()=>{n.isUnmounting=!0}),n}const Ac=[Function,Array],Dse={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ac,onEnter:Ac,onAfterEnter:Ac,onEnterCancelled:Ac,onBeforeLeave:Ac,onLeave:Ac,onAfterLeave:Ac,onLeaveCancelled:Ac,onBeforeAppear:Ac,onAppear:Ac,onAfterAppear:Ac,onAppearCancelled:Ac},Ise=n=>{const e=n.subTree;return e.component?Ise(e.component):e},jSe={name:"BaseTransition",props:Dse,setup(n,{slots:e}){const t=pc(),i=USe();return()=>{const s=e.default&&Nse(e.default(),!0);if(!s||!s.length)return;const o=Ese(s),r=zi(n),{mode:a}=r;if(i.isLeaving)return Q4(o);const l=wG(o);if(!l)return Q4(o);let c=r8(l,r,i,t,h=>c=h);l.type!==Uo&&bC(l,c);const d=t.subTree,u=d&&wG(d);if(u&&u.type!==Uo&&!Od(l,u)&&Ise(t).type!==Uo){const h=r8(u,r,i,t);if(bC(u,h),a==="out-in"&&l.type!==Uo)return i.isLeaving=!0,h.afterLeave=()=>{i.isLeaving=!1,t.job.flags&8||t.update(),delete h.afterLeave},Q4(o);a==="in-out"&&l.type!==Uo&&(h.delayLeave=(f,g,p)=>{const _=Tse(i,u);_[String(u.key)]=u,f[xp]=()=>{g(),f[xp]=void 0,delete c.delayedLeave},c.delayedLeave=p})}return o}}};function Ese(n){let e=n[0];if(n.length>1){for(const t of n)if(t.type!==Uo){e=t;break}}return e}const KSe=jSe;function Tse(n,e){const{leavingVNodes:t}=n;let i=t.get(e.type);return i||(i=Object.create(null),t.set(e.type,i)),i}function r8(n,e,t,i,s){const{appear:o,mode:r,persisted:a=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:d,onEnterCancelled:u,onBeforeLeave:h,onLeave:f,onAfterLeave:g,onLeaveCancelled:p,onBeforeAppear:_,onAppear:b,onAfterAppear:w,onAppearCancelled:y}=e,S=String(n.key),x=Tse(t,n),k=(N,P)=>{N&&Jd(N,i,9,P)},D=(N,P)=>{const O=P[1];k(N,P),Zi(N)?N.every(M=>M.length<=1)&&O():N.length<=1&&O()},I={mode:r,persisted:a,beforeEnter(N){let P=l;if(!t.isMounted)if(o)P=_||l;else return;N[xp]&&N[xp](!0);const O=x[S];O&&Od(n,O)&&O.el[xp]&&O.el[xp](),k(P,[N])},enter(N){let P=c,O=d,M=u;if(!t.isMounted)if(o)P=b||c,O=w||d,M=y||u;else return;let z=!1;const K=N[cE]=ae=>{z||(z=!0,ae?k(M,[N]):k(O,[N]),I.delayedLeave&&I.delayedLeave(),N[cE]=void 0)};P?D(P,[N,K]):K()},leave(N,P){const O=String(n.key);if(N[cE]&&N[cE](!0),t.isUnmounting)return P();k(h,[N]);let M=!1;const z=N[xp]=K=>{M||(M=!0,P(),K?k(p,[N]):k(g,[N]),N[xp]=void 0,x[O]===n&&delete x[O])};x[O]=n,f?D(f,[N,z]):z()},clone(N){const P=r8(N,e,t,i,s);return s&&s(P),P}};return I}function Q4(n){if(Qk(n))return n=nd(n),n.children=null,n}function wG(n){if(!Qk(n))return xse(n.type)&&n.children?Ese(n.children):n;const{shapeFlag:e,children:t}=n;if(t){if(e&16)return t[0];if(e&32&&Fi(t.default))return t.default()}}function bC(n,e){n.shapeFlag&6&&n.component?(n.transition=e,bC(n.component.subTree,e)):n.shapeFlag&128?(n.ssContent.transition=e.clone(n.ssContent),n.ssFallback.transition=e.clone(n.ssFallback)):n.transition=e}function Nse(n,e=!1,t){let i=[],s=0;for(let o=0;o1)for(let o=0;os2(g,e&&(Zi(e)?e[p]:e),t,i,s));return}if(lm(i)&&!s)return;const o=i.shapeFlag&4?qR(i.component):i.el,r=s?null:o,{i:a,r:l}=n,c=e&&e.r,d=a.refs===Gn?a.refs={}:a.refs,u=a.setupState,h=zi(u),f=u===Gn?()=>!1:g=>Ss(h,g);if(c!=null&&c!==l&&(Yo(c)?(d[c]=null,f(c)&&(u[c]=null)):Cn(c)&&(c.value=null)),Fi(l))Xk(l,a,12,[r,d]);else{const g=Yo(l),p=Cn(l);if(g||p){const _=()=>{if(n.f){const b=g?f(l)?u[l]:d[l]:l.value;s?Zi(b)&&pse(b,o):Zi(b)?b.includes(o)||b.push(o):g?(d[l]=[o],f(l)&&(u[l]=d[l])):(l.value=[o],n.k&&(d[n.k]=l.value))}else g?(d[l]=r,f(l)&&(u[l]=r)):p&&(l.value=r,n.k&&(d[n.k]=r))};r?(_.id=-1,ar(_,t)):_()}}}let yG=!1;const Eb=()=>{yG||(console.error("Hydration completed but contains mismatches."),yG=!0)},qSe=n=>n.namespaceURI.includes("svg")&&n.tagName!=="foreignObject",GSe=n=>n.namespaceURI.includes("MathML"),dE=n=>{if(n.nodeType===1){if(qSe(n))return"svg";if(GSe(n))return"mathml"}},c1=n=>n.nodeType===8;function ZSe(n){const{mt:e,p:t,o:{patchProp:i,createText:s,nextSibling:o,parentNode:r,remove:a,insert:l,createComment:c}}=n,d=(y,S)=>{if(!S.hasChildNodes()){t(null,y,S),i2(),S._vnode=y;return}u(S.firstChild,y,null,null,null),i2(),S._vnode=y},u=(y,S,x,k,D,I=!1)=>{I=I||!!S.dynamicChildren;const N=c1(y)&&y.data==="[",P=()=>p(y,S,x,k,D,N),{type:O,ref:M,shapeFlag:z,patchFlag:K}=S;let ae=y.nodeType;S.el=y,K===-2&&(I=!1,S.dynamicChildren=null);let se=null;switch(O){case Hv:ae!==3?S.children===""?(l(S.el=s(""),r(y),y),se=y):se=P():(y.data!==S.children&&(Eb(),y.data=S.children),se=o(y));break;case Uo:w(y)?(se=o(y),b(S.el=y.content.firstChild,y,x)):ae!==8||N?se=P():se=o(y);break;case V1:if(N&&(y=o(y),ae=y.nodeType),ae===1||ae===3){se=y;const he=!S.children.length;for(let me=0;me{I=I||!!S.dynamicChildren;const{type:N,props:P,patchFlag:O,shapeFlag:M,dirs:z,transition:K}=S,ae=N==="input"||N==="option";if(ae||O!==-1){z&&$u(S,null,x,"created");let se=!1;if(w(y)){se=Jse(null,K)&&x&&x.vnode.props&&x.vnode.props.appear;const me=y.content.firstChild;se&&K.beforeEnter(me),b(me,y,x),S.el=y=me}if(M&16&&!(P&&(P.innerHTML||P.textContent))){let me=f(y.firstChild,S,y,x,k,D,I);for(;me;){uE(y,1)||Eb();const De=me;me=me.nextSibling,a(De)}}else if(M&8){let me=S.children;me[0]===` `&&(y.tagName==="PRE"||y.tagName==="TEXTAREA")&&(me=me.slice(1)),y.textContent!==me&&(uE(y,0)||Eb(),y.textContent=S.children)}if(P){if(ae||!I||O&48){const me=y.tagName.includes("-");for(const De in P)(ae&&(De.endsWith("value")||De==="indeterminate")||VR(De)&&!B1(De)||De[0]==="."||me)&&i(y,De,null,P[De],void 0,x)}else if(P.onClick)i(y,"onClick",null,P.onClick,void 0,x);else if(O&4&&ug(P.style))for(const me in P.style)P.style[me]}let he;(he=P&&P.onVnodeBeforeMount)&&el(he,x,S),z&&$u(S,null,x,"beforeMount"),((he=P&&P.onVnodeMounted)||z||se)&&ooe(()=>{he&&el(he,x,S),se&&K.enter(y),z&&$u(S,null,x,"mounted")},k)}return y.nextSibling},f=(y,S,x,k,D,I,N)=>{N=N||!!S.dynamicChildren;const P=S.children,O=P.length;for(let M=0;M{const{slotScopeIds:N}=S;N&&(D=D?D.concat(N):N);const P=r(y),O=f(o(y),S,P,x,k,D,I);return O&&c1(O)&&O.data==="]"?o(S.anchor=O):(Eb(),l(S.anchor=c("]"),P,O),O)},p=(y,S,x,k,D,I)=>{if(uE(y.parentElement,1)||Eb(),S.el=null,I){const O=_(y);for(;;){const M=o(y);if(M&&M!==O)a(M);else break}}const N=o(y),P=r(y);return a(y),t(null,S,P,N,x,k,dE(P),D),N},_=(y,S="[",x="]")=>{let k=0;for(;y;)if(y=o(y),y&&c1(y)&&(y.data===S&&k++,y.data===x)){if(k===0)return o(y);k--}return y},b=(y,S,x)=>{const k=S.parentNode;k&&k.replaceChild(y,S);let D=x;for(;D;)D.vnode.el===S&&(D.vnode.el=D.subTree.el=y),D=D.parent},w=y=>y.nodeType===1&&y.tagName==="TEMPLATE";return[d,u]}const SG="data-allow-mismatch",YSe={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function uE(n,e){if(e===0||e===1)for(;n&&!n.hasAttribute(SG);)n=n.parentElement;const t=n&&n.getAttribute(SG);if(t==null)return!1;if(t==="")return!0;{const i=t.split(",");return e===0&&i.includes("children")?!0:t.split(",").includes(YSe[e])}}UR().requestIdleCallback;UR().cancelIdleCallback;function XSe(n,e){if(c1(n)&&n.data==="["){let t=1,i=n.nextSibling;for(;i;){if(i.nodeType===1){if(e(i)===!1)break}else if(c1(i))if(i.data==="]"){if(--t===0)break}else i.data==="["&&t++;i=i.nextSibling}}else e(n)}const lm=n=>!!n.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function o2(n){Fi(n)&&(n={loader:n});const{loader:e,loadingComponent:t,errorComponent:i,delay:s=200,hydrate:o,timeout:r,suspensible:a=!0,onError:l}=n;let c=null,d,u=0;const h=()=>(u++,c=null,f()),f=()=>{let g;return c||(g=c=e().catch(p=>{if(p=p instanceof Error?p:new Error(String(p)),l)return new Promise((_,b)=>{l(p,()=>_(h()),()=>b(p),u+1)});throw p}).then(p=>g!==c&&c?c:(p&&(p.__esModule||p[Symbol.toStringTag]==="Module")&&(p=p.default),d=p,p)))};return kt({name:"AsyncComponentWrapper",__asyncLoader:f,__asyncHydrate(g,p,_){const b=o?()=>{const w=o(_,y=>XSe(g,y));w&&(p.bum||(p.bum=[])).push(w)}:_;d?b():f().then(()=>!p.isUnmounted&&b())},get __asyncResolved(){return d},setup(){const g=jo;if(oV(g),d)return()=>J4(d,g);const p=y=>{c=null,Iw(y,g,13,!i)};if(a&&g.suspense||wC)return f().then(y=>()=>J4(y,g)).catch(y=>(p(y),()=>i?te(i,{error:y}):null));const _=Ue(!1),b=Ue(),w=Ue(!!s);return s&&setTimeout(()=>{w.value=!1},s),r!=null&&setTimeout(()=>{if(!_.value&&!b.value){const y=new Error(`Async component timed out after ${r}ms.`);p(y),b.value=y}},r),f().then(()=>{_.value=!0,g.parent&&Qk(g.parent.vnode)&&g.parent.update()}).catch(y=>{p(y),b.value=y}),()=>{if(_.value&&d)return J4(d,g);if(b.value&&i)return te(i,{error:b.value});if(t&&!w.value)return te(t)}}})}function J4(n,e){const{ref:t,props:i,children:s,ce:o}=e.vnode,r=te(n,i,s);return r.ref=t,r.ce=o,delete e.vnode.ce,r}const Qk=n=>n.type.__isKeepAlive,QSe={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(n,{slots:e}){const t=pc(),i=t.ctx;if(!i.renderer)return()=>{const w=e.default&&e.default();return w&&w.length===1?w[0]:w};const s=new Map,o=new Set;let r=null;const a=t.suspense,{renderer:{p:l,m:c,um:d,o:{createElement:u}}}=i,h=u("div");i.activate=(w,y,S,x,k)=>{const D=w.component;c(w,y,S,0,a),l(D.vnode,w,y,S,D,a,x,w.slotScopeIds,k),ar(()=>{D.isDeactivated=!1,D.a&&ZS(D.a);const I=w.props&&w.props.onVnodeMounted;I&&el(I,D.parent,w)},a)},i.deactivate=w=>{const y=w.component;l2(y.m),l2(y.a),c(w,h,null,1,a),ar(()=>{y.da&&ZS(y.da);const S=w.props&&w.props.onVnodeUnmounted;S&&el(S,y.parent,w),y.isDeactivated=!0},a)};function f(w){eF(w),d(w,t,a,!0)}function g(w){s.forEach((y,S)=>{const x=p8(y.type);x&&!w(x)&&p(S)})}function p(w){const y=s.get(w);y&&(!r||!Od(y,r))?f(y):r&&eF(r),s.delete(w),o.delete(w)}Dn(()=>[n.include,n.exclude],([w,y])=>{w&&g(S=>fS(w,S)),y&&g(S=>!fS(y,S))},{flush:"post",deep:!0});let _=null;const b=()=>{_!=null&&(c2(t.subTree.type)?ar(()=>{s.set(_,hE(t.subTree))},t.subTree.suspense):s.set(_,hE(t.subTree)))};return cn(b),Mse(b),Jk(()=>{s.forEach(w=>{const{subTree:y,suspense:S}=t,x=hE(y);if(w.type===x.type&&w.key===x.key){eF(x);const k=x.component.da;k&&ar(k,S);return}f(w)})}),()=>{if(_=null,!e.default)return r=null;const w=e.default(),y=w[0];if(w.length>1)return r=null,w;if(!n0(y)||!(y.shapeFlag&4)&&!(y.shapeFlag&128))return r=null,y;let S=hE(y);if(S.type===Uo)return r=null,S;const x=S.type,k=p8(lm(S)?S.type.__asyncResolved||{}:x),{include:D,exclude:I,max:N}=n;if(D&&(!k||!fS(D,k))||I&&k&&fS(I,k))return S.shapeFlag&=-257,r=S,y;const P=S.key==null?x:S.key,O=s.get(P);return S.el&&(S=nd(S),y.shapeFlag&128&&(y.ssContent=S)),_=P,O?(S.el=O.el,S.component=O.component,S.transition&&bC(S,S.transition),S.shapeFlag|=512,o.delete(P),o.add(P)):(o.add(P),N&&o.size>parseInt(N,10)&&p(o.values().next().value)),S.shapeFlag|=256,r=S,c2(y.type)?y:S}}},JSe=QSe;function fS(n,e){return Zi(n)?n.some(t=>fS(t,e)):Yo(n)?n.split(",").includes(e):DSe(n)?(n.lastIndex=0,n.test(e)):!1}function rV(n,e){Ase(n,"a",e)}function aV(n,e){Ase(n,"da",e)}function Ase(n,e,t=jo){const i=n.__wdc||(n.__wdc=()=>{let s=t;for(;s;){if(s.isDeactivated)return;s=s.parent}return n()});if(jR(e,i,t),t){let s=t.parent;for(;s&&s.parent;)Qk(s.parent.vnode)&&exe(i,e,t,s),s=s.parent}}function exe(n,e,t,i){const s=jR(e,n,i,!0);uo(()=>{pse(i[e],s)},t)}function eF(n){n.shapeFlag&=-257,n.shapeFlag&=-513}function hE(n){return n.shapeFlag&128?n.ssContent:n}function jR(n,e,t=jo,i=!1){if(t){const s=t[n]||(t[n]=[]),o=e.__weh||(e.__weh=(...r)=>{a_();const a=s0(t),l=Jd(e,t,n,r);return a(),l_(),l});return i?s.unshift(o):s.push(o),o}}const Fg=n=>(e,t=jo)=>{(!wC||n==="sp")&&jR(n,(...i)=>e(...i),t)},Rse=Fg("bm"),cn=Fg("m"),txe=Fg("bu"),Mse=Fg("u"),Jk=Fg("bum"),uo=Fg("um"),ixe=Fg("sp"),nxe=Fg("rtg"),sxe=Fg("rtc");function Pse(n,e=jo){jR("ec",n,e)}const Ose="components";function jc(n,e){return Bse(Ose,n,!0,e)||n}const Fse=Symbol.for("v-ndc");function Em(n){return Yo(n)?Bse(Ose,n,!1)||n:n||Fse}function Bse(n,e,t=!0,i=!1){const s=qo||jo;if(s){const o=s.type;{const a=p8(o,!1);if(a&&(a===e||a===id(e)||a===nV(id(e))))return o}const r=xG(s[n]||o[n],e)||xG(s.appContext[n],e);return!r&&i?o:r}}function xG(n,e){return n&&(n[e]||n[id(e)]||n[nV(id(e))])}function Ma(n,e,t,i){let s;const o=t,r=Zi(n);if(r||Yo(n)){const a=r&&ug(n);let l=!1;a&&(l=!Xc(n),n=HR(n)),s=new Array(n.length);for(let c=0,d=n.length;ce(a,l,void 0,o));else{const a=Object.keys(n);s=new Array(a.length);for(let l=0,c=a.length;l{const o=i.fn(...s);return o&&(o.key=i.key),o}:i.fn)}return n}function en(n,e,t={},i,s){if(qo.ce||qo.parent&&lm(qo.parent)&&qo.parent.ce)return e!=="default"&&(t.name=e),fe(),jt(Bi,null,[te("slot",t,i&&i())],64);let o=n[e];o&&o._c&&(o._d=!1),fe();const r=o&&Wse(o(t)),a=t.key||r&&r.key,l=jt(Bi,{key:(a&&!tV(a)?a:`_${e}`)+(!r&&i?"_fb":"")},r||(i?i():[]),r&&n._===1?64:-2);return!s&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),o&&o._c&&(o._d=!0),l}function Wse(n){return n.some(e=>n0(e)?!(e.type===Uo||e.type===Bi&&!Wse(e.children)):!0)?n:null}const a8=n=>n?coe(n)?qR(n):a8(n.parent):null,XS=Ra(Object.create(null),{$:n=>n,$el:n=>n.vnode.el,$data:n=>n.data,$props:n=>n.props,$attrs:n=>n.attrs,$slots:n=>n.slots,$refs:n=>n.refs,$parent:n=>a8(n.parent),$root:n=>a8(n.root),$host:n=>n.ce,$emit:n=>n.emit,$options:n=>Vse(n),$forceUpdate:n=>n.f||(n.f=()=>{sV(n.update)}),$nextTick:n=>n.n||(n.n=Go.bind(n.proxy)),$watch:n=>Txe.bind(n)}),tF=(n,e)=>n!==Gn&&!n.__isScriptSetup&&Ss(n,e),rxe={get({_:n},e){if(e==="__v_skip")return!0;const{ctx:t,setupState:i,data:s,props:o,accessCache:r,type:a,appContext:l}=n;let c;if(e[0]!=="$"){const f=r[e];if(f!==void 0)switch(f){case 1:return i[e];case 2:return s[e];case 4:return t[e];case 3:return o[e]}else{if(tF(i,e))return r[e]=1,i[e];if(s!==Gn&&Ss(s,e))return r[e]=2,s[e];if((c=n.propsOptions[0])&&Ss(c,e))return r[e]=3,o[e];if(t!==Gn&&Ss(t,e))return r[e]=4,t[e];l8&&(r[e]=0)}}const d=XS[e];let u,h;if(d)return e==="$attrs"&&ea(n.attrs,"get",""),d(n);if((u=a.__cssModules)&&(u=u[e]))return u;if(t!==Gn&&Ss(t,e))return r[e]=4,t[e];if(h=l.config.globalProperties,Ss(h,e))return h[e]},set({_:n},e,t){const{data:i,setupState:s,ctx:o}=n;return tF(s,e)?(s[e]=t,!0):i!==Gn&&Ss(i,e)?(i[e]=t,!0):Ss(n.props,e)||e[0]==="$"&&e.slice(1)in n?!1:(o[e]=t,!0)},has({_:{data:n,setupState:e,accessCache:t,ctx:i,appContext:s,propsOptions:o}},r){let a;return!!t[r]||n!==Gn&&Ss(n,r)||tF(e,r)||(a=o[0])&&Ss(a,r)||Ss(i,r)||Ss(XS,r)||Ss(s.config.globalProperties,r)},defineProperty(n,e,t){return t.get!=null?n._.accessCache[e]=0:Ss(t,"value")&&this.set(n,e,t.value,null),Reflect.defineProperty(n,e,t)}};function axe(){return lxe().attrs}function lxe(){const n=pc();return n.setupContext||(n.setupContext=uoe(n))}function r2(n){return Zi(n)?n.reduce((e,t)=>(e[t]=null,e),{}):n}function eD(n,e){return!n||!e?n||e:Zi(n)&&Zi(e)?n.concat(e):Ra({},r2(n),r2(e))}function cxe(n){const e=pc();let t=n();return f8(),iV(t)&&(t=t.catch(i=>{throw s0(e),i})),[t,()=>s0(e)]}let l8=!0;function dxe(n){const e=Vse(n),t=n.proxy,i=n.ctx;l8=!1,e.beforeCreate&&LG(e.beforeCreate,n,"bc");const{data:s,computed:o,methods:r,watch:a,provide:l,inject:c,created:d,beforeMount:u,mounted:h,beforeUpdate:f,updated:g,activated:p,deactivated:_,beforeDestroy:b,beforeUnmount:w,destroyed:y,unmounted:S,render:x,renderTracked:k,renderTriggered:D,errorCaptured:I,serverPrefetch:N,expose:P,inheritAttrs:O,components:M,directives:z,filters:K}=e;if(c&&uxe(c,i,null),r)for(const he in r){const me=r[he];Fi(me)&&(i[he]=me.bind(t))}if(s){const he=s.call(t,t);Xo(he)&&(n.data=Ba(he))}if(l8=!0,o)for(const he in o){const me=o[he],De=Fi(me)?me.bind(t,t):Fi(me.get)?me.get.bind(t,t):hg,lt=!Fi(me)&&Fi(me.set)?me.set.bind(t):hg,We=ue({get:De,set:lt});Object.defineProperty(i,he,{enumerable:!0,configurable:!0,get:()=>We.value,set:Ve=>We.value=Ve})}if(a)for(const he in a)Hse(a[he],i,t,he);if(l){const he=Fi(l)?l.call(t):l;Reflect.ownKeys(he).forEach(me=>{os(me,he[me])})}d&&LG(d,n,"c");function se(he,me){Zi(me)?me.forEach(De=>he(De.bind(t))):me&&he(me.bind(t))}if(se(Rse,u),se(cn,h),se(txe,f),se(Mse,g),se(rV,p),se(aV,_),se(Pse,I),se(sxe,k),se(nxe,D),se(Jk,w),se(uo,S),se(ixe,N),Zi(P))if(P.length){const he=n.exposed||(n.exposed={});P.forEach(me=>{Object.defineProperty(he,me,{get:()=>t[me],set:De=>t[me]=De})})}else n.exposed||(n.exposed={});x&&n.render===hg&&(n.render=x),O!=null&&(n.inheritAttrs=O),M&&(n.components=M),z&&(n.directives=z),N&&oV(n)}function uxe(n,e,t=hg){Zi(n)&&(n=c8(n));for(const i in n){const s=n[i];let o;Xo(s)?"default"in s?o=Ui(s.from||i,s.default,!0):o=Ui(s.from||i):o=Ui(s),Cn(o)?Object.defineProperty(e,i,{enumerable:!0,configurable:!0,get:()=>o.value,set:r=>o.value=r}):e[i]=o}}function LG(n,e,t){Jd(Zi(n)?n.map(i=>i.bind(e.proxy)):n.bind(e.proxy),e,t)}function Hse(n,e,t,i){let s=i.includes(".")?toe(t,i):()=>t[i];if(Yo(n)){const o=e[n];Fi(o)&&Dn(s,o)}else if(Fi(n))Dn(s,n.bind(t));else if(Xo(n))if(Zi(n))n.forEach(o=>Hse(o,e,t,i));else{const o=Fi(n.handler)?n.handler.bind(t):e[n.handler];Fi(o)&&Dn(s,o,n)}}function Vse(n){const e=n.type,{mixins:t,extends:i}=e,{mixins:s,optionsCache:o,config:{optionMergeStrategies:r}}=n.appContext,a=o.get(e);let l;return a?l=a:!s.length&&!t&&!i?l=e:(l={},s.length&&s.forEach(c=>a2(l,c,r,!0)),a2(l,e,r)),Xo(e)&&o.set(e,l),l}function a2(n,e,t,i=!1){const{mixins:s,extends:o}=e;o&&a2(n,o,t,!0),s&&s.forEach(r=>a2(n,r,t,!0));for(const r in e)if(!(i&&r==="expose")){const a=hxe[r]||t&&t[r];n[r]=a?a(n[r],e[r]):e[r]}return n}const hxe={data:kG,props:DG,emits:DG,methods:gS,computed:gS,beforeCreate:Ca,created:Ca,beforeMount:Ca,mounted:Ca,beforeUpdate:Ca,updated:Ca,beforeDestroy:Ca,beforeUnmount:Ca,destroyed:Ca,unmounted:Ca,activated:Ca,deactivated:Ca,errorCaptured:Ca,serverPrefetch:Ca,components:gS,directives:gS,watch:gxe,provide:kG,inject:fxe};function kG(n,e){return e?n?function(){return Ra(Fi(n)?n.call(this,this):n,Fi(e)?e.call(this,this):e)}:e:n}function fxe(n,e){return gS(c8(n),c8(e))}function c8(n){if(Zi(n)){const e={};for(let t=0;t1)return t&&Fi(e)?e.call(i&&i.proxy):e}}function lV(){return!!(jo||qo||Wv)}const $se={},Use=()=>Object.create($se),jse=n=>Object.getPrototypeOf(n)===$se;function _xe(n,e,t,i=!1){const s={},o=Use();n.propsDefaults=Object.create(null),Kse(n,e,s,o);for(const r in n.propsOptions[0])r in s||(s[r]=void 0);t?n.props=i?s:Kf(s):n.type.props?n.props=s:n.props=o,n.attrs=o}function vxe(n,e,t,i){const{props:s,attrs:o,vnode:{patchFlag:r}}=n,a=zi(s),[l]=n.propsOptions;let c=!1;if((i||r>0)&&!(r&16)){if(r&8){const d=n.vnode.dynamicProps;for(let u=0;u{l=!0;const[h,f]=qse(u,e,!0);Ra(r,h),f&&a.push(...f)};!t&&e.mixins.length&&e.mixins.forEach(d),n.extends&&d(n.extends),n.mixins&&n.mixins.forEach(d)}if(!o&&!l)return Xo(n)&&i.set(n,F1),F1;if(Zi(o))for(let d=0;dn[0]==="_"||n==="$stable",cV=n=>Zi(n)?n.map($l):[$l(n)],Cxe=(n,e,t)=>{if(e._n)return e;const i=Be((...s)=>cV(e(...s)),t);return i._c=!1,i},Zse=(n,e,t)=>{const i=n._ctx;for(const s in n){if(Gse(s))continue;const o=n[s];if(Fi(o))e[s]=Cxe(s,o,i);else if(o!=null){const r=cV(o);e[s]=()=>r}}},Yse=(n,e)=>{const t=cV(e);n.slots.default=()=>t},Xse=(n,e,t)=>{for(const i in e)(t||i!=="_")&&(n[i]=e[i])},wxe=(n,e,t)=>{const i=n.slots=Use();if(n.vnode.shapeFlag&32){const s=e._;s?(Xse(i,e,t),t&&NSe(i,"_",s,!0)):Zse(e,i)}else e&&Yse(n,e)},yxe=(n,e,t)=>{const{vnode:i,slots:s}=n;let o=!0,r=Gn;if(i.shapeFlag&32){const a=e._;a?t&&a===1?o=!1:Xse(s,e,t):(o=!e.$stable,Zse(e,s)),r=e}else e&&(Yse(n,e),r={default:1});if(o)for(const a in s)!Gse(a)&&r[a]==null&&delete s[a]},ar=ooe;function Sxe(n){return Qse(n)}function xxe(n){return Qse(n,ZSe)}function Qse(n,e){const t=UR();t.__VUE__=!0;const{insert:i,remove:s,patchProp:o,createElement:r,createText:a,createComment:l,setText:c,setElementText:d,parentNode:u,nextSibling:h,setScopeId:f=hg,insertStaticContent:g}=n,p=(J,ie,ye,ze=null,Oe=null,et=null,vt=void 0,re=null,Q=!!ie.dynamicChildren)=>{if(J===ie)return;J&&!Od(J,ie)&&(ze=Se(J),Ve(J,Oe,et,!0),J=null),ie.patchFlag===-2&&(Q=!1,ie.dynamicChildren=null);const{type:Z,ref:B,shapeFlag:H}=ie;switch(Z){case Hv:_(J,ie,ye,ze);break;case Uo:b(J,ie,ye,ze);break;case V1:J==null&&w(ie,ye,ze,vt);break;case Bi:M(J,ie,ye,ze,Oe,et,vt,re,Q);break;default:H&1?x(J,ie,ye,ze,Oe,et,vt,re,Q):H&6?z(J,ie,ye,ze,Oe,et,vt,re,Q):(H&64||H&128)&&Z.process(J,ie,ye,ze,Oe,et,vt,re,Q,mt)}B!=null&&Oe&&s2(B,J&&J.ref,et,ie||J,!ie)},_=(J,ie,ye,ze)=>{if(J==null)i(ie.el=a(ie.children),ye,ze);else{const Oe=ie.el=J.el;ie.children!==J.children&&c(Oe,ie.children)}},b=(J,ie,ye,ze)=>{J==null?i(ie.el=l(ie.children||""),ye,ze):ie.el=J.el},w=(J,ie,ye,ze)=>{[J.el,J.anchor]=g(J.children,ie,ye,ze,J.el,J.anchor)},y=({el:J,anchor:ie},ye,ze)=>{let Oe;for(;J&&J!==ie;)Oe=h(J),i(J,ye,ze),J=Oe;i(ie,ye,ze)},S=({el:J,anchor:ie})=>{let ye;for(;J&&J!==ie;)ye=h(J),s(J),J=ye;s(ie)},x=(J,ie,ye,ze,Oe,et,vt,re,Q)=>{ie.type==="svg"?vt="svg":ie.type==="math"&&(vt="mathml"),J==null?k(ie,ye,ze,Oe,et,vt,re,Q):N(J,ie,Oe,et,vt,re,Q)},k=(J,ie,ye,ze,Oe,et,vt,re)=>{let Q,Z;const{props:B,shapeFlag:H,transition:Y,dirs:G}=J;if(Q=J.el=r(J.type,et,B&&B.is,B),H&8?d(Q,J.children):H&16&&I(J.children,Q,null,ze,Oe,iF(J,et),vt,re),G&&$u(J,null,ze,"created"),D(Q,J,J.scopeId,vt,ze),B){for(const Ie in B)Ie!=="value"&&!B1(Ie)&&o(Q,Ie,null,B[Ie],et,ze);"value"in B&&o(Q,"value",null,B.value,et),(Z=B.onVnodeBeforeMount)&&el(Z,ze,J)}G&&$u(J,null,ze,"beforeMount");const ge=Jse(Oe,Y);ge&&Y.beforeEnter(Q),i(Q,ie,ye),((Z=B&&B.onVnodeMounted)||ge||G)&&ar(()=>{Z&&el(Z,ze,J),ge&&Y.enter(Q),G&&$u(J,null,ze,"mounted")},Oe)},D=(J,ie,ye,ze,Oe)=>{if(ye&&f(J,ye),ze)for(let et=0;et{for(let Z=Q;Z{const re=ie.el=J.el;let{patchFlag:Q,dynamicChildren:Z,dirs:B}=ie;Q|=J.patchFlag&16;const H=J.props||Gn,Y=ie.props||Gn;let G;if(ye&&O_(ye,!1),(G=Y.onVnodeBeforeUpdate)&&el(G,ye,ie,J),B&&$u(ie,J,ye,"beforeUpdate"),ye&&O_(ye,!0),(H.innerHTML&&Y.innerHTML==null||H.textContent&&Y.textContent==null)&&d(re,""),Z?P(J.dynamicChildren,Z,re,ye,ze,iF(ie,Oe),et):vt||me(J,ie,re,null,ye,ze,iF(ie,Oe),et,!1),Q>0){if(Q&16)O(re,H,Y,ye,Oe);else if(Q&2&&H.class!==Y.class&&o(re,"class",null,Y.class,Oe),Q&4&&o(re,"style",H.style,Y.style,Oe),Q&8){const ge=ie.dynamicProps;for(let Ie=0;Ie{G&&el(G,ye,ie,J),B&&$u(ie,J,ye,"updated")},ze)},P=(J,ie,ye,ze,Oe,et,vt)=>{for(let re=0;re{if(ie!==ye){if(ie!==Gn)for(const et in ie)!B1(et)&&!(et in ye)&&o(J,et,ie[et],null,Oe,ze);for(const et in ye){if(B1(et))continue;const vt=ye[et],re=ie[et];vt!==re&&et!=="value"&&o(J,et,re,vt,Oe,ze)}"value"in ye&&o(J,"value",ie.value,ye.value,Oe)}},M=(J,ie,ye,ze,Oe,et,vt,re,Q)=>{const Z=ie.el=J?J.el:a(""),B=ie.anchor=J?J.anchor:a("");let{patchFlag:H,dynamicChildren:Y,slotScopeIds:G}=ie;G&&(re=re?re.concat(G):G),J==null?(i(Z,ye,ze),i(B,ye,ze),I(ie.children||[],ye,B,Oe,et,vt,re,Q)):H>0&&H&64&&Y&&J.dynamicChildren?(P(J.dynamicChildren,Y,ye,Oe,et,vt,re),(ie.key!=null||Oe&&ie===Oe.subTree)&&dV(J,ie,!0)):me(J,ie,ye,B,Oe,et,vt,re,Q)},z=(J,ie,ye,ze,Oe,et,vt,re,Q)=>{ie.slotScopeIds=re,J==null?ie.shapeFlag&512?Oe.ctx.activate(ie,ye,ze,vt,Q):K(ie,ye,ze,Oe,et,vt,Q):ae(J,ie,Q)},K=(J,ie,ye,ze,Oe,et,vt)=>{const re=J.component=jxe(J,ze,Oe);if(Qk(J)&&(re.ctx.renderer=mt),Kxe(re,!1,vt),re.asyncDep){if(Oe&&Oe.registerDep(re,se,vt),!J.el){const Q=re.subTree=te(Uo);b(null,Q,ie,ye)}}else se(re,J,ie,ye,Oe,et,vt)},ae=(J,ie,ye)=>{const ze=ie.component=J.component;if(Pxe(J,ie,ye))if(ze.asyncDep&&!ze.asyncResolved){he(ze,ie,ye);return}else ze.next=ie,ze.update();else ie.el=J.el,ze.vnode=ie},se=(J,ie,ye,ze,Oe,et,vt)=>{const re=()=>{if(J.isMounted){let{next:H,bu:Y,u:G,parent:ge,vnode:Ie}=J;{const si=eoe(J);if(si){H&&(H.el=Ie.el,he(J,H,vt)),si.asyncDep.then(()=>{J.isUnmounted||re()});return}}let qe=H,ot;O_(J,!1),H?(H.el=Ie.el,he(J,H,vt)):H=Ie,Y&&ZS(Y),(ot=H.props&&H.props.onVnodeBeforeUpdate)&&el(ot,ge,H,Ie),O_(J,!0);const bt=nF(J),xt=J.subTree;J.subTree=bt,p(xt,bt,u(xt.el),Se(xt),J,Oe,et),H.el=bt.el,qe===null&&uV(J,bt.el),G&&ar(G,Oe),(ot=H.props&&H.props.onVnodeUpdated)&&ar(()=>el(ot,ge,H,Ie),Oe)}else{let H;const{el:Y,props:G}=ie,{bm:ge,m:Ie,parent:qe,root:ot,type:bt}=J,xt=lm(ie);if(O_(J,!1),ge&&ZS(ge),!xt&&(H=G&&G.onVnodeBeforeMount)&&el(H,qe,ie),O_(J,!0),Y&&Ii){const si=()=>{J.subTree=nF(J),Ii(Y,J.subTree,J,Oe,null)};xt&&bt.__asyncHydrate?bt.__asyncHydrate(Y,J,si):si()}else{ot.ce&&ot.ce._injectChildStyle(bt);const si=J.subTree=nF(J);p(null,si,ye,ze,J,Oe,et),ie.el=si.el}if(Ie&&ar(Ie,Oe),!xt&&(H=G&&G.onVnodeMounted)){const si=ie;ar(()=>el(H,qe,si),Oe)}(ie.shapeFlag&256||qe&&lm(qe.vnode)&&qe.vnode.shapeFlag&256)&&J.a&&ar(J.a,Oe),J.isMounted=!0,ie=ye=ze=null}};J.scope.on();const Q=J.effect=new Yne(re);J.scope.off();const Z=J.update=Q.run.bind(Q),B=J.job=Q.runIfDirty.bind(Q);B.i=J,B.id=J.uid,Q.scheduler=()=>sV(B),O_(J,!0),Z()},he=(J,ie,ye)=>{ie.component=J;const ze=J.vnode.props;J.vnode=ie,J.next=null,vxe(J,ie.props,ze,ye),yxe(J,ie.children,ye),a_(),vG(J),l_()},me=(J,ie,ye,ze,Oe,et,vt,re,Q=!1)=>{const Z=J&&J.children,B=J?J.shapeFlag:0,H=ie.children,{patchFlag:Y,shapeFlag:G}=ie;if(Y>0){if(Y&128){lt(Z,H,ye,ze,Oe,et,vt,re,Q);return}else if(Y&256){De(Z,H,ye,ze,Oe,et,vt,re,Q);return}}G&8?(B&16&&ni(Z,Oe,et),H!==Z&&d(ye,H)):B&16?G&16?lt(Z,H,ye,ze,Oe,et,vt,re,Q):ni(Z,Oe,et,!0):(B&8&&d(ye,""),G&16&&I(H,ye,ze,Oe,et,vt,re,Q))},De=(J,ie,ye,ze,Oe,et,vt,re,Q)=>{J=J||F1,ie=ie||F1;const Z=J.length,B=ie.length,H=Math.min(Z,B);let Y;for(Y=0;YB?ni(J,Oe,et,!0,!1,H):I(ie,ye,ze,Oe,et,vt,re,Q,H)},lt=(J,ie,ye,ze,Oe,et,vt,re,Q)=>{let Z=0;const B=ie.length;let H=J.length-1,Y=B-1;for(;Z<=H&&Z<=Y;){const G=J[Z],ge=ie[Z]=Q?Lp(ie[Z]):$l(ie[Z]);if(Od(G,ge))p(G,ge,ye,null,Oe,et,vt,re,Q);else break;Z++}for(;Z<=H&&Z<=Y;){const G=J[H],ge=ie[Y]=Q?Lp(ie[Y]):$l(ie[Y]);if(Od(G,ge))p(G,ge,ye,null,Oe,et,vt,re,Q);else break;H--,Y--}if(Z>H){if(Z<=Y){const G=Y+1,ge=GY)for(;Z<=H;)Ve(J[Z],Oe,et,!0),Z++;else{const G=Z,ge=Z,Ie=new Map;for(Z=ge;Z<=Y;Z++){const Si=ie[Z]=Q?Lp(ie[Z]):$l(ie[Z]);Si.key!=null&&Ie.set(Si.key,Z)}let qe,ot=0;const bt=Y-ge+1;let xt=!1,si=0;const Ci=new Array(bt);for(Z=0;Z=bt){Ve(Si,Oe,et,!0);continue}let Ai;if(Si.key!=null)Ai=Ie.get(Si.key);else for(qe=ge;qe<=Y;qe++)if(Ci[qe-ge]===0&&Od(Si,ie[qe])){Ai=qe;break}Ai===void 0?Ve(Si,Oe,et,!0):(Ci[Ai-ge]=Z+1,Ai>=si?si=Ai:xt=!0,p(Si,ie[Ai],ye,null,Oe,et,vt,re,Q),ot++)}const Dt=xt?Lxe(Ci):F1;for(qe=Dt.length-1,Z=bt-1;Z>=0;Z--){const Si=ge+Z,Ai=ie[Si],mr=Si+1{const{el:et,type:vt,transition:re,children:Q,shapeFlag:Z}=J;if(Z&6){We(J.component.subTree,ie,ye,ze);return}if(Z&128){J.suspense.move(ie,ye,ze);return}if(Z&64){vt.move(J,ie,ye,mt);return}if(vt===Bi){i(et,ie,ye);for(let H=0;Hre.enter(et),Oe);else{const{leave:H,delayLeave:Y,afterLeave:G}=re,ge=()=>i(et,ie,ye),Ie=()=>{H(et,()=>{ge(),G&&G()})};Y?Y(et,ge,Ie):Ie()}else i(et,ie,ye)},Ve=(J,ie,ye,ze=!1,Oe=!1)=>{const{type:et,props:vt,ref:re,children:Q,dynamicChildren:Z,shapeFlag:B,patchFlag:H,dirs:Y,cacheIndex:G}=J;if(H===-2&&(Oe=!1),re!=null&&s2(re,null,ye,J,!0),G!=null&&(ie.renderCache[G]=void 0),B&256){ie.ctx.deactivate(J);return}const ge=B&1&&Y,Ie=!lm(J);let qe;if(Ie&&(qe=vt&&vt.onVnodeBeforeUnmount)&&el(qe,ie,J),B&6)Oi(J.component,ye,ze);else{if(B&128){J.suspense.unmount(ye,ze);return}ge&&$u(J,null,ie,"beforeUnmount"),B&64?J.type.remove(J,ie,ye,mt,ze):Z&&!Z.hasOnce&&(et!==Bi||H>0&&H&64)?ni(Z,ie,ye,!1,!0):(et===Bi&&H&384||!Oe&&B&16)&&ni(Q,ie,ye),ze&&Me(J)}(Ie&&(qe=vt&&vt.onVnodeUnmounted)||ge)&&ar(()=>{qe&&el(qe,ie,J),ge&&$u(J,null,ie,"unmounted")},ye)},Me=J=>{const{type:ie,el:ye,anchor:ze,transition:Oe}=J;if(ie===Bi){Zt(ye,ze);return}if(ie===V1){S(J);return}const et=()=>{s(ye),Oe&&!Oe.persisted&&Oe.afterLeave&&Oe.afterLeave()};if(J.shapeFlag&1&&Oe&&!Oe.persisted){const{leave:vt,delayLeave:re}=Oe,Q=()=>vt(ye,et);re?re(J.el,et,Q):Q()}else et()},Zt=(J,ie)=>{let ye;for(;J!==ie;)ye=h(J),s(J),J=ye;s(ie)},Oi=(J,ie,ye)=>{const{bum:ze,scope:Oe,job:et,subTree:vt,um:re,m:Q,a:Z}=J;l2(Q),l2(Z),ze&&ZS(ze),Oe.stop(),et&&(et.flags|=8,Ve(vt,J,ie,ye)),re&&ar(re,ie),ar(()=>{J.isUnmounted=!0},ie),ie&&ie.pendingBranch&&!ie.isUnmounted&&J.asyncDep&&!J.asyncResolved&&J.suspenseId===ie.pendingId&&(ie.deps--,ie.deps===0&&ie.resolve())},ni=(J,ie,ye,ze=!1,Oe=!1,et=0)=>{for(let vt=et;vt{if(J.shapeFlag&6)return Se(J.component.subTree);if(J.shapeFlag&128)return J.suspense.next();const ie=h(J.anchor||J.el),ye=ie&&ie[Sse];return ye?h(ye):ie};let Qe=!1;const nt=(J,ie,ye)=>{J==null?ie._vnode&&Ve(ie._vnode,null,null,!0):p(ie._vnode||null,J,ie,null,null,null,ye),ie._vnode=J,Qe||(Qe=!0,vG(),i2(),Qe=!1)},mt={p,um:Ve,m:We,r:Me,mt:K,mc:I,pc:me,pbc:P,n:Se,o:n};let Je,Ii;return e&&([Je,Ii]=e(mt)),{render:nt,hydrate:Je,createApp:mxe(nt,Je)}}function iF({type:n,props:e},t){return t==="svg"&&n==="foreignObject"||t==="mathml"&&n==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:t}function O_({effect:n,job:e},t){t?(n.flags|=32,e.flags|=4):(n.flags&=-33,e.flags&=-5)}function Jse(n,e){return(!n||n&&!n.pendingBranch)&&e&&!e.persisted}function dV(n,e,t=!1){const i=n.children,s=e.children;if(Zi(i)&&Zi(s))for(let o=0;o>1,n[t[a]]0&&(e[i]=t[o-1]),t[o]=i)}}for(o=t.length,r=t[o-1];o-- >0;)t[o]=r,r=e[r];return t}function eoe(n){const e=n.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:eoe(e)}function l2(n){if(n)for(let e=0;eUi(kxe);function Qo(n,e){return tD(n,null,e)}function Ixe(n,e){return tD(n,null,{flush:"post"})}function Exe(n,e){return tD(n,null,{flush:"sync"})}function Dn(n,e,t){return tD(n,e,t)}function tD(n,e,t=Gn){const{immediate:i,deep:s,flush:o,once:r}=t,a=Ra({},t),l=e&&i||!e&&o!=="post";let c;if(wC){if(o==="sync"){const f=Dxe();c=f.__watcherHandles||(f.__watcherHandles=[])}else if(!l){const f=()=>{};return f.stop=hg,f.resume=hg,f.pause=hg,f}}const d=jo;a.call=(f,g,p)=>Jd(f,d,g,p);let u=!1;o==="post"?a.scheduler=f=>{ar(f,d&&d.suspense)}:o!=="sync"&&(u=!0,a.scheduler=(f,g)=>{g?f():sV(f)}),a.augmentJob=f=>{e&&(f.flags|=4),u&&(f.flags|=2,d&&(f.id=d.uid,f.i=d))};const h=wSe(n,e,a);return wC&&(c?c.push(h):l&&h()),h}function Txe(n,e,t){const i=this.proxy,s=Yo(n)?n.includes(".")?toe(i,n):()=>i[n]:n.bind(i,i);let o;Fi(e)?o=e:(o=e.handler,t=e);const r=s0(this),a=tD(s,o.bind(i),t);return r(),a}function toe(n,e){const t=e.split(".");return()=>{let i=n;for(let s=0;s{let d,u=Gn,h;return Exe(()=>{const f=n[s];Ib(d,f)&&(d=f,c())}),{get(){return l(),t.get?t.get(d):d},set(f){const g=t.set?t.set(f):f;if(!Ib(g,d)&&!(u!==Gn&&Ib(f,u)))return;const p=i.vnode.props;p&&(e in p||s in p||o in p)&&(`onUpdate:${e}`in p||`onUpdate:${s}`in p||`onUpdate:${o}`in p)||(d=f,c()),i.emit(`update:${e}`,g),Ib(f,g)&&Ib(f,u)&&!Ib(g,h)&&c(),u=f,h=g}}});return a[Symbol.iterator]=()=>{let l=0;return{next(){return l<2?{value:l++?r||Gn:a,done:!1}:{done:!0}}}},a}const ioe=(n,e)=>e==="modelValue"||e==="model-value"?n.modelModifiers:n[`${e}Modifiers`]||n[`${id(e)}Modifiers`]||n[`${Dw(e)}Modifiers`];function Nxe(n,e,...t){if(n.isUnmounted)return;const i=n.vnode.props||Gn;let s=t;const o=e.startsWith("update:"),r=o&&ioe(i,e.slice(7));r&&(r.trim&&(s=t.map(d=>Yo(d)?d.trim():d)),r.number&&(s=t.map(ASe)));let a,l=i[a=Y4(e)]||i[a=Y4(id(e))];!l&&o&&(l=i[a=Y4(Dw(e))]),l&&Jd(l,n,6,s);const c=i[a+"Once"];if(c){if(!n.emitted)n.emitted={};else if(n.emitted[a])return;n.emitted[a]=!0,Jd(c,n,6,s)}}function noe(n,e,t=!1){const i=e.emitsCache,s=i.get(n);if(s!==void 0)return s;const o=n.emits;let r={},a=!1;if(!Fi(n)){const l=c=>{const d=noe(c,e,!0);d&&(a=!0,Ra(r,d))};!t&&e.mixins.length&&e.mixins.forEach(l),n.extends&&l(n.extends),n.mixins&&n.mixins.forEach(l)}return!o&&!a?(Xo(n)&&i.set(n,null),null):(Zi(o)?o.forEach(l=>r[l]=null):Ra(r,o),Xo(n)&&i.set(n,r),r)}function KR(n,e){return!n||!VR(e)?!1:(e=e.slice(2).replace(/Once$/,""),Ss(n,e[0].toLowerCase()+e.slice(1))||Ss(n,Dw(e))||Ss(n,e))}function nF(n){const{type:e,vnode:t,proxy:i,withProxy:s,propsOptions:[o],slots:r,attrs:a,emit:l,render:c,renderCache:d,props:u,data:h,setupState:f,ctx:g,inheritAttrs:p}=n,_=n2(n);let b,w;try{if(t.shapeFlag&4){const S=s||i,x=S;b=$l(c.call(x,S,d,u,f,h,g)),w=a}else{const S=e;b=$l(S.length>1?S(u,{attrs:a,slots:r,emit:l}):S(u,null)),w=e.props?a:Rxe(a)}}catch(S){QS.length=0,Iw(S,n,1),b=te(Uo)}let y=b;if(w&&p!==!1){const S=Object.keys(w),{shapeFlag:x}=y;S.length&&x&7&&(o&&S.some(gse)&&(w=Mxe(w,o)),y=nd(y,w,!1,!0))}return t.dirs&&(y=nd(y,null,!1,!0),y.dirs=y.dirs?y.dirs.concat(t.dirs):t.dirs),t.transition&&bC(y,t.transition),b=y,n2(_),b}function Axe(n,e=!0){let t;for(let i=0;i{let e;for(const t in n)(t==="class"||t==="style"||VR(t))&&((e||(e={}))[t]=n[t]);return e},Mxe=(n,e)=>{const t={};for(const i in n)(!gse(i)||!(i.slice(9)in e))&&(t[i]=n[i]);return t};function Pxe(n,e,t){const{props:i,children:s,component:o}=n,{props:r,children:a,patchFlag:l}=e,c=o.emitsOptions;if(e.dirs||e.transition)return!0;if(t&&l>=0){if(l&1024)return!0;if(l&16)return i?EG(i,r,c):!!r;if(l&8){const d=e.dynamicProps;for(let u=0;un.__isSuspense;let u8=0;const Oxe={name:"Suspense",__isSuspense:!0,process(n,e,t,i,s,o,r,a,l,c){if(n==null)Fxe(e,t,i,s,o,r,a,l,c);else{if(o&&o.deps>0&&!n.suspense.isInFallback){e.suspense=n.suspense,e.suspense.vnode=e,e.el=n.el;return}Bxe(n,e,t,i,s,r,a,l,c)}},hydrate:Wxe,normalize:Hxe},hV=Oxe;function Gx(n,e){const t=n.props&&n.props[e];Fi(t)&&t()}function Fxe(n,e,t,i,s,o,r,a,l){const{p:c,o:{createElement:d}}=l,u=d("div"),h=n.suspense=soe(n,s,i,e,u,t,o,r,a,l);c(null,h.pendingBranch=n.ssContent,u,null,i,h,o,r),h.deps>0?(Gx(n,"onPending"),Gx(n,"onFallback"),c(null,n.ssFallback,e,t,i,null,o,r),H1(h,n.ssFallback)):h.resolve(!1,!0)}function Bxe(n,e,t,i,s,o,r,a,{p:l,um:c,o:{createElement:d}}){const u=e.suspense=n.suspense;u.vnode=e,e.el=n.el;const h=e.ssContent,f=e.ssFallback,{activeBranch:g,pendingBranch:p,isInFallback:_,isHydrating:b}=u;if(p)u.pendingBranch=h,Od(h,p)?(l(p,h,u.hiddenContainer,null,s,u,o,r,a),u.deps<=0?u.resolve():_&&(b||(l(g,f,t,i,s,null,o,r,a),H1(u,f)))):(u.pendingId=u8++,b?(u.isHydrating=!1,u.activeBranch=p):c(p,s,u),u.deps=0,u.effects.length=0,u.hiddenContainer=d("div"),_?(l(null,h,u.hiddenContainer,null,s,u,o,r,a),u.deps<=0?u.resolve():(l(g,f,t,i,s,null,o,r,a),H1(u,f))):g&&Od(h,g)?(l(g,h,t,i,s,u,o,r,a),u.resolve(!0)):(l(null,h,u.hiddenContainer,null,s,u,o,r,a),u.deps<=0&&u.resolve()));else if(g&&Od(h,g))l(g,h,t,i,s,u,o,r,a),H1(u,h);else if(Gx(e,"onPending"),u.pendingBranch=h,h.shapeFlag&512?u.pendingId=h.component.suspenseId:u.pendingId=u8++,l(null,h,u.hiddenContainer,null,s,u,o,r,a),u.deps<=0)u.resolve();else{const{timeout:w,pendingId:y}=u;w>0?setTimeout(()=>{u.pendingId===y&&u.fallback(f)},w):w===0&&u.fallback(f)}}function soe(n,e,t,i,s,o,r,a,l,c,d=!1){const{p:u,m:h,um:f,n:g,o:{parentNode:p,remove:_}}=c;let b;const w=Vxe(n);w&&e&&e.pendingBranch&&(b=e.pendingId,e.deps++);const y=n.props?RSe(n.props.timeout):void 0,S=o,x={vnode:n,parent:e,parentComponent:t,namespace:r,container:i,hiddenContainer:s,deps:0,pendingId:u8++,timeout:typeof y=="number"?y:-1,activeBranch:null,pendingBranch:null,isInFallback:!d,isHydrating:d,isUnmounted:!1,effects:[],resolve(k=!1,D=!1){const{vnode:I,activeBranch:N,pendingBranch:P,pendingId:O,effects:M,parentComponent:z,container:K}=x;let ae=!1;x.isHydrating?x.isHydrating=!1:k||(ae=N&&P.transition&&P.transition.mode==="out-in",ae&&(N.transition.afterLeave=()=>{O===x.pendingId&&(h(P,K,o===S?g(N):o,0),s8(M))}),N&&(p(N.el)===K&&(o=g(N)),f(N,z,x,!0)),ae||h(P,K,o,0)),H1(x,P),x.pendingBranch=null,x.isInFallback=!1;let se=x.parent,he=!1;for(;se;){if(se.pendingBranch){se.effects.push(...M),he=!0;break}se=se.parent}!he&&!ae&&s8(M),x.effects=[],w&&e&&e.pendingBranch&&b===e.pendingId&&(e.deps--,e.deps===0&&!D&&e.resolve()),Gx(I,"onResolve")},fallback(k){if(!x.pendingBranch)return;const{vnode:D,activeBranch:I,parentComponent:N,container:P,namespace:O}=x;Gx(D,"onFallback");const M=g(I),z=()=>{x.isInFallback&&(u(null,k,P,M,N,null,O,a,l),H1(x,k))},K=k.transition&&k.transition.mode==="out-in";K&&(I.transition.afterLeave=z),x.isInFallback=!0,f(I,N,null,!0),K||z()},move(k,D,I){x.activeBranch&&h(x.activeBranch,k,D,I),x.container=k},next(){return x.activeBranch&&g(x.activeBranch)},registerDep(k,D,I){const N=!!x.pendingBranch;N&&x.deps++;const P=k.vnode.el;k.asyncDep.catch(O=>{Iw(O,k,0)}).then(O=>{if(k.isUnmounted||x.isUnmounted||x.pendingId!==k.suspenseId)return;k.asyncResolved=!0;const{vnode:M}=k;g8(k,O),P&&(M.el=P);const z=!P&&k.subTree.el;D(k,M,p(P||k.subTree.el),P?null:g(k.subTree),x,r,I),z&&_(z),uV(k,M.el),N&&--x.deps===0&&x.resolve()})},unmount(k,D){x.isUnmounted=!0,x.activeBranch&&f(x.activeBranch,t,k,D),x.pendingBranch&&f(x.pendingBranch,t,k,D)}};return x}function Wxe(n,e,t,i,s,o,r,a,l){const c=e.suspense=soe(e,i,t,n.parentNode,document.createElement("div"),null,s,o,r,a,!0),d=l(n,c.pendingBranch=e.ssContent,t,c,o,r);return c.deps===0&&c.resolve(!1,!0),d}function Hxe(n){const{shapeFlag:e,children:t}=n,i=e&32;n.ssContent=TG(i?t.default:t),n.ssFallback=i?TG(t.fallback):te(Uo)}function TG(n){let e;if(Fi(n)){const t=CC&&n._c;t&&(n._d=!1,fe()),n=n(),t&&(n._d=!0,e=fl,roe())}return Zi(n)&&(n=Axe(n)),n=$l(n),e&&!n.dynamicChildren&&(n.dynamicChildren=e.filter(t=>t!==n)),n}function ooe(n,e){e&&e.pendingBranch?Zi(n)?e.effects.push(...n):e.effects.push(n):s8(n)}function H1(n,e){n.activeBranch=e;const{vnode:t,parentComponent:i}=n;let s=e.el;for(;!s&&e.component;)e=e.component.subTree,s=e.el;t.el=s,i&&i.subTree===t&&(i.vnode.el=s,uV(i,s))}function Vxe(n){const e=n.props&&n.props.suspensible;return e!=null&&e!==!1}const Bi=Symbol.for("v-fgt"),Hv=Symbol.for("v-txt"),Uo=Symbol.for("v-cmt"),V1=Symbol.for("v-stc"),QS=[];let fl=null;function fe(n=!1){QS.push(fl=n?null:[])}function roe(){QS.pop(),fl=QS[QS.length-1]||null}let CC=1;function NG(n){CC+=n,n<0&&fl&&(fl.hasOnce=!0)}function aoe(n){return n.dynamicChildren=CC>0?fl||F1:null,roe(),CC>0&&fl&&fl.push(n),n}function Re(n,e,t,i,s,o){return aoe(q(n,e,t,i,s,o,!0))}function jt(n,e,t,i,s){return aoe(te(n,e,t,i,s,!0))}function n0(n){return n?n.__v_isVNode===!0:!1}function Od(n,e){return n.type===e.type&&n.key===e.key}const loe=({key:n})=>n??null,iN=({ref:n,ref_key:e,ref_for:t})=>(typeof n=="number"&&(n=""+n),n!=null?Yo(n)||Cn(n)||Fi(n)?{i:qo,r:n,k:e,f:!!t}:n:null);function q(n,e=null,t=null,i=0,s=null,o=n===Bi?0:1,r=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:n,props:e,key:e&&loe(e),ref:e&&iN(e),scopeId:yse,slotScopeIds:null,children:t,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:i,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:qo};return a?(fV(l,t),o&128&&n.normalize(l)):t&&(l.shapeFlag|=Yo(t)?8:16),CC>0&&!r&&fl&&(l.patchFlag>0||o&6)&&l.patchFlag!==32&&fl.push(l),l}const te=zxe;function zxe(n,e=null,t=null,i=0,s=null,o=!1){if((!n||n===Fse)&&(n=Uo),n0(n)){const a=nd(n,e,!0);return t&&fV(a,t),CC>0&&!o&&fl&&(a.shapeFlag&6?fl[fl.indexOf(n)]=a:fl.push(a)),a.patchFlag=-2,a}if(Zxe(n)&&(n=n.__vccOpts),e){e=Zx(e);let{class:a,style:l}=e;a&&!Yo(a)&&(e.class=st(a)),Xo(l)&&(JH(l)&&!Zi(l)&&(l=Ra({},l)),e.style=Im(l))}const r=Yo(n)?1:c2(n)?128:xse(n)?64:Xo(n)?4:Fi(n)?2:0;return q(n,e,t,i,s,r,o,!0)}function Zx(n){return n?JH(n)||jse(n)?Ra({},n):n:null}function nd(n,e,t=!1,i=!1){const{props:s,ref:o,patchFlag:r,children:a,transition:l}=n,c=e?an(s||{},e):s,d={__v_isVNode:!0,__v_skip:!0,type:n.type,props:c,key:c&&loe(c),ref:e&&e.ref?t&&o?Zi(o)?o.concat(iN(e)):[o,iN(e)]:iN(e):o,scopeId:n.scopeId,slotScopeIds:n.slotScopeIds,children:a,target:n.target,targetStart:n.targetStart,targetAnchor:n.targetAnchor,staticCount:n.staticCount,shapeFlag:n.shapeFlag,patchFlag:e&&n.type!==Bi?r===-1?16:r|16:r,dynamicProps:n.dynamicProps,dynamicChildren:n.dynamicChildren,appContext:n.appContext,dirs:n.dirs,transition:l,component:n.component,suspense:n.suspense,ssContent:n.ssContent&&nd(n.ssContent),ssFallback:n.ssFallback&&nd(n.ssFallback),el:n.el,anchor:n.anchor,ctx:n.ctx,ce:n.ce};return l&&i&&bC(d,l.clone(d)),d}function at(n=" ",e=0){return te(Hv,null,n,e)}function z1(n,e){const t=te(V1,null,n);return t.staticCount=e,t}function Bt(n="",e=!1){return e?(fe(),jt(Uo,null,n)):te(Uo,null,n)}function $l(n){return n==null||typeof n=="boolean"?te(Uo):Zi(n)?te(Bi,null,n.slice()):n0(n)?Lp(n):te(Hv,null,String(n))}function Lp(n){return n.el===null&&n.patchFlag!==-1||n.memo?n:nd(n)}function fV(n,e){let t=0;const{shapeFlag:i}=n;if(e==null)e=null;else if(Zi(e))t=16;else if(typeof e=="object")if(i&65){const s=e.default;s&&(s._c&&(s._d=!1),fV(n,s()),s._c&&(s._d=!0));return}else{t=32;const s=e._;!s&&!jse(e)?e._ctx=qo:s===3&&qo&&(qo.slots._===1?e._=1:(e._=2,n.patchFlag|=1024))}else Fi(e)?(e={default:e,_ctx:qo},t=32):(e=String(e),i&64?(t=16,e=[at(e)]):t=8);n.children=e,n.shapeFlag|=t}function an(...n){const e={};for(let t=0;tjo||qo;let d2,h8;{const n=UR(),e=(t,i)=>{let s;return(s=n[t])||(s=n[t]=[]),s.push(i),o=>{s.length>1?s.forEach(r=>r(o)):s[0](o)}};d2=e("__VUE_INSTANCE_SETTERS__",t=>jo=t),h8=e("__VUE_SSR_SETTERS__",t=>wC=t)}const s0=n=>{const e=jo;return d2(n),n.scope.on(),()=>{n.scope.off(),d2(e)}},f8=()=>{jo&&jo.scope.off(),d2(null)};function coe(n){return n.vnode.shapeFlag&4}let wC=!1;function Kxe(n,e=!1,t=!1){e&&h8(e);const{props:i,children:s}=n.vnode,o=coe(n);_xe(n,i,o,e),wxe(n,s,t);const r=o?qxe(n,e):void 0;return e&&h8(!1),r}function qxe(n,e){const t=n.type;n.accessCache=Object.create(null),n.proxy=new Proxy(n.ctx,rxe);const{setup:i}=t;if(i){a_();const s=n.setupContext=i.length>1?uoe(n):null,o=s0(n),r=Xk(i,n,0,[n.props,s]),a=iV(r);if(l_(),o(),(a||n.sp)&&!lm(n)&&oV(n),a){if(r.then(f8,f8),e)return r.then(l=>{g8(n,l)}).catch(l=>{Iw(l,n,0)});n.asyncDep=r}else g8(n,r)}else doe(n)}function g8(n,e,t){Fi(e)?n.type.__ssrInlineRender?n.ssrRender=e:n.render=e:Xo(e)&&(n.setupState=use(e)),doe(n)}function doe(n,e,t){const i=n.type;n.render||(n.render=i.render||hg);{const s=s0(n);a_();try{dxe(n)}finally{l_(),s()}}}const Gxe={get(n,e){return ea(n,"get",""),n[e]}};function uoe(n){const e=t=>{n.exposed=t||{}};return{attrs:new Proxy(n.attrs,Gxe),slots:n.slots,emit:n.emit,expose:e}}function qR(n){return n.exposed?n.exposeProxy||(n.exposeProxy=new Proxy(use(eV(n.exposed)),{get(e,t){if(t in e)return e[t];if(t in XS)return XS[t](n)},has(e,t){return t in e||t in XS}})):n.proxy}function p8(n,e=!0){return Fi(n)?n.displayName||n.name:n.name||e&&n.__name}function Zxe(n){return Fi(n)&&"__vccOpts"in n}const ue=(n,e)=>bSe(n,e,wC);function $i(n,e,t){const i=arguments.length;return i===2?Xo(e)&&!Zi(e)?n0(e)?te(n,null,[e]):te(n,e):te(n,null,e):(i>3?t=Array.prototype.slice.call(arguments,2):i===3&&n0(t)&&(t=[t]),te(n,e,t))}const hoe="3.5.12";/** * @vue/shared v3.5.12 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **//*! #__NO_SIDE_EFFECTS__ */function Yxe(n){const e=Object.create(null);for(const t of n.split(","))e[t]=1;return t=>t in e}const Xxe=n=>n.charCodeAt(0)===111&&n.charCodeAt(1)===110&&(n.charCodeAt(2)>122||n.charCodeAt(2)<97),Qxe=n=>n.startsWith("onUpdate:"),gV=Object.assign,xh=Array.isArray,GR=n=>goe(n)==="[object Set]",AG=n=>goe(n)==="[object Date]",foe=n=>typeof n=="function",yC=n=>typeof n=="string",m8=n=>typeof n=="symbol",_8=n=>n!==null&&typeof n=="object",Jxe=Object.prototype.toString,goe=n=>Jxe.call(n),pV=n=>{const e=Object.create(null);return t=>e[t]||(e[t]=n(t))},eLe=/-(\w)/g,tLe=pV(n=>n.replace(eLe,(e,t)=>t?t.toUpperCase():"")),iLe=/\B([A-Z])/g,mV=pV(n=>n.replace(iLe,"-$1").toLowerCase()),nLe=pV(n=>n.charAt(0).toUpperCase()+n.slice(1)),sLe=(n,...e)=>{for(let t=0;t{const e=parseFloat(n);return isNaN(e)?n:e},oLe=n=>{const e=yC(n)?Number(n):NaN;return isNaN(e)?n:e},rLe="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",aLe=Yxe(rLe);function poe(n){return!!n||n===""}function lLe(n,e){if(n.length!==e.length)return!1;let t=!0;for(let i=0;t&&iiD(t,e))}/** * @vue/runtime-dom v3.5.12 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/let b8;const RG=typeof window<"u"&&window.trustedTypes;if(RG)try{b8=RG.createPolicy("vue",{createHTML:n=>n})}catch{}const moe=b8?n=>b8.createHTML(n):n=>n,cLe="http://www.w3.org/2000/svg",dLe="http://www.w3.org/1998/Math/MathML",xf=typeof document<"u"?document:null,MG=xf&&xf.createElement("template"),uLe={insert:(n,e,t)=>{e.insertBefore(n,t||null)},remove:n=>{const e=n.parentNode;e&&e.removeChild(n)},createElement:(n,e,t,i)=>{const s=e==="svg"?xf.createElementNS(cLe,n):e==="mathml"?xf.createElementNS(dLe,n):t?xf.createElement(n,{is:t}):xf.createElement(n);return n==="select"&&i&&i.multiple!=null&&s.setAttribute("multiple",i.multiple),s},createText:n=>xf.createTextNode(n),createComment:n=>xf.createComment(n),setText:(n,e)=>{n.nodeValue=e},setElementText:(n,e)=>{n.textContent=e},parentNode:n=>n.parentNode,nextSibling:n=>n.nextSibling,querySelector:n=>xf.querySelector(n),setScopeId(n,e){n.setAttribute(e,"")},insertStaticContent(n,e,t,i,s,o){const r=t?t.previousSibling:e.lastChild;if(s&&(s===o||s.nextSibling))for(;e.insertBefore(s.cloneNode(!0),t),!(s===o||!(s=s.nextSibling)););else{MG.innerHTML=moe(i==="svg"?`${n}`:i==="mathml"?`${n}`:n);const a=MG.content;if(i==="svg"||i==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}e.insertBefore(a,t)}return[r?r.nextSibling:e.firstChild,t?t.previousSibling:e.lastChild]}},sp="transition",Sy="animation",Yx=Symbol("_vtc"),_oe={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},hLe=gV({},Dse,_oe),fLe=n=>(n.displayName="Transition",n.props=hLe,n),o0=fLe((n,{slots:e})=>$i(KSe,gLe(n),e)),F_=(n,e=[])=>{xh(n)?n.forEach(t=>t(...e)):n&&n(...e)},PG=n=>n?xh(n)?n.some(e=>e.length>1):n.length>1:!1;function gLe(n){const e={};for(const M in n)M in _oe||(e[M]=n[M]);if(n.css===!1)return e;const{name:t="v",type:i,duration:s,enterFromClass:o=`${t}-enter-from`,enterActiveClass:r=`${t}-enter-active`,enterToClass:a=`${t}-enter-to`,appearFromClass:l=o,appearActiveClass:c=r,appearToClass:d=a,leaveFromClass:u=`${t}-leave-from`,leaveActiveClass:h=`${t}-leave-active`,leaveToClass:f=`${t}-leave-to`}=n,g=pLe(s),p=g&&g[0],_=g&&g[1],{onBeforeEnter:b,onEnter:w,onEnterCancelled:y,onLeave:S,onLeaveCancelled:x,onBeforeAppear:k=b,onAppear:D=w,onAppearCancelled:I=y}=e,N=(M,z,K)=>{B_(M,z?d:a),B_(M,z?c:r),K&&K()},P=(M,z)=>{M._isLeaving=!1,B_(M,u),B_(M,f),B_(M,h),z&&z()},O=M=>(z,K)=>{const ae=M?D:w,se=()=>N(z,M,K);F_(ae,[z,se]),OG(()=>{B_(z,M?l:o),op(z,M?d:a),PG(ae)||FG(z,i,p,se)})};return gV(e,{onBeforeEnter(M){F_(b,[M]),op(M,o),op(M,r)},onBeforeAppear(M){F_(k,[M]),op(M,l),op(M,c)},onEnter:O(!1),onAppear:O(!0),onLeave(M,z){M._isLeaving=!0;const K=()=>P(M,z);op(M,u),op(M,h),vLe(),OG(()=>{M._isLeaving&&(B_(M,u),op(M,f),PG(S)||FG(M,i,_,K))}),F_(S,[M,K])},onEnterCancelled(M){N(M,!1),F_(y,[M])},onAppearCancelled(M){N(M,!0),F_(I,[M])},onLeaveCancelled(M){P(M),F_(x,[M])}})}function pLe(n){if(n==null)return null;if(_8(n))return[sF(n.enter),sF(n.leave)];{const e=sF(n);return[e,e]}}function sF(n){return oLe(n)}function op(n,e){e.split(/\s+/).forEach(t=>t&&n.classList.add(t)),(n[Yx]||(n[Yx]=new Set)).add(e)}function B_(n,e){e.split(/\s+/).forEach(i=>i&&n.classList.remove(i));const t=n[Yx];t&&(t.delete(e),t.size||(n[Yx]=void 0))}function OG(n){requestAnimationFrame(()=>{requestAnimationFrame(n)})}let mLe=0;function FG(n,e,t,i){const s=n._endId=++mLe,o=()=>{s===n._endId&&i()};if(t!=null)return setTimeout(o,t);const{type:r,timeout:a,propCount:l}=_Le(n,e);if(!r)return i();const c=r+"end";let d=0;const u=()=>{n.removeEventListener(c,h),o()},h=f=>{f.target===n&&++d>=l&&u()};setTimeout(()=>{d(t[g]||"").split(", "),s=i(`${sp}Delay`),o=i(`${sp}Duration`),r=BG(s,o),a=i(`${Sy}Delay`),l=i(`${Sy}Duration`),c=BG(a,l);let d=null,u=0,h=0;e===sp?r>0&&(d=sp,u=r,h=o.length):e===Sy?c>0&&(d=Sy,u=c,h=l.length):(u=Math.max(r,c),d=u>0?r>c?sp:Sy:null,h=d?d===sp?o.length:l.length:0);const f=d===sp&&/\b(transform|all)(,|$)/.test(i(`${sp}Property`).toString());return{type:d,timeout:u,propCount:h,hasTransform:f}}function BG(n,e){for(;n.lengthWG(t)+WG(n[i])))}function WG(n){return n==="auto"?0:Number(n.slice(0,-1).replace(",","."))*1e3}function vLe(){return document.body.offsetHeight}function bLe(n,e,t){const i=n[Yx];i&&(e=(e?[e,...i]:[...i]).join(" ")),e==null?n.removeAttribute("class"):t?n.setAttribute("class",e):n.className=e}const u2=Symbol("_vod"),voe=Symbol("_vsh"),Emt={beforeMount(n,{value:e},{transition:t}){n[u2]=n.style.display==="none"?"":n.style.display,t&&e?t.beforeEnter(n):xy(n,e)},mounted(n,{value:e},{transition:t}){t&&e&&t.enter(n)},updated(n,{value:e,oldValue:t},{transition:i}){!e!=!t&&(i?e?(i.beforeEnter(n),xy(n,!0),i.enter(n)):i.leave(n,()=>{xy(n,!1)}):xy(n,e))},beforeUnmount(n,{value:e}){xy(n,e)}};function xy(n,e){n.style.display=e?n[u2]:"none",n[voe]=!e}const boe=Symbol("");function Tmt(n){const e=pc();if(!e)return;const t=e.ut=(s=n(e.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${e.uid}"]`)).forEach(o=>h2(o,s))},i=()=>{const s=n(e.proxy);e.ce?h2(e.ce,s):C8(e.subTree,s),t(s)};Rse(()=>{Ixe(i)}),cn(()=>{const s=new MutationObserver(i);s.observe(e.subTree.el.parentNode,{childList:!0}),uo(()=>s.disconnect())})}function C8(n,e){if(n.shapeFlag&128){const t=n.suspense;n=t.activeBranch,t.pendingBranch&&!t.isHydrating&&t.effects.push(()=>{C8(t.activeBranch,e)})}for(;n.component;)n=n.component.subTree;if(n.shapeFlag&1&&n.el)h2(n.el,e);else if(n.type===Bi)n.children.forEach(t=>C8(t,e));else if(n.type===V1){let{el:t,anchor:i}=n;for(;t&&(h2(t,e),t!==i);)t=t.nextSibling}}function h2(n,e){if(n.nodeType===1){const t=n.style;let i="";for(const s in e)t.setProperty(`--${s}`,e[s]),i+=`--${s}: ${e[s]};`;t[boe]=i}}const CLe=/(^|;)\s*display\s*:/;function wLe(n,e,t){const i=n.style,s=yC(t);let o=!1;if(t&&!s){if(e)if(yC(e))for(const r of e.split(";")){const a=r.slice(0,r.indexOf(":")).trim();t[a]==null&&nN(i,a,"")}else for(const r in e)t[r]==null&&nN(i,r,"");for(const r in t)r==="display"&&(o=!0),nN(i,r,t[r])}else if(s){if(e!==t){const r=i[boe];r&&(t+=";"+r),i.cssText=t,o=CLe.test(t)}}else e&&n.removeAttribute("style");u2 in n&&(n[u2]=o?i.display:"",n[voe]&&(i.display="none"))}const HG=/\s*!important$/;function nN(n,e,t){if(xh(t))t.forEach(i=>nN(n,e,i));else if(t==null&&(t=""),e.startsWith("--"))n.setProperty(e,t);else{const i=yLe(n,e);HG.test(t)?n.setProperty(mV(i),t.replace(HG,""),"important"):n[i]=t}}const VG=["Webkit","Moz","ms"],oF={};function yLe(n,e){const t=oF[e];if(t)return t;let i=id(e);if(i!=="filter"&&i in n)return oF[e]=i;i=nLe(i);for(let s=0;srF||(kLe.then(()=>rF=0),rF=Date.now());function ILe(n,e){const t=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=t.attached)return;Jd(ELe(i,t.value),e,5,[i])};return t.value=n,t.attached=DLe(),t}function ELe(n,e){if(xh(e)){const t=n.stopImmediatePropagation;return n.stopImmediatePropagation=()=>{t.call(n),n._stopped=!0},e.map(i=>s=>!s._stopped&&i&&i(s))}else return e}const qG=n=>n.charCodeAt(0)===111&&n.charCodeAt(1)===110&&n.charCodeAt(2)>96&&n.charCodeAt(2)<123,TLe=(n,e,t,i,s,o)=>{const r=s==="svg";e==="class"?bLe(n,i,r):e==="style"?wLe(n,t,i):Xxe(e)?Qxe(e)||xLe(n,e,t,i,o):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):NLe(n,e,i,r))?(UG(n,e,i),!n.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&$G(n,e,i,r,o,e!=="value")):n._isVueCE&&(/[A-Z]/.test(e)||!yC(i))?UG(n,tLe(e),i,o,e):(e==="true-value"?n._trueValue=i:e==="false-value"&&(n._falseValue=i),$G(n,e,i,r))};function NLe(n,e,t,i){if(i)return!!(e==="innerHTML"||e==="textContent"||e in n&&qG(e)&&foe(t));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="form"||e==="list"&&n.tagName==="INPUT"||e==="type"&&n.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const s=n.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return qG(e)&&yC(t)?!1:e in n}const SC=n=>{const e=n.props["onUpdate:modelValue"]||!1;return xh(e)?t=>sLe(e,t):e};function ALe(n){n.target.composing=!0}function GG(n){const e=n.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const fg=Symbol("_assign"),Nmt={created(n,{modifiers:{lazy:e,trim:t,number:i}},s){n[fg]=SC(s);const o=i||s.props&&s.props.type==="number";Tp(n,e?"change":"input",r=>{if(r.target.composing)return;let a=n.value;t&&(a=a.trim()),o&&(a=v8(a)),n[fg](a)}),t&&Tp(n,"change",()=>{n.value=n.value.trim()}),e||(Tp(n,"compositionstart",ALe),Tp(n,"compositionend",GG),Tp(n,"change",GG))},mounted(n,{value:e}){n.value=e??""},beforeUpdate(n,{value:e,oldValue:t,modifiers:{lazy:i,trim:s,number:o}},r){if(n[fg]=SC(r),n.composing)return;const a=(o||n.type==="number")&&!/^0\d/.test(n.value)?v8(n.value):n.value,l=e??"";a!==l&&(document.activeElement===n&&n.type!=="range"&&(i&&e===t||s&&n.value.trim()===l)||(n.value=l))}},RLe={deep:!0,created(n,e,t){n[fg]=SC(t),Tp(n,"change",()=>{const i=n._modelValue,s=Xx(n),o=n.checked,r=n[fg];if(xh(i)){const a=_V(i,s),l=a!==-1;if(o&&!l)r(i.concat(s));else if(!o&&l){const c=[...i];c.splice(a,1),r(c)}}else if(GR(i)){const a=new Set(i);o?a.add(s):a.delete(s),r(a)}else r(Coe(n,o))})},mounted:ZG,beforeUpdate(n,e,t){n[fg]=SC(t),ZG(n,e,t)}};function ZG(n,{value:e,oldValue:t},i){n._modelValue=e;let s;if(xh(e))s=_V(e,i.props.value)>-1;else if(GR(e))s=e.has(i.props.value);else{if(e===t)return;s=iD(e,Coe(n,!0))}n.checked!==s&&(n.checked=s)}const Amt={deep:!0,created(n,{value:e,modifiers:{number:t}},i){const s=GR(e);Tp(n,"change",()=>{const o=Array.prototype.filter.call(n.options,r=>r.selected).map(r=>t?v8(Xx(r)):Xx(r));n[fg](n.multiple?s?new Set(o):o:o[0]),n._assigning=!0,Go(()=>{n._assigning=!1})}),n[fg]=SC(i)},mounted(n,{value:e}){YG(n,e)},beforeUpdate(n,e,t){n[fg]=SC(t)},updated(n,{value:e}){n._assigning||YG(n,e)}};function YG(n,e){const t=n.multiple,i=xh(e);if(!(t&&!i&&!GR(e))){for(let s=0,o=n.options.length;sString(c)===String(a)):r.selected=_V(e,a)>-1}else r.selected=e.has(a);else if(iD(Xx(r),e)){n.selectedIndex!==s&&(n.selectedIndex=s);return}}!t&&n.selectedIndex!==-1&&(n.selectedIndex=-1)}}function Xx(n){return"_value"in n?n._value:n.value}function Coe(n,e){const t=e?"_trueValue":"_falseValue";return t in n?n[t]:e}const MLe=["ctrl","shift","alt","meta"],PLe={stop:n=>n.stopPropagation(),prevent:n=>n.preventDefault(),self:n=>n.target!==n.currentTarget,ctrl:n=>!n.ctrlKey,shift:n=>!n.shiftKey,alt:n=>!n.altKey,meta:n=>!n.metaKey,left:n=>"button"in n&&n.button!==0,middle:n=>"button"in n&&n.button!==1,right:n=>"button"in n&&n.button!==2,exact:(n,e)=>MLe.some(t=>n[`${t}Key`]&&!e.includes(t))},sN=(n,e)=>{const t=n._withMods||(n._withMods={}),i=e.join(".");return t[i]||(t[i]=(s,...o)=>{for(let r=0;r{const t=n._withKeys||(n._withKeys={}),i=e.join(".");return t[i]||(t[i]=s=>{if(!("key"in s))return;const o=mV(s.key);if(e.some(r=>r===o||OLe[r]===o))return n(s)})},woe=gV({patchProp:TLe},uLe);let JS,XG=!1;function FLe(){return JS||(JS=Sxe(woe))}function BLe(){return JS=XG?JS:xxe(woe),XG=!0,JS}const WLe=(...n)=>{const e=FLe().createApp(...n),{mount:t}=e;return e.mount=i=>{const s=Soe(i);if(!s)return;const o=e._component;!foe(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const r=t(s,!1,yoe(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),r},e},HLe=(...n)=>{const e=BLe().createApp(...n),{mount:t}=e;return e.mount=i=>{const s=Soe(i);if(s)return t(s,!0,yoe(s))},e};function yoe(n){if(n instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&n instanceof MathMLElement)return"mathml"}function Soe(n){return yC(n)?document.querySelector(n):n}const VLe=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,zLe=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,$Le=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function ULe(n,e){if(n==="__proto__"||n==="constructor"&&e&&typeof e=="object"&&"prototype"in e){jLe(n);return}return e}function jLe(n){console.warn(`[destr] Dropping "${n}" key to prevent prototype pollution.`)}function xC(n,e={}){if(typeof n!="string")return n;if(n[0]==='"'&&n[n.length-1]==='"'&&n.indexOf("\\")===-1)return n.slice(1,-1);const t=n.trim();if(t.length<=9)switch(t.toLowerCase()){case"true":return!0;case"false":return!1;case"undefined":return;case"null":return null;case"nan":return Number.NaN;case"infinity":return Number.POSITIVE_INFINITY;case"-infinity":return Number.NEGATIVE_INFINITY}if(!$Le.test(n)){if(e.strict)throw new SyntaxError("[destr] Invalid JSON");return n}try{if(VLe.test(n)||zLe.test(n)){if(e.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(n,ULe)}return JSON.parse(n)}catch(i){if(e.strict)throw i;return n}}const KLe=/#/g,qLe=/&/g,GLe=/\//g,ZLe=/=/g,vV=/\+/g,YLe=/%5e/gi,XLe=/%60/gi,QLe=/%7c/gi,JLe=/%20/gi;function eke(n){return encodeURI(""+n).replace(QLe,"|")}function w8(n){return eke(typeof n=="string"?n:JSON.stringify(n)).replace(vV,"%2B").replace(JLe,"+").replace(KLe,"%23").replace(qLe,"%26").replace(XLe,"`").replace(YLe,"^").replace(GLe,"%2F")}function aF(n){return w8(n).replace(ZLe,"%3D")}function f2(n=""){try{return decodeURIComponent(""+n)}catch{return""+n}}function tke(n){return f2(n.replace(vV," "))}function ike(n){return f2(n.replace(vV," "))}function xoe(n=""){const e=Object.create(null);n[0]==="?"&&(n=n.slice(1));for(const t of n.split("&")){const i=t.match(/([^=]+)=?(.*)/)||[];if(i.length<2)continue;const s=tke(i[1]);if(s==="__proto__"||s==="constructor")continue;const o=ike(i[2]||"");e[s]===void 0?e[s]=o:Array.isArray(e[s])?e[s].push(o):e[s]=[e[s],o]}return e}function nke(n,e){return(typeof e=="number"||typeof e=="boolean")&&(e=String(e)),e?Array.isArray(e)?e.map(t=>`${aF(n)}=${w8(t)}`).join("&"):`${aF(n)}=${w8(e)}`:aF(n)}function ske(n){return Object.keys(n).filter(e=>n[e]!==void 0).map(e=>nke(e,n[e])).filter(Boolean).join("&")}const oke=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,rke=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,ake=/^([/\\]\s*){2,}[^/\\]/,lke=/^[\s\0]*(blob|data|javascript|vbscript):$/i,cke=/\/$|\/\?|\/#/,dke=/^\.?\//;function K0(n,e={}){return typeof e=="boolean"&&(e={acceptRelative:e}),e.strict?oke.test(n):rke.test(n)||(e.acceptRelative?ake.test(n):!1)}function uke(n){return!!n&&lke.test(n)}function y8(n="",e){return e?cke.test(n):n.endsWith("/")}function bV(n="",e){if(!e)return(y8(n)?n.slice(0,-1):n)||"/";if(!y8(n,!0))return n||"/";let t=n,i="";const s=n.indexOf("#");s!==-1&&(t=n.slice(0,s),i=n.slice(s));const[o,...r]=t.split("?");return((o.endsWith("/")?o.slice(0,-1):o)||"/")+(r.length>0?`?${r.join("?")}`:"")+i}function g2(n="",e){if(!e)return n.endsWith("/")?n:n+"/";if(y8(n,!0))return n||"/";let t=n,i="";const s=n.indexOf("#");if(s!==-1&&(t=n.slice(0,s),i=n.slice(s),!t))return i;const[o,...r]=t.split("?");return o+"/"+(r.length>0?`?${r.join("?")}`:"")+i}function hke(n=""){return n.startsWith("/")}function QG(n=""){return hke(n)?n:"/"+n}function fke(n,e){if(koe(e)||K0(n))return n;const t=bV(e);return n.startsWith(t)?n:CV(t,n)}function JG(n,e){if(koe(e))return n;const t=bV(e);if(!n.startsWith(t))return n;const i=n.slice(t.length);return i[0]==="/"?i:"/"+i}function Loe(n,e){const t=mke(n),i={...xoe(t.search),...e};return t.search=ske(i),_ke(t)}function koe(n){return!n||n==="/"}function gke(n){return n&&n!=="/"}function CV(n,...e){let t=n||"";for(const i of e.filter(s=>gke(s)))if(t){const s=i.replace(dke,"");t=g2(t)+s}else t=i;return t}function Doe(...n){var r,a,l,c;const e=/\/(?!\/)/,t=n.filter(Boolean),i=[];let s=0;for(const d of t)if(!(!d||d==="/")){for(const[u,h]of d.split(e).entries())if(!(!h||h===".")){if(h===".."){if(i.length===1&&K0(i[0]))continue;i.pop(),s--;continue}if(u===1&&((r=i[i.length-1])!=null&&r.endsWith(":/"))){i[i.length-1]+="/"+h;continue}i.push(h),s++}}let o=i.join("/");return s>=0?(a=t[0])!=null&&a.startsWith("/")&&!o.startsWith("/")?o="/"+o:(l=t[0])!=null&&l.startsWith("./")&&!o.startsWith("./")&&(o="./"+o):o="../".repeat(-1*s)+o,(c=t[t.length-1])!=null&&c.endsWith("/")&&!o.endsWith("/")&&(o+="/"),o}function pke(n,e,t={}){return t.trailingSlash||(n=g2(n),e=g2(e)),t.leadingSlash||(n=QG(n),e=QG(e)),t.encoding||(n=f2(n),e=f2(e)),n===e}const Ioe=Symbol.for("ufo:protocolRelative");function mke(n="",e){const t=n.match(/^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);if(t){const[,u,h=""]=t;return{protocol:u.toLowerCase(),pathname:h,href:u+h,auth:"",host:"",search:"",hash:""}}if(!K0(n,{acceptRelative:!0}))return eZ(n);const[,i="",s,o=""]=n.replace(/\\/g,"/").match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/)||[];let[,r="",a=""]=o.match(/([^#/?]*)(.*)?/)||[];i==="file:"&&(a=a.replace(/\/(?=[A-Za-z]:)/,""));const{pathname:l,search:c,hash:d}=eZ(a);return{protocol:i.toLowerCase(),auth:s?s.slice(0,Math.max(0,s.length-1)):"",host:r,pathname:l,search:c,hash:d,[Ioe]:!i}}function eZ(n=""){const[e="",t="",i=""]=(n.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:e,search:t,hash:i}}function _ke(n){const e=n.pathname||"",t=n.search?(n.search.startsWith("?")?"":"?")+n.search:"",i=n.hash||"",s=n.auth?n.auth+"@":"",o=n.host||"";return(n.protocol||n[Ioe]?(n.protocol||"")+"//":"")+s+o+e+t+i}class vke extends Error{constructor(e,t){super(e,t),this.name="FetchError",t!=null&&t.cause&&!this.cause&&(this.cause=t.cause)}}function bke(n){var l,c,d,u,h;const e=((l=n.error)==null?void 0:l.message)||((c=n.error)==null?void 0:c.toString())||"",t=((d=n.request)==null?void 0:d.method)||((u=n.options)==null?void 0:u.method)||"GET",i=((h=n.request)==null?void 0:h.url)||String(n.request)||"/",s=`[${t}] ${JSON.stringify(i)}`,o=n.response?`${n.response.status} ${n.response.statusText}`:"",r=`${s}: ${o}${e?` ${e}`:""}`,a=new vke(r,n.error?{cause:n.error}:void 0);for(const f of["request","options","response"])Object.defineProperty(a,f,{get(){return n[f]}});for(const[f,g]of[["data","_data"],["status","status"],["statusCode","status"],["statusText","statusText"],["statusMessage","statusText"]])Object.defineProperty(a,f,{get(){return n.response&&n.response[g]}});return a}const Cke=new Set(Object.freeze(["PATCH","POST","PUT","DELETE"]));function tZ(n="GET"){return Cke.has(n.toUpperCase())}function wke(n){if(n===void 0)return!1;const e=typeof n;return e==="string"||e==="number"||e==="boolean"||e===null?!0:e!=="object"?!1:Array.isArray(n)?!0:n.buffer?!1:n.constructor&&n.constructor.name==="Object"||typeof n.toJSON=="function"}const yke=new Set(["image/svg","application/xml","application/xhtml","application/html"]),Ske=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function xke(n=""){if(!n)return"json";const e=n.split(";").shift()||"";return Ske.test(e)?"json":yke.has(e)||e.startsWith("text/")?"text":"blob"}function Lke(n,e,t,i){const s=kke((e==null?void 0:e.headers)??(n==null?void 0:n.headers),t==null?void 0:t.headers,i);let o;return(t!=null&&t.query||t!=null&&t.params||e!=null&&e.params||e!=null&&e.query)&&(o={...t==null?void 0:t.params,...t==null?void 0:t.query,...e==null?void 0:e.params,...e==null?void 0:e.query}),{...t,...e,query:o,params:o,headers:s}}function kke(n,e,t){if(!e)return new t(n);const i=new t(e);if(n)for(const[s,o]of Symbol.iterator in n||Array.isArray(n)?n:new t(n))i.set(s,o);return i}async function fE(n,e){if(e)if(Array.isArray(e))for(const t of e)await t(n);else await e(n)}const Dke=new Set([408,409,425,429,500,502,503,504]),Ike=new Set([101,204,205,304]);function Eoe(n={}){const{fetch:e=globalThis.fetch,Headers:t=globalThis.Headers,AbortController:i=globalThis.AbortController}=n;async function s(a){const l=a.error&&a.error.name==="AbortError"&&!a.options.timeout||!1;if(a.options.retry!==!1&&!l){let d;typeof a.options.retry=="number"?d=a.options.retry:d=tZ(a.options.method)?0:1;const u=a.response&&a.response.status||500;if(d>0&&(Array.isArray(a.options.retryStatusCodes)?a.options.retryStatusCodes.includes(u):Dke.has(u))){const h=typeof a.options.retryDelay=="function"?a.options.retryDelay(a):a.options.retryDelay||0;return h>0&&await new Promise(f=>setTimeout(f,h)),o(a.request,{...a.options,retry:d-1})}}const c=bke(a);throw Error.captureStackTrace&&Error.captureStackTrace(c,o),c}const o=async function(l,c={}){const d={request:l,options:Lke(l,c,n.defaults,t),response:void 0,error:void 0};d.options.method&&(d.options.method=d.options.method.toUpperCase()),d.options.onRequest&&await fE(d,d.options.onRequest),typeof d.request=="string"&&(d.options.baseURL&&(d.request=fke(d.request,d.options.baseURL)),d.options.query&&(d.request=Loe(d.request,d.options.query),delete d.options.query),"query"in d.options&&delete d.options.query,"params"in d.options&&delete d.options.params),d.options.body&&tZ(d.options.method)&&(wke(d.options.body)?(d.options.body=typeof d.options.body=="string"?d.options.body:JSON.stringify(d.options.body),d.options.headers=new t(d.options.headers||{}),d.options.headers.has("content-type")||d.options.headers.set("content-type","application/json"),d.options.headers.has("accept")||d.options.headers.set("accept","application/json")):("pipeTo"in d.options.body&&typeof d.options.body.pipeTo=="function"||typeof d.options.body.pipe=="function")&&("duplex"in d.options||(d.options.duplex="half")));let u;if(!d.options.signal&&d.options.timeout){const f=new i;u=setTimeout(()=>{const g=new Error("[TimeoutError]: The operation was aborted due to timeout");g.name="TimeoutError",g.code=23,f.abort(g)},d.options.timeout),d.options.signal=f.signal}try{d.response=await e(d.request,d.options)}catch(f){return d.error=f,d.options.onRequestError&&await fE(d,d.options.onRequestError),await s(d)}finally{u&&clearTimeout(u)}if((d.response.body||d.response._bodyInit)&&!Ike.has(d.response.status)&&d.options.method!=="HEAD"){const f=(d.options.parseResponse?"json":d.options.responseType)||xke(d.response.headers.get("content-type")||"");switch(f){case"json":{const g=await d.response.text(),p=d.options.parseResponse||xC;d.response._data=p(g);break}case"stream":{d.response._data=d.response.body||d.response._bodyInit;break}default:d.response._data=await d.response[f]()}}return d.options.onResponse&&await fE(d,d.options.onResponse),!d.options.ignoreResponseError&&d.response.status>=400&&d.response.status<600?(d.options.onResponseError&&await fE(d,d.options.onResponseError),await s(d)):d.response},r=async function(l,c){return(await o(l,c))._data};return r.raw=o,r.native=(...a)=>e(...a),r.create=(a={},l={})=>Eoe({...n,...l,defaults:{...n.defaults,...l.defaults,...a}}),r}const p2=function(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("unable to locate global object")}(),Eke=p2.fetch?(...n)=>p2.fetch(...n):()=>Promise.reject(new Error("[ofetch] global.fetch is not supported!")),Tke=p2.Headers,Nke=p2.AbortController,Ake=Eoe({fetch:Eke,Headers:Tke,AbortController:Nke}),Rke=Ake,Mke=()=>{var n;return((n=window==null?void 0:window.__NUXT__)==null?void 0:n.config)||{}},m2=Mke().app,Pke=()=>m2.baseURL,Oke=()=>m2.buildAssetsDir,Fke=(...n)=>Doe(Toe(),Oke(),...n),Toe=(...n)=>{const e=m2.cdnURL||m2.baseURL;return n.length?Doe(e,...n):e};globalThis.__buildAssetsURL=Fke,globalThis.__publicAssetsURL=Toe;globalThis.$fetch||(globalThis.$fetch=Rke.create({baseURL:Pke()}));function S8(n,e={},t){for(const i in n){const s=n[i],o=t?`${t}:${i}`:i;typeof s=="object"&&s!==null?S8(s,e,o):typeof s=="function"&&(e[o]=s)}return e}const Bke={run:n=>n()},Wke=()=>Bke,Noe=typeof console.createTask<"u"?console.createTask:Wke;function Hke(n,e){const t=e.shift(),i=Noe(t);return n.reduce((s,o)=>s.then(()=>i.run(()=>o(...e))),Promise.resolve())}function Vke(n,e){const t=e.shift(),i=Noe(t);return Promise.all(n.map(s=>i.run(()=>s(...e))))}function lF(n,e){for(const t of[...n])t(e)}class zke{constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(e,t,i={}){if(!e||typeof t!="function")return()=>{};const s=e;let o;for(;this._deprecatedHooks[e];)o=this._deprecatedHooks[e],e=o.to;if(o&&!i.allowDeprecated){let r=o.message;r||(r=`${s} hook has been deprecated`+(o.to?`, please use ${o.to}`:"")),this._deprecatedMessages||(this._deprecatedMessages=new Set),this._deprecatedMessages.has(r)||(console.warn(r),this._deprecatedMessages.add(r))}if(!t.name)try{Object.defineProperty(t,"name",{get:()=>"_"+e.replace(/\W+/g,"_")+"_hook_cb",configurable:!0})}catch{}return this._hooks[e]=this._hooks[e]||[],this._hooks[e].push(t),()=>{t&&(this.removeHook(e,t),t=void 0)}}hookOnce(e,t){let i,s=(...o)=>(typeof i=="function"&&i(),i=void 0,s=void 0,t(...o));return i=this.hook(e,s),i}removeHook(e,t){if(this._hooks[e]){const i=this._hooks[e].indexOf(t);i!==-1&&this._hooks[e].splice(i,1),this._hooks[e].length===0&&delete this._hooks[e]}}deprecateHook(e,t){this._deprecatedHooks[e]=typeof t=="string"?{to:t}:t;const i=this._hooks[e]||[];delete this._hooks[e];for(const s of i)this.hook(e,s)}deprecateHooks(e){Object.assign(this._deprecatedHooks,e);for(const t in e)this.deprecateHook(t,e[t])}addHooks(e){const t=S8(e),i=Object.keys(t).map(s=>this.hook(s,t[s]));return()=>{for(const s of i.splice(0,i.length))s()}}removeHooks(e){const t=S8(e);for(const i in t)this.removeHook(i,t[i])}removeAllHooks(){for(const e in this._hooks)delete this._hooks[e]}callHook(e,...t){return t.unshift(e),this.callHookWith(Hke,e,...t)}callHookParallel(e,...t){return t.unshift(e),this.callHookWith(Vke,e,...t)}callHookWith(e,t,...i){const s=this._before||this._after?{name:t,args:i,context:{}}:void 0;this._before&&lF(this._before,s);const o=e(t in this._hooks?[...this._hooks[t]]:[],i);return o instanceof Promise?o.finally(()=>{this._after&&s&&lF(this._after,s)}):(this._after&&s&&lF(this._after,s),o)}beforeEach(e){return this._before=this._before||[],this._before.push(e),()=>{if(this._before!==void 0){const t=this._before.indexOf(e);t!==-1&&this._before.splice(t,1)}}}afterEach(e){return this._after=this._after||[],this._after.push(e),()=>{if(this._after!==void 0){const t=this._after.indexOf(e);t!==-1&&this._after.splice(t,1)}}}}function Aoe(){return new zke}function $ke(n={}){let e,t=!1;const i=r=>{if(e&&e!==r)throw new Error("Context conflict")};let s;if(n.asyncContext){const r=n.AsyncLocalStorage||globalThis.AsyncLocalStorage;r?s=new r:console.warn("[unctx] `AsyncLocalStorage` is not provided.")}const o=()=>{if(s){const r=s.getStore();if(r!==void 0)return r}return e};return{use:()=>{const r=o();if(r===void 0)throw new Error("Context is not available");return r},tryUse:()=>o(),set:(r,a)=>{a||i(r),e=r,t=!0},unset:()=>{e=void 0,t=!1},call:(r,a)=>{i(r),e=r;try{return s?s.run(r,a):a()}finally{t||(e=void 0)}},async callAsync(r,a){e=r;const l=()=>{e=r},c=()=>e===r?l:void 0;x8.add(c);try{const d=s?s.run(r,a):a();return t||(e=void 0),await d}finally{x8.delete(c)}}}}function Uke(n={}){const e={};return{get(t,i={}){return e[t]||(e[t]=$ke({...n,...i})),e[t]}}}const _2=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof global<"u"?global:typeof window<"u"?window:{},iZ="__unctx__",jke=_2[iZ]||(_2[iZ]=Uke()),Kke=(n,e={})=>jke.get(n,e),nZ="__unctx_async_handlers__",x8=_2[nZ]||(_2[nZ]=new Set);function Vv(n){const e=[];for(const s of x8){const o=s();o&&e.push(o)}const t=()=>{for(const s of e)s()};let i=n();return i&&typeof i=="object"&&"catch"in i&&(i=i.catch(s=>{throw t(),s})),[i,t]}const qke=!1,L8=!1,Gke=!1,Zke={componentName:"NuxtLink",prefetch:!0,prefetchOn:{visibility:!0}},Yke=null,Xke="#__nuxt",Roe="nuxt-app",Qke="vite:preloadError";function Moe(n=Roe){return Kke(n,{asyncContext:!1})}const Jke="__nuxt_plugin";function eDe(n){var s;let e=0;const t={_id:n.id||Roe||"nuxt-app",_scope:KH(),provide:void 0,globalName:"nuxt",versions:{get nuxt(){return"3.13.2"},get vue(){return t.vueApp.version}},payload:Kf({...((s=n.ssrContext)==null?void 0:s.payload)||{},data:Kf({}),state:Ba({}),once:new Set,_errors:Kf({})}),static:{data:{}},runWithContext(o){return t._scope.active&&!r_()?t._scope.run(()=>sZ(t,o)):sZ(t,o)},isHydrating:!0,deferHydration(){if(!t.isHydrating)return()=>{};e++;let o=!1;return()=>{if(!o&&(o=!0,e--,e===0))return t.isHydrating=!1,t.callHook("app:suspense:resolve")}},_asyncDataPromises:{},_asyncData:Kf({}),_payloadRevivers:{},...n};{const o=window.__NUXT__;if(o)for(const r in o)switch(r){case"data":case"state":case"_errors":Object.assign(t.payload[r],o[r]);break;default:t.payload[r]=o[r]}}t.hooks=Aoe(),t.hook=t.hooks.hook,t.callHook=t.hooks.callHook,t.provide=(o,r)=>{const a="$"+o;gE(t,a,r),gE(t.vueApp.config.globalProperties,a,r)},gE(t.vueApp,"$nuxt",t),gE(t.vueApp.config.globalProperties,"$nuxt",t);{window.addEventListener(Qke,r=>{t.callHook("app:chunkError",{error:r.payload}),(t.isHydrating||r.payload.message.includes("Unable to preload CSS"))&&r.preventDefault()}),window.useNuxtApp=window.useNuxtApp||In;const o=t.hook("app:error",(...r)=>{console.error("[nuxt] error caught during app initialization",...r)});t.hook("app:mounted",o)}const i=t.payload.config;return t.provide("config",i),t}function tDe(n,e){e.hooks&&n.hooks.addHooks(e.hooks)}async function iDe(n,e){if(typeof e=="function"){const{provide:t}=await n.runWithContext(()=>e(n))||{};if(t&&typeof t=="object")for(const i in t)n.provide(i,t[i])}}async function nDe(n,e){const t=[],i=[],s=[],o=[];let r=0;async function a(l){var d;const c=((d=l.dependsOn)==null?void 0:d.filter(u=>e.some(h=>h._name===u)&&!t.includes(u)))??[];if(c.length>0)i.push([new Set(c),l]);else{const u=iDe(n,l).then(async()=>{l._name&&(t.push(l._name),await Promise.all(i.map(async([h,f])=>{h.has(l._name)&&(h.delete(l._name),h.size===0&&(r++,await a(f)))})))});l.parallel?s.push(u.catch(h=>o.push(h))):await u}}for(const l of e)tDe(n,l);for(const l of e)await a(l);if(await Promise.all(s),r)for(let l=0;l{}),n,{[Jke]:!0,_name:e})}function sZ(n,e,t){const i=()=>e();return Moe(n._id).set(n),n.vueApp.runWithContext(i)}function sDe(n){var t;let e;return lV()&&(e=(t=pc())==null?void 0:t.appContext.app.$nuxt),e=e||Moe(n).tryUse(),e||null}function In(n){const e=sDe(n);if(!e)throw new Error("[nuxt] instance unavailable");return e}function Tm(n){return In().$config}function gE(n,e,t){Object.defineProperty(n,e,{get:()=>t})}function oDe(n,e){if(typeof n!="string")throw new TypeError("argument str must be a string");const t={},i=e||{},s=i.decode||rDe;let o=0;for(;oe.reduce((t,i)=>k8(t,i,"",n),{})}const nD=wV(),cDe=wV((n,e,t)=>{if(n[e]!==void 0&&typeof t=="function")return n[e]=t(n[e]),!0});function dDe(n,e){try{return e in n}catch{return!1}}class D8 extends Error{constructor(t,i={}){super(t,i);np(this,"statusCode",500);np(this,"fatal",!1);np(this,"unhandled",!1);np(this,"statusMessage");np(this,"data");np(this,"cause");i.cause&&!this.cause&&(this.cause=i.cause)}toJSON(){const t={message:this.message,statusCode:E8(this.statusCode,500)};return this.statusMessage&&(t.statusMessage=Poe(this.statusMessage)),this.data!==void 0&&(t.data=this.data),t}}np(D8,"__h3_error__",!0);function I8(n){if(typeof n=="string")return new D8(n);if(uDe(n))return n;const e=new D8(n.message??n.statusMessage??"",{cause:n.cause||n});if(dDe(n,"stack"))try{Object.defineProperty(e,"stack",{get(){return n.stack}})}catch{try{e.stack=n.stack}catch{}}if(n.data&&(e.data=n.data),n.statusCode?e.statusCode=E8(n.statusCode,e.statusCode):n.status&&(e.statusCode=E8(n.status,e.statusCode)),n.statusMessage?e.statusMessage=n.statusMessage:n.statusText&&(e.statusMessage=n.statusText),e.statusMessage){const t=e.statusMessage;Poe(e.statusMessage)!==t&&console.warn("[h3] Please prefer using `message` for longer error messages instead of `statusMessage`. In the future, `statusMessage` will be sanitized by default.")}return n.fatal!==void 0&&(e.fatal=n.fatal),n.unhandled!==void 0&&(e.unhandled=n.unhandled),e}function uDe(n){var e;return((e=n==null?void 0:n.constructor)==null?void 0:e.__h3_error__)===!0}const hDe=/[^\u0009\u0020-\u007E]/g;function Poe(n=""){return n.replace(hDe,"")}function E8(n,e=200){return!n||(typeof n=="string"&&(n=Number.parseInt(n,10)),n<100||n>999)?e:n}const Ooe=Symbol("layout-meta"),nl=Symbol("route"),Fr=()=>{var n;return(n=In())==null?void 0:n.$router},ZR=()=>lV()?Ui(nl,In()._route):In()._route;function Mmt(n){return n}const fDe=()=>{try{if(In()._processingMiddleware)return!0}catch{return!1}return!1},Vs=(n,e)=>{n||(n="/");const t=typeof n=="string"?n:"path"in n?T8(n):Fr().resolve(n).href;if(e!=null&&e.open){const{target:l="_blank",windowFeatures:c={}}=e.open,d=Object.entries(c).filter(([u,h])=>h!==void 0).map(([u,h])=>`${u.toLowerCase()}=${h}`).join(", ");return open(t,l,d),Promise.resolve()}const i=K0(t,{acceptRelative:!0}),s=(e==null?void 0:e.external)||i;if(s){if(!(e!=null&&e.external))throw new Error("Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.");const{protocol:l}=new URL(t,window.location.href);if(l&&uke(l))throw new Error(`Cannot navigate to a URL with '${l}' protocol.`)}const o=fDe();if(!s&&o)return n;const r=Fr(),a=In();return s?(a._scope.stop(),e!=null&&e.replace?location.replace(t):location.href=t,o?a.isHydrating?new Promise(()=>{}):!1:Promise.resolve()):e!=null&&e.replace?r.replace(n):r.push(n)};function T8(n){return Loe(n.path||"",n.query||{})+(n.hash||"")}const Foe="__nuxt_error",YR=()=>Ps(In().payload,"error"),d1=n=>{const e=XR(n);try{const t=In(),i=YR();t.hooks.callHook("app:error",e),i.value=i.value||e}catch{throw e}return e},gDe=async(n={})=>{const e=In(),t=YR();e.callHook("app:error:cleared",n),n.redirect&&await Fr().replace(n.redirect),t.value=Yke},pDe=n=>!!n&&typeof n=="object"&&Foe in n,XR=n=>{const e=I8(n);return Object.defineProperty(e,Foe,{value:!0,configurable:!1,writable:!1}),e};function mDe(n){const e=vDe(n),t=new ArrayBuffer(e.length),i=new DataView(t);for(let s=0;s>16),e+=String.fromCharCode((t&65280)>>8),e+=String.fromCharCode(t&255),t=i=0);return i===12?(t>>=4,e+=String.fromCharCode(t)):i===18&&(t>>=2,e+=String.fromCharCode((t&65280)>>8),e+=String.fromCharCode(t&255)),e}const bDe=-1,CDe=-2,wDe=-3,yDe=-4,SDe=-5,xDe=-6;function LDe(n,e){return kDe(JSON.parse(n),e)}function kDe(n,e){if(typeof n=="number")return s(n,!0);if(!Array.isArray(n)||n.length===0)throw new Error("Invalid input");const t=n,i=Array(t.length);function s(o,r=!1){if(o===bDe)return;if(o===wDe)return NaN;if(o===yDe)return 1/0;if(o===SDe)return-1/0;if(o===xDe)return-0;if(r||typeof o!="number")throw new Error("Invalid input");if(o in i)return i[o];const a=t[o];if(!a||typeof a!="object")i[o]=a;else if(Array.isArray(a))if(typeof a[0]=="string"){const l=a[0],c=e==null?void 0:e[l];if(c)return i[o]=c(s(a[1]));switch(l){case"Date":i[o]=new Date(a[1]);break;case"Set":const d=new Set;i[o]=d;for(let f=1;fo.key),s=e.resolveValueData||(o=>o.value);for(const[o,r]of Object.entries(n))t.push(...(Array.isArray(r)?r:[r]).map(a=>{const l={key:o,value:a},c=s(l);return typeof c=="object"?Boe(c,e):Array.isArray(c)?c:{[typeof e.key=="function"?e.key(l):e.key]:i(l),[typeof e.value=="function"?e.value(l):e.value]:c}}).flat());return t}function Woe(n,e){return Object.entries(n).map(([t,i])=>{if(typeof i=="object"&&(i=Woe(i,e)),e.resolve){const s=e.resolve({key:t,value:i});if(typeof s<"u")return s}return typeof i=="number"&&(i=i.toString()),typeof i=="string"&&e.wrapValue&&(i=i.replace(new RegExp(e.wrapValue,"g"),`\\${e.wrapValue}`),i=`${e.wrapValue}${i}${e.wrapValue}`),`${t}${e.keyValueSeparator||""}${i}`}).join(e.entrySeparator||"")}const DDe=new Set(["title","titleTemplate","script","style","noscript"]),oN=new Set(["base","meta","link","style","script","noscript"]),IDe=new Set(["title","titleTemplate","templateParams","base","htmlAttrs","bodyAttrs","meta","link","style","script","noscript"]),EDe=new Set(["base","title","titleTemplate","bodyAttrs","htmlAttrs","templateParams"]),Hoe=new Set(["tagPosition","tagPriority","tagDuplicateStrategy","children","innerHTML","textContent","processTemplateParams"]),TDe=typeof window<"u";function v2(n){let e=9;for(let t=0;t>>9)+65536).toString(16).substring(1,8).toLowerCase()}function N8(n){if(n._h)return n._h;if(n._d)return v2(n._d);let e=`${n.tag}:${n.textContent||n.innerHTML||""}:`;for(const t in n.props)e+=`${t}:${String(n.props[t])},`;return v2(e)}const _a=n=>({keyValue:n,metaKey:"property"}),dF=n=>({keyValue:n}),yV={appleItunesApp:{unpack:{entrySeparator:", ",resolve({key:n,value:e}){return`${qf(n)}=${e}`}}},articleExpirationTime:_a("article:expiration_time"),articleModifiedTime:_a("article:modified_time"),articlePublishedTime:_a("article:published_time"),bookReleaseDate:_a("book:release_date"),charset:{metaKey:"charset"},contentSecurityPolicy:{unpack:{entrySeparator:"; ",resolve({key:n,value:e}){return`${qf(n)} ${e}`}},metaKey:"http-equiv"},contentType:{metaKey:"http-equiv"},defaultStyle:{metaKey:"http-equiv"},fbAppId:_a("fb:app_id"),msapplicationConfig:dF("msapplication-Config"),msapplicationTileColor:dF("msapplication-TileColor"),msapplicationTileImage:dF("msapplication-TileImage"),ogAudioSecureUrl:_a("og:audio:secure_url"),ogAudioUrl:_a("og:audio"),ogImageSecureUrl:_a("og:image:secure_url"),ogImageUrl:_a("og:image"),ogSiteName:_a("og:site_name"),ogVideoSecureUrl:_a("og:video:secure_url"),ogVideoUrl:_a("og:video"),profileFirstName:_a("profile:first_name"),profileLastName:_a("profile:last_name"),profileUsername:_a("profile:username"),refresh:{metaKey:"http-equiv",unpack:{entrySeparator:";",resolve({key:n,value:e}){if(n==="seconds")return`${e}`}}},robots:{unpack:{entrySeparator:", ",resolve({key:n,value:e}){return typeof e=="boolean"?`${qf(n)}`:`${qf(n)}:${e}`}}},xUaCompatible:{metaKey:"http-equiv"}},Voe=new Set(["og","book","article","profile"]);function zoe(n){var i;const e=qf(n),t=e.indexOf(":");return Voe.has(e.substring(0,t))?"property":((i=yV[n])==null?void 0:i.metaKey)||"name"}function NDe(n){var e;return((e=yV[n])==null?void 0:e.keyValue)||qf(n)}function qf(n){const e=n.replace(/([A-Z])/g,"-$1").toLowerCase(),t=e.indexOf("-"),i=e.substring(0,t);return i==="twitter"||Voe.has(i)?n.replace(/([A-Z])/g,":$1").toLowerCase():e}function A8(n){if(Array.isArray(n))return n.map(t=>A8(t));if(typeof n!="object"||Array.isArray(n))return n;const e={};for(const t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[qf(t)]=A8(n[t]));return e}function ADe(n,e){const t=yV[e];return e==="refresh"?`${n.seconds};url=${n.url}`:Woe(A8(n),{keyValueSeparator:"=",entrySeparator:", ",resolve({value:i,key:s}){if(i===null)return"";if(typeof i=="boolean")return`${s}`},...t==null?void 0:t.unpack})}const $oe=new Set(["og:image","og:video","og:audio","twitter:image"]);function Uoe(n){const e={};for(const t in n){if(!Object.prototype.hasOwnProperty.call(n,t))continue;const i=n[t];String(i)!=="false"&&t&&(e[t]=i)}return e}function rZ(n,e){const t=Uoe(e),i=qf(n),s=zoe(i);if($oe.has(i)){const o={};for(const r in t)Object.prototype.hasOwnProperty.call(t,r)&&(o[`${n}${r==="url"?"":`${r[0].toUpperCase()}${r.slice(1)}`}`]=t[r]);return joe(o).sort((r,a)=>{var l,c;return(((l=r[s])==null?void 0:l.length)||0)-(((c=a[s])==null?void 0:c.length)||0)})}return[{[s]:i,...t}]}function joe(n){const e=[],t={};for(const s in n){if(!Object.prototype.hasOwnProperty.call(n,s))continue;const o=n[s];if(!Array.isArray(o)){if(typeof o=="object"&&o){if($oe.has(qf(s))){e.push(...rZ(s,o));continue}t[s]=Uoe(o)}else t[s]=o;continue}for(const r of o)e.push(...typeof r=="string"?joe({[s]:r}):rZ(s,r))}const i=Boe(t,{key({key:s}){return zoe(s)},value({key:s}){return s==="charset"?"charset":"content"},resolveKeyData({key:s}){return NDe(s)},resolveValueData({value:s,key:o}){return s===null?"_null":typeof s=="object"?ADe(s,o):typeof s=="number"?s.toString():s}});return[...e,...i].map(s=>(s.content==="_null"&&(s.content=null),s))}function RDe(n,e){return n instanceof Promise?n.then(e):e(n)}function R8(n,e,t,i){const s=i||qoe(typeof e=="object"&&typeof e!="function"&&!(e instanceof Promise)?{...e}:{[n==="script"||n==="noscript"||n==="style"?"innerHTML":"textContent"]:e},n==="templateParams"||n==="titleTemplate");if(s instanceof Promise)return s.then(r=>R8(n,e,t,r));const o={tag:n,props:s};for(const r of Hoe){const a=o.props[r]!==void 0?o.props[r]:t[r];a!==void 0&&((!(r==="innerHTML"||r==="textContent"||r==="children")||DDe.has(o.tag))&&(o[r==="children"?"innerHTML":r]=a),delete o.props[r])}return o.props.body&&(o.tagPosition="bodyClose",delete o.props.body),o.tag==="script"&&typeof o.innerHTML=="object"&&(o.innerHTML=JSON.stringify(o.innerHTML),o.props.type=o.props.type||"application/json"),Array.isArray(o.props.content)?o.props.content.map(r=>({...o,props:{...o.props,content:r}})):o}function MDe(n,e){var i;const t=n==="class"?" ":";";return e&&typeof e=="object"&&!Array.isArray(e)&&(e=Object.entries(e).filter(([,s])=>s).map(([s,o])=>n==="style"?`${s}:${o}`:s)),(i=String(Array.isArray(e)?e.join(t):e))==null?void 0:i.split(t).filter(s=>!!s.trim()).join(t)}function Koe(n,e,t,i){for(let s=i;s(n[o]=r,Koe(n,e,t,s)));if(!e&&!Hoe.has(o)){const r=String(n[o]),a=o.startsWith("data-");r==="true"||r===""?n[o]=a?"true":!0:n[o]||(a&&r==="false"?n[o]="false":delete n[o])}}}function qoe(n,e=!1){const t=Koe(n,e,Object.keys(n),0);return t instanceof Promise?t.then(()=>n):n}const PDe=10;function Goe(n,e,t){for(let i=t;i(e[i]=o,Goe(n,e,i)));Array.isArray(s)?n.push(...s):n.push(s)}}function ODe(n){const e=[],t=n.resolvedInput;for(const s in t){if(!Object.prototype.hasOwnProperty.call(t,s))continue;const o=t[s];if(!(o===void 0||!IDe.has(s))){if(Array.isArray(o)){for(const r of o)e.push(R8(s,r,n));continue}e.push(R8(s,o,n))}}if(e.length===0)return[];const i=[];return RDe(Goe(i,e,0),()=>i.map((s,o)=>(s._e=n._i,n.mode&&(s._m=n.mode),s._p=(n._i<{if(a===kp||!o.includes(a))return a;const l=WDe(e,a.slice(1),i);return l!==void 0?l:a}).trim(),r&&(n.endsWith(kp)&&(n=n.slice(0,-kp.length)),n.startsWith(kp)&&(n=n.slice(kp.length)),n=n.replace(HDe,t).trim()),n}function dZ(n,e){return n==null?e||null:typeof n=="function"?n(e):n}async function Yoe(n,e={}){const t=e.document||n.resolvedOptions.document;if(!t||!n.dirty)return;const i={shouldRender:!0,tags:[]};if(await n.hooks.callHook("dom:beforeRender",i),!!i.shouldRender)return n._domUpdatePromise||(n._domUpdatePromise=new Promise(async s=>{var u;const o=(await n.resolveTags()).map(h=>({tag:h,id:oN.has(h.tag)?N8(h):h.tag,shouldRender:!0}));let r=n._dom;if(!r){r={elMap:{htmlAttrs:t.documentElement,bodyAttrs:t.body}};const h=new Set;for(const f of["body","head"]){const g=(u=t[f])==null?void 0:u.children;for(const p of g){const _=p.tagName.toLowerCase();if(!oN.has(_))continue;const b={tag:_,props:await qoe(p.getAttributeNames().reduce((x,k)=>({...x,[k]:p.getAttribute(k)}),{})),innerHTML:p.innerHTML},w=Zoe(b);let y=w,S=1;for(;y&&h.has(y);)y=`${w}:${S++}`;y&&(b._d=y,h.add(y)),r.elMap[p.getAttribute("data-hid")||N8(b)]=p}}}r.pendingSideEffects={...r.sideEffects},r.sideEffects={};function a(h,f,g){const p=`${h}:${f}`;r.sideEffects[p]=g,delete r.pendingSideEffects[p]}function l({id:h,$el:f,tag:g}){const p=g.tag.endsWith("Attrs");if(r.elMap[h]=f,p||(g.textContent&&g.textContent!==f.textContent&&(f.textContent=g.textContent),g.innerHTML&&g.innerHTML!==f.innerHTML&&(f.innerHTML=g.innerHTML),a(h,"el",()=>{var _;(_=r.elMap[h])==null||_.remove(),delete r.elMap[h]})),g._eventHandlers)for(const _ in g._eventHandlers)Object.prototype.hasOwnProperty.call(g._eventHandlers,_)&&f.getAttribute(`data-${_}`)!==""&&((g.tag==="bodyAttrs"?t.defaultView:f).addEventListener(_.substring(2),g._eventHandlers[_].bind(f)),f.setAttribute(`data-${_}`,""));for(const _ in g.props){if(!Object.prototype.hasOwnProperty.call(g.props,_))continue;const b=g.props[_],w=`attr:${_}`;if(_==="class"){if(!b)continue;for(const y of b.split(" "))p&&a(h,`${w}:${y}`,()=>f.classList.remove(y)),!f.classList.contains(y)&&f.classList.add(y)}else if(_==="style"){if(!b)continue;for(const y of b.split(";")){const S=y.indexOf(":"),x=y.substring(0,S).trim(),k=y.substring(S+1).trim();a(h,`${w}:${x}`,()=>{f.style.removeProperty(x)}),f.style.setProperty(x,k)}}else f.getAttribute(_)!==b&&f.setAttribute(_,b===!0?"":String(b)),p&&a(h,w,()=>f.removeAttribute(_))}}const c=[],d={bodyClose:void 0,bodyOpen:void 0,head:void 0};for(const h of o){const{tag:f,shouldRender:g,id:p}=h;if(g){if(f.tag==="title"){t.title=f.textContent;continue}h.$el=h.$el||r.elMap[p],h.$el?l(h):oN.has(f.tag)&&c.push(h)}}for(const h of c){const f=h.tag.tagPosition||"head";h.$el=t.createElement(h.tag.tag),l(h),d[f]=d[f]||t.createDocumentFragment(),d[f].appendChild(h.$el)}for(const h of o)await n.hooks.callHook("dom:renderTag",h,t,a);d.head&&t.head.appendChild(d.head),d.bodyOpen&&t.body.insertBefore(d.bodyOpen,t.body.firstChild),d.bodyClose&&t.body.appendChild(d.bodyClose);for(const h in r.pendingSideEffects)r.pendingSideEffects[h]();n._dom=r,await n.hooks.callHook("dom:rendered",{renders:o}),s()}).finally(()=>{n._domUpdatePromise=void 0,n.dirty=!1})),n._domUpdatePromise}function VDe(n,e={}){const t=e.delayFn||(i=>setTimeout(i,10));return n._domDebouncedUpdatePromise=n._domDebouncedUpdatePromise||new Promise(i=>t(()=>Yoe(n,e).then(()=>{delete n._domDebouncedUpdatePromise,i()})))}function zDe(n){return e=>{var i,s;const t=((s=(i=e.resolvedOptions.document)==null?void 0:i.head.querySelector('script[id="unhead:payload"]'))==null?void 0:s.innerHTML)||!1;return t&&e.push(JSON.parse(t)),{mode:"client",hooks:{"entries:updated":o=>{VDe(o,n)}}}}}const $De=new Set(["templateParams","htmlAttrs","bodyAttrs"]),UDe={hooks:{"tag:normalise":({tag:n})=>{n.props.hid&&(n.key=n.props.hid,delete n.props.hid),n.props.vmid&&(n.key=n.props.vmid,delete n.props.vmid),n.props.key&&(n.key=n.props.key,delete n.props.key);const e=Zoe(n);e&&!e.startsWith("meta:og:")&&!e.startsWith("meta:twitter:")&&delete n.key;const t=e||(n.key?`${n.tag}:${n.key}`:!1);t&&(n._d=t)},"tags:resolve":n=>{const e=Object.create(null);for(const i of n.tags){const s=(i.key?`${i.tag}:${i.key}`:i._d)||N8(i),o=e[s];if(o){let a=i==null?void 0:i.tagDuplicateStrategy;if(!a&&$De.has(i.tag)&&(a="merge"),a==="merge"){const l=o.props;l.style&&i.props.style&&(l.style[l.style.length-1]!==";"&&(l.style+=";"),i.props.style=`${l.style} ${i.props.style}`),l.class&&i.props.class?i.props.class=`${l.class} ${i.props.class}`:l.class&&(i.props.class=l.class),e[s].props={...l,...i.props};continue}else if(i._e===o._e){o._duped=o._duped||[],i._d=`${o._d}:${o._duped.length+1}`,o._duped.push(i);continue}else if(b2(i)>b2(o))continue}if(!(i.innerHTML||i.textContent||Object.keys(i.props).length!==0)&&oN.has(i.tag)){delete e[s];continue}e[s]=i}const t=[];for(const i in e){const s=e[i],o=s._duped;t.push(s),o&&(delete s._duped,t.push(...o))}n.tags=t,n.tags=n.tags.filter(i=>!(i.tag==="meta"&&(i.props.name||i.props.property)&&!i.props.content))}}},jDe=new Set(["script","link","bodyAttrs"]),KDe=n=>({hooks:{"tags:resolve":e=>{for(const t of e.tags){if(!jDe.has(t.tag))continue;const i=t.props;for(const s in i){if(s[0]!=="o"||s[1]!=="n"||!Object.prototype.hasOwnProperty.call(i,s))continue;const o=i[s];typeof o=="function"&&(n.ssr&&aZ.has(s)?i[s]=`this.dataset.${s}fired = true`:delete i[s],t._eventHandlers=t._eventHandlers||{},t._eventHandlers[s]=o)}n.ssr&&t._eventHandlers&&(t.props.src||t.props.href)&&(t.key=t.key||v2(t.props.src||t.props.href))}},"dom:renderTag":({$el:e,tag:t})=>{var s,o;const i=e==null?void 0:e.dataset;if(i)for(const r in i){if(!r.endsWith("fired"))continue;const a=r.slice(0,-5);aZ.has(a)&&((o=(s=t._eventHandlers)==null?void 0:s[a])==null||o.call(e,new Event(a.substring(2))))}}}}),qDe=new Set(["link","style","script","noscript"]),GDe={hooks:{"tag:normalise":({tag:n})=>{n.key&&qDe.has(n.tag)&&(n.props["data-hid"]=n._h=v2(n.key))}}},ZDe={mode:"server",hooks:{"tags:beforeResolve":n=>{const e={};let t=!1;for(const i of n.tags)i._m!=="server"||i.tag!=="titleTemplate"&&i.tag!=="templateParams"&&i.tag!=="title"||(e[i.tag]=i.tag==="title"||i.tag==="titleTemplate"?i.textContent:i.props,t=!0);t&&n.tags.push({tag:"script",innerHTML:JSON.stringify(e),props:{id:"unhead:payload",type:"application/json"}})}}},YDe={hooks:{"tags:resolve":n=>{var e;for(const t of n.tags)if(typeof t.tagPriority=="string")for(const{prefix:i,offset:s}of FDe){if(!t.tagPriority.startsWith(i))continue;const o=t.tagPriority.substring(i.length),r=(e=n.tags.find(a=>a._d===o))==null?void 0:e._p;if(r!==void 0){t._p=r+s;break}}n.tags.sort((t,i)=>{const s=b2(t),o=b2(i);return so?1:t._p-i._p})}}},XDe={meta:"content",link:"href",htmlAttrs:"lang"},QDe=["innerHTML","textContent"],JDe=n=>({hooks:{"tags:resolve":e=>{var r;const{tags:t}=e;let i;for(let a=0;aa.tag==="title"))==null?void 0:r.textContent)||"",s,o);for(const a of t){if(a.processTemplateParams===!1)continue;const l=XDe[a.tag];if(l&&typeof a.props[l]=="string")a.props[l]=mE(a.props[l],s,o);else if(a.processTemplateParams||a.tag==="titleTemplate"||a.tag==="title")for(const c of QDe)typeof a[c]=="string"&&(a[c]=mE(a[c],s,o,a.tag==="script"&&a.props.type.endsWith("json")))}n._templateParams=s,n._separator=o},"tags:afterResolve":({tags:e})=>{let t;for(let i=0;i{const{tags:e}=n;let t,i;for(let s=0;s{for(const e of n.tags)typeof e.innerHTML=="string"&&(e.innerHTML&&(e.props.type==="application/ld+json"||e.props.type==="application/json")?e.innerHTML=e.innerHTML.replace(/{a.dirty=!0,e.callHook("entries:updated",a)};let s=0,o=[];const r=[],a={plugins:r,dirty:!1,resolvedOptions:n,hooks:e,headEntries(){return o},use(l){const c=typeof l=="function"?l(a):l;(!c.key||!r.some(d=>d.key===c.key))&&(r.push(c),uZ(c.mode,t)&&e.addHooks(c.hooks||{}))},push(l,c){c==null||delete c.head;const d={_i:s++,input:l,...c};return uZ(d.mode,t)&&(o.push(d),i()),{dispose(){o=o.filter(u=>u._i!==d._i),i()},patch(u){for(const h of o)h._i===d._i&&(h.input=d.input=u);i()}}},async resolveTags(){const l={tags:[],entries:[...o]};await e.callHook("entries:resolve",l);for(const c of l.entries){const d=c.resolvedInput||c.input;if(c.resolvedInput=await(c.transform?c.transform(d):d),c.resolvedInput)for(const u of await ODe(c)){const h={tag:u,entry:c,resolvedOptions:a.resolvedOptions};await e.callHook("tag:normalise",h),l.tags.push(h.tag)}}return await e.callHook("tags:beforeResolve",l),await e.callHook("tags:resolve",l),await e.callHook("tags:afterResolve",l),l.tags},ssr:t};return[UDe,ZDe,KDe,GDe,YDe,JDe,eIe,tIe,...(n==null?void 0:n.plugins)||[]].forEach(l=>a.use(l)),a.hooks.callHook("init",a),a}function sIe(){return Xoe}const oIe=hoe[0]==="3";function rIe(n){return typeof n=="function"?n():j(n)}function C2(n){if(n instanceof Promise||n instanceof Date||n instanceof RegExp)return n;const e=rIe(n);if(!n||!e)return e;if(Array.isArray(e))return e.map(t=>C2(t));if(typeof e=="object"){const t={};for(const i in e)if(Object.prototype.hasOwnProperty.call(e,i)){if(i==="titleTemplate"||i[0]==="o"&&i[1]==="n"){t[i]=j(e[i]);continue}t[i]=C2(e[i])}return t}return e}const aIe={hooks:{"entries:resolve":n=>{for(const e of n.entries)e.resolvedInput=C2(e.input)}}},Qoe="usehead";function lIe(n){return{install(t){oIe&&(t.config.globalProperties.$unhead=n,t.config.globalProperties.$head=n,t.provide(Qoe,n))}}.install}function cIe(n={}){n.domDelayFn=n.domDelayFn||(t=>Go(()=>setTimeout(()=>t(),0)));const e=iIe(n);return e.use(aIe),e.install=lIe(e),e}const M8=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},P8="__unhead_injection_handler__";function dIe(n){M8[P8]=n}function uIe(){return P8 in M8?M8[P8]():Ui(Qoe)||sIe()}function hIe(n,e={}){const t=e.head||uIe();if(t)return t.ssr?t.push(n,e):fIe(t,n,e)}function fIe(n,e,t={}){const i=Ue(!1),s=Ue({});Qo(()=>{s.value=i.value?{}:C2(e)});const o=n.push(s.value,t);return Dn(s,a=>{o.patch(a)}),pc()&&(Jk(()=>{o.dispose()}),aV(()=>{i.value=!0}),rV(()=>{i.value=!1})),o}async function gIe(n){return null}let W_=null;async function pIe(){var i;if(W_)return W_;const n=document.getElementById("__NUXT_DATA__");if(!n)return{};const e=await mIe(n.textContent||""),t=n.dataset.src?await gIe(n.dataset.src):void 0;return W_={...e,...t,...window.__NUXT__},(i=W_.config)!=null&&i.public&&(W_.config.public=Ba(W_.config.public)),W_}async function mIe(n){return await LDe(n,In()._payloadRevivers)}function _Ie(n,e){In()._payloadRevivers[n]=e}const hZ={NuxtError:n=>XR(n),EmptyShallowRef:n=>Sg(n==="_"?void 0:n==="0n"?BigInt(0):xC(n)),EmptyRef:n=>Ue(n==="_"?void 0:n==="0n"?BigInt(0):xC(n)),ShallowRef:n=>Sg(n),ShallowReactive:n=>Kf(n),Ref:n=>Ue(n),Reactive:n=>Ba(n)},vIe=ua({name:"nuxt:revive-payload:client",order:-30,async setup(n){let e,t;for(const i in hZ)_Ie(i,hZ[i]);Object.assign(n.payload,([e,t]=Vv(()=>n.runWithContext(pIe)),e=await e,t(),e)),window.__NUXT__=n.payload}}),bIe=[],CIe=ua({name:"nuxt:head",enforce:"pre",setup(n){const e=cIe({plugins:bIe});dIe(()=>In().vueApp._context.provides.usehead),n.vueApp.use(e);{let t=!0;const i=async()=>{t=!1,await Yoe(e)};e.hooks.hook("dom:beforeRender",s=>{s.shouldRender=!t}),n.hooks.hook("page:start",()=>{t=!0}),n.hooks.hook("page:finish",()=>{n.isHydrating||i()}),n.hooks.hook("app:error",i),n.hooks.hook("app:suspense:resolve",i)}}});/*! * vue-router v4.2.5 * (c) 2023 Eduardo San Martin Morote * @license MIT */const t1=typeof window<"u";function wIe(n){return n.__esModule||n[Symbol.toStringTag]==="Module"}const is=Object.assign;function uF(n,e){const t={};for(const i in e){const s=e[i];t[i]=eu(s)?s.map(n):n(s)}return t}const ex=()=>{},eu=Array.isArray,yIe=/\/$/,SIe=n=>n.replace(yIe,"");function hF(n,e,t="/"){let i,s={},o="",r="";const a=e.indexOf("#");let l=e.indexOf("?");return a=0&&(l=-1),l>-1&&(i=e.slice(0,l),o=e.slice(l+1,a>-1?a:e.length),s=n(o)),a>-1&&(i=i||e.slice(0,a),r=e.slice(a,e.length)),i=DIe(i??e,t),{fullPath:i+(o&&"?")+o+r,path:i,query:s,hash:r}}function xIe(n,e){const t=e.query?n(e.query):"";return e.path+(t&&"?")+t+(e.hash||"")}function fZ(n,e){return!e||!n.toLowerCase().startsWith(e.toLowerCase())?n:n.slice(e.length)||"/"}function LIe(n,e,t){const i=e.matched.length-1,s=t.matched.length-1;return i>-1&&i===s&&LC(e.matched[i],t.matched[s])&&Joe(e.params,t.params)&&n(e.query)===n(t.query)&&e.hash===t.hash}function LC(n,e){return(n.aliasOf||n)===(e.aliasOf||e)}function Joe(n,e){if(Object.keys(n).length!==Object.keys(e).length)return!1;for(const t in n)if(!kIe(n[t],e[t]))return!1;return!0}function kIe(n,e){return eu(n)?gZ(n,e):eu(e)?gZ(e,n):n===e}function gZ(n,e){return eu(e)?n.length===e.length&&n.every((t,i)=>t===e[i]):n.length===1&&n[0]===e}function DIe(n,e){if(n.startsWith("/"))return n;if(!n)return e;const t=e.split("/"),i=n.split("/"),s=i[i.length-1];(s===".."||s===".")&&i.push("");let o=t.length-1,r,a;for(r=0;r1&&o--;else break;return t.slice(0,o).join("/")+"/"+i.slice(r-(r===i.length?1:0)).join("/")}var Qx;(function(n){n.pop="pop",n.push="push"})(Qx||(Qx={}));var tx;(function(n){n.back="back",n.forward="forward",n.unknown=""})(tx||(tx={}));function IIe(n){if(!n)if(t1){const e=document.querySelector("base");n=e&&e.getAttribute("href")||"/",n=n.replace(/^\w+:\/\/[^\/]+/,"")}else n="/";return n[0]!=="/"&&n[0]!=="#"&&(n="/"+n),SIe(n)}const EIe=/^[^#]+#/;function TIe(n,e){return n.replace(EIe,"#")+e}function NIe(n,e){const t=document.documentElement.getBoundingClientRect(),i=n.getBoundingClientRect();return{behavior:e.behavior,left:i.left-t.left-(e.left||0),top:i.top-t.top-(e.top||0)}}const QR=()=>({left:window.pageXOffset,top:window.pageYOffset});function AIe(n){let e;if("el"in n){const t=n.el,i=typeof t=="string"&&t.startsWith("#"),s=typeof t=="string"?i?document.getElementById(t.slice(1)):document.querySelector(t):t;if(!s)return;e=NIe(s,n)}else e=n;"scrollBehavior"in document.documentElement.style?window.scrollTo(e):window.scrollTo(e.left!=null?e.left:window.pageXOffset,e.top!=null?e.top:window.pageYOffset)}function pZ(n,e){return(history.state?history.state.position-e:-1)+n}const O8=new Map;function RIe(n,e){O8.set(n,e)}function MIe(n){const e=O8.get(n);return O8.delete(n),e}let PIe=()=>location.protocol+"//"+location.host;function ere(n,e){const{pathname:t,search:i,hash:s}=e,o=n.indexOf("#");if(o>-1){let a=s.includes(n.slice(o))?n.slice(o).length:1,l=s.slice(a);return l[0]!=="/"&&(l="/"+l),fZ(l,"")}return fZ(t,n)+i+s}function OIe(n,e,t,i){let s=[],o=[],r=null;const a=({state:h})=>{const f=ere(n,location),g=t.value,p=e.value;let _=0;if(h){if(t.value=f,e.value=h,r&&r===g){r=null;return}_=p?h.position-p.position:0}else i(f);s.forEach(b=>{b(t.value,g,{delta:_,type:Qx.pop,direction:_?_>0?tx.forward:tx.back:tx.unknown})})};function l(){r=t.value}function c(h){s.push(h);const f=()=>{const g=s.indexOf(h);g>-1&&s.splice(g,1)};return o.push(f),f}function d(){const{history:h}=window;h.state&&h.replaceState(is({},h.state,{scroll:QR()}),"")}function u(){for(const h of o)h();o=[],window.removeEventListener("popstate",a),window.removeEventListener("beforeunload",d)}return window.addEventListener("popstate",a),window.addEventListener("beforeunload",d,{passive:!0}),{pauseListeners:l,listen:c,destroy:u}}function mZ(n,e,t,i=!1,s=!1){return{back:n,current:e,forward:t,replaced:i,position:window.history.length,scroll:s?QR():null}}function FIe(n){const{history:e,location:t}=window,i={value:ere(n,t)},s={value:e.state};s.value||o(i.value,{back:null,current:i.value,forward:null,position:e.length-1,replaced:!0,scroll:null},!0);function o(l,c,d){const u=n.indexOf("#"),h=u>-1?(t.host&&document.querySelector("base")?n:n.slice(u))+l:PIe()+n+l;try{e[d?"replaceState":"pushState"](c,"",h),s.value=c}catch(f){console.error(f),t[d?"replace":"assign"](h)}}function r(l,c){const d=is({},e.state,mZ(s.value.back,l,s.value.forward,!0),c,{position:s.value.position});o(l,d,!0),i.value=l}function a(l,c){const d=is({},s.value,e.state,{forward:l,scroll:QR()});o(d.current,d,!0);const u=is({},mZ(i.value,l,null),{position:d.position+1},c);o(l,u,!1),i.value=l}return{location:i,state:s,push:a,replace:r}}function tre(n){n=IIe(n);const e=FIe(n),t=OIe(n,e.state,e.location,e.replace);function i(o,r=!0){r||t.pauseListeners(),history.go(o)}const s=is({location:"",base:n,go:i,createHref:TIe.bind(null,n)},e,t);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>e.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>e.state.value}),s}function BIe(n){return n=location.host?n||location.pathname+location.search:"",n.includes("#")||(n+="#"),tre(n)}function WIe(n){return typeof n=="string"||n&&typeof n=="object"}function ire(n){return typeof n=="string"||typeof n=="symbol"}const Ld={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},nre=Symbol("");var _Z;(function(n){n[n.aborted=4]="aborted",n[n.cancelled=8]="cancelled",n[n.duplicated=16]="duplicated"})(_Z||(_Z={}));function kC(n,e){return is(new Error,{type:n,[nre]:!0},e)}function lf(n,e){return n instanceof Error&&nre in n&&(e==null||!!(n.type&e))}const vZ="[^/]+?",HIe={sensitive:!1,strict:!1,start:!0,end:!0},VIe=/[.+*?^${}()[\]/\\]/g;function zIe(n,e){const t=is({},HIe,e),i=[];let s=t.start?"^":"";const o=[];for(const c of n){const d=c.length?[]:[90];t.strict&&!c.length&&(s+="/");for(let u=0;ue.length?e.length===1&&e[0]===80?1:-1:0}function UIe(n,e){let t=0;const i=n.score,s=e.score;for(;t0&&e[e.length-1]<0}const jIe={type:0,value:""},KIe=/[a-zA-Z0-9_]/;function qIe(n){if(!n)return[[]];if(n==="/")return[[jIe]];if(!n.startsWith("/"))throw new Error(`Invalid path "${n}"`);function e(f){throw new Error(`ERR (${t})/"${c}": ${f}`)}let t=0,i=t;const s=[];let o;function r(){o&&s.push(o),o=[]}let a=0,l,c="",d="";function u(){c&&(t===0?o.push({type:0,value:c}):t===1||t===2||t===3?(o.length>1&&(l==="*"||l==="+")&&e(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),o.push({type:1,value:c,regexp:d,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):e("Invalid state to consume buffer"),c="")}function h(){c+=l}for(;a{r(w)}:ex}function r(d){if(ire(d)){const u=i.get(d);u&&(i.delete(d),t.splice(t.indexOf(u),1),u.children.forEach(r),u.alias.forEach(r))}else{const u=t.indexOf(d);u>-1&&(t.splice(u,1),d.record.name&&i.delete(d.record.name),d.children.forEach(r),d.alias.forEach(r))}}function a(){return t}function l(d){let u=0;for(;u=0&&(d.record.path!==t[u].record.path||!sre(d,t[u]));)u++;t.splice(u,0,d),d.record.name&&!wZ(d)&&i.set(d.record.name,d)}function c(d,u){let h,f={},g,p;if("name"in d&&d.name){if(h=i.get(d.name),!h)throw kC(1,{location:d});p=h.record.name,f=is(CZ(u.params,h.keys.filter(w=>!w.optional).map(w=>w.name)),d.params&&CZ(d.params,h.keys.map(w=>w.name))),g=h.stringify(f)}else if("path"in d)g=d.path,h=t.find(w=>w.re.test(g)),h&&(f=h.parse(g),p=h.record.name);else{if(h=u.name?i.get(u.name):t.find(w=>w.re.test(u.path)),!h)throw kC(1,{location:d,currentLocation:u});p=h.record.name,f=is({},u.params,d.params),g=h.stringify(f)}const _=[];let b=h;for(;b;)_.unshift(b.record),b=b.parent;return{name:p,path:g,params:f,matched:_,meta:QIe(_)}}return n.forEach(d=>o(d)),{addRoute:o,resolve:c,removeRoute:r,getRoutes:a,getRecordMatcher:s}}function CZ(n,e){const t={};for(const i of e)i in n&&(t[i]=n[i]);return t}function YIe(n){return{path:n.path,redirect:n.redirect,name:n.name,meta:n.meta||{},aliasOf:void 0,beforeEnter:n.beforeEnter,props:XIe(n),children:n.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in n?n.components||null:n.component&&{default:n.component}}}function XIe(n){const e={},t=n.props||!1;if("component"in n)e.default=t;else for(const i in n.components)e[i]=typeof t=="object"?t[i]:t;return e}function wZ(n){for(;n;){if(n.record.aliasOf)return!0;n=n.parent}return!1}function QIe(n){return n.reduce((e,t)=>is(e,t.meta),{})}function yZ(n,e){const t={};for(const i in n)t[i]=i in e?e[i]:n[i];return t}function sre(n,e){return e.children.some(t=>t===n||sre(n,t))}const ore=/#/g,JIe=/&/g,eEe=/\//g,tEe=/=/g,iEe=/\?/g,rre=/\+/g,nEe=/%5B/g,sEe=/%5D/g,are=/%5E/g,oEe=/%60/g,lre=/%7B/g,rEe=/%7C/g,cre=/%7D/g,aEe=/%20/g;function SV(n){return encodeURI(""+n).replace(rEe,"|").replace(nEe,"[").replace(sEe,"]")}function lEe(n){return SV(n).replace(lre,"{").replace(cre,"}").replace(are,"^")}function F8(n){return SV(n).replace(rre,"%2B").replace(aEe,"+").replace(ore,"%23").replace(JIe,"%26").replace(oEe,"`").replace(lre,"{").replace(cre,"}").replace(are,"^")}function cEe(n){return F8(n).replace(tEe,"%3D")}function dEe(n){return SV(n).replace(ore,"%23").replace(iEe,"%3F")}function uEe(n){return n==null?"":dEe(n).replace(eEe,"%2F")}function w2(n){try{return decodeURIComponent(""+n)}catch{}return""+n}function hEe(n){const e={};if(n===""||n==="?")return e;const i=(n[0]==="?"?n.slice(1):n).split("&");for(let s=0;so&&F8(o)):[i&&F8(i)]).forEach(o=>{o!==void 0&&(e+=(e.length?"&":"")+t,o!=null&&(e+="="+o))})}return e}function fEe(n){const e={};for(const t in n){const i=n[t];i!==void 0&&(e[t]=eu(i)?i.map(s=>s==null?null:""+s):i==null?i:""+i)}return e}const dre=Symbol(""),xZ=Symbol(""),xV=Symbol(""),LV=Symbol(""),B8=Symbol("");function Ly(){let n=[];function e(i){return n.push(i),()=>{const s=n.indexOf(i);s>-1&&n.splice(s,1)}}function t(){n=[]}return{add:e,list:()=>n.slice(),reset:t}}function gEe(n,e,t){const i=()=>{n[e].delete(t)};uo(i),aV(i),rV(()=>{n[e].add(t)}),n[e].add(t)}function Pmt(n){const e=Ui(dre,{}).value;e&&gEe(e,"leaveGuards",n)}function Dp(n,e,t,i,s){const o=i&&(i.enterCallbacks[s]=i.enterCallbacks[s]||[]);return()=>new Promise((r,a)=>{const l=u=>{u===!1?a(kC(4,{from:t,to:e})):u instanceof Error?a(u):WIe(u)?a(kC(2,{from:e,to:u})):(o&&i.enterCallbacks[s]===o&&typeof u=="function"&&o.push(u),r())},c=n.call(i&&i.instances[s],e,t,l);let d=Promise.resolve(c);n.length<3&&(d=d.then(l)),d.catch(u=>a(u))})}function fF(n,e,t,i){const s=[];for(const o of n)for(const r in o.components){let a=o.components[r];if(!(e!=="beforeRouteEnter"&&!o.instances[r]))if(pEe(a)){const c=(a.__vccOpts||a)[e];c&&s.push(Dp(c,t,i,o,r))}else{let l=a();s.push(()=>l.then(c=>{if(!c)return Promise.reject(new Error(`Couldn't resolve component "${r}" at "${o.path}"`));const d=wIe(c)?c.default:c;o.components[r]=d;const h=(d.__vccOpts||d)[e];return h&&Dp(h,t,i,o,r)()}))}}return s}function pEe(n){return typeof n=="object"||"displayName"in n||"props"in n||"__vccOpts"in n}function LZ(n){const e=Ui(xV),t=Ui(LV),i=ue(()=>e.resolve(j(n.to))),s=ue(()=>{const{matched:l}=i.value,{length:c}=l,d=l[c-1],u=t.matched;if(!d||!u.length)return-1;const h=u.findIndex(LC.bind(null,d));if(h>-1)return h;const f=kZ(l[c-2]);return c>1&&kZ(d)===f&&u[u.length-1].path!==f?u.findIndex(LC.bind(null,l[c-2])):h}),o=ue(()=>s.value>-1&&bEe(t.params,i.value.params)),r=ue(()=>s.value>-1&&s.value===t.matched.length-1&&Joe(t.params,i.value.params));function a(l={}){return vEe(l)?e[j(n.replace)?"replace":"push"](j(n.to)).catch(ex):Promise.resolve()}return{route:i,href:ue(()=>i.value.href),isActive:o,isExactActive:r,navigate:a}}const mEe=kt({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:LZ,setup(n,{slots:e}){const t=Ba(LZ(n)),{options:i}=Ui(xV),s=ue(()=>({[DZ(n.activeClass,i.linkActiveClass,"router-link-active")]:t.isActive,[DZ(n.exactActiveClass,i.linkExactActiveClass,"router-link-exact-active")]:t.isExactActive}));return()=>{const o=e.default&&e.default(t);return n.custom?o:$i("a",{"aria-current":t.isExactActive?n.ariaCurrentValue:null,href:t.href,onClick:t.navigate,class:s.value},o)}}}),_Ee=mEe;function vEe(n){if(!(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey)&&!n.defaultPrevented&&!(n.button!==void 0&&n.button!==0)){if(n.currentTarget&&n.currentTarget.getAttribute){const e=n.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return n.preventDefault&&n.preventDefault(),!0}}function bEe(n,e){for(const t in e){const i=e[t],s=n[t];if(typeof i=="string"){if(i!==s)return!1}else if(!eu(s)||s.length!==i.length||i.some((o,r)=>o!==s[r]))return!1}return!0}function kZ(n){return n?n.aliasOf?n.aliasOf.path:n.path:""}const DZ=(n,e,t)=>n??e??t,CEe=kt({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(n,{attrs:e,slots:t}){const i=Ui(B8),s=ue(()=>n.route||i.value),o=Ui(xZ,0),r=ue(()=>{let c=j(o);const{matched:d}=s.value;let u;for(;(u=d[c])&&!u.components;)c++;return c}),a=ue(()=>s.value.matched[r.value]);os(xZ,ue(()=>r.value+1)),os(dre,a),os(B8,s);const l=Ue();return Dn(()=>[l.value,a.value,n.name],([c,d,u],[h,f,g])=>{d&&(d.instances[u]=c,f&&f!==d&&c&&c===h&&(d.leaveGuards.size||(d.leaveGuards=f.leaveGuards),d.updateGuards.size||(d.updateGuards=f.updateGuards))),c&&d&&(!f||!LC(d,f)||!h)&&(d.enterCallbacks[u]||[]).forEach(p=>p(c))},{flush:"post"}),()=>{const c=s.value,d=n.name,u=a.value,h=u&&u.components[d];if(!h)return IZ(t.default,{Component:h,route:c});const f=u.props[d],g=f?f===!0?c.params:typeof f=="function"?f(c):f:null,_=$i(h,is({},g,e,{onVnodeUnmounted:b=>{b.component.isUnmounted&&(u.instances[d]=null)},ref:l}));return IZ(t.default,{Component:_,route:c})||_}}});function IZ(n,e){if(!n)return null;const t=n(e);return t.length===1?t[0]:t}const ure=CEe;function wEe(n){const e=ZIe(n.routes,n),t=n.parseQuery||hEe,i=n.stringifyQuery||SZ,s=n.history,o=Ly(),r=Ly(),a=Ly(),l=Sg(Ld);let c=Ld;t1&&n.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const d=uF.bind(null,Se=>""+Se),u=uF.bind(null,uEe),h=uF.bind(null,w2);function f(Se,Qe){let nt,mt;return ire(Se)?(nt=e.getRecordMatcher(Se),mt=Qe):mt=Se,e.addRoute(mt,nt)}function g(Se){const Qe=e.getRecordMatcher(Se);Qe&&e.removeRoute(Qe)}function p(){return e.getRoutes().map(Se=>Se.record)}function _(Se){return!!e.getRecordMatcher(Se)}function b(Se,Qe){if(Qe=is({},Qe||l.value),typeof Se=="string"){const ie=hF(t,Se,Qe.path),ye=e.resolve({path:ie.path},Qe),ze=s.createHref(ie.fullPath);return is(ie,ye,{params:h(ye.params),hash:w2(ie.hash),redirectedFrom:void 0,href:ze})}let nt;if("path"in Se)nt=is({},Se,{path:hF(t,Se.path,Qe.path).path});else{const ie=is({},Se.params);for(const ye in ie)ie[ye]==null&&delete ie[ye];nt=is({},Se,{params:u(ie)}),Qe.params=u(Qe.params)}const mt=e.resolve(nt,Qe),Je=Se.hash||"";mt.params=d(h(mt.params));const Ii=xIe(i,is({},Se,{hash:lEe(Je),path:mt.path})),J=s.createHref(Ii);return is({fullPath:Ii,hash:Je,query:i===SZ?fEe(Se.query):Se.query||{}},mt,{redirectedFrom:void 0,href:J})}function w(Se){return typeof Se=="string"?hF(t,Se,l.value.path):is({},Se)}function y(Se,Qe){if(c!==Se)return kC(8,{from:Qe,to:Se})}function S(Se){return D(Se)}function x(Se){return S(is(w(Se),{replace:!0}))}function k(Se){const Qe=Se.matched[Se.matched.length-1];if(Qe&&Qe.redirect){const{redirect:nt}=Qe;let mt=typeof nt=="function"?nt(Se):nt;return typeof mt=="string"&&(mt=mt.includes("?")||mt.includes("#")?mt=w(mt):{path:mt},mt.params={}),is({query:Se.query,hash:Se.hash,params:"path"in mt?{}:Se.params},mt)}}function D(Se,Qe){const nt=c=b(Se),mt=l.value,Je=Se.state,Ii=Se.force,J=Se.replace===!0,ie=k(nt);if(ie)return D(is(w(ie),{state:typeof ie=="object"?is({},Je,ie.state):Je,force:Ii,replace:J}),Qe||nt);const ye=nt;ye.redirectedFrom=Qe;let ze;return!Ii&&LIe(i,mt,nt)&&(ze=kC(16,{to:ye,from:mt}),We(mt,mt,!0,!1)),(ze?Promise.resolve(ze):P(ye,mt)).catch(Oe=>lf(Oe)?lf(Oe,2)?Oe:lt(Oe):me(Oe,ye,mt)).then(Oe=>{if(Oe){if(lf(Oe,2))return D(is({replace:J},w(Oe.to),{state:typeof Oe.to=="object"?is({},Je,Oe.to.state):Je,force:Ii}),Qe||ye)}else Oe=M(ye,mt,!0,J,Je);return O(ye,mt,Oe),Oe})}function I(Se,Qe){const nt=y(Se,Qe);return nt?Promise.reject(nt):Promise.resolve()}function N(Se){const Qe=Zt.values().next().value;return Qe&&typeof Qe.runWithContext=="function"?Qe.runWithContext(Se):Se()}function P(Se,Qe){let nt;const[mt,Je,Ii]=yEe(Se,Qe);nt=fF(mt.reverse(),"beforeRouteLeave",Se,Qe);for(const ie of mt)ie.leaveGuards.forEach(ye=>{nt.push(Dp(ye,Se,Qe))});const J=I.bind(null,Se,Qe);return nt.push(J),ni(nt).then(()=>{nt=[];for(const ie of o.list())nt.push(Dp(ie,Se,Qe));return nt.push(J),ni(nt)}).then(()=>{nt=fF(Je,"beforeRouteUpdate",Se,Qe);for(const ie of Je)ie.updateGuards.forEach(ye=>{nt.push(Dp(ye,Se,Qe))});return nt.push(J),ni(nt)}).then(()=>{nt=[];for(const ie of Ii)if(ie.beforeEnter)if(eu(ie.beforeEnter))for(const ye of ie.beforeEnter)nt.push(Dp(ye,Se,Qe));else nt.push(Dp(ie.beforeEnter,Se,Qe));return nt.push(J),ni(nt)}).then(()=>(Se.matched.forEach(ie=>ie.enterCallbacks={}),nt=fF(Ii,"beforeRouteEnter",Se,Qe),nt.push(J),ni(nt))).then(()=>{nt=[];for(const ie of r.list())nt.push(Dp(ie,Se,Qe));return nt.push(J),ni(nt)}).catch(ie=>lf(ie,8)?ie:Promise.reject(ie))}function O(Se,Qe,nt){a.list().forEach(mt=>N(()=>mt(Se,Qe,nt)))}function M(Se,Qe,nt,mt,Je){const Ii=y(Se,Qe);if(Ii)return Ii;const J=Qe===Ld,ie=t1?history.state:{};nt&&(mt||J?s.replace(Se.fullPath,is({scroll:J&&ie&&ie.scroll},Je)):s.push(Se.fullPath,Je)),l.value=Se,We(Se,Qe,nt,J),lt()}let z;function K(){z||(z=s.listen((Se,Qe,nt)=>{if(!Oi.listening)return;const mt=b(Se),Je=k(mt);if(Je){D(is(Je,{replace:!0}),mt).catch(ex);return}c=mt;const Ii=l.value;t1&&RIe(pZ(Ii.fullPath,nt.delta),QR()),P(mt,Ii).catch(J=>lf(J,12)?J:lf(J,2)?(D(J.to,mt).then(ie=>{lf(ie,20)&&!nt.delta&&nt.type===Qx.pop&&s.go(-1,!1)}).catch(ex),Promise.reject()):(nt.delta&&s.go(-nt.delta,!1),me(J,mt,Ii))).then(J=>{J=J||M(mt,Ii,!1),J&&(nt.delta&&!lf(J,8)?s.go(-nt.delta,!1):nt.type===Qx.pop&&lf(J,20)&&s.go(-1,!1)),O(mt,Ii,J)}).catch(ex)}))}let ae=Ly(),se=Ly(),he;function me(Se,Qe,nt){lt(Se);const mt=se.list();return mt.length?mt.forEach(Je=>Je(Se,Qe,nt)):console.error(Se),Promise.reject(Se)}function De(){return he&&l.value!==Ld?Promise.resolve():new Promise((Se,Qe)=>{ae.add([Se,Qe])})}function lt(Se){return he||(he=!Se,K(),ae.list().forEach(([Qe,nt])=>Se?nt(Se):Qe()),ae.reset()),Se}function We(Se,Qe,nt,mt){const{scrollBehavior:Je}=n;if(!t1||!Je)return Promise.resolve();const Ii=!nt&&MIe(pZ(Se.fullPath,0))||(mt||!nt)&&history.state&&history.state.scroll||null;return Go().then(()=>Je(Se,Qe,Ii)).then(J=>J&&AIe(J)).catch(J=>me(J,Se,Qe))}const Ve=Se=>s.go(Se);let Me;const Zt=new Set,Oi={currentRoute:l,listening:!0,addRoute:f,removeRoute:g,hasRoute:_,getRoutes:p,resolve:b,options:n,push:S,replace:x,go:Ve,back:()=>Ve(-1),forward:()=>Ve(1),beforeEach:o.add,beforeResolve:r.add,afterEach:a.add,onError:se.add,isReady:De,install(Se){const Qe=this;Se.component("RouterLink",_Ee),Se.component("RouterView",ure),Se.config.globalProperties.$router=Qe,Object.defineProperty(Se.config.globalProperties,"$route",{enumerable:!0,get:()=>j(l)}),t1&&!Me&&l.value===Ld&&(Me=!0,S(s.location).catch(Je=>{}));const nt={};for(const Je in Ld)Object.defineProperty(nt,Je,{get:()=>l.value[Je],enumerable:!0});Se.provide(xV,Qe),Se.provide(LV,Kf(nt)),Se.provide(B8,l);const mt=Se.unmount;Zt.add(Se),Se.unmount=function(){Zt.delete(Se),Zt.size<1&&(c=Ld,z&&z(),z=null,l.value=Ld,Me=!1,he=!1),mt()}}};function ni(Se){return Se.reduce((Qe,nt)=>Qe.then(()=>N(nt)),Promise.resolve())}return Oi}function yEe(n,e){const t=[],i=[],s=[],o=Math.max(e.matched.length,n.matched.length);for(let r=0;rLC(c,a))?i.push(a):t.push(a));const l=n.matched[r];l&&(e.matched.find(c=>LC(c,l))||s.push(l))}return[t,i,s]}function SEe(){return Ui(LV)}const xEe=(n,e)=>e.path.replace(/(:\w+)\([^)]+\)/g,"$1").replace(/(:\w+)[?+*]/g,"$1").replace(/:\w+/g,t=>{var i;return((i=n.params[t.slice(1)])==null?void 0:i.toString())||""}),W8=(n,e)=>{const t=n.route.matched.find(s=>{var o;return((o=s.components)==null?void 0:o.default)===n.Component.type}),i=e??(t==null?void 0:t.meta.key)??(t&&xEe(n.route,t));return typeof i=="function"?i(n.route):i},LEe=(n,e)=>({default:()=>n?$i(JSe,n===!0?{}:n,e):e});function kV(n){return Array.isArray(n)?n:[n]}const kEe="modulepreload",DEe=function(n,e){return new URL(n,e).href},EZ={},je=function(e,t,i){let s=Promise.resolve();if(t&&t.length>0){const r=document.getElementsByTagName("link"),a=document.querySelector("meta[property=csp-nonce]"),l=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));s=Promise.allSettled(t.map(c=>{if(c=DEe(c,i),c in EZ)return;EZ[c]=!0;const d=c.endsWith(".css"),u=d?'[rel="stylesheet"]':"";if(!!i)for(let g=r.length-1;g>=0;g--){const p=r[g];if(p.href===c&&(!d||p.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${c}"]${u}`))return;const f=document.createElement("link");if(f.rel=d?"stylesheet":kEe,d||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),d)return new Promise((g,p)=>{f.addEventListener("load",g),f.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(r){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=r,window.dispatchEvent(a),!a.defaultPrevented)throw r}return s.then(r=>{for(const a of r||[])a.status==="rejected"&&o(a.reason);return e().catch(o)})},IEe={middleware:["has-plan-middleware"]},gF=[{name:"backtest-id",path:"/backtest/:id()",component:()=>je(()=>import("./E1yjnBiT.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]),import.meta.url)},{name:"backtest-benchmark",path:"/backtest/benchmark",meta:IEe||{},component:()=>je(()=>import("./CP8nbYEq.js"),__vite__mapDeps([21,1,2,3,19]),import.meta.url)},{name:"backtest-history",path:"/backtest/history",component:()=>je(()=>import("./DyLYGjHh.js"),__vite__mapDeps([22,1,2,3,14,15,23,24,25,16,17,19]),import.meta.url)},{name:"backtest",path:"/backtest",component:()=>je(()=>import("./HeqvyViL.js"),[],import.meta.url)},{name:"candles",path:"/candles",component:()=>je(()=>import("./DGRk4fvy.js"),__vite__mapDeps([26,10,15,8,24,25,19]),import.meta.url)},{name:"candles-manage",path:"/candles/manage",component:()=>je(()=>import("./rKxcFsZi.js"),__vite__mapDeps([27,8,23,24,25]),import.meta.url)},{name:"exchange-api-keys",path:"/exchange-api-keys",component:()=>je(()=>import("./Bad53t6V.js"),__vite__mapDeps([28,10,4,29,19]),import.meta.url)},{name:"index",path:"/",component:()=>je(()=>import("./rUbGlJbN.js"),__vite__mapDeps([30,19]),import.meta.url)},{name:"live-id",path:"/live/:id()",component:()=>je(()=>import("./BJ5jdafP.js"),__vite__mapDeps([31,32,2,33,34,35,4,36,37,5,6,7,8,9,10,11,14,13,18,12,15,38,17,19,20]),import.meta.url)},{name:"live-history",path:"/live/history",component:()=>je(()=>import("./BwHcMc3Y.js"),__vite__mapDeps([39,32,2,33,14,40,15,23,24,25,38,17,19]),import.meta.url)},{name:"live",path:"/live",component:()=>je(()=>import("./CwDv50qJ.js"),[],import.meta.url)},{name:"live-orders-history",path:"/live/orders-history",component:()=>je(()=>import("./O-0jUIAi.js"),__vite__mapDeps([41,32,2,33,14,15,23,24,25,36,19]),import.meta.url)},{name:"live-overview",path:"/live/overview",component:()=>je(()=>import("./CvkRSmvA.js"),__vite__mapDeps([42,32,2,33,12,13,40,15,23,24,25,19,20]),import.meta.url)},{name:"live-trades-history",path:"/live/trades-history",component:()=>je(()=>import("./zIqOaAtZ.js"),__vite__mapDeps([43,32,2,33,14,15,23,24,25,34,35,4,36,19]),import.meta.url)},{name:"monte-carlo-id",path:"/monte-carlo/:id()",component:()=>je(()=>import("./qXRMwz9A.js"),__vite__mapDeps([44,37,4,7,8,9,24,25,13,14,45,35,46,17,19,47,48]),import.meta.url)},{name:"monte-carlo-history",path:"/monte-carlo/history",component:()=>je(()=>import("./CUKaiP0K.js"),__vite__mapDeps([49,14,15,23,24,25,46,17,19]),import.meta.url)},{name:"monte-carlo",path:"/monte-carlo",component:()=>je(()=>import("./dUAF8qyF.js"),__vite__mapDeps([50,14,10,11,9,19,51]),import.meta.url)},{name:"notification-api-keys",path:"/notification-api-keys",component:()=>je(()=>import("./Du3IqvzK.js"),__vite__mapDeps([52,10,4,29,19]),import.meta.url)},{name:"optimization-id",path:"/optimization/:id()",component:()=>je(()=>import("./BMl_rFTw.js"),__vite__mapDeps([53,37,4,8,7,9,14,13,5,6,45,35,54,17,19,47,55]),import.meta.url)},{name:"optimization-history",path:"/optimization/history",component:()=>je(()=>import("./DmtRXgke.js"),__vite__mapDeps([56,14,15,23,24,25,54,17,19]),import.meta.url)},{name:"optimization",path:"/optimization",component:()=>je(()=>import("./BFk92hFI.js"),__vite__mapDeps([57,14,10,11,9,19]),import.meta.url)},{name:"strategies-name",path:"/strategies/:name()",component:()=>je(()=>import("./BaOuBgqt.js"),__vite__mapDeps([58,59,60,17,19]),import.meta.url)},{name:"strategies",path:"/strategies",component:()=>je(()=>import("./B1vp6HhI.js"),__vite__mapDeps([61,45,10,14,59,60,15,8,12,13,19,62]),import.meta.url)}];/** * @vue/shared v3.5.22 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/const pF=n=>typeof n=="function",EEe=n=>n!==null&&typeof n=="object",TEe=n=>(EEe(n)||pF(n))&&pF(n.then)&&pF(n.catch),hre=(n,e,t)=>(e=e===!0?{}:e,{default:()=>{var i;return e?$i(n,e,t):(i=t.default)==null?void 0:i.call(t)}});function TZ(n){const e=(n==null?void 0:n.meta.key)??n.path.replace(/(:\w+)\([^)]+\)/g,"$1").replace(/(:\w+)[?+*]/g,"$1").replace(/:\w+/g,t=>{var i;return((i=n.params[t.slice(1)])==null?void 0:i.toString())||""});return typeof e=="function"?e(n):e}function NEe(n,e){return n===e||e===Ld?!1:TZ(n)!==TZ(e)?!0:!n.matched.every((i,s)=>{var o,r;return i.components&&i.components.default===((r=(o=e.matched[s])==null?void 0:o.components)==null?void 0:r.default)})}function mF(n,e=!1){if(n){if(n.nodeName==="#comment"&&n.nodeValue==="[")return fre(n,[],e);if(e){const t=n.cloneNode(!0);return t.querySelectorAll("[data-island-slot]").forEach(i=>{i.innerHTML=""}),[t.outerHTML]}return[n.outerHTML]}return null}function fre(n,e=[],t=!1){if(n&&n.nodeName){if(REe(n))return e;if(!AEe(n)){const i=n.cloneNode(!0);t&&i.querySelectorAll("[data-island-slot]").forEach(s=>{s.innerHTML=""}),e.push(i.outerHTML)}fre(n.nextSibling,e,t)}return e}function AEe(n){return n.nodeName==="#comment"&&n.nodeValue==="["}function REe(n){return n.nodeName==="#comment"&&n.nodeValue==="]"}const MEe={scrollBehavior(n,e,t){var c;const i=In(),s=((c=Fr().options)==null?void 0:c.scrollBehaviorType)??"auto";let o=t||void 0;const r=typeof n.meta.scrollToTop=="function"?n.meta.scrollToTop(n,e):n.meta.scrollToTop;if(!o&&e&&n&&r!==!1&&NEe(n,e)&&(o={left:0,top:0}),n.path===e.path)return e.hash&&!n.hash?{left:0,top:0}:n.hash?{el:n.hash,top:NZ(n.hash),behavior:s}:!1;const a=d=>!!(d.meta.pageTransition??L8),l=a(e)&&a(n)?"page:transition:finish":"page:finish";return new Promise(d=>{i.hooks.hookOnce(l,async()=>{await new Promise(u=>setTimeout(u,0)),n.hash&&(o={el:n.hash,top:NZ(n.hash),behavior:s}),d(o)})})}};function NZ(n){try{const e=document.querySelector(n);if(e)return(Number.parseFloat(getComputedStyle(e).scrollMarginTop)||0)+(Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop)||0)}catch{}return 0}const PEe={hashMode:!0,scrollBehaviorType:"auto"},Rc={...PEe,...MEe},OEe=async n=>{var l;let e,t;if(!((l=n.meta)!=null&&l.validate))return;const i=In(),s=Fr(),o=([e,t]=Vv(()=>Promise.resolve(n.meta.validate(n))),e=await e,t(),e);if(o===!0)return;const r=XR({statusCode:o&&o.statusCode||404,statusMessage:o&&o.statusMessage||`Page Not Found: ${n.fullPath}`,data:{path:n.fullPath}}),a=s.beforeResolve(c=>{if(a(),c===n){const d=s.afterEach(async()=>{d(),await i.runWithContext(()=>d1(r)),window==null||window.history.pushState({},"",n.fullPath)});return!1}})},FEe=[OEe],ix={"has-plan-middleware":()=>je(()=>import("./CvlXmOiu.js"),[],import.meta.url)};function BEe(n,e,t){const{pathname:i,search:s,hash:o}=e,r=n.indexOf("#");if(r>-1){const c=o.includes(n.slice(r))?n.slice(r).length:1;let d=o.slice(c);return d[0]!=="/"&&(d="/"+d),JG(d,"")}const a=JG(i,n),l=!t||pke(a,t,{trailingSlash:!0})?a:t;return l+(l.includes("?")?"":s)+o}const WEe=ua({name:"nuxt:router",enforce:"pre",async setup(n){var _;let e,t,i=Tm().app.baseURL;Rc.hashMode&&!i.includes("#")&&(i+="#");const s=((_=Rc.history)==null?void 0:_.call(Rc,i))??(Rc.hashMode?BIe(i):tre(i)),o=Rc.routes?([e,t]=Vv(()=>Rc.routes(gF)),e=await e,t(),e??gF):gF;let r;const a=wEe({...Rc,scrollBehavior:(b,w,y)=>{if(w===Ld){r=y;return}if(Rc.scrollBehavior){if(a.options.scrollBehavior=Rc.scrollBehavior,"scrollRestoration"in window.history){const S=a.beforeEach(()=>{S(),window.history.scrollRestoration="manual"})}return Rc.scrollBehavior(b,Ld,r||y)}},history:s,routes:o});"scrollRestoration"in window.history&&(window.history.scrollRestoration="auto"),n.vueApp.use(a);const l=Sg(a.currentRoute.value);a.afterEach((b,w)=>{l.value=w}),Object.defineProperty(n.vueApp.config.globalProperties,"previousRoute",{get:()=>l.value});const c=BEe(i,window.location,n.payload.path),d=Sg(a.currentRoute.value),u=()=>{d.value=a.currentRoute.value};n.hook("page:finish",u),a.afterEach((b,w)=>{var y,S,x,k;((S=(y=b.matched[0])==null?void 0:y.components)==null?void 0:S.default)===((k=(x=w.matched[0])==null?void 0:x.components)==null?void 0:k.default)&&u()});const h={};for(const b in d.value)Object.defineProperty(h,b,{get:()=>d.value[b],enumerable:!0});n._route=Kf(h),n._middleware=n._middleware||{global:[],named:{}};const f=YR();a.afterEach(async(b,w,y)=>{delete n._processingMiddleware,!n.isHydrating&&f.value&&await n.runWithContext(gDe),y&&await n.callHook("page:loading:end"),b.matched.length===0&&await n.runWithContext(()=>d1(I8({statusCode:404,fatal:!1,statusMessage:`Page not found: ${b.fullPath}`,data:{path:b.fullPath}})))});try{[e,t]=Vv(()=>a.isReady()),await e,t()}catch(b){[e,t]=Vv(()=>n.runWithContext(()=>d1(b))),await e,t()}const g=c!==a.currentRoute.value.fullPath?a.resolve(c):a.currentRoute.value;u();const p=n.payload.state._layout;return a.beforeEach(async(b,w)=>{var y;await n.callHook("page:loading:start"),b.meta=Ba(b.meta),n.isHydrating&&p&&!Dm(b.meta.layout)&&(b.meta.layout=p),n._processingMiddleware=!0;{const S=new Set([...FEe,...n._middleware.global]);for(const x of b.matched){const k=x.meta.middleware;if(k)for(const D of kV(k))S.add(D)}for(const x of S){const k=typeof x=="string"?n._middleware.named[x]||await((y=ix[x])==null?void 0:y.call(ix).then(I=>I.default||I)):x;if(!k)throw new Error(`Unknown route middleware: '${x}'.`);const D=await n.runWithContext(()=>k(b,w));if(!n.payload.serverRendered&&n.isHydrating&&(D===!1||D instanceof Error)){const I=D||I8({statusCode:404,statusMessage:`Page Not Found: ${c}`});return await n.runWithContext(()=>d1(I)),!1}if(D!==!0&&(D||D===!1))return D}}}),a.onError(async()=>{delete n._processingMiddleware,await n.callHook("page:loading:end")}),n.hooks.hookOnce("app:created",async()=>{try{"name"in g&&(g.name=void 0),await a.replace({...g,force:!0}),a.options.scrollBehavior=Rc.scrollBehavior}catch(b){await n.runWithContext(()=>d1(b))}}),{provide:{router:a}}}}),H8=globalThis.requestIdleCallback||(n=>{const e=Date.now(),t={didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-e))};return setTimeout(()=>{n(t)},1)}),HEe=globalThis.cancelIdleCallback||(n=>{clearTimeout(n)}),gre=n=>{const e=In();e.isHydrating?e.hooks.hookOnce("app:suspense:resolve",()=>{H8(()=>n())}):H8(()=>n())},VEe=ua(()=>{const n=Fr();gre(()=>{n.beforeResolve(async()=>{await new Promise(e=>{setTimeout(e,100),requestAnimationFrame(()=>{setTimeout(e,0)})})})})});function zEe(n={}){const e=n.path||window.location.pathname;let t={};try{t=xC(sessionStorage.getItem("nuxt:reload")||"{}")}catch{}if(n.force||(t==null?void 0:t.path)!==e||(t==null?void 0:t.expires){i.clear()}),n.hook("app:chunkError",({error:o})=>{i.add(o)});function s(o){const a="href"in o&&o.href[0]==="#"?t.app.baseURL+o.href:CV(t.app.baseURL,o.fullPath);zEe({path:a,persistState:!0})}n.hook("app:manifest:update",()=>{e.beforeResolve(s)}),e.onError((o,r)=>{i.has(o)&&s(r)})}});/*! * pinia v2.1.7 * (c) 2023 Eduardo San Martin Morote * @license MIT */let pre;const sD=n=>pre=n,mre=Symbol();function V8(n){return n&&typeof n=="object"&&Object.prototype.toString.call(n)==="[object Object]"&&typeof n.toJSON!="function"}var nx;(function(n){n.direct="direct",n.patchObject="patch object",n.patchFunction="patch function"})(nx||(nx={}));function UEe(){const n=KH(!0),e=n.run(()=>Ue({}));let t=[],i=[];const s=eV({install(o){sD(s),s._a=o,o.provide(mre,s),o.config.globalProperties.$pinia=s,i.forEach(r=>t.push(r)),i=[]},use(o){return this._a?t.push(o):i.push(o),this},_p:t,_a:null,_e:n,_s:new Map,state:e});return s}const _re=()=>{};function AZ(n,e,t,i=_re){n.push(e);const s=()=>{const o=n.indexOf(e);o>-1&&(n.splice(o,1),i())};return!t&&r_()&&vC(s),s}function Tb(n,...e){n.slice().forEach(t=>{t(...e)})}const jEe=n=>n();function z8(n,e){n instanceof Map&&e instanceof Map&&e.forEach((t,i)=>n.set(i,t)),n instanceof Set&&e instanceof Set&&e.forEach(n.add,n);for(const t in e){if(!e.hasOwnProperty(t))continue;const i=e[t],s=n[t];V8(s)&&V8(i)&&n.hasOwnProperty(t)&&!Cn(i)&&!ug(i)?n[t]=z8(s,i):n[t]=i}return n}const KEe=Symbol();function qEe(n){return!V8(n)||!n.hasOwnProperty(KEe)}const{assign:pp}=Object;function GEe(n){return!!(Cn(n)&&n.effect)}function ZEe(n,e,t,i){const{state:s,actions:o,getters:r}=e,a=t.state.value[n];let l;function c(){a||(t.state.value[n]=s?s():{});const d=pSe(t.state.value[n]);return pp(d,o,Object.keys(r||{}).reduce((u,h)=>(u[h]=eV(ue(()=>{sD(t);const f=t._s.get(n);return r[h].call(f,f)})),u),{}))}return l=vre(n,c,e,t,i,!0),l}function vre(n,e,t={},i,s,o){let r;const a=pp({actions:{}},t),l={deep:!0};let c,d,u=[],h=[],f;const g=i.state.value[n];!o&&!g&&(i.state.value[n]={}),Ue({});let p;function _(I){let N;c=d=!1,typeof I=="function"?(I(i.state.value[n]),N={type:nx.patchFunction,storeId:n,events:f}):(z8(i.state.value[n],I),N={type:nx.patchObject,payload:I,storeId:n,events:f});const P=p=Symbol();Go().then(()=>{p===P&&(c=!0)}),d=!0,Tb(u,N,i.state.value[n])}const b=o?function(){const{state:N}=t,P=N?N():{};this.$patch(O=>{pp(O,P)})}:_re;function w(){r.stop(),u=[],h=[],i._s.delete(n)}function y(I,N){return function(){sD(i);const P=Array.from(arguments),O=[],M=[];function z(se){O.push(se)}function K(se){M.push(se)}Tb(h,{args:P,name:I,store:x,after:z,onError:K});let ae;try{ae=N.apply(this&&this.$id===n?this:x,P)}catch(se){throw Tb(M,se),se}return ae instanceof Promise?ae.then(se=>(Tb(O,se),se)).catch(se=>(Tb(M,se),Promise.reject(se))):(Tb(O,ae),ae)}}const S={_p:i,$id:n,$onAction:AZ.bind(null,h),$patch:_,$reset:b,$subscribe(I,N={}){const P=AZ(u,I,N.detached,()=>O()),O=r.run(()=>Dn(()=>i.state.value[n],M=>{(N.flush==="sync"?d:c)&&I({storeId:n,type:nx.direct,events:f},M)},pp({},l,N)));return P},$dispose:w},x=Ba(S);i._s.set(n,x);const D=(i._a&&i._a.runWithContext||jEe)(()=>i._e.run(()=>(r=KH()).run(e)));for(const I in D){const N=D[I];if(Cn(N)&&!GEe(N)||ug(N))o||(g&&qEe(N)&&(Cn(N)?N.value=g[I]:z8(N,g[I])),i.state.value[n][I]=N);else if(typeof N=="function"){const P=y(I,N);D[I]=P,a.actions[I]=N}}return pp(x,D),pp(zi(x),D),Object.defineProperty(x,"$state",{get:()=>i.state.value[n],set:I=>{_(N=>{pp(N,I)})}}),i._p.forEach(I=>{pp(x,r.run(()=>I({store:x,app:i._a,pinia:i,options:a})))}),g&&o&&t.hydrate&&t.hydrate(x.$state,g),c=!0,d=!0,x}function d_(n,e,t){let i,s;const o=typeof e=="function";typeof n=="string"?(i=n,s=o?t:e):(s=n,i=n.id);function r(a,l){const c=lV();return a=a||(c?Ui(mre,null):null),a&&sD(a),a=pre,a._s.has(i)||(o?vre(i,e,s,a):ZEe(i,s,a)),a._s.get(i)}return r.$id=i,r}const YEe="$s";function Ew(...n){const e=typeof n[n.length-1]=="string"?n.pop():void 0;typeof n[0]!="string"&&n.unshift(e);const[t,i]=n;if(!t||typeof t!="string")throw new TypeError("[nuxt] [useState] key must be a string: "+t);if(i!==void 0&&typeof i!="function")throw new Error("[nuxt] [useState] init must be a function: "+i);const s=YEe+t,o=In(),r=Ps(o.payload.state,s);if(r.value===void 0&&i){const a=i();if(Cn(a))return o.payload.state[s]=a,a;r.value=a}return r}const RZ=Object.freeze({ignoreUnknown:!1,respectType:!1,respectFunctionNames:!1,respectFunctionProperties:!1,unorderedObjects:!0,unorderedArrays:!1,unorderedSets:!1,excludeKeys:void 0,excludeValues:void 0,replacer:void 0});function MZ(n,e){e?e={...RZ,...e}:e=RZ;const t=bre(e);return t.dispatch(n),t.toString()}const XEe=Object.freeze(["prototype","__proto__","constructor"]);function bre(n){let e="",t=new Map;const i=s=>{e+=s};return{toString(){return e},getContext(){return t},dispatch(s){return n.replacer&&(s=n.replacer(s)),this[s===null?"null":typeof s](s)},object(s){if(s&&typeof s.toJSON=="function")return this.object(s.toJSON());const o=Object.prototype.toString.call(s);let r="";const a=o.length;a<10?r="unknown:["+o+"]":r=o.slice(8,a-1),r=r.toLowerCase();let l=null;if((l=t.get(s))===void 0)t.set(s,t.size);else return this.dispatch("[CIRCULAR:"+l+"]");if(typeof Buffer<"u"&&Buffer.isBuffer&&Buffer.isBuffer(s))return i("buffer:"),i(s.toString("utf8"));if(r!=="object"&&r!=="function"&&r!=="asyncfunction")this[r]?this[r](s):n.ignoreUnknown||this.unkown(s,r);else{let c=Object.keys(s);n.unorderedObjects&&(c=c.sort());let d=[];n.respectType!==!1&&!PZ(s)&&(d=XEe),n.excludeKeys&&(c=c.filter(h=>!n.excludeKeys(h)),d=d.filter(h=>!n.excludeKeys(h))),i("object:"+(c.length+d.length)+":");const u=h=>{this.dispatch(h),i(":"),n.excludeValues||this.dispatch(s[h]),i(",")};for(const h of c)u(h);for(const h of d)u(h)}},array(s,o){if(o=o===void 0?n.unorderedArrays!==!1:o,i("array:"+s.length+":"),!o||s.length<=1){for(const l of s)this.dispatch(l);return}const r=new Map,a=s.map(l=>{const c=bre(n);c.dispatch(l);for(const[d,u]of c.getContext())r.set(d,u);return c.toString()});return t=r,a.sort(),this.array(a,!1)},date(s){return i("date:"+s.toJSON())},symbol(s){return i("symbol:"+s.toString())},unkown(s,o){if(i(o),!!s&&(i(":"),s&&typeof s.entries=="function"))return this.array(Array.from(s.entries()),!0)},error(s){return i("error:"+s.toString())},boolean(s){return i("bool:"+s)},string(s){i("string:"+s.length+":"),i(s)},function(s){i("fn:"),PZ(s)?this.dispatch("[native]"):this.dispatch(s.toString()),n.respectFunctionNames!==!1&&this.dispatch("function-name:"+String(s.name)),n.respectFunctionProperties&&this.object(s)},number(s){return i("number:"+s)},xml(s){return i("xml:"+s.toString())},null(){return i("Null")},undefined(){return i("Undefined")},regexp(s){return i("regex:"+s.toString())},uint8array(s){return i("uint8array:"),this.dispatch(Array.prototype.slice.call(s))},uint8clampedarray(s){return i("uint8clampedarray:"),this.dispatch(Array.prototype.slice.call(s))},int8array(s){return i("int8array:"),this.dispatch(Array.prototype.slice.call(s))},uint16array(s){return i("uint16array:"),this.dispatch(Array.prototype.slice.call(s))},int16array(s){return i("int16array:"),this.dispatch(Array.prototype.slice.call(s))},uint32array(s){return i("uint32array:"),this.dispatch(Array.prototype.slice.call(s))},int32array(s){return i("int32array:"),this.dispatch(Array.prototype.slice.call(s))},float32array(s){return i("float32array:"),this.dispatch(Array.prototype.slice.call(s))},float64array(s){return i("float64array:"),this.dispatch(Array.prototype.slice.call(s))},arraybuffer(s){return i("arraybuffer:"),this.dispatch(new Uint8Array(s))},url(s){return i("url:"+s.toString())},map(s){i("map:");const o=[...s];return this.array(o,n.unorderedSets!==!1)},set(s){i("set:");const o=[...s];return this.array(o,n.unorderedSets!==!1)},file(s){return i("file:"),this.dispatch([s.name,s.size,s.type,s.lastModfied])},blob(){if(n.ignoreUnknown)return i("[blob]");throw new Error(`Hashing Blob objects is currently not supported Use "options.replacer" or "options.ignoreUnknown" `)},domwindow(){return i("domwindow")},bigint(s){return i("bigint:"+s.toString())},process(){return i("process")},timer(){return i("timer")},pipe(){return i("pipe")},tcp(){return i("tcp")},udp(){return i("udp")},tty(){return i("tty")},statwatcher(){return i("statwatcher")},securecontext(){return i("securecontext")},connection(){return i("connection")},zlib(){return i("zlib")},context(){return i("context")},nodescript(){return i("nodescript")},httpparser(){return i("httpparser")},dataview(){return i("dataview")},signal(){return i("signal")},fsevent(){return i("fsevent")},tlswrap(){return i("tlswrap")}}}const Cre="[native code] }",QEe=Cre.length;function PZ(n){return typeof n!="function"?!1:Function.prototype.toString.call(n).slice(-QEe)===Cre}function wre(n,e,t={}){return n===e||MZ(n,t)===MZ(e,t)}function kd(n){if(typeof n!="object")return n;var e,t,i=Object.prototype.toString.call(n);if(i==="[object Object]"){if(n.constructor!==Object&&typeof n.constructor=="function"){t=new n.constructor;for(e in n)n.hasOwnProperty(e)&&t[e]!==n[e]&&(t[e]=kd(n[e]))}else{t={};for(e in n)e==="__proto__"?Object.defineProperty(t,e,{value:kd(n[e]),configurable:!0,enumerable:!0,writable:!0}):t[e]=kd(n[e])}return t}if(i==="[object Array]"){for(e=n.length,t=Array(e);e--;)t[e]=kd(n[e]);return t}return i==="[object Set]"?(t=new Set,n.forEach(function(s){t.add(kd(s))}),t):i==="[object Map]"?(t=new Map,n.forEach(function(s,o){t.set(kd(o),kd(s))}),t):i==="[object Date]"?new Date(+n):i==="[object RegExp]"?(t=new RegExp(n.source,n.flags),t.lastIndex=n.lastIndex,t):i==="[object DataView]"?new n.constructor(kd(n.buffer)):i==="[object ArrayBuffer]"?n.slice(0):i.slice(-6)==="Array]"?new n.constructor(n):n}const JEe={path:"/",watch:!0,decode:n=>xC(decodeURIComponent(n)),encode:n=>encodeURIComponent(typeof n=="string"?n:JSON.stringify(n))},_E=window.cookieStore;function OZ(n,e){var l;const t={...JEe,...e};t.filter??(t.filter=c=>c===n);const i=FZ(t)||{};let s;t.maxAge!==void 0?s=t.maxAge*1e3:t.expires&&(s=t.expires.getTime()-Date.now());const o=s!==void 0&&s<=0,r=kd(o?void 0:i[n]??((l=t.default)==null?void 0:l.call(t))),a=s&&!o?iTe(r,s,t.watch&&t.watch!=="shallow"):Ue(r);{let c=null;try{!_E&&typeof BroadcastChannel<"u"&&(c=new BroadcastChannel(`nuxt:cookies:${n}`))}catch{}const d=()=>{t.readonly||wre(a.value,i[n])||(tTe(n,a.value,t),i[n]=kd(a.value),c==null||c.postMessage({value:t.encode(a.value)}))},u=g=>{var _;const p=g.refresh?(_=FZ(t))==null?void 0:_[n]:t.decode(g.value);h=!0,a.value=p,i[n]=kd(p),Go(()=>{h=!1})};let h=!1;const f=!!r_();if(f&&vC(()=>{h=!0,d(),c==null||c.close()}),_E){const g=p=>{const _=p.changed.find(w=>w.name===n),b=p.deleted.find(w=>w.name===n);_&&u({value:_.value}),b&&u({value:null})};_E.addEventListener("change",g),f&&vC(()=>_E.removeEventListener("change",g))}else c&&(c.onmessage=({data:g})=>u(g));t.watch?Dn(a,()=>{h||d()},{deep:t.watch!=="shallow"}):d()}return a}function FZ(n={}){return oDe(document.cookie,n)}function eTe(n,e,t={}){return e==null?oZ(n,e,{...t,maxAge:-1}):oZ(n,e,t)}function tTe(n,e,t={}){document.cookie=eTe(n,e,t)}const BZ=2147483647;function iTe(n,e,t){let i,s,o=0;const r=t?Ue(n):{value:n};return r_()&&vC(()=>{s==null||s(),clearTimeout(i)}),hse((a,l)=>{t&&(s=Dn(r,l));function c(){o=0,clearTimeout(i);const d=e-o,u=d{if(o+=u,o4)return Promise.all(s).then(()=>yre(n,e));e._routePreloaded.add(t);const o=i.map(r=>{var a;return(a=r.components)==null?void 0:a.default}).filter(r=>typeof r=="function");for(const r of o){const a=Promise.resolve(r()).catch(()=>{}).finally(()=>s.splice(s.indexOf(a)));s.push(a)}await Promise.all(s)}const nTe=j0,sTe=(...n)=>n.find(e=>e!==void 0);function oTe(n){const e=n.componentName||"NuxtLink";function t(s,o){if(!s||n.trailingSlash!=="append"&&n.trailingSlash!=="remove")return s;if(typeof s=="string")return WZ(s,n.trailingSlash);const r="path"in s&&s.path!==void 0?s.path:o(s).path;return{...s,name:void 0,path:WZ(r,n.trailingSlash)}}function i(s){const o=Fr(),r=Tm(),a=ue(()=>!!s.target&&s.target!=="_self"),l=ue(()=>{const p=s.to||s.href||"";return typeof p=="string"&&K0(p,{acceptRelative:!0})}),c=jc("RouterLink"),d=c&&typeof c!="string"?c.useLink:void 0,u=ue(()=>{if(s.external)return!0;const p=s.to||s.href||"";return typeof p=="object"?!1:p===""||l.value}),h=ue(()=>{const p=s.to||s.href||"";return u.value?p:t(p,o.resolve)}),f=u.value||d==null?void 0:d({...s,to:h}),g=ue(()=>{var p;if(!h.value||l.value)return h.value;if(u.value){const _=typeof h.value=="object"&&"path"in h.value?T8(h.value):h.value,b=typeof _=="object"?o.resolve(_).href:_;return t(b,o.resolve)}return typeof h.value=="object"?((p=o.resolve(h.value))==null?void 0:p.href)??null:t(CV(r.app.baseURL,h.value),o.resolve)});return{to:h,hasTarget:a,isAbsoluteUrl:l,isExternal:u,href:g,isActive:(f==null?void 0:f.isActive)??ue(()=>h.value===o.currentRoute.value.path),isExactActive:(f==null?void 0:f.isExactActive)??ue(()=>h.value===o.currentRoute.value.path),route:(f==null?void 0:f.route)??ue(()=>o.resolve(h.value)),async navigate(){await Vs(g.value,{replace:s.replace,external:u.value||a.value})}}}return kt({name:e,props:{to:{type:[String,Object],default:void 0,required:!1},href:{type:[String,Object],default:void 0,required:!1},target:{type:String,default:void 0,required:!1},rel:{type:String,default:void 0,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},prefetchOn:{type:[String,Object],default:void 0,required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,default:void 0,required:!1},exactActiveClass:{type:String,default:void 0,required:!1},prefetchedClass:{type:String,default:void 0,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,default:void 0,required:!1},external:{type:Boolean,default:void 0,required:!1},custom:{type:Boolean,default:void 0,required:!1}},useLink:i,setup(s,{slots:o}){const r=Fr(),{to:a,href:l,navigate:c,isExternal:d,hasTarget:u,isAbsoluteUrl:h}=i(s),f=Ue(!1),g=Ue(null),p=w=>{var y;g.value=s.custom?(y=w==null?void 0:w.$el)==null?void 0:y.nextElementSibling:w==null?void 0:w.$el};function _(w){var y,S;return!f.value&&(typeof s.prefetchOn=="string"?s.prefetchOn===w:((y=s.prefetchOn)==null?void 0:y[w])??((S=n.prefetchOn)==null?void 0:S[w]))&&(s.prefetch??n.prefetch)!==!1&&s.noPrefetch!==!0&&s.target!=="_blank"&&!aTe()}async function b(w=In()){if(f.value)return;f.value=!0;const y=typeof a.value=="string"?a.value:d.value?T8(a.value):r.resolve(a.value).fullPath;await Promise.all([w.hooks.callHook("link:prefetch",y).catch(()=>{}),!d.value&&!u.value&&yre(a.value,r).catch(()=>{})])}if(_("visibility")){const w=In();let y,S=null;cn(()=>{const x=rTe();gre(()=>{y=H8(()=>{var k;(k=g==null?void 0:g.value)!=null&&k.tagName&&(S=x.observe(g.value,async()=>{S==null||S(),S=null,await b(w)}))})})}),Jk(()=>{y&&HEe(y),S==null||S(),S=null})}return()=>{var S;if(!d.value&&!u.value){const x={ref:p,to:a.value,activeClass:s.activeClass||n.activeClass,exactActiveClass:s.exactActiveClass||n.exactActiveClass,replace:s.replace,ariaCurrentValue:s.ariaCurrentValue,custom:s.custom};return s.custom||(_("interaction")&&(x.onPointerenter=b.bind(null,void 0),x.onFocus=b.bind(null,void 0)),f.value&&(x.class=s.prefetchedClass||n.prefetchedClass),x.rel=s.rel||void 0),$i(jc("RouterLink"),x,o.default)}const w=s.target||null,y=sTe(s.noRel?"":s.rel,n.externalRelAttribute,h.value||u.value?"noopener noreferrer":"")||null;return s.custom?o.default?o.default({href:l.value,navigate:c,prefetch:b,get route(){if(!l.value)return;const x=new URL(l.value,window.location.href);return{path:x.pathname,fullPath:x.pathname,get query(){return xoe(x.search)},hash:x.hash,params:{},name:void 0,matched:[],redirectedFrom:void 0,meta:{},href:l.value}},rel:y,target:w,isExternal:d.value||u.value,isActive:!1,isExactActive:!1}):null:$i("a",{ref:g,href:l.value||null,rel:y,target:w},(S=o.default)==null?void 0:S.call(o))}}})}const y2=oTe(Zke);function WZ(n,e){const t=e==="append"?g2:bV;return K0(n)&&!n.startsWith("http")?n:t(n,!0)}function rTe(){const n=In();if(n._observer)return n._observer;let e=null;const t=new Map,i=(o,r)=>(e||(e=new IntersectionObserver(a=>{for(const l of a){const c=t.get(l.target);(l.isIntersecting||l.intersectionRatio>0)&&c&&c()}})),t.set(o,r),e.observe(o),()=>{t.delete(o),e.unobserve(o),t.size===0&&(e.disconnect(),e=null)});return n._observer={observe:i}}function aTe(){const n=navigator.connection;return!!(n&&(n.saveData||/2g/.test(n.effectiveType)))}const lTe={ui:{primary:"indigo",gray:"stone",notifications:{position:"bottom-0 left-0 right-auto"},button:{color:{gray:{soft:"text-gray-900 dark:text-gray-100 bg-white hover:bg-gray-100 disabled:bg-gray-50 dark:bg-gray-800 dark:hover:bg-gray-700 dark:disabled:bg-gray-800 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-gray-500 dark:focus-visible:ring-gray-400 border border-gray-100 dark:border-gray-700"}}}}},cTe={nuxt:{},ui:{primary:"green",gray:"cool",colors:["red","orange","amber","yellow","lime","green","emerald","teal","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose","primary","backdrop","body"],strategy:"merge"}},Pi=cDe(lTe,cTe);function JR(){const n=In();return n._appConfig||(n._appConfig=Ba(Pi)),n._appConfig}const dTe=ua(n=>{const e=UEe();return n.vueApp.use(e),sD(e),n.payload&&n.payload.pinia&&(e.state.value=n.payload.pinia),{provide:{pinia:e}}}),uTe=o2(()=>je(()=>Promise.resolve().then(()=>tdt),void 0,import.meta.url).then(n=>n.default||n.default||n)),hTe=o2(()=>je(()=>import("./DaasEFj5.js"),__vite__mapDeps([63,64]),import.meta.url).then(n=>n.default||n.default||n)),fTe=[["Icon",uTe],["IconCSS",hTe]],gTe=ua({name:"nuxt:global-components",setup(n){for(const[e,t]of fTe)n.vueApp.component(e,t),n.vueApp.component("Lazy"+e,t)}}),Hp={default:()=>je(()=>import("./oQwgk5qA.js"),[],import.meta.url)},pTe=ua({name:"nuxt:prefetch",setup(n){const e=Fr();n.hooks.hook("app:mounted",()=>{e.beforeEach(async t=>{var s;const i=(s=t==null?void 0:t.meta)==null?void 0:s.layout;i&&typeof Hp[i]=="function"&&await Hp[i]()})}),n.hooks.hook("link:prefetch",t=>{if(K0(t))return;const i=e.resolve(t);if(!i)return;const s=i.meta.layout;let o=kV(i.meta.middleware);o=o.filter(r=>typeof r=="string");for(const r of o)typeof ix[r]=="function"&&ix[r]();s&&typeof Hp[s]=="function"&&Hp[s]()})}}),Sre=()=>Ew("MonacoEditorNamespace",()=>null),Omt=()=>Sre().value,mTe=ua(async n=>{let e,t;const i=(o,r)=>new Worker(new URL(`${n.$config.app.baseURL}/_nuxt/nuxt-monaco-editor/vs/${o}.js`.replace(/\/\//g,"/"),import.meta.url),{name:r,type:"module"});self.MonacoEnvironment={getWorker(o,r){switch(r){case"json":return i("language/json/json.worker",r);case"css":case"scss":case"less":return i("language/css/css.worker",r);case"html":case"handlebars":case"razor":return i("language/html/html.worker",r);case"typescript":case"javascript":return i("language/typescript/ts.worker",r);default:return i("editor/editor.worker",r)}}};const s=Sre();s.value=([e,t]=Vv(()=>je(()=>Promise.resolve().then(()=>qst),void 0,import.meta.url)),e=await e,t(),e)});function $8(n){return r_()?(vC(n),!0):!1}function r0(n){return typeof n=="function"?n():j(n)}const U8=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const _Te=n=>typeof n<"u",HZ=()=>+Date.now(),Jx=()=>{};function xre(n,e){function t(...i){return new Promise((s,o)=>{Promise.resolve(n(()=>e.apply(this,i),{fn:e,thisArg:this,args:i})).then(s).catch(o)})}return t}function vTe(n,e={}){let t,i,s=Jx;const o=a=>{clearTimeout(a),s(),s=Jx};return a=>{const l=r0(n),c=r0(e.maxWait);return t&&o(t),l<=0||c!==void 0&&c<=0?(i&&(o(i),i=null),Promise.resolve(a())):new Promise((d,u)=>{s=e.rejectOnCancel?u:d,c&&!i&&(i=setTimeout(()=>{t&&o(t),i=null,d(a())},c)),t=setTimeout(()=>{i&&o(i),i=null,d(a())},l)})}}function bTe(...n){let e=0,t,i=!0,s=Jx,o,r,a,l,c;!Cn(n[0])&&typeof n[0]=="object"?{delay:r,trailing:a=!0,leading:l=!0,rejectOnCancel:c=!1}=n[0]:[r,a=!0,l=!0,c=!1]=n;const d=()=>{t&&(clearTimeout(t),t=void 0,s(),s=Jx)};return h=>{const f=r0(r),g=Date.now()-e,p=()=>o=h();return d(),f<=0?(e=Date.now(),p()):(g>f&&(l||!i)?(e=Date.now(),p()):a&&(o=new Promise((_,b)=>{s=c?b:_,t=setTimeout(()=>{e=Date.now(),i=!0,_(p()),d()},Math.max(0,f-g))})),!l&&!t&&(t=setTimeout(()=>i=!0,f)),i=!1,o)}}function Lre(n,e=200,t={}){return xre(vTe(e,t),n)}function CTe(n,e=200,t=!1,i=!0,s=!1){return xre(bTe(e,t,i,s),n)}function kre(n,e=1e3,t={}){const{immediate:i=!0,immediateCallback:s=!1}=t;let o=null;const r=Ue(!1);function a(){o&&(clearInterval(o),o=null)}function l(){r.value=!1,a()}function c(){const d=r0(e);d<=0||(r.value=!0,s&&n(),a(),o=setInterval(n,d))}if(i&&U8&&c(),Cn(e)||typeof e=="function"){const d=Dn(e,()=>{r.value&&U8&&c()});$8(d)}return $8(l),{isActive:r,pause:l,resume:c}}function Fmt(n,e,t){let i;Cn(t)?i={evaluating:t}:i={};const{lazy:s=!1,evaluating:o=void 0,shallow:r=!0,onError:a=Jx}=i,l=Ue(!s),c=r?Sg(e):Ue(e);let d=0;return Qo(async u=>{if(!l.value)return;d++;const h=d;let f=!1;o&&Promise.resolve().then(()=>{o.value=!0});try{const g=await n(p=>{u(()=>{o&&(o.value=!1),f||p()})});h===d&&(c.value=g)}catch(g){a(g)}finally{o&&h===d&&(o.value=!1),f=!0}}),s?ue(()=>(l.value=!0,c.value)):c}function VZ(n){var e;const t=r0(n);return(e=t==null?void 0:t.$el)!=null?e:t}const wTe=U8?window:void 0;function Dre(n,e={}){const{immediate:t=!0,fpsLimit:i=void 0,window:s=wTe}=e,o=Ue(!1),r=i?1e3/i:null;let a=0,l=null;function c(h){if(!o.value||!s)return;a||(a=h);const f=h-a;if(r&&fs(a);return(l=e==null?void 0:e.cleanups)==null||l.push(d),d}function i(a){function l(...c){s(l),a(...c)}return t(l)}function s(a){const l=ky.get(n);l&&(l.delete(a),l.size||o())}function o(){ky.delete(n)}function r(a,l){var c;(c=ky.get(n))==null||c.forEach(d=>d(a,l))}return{on:t,once:i,off:s,emit:r,reset:o}}function xTe(n={}){const{controls:e=!1,interval:t="requestAnimationFrame"}=n,i=Ue(new Date),s=()=>i.value=new Date,o=t==="requestAnimationFrame"?Dre(s,{immediate:!0}):kre(s,t,{immediate:!0});return e?{now:i,...o}:i}const LTe=[{max:6e4,value:1e3,name:"second"},{max:276e4,value:6e4,name:"minute"},{max:72e6,value:36e5,name:"hour"},{max:5184e5,value:864e5,name:"day"},{max:24192e5,value:6048e5,name:"week"},{max:28512e6,value:2592e6,name:"month"},{max:Number.POSITIVE_INFINITY,value:31536e6,name:"year"}],kTe={justNow:"just now",past:n=>n.match(/\d/)?`${n} ago`:n,future:n=>n.match(/\d/)?`in ${n}`:n,month:(n,e)=>n===1?e?"last month":"next month":`${n} month${n>1?"s":""}`,year:(n,e)=>n===1?e?"last year":"next year":`${n} year${n>1?"s":""}`,day:(n,e)=>n===1?e?"yesterday":"tomorrow":`${n} day${n>1?"s":""}`,week:(n,e)=>n===1?e?"last week":"next week":`${n} week${n>1?"s":""}`,hour:n=>`${n} hour${n>1?"s":""}`,minute:n=>`${n} minute${n>1?"s":""}`,second:n=>`${n} second${n>1?"s":""}`,invalid:""};function DTe(n){return n.toISOString().slice(0,10)}function Bmt(n,e={}){const{controls:t=!1,updateInterval:i=3e4}=e,{now:s,...o}=xTe({interval:i,controls:!0}),r=ue(()=>ITe(new Date(r0(n)),e,r0(s)));return t?{timeAgo:r,...o}:r}function ITe(n,e={},t=Date.now()){var i;const{max:s,messages:o=kTe,fullDateFormatter:r=DTe,units:a=LTe,showSecond:l=!1,rounding:c="round"}=e,d=typeof c=="number"?_=>+_.toFixed(c):Math[c],u=+t-+n,h=Math.abs(u);function f(_,b){return d(Math.abs(_)/b.value)}function g(_,b){const w=f(_,b),y=_>0,S=p(b.name,w,y);return p(y?"past":"future",S,y)}function p(_,b,w){const y=o[_];return typeof y=="function"?y(b,w):y.replace("{0}",b.toString())}if(h<6e4&&!l)return o.justNow;if(typeof s=="number"&&h>s)return r(new Date(n));if(typeof s=="string"){const _=(i=a.find(b=>b.name===s))==null?void 0:i.max;if(_&&h>_)return r(new Date(n))}for(const[_,b]of a.entries()){if(f(u,b)<=0&&a[_-1])return g(u,a[_-1]);if(hr.value=HZ()+t,l=o?()=>{a(),o(r.value)}:a,c=s==="requestAnimationFrame"?Dre(l,{immediate:i}):kre(l,s,{immediate:i});return e?{timestamp:r,...c}:r}function Wmt(n,e,t,i={}){var s,o,r;const{clone:a=!1,passive:l=!1,eventName:c,deep:d=!1,defaultValue:u,shouldEmit:h}=i,f=pc(),g=t||(f==null?void 0:f.emit)||((s=f==null?void 0:f.$emit)==null?void 0:s.bind(f))||((r=(o=f==null?void 0:f.proxy)==null?void 0:o.$emit)==null?void 0:r.bind(f==null?void 0:f.proxy));let p=c;p=p||`update:${e.toString()}`;const _=y=>a?typeof a=="function"?a(y):yTe(y):y,b=()=>_Te(n[e])?_(n[e]):u,w=y=>{h?h(y)&&g(p,y):g(p,y)};if(l){const y=b(),S=Ue(y);let x=!1;return Dn(()=>n[e],k=>{x||(x=!0,S.value=_(k),Go(()=>x=!1))}),Dn(S,k=>{!x&&(k!==n[e]||d)&&w(k)},{deep:d}),S}else return ue({get(){return b()},set(y){w(y)}})}const TTe=Symbol("nuxt-ui.slideover"),NTe=ua(n=>{const e=Sg({component:"div",props:{}});n.vueApp.provide(TTe,e)}),ATe=Symbol("nuxt-ui.modal"),RTe=ua(n=>{const e=Sg({component:"div",props:{}});n.vueApp.provide(ATe,e)}),DV="-",MTe=n=>{const e=OTe(n),{conflictingClassGroups:t,conflictingClassGroupModifiers:i}=n;return{getClassGroupId:r=>{const a=r.split(DV);return a[0]===""&&a.length!==1&&a.shift(),Ire(a,e)||PTe(r)},getConflictingClassGroupIds:(r,a)=>{const l=t[r]||[];return a&&i[r]?[...l,...i[r]]:l}}},Ire=(n,e)=>{var r;if(n.length===0)return e.classGroupId;const t=n[0],i=e.nextPart.get(t),s=i?Ire(n.slice(1),i):void 0;if(s)return s;if(e.validators.length===0)return;const o=n.join(DV);return(r=e.validators.find(({validator:a})=>a(o)))==null?void 0:r.classGroupId},zZ=/^\[(.+)\]$/,PTe=n=>{if(zZ.test(n)){const e=zZ.exec(n)[1],t=e==null?void 0:e.substring(0,e.indexOf(":"));if(t)return"arbitrary.."+t}},OTe=n=>{const{theme:e,prefix:t}=n,i={nextPart:new Map,validators:[]};return BTe(Object.entries(n.classGroups),t).forEach(([o,r])=>{j8(r,i,o,e)}),i},j8=(n,e,t,i)=>{n.forEach(s=>{if(typeof s=="string"){const o=s===""?e:$Z(e,s);o.classGroupId=t;return}if(typeof s=="function"){if(FTe(s)){j8(s(i),e,t,i);return}e.validators.push({validator:s,classGroupId:t});return}Object.entries(s).forEach(([o,r])=>{j8(r,$Z(e,o),t,i)})})},$Z=(n,e)=>{let t=n;return e.split(DV).forEach(i=>{t.nextPart.has(i)||t.nextPart.set(i,{nextPart:new Map,validators:[]}),t=t.nextPart.get(i)}),t},FTe=n=>n.isThemeGetter,BTe=(n,e)=>e?n.map(([t,i])=>{const s=i.map(o=>typeof o=="string"?e+o:typeof o=="object"?Object.fromEntries(Object.entries(o).map(([r,a])=>[e+r,a])):o);return[t,s]}):n,WTe=n=>{if(n<1)return{get:()=>{},set:()=>{}};let e=0,t=new Map,i=new Map;const s=(o,r)=>{t.set(o,r),e++,e>n&&(e=0,i=t,t=new Map)};return{get(o){let r=t.get(o);if(r!==void 0)return r;if((r=i.get(o))!==void 0)return s(o,r),r},set(o,r){t.has(o)?t.set(o,r):s(o,r)}}},Ere="!",HTe=n=>{const{separator:e,experimentalParseClassName:t}=n,i=e.length===1,s=e[0],o=e.length,r=a=>{const l=[];let c=0,d=0,u;for(let _=0;_d?u-d:void 0;return{modifiers:l,hasImportantModifier:f,baseClassName:g,maybePostfixModifierPosition:p}};return t?a=>t({className:a,parseClassName:r}):r},VTe=n=>{if(n.length<=1)return n;const e=[];let t=[];return n.forEach(i=>{i[0]==="["?(e.push(...t.sort(),i),t=[]):t.push(i)}),e.push(...t.sort()),e},zTe=n=>({cache:WTe(n.cacheSize),parseClassName:HTe(n),...MTe(n)}),$Te=/\s+/,UTe=(n,e)=>{const{parseClassName:t,getClassGroupId:i,getConflictingClassGroupIds:s}=e,o=[],r=n.trim().split($Te);let a="";for(let l=r.length-1;l>=0;l-=1){const c=r[l],{modifiers:d,hasImportantModifier:u,baseClassName:h,maybePostfixModifierPosition:f}=t(c);let g=!!f,p=i(g?h.substring(0,f):h);if(!p){if(!g){a=c+(a.length>0?" "+a:a);continue}if(p=i(h),!p){a=c+(a.length>0?" "+a:a);continue}g=!1}const _=VTe(d).join(":"),b=u?_+Ere:_,w=b+p;if(o.includes(w))continue;o.push(w);const y=s(p,g);for(let S=0;S0?" "+a:a)}return a};function Vn(){let n=0,e,t,i="";for(;n{if(typeof n=="string")return n;let e,t="";for(let i=0;iu(d),n());return t=zTe(c),i=t.cache.get,s=t.cache.set,o=a,a(l)}function a(l){const c=i(l);if(c)return c;const d=UTe(l,t);return s(l,d),d}return function(){return o(Vn.apply(null,arguments))}}const Ts=n=>{const e=t=>t[n]||[];return e.isThemeGetter=!0,e},Nre=/^\[(?:([a-z-]+):)?(.+)\]$/i,jTe=/^\d+\/\d+$/,KTe=new Set(["px","full","screen"]),qTe=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,GTe=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,ZTe=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,YTe=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,XTe=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,cf=n=>$1(n)||KTe.has(n)||jTe.test(n),rp=n=>Tw(n,"length",oNe),$1=n=>!!n&&!Number.isNaN(Number(n)),_F=n=>Tw(n,"number",$1),Dy=n=>!!n&&Number.isInteger(Number(n)),QTe=n=>n.endsWith("%")&&$1(n.slice(0,-1)),Hi=n=>Nre.test(n),ap=n=>qTe.test(n),JTe=new Set(["length","size","percentage"]),eNe=n=>Tw(n,JTe,Are),tNe=n=>Tw(n,"position",Are),iNe=new Set(["image","url"]),nNe=n=>Tw(n,iNe,aNe),sNe=n=>Tw(n,"",rNe),Iy=()=>!0,Tw=(n,e,t)=>{const i=Nre.exec(n);return i?i[1]?typeof e=="string"?i[1]===e:e.has(i[1]):t(i[2]):!1},oNe=n=>GTe.test(n)&&!ZTe.test(n),Are=()=>!1,rNe=n=>YTe.test(n),aNe=n=>XTe.test(n),q8=()=>{const n=Ts("colors"),e=Ts("spacing"),t=Ts("blur"),i=Ts("brightness"),s=Ts("borderColor"),o=Ts("borderRadius"),r=Ts("borderSpacing"),a=Ts("borderWidth"),l=Ts("contrast"),c=Ts("grayscale"),d=Ts("hueRotate"),u=Ts("invert"),h=Ts("gap"),f=Ts("gradientColorStops"),g=Ts("gradientColorStopPositions"),p=Ts("inset"),_=Ts("margin"),b=Ts("opacity"),w=Ts("padding"),y=Ts("saturate"),S=Ts("scale"),x=Ts("sepia"),k=Ts("skew"),D=Ts("space"),I=Ts("translate"),N=()=>["auto","contain","none"],P=()=>["auto","hidden","clip","visible","scroll"],O=()=>["auto",Hi,e],M=()=>[Hi,e],z=()=>["",cf,rp],K=()=>["auto",$1,Hi],ae=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],se=()=>["solid","dashed","dotted","double","none"],he=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],me=()=>["start","end","center","between","around","evenly","stretch"],De=()=>["","0",Hi],lt=()=>["auto","avoid","all","avoid-page","page","left","right","column"],We=()=>[$1,Hi];return{cacheSize:500,separator:":",theme:{colors:[Iy],spacing:[cf,rp],blur:["none","",ap,Hi],brightness:We(),borderColor:[n],borderRadius:["none","","full",ap,Hi],borderSpacing:M(),borderWidth:z(),contrast:We(),grayscale:De(),hueRotate:We(),invert:De(),gap:M(),gradientColorStops:[n],gradientColorStopPositions:[QTe,rp],inset:O(),margin:O(),opacity:We(),padding:M(),saturate:We(),scale:We(),sepia:De(),skew:We(),space:M(),translate:M()},classGroups:{aspect:[{aspect:["auto","square","video",Hi]}],container:["container"],columns:[{columns:[ap]}],"break-after":[{"break-after":lt()}],"break-before":[{"break-before":lt()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...ae(),Hi]}],overflow:[{overflow:P()}],"overflow-x":[{"overflow-x":P()}],"overflow-y":[{"overflow-y":P()}],overscroll:[{overscroll:N()}],"overscroll-x":[{"overscroll-x":N()}],"overscroll-y":[{"overscroll-y":N()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[p]}],"inset-x":[{"inset-x":[p]}],"inset-y":[{"inset-y":[p]}],start:[{start:[p]}],end:[{end:[p]}],top:[{top:[p]}],right:[{right:[p]}],bottom:[{bottom:[p]}],left:[{left:[p]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Dy,Hi]}],basis:[{basis:O()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",Hi]}],grow:[{grow:De()}],shrink:[{shrink:De()}],order:[{order:["first","last","none",Dy,Hi]}],"grid-cols":[{"grid-cols":[Iy]}],"col-start-end":[{col:["auto",{span:["full",Dy,Hi]},Hi]}],"col-start":[{"col-start":K()}],"col-end":[{"col-end":K()}],"grid-rows":[{"grid-rows":[Iy]}],"row-start-end":[{row:["auto",{span:[Dy,Hi]},Hi]}],"row-start":[{"row-start":K()}],"row-end":[{"row-end":K()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",Hi]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",Hi]}],gap:[{gap:[h]}],"gap-x":[{"gap-x":[h]}],"gap-y":[{"gap-y":[h]}],"justify-content":[{justify:["normal",...me()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...me(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...me(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[w]}],px:[{px:[w]}],py:[{py:[w]}],ps:[{ps:[w]}],pe:[{pe:[w]}],pt:[{pt:[w]}],pr:[{pr:[w]}],pb:[{pb:[w]}],pl:[{pl:[w]}],m:[{m:[_]}],mx:[{mx:[_]}],my:[{my:[_]}],ms:[{ms:[_]}],me:[{me:[_]}],mt:[{mt:[_]}],mr:[{mr:[_]}],mb:[{mb:[_]}],ml:[{ml:[_]}],"space-x":[{"space-x":[D]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[D]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",Hi,e]}],"min-w":[{"min-w":[Hi,e,"min","max","fit"]}],"max-w":[{"max-w":[Hi,e,"none","full","min","max","fit","prose",{screen:[ap]},ap]}],h:[{h:[Hi,e,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[Hi,e,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[Hi,e,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[Hi,e,"auto","min","max","fit"]}],"font-size":[{text:["base",ap,rp]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",_F]}],"font-family":[{font:[Iy]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",Hi]}],"line-clamp":[{"line-clamp":["none",$1,_F]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",cf,Hi]}],"list-image":[{"list-image":["none",Hi]}],"list-style-type":[{list:["none","disc","decimal",Hi]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[n]}],"placeholder-opacity":[{"placeholder-opacity":[b]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[n]}],"text-opacity":[{"text-opacity":[b]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...se(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",cf,rp]}],"underline-offset":[{"underline-offset":["auto",cf,Hi]}],"text-decoration-color":[{decoration:[n]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:M()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Hi]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Hi]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[b]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...ae(),tNe]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",eNe]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},nNe]}],"bg-color":[{bg:[n]}],"gradient-from-pos":[{from:[g]}],"gradient-via-pos":[{via:[g]}],"gradient-to-pos":[{to:[g]}],"gradient-from":[{from:[f]}],"gradient-via":[{via:[f]}],"gradient-to":[{to:[f]}],rounded:[{rounded:[o]}],"rounded-s":[{"rounded-s":[o]}],"rounded-e":[{"rounded-e":[o]}],"rounded-t":[{"rounded-t":[o]}],"rounded-r":[{"rounded-r":[o]}],"rounded-b":[{"rounded-b":[o]}],"rounded-l":[{"rounded-l":[o]}],"rounded-ss":[{"rounded-ss":[o]}],"rounded-se":[{"rounded-se":[o]}],"rounded-ee":[{"rounded-ee":[o]}],"rounded-es":[{"rounded-es":[o]}],"rounded-tl":[{"rounded-tl":[o]}],"rounded-tr":[{"rounded-tr":[o]}],"rounded-br":[{"rounded-br":[o]}],"rounded-bl":[{"rounded-bl":[o]}],"border-w":[{border:[a]}],"border-w-x":[{"border-x":[a]}],"border-w-y":[{"border-y":[a]}],"border-w-s":[{"border-s":[a]}],"border-w-e":[{"border-e":[a]}],"border-w-t":[{"border-t":[a]}],"border-w-r":[{"border-r":[a]}],"border-w-b":[{"border-b":[a]}],"border-w-l":[{"border-l":[a]}],"border-opacity":[{"border-opacity":[b]}],"border-style":[{border:[...se(),"hidden"]}],"divide-x":[{"divide-x":[a]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[a]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[b]}],"divide-style":[{divide:se()}],"border-color":[{border:[s]}],"border-color-x":[{"border-x":[s]}],"border-color-y":[{"border-y":[s]}],"border-color-s":[{"border-s":[s]}],"border-color-e":[{"border-e":[s]}],"border-color-t":[{"border-t":[s]}],"border-color-r":[{"border-r":[s]}],"border-color-b":[{"border-b":[s]}],"border-color-l":[{"border-l":[s]}],"divide-color":[{divide:[s]}],"outline-style":[{outline:["",...se()]}],"outline-offset":[{"outline-offset":[cf,Hi]}],"outline-w":[{outline:[cf,rp]}],"outline-color":[{outline:[n]}],"ring-w":[{ring:z()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[n]}],"ring-opacity":[{"ring-opacity":[b]}],"ring-offset-w":[{"ring-offset":[cf,rp]}],"ring-offset-color":[{"ring-offset":[n]}],shadow:[{shadow:["","inner","none",ap,sNe]}],"shadow-color":[{shadow:[Iy]}],opacity:[{opacity:[b]}],"mix-blend":[{"mix-blend":[...he(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":he()}],filter:[{filter:["","none"]}],blur:[{blur:[t]}],brightness:[{brightness:[i]}],contrast:[{contrast:[l]}],"drop-shadow":[{"drop-shadow":["","none",ap,Hi]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[d]}],invert:[{invert:[u]}],saturate:[{saturate:[y]}],sepia:[{sepia:[x]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[t]}],"backdrop-brightness":[{"backdrop-brightness":[i]}],"backdrop-contrast":[{"backdrop-contrast":[l]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[d]}],"backdrop-invert":[{"backdrop-invert":[u]}],"backdrop-opacity":[{"backdrop-opacity":[b]}],"backdrop-saturate":[{"backdrop-saturate":[y]}],"backdrop-sepia":[{"backdrop-sepia":[x]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[r]}],"border-spacing-x":[{"border-spacing-x":[r]}],"border-spacing-y":[{"border-spacing-y":[r]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",Hi]}],duration:[{duration:We()}],ease:[{ease:["linear","in","out","in-out",Hi]}],delay:[{delay:We()}],animate:[{animate:["none","spin","ping","pulse","bounce",Hi]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[S]}],"scale-x":[{"scale-x":[S]}],"scale-y":[{"scale-y":[S]}],rotate:[{rotate:[Dy,Hi]}],"translate-x":[{"translate-x":[I]}],"translate-y":[{"translate-y":[I]}],"skew-x":[{"skew-x":[k]}],"skew-y":[{"skew-y":[k]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",Hi]}],accent:[{accent:["auto",n]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Hi]}],"caret-color":[{caret:[n]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":M()}],"scroll-mx":[{"scroll-mx":M()}],"scroll-my":[{"scroll-my":M()}],"scroll-ms":[{"scroll-ms":M()}],"scroll-me":[{"scroll-me":M()}],"scroll-mt":[{"scroll-mt":M()}],"scroll-mr":[{"scroll-mr":M()}],"scroll-mb":[{"scroll-mb":M()}],"scroll-ml":[{"scroll-ml":M()}],"scroll-p":[{"scroll-p":M()}],"scroll-px":[{"scroll-px":M()}],"scroll-py":[{"scroll-py":M()}],"scroll-ps":[{"scroll-ps":M()}],"scroll-pe":[{"scroll-pe":M()}],"scroll-pt":[{"scroll-pt":M()}],"scroll-pr":[{"scroll-pr":M()}],"scroll-pb":[{"scroll-pb":M()}],"scroll-pl":[{"scroll-pl":M()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Hi]}],fill:[{fill:[n,"none"]}],"stroke-w":[{stroke:[cf,rp,_F]}],stroke:[{stroke:[n,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},lNe=(n,{cacheSize:e,prefix:t,separator:i,experimentalParseClassName:s,extend:o={},override:r={}})=>{pS(n,"cacheSize",e),pS(n,"prefix",t),pS(n,"separator",i),pS(n,"experimentalParseClassName",s);for(const a in r)cNe(n[a],r[a]);for(const a in o)dNe(n[a],o[a]);return n},pS=(n,e,t)=>{t!==void 0&&(n[e]=t)},cNe=(n,e)=>{if(e)for(const t in e)pS(n,t,e[t])},dNe=(n,e)=>{if(e)for(const t in e){const i=e[t];i!==void 0&&(n[t]=(n[t]||[]).concat(i))}},uNe=(n,...e)=>typeof n=="function"?K8(q8,n,...e):K8(()=>lNe(q8(),n),...e),ac=K8(q8);function hNe(n,e){const t={...n};for(const i of e)delete t[i];return t}function mS(n,e,t){typeof e=="string"&&(e=e.split(".").map(s=>{const o=Number(s);return isNaN(o)?s:o}));let i=n;for(const s of e){if(i==null)return t;i=i[s]}return i!==void 0?i:t}const IV={to:{type:[String,Object],default:void 0,required:!1},href:{type:[String,Object],default:void 0,required:!1},target:{type:String,default:void 0,required:!1},rel:{type:String,default:void 0,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,default:void 0,required:!1},exactActiveClass:{type:String,default:void 0,required:!1},prefetchedClass:{type:String,default:void 0,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,default:void 0,required:!1},external:{type:Boolean,default:void 0,required:!1}},fNe=n=>Object.keys(IV).reduce((t,i)=>(n[i]!==void 0&&(t[i]=n[i]),t),{}),gNe=uNe({extend:{classGroups:{icons:[n=>/^i-/.test(n)]}}}),pNe=wV((n,e,t,i)=>{if(i==="default"||i.startsWith("default.")||i==="popper"||i.startsWith("popper.")||i.endsWith("avatar")&&e==="size"||i.endsWith("chip")&&e==="size"||i.endsWith("badge")&&e==="size"||e==="color"||e==="variant")return!1;if(typeof n[e]=="string"&&typeof t=="string"&&n[e]&&t)return n[e]=gNe(n[e],t),!0});function ha(n,...e){return n==="override"?nD({},...e):pNe({},...e)}function UZ(n){const e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;n=n.replace(e,function(i,s,o,r){return s+s+o+o+r+r});const t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(n);return t?`${parseInt(t[1],16)} ${parseInt(t[2],16)} ${parseInt(t[3],16)}`:null}function Rre(n){const e=parseFloat(n);return isNaN(e)?n:e}const mNe="inherit",_Ne="currentColor",vNe="transparent",bNe="#000",CNe="#fff",wNe={50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},yNe={50:"rgb(var(--color-gray-50) / )",100:"rgb(var(--color-gray-100) / )",200:"rgb(var(--color-gray-200) / )",300:"rgb(var(--color-gray-300) / )",400:"rgb(var(--color-gray-400) / )",500:"rgb(var(--color-gray-500) / )",600:"rgb(var(--color-gray-600) / )",700:"rgb(var(--color-gray-700) / )",800:"rgb(var(--color-gray-800) / )",900:"rgb(var(--color-gray-900) / )",950:"rgb(var(--color-gray-950) / )"},SNe={50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},xNe={50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},LNe={50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},kNe={50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},DNe={50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},INe={50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},ENe={50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},TNe={50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},NNe={50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},ANe={50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},RNe={50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},MNe={50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},PNe={50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},ONe={50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},FNe={50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},BNe={50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},WNe={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},HNe={50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},VNe={50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},zNe={50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},$Ne={50:"rgb(var(--color-primary-50) / )",100:"rgb(var(--color-primary-100) / )",200:"rgb(var(--color-primary-200) / )",300:"rgb(var(--color-primary-300) / )",400:"rgb(var(--color-primary-400) / )",500:"rgb(var(--color-primary-500) / )",600:"rgb(var(--color-primary-600) / )",700:"rgb(var(--color-primary-700) / )",800:"rgb(var(--color-primary-800) / )",900:"rgb(var(--color-primary-900) / )",950:"rgb(var(--color-primary-950) / )",DEFAULT:"rgb(var(--color-primary-DEFAULT) / )"},UNe={DEFAULT:"#ffffff",dark:"#333333"},jNe={DEFAULT:"#333333",dark:"#f6f7ee"},vE={inherit:mNe,current:_Ne,transparent:vNe,black:bNe,white:CNe,slate:wNe,gray:yNe,zinc:SNe,neutral:xNe,stone:LNe,red:kNe,orange:DNe,amber:INe,yellow:ENe,lime:TNe,green:NNe,emerald:ANe,teal:RNe,cyan:MNe,sky:PNe,blue:ONe,indigo:FNe,violet:BNe,purple:WNe,fuchsia:HNe,pink:VNe,rose:zNe,primary:$Ne,backdrop:UNe,body:jNe,"cool-gray":void 0},KNe=ua(()=>{const n=JR(),e=In(),t=ue(()=>{const s=vE[n.ui.primary],o=vE[n.ui.gray];return s||console.warn(`[@nuxt/ui] Primary color '${n.ui.primary}' not found in Tailwind config`),o||console.warn(`[@nuxt/ui] Gray color '${n.ui.gray}' not found in Tailwind config`),`:root { ${Object.entries(s||vE.green).map(([r,a])=>`--color-primary-${r}: ${UZ(a)};`).join(` `)} --color-primary-DEFAULT: var(--color-primary-500); ${Object.entries(o||vE.cool).map(([r,a])=>`--color-gray-${r}: ${UZ(a)};`).join(` `)} } .dark { --color-primary-DEFAULT: var(--color-primary-400); } `}),i={style:[{innerHTML:()=>t.value,tagPriority:-2,id:"nuxt-ui-colors"}]};if(e.isHydrating&&!e.payload.serverRendered){const s=document.createElement("style");s.innerHTML=t.value,s.setAttribute("data-nuxt-ui-colors",""),document.head.appendChild(s),i.script=[{innerHTML:"document.head.removeChild(document.querySelector('[data-nuxt-ui-colors]'))"}]}hIe(i)}),qNe="__NUXT_COLOR_MODE__",GNe="nuxt-color-mode",df=window[qNe]||{},ZNe=ua(n=>{const e=Ew("color-mode",()=>Ba({preference:df.preference,value:df.value,unknown:!1,forced:!1})).value;Fr().afterEach(s=>{const o=s.meta.colorMode;o&&o!=="system"?(e.value=o,e.forced=!0):(o==="system"&&console.warn("You cannot force the colorMode to system at the page level."),e.forced=!1,e.value=e.preference==="system"?df.getColorScheme():e.preference)});let t;function i(){t||!window.matchMedia||(t=window.matchMedia("(prefers-color-scheme: dark)"),t.addEventListener("change",()=>{!e.forced&&e.preference==="system"&&(e.value=df.getColorScheme())}))}Dn(()=>e.preference,s=>{var o;e.forced||(s==="system"?(e.value=df.getColorScheme(),i()):e.value=s,(o=window.localStorage)==null||o.setItem(GNe,s))},{immediate:!0}),Dn(()=>e.value,(s,o)=>{df.removeColorScheme(o),df.addColorScheme(s)}),e.preference==="system"&&i(),n.hook("app:mounted",()=>{e.unknown&&(e.preference=df.preference,e.value=df.value,e.unknown=!1)}),n.provide("colorMode",e)});function YNe(n,e){if(n==null)return;let t=n;for(let i=0;i1&&(e=EV(typeof n!="object"||n===null||!Object.prototype.hasOwnProperty.call(n,i)?Number.isInteger(Number(t[1]))?[]:{}:n[i],e,Array.prototype.slice.call(t,1))),Number.isInteger(Number(i))&&Array.isArray(n)?n.slice()[i]:Object.assign({},n,{[i]:e})}function Mre(n,e){if(n==null||e.length===0)return n;if(e.length===1){if(n==null)return n;if(Number.isInteger(e[0])&&Array.isArray(n))return Array.prototype.slice.call(n,0).splice(e[0],1);const t={};for(const i in n)t[i]=n[i];return delete t[e[0]],t}if(n[e[0]]==null){if(Number.isInteger(e[0])&&Array.isArray(n))return Array.prototype.concat.call([],n);const t={};for(const i in n)t[i]=n[i];return t}return EV(n,Mre(n[e[0]],Array.prototype.slice.call(e,1)),[e[0]])}function Pre(n,e){return e.map(t=>t.split(".")).map(t=>[t,YNe(n,t)]).filter(t=>t[1]!==void 0).reduce((t,i)=>EV(t,i[1],i[0]),{})}function Ore(n,e){return e.map(t=>t.split(".")).reduce((t,i)=>Mre(t,i),n)}function jZ(n,{storage:e,serializer:t,key:i,debug:s,pick:o,omit:r,beforeHydrate:a,afterHydrate:l},c,d=!0){try{d&&(a==null||a(c));const u=e.getItem(i);if(u){const h=t.deserialize(u),f=o?Pre(h,o):h,g=r?Ore(f,r):f;n.$patch(g)}d&&(l==null||l(c))}catch(u){s&&console.error("[pinia-plugin-persistedstate]",u)}}function KZ(n,{storage:e,serializer:t,key:i,debug:s,pick:o,omit:r}){try{const a=o?Pre(n,o):n,l=r?Ore(a,r):a,c=t.serialize(l);e.setItem(i,c)}catch(a){s&&console.error("[pinia-plugin-persistedstate]",a)}}function XNe(n,e,t){const{pinia:i,store:s,options:{persist:o=t}}=n;if(!o)return;if(!(s.$id in i.state.value)){const l=i._s.get(s.$id.replace("__hot:",""));l&&Promise.resolve().then(()=>l.$persist());return}const a=(Array.isArray(o)?o:o===!0?[{}]:[o]).map(e);s.$hydrate=({runHooks:l=!0}={})=>{a.forEach(c=>{jZ(s,c,n,l)})},s.$persist=()=>{a.forEach(l=>{KZ(s.$state,l)})},a.forEach(l=>{jZ(s,l,n),s.$subscribe((c,d)=>KZ(d,l),{detached:!0})})}function QNe(n={}){return function(e){XNe(e,t=>({key:(n.key?n.key:i=>i)(t.key??e.store.$id),debug:t.debug??n.debug??!1,serializer:t.serializer??n.serializer??{serialize:i=>JSON.stringify(i),deserialize:i=>xC(i)},storage:t.storage??n.storage??window.localStorage,beforeHydrate:t.beforeHydrate,afterHydrate:t.afterHydrate,pick:t.pick,omit:t.omit}),n.auto??!1)}}function qZ(n){return{getItem:e=>OZ(e,{...n,encode:encodeURIComponent,decode:decodeURIComponent}).value,setItem:(e,t)=>{OZ(e,{...n,encode:encodeURIComponent,decode:decodeURIComponent}).value=t}}}function JNe(){return{getItem:n=>In().ssrContext?null:localStorage.getItem(n),setItem:(n,e)=>{In().ssrContext||localStorage.setItem(n,e)}}}function e2e(){return{getItem:n=>In().ssrContext?null:sessionStorage.getItem(n),setItem:(n,e)=>{In().ssrContext||sessionStorage.setItem(n,e)}}}const eL={localStorage:JNe(),sessionStorage:e2e(),cookies:qZ(),cookiesWithOptions:qZ},t2e=ua(n=>{const{cookieOptions:e,debug:t,storage:i}=Tm().public.persistedState;n.$pinia.use(QNe({storage:i==="cookies"?eL.cookiesWithOptions(e):eL[i],debug:t}))});function Bl(n,e=0){return n[n.length-(1+e)]}function i2e(n){if(n.length===0)throw new Error("Invalid tail call");return[n.slice(0,n.length-1),n[n.length-1]]}function zn(n,e,t=(i,s)=>i===s){if(n===e)return!0;if(!n||!e||n.length!==e.length)return!1;for(let i=0,s=n.length;it(n[i],e))}function s2e(n,e){let t=0,i=n-1;for(;t<=i;){const s=(t+i)/2|0,o=e(s);if(o<0)t=s+1;else if(o>0)i=s-1;else return s}return-(t+1)}function G8(n,e,t){if(n=n|0,n>=e.length)throw new TypeError("invalid index");const i=e[Math.floor(e.length*Math.random())],s=[],o=[],r=[];for(const a of e){const l=t(a,i);l<0?s.push(a):l>0?o.push(a):r.push(a)}return n!!e)}function ZZ(n){let e=0;for(let t=0;t0}function xg(n,e=t=>t){const t=new Set;return n.filter(i=>{const s=e(i);return t.has(s)?!1:(t.add(s),!0)})}function NV(n,e){return n.length>0?n[0]:e}function Xr(n,e){let t=typeof e=="number"?n:0;typeof e=="number"?t=n:(t=0,e=n);const i=[];if(t<=e)for(let s=t;se;s--)i.push(s);return i}function eM(n,e,t){const i=n.slice(0,e),s=n.slice(e);return i.concat(t,s)}function vF(n,e){const t=n.indexOf(e);t>-1&&(n.splice(t,1),n.unshift(e))}function bE(n,e){const t=n.indexOf(e);t>-1&&(n.splice(t,1),n.push(e))}function Z8(n,e){for(const t of e)n.push(t)}function AV(n){return Array.isArray(n)?n:[n]}function r2e(n,e,t){const i=Wre(n,e),s=n.length,o=t.length;n.length=s+o;for(let r=s-1;r>=i;r--)n[r+o]=n[r];for(let r=0;r0}n.isGreaterThan=i;function s(o){return o===0}n.isNeitherLessOrGreaterThan=s,n.greaterThan=1,n.lessThan=-1,n.neitherLessOrGreaterThan=0})(iL||(iL={}));function oa(n,e){return(t,i)=>e(n(t),n(i))}function a2e(...n){return(e,t)=>{for(const i of n){const s=i(e,t);if(!iL.isNeitherLessOrGreaterThan(s))return s}return iL.neitherLessOrGreaterThan}}const Qc=(n,e)=>n-e,l2e=(n,e)=>Qc(n?1:0,e?1:0);function Hre(n){return(e,t)=>-n(e,t)}class Lg{constructor(e){this.items=e,this.firstIdx=0,this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+1}takeWhile(e){let t=this.firstIdx;for(;t=0&&e(this.items[t]);)t--;const i=t===this.lastIdx?null:this.items.slice(t+1,this.lastIdx+1);return this.lastIdx=t,i}peek(){if(this.length!==0)return this.items[this.firstIdx]}dequeue(){const e=this.items[this.firstIdx];return this.firstIdx++,e}takeCount(e){const t=this.items.slice(this.firstIdx,this.firstIdx+e);return this.firstIdx+=e,t}}class fh{constructor(e){this.iterate=e}toArray(){const e=[];return this.iterate(t=>(e.push(t),!0)),e}filter(e){return new fh(t=>this.iterate(i=>e(i)?t(i):!0))}map(e){return new fh(t=>this.iterate(i=>t(e(i))))}findLast(e){let t;return this.iterate(i=>(e(i)&&(t=i),!0)),t}findLastMaxBy(e){let t,i=!0;return this.iterate(s=>((i||iL.isGreaterThan(e(s,t)))&&(i=!1,t=s),!0)),t}}fh.empty=new fh(n=>{});class S2{constructor(e){this._indexMap=e}static createSortPermutation(e,t){const i=Array.from(e.keys()).sort((s,o)=>t(e[s],e[o]));return new S2(i)}apply(e){return e.map((t,i)=>e[this._indexMap[i]])}inverse(){const e=this._indexMap.slice();for(let t=0;t"u"}function gh(n){return!ll(n)}function ll(n){return na(n)||n===null}function mi(n,e){if(!n)throw new Error(e?`Unexpected type, expected '${e}'`:"Unexpected type")}function Vp(n){if(ll(n))throw new Error("Assertion Failed: argument is undefined or null");return n}function nL(n){return typeof n=="function"}function d2e(n,e){const t=Math.min(n.length,e.length);for(let i=0;i{e[t]=i&&typeof i=="object"?Tf(i):i}),e}function h2e(n){if(!n||typeof n!="object")return n;const e=[n];for(;e.length>0;){const t=e.shift();Object.freeze(t);for(const i in t)if(zre.call(t,i)){const s=t[i];typeof s=="object"&&!Object.isFrozen(s)&&!c2e(s)&&e.push(s)}}return n}const zre=Object.prototype.hasOwnProperty;function $re(n,e){return Y8(n,e,new Set)}function Y8(n,e,t){if(ll(n))return n;const i=e(n);if(typeof i<"u")return i;if(Array.isArray(n)){const s=[];for(const o of n)s.push(Y8(o,e,t));return s}if(Er(n)){if(t.has(n))throw new Error("Cannot clone recursive data-structure");t.add(n);const s={};for(const o in n)zre.call(n,o)&&(s[o]=Y8(n[o],e,t));return t.delete(n),s}return n}function tM(n,e,t=!0){return Er(n)?(Er(e)&&Object.keys(e).forEach(i=>{i in n?t&&(Er(n[i])&&Er(e[i])?tM(n[i],e[i],t):n[i]=e[i]):n[i]=e[i]}),n):e}function vl(n,e){if(n===e)return!0;if(n==null||e===null||e===void 0||typeof n!=typeof e||typeof n!="object"||Array.isArray(n)!==Array.isArray(e))return!1;let t,i;if(Array.isArray(n)){if(n.length!==e.length)return!1;for(t=0;tfunction(){const o=Array.prototype.slice.call(arguments,0);return e(s,o)},i={};for(const s of n)i[s]=t(s);return i}let p2e=typeof document<"u"&&document.location&&document.location.hash.indexOf("pseudo=true")>=0;function Ure(n,e){let t;return e.length===0?t=n:t=n.replace(/\{(\d+)\}/g,(i,s)=>{const o=s[0],r=e[o];let a=i;return typeof r=="string"?a=r:(typeof r=="number"||typeof r=="boolean"||r===void 0||r===null)&&(a=String(r)),a}),p2e&&(t="["+t.replace(/[aouei]/g,"$&$&")+"]"),t}function v(n,e,...t){return Ure(e,t)}function Nt(n,e,...t){const i=Ure(e,t);return{value:i,original:i}}var bF,CF;const u1="en";let x2=!1,L2=!1,rN=!1,jre=!1,MV=!0,PV=!1,Kre=!1,CE,aN=u1,QZ=u1,m2e,Cd;const gg=globalThis;let yr;typeof gg.vscode<"u"&&typeof gg.vscode.process<"u"?yr=gg.vscode.process:typeof process<"u"&&typeof((bF=process==null?void 0:process.versions)===null||bF===void 0?void 0:bF.node)=="string"&&(yr=process);const _2e=typeof((CF=yr==null?void 0:yr.versions)===null||CF===void 0?void 0:CF.electron)=="string",v2e=_2e&&(yr==null?void 0:yr.type)==="renderer";if(typeof yr=="object"){x2=yr.platform==="win32",L2=yr.platform==="darwin",rN=yr.platform==="linux",rN&&yr.env.SNAP&&yr.env.SNAP_REVISION,yr.env.CI||yr.env.BUILD_ARTIFACTSTAGINGDIRECTORY,CE=u1,aN=u1;const n=yr.env.VSCODE_NLS_CONFIG;if(n)try{const e=JSON.parse(n),t=e.availableLanguages["*"];CE=e.locale,QZ=e.osLocale,aN=t||u1,m2e=e._translationsConfigFile}catch{}jre=!0}else typeof navigator=="object"&&!v2e?(Cd=navigator.userAgent,x2=Cd.indexOf("Windows")>=0,L2=Cd.indexOf("Macintosh")>=0,PV=(Cd.indexOf("Macintosh")>=0||Cd.indexOf("iPad")>=0||Cd.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,rN=Cd.indexOf("Linux")>=0,Kre=(Cd==null?void 0:Cd.indexOf("Mobi"))>=0,MV=!0,v({},"_"),CE=u1,aN=CE,QZ=navigator.language):console.error("Unable to resolve platform.");const Mo=x2,Xt=L2,Br=rN,Lh=jre,u_=MV,b2e=MV&&typeof gg.importScripts=="function",C2e=b2e?gg.origin:void 0,iu=PV,qre=Kre,kh=Cd,w2e=aN,y2e=typeof gg.postMessage=="function"&&!gg.importScripts,Gre=(()=>{if(y2e){const n=[];gg.addEventListener("message",t=>{if(t.data&&t.data.vscodeScheduleAsyncWork)for(let i=0,s=n.length;i{const i=++e;n.push({id:i,callback:t}),gg.postMessage({vscodeScheduleAsyncWork:i},"*")}}return n=>setTimeout(n)})(),Da=L2||PV?2:x2?1:3;let JZ=!0,eY=!1;function Zre(){if(!eY){eY=!0;const n=new Uint8Array(2);n[0]=1,n[1]=2,JZ=new Uint16Array(n.buffer)[0]===513}return JZ}const Yre=!!(kh&&kh.indexOf("Chrome")>=0),S2e=!!(kh&&kh.indexOf("Firefox")>=0),x2e=!!(!Yre&&kh&&kh.indexOf("Safari")>=0),L2e=!!(kh&&kh.indexOf("Edg/")>=0),k2e=!!(kh&&kh.indexOf("Android")>=0),zo={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}};var oi;(function(n){function e(y){return y&&typeof y=="object"&&typeof y[Symbol.iterator]=="function"}n.is=e;const t=Object.freeze([]);function i(){return t}n.empty=i;function*s(y){yield y}n.single=s;function o(y){return e(y)?y:s(y)}n.wrap=o;function r(y){return y||t}n.from=r;function*a(y){for(let S=y.length-1;S>=0;S--)yield y[S]}n.reverse=a;function l(y){return!y||y[Symbol.iterator]().next().done===!0}n.isEmpty=l;function c(y){return y[Symbol.iterator]().next().value}n.first=c;function d(y,S){for(const x of y)if(S(x))return!0;return!1}n.some=d;function u(y,S){for(const x of y)if(S(x))return x}n.find=u;function*h(y,S){for(const x of y)S(x)&&(yield x)}n.filter=h;function*f(y,S){let x=0;for(const k of y)yield S(k,x++)}n.map=f;function*g(...y){for(const S of y)yield*S}n.concat=g;function p(y,S,x){let k=x;for(const D of y)k=S(k,D);return k}n.reduce=p;function*_(y,S,x=y.length){for(S<0&&(S+=y.length),x<0?x+=y.length:x>y.length&&(x=y.length);S{s||(s=!0,this._remove(i))}}shift(){if(this._first!==As.Undefined){const e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==As.Undefined){const e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==As.Undefined&&e.next!==As.Undefined){const t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===As.Undefined&&e.next===As.Undefined?(this._first=As.Undefined,this._last=As.Undefined):e.next===As.Undefined?(this._last=this._last.prev,this._last.next=As.Undefined):e.prev===As.Undefined&&(this._first=this._first.next,this._first.prev=As.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==As.Undefined;)yield e.element,e=e.next}}const Xre="`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?";function D2e(n=""){let e="(-?\\d*\\.\\d\\w*)|([^";for(const t of Xre)n.indexOf(t)>=0||(e+="\\"+t);return e+="\\s]+)",new RegExp(e,"g")}const OV=D2e();function FV(n){let e=OV;if(n&&n instanceof RegExp)if(n.global)e=n;else{let t="g";n.ignoreCase&&(t+="i"),n.multiline&&(t+="m"),n.unicode&&(t+="u"),e=new RegExp(n.source,t)}return e.lastIndex=0,e}const Qre=new Tr;Qre.unshift({maxLen:1e3,windowSize:15,timeBudget:150});function sL(n,e,t,i,s){if(e=FV(e),s||(s=oi.first(Qre)),t.length>s.maxLen){let c=n-s.maxLen/2;return c<0?c=0:i+=c,t=t.substring(c,n+s.maxLen/2),sL(n,e,t,i,s)}const o=Date.now(),r=n-1-i;let a=-1,l=null;for(let c=1;!(Date.now()-o>=s.timeBudget);c++){const d=r-s.windowSize*c;e.lastIndex=Math.max(0,d);const u=I2e(e,t,r,a);if(!u&&l||(l=u,d<=0))break;a=d}if(l){const c={word:l[0],startColumn:i+1+l.index,endColumn:i+1+l.index+l[0].length};return e.lastIndex=0,c}return null}function I2e(n,e,t,i){let s;for(;s=n.exec(e);){const o=s.index||0;if(o<=t&&n.lastIndex>=t)return s;if(i>0&&o>i)return null}return null}const Ou=8;class Jre{constructor(e){this._values=e}hasChanged(e){return this._values[e]}}class eae{constructor(){this.stableMinimapLayoutInput=null,this.stableFitMaxMinimapScale=0,this.stableFitRemainingWidth=0}}class Nn{constructor(e,t,i,s){this.id=e,this.name=t,this.defaultValue=i,this.schema=s}applyUpdate(e,t){return iM(e,t)}compute(e,t,i){return i}}class sx{constructor(e,t){this.newValue=e,this.didChange=t}}function iM(n,e){if(typeof n!="object"||typeof e!="object"||!n||!e)return new sx(e,n!==e);if(Array.isArray(n)||Array.isArray(e)){const i=Array.isArray(n)&&Array.isArray(e)&&zn(n,e);return new sx(e,!i)}let t=!1;for(const i in e)if(e.hasOwnProperty(i)){const s=iM(n[i],e[i]);s.didChange&&(n[i]=s.newValue,t=!0)}return new sx(n,t)}class oD{constructor(e){this.schema=void 0,this.id=e,this.name="_never_",this.defaultValue=void 0}applyUpdate(e,t){return iM(e,t)}validate(e){return this.defaultValue}}class Nw{constructor(e,t,i,s){this.id=e,this.name=t,this.defaultValue=i,this.schema=s}applyUpdate(e,t){return iM(e,t)}validate(e){return typeof e>"u"?this.defaultValue:e}compute(e,t,i){return i}}function rt(n,e){return typeof n>"u"?e:n==="false"?!1:!!n}class fi extends Nw{constructor(e,t,i,s=void 0){typeof s<"u"&&(s.type="boolean",s.default=i),super(e,t,i,s)}validate(e){return rt(e,this.defaultValue)}}function tv(n,e,t,i){if(typeof n>"u")return e;let s=parseInt(n,10);return isNaN(s)?e:(s=Math.max(t,s),s=Math.min(i,s),s|0)}class sn extends Nw{static clampedInt(e,t,i,s){return tv(e,t,i,s)}constructor(e,t,i,s,o,r=void 0){typeof r<"u"&&(r.type="integer",r.default=i,r.minimum=s,r.maximum=o),super(e,t,i,r),this.minimum=s,this.maximum=o}validate(e){return sn.clampedInt(e,this.defaultValue,this.minimum,this.maximum)}}function E2e(n,e,t,i){if(typeof n>"u")return e;const s=gl.float(n,e);return gl.clamp(s,t,i)}class gl extends Nw{static clamp(e,t,i){return ei?i:e}static float(e,t){if(typeof e=="number")return e;if(typeof e>"u")return t;const i=parseFloat(e);return isNaN(i)?t:i}constructor(e,t,i,s,o){typeof o<"u"&&(o.type="number",o.default=i),super(e,t,i,o),this.validationFn=s}validate(e){return this.validationFn(gl.float(e,this.defaultValue))}}class xr extends Nw{static string(e,t){return typeof e!="string"?t:e}constructor(e,t,i,s=void 0){typeof s<"u"&&(s.type="string",s.default=i),super(e,t,i,s)}validate(e){return xr.string(e,this.defaultValue)}}function ns(n,e,t,i){return typeof n!="string"?e:i&&n in i?i[n]:t.indexOf(n)===-1?e:n}class qn extends Nw{constructor(e,t,i,s,o=void 0){typeof o<"u"&&(o.type="string",o.enum=s,o.default=i),super(e,t,i,o),this._allowedValues=s}validate(e){return ns(e,this.defaultValue,this._allowedValues)}}class wE extends Nn{constructor(e,t,i,s,o,r,a=void 0){typeof a<"u"&&(a.type="string",a.enum=o,a.default=s),super(e,t,i,a),this._allowedValues=o,this._convert=r}validate(e){return typeof e!="string"?this.defaultValue:this._allowedValues.indexOf(e)===-1?this.defaultValue:this._convert(e)}}function T2e(n){switch(n){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}class N2e extends Nn{constructor(){super(2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[v("accessibilitySupport.auto","Use platform APIs to detect when a Screen Reader is attached."),v("accessibilitySupport.on","Optimize for usage with a Screen Reader."),v("accessibilitySupport.off","Assume a screen reader is not attached.")],default:"auto",tags:["accessibility"],description:v("accessibilitySupport","Controls if the UI should run in a mode where it is optimized for screen readers.")})}validate(e){switch(e){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue}compute(e,t,i){return i===0?e.accessibilitySupport:i}}class A2e extends Nn{constructor(){const e={insertSpace:!0,ignoreEmptyLines:!0};super(23,"comments",e,{"editor.comments.insertSpace":{type:"boolean",default:e.insertSpace,description:v("comments.insertSpace","Controls whether a space character is inserted when commenting.")},"editor.comments.ignoreEmptyLines":{type:"boolean",default:e.ignoreEmptyLines,description:v("comments.ignoreEmptyLines","Controls if empty lines should be ignored with toggle, add or remove actions for line comments.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{insertSpace:rt(t.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:rt(t.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}}function R2e(n){switch(n){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}var vo;(function(n){n[n.Line=1]="Line",n[n.Block=2]="Block",n[n.Underline=3]="Underline",n[n.LineThin=4]="LineThin",n[n.BlockOutline=5]="BlockOutline",n[n.UnderlineThin=6]="UnderlineThin"})(vo||(vo={}));function M2e(n){switch(n){case"line":return vo.Line;case"block":return vo.Block;case"underline":return vo.Underline;case"line-thin":return vo.LineThin;case"block-outline":return vo.BlockOutline;case"underline-thin":return vo.UnderlineThin}}class P2e extends oD{constructor(){super(142)}compute(e,t,i){const s=["monaco-editor"];return t.get(39)&&s.push(t.get(39)),e.extraEditorClassName&&s.push(e.extraEditorClassName),t.get(74)==="default"?s.push("mouse-default"):t.get(74)==="copy"&&s.push("mouse-copy"),t.get(111)&&s.push("showUnused"),t.get(140)&&s.push("showDeprecated"),s.join(" ")}}class O2e extends fi{constructor(){super(37,"emptySelectionClipboard",!0,{description:v("emptySelectionClipboard","Controls whether copying without a selection copies the current line.")})}compute(e,t,i){return i&&e.emptySelectionClipboard}}class F2e extends Nn{constructor(){const e={cursorMoveOnType:!0,seedSearchStringFromSelection:"always",autoFindInSelection:"never",globalFindClipboard:!1,addExtraSpaceOnTop:!0,loop:!0};super(41,"find",e,{"editor.find.cursorMoveOnType":{type:"boolean",default:e.cursorMoveOnType,description:v("find.cursorMoveOnType","Controls whether the cursor should jump to find matches while typing.")},"editor.find.seedSearchStringFromSelection":{type:"string",enum:["never","always","selection"],default:e.seedSearchStringFromSelection,enumDescriptions:[v("editor.find.seedSearchStringFromSelection.never","Never seed search string from the editor selection."),v("editor.find.seedSearchStringFromSelection.always","Always seed search string from the editor selection, including word at cursor position."),v("editor.find.seedSearchStringFromSelection.selection","Only seed search string from the editor selection.")],description:v("find.seedSearchStringFromSelection","Controls whether the search string in the Find Widget is seeded from the editor selection.")},"editor.find.autoFindInSelection":{type:"string",enum:["never","always","multiline"],default:e.autoFindInSelection,enumDescriptions:[v("editor.find.autoFindInSelection.never","Never turn on Find in Selection automatically (default)."),v("editor.find.autoFindInSelection.always","Always turn on Find in Selection automatically."),v("editor.find.autoFindInSelection.multiline","Turn on Find in Selection automatically when multiple lines of content are selected.")],description:v("find.autoFindInSelection","Controls the condition for turning on Find in Selection automatically.")},"editor.find.globalFindClipboard":{type:"boolean",default:e.globalFindClipboard,description:v("find.globalFindClipboard","Controls whether the Find Widget should read or modify the shared find clipboard on macOS."),included:Xt},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:e.addExtraSpaceOnTop,description:v("find.addExtraSpaceOnTop","Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.")},"editor.find.loop":{type:"boolean",default:e.loop,description:v("find.loop","Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{cursorMoveOnType:rt(t.cursorMoveOnType,this.defaultValue.cursorMoveOnType),seedSearchStringFromSelection:typeof e.seedSearchStringFromSelection=="boolean"?e.seedSearchStringFromSelection?"always":"never":ns(t.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection,["never","always","selection"]),autoFindInSelection:typeof e.autoFindInSelection=="boolean"?e.autoFindInSelection?"always":"never":ns(t.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:rt(t.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:rt(t.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:rt(t.loop,this.defaultValue.loop)}}}class cl extends Nn{constructor(){super(51,"fontLigatures",cl.OFF,{anyOf:[{type:"boolean",description:v("fontLigatures","Enables/Disables font ligatures ('calt' and 'liga' font features). Change this to a string for fine-grained control of the 'font-feature-settings' CSS property.")},{type:"string",description:v("fontFeatureSettings","Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.")}],description:v("fontLigaturesGeneral","Configures font ligatures or font features. Can be either a boolean to enable/disable ligatures or a string for the value of the CSS 'font-feature-settings' property."),default:!1})}validate(e){return typeof e>"u"?this.defaultValue:typeof e=="string"?e==="false"||e.length===0?cl.OFF:e==="true"?cl.ON:e:e?cl.ON:cl.OFF}}cl.OFF='"liga" off, "calt" off';cl.ON='"liga" on, "calt" on';class Fd extends Nn{constructor(){super(54,"fontVariations",Fd.OFF,{anyOf:[{type:"boolean",description:v("fontVariations","Enables/Disables the translation from font-weight to font-variation-settings. Change this to a string for fine-grained control of the 'font-variation-settings' CSS property.")},{type:"string",description:v("fontVariationSettings","Explicit 'font-variation-settings' CSS property. A boolean can be passed instead if one only needs to translate font-weight to font-variation-settings.")}],description:v("fontVariationsGeneral","Configures font variations. Can be either a boolean to enable/disable the translation from font-weight to font-variation-settings or a string for the value of the CSS 'font-variation-settings' property."),default:!1})}validate(e){return typeof e>"u"?this.defaultValue:typeof e=="string"?e==="false"?Fd.OFF:e==="true"?Fd.TRANSLATE:e:e?Fd.TRANSLATE:Fd.OFF}compute(e,t,i){return e.fontInfo.fontVariationSettings}}Fd.OFF="normal";Fd.TRANSLATE="translate";class B2e extends oD{constructor(){super(50)}compute(e,t,i){return e.fontInfo}}class W2e extends Nw{constructor(){super(52,"fontSize",ra.fontSize,{type:"number",minimum:6,maximum:100,default:ra.fontSize,description:v("fontSize","Controls the font size in pixels.")})}validate(e){const t=gl.float(e,this.defaultValue);return t===0?ra.fontSize:gl.clamp(t,6,100)}compute(e,t,i){return e.fontInfo.fontSize}}class Qu extends Nn{constructor(){super(53,"fontWeight",ra.fontWeight,{anyOf:[{type:"number",minimum:Qu.MINIMUM_VALUE,maximum:Qu.MAXIMUM_VALUE,errorMessage:v("fontWeightErrorMessage",'Only "normal" and "bold" keywords or numbers between 1 and 1000 are allowed.')},{type:"string",pattern:"^(normal|bold|1000|[1-9][0-9]{0,2})$"},{enum:Qu.SUGGESTION_VALUES}],default:ra.fontWeight,description:v("fontWeight",'Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.')})}validate(e){return e==="normal"||e==="bold"?e:String(sn.clampedInt(e,ra.fontWeight,Qu.MINIMUM_VALUE,Qu.MAXIMUM_VALUE))}}Qu.SUGGESTION_VALUES=["normal","bold","100","200","300","400","500","600","700","800","900"];Qu.MINIMUM_VALUE=1;Qu.MAXIMUM_VALUE=1e3;class H2e extends Nn{constructor(){const e={multiple:"peek",multipleDefinitions:"peek",multipleTypeDefinitions:"peek",multipleDeclarations:"peek",multipleImplementations:"peek",multipleReferences:"peek",alternativeDefinitionCommand:"editor.action.goToReferences",alternativeTypeDefinitionCommand:"editor.action.goToReferences",alternativeDeclarationCommand:"editor.action.goToReferences",alternativeImplementationCommand:"",alternativeReferenceCommand:""},t={type:"string",enum:["peek","gotoAndPeek","goto"],default:e.multiple,enumDescriptions:[v("editor.gotoLocation.multiple.peek","Show Peek view of the results (default)"),v("editor.gotoLocation.multiple.gotoAndPeek","Go to the primary result and show a Peek view"),v("editor.gotoLocation.multiple.goto","Go to the primary result and enable Peek-less navigation to others")]},i=["","editor.action.referenceSearch.trigger","editor.action.goToReferences","editor.action.peekImplementation","editor.action.goToImplementation","editor.action.peekTypeDefinition","editor.action.goToTypeDefinition","editor.action.peekDeclaration","editor.action.revealDeclaration","editor.action.peekDefinition","editor.action.revealDefinitionAside","editor.action.revealDefinition"];super(58,"gotoLocation",e,{"editor.gotoLocation.multiple":{deprecationMessage:v("editor.gotoLocation.multiple.deprecated","This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.")},"editor.gotoLocation.multipleDefinitions":{description:v("editor.editor.gotoLocation.multipleDefinitions","Controls the behavior the 'Go to Definition'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleTypeDefinitions":{description:v("editor.editor.gotoLocation.multipleTypeDefinitions","Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleDeclarations":{description:v("editor.editor.gotoLocation.multipleDeclarations","Controls the behavior the 'Go to Declaration'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleImplementations":{description:v("editor.editor.gotoLocation.multipleImplemenattions","Controls the behavior the 'Go to Implementations'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleReferences":{description:v("editor.editor.gotoLocation.multipleReferences","Controls the behavior the 'Go to References'-command when multiple target locations exist."),...t},"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:e.alternativeDefinitionCommand,enum:i,description:v("alternativeDefinitionCommand","Alternative command id that is being executed when the result of 'Go to Definition' is the current location.")},"editor.gotoLocation.alternativeTypeDefinitionCommand":{type:"string",default:e.alternativeTypeDefinitionCommand,enum:i,description:v("alternativeTypeDefinitionCommand","Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.")},"editor.gotoLocation.alternativeDeclarationCommand":{type:"string",default:e.alternativeDeclarationCommand,enum:i,description:v("alternativeDeclarationCommand","Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.")},"editor.gotoLocation.alternativeImplementationCommand":{type:"string",default:e.alternativeImplementationCommand,enum:i,description:v("alternativeImplementationCommand","Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.")},"editor.gotoLocation.alternativeReferenceCommand":{type:"string",default:e.alternativeReferenceCommand,enum:i,description:v("alternativeReferenceCommand","Alternative command id that is being executed when the result of 'Go to Reference' is the current location.")}})}validate(e){var t,i,s,o,r;if(!e||typeof e!="object")return this.defaultValue;const a=e;return{multiple:ns(a.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:(t=a.multipleDefinitions)!==null&&t!==void 0?t:ns(a.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:(i=a.multipleTypeDefinitions)!==null&&i!==void 0?i:ns(a.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:(s=a.multipleDeclarations)!==null&&s!==void 0?s:ns(a.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:(o=a.multipleImplementations)!==null&&o!==void 0?o:ns(a.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:(r=a.multipleReferences)!==null&&r!==void 0?r:ns(a.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:xr.string(a.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:xr.string(a.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:xr.string(a.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:xr.string(a.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:xr.string(a.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand)}}}class V2e extends Nn{constructor(){const e={enabled:!0,delay:300,hidingDelay:300,sticky:!0,above:!0};super(60,"hover",e,{"editor.hover.enabled":{type:"boolean",default:e.enabled,description:v("hover.enabled","Controls whether the hover is shown.")},"editor.hover.delay":{type:"number",default:e.delay,minimum:0,maximum:1e4,description:v("hover.delay","Controls the delay in milliseconds after which the hover is shown.")},"editor.hover.sticky":{type:"boolean",default:e.sticky,description:v("hover.sticky","Controls whether the hover should remain visible when mouse is moved over it.")},"editor.hover.hidingDelay":{type:"integer",minimum:0,default:e.hidingDelay,description:v("hover.hidingDelay","Controls the delay in milliseconds after which the hover is hidden. Requires `editor.hover.sticky` to be enabled.")},"editor.hover.above":{type:"boolean",default:e.above,description:v("hover.above","Prefer showing hovers above the line, if there's space.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:rt(t.enabled,this.defaultValue.enabled),delay:sn.clampedInt(t.delay,this.defaultValue.delay,0,1e4),sticky:rt(t.sticky,this.defaultValue.sticky),hidingDelay:sn.clampedInt(t.hidingDelay,this.defaultValue.hidingDelay,0,6e5),above:rt(t.above,this.defaultValue.above)}}}class U1 extends oD{constructor(){super(145)}compute(e,t,i){return U1.computeLayout(t,{memory:e.memory,outerWidth:e.outerWidth,outerHeight:e.outerHeight,isDominatedByLongLines:e.isDominatedByLongLines,lineHeight:e.fontInfo.lineHeight,viewLineCount:e.viewLineCount,lineNumbersDigitCount:e.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:e.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:e.fontInfo.maxDigitWidth,pixelRatio:e.pixelRatio,glyphMarginDecorationLaneCount:e.glyphMarginDecorationLaneCount})}static computeContainedMinimapLineCount(e){const t=e.height/e.lineHeight,i=Math.floor(e.paddingTop/e.lineHeight);let s=Math.floor(e.paddingBottom/e.lineHeight);e.scrollBeyondLastLine&&(s=Math.max(s,t-1));const o=(i+e.viewLineCount+s)/(e.pixelRatio*e.height),r=Math.floor(e.viewLineCount/o);return{typicalViewportLineCount:t,extraLinesBeforeFirstLine:i,extraLinesBeyondLastLine:s,desiredRatio:o,minimapLineCount:r}}static _computeMinimapLayout(e,t){const i=e.outerWidth,s=e.outerHeight,o=e.pixelRatio;if(!e.minimap.enabled)return{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:Math.floor(o*s),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:s};const r=t.stableMinimapLayoutInput,a=r&&e.outerHeight===r.outerHeight&&e.lineHeight===r.lineHeight&&e.typicalHalfwidthCharacterWidth===r.typicalHalfwidthCharacterWidth&&e.pixelRatio===r.pixelRatio&&e.scrollBeyondLastLine===r.scrollBeyondLastLine&&e.paddingTop===r.paddingTop&&e.paddingBottom===r.paddingBottom&&e.minimap.enabled===r.minimap.enabled&&e.minimap.side===r.minimap.side&&e.minimap.size===r.minimap.size&&e.minimap.showSlider===r.minimap.showSlider&&e.minimap.renderCharacters===r.minimap.renderCharacters&&e.minimap.maxColumn===r.minimap.maxColumn&&e.minimap.scale===r.minimap.scale&&e.verticalScrollbarWidth===r.verticalScrollbarWidth&&e.isViewportWrapping===r.isViewportWrapping,l=e.lineHeight,c=e.typicalHalfwidthCharacterWidth,d=e.scrollBeyondLastLine,u=e.minimap.renderCharacters;let h=o>=2?Math.round(e.minimap.scale*2):e.minimap.scale;const f=e.minimap.maxColumn,g=e.minimap.size,p=e.minimap.side,_=e.verticalScrollbarWidth,b=e.viewLineCount,w=e.remainingWidth,y=e.isViewportWrapping,S=u?2:3;let x=Math.floor(o*s);const k=x/o;let D=!1,I=!1,N=S*h,P=h/o,O=1;if(g==="fill"||g==="fit"){const{typicalViewportLineCount:me,extraLinesBeforeFirstLine:De,extraLinesBeyondLastLine:lt,desiredRatio:We,minimapLineCount:Ve}=U1.computeContainedMinimapLineCount({viewLineCount:b,scrollBeyondLastLine:d,paddingTop:e.paddingTop,paddingBottom:e.paddingBottom,height:s,lineHeight:l,pixelRatio:o});if(b/Ve>1)D=!0,I=!0,h=1,N=1,P=h/o;else{let Zt=!1,Oi=h+1;if(g==="fit"){const ni=Math.ceil((De+b+lt)*N);y&&a&&w<=t.stableFitRemainingWidth?(Zt=!0,Oi=t.stableFitMaxMinimapScale):Zt=ni>x}if(g==="fill"||Zt){D=!0;const ni=h;N=Math.min(l*o,Math.max(1,Math.floor(1/We))),y&&a&&w<=t.stableFitRemainingWidth&&(Oi=t.stableFitMaxMinimapScale),h=Math.min(Oi,Math.max(1,Math.floor(N/S))),h>ni&&(O=Math.min(2,h/ni)),P=h/o/O,x=Math.ceil(Math.max(me,De+b+lt)*N),y?(t.stableMinimapLayoutInput=e,t.stableFitRemainingWidth=w,t.stableFitMaxMinimapScale=h):(t.stableMinimapLayoutInput=null,t.stableFitRemainingWidth=0)}}}const M=Math.floor(f*P),z=Math.min(M,Math.max(0,Math.floor((w-_-2)*P/(c+P)))+Ou);let K=Math.floor(o*z);const ae=K/o;K=Math.floor(K*O);const se=u?1:2,he=p==="left"?0:i-z-_;return{renderMinimap:se,minimapLeft:he,minimapWidth:z,minimapHeightIsEditorHeight:D,minimapIsSampling:I,minimapScale:h,minimapLineHeight:N,minimapCanvasInnerWidth:K,minimapCanvasInnerHeight:x,minimapCanvasOuterWidth:ae,minimapCanvasOuterHeight:k}}static computeLayout(e,t){const i=t.outerWidth|0,s=t.outerHeight|0,o=t.lineHeight|0,r=t.lineNumbersDigitCount|0,a=t.typicalHalfwidthCharacterWidth,l=t.maxDigitWidth,c=t.pixelRatio,d=t.viewLineCount,u=e.get(137),h=u==="inherit"?e.get(136):u,f=h==="inherit"?e.get(132):h,g=e.get(135),p=t.isDominatedByLongLines,_=e.get(57),b=e.get(68).renderType!==0,w=e.get(69),y=e.get(105),S=e.get(84),x=e.get(73),k=e.get(103),D=k.verticalScrollbarSize,I=k.verticalHasArrows,N=k.arrowSize,P=k.horizontalScrollbarSize,O=e.get(43),M=e.get(110)!=="never";let z=e.get(66);O&&M&&(z+=16);let K=0;if(b){const Qe=Math.max(r,w);K=Math.round(Qe*l)}let ae=0;_&&(ae=o*t.glyphMarginDecorationLaneCount);let se=0,he=se+ae,me=he+K,De=me+z;const lt=i-ae-K-z;let We=!1,Ve=!1,Me=-1;h==="inherit"&&p?(We=!0,Ve=!0):f==="on"||f==="bounded"?Ve=!0:f==="wordWrapColumn"&&(Me=g);const Zt=U1._computeMinimapLayout({outerWidth:i,outerHeight:s,lineHeight:o,typicalHalfwidthCharacterWidth:a,pixelRatio:c,scrollBeyondLastLine:y,paddingTop:S.top,paddingBottom:S.bottom,minimap:x,verticalScrollbarWidth:D,viewLineCount:d,remainingWidth:lt,isViewportWrapping:Ve},t.memory||new eae);Zt.renderMinimap!==0&&Zt.minimapLeft===0&&(se+=Zt.minimapWidth,he+=Zt.minimapWidth,me+=Zt.minimapWidth,De+=Zt.minimapWidth);const Oi=lt-Zt.minimapWidth,ni=Math.max(1,Math.floor((Oi-D-2)/a)),Se=I?N:0;return Ve&&(Me=Math.max(1,ni),f==="bounded"&&(Me=Math.min(Me,g))),{width:i,height:s,glyphMarginLeft:se,glyphMarginWidth:ae,glyphMarginDecorationLaneCount:t.glyphMarginDecorationLaneCount,lineNumbersLeft:he,lineNumbersWidth:K,decorationsLeft:me,decorationsWidth:z,contentLeft:De,contentWidth:Oi,minimap:Zt,viewportColumn:ni,isWordWrapMinified:We,isViewportWrapping:Ve,wrappingColumn:Me,verticalScrollbarWidth:D,horizontalScrollbarHeight:P,overviewRuler:{top:Se,width:D,height:s-2*Se,right:0}}}}class z2e extends Nn{constructor(){super(139,"wrappingStrategy","simple",{"editor.wrappingStrategy":{enumDescriptions:[v("wrappingStrategy.simple","Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width."),v("wrappingStrategy.advanced","Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.")],type:"string",enum:["simple","advanced"],default:"simple",description:v("wrappingStrategy","Controls the algorithm that computes wrapping points. Note that when in accessibility mode, advanced will be used for the best experience.")}})}validate(e){return ns(e,"simple",["simple","advanced"])}compute(e,t,i){return t.get(2)===2?"advanced":i}}var Hc;(function(n){n.Off="off",n.OnCode="onCode",n.On="on"})(Hc||(Hc={}));class $2e extends Nn{constructor(){const e={enabled:Hc.On};super(65,"lightbulb",e,{"editor.lightbulb.enabled":{type:"string",tags:["experimental"],enum:[Hc.Off,Hc.OnCode,Hc.On],default:e.enabled,enumDescriptions:[v("editor.lightbulb.enabled.off","Disable the code action menu."),v("editor.lightbulb.enabled.onCode","Show the code action menu when the cursor is on lines with code."),v("editor.lightbulb.enabled.on","Show the code action menu when the cursor is on lines with code or on empty lines.")],description:v("enabled","Enables the Code Action lightbulb in the editor.")}})}validate(e){return!e||typeof e!="object"?this.defaultValue:{enabled:ns(e.enabled,this.defaultValue.enabled,[Hc.Off,Hc.OnCode,Hc.On])}}}class U2e extends Nn{constructor(){const e={enabled:!0,maxLineCount:5,defaultModel:"outlineModel",scrollWithEditor:!0};super(115,"stickyScroll",e,{"editor.stickyScroll.enabled":{type:"boolean",default:e.enabled,description:v("editor.stickyScroll.enabled","Shows the nested current scopes during the scroll at the top of the editor."),tags:["experimental"]},"editor.stickyScroll.maxLineCount":{type:"number",default:e.maxLineCount,minimum:1,maximum:20,description:v("editor.stickyScroll.maxLineCount","Defines the maximum number of sticky lines to show.")},"editor.stickyScroll.defaultModel":{type:"string",enum:["outlineModel","foldingProviderModel","indentationModel"],default:e.defaultModel,description:v("editor.stickyScroll.defaultModel","Defines the model to use for determining which lines to stick. If the outline model does not exist, it will fall back on the folding provider model which falls back on the indentation model. This order is respected in all three cases.")},"editor.stickyScroll.scrollWithEditor":{type:"boolean",default:e.scrollWithEditor,description:v("editor.stickyScroll.scrollWithEditor","Enable scrolling of Sticky Scroll with the editor's horizontal scrollbar.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:rt(t.enabled,this.defaultValue.enabled),maxLineCount:sn.clampedInt(t.maxLineCount,this.defaultValue.maxLineCount,1,20),defaultModel:ns(t.defaultModel,this.defaultValue.defaultModel,["outlineModel","foldingProviderModel","indentationModel"]),scrollWithEditor:rt(t.scrollWithEditor,this.defaultValue.scrollWithEditor)}}}class j2e extends Nn{constructor(){const e={enabled:"on",fontSize:0,fontFamily:"",padding:!1};super(141,"inlayHints",e,{"editor.inlayHints.enabled":{type:"string",default:e.enabled,description:v("inlayHints.enable","Enables the inlay hints in the editor."),enum:["on","onUnlessPressed","offUnlessPressed","off"],markdownEnumDescriptions:[v("editor.inlayHints.on","Inlay hints are enabled"),v("editor.inlayHints.onUnlessPressed","Inlay hints are showing by default and hide when holding {0}",Xt?"Ctrl+Option":"Ctrl+Alt"),v("editor.inlayHints.offUnlessPressed","Inlay hints are hidden by default and show when holding {0}",Xt?"Ctrl+Option":"Ctrl+Alt"),v("editor.inlayHints.off","Inlay hints are disabled")]},"editor.inlayHints.fontSize":{type:"number",default:e.fontSize,markdownDescription:v("inlayHints.fontSize","Controls font size of inlay hints in the editor. As default the {0} is used when the configured value is less than {1} or greater than the editor font size.","`#editor.fontSize#`","`5`")},"editor.inlayHints.fontFamily":{type:"string",default:e.fontFamily,markdownDescription:v("inlayHints.fontFamily","Controls font family of inlay hints in the editor. When set to empty, the {0} is used.","`#editor.fontFamily#`")},"editor.inlayHints.padding":{type:"boolean",default:e.padding,description:v("inlayHints.padding","Enables the padding around the inlay hints in the editor.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return typeof t.enabled=="boolean"&&(t.enabled=t.enabled?"on":"off"),{enabled:ns(t.enabled,this.defaultValue.enabled,["on","off","offUnlessPressed","onUnlessPressed"]),fontSize:sn.clampedInt(t.fontSize,this.defaultValue.fontSize,0,100),fontFamily:xr.string(t.fontFamily,this.defaultValue.fontFamily),padding:rt(t.padding,this.defaultValue.padding)}}}class K2e extends Nn{constructor(){super(66,"lineDecorationsWidth",10)}validate(e){return typeof e=="string"&&/^\d+(\.\d+)?ch$/.test(e)?-parseFloat(e.substring(0,e.length-2)):sn.clampedInt(e,this.defaultValue,0,1e3)}compute(e,t,i){return i<0?sn.clampedInt(-i*e.fontInfo.typicalHalfwidthCharacterWidth,this.defaultValue,0,1e3):i}}class q2e extends gl{constructor(){super(67,"lineHeight",ra.lineHeight,e=>gl.clamp(e,0,150),{markdownDescription:v("lineHeight",`Controls the line height. - Use 0 to automatically compute the line height from the font size. - Values between 0 and 8 will be used as a multiplier with the font size. - Values greater than or equal to 8 will be used as effective values.`)})}compute(e,t,i){return e.fontInfo.lineHeight}}class G2e extends Nn{constructor(){const e={enabled:!0,size:"proportional",side:"right",showSlider:"mouseover",autohide:!1,renderCharacters:!0,maxColumn:120,scale:1,showRegionSectionHeaders:!0,showMarkSectionHeaders:!0,sectionHeaderFontSize:9,sectionHeaderLetterSpacing:1};super(73,"minimap",e,{"editor.minimap.enabled":{type:"boolean",default:e.enabled,description:v("minimap.enabled","Controls whether the minimap is shown.")},"editor.minimap.autohide":{type:"boolean",default:e.autohide,description:v("minimap.autohide","Controls whether the minimap is hidden automatically.")},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"],enumDescriptions:[v("minimap.size.proportional","The minimap has the same size as the editor contents (and might scroll)."),v("minimap.size.fill","The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling)."),v("minimap.size.fit","The minimap will shrink as necessary to never be larger than the editor (no scrolling).")],default:e.size,description:v("minimap.size","Controls the size of the minimap.")},"editor.minimap.side":{type:"string",enum:["left","right"],default:e.side,description:v("minimap.side","Controls the side where to render the minimap.")},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:e.showSlider,description:v("minimap.showSlider","Controls when the minimap slider is shown.")},"editor.minimap.scale":{type:"number",default:e.scale,minimum:1,maximum:3,enum:[1,2,3],description:v("minimap.scale","Scale of content drawn in the minimap: 1, 2 or 3.")},"editor.minimap.renderCharacters":{type:"boolean",default:e.renderCharacters,description:v("minimap.renderCharacters","Render the actual characters on a line as opposed to color blocks.")},"editor.minimap.maxColumn":{type:"number",default:e.maxColumn,description:v("minimap.maxColumn","Limit the width of the minimap to render at most a certain number of columns.")},"editor.minimap.showRegionSectionHeaders":{type:"boolean",default:e.showRegionSectionHeaders,description:v("minimap.showRegionSectionHeaders","Controls whether named regions are shown as section headers in the minimap.")},"editor.minimap.showMarkSectionHeaders":{type:"boolean",default:e.showMarkSectionHeaders,description:v("minimap.showMarkSectionHeaders","Controls whether MARK: comments are shown as section headers in the minimap.")},"editor.minimap.sectionHeaderFontSize":{type:"number",default:e.sectionHeaderFontSize,description:v("minimap.sectionHeaderFontSize","Controls the font size of section headers in the minimap.")},"editor.minimap.sectionHeaderLetterSpacing":{type:"number",default:e.sectionHeaderLetterSpacing,description:v("minimap.sectionHeaderLetterSpacing","Controls the amount of space (in pixels) between characters of section header. This helps the readability of the header in small font sizes.")}})}validate(e){var t,i;if(!e||typeof e!="object")return this.defaultValue;const s=e;return{enabled:rt(s.enabled,this.defaultValue.enabled),autohide:rt(s.autohide,this.defaultValue.autohide),size:ns(s.size,this.defaultValue.size,["proportional","fill","fit"]),side:ns(s.side,this.defaultValue.side,["right","left"]),showSlider:ns(s.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:rt(s.renderCharacters,this.defaultValue.renderCharacters),scale:sn.clampedInt(s.scale,1,1,3),maxColumn:sn.clampedInt(s.maxColumn,this.defaultValue.maxColumn,1,1e4),showRegionSectionHeaders:rt(s.showRegionSectionHeaders,this.defaultValue.showRegionSectionHeaders),showMarkSectionHeaders:rt(s.showMarkSectionHeaders,this.defaultValue.showMarkSectionHeaders),sectionHeaderFontSize:gl.clamp((t=s.sectionHeaderFontSize)!==null&&t!==void 0?t:this.defaultValue.sectionHeaderFontSize,4,32),sectionHeaderLetterSpacing:gl.clamp((i=s.sectionHeaderLetterSpacing)!==null&&i!==void 0?i:this.defaultValue.sectionHeaderLetterSpacing,0,5)}}}function Z2e(n){return n==="ctrlCmd"?Xt?"metaKey":"ctrlKey":"altKey"}class Y2e extends Nn{constructor(){super(84,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:v("padding.top","Controls the amount of space between the top edge of the editor and the first line.")},"editor.padding.bottom":{type:"number",default:0,minimum:0,maximum:1e3,description:v("padding.bottom","Controls the amount of space between the bottom edge of the editor and the last line.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{top:sn.clampedInt(t.top,0,0,1e3),bottom:sn.clampedInt(t.bottom,0,0,1e3)}}}class X2e extends Nn{constructor(){const e={enabled:!0,cycle:!0};super(86,"parameterHints",e,{"editor.parameterHints.enabled":{type:"boolean",default:e.enabled,description:v("parameterHints.enabled","Enables a pop-up that shows parameter documentation and type information as you type.")},"editor.parameterHints.cycle":{type:"boolean",default:e.cycle,description:v("parameterHints.cycle","Controls whether the parameter hints menu cycles or closes when reaching the end of the list.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:rt(t.enabled,this.defaultValue.enabled),cycle:rt(t.cycle,this.defaultValue.cycle)}}}class Q2e extends oD{constructor(){super(143)}compute(e,t,i){return e.pixelRatio}}class J2e extends Nn{constructor(){const e={other:"on",comments:"off",strings:"off"},t=[{type:"boolean"},{type:"string",enum:["on","inline","off"],enumDescriptions:[v("on","Quick suggestions show inside the suggest widget"),v("inline","Quick suggestions show as ghost text"),v("off","Quick suggestions are disabled")]}];super(89,"quickSuggestions",e,{type:"object",additionalProperties:!1,properties:{strings:{anyOf:t,default:e.strings,description:v("quickSuggestions.strings","Enable quick suggestions inside strings.")},comments:{anyOf:t,default:e.comments,description:v("quickSuggestions.comments","Enable quick suggestions inside comments.")},other:{anyOf:t,default:e.other,description:v("quickSuggestions.other","Enable quick suggestions outside of strings and comments.")}},default:e,markdownDescription:v("quickSuggestions","Controls whether suggestions should automatically show up while typing. This can be controlled for typing in comments, strings, and other code. Quick suggestion can be configured to show as ghost text or with the suggest widget. Also be aware of the '{0}'-setting which controls if suggestions are triggered by special characters.","#editor.suggestOnTriggerCharacters#")}),this.defaultValue=e}validate(e){if(typeof e=="boolean"){const c=e?"on":"off";return{comments:c,strings:c,other:c}}if(!e||typeof e!="object")return this.defaultValue;const{other:t,comments:i,strings:s}=e,o=["on","inline","off"];let r,a,l;return typeof t=="boolean"?r=t?"on":"off":r=ns(t,this.defaultValue.other,o),typeof i=="boolean"?a=i?"on":"off":a=ns(i,this.defaultValue.comments,o),typeof s=="boolean"?l=s?"on":"off":l=ns(s,this.defaultValue.strings,o),{other:r,comments:a,strings:l}}}class eAe extends Nn{constructor(){super(68,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[v("lineNumbers.off","Line numbers are not rendered."),v("lineNumbers.on","Line numbers are rendered as absolute number."),v("lineNumbers.relative","Line numbers are rendered as distance in lines to cursor position."),v("lineNumbers.interval","Line numbers are rendered every 10 lines.")],default:"on",description:v("lineNumbers","Controls the display of line numbers.")})}validate(e){let t=this.defaultValue.renderType,i=this.defaultValue.renderFn;return typeof e<"u"&&(typeof e=="function"?(t=4,i=e):e==="interval"?t=3:e==="relative"?t=2:e==="on"?t=1:t=0),{renderType:t,renderFn:i}}}function k2(n){const e=n.get(98);return e==="editable"?n.get(91):e!=="on"}class tAe extends Nn{constructor(){const e=[],t={type:"number",description:v("rulers.size","Number of monospace characters at which this editor ruler will render.")};super(102,"rulers",e,{type:"array",items:{anyOf:[t,{type:["object"],properties:{column:t,color:{type:"string",description:v("rulers.color","Color of this editor ruler."),format:"color-hex"}}}]},default:e,description:v("rulers","Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.")})}validate(e){if(Array.isArray(e)){const t=[];for(const i of e)if(typeof i=="number")t.push({column:sn.clampedInt(i,0,0,1e4),color:null});else if(i&&typeof i=="object"){const s=i;t.push({column:sn.clampedInt(s.column,0,0,1e4),color:s.color})}return t.sort((i,s)=>i.column-s.column),t}return this.defaultValue}}class iAe extends Nn{constructor(){super(92,"readOnlyMessage",void 0)}validate(e){return!e||typeof e!="object"?this.defaultValue:e}}function tY(n,e){if(typeof n!="string")return e;switch(n){case"hidden":return 2;case"visible":return 3;default:return 1}}let nAe=class extends Nn{constructor(){const e={vertical:1,horizontal:1,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:12,horizontalSliderSize:12,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,alwaysConsumeMouseWheel:!0,scrollByPage:!1,ignoreHorizontalScrollbarInContentHeight:!1};super(103,"scrollbar",e,{"editor.scrollbar.vertical":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[v("scrollbar.vertical.auto","The vertical scrollbar will be visible only when necessary."),v("scrollbar.vertical.visible","The vertical scrollbar will always be visible."),v("scrollbar.vertical.fit","The vertical scrollbar will always be hidden.")],default:"auto",description:v("scrollbar.vertical","Controls the visibility of the vertical scrollbar.")},"editor.scrollbar.horizontal":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[v("scrollbar.horizontal.auto","The horizontal scrollbar will be visible only when necessary."),v("scrollbar.horizontal.visible","The horizontal scrollbar will always be visible."),v("scrollbar.horizontal.fit","The horizontal scrollbar will always be hidden.")],default:"auto",description:v("scrollbar.horizontal","Controls the visibility of the horizontal scrollbar.")},"editor.scrollbar.verticalScrollbarSize":{type:"number",default:e.verticalScrollbarSize,description:v("scrollbar.verticalScrollbarSize","The width of the vertical scrollbar.")},"editor.scrollbar.horizontalScrollbarSize":{type:"number",default:e.horizontalScrollbarSize,description:v("scrollbar.horizontalScrollbarSize","The height of the horizontal scrollbar.")},"editor.scrollbar.scrollByPage":{type:"boolean",default:e.scrollByPage,description:v("scrollbar.scrollByPage","Controls whether clicks scroll by page or jump to click position.")},"editor.scrollbar.ignoreHorizontalScrollbarInContentHeight":{type:"boolean",default:e.ignoreHorizontalScrollbarInContentHeight,description:v("scrollbar.ignoreHorizontalScrollbarInContentHeight","When set, the horizontal scrollbar will not increase the size of the editor's content.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e,i=sn.clampedInt(t.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),s=sn.clampedInt(t.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:sn.clampedInt(t.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:tY(t.vertical,this.defaultValue.vertical),horizontal:tY(t.horizontal,this.defaultValue.horizontal),useShadows:rt(t.useShadows,this.defaultValue.useShadows),verticalHasArrows:rt(t.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:rt(t.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:rt(t.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:rt(t.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:i,horizontalSliderSize:sn.clampedInt(t.horizontalSliderSize,i,0,1e3),verticalScrollbarSize:s,verticalSliderSize:sn.clampedInt(t.verticalSliderSize,s,0,1e3),scrollByPage:rt(t.scrollByPage,this.defaultValue.scrollByPage),ignoreHorizontalScrollbarInContentHeight:rt(t.ignoreHorizontalScrollbarInContentHeight,this.defaultValue.ignoreHorizontalScrollbarInContentHeight)}}};const Qa="inUntrustedWorkspace",Jr={allowedCharacters:"editor.unicodeHighlight.allowedCharacters",invisibleCharacters:"editor.unicodeHighlight.invisibleCharacters",nonBasicASCII:"editor.unicodeHighlight.nonBasicASCII",ambiguousCharacters:"editor.unicodeHighlight.ambiguousCharacters",includeComments:"editor.unicodeHighlight.includeComments",includeStrings:"editor.unicodeHighlight.includeStrings",allowedLocales:"editor.unicodeHighlight.allowedLocales"};class sAe extends Nn{constructor(){const e={nonBasicASCII:Qa,invisibleCharacters:!0,ambiguousCharacters:!0,includeComments:Qa,includeStrings:!0,allowedCharacters:{},allowedLocales:{_os:!0,_vscode:!0}};super(125,"unicodeHighlight",e,{[Jr.nonBasicASCII]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,Qa],default:e.nonBasicASCII,description:v("unicodeHighlight.nonBasicASCII","Controls whether all non-basic ASCII characters are highlighted. Only characters between U+0020 and U+007E, tab, line-feed and carriage-return are considered basic ASCII.")},[Jr.invisibleCharacters]:{restricted:!0,type:"boolean",default:e.invisibleCharacters,description:v("unicodeHighlight.invisibleCharacters","Controls whether characters that just reserve space or have no width at all are highlighted.")},[Jr.ambiguousCharacters]:{restricted:!0,type:"boolean",default:e.ambiguousCharacters,description:v("unicodeHighlight.ambiguousCharacters","Controls whether characters are highlighted that can be confused with basic ASCII characters, except those that are common in the current user locale.")},[Jr.includeComments]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,Qa],default:e.includeComments,description:v("unicodeHighlight.includeComments","Controls whether characters in comments should also be subject to Unicode highlighting.")},[Jr.includeStrings]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,Qa],default:e.includeStrings,description:v("unicodeHighlight.includeStrings","Controls whether characters in strings should also be subject to Unicode highlighting.")},[Jr.allowedCharacters]:{restricted:!0,type:"object",default:e.allowedCharacters,description:v("unicodeHighlight.allowedCharacters","Defines allowed characters that are not being highlighted."),additionalProperties:{type:"boolean"}},[Jr.allowedLocales]:{restricted:!0,type:"object",additionalProperties:{type:"boolean"},default:e.allowedLocales,description:v("unicodeHighlight.allowedLocales","Unicode characters that are common in allowed locales are not being highlighted.")}})}applyUpdate(e,t){let i=!1;t.allowedCharacters&&e&&(vl(e.allowedCharacters,t.allowedCharacters)||(e={...e,allowedCharacters:t.allowedCharacters},i=!0)),t.allowedLocales&&e&&(vl(e.allowedLocales,t.allowedLocales)||(e={...e,allowedLocales:t.allowedLocales},i=!0));const s=super.applyUpdate(e,t);return i?new sx(s.newValue,!0):s}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{nonBasicASCII:j1(t.nonBasicASCII,Qa,[!0,!1,Qa]),invisibleCharacters:rt(t.invisibleCharacters,this.defaultValue.invisibleCharacters),ambiguousCharacters:rt(t.ambiguousCharacters,this.defaultValue.ambiguousCharacters),includeComments:j1(t.includeComments,Qa,[!0,!1,Qa]),includeStrings:j1(t.includeStrings,Qa,[!0,!1,Qa]),allowedCharacters:this.validateBooleanMap(e.allowedCharacters,this.defaultValue.allowedCharacters),allowedLocales:this.validateBooleanMap(e.allowedLocales,this.defaultValue.allowedLocales)}}validateBooleanMap(e,t){if(typeof e!="object"||!e)return t;const i={};for(const[s,o]of Object.entries(e))o===!0&&(i[s]=!0);return i}}class oAe extends Nn{constructor(){const e={enabled:!0,mode:"subwordSmart",showToolbar:"onHover",suppressSuggestions:!1,keepOnBlur:!1,fontFamily:"default"};super(62,"inlineSuggest",e,{"editor.inlineSuggest.enabled":{type:"boolean",default:e.enabled,description:v("inlineSuggest.enabled","Controls whether to automatically show inline suggestions in the editor.")},"editor.inlineSuggest.showToolbar":{type:"string",default:e.showToolbar,enum:["always","onHover","never"],enumDescriptions:[v("inlineSuggest.showToolbar.always","Show the inline suggestion toolbar whenever an inline suggestion is shown."),v("inlineSuggest.showToolbar.onHover","Show the inline suggestion toolbar when hovering over an inline suggestion."),v("inlineSuggest.showToolbar.never","Never show the inline suggestion toolbar.")],description:v("inlineSuggest.showToolbar","Controls when to show the inline suggestion toolbar.")},"editor.inlineSuggest.suppressSuggestions":{type:"boolean",default:e.suppressSuggestions,description:v("inlineSuggest.suppressSuggestions","Controls how inline suggestions interact with the suggest widget. If enabled, the suggest widget is not shown automatically when inline suggestions are available.")},"editor.inlineSuggest.fontFamily":{type:"string",default:e.fontFamily,description:v("inlineSuggest.fontFamily","Controls the font family of the inline suggestions.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:rt(t.enabled,this.defaultValue.enabled),mode:ns(t.mode,this.defaultValue.mode,["prefix","subword","subwordSmart"]),showToolbar:ns(t.showToolbar,this.defaultValue.showToolbar,["always","onHover","never"]),suppressSuggestions:rt(t.suppressSuggestions,this.defaultValue.suppressSuggestions),keepOnBlur:rt(t.keepOnBlur,this.defaultValue.keepOnBlur),fontFamily:xr.string(t.fontFamily,this.defaultValue.fontFamily)}}}class rAe extends Nn{constructor(){const e={enabled:!1,showToolbar:"onHover",fontFamily:"default",keepOnBlur:!1,backgroundColoring:!1};super(63,"experimentalInlineEdit",e,{"editor.experimentalInlineEdit.enabled":{type:"boolean",default:e.enabled,description:v("inlineEdit.enabled","Controls whether to show inline edits in the editor.")},"editor.experimentalInlineEdit.showToolbar":{type:"string",default:e.showToolbar,enum:["always","onHover","never"],enumDescriptions:[v("inlineEdit.showToolbar.always","Show the inline edit toolbar whenever an inline suggestion is shown."),v("inlineEdit.showToolbar.onHover","Show the inline edit toolbar when hovering over an inline suggestion."),v("inlineEdit.showToolbar.never","Never show the inline edit toolbar.")],description:v("inlineEdit.showToolbar","Controls when to show the inline edit toolbar.")},"editor.experimentalInlineEdit.fontFamily":{type:"string",default:e.fontFamily,description:v("inlineEdit.fontFamily","Controls the font family of the inline edit.")},"editor.experimentalInlineEdit.backgroundColoring":{type:"boolean",default:e.backgroundColoring,description:v("inlineEdit.backgroundColoring","Controls whether to color the background of inline edits.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:rt(t.enabled,this.defaultValue.enabled),showToolbar:ns(t.showToolbar,this.defaultValue.showToolbar,["always","onHover","never"]),fontFamily:xr.string(t.fontFamily,this.defaultValue.fontFamily),keepOnBlur:rt(t.keepOnBlur,this.defaultValue.keepOnBlur),backgroundColoring:rt(t.backgroundColoring,this.defaultValue.backgroundColoring)}}}class aAe extends Nn{constructor(){const e={enabled:zo.bracketPairColorizationOptions.enabled,independentColorPoolPerBracketType:zo.bracketPairColorizationOptions.independentColorPoolPerBracketType};super(15,"bracketPairColorization",e,{"editor.bracketPairColorization.enabled":{type:"boolean",default:e.enabled,markdownDescription:v("bracketPairColorization.enabled","Controls whether bracket pair colorization is enabled or not. Use {0} to override the bracket highlight colors.","`#workbench.colorCustomizations#`")},"editor.bracketPairColorization.independentColorPoolPerBracketType":{type:"boolean",default:e.independentColorPoolPerBracketType,description:v("bracketPairColorization.independentColorPoolPerBracketType","Controls whether each bracket type has its own independent color pool.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:rt(t.enabled,this.defaultValue.enabled),independentColorPoolPerBracketType:rt(t.independentColorPoolPerBracketType,this.defaultValue.independentColorPoolPerBracketType)}}}class lAe extends Nn{constructor(){const e={bracketPairs:!1,bracketPairsHorizontal:"active",highlightActiveBracketPair:!0,indentation:!0,highlightActiveIndentation:!0};super(16,"guides",e,{"editor.guides.bracketPairs":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[v("editor.guides.bracketPairs.true","Enables bracket pair guides."),v("editor.guides.bracketPairs.active","Enables bracket pair guides only for the active bracket pair."),v("editor.guides.bracketPairs.false","Disables bracket pair guides.")],default:e.bracketPairs,description:v("editor.guides.bracketPairs","Controls whether bracket pair guides are enabled or not.")},"editor.guides.bracketPairsHorizontal":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[v("editor.guides.bracketPairsHorizontal.true","Enables horizontal guides as addition to vertical bracket pair guides."),v("editor.guides.bracketPairsHorizontal.active","Enables horizontal guides only for the active bracket pair."),v("editor.guides.bracketPairsHorizontal.false","Disables horizontal bracket pair guides.")],default:e.bracketPairsHorizontal,description:v("editor.guides.bracketPairsHorizontal","Controls whether horizontal bracket pair guides are enabled or not.")},"editor.guides.highlightActiveBracketPair":{type:"boolean",default:e.highlightActiveBracketPair,description:v("editor.guides.highlightActiveBracketPair","Controls whether the editor should highlight the active bracket pair.")},"editor.guides.indentation":{type:"boolean",default:e.indentation,description:v("editor.guides.indentation","Controls whether the editor should render indent guides.")},"editor.guides.highlightActiveIndentation":{type:["boolean","string"],enum:[!0,"always",!1],enumDescriptions:[v("editor.guides.highlightActiveIndentation.true","Highlights the active indent guide."),v("editor.guides.highlightActiveIndentation.always","Highlights the active indent guide even if bracket guides are highlighted."),v("editor.guides.highlightActiveIndentation.false","Do not highlight the active indent guide.")],default:e.highlightActiveIndentation,description:v("editor.guides.highlightActiveIndentation","Controls whether the editor should highlight the active indent guide.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{bracketPairs:j1(t.bracketPairs,this.defaultValue.bracketPairs,[!0,!1,"active"]),bracketPairsHorizontal:j1(t.bracketPairsHorizontal,this.defaultValue.bracketPairsHorizontal,[!0,!1,"active"]),highlightActiveBracketPair:rt(t.highlightActiveBracketPair,this.defaultValue.highlightActiveBracketPair),indentation:rt(t.indentation,this.defaultValue.indentation),highlightActiveIndentation:j1(t.highlightActiveIndentation,this.defaultValue.highlightActiveIndentation,[!0,!1,"always"])}}}function j1(n,e,t){const i=t.indexOf(n);return i===-1?e:t[i]}class cAe extends Nn{constructor(){const e={insertMode:"insert",filterGraceful:!0,snippetsPreventQuickSuggestions:!1,localityBonus:!1,shareSuggestSelections:!1,selectionMode:"always",showIcons:!0,showStatusBar:!1,preview:!1,previewMode:"subwordSmart",showInlineDetails:!0,showMethods:!0,showFunctions:!0,showConstructors:!0,showDeprecated:!0,matchOnWordStartOnly:!0,showFields:!0,showVariables:!0,showClasses:!0,showStructs:!0,showInterfaces:!0,showModules:!0,showProperties:!0,showEvents:!0,showOperators:!0,showUnits:!0,showValues:!0,showConstants:!0,showEnums:!0,showEnumMembers:!0,showKeywords:!0,showWords:!0,showColors:!0,showFiles:!0,showReferences:!0,showFolders:!0,showTypeParameters:!0,showSnippets:!0,showUsers:!0,showIssues:!0};super(118,"suggest",e,{"editor.suggest.insertMode":{type:"string",enum:["insert","replace"],enumDescriptions:[v("suggest.insertMode.insert","Insert suggestion without overwriting text right of the cursor."),v("suggest.insertMode.replace","Insert suggestion and overwrite text right of the cursor.")],default:e.insertMode,description:v("suggest.insertMode","Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.")},"editor.suggest.filterGraceful":{type:"boolean",default:e.filterGraceful,description:v("suggest.filterGraceful","Controls whether filtering and sorting suggestions accounts for small typos.")},"editor.suggest.localityBonus":{type:"boolean",default:e.localityBonus,description:v("suggest.localityBonus","Controls whether sorting favors words that appear close to the cursor.")},"editor.suggest.shareSuggestSelections":{type:"boolean",default:e.shareSuggestSelections,markdownDescription:v("suggest.shareSuggestSelections","Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).")},"editor.suggest.selectionMode":{type:"string",enum:["always","never","whenTriggerCharacter","whenQuickSuggestion"],enumDescriptions:[v("suggest.insertMode.always","Always select a suggestion when automatically triggering IntelliSense."),v("suggest.insertMode.never","Never select a suggestion when automatically triggering IntelliSense."),v("suggest.insertMode.whenTriggerCharacter","Select a suggestion only when triggering IntelliSense from a trigger character."),v("suggest.insertMode.whenQuickSuggestion","Select a suggestion only when triggering IntelliSense as you type.")],default:e.selectionMode,markdownDescription:v("suggest.selectionMode","Controls whether a suggestion is selected when the widget shows. Note that this only applies to automatically triggered suggestions (`#editor.quickSuggestions#` and `#editor.suggestOnTriggerCharacters#`) and that a suggestion is always selected when explicitly invoked, e.g via `Ctrl+Space`.")},"editor.suggest.snippetsPreventQuickSuggestions":{type:"boolean",default:e.snippetsPreventQuickSuggestions,description:v("suggest.snippetsPreventQuickSuggestions","Controls whether an active snippet prevents quick suggestions.")},"editor.suggest.showIcons":{type:"boolean",default:e.showIcons,description:v("suggest.showIcons","Controls whether to show or hide icons in suggestions.")},"editor.suggest.showStatusBar":{type:"boolean",default:e.showStatusBar,description:v("suggest.showStatusBar","Controls the visibility of the status bar at the bottom of the suggest widget.")},"editor.suggest.preview":{type:"boolean",default:e.preview,description:v("suggest.preview","Controls whether to preview the suggestion outcome in the editor.")},"editor.suggest.showInlineDetails":{type:"boolean",default:e.showInlineDetails,description:v("suggest.showInlineDetails","Controls whether suggest details show inline with the label or only in the details widget.")},"editor.suggest.maxVisibleSuggestions":{type:"number",deprecationMessage:v("suggest.maxVisibleSuggestions.dep","This setting is deprecated. The suggest widget can now be resized.")},"editor.suggest.filteredTypes":{type:"object",deprecationMessage:v("deprecated","This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.")},"editor.suggest.showMethods":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showMethods","When enabled IntelliSense shows `method`-suggestions.")},"editor.suggest.showFunctions":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showFunctions","When enabled IntelliSense shows `function`-suggestions.")},"editor.suggest.showConstructors":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showConstructors","When enabled IntelliSense shows `constructor`-suggestions.")},"editor.suggest.showDeprecated":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showDeprecated","When enabled IntelliSense shows `deprecated`-suggestions.")},"editor.suggest.matchOnWordStartOnly":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.matchOnWordStartOnly","When enabled IntelliSense filtering requires that the first character matches on a word start. For example, `c` on `Console` or `WebContext` but _not_ on `description`. When disabled IntelliSense will show more results but still sorts them by match quality.")},"editor.suggest.showFields":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showFields","When enabled IntelliSense shows `field`-suggestions.")},"editor.suggest.showVariables":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showVariables","When enabled IntelliSense shows `variable`-suggestions.")},"editor.suggest.showClasses":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showClasss","When enabled IntelliSense shows `class`-suggestions.")},"editor.suggest.showStructs":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showStructs","When enabled IntelliSense shows `struct`-suggestions.")},"editor.suggest.showInterfaces":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showInterfaces","When enabled IntelliSense shows `interface`-suggestions.")},"editor.suggest.showModules":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showModules","When enabled IntelliSense shows `module`-suggestions.")},"editor.suggest.showProperties":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showPropertys","When enabled IntelliSense shows `property`-suggestions.")},"editor.suggest.showEvents":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showEvents","When enabled IntelliSense shows `event`-suggestions.")},"editor.suggest.showOperators":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showOperators","When enabled IntelliSense shows `operator`-suggestions.")},"editor.suggest.showUnits":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showUnits","When enabled IntelliSense shows `unit`-suggestions.")},"editor.suggest.showValues":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showValues","When enabled IntelliSense shows `value`-suggestions.")},"editor.suggest.showConstants":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showConstants","When enabled IntelliSense shows `constant`-suggestions.")},"editor.suggest.showEnums":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showEnums","When enabled IntelliSense shows `enum`-suggestions.")},"editor.suggest.showEnumMembers":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showEnumMembers","When enabled IntelliSense shows `enumMember`-suggestions.")},"editor.suggest.showKeywords":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showKeywords","When enabled IntelliSense shows `keyword`-suggestions.")},"editor.suggest.showWords":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showTexts","When enabled IntelliSense shows `text`-suggestions.")},"editor.suggest.showColors":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showColors","When enabled IntelliSense shows `color`-suggestions.")},"editor.suggest.showFiles":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showFiles","When enabled IntelliSense shows `file`-suggestions.")},"editor.suggest.showReferences":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showReferences","When enabled IntelliSense shows `reference`-suggestions.")},"editor.suggest.showCustomcolors":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showCustomcolors","When enabled IntelliSense shows `customcolor`-suggestions.")},"editor.suggest.showFolders":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showFolders","When enabled IntelliSense shows `folder`-suggestions.")},"editor.suggest.showTypeParameters":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showTypeParameters","When enabled IntelliSense shows `typeParameter`-suggestions.")},"editor.suggest.showSnippets":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showSnippets","When enabled IntelliSense shows `snippet`-suggestions.")},"editor.suggest.showUsers":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showUsers","When enabled IntelliSense shows `user`-suggestions.")},"editor.suggest.showIssues":{type:"boolean",default:!0,markdownDescription:v("editor.suggest.showIssues","When enabled IntelliSense shows `issues`-suggestions.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{insertMode:ns(t.insertMode,this.defaultValue.insertMode,["insert","replace"]),filterGraceful:rt(t.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:rt(t.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:rt(t.localityBonus,this.defaultValue.localityBonus),shareSuggestSelections:rt(t.shareSuggestSelections,this.defaultValue.shareSuggestSelections),selectionMode:ns(t.selectionMode,this.defaultValue.selectionMode,["always","never","whenQuickSuggestion","whenTriggerCharacter"]),showIcons:rt(t.showIcons,this.defaultValue.showIcons),showStatusBar:rt(t.showStatusBar,this.defaultValue.showStatusBar),preview:rt(t.preview,this.defaultValue.preview),previewMode:ns(t.previewMode,this.defaultValue.previewMode,["prefix","subword","subwordSmart"]),showInlineDetails:rt(t.showInlineDetails,this.defaultValue.showInlineDetails),showMethods:rt(t.showMethods,this.defaultValue.showMethods),showFunctions:rt(t.showFunctions,this.defaultValue.showFunctions),showConstructors:rt(t.showConstructors,this.defaultValue.showConstructors),showDeprecated:rt(t.showDeprecated,this.defaultValue.showDeprecated),matchOnWordStartOnly:rt(t.matchOnWordStartOnly,this.defaultValue.matchOnWordStartOnly),showFields:rt(t.showFields,this.defaultValue.showFields),showVariables:rt(t.showVariables,this.defaultValue.showVariables),showClasses:rt(t.showClasses,this.defaultValue.showClasses),showStructs:rt(t.showStructs,this.defaultValue.showStructs),showInterfaces:rt(t.showInterfaces,this.defaultValue.showInterfaces),showModules:rt(t.showModules,this.defaultValue.showModules),showProperties:rt(t.showProperties,this.defaultValue.showProperties),showEvents:rt(t.showEvents,this.defaultValue.showEvents),showOperators:rt(t.showOperators,this.defaultValue.showOperators),showUnits:rt(t.showUnits,this.defaultValue.showUnits),showValues:rt(t.showValues,this.defaultValue.showValues),showConstants:rt(t.showConstants,this.defaultValue.showConstants),showEnums:rt(t.showEnums,this.defaultValue.showEnums),showEnumMembers:rt(t.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:rt(t.showKeywords,this.defaultValue.showKeywords),showWords:rt(t.showWords,this.defaultValue.showWords),showColors:rt(t.showColors,this.defaultValue.showColors),showFiles:rt(t.showFiles,this.defaultValue.showFiles),showReferences:rt(t.showReferences,this.defaultValue.showReferences),showFolders:rt(t.showFolders,this.defaultValue.showFolders),showTypeParameters:rt(t.showTypeParameters,this.defaultValue.showTypeParameters),showSnippets:rt(t.showSnippets,this.defaultValue.showSnippets),showUsers:rt(t.showUsers,this.defaultValue.showUsers),showIssues:rt(t.showIssues,this.defaultValue.showIssues)}}}class dAe extends Nn{constructor(){super(113,"smartSelect",{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},{"editor.smartSelect.selectLeadingAndTrailingWhitespace":{description:v("selectLeadingAndTrailingWhitespace","Whether leading and trailing whitespace should always be selected."),default:!0,type:"boolean"},"editor.smartSelect.selectSubwords":{description:v("selectSubwords","Whether subwords (like 'foo' in 'fooBar' or 'foo_bar') should be selected."),default:!0,type:"boolean"}})}validate(e){return!e||typeof e!="object"?this.defaultValue:{selectLeadingAndTrailingWhitespace:rt(e.selectLeadingAndTrailingWhitespace,this.defaultValue.selectLeadingAndTrailingWhitespace),selectSubwords:rt(e.selectSubwords,this.defaultValue.selectSubwords)}}}class uAe extends Nn{constructor(){const e=[];super(130,"wordSegmenterLocales",e,{anyOf:[{description:v("wordSegmenterLocales","Locales to be used for word segmentation when doing word related navigations or operations. Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.)."),type:"string"},{description:v("wordSegmenterLocales","Locales to be used for word segmentation when doing word related navigations or operations. Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.)."),type:"array",items:{type:"string"}}]})}validate(e){if(typeof e=="string"&&(e=[e]),Array.isArray(e)){const t=[];for(const i of e)if(typeof i=="string")try{Intl.Segmenter.supportedLocalesOf(i).length>0&&t.push(i)}catch{}return t}return this.defaultValue}}class hAe extends Nn{constructor(){super(138,"wrappingIndent",1,{"editor.wrappingIndent":{type:"string",enum:["none","same","indent","deepIndent"],enumDescriptions:[v("wrappingIndent.none","No indentation. Wrapped lines begin at column 1."),v("wrappingIndent.same","Wrapped lines get the same indentation as the parent."),v("wrappingIndent.indent","Wrapped lines get +1 indentation toward the parent."),v("wrappingIndent.deepIndent","Wrapped lines get +2 indentation toward the parent.")],description:v("wrappingIndent","Controls the indentation of wrapped lines."),default:"same"}})}validate(e){switch(e){case"none":return 0;case"same":return 1;case"indent":return 2;case"deepIndent":return 3}return 1}compute(e,t,i){return t.get(2)===2?0:i}}class fAe extends oD{constructor(){super(146)}compute(e,t,i){const s=t.get(145);return{isDominatedByLongLines:e.isDominatedByLongLines,isWordWrapMinified:s.isWordWrapMinified,isViewportWrapping:s.isViewportWrapping,wrappingColumn:s.wrappingColumn}}}class gAe extends Nn{constructor(){const e={enabled:!0,showDropSelector:"afterDrop"};super(36,"dropIntoEditor",e,{"editor.dropIntoEditor.enabled":{type:"boolean",default:e.enabled,markdownDescription:v("dropIntoEditor.enabled","Controls whether you can drag and drop a file into a text editor by holding down the `Shift` key (instead of opening the file in an editor).")},"editor.dropIntoEditor.showDropSelector":{type:"string",markdownDescription:v("dropIntoEditor.showDropSelector","Controls if a widget is shown when dropping files into the editor. This widget lets you control how the file is dropped."),enum:["afterDrop","never"],enumDescriptions:[v("dropIntoEditor.showDropSelector.afterDrop","Show the drop selector widget after a file is dropped into the editor."),v("dropIntoEditor.showDropSelector.never","Never show the drop selector widget. Instead the default drop provider is always used.")],default:"afterDrop"}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:rt(t.enabled,this.defaultValue.enabled),showDropSelector:ns(t.showDropSelector,this.defaultValue.showDropSelector,["afterDrop","never"])}}}class pAe extends Nn{constructor(){const e={enabled:!0,showPasteSelector:"afterPaste"};super(85,"pasteAs",e,{"editor.pasteAs.enabled":{type:"boolean",default:e.enabled,markdownDescription:v("pasteAs.enabled","Controls whether you can paste content in different ways.")},"editor.pasteAs.showPasteSelector":{type:"string",markdownDescription:v("pasteAs.showPasteSelector","Controls if a widget is shown when pasting content in to the editor. This widget lets you control how the file is pasted."),enum:["afterPaste","never"],enumDescriptions:[v("pasteAs.showPasteSelector.afterPaste","Show the paste selector widget after content is pasted into the editor."),v("pasteAs.showPasteSelector.never","Never show the paste selector widget. Instead the default pasting behavior is always used.")],default:"afterPaste"}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:rt(t.enabled,this.defaultValue.enabled),showPasteSelector:ns(t.showPasteSelector,this.defaultValue.showPasteSelector,["afterPaste","never"])}}}const mAe="Consolas, 'Courier New', monospace",_Ae="Menlo, Monaco, 'Courier New', monospace",vAe="'Droid Sans Mono', 'monospace', monospace",ra={fontFamily:Xt?_Ae:Br?vAe:mAe,fontWeight:"normal",fontSize:Xt?12:14,lineHeight:0,letterSpacing:0},h1=[];function Ee(n){return h1[n.id]=n,n}const gu={acceptSuggestionOnCommitCharacter:Ee(new fi(0,"acceptSuggestionOnCommitCharacter",!0,{markdownDescription:v("acceptSuggestionOnCommitCharacter","Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.")})),acceptSuggestionOnEnter:Ee(new qn(1,"acceptSuggestionOnEnter","on",["on","smart","off"],{markdownEnumDescriptions:["",v("acceptSuggestionOnEnterSmart","Only accept a suggestion with `Enter` when it makes a textual change."),""],markdownDescription:v("acceptSuggestionOnEnter","Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.")})),accessibilitySupport:Ee(new N2e),accessibilityPageSize:Ee(new sn(3,"accessibilityPageSize",10,1,1073741824,{description:v("accessibilityPageSize","Controls the number of lines in the editor that can be read out by a screen reader at once. When we detect a screen reader we automatically set the default to be 500. Warning: this has a performance implication for numbers larger than the default."),tags:["accessibility"]})),ariaLabel:Ee(new xr(4,"ariaLabel",v("editorViewAccessibleLabel","Editor content"))),ariaRequired:Ee(new fi(5,"ariaRequired",!1,void 0)),screenReaderAnnounceInlineSuggestion:Ee(new fi(8,"screenReaderAnnounceInlineSuggestion",!0,{description:v("screenReaderAnnounceInlineSuggestion","Control whether inline suggestions are announced by a screen reader."),tags:["accessibility"]})),autoClosingBrackets:Ee(new qn(6,"autoClosingBrackets","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",v("editor.autoClosingBrackets.languageDefined","Use language configurations to determine when to autoclose brackets."),v("editor.autoClosingBrackets.beforeWhitespace","Autoclose brackets only when the cursor is to the left of whitespace."),""],description:v("autoClosingBrackets","Controls whether the editor should automatically close brackets after the user adds an opening bracket.")})),autoClosingComments:Ee(new qn(7,"autoClosingComments","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",v("editor.autoClosingComments.languageDefined","Use language configurations to determine when to autoclose comments."),v("editor.autoClosingComments.beforeWhitespace","Autoclose comments only when the cursor is to the left of whitespace."),""],description:v("autoClosingComments","Controls whether the editor should automatically close comments after the user adds an opening comment.")})),autoClosingDelete:Ee(new qn(9,"autoClosingDelete","auto",["always","auto","never"],{enumDescriptions:["",v("editor.autoClosingDelete.auto","Remove adjacent closing quotes or brackets only if they were automatically inserted."),""],description:v("autoClosingDelete","Controls whether the editor should remove adjacent closing quotes or brackets when deleting.")})),autoClosingOvertype:Ee(new qn(10,"autoClosingOvertype","auto",["always","auto","never"],{enumDescriptions:["",v("editor.autoClosingOvertype.auto","Type over closing quotes or brackets only if they were automatically inserted."),""],description:v("autoClosingOvertype","Controls whether the editor should type over closing quotes or brackets.")})),autoClosingQuotes:Ee(new qn(11,"autoClosingQuotes","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",v("editor.autoClosingQuotes.languageDefined","Use language configurations to determine when to autoclose quotes."),v("editor.autoClosingQuotes.beforeWhitespace","Autoclose quotes only when the cursor is to the left of whitespace."),""],description:v("autoClosingQuotes","Controls whether the editor should automatically close quotes after the user adds an opening quote.")})),autoIndent:Ee(new wE(12,"autoIndent",4,"full",["none","keep","brackets","advanced","full"],T2e,{enumDescriptions:[v("editor.autoIndent.none","The editor will not insert indentation automatically."),v("editor.autoIndent.keep","The editor will keep the current line's indentation."),v("editor.autoIndent.brackets","The editor will keep the current line's indentation and honor language defined brackets."),v("editor.autoIndent.advanced","The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages."),v("editor.autoIndent.full","The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.")],description:v("autoIndent","Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.")})),automaticLayout:Ee(new fi(13,"automaticLayout",!1)),autoSurround:Ee(new qn(14,"autoSurround","languageDefined",["languageDefined","quotes","brackets","never"],{enumDescriptions:[v("editor.autoSurround.languageDefined","Use language configurations to determine when to automatically surround selections."),v("editor.autoSurround.quotes","Surround with quotes but not brackets."),v("editor.autoSurround.brackets","Surround with brackets but not quotes."),""],description:v("autoSurround","Controls whether the editor should automatically surround selections when typing quotes or brackets.")})),bracketPairColorization:Ee(new aAe),bracketPairGuides:Ee(new lAe),stickyTabStops:Ee(new fi(116,"stickyTabStops",!1,{description:v("stickyTabStops","Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.")})),codeLens:Ee(new fi(17,"codeLens",!0,{description:v("codeLens","Controls whether the editor shows CodeLens.")})),codeLensFontFamily:Ee(new xr(18,"codeLensFontFamily","",{description:v("codeLensFontFamily","Controls the font family for CodeLens.")})),codeLensFontSize:Ee(new sn(19,"codeLensFontSize",0,0,100,{type:"number",default:0,minimum:0,maximum:100,markdownDescription:v("codeLensFontSize","Controls the font size in pixels for CodeLens. When set to 0, 90% of `#editor.fontSize#` is used.")})),colorDecorators:Ee(new fi(20,"colorDecorators",!0,{description:v("colorDecorators","Controls whether the editor should render the inline color decorators and color picker.")})),colorDecoratorActivatedOn:Ee(new qn(148,"colorDecoratorsActivatedOn","clickAndHover",["clickAndHover","hover","click"],{enumDescriptions:[v("editor.colorDecoratorActivatedOn.clickAndHover","Make the color picker appear both on click and hover of the color decorator"),v("editor.colorDecoratorActivatedOn.hover","Make the color picker appear on hover of the color decorator"),v("editor.colorDecoratorActivatedOn.click","Make the color picker appear on click of the color decorator")],description:v("colorDecoratorActivatedOn","Controls the condition to make a color picker appear from a color decorator")})),colorDecoratorsLimit:Ee(new sn(21,"colorDecoratorsLimit",500,1,1e6,{markdownDescription:v("colorDecoratorsLimit","Controls the max number of color decorators that can be rendered in an editor at once.")})),columnSelection:Ee(new fi(22,"columnSelection",!1,{description:v("columnSelection","Enable that the selection with the mouse and keys is doing column selection.")})),comments:Ee(new A2e),contextmenu:Ee(new fi(24,"contextmenu",!0)),copyWithSyntaxHighlighting:Ee(new fi(25,"copyWithSyntaxHighlighting",!0,{description:v("copyWithSyntaxHighlighting","Controls whether syntax highlighting should be copied into the clipboard.")})),cursorBlinking:Ee(new wE(26,"cursorBlinking",1,"blink",["blink","smooth","phase","expand","solid"],R2e,{description:v("cursorBlinking","Control the cursor animation style.")})),cursorSmoothCaretAnimation:Ee(new qn(27,"cursorSmoothCaretAnimation","off",["off","explicit","on"],{enumDescriptions:[v("cursorSmoothCaretAnimation.off","Smooth caret animation is disabled."),v("cursorSmoothCaretAnimation.explicit","Smooth caret animation is enabled only when the user moves the cursor with an explicit gesture."),v("cursorSmoothCaretAnimation.on","Smooth caret animation is always enabled.")],description:v("cursorSmoothCaretAnimation","Controls whether the smooth caret animation should be enabled.")})),cursorStyle:Ee(new wE(28,"cursorStyle",vo.Line,"line",["line","block","underline","line-thin","block-outline","underline-thin"],M2e,{description:v("cursorStyle","Controls the cursor style.")})),cursorSurroundingLines:Ee(new sn(29,"cursorSurroundingLines",0,0,1073741824,{description:v("cursorSurroundingLines","Controls the minimal number of visible leading lines (minimum 0) and trailing lines (minimum 1) surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.")})),cursorSurroundingLinesStyle:Ee(new qn(30,"cursorSurroundingLinesStyle","default",["default","all"],{enumDescriptions:[v("cursorSurroundingLinesStyle.default","`cursorSurroundingLines` is enforced only when triggered via the keyboard or API."),v("cursorSurroundingLinesStyle.all","`cursorSurroundingLines` is enforced always.")],markdownDescription:v("cursorSurroundingLinesStyle","Controls when `#editor.cursorSurroundingLines#` should be enforced.")})),cursorWidth:Ee(new sn(31,"cursorWidth",0,0,1073741824,{markdownDescription:v("cursorWidth","Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.")})),disableLayerHinting:Ee(new fi(32,"disableLayerHinting",!1)),disableMonospaceOptimizations:Ee(new fi(33,"disableMonospaceOptimizations",!1)),domReadOnly:Ee(new fi(34,"domReadOnly",!1)),dragAndDrop:Ee(new fi(35,"dragAndDrop",!0,{description:v("dragAndDrop","Controls whether the editor should allow moving selections via drag and drop.")})),emptySelectionClipboard:Ee(new O2e),dropIntoEditor:Ee(new gAe),stickyScroll:Ee(new U2e),experimentalWhitespaceRendering:Ee(new qn(38,"experimentalWhitespaceRendering","svg",["svg","font","off"],{enumDescriptions:[v("experimentalWhitespaceRendering.svg","Use a new rendering method with svgs."),v("experimentalWhitespaceRendering.font","Use a new rendering method with font characters."),v("experimentalWhitespaceRendering.off","Use the stable rendering method.")],description:v("experimentalWhitespaceRendering","Controls whether whitespace is rendered with a new, experimental method.")})),extraEditorClassName:Ee(new xr(39,"extraEditorClassName","")),fastScrollSensitivity:Ee(new gl(40,"fastScrollSensitivity",5,n=>n<=0?5:n,{markdownDescription:v("fastScrollSensitivity","Scrolling speed multiplier when pressing `Alt`.")})),find:Ee(new F2e),fixedOverflowWidgets:Ee(new fi(42,"fixedOverflowWidgets",!1)),folding:Ee(new fi(43,"folding",!0,{description:v("folding","Controls whether the editor has code folding enabled.")})),foldingStrategy:Ee(new qn(44,"foldingStrategy","auto",["auto","indentation"],{enumDescriptions:[v("foldingStrategy.auto","Use a language-specific folding strategy if available, else the indentation-based one."),v("foldingStrategy.indentation","Use the indentation-based folding strategy.")],description:v("foldingStrategy","Controls the strategy for computing folding ranges.")})),foldingHighlight:Ee(new fi(45,"foldingHighlight",!0,{description:v("foldingHighlight","Controls whether the editor should highlight folded ranges.")})),foldingImportsByDefault:Ee(new fi(46,"foldingImportsByDefault",!1,{description:v("foldingImportsByDefault","Controls whether the editor automatically collapses import ranges.")})),foldingMaximumRegions:Ee(new sn(47,"foldingMaximumRegions",5e3,10,65e3,{description:v("foldingMaximumRegions","The maximum number of foldable regions. Increasing this value may result in the editor becoming less responsive when the current source has a large number of foldable regions.")})),unfoldOnClickAfterEndOfLine:Ee(new fi(48,"unfoldOnClickAfterEndOfLine",!1,{description:v("unfoldOnClickAfterEndOfLine","Controls whether clicking on the empty content after a folded line will unfold the line.")})),fontFamily:Ee(new xr(49,"fontFamily",ra.fontFamily,{description:v("fontFamily","Controls the font family.")})),fontInfo:Ee(new B2e),fontLigatures2:Ee(new cl),fontSize:Ee(new W2e),fontWeight:Ee(new Qu),fontVariations:Ee(new Fd),formatOnPaste:Ee(new fi(55,"formatOnPaste",!1,{description:v("formatOnPaste","Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.")})),formatOnType:Ee(new fi(56,"formatOnType",!1,{description:v("formatOnType","Controls whether the editor should automatically format the line after typing.")})),glyphMargin:Ee(new fi(57,"glyphMargin",!0,{description:v("glyphMargin","Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.")})),gotoLocation:Ee(new H2e),hideCursorInOverviewRuler:Ee(new fi(59,"hideCursorInOverviewRuler",!1,{description:v("hideCursorInOverviewRuler","Controls whether the cursor should be hidden in the overview ruler.")})),hover:Ee(new V2e),inDiffEditor:Ee(new fi(61,"inDiffEditor",!1)),letterSpacing:Ee(new gl(64,"letterSpacing",ra.letterSpacing,n=>gl.clamp(n,-5,20),{description:v("letterSpacing","Controls the letter spacing in pixels.")})),lightbulb:Ee(new $2e),lineDecorationsWidth:Ee(new K2e),lineHeight:Ee(new q2e),lineNumbers:Ee(new eAe),lineNumbersMinChars:Ee(new sn(69,"lineNumbersMinChars",5,1,300)),linkedEditing:Ee(new fi(70,"linkedEditing",!1,{description:v("linkedEditing","Controls whether the editor has linked editing enabled. Depending on the language, related symbols such as HTML tags, are updated while editing.")})),links:Ee(new fi(71,"links",!0,{description:v("links","Controls whether the editor should detect links and make them clickable.")})),matchBrackets:Ee(new qn(72,"matchBrackets","always",["always","near","never"],{description:v("matchBrackets","Highlight matching brackets.")})),minimap:Ee(new G2e),mouseStyle:Ee(new qn(74,"mouseStyle","text",["text","default","copy"])),mouseWheelScrollSensitivity:Ee(new gl(75,"mouseWheelScrollSensitivity",1,n=>n===0?1:n,{markdownDescription:v("mouseWheelScrollSensitivity","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")})),mouseWheelZoom:Ee(new fi(76,"mouseWheelZoom",!1,{markdownDescription:Xt?v("mouseWheelZoom.mac","Zoom the font of the editor when using mouse wheel and holding `Cmd`."):v("mouseWheelZoom","Zoom the font of the editor when using mouse wheel and holding `Ctrl`.")})),multiCursorMergeOverlapping:Ee(new fi(77,"multiCursorMergeOverlapping",!0,{description:v("multiCursorMergeOverlapping","Merge multiple cursors when they are overlapping.")})),multiCursorModifier:Ee(new wE(78,"multiCursorModifier","altKey","alt",["ctrlCmd","alt"],Z2e,{markdownEnumDescriptions:[v("multiCursorModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),v("multiCursorModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],markdownDescription:v({},"The modifier to be used to add multiple cursors with the mouse. The Go to Definition and Open Link mouse gestures will adapt such that they do not conflict with the [multicursor modifier](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).")})),multiCursorPaste:Ee(new qn(79,"multiCursorPaste","spread",["spread","full"],{markdownEnumDescriptions:[v("multiCursorPaste.spread","Each cursor pastes a single line of the text."),v("multiCursorPaste.full","Each cursor pastes the full text.")],markdownDescription:v("multiCursorPaste","Controls pasting when the line count of the pasted text matches the cursor count.")})),multiCursorLimit:Ee(new sn(80,"multiCursorLimit",1e4,1,1e5,{markdownDescription:v("multiCursorLimit","Controls the max number of cursors that can be in an active editor at once.")})),occurrencesHighlight:Ee(new qn(81,"occurrencesHighlight","singleFile",["off","singleFile","multiFile"],{markdownEnumDescriptions:[v("occurrencesHighlight.off","Does not highlight occurrences."),v("occurrencesHighlight.singleFile","Highlights occurrences only in the current file."),v("occurrencesHighlight.multiFile","Experimental: Highlights occurrences across all valid open files.")],markdownDescription:v("occurrencesHighlight","Controls whether occurrences should be highlighted across open files.")})),overviewRulerBorder:Ee(new fi(82,"overviewRulerBorder",!0,{description:v("overviewRulerBorder","Controls whether a border should be drawn around the overview ruler.")})),overviewRulerLanes:Ee(new sn(83,"overviewRulerLanes",3,0,3)),padding:Ee(new Y2e),pasteAs:Ee(new pAe),parameterHints:Ee(new X2e),peekWidgetDefaultFocus:Ee(new qn(87,"peekWidgetDefaultFocus","tree",["tree","editor"],{enumDescriptions:[v("peekWidgetDefaultFocus.tree","Focus the tree when opening peek"),v("peekWidgetDefaultFocus.editor","Focus the editor when opening peek")],description:v("peekWidgetDefaultFocus","Controls whether to focus the inline editor or the tree in the peek widget.")})),definitionLinkOpensInPeek:Ee(new fi(88,"definitionLinkOpensInPeek",!1,{description:v("definitionLinkOpensInPeek","Controls whether the Go to Definition mouse gesture always opens the peek widget.")})),quickSuggestions:Ee(new J2e),quickSuggestionsDelay:Ee(new sn(90,"quickSuggestionsDelay",10,0,1073741824,{description:v("quickSuggestionsDelay","Controls the delay in milliseconds after which quick suggestions will show up.")})),readOnly:Ee(new fi(91,"readOnly",!1)),readOnlyMessage:Ee(new iAe),renameOnType:Ee(new fi(93,"renameOnType",!1,{description:v("renameOnType","Controls whether the editor auto renames on type."),markdownDeprecationMessage:v("renameOnTypeDeprecate","Deprecated, use `editor.linkedEditing` instead.")})),renderControlCharacters:Ee(new fi(94,"renderControlCharacters",!0,{description:v("renderControlCharacters","Controls whether the editor should render control characters."),restricted:!0})),renderFinalNewline:Ee(new qn(95,"renderFinalNewline",Br?"dimmed":"on",["off","on","dimmed"],{description:v("renderFinalNewline","Render last line number when the file ends with a newline.")})),renderLineHighlight:Ee(new qn(96,"renderLineHighlight","line",["none","gutter","line","all"],{enumDescriptions:["","","",v("renderLineHighlight.all","Highlights both the gutter and the current line.")],description:v("renderLineHighlight","Controls how the editor should render the current line highlight.")})),renderLineHighlightOnlyWhenFocus:Ee(new fi(97,"renderLineHighlightOnlyWhenFocus",!1,{description:v("renderLineHighlightOnlyWhenFocus","Controls if the editor should render the current line highlight only when the editor is focused.")})),renderValidationDecorations:Ee(new qn(98,"renderValidationDecorations","editable",["editable","on","off"])),renderWhitespace:Ee(new qn(99,"renderWhitespace","selection",["none","boundary","selection","trailing","all"],{enumDescriptions:["",v("renderWhitespace.boundary","Render whitespace characters except for single spaces between words."),v("renderWhitespace.selection","Render whitespace characters only on selected text."),v("renderWhitespace.trailing","Render only trailing whitespace characters."),""],description:v("renderWhitespace","Controls how the editor should render whitespace characters.")})),revealHorizontalRightPadding:Ee(new sn(100,"revealHorizontalRightPadding",15,0,1e3)),roundedSelection:Ee(new fi(101,"roundedSelection",!0,{description:v("roundedSelection","Controls whether selections should have rounded corners.")})),rulers:Ee(new tAe),scrollbar:Ee(new nAe),scrollBeyondLastColumn:Ee(new sn(104,"scrollBeyondLastColumn",4,0,1073741824,{description:v("scrollBeyondLastColumn","Controls the number of extra characters beyond which the editor will scroll horizontally.")})),scrollBeyondLastLine:Ee(new fi(105,"scrollBeyondLastLine",!0,{description:v("scrollBeyondLastLine","Controls whether the editor will scroll beyond the last line.")})),scrollPredominantAxis:Ee(new fi(106,"scrollPredominantAxis",!0,{description:v("scrollPredominantAxis","Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.")})),selectionClipboard:Ee(new fi(107,"selectionClipboard",!0,{description:v("selectionClipboard","Controls whether the Linux primary clipboard should be supported."),included:Br})),selectionHighlight:Ee(new fi(108,"selectionHighlight",!0,{description:v("selectionHighlight","Controls whether the editor should highlight matches similar to the selection.")})),selectOnLineNumbers:Ee(new fi(109,"selectOnLineNumbers",!0)),showFoldingControls:Ee(new qn(110,"showFoldingControls","mouseover",["always","never","mouseover"],{enumDescriptions:[v("showFoldingControls.always","Always show the folding controls."),v("showFoldingControls.never","Never show the folding controls and reduce the gutter size."),v("showFoldingControls.mouseover","Only show the folding controls when the mouse is over the gutter.")],description:v("showFoldingControls","Controls when the folding controls on the gutter are shown.")})),showUnused:Ee(new fi(111,"showUnused",!0,{description:v("showUnused","Controls fading out of unused code.")})),showDeprecated:Ee(new fi(140,"showDeprecated",!0,{description:v("showDeprecated","Controls strikethrough deprecated variables.")})),inlayHints:Ee(new j2e),snippetSuggestions:Ee(new qn(112,"snippetSuggestions","inline",["top","bottom","inline","none"],{enumDescriptions:[v("snippetSuggestions.top","Show snippet suggestions on top of other suggestions."),v("snippetSuggestions.bottom","Show snippet suggestions below other suggestions."),v("snippetSuggestions.inline","Show snippets suggestions with other suggestions."),v("snippetSuggestions.none","Do not show snippet suggestions.")],description:v("snippetSuggestions","Controls whether snippets are shown with other suggestions and how they are sorted.")})),smartSelect:Ee(new dAe),smoothScrolling:Ee(new fi(114,"smoothScrolling",!1,{description:v("smoothScrolling","Controls whether the editor will scroll using an animation.")})),stopRenderingLineAfter:Ee(new sn(117,"stopRenderingLineAfter",1e4,-1,1073741824)),suggest:Ee(new cAe),inlineSuggest:Ee(new oAe),inlineEdit:Ee(new rAe),inlineCompletionsAccessibilityVerbose:Ee(new fi(149,"inlineCompletionsAccessibilityVerbose",!1,{description:v("inlineCompletionsAccessibilityVerbose","Controls whether the accessibility hint should be provided to screen reader users when an inline completion is shown.")})),suggestFontSize:Ee(new sn(119,"suggestFontSize",0,0,1e3,{markdownDescription:v("suggestFontSize","Font size for the suggest widget. When set to {0}, the value of {1} is used.","`0`","`#editor.fontSize#`")})),suggestLineHeight:Ee(new sn(120,"suggestLineHeight",0,0,1e3,{markdownDescription:v("suggestLineHeight","Line height for the suggest widget. When set to {0}, the value of {1} is used. The minimum value is 8.","`0`","`#editor.lineHeight#`")})),suggestOnTriggerCharacters:Ee(new fi(121,"suggestOnTriggerCharacters",!0,{description:v("suggestOnTriggerCharacters","Controls whether suggestions should automatically show up when typing trigger characters.")})),suggestSelection:Ee(new qn(122,"suggestSelection","first",["first","recentlyUsed","recentlyUsedByPrefix"],{markdownEnumDescriptions:[v("suggestSelection.first","Always select the first suggestion."),v("suggestSelection.recentlyUsed","Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently."),v("suggestSelection.recentlyUsedByPrefix","Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.")],description:v("suggestSelection","Controls how suggestions are pre-selected when showing the suggest list.")})),tabCompletion:Ee(new qn(123,"tabCompletion","off",["on","off","onlySnippets"],{enumDescriptions:[v("tabCompletion.on","Tab complete will insert the best matching suggestion when pressing tab."),v("tabCompletion.off","Disable tab completions."),v("tabCompletion.onlySnippets","Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.")],description:v("tabCompletion","Enables tab completions.")})),tabIndex:Ee(new sn(124,"tabIndex",0,-1,1073741824)),unicodeHighlight:Ee(new sAe),unusualLineTerminators:Ee(new qn(126,"unusualLineTerminators","prompt",["auto","off","prompt"],{enumDescriptions:[v("unusualLineTerminators.auto","Unusual line terminators are automatically removed."),v("unusualLineTerminators.off","Unusual line terminators are ignored."),v("unusualLineTerminators.prompt","Unusual line terminators prompt to be removed.")],description:v("unusualLineTerminators","Remove unusual line terminators that might cause problems.")})),useShadowDOM:Ee(new fi(127,"useShadowDOM",!0)),useTabStops:Ee(new fi(128,"useTabStops",!0,{description:v("useTabStops","Spaces and tabs are inserted and deleted in alignment with tab stops.")})),wordBreak:Ee(new qn(129,"wordBreak","normal",["normal","keepAll"],{markdownEnumDescriptions:[v("wordBreak.normal","Use the default line break rule."),v("wordBreak.keepAll","Word breaks should not be used for Chinese/Japanese/Korean (CJK) text. Non-CJK text behavior is the same as for normal.")],description:v("wordBreak","Controls the word break rules used for Chinese/Japanese/Korean (CJK) text.")})),wordSegmenterLocales:Ee(new uAe),wordSeparators:Ee(new xr(131,"wordSeparators",Xre,{description:v("wordSeparators","Characters that will be used as word separators when doing word related navigations or operations.")})),wordWrap:Ee(new qn(132,"wordWrap","off",["off","on","wordWrapColumn","bounded"],{markdownEnumDescriptions:[v("wordWrap.off","Lines will never wrap."),v("wordWrap.on","Lines will wrap at the viewport width."),v({},"Lines will wrap at `#editor.wordWrapColumn#`."),v({},"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.")],description:v({},"Controls how lines should wrap.")})),wordWrapBreakAfterCharacters:Ee(new xr(133,"wordWrapBreakAfterCharacters"," })]?|/&.,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー”〉》」』】〕)]}」")),wordWrapBreakBeforeCharacters:Ee(new xr(134,"wordWrapBreakBeforeCharacters","([{‘“〈《「『【〔([{「£¥$£¥++")),wordWrapColumn:Ee(new sn(135,"wordWrapColumn",80,1,1073741824,{markdownDescription:v({},"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.")})),wordWrapOverride1:Ee(new qn(136,"wordWrapOverride1","inherit",["off","on","inherit"])),wordWrapOverride2:Ee(new qn(137,"wordWrapOverride2","inherit",["off","on","inherit"])),editorClassName:Ee(new P2e),defaultColorDecorators:Ee(new fi(147,"defaultColorDecorators",!1,{markdownDescription:v("defaultColorDecorators","Controls whether inline color decorations should be shown using the default document color provider")})),pixelRatio:Ee(new Q2e),tabFocusMode:Ee(new fi(144,"tabFocusMode",!1,{markdownDescription:v("tabFocusMode","Controls whether the editor receives tabs or defers them to the workbench for navigation.")})),layoutInfo:Ee(new U1),wrappingInfo:Ee(new fAe),wrappingIndent:Ee(new hAe),wrappingStrategy:Ee(new z2e)};class bAe{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?DC.isErrorNoTelemetry(e)?new DC(e.message+` `+e.stack):new Error(e.message+` `+e.stack):e},0)}}emit(e){this.listeners.forEach(t=>{t(e)})}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}}const tae=new bAe;function Mt(n){ld(n)||tae.onUnexpectedError(n)}function as(n){ld(n)||tae.onUnexpectedExternalError(n)}function iY(n){if(n instanceof Error){const{name:e,message:t}=n,i=n.stacktrace||n.stack;return{$isError:!0,name:e,message:t,stack:i,noTelemetry:DC.isErrorNoTelemetry(n)}}return n}const D2="Canceled";function ld(n){return n instanceof nu?!0:n instanceof Error&&n.name===D2&&n.message===D2}class nu extends Error{constructor(){super(D2),this.name=this.message}}function CAe(){const n=new Error(D2);return n.name=n.message,n}function ic(n){return n?new Error(`Illegal argument: ${n}`):new Error("Illegal argument")}function BV(n){return n?new Error(`Illegal state: ${n}`):new Error("Illegal state")}class wAe extends Error{constructor(e){super("NotSupported"),e&&(this.message=e)}}class DC extends Error{constructor(e){super(e),this.name="CodeExpectedError"}static fromError(e){if(e instanceof DC)return e;const t=new DC;return t.message=e.message,t.stack=e.stack,t}static isErrorNoTelemetry(e){return e.name==="CodeExpectedError"}}class Gi extends Error{constructor(e){super(e||"An unexpected bug occurred."),Object.setPrototypeOf(this,Gi.prototype)}}function Am(n,e){const t=this;let i=!1,s;return function(){return i||(i=!0,s=n.apply(t,arguments)),s}}function nM(n){return typeof n=="object"&&n!==null&&typeof n.dispose=="function"&&n.dispose.length===0}function tn(n){if(oi.is(n)){const e=[];for(const t of n)if(t)try{t.dispose()}catch(i){e.push(i)}if(e.length===1)throw e[0];if(e.length>1)throw new AggregateError(e,"Encountered errors while disposing of store");return Array.isArray(n)?[]:n}else if(n)return n.dispose(),n}function Jc(...n){return dt(()=>tn(n))}function dt(n){return{dispose:Am(()=>{n()})}}class be{constructor(){this._toDispose=new Set,this._isDisposed=!1}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{tn(this._toDispose)}finally{this._toDispose.clear()}}add(e){if(!e)return e;if(e===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?be.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(e),e}deleteAndLeak(e){e&&this._toDispose.has(e)&&this._toDispose.delete(e)}}be.DISABLE_DISPOSED_WARNING=!1;class ne{constructor(){this._store=new be,this._store}dispose(){this._store.dispose()}_register(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}}ne.None=Object.freeze({dispose(){}});class Qs{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(e){var t;this._isDisposed||e===this._value||((t=this._value)===null||t===void 0||t.dispose(),this._value=e)}clear(){this.value=void 0}dispose(){var e;this._isDisposed=!0,(e=this._value)===null||e===void 0||e.dispose(),this._value=void 0}}class yAe{constructor(e){this._disposable=e,this._counter=1}acquire(){return this._counter++,this}release(){return--this._counter===0&&this._disposable.dispose(),this}}class SAe{constructor(e){this.object=e}dispose(){}}class WV{constructor(){this._store=new Map,this._isDisposed=!1}dispose(){this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{tn(this._store.values())}finally{this._store.clear()}}get(e){return this._store.get(e)}set(e,t,i=!1){var s;this._isDisposed&&console.warn(new Error("Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!").stack),i||(s=this._store.get(e))===null||s===void 0||s.dispose(),this._store.set(e,t)}deleteAndDispose(e){var t;(t=this._store.get(e))===null||t===void 0||t.dispose(),this._store.delete(e)}[Symbol.iterator](){return this._store[Symbol.iterator]()}}const xAe=globalThis.performance&&typeof globalThis.performance.now=="function";class xo{static create(e){return new xo(e)}constructor(e){this._now=xAe&&e===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}}var Ae;(function(n){n.None=()=>ne.None;function e(O,M){return u(O,()=>{},0,void 0,!0,void 0,M)}n.defer=e;function t(O){return(M,z=null,K)=>{let ae=!1,se;return se=O(he=>{if(!ae)return se?se.dispose():ae=!0,M.call(z,he)},null,K),ae&&se.dispose(),se}}n.once=t;function i(O,M,z){return c((K,ae=null,se)=>O(he=>K.call(ae,M(he)),null,se),z)}n.map=i;function s(O,M,z){return c((K,ae=null,se)=>O(he=>{M(he),K.call(ae,he)},null,se),z)}n.forEach=s;function o(O,M,z){return c((K,ae=null,se)=>O(he=>M(he)&&K.call(ae,he),null,se),z)}n.filter=o;function r(O){return O}n.signal=r;function a(...O){return(M,z=null,K)=>{const ae=Jc(...O.map(se=>se(he=>M.call(z,he))));return d(ae,K)}}n.any=a;function l(O,M,z,K){let ae=z;return i(O,se=>(ae=M(ae,se),ae),K)}n.reduce=l;function c(O,M){let z;const K={onWillAddFirstListener(){z=O(ae.fire,ae)},onDidRemoveLastListener(){z==null||z.dispose()}},ae=new X(K);return M==null||M.add(ae),ae.event}function d(O,M){return M instanceof Array?M.push(O):M&&M.add(O),O}function u(O,M,z=100,K=!1,ae=!1,se,he){let me,De,lt,We=0,Ve;const Me={leakWarningThreshold:se,onWillAddFirstListener(){me=O(Oi=>{We++,De=M(De,Oi),K&&!lt&&(Zt.fire(De),De=void 0),Ve=()=>{const ni=De;De=void 0,lt=void 0,(!K||We>1)&&Zt.fire(ni),We=0},typeof z=="number"?(clearTimeout(lt),lt=setTimeout(Ve,z)):lt===void 0&&(lt=0,queueMicrotask(Ve))})},onWillRemoveListener(){ae&&We>0&&(Ve==null||Ve())},onDidRemoveLastListener(){Ve=void 0,me.dispose()}},Zt=new X(Me);return he==null||he.add(Zt),Zt.event}n.debounce=u;function h(O,M=0,z){return n.debounce(O,(K,ae)=>K?(K.push(ae),K):[ae],M,void 0,!0,void 0,z)}n.accumulate=h;function f(O,M=(K,ae)=>K===ae,z){let K=!0,ae;return o(O,se=>{const he=K||!M(se,ae);return K=!1,ae=se,he},z)}n.latch=f;function g(O,M,z){return[n.filter(O,M,z),n.filter(O,K=>!M(K),z)]}n.split=g;function p(O,M=!1,z=[],K){let ae=z.slice(),se=O(De=>{ae?ae.push(De):me.fire(De)});K&&K.add(se);const he=()=>{ae==null||ae.forEach(De=>me.fire(De)),ae=null},me=new X({onWillAddFirstListener(){se||(se=O(De=>me.fire(De)),K&&K.add(se))},onDidAddFirstListener(){ae&&(M?setTimeout(he):he())},onDidRemoveLastListener(){se&&se.dispose(),se=null}});return K&&K.add(me),me.event}n.buffer=p;function _(O,M){return(K,ae,se)=>{const he=M(new w);return O(function(me){const De=he.evaluate(me);De!==b&&K.call(ae,De)},void 0,se)}}n.chain=_;const b=Symbol("HaltChainable");class w{constructor(){this.steps=[]}map(M){return this.steps.push(M),this}forEach(M){return this.steps.push(z=>(M(z),z)),this}filter(M){return this.steps.push(z=>M(z)?z:b),this}reduce(M,z){let K=z;return this.steps.push(ae=>(K=M(K,ae),K)),this}latch(M=(z,K)=>z===K){let z=!0,K;return this.steps.push(ae=>{const se=z||!M(ae,K);return z=!1,K=ae,se?ae:b}),this}evaluate(M){for(const z of this.steps)if(M=z(M),M===b)break;return M}}function y(O,M,z=K=>K){const K=(...me)=>he.fire(z(...me)),ae=()=>O.on(M,K),se=()=>O.removeListener(M,K),he=new X({onWillAddFirstListener:ae,onDidRemoveLastListener:se});return he.event}n.fromNodeEventEmitter=y;function S(O,M,z=K=>K){const K=(...me)=>he.fire(z(...me)),ae=()=>O.addEventListener(M,K),se=()=>O.removeEventListener(M,K),he=new X({onWillAddFirstListener:ae,onDidRemoveLastListener:se});return he.event}n.fromDOMEventEmitter=S;function x(O){return new Promise(M=>t(O)(M))}n.toPromise=x;function k(O){const M=new X;return O.then(z=>{M.fire(z)},()=>{M.fire(void 0)}).finally(()=>{M.dispose()}),M.event}n.fromPromise=k;function D(O,M,z){return M(z),O(K=>M(K))}n.runAndSubscribe=D;class I{constructor(M,z){this._observable=M,this._counter=0,this._hasChanged=!1;const K={onWillAddFirstListener:()=>{M.addObserver(this)},onDidRemoveLastListener:()=>{M.removeObserver(this)}};this.emitter=new X(K),z&&z.add(this.emitter)}beginUpdate(M){this._counter++}handlePossibleChange(M){}handleChange(M,z){this._hasChanged=!0}endUpdate(M){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function N(O,M){return new I(O,M).emitter.event}n.fromObservable=N;function P(O){return(M,z,K)=>{let ae=0,se=!1;const he={beginUpdate(){ae++},endUpdate(){ae--,ae===0&&(O.reportChanges(),se&&(se=!1,M.call(z)))},handlePossibleChange(){},handleChange(){se=!0}};O.addObserver(he),O.reportChanges();const me={dispose(){O.removeObserver(he)}};return K instanceof be?K.add(me):Array.isArray(K)&&K.push(me),me}}n.fromObservableLight=P})(Ae||(Ae={}));class IC{constructor(e){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${e}_${IC._idPool++}`,IC.all.add(this)}start(e){this._stopWatch=new xo,this.listenerCount=e}stop(){if(this._stopWatch){const e=this._stopWatch.elapsed();this.durations.push(e),this.elapsedOverall+=e,this.invocationCount+=1,this._stopWatch=void 0}}}IC.all=new Set;IC._idPool=0;let LAe=-1;class kAe{constructor(e,t,i=Math.random().toString(18).slice(2,5)){this._errorHandler=e,this.threshold=t,this.name=i,this._warnCountdown=0}dispose(){var e;(e=this._stacks)===null||e===void 0||e.clear()}check(e,t){const i=this.threshold;if(i<=0||t{const o=this._stacks.get(e.value)||0;this._stacks.set(e.value,o-1)}}getMostFrequentStack(){if(!this._stacks)return;let e,t=0;for(const[i,s]of this._stacks)(!e||t{var o,r,a,l,c,d,u;if(this._leakageMon&&this._size>this._leakageMon.threshold**2){const p=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(p);const _=(o=this._leakageMon.getMostFrequentStack())!==null&&o!==void 0?o:["UNKNOWN stack",-1],b=new IAe(`${p}. HINT: Stack shows most frequent listener (${_[1]}-times)`,_[0]);return(((r=this._options)===null||r===void 0?void 0:r.onListenerError)||Mt)(b),ne.None}if(this._disposed)return ne.None;i&&(t=t.bind(i));const h=new wF(t);let f;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(h.stack=HV.create(),f=this._leakageMon.check(h.stack,this._size+1)),this._listeners?this._listeners instanceof wF?((u=this._deliveryQueue)!==null&&u!==void 0||(this._deliveryQueue=new iae),this._listeners=[this._listeners,h]):this._listeners.push(h):((l=(a=this._options)===null||a===void 0?void 0:a.onWillAddFirstListener)===null||l===void 0||l.call(a,this),this._listeners=h,(d=(c=this._options)===null||c===void 0?void 0:c.onDidAddFirstListener)===null||d===void 0||d.call(c,this)),this._size++;const g=dt(()=>{f==null||f(),this._removeListener(h)});return s instanceof be?s.add(g):Array.isArray(s)&&s.push(g),g}),this._event}_removeListener(e){var t,i,s,o;if((i=(t=this._options)===null||t===void 0?void 0:t.onWillRemoveListener)===null||i===void 0||i.call(t,this),!this._listeners)return;if(this._size===1){this._listeners=void 0,(o=(s=this._options)===null||s===void 0?void 0:s.onDidRemoveLastListener)===null||o===void 0||o.call(s,this),this._size=0;return}const r=this._listeners,a=r.indexOf(e);if(a===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,r[a]=void 0;const l=this._deliveryQueue.current===this;if(this._size*EAe<=r.length){let c=0;for(let d=0;d0}};const TAe=()=>new iae;class iae{constructor(){this.i=-1,this.end=0}enqueue(e,t,i){this.i=0,this.end=i,this.current=e,this.value=t}reset(){this.i=this.end,this.current=void 0,this.value=void 0}}class a0 extends X{constructor(e){super(e),this._isPaused=0,this._eventQueue=new Tr,this._mergeFn=e==null?void 0:e.merge}pause(){this._isPaused++}resume(){if(this._isPaused!==0&&--this._isPaused===0)if(this._mergeFn){if(this._eventQueue.size>0){const e=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(e))}}else for(;!this._isPaused&&this._eventQueue.size!==0;)super.fire(this._eventQueue.shift())}fire(e){this._size&&(this._isPaused!==0?this._eventQueue.push(e):super.fire(e))}}class nae extends a0{constructor(e){var t;super(e),this._delay=(t=e.delay)!==null&&t!==void 0?t:100}fire(e){this._handle||(this.pause(),this._handle=setTimeout(()=>{this._handle=void 0,this.resume()},this._delay)),super.fire(e)}}class NAe extends X{constructor(e){super(e),this._queuedEvents=[],this._mergeFn=e==null?void 0:e.merge}fire(e){this.hasListeners()&&(this._queuedEvents.push(e),this._queuedEvents.length===1&&queueMicrotask(()=>{this._mergeFn?super.fire(this._mergeFn(this._queuedEvents)):this._queuedEvents.forEach(t=>super.fire(t)),this._queuedEvents=[]}))}}class AAe{constructor(){this.hasListeners=!1,this.events=[],this.emitter=new X({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(e){const t={event:e,listener:null};return this.events.push(t),this.hasListeners&&this.hook(t),dt(Am(()=>{this.hasListeners&&this.unhook(t);const s=this.events.indexOf(t);this.events.splice(s,1)}))}onFirstListenerAdd(){this.hasListeners=!0,this.events.forEach(e=>this.hook(e))}onLastListenerRemove(){this.hasListeners=!1,this.events.forEach(e=>this.unhook(e))}hook(e){e.listener=e.event(t=>this.emitter.fire(t))}unhook(e){var t;(t=e.listener)===null||t===void 0||t.dispose(),e.listener=null}dispose(){var e;this.emitter.dispose();for(const t of this.events)(e=t.listener)===null||e===void 0||e.dispose();this.events=[]}}class sM{constructor(){this.data=[]}wrapEvent(e,t,i){return(s,o,r)=>e(a=>{var l;const c=this.data[this.data.length-1];if(!t){c?c.buffers.push(()=>s.call(o,a)):s.call(o,a);return}const d=c;if(!d){s.call(o,t(i,a));return}(l=d.items)!==null&&l!==void 0||(d.items=[]),d.items.push(a),d.buffers.length===0&&c.buffers.push(()=>{var u;(u=d.reducedResult)!==null&&u!==void 0||(d.reducedResult=i?d.items.reduce(t,i):d.items.reduce(t)),s.call(o,d.reducedResult)})},void 0,r)}bufferEvents(e){const t={buffers:new Array};this.data.push(t);const i=e();return this.data.pop(),t.buffers.forEach(s=>s()),i}}class nY{constructor(){this.listening=!1,this.inputEvent=Ae.None,this.inputEventListener=ne.None,this.emitter=new X({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}}),this.event=this.emitter.event}set input(e){this.inputEvent=e,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=e(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}}const sae=Object.freeze(function(n,e){const t=setTimeout(n.bind(e),0);return{dispose(){clearTimeout(t)}}});var Qt;(function(n){function e(t){return t===n.None||t===n.Cancelled||t instanceof lN?!0:!t||typeof t!="object"?!1:typeof t.isCancellationRequested=="boolean"&&typeof t.onCancellationRequested=="function"}n.isCancellationToken=e,n.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Ae.None}),n.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:sae})})(Qt||(Qt={}));class lN{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?sae:(this._emitter||(this._emitter=new X),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}let $n=class{constructor(e){this._token=void 0,this._parentListener=void 0,this._parentListener=e&&e.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new lN),this._token}cancel(){this._token?this._token instanceof lN&&this._token.cancel():this._token=Qt.Cancelled}dispose(e=!1){var t;e&&this.cancel(),(t=this._parentListener)===null||t===void 0||t.dispose(),this._token?this._token instanceof lN&&this._token.dispose():this._token=Qt.None}};function sY(n){const e=new $n;return n.add({dispose(){e.cancel()}}),e.token}class VV{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e}keyCodeToStr(e){return this._keyCodeToStr[e]}strToKeyCode(e){return this._strToKeyCode[e.toLowerCase()]||0}}const cN=new VV,Q8=new VV,J8=new VV,oae=new Array(230),RAe=Object.create(null),MAe=Object.create(null),zV=[];for(let n=0;n<=193;n++)zV[n]=-1;(function(){const n="",e=[[1,0,"None",0,"unknown",0,"VK_UNKNOWN",n,n],[1,1,"Hyper",0,n,0,n,n,n],[1,2,"Super",0,n,0,n,n,n],[1,3,"Fn",0,n,0,n,n,n],[1,4,"FnLock",0,n,0,n,n,n],[1,5,"Suspend",0,n,0,n,n,n],[1,6,"Resume",0,n,0,n,n,n],[1,7,"Turbo",0,n,0,n,n,n],[1,8,"Sleep",0,n,0,"VK_SLEEP",n,n],[1,9,"WakeUp",0,n,0,n,n,n],[0,10,"KeyA",31,"A",65,"VK_A",n,n],[0,11,"KeyB",32,"B",66,"VK_B",n,n],[0,12,"KeyC",33,"C",67,"VK_C",n,n],[0,13,"KeyD",34,"D",68,"VK_D",n,n],[0,14,"KeyE",35,"E",69,"VK_E",n,n],[0,15,"KeyF",36,"F",70,"VK_F",n,n],[0,16,"KeyG",37,"G",71,"VK_G",n,n],[0,17,"KeyH",38,"H",72,"VK_H",n,n],[0,18,"KeyI",39,"I",73,"VK_I",n,n],[0,19,"KeyJ",40,"J",74,"VK_J",n,n],[0,20,"KeyK",41,"K",75,"VK_K",n,n],[0,21,"KeyL",42,"L",76,"VK_L",n,n],[0,22,"KeyM",43,"M",77,"VK_M",n,n],[0,23,"KeyN",44,"N",78,"VK_N",n,n],[0,24,"KeyO",45,"O",79,"VK_O",n,n],[0,25,"KeyP",46,"P",80,"VK_P",n,n],[0,26,"KeyQ",47,"Q",81,"VK_Q",n,n],[0,27,"KeyR",48,"R",82,"VK_R",n,n],[0,28,"KeyS",49,"S",83,"VK_S",n,n],[0,29,"KeyT",50,"T",84,"VK_T",n,n],[0,30,"KeyU",51,"U",85,"VK_U",n,n],[0,31,"KeyV",52,"V",86,"VK_V",n,n],[0,32,"KeyW",53,"W",87,"VK_W",n,n],[0,33,"KeyX",54,"X",88,"VK_X",n,n],[0,34,"KeyY",55,"Y",89,"VK_Y",n,n],[0,35,"KeyZ",56,"Z",90,"VK_Z",n,n],[0,36,"Digit1",22,"1",49,"VK_1",n,n],[0,37,"Digit2",23,"2",50,"VK_2",n,n],[0,38,"Digit3",24,"3",51,"VK_3",n,n],[0,39,"Digit4",25,"4",52,"VK_4",n,n],[0,40,"Digit5",26,"5",53,"VK_5",n,n],[0,41,"Digit6",27,"6",54,"VK_6",n,n],[0,42,"Digit7",28,"7",55,"VK_7",n,n],[0,43,"Digit8",29,"8",56,"VK_8",n,n],[0,44,"Digit9",30,"9",57,"VK_9",n,n],[0,45,"Digit0",21,"0",48,"VK_0",n,n],[1,46,"Enter",3,"Enter",13,"VK_RETURN",n,n],[1,47,"Escape",9,"Escape",27,"VK_ESCAPE",n,n],[1,48,"Backspace",1,"Backspace",8,"VK_BACK",n,n],[1,49,"Tab",2,"Tab",9,"VK_TAB",n,n],[1,50,"Space",10,"Space",32,"VK_SPACE",n,n],[0,51,"Minus",88,"-",189,"VK_OEM_MINUS","-","OEM_MINUS"],[0,52,"Equal",86,"=",187,"VK_OEM_PLUS","=","OEM_PLUS"],[0,53,"BracketLeft",92,"[",219,"VK_OEM_4","[","OEM_4"],[0,54,"BracketRight",94,"]",221,"VK_OEM_6","]","OEM_6"],[0,55,"Backslash",93,"\\",220,"VK_OEM_5","\\","OEM_5"],[0,56,"IntlHash",0,n,0,n,n,n],[0,57,"Semicolon",85,";",186,"VK_OEM_1",";","OEM_1"],[0,58,"Quote",95,"'",222,"VK_OEM_7","'","OEM_7"],[0,59,"Backquote",91,"`",192,"VK_OEM_3","`","OEM_3"],[0,60,"Comma",87,",",188,"VK_OEM_COMMA",",","OEM_COMMA"],[0,61,"Period",89,".",190,"VK_OEM_PERIOD",".","OEM_PERIOD"],[0,62,"Slash",90,"/",191,"VK_OEM_2","/","OEM_2"],[1,63,"CapsLock",8,"CapsLock",20,"VK_CAPITAL",n,n],[1,64,"F1",59,"F1",112,"VK_F1",n,n],[1,65,"F2",60,"F2",113,"VK_F2",n,n],[1,66,"F3",61,"F3",114,"VK_F3",n,n],[1,67,"F4",62,"F4",115,"VK_F4",n,n],[1,68,"F5",63,"F5",116,"VK_F5",n,n],[1,69,"F6",64,"F6",117,"VK_F6",n,n],[1,70,"F7",65,"F7",118,"VK_F7",n,n],[1,71,"F8",66,"F8",119,"VK_F8",n,n],[1,72,"F9",67,"F9",120,"VK_F9",n,n],[1,73,"F10",68,"F10",121,"VK_F10",n,n],[1,74,"F11",69,"F11",122,"VK_F11",n,n],[1,75,"F12",70,"F12",123,"VK_F12",n,n],[1,76,"PrintScreen",0,n,0,n,n,n],[1,77,"ScrollLock",84,"ScrollLock",145,"VK_SCROLL",n,n],[1,78,"Pause",7,"PauseBreak",19,"VK_PAUSE",n,n],[1,79,"Insert",19,"Insert",45,"VK_INSERT",n,n],[1,80,"Home",14,"Home",36,"VK_HOME",n,n],[1,81,"PageUp",11,"PageUp",33,"VK_PRIOR",n,n],[1,82,"Delete",20,"Delete",46,"VK_DELETE",n,n],[1,83,"End",13,"End",35,"VK_END",n,n],[1,84,"PageDown",12,"PageDown",34,"VK_NEXT",n,n],[1,85,"ArrowRight",17,"RightArrow",39,"VK_RIGHT","Right",n],[1,86,"ArrowLeft",15,"LeftArrow",37,"VK_LEFT","Left",n],[1,87,"ArrowDown",18,"DownArrow",40,"VK_DOWN","Down",n],[1,88,"ArrowUp",16,"UpArrow",38,"VK_UP","Up",n],[1,89,"NumLock",83,"NumLock",144,"VK_NUMLOCK",n,n],[1,90,"NumpadDivide",113,"NumPad_Divide",111,"VK_DIVIDE",n,n],[1,91,"NumpadMultiply",108,"NumPad_Multiply",106,"VK_MULTIPLY",n,n],[1,92,"NumpadSubtract",111,"NumPad_Subtract",109,"VK_SUBTRACT",n,n],[1,93,"NumpadAdd",109,"NumPad_Add",107,"VK_ADD",n,n],[1,94,"NumpadEnter",3,n,0,n,n,n],[1,95,"Numpad1",99,"NumPad1",97,"VK_NUMPAD1",n,n],[1,96,"Numpad2",100,"NumPad2",98,"VK_NUMPAD2",n,n],[1,97,"Numpad3",101,"NumPad3",99,"VK_NUMPAD3",n,n],[1,98,"Numpad4",102,"NumPad4",100,"VK_NUMPAD4",n,n],[1,99,"Numpad5",103,"NumPad5",101,"VK_NUMPAD5",n,n],[1,100,"Numpad6",104,"NumPad6",102,"VK_NUMPAD6",n,n],[1,101,"Numpad7",105,"NumPad7",103,"VK_NUMPAD7",n,n],[1,102,"Numpad8",106,"NumPad8",104,"VK_NUMPAD8",n,n],[1,103,"Numpad9",107,"NumPad9",105,"VK_NUMPAD9",n,n],[1,104,"Numpad0",98,"NumPad0",96,"VK_NUMPAD0",n,n],[1,105,"NumpadDecimal",112,"NumPad_Decimal",110,"VK_DECIMAL",n,n],[0,106,"IntlBackslash",97,"OEM_102",226,"VK_OEM_102",n,n],[1,107,"ContextMenu",58,"ContextMenu",93,n,n,n],[1,108,"Power",0,n,0,n,n,n],[1,109,"NumpadEqual",0,n,0,n,n,n],[1,110,"F13",71,"F13",124,"VK_F13",n,n],[1,111,"F14",72,"F14",125,"VK_F14",n,n],[1,112,"F15",73,"F15",126,"VK_F15",n,n],[1,113,"F16",74,"F16",127,"VK_F16",n,n],[1,114,"F17",75,"F17",128,"VK_F17",n,n],[1,115,"F18",76,"F18",129,"VK_F18",n,n],[1,116,"F19",77,"F19",130,"VK_F19",n,n],[1,117,"F20",78,"F20",131,"VK_F20",n,n],[1,118,"F21",79,"F21",132,"VK_F21",n,n],[1,119,"F22",80,"F22",133,"VK_F22",n,n],[1,120,"F23",81,"F23",134,"VK_F23",n,n],[1,121,"F24",82,"F24",135,"VK_F24",n,n],[1,122,"Open",0,n,0,n,n,n],[1,123,"Help",0,n,0,n,n,n],[1,124,"Select",0,n,0,n,n,n],[1,125,"Again",0,n,0,n,n,n],[1,126,"Undo",0,n,0,n,n,n],[1,127,"Cut",0,n,0,n,n,n],[1,128,"Copy",0,n,0,n,n,n],[1,129,"Paste",0,n,0,n,n,n],[1,130,"Find",0,n,0,n,n,n],[1,131,"AudioVolumeMute",117,"AudioVolumeMute",173,"VK_VOLUME_MUTE",n,n],[1,132,"AudioVolumeUp",118,"AudioVolumeUp",175,"VK_VOLUME_UP",n,n],[1,133,"AudioVolumeDown",119,"AudioVolumeDown",174,"VK_VOLUME_DOWN",n,n],[1,134,"NumpadComma",110,"NumPad_Separator",108,"VK_SEPARATOR",n,n],[0,135,"IntlRo",115,"ABNT_C1",193,"VK_ABNT_C1",n,n],[1,136,"KanaMode",0,n,0,n,n,n],[0,137,"IntlYen",0,n,0,n,n,n],[1,138,"Convert",0,n,0,n,n,n],[1,139,"NonConvert",0,n,0,n,n,n],[1,140,"Lang1",0,n,0,n,n,n],[1,141,"Lang2",0,n,0,n,n,n],[1,142,"Lang3",0,n,0,n,n,n],[1,143,"Lang4",0,n,0,n,n,n],[1,144,"Lang5",0,n,0,n,n,n],[1,145,"Abort",0,n,0,n,n,n],[1,146,"Props",0,n,0,n,n,n],[1,147,"NumpadParenLeft",0,n,0,n,n,n],[1,148,"NumpadParenRight",0,n,0,n,n,n],[1,149,"NumpadBackspace",0,n,0,n,n,n],[1,150,"NumpadMemoryStore",0,n,0,n,n,n],[1,151,"NumpadMemoryRecall",0,n,0,n,n,n],[1,152,"NumpadMemoryClear",0,n,0,n,n,n],[1,153,"NumpadMemoryAdd",0,n,0,n,n,n],[1,154,"NumpadMemorySubtract",0,n,0,n,n,n],[1,155,"NumpadClear",131,"Clear",12,"VK_CLEAR",n,n],[1,156,"NumpadClearEntry",0,n,0,n,n,n],[1,0,n,5,"Ctrl",17,"VK_CONTROL",n,n],[1,0,n,4,"Shift",16,"VK_SHIFT",n,n],[1,0,n,6,"Alt",18,"VK_MENU",n,n],[1,0,n,57,"Meta",91,"VK_COMMAND",n,n],[1,157,"ControlLeft",5,n,0,"VK_LCONTROL",n,n],[1,158,"ShiftLeft",4,n,0,"VK_LSHIFT",n,n],[1,159,"AltLeft",6,n,0,"VK_LMENU",n,n],[1,160,"MetaLeft",57,n,0,"VK_LWIN",n,n],[1,161,"ControlRight",5,n,0,"VK_RCONTROL",n,n],[1,162,"ShiftRight",4,n,0,"VK_RSHIFT",n,n],[1,163,"AltRight",6,n,0,"VK_RMENU",n,n],[1,164,"MetaRight",57,n,0,"VK_RWIN",n,n],[1,165,"BrightnessUp",0,n,0,n,n,n],[1,166,"BrightnessDown",0,n,0,n,n,n],[1,167,"MediaPlay",0,n,0,n,n,n],[1,168,"MediaRecord",0,n,0,n,n,n],[1,169,"MediaFastForward",0,n,0,n,n,n],[1,170,"MediaRewind",0,n,0,n,n,n],[1,171,"MediaTrackNext",124,"MediaTrackNext",176,"VK_MEDIA_NEXT_TRACK",n,n],[1,172,"MediaTrackPrevious",125,"MediaTrackPrevious",177,"VK_MEDIA_PREV_TRACK",n,n],[1,173,"MediaStop",126,"MediaStop",178,"VK_MEDIA_STOP",n,n],[1,174,"Eject",0,n,0,n,n,n],[1,175,"MediaPlayPause",127,"MediaPlayPause",179,"VK_MEDIA_PLAY_PAUSE",n,n],[1,176,"MediaSelect",128,"LaunchMediaPlayer",181,"VK_MEDIA_LAUNCH_MEDIA_SELECT",n,n],[1,177,"LaunchMail",129,"LaunchMail",180,"VK_MEDIA_LAUNCH_MAIL",n,n],[1,178,"LaunchApp2",130,"LaunchApp2",183,"VK_MEDIA_LAUNCH_APP2",n,n],[1,179,"LaunchApp1",0,n,0,"VK_MEDIA_LAUNCH_APP1",n,n],[1,180,"SelectTask",0,n,0,n,n,n],[1,181,"LaunchScreenSaver",0,n,0,n,n,n],[1,182,"BrowserSearch",120,"BrowserSearch",170,"VK_BROWSER_SEARCH",n,n],[1,183,"BrowserHome",121,"BrowserHome",172,"VK_BROWSER_HOME",n,n],[1,184,"BrowserBack",122,"BrowserBack",166,"VK_BROWSER_BACK",n,n],[1,185,"BrowserForward",123,"BrowserForward",167,"VK_BROWSER_FORWARD",n,n],[1,186,"BrowserStop",0,n,0,"VK_BROWSER_STOP",n,n],[1,187,"BrowserRefresh",0,n,0,"VK_BROWSER_REFRESH",n,n],[1,188,"BrowserFavorites",0,n,0,"VK_BROWSER_FAVORITES",n,n],[1,189,"ZoomToggle",0,n,0,n,n,n],[1,190,"MailReply",0,n,0,n,n,n],[1,191,"MailForward",0,n,0,n,n,n],[1,192,"MailSend",0,n,0,n,n,n],[1,0,n,114,"KeyInComposition",229,n,n,n],[1,0,n,116,"ABNT_C2",194,"VK_ABNT_C2",n,n],[1,0,n,96,"OEM_8",223,"VK_OEM_8",n,n],[1,0,n,0,n,0,"VK_KANA",n,n],[1,0,n,0,n,0,"VK_HANGUL",n,n],[1,0,n,0,n,0,"VK_JUNJA",n,n],[1,0,n,0,n,0,"VK_FINAL",n,n],[1,0,n,0,n,0,"VK_HANJA",n,n],[1,0,n,0,n,0,"VK_KANJI",n,n],[1,0,n,0,n,0,"VK_CONVERT",n,n],[1,0,n,0,n,0,"VK_NONCONVERT",n,n],[1,0,n,0,n,0,"VK_ACCEPT",n,n],[1,0,n,0,n,0,"VK_MODECHANGE",n,n],[1,0,n,0,n,0,"VK_SELECT",n,n],[1,0,n,0,n,0,"VK_PRINT",n,n],[1,0,n,0,n,0,"VK_EXECUTE",n,n],[1,0,n,0,n,0,"VK_SNAPSHOT",n,n],[1,0,n,0,n,0,"VK_HELP",n,n],[1,0,n,0,n,0,"VK_APPS",n,n],[1,0,n,0,n,0,"VK_PROCESSKEY",n,n],[1,0,n,0,n,0,"VK_PACKET",n,n],[1,0,n,0,n,0,"VK_DBE_SBCSCHAR",n,n],[1,0,n,0,n,0,"VK_DBE_DBCSCHAR",n,n],[1,0,n,0,n,0,"VK_ATTN",n,n],[1,0,n,0,n,0,"VK_CRSEL",n,n],[1,0,n,0,n,0,"VK_EXSEL",n,n],[1,0,n,0,n,0,"VK_EREOF",n,n],[1,0,n,0,n,0,"VK_PLAY",n,n],[1,0,n,0,n,0,"VK_ZOOM",n,n],[1,0,n,0,n,0,"VK_NONAME",n,n],[1,0,n,0,n,0,"VK_PA1",n,n],[1,0,n,0,n,0,"VK_OEM_CLEAR",n,n]],t=[],i=[];for(const s of e){const[o,r,a,l,c,d,u,h,f]=s;if(i[r]||(i[r]=!0,RAe[a]=r,MAe[a.toLowerCase()]=r,o&&(zV[r]=l)),!t[l]){if(t[l]=!0,!c)throw new Error(`String representation missing for key code ${l} around scan code ${a}`);cN.define(l,c),Q8.define(l,h||c),J8.define(l,f||h||c)}d&&(oae[d]=l)}})();var Wf;(function(n){function e(a){return cN.keyCodeToStr(a)}n.toString=e;function t(a){return cN.strToKeyCode(a)}n.fromString=t;function i(a){return Q8.keyCodeToStr(a)}n.toUserSettingsUS=i;function s(a){return J8.keyCodeToStr(a)}n.toUserSettingsGeneral=s;function o(a){return Q8.strToKeyCode(a)||J8.strToKeyCode(a)}n.fromUserSettings=o;function r(a){if(a>=98&&a<=113)return null;switch(a){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return cN.keyCodeToStr(a)}n.toElectronAccelerator=r})(Wf||(Wf={}));function Os(n,e){const t=(e&65535)<<16>>>0;return(n|t)>>>0}var oY={};let K1;const yF=globalThis.vscode;if(typeof yF<"u"&&typeof yF.process<"u"){const n=yF.process;K1={get platform(){return n.platform},get arch(){return n.arch},get env(){return n.env},cwd(){return n.cwd()}}}else typeof process<"u"?K1={get platform(){return process.platform},get arch(){return process.arch},get env(){return oY},cwd(){return oY.VSCODE_CWD||process.cwd()}}:K1={get platform(){return Mo?"win32":Xt?"darwin":"linux"},get arch(){},get env(){return{}},cwd(){return"/"}};const I2=K1.cwd,e7=K1.env,PAe=K1.platform,OAe=65,FAe=97,BAe=90,WAe=122,cm=46,or=47,Xa=92,lp=58,HAe=63;class rae extends Error{constructor(e,t,i){let s;typeof t=="string"&&t.indexOf("not ")===0?(s="must not be",t=t.replace(/^not /,"")):s="must be";const o=e.indexOf(".")!==-1?"property":"argument";let r=`The "${e}" ${o} ${s} of type ${t}`;r+=`. Received type ${typeof i}`,super(r),this.code="ERR_INVALID_ARG_TYPE"}}function VAe(n,e){if(n===null||typeof n!="object")throw new rae(e,"Object",n)}function so(n,e){if(typeof n!="string")throw new rae(e,"string",n)}const h_=PAe==="win32";function Vi(n){return n===or||n===Xa}function t7(n){return n===or}function cp(n){return n>=OAe&&n<=BAe||n>=FAe&&n<=WAe}function E2(n,e,t,i){let s="",o=0,r=-1,a=0,l=0;for(let c=0;c<=n.length;++c){if(c2){const d=s.lastIndexOf(t);d===-1?(s="",o=0):(s=s.slice(0,d),o=s.length-1-s.lastIndexOf(t)),r=c,a=0;continue}else if(s.length!==0){s="",o=0,r=c,a=0;continue}}e&&(s+=s.length>0?`${t}..`:"..",o=2)}else s.length>0?s+=`${t}${n.slice(r+1,c)}`:s=n.slice(r+1,c),o=c-r-1;r=c,a=0}else l===cm&&a!==-1?++a:a=-1}return s}function aae(n,e){VAe(e,"pathObject");const t=e.dir||e.root,i=e.base||`${e.name||""}${e.ext||""}`;return t?t===e.root?`${t}${i}`:`${t}${n}${i}`:i}const Ia={resolve(...n){let e="",t="",i=!1;for(let s=n.length-1;s>=-1;s--){let o;if(s>=0){if(o=n[s],so(o,"path"),o.length===0)continue}else e.length===0?o=I2():(o=e7[`=${e}`]||I2(),(o===void 0||o.slice(0,2).toLowerCase()!==e.toLowerCase()&&o.charCodeAt(2)===Xa)&&(o=`${e}\\`));const r=o.length;let a=0,l="",c=!1;const d=o.charCodeAt(0);if(r===1)Vi(d)&&(a=1,c=!0);else if(Vi(d))if(c=!0,Vi(o.charCodeAt(1))){let u=2,h=u;for(;u2&&Vi(o.charCodeAt(2))&&(c=!0,a=3));if(l.length>0)if(e.length>0){if(l.toLowerCase()!==e.toLowerCase())continue}else e=l;if(i){if(e.length>0)break}else if(t=`${o.slice(a)}\\${t}`,i=c,c&&e.length>0)break}return t=E2(t,!i,"\\",Vi),i?`${e}\\${t}`:`${e}${t}`||"."},normalize(n){so(n,"path");const e=n.length;if(e===0)return".";let t=0,i,s=!1;const o=n.charCodeAt(0);if(e===1)return t7(o)?"\\":n;if(Vi(o))if(s=!0,Vi(n.charCodeAt(1))){let a=2,l=a;for(;a2&&Vi(n.charCodeAt(2))&&(s=!0,t=3));let r=t0&&Vi(n.charCodeAt(e-1))&&(r+="\\"),i===void 0?s?`\\${r}`:r:s?`${i}\\${r}`:`${i}${r}`},isAbsolute(n){so(n,"path");const e=n.length;if(e===0)return!1;const t=n.charCodeAt(0);return Vi(t)||e>2&&cp(t)&&n.charCodeAt(1)===lp&&Vi(n.charCodeAt(2))},join(...n){if(n.length===0)return".";let e,t;for(let o=0;o0&&(e===void 0?e=t=r:e+=`\\${r}`)}if(e===void 0)return".";let i=!0,s=0;if(typeof t=="string"&&Vi(t.charCodeAt(0))){++s;const o=t.length;o>1&&Vi(t.charCodeAt(1))&&(++s,o>2&&(Vi(t.charCodeAt(2))?++s:i=!1))}if(i){for(;s=2&&(e=`\\${e.slice(s)}`)}return Ia.normalize(e)},relative(n,e){if(so(n,"from"),so(e,"to"),n===e)return"";const t=Ia.resolve(n),i=Ia.resolve(e);if(t===i||(n=t.toLowerCase(),e=i.toLowerCase(),n===e))return"";let s=0;for(;ss&&n.charCodeAt(o-1)===Xa;)o--;const r=o-s;let a=0;for(;aa&&e.charCodeAt(l-1)===Xa;)l--;const c=l-a,d=rd){if(e.charCodeAt(a+h)===Xa)return i.slice(a+h+1);if(h===2)return i.slice(a+h)}r>d&&(n.charCodeAt(s+h)===Xa?u=h:h===2&&(u=3)),u===-1&&(u=0)}let f="";for(h=s+u+1;h<=o;++h)(h===o||n.charCodeAt(h)===Xa)&&(f+=f.length===0?"..":"\\..");return a+=u,f.length>0?`${f}${i.slice(a,l)}`:(i.charCodeAt(a)===Xa&&++a,i.slice(a,l))},toNamespacedPath(n){if(typeof n!="string"||n.length===0)return n;const e=Ia.resolve(n);if(e.length<=2)return n;if(e.charCodeAt(0)===Xa){if(e.charCodeAt(1)===Xa){const t=e.charCodeAt(2);if(t!==HAe&&t!==cm)return`\\\\?\\UNC\\${e.slice(2)}`}}else if(cp(e.charCodeAt(0))&&e.charCodeAt(1)===lp&&e.charCodeAt(2)===Xa)return`\\\\?\\${e}`;return n},dirname(n){so(n,"path");const e=n.length;if(e===0)return".";let t=-1,i=0;const s=n.charCodeAt(0);if(e===1)return Vi(s)?n:".";if(Vi(s)){if(t=i=1,Vi(n.charCodeAt(1))){let a=2,l=a;for(;a2&&Vi(n.charCodeAt(2))?3:2,i=t);let o=-1,r=!0;for(let a=e-1;a>=i;--a)if(Vi(n.charCodeAt(a))){if(!r){o=a;break}}else r=!1;if(o===-1){if(t===-1)return".";o=t}return n.slice(0,o)},basename(n,e){e!==void 0&&so(e,"ext"),so(n,"path");let t=0,i=-1,s=!0,o;if(n.length>=2&&cp(n.charCodeAt(0))&&n.charCodeAt(1)===lp&&(t=2),e!==void 0&&e.length>0&&e.length<=n.length){if(e===n)return"";let r=e.length-1,a=-1;for(o=n.length-1;o>=t;--o){const l=n.charCodeAt(o);if(Vi(l)){if(!s){t=o+1;break}}else a===-1&&(s=!1,a=o+1),r>=0&&(l===e.charCodeAt(r)?--r===-1&&(i=o):(r=-1,i=a))}return t===i?i=a:i===-1&&(i=n.length),n.slice(t,i)}for(o=n.length-1;o>=t;--o)if(Vi(n.charCodeAt(o))){if(!s){t=o+1;break}}else i===-1&&(s=!1,i=o+1);return i===-1?"":n.slice(t,i)},extname(n){so(n,"path");let e=0,t=-1,i=0,s=-1,o=!0,r=0;n.length>=2&&n.charCodeAt(1)===lp&&cp(n.charCodeAt(0))&&(e=i=2);for(let a=n.length-1;a>=e;--a){const l=n.charCodeAt(a);if(Vi(l)){if(!o){i=a+1;break}continue}s===-1&&(o=!1,s=a+1),l===cm?t===-1?t=a:r!==1&&(r=1):t!==-1&&(r=-1)}return t===-1||s===-1||r===0||r===1&&t===s-1&&t===i+1?"":n.slice(t,s)},format:aae.bind(null,"\\"),parse(n){so(n,"path");const e={root:"",dir:"",base:"",ext:"",name:""};if(n.length===0)return e;const t=n.length;let i=0,s=n.charCodeAt(0);if(t===1)return Vi(s)?(e.root=e.dir=n,e):(e.base=e.name=n,e);if(Vi(s)){if(i=1,Vi(n.charCodeAt(1))){let u=2,h=u;for(;u0&&(e.root=n.slice(0,i));let o=-1,r=i,a=-1,l=!0,c=n.length-1,d=0;for(;c>=i;--c){if(s=n.charCodeAt(c),Vi(s)){if(!l){r=c+1;break}continue}a===-1&&(l=!1,a=c+1),s===cm?o===-1?o=c:d!==1&&(d=1):o!==-1&&(d=-1)}return a!==-1&&(o===-1||d===0||d===1&&o===a-1&&o===r+1?e.base=e.name=n.slice(r,a):(e.name=n.slice(r,o),e.base=n.slice(r,a),e.ext=n.slice(o,a))),r>0&&r!==i?e.dir=n.slice(0,r-1):e.dir=e.root,e},sep:"\\",delimiter:";",win32:null,posix:null},zAe=(()=>{if(h_){const n=/\\/g;return()=>{const e=I2().replace(n,"/");return e.slice(e.indexOf("/"))}}return()=>I2()})(),ks={resolve(...n){let e="",t=!1;for(let i=n.length-1;i>=-1&&!t;i--){const s=i>=0?n[i]:zAe();so(s,"path"),s.length!==0&&(e=`${s}/${e}`,t=s.charCodeAt(0)===or)}return e=E2(e,!t,"/",t7),t?`/${e}`:e.length>0?e:"."},normalize(n){if(so(n,"path"),n.length===0)return".";const e=n.charCodeAt(0)===or,t=n.charCodeAt(n.length-1)===or;return n=E2(n,!e,"/",t7),n.length===0?e?"/":t?"./":".":(t&&(n+="/"),e?`/${n}`:n)},isAbsolute(n){return so(n,"path"),n.length>0&&n.charCodeAt(0)===or},join(...n){if(n.length===0)return".";let e;for(let t=0;t0&&(e===void 0?e=i:e+=`/${i}`)}return e===void 0?".":ks.normalize(e)},relative(n,e){if(so(n,"from"),so(e,"to"),n===e||(n=ks.resolve(n),e=ks.resolve(e),n===e))return"";const t=1,i=n.length,s=i-t,o=1,r=e.length-o,a=sa){if(e.charCodeAt(o+c)===or)return e.slice(o+c+1);if(c===0)return e.slice(o+c)}else s>a&&(n.charCodeAt(t+c)===or?l=c:c===0&&(l=0));let d="";for(c=t+l+1;c<=i;++c)(c===i||n.charCodeAt(c)===or)&&(d+=d.length===0?"..":"/..");return`${d}${e.slice(o+l)}`},toNamespacedPath(n){return n},dirname(n){if(so(n,"path"),n.length===0)return".";const e=n.charCodeAt(0)===or;let t=-1,i=!0;for(let s=n.length-1;s>=1;--s)if(n.charCodeAt(s)===or){if(!i){t=s;break}}else i=!1;return t===-1?e?"/":".":e&&t===1?"//":n.slice(0,t)},basename(n,e){e!==void 0&&so(e,"ext"),so(n,"path");let t=0,i=-1,s=!0,o;if(e!==void 0&&e.length>0&&e.length<=n.length){if(e===n)return"";let r=e.length-1,a=-1;for(o=n.length-1;o>=0;--o){const l=n.charCodeAt(o);if(l===or){if(!s){t=o+1;break}}else a===-1&&(s=!1,a=o+1),r>=0&&(l===e.charCodeAt(r)?--r===-1&&(i=o):(r=-1,i=a))}return t===i?i=a:i===-1&&(i=n.length),n.slice(t,i)}for(o=n.length-1;o>=0;--o)if(n.charCodeAt(o)===or){if(!s){t=o+1;break}}else i===-1&&(s=!1,i=o+1);return i===-1?"":n.slice(t,i)},extname(n){so(n,"path");let e=-1,t=0,i=-1,s=!0,o=0;for(let r=n.length-1;r>=0;--r){const a=n.charCodeAt(r);if(a===or){if(!s){t=r+1;break}continue}i===-1&&(s=!1,i=r+1),a===cm?e===-1?e=r:o!==1&&(o=1):e!==-1&&(o=-1)}return e===-1||i===-1||o===0||o===1&&e===i-1&&e===t+1?"":n.slice(e,i)},format:aae.bind(null,"/"),parse(n){so(n,"path");const e={root:"",dir:"",base:"",ext:"",name:""};if(n.length===0)return e;const t=n.charCodeAt(0)===or;let i;t?(e.root="/",i=1):i=0;let s=-1,o=0,r=-1,a=!0,l=n.length-1,c=0;for(;l>=i;--l){const d=n.charCodeAt(l);if(d===or){if(!a){o=l+1;break}continue}r===-1&&(a=!1,r=l+1),d===cm?s===-1?s=l:c!==1&&(c=1):s!==-1&&(c=-1)}if(r!==-1){const d=o===0&&t?1:o;s===-1||c===0||c===1&&s===r-1&&s===o+1?e.base=e.name=n.slice(d,r):(e.name=n.slice(d,s),e.base=n.slice(d,r),e.ext=n.slice(s,r))}return o>0?e.dir=n.slice(0,o-1):t&&(e.dir="/"),e},sep:"/",delimiter:":",win32:null,posix:null};ks.win32=Ia.win32=Ia;ks.posix=Ia.posix=ks;const lae=h_?Ia.normalize:ks.normalize,$Ae=h_?Ia.resolve:ks.resolve,UAe=h_?Ia.relative:ks.relative,cae=h_?Ia.dirname:ks.dirname,dm=h_?Ia.basename:ks.basename,jAe=h_?Ia.extname:ks.extname,jd=h_?Ia.sep:ks.sep,KAe=/^\w[\w\d+.-]*$/,qAe=/^\//,GAe=/^\/\//;function ZAe(n,e){if(!n.scheme&&e)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${n.authority}", path: "${n.path}", query: "${n.query}", fragment: "${n.fragment}"}`);if(n.scheme&&!KAe.test(n.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(n.path){if(n.authority){if(!qAe.test(n.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(GAe.test(n.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}function YAe(n,e){return!n&&!e?"file":n}function XAe(n,e){switch(n){case"https":case"http":case"file":e?e[0]!==Ad&&(e=Ad+e):e=Ad;break}return e}const _s="",Ad="/",QAe=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class pt{static isUri(e){return e instanceof pt?!0:e?typeof e.authority=="string"&&typeof e.fragment=="string"&&typeof e.path=="string"&&typeof e.query=="string"&&typeof e.scheme=="string"&&typeof e.fsPath=="string"&&typeof e.with=="function"&&typeof e.toString=="function":!1}constructor(e,t,i,s,o,r=!1){typeof e=="object"?(this.scheme=e.scheme||_s,this.authority=e.authority||_s,this.path=e.path||_s,this.query=e.query||_s,this.fragment=e.fragment||_s):(this.scheme=YAe(e,r),this.authority=t||_s,this.path=XAe(this.scheme,i||_s),this.query=s||_s,this.fragment=o||_s,ZAe(this,r))}get fsPath(){return T2(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:i,path:s,query:o,fragment:r}=e;return t===void 0?t=this.scheme:t===null&&(t=_s),i===void 0?i=this.authority:i===null&&(i=_s),s===void 0?s=this.path:s===null&&(s=_s),o===void 0?o=this.query:o===null&&(o=_s),r===void 0?r=this.fragment:r===null&&(r=_s),t===this.scheme&&i===this.authority&&s===this.path&&o===this.query&&r===this.fragment?this:new Nb(t,i,s,o,r)}static parse(e,t=!1){const i=QAe.exec(e);return i?new Nb(i[2]||_s,yE(i[4]||_s),yE(i[5]||_s),yE(i[7]||_s),yE(i[9]||_s),t):new Nb(_s,_s,_s,_s,_s)}static file(e){let t=_s;if(Mo&&(e=e.replace(/\\/g,Ad)),e[0]===Ad&&e[1]===Ad){const i=e.indexOf(Ad,2);i===-1?(t=e.substring(2),e=Ad):(t=e.substring(2,i),e=e.substring(i)||Ad)}return new Nb("file",t,e,_s,_s)}static from(e,t){return new Nb(e.scheme,e.authority,e.path,e.query,e.fragment,t)}static joinPath(e,...t){if(!e.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let i;return Mo&&e.scheme==="file"?i=pt.file(Ia.join(T2(e,!0),...t)).path:i=ks.join(e.path,...t),e.with({path:i})}toString(e=!1){return i7(this,e)}toJSON(){return this}static revive(e){var t,i;if(e){if(e instanceof pt)return e;{const s=new Nb(e);return s._formatted=(t=e.external)!==null&&t!==void 0?t:null,s._fsPath=e._sep===dae&&(i=e.fsPath)!==null&&i!==void 0?i:null,s}}else return e}}const dae=Mo?1:void 0;let Nb=class extends pt{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=T2(this,!1)),this._fsPath}toString(e=!1){return e?i7(this,!0):(this._formatted||(this._formatted=i7(this,!1)),this._formatted)}toJSON(){const e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=dae),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}};const uae={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function rY(n,e,t){let i,s=-1;for(let o=0;o=97&&r<=122||r>=65&&r<=90||r>=48&&r<=57||r===45||r===46||r===95||r===126||e&&r===47||t&&r===91||t&&r===93||t&&r===58)s!==-1&&(i+=encodeURIComponent(n.substring(s,o)),s=-1),i!==void 0&&(i+=n.charAt(o));else{i===void 0&&(i=n.substr(0,o));const a=uae[r];a!==void 0?(s!==-1&&(i+=encodeURIComponent(n.substring(s,o)),s=-1),i+=a):s===-1&&(s=o)}}return s!==-1&&(i+=encodeURIComponent(n.substring(s))),i!==void 0?i:n}function JAe(n){let e;for(let t=0;t1&&n.scheme==="file"?t=`//${n.authority}${n.path}`:n.path.charCodeAt(0)===47&&(n.path.charCodeAt(1)>=65&&n.path.charCodeAt(1)<=90||n.path.charCodeAt(1)>=97&&n.path.charCodeAt(1)<=122)&&n.path.charCodeAt(2)===58?e?t=n.path.substr(1):t=n.path[1].toLowerCase()+n.path.substr(2):t=n.path,Mo&&(t=t.replace(/\//g,"\\")),t}function i7(n,e){const t=e?JAe:rY;let i="",{scheme:s,authority:o,path:r,query:a,fragment:l}=n;if(s&&(i+=s,i+=":"),(o||s==="file")&&(i+=Ad,i+=Ad),o){let c=o.indexOf("@");if(c!==-1){const d=o.substr(0,c);o=o.substr(c+1),c=d.lastIndexOf(":"),c===-1?i+=t(d,!1,!1):(i+=t(d.substr(0,c),!1,!1),i+=":",i+=t(d.substr(c+1),!1,!0)),i+="@"}o=o.toLowerCase(),c=o.lastIndexOf(":"),c===-1?i+=t(o,!1,!0):(i+=t(o.substr(0,c),!1,!0),i+=o.substr(c))}if(r){if(r.length>=3&&r.charCodeAt(0)===47&&r.charCodeAt(2)===58){const c=r.charCodeAt(1);c>=65&&c<=90&&(r=`/${String.fromCharCode(c+32)}:${r.substr(3)}`)}else if(r.length>=2&&r.charCodeAt(1)===58){const c=r.charCodeAt(0);c>=65&&c<=90&&(r=`${String.fromCharCode(c+32)}:${r.substr(2)}`)}i+=t(r,!0,!1)}return a&&(i+="?",i+=t(a,!1,!1)),l&&(i+="#",i+=e?l:rY(l,!1,!1)),i}function hae(n){try{return decodeURIComponent(n)}catch{return n.length>3?n.substr(0,3)+hae(n.substr(3)):n}}const aY=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function yE(n){return n.match(aY)?n.replace(aY,e=>hae(e)):n}let ee=class iv{constructor(e,t){this.lineNumber=e,this.column=t}with(e=this.lineNumber,t=this.column){return e===this.lineNumber&&t===this.column?this:new iv(e,t)}delta(e=0,t=0){return this.with(this.lineNumber+e,this.column+t)}equals(e){return iv.equals(this,e)}static equals(e,t){return!e&&!t?!0:!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column}isBefore(e){return iv.isBefore(this,e)}static isBefore(e,t){return e.lineNumberi||e===i&&t>s?(this.startLineNumber=i,this.startColumn=s,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=i,this.endColumn=s)}isEmpty(){return go.isEmpty(this)}static isEmpty(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn}containsPosition(e){return go.containsPosition(this,e)}static containsPosition(e,t){return!(t.lineNumbere.endLineNumber||t.lineNumber===e.startLineNumber&&t.columne.endColumn)}static strictContainsPosition(e,t){return!(t.lineNumbere.endLineNumber||t.lineNumber===e.startLineNumber&&t.column<=e.startColumn||t.lineNumber===e.endLineNumber&&t.column>=e.endColumn)}containsRange(e){return go.containsRange(this,e)}static containsRange(e,t){return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber||t.startLineNumber===e.startLineNumber&&t.startColumne.endColumn)}strictContainsRange(e){return go.strictContainsRange(this,e)}static strictContainsRange(e,t){return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber||t.startLineNumber===e.startLineNumber&&t.startColumn<=e.startColumn||t.endLineNumber===e.endLineNumber&&t.endColumn>=e.endColumn)}plusRange(e){return go.plusRange(this,e)}static plusRange(e,t){let i,s,o,r;return t.startLineNumbere.endLineNumber?(o=t.endLineNumber,r=t.endColumn):t.endLineNumber===e.endLineNumber?(o=t.endLineNumber,r=Math.max(t.endColumn,e.endColumn)):(o=e.endLineNumber,r=e.endColumn),new go(i,s,o,r)}intersectRanges(e){return go.intersectRanges(this,e)}static intersectRanges(e,t){let i=e.startLineNumber,s=e.startColumn,o=e.endLineNumber,r=e.endColumn;const a=t.startLineNumber,l=t.startColumn,c=t.endLineNumber,d=t.endColumn;return ic?(o=c,r=d):o===c&&(r=Math.min(r,d)),i>o||i===o&&s>r?null:new go(i,s,o,r)}equalsRange(e){return go.equalsRange(this,e)}static equalsRange(e,t){return!e&&!t?!0:!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn}getEndPosition(){return go.getEndPosition(this)}static getEndPosition(e){return new ee(e.endLineNumber,e.endColumn)}getStartPosition(){return go.getStartPosition(this)}static getStartPosition(e){return new ee(e.startLineNumber,e.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(e,t){return new go(this.startLineNumber,this.startColumn,e,t)}setStartPosition(e,t){return new go(e,t,this.endLineNumber,this.endColumn)}collapseToStart(){return go.collapseToStart(this)}static collapseToStart(e){return new go(e.startLineNumber,e.startColumn,e.startLineNumber,e.startColumn)}collapseToEnd(){return go.collapseToEnd(this)}static collapseToEnd(e){return new go(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn)}delta(e){return new go(this.startLineNumber+e,this.startColumn,this.endLineNumber+e,this.endColumn)}static fromPositions(e,t=e){return new go(e.lineNumber,e.column,t.lineNumber,t.column)}static lift(e){return e?new go(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):null}static isIRange(e){return e&&typeof e.startLineNumber=="number"&&typeof e.startColumn=="number"&&typeof e.endLineNumber=="number"&&typeof e.endColumn=="number"}static areIntersectingOrTouching(e,t){return!(e.endLineNumbere.startLineNumber}toJSON(){return this}},it=class Pc extends A{constructor(e,t,i,s){super(e,t,i,s),this.selectionStartLineNumber=e,this.selectionStartColumn=t,this.positionLineNumber=i,this.positionColumn=s}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(e){return Pc.selectionsEqual(this,e)}static selectionsEqual(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(e,t){return this.getDirection()===0?new Pc(this.startLineNumber,this.startColumn,e,t):new Pc(e,t,this.startLineNumber,this.startColumn)}getPosition(){return new ee(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new ee(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(e,t){return this.getDirection()===0?new Pc(e,t,this.endLineNumber,this.endColumn):new Pc(this.endLineNumber,this.endColumn,e,t)}static fromPositions(e,t=e){return new Pc(e.lineNumber,e.column,t.lineNumber,t.column)}static fromRange(e,t){return t===0?new Pc(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):new Pc(e.endLineNumber,e.endColumn,e.startLineNumber,e.startColumn)}static liftSelection(e){return new Pc(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)}static selectionsArrEqual(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(let i=0,s=e.length;i{this._tokenizationSupports.get(e)===t&&(this._tokenizationSupports.delete(e),this.handleChange([e]))})}get(e){return this._tokenizationSupports.get(e)||null}registerFactory(e,t){var i;(i=this._factories.get(e))===null||i===void 0||i.dispose();const s=new nRe(this,e,t);return this._factories.set(e,s),dt(()=>{const o=this._factories.get(e);!o||o!==s||(this._factories.delete(e),o.dispose())})}async getOrCreate(e){const t=this.get(e);if(t)return t;const i=this._factories.get(e);return!i||i.isResolved?null:(await i.resolve(),this.get(e))}isResolved(e){if(this.get(e))return!0;const i=this._factories.get(e);return!!(!i||i.isResolved)}setColorMap(e){this._colorMap=e,this._onDidChange.fire({changedLanguages:Array.from(this._tokenizationSupports.keys()),changedColorMap:!0})}getColorMap(){return this._colorMap}getDefaultBackground(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}};class nRe extends ne{get isResolved(){return this._isResolved}constructor(e,t,i){super(),this._registry=e,this._languageId=t,this._factory=i,this._isDisposed=!1,this._resolvePromise=null,this._isResolved=!1}dispose(){this._isDisposed=!0,super.dispose()}async resolve(){return this._resolvePromise||(this._resolvePromise=this._create()),this._resolvePromise}async _create(){const e=await this._factory.tokenizationSupport;this._isResolved=!0,e&&!this._isDisposed&&this._register(this._registry.register(this._languageId,e))}}let oL=class{constructor(e,t,i){this.offset=e,this.type=t,this.language=i,this._tokenBrand=void 0}toString(){return"("+this.offset+", "+this.type+")"}};class $V{constructor(e,t){this.tokens=e,this.endState=t,this._tokenizationResultBrand=void 0}}class oM{constructor(e,t){this.tokens=e,this.endState=t,this._encodedTokenizationResultBrand=void 0}}var rl;(function(n){n[n.Increase=0]="Increase",n[n.Decrease=1]="Decrease"})(rl||(rl={}));var rL;(function(n){const e=new Map;e.set(0,Te.symbolMethod),e.set(1,Te.symbolFunction),e.set(2,Te.symbolConstructor),e.set(3,Te.symbolField),e.set(4,Te.symbolVariable),e.set(5,Te.symbolClass),e.set(6,Te.symbolStruct),e.set(7,Te.symbolInterface),e.set(8,Te.symbolModule),e.set(9,Te.symbolProperty),e.set(10,Te.symbolEvent),e.set(11,Te.symbolOperator),e.set(12,Te.symbolUnit),e.set(13,Te.symbolValue),e.set(15,Te.symbolEnum),e.set(14,Te.symbolConstant),e.set(15,Te.symbolEnum),e.set(16,Te.symbolEnumMember),e.set(17,Te.symbolKeyword),e.set(27,Te.symbolSnippet),e.set(18,Te.symbolText),e.set(19,Te.symbolColor),e.set(20,Te.symbolFile),e.set(21,Te.symbolReference),e.set(22,Te.symbolCustomColor),e.set(23,Te.symbolFolder),e.set(24,Te.symbolTypeParameter),e.set(25,Te.account),e.set(26,Te.issues);function t(o){let r=e.get(o);return r||(console.info("No codicon found for CompletionItemKind "+o),r=Te.symbolProperty),r}n.toIcon=t;const i=new Map;i.set("method",0),i.set("function",1),i.set("constructor",2),i.set("field",3),i.set("variable",4),i.set("class",5),i.set("struct",6),i.set("interface",7),i.set("module",8),i.set("property",9),i.set("event",10),i.set("operator",11),i.set("unit",12),i.set("value",13),i.set("constant",14),i.set("enum",15),i.set("enum-member",16),i.set("enumMember",16),i.set("keyword",17),i.set("snippet",27),i.set("text",18),i.set("color",19),i.set("file",20),i.set("reference",21),i.set("customcolor",22),i.set("folder",23),i.set("type-parameter",24),i.set("typeParameter",24),i.set("account",25),i.set("issue",26);function s(o,r){let a=i.get(o);return typeof a>"u"&&!r&&(a=9),a}n.fromString=s})(rL||(rL={}));var pg;(function(n){n[n.Automatic=0]="Automatic",n[n.Explicit=1]="Explicit"})(pg||(pg={}));class gae{constructor(e,t,i,s){this.range=e,this.text=t,this.completionKind=i,this.isSnippetText=s}equals(e){return A.lift(this.range).equalsRange(e.range)&&this.text===e.text&&this.completionKind===e.completionKind&&this.isSnippetText===e.isSnippetText}}var aL;(function(n){n[n.Automatic=0]="Automatic",n[n.PasteAs=1]="PasteAs"})(aL||(aL={}));var ph;(function(n){n[n.Invoke=1]="Invoke",n[n.TriggerCharacter=2]="TriggerCharacter",n[n.ContentChange=3]="ContentChange"})(ph||(ph={}));var lL;(function(n){n[n.Text=0]="Text",n[n.Read=1]="Read",n[n.Write=2]="Write"})(lL||(lL={}));function sRe(n){return n&&pt.isUri(n.uri)&&A.isIRange(n.range)&&(A.isIRange(n.originSelectionRange)||A.isIRange(n.targetSelectionRange))}const oRe={17:v("Array","array"),16:v("Boolean","boolean"),4:v("Class","class"),13:v("Constant","constant"),8:v("Constructor","constructor"),9:v("Enum","enumeration"),21:v("EnumMember","enumeration member"),23:v("Event","event"),7:v("Field","field"),0:v("File","file"),11:v("Function","function"),10:v("Interface","interface"),19:v("Key","key"),5:v("Method","method"),1:v("Module","module"),2:v("Namespace","namespace"),20:v("Null","null"),15:v("Number","number"),18:v("Object","object"),24:v("Operator","operator"),3:v("Package","package"),6:v("Property","property"),14:v("String","string"),22:v("Struct","struct"),25:v("TypeParameter","type parameter"),12:v("Variable","variable")};function rRe(n,e){return v("symbolAriaLabel","{0} ({1})",n,oRe[e])}var N2;(function(n){const e=new Map;e.set(0,Te.symbolFile),e.set(1,Te.symbolModule),e.set(2,Te.symbolNamespace),e.set(3,Te.symbolPackage),e.set(4,Te.symbolClass),e.set(5,Te.symbolMethod),e.set(6,Te.symbolProperty),e.set(7,Te.symbolField),e.set(8,Te.symbolConstructor),e.set(9,Te.symbolEnum),e.set(10,Te.symbolInterface),e.set(11,Te.symbolFunction),e.set(12,Te.symbolVariable),e.set(13,Te.symbolConstant),e.set(14,Te.symbolString),e.set(15,Te.symbolNumber),e.set(16,Te.symbolBoolean),e.set(17,Te.symbolArray),e.set(18,Te.symbolObject),e.set(19,Te.symbolKey),e.set(20,Te.symbolNull),e.set(21,Te.symbolEnumMember),e.set(22,Te.symbolStruct),e.set(23,Te.symbolEvent),e.set(24,Te.symbolOperator),e.set(25,Te.symbolTypeParameter);function t(i){let s=e.get(i);return s||(console.info("No codicon found for SymbolKind "+i),s=Te.symbolProperty),s}n.toIcon=t})(N2||(N2={}));class Nr{static fromValue(e){switch(e){case"comment":return Nr.Comment;case"imports":return Nr.Imports;case"region":return Nr.Region}return new Nr(e)}constructor(e){this.value=e}}Nr.Comment=new Nr("comment");Nr.Imports=new Nr("imports");Nr.Region=new Nr("region");var s7;(function(n){n[n.AIGenerated=1]="AIGenerated"})(s7||(s7={}));var cL;(function(n){n[n.Invoke=0]="Invoke",n[n.Automatic=1]="Automatic"})(cL||(cL={}));var o7;(function(n){function e(t){return!t||typeof t!="object"?!1:typeof t.id=="string"&&typeof t.title=="string"}n.is=e})(o7||(o7={}));var A2;(function(n){n[n.Type=1]="Type",n[n.Parameter=2]="Parameter"})(A2||(A2={}));class aRe{constructor(e){this.createSupport=e,this._tokenizationSupport=null}dispose(){this._tokenizationSupport&&this._tokenizationSupport.then(e=>{e&&e.dispose()})}get tokenizationSupport(){return this._tokenizationSupport||(this._tokenizationSupport=this.createSupport()),this._tokenizationSupport}}const Zn=new iRe;var R2;(function(n){n[n.Invoke=0]="Invoke",n[n.Automatic=1]="Automatic"})(R2||(R2={}));var r7;(function(n){n[n.Unknown=0]="Unknown",n[n.Disabled=1]="Disabled",n[n.Enabled=2]="Enabled"})(r7||(r7={}));var a7;(function(n){n[n.Invoke=1]="Invoke",n[n.Auto=2]="Auto"})(a7||(a7={}));var l7;(function(n){n[n.None=0]="None",n[n.KeepWhitespace=1]="KeepWhitespace",n[n.InsertAsSnippet=4]="InsertAsSnippet"})(l7||(l7={}));var c7;(function(n){n[n.Method=0]="Method",n[n.Function=1]="Function",n[n.Constructor=2]="Constructor",n[n.Field=3]="Field",n[n.Variable=4]="Variable",n[n.Class=5]="Class",n[n.Struct=6]="Struct",n[n.Interface=7]="Interface",n[n.Module=8]="Module",n[n.Property=9]="Property",n[n.Event=10]="Event",n[n.Operator=11]="Operator",n[n.Unit=12]="Unit",n[n.Value=13]="Value",n[n.Constant=14]="Constant",n[n.Enum=15]="Enum",n[n.EnumMember=16]="EnumMember",n[n.Keyword=17]="Keyword",n[n.Text=18]="Text",n[n.Color=19]="Color",n[n.File=20]="File",n[n.Reference=21]="Reference",n[n.Customcolor=22]="Customcolor",n[n.Folder=23]="Folder",n[n.TypeParameter=24]="TypeParameter",n[n.User=25]="User",n[n.Issue=26]="Issue",n[n.Snippet=27]="Snippet"})(c7||(c7={}));var d7;(function(n){n[n.Deprecated=1]="Deprecated"})(d7||(d7={}));var u7;(function(n){n[n.Invoke=0]="Invoke",n[n.TriggerCharacter=1]="TriggerCharacter",n[n.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions"})(u7||(u7={}));var h7;(function(n){n[n.EXACT=0]="EXACT",n[n.ABOVE=1]="ABOVE",n[n.BELOW=2]="BELOW"})(h7||(h7={}));var f7;(function(n){n[n.NotSet=0]="NotSet",n[n.ContentFlush=1]="ContentFlush",n[n.RecoverFromMarkers=2]="RecoverFromMarkers",n[n.Explicit=3]="Explicit",n[n.Paste=4]="Paste",n[n.Undo=5]="Undo",n[n.Redo=6]="Redo"})(f7||(f7={}));var g7;(function(n){n[n.LF=1]="LF",n[n.CRLF=2]="CRLF"})(g7||(g7={}));var p7;(function(n){n[n.Text=0]="Text",n[n.Read=1]="Read",n[n.Write=2]="Write"})(p7||(p7={}));var m7;(function(n){n[n.None=0]="None",n[n.Keep=1]="Keep",n[n.Brackets=2]="Brackets",n[n.Advanced=3]="Advanced",n[n.Full=4]="Full"})(m7||(m7={}));var _7;(function(n){n[n.acceptSuggestionOnCommitCharacter=0]="acceptSuggestionOnCommitCharacter",n[n.acceptSuggestionOnEnter=1]="acceptSuggestionOnEnter",n[n.accessibilitySupport=2]="accessibilitySupport",n[n.accessibilityPageSize=3]="accessibilityPageSize",n[n.ariaLabel=4]="ariaLabel",n[n.ariaRequired=5]="ariaRequired",n[n.autoClosingBrackets=6]="autoClosingBrackets",n[n.autoClosingComments=7]="autoClosingComments",n[n.screenReaderAnnounceInlineSuggestion=8]="screenReaderAnnounceInlineSuggestion",n[n.autoClosingDelete=9]="autoClosingDelete",n[n.autoClosingOvertype=10]="autoClosingOvertype",n[n.autoClosingQuotes=11]="autoClosingQuotes",n[n.autoIndent=12]="autoIndent",n[n.automaticLayout=13]="automaticLayout",n[n.autoSurround=14]="autoSurround",n[n.bracketPairColorization=15]="bracketPairColorization",n[n.guides=16]="guides",n[n.codeLens=17]="codeLens",n[n.codeLensFontFamily=18]="codeLensFontFamily",n[n.codeLensFontSize=19]="codeLensFontSize",n[n.colorDecorators=20]="colorDecorators",n[n.colorDecoratorsLimit=21]="colorDecoratorsLimit",n[n.columnSelection=22]="columnSelection",n[n.comments=23]="comments",n[n.contextmenu=24]="contextmenu",n[n.copyWithSyntaxHighlighting=25]="copyWithSyntaxHighlighting",n[n.cursorBlinking=26]="cursorBlinking",n[n.cursorSmoothCaretAnimation=27]="cursorSmoothCaretAnimation",n[n.cursorStyle=28]="cursorStyle",n[n.cursorSurroundingLines=29]="cursorSurroundingLines",n[n.cursorSurroundingLinesStyle=30]="cursorSurroundingLinesStyle",n[n.cursorWidth=31]="cursorWidth",n[n.disableLayerHinting=32]="disableLayerHinting",n[n.disableMonospaceOptimizations=33]="disableMonospaceOptimizations",n[n.domReadOnly=34]="domReadOnly",n[n.dragAndDrop=35]="dragAndDrop",n[n.dropIntoEditor=36]="dropIntoEditor",n[n.emptySelectionClipboard=37]="emptySelectionClipboard",n[n.experimentalWhitespaceRendering=38]="experimentalWhitespaceRendering",n[n.extraEditorClassName=39]="extraEditorClassName",n[n.fastScrollSensitivity=40]="fastScrollSensitivity",n[n.find=41]="find",n[n.fixedOverflowWidgets=42]="fixedOverflowWidgets",n[n.folding=43]="folding",n[n.foldingStrategy=44]="foldingStrategy",n[n.foldingHighlight=45]="foldingHighlight",n[n.foldingImportsByDefault=46]="foldingImportsByDefault",n[n.foldingMaximumRegions=47]="foldingMaximumRegions",n[n.unfoldOnClickAfterEndOfLine=48]="unfoldOnClickAfterEndOfLine",n[n.fontFamily=49]="fontFamily",n[n.fontInfo=50]="fontInfo",n[n.fontLigatures=51]="fontLigatures",n[n.fontSize=52]="fontSize",n[n.fontWeight=53]="fontWeight",n[n.fontVariations=54]="fontVariations",n[n.formatOnPaste=55]="formatOnPaste",n[n.formatOnType=56]="formatOnType",n[n.glyphMargin=57]="glyphMargin",n[n.gotoLocation=58]="gotoLocation",n[n.hideCursorInOverviewRuler=59]="hideCursorInOverviewRuler",n[n.hover=60]="hover",n[n.inDiffEditor=61]="inDiffEditor",n[n.inlineSuggest=62]="inlineSuggest",n[n.inlineEdit=63]="inlineEdit",n[n.letterSpacing=64]="letterSpacing",n[n.lightbulb=65]="lightbulb",n[n.lineDecorationsWidth=66]="lineDecorationsWidth",n[n.lineHeight=67]="lineHeight",n[n.lineNumbers=68]="lineNumbers",n[n.lineNumbersMinChars=69]="lineNumbersMinChars",n[n.linkedEditing=70]="linkedEditing",n[n.links=71]="links",n[n.matchBrackets=72]="matchBrackets",n[n.minimap=73]="minimap",n[n.mouseStyle=74]="mouseStyle",n[n.mouseWheelScrollSensitivity=75]="mouseWheelScrollSensitivity",n[n.mouseWheelZoom=76]="mouseWheelZoom",n[n.multiCursorMergeOverlapping=77]="multiCursorMergeOverlapping",n[n.multiCursorModifier=78]="multiCursorModifier",n[n.multiCursorPaste=79]="multiCursorPaste",n[n.multiCursorLimit=80]="multiCursorLimit",n[n.occurrencesHighlight=81]="occurrencesHighlight",n[n.overviewRulerBorder=82]="overviewRulerBorder",n[n.overviewRulerLanes=83]="overviewRulerLanes",n[n.padding=84]="padding",n[n.pasteAs=85]="pasteAs",n[n.parameterHints=86]="parameterHints",n[n.peekWidgetDefaultFocus=87]="peekWidgetDefaultFocus",n[n.definitionLinkOpensInPeek=88]="definitionLinkOpensInPeek",n[n.quickSuggestions=89]="quickSuggestions",n[n.quickSuggestionsDelay=90]="quickSuggestionsDelay",n[n.readOnly=91]="readOnly",n[n.readOnlyMessage=92]="readOnlyMessage",n[n.renameOnType=93]="renameOnType",n[n.renderControlCharacters=94]="renderControlCharacters",n[n.renderFinalNewline=95]="renderFinalNewline",n[n.renderLineHighlight=96]="renderLineHighlight",n[n.renderLineHighlightOnlyWhenFocus=97]="renderLineHighlightOnlyWhenFocus",n[n.renderValidationDecorations=98]="renderValidationDecorations",n[n.renderWhitespace=99]="renderWhitespace",n[n.revealHorizontalRightPadding=100]="revealHorizontalRightPadding",n[n.roundedSelection=101]="roundedSelection",n[n.rulers=102]="rulers",n[n.scrollbar=103]="scrollbar",n[n.scrollBeyondLastColumn=104]="scrollBeyondLastColumn",n[n.scrollBeyondLastLine=105]="scrollBeyondLastLine",n[n.scrollPredominantAxis=106]="scrollPredominantAxis",n[n.selectionClipboard=107]="selectionClipboard",n[n.selectionHighlight=108]="selectionHighlight",n[n.selectOnLineNumbers=109]="selectOnLineNumbers",n[n.showFoldingControls=110]="showFoldingControls",n[n.showUnused=111]="showUnused",n[n.snippetSuggestions=112]="snippetSuggestions",n[n.smartSelect=113]="smartSelect",n[n.smoothScrolling=114]="smoothScrolling",n[n.stickyScroll=115]="stickyScroll",n[n.stickyTabStops=116]="stickyTabStops",n[n.stopRenderingLineAfter=117]="stopRenderingLineAfter",n[n.suggest=118]="suggest",n[n.suggestFontSize=119]="suggestFontSize",n[n.suggestLineHeight=120]="suggestLineHeight",n[n.suggestOnTriggerCharacters=121]="suggestOnTriggerCharacters",n[n.suggestSelection=122]="suggestSelection",n[n.tabCompletion=123]="tabCompletion",n[n.tabIndex=124]="tabIndex",n[n.unicodeHighlighting=125]="unicodeHighlighting",n[n.unusualLineTerminators=126]="unusualLineTerminators",n[n.useShadowDOM=127]="useShadowDOM",n[n.useTabStops=128]="useTabStops",n[n.wordBreak=129]="wordBreak",n[n.wordSegmenterLocales=130]="wordSegmenterLocales",n[n.wordSeparators=131]="wordSeparators",n[n.wordWrap=132]="wordWrap",n[n.wordWrapBreakAfterCharacters=133]="wordWrapBreakAfterCharacters",n[n.wordWrapBreakBeforeCharacters=134]="wordWrapBreakBeforeCharacters",n[n.wordWrapColumn=135]="wordWrapColumn",n[n.wordWrapOverride1=136]="wordWrapOverride1",n[n.wordWrapOverride2=137]="wordWrapOverride2",n[n.wrappingIndent=138]="wrappingIndent",n[n.wrappingStrategy=139]="wrappingStrategy",n[n.showDeprecated=140]="showDeprecated",n[n.inlayHints=141]="inlayHints",n[n.editorClassName=142]="editorClassName",n[n.pixelRatio=143]="pixelRatio",n[n.tabFocusMode=144]="tabFocusMode",n[n.layoutInfo=145]="layoutInfo",n[n.wrappingInfo=146]="wrappingInfo",n[n.defaultColorDecorators=147]="defaultColorDecorators",n[n.colorDecoratorsActivatedOn=148]="colorDecoratorsActivatedOn",n[n.inlineCompletionsAccessibilityVerbose=149]="inlineCompletionsAccessibilityVerbose"})(_7||(_7={}));var v7;(function(n){n[n.TextDefined=0]="TextDefined",n[n.LF=1]="LF",n[n.CRLF=2]="CRLF"})(v7||(v7={}));var b7;(function(n){n[n.LF=0]="LF",n[n.CRLF=1]="CRLF"})(b7||(b7={}));var C7;(function(n){n[n.Left=1]="Left",n[n.Center=2]="Center",n[n.Right=3]="Right"})(C7||(C7={}));var w7;(function(n){n[n.Increase=0]="Increase",n[n.Decrease=1]="Decrease"})(w7||(w7={}));var y7;(function(n){n[n.None=0]="None",n[n.Indent=1]="Indent",n[n.IndentOutdent=2]="IndentOutdent",n[n.Outdent=3]="Outdent"})(y7||(y7={}));var S7;(function(n){n[n.Both=0]="Both",n[n.Right=1]="Right",n[n.Left=2]="Left",n[n.None=3]="None"})(S7||(S7={}));var x7;(function(n){n[n.Type=1]="Type",n[n.Parameter=2]="Parameter"})(x7||(x7={}));var L7;(function(n){n[n.Automatic=0]="Automatic",n[n.Explicit=1]="Explicit"})(L7||(L7={}));var k7;(function(n){n[n.Invoke=0]="Invoke",n[n.Automatic=1]="Automatic"})(k7||(k7={}));var D7;(function(n){n[n.DependsOnKbLayout=-1]="DependsOnKbLayout",n[n.Unknown=0]="Unknown",n[n.Backspace=1]="Backspace",n[n.Tab=2]="Tab",n[n.Enter=3]="Enter",n[n.Shift=4]="Shift",n[n.Ctrl=5]="Ctrl",n[n.Alt=6]="Alt",n[n.PauseBreak=7]="PauseBreak",n[n.CapsLock=8]="CapsLock",n[n.Escape=9]="Escape",n[n.Space=10]="Space",n[n.PageUp=11]="PageUp",n[n.PageDown=12]="PageDown",n[n.End=13]="End",n[n.Home=14]="Home",n[n.LeftArrow=15]="LeftArrow",n[n.UpArrow=16]="UpArrow",n[n.RightArrow=17]="RightArrow",n[n.DownArrow=18]="DownArrow",n[n.Insert=19]="Insert",n[n.Delete=20]="Delete",n[n.Digit0=21]="Digit0",n[n.Digit1=22]="Digit1",n[n.Digit2=23]="Digit2",n[n.Digit3=24]="Digit3",n[n.Digit4=25]="Digit4",n[n.Digit5=26]="Digit5",n[n.Digit6=27]="Digit6",n[n.Digit7=28]="Digit7",n[n.Digit8=29]="Digit8",n[n.Digit9=30]="Digit9",n[n.KeyA=31]="KeyA",n[n.KeyB=32]="KeyB",n[n.KeyC=33]="KeyC",n[n.KeyD=34]="KeyD",n[n.KeyE=35]="KeyE",n[n.KeyF=36]="KeyF",n[n.KeyG=37]="KeyG",n[n.KeyH=38]="KeyH",n[n.KeyI=39]="KeyI",n[n.KeyJ=40]="KeyJ",n[n.KeyK=41]="KeyK",n[n.KeyL=42]="KeyL",n[n.KeyM=43]="KeyM",n[n.KeyN=44]="KeyN",n[n.KeyO=45]="KeyO",n[n.KeyP=46]="KeyP",n[n.KeyQ=47]="KeyQ",n[n.KeyR=48]="KeyR",n[n.KeyS=49]="KeyS",n[n.KeyT=50]="KeyT",n[n.KeyU=51]="KeyU",n[n.KeyV=52]="KeyV",n[n.KeyW=53]="KeyW",n[n.KeyX=54]="KeyX",n[n.KeyY=55]="KeyY",n[n.KeyZ=56]="KeyZ",n[n.Meta=57]="Meta",n[n.ContextMenu=58]="ContextMenu",n[n.F1=59]="F1",n[n.F2=60]="F2",n[n.F3=61]="F3",n[n.F4=62]="F4",n[n.F5=63]="F5",n[n.F6=64]="F6",n[n.F7=65]="F7",n[n.F8=66]="F8",n[n.F9=67]="F9",n[n.F10=68]="F10",n[n.F11=69]="F11",n[n.F12=70]="F12",n[n.F13=71]="F13",n[n.F14=72]="F14",n[n.F15=73]="F15",n[n.F16=74]="F16",n[n.F17=75]="F17",n[n.F18=76]="F18",n[n.F19=77]="F19",n[n.F20=78]="F20",n[n.F21=79]="F21",n[n.F22=80]="F22",n[n.F23=81]="F23",n[n.F24=82]="F24",n[n.NumLock=83]="NumLock",n[n.ScrollLock=84]="ScrollLock",n[n.Semicolon=85]="Semicolon",n[n.Equal=86]="Equal",n[n.Comma=87]="Comma",n[n.Minus=88]="Minus",n[n.Period=89]="Period",n[n.Slash=90]="Slash",n[n.Backquote=91]="Backquote",n[n.BracketLeft=92]="BracketLeft",n[n.Backslash=93]="Backslash",n[n.BracketRight=94]="BracketRight",n[n.Quote=95]="Quote",n[n.OEM_8=96]="OEM_8",n[n.IntlBackslash=97]="IntlBackslash",n[n.Numpad0=98]="Numpad0",n[n.Numpad1=99]="Numpad1",n[n.Numpad2=100]="Numpad2",n[n.Numpad3=101]="Numpad3",n[n.Numpad4=102]="Numpad4",n[n.Numpad5=103]="Numpad5",n[n.Numpad6=104]="Numpad6",n[n.Numpad7=105]="Numpad7",n[n.Numpad8=106]="Numpad8",n[n.Numpad9=107]="Numpad9",n[n.NumpadMultiply=108]="NumpadMultiply",n[n.NumpadAdd=109]="NumpadAdd",n[n.NUMPAD_SEPARATOR=110]="NUMPAD_SEPARATOR",n[n.NumpadSubtract=111]="NumpadSubtract",n[n.NumpadDecimal=112]="NumpadDecimal",n[n.NumpadDivide=113]="NumpadDivide",n[n.KEY_IN_COMPOSITION=114]="KEY_IN_COMPOSITION",n[n.ABNT_C1=115]="ABNT_C1",n[n.ABNT_C2=116]="ABNT_C2",n[n.AudioVolumeMute=117]="AudioVolumeMute",n[n.AudioVolumeUp=118]="AudioVolumeUp",n[n.AudioVolumeDown=119]="AudioVolumeDown",n[n.BrowserSearch=120]="BrowserSearch",n[n.BrowserHome=121]="BrowserHome",n[n.BrowserBack=122]="BrowserBack",n[n.BrowserForward=123]="BrowserForward",n[n.MediaTrackNext=124]="MediaTrackNext",n[n.MediaTrackPrevious=125]="MediaTrackPrevious",n[n.MediaStop=126]="MediaStop",n[n.MediaPlayPause=127]="MediaPlayPause",n[n.LaunchMediaPlayer=128]="LaunchMediaPlayer",n[n.LaunchMail=129]="LaunchMail",n[n.LaunchApp2=130]="LaunchApp2",n[n.Clear=131]="Clear",n[n.MAX_VALUE=132]="MAX_VALUE"})(D7||(D7={}));var I7;(function(n){n[n.Hint=1]="Hint",n[n.Info=2]="Info",n[n.Warning=4]="Warning",n[n.Error=8]="Error"})(I7||(I7={}));var E7;(function(n){n[n.Unnecessary=1]="Unnecessary",n[n.Deprecated=2]="Deprecated"})(E7||(E7={}));var T7;(function(n){n[n.Inline=1]="Inline",n[n.Gutter=2]="Gutter"})(T7||(T7={}));var N7;(function(n){n[n.Normal=1]="Normal",n[n.Underlined=2]="Underlined"})(N7||(N7={}));var A7;(function(n){n[n.UNKNOWN=0]="UNKNOWN",n[n.TEXTAREA=1]="TEXTAREA",n[n.GUTTER_GLYPH_MARGIN=2]="GUTTER_GLYPH_MARGIN",n[n.GUTTER_LINE_NUMBERS=3]="GUTTER_LINE_NUMBERS",n[n.GUTTER_LINE_DECORATIONS=4]="GUTTER_LINE_DECORATIONS",n[n.GUTTER_VIEW_ZONE=5]="GUTTER_VIEW_ZONE",n[n.CONTENT_TEXT=6]="CONTENT_TEXT",n[n.CONTENT_EMPTY=7]="CONTENT_EMPTY",n[n.CONTENT_VIEW_ZONE=8]="CONTENT_VIEW_ZONE",n[n.CONTENT_WIDGET=9]="CONTENT_WIDGET",n[n.OVERVIEW_RULER=10]="OVERVIEW_RULER",n[n.SCROLLBAR=11]="SCROLLBAR",n[n.OVERLAY_WIDGET=12]="OVERLAY_WIDGET",n[n.OUTSIDE_EDITOR=13]="OUTSIDE_EDITOR"})(A7||(A7={}));var R7;(function(n){n[n.AIGenerated=1]="AIGenerated"})(R7||(R7={}));var M7;(function(n){n[n.Invoke=0]="Invoke",n[n.Automatic=1]="Automatic"})(M7||(M7={}));var P7;(function(n){n[n.TOP_RIGHT_CORNER=0]="TOP_RIGHT_CORNER",n[n.BOTTOM_RIGHT_CORNER=1]="BOTTOM_RIGHT_CORNER",n[n.TOP_CENTER=2]="TOP_CENTER"})(P7||(P7={}));var O7;(function(n){n[n.Left=1]="Left",n[n.Center=2]="Center",n[n.Right=4]="Right",n[n.Full=7]="Full"})(O7||(O7={}));var F7;(function(n){n[n.Word=0]="Word",n[n.Line=1]="Line",n[n.Suggest=2]="Suggest"})(F7||(F7={}));var B7;(function(n){n[n.Left=0]="Left",n[n.Right=1]="Right",n[n.None=2]="None",n[n.LeftOfInjectedText=3]="LeftOfInjectedText",n[n.RightOfInjectedText=4]="RightOfInjectedText"})(B7||(B7={}));var W7;(function(n){n[n.Off=0]="Off",n[n.On=1]="On",n[n.Relative=2]="Relative",n[n.Interval=3]="Interval",n[n.Custom=4]="Custom"})(W7||(W7={}));var H7;(function(n){n[n.None=0]="None",n[n.Text=1]="Text",n[n.Blocks=2]="Blocks"})(H7||(H7={}));var V7;(function(n){n[n.Smooth=0]="Smooth",n[n.Immediate=1]="Immediate"})(V7||(V7={}));var z7;(function(n){n[n.Auto=1]="Auto",n[n.Hidden=2]="Hidden",n[n.Visible=3]="Visible"})(z7||(z7={}));var $7;(function(n){n[n.LTR=0]="LTR",n[n.RTL=1]="RTL"})($7||($7={}));var U7;(function(n){n.Off="off",n.OnCode="onCode",n.On="on"})(U7||(U7={}));var j7;(function(n){n[n.Invoke=1]="Invoke",n[n.TriggerCharacter=2]="TriggerCharacter",n[n.ContentChange=3]="ContentChange"})(j7||(j7={}));var K7;(function(n){n[n.File=0]="File",n[n.Module=1]="Module",n[n.Namespace=2]="Namespace",n[n.Package=3]="Package",n[n.Class=4]="Class",n[n.Method=5]="Method",n[n.Property=6]="Property",n[n.Field=7]="Field",n[n.Constructor=8]="Constructor",n[n.Enum=9]="Enum",n[n.Interface=10]="Interface",n[n.Function=11]="Function",n[n.Variable=12]="Variable",n[n.Constant=13]="Constant",n[n.String=14]="String",n[n.Number=15]="Number",n[n.Boolean=16]="Boolean",n[n.Array=17]="Array",n[n.Object=18]="Object",n[n.Key=19]="Key",n[n.Null=20]="Null",n[n.EnumMember=21]="EnumMember",n[n.Struct=22]="Struct",n[n.Event=23]="Event",n[n.Operator=24]="Operator",n[n.TypeParameter=25]="TypeParameter"})(K7||(K7={}));var q7;(function(n){n[n.Deprecated=1]="Deprecated"})(q7||(q7={}));var G7;(function(n){n[n.Hidden=0]="Hidden",n[n.Blink=1]="Blink",n[n.Smooth=2]="Smooth",n[n.Phase=3]="Phase",n[n.Expand=4]="Expand",n[n.Solid=5]="Solid"})(G7||(G7={}));var Z7;(function(n){n[n.Line=1]="Line",n[n.Block=2]="Block",n[n.Underline=3]="Underline",n[n.LineThin=4]="LineThin",n[n.BlockOutline=5]="BlockOutline",n[n.UnderlineThin=6]="UnderlineThin"})(Z7||(Z7={}));var Y7;(function(n){n[n.AlwaysGrowsWhenTypingAtEdges=0]="AlwaysGrowsWhenTypingAtEdges",n[n.NeverGrowsWhenTypingAtEdges=1]="NeverGrowsWhenTypingAtEdges",n[n.GrowsOnlyWhenTypingBefore=2]="GrowsOnlyWhenTypingBefore",n[n.GrowsOnlyWhenTypingAfter=3]="GrowsOnlyWhenTypingAfter"})(Y7||(Y7={}));var X7;(function(n){n[n.None=0]="None",n[n.Same=1]="Same",n[n.Indent=2]="Indent",n[n.DeepIndent=3]="DeepIndent"})(X7||(X7={}));let rD=class{static chord(e,t){return Os(e,t)}};rD.CtrlCmd=2048;rD.Shift=1024;rD.Alt=512;rD.WinCtrl=256;function pae(){return{editor:void 0,languages:void 0,CancellationTokenSource:$n,Emitter:X,KeyCode:D7,KeyMod:rD,Position:ee,Range:A,Selection:it,SelectionDirection:$7,MarkerSeverity:I7,MarkerTag:E7,Uri:pt,Token:oL}}function lRe(n,e){const t=n;typeof t.vscodeWindowId!="number"&&Object.defineProperty(t,"vscodeWindowId",{get:()=>e})}const Ji=window;function mae(n){return n}class cRe{constructor(e,t){this.lastCache=void 0,this.lastArgKey=void 0,typeof e=="function"?(this._fn=e,this._computeKey=mae):(this._fn=t,this._computeKey=e.getCacheKey)}get(e){const t=this._computeKey(e);return this.lastArgKey!==t&&(this.lastArgKey=t,this.lastCache=this._fn(e)),this.lastCache}}class lY{get cachedValues(){return this._map}constructor(e,t){this._map=new Map,this._map2=new Map,typeof e=="function"?(this._fn=e,this._computeKey=mae):(this._fn=t,this._computeKey=e.getCacheKey)}get(e){const t=this._computeKey(e);if(this._map2.has(t))return this._map2.get(t);const i=this._fn(e);return this._map.set(e,i),this._map2.set(t,i),i}}class pu{constructor(e){this.executor=e,this._didRun=!1}get value(){if(!this._didRun)try{this._value=this.executor()}catch(e){this._error=e}finally{this._didRun=!0}if(this._error)throw this._error;return this._value}get rawValue(){return this._value}}var EC;function _ae(n){return!n||typeof n!="string"?!0:n.trim().length===0}const dRe=/{(\d+)}/g;function l0(n,...e){return e.length===0?n:n.replace(dRe,function(t,i){const s=parseInt(i,10);return isNaN(s)||s<0||s>=e.length?t:e[s]})}function uRe(n){return n.replace(/[<>"'&]/g,e=>{switch(e){case"<":return"<";case">":return">";case'"':return""";case"'":return"'";case"&":return"&"}return e})}function ox(n){return n.replace(/[<>&]/g,function(e){switch(e){case"<":return"<";case">":return">";case"&":return"&";default:return e}})}function wl(n){return n.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function hRe(n,e=" "){const t=aD(n,e);return vae(t,e)}function aD(n,e){if(!n||!e)return n;const t=e.length;if(t===0||n.length===0)return n;let i=0;for(;n.indexOf(e,i)===i;)i=i+t;return n.substring(i)}function vae(n,e){if(!n||!e)return n;const t=e.length,i=n.length;if(t===0||i===0)return n;let s=i,o=-1;for(;o=n.lastIndexOf(e,s-1),!(o===-1||o+t!==s);){if(o===0)return"";s=o}return n.substring(0,s)}function fRe(n){return n.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")}function gRe(n){return n.replace(/\*/g,"")}function bae(n,e,t={}){if(!n)throw new Error("Cannot create regex from empty string");e||(n=wl(n)),t.wholeWord&&(/\B/.test(n.charAt(0))||(n="\\b"+n),/\B/.test(n.charAt(n.length-1))||(n=n+"\\b"));let i="";return t.global&&(i+="g"),t.matchCase||(i+="i"),t.multiline&&(i+="m"),t.unicode&&(i+="u"),new RegExp(n,i)}function pRe(n){return n.source==="^"||n.source==="^$"||n.source==="$"||n.source==="^\\s*$"?!1:!!(n.exec("")&&n.lastIndex===0)}function Wh(n){return n.split(/\r\n|\r|\n/)}function mRe(n){var e;const t=[],i=n.split(/(\r\n|\r|\n)/);for(let s=0;s=0;t--){const i=n.charCodeAt(t);if(i!==32&&i!==9)return t}return-1}function dL(n,e){return ne?1:0}function UV(n,e,t=0,i=n.length,s=0,o=e.length){for(;tc)return 1}const r=i-t,a=o-s;return ra?1:0}function Q7(n,e){return lD(n,e,0,n.length,0,e.length)}function lD(n,e,t=0,i=n.length,s=0,o=e.length){for(;t=128||c>=128)return UV(n.toLowerCase(),e.toLowerCase(),t,i,s,o);zp(l)&&(l-=32),zp(c)&&(c-=32);const d=l-c;if(d!==0)return d}const r=i-t,a=o-s;return ra?1:0}function SE(n){return n>=48&&n<=57}function zp(n){return n>=97&&n<=122}function Ku(n){return n>=65&&n<=90}function f1(n,e){return n.length===e.length&&lD(n,e)===0}function jV(n,e){const t=e.length;return e.length>n.length?!1:lD(n,e,0,t)===0}function Rm(n,e){const t=Math.min(n.length,e.length);let i;for(i=0;i1){const i=n.charCodeAt(e-2);if(Gs(i))return KV(i,t)}return t}class qV{get offset(){return this._offset}constructor(e,t=0){this._str=e,this._len=e.length,this._offset=t}setOffset(e){this._offset=e}prevCodePoint(){const e=_Re(this._str,this._offset);return this._offset-=e>=65536?2:1,e}nextCodePoint(){const e=P2(this._str,this._len,this._offset);return this._offset+=e>=65536?2:1,e}eol(){return this._offset>=this._len}}class O2{get offset(){return this._iterator.offset}constructor(e,t=0){this._iterator=new qV(e,t)}nextGraphemeLength(){const e=$p.getInstance(),t=this._iterator,i=t.offset;let s=e.getGraphemeBreakType(t.nextCodePoint());for(;!t.eol();){const o=t.offset,r=e.getGraphemeBreakType(t.nextCodePoint());if(cY(s,r)){t.setOffset(o);break}s=r}return t.offset-i}prevGraphemeLength(){const e=$p.getInstance(),t=this._iterator,i=t.offset;let s=e.getGraphemeBreakType(t.prevCodePoint());for(;t.offset>0;){const o=t.offset,r=e.getGraphemeBreakType(t.prevCodePoint());if(cY(r,s)){t.setOffset(o);break}s=r}return i-t.offset}eol(){return this._iterator.eol()}}function GV(n,e){return new O2(n,e).nextGraphemeLength()}function Cae(n,e){return new O2(n,e).prevGraphemeLength()}function vRe(n,e){e>0&&c0(n.charCodeAt(e))&&e--;const t=e+GV(n,e);return[t-Cae(n,t),t]}let SF;function bRe(){return/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDC7\uFDF0-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE35\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDD23\uDE80-\uDEA9\uDEAD-\uDF45\uDF51-\uDF81\uDF86-\uDFF6]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD4B-\uDFFF]|\uD83B[\uDC00-\uDEBB])/}function TC(n){return SF||(SF=bRe()),SF.test(n)}const CRe=/^[\t\n\r\x20-\x7E]*$/;function cD(n){return CRe.test(n)}const wae=/[\u2028\u2029]/;function yae(n){return wae.test(n)}function Mm(n){return n>=11904&&n<=55215||n>=63744&&n<=64255||n>=65281&&n<=65374}function ZV(n){return n>=127462&&n<=127487||n===8986||n===8987||n===9200||n===9203||n>=9728&&n<=10175||n===11088||n===11093||n>=127744&&n<=128591||n>=128640&&n<=128764||n>=128992&&n<=129008||n>=129280&&n<=129535||n>=129648&&n<=129782}const wRe="\uFEFF";function YV(n){return!!(n&&n.length>0&&n.charCodeAt(0)===65279)}function yRe(n,e=!1){return n?(e&&(n=n.replace(/\\./g,"")),n.toLowerCase()!==n):!1}function Sae(n){return n=n%(2*26),n<26?String.fromCharCode(97+n):String.fromCharCode(65+n-26)}function cY(n,e){return n===0?e!==5&&e!==7:n===2&&e===3?!1:n===4||n===2||n===3||e===4||e===2||e===3?!0:!(n===8&&(e===8||e===9||e===11||e===12)||(n===11||n===9)&&(e===9||e===10)||(n===12||n===10)&&e===10||e===5||e===13||e===7||n===1||n===13&&e===14||n===6&&e===6)}class $p{static getInstance(){return $p._INSTANCE||($p._INSTANCE=new $p),$p._INSTANCE}constructor(){this._data=SRe()}getGraphemeBreakType(e){if(e<32)return e===10?3:e===13?2:4;if(e<127)return 0;const t=this._data,i=t.length/3;let s=1;for(;s<=i;)if(et[3*s+1])s=2*s+1;else return t[3*s+2];return 0}}$p._INSTANCE=null;function SRe(){return JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]")}function xRe(n,e){if(n===0)return 0;const t=LRe(n,e);if(t!==void 0)return t;const i=new qV(e,n);return i.prevCodePoint(),i.offset}function LRe(n,e){const t=new qV(e,n);let i=t.prevCodePoint();for(;kRe(i)||i===65039||i===8419;){if(t.offset===0)return;i=t.prevCodePoint()}if(!ZV(i))return;let s=t.offset;return s>0&&t.prevCodePoint()===8205&&(s=t.offset),s}function kRe(n){return 127995<=n&&n<=127999}const xae=" ";class d0{static getInstance(e){return EC.cache.get(Array.from(e))}static getLocales(){return EC._locales.value}constructor(e){this.confusableDictionary=e}isAmbiguous(e){return this.confusableDictionary.has(e)}getPrimaryConfusable(e){return this.confusableDictionary.get(e)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}}EC=d0;d0.ambiguousCharacterData=new pu(()=>JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],"_default":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"cs":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"es":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"fr":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"it":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ja":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],"ko":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pt-BR":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ru":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"zh-hans":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],"zh-hant":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}'));d0.cache=new cRe({getCacheKey:JSON.stringify},n=>{function e(c){const d=new Map;for(let u=0;u!c.startsWith("_")&&c in s);o.length===0&&(o=["_default"]);let r;for(const c of o){const d=e(s[c]);r=i(r,d)}const a=e(s._common),l=t(a,r);return new EC(l)});d0._locales=new pu(()=>Object.keys(EC.ambiguousCharacterData.value).filter(n=>!n.startsWith("_")));class mh{static getRawData(){return JSON.parse("[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]")}static getData(){return this._data||(this._data=new Set(mh.getRawData())),this._data}static isInvisibleCharacter(e){return mh.getData().has(e)}static get codePoints(){return mh.getData()}}mh._data=void 0;class J7{constructor(){this.mapWindowIdToZoomFactor=new Map}getZoomFactor(e){var t;return(t=this.mapWindowIdToZoomFactor.get(this.getWindowId(e)))!==null&&t!==void 0?t:1}getWindowId(e){return e.vscodeWindowId}}J7.INSTANCE=new J7;function Lae(n,e,t){typeof e=="string"&&(e=n.matchMedia(e)),e.addEventListener("change",t)}function DRe(n){return J7.INSTANCE.getZoomFactor(n)}const Aw=navigator.userAgent,lc=Aw.indexOf("Firefox")>=0,rM=Aw.indexOf("AppleWebKit")>=0,dD=Aw.indexOf("Chrome")>=0,Pm=!dD&&Aw.indexOf("Safari")>=0,kae=!dD&&!Pm&&rM;Aw.indexOf("Electron/")>=0;const dY=Aw.indexOf("Android")>=0;let xF=!1;if(typeof Ji.matchMedia=="function"){const n=Ji.matchMedia("(display-mode: standalone) or (display-mode: window-controls-overlay)"),e=Ji.matchMedia("(display-mode: fullscreen)");xF=n.matches,Lae(Ji,n,({matches:t})=>{xF&&e.matches||(xF=t)})}const XV={clipboard:{writeText:Lh||document.queryCommandSupported&&document.queryCommandSupported("copy")||!!(navigator&&navigator.clipboard&&navigator.clipboard.writeText),readText:Lh||!!(navigator&&navigator.clipboard&&navigator.clipboard.readText)},pointerEvents:Ji.PointerEvent&&("ontouchstart"in Ji||navigator.maxTouchPoints>0)};function eB(n,e){if(typeof n=="number"){if(n===0)return null;const t=(n&65535)>>>0,i=(n&4294901760)>>>16;return i!==0?new LF([xE(t,e),xE(i,e)]):new LF([xE(t,e)])}else{const t=[];for(let i=0;i{const r=e.token.onCancellationRequested(()=>{r.dispose(),o(new nu)});Promise.resolve(t).then(a=>{r.dispose(),e.dispose(),s(a)},a=>{r.dispose(),e.dispose(),o(a)})});return new class{cancel(){e.cancel(),e.dispose()}then(s,o){return i.then(s,o)}catch(s){return this.then(void 0,s)}finally(s){return i.finally(s)}}}function uD(n,e,t){return new Promise((i,s)=>{const o=e.onCancellationRequested(()=>{o.dispose(),i(t)});n.then(i,s).finally(()=>o.dispose())})}class FRe{constructor(){this.isDisposed=!1,this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null}queue(e){if(this.isDisposed)return Promise.reject(new Error("Throttler is disposed"));if(this.activePromise){if(this.queuedPromiseFactory=e,!this.queuedPromise){const t=()=>{if(this.queuedPromise=null,this.isDisposed)return;const i=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,i};this.queuedPromise=new Promise(i=>{this.activePromise.then(t,t).then(i)})}return new Promise((t,i)=>{this.queuedPromise.then(t,i)})}return this.activePromise=e(),new Promise((t,i)=>{this.activePromise.then(s=>{this.activePromise=null,t(s)},s=>{this.activePromise=null,i(s)})})}dispose(){this.isDisposed=!0}}const BRe=(n,e)=>{let t=!0;const i=setTimeout(()=>{t=!1,e()},n);return{isTriggered:()=>t,dispose:()=>{clearTimeout(i),t=!1}}},WRe=n=>{let e=!0;return queueMicrotask(()=>{e&&(e=!1,n())}),{isTriggered:()=>e,dispose:()=>{e=!1}}};class sd{constructor(e){this.defaultDelay=e,this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(e,t=this.defaultDelay){this.task=e,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise((s,o)=>{this.doResolve=s,this.doReject=o}).then(()=>{if(this.completionPromise=null,this.doResolve=null,this.task){const s=this.task;return this.task=null,s()}}));const i=()=>{var s;this.deferred=null,(s=this.doResolve)===null||s===void 0||s.call(this,null)};return this.deferred=t===Dae?WRe(i):BRe(t,i),this.completionPromise}isTriggered(){var e;return!!(!((e=this.deferred)===null||e===void 0)&&e.isTriggered())}cancel(){var e;this.cancelTimeout(),this.completionPromise&&((e=this.doReject)===null||e===void 0||e.call(this,new nu),this.completionPromise=null)}cancelTimeout(){var e;(e=this.deferred)===null||e===void 0||e.dispose(),this.deferred=null}dispose(){this.cancel()}}class Iae{constructor(e){this.delayer=new sd(e),this.throttler=new FRe}trigger(e,t){return this.delayer.trigger(()=>this.throttler.queue(e),t)}cancel(){this.delayer.cancel()}dispose(){this.delayer.dispose(),this.throttler.dispose()}}function Dg(n,e){return e?new Promise((t,i)=>{const s=setTimeout(()=>{o.dispose(),t()},n),o=e.onCancellationRequested(()=>{clearTimeout(s),o.dispose(),i(new nu)})}):Xs(t=>Dg(n,t))}function Om(n,e=0,t){const i=setTimeout(()=>{n(),t&&s.dispose()},e),s=dt(()=>{clearTimeout(i),t==null||t.deleteAndLeak(s)});return t==null||t.add(s),s}function QV(n,e=i=>!!i,t=null){let i=0;const s=n.length,o=()=>{if(i>=s)return Promise.resolve(t);const r=n[i++];return Promise.resolve(r()).then(l=>e(l)?Promise.resolve(l):o())};return o()}class cd{constructor(e,t){this._isDisposed=!1,this._token=-1,typeof e=="function"&&typeof t=="number"&&this.setIfNotSet(e,t)}dispose(){this.cancel(),this._isDisposed=!0}cancel(){this._token!==-1&&(clearTimeout(this._token),this._token=-1)}cancelAndSet(e,t){if(this._isDisposed)throw new Gi("Calling 'cancelAndSet' on a disposed TimeoutTimer");this.cancel(),this._token=setTimeout(()=>{this._token=-1,e()},t)}setIfNotSet(e,t){if(this._isDisposed)throw new Gi("Calling 'setIfNotSet' on a disposed TimeoutTimer");this._token===-1&&(this._token=setTimeout(()=>{this._token=-1,e()},t))}}class JV{constructor(){this.disposable=void 0,this.isDisposed=!1}cancel(){var e;(e=this.disposable)===null||e===void 0||e.dispose(),this.disposable=void 0}cancelAndSet(e,t,i=globalThis){if(this.isDisposed)throw new Gi("Calling 'cancelAndSet' on a disposed IntervalTimer");this.cancel();const s=i.setInterval(()=>{e()},t);this.disposable=dt(()=>{i.clearInterval(s),this.disposable=void 0})}dispose(){this.cancel(),this.isDisposed=!0}}class Xi{constructor(e,t){this.timeoutToken=-1,this.runner=e,this.timeout=t,this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)}schedule(e=this.timeout){this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,e)}get delay(){return this.timeout}set delay(e){this.timeout=e}isScheduled(){return this.timeoutToken!==-1}onTimeout(){this.timeoutToken=-1,this.runner&&this.doRun()}doRun(){var e;(e=this.runner)===null||e===void 0||e.call(this)}}let Eae,rx;(function(){typeof globalThis.requestIdleCallback!="function"||typeof globalThis.cancelIdleCallback!="function"?rx=(n,e)=>{Gre(()=>{if(t)return;const i=Date.now()+15;e(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,i-Date.now())}}))});let t=!1;return{dispose(){t||(t=!0)}}}:rx=(n,e,t)=>{const i=n.requestIdleCallback(e,typeof t=="number"?{timeout:t}:void 0);let s=!1;return{dispose(){s||(s=!0,n.cancelIdleCallback(i))}}},Eae=n=>rx(globalThis,n)})();class Tae{constructor(e,t){this._didRun=!1,this._executor=()=>{try{this._value=t()}catch(i){this._error=i}finally{this._didRun=!0}},this._handle=rx(e,()=>this._executor())}dispose(){this._handle.dispose()}get value(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}get isInitialized(){return this._didRun}}class HRe extends Tae{constructor(e){super(globalThis,e)}}class hD{get isRejected(){var e;return((e=this.outcome)===null||e===void 0?void 0:e.outcome)===1}get isSettled(){return!!this.outcome}constructor(){this.p=new Promise((e,t)=>{this.completeCallback=e,this.errorCallback=t})}complete(e){return new Promise(t=>{this.completeCallback(e),this.outcome={outcome:0,value:e},t()})}error(e){return new Promise(t=>{this.errorCallback(e),this.outcome={outcome:1,value:e},t()})}cancel(){return this.error(new nu)}}var iB;(function(n){async function e(i){let s;const o=await Promise.all(i.map(r=>r.then(a=>a,a=>{s||(s=a)})));if(typeof s<"u")throw s;return o}n.settled=e;function t(i){return new Promise(async(s,o)=>{try{await i(s,o)}catch(r){o(r)}})}n.withAsyncBody=t})(iB||(iB={}));class Ls{static fromArray(e){return new Ls(t=>{t.emitMany(e)})}static fromPromise(e){return new Ls(async t=>{t.emitMany(await e)})}static fromPromises(e){return new Ls(async t=>{await Promise.all(e.map(async i=>t.emitOne(await i)))})}static merge(e){return new Ls(async t=>{await Promise.all(e.map(async i=>{for await(const s of i)t.emitOne(s)}))})}constructor(e,t){this._state=0,this._results=[],this._error=null,this._onReturn=t,this._onStateChanged=new X,queueMicrotask(async()=>{const i={emitOne:s=>this.emitOne(s),emitMany:s=>this.emitMany(s),reject:s=>this.reject(s)};try{await Promise.resolve(e(i)),this.resolve()}catch(s){this.reject(s)}finally{i.emitOne=void 0,i.emitMany=void 0,i.reject=void 0}})}[Symbol.asyncIterator](){let e=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(e{var t;return(t=this._onReturn)===null||t===void 0||t.call(this),{done:!0,value:void 0}}}}static map(e,t){return new Ls(async i=>{for await(const s of e)i.emitOne(t(s))})}map(e){return Ls.map(this,e)}static filter(e,t){return new Ls(async i=>{for await(const s of e)t(s)&&i.emitOne(s)})}filter(e){return Ls.filter(this,e)}static coalesce(e){return Ls.filter(e,t=>!!t)}coalesce(){return Ls.coalesce(this)}static async toPromise(e){const t=[];for await(const i of e)t.push(i);return t}toPromise(){return Ls.toPromise(this)}emitOne(e){this._state===0&&(this._results.push(e),this._onStateChanged.fire())}emitMany(e){this._state===0&&(this._results=this._results.concat(e),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(e){this._state===0&&(this._state=2,this._error=e,this._onStateChanged.fire())}}Ls.EMPTY=Ls.fromArray([]);class VRe extends Ls{constructor(e,t){super(t),this._source=e}cancel(){this._source.cancel()}}function zRe(n){const e=new $n,t=n(e.token);return new VRe(e,async i=>{const s=e.token.onCancellationRequested(()=>{s.dispose(),e.dispose(),i.reject(new nu)});try{for await(const o of t){if(e.token.isCancellationRequested)return;i.emitOne(o)}s.dispose(),e.dispose()}catch(o){s.dispose(),e.dispose(),i.reject(o)}})}/*! @license DOMPurify 3.0.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.5/LICENSE */const{entries:Nae,setPrototypeOf:hY,isFrozen:$Re,getPrototypeOf:URe,getOwnPropertyDescriptor:jRe}=Object;let{freeze:Pa,seal:su,create:KRe}=Object,{apply:nB,construct:sB}=typeof Reflect<"u"&&Reflect;nB||(nB=function(e,t,i){return e.apply(t,i)});Pa||(Pa=function(e){return e});su||(su=function(e){return e});sB||(sB=function(e,t){return new e(...t)});const qRe=od(Array.prototype.forEach),fY=od(Array.prototype.pop),Ey=od(Array.prototype.push),dN=od(String.prototype.toLowerCase),kF=od(String.prototype.toString),GRe=od(String.prototype.match),_d=od(String.prototype.replace),ZRe=od(String.prototype.indexOf),YRe=od(String.prototype.trim),Wl=od(RegExp.prototype.test),Ty=XRe(TypeError);function od(n){return function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;s/gm),iMe=su(/\${[\w\W]*}/gm),nMe=su(/^data-[\-\w.\u00B7-\uFFFF]/),sMe=su(/^aria-[\-\w]+$/),Aae=su(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),oMe=su(/^(?:\w+script|data):/i),rMe=su(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Rae=su(/^html$/i);var vY=Object.freeze({__proto__:null,MUSTACHE_EXPR:eMe,ERB_EXPR:tMe,TMPLIT_EXPR:iMe,DATA_ATTR:nMe,ARIA_ATTR:sMe,IS_ALLOWED_URI:Aae,IS_SCRIPT_OR_DATA:oMe,ATTR_WHITESPACE:rMe,DOCTYPE_NAME:Rae});const aMe=()=>typeof window>"u"?null:window,lMe=function(e,t){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let i=null;const s="data-tt-policy-suffix";t&&t.hasAttribute(s)&&(i=t.getAttribute(s));const o="dompurify"+(i?"#"+i:"");try{return e.createPolicy(o,{createHTML(r){return r},createScriptURL(r){return r}})}catch{return console.warn("TrustedTypes policy "+o+" could not be created."),null}};function Mae(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:aMe();const e=Gt=>Mae(Gt);if(e.version="3.0.5",e.removed=[],!n||!n.document||n.document.nodeType!==9)return e.isSupported=!1,e;const t=n.document,i=t.currentScript;let{document:s}=n;const{DocumentFragment:o,HTMLTemplateElement:r,Node:a,Element:l,NodeFilter:c,NamedNodeMap:d=n.NamedNodeMap||n.MozNamedAttrMap,HTMLFormElement:u,DOMParser:h,trustedTypes:f}=n,g=l.prototype,p=LE(g,"cloneNode"),_=LE(g,"nextSibling"),b=LE(g,"childNodes"),w=LE(g,"parentNode");if(typeof r=="function"){const Gt=s.createElement("template");Gt.content&&Gt.content.ownerDocument&&(s=Gt.content.ownerDocument)}let y,S="";const{implementation:x,createNodeIterator:k,createDocumentFragment:D,getElementsByTagName:I}=s,{importNode:N}=t;let P={};e.isSupported=typeof Nae=="function"&&typeof w=="function"&&x&&x.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:O,ERB_EXPR:M,TMPLIT_EXPR:z,DATA_ATTR:K,ARIA_ATTR:ae,IS_SCRIPT_OR_DATA:se,ATTR_WHITESPACE:he}=vY;let{IS_ALLOWED_URI:me}=vY,De=null;const lt=Ki({},[...gY,...DF,...IF,...EF,...pY]);let We=null;const Ve=Ki({},[...mY,...TF,..._Y,...kE]);let Me=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Zt=null,Oi=null,ni=!0,Se=!0,Qe=!1,nt=!0,mt=!1,Je=!1,Ii=!1,J=!1,ie=!1,ye=!1,ze=!1,Oe=!0,et=!1;const vt="user-content-";let re=!0,Q=!1,Z={},B=null;const H=Ki({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Y=null;const G=Ki({},["audio","video","img","source","image","track"]);let ge=null;const Ie=Ki({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),qe="http://www.w3.org/1998/Math/MathML",ot="http://www.w3.org/2000/svg",bt="http://www.w3.org/1999/xhtml";let xt=bt,si=!1,Ci=null;const Dt=Ki({},[qe,ot,bt],kF);let Si;const Ai=["application/xhtml+xml","text/html"],mr="text/html";let Ei,Cs=null;const wu=s.createElement("form"),yu=function(_e){return _e instanceof RegExp||_e instanceof Function},Nl=function(_e){if(!(Cs&&Cs===_e)){if((!_e||typeof _e!="object")&&(_e={}),_e=Ab(_e),Si=Ai.indexOf(_e.PARSER_MEDIA_TYPE)===-1?Si=mr:Si=_e.PARSER_MEDIA_TYPE,Ei=Si==="application/xhtml+xml"?kF:dN,De="ALLOWED_TAGS"in _e?Ki({},_e.ALLOWED_TAGS,Ei):lt,We="ALLOWED_ATTR"in _e?Ki({},_e.ALLOWED_ATTR,Ei):Ve,Ci="ALLOWED_NAMESPACES"in _e?Ki({},_e.ALLOWED_NAMESPACES,kF):Dt,ge="ADD_URI_SAFE_ATTR"in _e?Ki(Ab(Ie),_e.ADD_URI_SAFE_ATTR,Ei):Ie,Y="ADD_DATA_URI_TAGS"in _e?Ki(Ab(G),_e.ADD_DATA_URI_TAGS,Ei):G,B="FORBID_CONTENTS"in _e?Ki({},_e.FORBID_CONTENTS,Ei):H,Zt="FORBID_TAGS"in _e?Ki({},_e.FORBID_TAGS,Ei):{},Oi="FORBID_ATTR"in _e?Ki({},_e.FORBID_ATTR,Ei):{},Z="USE_PROFILES"in _e?_e.USE_PROFILES:!1,ni=_e.ALLOW_ARIA_ATTR!==!1,Se=_e.ALLOW_DATA_ATTR!==!1,Qe=_e.ALLOW_UNKNOWN_PROTOCOLS||!1,nt=_e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,mt=_e.SAFE_FOR_TEMPLATES||!1,Je=_e.WHOLE_DOCUMENT||!1,ie=_e.RETURN_DOM||!1,ye=_e.RETURN_DOM_FRAGMENT||!1,ze=_e.RETURN_TRUSTED_TYPE||!1,J=_e.FORCE_BODY||!1,Oe=_e.SANITIZE_DOM!==!1,et=_e.SANITIZE_NAMED_PROPS||!1,re=_e.KEEP_CONTENT!==!1,Q=_e.IN_PLACE||!1,me=_e.ALLOWED_URI_REGEXP||Aae,xt=_e.NAMESPACE||bt,Me=_e.CUSTOM_ELEMENT_HANDLING||{},_e.CUSTOM_ELEMENT_HANDLING&&yu(_e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Me.tagNameCheck=_e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),_e.CUSTOM_ELEMENT_HANDLING&&yu(_e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Me.attributeNameCheck=_e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),_e.CUSTOM_ELEMENT_HANDLING&&typeof _e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(Me.allowCustomizedBuiltInElements=_e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),mt&&(Se=!1),ye&&(ie=!0),Z&&(De=Ki({},[...pY]),We=[],Z.html===!0&&(Ki(De,gY),Ki(We,mY)),Z.svg===!0&&(Ki(De,DF),Ki(We,TF),Ki(We,kE)),Z.svgFilters===!0&&(Ki(De,IF),Ki(We,TF),Ki(We,kE)),Z.mathMl===!0&&(Ki(De,EF),Ki(We,_Y),Ki(We,kE))),_e.ADD_TAGS&&(De===lt&&(De=Ab(De)),Ki(De,_e.ADD_TAGS,Ei)),_e.ADD_ATTR&&(We===Ve&&(We=Ab(We)),Ki(We,_e.ADD_ATTR,Ei)),_e.ADD_URI_SAFE_ATTR&&Ki(ge,_e.ADD_URI_SAFE_ATTR,Ei),_e.FORBID_CONTENTS&&(B===H&&(B=Ab(B)),Ki(B,_e.FORBID_CONTENTS,Ei)),re&&(De["#text"]=!0),Je&&Ki(De,["html","head","body"]),De.table&&(Ki(De,["tbody"]),delete Zt.tbody),_e.TRUSTED_TYPES_POLICY){if(typeof _e.TRUSTED_TYPES_POLICY.createHTML!="function")throw Ty('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof _e.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Ty('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');y=_e.TRUSTED_TYPES_POLICY,S=y.createHTML("")}else y===void 0&&(y=lMe(f,i)),y!==null&&typeof S=="string"&&(S=y.createHTML(""));Pa&&Pa(_e),Cs=_e}},Su=Ki({},["mi","mo","mn","ms","mtext"]),Kh=Ki({},["foreignobject","desc","title","annotation-xml"]),qh=Ki({},["title","style","font","a","script"]),Gh=Ki({},DF);Ki(Gh,IF),Ki(Gh,QRe);const Zh=Ki({},EF);Ki(Zh,JRe);const ry=function(_e){let ct=w(_e);(!ct||!ct.tagName)&&(ct={namespaceURI:xt,tagName:"template"});const Et=dN(_e.tagName),jn=dN(ct.tagName);return Ci[_e.namespaceURI]?_e.namespaceURI===ot?ct.namespaceURI===bt?Et==="svg":ct.namespaceURI===qe?Et==="svg"&&(jn==="annotation-xml"||Su[jn]):!!Gh[Et]:_e.namespaceURI===qe?ct.namespaceURI===bt?Et==="math":ct.namespaceURI===ot?Et==="math"&&Kh[jn]:!!Zh[Et]:_e.namespaceURI===bt?ct.namespaceURI===ot&&!Kh[jn]||ct.namespaceURI===qe&&!Su[jn]?!1:!Zh[Et]&&(qh[Et]||!Gh[Et]):!!(Si==="application/xhtml+xml"&&Ci[_e.namespaceURI]):!1},yc=function(_e){Ey(e.removed,{element:_e});try{_e.parentNode.removeChild(_e)}catch{_e.remove()}},Yh=function(_e,ct){try{Ey(e.removed,{attribute:ct.getAttributeNode(_e),from:ct})}catch{Ey(e.removed,{attribute:null,from:ct})}if(ct.removeAttribute(_e),_e==="is"&&!We[_e])if(ie||ye)try{yc(ct)}catch{}else try{ct.setAttribute(_e,"")}catch{}},k_=function(_e){let ct,Et;if(J)_e=""+_e;else{const ja=GRe(_e,/^[\r\n\t ]+/);Et=ja&&ja[0]}Si==="application/xhtml+xml"&&xt===bt&&(_e=''+_e+"");const jn=y?y.createHTML(_e):_e;if(xt===bt)try{ct=new h().parseFromString(jn,Si)}catch{}if(!ct||!ct.documentElement){ct=x.createDocument(xt,"template",null);try{ct.documentElement.innerHTML=si?S:jn}catch{}}const ko=ct.body||ct.documentElement;return _e&&Et&&ko.insertBefore(s.createTextNode(Et),ko.childNodes[0]||null),xt===bt?I.call(ct,Je?"html":"body")[0]:Je?ct.documentElement:ko},Kg=function(_e){return k.call(_e.ownerDocument||_e,_e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT,null,!1)},MO=function(_e){return _e instanceof u&&(typeof _e.nodeName!="string"||typeof _e.textContent!="string"||typeof _e.removeChild!="function"||!(_e.attributes instanceof d)||typeof _e.removeAttribute!="function"||typeof _e.setAttribute!="function"||typeof _e.namespaceURI!="string"||typeof _e.insertBefore!="function"||typeof _e.hasChildNodes!="function")},hb=function(_e){return typeof a=="object"?_e instanceof a:_e&&typeof _e=="object"&&typeof _e.nodeType=="number"&&typeof _e.nodeName=="string"},hd=function(_e,ct,Et){P[_e]&&qRe(P[_e],jn=>{jn.call(e,ct,Et,Cs)})},gI=function(_e){let ct;if(hd("beforeSanitizeElements",_e,null),MO(_e))return yc(_e),!0;const Et=Ei(_e.nodeName);if(hd("uponSanitizeElement",_e,{tagName:Et,allowedTags:De}),_e.hasChildNodes()&&!hb(_e.firstElementChild)&&(!hb(_e.content)||!hb(_e.content.firstElementChild))&&Wl(/<[/\w]/g,_e.innerHTML)&&Wl(/<[/\w]/g,_e.textContent))return yc(_e),!0;if(!De[Et]||Zt[Et]){if(!Zt[Et]&&mI(Et)&&(Me.tagNameCheck instanceof RegExp&&Wl(Me.tagNameCheck,Et)||Me.tagNameCheck instanceof Function&&Me.tagNameCheck(Et)))return!1;if(re&&!B[Et]){const jn=w(_e)||_e.parentNode,ko=b(_e)||_e.childNodes;if(ko&&jn){const ja=ko.length;for(let ls=ja-1;ls>=0;--ls)jn.insertBefore(p(ko[ls],!0),_(_e))}}return yc(_e),!0}return _e instanceof l&&!ry(_e)||(Et==="noscript"||Et==="noembed"||Et==="noframes")&&Wl(/<\/no(script|embed|frames)/i,_e.innerHTML)?(yc(_e),!0):(mt&&_e.nodeType===3&&(ct=_e.textContent,ct=_d(ct,O," "),ct=_d(ct,M," "),ct=_d(ct,z," "),_e.textContent!==ct&&(Ey(e.removed,{element:_e.cloneNode()}),_e.textContent=ct)),hd("afterSanitizeElements",_e,null),!1)},pI=function(_e,ct,Et){if(Oe&&(ct==="id"||ct==="name")&&(Et in s||Et in wu))return!1;if(!(Se&&!Oi[ct]&&Wl(K,ct))){if(!(ni&&Wl(ae,ct))){if(!We[ct]||Oi[ct]){if(!(mI(_e)&&(Me.tagNameCheck instanceof RegExp&&Wl(Me.tagNameCheck,_e)||Me.tagNameCheck instanceof Function&&Me.tagNameCheck(_e))&&(Me.attributeNameCheck instanceof RegExp&&Wl(Me.attributeNameCheck,ct)||Me.attributeNameCheck instanceof Function&&Me.attributeNameCheck(ct))||ct==="is"&&Me.allowCustomizedBuiltInElements&&(Me.tagNameCheck instanceof RegExp&&Wl(Me.tagNameCheck,Et)||Me.tagNameCheck instanceof Function&&Me.tagNameCheck(Et))))return!1}else if(!ge[ct]){if(!Wl(me,_d(Et,he,""))){if(!((ct==="src"||ct==="xlink:href"||ct==="href")&&_e!=="script"&&ZRe(Et,"data:")===0&&Y[_e])){if(!(Qe&&!Wl(se,_d(Et,he,"")))){if(Et)return!1}}}}}}return!0},mI=function(_e){return _e.indexOf("-")>0},_I=function(_e){let ct,Et,jn,ko;hd("beforeSanitizeAttributes",_e,null);const{attributes:ja}=_e;if(!ja)return;const ls={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:We};for(ko=ja.length;ko--;){ct=ja[ko];const{name:Sc,namespaceURI:qg}=ct;if(Et=Sc==="value"?ct.value:YRe(ct.value),jn=Ei(Sc),ls.attrName=jn,ls.attrValue=Et,ls.keepAttr=!0,ls.forceKeepAttr=void 0,hd("uponSanitizeAttribute",_e,ls),Et=ls.attrValue,ls.forceKeepAttr||(Yh(Sc,_e),!ls.keepAttr))continue;if(!nt&&Wl(/\/>/i,Et)){Yh(Sc,_e);continue}mt&&(Et=_d(Et,O," "),Et=_d(Et,M," "),Et=_d(Et,z," "));const vI=Ei(_e.nodeName);if(pI(vI,jn,Et)){if(et&&(jn==="id"||jn==="name")&&(Yh(Sc,_e),Et=vt+Et),y&&typeof f=="object"&&typeof f.getAttributeType=="function"&&!qg)switch(f.getAttributeType(vI,jn)){case"TrustedHTML":{Et=y.createHTML(Et);break}case"TrustedScriptURL":{Et=y.createScriptURL(Et);break}}try{qg?_e.setAttributeNS(qg,Sc,Et):_e.setAttribute(Sc,Et),fY(e.removed)}catch{}}}hd("afterSanitizeAttributes",_e,null)},PO=function Gt(_e){let ct;const Et=Kg(_e);for(hd("beforeSanitizeShadowDOM",_e,null);ct=Et.nextNode();)hd("uponSanitizeShadowNode",ct,null),!gI(ct)&&(ct.content instanceof o&&Gt(ct.content),_I(ct));hd("afterSanitizeShadowDOM",_e,null)};return e.sanitize=function(Gt){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ct,Et,jn,ko;if(si=!Gt,si&&(Gt=""),typeof Gt!="string"&&!hb(Gt))if(typeof Gt.toString=="function"){if(Gt=Gt.toString(),typeof Gt!="string")throw Ty("dirty is not a string, aborting")}else throw Ty("toString is not a function");if(!e.isSupported)return Gt;if(Ii||Nl(_e),e.removed=[],typeof Gt=="string"&&(Q=!1),Q){if(Gt.nodeName){const Sc=Ei(Gt.nodeName);if(!De[Sc]||Zt[Sc])throw Ty("root node is forbidden and cannot be sanitized in-place")}}else if(Gt instanceof a)ct=k_(""),Et=ct.ownerDocument.importNode(Gt,!0),Et.nodeType===1&&Et.nodeName==="BODY"||Et.nodeName==="HTML"?ct=Et:ct.appendChild(Et);else{if(!ie&&!mt&&!Je&&Gt.indexOf("<")===-1)return y&&ze?y.createHTML(Gt):Gt;if(ct=k_(Gt),!ct)return ie?null:ze?S:""}ct&&J&&yc(ct.firstChild);const ja=Kg(Q?Gt:ct);for(;jn=ja.nextNode();)gI(jn)||(jn.content instanceof o&&PO(jn.content),_I(jn));if(Q)return Gt;if(ie){if(ye)for(ko=D.call(ct.ownerDocument);ct.firstChild;)ko.appendChild(ct.firstChild);else ko=ct;return(We.shadowroot||We.shadowrootmode)&&(ko=N.call(t,ko,!0)),ko}let ls=Je?ct.outerHTML:ct.innerHTML;return Je&&De["!doctype"]&&ct.ownerDocument&&ct.ownerDocument.doctype&&ct.ownerDocument.doctype.name&&Wl(Rae,ct.ownerDocument.doctype.name)&&(ls=" `+ls),mt&&(ls=_d(ls,O," "),ls=_d(ls,M," "),ls=_d(ls,z," ")),y&&ze?y.createHTML(ls):ls},e.setConfig=function(Gt){Nl(Gt),Ii=!0},e.clearConfig=function(){Cs=null,Ii=!1},e.isValidAttribute=function(Gt,_e,ct){Cs||Nl({});const Et=Ei(Gt),jn=Ei(_e);return pI(Et,jn,ct)},e.addHook=function(Gt,_e){typeof _e=="function"&&(P[Gt]=P[Gt]||[],Ey(P[Gt],_e))},e.removeHook=function(Gt){if(P[Gt])return fY(P[Gt])},e.removeHooks=function(Gt){P[Gt]&&(P[Gt]=[])},e.removeAllHooks=function(){P={}},e}var Hh=Mae();Hh.version;Hh.isSupported;const Pae=Hh.sanitize;Hh.setConfig;Hh.clearConfig;Hh.isValidAttribute;const Oae=Hh.addHook,Fae=Hh.removeHook;Hh.removeHooks;Hh.removeAllHooks;var Tt;(function(n){n.inMemory="inmemory",n.vscode="vscode",n.internal="private",n.walkThrough="walkThrough",n.walkThroughSnippet="walkThroughSnippet",n.http="http",n.https="https",n.file="file",n.mailto="mailto",n.untitled="untitled",n.data="data",n.command="command",n.vscodeRemote="vscode-remote",n.vscodeRemoteResource="vscode-remote-resource",n.vscodeManagedRemoteResource="vscode-managed-remote-resource",n.vscodeUserData="vscode-userdata",n.vscodeCustomEditor="vscode-custom-editor",n.vscodeNotebookCell="vscode-notebook-cell",n.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",n.vscodeNotebookCellOutput="vscode-notebook-cell-output",n.vscodeInteractiveInput="vscode-interactive-input",n.vscodeSettings="vscode-settings",n.vscodeWorkspaceTrust="vscode-workspace-trust",n.vscodeTerminal="vscode-terminal",n.vscodeChatCodeBlock="vscode-chat-code-block",n.vscodeCopilotBackingChatCodeBlock="vscode-copilot-chat-code-block",n.vscodeChatCodeCompareBlock="vscode-chat-code-compare-block",n.vscodeChatSesssion="vscode-chat-editor",n.webviewPanel="webview-panel",n.vscodeWebview="vscode-webview",n.extension="extension",n.vscodeFileResource="vscode-file",n.tmp="tmp",n.vsls="vsls",n.vscodeSourceControl="vscode-scm",n.commentsInput="comment",n.codeSetting="code-setting"})(Tt||(Tt={}));function ez(n,e){return pt.isUri(n)?f1(n.scheme,e):jV(n,e+":")}function oB(n,...e){return e.some(t=>ez(n,t))}const cMe="tkn";class dMe{constructor(){this._hosts=Object.create(null),this._ports=Object.create(null),this._connectionTokens=Object.create(null),this._preferredWebSchema="http",this._delegate=null,this._serverRootPath="/"}setPreferredWebSchema(e){this._preferredWebSchema=e}get _remoteResourcesPath(){return ks.join(this._serverRootPath,Tt.vscodeRemoteResource)}rewrite(e){if(this._delegate)try{return this._delegate(e)}catch(a){return Mt(a),e}const t=e.authority;let i=this._hosts[t];i&&i.indexOf(":")!==-1&&i.indexOf("[")===-1&&(i=`[${i}]`);const s=this._ports[t],o=this._connectionTokens[t];let r=`path=${encodeURIComponent(e.path)}`;return typeof o=="string"&&(r+=`&${cMe}=${encodeURIComponent(o)}`),pt.from({scheme:u_?this._preferredWebSchema:Tt.vscodeRemoteResource,authority:`${i}:${s}`,path:this._remoteResourcesPath,query:r})}}const Bae=new dMe,uMe="vscode-app";class uL{uriToBrowserUri(e){return e.scheme===Tt.vscodeRemote?Bae.rewrite(e):e.scheme===Tt.file&&(Lh||C2e===`${Tt.vscodeFileResource}://${uL.FALLBACK_AUTHORITY}`)?e.with({scheme:Tt.vscodeFileResource,authority:e.authority||uL.FALLBACK_AUTHORITY,query:null,fragment:null}):e}}uL.FALLBACK_AUTHORITY=uMe;const Wae=new uL;var bY;(function(n){const e=new Map([["1",{"Cross-Origin-Opener-Policy":"same-origin"}],["2",{"Cross-Origin-Embedder-Policy":"require-corp"}],["3",{"Cross-Origin-Opener-Policy":"same-origin","Cross-Origin-Embedder-Policy":"require-corp"}]]);n.CoopAndCoep=Object.freeze(e.get("3"));const t="vscode-coi";function i(o){let r;typeof o=="string"?r=new URL(o).searchParams:o instanceof URL?r=o.searchParams:pt.isUri(o)&&(r=new URL(o.toString(!0)).searchParams);const a=r==null?void 0:r.get(t);if(a)return e.get(a)}n.getHeadersFromQuery=i;function s(o,r,a){if(!globalThis.crossOriginIsolated)return;const l=r&&a?"3":a?"2":"1";o instanceof URLSearchParams?o.set(t,l):o[t]=l}n.addSearchParam=s})(bY||(bY={}));function aM(n){return lM(n,0)}function lM(n,e){switch(typeof n){case"object":return n===null?Gf(349,e):Array.isArray(n)?fMe(n,e):gMe(n,e);case"string":return tz(n,e);case"boolean":return hMe(n,e);case"number":return Gf(n,e);case"undefined":return Gf(937,e);default:return Gf(617,e)}}function Gf(n,e){return(e<<5)-e+n|0}function hMe(n,e){return Gf(n?433:863,e)}function tz(n,e){e=Gf(149417,e);for(let t=0,i=n.length;tlM(i,t),e)}function gMe(n,e){return e=Gf(181387,e),Object.keys(n).sort().reduce((t,i)=>(t=tz(i,t),lM(n[i],t)),e)}function NF(n,e,t=32){const i=t-e,s=~((1<>>i)>>>0}function CY(n,e=0,t=n.byteLength,i=0){for(let s=0;st.toString(16).padStart(2,"0")).join(""):pMe((n>>>0).toString(16),e/4)}class cM{constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(e){const t=e.length;if(t===0)return;const i=this._buff;let s=this._buffLen,o=this._leftoverHighSurrogate,r,a;for(o!==0?(r=o,a=-1,o=0):(r=e.charCodeAt(0),a=0);;){let l=r;if(Gs(r))if(a+1>>6,e[t++]=128|(i&63)>>>0):i<65536?(e[t++]=224|(i&61440)>>>12,e[t++]=128|(i&4032)>>>6,e[t++]=128|(i&63)>>>0):(e[t++]=240|(i&1835008)>>>18,e[t++]=128|(i&258048)>>>12,e[t++]=128|(i&4032)>>>6,e[t++]=128|(i&63)>>>0),t>=64&&(this._step(),t-=64,this._totalLen+=64,e[0]=e[64],e[1]=e[65],e[2]=e[66]),t}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),Ny(this._h0)+Ny(this._h1)+Ny(this._h2)+Ny(this._h3)+Ny(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,CY(this._buff,this._buffLen),this._buffLen>56&&(this._step(),CY(this._buff));const e=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(e/4294967296),!1),this._buffDV.setUint32(60,e%4294967296,!1),this._step()}_step(){const e=cM._bigBlock32,t=this._buffDV;for(let u=0;u<64;u+=4)e.setUint32(u,t.getUint32(u,!1),!1);for(let u=64;u<320;u+=4)e.setUint32(u,NF(e.getUint32(u-12,!1)^e.getUint32(u-32,!1)^e.getUint32(u-56,!1)^e.getUint32(u-64,!1),1),!1);let i=this._h0,s=this._h1,o=this._h2,r=this._h3,a=this._h4,l,c,d;for(let u=0;u<80;u++)u<20?(l=s&o|~s&r,c=1518500249):u<40?(l=s^o^r,c=1859775393):u<60?(l=s&o|s&r|o&r,c=2400959708):(l=s^o^r,c=3395469782),d=NF(i,5)+l+a+c+e.getUint32(u*4,!1)&4294967295,a=r,r=o,o=NF(s,30),s=i,i=d;this._h0=this._h0+i&4294967295,this._h1=this._h1+s&4294967295,this._h2=this._h2+o&4294967295,this._h3=this._h3+r&4294967295,this._h4=this._h4+a&4294967295}}cM._bigBlock32=new DataView(new ArrayBuffer(320));const{getWindow:gt,getWindows:Hae,getWindowsCount:mMe,getWindowId:F2,getWindowById:wY,onDidRegisterWindow:dM,onWillUnregisterWindow:_Me,onDidUnregisterWindow:vMe}=function(){const n=new Map;lRe(Ji,1);const e={window:Ji,disposables:new be};n.set(Ji.vscodeWindowId,e);const t=new X,i=new X,s=new X;function o(r,a){const l=typeof r=="number"?n.get(r):void 0;return l??(a?e:void 0)}return{onDidRegisterWindow:t.event,onWillUnregisterWindow:s.event,onDidUnregisterWindow:i.event,registerWindow(r){if(n.has(r.vscodeWindowId))return ne.None;const a=new be,l={window:r,disposables:a.add(new be)};return n.set(r.vscodeWindowId,l),a.add(dt(()=>{n.delete(r.vscodeWindowId),i.fire(r)})),a.add(ce(r,Le.BEFORE_UNLOAD,()=>{s.fire(r)})),t.fire(l),a},getWindows(){return n.values()},getWindowsCount(){return n.size},getWindowId(r){return r.vscodeWindowId},hasWindow(r){return n.has(r)},getWindowById:o,getWindow(r){var a;const l=r;if(!((a=l==null?void 0:l.ownerDocument)===null||a===void 0)&&a.defaultView)return l.ownerDocument.defaultView.window;const c=r;return c!=null&&c.view?c.view.window:Ji},getDocument(r){return gt(r).document}}}();function wo(n){for(;n.firstChild;)n.firstChild.remove()}class bMe{constructor(e,t,i,s){this._node=e,this._type=t,this._handler=i,this._options=s||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}}function ce(n,e,t,i){return new bMe(n,e,t,i)}function Vae(n,e){return function(t){return e(new Kc(n,t))}}function CMe(n){return function(e){return n(new ln(e))}}const rs=function(e,t,i,s){let o=i;return t==="click"||t==="mousedown"||t==="contextmenu"?o=Vae(gt(e),i):(t==="keydown"||t==="keypress"||t==="keyup")&&(o=CMe(i)),ce(e,t,o,s)},wMe=function(e,t,i){const s=Vae(gt(e),t);return yMe(e,s,i)};function yMe(n,e,t){return ce(n,iu&&XV.pointerEvents?Le.POINTER_DOWN:Le.MOUSE_DOWN,e,t)}function _S(n,e,t){return rx(n,e,t)}class AF extends Tae{constructor(e,t){super(e,t)}}let B2,Oa;class iz extends JV{constructor(e){super(),this.defaultTarget=e&>(e)}cancelAndSet(e,t,i){return super.cancelAndSet(e,t,i??this.defaultTarget)}}class RF{constructor(e,t=0){this._runner=e,this.priority=t,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(e){Mt(e)}}static sort(e,t){return t.priority-e.priority}}(function(){const n=new Map,e=new Map,t=new Map,i=new Map,s=o=>{var r;t.set(o,!1);const a=(r=n.get(o))!==null&&r!==void 0?r:[];for(e.set(o,a),n.set(o,[]),i.set(o,!0);a.length>0;)a.sort(RF.sort),a.shift().execute();i.set(o,!1)};Oa=(o,r,a=0)=>{const l=F2(o),c=new RF(r,a);let d=n.get(l);return d||(d=[],n.set(l,d)),d.push(c),t.get(l)||(t.set(l,!0),o.requestAnimationFrame(()=>s(l))),c},B2=(o,r,a)=>{const l=F2(o);if(i.get(l)){const c=new RF(r,a);let d=e.get(l);return d||(d=[],e.set(l,d)),d.push(c),c}else return Oa(o,r,a)}})();function uM(n){return gt(n).getComputedStyle(n,null)}function Fm(n,e){const t=gt(n),i=t.document;if(n!==i.body)return new yi(n.clientWidth,n.clientHeight);if(iu&&(t!=null&&t.visualViewport))return new yi(t.visualViewport.width,t.visualViewport.height);if(t!=null&&t.innerWidth&&t.innerHeight)return new yi(t.innerWidth,t.innerHeight);if(i.body&&i.body.clientWidth&&i.body.clientHeight)return new yi(i.body.clientWidth,i.body.clientHeight);if(i.documentElement&&i.documentElement.clientWidth&&i.documentElement.clientHeight)return new yi(i.documentElement.clientWidth,i.documentElement.clientHeight);throw new Error("Unable to figure out browser width and height")}class ds{static convertToPixels(e,t){return parseFloat(t)||0}static getDimension(e,t,i){const s=uM(e),o=s?s.getPropertyValue(t):"0";return ds.convertToPixels(e,o)}static getBorderLeftWidth(e){return ds.getDimension(e,"border-left-width","borderLeftWidth")}static getBorderRightWidth(e){return ds.getDimension(e,"border-right-width","borderRightWidth")}static getBorderTopWidth(e){return ds.getDimension(e,"border-top-width","borderTopWidth")}static getBorderBottomWidth(e){return ds.getDimension(e,"border-bottom-width","borderBottomWidth")}static getPaddingLeft(e){return ds.getDimension(e,"padding-left","paddingLeft")}static getPaddingRight(e){return ds.getDimension(e,"padding-right","paddingRight")}static getPaddingTop(e){return ds.getDimension(e,"padding-top","paddingTop")}static getPaddingBottom(e){return ds.getDimension(e,"padding-bottom","paddingBottom")}static getMarginLeft(e){return ds.getDimension(e,"margin-left","marginLeft")}static getMarginTop(e){return ds.getDimension(e,"margin-top","marginTop")}static getMarginRight(e){return ds.getDimension(e,"margin-right","marginRight")}static getMarginBottom(e){return ds.getDimension(e,"margin-bottom","marginBottom")}}class yi{constructor(e,t){this.width=e,this.height=t}with(e=this.width,t=this.height){return e!==this.width||t!==this.height?new yi(e,t):this}static is(e){return typeof e=="object"&&typeof e.height=="number"&&typeof e.width=="number"}static lift(e){return e instanceof yi?e:new yi(e.width,e.height)}static equals(e,t){return e===t?!0:!e||!t?!1:e.width===t.width&&e.height===t.height}}yi.None=new yi(0,0);function zae(n){let e=n.offsetParent,t=n.offsetTop,i=n.offsetLeft;for(;(n=n.parentNode)!==null&&n!==n.ownerDocument.body&&n!==n.ownerDocument.documentElement;){t-=n.scrollTop;const s=Uae(n)?null:uM(n);s&&(i-=s.direction!=="rtl"?n.scrollLeft:-n.scrollLeft),n===e&&(i+=ds.getBorderLeftWidth(n),t+=ds.getBorderTopWidth(n),t+=n.offsetTop,i+=n.offsetLeft,e=n.offsetParent)}return{left:i,top:t}}function SMe(n,e,t){typeof e=="number"&&(n.style.width=`${e}px`),typeof t=="number"&&(n.style.height=`${t}px`)}function bs(n){const e=n.getBoundingClientRect(),t=gt(n);return{left:e.left+t.scrollX,top:e.top+t.scrollY,width:e.width,height:e.height}}function $ae(n){let e=n,t=1;do{const i=uM(e).zoom;i!=null&&i!=="1"&&(t*=i),e=e.parentElement}while(e!==null&&e!==e.ownerDocument.documentElement);return t}function Sa(n){const e=ds.getMarginLeft(n)+ds.getMarginRight(n);return n.offsetWidth+e}function MF(n){const e=ds.getBorderLeftWidth(n)+ds.getBorderRightWidth(n),t=ds.getPaddingLeft(n)+ds.getPaddingRight(n);return n.offsetWidth-e-t}function xMe(n){const e=ds.getBorderTopWidth(n)+ds.getBorderBottomWidth(n),t=ds.getPaddingTop(n)+ds.getPaddingBottom(n);return n.offsetHeight-e-t}function Zf(n){const e=ds.getMarginTop(n)+ds.getMarginBottom(n);return n.offsetHeight+e}function Zs(n,e){return!!(e!=null&&e.contains(n))}function LMe(n,e,t){for(;n&&n.nodeType===n.ELEMENT_NODE;){if(n.classList.contains(e))return n;if(t){if(typeof t=="string"){if(n.classList.contains(t))return null}else if(n===t)return null}n=n.parentNode}return null}function PF(n,e,t){return!!LMe(n,e,t)}function Uae(n){return n&&!!n.host&&!!n.mode}function W2(n){return!!h0(n)}function h0(n){for(var e;n.parentNode;){if(n===((e=n.ownerDocument)===null||e===void 0?void 0:e.body))return null;n=n.parentNode}return Uae(n)?n:null}function Ao(){let n=Rw().activeElement;for(;n!=null&&n.shadowRoot;)n=n.shadowRoot.activeElement;return n}function hM(n){return Ao()===n}function jae(n){return Zs(Ao(),n)}function Rw(){var n;return mMe()<=1?Ji.document:(n=Array.from(Hae()).map(({window:t})=>t.document).find(t=>t.hasFocus()))!==null&&n!==void 0?n:Ji.document}function uN(){var n,e;return(e=(n=Rw().defaultView)===null||n===void 0?void 0:n.window)!==null&&e!==void 0?e:Ji}const nz=new Map;function Kae(){return new kMe}class kMe{constructor(){this._currentCssStyle="",this._styleSheet=void 0}setStyle(e){e!==this._currentCssStyle&&(this._currentCssStyle=e,this._styleSheet?this._styleSheet.innerText=e:this._styleSheet=yl(Ji.document.head,t=>t.innerText=e))}dispose(){this._styleSheet&&(this._styleSheet.remove(),this._styleSheet=void 0)}}function yl(n=Ji.document.head,e,t){const i=document.createElement("style");if(i.type="text/css",i.media="screen",e==null||e(i),n.appendChild(i),t&&t.add(dt(()=>n.removeChild(i))),n===Ji.document.head){const s=new Set;nz.set(i,s);for(const{window:o,disposables:r}of Hae()){if(o===Ji)continue;const a=r.add(DMe(i,s,o));t==null||t.add(a)}}return i}function DMe(n,e,t){var i,s;const o=new be,r=n.cloneNode(!0);t.document.head.appendChild(r),o.add(dt(()=>t.document.head.removeChild(r)));for(const a of Gae(n))(i=r.sheet)===null||i===void 0||i.insertRule(a.cssText,(s=r.sheet)===null||s===void 0?void 0:s.cssRules.length);return o.add(IMe.observe(n,o,{childList:!0})(()=>{r.textContent=n.textContent})),e.add(r),o.add(dt(()=>e.delete(r))),o}const IMe=new class{constructor(){this.mutationObservers=new Map}observe(n,e,t){let i=this.mutationObservers.get(n);i||(i=new Map,this.mutationObservers.set(n,i));const s=aM(t);let o=i.get(s);if(o)o.users+=1;else{const r=new X,a=new MutationObserver(c=>r.fire(c));a.observe(n,t);const l=o={users:1,observer:a,onDidMutate:r.event};e.add(dt(()=>{l.users-=1,l.users===0&&(r.dispose(),a.disconnect(),i==null||i.delete(s),(i==null?void 0:i.size)===0&&this.mutationObservers.delete(n))})),i.set(s,o)}return o.onDidMutate}};let OF=null;function qae(){return OF||(OF=yl()),OF}function Gae(n){var e,t;return!((e=n==null?void 0:n.sheet)===null||e===void 0)&&e.rules?n.sheet.rules:!((t=n==null?void 0:n.sheet)===null||t===void 0)&&t.cssRules?n.sheet.cssRules:[]}function H2(n,e,t=qae()){var i,s;if(!(!t||!e)){(i=t.sheet)===null||i===void 0||i.insertRule(`${n} {${e}}`,0);for(const o of(s=nz.get(t))!==null&&s!==void 0?s:[])H2(n,e,o)}}function rB(n,e=qae()){var t,i;if(!e)return;const s=Gae(e),o=[];for(let r=0;r=0;r--)(t=e.sheet)===null||t===void 0||t.deleteRule(o[r]);for(const r of(i=nz.get(e))!==null&&i!==void 0?i:[])rB(n,r)}function EMe(n){return typeof n.selectorText=="string"}function co(n){return n instanceof HTMLElement||n instanceof gt(n).HTMLElement}function yY(n){return n instanceof HTMLAnchorElement||n instanceof gt(n).HTMLAnchorElement}function sz(n){return n instanceof MouseEvent||n instanceof gt(n).MouseEvent}function Np(n){return n instanceof KeyboardEvent||n instanceof gt(n).KeyboardEvent}const Le={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",POINTER_LEAVE:"pointerleave",CONTEXT_MENU:"contextmenu",KEY_DOWN:"keydown",KEY_UP:"keyup",BEFORE_UNLOAD:"beforeunload",CHANGE:"change",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend"};function TMe(n){const e=n;return!!(e&&typeof e.preventDefault=="function"&&typeof e.stopPropagation=="function")}const ii={stop:(n,e)=>(n.preventDefault(),e&&n.stopPropagation(),n)};function NMe(n){const e=[];for(let t=0;n&&n.nodeType===n.ELEMENT_NODE;t++)e[t]=n.scrollTop,n=n.parentNode;return e}function AMe(n,e){for(let t=0;n&&n.nodeType===n.ELEMENT_NODE;t++)n.scrollTop!==e[t]&&(n.scrollTop=e[t]),n=n.parentNode}class V2 extends ne{static hasFocusWithin(e){if(co(e)){const t=h0(e),i=t?t.activeElement:e.ownerDocument.activeElement;return Zs(i,e)}else{const t=e;return Zs(t.document.activeElement,t.document)}}constructor(e){super(),this._onDidFocus=this._register(new X),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new X),this.onDidBlur=this._onDidBlur.event;let t=V2.hasFocusWithin(e),i=!1;const s=()=>{i=!1,t||(t=!0,this._onDidFocus.fire())},o=()=>{t&&(i=!0,(co(e)?gt(e):e).setTimeout(()=>{i&&(i=!1,t=!1,this._onDidBlur.fire())},0))};this._refreshStateHandler=()=>{V2.hasFocusWithin(e)!==t&&(t?o():s())},this._register(ce(e,Le.FOCUS,s,!0)),this._register(ce(e,Le.BLUR,o,!0)),co(e)&&(this._register(ce(e,Le.FOCUS_IN,()=>this._refreshStateHandler())),this._register(ce(e,Le.FOCUS_OUT,()=>this._refreshStateHandler())))}}function ou(n){return new V2(n)}function RMe(n,e){return n.after(e),e}function we(n,...e){if(n.append(...e),e.length===1&&typeof e[0]!="string")return e[0]}function oz(n,e){return n.insertBefore(e,n.firstChild),e}function yo(n,...e){n.innerText="",we(n,...e)}const MMe=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;var hL;(function(n){n.HTML="http://www.w3.org/1999/xhtml",n.SVG="http://www.w3.org/2000/svg"})(hL||(hL={}));function Zae(n,e,t,...i){const s=MMe.exec(e);if(!s)throw new Error("Bad use of emmet");const o=s[1]||"div";let r;return n!==hL.HTML?r=document.createElementNS(n,o):r=document.createElement(o),s[3]&&(r.id=s[3]),s[4]&&(r.className=s[4].replace(/\./g," ").trim()),t&&Object.entries(t).forEach(([a,l])=>{typeof l>"u"||(/^on\w+$/.test(a)?r[a]=l:a==="selected"?l&&r.setAttribute(a,"true"):r.setAttribute(a,l))}),r.append(...i),r}function ke(n,e,...t){return Zae(hL.HTML,n,e,...t)}ke.SVG=function(n,e,...t){return Zae(hL.SVG,n,e,...t)};function PMe(n,...e){n?ka(...e):Lr(...e)}function ka(...n){for(const e of n)e.style.display="",e.removeAttribute("aria-hidden")}function Lr(...n){for(const e of n)e.style.display="none",e.setAttribute("aria-hidden","true")}function SY(n,e){const t=n.devicePixelRatio*e;return Math.max(1,Math.floor(t))/n.devicePixelRatio}function Yae(n){Ji.open(n,"_blank","noopener")}function OMe(n,e){const t=()=>{e(),i=Oa(n,t)};let i=Oa(n,t);return dt(()=>i.dispose())}Bae.setPreferredWebSchema(/^https:/.test(Ji.location.href)?"https":"http");function Ig(n){return n?`url('${Wae.uriToBrowserUri(n).toString(!0).replace(/'/g,"%27")}')`:"url('')"}function FF(n){return`'${n.replace(/'/g,"%27")}'`}function mg(n,e){if(n!==void 0){const t=n.match(/^\s*var\((.+)\)$/);if(t){const i=t[1].split(",",2);return i.length===2&&(e=mg(i[1].trim(),e)),`var(${i[0]}, ${e})`}return n}return e}function FMe(n,e=!1){const t=document.createElement("a");return Oae("afterSanitizeAttributes",i=>{for(const s of["href","src"])if(i.hasAttribute(s)){const o=i.getAttribute(s);if(s==="href"&&o.startsWith("#"))continue;if(t.href=o,!n.includes(t.protocol.replace(/:$/,""))){if(e&&s==="src"&&t.href.startsWith("data:"))continue;i.removeAttribute(s)}}}),dt(()=>{Fae("afterSanitizeAttributes")})}const BMe=Object.freeze(["a","abbr","b","bdo","blockquote","br","caption","cite","code","col","colgroup","dd","del","details","dfn","div","dl","dt","em","figcaption","figure","h1","h2","h3","h4","h5","h6","hr","i","img","input","ins","kbd","label","li","mark","ol","p","pre","q","rp","rt","ruby","samp","small","small","source","span","strike","strong","sub","summary","sup","table","tbody","td","tfoot","th","thead","time","tr","tt","u","ul","var","video","wbr"]);class Yf extends X{constructor(){super(),this._subscriptions=new be,this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1},this._subscriptions.add(Ae.runAndSubscribe(dM,({window:e,disposables:t})=>this.registerListeners(e,t),{window:Ji,disposables:this._subscriptions}))}registerListeners(e,t){t.add(ce(e,"keydown",i=>{if(i.defaultPrevented)return;const s=new ln(i);if(!(s.keyCode===6&&i.repeat)){if(i.altKey&&!this._keyStatus.altKey)this._keyStatus.lastKeyPressed="alt";else if(i.ctrlKey&&!this._keyStatus.ctrlKey)this._keyStatus.lastKeyPressed="ctrl";else if(i.metaKey&&!this._keyStatus.metaKey)this._keyStatus.lastKeyPressed="meta";else if(i.shiftKey&&!this._keyStatus.shiftKey)this._keyStatus.lastKeyPressed="shift";else if(s.keyCode!==6)this._keyStatus.lastKeyPressed=void 0;else return;this._keyStatus.altKey=i.altKey,this._keyStatus.ctrlKey=i.ctrlKey,this._keyStatus.metaKey=i.metaKey,this._keyStatus.shiftKey=i.shiftKey,this._keyStatus.lastKeyPressed&&(this._keyStatus.event=i,this.fire(this._keyStatus))}},!0)),t.add(ce(e,"keyup",i=>{i.defaultPrevented||(!i.altKey&&this._keyStatus.altKey?this._keyStatus.lastKeyReleased="alt":!i.ctrlKey&&this._keyStatus.ctrlKey?this._keyStatus.lastKeyReleased="ctrl":!i.metaKey&&this._keyStatus.metaKey?this._keyStatus.lastKeyReleased="meta":!i.shiftKey&&this._keyStatus.shiftKey?this._keyStatus.lastKeyReleased="shift":this._keyStatus.lastKeyReleased=void 0,this._keyStatus.lastKeyPressed!==this._keyStatus.lastKeyReleased&&(this._keyStatus.lastKeyPressed=void 0),this._keyStatus.altKey=i.altKey,this._keyStatus.ctrlKey=i.ctrlKey,this._keyStatus.metaKey=i.metaKey,this._keyStatus.shiftKey=i.shiftKey,this._keyStatus.lastKeyReleased&&(this._keyStatus.event=i,this.fire(this._keyStatus)))},!0)),t.add(ce(e.document.body,"mousedown",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),t.add(ce(e.document.body,"mouseup",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),t.add(ce(e.document.body,"mousemove",i=>{i.buttons&&(this._keyStatus.lastKeyPressed=void 0)},!0)),t.add(ce(e,"blur",()=>{this.resetKeyStatus()}))}get keyStatus(){return this._keyStatus}resetKeyStatus(){this.doResetKeyStatus(),this.fire(this._keyStatus)}doResetKeyStatus(){this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1}}static getInstance(){return Yf.instance||(Yf.instance=new Yf),Yf.instance}dispose(){super.dispose(),this._subscriptions.dispose()}}class WMe extends ne{constructor(e,t){super(),this.element=e,this.callbacks=t,this.counter=0,this.dragStartTime=0,this.registerListeners()}registerListeners(){this.callbacks.onDragStart&&this._register(ce(this.element,Le.DRAG_START,e=>{var t,i;(i=(t=this.callbacks).onDragStart)===null||i===void 0||i.call(t,e)})),this.callbacks.onDrag&&this._register(ce(this.element,Le.DRAG,e=>{var t,i;(i=(t=this.callbacks).onDrag)===null||i===void 0||i.call(t,e)})),this._register(ce(this.element,Le.DRAG_ENTER,e=>{var t,i;this.counter++,this.dragStartTime=e.timeStamp,(i=(t=this.callbacks).onDragEnter)===null||i===void 0||i.call(t,e)})),this._register(ce(this.element,Le.DRAG_OVER,e=>{var t,i;e.preventDefault(),(i=(t=this.callbacks).onDragOver)===null||i===void 0||i.call(t,e,e.timeStamp-this.dragStartTime)})),this._register(ce(this.element,Le.DRAG_LEAVE,e=>{var t,i;this.counter--,this.counter===0&&(this.dragStartTime=0,(i=(t=this.callbacks).onDragLeave)===null||i===void 0||i.call(t,e))})),this._register(ce(this.element,Le.DRAG_END,e=>{var t,i;this.counter=0,this.dragStartTime=0,(i=(t=this.callbacks).onDragEnd)===null||i===void 0||i.call(t,e)})),this._register(ce(this.element,Le.DROP,e=>{var t,i;this.counter=0,this.dragStartTime=0,(i=(t=this.callbacks).onDrop)===null||i===void 0||i.call(t,e)}))}}const HMe=/(?[\w\-]+)?(?:#(?[\w\-]+))?(?(?:\.(?:[\w\-]+))*)(?:@(?(?:[\w\_])+))?/;function wi(n,...e){let t,i;Array.isArray(e[0])?(t={},i=e[0]):(t=e[0]||{},i=e[1]);const s=HMe.exec(n);if(!s||!s.groups)throw new Error("Bad use of h");const o=s.groups.tag||"div",r=document.createElement(o);s.groups.id&&(r.id=s.groups.id);const a=[];if(s.groups.class)for(const c of s.groups.class.split("."))c!==""&&a.push(c);if(t.className!==void 0)for(const c of t.className.split("."))c!==""&&a.push(c);a.length>0&&(r.className=a.join(" "));const l={};if(s.groups.name&&(l[s.groups.name]=r),i)for(const c of i)co(c)?r.appendChild(c):typeof c=="string"?r.append(c):"root"in c&&(Object.assign(l,c),r.appendChild(c.root));for(const[c,d]of Object.entries(t))if(c!=="className")if(c==="style")for(const[u,h]of Object.entries(d))r.style.setProperty(xY(u),typeof h=="number"?h+"px":""+h);else c==="tabIndex"?r.tabIndex=d:r.setAttribute(xY(c),d.toString());return l.root=r,l}function xY(n){return n.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}class VMe extends ne{constructor(e){super(),this._onDidChange=this._register(new X),this.onDidChange=this._onDidChange.event,this._listener=()=>this._handleChange(e,!0),this._mediaQueryList=null,this._handleChange(e,!1)}_handleChange(e,t){var i;(i=this._mediaQueryList)===null||i===void 0||i.removeEventListener("change",this._listener),this._mediaQueryList=e.matchMedia(`(resolution: ${e.devicePixelRatio}dppx)`),this._mediaQueryList.addEventListener("change",this._listener),t&&this._onDidChange.fire()}}class zMe extends ne{get value(){return this._value}constructor(e){super(),this._onDidChange=this._register(new X),this.onDidChange=this._onDidChange.event,this._value=this._getPixelRatio(e);const t=this._register(new VMe(e));this._register(t.onDidChange(()=>{this._value=this._getPixelRatio(e),this._onDidChange.fire(this._value)}))}_getPixelRatio(e){const t=document.createElement("canvas").getContext("2d"),i=e.devicePixelRatio||1,s=t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return i/s}}class $Me{constructor(){this.mapWindowIdToPixelRatioMonitor=new Map}_getOrCreatePixelRatioMonitor(e){const t=F2(e);let i=this.mapWindowIdToPixelRatioMonitor.get(t);return i||(i=new zMe(e),this.mapWindowIdToPixelRatioMonitor.set(t,i),Ae.once(vMe)(({vscodeWindowId:s})=>{s===t&&(i==null||i.dispose(),this.mapWindowIdToPixelRatioMonitor.delete(t))})),i}getInstance(e){return this._getOrCreatePixelRatioMonitor(e)}}const fL=new $Me;class Xae{constructor(e){this.domNode=e,this._maxWidth="",this._width="",this._height="",this._top="",this._left="",this._bottom="",this._right="",this._paddingLeft="",this._fontFamily="",this._fontWeight="",this._fontSize="",this._fontStyle="",this._fontFeatureSettings="",this._fontVariationSettings="",this._textDecoration="",this._lineHeight="",this._letterSpacing="",this._className="",this._display="",this._position="",this._visibility="",this._color="",this._backgroundColor="",this._layerHint=!1,this._contain="none",this._boxShadow=""}setMaxWidth(e){const t=vd(e);this._maxWidth!==t&&(this._maxWidth=t,this.domNode.style.maxWidth=this._maxWidth)}setWidth(e){const t=vd(e);this._width!==t&&(this._width=t,this.domNode.style.width=this._width)}setHeight(e){const t=vd(e);this._height!==t&&(this._height=t,this.domNode.style.height=this._height)}setTop(e){const t=vd(e);this._top!==t&&(this._top=t,this.domNode.style.top=this._top)}setLeft(e){const t=vd(e);this._left!==t&&(this._left=t,this.domNode.style.left=this._left)}setBottom(e){const t=vd(e);this._bottom!==t&&(this._bottom=t,this.domNode.style.bottom=this._bottom)}setRight(e){const t=vd(e);this._right!==t&&(this._right=t,this.domNode.style.right=this._right)}setPaddingLeft(e){const t=vd(e);this._paddingLeft!==t&&(this._paddingLeft=t,this.domNode.style.paddingLeft=this._paddingLeft)}setFontFamily(e){this._fontFamily!==e&&(this._fontFamily=e,this.domNode.style.fontFamily=this._fontFamily)}setFontWeight(e){this._fontWeight!==e&&(this._fontWeight=e,this.domNode.style.fontWeight=this._fontWeight)}setFontSize(e){const t=vd(e);this._fontSize!==t&&(this._fontSize=t,this.domNode.style.fontSize=this._fontSize)}setFontStyle(e){this._fontStyle!==e&&(this._fontStyle=e,this.domNode.style.fontStyle=this._fontStyle)}setFontFeatureSettings(e){this._fontFeatureSettings!==e&&(this._fontFeatureSettings=e,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}setFontVariationSettings(e){this._fontVariationSettings!==e&&(this._fontVariationSettings=e,this.domNode.style.fontVariationSettings=this._fontVariationSettings)}setTextDecoration(e){this._textDecoration!==e&&(this._textDecoration=e,this.domNode.style.textDecoration=this._textDecoration)}setLineHeight(e){const t=vd(e);this._lineHeight!==t&&(this._lineHeight=t,this.domNode.style.lineHeight=this._lineHeight)}setLetterSpacing(e){const t=vd(e);this._letterSpacing!==t&&(this._letterSpacing=t,this.domNode.style.letterSpacing=this._letterSpacing)}setClassName(e){this._className!==e&&(this._className=e,this.domNode.className=this._className)}toggleClassName(e,t){this.domNode.classList.toggle(e,t),this._className=this.domNode.className}setDisplay(e){this._display!==e&&(this._display=e,this.domNode.style.display=this._display)}setPosition(e){this._position!==e&&(this._position=e,this.domNode.style.position=this._position)}setVisibility(e){this._visibility!==e&&(this._visibility=e,this.domNode.style.visibility=this._visibility)}setColor(e){this._color!==e&&(this._color=e,this.domNode.style.color=this._color)}setBackgroundColor(e){this._backgroundColor!==e&&(this._backgroundColor=e,this.domNode.style.backgroundColor=this._backgroundColor)}setLayerHinting(e){this._layerHint!==e&&(this._layerHint=e,this.domNode.style.transform=this._layerHint?"translate3d(0px, 0px, 0px)":"")}setBoxShadow(e){this._boxShadow!==e&&(this._boxShadow=e,this.domNode.style.boxShadow=e)}setContain(e){this._contain!==e&&(this._contain=e,this.domNode.style.contain=this._contain)}setAttribute(e,t){this.domNode.setAttribute(e,t)}removeAttribute(e){this.domNode.removeAttribute(e)}appendChild(e){this.domNode.appendChild(e.domNode)}removeChild(e){this.domNode.removeChild(e.domNode)}}function vd(n){return typeof n=="number"?`${n}px`:n}function Di(n){return new Xae(n)}function So(n,e){n instanceof Xae?(n.setFontFamily(e.getMassagedFontFamily()),n.setFontWeight(e.fontWeight),n.setFontSize(e.fontSize),n.setFontFeatureSettings(e.fontFeatureSettings),n.setFontVariationSettings(e.fontVariationSettings),n.setLineHeight(e.lineHeight),n.setLetterSpacing(e.letterSpacing)):(n.style.fontFamily=e.getMassagedFontFamily(),n.style.fontWeight=e.fontWeight,n.style.fontSize=e.fontSize+"px",n.style.fontFeatureSettings=e.fontFeatureSettings,n.style.fontVariationSettings=e.fontVariationSettings,n.style.lineHeight=e.lineHeight+"px",n.style.letterSpacing=e.letterSpacing+"px")}class UMe{constructor(e,t){this.chr=e,this.type=t,this.width=0}fulfill(e){this.width=e}}class rz{constructor(e,t){this._bareFontInfo=e,this._requests=t,this._container=null,this._testElements=null}read(e){this._createDomElements(),e.document.body.appendChild(this._container),this._readFromDomElements(),e.document.body.removeChild(this._container),this._container=null,this._testElements=null}_createDomElements(){const e=document.createElement("div");e.style.position="absolute",e.style.top="-50000px",e.style.width="50000px";const t=document.createElement("div");So(t,this._bareFontInfo),e.appendChild(t);const i=document.createElement("div");So(i,this._bareFontInfo),i.style.fontWeight="bold",e.appendChild(i);const s=document.createElement("div");So(s,this._bareFontInfo),s.style.fontStyle="italic",e.appendChild(s);const o=[];for(const r of this._requests){let a;r.type===0&&(a=t),r.type===2&&(a=i),r.type===1&&(a=s),a.appendChild(document.createElement("br"));const l=document.createElement("span");rz._render(l,r),a.appendChild(l),o.push(l)}this._container=e,this._testElements=o}static _render(e,t){if(t.chr===" "){let i=" ";for(let s=0;s<8;s++)i+=i;e.innerText=i}else{let i=t.chr;for(let s=0;s<8;s++)i+=i;e.textContent=i}}_readFromDomElements(){for(let e=0,t=this._requests.length;e{this._evictUntrustedReadingsTimeout=-1,this._evictUntrustedReadings(e)},5e3))}_evictUntrustedReadings(e){const t=this._ensureCache(e),i=t.getValues();let s=!1;for(const o of i)o.isTrusted||(s=!0,t.remove(o));s&&this._onDidChange.fire()}readFontInfo(e,t){const i=this._ensureCache(e);if(!i.has(t)){let s=this._actualReadFontInfo(e,t);(s.typicalHalfwidthCharacterWidth<=2||s.typicalFullwidthCharacterWidth<=2||s.spaceWidth<=2||s.maxDigitWidth<=2)&&(s=new aB({pixelRatio:fL.getInstance(e).value,fontFamily:s.fontFamily,fontWeight:s.fontWeight,fontSize:s.fontSize,fontFeatureSettings:s.fontFeatureSettings,fontVariationSettings:s.fontVariationSettings,lineHeight:s.lineHeight,letterSpacing:s.letterSpacing,isMonospace:s.isMonospace,typicalHalfwidthCharacterWidth:Math.max(s.typicalHalfwidthCharacterWidth,5),typicalFullwidthCharacterWidth:Math.max(s.typicalFullwidthCharacterWidth,5),canUseHalfwidthRightwardsArrow:s.canUseHalfwidthRightwardsArrow,spaceWidth:Math.max(s.spaceWidth,5),middotWidth:Math.max(s.middotWidth,5),wsmiddotWidth:Math.max(s.wsmiddotWidth,5),maxDigitWidth:Math.max(s.maxDigitWidth,5)},!1)),this._writeToCache(e,t,s)}return i.get(t)}_createRequest(e,t,i,s){const o=new UMe(e,t);return i.push(o),s==null||s.push(o),o}_actualReadFontInfo(e,t){const i=[],s=[],o=this._createRequest("n",0,i,s),r=this._createRequest("m",0,i,null),a=this._createRequest(" ",0,i,s),l=this._createRequest("0",0,i,s),c=this._createRequest("1",0,i,s),d=this._createRequest("2",0,i,s),u=this._createRequest("3",0,i,s),h=this._createRequest("4",0,i,s),f=this._createRequest("5",0,i,s),g=this._createRequest("6",0,i,s),p=this._createRequest("7",0,i,s),_=this._createRequest("8",0,i,s),b=this._createRequest("9",0,i,s),w=this._createRequest("→",0,i,s),y=this._createRequest("→",0,i,null),S=this._createRequest("·",0,i,s),x=this._createRequest("⸱",0,i,null),k="|/-_ilm%";for(let O=0,M=k.length;O.001){I=!1;break}}let P=!0;return I&&y.width!==N&&(P=!1),y.width>w.width&&(P=!1),new aB({pixelRatio:fL.getInstance(e).value,fontFamily:t.fontFamily,fontWeight:t.fontWeight,fontSize:t.fontSize,fontFeatureSettings:t.fontFeatureSettings,fontVariationSettings:t.fontVariationSettings,lineHeight:t.lineHeight,letterSpacing:t.letterSpacing,isMonospace:I,typicalHalfwidthCharacterWidth:o.width,typicalFullwidthCharacterWidth:r.width,canUseHalfwidthRightwardsArrow:P,spaceWidth:a.width,middotWidth:S.width,wsmiddotWidth:x.width,maxDigitWidth:D},!0)}}class ZMe{constructor(){this._keys=Object.create(null),this._values=Object.create(null)}has(e){const t=e.getId();return!!this._values[t]}get(e){const t=e.getId();return this._values[t]}put(e,t){const i=e.getId();this._keys[i]=e,this._values[i]=t}remove(e){const t=e.getId();delete this._keys[t],delete this._values[t]}getValues(){return Object.keys(this._keys).map(e=>this._values[e])}}const lB=new GMe;var Hd;(function(n){n.serviceIds=new Map,n.DI_TARGET="$di$target",n.DI_DEPENDENCIES="$di$dependencies";function e(t){return t[n.DI_DEPENDENCIES]||[]}n.getServiceDependencies=e})(Hd||(Hd={}));const ht=Jt("instantiationService");function YMe(n,e,t){e[Hd.DI_TARGET]===e?e[Hd.DI_DEPENDENCIES].push({id:n,index:t}):(e[Hd.DI_DEPENDENCIES]=[{id:n,index:t}],e[Hd.DI_TARGET]=e)}function Jt(n){if(Hd.serviceIds.has(n))return Hd.serviceIds.get(n);const e=function(t,i,s){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");YMe(e,t,s)};return e.toString=()=>n,Hd.serviceIds.set(n,e),e}const vi=Jt("codeEditorService"),Pn=Jt("modelService"),fa=Jt("textModelService");class Ta extends ne{constructor(e,t="",i="",s=!0,o){super(),this._onDidChange=this._register(new X),this.onDidChange=this._onDidChange.event,this._enabled=!0,this._id=e,this._label=t,this._cssClass=i,this._enabled=s,this._actionCallback=o}get id(){return this._id}get label(){return this._label}set label(e){this._setLabel(e)}_setLabel(e){this._label!==e&&(this._label=e,this._onDidChange.fire({label:e}))}get tooltip(){return this._tooltip||""}set tooltip(e){this._setTooltip(e)}_setTooltip(e){this._tooltip!==e&&(this._tooltip=e,this._onDidChange.fire({tooltip:e}))}get class(){return this._cssClass}set class(e){this._setClass(e)}_setClass(e){this._cssClass!==e&&(this._cssClass=e,this._onDidChange.fire({class:e}))}get enabled(){return this._enabled}set enabled(e){this._setEnabled(e)}_setEnabled(e){this._enabled!==e&&(this._enabled=e,this._onDidChange.fire({enabled:e}))}get checked(){return this._checked}set checked(e){this._setChecked(e)}_setChecked(e){this._checked!==e&&(this._checked=e,this._onDidChange.fire({checked:e}))}async run(e,t){this._actionCallback&&await this._actionCallback(e)}}class f0 extends ne{constructor(){super(...arguments),this._onWillRun=this._register(new X),this.onWillRun=this._onWillRun.event,this._onDidRun=this._register(new X),this.onDidRun=this._onDidRun.event}async run(e,t){if(!e.enabled)return;this._onWillRun.fire({action:e});let i;try{await this.runAction(e,t)}catch(s){i=s}this._onDidRun.fire({action:e,error:i})}async runAction(e,t){await e.run(t)}}class Ms{constructor(){this.id=Ms.ID,this.label="",this.tooltip="",this.class="separator",this.enabled=!1,this.checked=!1}static join(...e){let t=[];for(const i of e)i.length&&(t.length?t=[...t,new Ms,...i]:t=i);return t}async run(){}}Ms.ID="vs.actions.separator";class NC{get actions(){return this._actions}constructor(e,t,i,s){this.tooltip="",this.enabled=!0,this.checked=void 0,this.id=e,this.label=t,this.class=s,this._actions=i}async run(){}}class fM extends Ta{constructor(){super(fM.ID,v("submenu.empty","(empty)"),void 0,!1)}}fM.ID="vs.actions.empty";function $v(n){var e,t;return{id:n.id,label:n.label,tooltip:(e=n.tooltip)!==null&&e!==void 0?e:n.label,class:n.class,enabled:(t=n.enabled)!==null&&t!==void 0?t:!0,checked:n.checked,run:async(...i)=>n.run(...i)}}var cB;(function(n){function e(t){return t&&typeof t=="object"&&typeof t.id=="string"}n.isThemeColor=e})(cB||(cB={}));var _t;(function(n){n.iconNameSegment="[A-Za-z0-9]+",n.iconNameExpression="[A-Za-z0-9-]+",n.iconModifierExpression="~[A-Za-z]+",n.iconNameCharacter="[A-Za-z0-9~-]";const e=new RegExp(`^(${n.iconNameExpression})(${n.iconModifierExpression})?$`);function t(h){const f=e.exec(h.id);if(!f)return t(Te.error);const[,g,p]=f,_=["codicon","codicon-"+g];return p&&_.push("codicon-modifier-"+p.substring(1)),_}n.asClassNameArray=t;function i(h){return t(h).join(" ")}n.asClassName=i;function s(h){return"."+t(h).join(".")}n.asCSSSelector=s;function o(h){return h&&typeof h=="object"&&typeof h.id=="string"&&(typeof h.color>"u"||cB.isThemeColor(h.color))}n.isThemeIcon=o;const r=new RegExp(`^\\$\\((${n.iconNameExpression}(?:${n.iconModifierExpression})?)\\)$`);function a(h){const f=r.exec(h);if(!f)return;const[,g]=f;return{id:g}}n.fromString=a;function l(h){return{id:h}}n.fromId=l;function c(h,f){let g=h.id;const p=g.lastIndexOf("~");return p!==-1&&(g=g.substring(0,p)),f&&(g=`${g}~${f}`),{id:g}}n.modify=c;function d(h){const f=h.id.lastIndexOf("~");if(f!==-1)return h.id.substring(f+1)}n.getModifier=d;function u(h,f){var g,p;return h.id===f.id&&((g=h.color)===null||g===void 0?void 0:g.id)===((p=f.color)===null||p===void 0?void 0:p.id)}n.isEqual=u})(_t||(_t={}));const Sn=Jt("commandService"),ri=new class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new X,this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(n,e){if(!n)throw new Error("invalid command");if(typeof n=="string"){if(!e)throw new Error("invalid command");return this.registerCommand({id:n,handler:e})}if(n.metadata&&Array.isArray(n.metadata.args)){const r=[];for(const l of n.metadata.args)r.push(l.constraint);const a=n.handler;n.handler=function(l,...c){return d2e(c,r),a(l,...c)}}const{id:t}=n;let i=this._commands.get(t);i||(i=new Tr,this._commands.set(t,i));const s=i.unshift(n),o=dt(()=>{s();const r=this._commands.get(t);r!=null&&r.isEmpty()&&this._commands.delete(t)});return this._onDidRegisterCommand.fire(t),o}registerCommandAlias(n,e){return ri.registerCommand(n,(t,...i)=>t.get(Sn).executeCommand(e,...i))}getCommand(n){const e=this._commands.get(n);if(!(!e||e.isEmpty()))return oi.first(e)}getCommands(){const n=new Map;for(const e of this._commands.keys()){const t=this.getCommand(e);t&&n.set(e,t)}return n}};ri.registerCommand("noop",()=>{});function WF(...n){switch(n.length){case 1:return v("contextkey.scanner.hint.didYouMean1","Did you mean {0}?",n[0]);case 2:return v("contextkey.scanner.hint.didYouMean2","Did you mean {0} or {1}?",n[0],n[1]);case 3:return v("contextkey.scanner.hint.didYouMean3","Did you mean {0}, {1} or {2}?",n[0],n[1],n[2]);default:return}}const XMe=v("contextkey.scanner.hint.didYouForgetToOpenOrCloseQuote","Did you forget to open or close the quote?"),QMe=v("contextkey.scanner.hint.didYouForgetToEscapeSlash","Did you forget to escape the '/' (slash) character? Put two backslashes before it to escape, e.g., '\\\\/'.");let dv=class dB{constructor(){this._input="",this._start=0,this._current=0,this._tokens=[],this._errors=[],this.stringRe=/[a-zA-Z0-9_<>\-\./\\:\*\?\+\[\]\^,#@;"%\$\p{L}-]+/uy}static getLexeme(e){switch(e.type){case 0:return"(";case 1:return")";case 2:return"!";case 3:return e.isTripleEq?"===":"==";case 4:return e.isTripleEq?"!==":"!=";case 5:return"<";case 6:return"<=";case 7:return">=";case 8:return">=";case 9:return"=~";case 10:return e.lexeme;case 11:return"true";case 12:return"false";case 13:return"in";case 14:return"not";case 15:return"&&";case 16:return"||";case 17:return e.lexeme;case 18:return e.lexeme;case 19:return e.lexeme;case 20:return"EOF";default:throw BV(`unhandled token type: ${JSON.stringify(e)}; have you forgotten to add a case?`)}}reset(e){return this._input=e,this._start=0,this._current=0,this._tokens=[],this._errors=[],this}scan(){for(;!this._isAtEnd();)switch(this._start=this._current,this._advance()){case 40:this._addToken(0);break;case 41:this._addToken(1);break;case 33:if(this._match(61)){const t=this._match(61);this._tokens.push({type:4,offset:this._start,isTripleEq:t})}else this._addToken(2);break;case 39:this._quotedString();break;case 47:this._regex();break;case 61:if(this._match(61)){const t=this._match(61);this._tokens.push({type:3,offset:this._start,isTripleEq:t})}else this._match(126)?this._addToken(9):this._error(WF("==","=~"));break;case 60:this._addToken(this._match(61)?6:5);break;case 62:this._addToken(this._match(61)?8:7);break;case 38:this._match(38)?this._addToken(15):this._error(WF("&&"));break;case 124:this._match(124)?this._addToken(16):this._error(WF("||"));break;case 32:case 13:case 9:case 10:case 160:break;default:this._string()}return this._start=this._current,this._addToken(20),Array.from(this._tokens)}_match(e){return this._isAtEnd()||this._input.charCodeAt(this._current)!==e?!1:(this._current++,!0)}_advance(){return this._input.charCodeAt(this._current++)}_peek(){return this._isAtEnd()?0:this._input.charCodeAt(this._current)}_addToken(e){this._tokens.push({type:e,offset:this._start})}_error(e){const t=this._start,i=this._input.substring(this._start,this._current),s={type:19,offset:this._start,lexeme:i};this._errors.push({offset:t,lexeme:i,additionalInfo:e}),this._tokens.push(s)}_string(){this.stringRe.lastIndex=this._start;const e=this.stringRe.exec(this._input);if(e){this._current=this._start+e[0].length;const t=this._input.substring(this._start,this._current),i=dB._keywords.get(t);i?this._addToken(i):this._tokens.push({type:17,lexeme:t,offset:this._start})}}_quotedString(){for(;this._peek()!==39&&!this._isAtEnd();)this._advance();if(this._isAtEnd()){this._error(XMe);return}this._advance(),this._tokens.push({type:18,lexeme:this._input.substring(this._start+1,this._current-1),offset:this._start+1})}_regex(){let e=this._current,t=!1,i=!1;for(;;){if(e>=this._input.length){this._current=e,this._error(QMe);return}const o=this._input.charCodeAt(e);if(t)t=!1;else if(o===47&&!i){e++;break}else o===91?i=!0:o===92?t=!0:o===93&&(i=!1);e++}for(;e=this._input.length}};dv._regexFlags=new Set(["i","g","s","m","y","u"].map(n=>n.charCodeAt(0)));dv._keywords=new Map([["not",14],["in",13],["false",12],["true",11]]);const Jo=new Map;Jo.set("false",!1);Jo.set("true",!0);Jo.set("isMac",Xt);Jo.set("isLinux",Br);Jo.set("isWindows",Mo);Jo.set("isWeb",u_);Jo.set("isMacNative",Xt&&!u_);Jo.set("isEdge",L2e);Jo.set("isFirefox",S2e);Jo.set("isChrome",Yre);Jo.set("isSafari",x2e);const JMe=Object.prototype.hasOwnProperty,ePe={regexParsingWithErrorRecovery:!0},tPe=v("contextkey.parser.error.emptyString","Empty context key expression"),iPe=v("contextkey.parser.error.emptyString.hint","Did you forget to write an expression? You can also put 'false' or 'true' to always evaluate to false or true, respectively."),nPe=v("contextkey.parser.error.noInAfterNot","'in' after 'not'."),LY=v("contextkey.parser.error.closingParenthesis","closing parenthesis ')'"),sPe=v("contextkey.parser.error.unexpectedToken","Unexpected token"),oPe=v("contextkey.parser.error.unexpectedToken.hint","Did you forget to put && or || before the token?"),rPe=v("contextkey.parser.error.unexpectedEOF","Unexpected end of expression"),aPe=v("contextkey.parser.error.unexpectedEOF.hint","Did you forget to put a context key?");let Qae=class vS{constructor(e=ePe){this._config=e,this._scanner=new dv,this._tokens=[],this._current=0,this._parsingErrors=[],this._flagsGYRe=/g|y/g}parse(e){if(e===""){this._parsingErrors.push({message:tPe,offset:0,lexeme:"",additionalInfo:iPe});return}this._tokens=this._scanner.reset(e).scan(),this._current=0,this._parsingErrors=[];try{const t=this._expr();if(!this._isAtEnd()){const i=this._peek(),s=i.type===17?oPe:void 0;throw this._parsingErrors.push({message:sPe,offset:i.offset,lexeme:dv.getLexeme(i),additionalInfo:s}),vS._parseError}return t}catch(t){if(t!==vS._parseError)throw t;return}}_expr(){return this._or()}_or(){const e=[this._and()];for(;this._matchOne(16);){const t=this._and();e.push(t)}return e.length===1?e[0]:pe.or(...e)}_and(){const e=[this._term()];for(;this._matchOne(15);){const t=this._term();e.push(t)}return e.length===1?e[0]:pe.and(...e)}_term(){if(this._matchOne(2)){const e=this._peek();switch(e.type){case 11:return this._advance(),Wr.INSTANCE;case 12:return this._advance(),aa.INSTANCE;case 0:{this._advance();const t=this._expr();return this._consume(1,LY),t==null?void 0:t.negate()}case 17:return this._advance(),G0.create(e.lexeme);default:throw this._errExpectedButGot("KEY | true | false | '(' expression ')'",e)}}return this._primary()}_primary(){const e=this._peek();switch(e.type){case 11:return this._advance(),pe.true();case 12:return this._advance(),pe.false();case 0:{this._advance();const t=this._expr();return this._consume(1,LY),t}case 17:{const t=e.lexeme;if(this._advance(),this._matchOne(9)){const s=this._peek();if(!this._config.regexParsingWithErrorRecovery){if(this._advance(),s.type!==10)throw this._errExpectedButGot("REGEX",s);const o=s.lexeme,r=o.lastIndexOf("/"),a=r===o.length-1?void 0:this._removeFlagsGY(o.substring(r+1));let l;try{l=new RegExp(o.substring(1,r),a)}catch{throw this._errExpectedButGot("REGEX",s)}return gL.create(t,l)}switch(s.type){case 10:case 19:{const o=[s.lexeme];this._advance();let r=this._peek(),a=0;for(let h=0;h=0){const c=o.slice(a+1,l),d=o[l+1]==="i"?"i":"";try{r=new RegExp(c,d)}catch{throw this._errExpectedButGot("REGEX",s)}}}if(r===null)throw this._errExpectedButGot("REGEX",s);return gL.create(t,r)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,nPe);const s=this._value();return pe.notIn(t,s)}switch(this._peek().type){case 3:{this._advance();const s=this._value();if(this._previous().type===18)return pe.equals(t,s);switch(s){case"true":return pe.has(t);case"false":return pe.not(t);default:return pe.equals(t,s)}}case 4:{this._advance();const s=this._value();if(this._previous().type===18)return pe.notEquals(t,s);switch(s){case"true":return pe.not(t);case"false":return pe.has(t);default:return pe.notEquals(t,s)}}case 5:return this._advance(),CM.create(t,this._value());case 6:return this._advance(),wM.create(t,this._value());case 7:return this._advance(),vM.create(t,this._value());case 8:return this._advance(),bM.create(t,this._value());case 13:return this._advance(),pe.in(t,this._value());default:return pe.has(t)}}case 20:throw this._parsingErrors.push({message:rPe,offset:e.offset,lexeme:"",additionalInfo:aPe}),vS._parseError;default:throw this._errExpectedButGot(`true | false | KEY | KEY '=~' REGEX | KEY ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not' 'in') value`,this._peek())}}_value(){const e=this._peek();switch(e.type){case 17:case 18:return this._advance(),e.lexeme;case 11:return this._advance(),"true";case 12:return this._advance(),"false";case 13:return this._advance(),"in";default:return""}}_removeFlagsGY(e){return e.replaceAll(this._flagsGYRe,"")}_previous(){return this._tokens[this._current-1]}_matchOne(e){return this._check(e)?(this._advance(),!0):!1}_advance(){return this._isAtEnd()||this._current++,this._previous()}_consume(e,t){if(this._check(e))return this._advance();throw this._errExpectedButGot(t,this._peek())}_errExpectedButGot(e,t,i){const s=v("contextkey.parser.error.expectedButGot",`Expected: {0} Received: '{1}'.`,e,dv.getLexeme(t)),o=t.offset,r=dv.getLexeme(t);return this._parsingErrors.push({message:s,offset:o,lexeme:r,additionalInfo:i}),vS._parseError}_check(e){return this._peek().type===e}_peek(){return this._tokens[this._current]}_isAtEnd(){return this._peek().type===20}};Qae._parseError=new Error;class pe{static false(){return Wr.INSTANCE}static true(){return aa.INSTANCE}static has(e){return q0.create(e)}static equals(e,t){return Mw.create(e,t)}static notEquals(e,t){return mM.create(e,t)}static regex(e,t){return gL.create(e,t)}static in(e,t){return gM.create(e,t)}static notIn(e,t){return pM.create(e,t)}static not(e){return G0.create(e)}static and(...e){return Sv.create(e,null,!0)}static or(...e){return Hf.create(e,null,!0)}static deserialize(e){return e==null?void 0:this._parser.parse(e)}}pe._parser=new Qae({regexParsingWithErrorRecovery:!1});function lPe(n,e){const t=n?n.substituteConstants():void 0,i=e?e.substituteConstants():void 0;return!t&&!i?!0:!t||!i?!1:t.equals(i)}function ax(n,e){return n.cmp(e)}class Wr{constructor(){this.type=0}cmp(e){return this.type-e.type}equals(e){return e.type===this.type}substituteConstants(){return this}evaluate(e){return!1}serialize(){return"false"}keys(){return[]}negate(){return aa.INSTANCE}}Wr.INSTANCE=new Wr;class aa{constructor(){this.type=1}cmp(e){return this.type-e.type}equals(e){return e.type===this.type}substituteConstants(){return this}evaluate(e){return!0}serialize(){return"true"}keys(){return[]}negate(){return Wr.INSTANCE}}aa.INSTANCE=new aa;class q0{static create(e,t=null){const i=Jo.get(e);return typeof i=="boolean"?i?aa.INSTANCE:Wr.INSTANCE:new q0(e,t)}constructor(e,t){this.key=e,this.negated=t,this.type=2}cmp(e){return e.type!==this.type?this.type-e.type:ele(this.key,e.key)}equals(e){return e.type===this.type?this.key===e.key:!1}substituteConstants(){const e=Jo.get(this.key);return typeof e=="boolean"?e?aa.INSTANCE:Wr.INSTANCE:this}evaluate(e){return!!e.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}negate(){return this.negated||(this.negated=G0.create(this.key,this)),this.negated}}class Mw{static create(e,t,i=null){if(typeof t=="boolean")return t?q0.create(e,i):G0.create(e,i);const s=Jo.get(e);return typeof s=="boolean"?t===(s?"true":"false")?aa.INSTANCE:Wr.INSTANCE:new Mw(e,t,i)}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=4}cmp(e){return e.type!==this.type?this.type-e.type:Z0(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){const e=Jo.get(this.key);if(typeof e=="boolean"){const t=e?"true":"false";return this.value===t?aa.INSTANCE:Wr.INSTANCE}return this}evaluate(e){return e.getValue(this.key)==this.value}serialize(){return`${this.key} == '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=mM.create(this.key,this.value,this)),this.negated}}class gM{static create(e,t){return new gM(e,t)}constructor(e,t){this.key=e,this.valueKey=t,this.type=10,this.negated=null}cmp(e){return e.type!==this.type?this.type-e.type:Z0(this.key,this.valueKey,e.key,e.valueKey)}equals(e){return e.type===this.type?this.key===e.key&&this.valueKey===e.valueKey:!1}substituteConstants(){return this}evaluate(e){const t=e.getValue(this.valueKey),i=e.getValue(this.key);return Array.isArray(t)?t.includes(i):typeof i=="string"&&typeof t=="object"&&t!==null?JMe.call(t,i):!1}serialize(){return`${this.key} in '${this.valueKey}'`}keys(){return[this.key,this.valueKey]}negate(){return this.negated||(this.negated=pM.create(this.key,this.valueKey)),this.negated}}class pM{static create(e,t){return new pM(e,t)}constructor(e,t){this.key=e,this.valueKey=t,this.type=11,this._negated=gM.create(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:this._negated.cmp(e._negated)}equals(e){return e.type===this.type?this._negated.equals(e._negated):!1}substituteConstants(){return this}evaluate(e){return!this._negated.evaluate(e)}serialize(){return`${this.key} not in '${this.valueKey}'`}keys(){return this._negated.keys()}negate(){return this._negated}}class mM{static create(e,t,i=null){if(typeof t=="boolean")return t?G0.create(e,i):q0.create(e,i);const s=Jo.get(e);return typeof s=="boolean"?t===(s?"true":"false")?Wr.INSTANCE:aa.INSTANCE:new mM(e,t,i)}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=5}cmp(e){return e.type!==this.type?this.type-e.type:Z0(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){const e=Jo.get(this.key);if(typeof e=="boolean"){const t=e?"true":"false";return this.value===t?Wr.INSTANCE:aa.INSTANCE}return this}evaluate(e){return e.getValue(this.key)!=this.value}serialize(){return`${this.key} != '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=Mw.create(this.key,this.value,this)),this.negated}}class G0{static create(e,t=null){const i=Jo.get(e);return typeof i=="boolean"?i?Wr.INSTANCE:aa.INSTANCE:new G0(e,t)}constructor(e,t){this.key=e,this.negated=t,this.type=3}cmp(e){return e.type!==this.type?this.type-e.type:ele(this.key,e.key)}equals(e){return e.type===this.type?this.key===e.key:!1}substituteConstants(){const e=Jo.get(this.key);return typeof e=="boolean"?e?Wr.INSTANCE:aa.INSTANCE:this}evaluate(e){return!e.getValue(this.key)}serialize(){return`!${this.key}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=q0.create(this.key,this)),this.negated}}function _M(n,e){if(typeof n=="string"){const t=parseFloat(n);isNaN(t)||(n=t)}return typeof n=="string"||typeof n=="number"?e(n):Wr.INSTANCE}class vM{static create(e,t,i=null){return _M(t,s=>new vM(e,s,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=12}cmp(e){return e.type!==this.type?this.type-e.type:Z0(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))>this.value}serialize(){return`${this.key} > ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=wM.create(this.key,this.value,this)),this.negated}}class bM{static create(e,t,i=null){return _M(t,s=>new bM(e,s,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=13}cmp(e){return e.type!==this.type?this.type-e.type:Z0(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))>=this.value}serialize(){return`${this.key} >= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=CM.create(this.key,this.value,this)),this.negated}}class CM{static create(e,t,i=null){return _M(t,s=>new CM(e,s,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=14}cmp(e){return e.type!==this.type?this.type-e.type:Z0(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))new wM(e,s,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=15}cmp(e){return e.type!==this.type?this.type-e.type:Z0(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))<=this.value}serialize(){return`${this.key} <= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=vM.create(this.key,this.value,this)),this.negated}}class gL{static create(e,t){return new gL(e,t)}constructor(e,t){this.key=e,this.regexp=t,this.type=7,this.negated=null}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.keye.key)return 1;const t=this.regexp?this.regexp.source:"",i=e.regexp?e.regexp.source:"";return ti?1:0}equals(e){if(e.type===this.type){const t=this.regexp?this.regexp.source:"",i=e.regexp?e.regexp.source:"";return this.key===e.key&&t===i}return!1}substituteConstants(){return this}evaluate(e){const t=e.getValue(this.key);return this.regexp?this.regexp.test(t):!1}serialize(){const e=this.regexp?`/${this.regexp.source}/${this.regexp.flags}`:"/invalid/";return`${this.key} =~ ${e}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=az.create(this)),this.negated}}class az{static create(e){return new az(e)}constructor(e){this._actual=e,this.type=8}cmp(e){return e.type!==this.type?this.type-e.type:this._actual.cmp(e._actual)}equals(e){return e.type===this.type?this._actual.equals(e._actual):!1}substituteConstants(){return this}evaluate(e){return!this._actual.evaluate(e)}serialize(){return`!(${this._actual.serialize()})`}keys(){return this._actual.keys()}negate(){return this._actual}}function Jae(n){let e=null;for(let t=0,i=n.length;te.expr.length)return 1;for(let t=0,i=this.expr.length;t1;){const r=s[s.length-1];if(r.type!==9)break;s.pop();const a=s.pop(),l=s.length===0,c=Hf.create(r.expr.map(d=>Sv.create([d,a],null,i)),null,l);c&&(s.push(c),s.sort(ax))}if(s.length===1)return s[0];if(i){for(let r=0;re.serialize()).join(" && ")}keys(){const e=[];for(const t of this.expr)e.push(...t.keys());return e}negate(){if(!this.negated){const e=[];for(const t of this.expr)e.push(t.negate());this.negated=Hf.create(e,this,!0)}return this.negated}}class Hf{static create(e,t,i){return Hf._normalizeArr(e,t,i)}constructor(e,t){this.expr=e,this.negated=t,this.type=9}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.expr.lengthe.expr.length)return 1;for(let t=0,i=this.expr.length;te.serialize()).join(" || ")}keys(){const e=[];for(const t of this.expr)e.push(...t.keys());return e}negate(){if(!this.negated){const e=[];for(const t of this.expr)e.push(t.negate());for(;e.length>1;){const t=e.shift(),i=e.shift(),s=[];for(const o of DY(t))for(const r of DY(i))s.push(Sv.create([o,r],null,!1));e.unshift(Hf.create(s,null,!1))}this.negated=Hf.create(e,this,!0)}return this.negated}}class He extends q0{static all(){return He._info.values()}constructor(e,t,i){super(e,null),this._defaultValue=t,typeof i=="object"?He._info.push({...i,key:e}):i!==!0&&He._info.push({key:e,description:i,type:t!=null?typeof t:void 0})}bindTo(e){return e.createKey(this.key,this._defaultValue)}getValue(e){return e.getContextKeyValue(this.key)}toNegated(){return this.negate()}isEqualTo(e){return Mw.create(this.key,e)}}He._info=[];const Ct=Jt("contextKeyService");function ele(n,e){return ne?1:0}function Z0(n,e,t,i){return nt?1:ei?1:0}function uB(n,e){if(n.type===0||e.type===1)return!0;if(n.type===9)return e.type===9?kY(n.expr,e.expr):!1;if(e.type===9){for(const t of e.expr)if(uB(n,t))return!0;return!1}if(n.type===6){if(e.type===6)return kY(e.expr,n.expr);for(const t of n.expr)if(uB(t,e))return!0;return!1}return n.equals(e)}function kY(n,e){let t=0,i=0;for(;t{a(),this._cachedMergedKeybindings=null})}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=Array.from(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(uPe)),this._cachedMergedKeybindings.slice(0)}}const Hr=new cz,dPe={EditorModes:"platform.keybindingsRegistry"};Un.add(dPe.EditorModes,Hr);function uPe(n,e){if(n.weight1!==e.weight1)return n.weight1-e.weight1;if(n.command&&e.command){if(n.commande.command)return 1}return n.weight2-e.weight2}var hPe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},EY=function(n,e){return function(t,i){e(t,i,n)}},hN;function g1(n){return n.command!==void 0}function fPe(n){return n.submenu!==void 0}class R{constructor(e){if(R._instances.has(e))throw new TypeError(`MenuId with identifier '${e}' already exists. Use MenuId.for(ident) or a unique identifier`);R._instances.set(e,this),this.id=e}}R._instances=new Map;R.CommandPalette=new R("CommandPalette");R.DebugBreakpointsContext=new R("DebugBreakpointsContext");R.DebugCallStackContext=new R("DebugCallStackContext");R.DebugConsoleContext=new R("DebugConsoleContext");R.DebugVariablesContext=new R("DebugVariablesContext");R.NotebookVariablesContext=new R("NotebookVariablesContext");R.DebugHoverContext=new R("DebugHoverContext");R.DebugWatchContext=new R("DebugWatchContext");R.DebugToolBar=new R("DebugToolBar");R.DebugToolBarStop=new R("DebugToolBarStop");R.EditorContext=new R("EditorContext");R.SimpleEditorContext=new R("SimpleEditorContext");R.EditorContent=new R("EditorContent");R.EditorLineNumberContext=new R("EditorLineNumberContext");R.EditorContextCopy=new R("EditorContextCopy");R.EditorContextPeek=new R("EditorContextPeek");R.EditorContextShare=new R("EditorContextShare");R.EditorTitle=new R("EditorTitle");R.EditorTitleRun=new R("EditorTitleRun");R.EditorTitleContext=new R("EditorTitleContext");R.EditorTitleContextShare=new R("EditorTitleContextShare");R.EmptyEditorGroup=new R("EmptyEditorGroup");R.EmptyEditorGroupContext=new R("EmptyEditorGroupContext");R.EditorTabsBarContext=new R("EditorTabsBarContext");R.EditorTabsBarShowTabsSubmenu=new R("EditorTabsBarShowTabsSubmenu");R.EditorTabsBarShowTabsZenModeSubmenu=new R("EditorTabsBarShowTabsZenModeSubmenu");R.EditorActionsPositionSubmenu=new R("EditorActionsPositionSubmenu");R.ExplorerContext=new R("ExplorerContext");R.ExplorerContextShare=new R("ExplorerContextShare");R.ExtensionContext=new R("ExtensionContext");R.GlobalActivity=new R("GlobalActivity");R.CommandCenter=new R("CommandCenter");R.CommandCenterCenter=new R("CommandCenterCenter");R.LayoutControlMenuSubmenu=new R("LayoutControlMenuSubmenu");R.LayoutControlMenu=new R("LayoutControlMenu");R.MenubarMainMenu=new R("MenubarMainMenu");R.MenubarAppearanceMenu=new R("MenubarAppearanceMenu");R.MenubarDebugMenu=new R("MenubarDebugMenu");R.MenubarEditMenu=new R("MenubarEditMenu");R.MenubarCopy=new R("MenubarCopy");R.MenubarFileMenu=new R("MenubarFileMenu");R.MenubarGoMenu=new R("MenubarGoMenu");R.MenubarHelpMenu=new R("MenubarHelpMenu");R.MenubarLayoutMenu=new R("MenubarLayoutMenu");R.MenubarNewBreakpointMenu=new R("MenubarNewBreakpointMenu");R.PanelAlignmentMenu=new R("PanelAlignmentMenu");R.PanelPositionMenu=new R("PanelPositionMenu");R.ActivityBarPositionMenu=new R("ActivityBarPositionMenu");R.MenubarPreferencesMenu=new R("MenubarPreferencesMenu");R.MenubarRecentMenu=new R("MenubarRecentMenu");R.MenubarSelectionMenu=new R("MenubarSelectionMenu");R.MenubarShare=new R("MenubarShare");R.MenubarSwitchEditorMenu=new R("MenubarSwitchEditorMenu");R.MenubarSwitchGroupMenu=new R("MenubarSwitchGroupMenu");R.MenubarTerminalMenu=new R("MenubarTerminalMenu");R.MenubarViewMenu=new R("MenubarViewMenu");R.MenubarHomeMenu=new R("MenubarHomeMenu");R.OpenEditorsContext=new R("OpenEditorsContext");R.OpenEditorsContextShare=new R("OpenEditorsContextShare");R.ProblemsPanelContext=new R("ProblemsPanelContext");R.SCMInputBox=new R("SCMInputBox");R.SCMChangesSeparator=new R("SCMChangesSeparator");R.SCMIncomingChanges=new R("SCMIncomingChanges");R.SCMIncomingChangesContext=new R("SCMIncomingChangesContext");R.SCMIncomingChangesSetting=new R("SCMIncomingChangesSetting");R.SCMOutgoingChanges=new R("SCMOutgoingChanges");R.SCMOutgoingChangesContext=new R("SCMOutgoingChangesContext");R.SCMOutgoingChangesSetting=new R("SCMOutgoingChangesSetting");R.SCMIncomingChangesAllChangesContext=new R("SCMIncomingChangesAllChangesContext");R.SCMIncomingChangesHistoryItemContext=new R("SCMIncomingChangesHistoryItemContext");R.SCMOutgoingChangesAllChangesContext=new R("SCMOutgoingChangesAllChangesContext");R.SCMOutgoingChangesHistoryItemContext=new R("SCMOutgoingChangesHistoryItemContext");R.SCMChangeContext=new R("SCMChangeContext");R.SCMResourceContext=new R("SCMResourceContext");R.SCMResourceContextShare=new R("SCMResourceContextShare");R.SCMResourceFolderContext=new R("SCMResourceFolderContext");R.SCMResourceGroupContext=new R("SCMResourceGroupContext");R.SCMSourceControl=new R("SCMSourceControl");R.SCMSourceControlInline=new R("SCMSourceControlInline");R.SCMSourceControlTitle=new R("SCMSourceControlTitle");R.SCMTitle=new R("SCMTitle");R.SearchContext=new R("SearchContext");R.SearchActionMenu=new R("SearchActionContext");R.StatusBarWindowIndicatorMenu=new R("StatusBarWindowIndicatorMenu");R.StatusBarRemoteIndicatorMenu=new R("StatusBarRemoteIndicatorMenu");R.StickyScrollContext=new R("StickyScrollContext");R.TestItem=new R("TestItem");R.TestItemGutter=new R("TestItemGutter");R.TestMessageContext=new R("TestMessageContext");R.TestMessageContent=new R("TestMessageContent");R.TestPeekElement=new R("TestPeekElement");R.TestPeekTitle=new R("TestPeekTitle");R.TouchBarContext=new R("TouchBarContext");R.TitleBarContext=new R("TitleBarContext");R.TitleBarTitleContext=new R("TitleBarTitleContext");R.TunnelContext=new R("TunnelContext");R.TunnelPrivacy=new R("TunnelPrivacy");R.TunnelProtocol=new R("TunnelProtocol");R.TunnelPortInline=new R("TunnelInline");R.TunnelTitle=new R("TunnelTitle");R.TunnelLocalAddressInline=new R("TunnelLocalAddressInline");R.TunnelOriginInline=new R("TunnelOriginInline");R.ViewItemContext=new R("ViewItemContext");R.ViewContainerTitle=new R("ViewContainerTitle");R.ViewContainerTitleContext=new R("ViewContainerTitleContext");R.ViewTitle=new R("ViewTitle");R.ViewTitleContext=new R("ViewTitleContext");R.CommentEditorActions=new R("CommentEditorActions");R.CommentThreadTitle=new R("CommentThreadTitle");R.CommentThreadActions=new R("CommentThreadActions");R.CommentThreadAdditionalActions=new R("CommentThreadAdditionalActions");R.CommentThreadTitleContext=new R("CommentThreadTitleContext");R.CommentThreadCommentContext=new R("CommentThreadCommentContext");R.CommentTitle=new R("CommentTitle");R.CommentActions=new R("CommentActions");R.CommentsViewThreadActions=new R("CommentsViewThreadActions");R.InteractiveToolbar=new R("InteractiveToolbar");R.InteractiveCellTitle=new R("InteractiveCellTitle");R.InteractiveCellDelete=new R("InteractiveCellDelete");R.InteractiveCellExecute=new R("InteractiveCellExecute");R.InteractiveInputExecute=new R("InteractiveInputExecute");R.IssueReporter=new R("IssueReporter");R.NotebookToolbar=new R("NotebookToolbar");R.NotebookStickyScrollContext=new R("NotebookStickyScrollContext");R.NotebookCellTitle=new R("NotebookCellTitle");R.NotebookCellDelete=new R("NotebookCellDelete");R.NotebookCellInsert=new R("NotebookCellInsert");R.NotebookCellBetween=new R("NotebookCellBetween");R.NotebookCellListTop=new R("NotebookCellTop");R.NotebookCellExecute=new R("NotebookCellExecute");R.NotebookCellExecuteGoTo=new R("NotebookCellExecuteGoTo");R.NotebookCellExecutePrimary=new R("NotebookCellExecutePrimary");R.NotebookDiffCellInputTitle=new R("NotebookDiffCellInputTitle");R.NotebookDiffCellMetadataTitle=new R("NotebookDiffCellMetadataTitle");R.NotebookDiffCellOutputsTitle=new R("NotebookDiffCellOutputsTitle");R.NotebookOutputToolbar=new R("NotebookOutputToolbar");R.NotebookOutlineFilter=new R("NotebookOutlineFilter");R.NotebookOutlineActionMenu=new R("NotebookOutlineActionMenu");R.NotebookEditorLayoutConfigure=new R("NotebookEditorLayoutConfigure");R.NotebookKernelSource=new R("NotebookKernelSource");R.BulkEditTitle=new R("BulkEditTitle");R.BulkEditContext=new R("BulkEditContext");R.TimelineItemContext=new R("TimelineItemContext");R.TimelineTitle=new R("TimelineTitle");R.TimelineTitleContext=new R("TimelineTitleContext");R.TimelineFilterSubMenu=new R("TimelineFilterSubMenu");R.AccountsContext=new R("AccountsContext");R.SidebarTitle=new R("SidebarTitle");R.PanelTitle=new R("PanelTitle");R.AuxiliaryBarTitle=new R("AuxiliaryBarTitle");R.AuxiliaryBarHeader=new R("AuxiliaryBarHeader");R.TerminalInstanceContext=new R("TerminalInstanceContext");R.TerminalEditorInstanceContext=new R("TerminalEditorInstanceContext");R.TerminalNewDropdownContext=new R("TerminalNewDropdownContext");R.TerminalTabContext=new R("TerminalTabContext");R.TerminalTabEmptyAreaContext=new R("TerminalTabEmptyAreaContext");R.TerminalStickyScrollContext=new R("TerminalStickyScrollContext");R.WebviewContext=new R("WebviewContext");R.InlineCompletionsActions=new R("InlineCompletionsActions");R.InlineEditActions=new R("InlineEditActions");R.NewFile=new R("NewFile");R.MergeInput1Toolbar=new R("MergeToolbar1Toolbar");R.MergeInput2Toolbar=new R("MergeToolbar2Toolbar");R.MergeBaseToolbar=new R("MergeBaseToolbar");R.MergeInputResultToolbar=new R("MergeToolbarResultToolbar");R.InlineSuggestionToolbar=new R("InlineSuggestionToolbar");R.InlineEditToolbar=new R("InlineEditToolbar");R.ChatContext=new R("ChatContext");R.ChatCodeBlock=new R("ChatCodeblock");R.ChatCompareBlock=new R("ChatCompareBlock");R.ChatMessageTitle=new R("ChatMessageTitle");R.ChatExecute=new R("ChatExecute");R.ChatExecuteSecondary=new R("ChatExecuteSecondary");R.ChatInputSide=new R("ChatInputSide");R.AccessibleView=new R("AccessibleView");R.MultiDiffEditorFileToolbar=new R("MultiDiffEditorFileToolbar");R.DiffEditorHunkToolbar=new R("DiffEditorHunkToolbar");R.DiffEditorSelectionToolbar=new R("DiffEditorSelectionToolbar");const Dl=Jt("menuService");class Vf{static for(e){let t=this._all.get(e);return t||(t=new Vf(e),this._all.set(e,t)),t}static merge(e){const t=new Set;for(const i of e)i instanceof Vf&&t.add(i.id);return t}constructor(e){this.id=e,this.has=t=>t===e}}Vf._all=new Map;const ao=new class{constructor(){this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new NAe({merge:Vf.merge}),this.onDidChangeMenu=this._onDidChangeMenu.event}addCommand(n){return this._commands.set(n.id,n),this._onDidChangeMenu.fire(Vf.for(R.CommandPalette)),dt(()=>{this._commands.delete(n.id)&&this._onDidChangeMenu.fire(Vf.for(R.CommandPalette))})}getCommand(n){return this._commands.get(n)}getCommands(){const n=new Map;return this._commands.forEach((e,t)=>n.set(t,e)),n}appendMenuItem(n,e){let t=this._menuItems.get(n);t||(t=new Tr,this._menuItems.set(n,t));const i=t.push(e);return this._onDidChangeMenu.fire(Vf.for(n)),dt(()=>{i(),this._onDidChangeMenu.fire(Vf.for(n))})}appendMenuItems(n){const e=new be;for(const{id:t,item:i}of n)e.add(this.appendMenuItem(t,i));return e}getMenuItems(n){let e;return this._menuItems.has(n)?e=[...this._menuItems.get(n)]:e=[],n===R.CommandPalette&&this._appendImplicitItems(e),e}_appendImplicitItems(n){const e=new Set;for(const t of n)g1(t)&&(e.add(t.command.id),t.alt&&e.add(t.alt.id));this._commands.forEach((t,i)=>{e.has(i)||n.push({command:t})})}};class q1 extends NC{constructor(e,t,i){super(`submenuitem.${e.submenu.id}`,typeof e.title=="string"?e.title:e.title.value,i,"submenu"),this.item=e,this.hideActions=t}}let Na=hN=class{static label(e,t){return t!=null&&t.renderShortTitle&&e.shortTitle?typeof e.shortTitle=="string"?e.shortTitle:e.shortTitle.value:typeof e.title=="string"?e.title:e.title.value}constructor(e,t,i,s,o,r,a){var l,c;this.hideActions=s,this.menuKeybinding=o,this._commandService=a,this.id=e.id,this.label=hN.label(e,i),this.tooltip=(c=typeof e.tooltip=="string"?e.tooltip:(l=e.tooltip)===null||l===void 0?void 0:l.value)!==null&&c!==void 0?c:"",this.enabled=!e.precondition||r.contextMatchesRules(e.precondition),this.checked=void 0;let d;if(e.toggled){const u=e.toggled.condition?e.toggled:{condition:e.toggled};this.checked=r.contextMatchesRules(u.condition),this.checked&&u.tooltip&&(this.tooltip=typeof u.tooltip=="string"?u.tooltip:u.tooltip.value),this.checked&&_t.isThemeIcon(u.icon)&&(d=u.icon),this.checked&&u.title&&(this.label=typeof u.title=="string"?u.title:u.title.value)}d||(d=_t.isThemeIcon(e.icon)?e.icon:void 0),this.item=e,this.alt=t?new hN(t,void 0,i,s,void 0,r,a):void 0,this._options=i,this.class=d&&_t.asClassName(d)}run(...e){var t,i;let s=[];return!((t=this._options)===null||t===void 0)&&t.arg&&(s=[...s,this._options.arg]),!((i=this._options)===null||i===void 0)&&i.shouldForwardArgs&&(s=[...s,...e]),this._commandService.executeCommand(this.id,...s)}};Na=hN=hPe([EY(5,Ct),EY(6,Sn)],Na);class zr{constructor(e){this.desc=e}}function dn(n){const e=[],t=new n,{f1:i,menu:s,keybinding:o,...r}=t.desc;if(ri.getCommand(r.id))throw new Error(`Cannot register two commands with the same id: ${r.id}`);if(e.push(ri.registerCommand({id:r.id,handler:(a,...l)=>t.run(a,...l),metadata:r.metadata})),Array.isArray(s))for(const a of s)e.push(ao.appendMenuItem(a.id,{command:{...r,precondition:a.precondition===null?void 0:r.precondition},...a}));else s&&e.push(ao.appendMenuItem(s.id,{command:{...r,precondition:s.precondition===null?void 0:r.precondition},...s}));if(i&&(e.push(ao.appendMenuItem(R.CommandPalette,{command:r,when:r.precondition})),e.push(ao.addCommand(r))),Array.isArray(o))for(const a of o)e.push(Hr.registerKeybindingRule({...a,id:r.id,when:r.precondition?pe.and(r.precondition,a.when):a.when}));else o&&e.push(Hr.registerKeybindingRule({...o,id:r.id,when:r.precondition?pe.and(r.precondition,o.when):o.when}));return{dispose(){tn(e)}}}const Po=Jt("telemetryService"),er=Jt("logService");var To;(function(n){n[n.Off=0]="Off",n[n.Trace=1]="Trace",n[n.Debug=2]="Debug",n[n.Info=3]="Info",n[n.Warning=4]="Warning",n[n.Error=5]="Error"})(To||(To={}));const tle=To.Info;class ile extends ne{constructor(){super(...arguments),this.level=tle,this._onDidChangeLogLevel=this._register(new X),this.onDidChangeLogLevel=this._onDidChangeLogLevel.event}setLevel(e){this.level!==e&&(this.level=e,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}checkLogLevel(e){return this.level!==To.Off&&this.level<=e}}class gPe extends ile{constructor(e=tle,t=!0){super(),this.useColors=t,this.setLevel(e)}trace(e,...t){this.checkLogLevel(To.Trace)&&(this.useColors?console.log("%cTRACE","color: #888",e,...t):console.log(e,...t))}debug(e,...t){this.checkLogLevel(To.Debug)&&(this.useColors?console.log("%cDEBUG","background: #eee; color: #888",e,...t):console.log(e,...t))}info(e,...t){this.checkLogLevel(To.Info)&&(this.useColors?console.log("%c INFO","color: #33f",e,...t):console.log(e,...t))}warn(e,...t){this.checkLogLevel(To.Warning)&&(this.useColors?console.log("%c WARN","color: #993",e,...t):console.log(e,...t))}error(e,...t){this.checkLogLevel(To.Error)&&(this.useColors?console.log("%c ERR","color: #f33",e,...t):console.error(e,...t))}}class pPe extends ile{constructor(e){super(),this.loggers=e,e.length&&this.setLevel(e[0].getLevel())}setLevel(e){for(const t of this.loggers)t.setLevel(e);super.setLevel(e)}trace(e,...t){for(const i of this.loggers)i.trace(e,...t)}debug(e,...t){for(const i of this.loggers)i.debug(e,...t)}info(e,...t){for(const i of this.loggers)i.info(e,...t)}warn(e,...t){for(const i of this.loggers)i.warn(e,...t)}error(e,...t){for(const i of this.loggers)i.error(e,...t)}dispose(){for(const e of this.loggers)e.dispose();super.dispose()}}function mPe(n){switch(n){case To.Trace:return"trace";case To.Debug:return"debug";case To.Info:return"info";case To.Warning:return"warn";case To.Error:return"error";case To.Off:return"off"}}new He("logLevel",mPe(To.Info));class SM{constructor(e){this.id=e.id,this.precondition=e.precondition,this._kbOpts=e.kbOpts,this._menuOpts=e.menuOpts,this.metadata=e.metadata}register(){if(Array.isArray(this._menuOpts)?this._menuOpts.forEach(this._registerMenuItem,this):this._menuOpts&&this._registerMenuItem(this._menuOpts),this._kbOpts){const e=Array.isArray(this._kbOpts)?this._kbOpts:[this._kbOpts];for(const t of e){let i=t.kbExpr;this.precondition&&(i?i=pe.and(i,this.precondition):i=this.precondition);const s={id:this.id,weight:t.weight,args:t.args,when:i,primary:t.primary,secondary:t.secondary,win:t.win,linux:t.linux,mac:t.mac};Hr.registerKeybindingRule(s)}}ri.registerCommand({id:this.id,handler:(e,t)=>this.runCommand(e,t),metadata:this.metadata})}_registerMenuItem(e){ao.appendMenuItem(e.menuId,{group:e.group,command:{id:this.id,title:e.title,icon:e.icon,precondition:this.precondition},when:e.when,order:e.order})}}class Pw extends SM{constructor(){super(...arguments),this._implementations=[]}addImplementation(e,t,i,s){return this._implementations.push({priority:e,name:t,implementation:i,when:s}),this._implementations.sort((o,r)=>r.priority-o.priority),{dispose:()=>{for(let o=0;o{if(a.get(Ct).contextMatchesRules(i??void 0))return s(a,r,t)})}runCommand(e,t){return Us.runEditorCommand(e,t,this.precondition,(i,s,o)=>this.runEditorCommand(i,s,o))}}class Ke extends Us{static convertOptions(e){let t;Array.isArray(e.menuOpts)?t=e.menuOpts:e.menuOpts?t=[e.menuOpts]:t=[];function i(s){return s.menuId||(s.menuId=R.EditorContext),s.title||(s.title=e.label),s.when=pe.and(e.precondition,s.when),s}return Array.isArray(e.contextMenuOpts)?t.push(...e.contextMenuOpts.map(i)):e.contextMenuOpts&&t.push(i(e.contextMenuOpts)),e.menuOpts=t,e}constructor(e){super(Ke.convertOptions(e)),this.label=e.label,this.alias=e.alias}runEditorCommand(e,t,i){return this.reportTelemetry(e,t),this.run(e,t,i||{})}reportTelemetry(e,t){e.get(Po).publicLog2("editorActionInvoked",{name:this.label,id:this.id})}}class sle extends Ke{constructor(){super(...arguments),this._implementations=[]}addImplementation(e,t){return this._implementations.push([e,t]),this._implementations.sort((i,s)=>s[0]-i[0]),{dispose:()=>{for(let i=0;i{var r,a;const l=o.get(Ct),c=o.get(er);if(!l.contextMatchesRules((r=this.desc.precondition)!==null&&r!==void 0?r:void 0)){c.debug("[EditorAction2] NOT running command because its precondition is FALSE",this.desc.id,(a=this.desc.precondition)===null||a===void 0?void 0:a.serialize());return}return this.runEditorCommand(o,s,...t)})}}function Vh(n,e){ri.registerCommand(n,function(t,...i){const s=t.get(ht),[o,r]=i;mi(pt.isUri(o)),mi(ee.isIPosition(r));const a=t.get(Pn).getModel(o);if(a){const l=ee.lift(r);return s.invokeFunction(e,a,l,...i.slice(2))}return t.get(fa).createModelReference(o).then(l=>new Promise((c,d)=>{try{const u=s.invokeFunction(e,l.object.textEditorModel,ee.lift(r),i.slice(2));c(u)}catch(u){d(u)}}).finally(()=>{l.dispose()}))})}function Fe(n){return ql.INSTANCE.registerEditorCommand(n),n}function xe(n){const e=new n;return ql.INSTANCE.registerEditorAction(e),e}function ole(n){return ql.INSTANCE.registerEditorAction(n),n}function _Pe(n){ql.INSTANCE.registerEditorAction(n)}function bi(n,e,t){ql.INSTANCE.registerEditorContribution(n,e,t)}var G1;(function(n){function e(r){return ql.INSTANCE.getEditorCommand(r)}n.getEditorCommand=e;function t(){return ql.INSTANCE.getEditorActions()}n.getEditorActions=t;function i(){return ql.INSTANCE.getEditorContributions()}n.getEditorContributions=i;function s(r){return ql.INSTANCE.getEditorContributions().filter(a=>r.indexOf(a.id)>=0)}n.getSomeEditorContributions=s;function o(){return ql.INSTANCE.getDiffEditorContributions()}n.getDiffEditorContributions=o})(G1||(G1={}));const vPe={EditorCommonContributions:"editor.contributions"};class ql{constructor(){this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}registerEditorContribution(e,t,i){this.editorContributions.push({id:e,ctor:t,instantiation:i})}getEditorContributions(){return this.editorContributions.slice(0)}getDiffEditorContributions(){return this.diffEditorContributions.slice(0)}registerEditorAction(e){e.register(),this.editorActions.push(e)}getEditorActions(){return this.editorActions}registerEditorCommand(e){e.register(),this.editorCommands[e.id]=e}getEditorCommand(e){return this.editorCommands[e]||null}}ql.INSTANCE=new ql;Un.add(vPe.EditorCommonContributions,ql.INSTANCE);function fD(n){return n.register(),n}const rle=fD(new Pw({id:"undo",precondition:void 0,kbOpts:{weight:0,primary:2104},menuOpts:[{menuId:R.MenubarEditMenu,group:"1_do",title:v({},"&&Undo"),order:1},{menuId:R.CommandPalette,group:"",title:v("undo","Undo"),order:1}]}));fD(new nle(rle,{id:"default:undo",precondition:void 0}));const ale=fD(new Pw({id:"redo",precondition:void 0,kbOpts:{weight:0,primary:2103,secondary:[3128],mac:{primary:3128}},menuOpts:[{menuId:R.MenubarEditMenu,group:"1_do",title:v({},"&&Redo"),order:2},{menuId:R.CommandPalette,group:"",title:v("redo","Redo"),order:1}]}));fD(new nle(ale,{id:"default:redo",precondition:void 0}));const bPe=fD(new Pw({id:"editor.action.selectAll",precondition:void 0,kbOpts:{weight:0,kbExpr:null,primary:2079},menuOpts:[{menuId:R.MenubarSelectionMenu,group:"1_basic",title:v({},"&&Select All"),order:1},{menuId:R.CommandPalette,group:"",title:v("selectAll","Select All"),order:1}]})),CPe="$initialize";let TY=!1;function hB(n){u_&&(TY||(TY=!0,console.warn("Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/microsoft/monaco-editor#faq")),console.warn(n.message))}class wPe{constructor(e,t,i,s){this.vsWorker=e,this.req=t,this.method=i,this.args=s,this.type=0}}class NY{constructor(e,t,i,s){this.vsWorker=e,this.seq=t,this.res=i,this.err=s,this.type=1}}class yPe{constructor(e,t,i,s){this.vsWorker=e,this.req=t,this.eventName=i,this.arg=s,this.type=2}}class SPe{constructor(e,t,i){this.vsWorker=e,this.req=t,this.event=i,this.type=3}}class xPe{constructor(e,t){this.vsWorker=e,this.req=t,this.type=4}}class LPe{constructor(e){this._workerId=-1,this._handler=e,this._lastSentReq=0,this._pendingReplies=Object.create(null),this._pendingEmitters=new Map,this._pendingEvents=new Map}setWorkerId(e){this._workerId=e}sendMessage(e,t){const i=String(++this._lastSentReq);return new Promise((s,o)=>{this._pendingReplies[i]={resolve:s,reject:o},this._send(new wPe(this._workerId,i,e,t))})}listen(e,t){let i=null;const s=new X({onWillAddFirstListener:()=>{i=String(++this._lastSentReq),this._pendingEmitters.set(i,s),this._send(new yPe(this._workerId,i,e,t))},onDidRemoveLastListener:()=>{this._pendingEmitters.delete(i),this._send(new xPe(this._workerId,i)),i=null}});return s.event}handleMessage(e){!e||!e.vsWorker||this._workerId!==-1&&e.vsWorker!==this._workerId||this._handleMessage(e)}_handleMessage(e){switch(e.type){case 1:return this._handleReplyMessage(e);case 0:return this._handleRequestMessage(e);case 2:return this._handleSubscribeEventMessage(e);case 3:return this._handleEventMessage(e);case 4:return this._handleUnsubscribeEventMessage(e)}}_handleReplyMessage(e){if(!this._pendingReplies[e.seq]){console.warn("Got reply to unknown seq");return}const t=this._pendingReplies[e.seq];if(delete this._pendingReplies[e.seq],e.err){let i=e.err;e.err.$isError&&(i=new Error,i.name=e.err.name,i.message=e.err.message,i.stack=e.err.stack),t.reject(i);return}t.resolve(e.res)}_handleRequestMessage(e){const t=e.req;this._handler.handleMessage(e.method,e.args).then(s=>{this._send(new NY(this._workerId,t,s,void 0))},s=>{s.detail instanceof Error&&(s.detail=iY(s.detail)),this._send(new NY(this._workerId,t,void 0,iY(s)))})}_handleSubscribeEventMessage(e){const t=e.req,i=this._handler.handleEvent(e.eventName,e.arg)(s=>{this._send(new SPe(this._workerId,t,s))});this._pendingEvents.set(t,i)}_handleEventMessage(e){if(!this._pendingEmitters.has(e.req)){console.warn("Got event for unknown req");return}this._pendingEmitters.get(e.req).fire(e.event)}_handleUnsubscribeEventMessage(e){if(!this._pendingEvents.has(e.req)){console.warn("Got unsubscribe for unknown req");return}this._pendingEvents.get(e.req).dispose(),this._pendingEvents.delete(e.req)}_send(e){const t=[];if(e.type===0)for(let i=0;i{this._protocol.handleMessage(d)},d=>{s==null||s(d)})),this._protocol=new LPe({sendMessage:(d,u)=>{this._worker.postMessage(d,u)},handleMessage:(d,u)=>{if(typeof i[d]!="function")return Promise.reject(new Error("Missing method "+d+" on main thread host."));try{return Promise.resolve(i[d].apply(i,u))}catch(h){return Promise.reject(h)}},handleEvent:(d,u)=>{if(cle(d)){const h=i[d].call(i,u);if(typeof h!="function")throw new Error(`Missing dynamic event ${d} on main thread host.`);return h}if(lle(d)){const h=i[d];if(typeof h!="function")throw new Error(`Missing event ${d} on main thread host.`);return h}throw new Error(`Malformed event name ${d}`)}}),this._protocol.setWorkerId(this._worker.getId());let o=null;const r=globalThis.require;typeof r<"u"&&typeof r.getConfig=="function"?o=r.getConfig():typeof globalThis.requirejs<"u"&&(o=globalThis.requirejs.s.contexts._.config);const a=RV(i);this._onModuleLoaded=this._protocol.sendMessage(CPe,[this._worker.getId(),JSON.parse(JSON.stringify(o)),t,a]);const l=(d,u)=>this._request(d,u),c=(d,u)=>this._protocol.listen(d,u);this._lazyProxy=new Promise((d,u)=>{s=u,this._onModuleLoaded.then(h=>{d(DPe(h,l,c))},h=>{u(h),this._onError("Worker failed to load "+t,h)})})}getProxyObject(){return this._lazyProxy}_request(e,t){return new Promise((i,s)=>{this._onModuleLoaded.then(()=>{this._protocol.sendMessage(e,t).then(i,s)},s)})}_onError(e,t){console.error(e),console.info(t)}}function lle(n){return n[0]==="o"&&n[1]==="n"&&Ku(n.charCodeAt(2))}function cle(n){return/^onDynamic/.test(n)&&Ku(n.charCodeAt(9))}function DPe(n,e,t){const i=r=>function(){const a=Array.prototype.slice.call(arguments,0);return e(r,a)},s=r=>function(a){return t(r,a)},o={};for(const r of n){if(cle(r)){o[r]=s(r);continue}if(lle(r)){o[r]=t(r,void 0);continue}o[r]=i(r)}return o}function Bg(n,e){var t;const i=globalThis.MonacoEnvironment;if(i!=null&&i.createTrustedTypesPolicy)try{return i.createTrustedTypesPolicy(n,e)}catch(s){Mt(s);return}try{return(t=Ji.trustedTypes)===null||t===void 0?void 0:t.createPolicy(n,e)}catch(s){Mt(s);return}}const AY=Bg("defaultWorkerFactory",{createScriptURL:n=>n});function IPe(n){const e=globalThis.MonacoEnvironment;if(e){if(typeof e.getWorker=="function")return e.getWorker("workerMain.js",n);if(typeof e.getWorkerUrl=="function"){const t=e.getWorkerUrl("workerMain.js",n);return new Worker(AY?AY.createScriptURL(t):t,{name:n})}}throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}function EPe(n){return typeof n.then=="function"}class TPe extends ne{constructor(e,t,i,s,o){super(),this.id=t,this.label=i;const r=IPe(i);EPe(r)?this.worker=r:this.worker=Promise.resolve(r),this.postMessage(e,[]),this.worker.then(a=>{a.onmessage=function(l){s(l.data)},a.onmessageerror=o,typeof a.addEventListener=="function"&&a.addEventListener("error",o)}),this._register(dt(()=>{var a;(a=this.worker)===null||a===void 0||a.then(l=>{l.onmessage=null,l.onmessageerror=null,l.removeEventListener("error",o),l.terminate()}),this.worker=null}))}getId(){return this.id}postMessage(e,t){var i;(i=this.worker)===null||i===void 0||i.then(s=>{try{s.postMessage(e,t)}catch(o){Mt(o),Mt(new Error(`FAILED to post message to '${this.label}'-worker`,{cause:o}))}})}}class xM{constructor(e){this._label=e,this._webWorkerFailedBeforeError=!1}create(e,t,i){const s=++xM.LAST_WORKER_ID;if(this._webWorkerFailedBeforeError)throw this._webWorkerFailedBeforeError;return new TPe(e,s,this._label||"anonymous"+s,t,o=>{hB(o),this._webWorkerFailedBeforeError=o,i(o)})}}xM.LAST_WORKER_ID=0;var Ds;(function(n){n[n.None=0]="None",n[n.Indent=1]="Indent",n[n.IndentOutdent=2]="IndentOutdent",n[n.Outdent=3]="Outdent"})(Ds||(Ds={}));class VF{constructor(e){if(this._neutralCharacter=null,this._neutralCharacterSearched=!1,this.open=e.open,this.close=e.close,this._inString=!0,this._inComment=!0,this._inRegEx=!0,Array.isArray(e.notIn))for(let t=0,i=e.notIn.length;tnew VF(t)):e.brackets?this._autoClosingPairs=e.brackets.map(t=>new VF({open:t[0],close:t[1]})):this._autoClosingPairs=[],e.__electricCharacterSupport&&e.__electricCharacterSupport.docComment){const t=e.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new VF({open:t.open,close:t.close||""}))}this._autoCloseBeforeForQuotes=typeof e.autoCloseBefore=="string"?e.autoCloseBefore:AC.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES,this._autoCloseBeforeForBrackets=typeof e.autoCloseBefore=="string"?e.autoCloseBefore:AC.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS,this._surroundingPairs=e.surroundingPairs||this._autoClosingPairs}getAutoClosingPairs(){return this._autoClosingPairs}getAutoCloseBeforeSet(e){return e?this._autoCloseBeforeForQuotes:this._autoCloseBeforeForBrackets}getSurroundingPairs(){return this._surroundingPairs}}AC.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES=`;:.,=}])> `;AC.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS=`'"\`;:.,=}])> `;function xv(n,e){const t=n.getCount(),i=n.findTokenIndexAtOffset(e),s=n.getLanguageId(i);let o=i;for(;o+10&&n.getLanguageId(r-1)===s;)r--;return new APe(n,s,r,o+1,n.getStartOffset(r),n.getEndOffset(o))}class APe{constructor(e,t,i,s,o,r){this._scopedLineTokensBrand=void 0,this._actual=e,this.languageId=t,this._firstTokenIndex=i,this._lastTokenIndex=s,this.firstCharOffset=o,this._lastCharOffset=r,this.languageIdCodec=e.languageIdCodec}getLineContent(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)}getLineLength(){return this._lastCharOffset-this.firstCharOffset}getActualLineContentBefore(e){return this._actual.getLineContent().substring(0,this.firstCharOffset+e)}getTokenCount(){return this._lastTokenIndex-this._firstTokenIndex}findTokenIndexAtOffset(e){return this._actual.findTokenIndexAtOffset(e+this.firstCharOffset)-this._firstTokenIndex}getStandardTokenType(e){return this._actual.getStandardTokenType(e+this._firstTokenIndex)}toIViewLineTokens(){return this._actual.sliceAndInflate(this.firstCharOffset,this._lastCharOffset,0)}}function Fu(n){return(n&3)!==0}const RY=typeof Buffer<"u";let zF;class LM{static wrap(e){return RY&&!Buffer.isBuffer(e)&&(e=Buffer.from(e.buffer,e.byteOffset,e.byteLength)),new LM(e)}constructor(e){this.buffer=e,this.byteLength=this.buffer.byteLength}toString(){return RY?this.buffer.toString():(zF||(zF=new TextDecoder),zF.decode(this.buffer))}}function RPe(n,e){return n[e+0]<<0>>>0|n[e+1]<<8>>>0}function MPe(n,e,t){n[t+0]=e&255,e=e>>>8,n[t+1]=e&255}function Dd(n,e){return n[e]*2**24+n[e+1]*2**16+n[e+2]*2**8+n[e+3]}function Id(n,e,t){n[t+3]=e,e=e>>>8,n[t+2]=e,e=e>>>8,n[t+1]=e,e=e>>>8,n[t]=e}function MY(n,e){return n[e]}function PY(n,e,t){n[t]=e}let $F;function dle(){return $F||($F=new TextDecoder("UTF-16LE")),$F}let UF;function PPe(){return UF||(UF=new TextDecoder("UTF-16BE")),UF}let jF;function ule(){return jF||(jF=Zre()?dle():PPe()),jF}function OPe(n,e,t){const i=new Uint16Array(n.buffer,e,t);return t>0&&(i[0]===65279||i[0]===65534)?FPe(n,e,t):dle().decode(i)}function FPe(n,e,t){const i=[];let s=0;for(let o=0;o=this._capacity){this._flushBuffer(),this._completedStrings[this._completedStrings.length]=e;return}for(let i=0;i[r[0].toLowerCase(),r[1].toLowerCase()]);const t=[];for(let r=0;r{const[l,c]=r,[d,u]=a;return l===d||l===u||c===d||c===u},s=(r,a)=>{const l=Math.min(r,a),c=Math.max(r,a);for(let d=0;d0&&o.push({open:a,close:l})}return o}class WPe{constructor(e,t){this._richEditBracketsBrand=void 0;const i=BPe(t);this.brackets=i.map((s,o)=>new z2(e,o,s.open,s.close,HPe(s.open,s.close,i,o),VPe(s.open,s.close,i,o))),this.forwardRegex=zPe(this.brackets),this.reversedRegex=$Pe(this.brackets),this.textIsBracket={},this.textIsOpenBracket={},this.maxBracketLength=0;for(const s of this.brackets){for(const o of s.open)this.textIsBracket[o]=s,this.textIsOpenBracket[o]=!0,this.maxBracketLength=Math.max(this.maxBracketLength,o.length);for(const o of s.close)this.textIsBracket[o]=s,this.textIsOpenBracket[o]=!1,this.maxBracketLength=Math.max(this.maxBracketLength,o.length)}}}function hle(n,e,t,i){for(let s=0,o=e.length;s=0&&i.push(a);for(const a of r.close)a.indexOf(n)>=0&&i.push(a)}}function fle(n,e){return n.length-e.length}function kM(n){if(n.length<=1)return n;const e=[],t=new Set;for(const i of n)t.has(i)||(e.push(i),t.add(i));return e}function HPe(n,e,t,i){let s=[];s=s.concat(n),s=s.concat(e);for(let o=0,r=s.length;o=0;r--)s[o++]=i.charCodeAt(r);return ule().decode(s)}let e=null,t=null;return function(s){return e!==s&&(e=s,t=n(e)),t}}();class Oc{static _findPrevBracketInText(e,t,i,s){const o=i.match(e);if(!o)return null;const r=i.length-(o.index||0),a=o[0].length,l=s+r;return new A(t,l-a+1,t,l+1)}static findPrevBracketInRange(e,t,i,s,o){const a=dz(i).substring(i.length-o,i.length-s);return this._findPrevBracketInText(e,t,a,s)}static findNextBracketInText(e,t,i,s){const o=i.match(e);if(!o)return null;const r=o.index||0,a=o[0].length;if(a===0)return null;const l=s+r;return new A(t,l+1,t,l+1+a)}static findNextBracketInRange(e,t,i,s,o){const r=i.substring(s,o);return this.findNextBracketInText(e,t,r,s)}}class jPe{constructor(e){this._richEditBrackets=e}getElectricCharacters(){const e=[];if(this._richEditBrackets)for(const t of this._richEditBrackets.brackets)for(const i of t.close){const s=i.charAt(i.length-1);e.push(s)}return xg(e)}onElectricCharacter(e,t,i){if(!this._richEditBrackets||this._richEditBrackets.brackets.length===0)return null;const s=t.findTokenIndexAtOffset(i-1);if(Fu(t.getStandardTokenType(s)))return null;const o=this._richEditBrackets.reversedRegex,r=t.getLineContent().substring(0,i-1)+e,a=Oc.findPrevBracketInRange(o,1,r,0,r.length);if(!a)return null;const l=r.substring(a.startColumn-1,a.endColumn-1).toLowerCase();if(this._richEditBrackets.textIsOpenBracket[l])return null;const d=t.getActualLineContentBefore(a.startColumn-1);return/^\s*$/.test(d)?{matchOpenBracket:l}:null}}function DE(n){return n.global&&(n.lastIndex=0),!0}class KPe{constructor(e){this._indentationRules=e}shouldIncrease(e){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&DE(this._indentationRules.increaseIndentPattern)&&this._indentationRules.increaseIndentPattern.test(e))}shouldDecrease(e){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&DE(this._indentationRules.decreaseIndentPattern)&&this._indentationRules.decreaseIndentPattern.test(e))}shouldIndentNextLine(e){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&DE(this._indentationRules.indentNextLinePattern)&&this._indentationRules.indentNextLinePattern.test(e))}shouldIgnore(e){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&DE(this._indentationRules.unIndentedLinePattern)&&this._indentationRules.unIndentedLinePattern.test(e))}getIndentMetadata(e){let t=0;return this.shouldIncrease(e)&&(t+=1),this.shouldDecrease(e)&&(t+=2),this.shouldIndentNextLine(e)&&(t+=4),this.shouldIgnore(e)&&(t+=8),t}}class p1{constructor(e){e=e||{},e.brackets=e.brackets||[["(",")"],["{","}"],["[","]"]],this._brackets=[],e.brackets.forEach(t=>{const i=p1._createOpenBracketRegExp(t[0]),s=p1._createCloseBracketRegExp(t[1]);i&&s&&this._brackets.push({open:t[0],openRegExp:i,close:t[1],closeRegExp:s})}),this._regExpRules=e.onEnterRules||[]}onEnter(e,t,i,s){if(e>=3)for(let o=0,r=this._regExpRules.length;oc.reg?(c.reg.lastIndex=0,c.reg.test(c.text)):!0))return a.action}if(e>=2&&i.length>0&&s.length>0)for(let o=0,r=this._brackets.length;o=2&&i.length>0){for(let o=0,r=this._brackets.length;o"u"?t:o}function GPe(n){return n.replace(/[\[\]]/g,"")}const An=Jt("languageService");class qu{constructor(e,t=[],i=!1){this.ctor=e,this.staticArguments=t,this.supportsDelayedInstantiation=i}}const mle=[];function ai(n,e,t){e instanceof qu||(e=new qu(e,[],!!t)),mle.push([n,e])}function FY(){return mle}const ss=Object.freeze({text:"text/plain",binary:"application/octet-stream",unknown:"application/unknown",markdown:"text/markdown",latex:"text/latex",uriList:"text/uri-list"}),DM={JSONContribution:"base.contributions.json"};function ZPe(n){return n.length>0&&n.charAt(n.length-1)==="#"?n.substring(0,n.length-1):n}class YPe{constructor(){this._onDidChangeSchema=new X,this.schemasById={}}registerSchema(e,t){this.schemasById[ZPe(e)]=t,this._onDidChangeSchema.fire(e)}notifySchemaChanged(e){this._onDidChangeSchema.fire(e)}}const XPe=new YPe;Un.add(DM.JSONContribution,XPe);const _u={Configuration:"base.contributions.configuration"},IE="vscode://schemas/settings/resourceLanguage",BY=Un.as(DM.JSONContribution);class QPe{constructor(){this.overrideIdentifiers=new Set,this._onDidSchemaChange=new X,this._onDidUpdateConfiguration=new X,this.configurationDefaultsOverrides=new Map,this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:v("defaultLanguageConfigurationOverrides.title","Default Language Configuration Overrides"),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.policyConfigurations=new Map,this.excludedConfigurationProperties={},BY.registerSchema(IE,this.resourceLanguageSettingsSchema),this.registerOverridePropertyPatternKey()}registerConfiguration(e,t=!0){this.registerConfigurations([e],t)}registerConfigurations(e,t=!0){const i=new Set;this.doRegisterConfigurations(e,t,i),BY.registerSchema(IE,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:i})}registerDefaultConfigurations(e){const t=new Set;this.doRegisterDefaultConfigurations(e,t),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:t,defaultsOverrides:!0})}doRegisterDefaultConfigurations(e,t){var i;const s=[];for(const{overrides:o,source:r}of e)for(const a in o)if(t.add(a),Bm.test(a)){const l=this.configurationDefaultsOverrides.get(a),c=(i=l==null?void 0:l.valuesSources)!==null&&i!==void 0?i:new Map;if(r)for(const f of Object.keys(o[a]))c.set(f,r);const d={...(l==null?void 0:l.value)||{},...o[a]};this.configurationDefaultsOverrides.set(a,{source:r,value:d,valuesSources:c});const u=GPe(a),h={type:"object",default:d,description:v("defaultLanguageConfiguration.description","Configure settings to be overridden for the {0} language.",u),$ref:IE,defaultDefaultValue:d,source:Pr(r)?void 0:r,defaultValueSource:r};s.push(...$2(a)),this.configurationProperties[a]=h,this.defaultLanguageConfigurationOverridesNode.properties[a]=h}else{this.configurationDefaultsOverrides.set(a,{value:o[a],source:r});const l=this.configurationProperties[a];l&&(this.updatePropertyDefaultValue(a,l),this.updateSchema(a,l))}this.doRegisterOverrideIdentifiers(s)}registerOverrideIdentifiers(e){this.doRegisterOverrideIdentifiers(e),this._onDidSchemaChange.fire()}doRegisterOverrideIdentifiers(e){for(const t of e)this.overrideIdentifiers.add(t);this.updateOverridePropertyPatternKey()}doRegisterConfigurations(e,t,i){e.forEach(s=>{this.validateAndRegisterProperties(s,t,s.extensionInfo,s.restrictedProperties,void 0,i),this.configurationContributors.push(s),this.registerJSONConfiguration(s)})}validateAndRegisterProperties(e,t=!0,i,s,o=3,r){var a;o=ll(e.scope)?o:e.scope;const l=e.properties;if(l)for(const d in l){const u=l[d];if(t&&tOe(d,u)){delete l[d];continue}if(u.source=i,u.defaultDefaultValue=l[d].default,this.updatePropertyDefaultValue(d,u),Bm.test(d)?u.scope=void 0:(u.scope=ll(u.scope)?o:u.scope,u.restricted=ll(u.restricted)?!!(s!=null&&s.includes(d)):u.restricted),l[d].hasOwnProperty("included")&&!l[d].included){this.excludedConfigurationProperties[d]=l[d],delete l[d];continue}else this.configurationProperties[d]=l[d],!((a=l[d].policy)===null||a===void 0)&&a.name&&this.policyConfigurations.set(l[d].policy.name,d);!l[d].deprecationMessage&&l[d].markdownDeprecationMessage&&(l[d].deprecationMessage=l[d].markdownDeprecationMessage),r.add(d)}const c=e.allOf;if(c)for(const d of c)this.validateAndRegisterProperties(d,t,i,s,o,r)}getConfigurationProperties(){return this.configurationProperties}getPolicyConfigurations(){return this.policyConfigurations}registerJSONConfiguration(e){const t=i=>{const s=i.properties;if(s)for(const r in s)this.updateSchema(r,s[r]);const o=i.allOf;o==null||o.forEach(t)};t(e)}updateSchema(e,t){switch(t.scope){case 1:break;case 2:break;case 6:break;case 3:break;case 4:break;case 5:this.resourceLanguageSettingsSchema.properties[e]=t;break}}updateOverridePropertyPatternKey(){for(const e of this.overrideIdentifiers.values()){const t=`[${e}]`,i={type:"object",description:v("overrideSettings.defaultDescription","Configure editor settings to be overridden for a language."),errorMessage:v("overrideSettings.errorMessage","This setting does not support per-language configuration."),$ref:IE};this.updatePropertyDefaultValue(t,i)}}registerOverridePropertyPatternKey(){v("overrideSettings.defaultDescription","Configure editor settings to be overridden for a language."),v("overrideSettings.errorMessage","This setting does not support per-language configuration."),this._onDidSchemaChange.fire()}updatePropertyDefaultValue(e,t){const i=this.configurationDefaultsOverrides.get(e);let s=i==null?void 0:i.value,o=i==null?void 0:i.source;na(s)&&(s=t.defaultDefaultValue,o=void 0),na(s)&&(s=eOe(t.type)),t.default=s,t.defaultValueSource=o}}const _le="\\[([^\\]]+)\\]",WY=new RegExp(_le,"g"),JPe=`^(${_le})+$`,Bm=new RegExp(JPe);function $2(n){const e=[];if(Bm.test(n)){let t=WY.exec(n);for(;t!=null&&t.length;){const i=t[1].trim();i&&e.push(i),t=WY.exec(n)}}return xg(e)}function eOe(n){switch(Array.isArray(n)?n[0]:n){case"boolean":return!1;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}const fN=new QPe;Un.add(_u.Configuration,fN);function tOe(n,e){var t,i,s,o;return n.trim()?Bm.test(n)?v("config.property.languageDefault","Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.",n):fN.getConfigurationProperties()[n]!==void 0?v("config.property.duplicate","Cannot register '{0}'. This property is already registered.",n):!((t=e.policy)===null||t===void 0)&&t.name&&fN.getPolicyConfigurations().get((i=e.policy)===null||i===void 0?void 0:i.name)!==void 0?v("config.policy.duplicate","Cannot register '{0}'. The associated policy {1} is already registered with {2}.",n,(s=e.policy)===null||s===void 0?void 0:s.name,fN.getPolicyConfigurations().get((o=e.policy)===null||o===void 0?void 0:o.name)):null:v("config.property.empty","Cannot register an empty property")}const iOe={ModesRegistry:"editor.modesRegistry"};class nOe{constructor(){this._onDidChangeLanguages=new X,this.onDidChangeLanguages=this._onDidChangeLanguages.event,this._languages=[]}registerLanguage(e){return this._languages.push(e),this._onDidChangeLanguages.fire(void 0),{dispose:()=>{for(let t=0,i=this._languages.length;t{const l=new Set;return{info:new rOe(this,a,l),closing:l}}),o=new lY(a=>{const l=new Set,c=new Set;return{info:new aOe(this,a,l,c),opening:l,openingColorized:c}});for(const[a,l]of i){const c=s.get(a),d=o.get(l);c.closing.add(d.info),d.opening.add(c.info)}const r=t.colorizedBracketPairs?HY(t.colorizedBracketPairs):i.filter(a=>!(a[0]==="<"&&a[1]===">"));for(const[a,l]of r){const c=s.get(a),d=o.get(l);c.closing.add(d.info),d.openingColorized.add(c.info),d.opening.add(c.info)}this._openingBrackets=new Map([...s.cachedValues].map(([a,l])=>[a,l.info])),this._closingBrackets=new Map([...o.cachedValues].map(([a,l])=>[a,l.info]))}get openingBrackets(){return[...this._openingBrackets.values()]}get closingBrackets(){return[...this._closingBrackets.values()]}getOpeningBracketInfo(e){return this._openingBrackets.get(e)}getClosingBracketInfo(e){return this._closingBrackets.get(e)}getBracketInfo(e){return this.getOpeningBracketInfo(e)||this.getClosingBracketInfo(e)}getBracketRegExp(e){const t=Array.from([...this._openingBrackets.keys(),...this._closingBrackets.keys()]);return gD(t,e)}}function HY(n){return n.filter(([e,t])=>e!==""&&t!=="")}class vle{constructor(e,t){this.config=e,this.bracketText=t}get languageId(){return this.config.languageId}}class rOe extends vle{constructor(e,t,i){super(e,t),this.openedBrackets=i,this.isOpeningBracket=!0}}class aOe extends vle{constructor(e,t,i,s){super(e,t),this.openingBrackets=i,this.openingColorizedBrackets=s,this.isOpeningBracket=!1}closes(e){return e.config!==this.config?!1:this.openingBrackets.has(e)}closesColorized(e){return e.config!==this.config?!1:this.openingColorizedBrackets.has(e)}getOpeningBrackets(){return[...this.openingBrackets]}}var lOe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},VY=function(n,e){return function(t,i){e(t,i,n)}};class KF{constructor(e){this.languageId=e}affects(e){return this.languageId?this.languageId===e:!0}}const gn=Jt("languageConfigurationService");let gB=class extends ne{constructor(e,t){super(),this.configurationService=e,this.languageService=t,this._registry=this._register(new hOe),this.onDidChangeEmitter=this._register(new X),this.onDidChange=this.onDidChangeEmitter.event,this.configurations=new Map;const i=new Set(Object.values(pB));this._register(this.configurationService.onDidChangeConfiguration(s=>{const o=s.change.keys.some(a=>i.has(a)),r=s.change.overrides.filter(([a,l])=>l.some(c=>i.has(c))).map(([a])=>a);if(o)this.configurations.clear(),this.onDidChangeEmitter.fire(new KF(void 0));else for(const a of r)this.languageService.isRegisteredLanguageId(a)&&(this.configurations.delete(a),this.onDidChangeEmitter.fire(new KF(a)))})),this._register(this._registry.onDidChange(s=>{this.configurations.delete(s.languageId),this.onDidChangeEmitter.fire(new KF(s.languageId))}))}register(e,t,i){return this._registry.register(e,t,i)}getLanguageConfiguration(e){let t=this.configurations.get(e);return t||(t=cOe(e,this._registry,this.configurationService,this.languageService),this.configurations.set(e,t)),t}};gB=lOe([VY(0,qt),VY(1,An)],gB);function cOe(n,e,t,i){let s=e.getLanguageConfiguration(n);if(!s){if(!i.isRegisteredLanguageId(n))return new Z1(n,{});s=new Z1(n,{})}const o=dOe(s.languageId,t),r=Cle([s.underlyingConfig,o]);return new Z1(s.languageId,r)}const pB={brackets:"editor.language.brackets",colorizedBracketPairs:"editor.language.colorizedBracketPairs"};function dOe(n,e){const t=e.getValue(pB.brackets,{overrideIdentifier:n}),i=e.getValue(pB.colorizedBracketPairs,{overrideIdentifier:n});return{brackets:zY(t),colorizedBracketPairs:zY(i)}}function zY(n){if(Array.isArray(n))return n.map(e=>{if(!(!Array.isArray(e)||e.length!==2))return[e[0],e[1]]}).filter(e=>!!e)}function ble(n,e,t){const i=n.getLineContent(e);let s=on(i);return s.length>t-1&&(s=s.substring(0,t-1)),s}class uOe{constructor(e){this.languageId=e,this._resolved=null,this._entries=[],this._order=0,this._resolved=null}register(e,t){const i=new $Y(e,t,++this._order);return this._entries.push(i),this._resolved=null,dt(()=>{for(let s=0;se.configuration)))}}function Cle(n){let e={comments:void 0,brackets:void 0,wordPattern:void 0,indentationRules:void 0,onEnterRules:void 0,autoClosingPairs:void 0,surroundingPairs:void 0,autoCloseBefore:void 0,folding:void 0,colorizedBracketPairs:void 0,__electricCharacterSupport:void 0};for(const t of n)e={comments:t.comments||e.comments,brackets:t.brackets||e.brackets,wordPattern:t.wordPattern||e.wordPattern,indentationRules:t.indentationRules||e.indentationRules,onEnterRules:t.onEnterRules||e.onEnterRules,autoClosingPairs:t.autoClosingPairs||e.autoClosingPairs,surroundingPairs:t.surroundingPairs||e.surroundingPairs,autoCloseBefore:t.autoCloseBefore||e.autoCloseBefore,folding:t.folding||e.folding,colorizedBracketPairs:t.colorizedBracketPairs||e.colorizedBracketPairs,__electricCharacterSupport:t.__electricCharacterSupport||e.__electricCharacterSupport};return e}class $Y{constructor(e,t,i){this.configuration=e,this.priority=t,this.order=i}static cmp(e,t){return e.priority===t.priority?e.order-t.order:e.priority-t.priority}}class UY{constructor(e){this.languageId=e}}class hOe extends ne{constructor(){super(),this._entries=new Map,this._onDidChange=this._register(new X),this.onDidChange=this._onDidChange.event,this._register(this.register(bl,{brackets:[["(",")"],["[","]"],["{","}"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],colorizedBracketPairs:[],folding:{offSide:!0}},0))}register(e,t,i=0){let s=this._entries.get(e);s||(s=new uOe(e),this._entries.set(e,s));const o=s.register(t,i);return this._onDidChange.fire(new UY(e)),dt(()=>{o.dispose(),this._onDidChange.fire(new UY(e))})}getLanguageConfiguration(e){const t=this._entries.get(e);return(t==null?void 0:t.getResolvedConfiguration())||null}}class Z1{constructor(e,t){this.languageId=e,this.underlyingConfig=t,this._brackets=null,this._electricCharacter=null,this._onEnterSupport=this.underlyingConfig.brackets||this.underlyingConfig.indentationRules||this.underlyingConfig.onEnterRules?new p1(this.underlyingConfig):null,this.comments=Z1._handleComments(this.underlyingConfig),this.characterPair=new AC(this.underlyingConfig),this.wordDefinition=this.underlyingConfig.wordPattern||OV,this.indentationRules=this.underlyingConfig.indentationRules,this.underlyingConfig.indentationRules?this.indentRulesSupport=new KPe(this.underlyingConfig.indentationRules):this.indentRulesSupport=null,this.foldingRules=this.underlyingConfig.folding||{},this.bracketsNew=new oOe(e,this.underlyingConfig)}getWordDefinition(){return FV(this.wordDefinition)}get brackets(){return!this._brackets&&this.underlyingConfig.brackets&&(this._brackets=new WPe(this.languageId,this.underlyingConfig.brackets)),this._brackets}get electricCharacter(){return this._electricCharacter||(this._electricCharacter=new jPe(this.brackets)),this._electricCharacter}onEnter(e,t,i,s){return this._onEnterSupport?this._onEnterSupport.onEnter(e,t,i,s):null}getAutoClosingPairs(){return new NPe(this.characterPair.getAutoClosingPairs())}getAutoCloseBeforeSet(e){return this.characterPair.getAutoCloseBeforeSet(e)}getSurroundingPairs(){return this.characterPair.getSurroundingPairs()}static _handleComments(e){const t=e.comments;if(!t)return null;const i={};if(t.lineComment&&(i.lineCommentToken=t.lineComment),t.blockComment){const[s,o]=t.blockComment;i.blockCommentStartToken=s,i.blockCommentEndToken=o}return i}}ai(gn,gB,1);class mp{constructor(e,t,i,s){this.originalStart=e,this.originalLength=t,this.modifiedStart=i,this.modifiedLength=s}getOriginalEnd(){return this.originalStart+this.originalLength}getModifiedEnd(){return this.modifiedStart+this.modifiedLength}}class jY{constructor(e){this.source=e}getElements(){const e=this.source,t=new Int32Array(e.length);for(let i=0,s=e.length;i0||this.m_modifiedCount>0)&&this.m_changes.push(new mp(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}AddOriginalElement(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++}AddModifiedElement(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++}getChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}getReverseChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}class Ju{constructor(e,t,i=null){this.ContinueProcessingPredicate=i,this._originalSequence=e,this._modifiedSequence=t;const[s,o,r]=Ju._getElements(e),[a,l,c]=Ju._getElements(t);this._hasStrings=r&&c,this._originalStringElements=s,this._originalElementsOrHash=o,this._modifiedStringElements=a,this._modifiedElementsOrHash=l,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(e){return e.length>0&&typeof e[0]=="string"}static _getElements(e){const t=e.getElements();if(Ju._isStringArray(t)){const i=new Int32Array(t.length);for(let s=0,o=t.length;s=e&&s>=i&&this.ElementsAreEqual(t,s);)t--,s--;if(e>t||i>s){let u;return i<=s?(Rb.Assert(e===t+1,"originalStart should only be one more than originalEnd"),u=[new mp(e,0,i,s-i+1)]):e<=t?(Rb.Assert(i===s+1,"modifiedStart should only be one more than modifiedEnd"),u=[new mp(e,t-e+1,i,0)]):(Rb.Assert(e===t+1,"originalStart should only be one more than originalEnd"),Rb.Assert(i===s+1,"modifiedStart should only be one more than modifiedEnd"),u=[]),u}const r=[0],a=[0],l=this.ComputeRecursionPoint(e,t,i,s,r,a,o),c=r[0],d=a[0];if(l!==null)return l;if(!o[0]){const u=this.ComputeDiffRecursive(e,c,i,d,o);let h=[];return o[0]?h=[new mp(c+1,t-(c+1)+1,d+1,s-(d+1)+1)]:h=this.ComputeDiffRecursive(c+1,t,d+1,s,o),this.ConcatenateChanges(u,h)}return[new mp(e,t-e+1,i,s-i+1)]}WALKTRACE(e,t,i,s,o,r,a,l,c,d,u,h,f,g,p,_,b,w){let y=null,S=null,x=new KY,k=t,D=i,I=f[0]-_[0]-s,N=-1073741824,P=this.m_forwardHistory.length-1;do{const O=I+e;O===k||O=0&&(c=this.m_forwardHistory[P],e=c[0],k=1,D=c.length-1)}while(--P>=-1);if(y=x.getReverseChanges(),w[0]){let O=f[0]+1,M=_[0]+1;if(y!==null&&y.length>0){const z=y[y.length-1];O=Math.max(O,z.getOriginalEnd()),M=Math.max(M,z.getModifiedEnd())}S=[new mp(O,h-O+1,M,p-M+1)]}else{x=new KY,k=r,D=a,I=f[0]-_[0]-l,N=1073741824,P=b?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const O=I+o;O===k||O=d[O+1]?(u=d[O+1]-1,g=u-I-l,u>N&&x.MarkNextChange(),N=u+1,x.AddOriginalElement(u+1,g+1),I=O+1-o):(u=d[O-1],g=u-I-l,u>N&&x.MarkNextChange(),N=u,x.AddModifiedElement(u+1,g+1),I=O-1-o),P>=0&&(d=this.m_reverseHistory[P],o=d[0],k=1,D=d.length-1)}while(--P>=-1);S=x.getChanges()}return this.ConcatenateChanges(y,S)}ComputeRecursionPoint(e,t,i,s,o,r,a){let l=0,c=0,d=0,u=0,h=0,f=0;e--,i--,o[0]=0,r[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const g=t-e+(s-i),p=g+1,_=new Int32Array(p),b=new Int32Array(p),w=s-i,y=t-e,S=e-i,x=t-s,D=(y-w)%2===0;_[w]=e,b[y]=t,a[0]=!1;for(let I=1;I<=g/2+1;I++){let N=0,P=0;d=this.ClipDiagonalBound(w-I,I,w,p),u=this.ClipDiagonalBound(w+I,I,w,p);for(let M=d;M<=u;M+=2){M===d||MN+P&&(N=l,P=c),!D&&Math.abs(M-y)<=I-1&&l>=b[M])return o[0]=l,r[0]=c,z<=b[M]&&I<=1448?this.WALKTRACE(w,d,u,S,y,h,f,x,_,b,l,t,o,c,s,r,D,a):null}const O=(N-e+(P-i)-I)/2;if(this.ContinueProcessingPredicate!==null&&!this.ContinueProcessingPredicate(N,O))return a[0]=!0,o[0]=N,r[0]=P,O>0&&I<=1448?this.WALKTRACE(w,d,u,S,y,h,f,x,_,b,l,t,o,c,s,r,D,a):(e++,i++,[new mp(e,t-e+1,i,s-i+1)]);h=this.ClipDiagonalBound(y-I,I,y,p),f=this.ClipDiagonalBound(y+I,I,y,p);for(let M=h;M<=f;M+=2){M===h||M=b[M+1]?l=b[M+1]-1:l=b[M-1],c=l-(M-y)-x;const z=l;for(;l>e&&c>i&&this.ElementsAreEqual(l,c);)l--,c--;if(b[M]=l,D&&Math.abs(M-w)<=I&&l<=_[M])return o[0]=l,r[0]=c,z>=_[M]&&I<=1448?this.WALKTRACE(w,d,u,S,y,h,f,x,_,b,l,t,o,c,s,r,D,a):null}if(I<=1447){let M=new Int32Array(u-d+2);M[0]=w-d+1,Mb.Copy2(_,d,M,1,u-d+1),this.m_forwardHistory.push(M),M=new Int32Array(f-h+2),M[0]=y-h+1,Mb.Copy2(b,h,M,1,f-h+1),this.m_reverseHistory.push(M)}}return this.WALKTRACE(w,d,u,S,y,h,f,x,_,b,l,t,o,c,s,r,D,a)}PrettifyChanges(e){for(let t=0;t0,a=i.modifiedLength>0;for(;i.originalStart+i.originalLength=0;t--){const i=e[t];let s=0,o=0;if(t>0){const u=e[t-1];s=u.originalStart+u.originalLength,o=u.modifiedStart+u.modifiedLength}const r=i.originalLength>0,a=i.modifiedLength>0;let l=0,c=this._boundaryScore(i.originalStart,i.originalLength,i.modifiedStart,i.modifiedLength);for(let u=1;;u++){const h=i.originalStart-u,f=i.modifiedStart-u;if(hc&&(c=p,l=u)}i.originalStart-=l,i.modifiedStart-=l;const d=[null];if(t>0&&this.ChangesOverlap(e[t-1],e[t],d)){e[t-1]=d[0],e.splice(t,1),t++;continue}}if(this._hasStrings)for(let t=1,i=e.length;t0&&f>l&&(l=f,c=u,d=h)}return l>0?[c,d]:null}_contiguousSequenceScore(e,t,i){let s=0;for(let o=0;o=this._originalElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._originalStringElements[e])}_OriginalRegionIsBoundary(e,t){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(t>0){const i=e+t;if(this._OriginalIsBoundary(i-1)||this._OriginalIsBoundary(i))return!0}return!1}_ModifiedIsBoundary(e){return e<=0||e>=this._modifiedElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[e])}_ModifiedRegionIsBoundary(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){const i=e+t;if(this._ModifiedIsBoundary(i-1)||this._ModifiedIsBoundary(i))return!0}return!1}_boundaryScore(e,t,i,s){const o=this._OriginalRegionIsBoundary(e,t)?1:0,r=this._ModifiedRegionIsBoundary(i,s)?1:0;return o+r}ConcatenateChanges(e,t){const i=[];if(e.length===0||t.length===0)return t.length>0?t:e;if(this.ChangesOverlap(e[e.length-1],t[0],i)){const s=new Array(e.length+t.length-1);return Mb.Copy(e,0,s,0,e.length-1),s[e.length-1]=i[0],Mb.Copy(t,1,s,e.length,t.length-1),s}else{const s=new Array(e.length+t.length);return Mb.Copy(e,0,s,0,e.length),Mb.Copy(t,0,s,e.length,t.length),s}}ChangesOverlap(e,t,i){if(Rb.Assert(e.originalStart<=t.originalStart,"Left change is not less than or equal to right change"),Rb.Assert(e.modifiedStart<=t.modifiedStart,"Left change is not less than or equal to right change"),e.originalStart+e.originalLength>=t.originalStart||e.modifiedStart+e.modifiedLength>=t.modifiedStart){const s=e.originalStart;let o=e.originalLength;const r=e.modifiedStart;let a=e.modifiedLength;return e.originalStart+e.originalLength>=t.originalStart&&(o=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(a=t.modifiedStart+t.modifiedLength-e.modifiedStart),i[0]=new mp(s,o,r,a),!0}else return i[0]=null,!1}ClipDiagonalBound(e,t,i,s){if(e>=0&&e255?255:n|0}function Pb(n){return n<0?0:n>4294967295?4294967295:n|0}class gOe{constructor(e){this.values=e,this.prefixSum=new Uint32Array(e.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(e,t){e=Pb(e);const i=this.values,s=this.prefixSum,o=t.length;return o===0?!1:(this.values=new Uint32Array(i.length+o),this.values.set(i.subarray(0,e),0),this.values.set(i.subarray(e),e+o),this.values.set(t,e),e-1=0&&this.prefixSum.set(s.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}setValue(e,t){return e=Pb(e),t=Pb(t),this.values[e]===t?!1:(this.values[e]=t,e-1=i.length)return!1;const o=i.length-e;return t>=o&&(t=o),t===0?!1:(this.values=new Uint32Array(i.length-t),this.values.set(i.subarray(0,e),0),this.values.set(i.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1=0&&this.prefixSum.set(s.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return this.values.length===0?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(e){return e<0?0:(e=Pb(e),this._getPrefixSum(e))}_getPrefixSum(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];let t=this.prefixSumValidIndex[0]+1;t===0&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(let i=t;i<=e;i++)this.prefixSum[i]=this.prefixSum[i-1]+this.values[i];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]}getIndexOf(e){e=Math.floor(e),this.getTotalSum();let t=0,i=this.values.length-1,s=0,o=0,r=0;for(;t<=i;)if(s=t+(i-t)/2|0,o=this.prefixSum[s],r=o-this.values[s],e=o)t=s+1;else break;return new wle(s,e-r)}}class pOe{constructor(e){this._values=e,this._isValid=!1,this._validEndIndex=-1,this._prefixSum=[],this._indexBySum=[]}getTotalSum(){return this._ensureValid(),this._indexBySum.length}getPrefixSum(e){return this._ensureValid(),e===0?0:this._prefixSum[e-1]}getIndexOf(e){this._ensureValid();const t=this._indexBySum[e],i=t>0?this._prefixSum[t-1]:0;return new wle(t,e-i)}removeValues(e,t){this._values.splice(e,t),this._invalidate(e)}insertValues(e,t){this._values=eM(this._values,e,t),this._invalidate(e)}_invalidate(e){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,e-1)}_ensureValid(){if(!this._isValid){for(let e=this._validEndIndex+1,t=this._values.length;e0?this._prefixSum[e-1]:0;this._prefixSum[e]=s+i;for(let o=0;o=0&&e<256?this._asciiMap[e]=i:this._map.set(e,i)}get(e){return e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue}clear(){this._asciiMap.fill(this._defaultValue),this._map.clear()}}class j2{constructor(){this._actual=new Fw(0)}add(e){this._actual.set(e,1)}has(e){return this._actual.get(e)===1}clear(){return this._actual.clear()}}class _Oe{constructor(e,t,i){const s=new Uint8Array(e*t);for(let o=0,r=e*t;ot&&(t=l),a>i&&(i=a),c>i&&(i=c)}t++,i++;const s=new _Oe(i,t,0);for(let o=0,r=e.length;o=this._maxCharCode?0:this._states.get(e,t)}}let qF=null;function bOe(){return qF===null&&(qF=new vOe([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),qF}let Ry=null;function COe(){if(Ry===null){Ry=new Fw(0);const n=` <>'"、。。、,.:;‘〈「『〔([{「」}])〕』」〉’`~…`;for(let t=0;ts);if(s>0){const a=t.charCodeAt(s-1),l=t.charCodeAt(r);(a===40&&l===41||a===91&&l===93||a===123&&l===125)&&r--}return{range:{startLineNumber:i,startColumn:s+1,endLineNumber:i,endColumn:r+2},url:t.substring(s,r+1)}}static computeLinks(e,t=bOe()){const i=COe(),s=[];for(let o=1,r=e.getLineCount();o<=r;o++){const a=e.getLineContent(o),l=a.length;let c=0,d=0,u=0,h=1,f=!1,g=!1,p=!1,_=!1;for(;c=0?(s+=i?1:-1,s<0?s=e.length-1:s%=e.length,e[s]):null}}mB.INSTANCE=new mB;var qY,GY;class yOe{constructor(e,t){this.uri=e,this.value=t}}function SOe(n){return Array.isArray(n)}class hs{constructor(e,t){if(this[qY]="ResourceMap",e instanceof hs)this.map=new Map(e.map),this.toKey=t??hs.defaultToKey;else if(SOe(e)){this.map=new Map,this.toKey=t??hs.defaultToKey;for(const[i,s]of e)this.set(i,s)}else this.map=new Map,this.toKey=e??hs.defaultToKey}set(e,t){return this.map.set(this.toKey(e),new yOe(e,t)),this}get(e){var t;return(t=this.map.get(this.toKey(e)))===null||t===void 0?void 0:t.value}has(e){return this.map.has(this.toKey(e))}get size(){return this.map.size}clear(){this.map.clear()}delete(e){return this.map.delete(this.toKey(e))}forEach(e,t){typeof t<"u"&&(e=e.bind(t));for(const[i,s]of this.map)e(s.value,s.uri,this)}*values(){for(const e of this.map.values())yield e.value}*keys(){for(const e of this.map.values())yield e.uri}*entries(){for(const e of this.map.values())yield[e.uri,e.value]}*[(qY=Symbol.toStringTag,Symbol.iterator)](){for(const[,e]of this.map)yield[e.uri,e.value]}}hs.defaultToKey=n=>n.toString();class xOe{constructor(){this[GY]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){var e;return(e=this._head)===null||e===void 0?void 0:e.value}get last(){var e;return(e=this._tail)===null||e===void 0?void 0:e.value}has(e){return this._map.has(e)}get(e,t=0){const i=this._map.get(e);if(i)return t!==0&&this.touch(i,t),i.value}set(e,t,i=0){let s=this._map.get(e);if(s)s.value=t,i!==0&&this.touch(s,i);else{switch(s={key:e,value:t,next:void 0,previous:void 0},i){case 0:this.addItemLast(s);break;case 1:this.addItemFirst(s);break;case 2:this.addItemLast(s);break;default:this.addItemLast(s);break}this._map.set(e,s),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){const t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){const i=this._state;let s=this._head;for(;s;){if(t?e.bind(t)(s.value,s.key,this):e(s.value,s.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");s=s.next}}keys(){const e=this,t=this._state;let i=this._head;const s={[Symbol.iterator](){return s},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const o={value:i.key,done:!1};return i=i.next,o}else return{value:void 0,done:!0}}};return s}values(){const e=this,t=this._state;let i=this._head;const s={[Symbol.iterator](){return s},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const o={value:i.value,done:!1};return i=i.next,o}else return{value:void 0,done:!0}}};return s}entries(){const e=this,t=this._state;let i=this._head;const s={[Symbol.iterator](){return s},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const o={value:[i.key,i.value],done:!1};return i=i.next,o}else return{value:void 0,done:!0}}};return s}[(GY=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._head,i=this.size;for(;t&&i>e;)this._map.delete(t.key),t=t.next,i--;this._head=t,this._size=i,t&&(t.previous=void 0),this._state++}trimNew(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._tail,i=this.size;for(;t&&i>e;)this._map.delete(t.key),t=t.previous,i--;this._tail=t,this._size=i,t&&(t.next=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{const t=e.next,i=e.previous;if(!t||!i)throw new Error("Invalid list");t.previous=i,i.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(t!==1&&t!==2)){if(t===1){if(e===this._head)return;const i=e.next,s=e.previous;e===this._tail?(s.next=void 0,this._tail=s):(i.previous=s,s.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(t===2){if(e===this._tail)return;const i=e.next,s=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=s,s.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){const e=[];return this.forEach((t,i)=>{e.push([i,t])}),e}fromJSON(e){this.clear();for(const[t,i]of e)this.set(t,i)}}class LOe extends xOe{constructor(e,t=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,t),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get(e,t=2){return super.get(e,t)}peek(e){return super.get(e,0)}set(e,t){return super.set(e,t,2),this}checkTrim(){this.size>this._limit&&this.trim(Math.round(this._limit*this._ratio))}}class zh extends LOe{constructor(e,t=1){super(e,t)}trim(e){this.trimOld(e)}set(e,t){return super.set(e,t),this.checkTrim(),this}}class kOe{constructor(e){if(this._m1=new Map,this._m2=new Map,e)for(const[t,i]of e)this.set(t,i)}clear(){this._m1.clear(),this._m2.clear()}set(e,t){this._m1.set(e,t),this._m2.set(t,e)}get(e){return this._m1.get(e)}getKey(e){return this._m2.get(e)}delete(e){const t=this._m1.get(e);return t===void 0?!1:(this._m1.delete(e),this._m2.delete(t),!0)}keys(){return this._m1.keys()}values(){return this._m1.values()}}class uz{constructor(){this.map=new Map}add(e,t){let i=this.map.get(e);i||(i=new Set,this.map.set(e,i)),i.add(t)}delete(e,t){const i=this.map.get(e);i&&(i.delete(t),i.size===0&&this.map.delete(e))}forEach(e,t){const i=this.map.get(e);i&&i.forEach(t)}get(e){const t=this.map.get(e);return t||new Set}}class DOe extends Fw{constructor(e,t){super(0),this._segmenter=null,this._cachedLine=null,this._cachedSegments=[],this.intlSegmenterLocales=t,this.intlSegmenterLocales.length>0?this._segmenter=new Intl.Segmenter(this.intlSegmenterLocales,{granularity:"word"}):this._segmenter=null;for(let i=0,s=e.length;it)break;i=s}return i}findNextIntlWordAtOrAfterOffset(e,t){for(const i of this._getIntlSegmenterWordsOnLine(e))if(!(i.index=0;let t=null;try{t=bae(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:e,global:!0,unicode:!0})}catch{return null}if(!t)return null;let i=!this.isRegex&&!e;return i&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(i=this.matchCase),new EOe(t,this.wordSeparators?cc(this.wordSeparators,[]):null,i?this.searchString:null)}}function AOe(n){if(!n||n.length===0)return!1;for(let e=0,t=n.length;e=t)break;const s=n.charCodeAt(e);if(s===110||s===114||s===87)return!0}}return!1}function uv(n,e,t){if(!t)return new pL(n,null);const i=[];for(let s=0,o=e.length;s>0);t[o]>=e?s=o-1:t[o+1]>=e?(i=o,s=o):i=o+1}return i+1}}class EE{static findMatches(e,t,i,s,o){const r=t.parseSearchRequest();return r?r.regex.multiline?this._doFindMatchesMultiline(e,i,new m1(r.wordSeparators,r.regex),s,o):this._doFindMatchesLineByLine(e,i,r,s,o):[]}static _getMultilineMatchRange(e,t,i,s,o,r){let a,l=0;s?(l=s.findLineFeedCountBeforeOffset(o),a=t+o+l):a=t+o;let c;if(s){const f=s.findLineFeedCountBeforeOffset(o+r.length)-l;c=a+r.length+f}else c=a+r.length;const d=e.getPositionAt(a),u=e.getPositionAt(c);return new A(d.lineNumber,d.column,u.lineNumber,u.column)}static _doFindMatchesMultiline(e,t,i,s,o){const r=e.getOffsetAt(t.getStartPosition()),a=e.getValueInRange(t,1),l=e.getEOL()===`\r `?new YY(a):null,c=[];let d=0,u;for(i.reset(0);u=i.next(a);)if(c[d++]=uv(this._getMultilineMatchRange(e,r,a,l,u.index,u[0]),u,s),d>=o)return c;return c}static _doFindMatchesLineByLine(e,t,i,s,o){const r=[];let a=0;if(t.startLineNumber===t.endLineNumber){const c=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);return a=this._findMatchesInLine(i,c,t.startLineNumber,t.startColumn-1,a,r,s,o),r}const l=e.getLineContent(t.startLineNumber).substring(t.startColumn-1);a=this._findMatchesInLine(i,l,t.startLineNumber,t.startColumn-1,a,r,s,o);for(let c=t.startLineNumber+1;c=l))return o;return o}const d=new m1(e.wordSeparators,e.regex);let u;d.reset(0);do if(u=d.next(t),u&&(r[o++]=uv(new A(i,u.index+1+s,i,u.index+1+u[0].length+s),u,a),o>=l))return o;while(u);return o}static findNextMatch(e,t,i,s){const o=t.parseSearchRequest();if(!o)return null;const r=new m1(o.wordSeparators,o.regex);return o.regex.multiline?this._doFindNextMatchMultiline(e,i,r,s):this._doFindNextMatchLineByLine(e,i,r,s)}static _doFindNextMatchMultiline(e,t,i,s){const o=new ee(t.lineNumber,1),r=e.getOffsetAt(o),a=e.getLineCount(),l=e.getValueInRange(new A(o.lineNumber,o.column,a,e.getLineMaxColumn(a)),1),c=e.getEOL()===`\r `?new YY(l):null;i.reset(t.column-1);const d=i.next(l);return d?uv(this._getMultilineMatchRange(e,r,l,c,d.index,d[0]),d,s):t.lineNumber!==1||t.column!==1?this._doFindNextMatchMultiline(e,new ee(1,1),i,s):null}static _doFindNextMatchLineByLine(e,t,i,s){const o=e.getLineCount(),r=t.lineNumber,a=e.getLineContent(r),l=this._findFirstMatchInLine(i,a,r,t.column,s);if(l)return l;for(let c=1;c<=o;c++){const d=(r+c-1)%o,u=e.getLineContent(d+1),h=this._findFirstMatchInLine(i,u,d+1,1,s);if(h)return h}return null}static _findFirstMatchInLine(e,t,i,s,o){e.reset(s-1);const r=e.next(t);return r?uv(new A(i,r.index+1,i,r.index+1+r[0].length),r,o):null}static findPreviousMatch(e,t,i,s){const o=t.parseSearchRequest();if(!o)return null;const r=new m1(o.wordSeparators,o.regex);return o.regex.multiline?this._doFindPreviousMatchMultiline(e,i,r,s):this._doFindPreviousMatchLineByLine(e,i,r,s)}static _doFindPreviousMatchMultiline(e,t,i,s){const o=this._doFindMatchesMultiline(e,new A(1,1,t.lineNumber,t.column),i,s,10*NOe);if(o.length>0)return o[o.length-1];const r=e.getLineCount();return t.lineNumber!==r||t.column!==e.getLineMaxColumn(r)?this._doFindPreviousMatchMultiline(e,new ee(r,e.getLineMaxColumn(r)),i,s):null}static _doFindPreviousMatchLineByLine(e,t,i,s){const o=e.getLineCount(),r=t.lineNumber,a=e.getLineContent(r).substring(0,t.column-1),l=this._findLastMatchInLine(i,a,r,s);if(l)return l;for(let c=1;c<=o;c++){const d=(o+r-c-1)%o,u=e.getLineContent(d+1),h=this._findLastMatchInLine(i,u,d+1,s);if(h)return h}return null}static _findLastMatchInLine(e,t,i,s){let o=null,r;for(e.reset(0);r=e.next(t);)o=uv(new A(i,r.index+1,i,r.index+1+r[0].length),r,s);return o}}function ROe(n,e,t,i,s){if(i===0)return!0;const o=e.charCodeAt(i-1);if(n.get(o)!==0||o===13||o===10)return!0;if(s>0){const r=e.charCodeAt(i);if(n.get(r)!==0)return!0}return!1}function MOe(n,e,t,i,s){if(i+s===t)return!0;const o=e.charCodeAt(i+s);if(n.get(o)!==0||o===13||o===10)return!0;if(s>0){const r=e.charCodeAt(i+s-1);if(n.get(r)!==0)return!0}return!1}function hz(n,e,t,i,s){return ROe(n,e,t,i,s)&&MOe(n,e,t,i,s)}class m1{constructor(e,t){this._wordSeparators=e,this._searchRegex=t,this._prevMatchStartIndex=-1,this._prevMatchLength=0}reset(e){this._searchRegex.lastIndex=e,this._prevMatchStartIndex=-1,this._prevMatchLength=0}next(e){const t=e.length;let i;do{if(this._prevMatchStartIndex+this._prevMatchLength===t||(i=this._searchRegex.exec(e),!i))return null;const s=i.index,o=i[0].length;if(s===this._prevMatchStartIndex&&o===this._prevMatchLength){if(o===0){P2(e,t,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=s,this._prevMatchLength=o,!this._wordSeparators||hz(this._wordSeparators,e,t,s,o))return i}while(i);return null}}class fz{static computeUnicodeHighlights(e,t,i){const s=i?i.startLineNumber:1,o=i?i.endLineNumber:e.getLineCount(),r=new XY(t),a=r.getCandidateCodePoints();let l;a==="allNonBasicAscii"?l=new RegExp("[^\\t\\n\\r\\x20-\\x7E]","g"):l=new RegExp(`${POe(Array.from(a))}`,"g");const c=new m1(null,l),d=[];let u=!1,h,f=0,g=0,p=0;e:for(let _=s,b=o;_<=b;_++){const w=e.getLineContent(_),y=w.length;c.reset(0);do if(h=c.next(w),h){let S=h.index,x=h.index+h[0].length;if(S>0){const N=w.charCodeAt(S-1);Gs(N)&&S--}if(x+1=1e3){u=!0;break e}d.push(new A(_,S+1,_,x+1))}}while(h)}return{ranges:d,hasMore:u,ambiguousCharacterCount:f,invisibleCharacterCount:g,nonBasicAsciiCharacterCount:p}}static computeUnicodeHighlightReason(e,t){const i=new XY(t);switch(i.shouldHighlightNonBasicASCII(e,null)){case 0:return null;case 2:return{kind:1};case 3:{const o=e.codePointAt(0),r=i.ambiguousCharacters.getPrimaryConfusable(o),a=d0.getLocales().filter(l=>!d0.getInstance(new Set([...t.allowedLocales,l])).isAmbiguous(o));return{kind:0,confusableWith:String.fromCodePoint(r),notAmbiguousInLocales:a}}case 1:return{kind:2}}}}function POe(n,e){return`[${wl(n.map(i=>String.fromCodePoint(i)).join(""))}]`}class XY{constructor(e){this.options=e,this.allowedCodePoints=new Set(e.allowedCodePoints),this.ambiguousCharacters=d0.getInstance(new Set(e.allowedLocales))}getCandidateCodePoints(){if(this.options.nonBasicASCII)return"allNonBasicAscii";const e=new Set;if(this.options.invisibleCharacters)for(const t of mh.codePoints)QY(String.fromCodePoint(t))||e.add(t);if(this.options.ambiguousCharacters)for(const t of this.ambiguousCharacters.getConfusableCodePoints())e.add(t);for(const t of this.allowedCodePoints)e.delete(t);return e}shouldHighlightNonBasicASCII(e,t){const i=e.codePointAt(0);if(this.allowedCodePoints.has(i))return 0;if(this.options.nonBasicASCII)return 1;let s=!1,o=!1;if(t)for(const r of t){const a=r.codePointAt(0),l=cD(r);s=s||l,!l&&!this.ambiguousCharacters.isAmbiguous(a)&&!mh.isInvisibleCharacter(a)&&(o=!0)}return!s&&o?0:this.options.invisibleCharacters&&!QY(e)&&mh.isInvisibleCharacter(i)?2:this.options.ambiguousCharacters&&this.ambiguousCharacters.isAmbiguous(i)?3:0}}function QY(n){return n===" "||n===` `||n===" "}class pN{constructor(e,t,i){this.changes=e,this.moves=t,this.hitTimeout=i}}class Sle{constructor(e,t){this.lineRangeMapping=e,this.changes=t}}class zt{static addRange(e,t){let i=0;for(;it))return new zt(e,t)}static ofLength(e){return new zt(0,e)}static ofStartAndLength(e,t){return new zt(e,e+t)}constructor(e,t){if(this.start=e,this.endExclusive=t,e>t)throw new Gi(`Invalid range: ${this.toString()}`)}get isEmpty(){return this.start===this.endExclusive}delta(e){return new zt(this.start+e,this.endExclusive+e)}deltaStart(e){return new zt(this.start+e,this.endExclusive)}deltaEnd(e){return new zt(this.start,this.endExclusive+e)}get length(){return this.endExclusive-this.start}toString(){return`[${this.start}, ${this.endExclusive})`}contains(e){return this.start<=e&&e=e.endExclusive}slice(e){return e.slice(this.start,this.endExclusive)}substring(e){return e.substring(this.start,this.endExclusive)}clip(e){if(this.isEmpty)throw new Gi(`Invalid clipping range: ${this.toString()}`);return Math.max(this.start,Math.min(this.endExclusive-1,e))}clipCyclic(e){if(this.isEmpty)throw new Gi(`Invalid clipping range: ${this.toString()}`);return e=this.endExclusive?this.start+(e-this.start)%this.length:e}forEach(e){for(let t=this.start;te.toString()).join(", ")}intersectsStrict(e){let t=0;for(;te+t.length,0)}}function mL(n,e){const t=OOe(n,e);if(t!==-1)return n[t]}function OOe(n,e,t=n.length-1){for(let i=t;i>=0;i--){const s=n[i];if(e(s))return i}return-1}function MC(n,e){const t=_L(n,e);return t===-1?void 0:n[t]}function _L(n,e,t=0,i=n.length){let s=t,o=i;for(;s0&&(t=s)}return t}function BOe(n,e){if(n.length===0)return;let t=n[0];for(let i=1;i=0&&(t=s)}return t}function WOe(n,e){return pz(n,(t,i)=>-e(t,i))}function HOe(n,e){if(n.length===0)return-1;let t=0;for(let i=1;i0&&(t=i)}return t}function VOe(n,e){for(const t of n){const i=e(t);if(i!==void 0)return i}}let Vt=class yf{static fromRangeInclusive(e){return new yf(e.startLineNumber,e.endLineNumber+1)}static joinMany(e){if(e.length===0)return[];let t=new Gl(e[0].slice());for(let i=1;it)throw new Gi(`startLineNumber ${e} cannot be after endLineNumberExclusive ${t}`);this.startLineNumber=e,this.endLineNumberExclusive=t}contains(e){return this.startLineNumber<=e&&es.endLineNumberExclusive>=e.startLineNumber),i=_L(this._normalizedRanges,s=>s.startLineNumber<=e.endLineNumberExclusive)+1;if(t===i)this._normalizedRanges.splice(t,0,e);else if(t===i-1){const s=this._normalizedRanges[t];this._normalizedRanges[t]=s.join(e)}else{const s=this._normalizedRanges[t].join(this._normalizedRanges[i-1]).join(e);this._normalizedRanges.splice(t,i-t,s)}}contains(e){const t=MC(this._normalizedRanges,i=>i.startLineNumber<=e);return!!t&&t.endLineNumberExclusive>e}intersects(e){const t=MC(this._normalizedRanges,i=>i.startLineNumbere.startLineNumber}getUnion(e){if(this._normalizedRanges.length===0)return e;if(e._normalizedRanges.length===0)return this;const t=[];let i=0,s=0,o=null;for(;i=r.startLineNumber?o=new Vt(o.startLineNumber,Math.max(o.endLineNumberExclusive,r.endLineNumberExclusive)):(t.push(o),o=r)}return o!==null&&t.push(o),new Gl(t)}subtractFrom(e){const t=vL(this._normalizedRanges,r=>r.endLineNumberExclusive>=e.startLineNumber),i=_L(this._normalizedRanges,r=>r.startLineNumber<=e.endLineNumberExclusive)+1;if(t===i)return new Gl([e]);const s=[];let o=e.startLineNumber;for(let r=t;ro&&s.push(new Vt(o,a.startLineNumber)),o=a.endLineNumberExclusive}return oe.toString()).join(", ")}getIntersection(e){const t=[];let i=0,s=0;for(;it.delta(e)))}}class Ar{static betweenPositions(e,t){return e.lineNumber===t.lineNumber?new Ar(0,t.column-e.column):new Ar(t.lineNumber-e.lineNumber,t.column-1)}static ofRange(e){return Ar.betweenPositions(e.getStartPosition(),e.getEndPosition())}static ofText(e){let t=0,i=0;for(const s of e)s===` `?(t++,i=0):i++;return new Ar(t,i)}constructor(e,t){this.lineCount=e,this.columnCount=t}isGreaterThanOrEqualTo(e){return this.lineCount!==e.lineCount?this.lineCount>e.lineCount:this.columnCount>=e.columnCount}createRange(e){return this.lineCount===0?new A(e.lineNumber,e.column,e.lineNumber,e.column+this.columnCount):new A(e.lineNumber,e.column,e.lineNumber+this.lineCount,this.columnCount+1)}addToPosition(e){return this.lineCount===0?new ee(e.lineNumber,e.column+this.columnCount):new ee(e.lineNumber+this.lineCount,this.columnCount+1)}toString(){return`${this.lineCount},${this.columnCount}`}}Ar.zero=new Ar(0,0);class zOe{constructor(e){this.text=e,this.lineStartOffsetByLineIdx=[],this.lineStartOffsetByLineIdx.push(0);for(let t=0;tlz(e,(t,i)=>t.range.getEndPosition().isBeforeOrEqual(i.range.getStartPosition())))}apply(e){let t="",i=new ee(1,1);for(const o of this.edits){const r=o.range,a=r.getStartPosition(),l=r.getEndPosition(),c=JY(i,a);c.isEmpty()||(t+=e.getValueOfRange(c)),t+=o.text,i=l}const s=JY(i,e.endPositionExclusive);return s.isEmpty()||(t+=e.getValueOfRange(s)),t}applyToString(e){const t=new $Oe(e);return this.apply(t)}getNewRanges(){const e=[];let t=0,i=0,s=0;for(const o of this.edits){const r=Ar.ofText(o.text),a=ee.lift({lineNumber:o.range.startLineNumber+i,column:o.range.startColumn+(o.range.startLineNumber===t?s:0)}),l=r.createRange(a);e.push(l),i=l.endLineNumber-o.range.endLineNumber,s=l.endColumn-o.range.endColumn,t=o.range.endLineNumber}return e}}class Eg{constructor(e,t){this.range=e,this.text=t}}function JY(n,e){if(n.lineNumber===e.lineNumber&&n.column===Number.MAX_SAFE_INTEGER)return A.fromPositions(e,e);if(!n.isBeforeOrEqual(e))throw new Gi("start must be before end");return new A(n.lineNumber,n.column,e.lineNumber,e.column)}class xle{get endPositionExclusive(){return this.length.addToPosition(new ee(1,1))}}class $Oe extends xle{constructor(e){super(),this.value=e,this._t=new zOe(this.value)}getValueOfRange(e){return this._t.getOffsetRange(e).substring(this.value)}get length(){return this._t.textLength}}class Ir{static inverse(e,t,i){const s=[];let o=1,r=1;for(const l of e){const c=new Ir(new Vt(o,l.original.startLineNumber),new Vt(r,l.modified.startLineNumber));c.modified.isEmpty||s.push(c),o=l.original.endLineNumberExclusive,r=l.modified.endLineNumberExclusive}const a=new Ir(new Vt(o,t+1),new Vt(r,i+1));return a.modified.isEmpty||s.push(a),s}static clip(e,t,i){const s=[];for(const o of e){const r=o.original.intersect(t),a=o.modified.intersect(i);r&&!r.isEmpty&&a&&!a.isEmpty&&s.push(new Ir(r,a))}return s}constructor(e,t){this.original=e,this.modified=t}toString(){return`{${this.original.toString()}->${this.modified.toString()}}`}flip(){return new Ir(this.modified,this.original)}join(e){return new Ir(this.original.join(e.original),this.modified.join(e.modified))}toRangeMapping(){const e=this.original.toInclusiveRange(),t=this.modified.toInclusiveRange();if(e&&t)return new qd(e,t);if(this.original.startLineNumber===1||this.modified.startLineNumber===1){if(!(this.modified.startLineNumber===1&&this.original.startLineNumber===1))throw new Gi("not a valid diff");return new qd(new A(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new A(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1))}else return new qd(new A(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),new A(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER))}}class Cl extends Ir{static fromRangeMappings(e){const t=Vt.join(e.map(s=>Vt.fromRangeInclusive(s.originalRange))),i=Vt.join(e.map(s=>Vt.fromRangeInclusive(s.modifiedRange)));return new Cl(t,i,e)}constructor(e,t,i){super(e,t),this.innerChanges=i}flip(){var e;return new Cl(this.modified,this.original,(e=this.innerChanges)===null||e===void 0?void 0:e.map(t=>t.flip()))}withInnerChangesFromLineRanges(){return new Cl(this.original,this.modified,[this.toRangeMapping()])}}class qd{constructor(e,t){this.originalRange=e,this.modifiedRange=t}toString(){return`{${this.originalRange.toString()}->${this.modifiedRange.toString()}}`}flip(){return new qd(this.modifiedRange,this.originalRange)}toTextEdit(e){const t=e.getValueOfRange(this.modifiedRange);return new Eg(this.originalRange,t)}}const UOe=3;class jOe{computeDiff(e,t,i){var s;const r=new GOe(e,t,{maxComputationTime:i.maxComputationTimeMs,shouldIgnoreTrimWhitespace:i.ignoreTrimWhitespace,shouldComputeCharChanges:!0,shouldMakePrettyDiff:!0,shouldPostProcessCharChanges:!0}).computeDiff(),a=[];let l=null;for(const c of r.changes){let d;c.originalEndLineNumber===0?d=new Vt(c.originalStartLineNumber+1,c.originalStartLineNumber+1):d=new Vt(c.originalStartLineNumber,c.originalEndLineNumber+1);let u;c.modifiedEndLineNumber===0?u=new Vt(c.modifiedStartLineNumber+1,c.modifiedStartLineNumber+1):u=new Vt(c.modifiedStartLineNumber,c.modifiedEndLineNumber+1);let h=new Cl(d,u,(s=c.charChanges)===null||s===void 0?void 0:s.map(f=>new qd(new A(f.originalStartLineNumber,f.originalStartColumn,f.originalEndLineNumber,f.originalEndColumn),new A(f.modifiedStartLineNumber,f.modifiedStartColumn,f.modifiedEndLineNumber,f.modifiedEndColumn))));l&&(l.modified.endLineNumberExclusive===h.modified.startLineNumber||l.original.endLineNumberExclusive===h.original.startLineNumber)&&(h=new Cl(l.original.join(h.original),l.modified.join(h.modified),l.innerChanges&&h.innerChanges?l.innerChanges.concat(h.innerChanges):void 0),a.pop()),a.push(h),l=h}return g0(()=>lz(a,(c,d)=>d.original.startLineNumber-c.original.endLineNumberExclusive===d.modified.startLineNumber-c.modified.endLineNumberExclusive&&c.original.endLineNumberExclusive(e===10?"\\n":String.fromCharCode(e))+`-(${this._lineNumbers[t]},${this._columns[t]})`).join(", ")+"]"}_assertIndex(e,t){if(e<0||e>=t.length)throw new Error("Illegal index")}getElements(){return this._charCodes}getStartLineNumber(e){return e>0&&e===this._lineNumbers.length?this.getEndLineNumber(e-1):(this._assertIndex(e,this._lineNumbers),this._lineNumbers[e])}getEndLineNumber(e){return e===-1?this.getStartLineNumber(e+1):(this._assertIndex(e,this._lineNumbers),this._charCodes[e]===10?this._lineNumbers[e]+1:this._lineNumbers[e])}getStartColumn(e){return e>0&&e===this._columns.length?this.getEndColumn(e-1):(this._assertIndex(e,this._columns),this._columns[e])}getEndColumn(e){return e===-1?this.getStartColumn(e+1):(this._assertIndex(e,this._columns),this._charCodes[e]===10?1:this._columns[e]+1)}}class Y1{constructor(e,t,i,s,o,r,a,l){this.originalStartLineNumber=e,this.originalStartColumn=t,this.originalEndLineNumber=i,this.originalEndColumn=s,this.modifiedStartLineNumber=o,this.modifiedStartColumn=r,this.modifiedEndLineNumber=a,this.modifiedEndColumn=l}static createFromDiffChange(e,t,i){const s=t.getStartLineNumber(e.originalStart),o=t.getStartColumn(e.originalStart),r=t.getEndLineNumber(e.originalStart+e.originalLength-1),a=t.getEndColumn(e.originalStart+e.originalLength-1),l=i.getStartLineNumber(e.modifiedStart),c=i.getStartColumn(e.modifiedStart),d=i.getEndLineNumber(e.modifiedStart+e.modifiedLength-1),u=i.getEndColumn(e.modifiedStart+e.modifiedLength-1);return new Y1(s,o,r,a,l,c,d,u)}}function qOe(n){if(n.length<=1)return n;const e=[n[0]];let t=e[0];for(let i=1,s=n.length;i0&&t.originalLength<20&&t.modifiedLength>0&&t.modifiedLength<20&&o()){const f=i.createCharSequence(e,t.originalStart,t.originalStart+t.originalLength-1),g=s.createCharSequence(e,t.modifiedStart,t.modifiedStart+t.modifiedLength-1);if(f.getElements().length>0&&g.getElements().length>0){let p=Lle(f,g,o,!0).changes;a&&(p=qOe(p)),h=[];for(let _=0,b=p.length;_1&&p>1;){const _=h.charCodeAt(g-2),b=f.charCodeAt(p-2);if(_!==b)break;g--,p--}(g>1||p>1)&&this._pushTrimWhitespaceCharChange(s,o+1,1,g,r+1,1,p)}{let g=vB(h,1),p=vB(f,1);const _=h.length+1,b=f.length+1;for(;g<_&&p!0;const e=Date.now();return()=>Date.now()-e{i.push(qs.fromOffsetPairs(s?s.getEndExclusives():Yl.zero,o?o.getStarts():new Yl(t,(s?s.seq2Range.endExclusive-s.seq1Range.endExclusive:0)+t)))}),i}static fromOffsetPairs(e,t){return new qs(new zt(e.offset1,t.offset1),new zt(e.offset2,t.offset2))}constructor(e,t){this.seq1Range=e,this.seq2Range=t}swap(){return new qs(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(e){return new qs(this.seq1Range.join(e.seq1Range),this.seq2Range.join(e.seq2Range))}delta(e){return e===0?this:new qs(this.seq1Range.delta(e),this.seq2Range.delta(e))}deltaStart(e){return e===0?this:new qs(this.seq1Range.deltaStart(e),this.seq2Range.deltaStart(e))}deltaEnd(e){return e===0?this:new qs(this.seq1Range.deltaEnd(e),this.seq2Range.deltaEnd(e))}intersect(e){const t=this.seq1Range.intersect(e.seq1Range),i=this.seq2Range.intersect(e.seq2Range);if(!(!t||!i))return new qs(t,i)}getStarts(){return new Yl(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new Yl(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}}class Yl{constructor(e,t){this.offset1=e,this.offset2=t}toString(){return`${this.offset1} <-> ${this.offset2}`}delta(e){return e===0?this:new Yl(this.offset1+e,this.offset2+e)}equals(e){return this.offset1===e.offset1&&this.offset2===e.offset2}}Yl.zero=new Yl(0,0);Yl.max=new Yl(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);class bL{isValid(){return!0}}bL.instance=new bL;class ZOe{constructor(e){if(this.timeout=e,this.startTime=Date.now(),this.valid=!0,e<=0)throw new Gi("timeout must be positive")}isValid(){if(!(Date.now()-this.startTime0&&p>0&&r.get(g-1,p-1)===3&&(w+=a.get(g-1,p-1)),w+=s?s(g,p):1):w=-1;const y=Math.max(_,b,w);if(y===w){const S=g>0&&p>0?a.get(g-1,p-1):0;a.set(g,p,S+1),r.set(g,p,3)}else y===_?(a.set(g,p,0),r.set(g,p,1)):y===b&&(a.set(g,p,0),r.set(g,p,2));o.set(g,p,y)}const l=[];let c=e.length,d=t.length;function u(g,p){(g+1!==c||p+1!==d)&&l.push(new qs(new zt(g+1,c),new zt(p+1,d))),c=g,d=p}let h=e.length-1,f=t.length-1;for(;h>=0&&f>=0;)r.get(h,f)===3?(u(h,f),h--,f--):r.get(h,f)===1?h--:f--;return u(-1,-1),l.reverse(),new _g(l,!1)}}class kle{compute(e,t,i=bL.instance){if(e.length===0||t.length===0)return _g.trivial(e,t);const s=e,o=t;function r(p,_){for(;ps.length||S>o.length)continue;const x=r(y,S);l.set(d,x);const k=y===b?c.get(d+1):c.get(d-1);if(c.set(d,x!==y?new iX(k,y,S,x-y):k),l.get(d)===s.length&&l.get(d)-d===o.length)break e}}let u=c.get(d);const h=[];let f=s.length,g=o.length;for(;;){const p=u?u.x+u.length:0,_=u?u.y+u.length:0;if((p!==f||_!==g)&&h.push(new qs(new zt(p,f),new zt(_,g))),!u)break;f=u.x,g=u.y,u=u.prev}return h.reverse(),new _g(h,!1)}}class iX{constructor(e,t,i,s){this.prev=e,this.x=t,this.y=i,this.length=s}}class XOe{constructor(){this.positiveArr=new Int32Array(10),this.negativeArr=new Int32Array(10)}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){if(e<0){if(e=-e-1,e>=this.negativeArr.length){const i=this.negativeArr;this.negativeArr=new Int32Array(i.length*2),this.negativeArr.set(i)}this.negativeArr[e]=t}else{if(e>=this.positiveArr.length){const i=this.positiveArr;this.positiveArr=new Int32Array(i.length*2),this.positiveArr.set(i)}this.positiveArr[e]=t}}}class QOe{constructor(){this.positiveArr=[],this.negativeArr=[]}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){e<0?(e=-e-1,this.negativeArr[e]=t):this.positiveArr[e]=t}}class q2{constructor(e,t,i){this.lines=e,this.considerWhitespaceChanges=i,this.elements=[],this.firstCharOffsetByLine=[],this.additionalOffsetByLine=[];let s=!1;t.start>0&&t.endExclusive>=e.length&&(t=new zt(t.start-1,t.endExclusive),s=!0),this.lineRange=t,this.firstCharOffsetByLine[0]=0;for(let o=this.lineRange.start;oString.fromCharCode(t)).join("")}getElement(e){return this.elements[e]}get length(){return this.elements.length}getBoundaryScore(e){const t=sX(e>0?this.elements[e-1]:-1),i=sX(ei<=e);return new ee(this.lineRange.start+t+1,e-this.firstCharOffsetByLine[t]+this.additionalOffsetByLine[t]+1)}translateRange(e){return A.fromPositions(this.translateOffset(e.start),this.translateOffset(e.endExclusive))}findWordContaining(e){if(e<0||e>=this.elements.length||!YF(this.elements[e]))return;let t=e;for(;t>0&&YF(this.elements[t-1]);)t--;let i=e;for(;ir<=e.start))!==null&&t!==void 0?t:0,o=(i=FOe(this.firstCharOffsetByLine,r=>e.endExclusive<=r))!==null&&i!==void 0?i:this.elements.length;return new zt(s,o)}}function YF(n){return n>=97&&n<=122||n>=65&&n<=90||n>=48&&n<=57}const JOe={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function nX(n){return JOe[n]}function sX(n){return n===10?8:n===13?7:bB(n)?6:n>=97&&n<=122?0:n>=65&&n<=90?1:n>=48&&n<=57?2:n===-1?3:n===44||n===59?5:4}function e4e(n,e,t,i,s,o){let{moves:r,excludedChanges:a}=i4e(n,e,t,o);if(!o.isValid())return[];const l=n.filter(d=>!a.has(d)),c=n4e(l,i,s,e,t,o);return Z8(r,c),r=s4e(r),r=r.filter(d=>{const u=d.original.toOffsetRange().slice(e).map(f=>f.trim());return u.join(` `).length>=15&&t4e(u,f=>f.length>=2)>=2}),r=o4e(n,r),r}function t4e(n,e){let t=0;for(const i of n)e(i)&&t++;return t}function i4e(n,e,t,i){const s=[],o=n.filter(l=>l.modified.isEmpty&&l.original.length>=3).map(l=>new PC(l.original,e,l)),r=new Set(n.filter(l=>l.original.isEmpty&&l.modified.length>=3).map(l=>new PC(l.modified,t,l))),a=new Set;for(const l of o){let c=-1,d;for(const u of r){const h=l.computeSimilarity(u);h>c&&(c=h,d=u)}if(c>.9&&d&&(r.delete(d),s.push(new Ir(l.range,d.range)),a.add(l.source),a.add(d.source)),!i.isValid())return{moves:s,excludedChanges:a}}return{moves:s,excludedChanges:a}}function n4e(n,e,t,i,s,o){const r=[],a=new uz;for(const h of n)for(let f=h.original.startLineNumber;fh.modified.startLineNumber,Qc));for(const h of n){let f=[];for(let g=h.modified.startLineNumber;g{for(const S of f)if(S.originalLineRange.endLineNumberExclusive+1===w.endLineNumberExclusive&&S.modifiedLineRange.endLineNumberExclusive+1===_.endLineNumberExclusive){S.originalLineRange=new Vt(S.originalLineRange.startLineNumber,w.endLineNumberExclusive),S.modifiedLineRange=new Vt(S.modifiedLineRange.startLineNumber,_.endLineNumberExclusive),b.push(S);return}const y={modifiedLineRange:_,originalLineRange:w};l.push(y),b.push(y)}),f=b}if(!o.isValid())return[]}l.sort(Hre(oa(h=>h.modifiedLineRange.length,Qc)));const c=new Gl,d=new Gl;for(const h of l){const f=h.modifiedLineRange.startLineNumber-h.originalLineRange.startLineNumber,g=c.subtractFrom(h.modifiedLineRange),p=d.subtractFrom(h.originalLineRange).getWithDelta(f),_=g.getIntersection(p);for(const b of _.ranges){if(b.length<3)continue;const w=b,y=b.delta(-f);r.push(new Ir(y,w)),c.addRange(w),d.addRange(y)}}r.sort(oa(h=>h.original.startLineNumber,Qc));const u=new pD(n);for(let h=0;hk.original.startLineNumber<=f.original.startLineNumber),p=MC(n,k=>k.modified.startLineNumber<=f.modified.startLineNumber),_=Math.max(f.original.startLineNumber-g.original.startLineNumber,f.modified.startLineNumber-p.modified.startLineNumber),b=u.findLastMonotonous(k=>k.original.startLineNumberk.modified.startLineNumberi.length||D>s.length||c.contains(D)||d.contains(k)||!oX(i[k-1],s[D-1],o))break}S>0&&(d.addRange(new Vt(f.original.startLineNumber-S,f.original.startLineNumber)),c.addRange(new Vt(f.modified.startLineNumber-S,f.modified.startLineNumber)));let x;for(x=0;xi.length||D>s.length||c.contains(D)||d.contains(k)||!oX(i[k-1],s[D-1],o))break}x>0&&(d.addRange(new Vt(f.original.endLineNumberExclusive,f.original.endLineNumberExclusive+x)),c.addRange(new Vt(f.modified.endLineNumberExclusive,f.modified.endLineNumberExclusive+x))),(S>0||x>0)&&(r[h]=new Ir(new Vt(f.original.startLineNumber-S,f.original.endLineNumberExclusive+x),new Vt(f.modified.startLineNumber-S,f.modified.endLineNumberExclusive+x)))}return r}function oX(n,e,t){if(n.trim()===e.trim())return!0;if(n.length>300&&e.length>300)return!1;const s=new kle().compute(new q2([n],new zt(0,1),!1),new q2([e],new zt(0,1),!1),t);let o=0;const r=qs.invert(s.diffs,n.length);for(const d of r)d.seq1Range.forEach(u=>{bB(n.charCodeAt(u))||o++});function a(d){let u=0;for(let h=0;he.length?n:e);return o/l>.6&&l>10}function s4e(n){if(n.length===0)return n;n.sort(oa(t=>t.original.startLineNumber,Qc));const e=[n[0]];for(let t=1;t=0&&r>=0&&o+r<=2){e[e.length-1]=i.join(s);continue}e.push(s)}return e}function o4e(n,e){const t=new pD(n);return e=e.filter(i=>{const s=t.findLastMonotonous(a=>a.original.startLineNumbera.modified.startLineNumber0&&(a=a.delta(c))}s.push(a)}return i.length>0&&s.push(i[i.length-1]),s}function r4e(n,e,t){if(!n.getBoundaryScore||!e.getBoundaryScore)return t;for(let i=0;i0?t[i-1]:void 0,o=t[i],r=i+1=i.start&&n.seq2Range.start-r>=s.start&&t.isStronglyEqual(n.seq2Range.start-r,n.seq2Range.endExclusive-r)&&r<100;)r++;r--;let a=0;for(;n.seq1Range.start+ac&&(c=g,l=d)}return n.delta(l)}function a4e(n,e,t){const i=[];for(const s of t){const o=i[i.length-1];if(!o){i.push(s);continue}s.seq1Range.start-o.seq1Range.endExclusive<=2||s.seq2Range.start-o.seq2Range.endExclusive<=2?i[i.length-1]=new qs(o.seq1Range.join(s.seq1Range),o.seq2Range.join(s.seq2Range)):i.push(s)}return i}function l4e(n,e,t){const i=qs.invert(t,n.length),s=[];let o=new Yl(0,0);function r(l,c){if(l.offset10;){const _=i[0];if(!(_.seq1Range.intersects(h.seq1Range)||_.seq2Range.intersects(h.seq2Range)))break;const w=n.findWordContaining(_.seq1Range.start),y=e.findWordContaining(_.seq2Range.start),S=new qs(w,y),x=S.intersect(_);if(g+=x.seq1Range.length,p+=x.seq2Range.length,h=h.join(S),h.seq1Range.endExclusive>=_.seq1Range.endExclusive)i.shift();else break}g+p<(h.seq1Range.length+h.seq2Range.length)*2/3&&s.push(h),o=h.getEndExclusives()}for(;i.length>0;){const l=i.shift();l.seq1Range.isEmpty||(r(l.getStarts(),l),r(l.getEndExclusives().delta(-1),l))}return c4e(t,s)}function c4e(n,e){const t=[];for(;n.length>0||e.length>0;){const i=n[0],s=e[0];let o;i&&(!s||i.seq1Range.start0&&t[t.length-1].seq1Range.endExclusive>=o.seq1Range.start?t[t.length-1]=t[t.length-1].join(o):t.push(o)}return t}function d4e(n,e,t){let i=t;if(i.length===0)return i;let s=0,o;do{o=!1;const r=[i[0]];for(let a=1;a5||f.seq1Range.length+f.seq2Range.length>5)};const l=i[a],c=r[r.length-1];d(c,l)?(o=!0,r[r.length-1]=r[r.length-1].join(l)):r.push(l)}i=r}while(s++<10&&o);return i}function u4e(n,e,t){let i=t;if(i.length===0)return i;let s=0,o;do{o=!1;const a=[i[0]];for(let l=1;l5||p.length>500)return!1;const b=n.getText(p).trim();if(b.length>20||b.split(/\r\n|\r|\n/).length>1)return!1;const w=n.countLinesIn(f.seq1Range),y=f.seq1Range.length,S=e.countLinesIn(f.seq2Range),x=f.seq2Range.length,k=n.countLinesIn(g.seq1Range),D=g.seq1Range.length,I=e.countLinesIn(g.seq2Range),N=g.seq2Range.length,P=2*40+50;function O(M){return Math.min(M,P)}return Math.pow(Math.pow(O(w*40+y),1.5)+Math.pow(O(S*40+x),1.5),1.5)+Math.pow(Math.pow(O(k*40+D),1.5)+Math.pow(O(I*40+N),1.5),1.5)>(P**1.5)**1.5*1.3};const c=i[l],d=a[a.length-1];u(d,c)?(o=!0,a[a.length-1]=a[a.length-1].join(c)):a.push(c)}i=a}while(s++<10&&o);const r=[];return o2e(i,(a,l,c)=>{let d=l;function u(b){return b.length>0&&b.trim().length<=3&&l.seq1Range.length+l.seq2Range.length>100}const h=n.extendToFullLines(l.seq1Range),f=n.getText(new zt(h.start,l.seq1Range.start));u(f)&&(d=d.deltaStart(-f.length));const g=n.getText(new zt(l.seq1Range.endExclusive,h.endExclusive));u(g)&&(d=d.deltaEnd(g.length));const p=qs.fromOffsetPairs(a?a.getEndExclusives():Yl.zero,c?c.getStarts():Yl.max),_=d.intersect(p);r.length>0&&_.getStarts().equals(r[r.length-1].getEndExclusives())?r[r.length-1]=r[r.length-1].join(_):r.push(_)}),r}class lX{constructor(e,t){this.trimmedHash=e,this.lines=t}getElement(e){return this.trimmedHash[e]}get length(){return this.trimmedHash.length}getBoundaryScore(e){const t=e===0?0:cX(this.lines[e-1]),i=e===this.lines.length?0:cX(this.lines[e]);return 1e3-(t+i)}getText(e){return this.lines.slice(e.start,e.endExclusive).join(` `)}isStronglyEqual(e,t){return this.lines[e]===this.lines[t]}}function cX(n){let e=0;for(;ex===k))return new pN([],[],!1);if(e.length===1&&e[0].length===0||t.length===1&&t[0].length===0)return new pN([new Cl(new Vt(1,e.length+1),new Vt(1,t.length+1),[new qd(new A(1,1,e.length,e[e.length-1].length+1),new A(1,1,t.length,t[t.length-1].length+1))])],[],!1);const s=i.maxComputationTimeMs===0?bL.instance:new ZOe(i.maxComputationTimeMs),o=!i.ignoreTrimWhitespace,r=new Map;function a(x){let k=r.get(x);return k===void 0&&(k=r.size,r.set(x,k)),k}const l=e.map(x=>a(x.trim())),c=t.map(x=>a(x.trim())),d=new lX(l,e),u=new lX(c,t),h=d.length+u.length<1700?this.dynamicProgrammingDiffing.compute(d,u,s,(x,k)=>e[x]===t[k]?t[k].length===0?.1:1+Math.log(1+t[k].length):.99):this.myersDiffingAlgorithm.compute(d,u,s);let f=h.diffs,g=h.hitTimeout;f=CB(d,u,f),f=d4e(d,u,f);const p=[],_=x=>{if(o)for(let k=0;kx.seq1Range.start-b===x.seq2Range.start-w);const k=x.seq1Range.start-b;_(k),b=x.seq1Range.endExclusive,w=x.seq2Range.endExclusive;const D=this.refineDiff(e,t,x,s,o);D.hitTimeout&&(g=!0);for(const I of D.mappings)p.push(I)}_(e.length-b);const y=dX(p,e,t);let S=[];return i.computeMoves&&(S=this.computeMoves(y,e,t,l,c,s,o)),g0(()=>{function x(D,I){if(D.lineNumber<1||D.lineNumber>I.length)return!1;const N=I[D.lineNumber-1];return!(D.column<1||D.column>N.length+1)}function k(D,I){return!(D.startLineNumber<1||D.startLineNumber>I.length+1||D.endLineNumberExclusive<1||D.endLineNumberExclusive>I.length+1)}for(const D of y){if(!D.innerChanges)return!1;for(const I of D.innerChanges)if(!(x(I.modifiedRange.getStartPosition(),t)&&x(I.modifiedRange.getEndPosition(),t)&&x(I.originalRange.getStartPosition(),e)&&x(I.originalRange.getEndPosition(),e)))return!1;if(!k(D.modified,t)||!k(D.original,e))return!1}return!0}),new pN(y,S,g)}computeMoves(e,t,i,s,o,r,a){return e4e(e,t,i,s,o,r).map(d=>{const u=this.refineDiff(t,i,new qs(d.original.toOffsetRange(),d.modified.toOffsetRange()),r,a),h=dX(u.mappings,t,i,!0);return new Sle(d,h)})}refineDiff(e,t,i,s,o){const r=new q2(e,i.seq1Range,o),a=new q2(t,i.seq2Range,o),l=r.length+a.length<500?this.dynamicProgrammingDiffing.compute(r,a,s):this.myersDiffingAlgorithm.compute(r,a,s);let c=l.diffs;return c=CB(r,a,c),c=l4e(r,a,c),c=a4e(r,a,c),c=u4e(r,a,c),{mappings:c.map(u=>new qd(r.translateRange(u.seq1Range),a.translateRange(u.seq2Range))),hitTimeout:l.hitTimeout}}}function dX(n,e,t,i=!1){const s=[];for(const o of TV(n.map(r=>h4e(r,e,t)),(r,a)=>r.original.overlapOrTouch(a.original)||r.modified.overlapOrTouch(a.modified))){const r=o[0],a=o[o.length-1];s.push(new Cl(r.original.join(a.original),r.modified.join(a.modified),o.map(l=>l.innerChanges[0])))}return g0(()=>!i&&s.length>0&&(s[0].modified.startLineNumber!==s[0].original.startLineNumber||t.length-s[s.length-1].modified.endLineNumberExclusive!==e.length-s[s.length-1].original.endLineNumberExclusive)?!1:lz(s,(o,r)=>r.original.startLineNumber-o.original.endLineNumberExclusive===r.modified.startLineNumber-o.modified.endLineNumberExclusive&&o.original.endLineNumberExclusive=t[n.modifiedRange.startLineNumber-1].length&&n.originalRange.startColumn-1>=e[n.originalRange.startLineNumber-1].length&&n.originalRange.startLineNumber<=n.originalRange.endLineNumber+s&&n.modifiedRange.startLineNumber<=n.modifiedRange.endLineNumber+s&&(i=1);const o=new Vt(n.originalRange.startLineNumber+i,n.originalRange.endLineNumber+1+s),r=new Vt(n.modifiedRange.startLineNumber+i,n.modifiedRange.endLineNumber+1+s);return new Cl(o,r,[n])}const uX={getLegacy:()=>new jOe,getDefault:()=>new Dle};function um(n,e){const t=Math.pow(10,e);return Math.round(n*t)/t}class ci{constructor(e,t,i,s=1){this._rgbaBrand=void 0,this.r=Math.min(255,Math.max(0,e))|0,this.g=Math.min(255,Math.max(0,t))|0,this.b=Math.min(255,Math.max(0,i))|0,this.a=um(Math.max(Math.min(1,s),0),3)}static equals(e,t){return e.r===t.r&&e.g===t.g&&e.b===t.b&&e.a===t.a}}class Vc{constructor(e,t,i,s){this._hslaBrand=void 0,this.h=Math.max(Math.min(360,e),0)|0,this.s=um(Math.max(Math.min(1,t),0),3),this.l=um(Math.max(Math.min(1,i),0),3),this.a=um(Math.max(Math.min(1,s),0),3)}static equals(e,t){return e.h===t.h&&e.s===t.s&&e.l===t.l&&e.a===t.a}static fromRGBA(e){const t=e.r/255,i=e.g/255,s=e.b/255,o=e.a,r=Math.max(t,i,s),a=Math.min(t,i,s);let l=0,c=0;const d=(a+r)/2,u=r-a;if(u>0){switch(c=Math.min(d<=.5?u/(2*d):u/(2-2*d),1),r){case t:l=(i-s)/u+(i1&&(i-=1),i<1/6?e+(t-e)*6*i:i<1/2?t:i<2/3?e+(t-e)*(2/3-i)*6:e}static toRGBA(e){const t=e.h/360,{s:i,l:s,a:o}=e;let r,a,l;if(i===0)r=a=l=s;else{const c=s<.5?s*(1+i):s+i-s*i,d=2*s-c;r=Vc._hue2rgb(d,c,t+1/3),a=Vc._hue2rgb(d,c,t),l=Vc._hue2rgb(d,c,t-1/3)}return new ci(Math.round(r*255),Math.round(a*255),Math.round(l*255),o)}}class rh{constructor(e,t,i,s){this._hsvaBrand=void 0,this.h=Math.max(Math.min(360,e),0)|0,this.s=um(Math.max(Math.min(1,t),0),3),this.v=um(Math.max(Math.min(1,i),0),3),this.a=um(Math.max(Math.min(1,s),0),3)}static equals(e,t){return e.h===t.h&&e.s===t.s&&e.v===t.v&&e.a===t.a}static fromRGBA(e){const t=e.r/255,i=e.g/255,s=e.b/255,o=Math.max(t,i,s),r=Math.min(t,i,s),a=o-r,l=o===0?0:a/o;let c;return a===0?c=0:o===t?c=((i-s)/a%6+6)%6:o===i?c=(s-t)/a+2:c=(t-i)/a+4,new rh(Math.round(c*60),l,o,e.a)}static toRGBA(e){const{h:t,s:i,v:s,a:o}=e,r=s*i,a=r*(1-Math.abs(t/60%2-1)),l=s-r;let[c,d,u]=[0,0,0];return t<60?(c=r,d=a):t<120?(c=a,d=r):t<180?(d=r,u=a):t<240?(d=a,u=r):t<300?(c=a,u=r):t<=360&&(c=r,u=a),c=Math.round((c+l)*255),d=Math.round((d+l)*255),u=Math.round((u+l)*255),new ci(c,d,u,o)}}class le{static fromHex(e){return le.Format.CSS.parseHex(e)||le.red}static equals(e,t){return!e&&!t?!0:!e||!t?!1:e.equals(t)}get hsla(){return this._hsla?this._hsla:Vc.fromRGBA(this.rgba)}get hsva(){return this._hsva?this._hsva:rh.fromRGBA(this.rgba)}constructor(e){if(e)if(e instanceof ci)this.rgba=e;else if(e instanceof Vc)this._hsla=e,this.rgba=Vc.toRGBA(e);else if(e instanceof rh)this._hsva=e,this.rgba=rh.toRGBA(e);else throw new Error("Invalid color ctor argument");else throw new Error("Color needs a value")}equals(e){return!!e&&ci.equals(this.rgba,e.rgba)&&Vc.equals(this.hsla,e.hsla)&&rh.equals(this.hsva,e.hsva)}getRelativeLuminance(){const e=le._relativeLuminanceForComponent(this.rgba.r),t=le._relativeLuminanceForComponent(this.rgba.g),i=le._relativeLuminanceForComponent(this.rgba.b),s=.2126*e+.7152*t+.0722*i;return um(s,4)}static _relativeLuminanceForComponent(e){const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}isLighter(){return(this.rgba.r*299+this.rgba.g*587+this.rgba.b*114)/1e3>=128}isLighterThan(e){const t=this.getRelativeLuminance(),i=e.getRelativeLuminance();return t>i}isDarkerThan(e){const t=this.getRelativeLuminance(),i=e.getRelativeLuminance();return t0)for(const s of i){const o=s.filter(c=>c!==void 0),r=o[1],a=o[2];if(!a)continue;let l;if(r==="rgb"){const c=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*\)$/gm;l=hX(My(n,s),Py(a,c),!1)}else if(r==="rgba"){const c=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;l=hX(My(n,s),Py(a,c),!0)}else if(r==="hsl"){const c=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*\)$/gm;l=fX(My(n,s),Py(a,c),!1)}else if(r==="hsla"){const c=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;l=fX(My(n,s),Py(a,c),!0)}else r==="#"&&(l=f4e(My(n,s),r+a));l&&e.push(l)}return e}function p4e(n){return!n||typeof n.getValue!="function"||typeof n.positionAt!="function"?[]:g4e(n)}const gX=new RegExp("\\bMARK:\\s*(.*)$","d"),m4e=/^-+|-+$/g;function _4e(n,e){var t;let i=[];if(e.findRegionSectionHeaders&&(!((t=e.foldingRules)===null||t===void 0)&&t.markers)){const s=v4e(n,e);i=i.concat(s)}if(e.findMarkSectionHeaders){const s=b4e(n);i=i.concat(s)}return i}function v4e(n,e){const t=[],i=n.getLineCount();for(let s=1;s<=i;s++){const o=n.getLineContent(s),r=o.match(e.foldingRules.markers.start);if(r){const a={startLineNumber:s,startColumn:r[0].length+1,endLineNumber:s,endColumn:o.length+1};if(a.endColumn>a.startColumn){const l={range:a,...Ele(o.substring(r[0].length)),shouldBeInComments:!1};(l.text||l.hasSeparatorLine)&&t.push(l)}}}return t}function b4e(n){const e=[],t=n.getLineCount();for(let i=1;i<=t;i++){const s=n.getLineContent(i);C4e(s,i,e)}return e}function C4e(n,e,t){gX.lastIndex=0;const i=gX.exec(n);if(i){const s=i.indices[1][0]+1,o=i.indices[1][1]+1,r={startLineNumber:e,startColumn:s,endLineNumber:e,endColumn:o};if(r.endColumn>r.startColumn){const a={range:r,...Ele(i[1]),shouldBeInComments:!0};(a.text||a.hasSeparatorLine)&&t.push(a)}}}function Ele(n){n=n.trim();const e=n.startsWith("-");return n=n.replace(m4e,""),{text:n,hasSeparatorLine:e}}class w4e extends mOe{get uri(){return this._uri}get eol(){return this._eol}getValue(){return this.getText()}findMatches(e){const t=[];for(let i=0;ithis._lines.length)t=this._lines.length,i=this._lines[t-1].length+1,s=!0;else{const o=this._lines[t-1].length+1;i<1?(i=1,s=!0):i>o&&(i=o,s=!0)}return s?{lineNumber:t,column:i}:e}}class hm{constructor(e,t){this._host=e,this._models=Object.create(null),this._foreignModuleFactory=t,this._foreignModule=null}dispose(){this._models=Object.create(null)}_getModel(e){return this._models[e]}_getModels(){const e=[];return Object.keys(this._models).forEach(t=>e.push(this._models[t])),e}acceptNewModel(e){this._models[e.url]=new w4e(pt.parse(e.url),e.lines,e.EOL,e.versionId)}acceptModelChanged(e,t){if(!this._models[e])return;this._models[e].onEvents(t)}acceptRemovedModel(e){this._models[e]&&delete this._models[e]}async computeUnicodeHighlights(e,t,i){const s=this._getModel(e);return s?fz.computeUnicodeHighlights(s,t,i):{ranges:[],hasMore:!1,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0}}async findSectionHeaders(e,t){const i=this._getModel(e);return i?_4e(i,t):[]}async computeDiff(e,t,i,s){const o=this._getModel(e),r=this._getModel(t);return!o||!r?null:hm.computeDiff(o,r,i,s)}static computeDiff(e,t,i,s){const o=s==="advanced"?uX.getDefault():uX.getLegacy(),r=e.getLinesContent(),a=t.getLinesContent(),l=o.computeDiff(r,a,i),c=l.changes.length>0?!1:this._modelsAreIdentical(e,t);function d(u){return u.map(h=>{var f;return[h.original.startLineNumber,h.original.endLineNumberExclusive,h.modified.startLineNumber,h.modified.endLineNumberExclusive,(f=h.innerChanges)===null||f===void 0?void 0:f.map(g=>[g.originalRange.startLineNumber,g.originalRange.startColumn,g.originalRange.endLineNumber,g.originalRange.endColumn,g.modifiedRange.startLineNumber,g.modifiedRange.startColumn,g.modifiedRange.endLineNumber,g.modifiedRange.endColumn])]})}return{identical:c,quitEarly:l.hitTimeout,changes:d(l.changes),moves:l.moves.map(u=>[u.lineRangeMapping.original.startLineNumber,u.lineRangeMapping.original.endLineNumberExclusive,u.lineRangeMapping.modified.startLineNumber,u.lineRangeMapping.modified.endLineNumberExclusive,d(u.changes)])}}static _modelsAreIdentical(e,t){const i=e.getLineCount(),s=t.getLineCount();if(i!==s)return!1;for(let o=1;o<=i;o++){const r=e.getLineContent(o),a=t.getLineContent(o);if(r!==a)return!1}return!0}async computeMoreMinimalEdits(e,t,i){const s=this._getModel(e);if(!s)return t;const o=[];let r;t=t.slice(0).sort((l,c)=>{if(l.range&&c.range)return A.compareRangesUsingStarts(l.range,c.range);const d=l.range?0:1,u=c.range?0:1;return d-u});let a=0;for(let l=1;lhm._diffLimit){o.push({range:l,text:c});continue}const h=fOe(u,c,i),f=s.offsetAt(A.lift(l).getStartPosition());for(const g of h){const p=s.positionAt(f+g.originalStart),_=s.positionAt(f+g.originalStart+g.originalLength),b={text:c.substr(g.modifiedStart,g.modifiedLength),range:{startLineNumber:p.lineNumber,startColumn:p.column,endLineNumber:_.lineNumber,endColumn:_.column}};s.getValueInRange(b.range)!==b.text&&o.push(b)}}return typeof r=="number"&&o.push({eol:r,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),o}async computeLinks(e){const t=this._getModel(e);return t?wOe(t):null}async computeDefaultDocumentColors(e){const t=this._getModel(e);return t?p4e(t):null}async textualSuggest(e,t,i,s){const o=new xo,r=new RegExp(i,s),a=new Set;e:for(const l of e){const c=this._getModel(l);if(c){for(const d of c.words(r))if(!(d===t||!isNaN(Number(d)))&&(a.add(d),a.size>hm._suggestionsLimit))break e}}return{words:Array.from(a),duration:o.elapsed()}}async computeWordRanges(e,t,i,s){const o=this._getModel(e);if(!o)return Object.create(null);const r=new RegExp(i,s),a=Object.create(null);for(let l=t.startLineNumber;lthis._host.fhr(a,l)),getMirrorModels:()=>this._getModels()};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(r,t),Promise.resolve(RV(this._foreignModule))):Promise.reject(new Error("Unexpected usage"))}fmr(e,t){if(!this._foreignModule||typeof this._foreignModule[e]!="function")return Promise.reject(new Error("Missing requestHandler or method: "+e));try{return Promise.resolve(this._foreignModule[e].apply(this._foreignModule,t))}catch(i){return Promise.reject(i)}}}hm._diffLimit=1e5;hm._suggestionsLimit=1e4;typeof importScripts=="function"&&(globalThis.monaco=pae());const vz=Jt("textResourceConfigurationService"),Tle=Jt("textResourcePropertiesService"),Xe=Jt("ILanguageFeaturesService");var y4e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Oy=function(n,e){return function(t,i){e(t,i,n)}};const pX=60*1e3,mX=5*60*1e3;function hv(n,e){const t=n.getModel(e);return!(!t||t.isTooLargeForSyncing())}let wB=class extends ne{constructor(e,t,i,s,o){super(),this._modelService=e,this._workerManager=this._register(new x4e(this._modelService,s)),this._logService=i,this._register(o.linkProvider.register({language:"*",hasAccessToAllModels:!0},{provideLinks:(r,a)=>hv(this._modelService,r.uri)?this._workerManager.withWorker().then(l=>l.computeLinks(r.uri)).then(l=>l&&{links:l}):Promise.resolve({links:[]})})),this._register(o.completionProvider.register("*",new S4e(this._workerManager,t,this._modelService,s)))}dispose(){super.dispose()}canComputeUnicodeHighlights(e){return hv(this._modelService,e)}computedUnicodeHighlights(e,t,i){return this._workerManager.withWorker().then(s=>s.computedUnicodeHighlights(e,t,i))}async computeDiff(e,t,i,s){const o=await this._workerManager.withWorker().then(l=>l.computeDiff(e,t,i,s));if(!o)return null;return{identical:o.identical,quitEarly:o.quitEarly,changes:a(o.changes),moves:o.moves.map(l=>new Sle(new Ir(new Vt(l[0],l[1]),new Vt(l[2],l[3])),a(l[4])))};function a(l){return l.map(c=>{var d;return new Cl(new Vt(c[0],c[1]),new Vt(c[2],c[3]),(d=c[4])===null||d===void 0?void 0:d.map(u=>new qd(new A(u[0],u[1],u[2],u[3]),new A(u[4],u[5],u[6],u[7]))))})}}computeMoreMinimalEdits(e,t,i=!1){if(Zo(t)){if(!hv(this._modelService,e))return Promise.resolve(t);const s=xo.create(),o=this._workerManager.withWorker().then(r=>r.computeMoreMinimalEdits(e,t,i));return o.finally(()=>this._logService.trace("FORMAT#computeMoreMinimalEdits",e.toString(!0),s.elapsed())),Promise.race([o,Dg(1e3).then(()=>t)])}else return Promise.resolve(void 0)}canNavigateValueSet(e){return hv(this._modelService,e)}navigateValueSet(e,t,i){return this._workerManager.withWorker().then(s=>s.navigateValueSet(e,t,i))}canComputeWordRanges(e){return hv(this._modelService,e)}computeWordRanges(e,t){return this._workerManager.withWorker().then(i=>i.computeWordRanges(e,t))}findSectionHeaders(e,t){return this._workerManager.withWorker().then(i=>i.findSectionHeaders(e,t))}};wB=y4e([Oy(0,Pn),Oy(1,vz),Oy(2,er),Oy(3,gn),Oy(4,Xe)],wB);class S4e{constructor(e,t,i,s){this.languageConfigurationService=s,this._debugDisplayName="wordbasedCompletions",this._workerManager=e,this._configurationService=t,this._modelService=i}async provideCompletionItems(e,t){const i=this._configurationService.getValue(e.uri,t,"editor");if(i.wordBasedSuggestions==="off")return;const s=[];if(i.wordBasedSuggestions==="currentDocument")hv(this._modelService,e.uri)&&s.push(e.uri);else for(const u of this._modelService.getModels())hv(this._modelService,u.uri)&&(u===e?s.unshift(u.uri):(i.wordBasedSuggestions==="allDocuments"||u.getLanguageId()===e.getLanguageId())&&s.push(u.uri));if(s.length===0)return;const o=this.languageConfigurationService.getLanguageConfiguration(e.getLanguageId()).getWordDefinition(),r=e.getWordAtPosition(t),a=r?new A(t.lineNumber,r.startColumn,t.lineNumber,r.endColumn):A.fromPositions(t),l=a.setEndPosition(t.lineNumber,t.column),d=await(await this._workerManager.withWorker()).textualSuggest(s,r==null?void 0:r.word,o);if(d)return{duration:d.duration,suggestions:d.words.map(u=>({kind:18,label:u,insertText:u,range:{insert:l,replace:a}}))}}}class x4e extends ne{constructor(e,t){super(),this.languageConfigurationService=t,this._modelService=e,this._editorWorkerClient=null,this._lastWorkerUsedTime=new Date().getTime(),this._register(new iz).cancelAndSet(()=>this._checkStopIdleWorker(),Math.round(mX/2),Ji),this._register(this._modelService.onModelRemoved(s=>this._checkStopEmptyWorker()))}dispose(){this._editorWorkerClient&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null),super.dispose()}_checkStopEmptyWorker(){if(!this._editorWorkerClient)return;this._modelService.getModels().length===0&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}_checkStopIdleWorker(){if(!this._editorWorkerClient)return;new Date().getTime()-this._lastWorkerUsedTime>mX&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}withWorker(){return this._lastWorkerUsedTime=new Date().getTime(),this._editorWorkerClient||(this._editorWorkerClient=new bz(this._modelService,!1,"editorWorkerService",this.languageConfigurationService)),Promise.resolve(this._editorWorkerClient)}}class L4e extends ne{constructor(e,t,i){if(super(),this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),this._proxy=e,this._modelService=t,!i){const s=new JV;s.cancelAndSet(()=>this._checkStopModelSync(),Math.round(pX/2)),this._register(s)}}dispose(){for(const e in this._syncedModels)tn(this._syncedModels[e]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),super.dispose()}ensureSyncedResources(e,t){for(const i of e){const s=i.toString();this._syncedModels[s]||this._beginModelSync(i,t),this._syncedModels[s]&&(this._syncedModelsLastUsedTime[s]=new Date().getTime())}}_checkStopModelSync(){const e=new Date().getTime(),t=[];for(const i in this._syncedModelsLastUsedTime)e-this._syncedModelsLastUsedTime[i]>pX&&t.push(i);for(const i of t)this._stopModelSync(i)}_beginModelSync(e,t){const i=this._modelService.getModel(e);if(!i||!t&&i.isTooLargeForSyncing())return;const s=e.toString();this._proxy.acceptNewModel({url:i.uri.toString(),lines:i.getLinesContent(),EOL:i.getEOL(),versionId:i.getVersionId()});const o=new be;o.add(i.onDidChangeContent(r=>{this._proxy.acceptModelChanged(s.toString(),r)})),o.add(i.onWillDispose(()=>{this._stopModelSync(s)})),o.add(dt(()=>{this._proxy.acceptRemovedModel(s)})),this._syncedModels[s]=o}_stopModelSync(e){const t=this._syncedModels[e];delete this._syncedModels[e],delete this._syncedModelsLastUsedTime[e],tn(t)}}class _X{constructor(e){this._instance=e,this._proxyObj=Promise.resolve(this._instance)}dispose(){this._instance.dispose()}getProxyObject(){return this._proxyObj}}class XF{constructor(e){this._workerClient=e}fhr(e,t){return this._workerClient.fhr(e,t)}}class bz extends ne{constructor(e,t,i,s){super(),this.languageConfigurationService=s,this._disposed=!1,this._modelService=e,this._keepIdleModels=t,this._workerFactory=new xM(i),this._worker=null,this._modelManager=null}fhr(e,t){throw new Error("Not implemented!")}_getOrCreateWorker(){if(!this._worker)try{this._worker=this._register(new kPe(this._workerFactory,"vs/editor/common/services/editorSimpleWorker",new XF(this)))}catch(e){hB(e),this._worker=new _X(new hm(new XF(this),null))}return this._worker}_getProxy(){return this._getOrCreateWorker().getProxyObject().then(void 0,e=>(hB(e),this._worker=new _X(new hm(new XF(this),null)),this._getOrCreateWorker().getProxyObject()))}_getOrCreateModelManager(e){return this._modelManager||(this._modelManager=this._register(new L4e(e,this._modelService,this._keepIdleModels))),this._modelManager}async _withSyncedResources(e,t=!1){return this._disposed?Promise.reject(CAe()):this._getProxy().then(i=>(this._getOrCreateModelManager(i).ensureSyncedResources(e,t),i))}computedUnicodeHighlights(e,t,i){return this._withSyncedResources([e]).then(s=>s.computeUnicodeHighlights(e.toString(),t,i))}computeDiff(e,t,i,s){return this._withSyncedResources([e,t],!0).then(o=>o.computeDiff(e.toString(),t.toString(),i,s))}computeMoreMinimalEdits(e,t,i){return this._withSyncedResources([e]).then(s=>s.computeMoreMinimalEdits(e.toString(),t,i))}computeLinks(e){return this._withSyncedResources([e]).then(t=>t.computeLinks(e.toString()))}computeDefaultDocumentColors(e){return this._withSyncedResources([e]).then(t=>t.computeDefaultDocumentColors(e.toString()))}async textualSuggest(e,t,i){const s=await this._withSyncedResources(e),o=i.source,r=i.flags;return s.textualSuggest(e.map(a=>a.toString()),t,o,r)}computeWordRanges(e,t){return this._withSyncedResources([e]).then(i=>{const s=this._modelService.getModel(e);if(!s)return Promise.resolve(null);const o=this.languageConfigurationService.getLanguageConfiguration(s.getLanguageId()).getWordDefinition(),r=o.source,a=o.flags;return i.computeWordRanges(e.toString(),t,r,a)})}navigateValueSet(e,t,i){return this._withSyncedResources([e]).then(s=>{const o=this._modelService.getModel(e);if(!o)return null;const r=this.languageConfigurationService.getLanguageConfiguration(o.getLanguageId()).getWordDefinition(),a=r.source,l=r.flags;return s.navigateValueSet(e.toString(),t,i,a,l)})}findSectionHeaders(e,t){return this._withSyncedResources([e]).then(i=>i.findSectionHeaders(e.toString(),t))}dispose(){super.dispose(),this._disposed=!0}}function k4e(n,e,t){return new D4e(n,e,t)}class D4e extends bz{constructor(e,t,i){super(e,i.keepIdleModels||!1,i.label,t),this._foreignModuleId=i.moduleId,this._foreignModuleCreateData=i.createData||null,this._foreignModuleHost=i.host||null,this._foreignProxy=null}fhr(e,t){if(!this._foreignModuleHost||typeof this._foreignModuleHost[e]!="function")return Promise.reject(new Error("Missing method "+e+" or missing main thread foreign host."));try{return Promise.resolve(this._foreignModuleHost[e].apply(this._foreignModuleHost,t))}catch(i){return Promise.reject(i)}}_getForeignProxy(){return this._foreignProxy||(this._foreignProxy=this._getProxy().then(e=>{const t=this._foreignModuleHost?RV(this._foreignModuleHost):[];return e.loadForeignModule(this._foreignModuleId,this._foreignModuleCreateData,t).then(i=>{this._foreignModuleCreateData=null;const s=(a,l)=>e.fmr(a,l),o=(a,l)=>function(){const c=Array.prototype.slice.call(arguments,0);return l(a,c)},r={};for(const a of i)r[a]=o(a,s);return r})})),this._foreignProxy}getProxy(){return this._getForeignProxy()}withSyncedResources(e){return this._withSyncedResources(e).then(t=>this.getProxy())}}const mD={ICodeEditor:"vs.editor.ICodeEditor",IDiffEditor:"vs.editor.IDiffEditor"},OC=new class{clone(){return this}equals(n){return this===n}};function Cz(n,e){return new $V([new oL(0,"",n)],e)}function IM(n,e){const t=new Uint32Array(2);return t[0]=0,t[1]=(n<<0|0|0|32768|2<<24)>>>0,new oM(t,e===null?OC:e)}class No{static getLanguageId(e){return(e&255)>>>0}static getTokenType(e){return(e&768)>>>8}static containsBalancedBrackets(e){return(e&1024)!==0}static getFontStyle(e){return(e&30720)>>>11}static getForeground(e){return(e&16744448)>>>15}static getBackground(e){return(e&4278190080)>>>24}static getClassNameFromMetadata(e){let i="mtk"+this.getForeground(e);const s=this.getFontStyle(e);return s&1&&(i+=" mtki"),s&2&&(i+=" mtkb"),s&4&&(i+=" mtku"),s&8&&(i+=" mtks"),i}static getInlineStyleFromMetadata(e,t){const i=this.getForeground(e),s=this.getFontStyle(e);let o=`color: ${t[i]};`;s&1&&(o+="font-style: italic;"),s&2&&(o+="font-weight: bold;");let r="";return s&4&&(r+=" underline"),s&8&&(r+=" line-through"),r&&(o+=`text-decoration:${r};`),o}static getPresentationFromMetadata(e){const t=this.getForeground(e),i=this.getFontStyle(e);return{foreground:t,italic:!!(i&1),bold:!!(i&2),underline:!!(i&4),strikethrough:!!(i&8)}}}class Is{static createEmpty(e,t){const i=Is.defaultTokenMetadata,s=new Uint32Array(2);return s[0]=e.length,s[1]=i,new Is(s,e,t)}static createFromTextAndMetadata(e,t){let i=0,s="";const o=new Array;for(const{text:r,metadata:a}of e)o.push(i+r.length,a),i+=r.length,s+=r;return new Is(new Uint32Array(o),s,t)}constructor(e,t,i){this._lineTokensBrand=void 0,this._tokens=e,this._tokensCount=this._tokens.length>>>1,this._text=t,this.languageIdCodec=i}equals(e){return e instanceof Is?this.slicedEquals(e,0,this._tokensCount):!1}slicedEquals(e,t,i){if(this._text!==e._text||this._tokensCount!==e._tokensCount)return!1;const s=t<<1,o=s+(i<<1);for(let r=s;r0?this._tokens[e-1<<1]:0}getMetadata(e){return this._tokens[(e<<1)+1]}getLanguageId(e){const t=this._tokens[(e<<1)+1],i=No.getLanguageId(t);return this.languageIdCodec.decodeLanguageId(i)}getStandardTokenType(e){const t=this._tokens[(e<<1)+1];return No.getTokenType(t)}getForeground(e){const t=this._tokens[(e<<1)+1];return No.getForeground(t)}getClassName(e){const t=this._tokens[(e<<1)+1];return No.getClassNameFromMetadata(t)}getInlineStyle(e,t){const i=this._tokens[(e<<1)+1];return No.getInlineStyleFromMetadata(i,t)}getPresentation(e){const t=this._tokens[(e<<1)+1];return No.getPresentationFromMetadata(t)}getEndOffset(e){return this._tokens[e<<1]}findTokenIndexAtOffset(e){return Is.findIndexInTokensArray(this._tokens,e)}inflate(){return this}sliceAndInflate(e,t,i){return new wz(this,e,t,i)}static convertToEndOffset(e,t){const s=(e.length>>>1)-1;for(let o=0;o>>1)-1;for(;it&&(s=o)}return i}withInserted(e){if(e.length===0)return this;let t=0,i=0,s="";const o=new Array;let r=0;for(;;){const a=tr){s+=this._text.substring(r,l.offset);const c=this._tokens[(t<<1)+1];o.push(s.length,c),r=l.offset}s+=l.text,o.push(s.length,l.tokenMetadata),i++}else break}return new Is(new Uint32Array(o),s,this.languageIdCodec)}getTokenText(e){const t=this.getStartOffset(e),i=this.getEndOffset(e);return this._text.substring(t,i)}forEach(e){const t=this.getCount();for(let i=0;i>>0;class wz{constructor(e,t,i,s){this._source=e,this._startOffset=t,this._endOffset=i,this._deltaOffset=s,this._firstTokenIndex=e.findTokenIndexAtOffset(t),this.languageIdCodec=e.languageIdCodec,this._tokensCount=0;for(let o=this._firstTokenIndex,r=e.getCount();o=i);o++)this._tokensCount++}getMetadata(e){return this._source.getMetadata(this._firstTokenIndex+e)}getLanguageId(e){return this._source.getLanguageId(this._firstTokenIndex+e)}getLineContent(){return this._source.getLineContent().substring(this._startOffset,this._endOffset)}equals(e){return e instanceof wz?this._startOffset===e._startOffset&&this._endOffset===e._endOffset&&this._deltaOffset===e._deltaOffset&&this._source.slicedEquals(e._source,this._firstTokenIndex,this._tokensCount):!1}getCount(){return this._tokensCount}getStandardTokenType(e){return this._source.getStandardTokenType(this._firstTokenIndex+e)}getForeground(e){return this._source.getForeground(this._firstTokenIndex+e)}getEndOffset(e){const t=this._source.getEndOffset(this._firstTokenIndex+e);return Math.min(this._endOffset,t)-this._startOffset+this._deltaOffset}getClassName(e){return this._source.getClassName(this._firstTokenIndex+e)}getInlineStyle(e,t){return this._source.getInlineStyle(this._firstTokenIndex+e,t)}getPresentation(e){return this._source.getPresentation(this._firstTokenIndex+e)}findTokenIndexAtOffset(e){return this._source.findTokenIndexAtOffset(e+this._startOffset-this._deltaOffset)-this._firstTokenIndex}getTokenText(e){const t=this._firstTokenIndex+e,i=this._source.getStartOffset(t),s=this._source.getEndOffset(t);let o=this._source.getTokenText(t);return ithis._endOffset&&(o=o.substring(0,o.length-(s-this._endOffset))),o}forEach(e){for(let t=0;t=o||(a[l++]=new Rr(Math.max(1,c.startColumn-s+1),Math.min(r+1,c.endColumn-s+1),c.className,c.type));return a}static filter(e,t,i,s){if(e.length===0)return[];const o=[];let r=0;for(let a=0,l=e.length;at||d.isEmpty()&&(c.type===0||c.type===3))continue;const u=d.startLineNumber===t?d.startColumn:i,h=d.endLineNumber===t?d.endColumn:s;o[r++]=new Rr(u,h,c.inlineClassName,c.type)}return o}static _typeCompare(e,t){const i=[2,0,1,3];return i[e]-i[t]}static compare(e,t){if(e.startColumn!==t.startColumn)return e.startColumn-t.startColumn;if(e.endColumn!==t.endColumn)return e.endColumn-t.endColumn;const i=Rr._typeCompare(e.type,t.type);return i!==0?i:e.className!==t.className?e.className0&&this.stopOffsets[0]0&&t=e){this.stopOffsets.splice(s,0,e),this.classNames.splice(s,0,t),this.metadata.splice(s,0,i);break}this.count++}}class E4e{static normalize(e,t){if(t.length===0)return[];const i=[],s=new G2;let o=0;for(let r=0,a=t.length;r1){const p=e.charCodeAt(c-2);Gs(p)&&c--}if(d>1){const p=e.charCodeAt(d-2);Gs(p)&&d--}const f=c-1,g=d-2;o=s.consumeLowerThan(f,o,i),s.count===0&&(o=f),s.insert(g,u,h)}return s.consumeLowerThan(1073741824,o,i),i}}class oo{constructor(e,t,i,s){this.endIndex=e,this.type=t,this.metadata=i,this.containsRTL=s,this._linePartBrand=void 0}isWhitespace(){return!!(this.metadata&1)}isPseudoAfter(){return!!(this.metadata&4)}}class Nle{constructor(e,t){this.startOffset=e,this.endOffset=t}equals(e){return this.startOffset===e.startOffset&&this.endOffset===e.endOffset}}class f_{constructor(e,t,i,s,o,r,a,l,c,d,u,h,f,g,p,_,b,w,y){this.useMonospaceOptimizations=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=i,this.continuesWithWrappedLine=s,this.isBasicASCII=o,this.containsRTL=r,this.fauxIndentLength=a,this.lineTokens=l,this.lineDecorations=c.sort(Rr.compare),this.tabSize=d,this.startVisibleColumn=u,this.spaceWidth=h,this.stopRenderingLineAfter=p,this.renderWhitespace=_==="all"?4:_==="boundary"?1:_==="selection"?2:_==="trailing"?3:0,this.renderControlCharacters=b,this.fontLigatures=w,this.selectionsOnLine=y&&y.sort((k,D)=>k.startOffset>>16}static getCharIndex(e){return(e&65535)>>>0}constructor(e,t){this.length=e,this._data=new Uint32Array(this.length),this._horizontalOffset=new Uint32Array(this.length)}setColumnInfo(e,t,i,s){const o=(t<<16|i<<0)>>>0;this._data[e-1]=o,this._horizontalOffset[e-1]=s}getHorizontalOffset(e){return this._horizontalOffset.length===0?0:this._horizontalOffset[e-1]}charOffsetToPartData(e){return this.length===0?0:e<0?this._data[0]:e>=this.length?this._data[this.length-1]:this._data[e]}getDomPosition(e){const t=this.charOffsetToPartData(e-1),i=Gu.getPartIndex(t),s=Gu.getCharIndex(t);return new Ale(i,s)}getColumn(e,t){return this.partDataToCharOffset(e.partIndex,t,e.charIndex)+1}partDataToCharOffset(e,t,i){if(this.length===0)return 0;const s=(e<<16|i<<0)>>>0;let o=0,r=this.length-1;for(;o+1>>1,_=this._data[p];if(_===s)return p;_>s?r=p:o=p}if(o===r)return o;const a=this._data[o],l=this._data[r];if(a===s)return o;if(l===s)return r;const c=Gu.getPartIndex(a),d=Gu.getCharIndex(a),u=Gu.getPartIndex(l);let h;c!==u?h=t:h=Gu.getCharIndex(l);const f=i-d,g=h-i;return f<=g?o:r}}class yB{constructor(e,t,i){this._renderLineOutputBrand=void 0,this.characterMapping=e,this.containsRTL=t,this.containsForeignElements=i}}function _D(n,e){if(n.lineContent.length===0){if(n.lineDecorations.length>0){e.appendString("");let t=0,i=0,s=0;for(const r of n.lineDecorations)(r.type===1||r.type===2)&&(e.appendString(''),r.type===1&&(s|=1,t++),r.type===2&&(s|=2,i++));e.appendString("");const o=new Gu(1,t+i);return o.setColumnInfo(1,t,0,0),new yB(o,!1,s)}return e.appendString(""),new yB(new Gu(0,0),!1,0)}return B4e(A4e(n),e)}class T4e{constructor(e,t,i,s){this.characterMapping=e,this.html=t,this.containsRTL=i,this.containsForeignElements=s}}function EM(n){const e=new Ow(1e4),t=_D(n,e);return new T4e(t.characterMapping,e.build(),t.containsRTL,t.containsForeignElements)}class N4e{constructor(e,t,i,s,o,r,a,l,c,d,u,h,f,g,p,_){this.fontIsMonospace=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=i,this.len=s,this.isOverflowing=o,this.overflowingCharCount=r,this.parts=a,this.containsForeignElements=l,this.fauxIndentLength=c,this.tabSize=d,this.startVisibleColumn=u,this.containsRTL=h,this.spaceWidth=f,this.renderSpaceCharCode=g,this.renderWhitespace=p,this.renderControlCharacters=_}}function A4e(n){const e=n.lineContent;let t,i,s;n.stopRenderingLineAfter!==-1&&n.stopRenderingLineAfter0){for(let a=0,l=n.lineDecorations.length;a0&&(o[r++]=new oo(i,"",0,!1));let a=i;for(let l=0,c=t.getCount();l=s){const f=e?TC(n.substring(a,s)):!1;o[r++]=new oo(s,u,0,f);break}const h=e?TC(n.substring(a,d)):!1;o[r++]=new oo(d,u,0,h),a=d}return o}function M4e(n,e,t){let i=0;const s=[];let o=0;if(t)for(let r=0,a=e.length;r=50&&(s[o++]=new oo(f+1,d,u,h),g=f+1,f=-1);g!==c&&(s[o++]=new oo(c,d,u,h))}else s[o++]=l;i=c}else for(let r=0,a=e.length;r50){const u=l.type,h=l.metadata,f=l.containsRTL,g=Math.ceil(d/50);for(let p=1;p=8234&&n<=8238||n>=8294&&n<=8297||n>=8206&&n<=8207||n===1564}function P4e(n,e){const t=[];let i=new oo(0,"",0,!1),s=0;for(const o of e){const r=o.endIndex;for(;si.endIndex&&(i=new oo(s,o.type,o.metadata,o.containsRTL),t.push(i)),i=new oo(s+1,"mtkcontrol",o.metadata,!1),t.push(i))}s>i.endIndex&&(i=new oo(r,o.type,o.metadata,o.containsRTL),t.push(i))}return t}function O4e(n,e,t,i){const s=n.continuesWithWrappedLine,o=n.fauxIndentLength,r=n.tabSize,a=n.startVisibleColumn,l=n.useMonospaceOptimizations,c=n.selectionsOnLine,d=n.renderWhitespace===1,u=n.renderWhitespace===3,h=n.renderSpaceWidth!==n.spaceWidth,f=[];let g=0,p=0,_=i[p].type,b=i[p].containsRTL,w=i[p].endIndex;const y=i.length;let S=!1,x=fr(e),k;x===-1?(S=!0,x=t,k=t):k=Kd(e);let D=!1,I=0,N=c&&c[I],P=a%r;for(let M=o;M=N.endOffset&&(I++,N=c&&c[I]);let K;if(Mk)K=!0;else if(z===9)K=!0;else if(z===32)if(d)if(D)K=!0;else{const ae=M+1M),K&&u&&(K=S||M>k),K&&b&&M>=x&&M<=k&&(K=!1),D){if(!K||!l&&P>=r){if(h){const ae=g>0?f[g-1].endIndex:o;for(let se=ae+1;se<=M;se++)f[g++]=new oo(se,"mtkw",1,!1)}else f[g++]=new oo(M,"mtkw",1,!1);P=P%r}}else(M===w||K&&M>o)&&(f[g++]=new oo(M,_,0,b),P=P%r);for(z===9?P=r:Mm(z)?P+=2:P++,D=K;M===w&&(p++,p0?e.charCodeAt(t-1):0,z=t>1?e.charCodeAt(t-2):0;M===32&&z!==32&&z!==9||(O=!0)}else O=!0;if(O)if(h){const M=g>0?f[g-1].endIndex:o;for(let z=M+1;z<=t;z++)f[g++]=new oo(z,"mtkw",1,!1)}else f[g++]=new oo(t,"mtkw",1,!1);else f[g++]=new oo(t,_,0,b);return f}function F4e(n,e,t,i){i.sort(Rr.compare);const s=E4e.normalize(n,i),o=s.length;let r=0;const a=[];let l=0,c=0;for(let u=0,h=t.length;uc&&(c=w.startOffset,a[l++]=new oo(c,p,_,b)),w.endOffset+1<=g)c=w.endOffset+1,a[l++]=new oo(c,p+" "+w.className,_|w.metadata,b),r++;else{c=g,a[l++]=new oo(c,p+" "+w.className,_|w.metadata,b);break}}g>c&&(c=g,a[l++]=new oo(c,p,_,b))}const d=t[t.length-1].endIndex;if(r'):e.appendString("");for(let N=0,P=c.length;N=d&&(lt+=Ve)}}for(se&&(e.appendString(' style="width:'),e.appendString(String(g*me)),e.appendString('px"')),e.appendASCIICharCode(62);S1?e.appendCharCode(8594):e.appendCharCode(65515);for(let Ve=2;Ve<=We;Ve++)e.appendCharCode(160)}else lt=2,We=1,e.appendCharCode(p),e.appendCharCode(8204);k+=lt,D+=We,S>=d&&(x+=We)}}else for(e.appendASCIICharCode(62);S=d&&(x+=lt)}he?I++:I=0,S>=r&&!y&&O.isPseudoAfter()&&(y=!0,w.setColumnInfo(S+1,N,k,D)),e.appendString("")}return y||w.setColumnInfo(r+1,c.length-1,k,D),a&&(e.appendString(''),e.appendString(v("showMore","Show more ({0})",H4e(l))),e.appendString("")),e.appendString(""),new yB(w,f,s)}function W4e(n){return n.toString(16).toUpperCase().padStart(4,"0")}function H4e(n){return n<1024?v("overflow.chars","{0} chars",n):n<1024*1024?`${(n/1024).toFixed(1)} KB`:`${(n/1024/1024).toFixed(1)} MB`}class bX{constructor(e,t,i,s){this._viewportBrand=void 0,this.top=e|0,this.left=t|0,this.width=i|0,this.height=s|0}}class V4e{constructor(e,t){this.tabSize=e,this.data=t}}class yz{constructor(e,t,i,s,o,r,a){this._viewLineDataBrand=void 0,this.content=e,this.continuesWithWrappedLine=t,this.minColumn=i,this.maxColumn=s,this.startVisibleColumn=o,this.tokens=r,this.inlineDecorations=a}}class xl{constructor(e,t,i,s,o,r,a,l,c,d){this.minColumn=e,this.maxColumn=t,this.content=i,this.continuesWithWrappedLine=s,this.isBasicASCII=xl.isBasicASCII(i,r),this.containsRTL=xl.containsRTL(i,this.isBasicASCII,o),this.tokens=a,this.inlineDecorations=l,this.tabSize=c,this.startVisibleColumn=d}static isBasicASCII(e,t){return t?cD(e):!0}static containsRTL(e,t,i){return!t&&i?TC(e):!1}}class cx{constructor(e,t,i){this.range=e,this.inlineClassName=t,this.type=i}}class z4e{constructor(e,t,i,s){this.startOffset=e,this.endOffset=t,this.inlineClassName=i,this.inlineClassNameAffectsLetterSpacing=s}toInlineDecoration(e){return new cx(new A(e,this.startOffset+1,e,this.endOffset+1),this.inlineClassName,this.inlineClassNameAffectsLetterSpacing?3:0)}}class Mle{constructor(e,t){this._viewModelDecorationBrand=void 0,this.range=e,this.options=t}}class CL{constructor(e,t,i){this.color=e,this.zIndex=t,this.data=i}static compareByRenderingProps(e,t){return e.zIndex===t.zIndex?e.colort.color?1:0:e.zIndex-t.zIndex}static equals(e,t){return e.color===t.color&&e.zIndex===t.zIndex&&zn(e.data,t.data)}static equalsArr(e,t){return zn(e,t,CL.equals)}}function $4e(n){return Array.isArray(n)}function U4e(n){return!$4e(n)}function Ple(n){return typeof n=="string"}function CX(n){return!Ple(n)}function fv(n){return!n}function vg(n,e){return n.ignoreCase&&e?e.toLowerCase():e}function wX(n){return n.replace(/[&<>'"_]/g,"-")}function j4e(n,e){console.log(`${n.languageId}: ${e}`)}function Ln(n,e){return new Error(`${n.languageId}: ${e}`)}function Ap(n,e,t,i,s){const o=/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g;let r=null;return e.replace(o,function(a,l,c,d,u,h,f,g,p){return fv(c)?fv(d)?!fv(u)&&u0;){const i=n.tokenizer[t];if(i)return i;const s=t.lastIndexOf(".");s<0?t=null:t=t.substr(0,s)}return null}function q4e(n,e){let t=e;for(;t&&t.length>0;){if(n.stateNames[t])return!0;const s=t.lastIndexOf(".");s<0?t=null:t=t.substr(0,s)}return!1}var G4e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Z4e=function(n,e){return function(t,i){e(t,i,n)}},SB;const Ole=5;class wL{static create(e,t){return this._INSTANCE.create(e,t)}constructor(e){this._maxCacheDepth=e,this._entries=Object.create(null)}create(e,t){if(e!==null&&e.depth>=this._maxCacheDepth)return new X1(e,t);let i=X1.getStackElementId(e);i.length>0&&(i+="|"),i+=t;let s=this._entries[i];return s||(s=new X1(e,t),this._entries[i]=s,s)}}wL._INSTANCE=new wL(Ole);class X1{constructor(e,t){this.parent=e,this.state=t,this.depth=(this.parent?this.parent.depth:0)+1}static getStackElementId(e){let t="";for(;e!==null;)t.length>0&&(t+="|"),t+=e.state,e=e.parent;return t}static _equals(e,t){for(;e!==null&&t!==null;){if(e===t)return!0;if(e.state!==t.state)return!1;e=e.parent,t=t.parent}return e===null&&t===null}equals(e){return X1._equals(this,e)}push(e){return wL.create(this,e)}pop(){return this.parent}popall(){let e=this;for(;e.parent;)e=e.parent;return e}switchTo(e){return wL.create(this.parent,e)}}class _1{constructor(e,t){this.languageId=e,this.state=t}equals(e){return this.languageId===e.languageId&&this.state.equals(e.state)}clone(){return this.state.clone()===this.state?this:new _1(this.languageId,this.state)}}class Rp{static create(e,t){return this._INSTANCE.create(e,t)}constructor(e){this._maxCacheDepth=e,this._entries=Object.create(null)}create(e,t){if(t!==null)return new dx(e,t);if(e!==null&&e.depth>=this._maxCacheDepth)return new dx(e,t);const i=X1.getStackElementId(e);let s=this._entries[i];return s||(s=new dx(e,null),this._entries[i]=s,s)}}Rp._INSTANCE=new Rp(Ole);class dx{constructor(e,t){this.stack=e,this.embeddedLanguageData=t}clone(){return(this.embeddedLanguageData?this.embeddedLanguageData.clone():null)===this.embeddedLanguageData?this:Rp.create(this.stack,this.embeddedLanguageData)}equals(e){return!(e instanceof dx)||!this.stack.equals(e.stack)?!1:this.embeddedLanguageData===null&&e.embeddedLanguageData===null?!0:this.embeddedLanguageData===null||e.embeddedLanguageData===null?!1:this.embeddedLanguageData.equals(e.embeddedLanguageData)}}class Y4e{constructor(){this._tokens=[],this._languageId=null,this._lastTokenType=null,this._lastTokenLanguage=null}enterLanguage(e){this._languageId=e}emit(e,t){this._lastTokenType===t&&this._lastTokenLanguage===this._languageId||(this._lastTokenType=t,this._lastTokenLanguage=this._languageId,this._tokens.push(new oL(e,t,this._languageId)))}nestedLanguageTokenize(e,t,i,s){const o=i.languageId,r=i.state,a=Zn.get(o);if(!a)return this.enterLanguage(o),this.emit(s,""),r;const l=a.tokenize(e,t,r);if(s!==0)for(const c of l.tokens)this._tokens.push(new oL(c.offset+s,c.type,c.language));else this._tokens=this._tokens.concat(l.tokens);return this._lastTokenType=null,this._lastTokenLanguage=null,this._languageId=null,l.endState}finalize(e){return new $V(this._tokens,e)}}class Z2{constructor(e,t){this._languageService=e,this._theme=t,this._prependTokens=null,this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0}enterLanguage(e){this._currentLanguageId=this._languageService.languageIdCodec.encodeLanguageId(e)}emit(e,t){const i=this._theme.match(this._currentLanguageId,t)|1024;this._lastTokenMetadata!==i&&(this._lastTokenMetadata=i,this._tokens.push(e),this._tokens.push(i))}static _merge(e,t,i){const s=e!==null?e.length:0,o=t.length,r=i!==null?i.length:0;if(s===0&&o===0&&r===0)return new Uint32Array(0);if(s===0&&o===0)return i;if(o===0&&r===0)return e;const a=new Uint32Array(s+o+r);e!==null&&a.set(e);for(let l=0;l{if(r)return;let l=!1;for(let c=0,d=a.changedLanguages.length;c{a.affectsConfiguration("editor.maxTokenizationLineLength")&&(this._maxTokenizationLineLength=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:this._languageId}))}))}getLoadStatus(){const e=[];for(const t in this._embeddedLanguages){const i=Zn.get(t);if(i){if(i instanceof SB){const s=i.getLoadStatus();s.loaded===!1&&e.push(s.promise)}continue}Zn.isResolved(t)||e.push(Zn.getOrCreate(t))}return e.length===0?{loaded:!0}:{loaded:!1,promise:Promise.all(e).then(t=>{})}}getInitialState(){const e=wL.create(null,this._lexer.start);return Rp.create(e,null)}tokenize(e,t,i){if(e.length>=this._maxTokenizationLineLength)return Cz(this._languageId,i);const s=new Y4e,o=this._tokenize(e,t,i,s);return s.finalize(o)}tokenizeEncoded(e,t,i){if(e.length>=this._maxTokenizationLineLength)return IM(this._languageService.languageIdCodec.encodeLanguageId(this._languageId),i);const s=new Z2(this._languageService,this._standaloneThemeService.getColorTheme().tokenTheme),o=this._tokenize(e,t,i,s);return s.finalize(o)}_tokenize(e,t,i,s){return i.embeddedLanguageData?this._nestedTokenize(e,t,i,0,s):this._myTokenize(e,t,i,0,s)}_findLeavingNestedLanguageOffset(e,t){let i=this._lexer.tokenizer[t.stack.state];if(!i&&(i=TE(this._lexer,t.stack.state),!i))throw Ln(this._lexer,"tokenizer state is not defined: "+t.stack.state);let s=-1,o=!1;for(const r of i){if(!CX(r.action)||r.action.nextEmbedded!=="@pop")continue;o=!0;let a=r.resolveRegex(t.stack.state);const l=a.source;if(l.substr(0,4)==="^(?:"&&l.substr(l.length-1,1)===")"){const d=(a.ignoreCase?"i":"")+(a.unicode?"u":"");a=new RegExp(l.substr(4,l.length-5),d)}const c=e.search(a);c===-1||c!==0&&r.matchOnlyAtLineStart||(s===-1||c0&&o.nestedLanguageTokenize(a,!1,i.embeddedLanguageData,s);const l=e.substring(r);return this._myTokenize(l,t,i,s+r,o)}_safeRuleName(e){return e?e.name:"(unknown)"}_myTokenize(e,t,i,s,o){o.enterLanguage(this._languageId);const r=e.length,a=t&&this._lexer.includeLF?e+` `:e,l=a.length;let c=i.embeddedLanguageData,d=i.stack,u=0,h=null,f=!0;for(;f||u=l)break;f=!1;let N=this._lexer.tokenizer[b];if(!N&&(N=TE(this._lexer,b),!N))throw Ln(this._lexer,"tokenizer state is not defined: "+b);const P=a.substr(u);for(const O of N)if((u===0||!O.matchOnlyAtLineStart)&&(w=P.match(O.resolveRegex(b)),w)){y=w[0],S=O.action;break}}if(w||(w=[""],y=""),S||(u=this._lexer.maxStack)throw Ln(this._lexer,"maximum tokenizer stack size reached: ["+d.state+","+d.parent.state+",...]");d=d.push(b)}else if(S.next==="@pop"){if(d.depth<=1)throw Ln(this._lexer,"trying to pop an empty stack in rule: "+this._safeRuleName(x));d=d.pop()}else if(S.next==="@popall")d=d.popall();else{let N=Ap(this._lexer,S.next,y,w,b);if(N[0]==="@"&&(N=N.substr(1)),TE(this._lexer,N))d=d.push(N);else throw Ln(this._lexer,"trying to set a next state '"+N+"' that is undefined in rule: "+this._safeRuleName(x))}}S.log&&typeof S.log=="string"&&j4e(this._lexer,this._lexer.languageId+": "+Ap(this._lexer,S.log,y,w,b))}if(D===null)throw Ln(this._lexer,"lexer rule has no well-defined action in rule: "+this._safeRuleName(x));const I=N=>{const P=this._languageService.getLanguageIdByLanguageName(N)||this._languageService.getLanguageIdByMimeType(N)||N,O=this._getNestedEmbeddedLanguageData(P);if(u0)throw Ln(this._lexer,"groups cannot be nested: "+this._safeRuleName(x));if(w.length!==D.length+1)throw Ln(this._lexer,"matched number of groups does not match the number of actions in rule: "+this._safeRuleName(x));let N=0;for(let P=1;Pn});class Sz{static colorizeElement(e,t,i,s){s=s||{};const o=s.theme||"vs",r=s.mimeType||i.getAttribute("lang")||i.getAttribute("data-lang");if(!r)return console.error("Mode not detected"),Promise.resolve();const a=t.getLanguageIdByMimeType(r)||r;e.setTheme(o);const l=i.firstChild?i.firstChild.nodeValue:"";i.className+=" "+o;const c=d=>{var u;const h=(u=QF==null?void 0:QF.createHTML(d))!==null&&u!==void 0?u:d;i.innerHTML=h};return this.colorize(t,l||"",a,s).then(c,d=>console.error(d))}static async colorize(e,t,i,s){const o=e.languageIdCodec;let r=4;s&&typeof s.tabSize=="number"&&(r=s.tabSize),YV(t)&&(t=t.substr(1));const a=Wh(t);if(!e.isRegisteredLanguageId(i))return yX(a,r,o);const l=await Zn.getOrCreate(i);return l?Q4e(a,r,l,o):yX(a,r,o)}static colorizeLine(e,t,i,s,o=4){const r=xl.isBasicASCII(e,t),a=xl.containsRTL(e,r,i);return EM(new f_(!1,!0,e,!1,r,a,0,s,[],o,0,0,0,0,-1,"none",!1,!1,null)).html}static colorizeModelLine(e,t,i=4){const s=e.getLineContent(t);e.tokenization.forceTokenization(t);const r=e.tokenization.getLineTokens(t).inflate();return this.colorizeLine(s,e.mightContainNonBasicASCII(),e.mightContainRTL(),r,i)}}function Q4e(n,e,t,i){return new Promise((s,o)=>{const r=()=>{const a=J4e(n,e,t,i);if(t instanceof yL){const l=t.getLoadStatus();if(l.loaded===!1){l.promise.then(r,o);return}}s(a)};r()})}function yX(n,e,t){let i=[];const o=new Uint32Array(2);o[0]=0,o[1]=33587200;for(let r=0,a=n.length;r")}return i.join("")}function J4e(n,e,t,i){let s=[],o=t.getInitialState();for(let r=0,a=n.length;r"),o=c.endState}return s.join("")}const SX=2e4;let gv,mN,xB,_N,LB;function eFe(n){gv=document.createElement("div"),gv.className="monaco-aria-container";const e=()=>{const i=document.createElement("div");return i.className="monaco-alert",i.setAttribute("role","alert"),i.setAttribute("aria-atomic","true"),gv.appendChild(i),i};mN=e(),xB=e();const t=()=>{const i=document.createElement("div");return i.className="monaco-status",i.setAttribute("aria-live","polite"),i.setAttribute("aria-atomic","true"),gv.appendChild(i),i};_N=t(),LB=t(),n.appendChild(gv)}function la(n){gv&&(mN.textContent!==n?(wo(xB),Y2(mN,n)):(wo(mN),Y2(xB,n)))}function Ih(n){gv&&(_N.textContent!==n?(wo(LB),Y2(_N,n)):(wo(_N),Y2(LB,n)))}function Y2(n,e){wo(n),e.length>SX&&(e=e.substr(0,SX)),n.textContent=e,n.style.visibility="hidden",n.style.visibility="visible"}const xz=Jt("markerDecorationsService");var tFe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},iFe=function(n,e){return function(t,i){e(t,i,n)}};let SL=class{constructor(e,t){}dispose(){}};SL.ID="editor.contrib.markerDecorations";SL=tFe([iFe(1,xz)],SL);bi(SL.ID,SL,0);class Fle extends ne{constructor(e,t){super(),this._onDidChange=this._register(new X),this.onDidChange=this._onDidChange.event,this._referenceDomElement=e,this._width=-1,this._height=-1,this._resizeObserver=null,this.measureReferenceDomElement(!1,t)}dispose(){this.stopObserving(),super.dispose()}getWidth(){return this._width}getHeight(){return this._height}startObserving(){if(!this._resizeObserver&&this._referenceDomElement){let e=null;const t=()=>{e?this.observe({width:e.width,height:e.height}):this.observe()};let i=!1,s=!1;const o=()=>{if(i&&!s)try{i=!1,s=!0,t()}finally{Oa(gt(this._referenceDomElement),()=>{s=!1,o()})}};this._resizeObserver=new ResizeObserver(r=>{r&&r[0]&&r[0].contentRect?e={width:r[0].contentRect.width,height:r[0].contentRect.height}:e=null,i=!0,o()}),this._resizeObserver.observe(this._referenceDomElement)}}stopObserving(){this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null)}observe(e){this.measureReferenceDomElement(!0,e)}measureReferenceDomElement(e,t){let i=0,s=0;t?(i=t.width,s=t.height):this._referenceDomElement&&(i=this._referenceDomElement.clientWidth,s=this._referenceDomElement.clientHeight),i=Math.max(5,i),s=Math.max(5,s),(this._width!==i||this._height!==s)&&(this._width=i,this._height=s,e&&this._onDidChange.fire())}}class fm{constructor(e,t){this.key=e,this.migrate=t}apply(e){const t=fm._read(e,this.key),i=o=>fm._read(e,o),s=(o,r)=>fm._write(e,o,r);this.migrate(t,i,s)}static _read(e,t){if(typeof e>"u")return;const i=t.indexOf(".");if(i>=0){const s=t.substring(0,i);return this._read(e[s],t.substring(i+1))}return e[t]}static _write(e,t,i){const s=t.indexOf(".");if(s>=0){const o=t.substring(0,s);e[o]=e[o]||{},this._write(e[o],t.substring(s+1),i);return}e[t]=i}}fm.items=[];function vu(n,e){fm.items.push(new fm(n,e))}function Wa(n,e){vu(n,(t,i,s)=>{if(typeof t<"u"){for(const[o,r]of e)if(t===o){s(n,r);return}}})}function nFe(n){fm.items.forEach(e=>e.apply(n))}Wa("wordWrap",[[!0,"on"],[!1,"off"]]);Wa("lineNumbers",[[!0,"on"],[!1,"off"]]);Wa("cursorBlinking",[["visible","solid"]]);Wa("renderWhitespace",[[!0,"boundary"],[!1,"none"]]);Wa("renderLineHighlight",[[!0,"line"],[!1,"none"]]);Wa("acceptSuggestionOnEnter",[[!0,"on"],[!1,"off"]]);Wa("tabCompletion",[[!1,"off"],[!0,"onlySnippets"]]);Wa("hover",[[!0,{enabled:!0}],[!1,{enabled:!1}]]);Wa("parameterHints",[[!0,{enabled:!0}],[!1,{enabled:!1}]]);Wa("autoIndent",[[!1,"advanced"],[!0,"full"]]);Wa("matchBrackets",[[!0,"always"],[!1,"never"]]);Wa("renderFinalNewline",[[!0,"on"],[!1,"off"]]);Wa("cursorSmoothCaretAnimation",[[!0,"on"],[!1,"off"]]);Wa("occurrencesHighlight",[[!0,"singleFile"],[!1,"off"]]);Wa("wordBasedSuggestions",[[!0,"matchingDocuments"],[!1,"off"]]);vu("autoClosingBrackets",(n,e,t)=>{n===!1&&(t("autoClosingBrackets","never"),typeof e("autoClosingQuotes")>"u"&&t("autoClosingQuotes","never"),typeof e("autoSurround")>"u"&&t("autoSurround","never"))});vu("renderIndentGuides",(n,e,t)=>{typeof n<"u"&&(t("renderIndentGuides",void 0),typeof e("guides.indentation")>"u"&&t("guides.indentation",!!n))});vu("highlightActiveIndentGuide",(n,e,t)=>{typeof n<"u"&&(t("highlightActiveIndentGuide",void 0),typeof e("guides.highlightActiveIndentation")>"u"&&t("guides.highlightActiveIndentation",!!n))});const sFe={method:"showMethods",function:"showFunctions",constructor:"showConstructors",deprecated:"showDeprecated",field:"showFields",variable:"showVariables",class:"showClasses",struct:"showStructs",interface:"showInterfaces",module:"showModules",property:"showProperties",event:"showEvents",operator:"showOperators",unit:"showUnits",value:"showValues",constant:"showConstants",enum:"showEnums",enumMember:"showEnumMembers",keyword:"showKeywords",text:"showWords",color:"showColors",file:"showFiles",reference:"showReferences",folder:"showFolders",typeParameter:"showTypeParameters",snippet:"showSnippets"};vu("suggest.filteredTypes",(n,e,t)=>{if(n&&typeof n=="object"){for(const i of Object.entries(sFe))n[i[0]]===!1&&typeof e(`suggest.${i[1]}`)>"u"&&t(`suggest.${i[1]}`,!1);t("suggest.filteredTypes",void 0)}});vu("quickSuggestions",(n,e,t)=>{if(typeof n=="boolean"){const i=n?"on":"off";t("quickSuggestions",{comments:i,strings:i,other:i})}});vu("experimental.stickyScroll.enabled",(n,e,t)=>{typeof n=="boolean"&&(t("experimental.stickyScroll.enabled",void 0),typeof e("stickyScroll.enabled")>"u"&&t("stickyScroll.enabled",n))});vu("experimental.stickyScroll.maxLineCount",(n,e,t)=>{typeof n=="number"&&(t("experimental.stickyScroll.maxLineCount",void 0),typeof e("stickyScroll.maxLineCount")>"u"&&t("stickyScroll.maxLineCount",n))});vu("codeActionsOnSave",(n,e,t)=>{if(n&&typeof n=="object"){let i=!1;const s={};for(const o of Object.entries(n))typeof o[1]=="boolean"?(i=!0,s[o[0]]=o[1]?"explicit":"never"):s[o[0]]=o[1];i&&t("codeActionsOnSave",s)}});vu("codeActionWidget.includeNearbyQuickfixes",(n,e,t)=>{typeof n=="boolean"&&(t("codeActionWidget.includeNearbyQuickfixes",void 0),typeof e("codeActionWidget.includeNearbyQuickFixes")>"u"&&t("codeActionWidget.includeNearbyQuickFixes",n))});vu("lightbulb.enabled",(n,e,t)=>{typeof n=="boolean"&&t("lightbulb.enabled",n?void 0:"off")});class oFe{constructor(){this._tabFocus=!1,this._onDidChangeTabFocus=new X,this.onDidChangeTabFocus=this._onDidChangeTabFocus.event}getTabFocusMode(){return this._tabFocus}setTabFocusMode(e){this._tabFocus=e,this._onDidChangeTabFocus.fire(this._tabFocus)}}const FC=new oFe,Ha=Jt("accessibilityService"),vD=new He("accessibilityModeEnabled",!1);var rFe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},aFe=function(n,e){return function(t,i){e(t,i,n)}};let kB=class extends ne{constructor(e,t,i,s,o){super(),this._accessibilityService=o,this._onDidChange=this._register(new X),this.onDidChange=this._onDidChange.event,this._onDidChangeFast=this._register(new X),this.onDidChangeFast=this._onDidChangeFast.event,this._isDominatedByLongLines=!1,this._viewLineCount=1,this._lineNumbersDigitCount=1,this._reservedHeight=0,this._glyphMarginDecorationLaneCount=1,this._computeOptionsMemory=new eae,this.isSimpleWidget=e,this.contextMenuId=t,this._containerObserver=this._register(new Fle(s,i.dimension)),this._targetWindowId=gt(s).vscodeWindowId,this._rawOptions=xX(i),this._validatedOptions=Mp.validateOptions(this._rawOptions),this.options=this._computeOptions(),this.options.get(13)&&this._containerObserver.startObserving(),this._register(Kl.onDidChangeZoomLevel(()=>this._recomputeOptions())),this._register(FC.onDidChangeTabFocus(()=>this._recomputeOptions())),this._register(this._containerObserver.onDidChange(()=>this._recomputeOptions())),this._register(lB.onDidChange(()=>this._recomputeOptions())),this._register(fL.getInstance(gt(s)).onDidChange(()=>this._recomputeOptions())),this._register(this._accessibilityService.onDidChangeScreenReaderOptimized(()=>this._recomputeOptions()))}_recomputeOptions(){const e=this._computeOptions(),t=Mp.checkEquals(this.options,e);t!==null&&(this.options=e,this._onDidChangeFast.fire(t),this._onDidChange.fire(t))}_computeOptions(){const e=this._readEnvConfiguration(),t=zv.createFromValidatedSettings(this._validatedOptions,e.pixelRatio,this.isSimpleWidget),i=this._readFontInfo(t),s={memory:this._computeOptionsMemory,outerWidth:e.outerWidth,outerHeight:e.outerHeight-this._reservedHeight,fontInfo:i,extraEditorClassName:e.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines,viewLineCount:this._viewLineCount,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:e.emptySelectionClipboard,pixelRatio:e.pixelRatio,tabFocusMode:FC.getTabFocusMode(),accessibilitySupport:e.accessibilitySupport,glyphMarginDecorationLaneCount:this._glyphMarginDecorationLaneCount};return Mp.computeOptions(this._validatedOptions,s)}_readEnvConfiguration(){return{extraEditorClassName:cFe(),outerWidth:this._containerObserver.getWidth(),outerHeight:this._containerObserver.getHeight(),emptySelectionClipboard:rM||lc,pixelRatio:fL.getInstance(wY(this._targetWindowId,!0).window).value,accessibilitySupport:this._accessibilityService.isScreenReaderOptimized()?2:this._accessibilityService.getAccessibilitySupport()}}_readFontInfo(e){return lB.readFontInfo(wY(this._targetWindowId,!0).window,e)}getRawOptions(){return this._rawOptions}updateOptions(e){const t=xX(e);Mp.applyUpdate(this._rawOptions,t)&&(this._validatedOptions=Mp.validateOptions(this._rawOptions),this._recomputeOptions())}observeContainer(e){this._containerObserver.observe(e)}setIsDominatedByLongLines(e){this._isDominatedByLongLines!==e&&(this._isDominatedByLongLines=e,this._recomputeOptions())}setModelLineCount(e){const t=lFe(e);this._lineNumbersDigitCount!==t&&(this._lineNumbersDigitCount=t,this._recomputeOptions())}setViewLineCount(e){this._viewLineCount!==e&&(this._viewLineCount=e,this._recomputeOptions())}setReservedHeight(e){this._reservedHeight!==e&&(this._reservedHeight=e,this._recomputeOptions())}setGlyphMarginDecorationLaneCount(e){this._glyphMarginDecorationLaneCount!==e&&(this._glyphMarginDecorationLaneCount=e,this._recomputeOptions())}};kB=rFe([aFe(4,Ha)],kB);function lFe(n){let e=0;for(;n;)n=Math.floor(n/10),e++;return e||1}function cFe(){let n="";return!Pm&&!kae&&(n+="no-user-select "),Pm&&(n+="no-minimap-shadow ",n+="enable-user-select "),Xt&&(n+="mac "),n}class dFe{constructor(){this._values=[]}_read(e){return this._values[e]}get(e){return this._values[e]}_write(e,t){this._values[e]=t}}class uFe{constructor(){this._values=[]}_read(e){if(e>=this._values.length)throw new Error("Cannot read uninitialized value");return this._values[e]}get(e){return this._read(e)}_write(e,t){this._values[e]=t}}class Mp{static validateOptions(e){const t=new dFe;for(const i of h1){const s=i.name==="_never_"?void 0:e[i.name];t._write(i.id,i.validate(s))}return t}static computeOptions(e,t){const i=new uFe;for(const s of h1)i._write(s.id,s.compute(t,i,e._read(s.id)));return i}static _deepEquals(e,t){if(typeof e!="object"||typeof t!="object"||!e||!t)return e===t;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)?zn(e,t):!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const i in e)if(!Mp._deepEquals(e[i],t[i]))return!1;return!0}static checkEquals(e,t){const i=[];let s=!1;for(const o of h1){const r=!Mp._deepEquals(e._read(o.id),t._read(o.id));i[o.id]=r,r&&(s=!0)}return s?new Jre(i):null}static applyUpdate(e,t){let i=!1;for(const s of h1)if(t.hasOwnProperty(s.name)){const o=s.applyUpdate(e[s.name],t[s.name]);e[s.name]=o.newValue,i=i||o.didChange}return i}}function xX(n){const e=Tf(n);return nFe(e),e}var Up;(function(n){const e={total:0,min:Number.MAX_VALUE,max:0},t={...e},i={...e},s={...e};let o=0;const r={keydown:0,input:0,render:0};function a(){b(),performance.mark("inputlatency/start"),performance.mark("keydown/start"),r.keydown=1,queueMicrotask(l)}n.onKeyDown=a;function l(){r.keydown===1&&(performance.mark("keydown/end"),r.keydown=2)}function c(){performance.mark("input/start"),r.input=1,_()}n.onBeforeInput=c;function d(){r.input===0&&c(),queueMicrotask(u)}n.onInput=d;function u(){r.input===1&&(performance.mark("input/end"),r.input=2)}function h(){b()}n.onKeyUp=h;function f(){b()}n.onSelectionChange=f;function g(){r.keydown===2&&r.input===2&&r.render===0&&(performance.mark("render/start"),r.render=1,queueMicrotask(p),_())}n.onRenderStart=g;function p(){r.render===1&&(performance.mark("render/end"),r.render=2)}function _(){setTimeout(b)}function b(){r.keydown===2&&r.input===2&&r.render===2&&(performance.mark("inputlatency/end"),performance.measure("keydown","keydown/start","keydown/end"),performance.measure("input","input/start","input/end"),performance.measure("render","render/start","render/end"),performance.measure("inputlatency","inputlatency/start","inputlatency/end"),w("keydown",e),w("input",t),w("render",i),w("inputlatency",s),o++,y())}function w(D,I){const N=performance.getEntriesByName(D)[0].duration;I.total+=N,I.min=Math.min(I.min,N),I.max=Math.max(I.max,N)}function y(){performance.clearMarks("keydown/start"),performance.clearMarks("keydown/end"),performance.clearMarks("input/start"),performance.clearMarks("input/end"),performance.clearMarks("render/start"),performance.clearMarks("render/end"),performance.clearMarks("inputlatency/start"),performance.clearMarks("inputlatency/end"),performance.clearMeasures("keydown"),performance.clearMeasures("input"),performance.clearMeasures("render"),performance.clearMeasures("inputlatency"),r.keydown=0,r.input=0,r.render=0}function S(){if(o===0)return;const D={keydown:x(e),input:x(t),render:x(i),total:x(s),sampleCount:o};return k(e),k(t),k(i),k(s),o=0,D}n.getAndClearMeasurements=S;function x(D){return{average:D.total/o,max:D.max,min:D.min}}function k(D){D.total=0,D.min=Number.MAX_VALUE,D.max=0}})(Up||(Up={}));class Bw{constructor(){this._hooks=new be,this._pointerMoveCallback=null,this._onStopCallback=null}dispose(){this.stopMonitoring(!1),this._hooks.dispose()}stopMonitoring(e,t){if(!this.isMonitoring())return;this._hooks.clear(),this._pointerMoveCallback=null;const i=this._onStopCallback;this._onStopCallback=null,e&&i&&i(t)}isMonitoring(){return!!this._pointerMoveCallback}startMonitoring(e,t,i,s,o){this.isMonitoring()&&this.stopMonitoring(!1),this._pointerMoveCallback=s,this._onStopCallback=o;let r=e;try{e.setPointerCapture(t),this._hooks.add(dt(()=>{try{e.releasePointerCapture(t)}catch{}}))}catch{r=gt(e)}this._hooks.add(ce(r,Le.POINTER_MOVE,a=>{if(a.buttons!==i){this.stopMonitoring(!0);return}a.preventDefault(),this._pointerMoveCallback(a)})),this._hooks.add(ce(r,Le.POINTER_UP,a=>this.stopMonitoring(!0)))}}function Lz(n){return`--vscode-${n.replace(/\./g,"-")}`}function Ge(n){return`var(${Lz(n)})`}function hFe(n,e){return`var(${Lz(n)}, ${e})`}const Ble={ColorContribution:"base.contributions.colors"};class fFe{constructor(){this._onDidChangeSchema=new X,this.onDidChangeSchema=this._onDidChangeSchema.event,this.colorSchema={type:"object",properties:{}},this.colorReferenceSchema={type:"string",enum:[],enumDescriptions:[]},this.colorsById={}}registerColor(e,t,i,s=!1,o){const r={id:e,description:i,defaults:t,needsTransparency:s,deprecationMessage:o};this.colorsById[e]=r;const a={type:"string",description:i,format:"color-hex",defaultSnippets:[{body:"${1:#ff0000}"}]};return o&&(a.deprecationMessage=o),s&&(a.pattern="^#(?:(?[0-9a-fA-f]{3}[0-9a-eA-E])|(?:[0-9a-fA-F]{6}(?:(?![fF]{2})(?:[0-9a-fA-F]{2}))))?$",a.patternErrorMessage="This color must be transparent or it will obscure content"),this.colorSchema.properties[e]=a,this.colorReferenceSchema.enum.push(e),this.colorReferenceSchema.enumDescriptions.push(i),this._onDidChangeSchema.fire(),e}getColors(){return Object.keys(this.colorsById).map(e=>this.colorsById[e])}resolveDefaultColor(e,t){const i=this.colorsById[e];if(i&&i.defaults){const s=i.defaults[t.type];return wd(s,t)}}getColorSchema(){return this.colorSchema}toString(){const e=(t,i)=>{const s=t.indexOf(".")===-1?0:1,o=i.indexOf(".")===-1?0:1;return s!==o?s-o:t.localeCompare(i)};return Object.keys(this.colorsById).sort(e).map(t=>`- \`${t}\`: ${this.colorsById[t].description}`).join(` `)}}const TM=new fFe;Un.add(Ble.ColorContribution,TM);function V(n,e,t,i,s){return TM.registerColor(n,e,t,i,s)}function gFe(n,e){var t,i,s,o;switch(n.op){case 0:return(t=wd(n.value,e))===null||t===void 0?void 0:t.darken(n.factor);case 1:return(i=wd(n.value,e))===null||i===void 0?void 0:i.lighten(n.factor);case 2:return(s=wd(n.value,e))===null||s===void 0?void 0:s.transparent(n.factor);case 3:{const r=wd(n.background,e);return r?(o=wd(n.value,e))===null||o===void 0?void 0:o.makeOpaque(r):wd(n.value,e)}case 4:for(const r of n.values){const a=wd(r,e);if(a)return a}return;case 6:return wd(e.defines(n.if)?n.then:n.else,e);case 5:{const r=wd(n.value,e);if(!r)return;const a=wd(n.background,e);return a?r.isDarkerThan(a)?le.getLighterColor(r,a,n.factor).transparent(n.transparency):le.getDarkerColor(r,a,n.factor).transparent(n.transparency):r.transparent(n.factor*n.transparency)}default:throw yM()}}function Y0(n,e){return{op:0,value:n,factor:e}}function Gd(n,e){return{op:1,value:n,factor:e}}function ut(n,e){return{op:2,value:n,factor:e}}function xL(...n){return{op:4,values:n}}function pFe(n,e,t){return{op:6,if:n,then:e,else:t}}function LX(n,e,t,i){return{op:5,value:n,background:e,factor:t,transparency:i}}function wd(n,e){if(n!==null){if(typeof n=="string")return n[0]==="#"?le.fromHex(n):e.getColor(n);if(n instanceof le)return n;if(typeof n=="object")return gFe(n,e)}}const Wle="vscode://schemas/workbench-colors",Hle=Un.as(DM.JSONContribution);Hle.registerSchema(Wle,TM.getColorSchema());const kX=new Xi(()=>Hle.notifySchemaChanged(Wle),200);TM.onDidChangeSchema(()=>{kX.isScheduled()||kX.schedule()});const Ne=V("foreground",{dark:"#CCCCCC",light:"#616161",hcDark:"#FFFFFF",hcLight:"#292929"},v("foreground","Overall foreground color. This color is only used if not overridden by a component."));V("disabledForeground",{dark:"#CCCCCC80",light:"#61616180",hcDark:"#A5A5A5",hcLight:"#7F7F7F"},v("disabledForeground","Overall foreground for disabled elements. This color is only used if not overridden by a component."));V("errorForeground",{dark:"#F48771",light:"#A1260D",hcDark:"#F48771",hcLight:"#B5200D"},v("errorForeground","Overall foreground color for error messages. This color is only used if not overridden by a component."));V("descriptionForeground",{light:"#717171",dark:ut(Ne,.7),hcDark:ut(Ne,.7),hcLight:ut(Ne,.7)},v("descriptionForeground","Foreground color for description text providing additional information, for example for a label."));const ah=V("icon.foreground",{dark:"#C5C5C5",light:"#424242",hcDark:"#FFFFFF",hcLight:"#292929"},v("iconForeground","The default color for icons in the workbench.")),Xl=V("focusBorder",{dark:"#007FD4",light:"#0090F1",hcDark:"#F38518",hcLight:"#006BBD"},v("focusBorder","Overall border color for focused elements. This color is only used if not overridden by a component.")),ti=V("contrastBorder",{light:null,dark:null,hcDark:"#6FC3DF",hcLight:"#0F4A85"},v("contrastBorder","An extra border around elements to separate them from others for greater contrast.")),En=V("contrastActiveBorder",{light:null,dark:null,hcDark:Xl,hcLight:Xl},v("activeContrastBorder","An extra border around active elements to separate them from others for greater contrast."));V("selection.background",{light:null,dark:null,hcDark:null,hcLight:null},v("selectionBackground","The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor."));const mFe=V("textLink.foreground",{light:"#006AB1",dark:"#3794FF",hcDark:"#21A6FF",hcLight:"#0F4A85"},v("textLinkForeground","Foreground color for links in text."));V("textLink.activeForeground",{light:"#006AB1",dark:"#3794FF",hcDark:"#21A6FF",hcLight:"#0F4A85"},v("textLinkActiveForeground","Foreground color for links in text when clicked on and on mouse hover."));V("textSeparator.foreground",{light:"#0000002e",dark:"#ffffff2e",hcDark:le.black,hcLight:"#292929"},v("textSeparatorForeground","Color for text separators."));V("textPreformat.foreground",{light:"#A31515",dark:"#D7BA7D",hcDark:"#000000",hcLight:"#FFFFFF"},v("textPreformatForeground","Foreground color for preformatted text segments."));V("textPreformat.background",{light:"#0000001A",dark:"#FFFFFF1A",hcDark:"#FFFFFF",hcLight:"#09345f"},v("textPreformatBackground","Background color for preformatted text segments."));V("textBlockQuote.background",{light:"#f2f2f2",dark:"#222222",hcDark:null,hcLight:"#F2F2F2"},v("textBlockQuoteBackground","Background color for block quotes in text."));V("textBlockQuote.border",{light:"#007acc80",dark:"#007acc80",hcDark:le.white,hcLight:"#292929"},v("textBlockQuoteBorder","Border color for block quotes in text."));V("textCodeBlock.background",{light:"#dcdcdc66",dark:"#0a0a0a66",hcDark:le.black,hcLight:"#F2F2F2"},v("textCodeBlockBackground","Background color for code blocks in text."));V("sash.hoverBorder",{dark:Xl,light:Xl,hcDark:Xl,hcLight:Xl},v("sashActiveBorder","Border color of active sashes."));const vN=V("badge.background",{dark:"#4D4D4D",light:"#C4C4C4",hcDark:le.black,hcLight:"#0F4A85"},v("badgeBackground","Badge background color. Badges are small information labels, e.g. for search results count.")),_Fe=V("badge.foreground",{dark:le.white,light:"#333",hcDark:le.white,hcLight:le.white},v("badgeForeground","Badge foreground color. Badges are small information labels, e.g. for search results count.")),bS=V("scrollbar.shadow",{dark:"#000000",light:"#DDDDDD",hcDark:null,hcLight:null},v("scrollbarShadow","Scrollbar shadow to indicate that the view is scrolled.")),CS=V("scrollbarSlider.background",{dark:le.fromHex("#797979").transparent(.4),light:le.fromHex("#646464").transparent(.4),hcDark:ut(ti,.6),hcLight:ut(ti,.4)},v("scrollbarSliderBackground","Scrollbar slider background color.")),wS=V("scrollbarSlider.hoverBackground",{dark:le.fromHex("#646464").transparent(.7),light:le.fromHex("#646464").transparent(.7),hcDark:ut(ti,.8),hcLight:ut(ti,.8)},v("scrollbarSliderHoverBackground","Scrollbar slider background color when hovering.")),yS=V("scrollbarSlider.activeBackground",{dark:le.fromHex("#BFBFBF").transparent(.4),light:le.fromHex("#000000").transparent(.6),hcDark:ti,hcLight:ti},v("scrollbarSliderActiveBackground","Scrollbar slider background color when clicked on.")),vFe=V("progressBar.background",{dark:le.fromHex("#0E70C0"),light:le.fromHex("#0E70C0"),hcDark:ti,hcLight:ti},v("progressBarBackground","Background color of the progress bar that can show for long running operations.")),Ys=V("editor.background",{light:"#ffffff",dark:"#1E1E1E",hcDark:le.black,hcLight:le.white},v("editorBackground","Editor background color.")),Ql=V("editor.foreground",{light:"#333333",dark:"#BBBBBB",hcDark:le.white,hcLight:Ne},v("editorForeground","Editor default foreground color."));V("editorStickyScroll.background",{light:Ys,dark:Ys,hcDark:Ys,hcLight:Ys},v("editorStickyScrollBackground","Background color of sticky scroll in the editor"));V("editorStickyScrollHover.background",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:null,hcLight:le.fromHex("#0F4A85").transparent(.1)},v("editorStickyScrollHoverBackground","Background color of sticky scroll on hover in the editor"));V("editorStickyScroll.border",{dark:null,light:null,hcDark:ti,hcLight:ti},v("editorStickyScrollBorder","Border color of sticky scroll in the editor"));V("editorStickyScroll.shadow",{dark:bS,light:bS,hcDark:bS,hcLight:bS},v("editorStickyScrollShadow"," Shadow color of sticky scroll in the editor"));const fs=V("editorWidget.background",{dark:"#252526",light:"#F3F3F3",hcDark:"#0C141F",hcLight:le.white},v("editorWidgetBackground","Background color of editor widgets, such as find/replace.")),Xf=V("editorWidget.foreground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("editorWidgetForeground","Foreground color of editor widgets, such as find/replace.")),Qf=V("editorWidget.border",{dark:"#454545",light:"#C8C8C8",hcDark:ti,hcLight:ti},v("editorWidgetBorder","Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget."));V("editorWidget.resizeBorder",{light:null,dark:null,hcDark:null,hcLight:null},v("editorWidgetResizeBorder","Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget."));V("editorError.background",{dark:null,light:null,hcDark:null,hcLight:null},v("editorError.background","Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0);const lh=V("editorError.foreground",{dark:"#F14C4C",light:"#E51400",hcDark:"#F48771",hcLight:"#B5200D"},v("editorError.foreground","Foreground color of error squigglies in the editor.")),bFe=V("editorError.border",{dark:null,light:null,hcDark:le.fromHex("#E47777").transparent(.8),hcLight:"#B5200D"},v("errorBorder","If set, color of double underlines for errors in the editor.")),NE=V("editorWarning.background",{dark:null,light:null,hcDark:null,hcLight:null},v("editorWarning.background","Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),hr=V("editorWarning.foreground",{dark:"#CCA700",light:"#BF8803",hcDark:"#FFD370",hcLight:"#895503"},v("editorWarning.foreground","Foreground color of warning squigglies in the editor.")),LL=V("editorWarning.border",{dark:null,light:null,hcDark:le.fromHex("#FFCC00").transparent(.8),hcLight:le.fromHex("#FFCC00").transparent(.8)},v("warningBorder","If set, color of double underlines for warnings in the editor."));V("editorInfo.background",{dark:null,light:null,hcDark:null,hcLight:null},v("editorInfo.background","Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0);const sa=V("editorInfo.foreground",{dark:"#3794FF",light:"#1a85ff",hcDark:"#3794FF",hcLight:"#1a85ff"},v("editorInfo.foreground","Foreground color of info squigglies in the editor.")),kL=V("editorInfo.border",{dark:null,light:null,hcDark:le.fromHex("#3794FF").transparent(.8),hcLight:"#292929"},v("infoBorder","If set, color of double underlines for infos in the editor.")),CFe=V("editorHint.foreground",{dark:le.fromHex("#eeeeee").transparent(.7),light:"#6c6c6c",hcDark:null,hcLight:null},v("editorHint.foreground","Foreground color of hint squigglies in the editor."));V("editorHint.border",{dark:null,light:null,hcDark:le.fromHex("#eeeeee").transparent(.8),hcLight:"#292929"},v("hintBorder","If set, color of double underlines for hints in the editor."));const wFe=V("editorLink.activeForeground",{dark:"#4E94CE",light:le.blue,hcDark:le.cyan,hcLight:"#292929"},v("activeLinkForeground","Color of active links.")),jp=V("editor.selectionBackground",{light:"#ADD6FF",dark:"#264F78",hcDark:"#f3f518",hcLight:"#0F4A85"},v("editorSelectionBackground","Color of the editor selection.")),yFe=V("editor.selectionForeground",{light:null,dark:null,hcDark:"#000000",hcLight:le.white},v("editorSelectionForeground","Color of the selected text for high contrast.")),Vle=V("editor.inactiveSelectionBackground",{light:ut(jp,.5),dark:ut(jp,.5),hcDark:ut(jp,.7),hcLight:ut(jp,.5)},v("editorInactiveSelection","Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations."),!0),kz=V("editor.selectionHighlightBackground",{light:LX(jp,Ys,.3,.6),dark:LX(jp,Ys,.3,.6),hcDark:null,hcLight:null},v("editorSelectionHighlight","Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations."),!0);V("editor.selectionHighlightBorder",{light:null,dark:null,hcDark:En,hcLight:En},v("editorSelectionHighlightBorder","Border color for regions with the same content as the selection."));V("editor.findMatchBackground",{light:"#A8AC94",dark:"#515C6A",hcDark:null,hcLight:null},v("editorFindMatch","Color of the current search match."));const SFe=V("editor.findMatchForeground",{light:null,dark:null,hcDark:null,hcLight:null},v("editorFindMatchForeground","Text color of the current search match.")),Jf=V("editor.findMatchHighlightBackground",{light:"#EA5C0055",dark:"#EA5C0055",hcDark:null,hcLight:null},v("findMatchHighlight","Color of the other search matches. The color must not be opaque so as not to hide underlying decorations."),!0),xFe=V("editor.findMatchHighlightForeground",{light:null,dark:null,hcDark:null,hcLight:null},v("findMatchHighlightForeground","Foreground color of the other search matches."),!0);V("editor.findRangeHighlightBackground",{dark:"#3a3d4166",light:"#b4b4b44d",hcDark:null,hcLight:null},v("findRangeHighlight","Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0);V("editor.findMatchBorder",{light:null,dark:null,hcDark:En,hcLight:En},v("editorFindMatchBorder","Border color of the current search match."));const Kp=V("editor.findMatchHighlightBorder",{light:null,dark:null,hcDark:En,hcLight:En},v("findMatchHighlightBorder","Border color of the other search matches.")),LFe=V("editor.findRangeHighlightBorder",{dark:null,light:null,hcDark:ut(En,.4),hcLight:ut(En,.4)},v("findRangeHighlightBorder","Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0);V("editor.hoverHighlightBackground",{light:"#ADD6FF26",dark:"#264f7840",hcDark:"#ADD6FF26",hcLight:null},v("hoverHighlight","Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations."),!0);const X2=V("editorHoverWidget.background",{light:fs,dark:fs,hcDark:fs,hcLight:fs},v("hoverBackground","Background color of the editor hover."));V("editorHoverWidget.foreground",{light:Xf,dark:Xf,hcDark:Xf,hcLight:Xf},v("hoverForeground","Foreground color of the editor hover."));const zle=V("editorHoverWidget.border",{light:Qf,dark:Qf,hcDark:Qf,hcLight:Qf},v("hoverBorder","Border color of the editor hover."));V("editorHoverWidget.statusBarBackground",{dark:Gd(X2,.2),light:Y0(X2,.05),hcDark:fs,hcLight:fs},v("statusBarBackground","Background color of the editor hover status bar."));const eg=V("editorInlayHint.foreground",{dark:"#969696",light:"#969696",hcDark:le.white,hcLight:le.black},v("editorInlayHintForeground","Foreground color of inline hints")),tg=V("editorInlayHint.background",{dark:ut(vN,.1),light:ut(vN,.1),hcDark:ut(le.white,.1),hcLight:ut(vN,.1)},v("editorInlayHintBackground","Background color of inline hints")),kFe=V("editorInlayHint.typeForeground",{dark:eg,light:eg,hcDark:eg,hcLight:eg},v("editorInlayHintForegroundTypes","Foreground color of inline hints for types")),DFe=V("editorInlayHint.typeBackground",{dark:tg,light:tg,hcDark:tg,hcLight:tg},v("editorInlayHintBackgroundTypes","Background color of inline hints for types")),IFe=V("editorInlayHint.parameterForeground",{dark:eg,light:eg,hcDark:eg,hcLight:eg},v("editorInlayHintForegroundParameter","Foreground color of inline hints for parameters")),EFe=V("editorInlayHint.parameterBackground",{dark:tg,light:tg,hcDark:tg,hcLight:tg},v("editorInlayHintBackgroundParameter","Background color of inline hints for parameters")),AE=V("editorLightBulb.foreground",{dark:"#FFCC00",light:"#DDB100",hcDark:"#FFCC00",hcLight:"#007ACC"},v("editorLightBulbForeground","The color used for the lightbulb actions icon."));V("editorLightBulbAutoFix.foreground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},v("editorLightBulbAutoFixForeground","The color used for the lightbulb auto fix actions icon."));V("editorLightBulbAi.foreground",{dark:AE,light:AE,hcDark:AE,hcLight:AE},v("editorLightBulbAiForeground","The color used for the lightbulb AI icon."));V("editor.snippetTabstopHighlightBackground",{dark:new le(new ci(124,124,124,.3)),light:new le(new ci(10,50,100,.2)),hcDark:new le(new ci(124,124,124,.3)),hcLight:new le(new ci(10,50,100,.2))},v("snippetTabstopHighlightBackground","Highlight background color of a snippet tabstop."));V("editor.snippetTabstopHighlightBorder",{dark:null,light:null,hcDark:null,hcLight:null},v("snippetTabstopHighlightBorder","Highlight border color of a snippet tabstop."));V("editor.snippetFinalTabstopHighlightBackground",{dark:null,light:null,hcDark:null,hcLight:null},v("snippetFinalTabstopHighlightBackground","Highlight background color of the final tabstop of a snippet."));V("editor.snippetFinalTabstopHighlightBorder",{dark:"#525252",light:new le(new ci(10,50,100,.5)),hcDark:"#525252",hcLight:"#292929"},v("snippetFinalTabstopHighlightBorder","Highlight border color of the final tabstop of a snippet."));const DB=new le(new ci(155,185,85,.2)),IB=new le(new ci(255,0,0,.2)),TFe=V("diffEditor.insertedTextBackground",{dark:"#9ccc2c33",light:"#9ccc2c40",hcDark:null,hcLight:null},v("diffEditorInserted","Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),NFe=V("diffEditor.removedTextBackground",{dark:"#ff000033",light:"#ff000033",hcDark:null,hcLight:null},v("diffEditorRemoved","Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations."),!0);V("diffEditor.insertedLineBackground",{dark:DB,light:DB,hcDark:null,hcLight:null},v("diffEditorInsertedLines","Background color for lines that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0);V("diffEditor.removedLineBackground",{dark:IB,light:IB,hcDark:null,hcLight:null},v("diffEditorRemovedLines","Background color for lines that got removed. The color must not be opaque so as not to hide underlying decorations."),!0);V("diffEditorGutter.insertedLineBackground",{dark:null,light:null,hcDark:null,hcLight:null},v("diffEditorInsertedLineGutter","Background color for the margin where lines got inserted."));V("diffEditorGutter.removedLineBackground",{dark:null,light:null,hcDark:null,hcLight:null},v("diffEditorRemovedLineGutter","Background color for the margin where lines got removed."));const AFe=V("diffEditorOverview.insertedForeground",{dark:null,light:null,hcDark:null,hcLight:null},v("diffEditorOverviewInserted","Diff overview ruler foreground for inserted content.")),RFe=V("diffEditorOverview.removedForeground",{dark:null,light:null,hcDark:null,hcLight:null},v("diffEditorOverviewRemoved","Diff overview ruler foreground for removed content."));V("diffEditor.insertedTextBorder",{dark:null,light:null,hcDark:"#33ff2eff",hcLight:"#374E06"},v("diffEditorInsertedOutline","Outline color for the text that got inserted."));V("diffEditor.removedTextBorder",{dark:null,light:null,hcDark:"#FF008F",hcLight:"#AD0707"},v("diffEditorRemovedOutline","Outline color for text that got removed."));V("diffEditor.border",{dark:null,light:null,hcDark:ti,hcLight:ti},v("diffEditorBorder","Border color between the two text editors."));V("diffEditor.diagonalFill",{dark:"#cccccc33",light:"#22222233",hcDark:null,hcLight:null},v("diffDiagonalFill","Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views."));V("diffEditor.unchangedRegionBackground",{dark:"sideBar.background",light:"sideBar.background",hcDark:"sideBar.background",hcLight:"sideBar.background"},v("diffEditor.unchangedRegionBackground","The background color of unchanged blocks in the diff editor."));V("diffEditor.unchangedRegionForeground",{dark:"foreground",light:"foreground",hcDark:"foreground",hcLight:"foreground"},v("diffEditor.unchangedRegionForeground","The foreground color of unchanged blocks in the diff editor."));V("diffEditor.unchangedCodeBackground",{dark:"#74747429",light:"#b8b8b829",hcDark:null,hcLight:null},v("diffEditor.unchangedCodeBackground","The background color of unchanged code in the diff editor."));const ig=V("widget.shadow",{dark:ut(le.black,.36),light:ut(le.black,.16),hcDark:null,hcLight:null},v("widgetShadow","Shadow color of widgets such as find/replace inside the editor.")),$le=V("widget.border",{dark:null,light:null,hcDark:ti,hcLight:ti},v("widgetBorder","Border color of widgets such as find/replace inside the editor.")),DX=V("toolbar.hoverBackground",{dark:"#5a5d5e50",light:"#b8b8b850",hcDark:null,hcLight:null},v("toolbarHoverBackground","Toolbar background when hovering over actions using the mouse"));V("toolbar.hoverOutline",{dark:null,light:null,hcDark:En,hcLight:En},v("toolbarHoverOutline","Toolbar outline when hovering over actions using the mouse"));V("toolbar.activeBackground",{dark:Gd(DX,.1),light:Y0(DX,.1),hcDark:null,hcLight:null},v("toolbarActiveBackground","Toolbar background when holding the mouse over actions"));const MFe=V("breadcrumb.foreground",{light:ut(Ne,.8),dark:ut(Ne,.8),hcDark:ut(Ne,.8),hcLight:ut(Ne,.8)},v("breadcrumbsFocusForeground","Color of focused breadcrumb items.")),PFe=V("breadcrumb.background",{light:Ys,dark:Ys,hcDark:Ys,hcLight:Ys},v("breadcrumbsBackground","Background color of breadcrumb items.")),IX=V("breadcrumb.focusForeground",{light:Y0(Ne,.2),dark:Gd(Ne,.1),hcDark:Gd(Ne,.1),hcLight:Gd(Ne,.1)},v("breadcrumbsFocusForeground","Color of focused breadcrumb items.")),OFe=V("breadcrumb.activeSelectionForeground",{light:Y0(Ne,.2),dark:Gd(Ne,.1),hcDark:Gd(Ne,.1),hcLight:Gd(Ne,.1)},v("breadcrumbsSelectedForeground","Color of selected breadcrumb items."));V("breadcrumbPicker.background",{light:fs,dark:fs,hcDark:fs,hcLight:fs},v("breadcrumbsSelectedBackground","Background color of breadcrumb item picker."));const Ule=.5,EX=le.fromHex("#40C8AE").transparent(Ule),TX=le.fromHex("#40A6FF").transparent(Ule),NX=le.fromHex("#606060").transparent(.4),Gc=.4,BC=1,v1=V("merge.currentHeaderBackground",{dark:EX,light:EX,hcDark:null,hcLight:null},v("mergeCurrentHeaderBackground","Current header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);V("merge.currentContentBackground",{dark:ut(v1,Gc),light:ut(v1,Gc),hcDark:ut(v1,Gc),hcLight:ut(v1,Gc)},v("mergeCurrentContentBackground","Current content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);const b1=V("merge.incomingHeaderBackground",{dark:TX,light:TX,hcDark:null,hcLight:null},v("mergeIncomingHeaderBackground","Incoming header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);V("merge.incomingContentBackground",{dark:ut(b1,Gc),light:ut(b1,Gc),hcDark:ut(b1,Gc),hcLight:ut(b1,Gc)},v("mergeIncomingContentBackground","Incoming content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);const C1=V("merge.commonHeaderBackground",{dark:NX,light:NX,hcDark:null,hcLight:null},v("mergeCommonHeaderBackground","Common ancestor header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);V("merge.commonContentBackground",{dark:ut(C1,Gc),light:ut(C1,Gc),hcDark:ut(C1,Gc),hcLight:ut(C1,Gc)},v("mergeCommonContentBackground","Common ancestor content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);const WC=V("merge.border",{dark:null,light:null,hcDark:"#C3DF6F",hcLight:"#007ACC"},v("mergeBorder","Border color on headers and the splitter in inline merge-conflicts."));V("editorOverviewRuler.currentContentForeground",{dark:ut(v1,BC),light:ut(v1,BC),hcDark:WC,hcLight:WC},v("overviewRulerCurrentContentForeground","Current overview ruler foreground for inline merge-conflicts."));V("editorOverviewRuler.incomingContentForeground",{dark:ut(b1,BC),light:ut(b1,BC),hcDark:WC,hcLight:WC},v("overviewRulerIncomingContentForeground","Incoming overview ruler foreground for inline merge-conflicts."));V("editorOverviewRuler.commonContentForeground",{dark:ut(C1,BC),light:ut(C1,BC),hcDark:WC,hcLight:WC},v("overviewRulerCommonContentForeground","Common ancestor overview ruler foreground for inline merge-conflicts."));const Dz=V("editorOverviewRuler.findMatchForeground",{dark:"#d186167e",light:"#d186167e",hcDark:"#AB5A00",hcLight:""},v("overviewRulerFindMatchForeground","Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations."),!0),SS=V("editorOverviewRuler.selectionHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hcDark:"#A0A0A0CC",hcLight:"#A0A0A0CC"},v("overviewRulerSelectionHighlightForeground","Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations."),!0),FFe=V("problemsErrorIcon.foreground",{dark:lh,light:lh,hcDark:lh,hcLight:lh},v("problemsErrorIconForeground","The color used for the problems error icon.")),BFe=V("problemsWarningIcon.foreground",{dark:hr,light:hr,hcDark:hr,hcLight:hr},v("problemsWarningIconForeground","The color used for the problems warning icon.")),WFe=V("problemsInfoIcon.foreground",{dark:sa,light:sa,hcDark:sa,hcLight:sa},v("problemsInfoIconForeground","The color used for the problems info icon.")),w1=V("minimap.findMatchHighlight",{light:"#d18616",dark:"#d18616",hcDark:"#AB5A00",hcLight:"#0F4A85"},v("minimapFindMatchHighlight","Minimap marker color for find matches."),!0),NM=V("minimap.selectionOccurrenceHighlight",{light:"#c9c9c9",dark:"#676767",hcDark:"#ffffff",hcLight:"#0F4A85"},v("minimapSelectionOccurrenceHighlight","Minimap marker color for repeating editor selections."),!0),AX=V("minimap.selectionHighlight",{light:"#ADD6FF",dark:"#264F78",hcDark:"#ffffff",hcLight:"#0F4A85"},v("minimapSelectionHighlight","Minimap marker color for the editor selection."),!0),HFe=V("minimap.infoHighlight",{dark:sa,light:sa,hcDark:kL,hcLight:kL},v("minimapInfo","Minimap marker color for infos.")),VFe=V("minimap.warningHighlight",{dark:hr,light:hr,hcDark:LL,hcLight:LL},v("overviewRuleWarning","Minimap marker color for warnings.")),zFe=V("minimap.errorHighlight",{dark:new le(new ci(255,18,18,.7)),light:new le(new ci(255,18,18,.7)),hcDark:new le(new ci(255,50,50,1)),hcLight:"#B5200D"},v("minimapError","Minimap marker color for errors.")),$Fe=V("minimap.background",{dark:null,light:null,hcDark:null,hcLight:null},v("minimapBackground","Minimap background color.")),UFe=V("minimap.foregroundOpacity",{dark:le.fromHex("#000f"),light:le.fromHex("#000f"),hcDark:le.fromHex("#000f"),hcLight:le.fromHex("#000f")},v("minimapForegroundOpacity",'Opacity of foreground elements rendered in the minimap. For example, "#000000c0" will render the elements with 75% opacity.'));V("minimapSlider.background",{light:ut(CS,.5),dark:ut(CS,.5),hcDark:ut(CS,.5),hcLight:ut(CS,.5)},v("minimapSliderBackground","Minimap slider background color."));V("minimapSlider.hoverBackground",{light:ut(wS,.5),dark:ut(wS,.5),hcDark:ut(wS,.5),hcLight:ut(wS,.5)},v("minimapSliderHoverBackground","Minimap slider background color when hovering."));V("minimapSlider.activeBackground",{light:ut(yS,.5),dark:ut(yS,.5),hcDark:ut(yS,.5),hcLight:ut(yS,.5)},v("minimapSliderActiveBackground","Minimap slider background color when clicked on."));V("charts.foreground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("chartsForeground","The foreground color used in charts."));V("charts.lines",{dark:ut(Ne,.5),light:ut(Ne,.5),hcDark:ut(Ne,.5),hcLight:ut(Ne,.5)},v("chartsLines","The color used for horizontal lines in charts."));V("charts.red",{dark:lh,light:lh,hcDark:lh,hcLight:lh},v("chartsRed","The red color used in chart visualizations."));V("charts.blue",{dark:sa,light:sa,hcDark:sa,hcLight:sa},v("chartsBlue","The blue color used in chart visualizations."));V("charts.yellow",{dark:hr,light:hr,hcDark:hr,hcLight:hr},v("chartsYellow","The yellow color used in chart visualizations."));V("charts.orange",{dark:w1,light:w1,hcDark:w1,hcLight:w1},v("chartsOrange","The orange color used in chart visualizations."));V("charts.green",{dark:"#89D185",light:"#388A34",hcDark:"#89D185",hcLight:"#374e06"},v("chartsGreen","The green color used in chart visualizations."));V("charts.purple",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},v("chartsPurple","The purple color used in chart visualizations."));const EB=V("input.background",{dark:"#3C3C3C",light:le.white,hcDark:le.black,hcLight:le.white},v("inputBoxBackground","Input box background.")),jle=V("input.foreground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("inputBoxForeground","Input box foreground.")),Kle=V("input.border",{dark:null,light:null,hcDark:ti,hcLight:ti},v("inputBoxBorder","Input box border.")),Iz=V("inputOption.activeBorder",{dark:"#007ACC",light:"#007ACC",hcDark:ti,hcLight:ti},v("inputBoxActiveOptionBorder","Border color of activated options in input fields."));V("inputOption.hoverBackground",{dark:"#5a5d5e80",light:"#b8b8b850",hcDark:null,hcLight:null},v("inputOption.hoverBackground","Background color of activated options in input fields."));const Lv=V("inputOption.activeBackground",{dark:ut(Xl,.4),light:ut(Xl,.2),hcDark:le.transparent,hcLight:le.transparent},v("inputOption.activeBackground","Background hover color of options in input fields.")),Ez=V("inputOption.activeForeground",{dark:le.white,light:le.black,hcDark:Ne,hcLight:Ne},v("inputOption.activeForeground","Foreground color of activated options in input fields."));V("input.placeholderForeground",{light:ut(Ne,.5),dark:ut(Ne,.5),hcDark:ut(Ne,.7),hcLight:ut(Ne,.7)},v("inputPlaceholderForeground","Input box foreground color for placeholder text."));const jFe=V("inputValidation.infoBackground",{dark:"#063B49",light:"#D6ECF2",hcDark:le.black,hcLight:le.white},v("inputValidationInfoBackground","Input validation background color for information severity.")),KFe=V("inputValidation.infoForeground",{dark:null,light:null,hcDark:null,hcLight:Ne},v("inputValidationInfoForeground","Input validation foreground color for information severity.")),qFe=V("inputValidation.infoBorder",{dark:"#007acc",light:"#007acc",hcDark:ti,hcLight:ti},v("inputValidationInfoBorder","Input validation border color for information severity.")),GFe=V("inputValidation.warningBackground",{dark:"#352A05",light:"#F6F5D2",hcDark:le.black,hcLight:le.white},v("inputValidationWarningBackground","Input validation background color for warning severity.")),ZFe=V("inputValidation.warningForeground",{dark:null,light:null,hcDark:null,hcLight:Ne},v("inputValidationWarningForeground","Input validation foreground color for warning severity.")),YFe=V("inputValidation.warningBorder",{dark:"#B89500",light:"#B89500",hcDark:ti,hcLight:ti},v("inputValidationWarningBorder","Input validation border color for warning severity.")),XFe=V("inputValidation.errorBackground",{dark:"#5A1D1D",light:"#F2DEDE",hcDark:le.black,hcLight:le.white},v("inputValidationErrorBackground","Input validation background color for error severity.")),QFe=V("inputValidation.errorForeground",{dark:null,light:null,hcDark:null,hcLight:Ne},v("inputValidationErrorForeground","Input validation foreground color for error severity.")),JFe=V("inputValidation.errorBorder",{dark:"#BE1100",light:"#BE1100",hcDark:ti,hcLight:ti},v("inputValidationErrorBorder","Input validation border color for error severity.")),ch=V("dropdown.background",{dark:"#3C3C3C",light:le.white,hcDark:le.black,hcLight:le.white},v("dropdownBackground","Dropdown background.")),e5e=V("dropdown.listBackground",{dark:null,light:null,hcDark:le.black,hcLight:le.white},v("dropdownListBackground","Dropdown list background.")),ng=V("dropdown.foreground",{dark:"#F0F0F0",light:Ne,hcDark:le.white,hcLight:Ne},v("dropdownForeground","Dropdown foreground.")),y1=V("dropdown.border",{dark:ch,light:"#CECECE",hcDark:ti,hcLight:ti},v("dropdownBorder","Dropdown border.")),xS=V("button.foreground",{dark:le.white,light:le.white,hcDark:le.white,hcLight:le.white},v("buttonForeground","Button foreground color.")),t5e=V("button.separator",{dark:ut(xS,.4),light:ut(xS,.4),hcDark:ut(xS,.4),hcLight:ut(xS,.4)},v("buttonSeparator","Button separator color.")),LS=V("button.background",{dark:"#0E639C",light:"#007ACC",hcDark:null,hcLight:"#0F4A85"},v("buttonBackground","Button background color.")),i5e=V("button.hoverBackground",{dark:Gd(LS,.2),light:Y0(LS,.2),hcDark:LS,hcLight:LS},v("buttonHoverBackground","Button background color when hovering.")),n5e=V("button.border",{dark:ti,light:ti,hcDark:ti,hcLight:ti},v("buttonBorder","Button border color.")),s5e=V("button.secondaryForeground",{dark:le.white,light:le.white,hcDark:le.white,hcLight:Ne},v("buttonSecondaryForeground","Secondary button foreground color.")),TB=V("button.secondaryBackground",{dark:"#3A3D41",light:"#5F6A79",hcDark:null,hcLight:le.white},v("buttonSecondaryBackground","Secondary button background color.")),o5e=V("button.secondaryHoverBackground",{dark:Gd(TB,.2),light:Y0(TB,.2),hcDark:null,hcLight:null},v("buttonSecondaryHoverBackground","Secondary button background color when hovering.")),r5e=V("checkbox.background",{dark:ch,light:ch,hcDark:ch,hcLight:ch},v("checkbox.background","Background color of checkbox widget."));V("checkbox.selectBackground",{dark:fs,light:fs,hcDark:fs,hcLight:fs},v("checkbox.select.background","Background color of checkbox widget when the element it's in is selected."));const a5e=V("checkbox.foreground",{dark:ng,light:ng,hcDark:ng,hcLight:ng},v("checkbox.foreground","Foreground color of checkbox widget.")),l5e=V("checkbox.border",{dark:y1,light:y1,hcDark:y1,hcLight:y1},v("checkbox.border","Border color of checkbox widget."));V("checkbox.selectBorder",{dark:ah,light:ah,hcDark:ah,hcLight:ah},v("checkbox.select.border","Border color of checkbox widget when the element it's in is selected."));const c5e=V("keybindingLabel.background",{dark:new le(new ci(128,128,128,.17)),light:new le(new ci(221,221,221,.4)),hcDark:le.transparent,hcLight:le.transparent},v("keybindingLabelBackground","Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.")),d5e=V("keybindingLabel.foreground",{dark:le.fromHex("#CCCCCC"),light:le.fromHex("#555555"),hcDark:le.white,hcLight:Ne},v("keybindingLabelForeground","Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.")),u5e=V("keybindingLabel.border",{dark:new le(new ci(51,51,51,.6)),light:new le(new ci(204,204,204,.4)),hcDark:new le(new ci(111,195,223)),hcLight:ti},v("keybindingLabelBorder","Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.")),h5e=V("keybindingLabel.bottomBorder",{dark:new le(new ci(68,68,68,.6)),light:new le(new ci(187,187,187,.4)),hcDark:new le(new ci(111,195,223)),hcLight:Ne},v("keybindingLabelBottomBorder","Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.")),f5e=V("list.focusBackground",{dark:null,light:null,hcDark:null,hcLight:null},v("listFocusBackground","List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),g5e=V("list.focusForeground",{dark:null,light:null,hcDark:null,hcLight:null},v("listFocusForeground","List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),p5e=V("list.focusOutline",{dark:Xl,light:Xl,hcDark:En,hcLight:En},v("listFocusOutline","List/Tree outline color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),m5e=V("list.focusAndSelectionOutline",{dark:null,light:null,hcDark:null,hcLight:null},v("listFocusAndSelectionOutline","List/Tree outline color for the focused item when the list/tree is active and selected. An active list/tree has keyboard focus, an inactive does not.")),sg=V("list.activeSelectionBackground",{dark:"#04395E",light:"#0060C0",hcDark:null,hcLight:le.fromHex("#0F4A85").transparent(.1)},v("listActiveSelectionBackground","List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),dh=V("list.activeSelectionForeground",{dark:le.white,light:le.white,hcDark:null,hcLight:null},v("listActiveSelectionForeground","List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),kS=V("list.activeSelectionIconForeground",{dark:null,light:null,hcDark:null,hcLight:null},v("listActiveSelectionIconForeground","List/Tree icon foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),_5e=V("list.inactiveSelectionBackground",{dark:"#37373D",light:"#E4E6F1",hcDark:null,hcLight:le.fromHex("#0F4A85").transparent(.1)},v("listInactiveSelectionBackground","List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),v5e=V("list.inactiveSelectionForeground",{dark:null,light:null,hcDark:null,hcLight:null},v("listInactiveSelectionForeground","List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),b5e=V("list.inactiveSelectionIconForeground",{dark:null,light:null,hcDark:null,hcLight:null},v("listInactiveSelectionIconForeground","List/Tree icon foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),C5e=V("list.inactiveFocusBackground",{dark:null,light:null,hcDark:null,hcLight:null},v("listInactiveFocusBackground","List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),w5e=V("list.inactiveFocusOutline",{dark:null,light:null,hcDark:null,hcLight:null},v("listInactiveFocusOutline","List/Tree outline color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),qle=V("list.hoverBackground",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:le.white.transparent(.1),hcLight:le.fromHex("#0F4A85").transparent(.1)},v("listHoverBackground","List/Tree background when hovering over items using the mouse.")),Gle=V("list.hoverForeground",{dark:null,light:null,hcDark:null,hcLight:null},v("listHoverForeground","List/Tree foreground when hovering over items using the mouse.")),y5e=V("list.dropBackground",{dark:"#062F4A",light:"#D6EBFF",hcDark:null,hcLight:null},v("listDropBackground","List/Tree drag and drop background when moving items over other items when using the mouse.")),S5e=V("list.dropBetweenBackground",{dark:ah,light:ah,hcDark:null,hcLight:null},v("listDropBetweenBackground","List/Tree drag and drop border color when moving items between items when using the mouse.")),Zc=V("list.highlightForeground",{dark:"#2AAAFF",light:"#0066BF",hcDark:Xl,hcLight:Xl},v("highlight","List/Tree foreground color of the match highlights when searching inside the list/tree.")),RE=V("list.focusHighlightForeground",{dark:Zc,light:pFe(sg,Zc,"#BBE7FF"),hcDark:Zc,hcLight:Zc},v("listFocusHighlightForeground","List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree."));V("list.invalidItemForeground",{dark:"#B89500",light:"#B89500",hcDark:"#B89500",hcLight:"#B5200D"},v("invalidItemForeground","List/Tree foreground color for invalid items, for example an unresolved root in explorer."));V("list.errorForeground",{dark:"#F88070",light:"#B01011",hcDark:null,hcLight:null},v("listErrorForeground","Foreground color of list items containing errors."));V("list.warningForeground",{dark:"#CCA700",light:"#855F00",hcDark:null,hcLight:null},v("listWarningForeground","Foreground color of list items containing warnings."));const x5e=V("listFilterWidget.background",{light:Y0(fs,0),dark:Gd(fs,0),hcDark:fs,hcLight:fs},v("listFilterWidgetBackground","Background color of the type filter widget in lists and trees.")),L5e=V("listFilterWidget.outline",{dark:le.transparent,light:le.transparent,hcDark:"#f38518",hcLight:"#007ACC"},v("listFilterWidgetOutline","Outline color of the type filter widget in lists and trees.")),k5e=V("listFilterWidget.noMatchesOutline",{dark:"#BE1100",light:"#BE1100",hcDark:ti,hcLight:ti},v("listFilterWidgetNoMatchesOutline","Outline color of the type filter widget in lists and trees, when there are no matches.")),D5e=V("listFilterWidget.shadow",{dark:ig,light:ig,hcDark:ig,hcLight:ig},v("listFilterWidgetShadow","Shadow color of the type filter widget in lists and trees."));V("list.filterMatchBackground",{dark:Jf,light:Jf,hcDark:null,hcLight:null},v("listFilterMatchHighlight","Background color of the filtered match."));V("list.filterMatchBorder",{dark:Kp,light:Kp,hcDark:ti,hcLight:En},v("listFilterMatchHighlightBorder","Border color of the filtered match."));V("list.deemphasizedForeground",{dark:"#8C8C8C",light:"#8E8E90",hcDark:"#A7A8A9",hcLight:"#666666"},v("listDeemphasizedForeground","List/Tree foreground color for items that are deemphasized."));const DS=V("tree.indentGuidesStroke",{dark:"#585858",light:"#a9a9a9",hcDark:"#a9a9a9",hcLight:"#a5a5a5"},v("treeIndentGuidesStroke","Tree stroke color for the indentation guides.")),I5e=V("tree.inactiveIndentGuidesStroke",{dark:ut(DS,.4),light:ut(DS,.4),hcDark:ut(DS,.4),hcLight:ut(DS,.4)},v("treeInactiveIndentGuidesStroke","Tree stroke color for the indentation guides that are not active.")),E5e=V("tree.tableColumnsBorder",{dark:"#CCCCCC20",light:"#61616120",hcDark:null,hcLight:null},v("tableColumnsBorder","Table border color between columns.")),T5e=V("tree.tableOddRowsBackground",{dark:ut(Ne,.04),light:ut(Ne,.04),hcDark:null,hcLight:null},v("tableOddRowsBackgroundColor","Background color for odd table rows.")),N5e=V("menu.border",{dark:null,light:null,hcDark:ti,hcLight:ti},v("menuBorder","Border color of menus.")),A5e=V("menu.foreground",{dark:ng,light:ng,hcDark:ng,hcLight:ng},v("menuForeground","Foreground color of menu items.")),R5e=V("menu.background",{dark:ch,light:ch,hcDark:ch,hcLight:ch},v("menuBackground","Background color of menu items.")),M5e=V("menu.selectionForeground",{dark:dh,light:dh,hcDark:dh,hcLight:dh},v("menuSelectionForeground","Foreground color of the selected menu item in menus.")),P5e=V("menu.selectionBackground",{dark:sg,light:sg,hcDark:sg,hcLight:sg},v("menuSelectionBackground","Background color of the selected menu item in menus.")),O5e=V("menu.selectionBorder",{dark:null,light:null,hcDark:En,hcLight:En},v("menuSelectionBorder","Border color of the selected menu item in menus.")),F5e=V("menu.separatorBackground",{dark:"#606060",light:"#D4D4D4",hcDark:ti,hcLight:ti},v("menuSeparatorBackground","Color of a separator menu item in menus.")),RX=V("quickInput.background",{dark:fs,light:fs,hcDark:fs,hcLight:fs},v("pickerBackground","Quick picker background color. The quick picker widget is the container for pickers like the command palette.")),B5e=V("quickInput.foreground",{dark:Xf,light:Xf,hcDark:Xf,hcLight:Xf},v("pickerForeground","Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.")),W5e=V("quickInputTitle.background",{dark:new le(new ci(255,255,255,.105)),light:new le(new ci(0,0,0,.06)),hcDark:"#000000",hcLight:le.white},v("pickerTitleBackground","Quick picker title background color. The quick picker widget is the container for pickers like the command palette.")),Zle=V("pickerGroup.foreground",{dark:"#3794FF",light:"#0066BF",hcDark:le.white,hcLight:"#0F4A85"},v("pickerGroupForeground","Quick picker color for grouping labels.")),H5e=V("pickerGroup.border",{dark:"#3F3F46",light:"#CCCEDB",hcDark:le.white,hcLight:"#0F4A85"},v("pickerGroupBorder","Quick picker color for grouping borders.")),MX=V("quickInput.list.focusBackground",{dark:null,light:null,hcDark:null,hcLight:null},"",void 0,v("quickInput.list.focusBackground deprecation","Please use quickInputList.focusBackground instead")),qp=V("quickInputList.focusForeground",{dark:dh,light:dh,hcDark:dh,hcLight:dh},v("quickInput.listFocusForeground","Quick picker foreground color for the focused item.")),S1=V("quickInputList.focusIconForeground",{dark:kS,light:kS,hcDark:kS,hcLight:kS},v("quickInput.listFocusIconForeground","Quick picker icon foreground color for the focused item.")),Gp=V("quickInputList.focusBackground",{dark:xL(MX,sg),light:xL(MX,sg),hcDark:null,hcLight:null},v("quickInput.listFocusBackground","Quick picker background color for the focused item."));V("search.resultsInfoForeground",{light:Ne,dark:ut(Ne,.65),hcDark:Ne,hcLight:Ne},v("search.resultsInfoForeground","Color of the text in the search viewlet's completion message."));V("searchEditor.findMatchBackground",{light:ut(Jf,.66),dark:ut(Jf,.66),hcDark:Jf,hcLight:Jf},v("searchEditor.queryMatch","Color of the Search Editor query matches."));V("searchEditor.findMatchBorder",{light:ut(Kp,.66),dark:ut(Kp,.66),hcDark:Kp,hcLight:Kp},v("searchEditor.editorFindMatchBorder","Border color of the Search Editor query matches."));class AM{constructor(e,t){this.x=e,this.y=t,this._pageCoordinatesBrand=void 0}toClientCoordinates(e){return new Yle(this.x-e.scrollX,this.y-e.scrollY)}}class Yle{constructor(e,t){this.clientX=e,this.clientY=t,this._clientCoordinatesBrand=void 0}toPageCoordinates(e){return new AM(this.clientX+e.scrollX,this.clientY+e.scrollY)}}class V5e{constructor(e,t,i,s){this.x=e,this.y=t,this.width=i,this.height=s,this._editorPagePositionBrand=void 0}}class z5e{constructor(e,t){this.x=e,this.y=t,this._positionRelativeToEditorBrand=void 0}}function Tz(n){const e=bs(n);return new V5e(e.left,e.top,e.width,e.height)}function Nz(n,e,t){const i=e.width/n.offsetWidth,s=e.height/n.offsetHeight,o=(t.x-e.x)/i,r=(t.y-e.y)/s;return new z5e(o,r)}class Wm extends Kc{constructor(e,t,i){super(gt(i),e),this._editorMouseEventBrand=void 0,this.isFromPointerCapture=t,this.pos=new AM(this.posx,this.posy),this.editorPos=Tz(i),this.relativePos=Nz(i,this.editorPos,this.pos)}}class $5e{constructor(e){this._editorViewDomNode=e}_create(e){return new Wm(e,!1,this._editorViewDomNode)}onContextMenu(e,t){return ce(e,"contextmenu",i=>{t(this._create(i))})}onMouseUp(e,t){return ce(e,"mouseup",i=>{t(this._create(i))})}onMouseDown(e,t){return ce(e,Le.MOUSE_DOWN,i=>{t(this._create(i))})}onPointerDown(e,t){return ce(e,Le.POINTER_DOWN,i=>{t(this._create(i),i.pointerId)})}onMouseLeave(e,t){return ce(e,Le.MOUSE_LEAVE,i=>{t(this._create(i))})}onMouseMove(e,t){return ce(e,"mousemove",i=>t(this._create(i)))}}class U5e{constructor(e){this._editorViewDomNode=e}_create(e){return new Wm(e,!1,this._editorViewDomNode)}onPointerUp(e,t){return ce(e,"pointerup",i=>{t(this._create(i))})}onPointerDown(e,t){return ce(e,Le.POINTER_DOWN,i=>{t(this._create(i),i.pointerId)})}onPointerLeave(e,t){return ce(e,Le.POINTER_LEAVE,i=>{t(this._create(i))})}onPointerMove(e,t){return ce(e,"pointermove",i=>t(this._create(i)))}}class j5e extends ne{constructor(e){super(),this._editorViewDomNode=e,this._globalPointerMoveMonitor=this._register(new Bw),this._keydownListener=null}startMonitoring(e,t,i,s,o){this._keydownListener=rs(e.ownerDocument,"keydown",r=>{r.toKeyCodeChord().isModifierKey()||this._globalPointerMoveMonitor.stopMonitoring(!0,r.browserEvent)},!0),this._globalPointerMoveMonitor.startMonitoring(e,t,i,r=>{s(new Wm(r,!0,this._editorViewDomNode))},r=>{this._keydownListener.dispose(),o(r)})}stopMonitoring(){this._globalPointerMoveMonitor.stopMonitoring(!0)}}class bD{constructor(e){this._editor=e,this._instanceId=++bD._idPool,this._counter=0,this._rules=new Map,this._garbageCollectionScheduler=new Xi(()=>this.garbageCollect(),1e3)}createClassNameRef(e){const t=this.getOrCreateRule(e);return t.increaseRefCount(),{className:t.className,dispose:()=>{t.decreaseRefCount(),this._garbageCollectionScheduler.schedule()}}}getOrCreateRule(e){const t=this.computeUniqueKey(e);let i=this._rules.get(t);if(!i){const s=this._counter++;i=new K5e(t,`dyn-rule-${this._instanceId}-${s}`,W2(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0,e),this._rules.set(t,i)}return i}computeUniqueKey(e){return JSON.stringify(e)}garbageCollect(){for(const e of this._rules.values())e.hasReferences()||(this._rules.delete(e.key),e.dispose())}}bD._idPool=0;class K5e{constructor(e,t,i,s){this.key=e,this.className=t,this.properties=s,this._referenceCount=0,this._styleElementDisposables=new be,this._styleElement=yl(i,void 0,this._styleElementDisposables),this._styleElement.textContent=this.getCssText(this.className,this.properties)}getCssText(e,t){let i=`.${e} {`;for(const s in t){const o=t[s];let r;typeof o=="object"?r=Ge(o.id):r=o;const a=q5e(s);i+=` ${a}: ${r};`}return i+=` }`,i}dispose(){this._styleElementDisposables.dispose(),this._styleElement=void 0}increaseRefCount(){this._referenceCount++}decreaseRefCount(){this._referenceCount--}hasReferences(){return this._referenceCount>0}}function q5e(n){return n.replace(/(^[A-Z])/,([e])=>e.toLowerCase()).replace(/([A-Z])/g,([e])=>`-${e.toLowerCase()}`)}class CD extends ne{constructor(){super(),this._shouldRender=!0}shouldRender(){return this._shouldRender}forceShouldRender(){this._shouldRender=!0}setShouldRender(){this._shouldRender=!0}onDidRender(){this._shouldRender=!1}onCompositionStart(e){return!1}onCompositionEnd(e){return!1}onConfigurationChanged(e){return!1}onCursorStateChanged(e){return!1}onDecorationsChanged(e){return!1}onFlushed(e){return!1}onFocusChanged(e){return!1}onLanguageConfigurationChanged(e){return!1}onLineMappingChanged(e){return!1}onLinesChanged(e){return!1}onLinesDeleted(e){return!1}onLinesInserted(e){return!1}onRevealRangeRequest(e){return!1}onScrollChanged(e){return!1}onThemeChanged(e){return!1}onTokensChanged(e){return!1}onTokensColorsChanged(e){return!1}onZonesChanged(e){return!1}handleEvents(e){let t=!1;for(let i=0,s=e.length;i=a.left?s.width=Math.max(s.width,a.left+a.width-s.left):(t[i++]=s,s=a)}return t[i++]=s,t}static _createHorizontalRangesFromClientRects(e,t,i){if(!e||e.length===0)return null;const s=[];for(let o=0,r=e.length;ol)return null;if(t=Math.min(l,Math.max(0,t)),s=Math.min(l,Math.max(0,s)),t===s&&i===o&&i===0&&!e.children[t].firstChild){const h=e.children[t].getClientRects();return r.markDidDomLayout(),this._createHorizontalRangesFromClientRects(h,r.clientRectDeltaLeft,r.clientRectScale)}t!==s&&s>0&&o===0&&(s--,o=1073741824);let c=e.children[t].firstChild,d=e.children[s].firstChild;if((!c||!d)&&(!c&&i===0&&t>0&&(c=e.children[t-1].firstChild,i=1073741824),!d&&o===0&&s>0&&(d=e.children[s-1].firstChild,o=1073741824)),!c||!d)return null;i=Math.min(c.textContent.length,Math.max(0,i)),o=Math.min(d.textContent.length,Math.max(0,o));const u=this._readClientRects(c,i,d,o,r.endNode);return r.markDidDomLayout(),this._createHorizontalRangesFromClientRects(u,r.clientRectDeltaLeft,r.clientRectScale)}}var Jl;(function(n){n.DARK="dark",n.LIGHT="light",n.HIGH_CONTRAST_DARK="hcDark",n.HIGH_CONTRAST_LIGHT="hcLight"})(Jl||(Jl={}));function Zd(n){return n===Jl.HIGH_CONTRAST_DARK||n===Jl.HIGH_CONTRAST_LIGHT}function HC(n){return n===Jl.DARK||n===Jl.HIGH_CONTRAST_DARK}const Q5e=function(){return Lh?!0:!(Br||lc||Pm)}();let Q1=!0;class OX{constructor(e,t){this.themeType=t;const i=e.options,s=i.get(50);i.get(38)==="off"?this.renderWhitespace=i.get(99):this.renderWhitespace="none",this.renderControlCharacters=i.get(94),this.spaceWidth=s.spaceWidth,this.middotWidth=s.middotWidth,this.wsmiddotWidth=s.wsmiddotWidth,this.useMonospaceOptimizations=s.isMonospace&&!i.get(33),this.canUseHalfwidthRightwardsArrow=s.canUseHalfwidthRightwardsArrow,this.lineHeight=i.get(67),this.stopRenderingLineAfter=i.get(117),this.fontLigatures=i.get(51)}equals(e){return this.themeType===e.themeType&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineHeight===e.lineHeight&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.fontLigatures===e.fontLigatures}}class eh{constructor(e){this._options=e,this._isMaybeInvalid=!0,this._renderedViewLine=null}getDomNode(){return this._renderedViewLine&&this._renderedViewLine.domNode?this._renderedViewLine.domNode.domNode:null}setDomNode(e){if(this._renderedViewLine)this._renderedViewLine.domNode=Di(e);else throw new Error("I have no rendered view line to set the dom node to...")}onContentChanged(){this._isMaybeInvalid=!0}onTokensChanged(){this._isMaybeInvalid=!0}onDecorationsChanged(){this._isMaybeInvalid=!0}onOptionsChanged(e){this._isMaybeInvalid=!0,this._options=e}onSelectionChanged(){return Zd(this._options.themeType)||this._options.renderWhitespace==="selection"?(this._isMaybeInvalid=!0,!0):!1}renderLine(e,t,i,s,o){if(this._isMaybeInvalid===!1)return!1;this._isMaybeInvalid=!1;const r=s.getViewLineRenderingData(e),a=this._options,l=Rr.filter(r.inlineDecorations,e,r.minColumn,r.maxColumn);let c=null;if(Zd(a.themeType)||this._options.renderWhitespace==="selection"){const f=s.selections;for(const g of f){if(g.endLineNumbere)continue;const p=g.startLineNumber===e?g.startColumn:r.minColumn,_=g.endLineNumber===e?g.endColumn:r.maxColumn;p<_&&(Zd(a.themeType)&&l.push(new Rr(p,_,"inline-selected-text",0)),this._options.renderWhitespace==="selection"&&(c||(c=[]),c.push(new Nle(p-1,_-1))))}}const d=new f_(a.useMonospaceOptimizations,a.canUseHalfwidthRightwardsArrow,r.content,r.continuesWithWrappedLine,r.isBasicASCII,r.containsRTL,r.minColumn-1,r.tokens,l,r.tabSize,r.startVisibleColumn,a.spaceWidth,a.middotWidth,a.wsmiddotWidth,a.stopRenderingLineAfter,a.renderWhitespace,a.renderControlCharacters,a.fontLigatures!==cl.OFF,c);if(this._renderedViewLine&&this._renderedViewLine.input.equals(d))return!1;o.appendString('
');const u=_D(d,o);o.appendString("
");let h=null;return Q1&&Q5e&&r.isBasicASCII&&a.useMonospaceOptimizations&&u.containsForeignElements===0&&(h=new ME(this._renderedViewLine?this._renderedViewLine.domNode:null,d,u.characterMapping)),h||(h=Qle(this._renderedViewLine?this._renderedViewLine.domNode:null,d,u.characterMapping,u.containsRTL,u.containsForeignElements)),this._renderedViewLine=h,!0}layoutLine(e,t,i){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(t),this._renderedViewLine.domNode.setHeight(i))}getWidth(e){return this._renderedViewLine?this._renderedViewLine.getWidth(e):0}getWidthIsFast(){return this._renderedViewLine?this._renderedViewLine.getWidthIsFast():!0}needsMonospaceFontCheck(){return this._renderedViewLine?this._renderedViewLine instanceof ME:!1}monospaceAssumptionsAreValid(){return this._renderedViewLine&&this._renderedViewLine instanceof ME?this._renderedViewLine.monospaceAssumptionsAreValid():Q1}onMonospaceAssumptionsInvalidated(){this._renderedViewLine&&this._renderedViewLine instanceof ME&&(this._renderedViewLine=this._renderedViewLine.toSlowRenderedLine())}getVisibleRangesForRange(e,t,i,s){if(!this._renderedViewLine)return null;t=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,t)),i=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,i));const o=this._renderedViewLine.input.stopRenderingLineAfter;if(o!==-1&&t>o+1&&i>o+1)return new PX(!0,[new Uv(this.getWidth(s),0)]);o!==-1&&t>o+1&&(t=o+1),o!==-1&&i>o+1&&(i=o+1);const r=this._renderedViewLine.getVisibleRangesForRange(e,t,i,s);return r&&r.length>0?new PX(!1,r):null}getColumnOfNodeOffset(e,t){return this._renderedViewLine?this._renderedViewLine.getColumnOfNodeOffset(e,t):1}}eh.CLASS_NAME="view-line";class ME{constructor(e,t,i){this._cachedWidth=-1,this.domNode=e,this.input=t;const s=Math.floor(t.lineContent.length/300);if(s>0){this._keyColumnPixelOffsetCache=new Float32Array(s);for(let o=0;o=2&&(console.warn("monospace assumptions have been violated, therefore disabling monospace optimizations!"),Q1=!1)}return Q1}toSlowRenderedLine(){return Qle(this.domNode,this.input,this._characterMapping,!1,0)}getVisibleRangesForRange(e,t,i,s){const o=this._getColumnPixelOffset(e,t,s),r=this._getColumnPixelOffset(e,i,s);return[new Uv(o,r-o)]}_getColumnPixelOffset(e,t,i){if(t<=300){const c=this._characterMapping.getHorizontalOffset(t);return this._charWidth*c}const s=Math.floor((t-1)/300)-1,o=(s+1)*300+1;let r=-1;if(this._keyColumnPixelOffsetCache&&(r=this._keyColumnPixelOffsetCache[s],r===-1&&(r=this._actualReadPixelOffset(e,o,i),this._keyColumnPixelOffsetCache[s]=r)),r===-1){const c=this._characterMapping.getHorizontalOffset(t);return this._charWidth*c}const a=this._characterMapping.getHorizontalOffset(o),l=this._characterMapping.getHorizontalOffset(t);return r+this._charWidth*(l-a)}_getReadingTarget(e){return e.domNode.firstChild}_actualReadPixelOffset(e,t,i){if(!this.domNode)return-1;const s=this._characterMapping.getDomPosition(t),o=bN.readHorizontalRanges(this._getReadingTarget(this.domNode),s.partIndex,s.charIndex,s.partIndex,s.charIndex,i);return!o||o.length===0?-1:o[0].left}getColumnOfNodeOffset(e,t){return Az(this._characterMapping,e,t)}}class Xle{constructor(e,t,i,s,o){if(this.domNode=e,this.input=t,this._characterMapping=i,this._isWhitespaceOnly=/^\s*$/.test(t.lineContent),this._containsForeignElements=o,this._cachedWidth=-1,this._pixelOffsetCache=null,!s||this._characterMapping.length===0){this._pixelOffsetCache=new Float32Array(Math.max(2,this._characterMapping.length+1));for(let r=0,a=this._characterMapping.length;r<=a;r++)this._pixelOffsetCache[r]=-1}}_getReadingTarget(e){return e.domNode.firstChild}getWidth(e){return this.domNode?(this._cachedWidth===-1&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth,e==null||e.markDidDomLayout()),this._cachedWidth):0}getWidthIsFast(){return this._cachedWidth!==-1}getVisibleRangesForRange(e,t,i,s){if(!this.domNode)return null;if(this._pixelOffsetCache!==null){const o=this._readPixelOffset(this.domNode,e,t,s);if(o===-1)return null;const r=this._readPixelOffset(this.domNode,e,i,s);return r===-1?null:[new Uv(o,r-o)]}return this._readVisibleRangesForRange(this.domNode,e,t,i,s)}_readVisibleRangesForRange(e,t,i,s,o){if(i===s){const r=this._readPixelOffset(e,t,i,o);return r===-1?null:[new Uv(r,0)]}else return this._readRawVisibleRangesForRange(e,i,s,o)}_readPixelOffset(e,t,i,s){if(this._characterMapping.length===0){if(this._containsForeignElements===0||this._containsForeignElements===2)return 0;if(this._containsForeignElements===1)return this.getWidth(s);const o=this._getReadingTarget(e);return o.firstChild?(s.markDidDomLayout(),o.firstChild.offsetWidth):0}if(this._pixelOffsetCache!==null){const o=this._pixelOffsetCache[i];if(o!==-1)return o;const r=this._actualReadPixelOffset(e,t,i,s);return this._pixelOffsetCache[i]=r,r}return this._actualReadPixelOffset(e,t,i,s)}_actualReadPixelOffset(e,t,i,s){if(this._characterMapping.length===0){const l=bN.readHorizontalRanges(this._getReadingTarget(e),0,0,0,0,s);return!l||l.length===0?-1:l[0].left}if(i===this._characterMapping.length&&this._isWhitespaceOnly&&this._containsForeignElements===0)return this.getWidth(s);const o=this._characterMapping.getDomPosition(i),r=bN.readHorizontalRanges(this._getReadingTarget(e),o.partIndex,o.charIndex,o.partIndex,o.charIndex,s);if(!r||r.length===0)return-1;const a=r[0].left;if(this.input.isBasicASCII){const l=this._characterMapping.getHorizontalOffset(i),c=Math.round(this.input.spaceWidth*l);if(Math.abs(c-a)<=1)return c}return a}_readRawVisibleRangesForRange(e,t,i,s){if(t===1&&i===this._characterMapping.length)return[new Uv(0,this.getWidth(s))];const o=this._characterMapping.getDomPosition(t),r=this._characterMapping.getDomPosition(i);return bN.readHorizontalRanges(this._getReadingTarget(e),o.partIndex,o.charIndex,r.partIndex,r.charIndex,s)}getColumnOfNodeOffset(e,t){return Az(this._characterMapping,e,t)}}class J5e extends Xle{_readVisibleRangesForRange(e,t,i,s,o){const r=super._readVisibleRangesForRange(e,t,i,s,o);if(!r||r.length===0||i===s||i===1&&s===this._characterMapping.length)return r;if(!this.input.containsRTL){const a=this._readPixelOffset(e,t,s,o);if(a!==-1){const l=r[r.length-1];l.left=t){const u=t-r;return c-t=4&&e[0]===3&&e[3]===8}static isStrictChildOfViewLines(e){return e.length>4&&e[0]===3&&e[3]===8}static isChildOfScrollableElement(e){return e.length>=2&&e[0]===3&&e[1]===6}static isChildOfMinimap(e){return e.length>=2&&e[0]===3&&e[1]===9}static isChildOfContentWidgets(e){return e.length>=4&&e[0]===3&&e[3]===1}static isChildOfOverflowGuard(e){return e.length>=1&&e[0]===3}static isChildOfOverflowingContentWidgets(e){return e.length>=1&&e[0]===2}static isChildOfOverlayWidgets(e){return e.length>=2&&e[0]===3&&e[1]===4}static isChildOfOverflowingOverlayWidgets(e){return e.length>=1&&e[0]===5}}class VC{constructor(e,t,i){this.viewModel=e.viewModel;const s=e.configuration.options;this.layoutInfo=s.get(145),this.viewDomNode=t.viewDomNode,this.lineHeight=s.get(67),this.stickyTabStops=s.get(116),this.typicalHalfwidthCharacterWidth=s.get(50).typicalHalfwidthCharacterWidth,this.lastRenderData=i,this._context=e,this._viewHelper=t}getZoneAtCoord(e){return VC.getZoneAtCoord(this._context,e)}static getZoneAtCoord(e,t){const i=e.viewLayout.getWhitespaceAtVerticalOffset(t);if(i){const s=i.verticalOffset+i.height/2,o=e.viewModel.getLineCount();let r=null,a,l=null;return i.afterLineNumber!==o&&(l=new ee(i.afterLineNumber+1,1)),i.afterLineNumber>0&&(r=new ee(i.afterLineNumber,e.viewModel.getLineMaxColumn(i.afterLineNumber))),l===null?a=r:r===null?a=l:t=e.layoutInfo.glyphMarginLeft,this.isInContentArea=!this.isInMarginArea,this.mouseColumn=Math.max(0,rr._getMouseColumn(this.mouseContentHorizontalOffset,e.typicalHalfwidthCharacterWidth))}}class s3e extends n3e{get target(){return this._useHitTestTarget?this.hitTestResult.value.hitTarget:this._eventTarget}get targetPath(){return this._targetPathCacheElement!==this.target&&(this._targetPathCacheElement=this.target,this._targetPathCacheValue=ru.collect(this.target,this._ctx.viewDomNode)),this._targetPathCacheValue}constructor(e,t,i,s,o){super(e,t,i,s),this.hitTestResult=new pu(()=>rr.doHitTest(this._ctx,this)),this._targetPathCacheElement=null,this._targetPathCacheValue=new Uint8Array(0),this._ctx=e,this._eventTarget=o;const r=!!this._eventTarget;this._useHitTestTarget=!r}toString(){return`pos(${this.pos.x},${this.pos.y}), editorPos(${this.editorPos.x},${this.editorPos.y}), relativePos(${this.relativePos.x},${this.relativePos.y}), mouseVerticalOffset: ${this.mouseVerticalOffset}, mouseContentHorizontalOffset: ${this.mouseContentHorizontalOffset} target: ${this.target?this.target.outerHTML:null}`}get wouldBenefitFromHitTestTargetSwitch(){return!this._useHitTestTarget&&this.hitTestResult.value.hitTarget!==null&&this.target!==this.hitTestResult.value.hitTarget}switchToHitTestTarget(){this._useHitTestTarget=!0}_getMouseColumn(e=null){return e&&e.columnr.contentLeft+r.width)continue;const a=e.getVerticalOffsetForLineNumber(r.position.lineNumber);if(a<=o&&o<=a+r.height)return t.fulfillContentText(r.position,null,{mightBeForeignElement:!1,injectedText:null})}}return null}static _hitTestViewZone(e,t){const i=e.getZoneAtCoord(t.mouseVerticalOffset);if(i){const s=t.isInContentArea?8:5;return t.fulfillViewZone(s,i.position,i)}return null}static _hitTestTextArea(e,t){return br.isTextArea(t.targetPath)?e.lastRenderData.lastTextareaPosition?t.fulfillContentText(e.lastRenderData.lastTextareaPosition,null,{mightBeForeignElement:!1,injectedText:null}):t.fulfillTextarea():null}static _hitTestMargin(e,t){if(t.isInMarginArea){const i=e.getFullLineRangeAtCoord(t.mouseVerticalOffset),s=i.range.getStartPosition();let o=Math.abs(t.relativePos.x);const r={isAfterLines:i.isAfterLines,glyphMarginLeft:e.layoutInfo.glyphMarginLeft,glyphMarginWidth:e.layoutInfo.glyphMarginWidth,lineNumbersWidth:e.layoutInfo.lineNumbersWidth,offsetX:o};if(o-=e.layoutInfo.glyphMarginLeft,o<=e.layoutInfo.glyphMarginWidth){const a=e.viewModel.coordinatesConverter.convertViewPositionToModelPosition(i.range.getStartPosition()),l=e.viewModel.glyphLanes.getLanesAtLine(a.lineNumber);return r.glyphMarginLane=l[Math.floor(o/e.lineHeight)],t.fulfillMargin(2,s,i.range,r)}return o-=e.layoutInfo.glyphMarginWidth,o<=e.layoutInfo.lineNumbersWidth?t.fulfillMargin(3,s,i.range,r):(o-=e.layoutInfo.lineNumbersWidth,t.fulfillMargin(4,s,i.range,r))}return null}static _hitTestViewLines(e,t){if(!br.isChildOfViewLines(t.targetPath))return null;if(e.isInTopPadding(t.mouseVerticalOffset))return t.fulfillContentEmpty(new ee(1,1),FX);if(e.isAfterLines(t.mouseVerticalOffset)||e.isInBottomPadding(t.mouseVerticalOffset)){const s=e.viewModel.getLineCount(),o=e.viewModel.getLineMaxColumn(s);return t.fulfillContentEmpty(new ee(s,o),FX)}if(br.isStrictChildOfViewLines(t.targetPath)){const s=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset);if(e.viewModel.getLineLength(s)===0){const r=e.getLineWidth(s),a=JF(t.mouseContentHorizontalOffset-r);return t.fulfillContentEmpty(new ee(s,1),a)}const o=e.getLineWidth(s);if(t.mouseContentHorizontalOffset>=o){const r=JF(t.mouseContentHorizontalOffset-o),a=new ee(s,e.viewModel.getLineMaxColumn(s));return t.fulfillContentEmpty(a,r)}}const i=t.hitTestResult.value;return i.type===1?rr.createMouseTargetFromHitTestPosition(e,t,i.spanNode,i.position,i.injectedText):t.wouldBenefitFromHitTestTargetSwitch?(t.switchToHitTestTarget(),this._createMouseTarget(e,t)):t.fulfillUnknown()}static _hitTestMinimap(e,t){if(br.isChildOfMinimap(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),s=e.viewModel.getLineMaxColumn(i);return t.fulfillScrollbar(new ee(i,s))}return null}static _hitTestScrollbarSlider(e,t){if(br.isChildOfScrollableElement(t.targetPath)&&t.target&&t.target.nodeType===1){const i=t.target.className;if(i&&/\b(slider|scrollbar)\b/.test(i)){const s=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),o=e.viewModel.getLineMaxColumn(s);return t.fulfillScrollbar(new ee(s,o))}}return null}static _hitTestScrollbar(e,t){if(br.isChildOfScrollableElement(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),s=e.viewModel.getLineMaxColumn(i);return t.fulfillScrollbar(new ee(i,s))}return null}getMouseColumn(e){const t=this._context.configuration.options,i=t.get(145),s=this._context.viewLayout.getCurrentScrollLeft()+e.x-i.contentLeft;return rr._getMouseColumn(s,t.get(50).typicalHalfwidthCharacterWidth)}static _getMouseColumn(e,t){return e<0?1:Math.round(e/t)+1}static createMouseTargetFromHitTestPosition(e,t,i,s,o){const r=s.lineNumber,a=s.column,l=e.getLineWidth(r);if(t.mouseContentHorizontalOffset>l){const b=JF(t.mouseContentHorizontalOffset-l);return t.fulfillContentEmpty(s,b)}const c=e.visibleRangeForPosition(r,a);if(!c)return t.fulfillUnknown(s);const d=c.left;if(Math.abs(t.mouseContentHorizontalOffset-d)<1)return t.fulfillContentText(s,null,{mightBeForeignElement:!!o,injectedText:o});const u=[];if(u.push({offset:c.left,column:a}),a>1){const b=e.visibleRangeForPosition(r,a-1);b&&u.push({offset:b.left,column:a-1})}const h=e.viewModel.getLineMaxColumn(r);if(ab.offset-w.offset);const f=t.pos.toClientCoordinates(gt(e.viewDomNode)),g=i.getBoundingClientRect(),p=g.left<=f.clientX&&f.clientX<=g.right;let _=null;for(let b=1;bo)){const a=Math.floor((s+o)/2);let l=t.pos.y+(a-t.mouseVerticalOffset);l<=t.editorPos.y&&(l=t.editorPos.y+1),l>=t.editorPos.y+t.editorPos.height&&(l=t.editorPos.y+t.editorPos.height-1);const c=new AM(t.pos.x,l),d=this._actualDoHitTestWithCaretRangeFromPoint(e,c.toClientCoordinates(gt(e.viewDomNode)));if(d.type===1)return d}return this._actualDoHitTestWithCaretRangeFromPoint(e,t.pos.toClientCoordinates(gt(e.viewDomNode)))}static _actualDoHitTestWithCaretRangeFromPoint(e,t){const i=h0(e.viewDomNode);let s;if(i?typeof i.caretRangeFromPoint>"u"?s=o3e(i,t.clientX,t.clientY):s=i.caretRangeFromPoint(t.clientX,t.clientY):s=e.viewDomNode.ownerDocument.caretRangeFromPoint(t.clientX,t.clientY),!s||!s.startContainer)return new _p;const o=s.startContainer;if(o.nodeType===o.TEXT_NODE){const r=o.parentNode,a=r?r.parentNode:null,l=a?a.parentNode:null;return(l&&l.nodeType===l.ELEMENT_NODE?l.className:null)===eh.CLASS_NAME?pv.createFromDOMInfo(e,r,s.startOffset):new _p(o.parentNode)}else if(o.nodeType===o.ELEMENT_NODE){const r=o.parentNode,a=r?r.parentNode:null;return(a&&a.nodeType===a.ELEMENT_NODE?a.className:null)===eh.CLASS_NAME?pv.createFromDOMInfo(e,o,o.textContent.length):new _p(o)}return new _p}static _doHitTestWithCaretPositionFromPoint(e,t){const i=e.viewDomNode.ownerDocument.caretPositionFromPoint(t.clientX,t.clientY);if(i.offsetNode.nodeType===i.offsetNode.TEXT_NODE){const s=i.offsetNode.parentNode,o=s?s.parentNode:null,r=o?o.parentNode:null;return(r&&r.nodeType===r.ELEMENT_NODE?r.className:null)===eh.CLASS_NAME?pv.createFromDOMInfo(e,i.offsetNode.parentNode,i.offset):new _p(i.offsetNode.parentNode)}if(i.offsetNode.nodeType===i.offsetNode.ELEMENT_NODE){const s=i.offsetNode.parentNode,o=s&&s.nodeType===s.ELEMENT_NODE?s.className:null,r=s?s.parentNode:null,a=r&&r.nodeType===r.ELEMENT_NODE?r.className:null;if(o===eh.CLASS_NAME){const l=i.offsetNode.childNodes[Math.min(i.offset,i.offsetNode.childNodes.length-1)];if(l)return pv.createFromDOMInfo(e,l,0)}else if(a===eh.CLASS_NAME)return pv.createFromDOMInfo(e,i.offsetNode,0)}return new _p(i.offsetNode)}static _snapToSoftTabBoundary(e,t){const i=t.getLineContent(e.lineNumber),{tabSize:s}=t.model.getOptions(),o=DL.atomicPosition(i,e.column-1,s,2);return o!==-1?new ee(e.lineNumber,o+1):e}static doHitTest(e,t){let i=new _p;if(typeof e.viewDomNode.ownerDocument.caretRangeFromPoint=="function"?i=this._doHitTestWithCaretRangeFromPoint(e,t):e.viewDomNode.ownerDocument.caretPositionFromPoint&&(i=this._doHitTestWithCaretPositionFromPoint(e,t.pos.toClientCoordinates(gt(e.viewDomNode)))),i.type===1){const s=e.viewModel.getInjectedTextAt(i.position),o=e.viewModel.normalizePosition(i.position,2);(s||!o.equals(i.position))&&(i=new Jle(o,i.spanNode,s))}return i}}function o3e(n,e,t){const i=document.createRange();let s=n.elementFromPoint(e,t);if(s!==null){for(;s&&s.firstChild&&s.firstChild.nodeType!==s.firstChild.TEXT_NODE&&s.lastChild&&s.lastChild.firstChild;)s=s.lastChild;const o=s.getBoundingClientRect(),r=gt(s),a=r.getComputedStyle(s,null).getPropertyValue("font-style"),l=r.getComputedStyle(s,null).getPropertyValue("font-variant"),c=r.getComputedStyle(s,null).getPropertyValue("font-weight"),d=r.getComputedStyle(s,null).getPropertyValue("font-size"),u=r.getComputedStyle(s,null).getPropertyValue("line-height"),h=r.getComputedStyle(s,null).getPropertyValue("font-family"),f=`${a} ${l} ${c} ${d}/${u} ${h}`,g=s.innerText;let p=o.left,_=0,b;if(e>o.left+o.width)_=g.length;else{const w=kv.getInstance();for(let y=0;y=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},fn;(function(n){n.Tap="-monaco-gesturetap",n.Change="-monaco-gesturechange",n.Start="-monaco-gesturestart",n.End="-monaco-gesturesend",n.Contextmenu="-monaco-gesturecontextmenu"})(fn||(fn={}));class hn extends ne{constructor(){super(),this.dispatched=!1,this.targets=new Tr,this.ignoreTargets=new Tr,this.activeTouches={},this.handle=null,this._lastSetTapCountTime=0,this._register(Ae.runAndSubscribe(dM,({window:e,disposables:t})=>{t.add(ce(e.document,"touchstart",i=>this.onTouchStart(i),{passive:!1})),t.add(ce(e.document,"touchend",i=>this.onTouchEnd(e,i))),t.add(ce(e.document,"touchmove",i=>this.onTouchMove(i),{passive:!1}))},{window:Ji,disposables:this._store}))}static addTarget(e){if(!hn.isTouchDevice())return ne.None;hn.INSTANCE||(hn.INSTANCE=new hn);const t=hn.INSTANCE.targets.push(e);return dt(t)}static ignoreTarget(e){if(!hn.isTouchDevice())return ne.None;hn.INSTANCE||(hn.INSTANCE=new hn);const t=hn.INSTANCE.ignoreTargets.push(e);return dt(t)}static isTouchDevice(){return"ontouchstart"in Ji||navigator.maxTouchPoints>0}dispose(){this.handle&&(this.handle.dispose(),this.handle=null),super.dispose()}onTouchStart(e){const t=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(let i=0,s=e.targetTouches.length;i=hn.HOLD_DELAY&&Math.abs(l.initialPageX-Bl(l.rollingPageX))<30&&Math.abs(l.initialPageY-Bl(l.rollingPageY))<30){const d=this.newGestureEvent(fn.Contextmenu,l.initialTarget);d.pageX=Bl(l.rollingPageX),d.pageY=Bl(l.rollingPageY),this.dispatchEvent(d)}else if(s===1){const d=Bl(l.rollingPageX),u=Bl(l.rollingPageY),h=Bl(l.rollingTimestamps)-l.rollingTimestamps[0],f=d-l.rollingPageX[0],g=u-l.rollingPageY[0],p=[...this.targets].filter(_=>l.initialTarget instanceof Node&&_.contains(l.initialTarget));this.inertia(e,p,i,Math.abs(f)/h,f>0?1:-1,d,Math.abs(g)/h,g>0?1:-1,u)}this.dispatchEvent(this.newGestureEvent(fn.End,l.initialTarget)),delete this.activeTouches[a.identifier]}this.dispatched&&(t.preventDefault(),t.stopPropagation(),this.dispatched=!1)}newGestureEvent(e,t){const i=document.createEvent("CustomEvent");return i.initEvent(e,!1,!0),i.initialTarget=t,i.tapCount=0,i}dispatchEvent(e){if(e.type===fn.Tap){const t=new Date().getTime();let i=0;t-this._lastSetTapCountTime>hn.CLEAR_TAP_COUNT_TIME?i=1:i=2,this._lastSetTapCountTime=t,e.tapCount=i}else(e.type===fn.Change||e.type===fn.Contextmenu)&&(this._lastSetTapCountTime=0);if(e.initialTarget instanceof Node){for(const i of this.ignoreTargets)if(i.contains(e.initialTarget))return;const t=[];for(const i of this.targets)if(i.contains(e.initialTarget)){let s=0,o=e.initialTarget;for(;o&&o!==i;)s++,o=o.parentElement;t.push([s,i])}t.sort((i,s)=>i[0]-s[0]);for(const[i,s]of t)s.dispatchEvent(e),this.dispatched=!0}}inertia(e,t,i,s,o,r,a,l,c){this.handle=Oa(e,()=>{const d=Date.now(),u=d-i;let h=0,f=0,g=!0;s+=hn.SCROLL_FRICTION*u,a+=hn.SCROLL_FRICTION*u,s>0&&(g=!1,h=o*s*u),a>0&&(g=!1,f=l*a*u);const p=this.newGestureEvent(fn.Change);p.translationX=h,p.translationY=f,t.forEach(_=>_.dispatchEvent(p)),g||this.inertia(e,t,d,s,o,r+h,a,l,c+f)})}onTouchMove(e){const t=Date.now();for(let i=0,s=e.changedTouches.length;i3&&(r.rollingPageX.shift(),r.rollingPageY.shift(),r.rollingTimestamps.shift()),r.rollingPageX.push(o.pageX),r.rollingPageY.push(o.pageY),r.rollingTimestamps.push(t)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}}hn.SCROLL_FRICTION=-.005;hn.HOLD_DELAY=700;hn.CLEAR_TAP_COUNT_TIME=400;r3e([gs],hn,"isTouchDevice",null);let Il=class extends ne{onclick(e,t){this._register(ce(e,Le.CLICK,i=>t(new Kc(gt(e),i))))}onmousedown(e,t){this._register(ce(e,Le.MOUSE_DOWN,i=>t(new Kc(gt(e),i))))}onmouseover(e,t){this._register(ce(e,Le.MOUSE_OVER,i=>t(new Kc(gt(e),i))))}onmouseleave(e,t){this._register(ce(e,Le.MOUSE_LEAVE,i=>t(new Kc(gt(e),i))))}onkeydown(e,t){this._register(ce(e,Le.KEY_DOWN,i=>t(new ln(i))))}onkeyup(e,t){this._register(ce(e,Le.KEY_UP,i=>t(new ln(i))))}oninput(e,t){this._register(ce(e,Le.INPUT,t))}onblur(e,t){this._register(ce(e,Le.BLUR,t))}onfocus(e,t){this._register(ce(e,Le.FOCUS,t))}ignoreGesture(e){return hn.ignoreTarget(e)}};const zC=11;class a3e extends Il{constructor(e){super(),this._onActivate=e.onActivate,this.bgDomNode=document.createElement("div"),this.bgDomNode.className="arrow-background",this.bgDomNode.style.position="absolute",this.bgDomNode.style.width=e.bgWidth+"px",this.bgDomNode.style.height=e.bgHeight+"px",typeof e.top<"u"&&(this.bgDomNode.style.top="0px"),typeof e.left<"u"&&(this.bgDomNode.style.left="0px"),typeof e.bottom<"u"&&(this.bgDomNode.style.bottom="0px"),typeof e.right<"u"&&(this.bgDomNode.style.right="0px"),this.domNode=document.createElement("div"),this.domNode.className=e.className,this.domNode.classList.add(..._t.asClassNameArray(e.icon)),this.domNode.style.position="absolute",this.domNode.style.width=zC+"px",this.domNode.style.height=zC+"px",typeof e.top<"u"&&(this.domNode.style.top=e.top+"px"),typeof e.left<"u"&&(this.domNode.style.left=e.left+"px"),typeof e.bottom<"u"&&(this.domNode.style.bottom=e.bottom+"px"),typeof e.right<"u"&&(this.domNode.style.right=e.right+"px"),this._pointerMoveMonitor=this._register(new Bw),this._register(rs(this.bgDomNode,Le.POINTER_DOWN,t=>this._arrowPointerDown(t))),this._register(rs(this.domNode,Le.POINTER_DOWN,t=>this._arrowPointerDown(t))),this._pointerdownRepeatTimer=this._register(new iz),this._pointerdownScheduleRepeatTimer=this._register(new cd)}_arrowPointerDown(e){if(!e.target||!(e.target instanceof Element))return;const t=()=>{this._pointerdownRepeatTimer.cancelAndSet(()=>this._onActivate(),1e3/24,gt(e))};this._onActivate(),this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancelAndSet(t,200),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,i=>{},()=>{this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancel()}),e.preventDefault()}}class l3e extends ne{constructor(e,t,i){super(),this._visibility=e,this._visibleClassName=t,this._invisibleClassName=i,this._domNode=null,this._isVisible=!1,this._isNeeded=!1,this._rawShouldBeVisible=!1,this._shouldBeVisible=!1,this._revealTimer=this._register(new cd)}setVisibility(e){this._visibility!==e&&(this._visibility=e,this._updateShouldBeVisible())}setShouldBeVisible(e){this._rawShouldBeVisible=e,this._updateShouldBeVisible()}_applyVisibilitySetting(){return this._visibility===2?!1:this._visibility===3?!0:this._rawShouldBeVisible}_updateShouldBeVisible(){const e=this._applyVisibilitySetting();this._shouldBeVisible!==e&&(this._shouldBeVisible=e,this.ensureVisibility())}setIsNeeded(e){this._isNeeded!==e&&(this._isNeeded=e,this.ensureVisibility())}setDomNode(e){this._domNode=e,this._domNode.setClassName(this._invisibleClassName),this.setShouldBeVisible(!1)}ensureVisibility(){if(!this._isNeeded){this._hide(!1);return}this._shouldBeVisible?this._reveal():this._hide(!0)}_reveal(){this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet(()=>{var e;(e=this._domNode)===null||e===void 0||e.setClassName(this._visibleClassName)},0))}_hide(e){var t;this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,(t=this._domNode)===null||t===void 0||t.setClassName(this._invisibleClassName+(e?" fade":"")))}}const c3e=140;class ece extends Il{constructor(e){super(),this._lazyRender=e.lazyRender,this._host=e.host,this._scrollable=e.scrollable,this._scrollByPage=e.scrollByPage,this._scrollbarState=e.scrollbarState,this._visibilityController=this._register(new l3e(e.visibility,"visible scrollbar "+e.extraScrollbarClassName,"invisible scrollbar "+e.extraScrollbarClassName)),this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._pointerMoveMonitor=this._register(new Bw),this._shouldRender=!0,this.domNode=Di(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this._visibilityController.setDomNode(this.domNode),this.domNode.setPosition("absolute"),this._register(ce(this.domNode.domNode,Le.POINTER_DOWN,t=>this._domNodePointerDown(t)))}_createArrow(e){const t=this._register(new a3e(e));this.domNode.domNode.appendChild(t.bgDomNode),this.domNode.domNode.appendChild(t.domNode)}_createSlider(e,t,i,s){this.slider=Di(document.createElement("div")),this.slider.setClassName("slider"),this.slider.setPosition("absolute"),this.slider.setTop(e),this.slider.setLeft(t),typeof i=="number"&&this.slider.setWidth(i),typeof s=="number"&&this.slider.setHeight(s),this.slider.setLayerHinting(!0),this.slider.setContain("strict"),this.domNode.domNode.appendChild(this.slider.domNode),this._register(ce(this.slider.domNode,Le.POINTER_DOWN,o=>{o.button===0&&(o.preventDefault(),this._sliderPointerDown(o))})),this.onclick(this.slider.domNode,o=>{o.leftButton&&o.stopPropagation()})}_onElementSize(e){return this._scrollbarState.setVisibleSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollSize(e){return this._scrollbarState.setScrollSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollPosition(e){return this._scrollbarState.setScrollPosition(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}beginReveal(){this._visibilityController.setShouldBeVisible(!0)}beginHide(){this._visibilityController.setShouldBeVisible(!1)}render(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))}_domNodePointerDown(e){e.target===this.domNode.domNode&&this._onPointerDown(e)}delegatePointerDown(e){const t=this.domNode.domNode.getClientRects()[0].top,i=t+this._scrollbarState.getSliderPosition(),s=t+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),o=this._sliderPointerPosition(e);i<=o&&o<=s?e.button===0&&(e.preventDefault(),this._sliderPointerDown(e)):this._onPointerDown(e)}_onPointerDown(e){let t,i;if(e.target===this.domNode.domNode&&typeof e.offsetX=="number"&&typeof e.offsetY=="number")t=e.offsetX,i=e.offsetY;else{const o=bs(this.domNode.domNode);t=e.pageX-o.left,i=e.pageY-o.top}const s=this._pointerDownRelativePosition(t,i);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(s):this._scrollbarState.getDesiredScrollPositionFromOffset(s)),e.button===0&&(e.preventDefault(),this._sliderPointerDown(e))}_sliderPointerDown(e){if(!e.target||!(e.target instanceof Element))return;const t=this._sliderPointerPosition(e),i=this._sliderOrthogonalPointerPosition(e),s=this._scrollbarState.clone();this.slider.toggleClassName("active",!0),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,o=>{const r=this._sliderOrthogonalPointerPosition(o),a=Math.abs(r-i);if(Mo&&a>c3e){this._setDesiredScrollPositionNow(s.getScrollPosition());return}const c=this._sliderPointerPosition(o)-t;this._setDesiredScrollPositionNow(s.getDesiredScrollPositionFromDelta(c))},()=>{this.slider.toggleClassName("active",!1),this._host.onDragEnd()}),this._host.onDragStart()}_setDesiredScrollPositionNow(e){const t={};this.writeScrollPosition(t,e),this._scrollable.setScrollPositionNow(t)}updateScrollbarSize(e){this._updateScrollbarSize(e),this._scrollbarState.setScrollbarSize(e),this._shouldRender=!0,this._lazyRender||this.render()}isNeeded(){return this._scrollbarState.isNeeded()}}const d3e=20;class $C{constructor(e,t,i,s,o,r){this._scrollbarSize=Math.round(t),this._oppositeScrollbarSize=Math.round(i),this._arrowSize=Math.round(e),this._visibleSize=s,this._scrollSize=o,this._scrollPosition=r,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,this._computedSliderPosition=0,this._refreshComputedValues()}clone(){return new $C(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)}setVisibleSize(e){const t=Math.round(e);return this._visibleSize!==t?(this._visibleSize=t,this._refreshComputedValues(),!0):!1}setScrollSize(e){const t=Math.round(e);return this._scrollSize!==t?(this._scrollSize=t,this._refreshComputedValues(),!0):!1}setScrollPosition(e){const t=Math.round(e);return this._scrollPosition!==t?(this._scrollPosition=t,this._refreshComputedValues(),!0):!1}setScrollbarSize(e){this._scrollbarSize=Math.round(e)}setOppositeScrollbarSize(e){this._oppositeScrollbarSize=Math.round(e)}static _computeValues(e,t,i,s,o){const r=Math.max(0,i-e),a=Math.max(0,r-2*t),l=s>0&&s>i;if(!l)return{computedAvailableSize:Math.round(r),computedIsNeeded:l,computedSliderSize:Math.round(a),computedSliderRatio:0,computedSliderPosition:0};const c=Math.round(Math.max(d3e,Math.floor(i*a/s))),d=(a-c)/(s-i),u=o*d;return{computedAvailableSize:Math.round(r),computedIsNeeded:l,computedSliderSize:Math.round(c),computedSliderRatio:d,computedSliderPosition:Math.round(u)}}_refreshComputedValues(){const e=$C._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=e.computedAvailableSize,this._computedIsNeeded=e.computedIsNeeded,this._computedSliderSize=e.computedSliderSize,this._computedSliderRatio=e.computedSliderRatio,this._computedSliderPosition=e.computedSliderPosition}getArrowSize(){return this._arrowSize}getScrollPosition(){return this._scrollPosition}getRectangleLargeSize(){return this._computedAvailableSize}getRectangleSmallSize(){return this._scrollbarSize}isNeeded(){return this._computedIsNeeded}getSliderSize(){return this._computedSliderSize}getSliderPosition(){return this._computedSliderPosition}getDesiredScrollPositionFromOffset(e){if(!this._computedIsNeeded)return 0;const t=e-this._arrowSize-this._computedSliderSize/2;return Math.round(t/this._computedSliderRatio)}getDesiredScrollPositionFromOffsetPaged(e){if(!this._computedIsNeeded)return 0;const t=e-this._arrowSize;let i=this._scrollPosition;return tthis._host.onMouseWheel(new u0(null,1,0))}),this._createArrow({className:"scra",icon:Te.scrollbarButtonRight,top:a,left:void 0,bottom:void 0,right:r,bgWidth:t.arrowSize,bgHeight:t.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new u0(null,-1,0))})}this._createSlider(Math.floor((t.horizontalScrollbarSize-t.horizontalSliderSize)/2),0,void 0,t.horizontalSliderSize)}_updateSlider(e,t){this.slider.setWidth(e),this.slider.setLeft(t)}_renderDomNode(e,t){this.domNode.setWidth(e),this.domNode.setHeight(t),this.domNode.setLeft(0),this.domNode.setBottom(0)}onDidScroll(e){return this._shouldRender=this._onElementScrollSize(e.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(e.width)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(e,t){return e}_sliderPointerPosition(e){return e.pageX}_sliderOrthogonalPointerPosition(e){return e.pageY}_updateScrollbarSize(e){this.slider.setHeight(e)}writeScrollPosition(e,t){e.scrollLeft=t}updateOptions(e){this.updateScrollbarSize(e.horizontal===2?0:e.horizontalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(e.vertical===2?0:e.verticalScrollbarSize),this._visibilityController.setVisibility(e.horizontal),this._scrollByPage=e.scrollByPage}}class h3e extends ece{constructor(e,t,i){const s=e.getScrollDimensions(),o=e.getCurrentScrollPosition();if(super({lazyRender:t.lazyRender,host:i,scrollbarState:new $C(t.verticalHasArrows?t.arrowSize:0,t.vertical===2?0:t.verticalScrollbarSize,0,s.height,s.scrollHeight,o.scrollTop),visibility:t.vertical,extraScrollbarClassName:"vertical",scrollable:e,scrollByPage:t.scrollByPage}),t.verticalHasArrows){const r=(t.arrowSize-zC)/2,a=(t.verticalScrollbarSize-zC)/2;this._createArrow({className:"scra",icon:Te.scrollbarButtonUp,top:r,left:a,bottom:void 0,right:void 0,bgWidth:t.verticalScrollbarSize,bgHeight:t.arrowSize,onActivate:()=>this._host.onMouseWheel(new u0(null,0,1))}),this._createArrow({className:"scra",icon:Te.scrollbarButtonDown,top:void 0,left:a,bottom:r,right:void 0,bgWidth:t.verticalScrollbarSize,bgHeight:t.arrowSize,onActivate:()=>this._host.onMouseWheel(new u0(null,0,-1))})}this._createSlider(0,Math.floor((t.verticalScrollbarSize-t.verticalSliderSize)/2),t.verticalSliderSize,void 0)}_updateSlider(e,t){this.slider.setHeight(e),this.slider.setTop(t)}_renderDomNode(e,t){this.domNode.setWidth(t),this.domNode.setHeight(e),this.domNode.setRight(0),this.domNode.setTop(0)}onDidScroll(e){return this._shouldRender=this._onElementScrollSize(e.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(e.height)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(e,t){return t}_sliderPointerPosition(e){return e.pageY}_sliderOrthogonalPointerPosition(e){return e.pageX}_updateScrollbarSize(e){this.slider.setWidth(e)}writeScrollPosition(e,t){e.scrollTop=t}updateOptions(e){this.updateScrollbarSize(e.vertical===2?0:e.verticalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(0),this._visibilityController.setVisibility(e.vertical),this._scrollByPage=e.scrollByPage}}class Q2{constructor(e,t,i,s,o,r,a){this._forceIntegerValues=e,this._scrollStateBrand=void 0,this._forceIntegerValues&&(t=t|0,i=i|0,s=s|0,o=o|0,r=r|0,a=a|0),this.rawScrollLeft=s,this.rawScrollTop=a,t<0&&(t=0),s+t>i&&(s=i-t),s<0&&(s=0),o<0&&(o=0),a+o>r&&(a=r-o),a<0&&(a=0),this.width=t,this.scrollWidth=i,this.scrollLeft=s,this.height=o,this.scrollHeight=r,this.scrollTop=a}equals(e){return this.rawScrollLeft===e.rawScrollLeft&&this.rawScrollTop===e.rawScrollTop&&this.width===e.width&&this.scrollWidth===e.scrollWidth&&this.scrollLeft===e.scrollLeft&&this.height===e.height&&this.scrollHeight===e.scrollHeight&&this.scrollTop===e.scrollTop}withScrollDimensions(e,t){return new Q2(this._forceIntegerValues,typeof e.width<"u"?e.width:this.width,typeof e.scrollWidth<"u"?e.scrollWidth:this.scrollWidth,t?this.rawScrollLeft:this.scrollLeft,typeof e.height<"u"?e.height:this.height,typeof e.scrollHeight<"u"?e.scrollHeight:this.scrollHeight,t?this.rawScrollTop:this.scrollTop)}withScrollPosition(e){return new Q2(this._forceIntegerValues,this.width,this.scrollWidth,typeof e.scrollLeft<"u"?e.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,typeof e.scrollTop<"u"?e.scrollTop:this.rawScrollTop)}createScrollEvent(e,t){const i=this.width!==e.width,s=this.scrollWidth!==e.scrollWidth,o=this.scrollLeft!==e.scrollLeft,r=this.height!==e.height,a=this.scrollHeight!==e.scrollHeight,l=this.scrollTop!==e.scrollTop;return{inSmoothScrolling:t,oldWidth:e.width,oldScrollWidth:e.scrollWidth,oldScrollLeft:e.scrollLeft,width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,oldHeight:e.height,oldScrollHeight:e.scrollHeight,oldScrollTop:e.scrollTop,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:i,scrollWidthChanged:s,scrollLeftChanged:o,heightChanged:r,scrollHeightChanged:a,scrollTopChanged:l}}}class Ww extends ne{constructor(e){super(),this._scrollableBrand=void 0,this._onScroll=this._register(new X),this.onScroll=this._onScroll.event,this._smoothScrollDuration=e.smoothScrollDuration,this._scheduleAtNextAnimationFrame=e.scheduleAtNextAnimationFrame,this._state=new Q2(e.forceIntegerValues,0,0,0,0,0,0),this._smoothScrolling=null}dispose(){this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),super.dispose()}setSmoothScrollDuration(e){this._smoothScrollDuration=e}validateScrollPosition(e){return this._state.withScrollPosition(e)}getScrollDimensions(){return this._state}setScrollDimensions(e,t){var i;const s=this._state.withScrollDimensions(e,t);this._setState(s,!!this._smoothScrolling),(i=this._smoothScrolling)===null||i===void 0||i.acceptScrollDimensions(this._state)}getFutureScrollPosition(){return this._smoothScrolling?this._smoothScrolling.to:this._state}getCurrentScrollPosition(){return this._state}setScrollPositionNow(e){const t=this._state.withScrollPosition(e);this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),this._setState(t,!1)}setScrollPositionSmooth(e,t){if(this._smoothScrollDuration===0)return this.setScrollPositionNow(e);if(this._smoothScrolling){e={scrollLeft:typeof e.scrollLeft>"u"?this._smoothScrolling.to.scrollLeft:e.scrollLeft,scrollTop:typeof e.scrollTop>"u"?this._smoothScrolling.to.scrollTop:e.scrollTop};const i=this._state.withScrollPosition(e);if(this._smoothScrolling.to.scrollLeft===i.scrollLeft&&this._smoothScrolling.to.scrollTop===i.scrollTop)return;let s;t?s=new IL(this._smoothScrolling.from,i,this._smoothScrolling.startTime,this._smoothScrolling.duration):s=this._smoothScrolling.combine(this._state,i,this._smoothScrollDuration),this._smoothScrolling.dispose(),this._smoothScrolling=s}else{const i=this._state.withScrollPosition(e);this._smoothScrolling=IL.start(this._state,i,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}hasPendingScrollAnimation(){return!!this._smoothScrolling}_performSmoothScrolling(){if(!this._smoothScrolling)return;const e=this._smoothScrolling.tick(),t=this._state.withScrollPosition(e);if(this._setState(t,!0),!!this._smoothScrolling){if(e.isDone){this._smoothScrolling.dispose(),this._smoothScrolling=null;return}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}}_setState(e,t){const i=this._state;i.equals(e)||(this._state=e,this._onScroll.fire(this._state.createScrollEvent(i,t)))}}class BX{constructor(e,t,i){this.scrollLeft=e,this.scrollTop=t,this.isDone=i}}function e5(n,e){const t=e-n;return function(i){return n+t*p3e(i)}}function f3e(n,e,t){return function(i){return i2.5*i){let o,r;return e0&&Math.abs(e.deltaY)>0)return 1;let i=.5;if((!this._isAlmostInt(e.deltaX)||!this._isAlmostInt(e.deltaY))&&(i+=.25),t){const s=Math.abs(e.deltaX),o=Math.abs(e.deltaY),r=Math.abs(t.deltaX),a=Math.abs(t.deltaY),l=Math.max(Math.min(s,r),1),c=Math.max(Math.min(o,a),1),d=Math.max(s,r),u=Math.max(o,a);d%l===0&&u%c===0&&(i-=.5)}return Math.min(Math.max(i,0),1)}_isAlmostInt(e){return Math.abs(Math.round(e)-e)<.01}}J2.INSTANCE=new J2;class Rz extends Il{get options(){return this._options}constructor(e,t,i){super(),this._onScroll=this._register(new X),this.onScroll=this._onScroll.event,this._onWillScroll=this._register(new X),e.style.overflow="hidden",this._options=v3e(t),this._scrollable=i,this._register(this._scrollable.onScroll(o=>{this._onWillScroll.fire(o),this._onDidScroll(o),this._onScroll.fire(o)}));const s={onMouseWheel:o=>this._onMouseWheel(o),onDragStart:()=>this._onDragStart(),onDragEnd:()=>this._onDragEnd()};this._verticalScrollbar=this._register(new h3e(this._scrollable,this._options,s)),this._horizontalScrollbar=this._register(new u3e(this._scrollable,this._options,s)),this._domNode=document.createElement("div"),this._domNode.className="monaco-scrollable-element "+this._options.className,this._domNode.setAttribute("role","presentation"),this._domNode.style.position="relative",this._domNode.style.overflow="hidden",this._domNode.appendChild(e),this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode),this._domNode.appendChild(this._verticalScrollbar.domNode.domNode),this._options.useShadows?(this._leftShadowDomNode=Di(document.createElement("div")),this._leftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._leftShadowDomNode.domNode),this._topShadowDomNode=Di(document.createElement("div")),this._topShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topShadowDomNode.domNode),this._topLeftShadowDomNode=Di(document.createElement("div")),this._topLeftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topLeftShadowDomNode.domNode)):(this._leftShadowDomNode=null,this._topShadowDomNode=null,this._topLeftShadowDomNode=null),this._listenOnDomNode=this._options.listenOnDomNode||this._domNode,this._mouseWheelToDispose=[],this._setListeningToMouseWheel(this._options.handleMouseWheel),this.onmouseover(this._listenOnDomNode,o=>this._onMouseOver(o)),this.onmouseleave(this._listenOnDomNode,o=>this._onMouseLeave(o)),this._hideTimeout=this._register(new cd),this._isDragging=!1,this._mouseIsOver=!1,this._shouldRender=!0,this._revealOnScroll=!0}dispose(){this._mouseWheelToDispose=tn(this._mouseWheelToDispose),super.dispose()}getDomNode(){return this._domNode}getOverviewRulerLayoutInfo(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}delegateVerticalScrollbarPointerDown(e){this._verticalScrollbar.delegatePointerDown(e)}getScrollDimensions(){return this._scrollable.getScrollDimensions()}setScrollDimensions(e){this._scrollable.setScrollDimensions(e,!1)}updateClassName(e){this._options.className=e,Xt&&(this._options.className+=" mac"),this._domNode.className="monaco-scrollable-element "+this._options.className}updateOptions(e){typeof e.handleMouseWheel<"u"&&(this._options.handleMouseWheel=e.handleMouseWheel,this._setListeningToMouseWheel(this._options.handleMouseWheel)),typeof e.mouseWheelScrollSensitivity<"u"&&(this._options.mouseWheelScrollSensitivity=e.mouseWheelScrollSensitivity),typeof e.fastScrollSensitivity<"u"&&(this._options.fastScrollSensitivity=e.fastScrollSensitivity),typeof e.scrollPredominantAxis<"u"&&(this._options.scrollPredominantAxis=e.scrollPredominantAxis),typeof e.horizontal<"u"&&(this._options.horizontal=e.horizontal),typeof e.vertical<"u"&&(this._options.vertical=e.vertical),typeof e.horizontalScrollbarSize<"u"&&(this._options.horizontalScrollbarSize=e.horizontalScrollbarSize),typeof e.verticalScrollbarSize<"u"&&(this._options.verticalScrollbarSize=e.verticalScrollbarSize),typeof e.scrollByPage<"u"&&(this._options.scrollByPage=e.scrollByPage),this._horizontalScrollbar.updateOptions(this._options),this._verticalScrollbar.updateOptions(this._options),this._options.lazyRender||this._render()}delegateScrollFromMouseWheelEvent(e){this._onMouseWheel(new u0(e))}_setListeningToMouseWheel(e){if(this._mouseWheelToDispose.length>0!==e&&(this._mouseWheelToDispose=tn(this._mouseWheelToDispose),e)){const i=s=>{this._onMouseWheel(new u0(s))};this._mouseWheelToDispose.push(ce(this._listenOnDomNode,Le.MOUSE_WHEEL,i,{passive:!1}))}}_onMouseWheel(e){var t;if(!((t=e.browserEvent)===null||t===void 0)&&t.defaultPrevented)return;const i=J2.INSTANCE;i.acceptStandardWheelEvent(e);let s=!1;if(e.deltaY||e.deltaX){let r=e.deltaY*this._options.mouseWheelScrollSensitivity,a=e.deltaX*this._options.mouseWheelScrollSensitivity;this._options.scrollPredominantAxis&&(this._options.scrollYToX&&a+r===0?a=r=0:Math.abs(r)>=Math.abs(a)?a=0:r=0),this._options.flipAxes&&([r,a]=[a,r]);const l=!Xt&&e.browserEvent&&e.browserEvent.shiftKey;(this._options.scrollYToX||l)&&!a&&(a=r,r=0),e.browserEvent&&e.browserEvent.altKey&&(a=a*this._options.fastScrollSensitivity,r=r*this._options.fastScrollSensitivity);const c=this._scrollable.getFutureScrollPosition();let d={};if(r){const u=WX*r,h=c.scrollTop-(u<0?Math.floor(u):Math.ceil(u));this._verticalScrollbar.writeScrollPosition(d,h)}if(a){const u=WX*a,h=c.scrollLeft-(u<0?Math.floor(u):Math.ceil(u));this._horizontalScrollbar.writeScrollPosition(d,h)}d=this._scrollable.validateScrollPosition(d),(c.scrollLeft!==d.scrollLeft||c.scrollTop!==d.scrollTop)&&(this._options.mouseWheelSmoothScroll&&i.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(d):this._scrollable.setScrollPositionNow(d),s=!0)}let o=s;!o&&this._options.alwaysConsumeMouseWheel&&(o=!0),!o&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())&&(o=!0),o&&(e.preventDefault(),e.stopPropagation())}_onDidScroll(e){this._shouldRender=this._horizontalScrollbar.onDidScroll(e)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(e)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()}renderNow(){if(!this._options.lazyRender)throw new Error("Please use `lazyRender` together with `renderNow`!");this._render()}_render(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){const e=this._scrollable.getCurrentScrollPosition(),t=e.scrollTop>0,i=e.scrollLeft>0,s=i?" left":"",o=t?" top":"",r=i||t?" top-left-corner":"";this._leftShadowDomNode.setClassName(`shadow${s}`),this._topShadowDomNode.setClassName(`shadow${o}`),this._topLeftShadowDomNode.setClassName(`shadow${r}${o}${s}`)}}_onDragStart(){this._isDragging=!0,this._reveal()}_onDragEnd(){this._isDragging=!1,this._hide()}_onMouseLeave(e){this._mouseIsOver=!1,this._hide()}_onMouseOver(e){this._mouseIsOver=!0,this._reveal()}_reveal(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()}_hide(){!this._mouseIsOver&&!this._isDragging&&(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())}_scheduleHide(){!this._mouseIsOver&&!this._isDragging&&this._hideTimeout.cancelAndSet(()=>this._hide(),m3e)}}class tce extends Rz{constructor(e,t){t=t||{},t.mouseWheelSmoothScroll=!1;const i=new Ww({forceIntegerValues:!0,smoothScrollDuration:0,scheduleAtNextAnimationFrame:s=>Oa(gt(e),s)});super(e,t,i),this._register(i)}setScrollPosition(e){this._scrollable.setScrollPositionNow(e)}}class MM extends Rz{constructor(e,t,i){super(e,t,i)}setScrollPosition(e){e.reuseAnimation?this._scrollable.setScrollPositionSmooth(e,e.reuseAnimation):this._scrollable.setScrollPositionNow(e)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}}class wD extends Rz{constructor(e,t){t=t||{},t.mouseWheelSmoothScroll=!1;const i=new Ww({forceIntegerValues:!1,smoothScrollDuration:0,scheduleAtNextAnimationFrame:s=>Oa(gt(e),s)});super(e,t,i),this._register(i),this._element=e,this._register(this.onScroll(s=>{s.scrollTopChanged&&(this._element.scrollTop=s.scrollTop),s.scrollLeftChanged&&(this._element.scrollLeft=s.scrollLeft)})),this.scanDomNode()}setScrollPosition(e){this._scrollable.setScrollPositionNow(e)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}scanDomNode(){this.setScrollDimensions({width:this._element.clientWidth,scrollWidth:this._element.scrollWidth,height:this._element.clientHeight,scrollHeight:this._element.scrollHeight}),this.setScrollPosition({scrollLeft:this._element.scrollLeft,scrollTop:this._element.scrollTop})}}function v3e(n){const e={lazyRender:typeof n.lazyRender<"u"?n.lazyRender:!1,className:typeof n.className<"u"?n.className:"",useShadows:typeof n.useShadows<"u"?n.useShadows:!0,handleMouseWheel:typeof n.handleMouseWheel<"u"?n.handleMouseWheel:!0,flipAxes:typeof n.flipAxes<"u"?n.flipAxes:!1,consumeMouseWheelIfScrollbarIsNeeded:typeof n.consumeMouseWheelIfScrollbarIsNeeded<"u"?n.consumeMouseWheelIfScrollbarIsNeeded:!1,alwaysConsumeMouseWheel:typeof n.alwaysConsumeMouseWheel<"u"?n.alwaysConsumeMouseWheel:!1,scrollYToX:typeof n.scrollYToX<"u"?n.scrollYToX:!1,mouseWheelScrollSensitivity:typeof n.mouseWheelScrollSensitivity<"u"?n.mouseWheelScrollSensitivity:1,fastScrollSensitivity:typeof n.fastScrollSensitivity<"u"?n.fastScrollSensitivity:5,scrollPredominantAxis:typeof n.scrollPredominantAxis<"u"?n.scrollPredominantAxis:!0,mouseWheelSmoothScroll:typeof n.mouseWheelSmoothScroll<"u"?n.mouseWheelSmoothScroll:!0,arrowSize:typeof n.arrowSize<"u"?n.arrowSize:11,listenOnDomNode:typeof n.listenOnDomNode<"u"?n.listenOnDomNode:null,horizontal:typeof n.horizontal<"u"?n.horizontal:1,horizontalScrollbarSize:typeof n.horizontalScrollbarSize<"u"?n.horizontalScrollbarSize:10,horizontalSliderSize:typeof n.horizontalSliderSize<"u"?n.horizontalSliderSize:0,horizontalHasArrows:typeof n.horizontalHasArrows<"u"?n.horizontalHasArrows:!1,vertical:typeof n.vertical<"u"?n.vertical:1,verticalScrollbarSize:typeof n.verticalScrollbarSize<"u"?n.verticalScrollbarSize:10,verticalHasArrows:typeof n.verticalHasArrows<"u"?n.verticalHasArrows:!1,verticalSliderSize:typeof n.verticalSliderSize<"u"?n.verticalSliderSize:0,scrollByPage:typeof n.scrollByPage<"u"?n.scrollByPage:!1};return e.horizontalSliderSize=typeof n.horizontalSliderSize<"u"?n.horizontalSliderSize:e.horizontalScrollbarSize,e.verticalSliderSize=typeof n.verticalSliderSize<"u"?n.verticalSliderSize:e.verticalScrollbarSize,Xt&&(e.className+=" mac"),e}class Mz extends CD{constructor(e,t,i){super(),this._mouseLeaveMonitor=null,this._context=e,this.viewController=t,this.viewHelper=i,this.mouseTargetFactory=new rr(this._context,i),this._mouseDownOperation=this._register(new b3e(this._context,this.viewController,this.viewHelper,this.mouseTargetFactory,(r,a)=>this._createMouseTarget(r,a),r=>this._getMouseColumn(r))),this.lastMouseLeaveTime=-1,this._height=this._context.configuration.options.get(145).height;const s=new $5e(this.viewHelper.viewDomNode);this._register(s.onContextMenu(this.viewHelper.viewDomNode,r=>this._onContextMenu(r,!0))),this._register(s.onMouseMove(this.viewHelper.viewDomNode,r=>{this._onMouseMove(r),this._mouseLeaveMonitor||(this._mouseLeaveMonitor=ce(this.viewHelper.viewDomNode.ownerDocument,"mousemove",a=>{this.viewHelper.viewDomNode.contains(a.target)||this._onMouseLeave(new Wm(a,!1,this.viewHelper.viewDomNode))}))})),this._register(s.onMouseUp(this.viewHelper.viewDomNode,r=>this._onMouseUp(r))),this._register(s.onMouseLeave(this.viewHelper.viewDomNode,r=>this._onMouseLeave(r)));let o=0;this._register(s.onPointerDown(this.viewHelper.viewDomNode,(r,a)=>{o=a})),this._register(ce(this.viewHelper.viewDomNode,Le.POINTER_UP,r=>{this._mouseDownOperation.onPointerUp()})),this._register(s.onMouseDown(this.viewHelper.viewDomNode,r=>this._onMouseDown(r,o))),this._setupMouseWheelZoomListener(),this._context.addEventHandler(this)}_setupMouseWheelZoomListener(){const e=J2.INSTANCE;let t=0,i=Kl.getZoomLevel(),s=!1,o=0;const r=l=>{if(this.viewController.emitMouseWheel(l),!this._context.configuration.options.get(76))return;const c=new u0(l);if(e.acceptStandardWheelEvent(c),e.isPhysicalMouseWheel()){if(a(l)){const d=Kl.getZoomLevel(),u=c.deltaY>0?1:-1;Kl.setZoomLevel(d+u),c.preventDefault(),c.stopPropagation()}}else Date.now()-t>50&&(i=Kl.getZoomLevel(),s=a(l),o=0),t=Date.now(),o+=c.deltaY,s&&(Kl.setZoomLevel(i+o/5),c.preventDefault(),c.stopPropagation())};this._register(ce(this.viewHelper.viewDomNode,Le.MOUSE_WHEEL,r,{capture:!0,passive:!1}));function a(l){return Xt?(l.metaKey||l.ctrlKey)&&!l.shiftKey&&!l.altKey:l.ctrlKey&&!l.metaKey&&!l.shiftKey&&!l.altKey}}dispose(){this._context.removeEventHandler(this),this._mouseLeaveMonitor&&(this._mouseLeaveMonitor.dispose(),this._mouseLeaveMonitor=null),super.dispose()}onConfigurationChanged(e){if(e.hasChanged(145)){const t=this._context.configuration.options.get(145).height;this._height!==t&&(this._height=t,this._mouseDownOperation.onHeightChanged())}return!1}onCursorStateChanged(e){return this._mouseDownOperation.onCursorStateChanged(e),!1}onFocusChanged(e){return!1}getTargetAtClientPoint(e,t){const s=new Yle(e,t).toPageCoordinates(gt(this.viewHelper.viewDomNode)),o=Tz(this.viewHelper.viewDomNode);if(s.yo.y+o.height||s.xo.x+o.width)return null;const r=Nz(this.viewHelper.viewDomNode,o,s);return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),o,s,r,null)}_createMouseTarget(e,t){let i=e.target;if(!this.viewHelper.viewDomNode.contains(i)){const s=h0(this.viewHelper.viewDomNode);s&&(i=s.elementsFromPoint(e.posx,e.posy).find(o=>this.viewHelper.viewDomNode.contains(o)))}return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),e.editorPos,e.pos,e.relativePos,t?i:null)}_getMouseColumn(e){return this.mouseTargetFactory.getMouseColumn(e.relativePos)}_onContextMenu(e,t){this.viewController.emitContextMenu({event:e,target:this._createMouseTarget(e,t)})}_onMouseMove(e){this.mouseTargetFactory.mouseTargetIsWidget(e)||e.preventDefault(),!(this._mouseDownOperation.isActive()||e.timestamp{e.preventDefault(),this.viewHelper.focusTextArea()};if(d&&(s||r&&a))u(),this._mouseDownOperation.start(i.type,e,t);else if(o)e.preventDefault();else if(l){const h=i.detail;d&&this.viewHelper.shouldSuppressMouseDownOnViewZone(h.viewZoneId)&&(u(),this._mouseDownOperation.start(i.type,e,t),e.preventDefault())}else c&&this.viewHelper.shouldSuppressMouseDownOnWidget(i.detail)&&(u(),e.preventDefault());this.viewController.emitMouseDown({event:e,target:i})}}class b3e extends ne{constructor(e,t,i,s,o,r){super(),this._context=e,this._viewController=t,this._viewHelper=i,this._mouseTargetFactory=s,this._createMouseTarget=o,this._getMouseColumn=r,this._mouseMoveMonitor=this._register(new j5e(this._viewHelper.viewDomNode)),this._topBottomDragScrolling=this._register(new C3e(this._context,this._viewHelper,this._mouseTargetFactory,(a,l,c)=>this._dispatchMouse(a,l,c))),this._mouseState=new PM,this._currentSelection=new it(1,1,1,1),this._isActive=!1,this._lastMouseEvent=null}dispose(){super.dispose()}isActive(){return this._isActive}_onMouseDownThenMove(e){this._lastMouseEvent=e,this._mouseState.setModifiers(e);const t=this._findMousePosition(e,!1);t&&(this._mouseState.isDragAndDrop?this._viewController.emitMouseDrag({event:e,target:t}):t.type===13&&(t.outsidePosition==="above"||t.outsidePosition==="below")?this._topBottomDragScrolling.start(t,e):(this._topBottomDragScrolling.stop(),this._dispatchMouse(t,!0,1)))}start(e,t,i){this._lastMouseEvent=t,this._mouseState.setStartedOnLineNumbers(e===3),this._mouseState.setStartButtons(t),this._mouseState.setModifiers(t);const s=this._findMousePosition(t,!0);if(!s||!s.position)return;this._mouseState.trySetCount(t.detail,s.position),t.detail=this._mouseState.count;const o=this._context.configuration.options;if(!o.get(91)&&o.get(35)&&!o.get(22)&&!this._mouseState.altKey&&t.detail<2&&!this._isActive&&!this._currentSelection.isEmpty()&&s.type===6&&s.position&&this._currentSelection.containsPosition(s.position)){this._mouseState.isDragAndDrop=!0,this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,i,t.buttons,r=>this._onMouseDownThenMove(r),r=>{const a=this._findMousePosition(this._lastMouseEvent,!1);Np(r)?this._viewController.emitMouseDropCanceled():this._viewController.emitMouseDrop({event:this._lastMouseEvent,target:a?this._createMouseTarget(this._lastMouseEvent,!0):null}),this._stop()});return}this._mouseState.isDragAndDrop=!1,this._dispatchMouse(s,t.shiftKey,1),this._isActive||(this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,i,t.buttons,r=>this._onMouseDownThenMove(r),()=>this._stop()))}_stop(){this._isActive=!1,this._topBottomDragScrolling.stop()}onHeightChanged(){this._mouseMoveMonitor.stopMonitoring()}onPointerUp(){this._mouseMoveMonitor.stopMonitoring()}onCursorStateChanged(e){this._currentSelection=e.selections[0]}_getPositionOutsideEditor(e){const t=e.editorPos,i=this._context.viewModel,s=this._context.viewLayout,o=this._getMouseColumn(e);if(e.posyt.y+t.height){const a=e.posy-t.y-t.height,l=s.getCurrentScrollTop()+e.relativePos.y,c=VC.getZoneAtCoord(this._context,l);if(c){const u=this._helpPositionJumpOverViewZone(c);if(u)return dr.createOutsideEditor(o,u,"below",a)}const d=s.getLineNumberAtVerticalOffset(l);return dr.createOutsideEditor(o,new ee(d,i.getLineMaxColumn(d)),"below",a)}const r=s.getLineNumberAtVerticalOffset(s.getCurrentScrollTop()+e.relativePos.y);if(e.posxt.x+t.width){const a=e.posx-t.x-t.width;return dr.createOutsideEditor(o,new ee(r,i.getLineMaxColumn(r)),"right",a)}return null}_findMousePosition(e,t){const i=this._getPositionOutsideEditor(e);if(i)return i;const s=this._createMouseTarget(e,t);if(!s.position)return null;if(s.type===8||s.type===5){const r=this._helpPositionJumpOverViewZone(s.detail);if(r)return dr.createViewZone(s.type,s.element,s.mouseColumn,r,s.detail)}return s}_helpPositionJumpOverViewZone(e){const t=new ee(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),i=e.positionBefore,s=e.positionAfter;return i&&s?i.isBefore(t)?i:s:null}_dispatchMouse(e,t,i){e.position&&this._viewController.dispatchMouse({position:e.position,mouseColumn:e.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,revealType:i,inSelectionMode:t,mouseDownCount:this._mouseState.count,altKey:this._mouseState.altKey,ctrlKey:this._mouseState.ctrlKey,metaKey:this._mouseState.metaKey,shiftKey:this._mouseState.shiftKey,leftButton:this._mouseState.leftButton,middleButton:this._mouseState.middleButton,onInjectedText:e.type===6&&e.detail.injectedText!==null})}}class C3e extends ne{constructor(e,t,i,s){super(),this._context=e,this._viewHelper=t,this._mouseTargetFactory=i,this._dispatchMouse=s,this._operation=null}dispose(){super.dispose(),this.stop()}start(e,t){this._operation?this._operation.setPosition(e,t):this._operation=new w3e(this._context,this._viewHelper,this._mouseTargetFactory,this._dispatchMouse,e,t)}stop(){this._operation&&(this._operation.dispose(),this._operation=null)}}class w3e extends ne{constructor(e,t,i,s,o,r){super(),this._context=e,this._viewHelper=t,this._mouseTargetFactory=i,this._dispatchMouse=s,this._position=o,this._mouseEvent=r,this._lastTime=Date.now(),this._animationFrameDisposable=Oa(gt(r.browserEvent),()=>this._execute())}dispose(){this._animationFrameDisposable.dispose(),super.dispose()}setPosition(e,t){this._position=e,this._mouseEvent=t}_tick(){const e=Date.now(),t=e-this._lastTime;return this._lastTime=e,t}_getScrollSpeed(){const e=this._context.configuration.options.get(67),t=this._context.configuration.options.get(145).height/e,i=this._position.outsideDistance/e;return i<=1.5?Math.max(30,t*(1+i)):i<=3?Math.max(60,t*(2+i)):Math.max(200,t*(7+i))}_execute(){const e=this._context.configuration.options.get(67),t=this._getScrollSpeed(),i=this._tick(),s=t*(i/1e3)*e,o=this._position.outsidePosition==="above"?-s:s;this._context.viewModel.viewLayout.deltaScrollNow(0,o),this._viewHelper.renderNow();const r=this._context.viewLayout.getLinesViewportData(),a=this._position.outsidePosition==="above"?r.startLineNumber:r.endLineNumber;let l;{const c=Tz(this._viewHelper.viewDomNode),d=this._context.configuration.options.get(145).horizontalScrollbarHeight,u=new AM(this._mouseEvent.pos.x,c.y+c.height-d-.1),h=Nz(this._viewHelper.viewDomNode,c,u);l=this._mouseTargetFactory.createMouseTarget(this._viewHelper.getLastRenderData(),c,u,h,null)}(!l.position||l.position.lineNumber!==a)&&(this._position.outsidePosition==="above"?l=dr.createOutsideEditor(this._position.mouseColumn,new ee(a,1),"above",this._position.outsideDistance):l=dr.createOutsideEditor(this._position.mouseColumn,new ee(a,this._context.viewModel.getLineMaxColumn(a)),"below",this._position.outsideDistance)),this._dispatchMouse(l,!0,2),this._animationFrameDisposable=Oa(gt(l.element),()=>this._execute())}}class PM{get altKey(){return this._altKey}get ctrlKey(){return this._ctrlKey}get metaKey(){return this._metaKey}get shiftKey(){return this._shiftKey}get leftButton(){return this._leftButton}get middleButton(){return this._middleButton}get startedOnLineNumbers(){return this._startedOnLineNumbers}constructor(){this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._leftButton=!1,this._middleButton=!1,this._startedOnLineNumbers=!1,this._lastMouseDownPosition=null,this._lastMouseDownPositionEqualCount=0,this._lastMouseDownCount=0,this._lastSetMouseDownCountTime=0,this.isDragAndDrop=!1}get count(){return this._lastMouseDownCount}setModifiers(e){this._altKey=e.altKey,this._ctrlKey=e.ctrlKey,this._metaKey=e.metaKey,this._shiftKey=e.shiftKey}setStartButtons(e){this._leftButton=e.leftButton,this._middleButton=e.middleButton}setStartedOnLineNumbers(e){this._startedOnLineNumbers=e}trySetCount(e,t){const i=new Date().getTime();i-this._lastSetMouseDownCountTime>PM.CLEAR_MOUSE_DOWN_COUNT_TIME&&(e=1),this._lastSetMouseDownCountTime=i,e>this._lastMouseDownCount+1&&(e=this._lastMouseDownCount+1),this._lastMouseDownPosition&&this._lastMouseDownPosition.equals(t)?this._lastMouseDownPositionEqualCount++:this._lastMouseDownPositionEqualCount=1,this._lastMouseDownPosition=t,this._lastMouseDownCount=Math.min(e,this._lastMouseDownPositionEqualCount)}}PM.CLEAR_MOUSE_DOWN_COUNT_TIME=400;class ei{get event(){return this.emitter.event}constructor(e,t,i){const s=o=>this.emitter.fire(o);this.emitter=new X({onWillAddFirstListener:()=>e.addEventListener(t,s,i),onDidRemoveLastListener:()=>e.removeEventListener(t,s,i)})}dispose(){this.emitter.dispose()}}class mo{constructor(e,t,i,s,o){this.value=e,this.selectionStart=t,this.selectionEnd=i,this.selection=s,this.newlineCountBeforeSelection=o}toString(){return`[ <${this.value}>, selectionStart: ${this.selectionStart}, selectionEnd: ${this.selectionEnd}]`}static readFromTextArea(e,t){const i=e.getValue(),s=e.getSelectionStart(),o=e.getSelectionEnd();let r;if(t){const a=i.substring(0,s),l=t.value.substring(0,t.selectionStart);a===l&&(r=t.newlineCountBeforeSelection)}return new mo(i,s,o,null,r)}collapseSelection(){return this.selectionStart===this.value.length?this:new mo(this.value,this.value.length,this.value.length,null,void 0)}writeToTextArea(e,t,i){t.setValue(e,this.value),i&&t.setSelectionRange(e,this.selectionStart,this.selectionEnd)}deduceEditorPosition(e){var t,i,s,o,r,a,l,c;if(e<=this.selectionStart){const h=this.value.substring(e,this.selectionStart);return this._finishDeduceEditorPosition((i=(t=this.selection)===null||t===void 0?void 0:t.getStartPosition())!==null&&i!==void 0?i:null,h,-1)}if(e>=this.selectionEnd){const h=this.value.substring(this.selectionEnd,e);return this._finishDeduceEditorPosition((o=(s=this.selection)===null||s===void 0?void 0:s.getEndPosition())!==null&&o!==void 0?o:null,h,1)}const d=this.value.substring(this.selectionStart,e);if(d.indexOf("…")===-1)return this._finishDeduceEditorPosition((a=(r=this.selection)===null||r===void 0?void 0:r.getStartPosition())!==null&&a!==void 0?a:null,d,1);const u=this.value.substring(e,this.selectionEnd);return this._finishDeduceEditorPosition((c=(l=this.selection)===null||l===void 0?void 0:l.getEndPosition())!==null&&c!==void 0?c:null,u,-1)}_finishDeduceEditorPosition(e,t,i){let s=0,o=-1;for(;(o=t.indexOf(` `,o+1))!==-1;)s++;return[e,i*t.length,s]}static deduceInput(e,t,i){if(!e)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};const s=Math.min(Rm(e.value,t.value),e.selectionStart,t.selectionStart),o=Math.min(M2(e.value,t.value),e.value.length-e.selectionEnd,t.value.length-t.selectionEnd);e.value.substring(s,e.value.length-o);const r=t.value.substring(s,t.value.length-o),a=e.selectionStart-s,l=e.selectionEnd-s,c=t.selectionStart-s,d=t.selectionEnd-s;if(c===d){const h=e.selectionStart-s;return{text:r,replacePrevCharCnt:h,replaceNextCharCnt:0,positionDelta:0}}const u=l-a;return{text:r,replacePrevCharCnt:u,replaceNextCharCnt:0,positionDelta:0}}static deduceAndroidCompositionInput(e,t){if(!e)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};if(e.value===t.value)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:t.selectionEnd-e.selectionEnd};const i=Math.min(Rm(e.value,t.value),e.selectionEnd),s=Math.min(M2(e.value,t.value),e.value.length-e.selectionEnd),o=e.value.substring(i,e.value.length-s),r=t.value.substring(i,t.value.length-s);e.selectionStart-i;const a=e.selectionEnd-i;t.selectionStart-i;const l=t.selectionEnd-i;return{text:r,replacePrevCharCnt:a,replaceNextCharCnt:o.length-a,positionDelta:l-r.length}}}mo.EMPTY=new mo("",0,0,null,void 0);class x1{static _getPageOfLine(e,t){return Math.floor((e-1)/t)}static _getRangeForPage(e,t){const i=e*t,s=i+1,o=i+t;return new A(s,1,o+1,1)}static fromEditorSelection(e,t,i,s){const r=x1._getPageOfLine(t.startLineNumber,i),a=x1._getRangeForPage(r,i),l=x1._getPageOfLine(t.endLineNumber,i),c=x1._getRangeForPage(l,i);let d=a.intersectRanges(new A(1,1,t.startLineNumber,t.startColumn));if(s&&e.getValueLengthInRange(d,1)>500){const b=e.modifyPosition(d.getEndPosition(),-500);d=A.fromPositions(b,d.getEndPosition())}const u=e.getValueInRange(d,1),h=e.getLineCount(),f=e.getLineMaxColumn(h);let g=c.intersectRanges(new A(t.endLineNumber,t.endColumn,h,f));if(s&&e.getValueLengthInRange(g,1)>500){const b=e.modifyPosition(g.getStartPosition(),500);g=A.fromPositions(g.getStartPosition(),b)}const p=e.getValueInRange(g,1);let _;if(r===l||r+1===l)_=e.getValueInRange(t,1);else{const b=a.intersectRanges(t),w=c.intersectRanges(t);_=e.getValueInRange(b,1)+"…"+e.getValueInRange(w,1)}return s&&_.length>2*500&&(_=_.substring(0,500)+"…"+_.substring(_.length-500,_.length)),new mo(u+_+p,u.length,u.length+_.length,t,d.endLineNumber-d.startLineNumber)}}var y3e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},HX=function(n,e){return function(t,i){e(t,i,n)}},eA;(function(n){n.Tap="-monaco-textarea-synthetic-tap"})(eA||(eA={}));const NB={forceCopyWithSyntaxHighlighting:!1};class EL{constructor(){this._lastState=null}set(e,t){this._lastState={lastCopiedValue:e,data:t}}get(e){return this._lastState&&this._lastState.lastCopiedValue===e?this._lastState.data:(this._lastState=null,null)}}EL.INSTANCE=new EL;class S3e{constructor(){this._lastTypeTextLength=0}handleCompositionUpdate(e){e=e||"";const t={text:e,replacePrevCharCnt:this._lastTypeTextLength,replaceNextCharCnt:0,positionDelta:0};return this._lastTypeTextLength=e.length,t}}let AB=class extends ne{get textAreaState(){return this._textAreaState}constructor(e,t,i,s,o,r){super(),this._host=e,this._textArea=t,this._OS=i,this._browser=s,this._accessibilityService=o,this._logService=r,this._onFocus=this._register(new X),this.onFocus=this._onFocus.event,this._onBlur=this._register(new X),this.onBlur=this._onBlur.event,this._onKeyDown=this._register(new X),this.onKeyDown=this._onKeyDown.event,this._onKeyUp=this._register(new X),this.onKeyUp=this._onKeyUp.event,this._onCut=this._register(new X),this.onCut=this._onCut.event,this._onPaste=this._register(new X),this.onPaste=this._onPaste.event,this._onType=this._register(new X),this.onType=this._onType.event,this._onCompositionStart=this._register(new X),this.onCompositionStart=this._onCompositionStart.event,this._onCompositionUpdate=this._register(new X),this.onCompositionUpdate=this._onCompositionUpdate.event,this._onCompositionEnd=this._register(new X),this.onCompositionEnd=this._onCompositionEnd.event,this._onSelectionChangeRequest=this._register(new X),this.onSelectionChangeRequest=this._onSelectionChangeRequest.event,this._asyncFocusGainWriteScreenReaderContent=this._register(new Qs),this._asyncTriggerCut=this._register(new Xi(()=>this._onCut.fire(),0)),this._textAreaState=mo.EMPTY,this._selectionChangeListener=null,this._accessibilityService.isScreenReaderOptimized()&&this.writeNativeTextAreaContent("ctor"),this._register(Ae.runAndSubscribe(this._accessibilityService.onDidChangeScreenReaderOptimized,()=>{this._accessibilityService.isScreenReaderOptimized()&&!this._asyncFocusGainWriteScreenReaderContent.value?this._asyncFocusGainWriteScreenReaderContent.value=this._register(new Xi(()=>this.writeNativeTextAreaContent("asyncFocusGain"),0)):this._asyncFocusGainWriteScreenReaderContent.clear()})),this._hasFocus=!1,this._currentComposition=null;let a=null;this._register(this._textArea.onKeyDown(l=>{const c=new ln(l);(c.keyCode===114||this._currentComposition&&c.keyCode===1)&&c.stopPropagation(),c.equals(9)&&c.preventDefault(),a=c,this._onKeyDown.fire(c)})),this._register(this._textArea.onKeyUp(l=>{const c=new ln(l);this._onKeyUp.fire(c)})),this._register(this._textArea.onCompositionStart(l=>{const c=new S3e;if(this._currentComposition){this._currentComposition=c;return}if(this._currentComposition=c,this._OS===2&&a&&a.equals(114)&&this._textAreaState.selectionStart===this._textAreaState.selectionEnd&&this._textAreaState.selectionStart>0&&this._textAreaState.value.substr(this._textAreaState.selectionStart-1,1)===l.data&&(a.code==="ArrowRight"||a.code==="ArrowLeft")){c.handleCompositionUpdate("x"),this._onCompositionStart.fire({data:l.data});return}if(this._browser.isAndroid){this._onCompositionStart.fire({data:l.data});return}this._onCompositionStart.fire({data:l.data})})),this._register(this._textArea.onCompositionUpdate(l=>{const c=this._currentComposition;if(!c)return;if(this._browser.isAndroid){const u=mo.readFromTextArea(this._textArea,this._textAreaState),h=mo.deduceAndroidCompositionInput(this._textAreaState,u);this._textAreaState=u,this._onType.fire(h),this._onCompositionUpdate.fire(l);return}const d=c.handleCompositionUpdate(l.data);this._textAreaState=mo.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(d),this._onCompositionUpdate.fire(l)})),this._register(this._textArea.onCompositionEnd(l=>{const c=this._currentComposition;if(!c)return;if(this._currentComposition=null,this._browser.isAndroid){const u=mo.readFromTextArea(this._textArea,this._textAreaState),h=mo.deduceAndroidCompositionInput(this._textAreaState,u);this._textAreaState=u,this._onType.fire(h),this._onCompositionEnd.fire();return}const d=c.handleCompositionUpdate(l.data);this._textAreaState=mo.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(d),this._onCompositionEnd.fire()})),this._register(this._textArea.onInput(l=>{if(this._textArea.setIgnoreSelectionChangeTime("received input event"),this._currentComposition)return;const c=mo.readFromTextArea(this._textArea,this._textAreaState),d=mo.deduceInput(this._textAreaState,c,this._OS===2);d.replacePrevCharCnt===0&&d.text.length===1&&(Gs(d.text.charCodeAt(0))||d.text.charCodeAt(0)===127)||(this._textAreaState=c,(d.text!==""||d.replacePrevCharCnt!==0||d.replaceNextCharCnt!==0||d.positionDelta!==0)&&this._onType.fire(d))})),this._register(this._textArea.onCut(l=>{this._textArea.setIgnoreSelectionChangeTime("received cut event"),this._ensureClipboardGetsEditorSelection(l),this._asyncTriggerCut.schedule()})),this._register(this._textArea.onCopy(l=>{this._ensureClipboardGetsEditorSelection(l)})),this._register(this._textArea.onPaste(l=>{if(this._textArea.setIgnoreSelectionChangeTime("received paste event"),l.preventDefault(),!l.clipboardData)return;let[c,d]=RB.getTextData(l.clipboardData);c&&(d=d||EL.INSTANCE.get(c),this._onPaste.fire({text:c,metadata:d}))})),this._register(this._textArea.onFocus(()=>{const l=this._hasFocus;this._setHasFocus(!0),this._accessibilityService.isScreenReaderOptimized()&&this._browser.isSafari&&!l&&this._hasFocus&&(this._asyncFocusGainWriteScreenReaderContent.value||(this._asyncFocusGainWriteScreenReaderContent.value=new Xi(()=>this.writeNativeTextAreaContent("asyncFocusGain"),0)),this._asyncFocusGainWriteScreenReaderContent.value.schedule())})),this._register(this._textArea.onBlur(()=>{this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent("blurWithoutCompositionEnd"),this._onCompositionEnd.fire()),this._setHasFocus(!1)})),this._register(this._textArea.onSyntheticTap(()=>{this._browser.isAndroid&&this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent("tapWithoutCompositionEnd"),this._onCompositionEnd.fire())}))}_installSelectionChangeListener(){let e=0;return ce(this._textArea.ownerDocument,"selectionchange",t=>{if(Up.onSelectionChange(),!this._hasFocus||this._currentComposition||!this._browser.isChrome)return;const i=Date.now(),s=i-e;if(e=i,s<5)return;const o=i-this._textArea.getIgnoreSelectionChangeTime();if(this._textArea.resetSelectionChangeTime(),o<100||!this._textAreaState.selection)return;const r=this._textArea.getValue();if(this._textAreaState.value!==r)return;const a=this._textArea.getSelectionStart(),l=this._textArea.getSelectionEnd();if(this._textAreaState.selectionStart===a&&this._textAreaState.selectionEnd===l)return;const c=this._textAreaState.deduceEditorPosition(a),d=this._host.deduceModelPosition(c[0],c[1],c[2]),u=this._textAreaState.deduceEditorPosition(l),h=this._host.deduceModelPosition(u[0],u[1],u[2]),f=new it(d.lineNumber,d.column,h.lineNumber,h.column);this._onSelectionChangeRequest.fire(f)})}dispose(){super.dispose(),this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null)}focusTextArea(){this._setHasFocus(!0),this.refreshFocusState()}isFocused(){return this._hasFocus}refreshFocusState(){this._setHasFocus(this._textArea.hasFocus())}_setHasFocus(e){this._hasFocus!==e&&(this._hasFocus=e,this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null),this._hasFocus&&(this._selectionChangeListener=this._installSelectionChangeListener()),this._hasFocus&&this.writeNativeTextAreaContent("focusgain"),this._hasFocus?this._onFocus.fire():this._onBlur.fire())}_setAndWriteTextAreaState(e,t){this._hasFocus||(t=t.collapseSelection()),t.writeToTextArea(e,this._textArea,this._hasFocus),this._textAreaState=t}writeNativeTextAreaContent(e){!this._accessibilityService.isScreenReaderOptimized()&&e==="render"||this._currentComposition||(this._logService.trace(`writeTextAreaState(reason: ${e})`),this._setAndWriteTextAreaState(e,this._host.getScreenReaderContent()))}_ensureClipboardGetsEditorSelection(e){const t=this._host.getDataToCopy(),i={version:1,isFromEmptySelection:t.isFromEmptySelection,multicursorText:t.multicursorText,mode:t.mode};EL.INSTANCE.set(this._browser.isFirefox?t.text.replace(/\r\n/g,` `):t.text,i),e.preventDefault(),e.clipboardData&&RB.setTextData(e.clipboardData,t.text,t.html,i)}};AB=y3e([HX(4,Ha),HX(5,er)],AB);const RB={getTextData(n){const e=n.getData(ss.text);let t=null;const i=n.getData("vscode-editor-data");if(typeof i=="string")try{t=JSON.parse(i),t.version!==1&&(t=null)}catch{}return e.length===0&&t===null&&n.files.length>0?[Array.prototype.slice.call(n.files,0).map(o=>o.name).join(` `),null]:[e,t]},setTextData(n,e,t,i){n.setData(ss.text,e),typeof t=="string"&&n.setData("text/html",t),n.setData("vscode-editor-data",JSON.stringify(i))}};class x3e extends ne{get ownerDocument(){return this._actual.ownerDocument}constructor(e){super(),this._actual=e,this.onKeyDown=this._register(new ei(this._actual,"keydown")).event,this.onKeyUp=this._register(new ei(this._actual,"keyup")).event,this.onCompositionStart=this._register(new ei(this._actual,"compositionstart")).event,this.onCompositionUpdate=this._register(new ei(this._actual,"compositionupdate")).event,this.onCompositionEnd=this._register(new ei(this._actual,"compositionend")).event,this.onBeforeInput=this._register(new ei(this._actual,"beforeinput")).event,this.onInput=this._register(new ei(this._actual,"input")).event,this.onCut=this._register(new ei(this._actual,"cut")).event,this.onCopy=this._register(new ei(this._actual,"copy")).event,this.onPaste=this._register(new ei(this._actual,"paste")).event,this.onFocus=this._register(new ei(this._actual,"focus")).event,this.onBlur=this._register(new ei(this._actual,"blur")).event,this._onSyntheticTap=this._register(new X),this.onSyntheticTap=this._onSyntheticTap.event,this._ignoreSelectionChangeTime=0,this._register(this.onKeyDown(()=>Up.onKeyDown())),this._register(this.onBeforeInput(()=>Up.onBeforeInput())),this._register(this.onInput(()=>Up.onInput())),this._register(this.onKeyUp(()=>Up.onKeyUp())),this._register(ce(this._actual,eA.Tap,()=>this._onSyntheticTap.fire()))}hasFocus(){const e=h0(this._actual);return e?e.activeElement===this._actual:this._actual.isConnected?Ao()===this._actual:!1}setIgnoreSelectionChangeTime(e){this._ignoreSelectionChangeTime=Date.now()}getIgnoreSelectionChangeTime(){return this._ignoreSelectionChangeTime}resetSelectionChangeTime(){this._ignoreSelectionChangeTime=0}getValue(){return this._actual.value}setValue(e,t){const i=this._actual;i.value!==t&&(this.setIgnoreSelectionChangeTime("setValue"),i.value=t)}getSelectionStart(){return this._actual.selectionDirection==="backward"?this._actual.selectionEnd:this._actual.selectionStart}getSelectionEnd(){return this._actual.selectionDirection==="backward"?this._actual.selectionStart:this._actual.selectionEnd}setSelectionRange(e,t,i){const s=this._actual;let o=null;const r=h0(s);r?o=r.activeElement:o=Ao();const a=gt(o),l=o===s,c=s.selectionStart,d=s.selectionEnd;if(l&&c===t&&d===i){lc&&a.parent!==a&&s.focus();return}if(l){this.setIgnoreSelectionChangeTime("setSelectionRange"),s.setSelectionRange(t,i),lc&&a.parent!==a&&s.focus();return}try{const u=NMe(s);this.setIgnoreSelectionChangeTime("setSelectionRange"),s.focus(),s.setSelectionRange(t,i),AMe(s,u)}catch{}}}class L3e extends Mz{constructor(e,t,i){super(e,t,i),this._register(hn.addTarget(this.viewHelper.linesContentDomNode)),this._register(ce(this.viewHelper.linesContentDomNode,fn.Tap,o=>this.onTap(o))),this._register(ce(this.viewHelper.linesContentDomNode,fn.Change,o=>this.onChange(o))),this._register(ce(this.viewHelper.linesContentDomNode,fn.Contextmenu,o=>this._onContextMenu(new Wm(o,!1,this.viewHelper.viewDomNode),!1))),this._lastPointerType="mouse",this._register(ce(this.viewHelper.linesContentDomNode,"pointerdown",o=>{const r=o.pointerType;if(r==="mouse"){this._lastPointerType="mouse";return}else r==="touch"?this._lastPointerType="touch":this._lastPointerType="pen"}));const s=new U5e(this.viewHelper.viewDomNode);this._register(s.onPointerMove(this.viewHelper.viewDomNode,o=>this._onMouseMove(o))),this._register(s.onPointerUp(this.viewHelper.viewDomNode,o=>this._onMouseUp(o))),this._register(s.onPointerLeave(this.viewHelper.viewDomNode,o=>this._onMouseLeave(o))),this._register(s.onPointerDown(this.viewHelper.viewDomNode,(o,r)=>this._onMouseDown(o,r)))}onTap(e){!e.initialTarget||!this.viewHelper.linesContentDomNode.contains(e.initialTarget)||(e.preventDefault(),this.viewHelper.focusTextArea(),this._dispatchGesture(e,!1))}onChange(e){this._lastPointerType==="touch"&&this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY),this._lastPointerType==="pen"&&this._dispatchGesture(e,!0)}_dispatchGesture(e,t){const i=this._createMouseTarget(new Wm(e,!1,this.viewHelper.viewDomNode),!1);i.position&&this.viewController.dispatchMouse({position:i.position,mouseColumn:i.position.column,startedOnLineNumbers:!1,revealType:1,mouseDownCount:e.tapCount,inSelectionMode:t,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1,leftButton:!1,middleButton:!1,onInjectedText:i.type===6&&i.detail.injectedText!==null})}_onMouseDown(e,t){e.browserEvent.pointerType!=="touch"&&super._onMouseDown(e,t)}}class k3e extends Mz{constructor(e,t,i){super(e,t,i),this._register(hn.addTarget(this.viewHelper.linesContentDomNode)),this._register(ce(this.viewHelper.linesContentDomNode,fn.Tap,s=>this.onTap(s))),this._register(ce(this.viewHelper.linesContentDomNode,fn.Change,s=>this.onChange(s))),this._register(ce(this.viewHelper.linesContentDomNode,fn.Contextmenu,s=>this._onContextMenu(new Wm(s,!1,this.viewHelper.viewDomNode),!1)))}onTap(e){e.preventDefault(),this.viewHelper.focusTextArea();const t=this._createMouseTarget(new Wm(e,!1,this.viewHelper.viewDomNode),!1);if(t.position){const i=document.createEvent("CustomEvent");i.initEvent(eA.Tap,!1,!0),this.viewHelper.dispatchTextAreaEvent(i),this.viewController.moveTo(t.position,1)}}onChange(e){this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)}}class D3e extends ne{constructor(e,t,i){super(),(iu||k2e&&qre)&&XV.pointerEvents?this.handler=this._register(new L3e(e,t,i)):Ji.TouchEvent?this.handler=this._register(new k3e(e,t,i)):this.handler=this._register(new Mz(e,t,i))}getTargetAtClientPoint(e,t){return this.handler.getTargetAtClientPoint(e,t)}}class X0 extends CD{}const js=Jt("themeService");function Yn(n){return{id:n}}function MB(n){switch(n){case Jl.DARK:return"vs-dark";case Jl.HIGH_CONTRAST_DARK:return"hc-black";case Jl.HIGH_CONTRAST_LIGHT:return"hc-light";default:return"vs"}}const ice={ThemingContribution:"base.contributions.theming"};class I3e{constructor(){this.themingParticipants=[],this.themingParticipants=[],this.onThemingParticipantAddedEmitter=new X}onColorThemeChange(e){return this.themingParticipants.push(e),this.onThemingParticipantAddedEmitter.fire(e),dt(()=>{const t=this.themingParticipants.indexOf(e);this.themingParticipants.splice(t,1)})}getThemingParticipants(){return this.themingParticipants}}const nce=new I3e;Un.add(ice.ThemingContribution,nce);function mc(n){return nce.onColorThemeChange(n)}class E3e extends ne{constructor(e){super(),this.themeService=e,this.theme=e.getColorTheme(),this._register(this.themeService.onDidColorThemeChange(t=>this.onThemeChange(t)))}onThemeChange(e){this.theme=e,this.updateStyles()}updateStyles(){}}const sce=V("editor.lineHighlightBackground",{dark:null,light:null,hcDark:null,hcLight:null},v("lineHighlight","Background color for the highlight of line at the cursor position.")),VX=V("editor.lineHighlightBorder",{dark:"#282828",light:"#eeeeee",hcDark:"#f38518",hcLight:ti},v("lineHighlightBorderBox","Background color for the border around the line at the cursor position."));V("editor.rangeHighlightBackground",{dark:"#ffffff0b",light:"#fdff0033",hcDark:null,hcLight:null},v("rangeHighlight","Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations."),!0);V("editor.rangeHighlightBorder",{dark:null,light:null,hcDark:En,hcLight:En},v("rangeHighlightBorder","Background color of the border around highlighted ranges."));V("editor.symbolHighlightBackground",{dark:Jf,light:Jf,hcDark:null,hcLight:null},v("symbolHighlight","Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations."),!0);V("editor.symbolHighlightBorder",{dark:null,light:null,hcDark:En,hcLight:En},v("symbolHighlightBorder","Background color of the border around highlighted symbols."));const uh=V("editorCursor.foreground",{dark:"#AEAFAD",light:le.black,hcDark:le.white,hcLight:"#0F4A85"},v("caret","Color of the editor cursor.")),og=V("editorCursor.background",null,v("editorCursorBackground","The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.")),oce=V("editorMultiCursor.primary.foreground",{dark:uh,light:uh,hcDark:uh,hcLight:uh},v("editorMultiCursorPrimaryForeground","Color of the primary editor cursor when multiple cursors are present.")),T3e=V("editorMultiCursor.primary.background",{dark:og,light:og,hcDark:og,hcLight:og},v("editorMultiCursorPrimaryBackground","The background color of the primary editor cursor when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.")),rce=V("editorMultiCursor.secondary.foreground",{dark:uh,light:uh,hcDark:uh,hcLight:uh},v("editorMultiCursorSecondaryForeground","Color of secondary editor cursors when multiple cursors are present.")),N3e=V("editorMultiCursor.secondary.background",{dark:og,light:og,hcDark:og,hcLight:og},v("editorMultiCursorSecondaryBackground","The background color of secondary editor cursors when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.")),rg=V("editorWhitespace.foreground",{dark:"#e3e4e229",light:"#33333333",hcDark:"#e3e4e229",hcLight:"#CCCCCC"},v("editorWhitespaces","Color of whitespace characters in the editor.")),A3e=V("editorLineNumber.foreground",{dark:"#858585",light:"#237893",hcDark:le.white,hcLight:"#292929"},v("editorLineNumbers","Color of editor line numbers.")),PE=V("editorIndentGuide.background",{dark:rg,light:rg,hcDark:rg,hcLight:rg},v("editorIndentGuides","Color of the editor indentation guides."),!1,v("deprecatedEditorIndentGuides","'editorIndentGuide.background' is deprecated. Use 'editorIndentGuide.background1' instead.")),OE=V("editorIndentGuide.activeBackground",{dark:rg,light:rg,hcDark:rg,hcLight:rg},v("editorActiveIndentGuide","Color of the active editor indentation guides."),!1,v("deprecatedEditorActiveIndentGuide","'editorIndentGuide.activeBackground' is deprecated. Use 'editorIndentGuide.activeBackground1' instead.")),yD=V("editorIndentGuide.background1",{dark:PE,light:PE,hcDark:PE,hcLight:PE},v("editorIndentGuides1","Color of the editor indentation guides (1).")),R3e=V("editorIndentGuide.background2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorIndentGuides2","Color of the editor indentation guides (2).")),M3e=V("editorIndentGuide.background3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorIndentGuides3","Color of the editor indentation guides (3).")),P3e=V("editorIndentGuide.background4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorIndentGuides4","Color of the editor indentation guides (4).")),O3e=V("editorIndentGuide.background5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorIndentGuides5","Color of the editor indentation guides (5).")),F3e=V("editorIndentGuide.background6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorIndentGuides6","Color of the editor indentation guides (6).")),SD=V("editorIndentGuide.activeBackground1",{dark:OE,light:OE,hcDark:OE,hcLight:OE},v("editorActiveIndentGuide1","Color of the active editor indentation guides (1).")),B3e=V("editorIndentGuide.activeBackground2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorActiveIndentGuide2","Color of the active editor indentation guides (2).")),W3e=V("editorIndentGuide.activeBackground3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorActiveIndentGuide3","Color of the active editor indentation guides (3).")),H3e=V("editorIndentGuide.activeBackground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorActiveIndentGuide4","Color of the active editor indentation guides (4).")),V3e=V("editorIndentGuide.activeBackground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorActiveIndentGuide5","Color of the active editor indentation guides (5).")),z3e=V("editorIndentGuide.activeBackground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorActiveIndentGuide6","Color of the active editor indentation guides (6).")),FE=V("editorActiveLineNumber.foreground",{dark:"#c6c6c6",light:"#0B216F",hcDark:En,hcLight:En},v("editorActiveLineNumber","Color of editor active line number"),!1,v("deprecatedEditorActiveLineNumber","Id is deprecated. Use 'editorLineNumber.activeForeground' instead."));V("editorLineNumber.activeForeground",{dark:FE,light:FE,hcDark:FE,hcLight:FE},v("editorActiveLineNumber","Color of editor active line number"));const $3e=V("editorLineNumber.dimmedForeground",{dark:null,light:null,hcDark:null,hcLight:null},v("editorDimmedLineNumber","Color of the final editor line when editor.renderFinalNewline is set to dimmed."));V("editorRuler.foreground",{dark:"#5A5A5A",light:le.lightgrey,hcDark:le.white,hcLight:"#292929"},v("editorRuler","Color of the editor rulers."));V("editorCodeLens.foreground",{dark:"#999999",light:"#919191",hcDark:"#999999",hcLight:"#292929"},v("editorCodeLensForeground","Foreground color of editor CodeLens"));V("editorBracketMatch.background",{dark:"#0064001a",light:"#0064001a",hcDark:"#0064001a",hcLight:"#0000"},v("editorBracketMatchBackground","Background color behind matching brackets"));V("editorBracketMatch.border",{dark:"#888",light:"#B9B9B9",hcDark:ti,hcLight:ti},v("editorBracketMatchBorder","Color for matching brackets boxes"));const U3e=V("editorOverviewRuler.border",{dark:"#7f7f7f4d",light:"#7f7f7f4d",hcDark:"#7f7f7f4d",hcLight:"#666666"},v("editorOverviewRulerBorder","Color of the overview ruler border.")),j3e=V("editorOverviewRuler.background",null,v("editorOverviewRulerBackground","Background color of the editor overview ruler."));V("editorGutter.background",{dark:Ys,light:Ys,hcDark:Ys,hcLight:Ys},v("editorGutter","Background color of the editor gutter. The gutter contains the glyph margins and the line numbers."));V("editorUnnecessaryCode.border",{dark:null,light:null,hcDark:le.fromHex("#fff").transparent(.8),hcLight:ti},v("unnecessaryCodeBorder","Border color of unnecessary (unused) source code in the editor."));const K3e=V("editorUnnecessaryCode.opacity",{dark:le.fromHex("#000a"),light:le.fromHex("#0007"),hcDark:null,hcLight:null},v("unnecessaryCodeOpacity",`Opacity of unnecessary (unused) source code in the editor. For example, "#000000c0" will render the code with 75% opacity. For high contrast themes, use the 'editorUnnecessaryCode.border' theme color to underline unnecessary code instead of fading it out.`));V("editorGhostText.border",{dark:null,light:null,hcDark:le.fromHex("#fff").transparent(.8),hcLight:le.fromHex("#292929").transparent(.8)},v("editorGhostTextBorder","Border color of ghost text in the editor."));V("editorGhostText.foreground",{dark:le.fromHex("#ffffff56"),light:le.fromHex("#0007"),hcDark:null,hcLight:null},v("editorGhostTextForeground","Foreground color of the ghost text in the editor."));V("editorGhostText.background",{dark:null,light:null,hcDark:null,hcLight:null},v("editorGhostTextBackground","Background color of the ghost text in the editor."));const BE=new le(new ci(0,122,204,.6)),ace=V("editorOverviewRuler.rangeHighlightForeground",{dark:BE,light:BE,hcDark:BE,hcLight:BE},v("overviewRulerRangeHighlight","Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations."),!0),q3e=V("editorOverviewRuler.errorForeground",{dark:new le(new ci(255,18,18,.7)),light:new le(new ci(255,18,18,.7)),hcDark:new le(new ci(255,50,50,1)),hcLight:"#B5200D"},v("overviewRuleError","Overview ruler marker color for errors.")),G3e=V("editorOverviewRuler.warningForeground",{dark:hr,light:hr,hcDark:LL,hcLight:LL},v("overviewRuleWarning","Overview ruler marker color for warnings.")),Z3e=V("editorOverviewRuler.infoForeground",{dark:sa,light:sa,hcDark:kL,hcLight:kL},v("overviewRuleInfo","Overview ruler marker color for infos.")),lce=V("editorBracketHighlight.foreground1",{dark:"#FFD700",light:"#0431FAFF",hcDark:"#FFD700",hcLight:"#0431FAFF"},v("editorBracketHighlightForeground1","Foreground color of brackets (1). Requires enabling bracket pair colorization.")),cce=V("editorBracketHighlight.foreground2",{dark:"#DA70D6",light:"#319331FF",hcDark:"#DA70D6",hcLight:"#319331FF"},v("editorBracketHighlightForeground2","Foreground color of brackets (2). Requires enabling bracket pair colorization.")),dce=V("editorBracketHighlight.foreground3",{dark:"#179FFF",light:"#7B3814FF",hcDark:"#87CEFA",hcLight:"#7B3814FF"},v("editorBracketHighlightForeground3","Foreground color of brackets (3). Requires enabling bracket pair colorization.")),uce=V("editorBracketHighlight.foreground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorBracketHighlightForeground4","Foreground color of brackets (4). Requires enabling bracket pair colorization.")),hce=V("editorBracketHighlight.foreground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorBracketHighlightForeground5","Foreground color of brackets (5). Requires enabling bracket pair colorization.")),fce=V("editorBracketHighlight.foreground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorBracketHighlightForeground6","Foreground color of brackets (6). Requires enabling bracket pair colorization.")),Y3e=V("editorBracketHighlight.unexpectedBracket.foreground",{dark:new le(new ci(255,18,18,.8)),light:new le(new ci(255,18,18,.8)),hcDark:new le(new ci(255,50,50,1)),hcLight:""},v("editorBracketHighlightUnexpectedBracketForeground","Foreground color of unexpected brackets.")),X3e=V("editorBracketPairGuide.background1",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorBracketPairGuide.background1","Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides.")),Q3e=V("editorBracketPairGuide.background2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorBracketPairGuide.background2","Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides.")),J3e=V("editorBracketPairGuide.background3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorBracketPairGuide.background3","Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides.")),e8e=V("editorBracketPairGuide.background4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorBracketPairGuide.background4","Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides.")),t8e=V("editorBracketPairGuide.background5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorBracketPairGuide.background5","Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides.")),i8e=V("editorBracketPairGuide.background6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorBracketPairGuide.background6","Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides.")),n8e=V("editorBracketPairGuide.activeBackground1",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorBracketPairGuide.activeBackground1","Background color of active bracket pair guides (1). Requires enabling bracket pair guides.")),s8e=V("editorBracketPairGuide.activeBackground2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorBracketPairGuide.activeBackground2","Background color of active bracket pair guides (2). Requires enabling bracket pair guides.")),o8e=V("editorBracketPairGuide.activeBackground3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorBracketPairGuide.activeBackground3","Background color of active bracket pair guides (3). Requires enabling bracket pair guides.")),r8e=V("editorBracketPairGuide.activeBackground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorBracketPairGuide.activeBackground4","Background color of active bracket pair guides (4). Requires enabling bracket pair guides.")),a8e=V("editorBracketPairGuide.activeBackground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorBracketPairGuide.activeBackground5","Background color of active bracket pair guides (5). Requires enabling bracket pair guides.")),l8e=V("editorBracketPairGuide.activeBackground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},v("editorBracketPairGuide.activeBackground6","Background color of active bracket pair guides (6). Requires enabling bracket pair guides."));V("editorUnicodeHighlight.border",{dark:hr,light:hr,hcDark:hr,hcLight:hr},v("editorUnicodeHighlight.border","Border color used to highlight unicode characters."));V("editorUnicodeHighlight.background",{dark:NE,light:NE,hcDark:NE,hcLight:NE},v("editorUnicodeHighlight.background","Background color used to highlight unicode characters."));mc((n,e)=>{const t=n.getColor(Ys),i=n.getColor(sce),s=i&&!i.isTransparent()?i:t;s&&e.addRule(`.monaco-editor .inputarea.ime-input { background-color: ${s}; }`)});class xD extends X0{constructor(e){super(),this._context=e,this._readConfig(),this._lastCursorModelPosition=new ee(1,1),this._renderResult=null,this._activeLineNumber=1,this._context.addEventHandler(this)}_readConfig(){const e=this._context.configuration.options;this._lineHeight=e.get(67);const t=e.get(68);this._renderLineNumbers=t.renderType,this._renderCustomLineNumbers=t.renderFn,this._renderFinalNewline=e.get(95);const i=e.get(145);this._lineNumbersLeft=i.lineNumbersLeft,this._lineNumbersWidth=i.lineNumbersWidth}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){return this._readConfig(),!0}onCursorStateChanged(e){const t=e.selections[0].getPosition();this._lastCursorModelPosition=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(t);let i=!1;return this._activeLineNumber!==t.lineNumber&&(this._activeLineNumber=t.lineNumber,i=!0),(this._renderLineNumbers===2||this._renderLineNumbers===3)&&(i=!0),i}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}onDecorationsChanged(e){return e.affectsLineNumber}_getLineRenderLineNumber(e){const t=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new ee(e,1));if(t.column!==1)return"";const i=t.lineNumber;if(this._renderCustomLineNumbers)return this._renderCustomLineNumbers(i);if(this._renderLineNumbers===2){const s=Math.abs(this._lastCursorModelPosition.lineNumber-i);return s===0?''+i+"":String(s)}if(this._renderLineNumbers===3){if(this._lastCursorModelPosition.lineNumber===i||i%10===0)return String(i);const s=this._context.viewModel.getLineCount();return i===s?String(i):""}return String(i)}prepareRender(e){if(this._renderLineNumbers===0){this._renderResult=null;return}const t=Br?this._lineHeight%2===0?" lh-even":" lh-odd":"",i=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber,o=this._context.viewModel.getDecorationsInViewport(e.visibleRange).filter(c=>!!c.options.lineNumberClassName);o.sort((c,d)=>A.compareRangesUsingEnds(c.range,d.range));let r=0;const a=this._context.viewModel.getLineCount(),l=[];for(let c=i;c<=s;c++){const d=c-i;let u=this._getLineRenderLineNumber(c),h="";for(;r${u}`}this._renderResult=l}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}xD.CLASS_NAME="line-numbers";mc((n,e)=>{const t=n.getColor(A3e),i=n.getColor($3e);i?e.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${i}; }`):t&&e.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${t.transparent(.4)}; }`)});class p0 extends Va{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(145);this._canUseLayerHinting=!t.get(32),this._contentLeft=i.contentLeft,this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,this._domNode=Di(document.createElement("div")),this._domNode.setClassName(p0.OUTER_CLASS_NAME),this._domNode.setPosition("absolute"),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._glyphMarginBackgroundDomNode=Di(document.createElement("div")),this._glyphMarginBackgroundDomNode.setClassName(p0.CLASS_NAME),this._domNode.appendChild(this._glyphMarginBackgroundDomNode)}dispose(){super.dispose()}getDomNode(){return this._domNode}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(145);return this._canUseLayerHinting=!t.get(32),this._contentLeft=i.contentLeft,this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollTopChanged}prepareRender(e){}render(e){this._domNode.setLayerHinting(this._canUseLayerHinting),this._domNode.setContain("strict");const t=e.scrollTop-e.bigNumbersDelta;this._domNode.setTop(-t);const i=Math.min(e.scrollHeight,1e6);this._domNode.setHeight(i),this._domNode.setWidth(this._contentLeft),this._glyphMarginBackgroundDomNode.setLeft(this._glyphMarginLeft),this._glyphMarginBackgroundDomNode.setWidth(this._glyphMarginWidth),this._glyphMarginBackgroundDomNode.setHeight(i)}}p0.CLASS_NAME="glyph-margin";p0.OUTER_CLASS_NAME="margin";const J1="monaco-mouse-cursor-text";class c8e{constructor(){this._onDidChange=new X,this.onDidChange=this._onDidChange.event,this._enabled=!0}get enabled(){return this._enabled}enable(){this._enabled=!0,this._onDidChange.fire()}disable(){this._enabled=!1,this._onDidChange.fire()}}const ux=new c8e,Li=Jt("keybindingService");var d8e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},zX=function(n,e){return function(t,i){e(t,i,n)}};class u8e{constructor(e,t,i,s,o){this._context=e,this.modelLineNumber=t,this.distanceToModelLineStart=i,this.widthOfHiddenLineTextBefore=s,this.distanceToModelLineEnd=o,this._visibleTextAreaBrand=void 0,this.startPosition=null,this.endPosition=null,this.visibleTextareaStart=null,this.visibleTextareaEnd=null,this._previousPresentation=null}prepareRender(e){const t=new ee(this.modelLineNumber,this.distanceToModelLineStart+1),i=new ee(this.modelLineNumber,this._context.viewModel.model.getLineMaxColumn(this.modelLineNumber)-this.distanceToModelLineEnd);this.startPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(t),this.endPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i),this.startPosition.lineNumber===this.endPosition.lineNumber?(this.visibleTextareaStart=e.visibleRangeForPosition(this.startPosition),this.visibleTextareaEnd=e.visibleRangeForPosition(this.endPosition)):(this.visibleTextareaStart=null,this.visibleTextareaEnd=null)}definePresentation(e){return this._previousPresentation||(e?this._previousPresentation=e:this._previousPresentation={foreground:1,italic:!1,bold:!1,underline:!1,strikethrough:!1}),this._previousPresentation}}const t5=lc;let PB=class extends Va{constructor(e,t,i,s,o){super(e),this._keybindingService=s,this._instantiationService=o,this._primaryCursorPosition=new ee(1,1),this._primaryCursorVisibleRange=null,this._viewController=t,this._visibleRangeProvider=i,this._scrollLeft=0,this._scrollTop=0;const r=this._context.configuration.options,a=r.get(145);this._setAccessibilityOptions(r),this._contentLeft=a.contentLeft,this._contentWidth=a.contentWidth,this._contentHeight=a.height,this._fontInfo=r.get(50),this._lineHeight=r.get(67),this._emptySelectionClipboard=r.get(37),this._copyWithSyntaxHighlighting=r.get(25),this._visibleTextArea=null,this._selections=[new it(1,1,1,1)],this._modelSelections=[new it(1,1,1,1)],this._lastRenderPosition=null,this.textArea=Di(document.createElement("textarea")),ru.write(this.textArea,7),this.textArea.setClassName(`inputarea ${J1}`),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off");const{tabSize:l}=this._context.viewModel.model.getOptions();this.textArea.domNode.style.tabSize=`${l*this._fontInfo.spaceWidth}px`,this.textArea.setAttribute("autocorrect","off"),this.textArea.setAttribute("autocapitalize","off"),this.textArea.setAttribute("autocomplete","off"),this.textArea.setAttribute("spellcheck","false"),this.textArea.setAttribute("aria-label",this._getAriaLabel(r)),this.textArea.setAttribute("aria-required",r.get(5)?"true":"false"),this.textArea.setAttribute("tabindex",String(r.get(124))),this.textArea.setAttribute("role","textbox"),this.textArea.setAttribute("aria-roledescription",v("editor","editor")),this.textArea.setAttribute("aria-multiline","true"),this.textArea.setAttribute("aria-autocomplete",r.get(91)?"none":"both"),this._ensureReadOnlyAttribute(),this.textAreaCover=Di(document.createElement("div")),this.textAreaCover.setPosition("absolute");const c={getLineCount:()=>this._context.viewModel.getLineCount(),getLineMaxColumn:h=>this._context.viewModel.getLineMaxColumn(h),getValueInRange:(h,f)=>this._context.viewModel.getValueInRange(h,f),getValueLengthInRange:(h,f)=>this._context.viewModel.getValueLengthInRange(h,f),modifyPosition:(h,f)=>this._context.viewModel.modifyPosition(h,f)},d={getDataToCopy:()=>{const h=this._context.viewModel.getPlainTextToCopy(this._modelSelections,this._emptySelectionClipboard,Mo),f=this._context.viewModel.model.getEOL(),g=this._emptySelectionClipboard&&this._modelSelections.length===1&&this._modelSelections[0].isEmpty(),p=Array.isArray(h)?h:null,_=Array.isArray(h)?h.join(f):h;let b,w=null;if(NB.forceCopyWithSyntaxHighlighting||this._copyWithSyntaxHighlighting&&_.length<65536){const y=this._context.viewModel.getRichTextToCopy(this._modelSelections,this._emptySelectionClipboard);y&&(b=y.html,w=y.mode)}return{isFromEmptySelection:g,multicursorText:p,text:_,html:b,mode:w}},getScreenReaderContent:()=>{if(this._accessibilitySupport===1){const h=this._selections[0];if(Xt&&h.isEmpty()){const g=h.getStartPosition();let p=this._getWordBeforePosition(g);if(p.length===0&&(p=this._getCharacterBeforePosition(g)),p.length>0)return new mo(p,p.length,p.length,A.fromPositions(g),0)}if(Xt&&!h.isEmpty()&&c.getValueLengthInRange(h,0)<500){const g=c.getValueInRange(h,0);return new mo(g,0,g.length,h,0)}if(Pm&&!h.isEmpty()){const g="vscode-placeholder";return new mo(g,0,g.length,null,void 0)}return mo.EMPTY}if(dY){const h=this._selections[0];if(h.isEmpty()){const f=h.getStartPosition(),[g,p]=this._getAndroidWordAtPosition(f);if(g.length>0)return new mo(g,p,p,A.fromPositions(f),0)}return mo.EMPTY}return x1.fromEditorSelection(c,this._selections[0],this._accessibilityPageSize,this._accessibilitySupport===0)},deduceModelPosition:(h,f,g)=>this._context.viewModel.deduceModelPositionRelativeToViewPosition(h,f,g)},u=this._register(new x3e(this.textArea.domNode));this._textAreaInput=this._register(this._instantiationService.createInstance(AB,d,u,Da,{isAndroid:dY,isChrome:dD,isFirefox:lc,isSafari:Pm})),this._register(this._textAreaInput.onKeyDown(h=>{this._viewController.emitKeyDown(h)})),this._register(this._textAreaInput.onKeyUp(h=>{this._viewController.emitKeyUp(h)})),this._register(this._textAreaInput.onPaste(h=>{let f=!1,g=null,p=null;h.metadata&&(f=this._emptySelectionClipboard&&!!h.metadata.isFromEmptySelection,g=typeof h.metadata.multicursorText<"u"?h.metadata.multicursorText:null,p=h.metadata.mode),this._viewController.paste(h.text,f,g,p)})),this._register(this._textAreaInput.onCut(()=>{this._viewController.cut()})),this._register(this._textAreaInput.onType(h=>{h.replacePrevCharCnt||h.replaceNextCharCnt||h.positionDelta?this._viewController.compositionType(h.text,h.replacePrevCharCnt,h.replaceNextCharCnt,h.positionDelta):this._viewController.type(h.text)})),this._register(this._textAreaInput.onSelectionChangeRequest(h=>{this._viewController.setSelection(h)})),this._register(this._textAreaInput.onCompositionStart(h=>{const f=this.textArea.domNode,g=this._modelSelections[0],{distanceToModelLineStart:p,widthOfHiddenTextBefore:_}=(()=>{const w=f.value.substring(0,Math.min(f.selectionStart,f.selectionEnd)),y=w.lastIndexOf(` `),S=w.substring(y+1),x=S.lastIndexOf(" "),k=S.length-x-1,D=g.getStartPosition(),I=Math.min(D.column-1,k),N=D.column-1-I,P=S.substring(0,S.length-I),{tabSize:O}=this._context.viewModel.model.getOptions(),M=h8e(this.textArea.domNode.ownerDocument,P,this._fontInfo,O);return{distanceToModelLineStart:N,widthOfHiddenTextBefore:M}})(),{distanceToModelLineEnd:b}=(()=>{const w=f.value.substring(Math.max(f.selectionStart,f.selectionEnd)),y=w.indexOf(` `),S=y===-1?w:w.substring(0,y),x=S.indexOf(" "),k=x===-1?S.length:S.length-x-1,D=g.getEndPosition(),I=Math.min(this._context.viewModel.model.getLineMaxColumn(D.lineNumber)-D.column,k);return{distanceToModelLineEnd:this._context.viewModel.model.getLineMaxColumn(D.lineNumber)-D.column-I}})();this._context.viewModel.revealRange("keyboard",!0,A.fromPositions(this._selections[0].getStartPosition()),0,1),this._visibleTextArea=new u8e(this._context,g.startLineNumber,p,_,b),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off"),this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render(),this.textArea.setClassName(`inputarea ${J1} ime-input`),this._viewController.compositionStart(),this._context.viewModel.onCompositionStart()})),this._register(this._textAreaInput.onCompositionUpdate(h=>{this._visibleTextArea&&(this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render())})),this._register(this._textAreaInput.onCompositionEnd(()=>{this._visibleTextArea=null,this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off"),this._render(),this.textArea.setClassName(`inputarea ${J1}`),this._viewController.compositionEnd(),this._context.viewModel.onCompositionEnd()})),this._register(this._textAreaInput.onFocus(()=>{this._context.viewModel.setHasFocus(!0)})),this._register(this._textAreaInput.onBlur(()=>{this._context.viewModel.setHasFocus(!1)})),this._register(ux.onDidChange(()=>{this._ensureReadOnlyAttribute()}))}writeScreenReaderContent(e){this._textAreaInput.writeNativeTextAreaContent(e)}dispose(){super.dispose()}_getAndroidWordAtPosition(e){const t='`~!@#$%^&*()-=+[{]}\\|;:",.<>/?',i=this._context.viewModel.getLineContent(e.lineNumber),s=cc(t,[]);let o=!0,r=e.column,a=!0,l=e.column,c=0;for(;c<50&&(o||a);){if(o&&r<=1&&(o=!1),o){const d=i.charCodeAt(r-2);s.get(d)!==0?o=!1:r--}if(a&&l>i.length&&(a=!1),a){const d=i.charCodeAt(l-1);s.get(d)!==0?a=!1:l++}c++}return[i.substring(r-1,l-1),e.column-r]}_getWordBeforePosition(e){const t=this._context.viewModel.getLineContent(e.lineNumber),i=cc(this._context.configuration.options.get(131),[]);let s=e.column,o=0;for(;s>1;){const r=t.charCodeAt(s-2);if(i.get(r)!==0||o>50)return t.substring(s-1,e.column-1);o++,s--}return t.substring(0,e.column-1)}_getCharacterBeforePosition(e){if(e.column>1){const i=this._context.viewModel.getLineContent(e.lineNumber).charAt(e.column-2);if(!Gs(i.charCodeAt(0)))return i}return""}_getAriaLabel(e){var t,i,s;if(e.get(2)===1){const r=(t=this._keybindingService.lookupKeybinding("editor.action.toggleScreenReaderAccessibilityMode"))===null||t===void 0?void 0:t.getAriaLabel(),a=(i=this._keybindingService.lookupKeybinding("workbench.action.showCommands"))===null||i===void 0?void 0:i.getAriaLabel(),l=(s=this._keybindingService.lookupKeybinding("workbench.action.openGlobalKeybindings"))===null||s===void 0?void 0:s.getAriaLabel(),c=v("accessibilityModeOff","The editor is not accessible at this time.");return r?v("accessibilityOffAriaLabel","{0} To enable screen reader optimized mode, use {1}",c,r):a?v("accessibilityOffAriaLabelNoKb","{0} To enable screen reader optimized mode, open the quick pick with {1} and run the command Toggle Screen Reader Accessibility Mode, which is currently not triggerable via keyboard.",c,a):l?v("accessibilityOffAriaLabelNoKbs","{0} Please assign a keybinding for the command Toggle Screen Reader Accessibility Mode by accessing the keybindings editor with {1} and run it.",c,l):c}return e.get(4)}_setAccessibilityOptions(e){this._accessibilitySupport=e.get(2);const t=e.get(3);this._accessibilitySupport===2&&t===gu.accessibilityPageSize.defaultValue?this._accessibilityPageSize=500:this._accessibilityPageSize=t;const s=e.get(145).wrappingColumn;if(s!==-1&&this._accessibilitySupport!==1){const o=e.get(50);this._textAreaWrapping=!0,this._textAreaWidth=Math.round(s*o.typicalHalfwidthCharacterWidth)}else this._textAreaWrapping=!1,this._textAreaWidth=t5?0:1}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(145);this._setAccessibilityOptions(t),this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._contentHeight=i.height,this._fontInfo=t.get(50),this._lineHeight=t.get(67),this._emptySelectionClipboard=t.get(37),this._copyWithSyntaxHighlighting=t.get(25),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off");const{tabSize:s}=this._context.viewModel.model.getOptions();return this.textArea.domNode.style.tabSize=`${s*this._fontInfo.spaceWidth}px`,this.textArea.setAttribute("aria-label",this._getAriaLabel(t)),this.textArea.setAttribute("aria-required",t.get(5)?"true":"false"),this.textArea.setAttribute("tabindex",String(t.get(124))),(e.hasChanged(34)||e.hasChanged(91))&&this._ensureReadOnlyAttribute(),e.hasChanged(2)&&this._textAreaInput.writeNativeTextAreaContent("strategy changed"),!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),this._modelSelections=e.modelSelections.slice(0),this._textAreaInput.writeNativeTextAreaContent("selection changed"),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return this._scrollLeft=e.scrollLeft,this._scrollTop=e.scrollTop,!0}onZonesChanged(e){return!0}isFocused(){return this._textAreaInput.isFocused()}focusTextArea(){this._textAreaInput.focusTextArea()}getLastRenderData(){return this._lastRenderPosition}setAriaOptions(e){e.activeDescendant?(this.textArea.setAttribute("aria-haspopup","true"),this.textArea.setAttribute("aria-autocomplete","list"),this.textArea.setAttribute("aria-activedescendant",e.activeDescendant)):(this.textArea.setAttribute("aria-haspopup","false"),this.textArea.setAttribute("aria-autocomplete","both"),this.textArea.removeAttribute("aria-activedescendant")),e.role&&this.textArea.setAttribute("role",e.role)}_ensureReadOnlyAttribute(){const e=this._context.configuration.options;!ux.enabled||e.get(34)&&e.get(91)?this.textArea.setAttribute("readonly","true"):this.textArea.removeAttribute("readonly")}prepareRender(e){var t;this._primaryCursorPosition=new ee(this._selections[0].positionLineNumber,this._selections[0].positionColumn),this._primaryCursorVisibleRange=e.visibleRangeForPosition(this._primaryCursorPosition),(t=this._visibleTextArea)===null||t===void 0||t.prepareRender(e)}render(e){this._textAreaInput.writeNativeTextAreaContent("render"),this._render()}_render(){var e;if(this._visibleTextArea){const s=this._visibleTextArea.visibleTextareaStart,o=this._visibleTextArea.visibleTextareaEnd,r=this._visibleTextArea.startPosition,a=this._visibleTextArea.endPosition;if(r&&a&&s&&o&&o.left>=this._scrollLeft&&s.left<=this._scrollLeft+this._contentWidth){const l=this._context.viewLayout.getVerticalOffsetForLineNumber(this._primaryCursorPosition.lineNumber)-this._scrollTop,c=this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));let d=this._visibleTextArea.widthOfHiddenLineTextBefore,u=this._contentLeft+s.left-this._scrollLeft,h=o.left-s.left+1;if(uthis._contentWidth&&(h=this._contentWidth);const f=this._context.viewModel.getViewLineData(r.lineNumber),g=f.tokens.findTokenIndexAtOffset(r.column-1),p=f.tokens.findTokenIndexAtOffset(a.column-1),_=g===p,b=this._visibleTextArea.definePresentation(_?f.tokens.getPresentation(g):null);this.textArea.domNode.scrollTop=c*this._lineHeight,this.textArea.domNode.scrollLeft=d,this._doRender({lastRenderPosition:null,top:l,left:u,width:h,height:this._lineHeight,useCover:!1,color:(Zn.getColorMap()||[])[b.foreground],italic:b.italic,bold:b.bold,underline:b.underline,strikethrough:b.strikethrough})}return}if(!this._primaryCursorVisibleRange){this._renderAtTopLeft();return}const t=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(tthis._contentLeft+this._contentWidth){this._renderAtTopLeft();return}const i=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop;if(i<0||i>this._contentHeight){this._renderAtTopLeft();return}if(Xt||this._accessibilitySupport===2){this._doRender({lastRenderPosition:this._primaryCursorPosition,top:i,left:this._textAreaWrapping?this._contentLeft:t,width:this._textAreaWidth,height:this._lineHeight,useCover:!1}),this.textArea.domNode.scrollLeft=this._primaryCursorVisibleRange.left;const s=(e=this._textAreaInput.textAreaState.newlineCountBeforeSelection)!==null&&e!==void 0?e:this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));this.textArea.domNode.scrollTop=s*this._lineHeight;return}this._doRender({lastRenderPosition:this._primaryCursorPosition,top:i,left:this._textAreaWrapping?this._contentLeft:t,width:this._textAreaWidth,height:t5?0:1,useCover:!1})}_newlinecount(e){let t=0,i=-1;do{if(i=e.indexOf(` `,i+1),i===-1)break;t++}while(!0);return t}_renderAtTopLeft(){this._doRender({lastRenderPosition:null,top:0,left:0,width:this._textAreaWidth,height:t5?0:1,useCover:!0})}_doRender(e){this._lastRenderPosition=e.lastRenderPosition;const t=this.textArea,i=this.textAreaCover;So(t,this._fontInfo),t.setTop(e.top),t.setLeft(e.left),t.setWidth(e.width),t.setHeight(e.height),t.setColor(e.color?le.Format.CSS.formatHex(e.color):""),t.setFontStyle(e.italic?"italic":""),e.bold&&t.setFontWeight("bold"),t.setTextDecoration(`${e.underline?" underline":""}${e.strikethrough?" line-through":""}`),i.setTop(e.useCover?e.top:0),i.setLeft(e.useCover?e.left:0),i.setWidth(e.useCover?e.width:0),i.setHeight(e.useCover?e.height:0);const s=this._context.configuration.options;s.get(57)?i.setClassName("monaco-editor-background textAreaCover "+p0.OUTER_CLASS_NAME):s.get(68).renderType!==0?i.setClassName("monaco-editor-background textAreaCover "+xD.CLASS_NAME):i.setClassName("monaco-editor-background textAreaCover")}};PB=d8e([zX(3,Li),zX(4,ht)],PB);function h8e(n,e,t,i){if(e.length===0)return 0;const s=n.createElement("div");s.style.position="absolute",s.style.top="-50000px",s.style.width="50000px";const o=n.createElement("span");So(o,t),o.style.whiteSpace="pre",o.style.tabSize=`${i*t.spaceWidth}px`,o.append(e),s.appendChild(o),n.body.appendChild(s);const r=o.offsetWidth;return n.body.removeChild(s),r}function f8e(n,e,t){let i=0;for(let o=0;o!0,p8e=()=>!1,m8e=n=>n===" "||n===" ";class Ob{static shouldRecreate(e){return e.hasChanged(145)||e.hasChanged(131)||e.hasChanged(37)||e.hasChanged(77)||e.hasChanged(79)||e.hasChanged(80)||e.hasChanged(6)||e.hasChanged(7)||e.hasChanged(11)||e.hasChanged(9)||e.hasChanged(10)||e.hasChanged(14)||e.hasChanged(128)||e.hasChanged(50)||e.hasChanged(91)||e.hasChanged(130)}constructor(e,t,i,s){var o;this.languageConfigurationService=s,this._cursorMoveConfigurationBrand=void 0,this._languageId=e;const r=i.options,a=r.get(145),l=r.get(50);this.readOnly=r.get(91),this.tabSize=t.tabSize,this.indentSize=t.indentSize,this.insertSpaces=t.insertSpaces,this.stickyTabStops=r.get(116),this.lineHeight=l.lineHeight,this.typicalHalfwidthCharacterWidth=l.typicalHalfwidthCharacterWidth,this.pageSize=Math.max(1,Math.floor(a.height/this.lineHeight)-2),this.useTabStops=r.get(128),this.wordSeparators=r.get(131),this.emptySelectionClipboard=r.get(37),this.copyWithSyntaxHighlighting=r.get(25),this.multiCursorMergeOverlapping=r.get(77),this.multiCursorPaste=r.get(79),this.multiCursorLimit=r.get(80),this.autoClosingBrackets=r.get(6),this.autoClosingComments=r.get(7),this.autoClosingQuotes=r.get(11),this.autoClosingDelete=r.get(9),this.autoClosingOvertype=r.get(10),this.autoSurround=r.get(14),this.autoIndent=r.get(12),this.wordSegmenterLocales=r.get(130),this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:this._getShouldAutoClose(e,this.autoClosingQuotes,!0),comment:this._getShouldAutoClose(e,this.autoClosingComments,!1),bracket:this._getShouldAutoClose(e,this.autoClosingBrackets,!1)},this.autoClosingPairs=this.languageConfigurationService.getLanguageConfiguration(e).getAutoClosingPairs();const c=this.languageConfigurationService.getLanguageConfiguration(e).getSurroundingPairs();if(c)for(const u of c)this.surroundingPairs[u.open]=u.close;const d=this.languageConfigurationService.getLanguageConfiguration(e).comments;this.blockCommentStartToken=(o=d==null?void 0:d.blockCommentStartToken)!==null&&o!==void 0?o:null}get electricChars(){var e;if(!this._electricChars){this._electricChars={};const t=(e=this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter)===null||e===void 0?void 0:e.getElectricCharacters();if(t)for(const i of t)this._electricChars[i]=!0}return this._electricChars}onElectricCharacter(e,t,i){const s=xv(t,i-1),o=this.languageConfigurationService.getLanguageConfiguration(s.languageId).electricCharacter;return o?o.onElectricCharacter(e,s,i-s.firstCharOffset):null}normalizeIndentation(e){return Pz(e,this.indentSize,this.insertSpaces)}_getShouldAutoClose(e,t,i){switch(t){case"beforeWhitespace":return m8e;case"languageDefined":return this._getLanguageDefinedShouldAutoClose(e,i);case"always":return g8e;case"never":return p8e}}_getLanguageDefinedShouldAutoClose(e,t){const i=this.languageConfigurationService.getLanguageConfiguration(e).getAutoCloseBeforeSet(t);return s=>i.indexOf(s)!==-1}visibleColumnFromColumn(e,t){return zs.visibleColumnFromColumn(e.getLineContent(t.lineNumber),t.column,this.tabSize)}columnFromVisibleColumn(e,t,i){const s=zs.columnFromVisibleColumn(e.getLineContent(t),i,this.tabSize),o=e.getLineMinColumn(t);if(sr?r:s}}let gi=class gce{static fromModelState(e){return new _8e(e)}static fromViewState(e){return new v8e(e)}static fromModelSelection(e){const t=it.liftSelection(e),i=new _o(A.fromPositions(t.getSelectionStart()),0,0,t.getPosition(),0);return gce.fromModelState(i)}static fromModelSelections(e){const t=[];for(let i=0,s=e.length;io,c=s>r,d=sr||bs||_0&&s--,mv.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,i.toViewLineNumber,s)}static columnSelectRight(e,t,i){let s=0;const o=Math.min(i.fromViewLineNumber,i.toViewLineNumber),r=Math.max(i.fromViewLineNumber,i.toViewLineNumber);for(let l=o;l<=r;l++){const c=t.getLineMaxColumn(l),d=e.visibleColumnFromColumn(t,new ee(l,c));s=Math.max(s,d)}let a=i.toViewVisualColumn;return ae.getLineMinColumn(t.lineNumber))return t.delta(void 0,-Cae(e.getLineContent(t.lineNumber),t.column-1));if(t.lineNumber>1){const i=t.lineNumber-1;return new ee(i,e.getLineMaxColumn(i))}else return t}static leftPositionAtomicSoftTabs(e,t,i){if(t.column<=e.getLineIndentColumn(t.lineNumber)){const s=e.getLineMinColumn(t.lineNumber),o=e.getLineContent(t.lineNumber),r=DL.atomicPosition(o,t.column-1,i,0);if(r!==-1&&r+1>=s)return new ee(t.lineNumber,r+1)}return this.leftPosition(e,t)}static left(e,t,i){const s=e.stickyTabStops?Mi.leftPositionAtomicSoftTabs(t,i,e.tabSize):Mi.leftPosition(t,i);return new i5(s.lineNumber,s.column,0)}static moveLeft(e,t,i,s,o){let r,a;if(i.hasSelection()&&!s)r=i.selection.startLineNumber,a=i.selection.startColumn;else{const l=i.position.delta(void 0,-(o-1)),c=t.normalizePosition(Mi.clipPositionColumn(l,t),0),d=Mi.left(e,t,c);r=d.lineNumber,a=d.column}return i.move(s,r,a,0)}static clipPositionColumn(e,t){return new ee(e.lineNumber,Mi.clipRange(e.column,t.getLineMinColumn(e.lineNumber),t.getLineMaxColumn(e.lineNumber)))}static clipRange(e,t,i){return ei?i:e}static rightPosition(e,t,i){return id?(i=d,a?s=t.getLineMaxColumn(i):s=Math.min(t.getLineMaxColumn(i),s)):s=e.columnFromVisibleColumn(t,i,c),f?o=0:o=c-zs.visibleColumnFromColumn(t.getLineContent(i),s,e.tabSize),l!==void 0){const g=new ee(i,s),p=t.normalizePosition(g,l);o=o+(s-p.column),i=p.lineNumber,s=p.column}return new i5(i,s,o)}static down(e,t,i,s,o,r,a){return this.vertical(e,t,i,s,o,i+r,a,4)}static moveDown(e,t,i,s,o){let r,a;i.hasSelection()&&!s?(r=i.selection.endLineNumber,a=i.selection.endColumn):(r=i.position.lineNumber,a=i.position.column);let l=0,c;do if(c=Mi.down(e,t,r+l,a,i.leftoverVisibleColumns,o,!0),t.normalizePosition(new ee(c.lineNumber,c.column),2).lineNumber>r)break;while(l++<10&&r+l1&&this._isBlankLine(t,o);)o--;for(;o>1&&!this._isBlankLine(t,o);)o--;return i.move(s,o,t.getLineMinColumn(o),0)}static moveToNextBlankLine(e,t,i,s){const o=t.getLineCount();let r=i.position.lineNumber;for(;r=h.length+1)return!1;const f=h.charAt(u.column-2),g=s.get(f);if(!g)return!1;if(vp(f)){if(i==="never")return!1}else if(t==="never")return!1;const p=h.charAt(u.column-1);let _=!1;for(const b of g)b.open===f&&b.close===p&&(_=!0);if(!_)return!1;if(e==="auto"){let b=!1;for(let w=0,y=a.length;w1){const o=t.getLineContent(s.lineNumber),r=fr(o),a=r===-1?o.length+1:r+1;if(s.column<=a){const l=i.visibleColumnFromColumn(t,s),c=zs.prevIndentTabStop(l,i.indentSize),d=i.columnFromVisibleColumn(t,s.lineNumber,c);return new A(s.lineNumber,d,s.lineNumber,s.column)}}return A.fromPositions(m0.getPositionAfterDeleteLeft(s,t),s)}static getPositionAfterDeleteLeft(e,t){if(e.column>1){const i=xRe(e.column-1,t.getLineContent(e.lineNumber));return e.with(void 0,i+1)}else if(e.lineNumber>1){const i=e.lineNumber-1;return new ee(i,t.getLineMaxColumn(i))}else return e}static cut(e,t,i){const s=[];let o=null;i.sort((r,a)=>ee.compare(r.getStartPosition(),a.getEndPosition()));for(let r=0,a=i.length;r1&&(o==null?void 0:o.endLineNumber)!==c.lineNumber?(d=c.lineNumber-1,u=t.getLineMaxColumn(c.lineNumber-1),h=c.lineNumber,f=t.getLineMaxColumn(c.lineNumber)):(d=c.lineNumber,u=1,h=c.lineNumber,f=t.getLineMaxColumn(c.lineNumber));const g=new A(d,u,h,f);o=g,g.isEmpty()?s[r]=null:s[r]=new Io(g,"")}else s[r]=null;else s[r]=new Io(l,"")}return new Zr(0,s,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}class ki{static _createWord(e,t,i,s,o){return{start:s,end:o,wordType:t,nextCharClass:i}}static _createIntlWord(e,t){return{start:e.index,end:e.index+e.segment.length,wordType:1,nextCharClass:t}}static _findPreviousWordOnLine(e,t,i){const s=t.getLineContent(i.lineNumber);return this._doFindPreviousWordOnLine(s,e,i)}static _doFindPreviousWordOnLine(e,t,i){let s=0;const o=t.findPrevIntlWordBeforeOrAtOffset(e,i.column-2);for(let r=i.column-2;r>=0;r--){const a=e.charCodeAt(r),l=t.get(a);if(o&&r===o.index)return this._createIntlWord(o,l);if(l===0){if(s===2)return this._createWord(e,s,l,r+1,this._findEndOfWord(e,t,s,r+1));s=1}else if(l===2){if(s===1)return this._createWord(e,s,l,r+1,this._findEndOfWord(e,t,s,r+1));s=2}else if(l===1&&s!==0)return this._createWord(e,s,l,r+1,this._findEndOfWord(e,t,s,r+1))}return s!==0?this._createWord(e,s,1,0,this._findEndOfWord(e,t,s,0)):null}static _findEndOfWord(e,t,i,s){const o=t.findNextIntlWordAtOrAfterOffset(e,s),r=e.length;for(let a=s;a=0;r--){const a=e.charCodeAt(r),l=t.get(a);if(o&&r===o.index)return r;if(l===1||i===1&&l===2||i===2&&l===0)return r+1}return 0}static moveWordLeft(e,t,i,s){let o=i.lineNumber,r=i.column;r===1&&o>1&&(o=o-1,r=t.getLineMaxColumn(o));let a=ki._findPreviousWordOnLine(e,t,new ee(o,r));if(s===0)return new ee(o,a?a.start+1:1);if(s===1)return a&&a.wordType===2&&a.end-a.start===1&&a.nextCharClass===0&&(a=ki._findPreviousWordOnLine(e,t,new ee(o,a.start+1))),new ee(o,a?a.start+1:1);if(s===3){for(;a&&a.wordType===2;)a=ki._findPreviousWordOnLine(e,t,new ee(o,a.start+1));return new ee(o,a?a.start+1:1)}return a&&r<=a.end+1&&(a=ki._findPreviousWordOnLine(e,t,new ee(o,a.start+1))),new ee(o,a?a.end+1:1)}static _moveWordPartLeft(e,t){const i=t.lineNumber,s=e.getLineMaxColumn(i);if(t.column===1)return i>1?new ee(i-1,e.getLineMaxColumn(i-1)):t;const o=e.getLineContent(i);for(let r=t.column-1;r>1;r--){const a=o.charCodeAt(r-2),l=o.charCodeAt(r-1);if(a===95&&l!==95)return new ee(i,r);if(a===45&&l!==45)return new ee(i,r);if((zp(a)||SE(a))&&Ku(l))return new ee(i,r);if(Ku(a)&&Ku(l)&&r+1=l.start+1&&(l=ki._findNextWordOnLine(e,t,new ee(o,l.end+1))),l?r=l.start+1:r=t.getLineMaxColumn(o);return new ee(o,r)}static _moveWordPartRight(e,t){const i=t.lineNumber,s=e.getLineMaxColumn(i);if(t.column===s)return i1?c=1:(l--,c=s.getLineMaxColumn(l)):(d&&c<=d.end+1&&(d=ki._findPreviousWordOnLine(i,s,new ee(l,d.start+1))),d?c=d.end+1:c>1?c=1:(l--,c=s.getLineMaxColumn(l))),new A(l,c,a.lineNumber,a.column)}static deleteInsideWord(e,t,i){if(!i.isEmpty())return i;const s=new ee(i.positionLineNumber,i.positionColumn),o=this._deleteInsideWordWhitespace(t,s);return o||this._deleteInsideWordDetermineDeleteRange(e,t,s)}static _charAtIsWhitespace(e,t){const i=e.charCodeAt(t);return i===32||i===9}static _deleteInsideWordWhitespace(e,t){const i=e.getLineContent(t.lineNumber),s=i.length;if(s===0)return null;let o=Math.max(t.column-2,0);if(!this._charAtIsWhitespace(i,o))return null;let r=Math.min(t.column-1,s-1);if(!this._charAtIsWhitespace(i,r))return null;for(;o>0&&this._charAtIsWhitespace(i,o-1);)o--;for(;r+11?new A(i.lineNumber-1,t.getLineMaxColumn(i.lineNumber-1),i.lineNumber,1):i.lineNumberu.start+1<=i.column&&i.column<=u.end+1,a=(u,h)=>(u=Math.min(u,i.column),h=Math.max(h,i.column),new A(i.lineNumber,u,i.lineNumber,h)),l=u=>{let h=u.start+1,f=u.end+1,g=!1;for(;f-11&&this._charAtIsWhitespace(s,h-2);)h--;return a(h,f)},c=ki._findPreviousWordOnLine(e,t,i);if(c&&r(c))return l(c);const d=ki._findNextWordOnLine(e,t,i);return d&&r(d)?l(d):c&&d?a(c.end+1,d.start+1):c?a(c.start+1,c.end+1):d?a(d.start+1,d.end+1):a(1,o+1)}static _deleteWordPartLeft(e,t){if(!t.isEmpty())return t;const i=t.getPosition(),s=ki._moveWordPartLeft(e,i);return new A(i.lineNumber,i.column,s.lineNumber,s.column)}static _findFirstNonWhitespaceChar(e,t){const i=e.length;for(let s=t;s=h.start+1&&(h=ki._findNextWordOnLine(i,s,new ee(l,h.end+1))),h?c=h.start+1:c!!e)}class po{static addCursorDown(e,t,i){const s=[];let o=0;for(let r=0,a=t.length;rc&&(d=c,u=e.model.getLineMaxColumn(d)),gi.fromModelState(new _o(new A(r.lineNumber,1,d,u),2,0,new ee(d,u),0))}const l=t.modelState.selectionStart.getStartPosition().lineNumber;if(r.lineNumberl){const c=e.getLineCount();let d=a.lineNumber+1,u=1;return d>c&&(d=c,u=e.getLineMaxColumn(d)),gi.fromViewState(t.viewState.move(!0,d,u,0))}else{const c=t.modelState.selectionStart.getEndPosition();return gi.fromModelState(t.modelState.move(!0,c.lineNumber,c.column,0))}}static word(e,t,i,s){const o=e.model.validatePosition(s);return gi.fromModelState(ki.word(e.cursorConfig,e.model,t.modelState,i,o))}static cancelSelection(e,t){if(!t.modelState.hasSelection())return new gi(t.modelState,t.viewState);const i=t.viewState.position.lineNumber,s=t.viewState.position.column;return gi.fromViewState(new _o(new A(i,s,i,s),0,0,new ee(i,s),0))}static moveTo(e,t,i,s,o){if(i){if(t.modelState.selectionStartKind===1)return this.word(e,t,i,s);if(t.modelState.selectionStartKind===2)return this.line(e,t,i,s,o)}const r=e.model.validatePosition(s),a=o?e.coordinatesConverter.validateViewPosition(new ee(o.lineNumber,o.column),r):e.coordinatesConverter.convertModelPositionToViewPosition(r);return gi.fromViewState(t.viewState.move(i,a.lineNumber,a.column,0))}static simpleMove(e,t,i,s,o,r){switch(i){case 0:return r===4?this._moveHalfLineLeft(e,t,s):this._moveLeft(e,t,s,o);case 1:return r===4?this._moveHalfLineRight(e,t,s):this._moveRight(e,t,s,o);case 2:return r===2?this._moveUpByViewLines(e,t,s,o):this._moveUpByModelLines(e,t,s,o);case 3:return r===2?this._moveDownByViewLines(e,t,s,o):this._moveDownByModelLines(e,t,s,o);case 4:return r===2?t.map(a=>gi.fromViewState(Mi.moveToPrevBlankLine(e.cursorConfig,e,a.viewState,s))):t.map(a=>gi.fromModelState(Mi.moveToPrevBlankLine(e.cursorConfig,e.model,a.modelState,s)));case 5:return r===2?t.map(a=>gi.fromViewState(Mi.moveToNextBlankLine(e.cursorConfig,e,a.viewState,s))):t.map(a=>gi.fromModelState(Mi.moveToNextBlankLine(e.cursorConfig,e.model,a.modelState,s)));case 6:return this._moveToViewMinColumn(e,t,s);case 7:return this._moveToViewFirstNonWhitespaceColumn(e,t,s);case 8:return this._moveToViewCenterColumn(e,t,s);case 9:return this._moveToViewMaxColumn(e,t,s);case 10:return this._moveToViewLastNonWhitespaceColumn(e,t,s);default:return null}}static viewportMove(e,t,i,s,o){const r=e.getCompletelyVisibleViewRange(),a=e.coordinatesConverter.convertViewRangeToModelRange(r);switch(i){case 11:{const l=this._firstLineNumberInRange(e.model,a,o),c=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],s,l,c)]}case 13:{const l=this._lastLineNumberInRange(e.model,a,o),c=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],s,l,c)]}case 12:{const l=Math.round((a.startLineNumber+a.endLineNumber)/2),c=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],s,l,c)]}case 14:{const l=[];for(let c=0,d=t.length;ci.endLineNumber-1?r=i.endLineNumber-1:ogi.fromViewState(Mi.moveLeft(e.cursorConfig,e,o.viewState,i,s)))}static _moveHalfLineLeft(e,t,i){const s=[];for(let o=0,r=t.length;ogi.fromViewState(Mi.moveRight(e.cursorConfig,e,o.viewState,i,s)))}static _moveHalfLineRight(e,t,i){const s=[];for(let o=0,r=t.length;o{this.model.tokenization.forceTokenization(f);const g=this.model.tokenization.getLineTokens(f),p=this.model.getLineMaxColumn(f)-1;return xv(g,p)};this.model.tokenization.forceTokenization(e.startLineNumber);const i=this.model.tokenization.getLineTokens(e.startLineNumber),s=xv(i,e.startColumn-1),o=Is.createEmpty("",s.languageIdCodec),r=e.startLineNumber-1;if(r===0||!(s.firstCharOffset===0))return o;const c=t(r);if(!(s.languageId===c.languageId))return o;const u=c.toIViewLineTokens();return this.indentationLineProcessor.getProcessedTokens(u)}}class pce{constructor(e,t){this.model=e,this.languageConfigurationService=t}getProcessedLine(e,t){var i,s;const o=(l,c)=>{const d=on(l);return c+l.substring(d.length)};(s=(i=this.model.tokenization).forceTokenization)===null||s===void 0||s.call(i,e);const r=this.model.tokenization.getLineTokens(e);let a=this.getProcessedTokens(r).getLineContent();return t!==void 0&&(a=o(a,t)),a}getProcessedTokens(e){const t=l=>l===2||l===3||l===1,i=e.getLanguageId(0),o=this.languageConfigurationService.getLanguageConfiguration(i).bracketsNew.getBracketRegExp({global:!0}),r=[];return e.forEach(l=>{const c=e.getStandardTokenType(l);let d=e.getTokenText(l);t(c)&&(d=d.replace(o,""));const u=e.getMetadata(l);r.push({text:d,metadata:u})}),Is.createFromTextAndMetadata(r,e.languageIdCodec)}}function Wz(n,e){n.tokenization.forceTokenization(e.lineNumber);const t=n.tokenization.getLineTokens(e.lineNumber),i=xv(t,e.column-1),s=i.firstCharOffset===0,o=t.getLanguageId(0)===i.languageId;return!s&&!o}function eC(n,e,t,i){e.tokenization.forceTokenization(t.startLineNumber);const s=e.getLanguageIdAtPosition(t.startLineNumber,t.startColumn),o=i.getLanguageConfiguration(s);if(!o)return null;const a=new Bz(e,i).getProcessedTokenContextAroundRange(t),l=a.previousLineProcessedTokens.getLineContent(),c=a.beforeRangeProcessedTokens.getLineContent(),d=a.afterRangeProcessedTokens.getLineContent(),u=o.onEnter(n,l,c,d);if(!u)return null;const h=u.indentAction;let f=u.appendText;const g=u.removeText||0;f?h===Ds.Indent&&(f=" "+f):h===Ds.Indent||h===Ds.IndentOutdent?f=" ":f="";let p=ble(e,t.startLineNumber,t.startColumn);return g&&(p=p.substring(0,p.length-g)),{indentAction:h,appendText:f,removeText:g,indentation:p}}var C8e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},w8e=function(n,e){return function(t,i){e(t,i,n)}},wN;const n5=Object.create(null);function H_(n,e){if(e<=0)return"";n5[n]||(n5[n]=["",n]);const t=n5[n];for(let i=t.length;i<=e;i++)t[i]=t[i-1]+n;return t[e]}let Zl=wN=class{static unshiftIndent(e,t,i,s,o){const r=zs.visibleColumnFromColumn(e,t,i);if(o){const a=H_(" ",s),c=zs.prevIndentTabStop(r,s)/s;return H_(a,c)}else{const a=" ",c=zs.prevRenderTabStop(r,i)/i;return H_(a,c)}}static shiftIndent(e,t,i,s,o){const r=zs.visibleColumnFromColumn(e,t,i);if(o){const a=H_(" ",s),c=zs.nextIndentTabStop(r,s)/s;return H_(a,c)}else{const a=" ",c=zs.nextRenderTabStop(r,i)/i;return H_(a,c)}}constructor(e,t,i){this._languageConfigurationService=i,this._opts=t,this._selection=e,this._selectionId=null,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}_addEditOperation(e,t,i){this._useLastEditRangeForCursorEndPosition?e.addTrackedEditOperation(t,i):e.addEditOperation(t,i)}getEditOperations(e,t){const i=this._selection.startLineNumber;let s=this._selection.endLineNumber;this._selection.endColumn===1&&i!==s&&(s=s-1);const{tabSize:o,indentSize:r,insertSpaces:a}=this._opts,l=i===s;if(this._opts.useTabStops){this._selection.isEmpty()&&/^\s*$/.test(e.getLineContent(i))&&(this._useLastEditRangeForCursorEndPosition=!0);let c=0,d=0;for(let u=i;u<=s;u++,c=d){d=0;const h=e.getLineContent(u);let f=fr(h);if(this._opts.isUnshift&&(h.length===0||f===0)||!l&&!this._opts.isUnshift&&h.length===0)continue;if(f===-1&&(f=h.length),u>1&&zs.visibleColumnFromColumn(h,f+1,o)%r!==0&&e.tokenization.isCheapToTokenize(u-1)){const _=eC(this._opts.autoIndent,e,new A(u-1,e.getLineMaxColumn(u-1),u-1,e.getLineMaxColumn(u-1)),this._languageConfigurationService);if(_){if(d=c,_.appendText)for(let b=0,w=_.appendText.length;b1){let s,o=-1;for(s=e-1;s>=1;s--){if(n.tokenization.getLanguageIdAtPosition(s,0)!==i)return o;const r=n.getLineContent(s);if(t.shouldIgnore(s)||/^\s+$/.test(r)||r===""){o=s;continue}return s}}return-1}function FM(n,e,t,i=!0,s){if(n<4)return null;const o=s.getLanguageConfiguration(e.tokenization.getLanguageId()).indentRulesSupport;if(!o)return null;const r=new Fz(e,o,s);if(t<=1)return{indentation:"",action:null};for(let l=t-1;l>0&&e.getLineContent(l)==="";l--)if(l===1)return{indentation:"",action:null};const a=x8e(e,t,r);if(a<0)return null;if(a<1)return{indentation:"",action:null};if(r.shouldIncrease(a)||r.shouldIndentNextLine(a)){const l=e.getLineContent(a);return{indentation:on(l),action:Ds.Indent,line:a}}else if(r.shouldDecrease(a)){const l=e.getLineContent(a);return{indentation:on(l),action:null,line:a}}else{if(a===1)return{indentation:on(e.getLineContent(a)),action:null,line:a};const l=a-1,c=o.getIndentMetadata(e.getLineContent(l));if(!(c&3)&&c&4){let d=0;for(let u=l-1;u>0;u--)if(!r.shouldIndentNextLine(u)){d=u;break}return{indentation:on(e.getLineContent(d+1)),action:null,line:d+1}}if(i)return{indentation:on(e.getLineContent(a)),action:null,line:a};for(let d=a;d>0;d--){if(r.shouldIncrease(d))return{indentation:on(e.getLineContent(d)),action:Ds.Indent,line:d};if(r.shouldIndentNextLine(d)){let u=0;for(let h=d-1;h>0;h--)if(!r.shouldIndentNextLine(d)){u=h;break}return{indentation:on(e.getLineContent(u+1)),action:null,line:u+1}}else if(r.shouldDecrease(d))return{indentation:on(e.getLineContent(d)),action:null,line:d}}return{indentation:on(e.getLineContent(1)),action:null,line:1}}}function hx(n,e,t,i,s,o){if(n<4)return null;const r=o.getLanguageConfiguration(t);if(!r)return null;const a=o.getLanguageConfiguration(t).indentRulesSupport;if(!a)return null;const l=new Fz(e,a,o),c=FM(n,e,i,void 0,o);if(c){const d=c.line;if(d!==void 0){let u=!0;for(let h=d;hn.getLineCount()?null:i.getIndentMetadata(n.getLineContent(e))}function D8e(n,e,t){return{tokenization:{getLineTokens:s=>s===e?t:n.tokenization.getLineTokens(s),getLanguageId:()=>n.getLanguageId(),getLanguageIdAtPosition:(s,o)=>n.getLanguageIdAtPosition(s,o)},getLineContent:s=>s===e?t.getLineContent():n.getLineContent(s)}}class Bn{static indent(e,t,i){if(t===null||i===null)return[];const s=[];for(let o=0,r=i.length;o1){let a;for(a=i-1;a>=1;a--){const d=t.getLineContent(a);if(Kd(d)>=0)break}if(a<1)return null;const l=t.getLineMaxColumn(a),c=eC(e.autoIndent,t,new A(a,l,a,l),e.languageConfigurationService);c&&(o=c.indentation+c.appendText)}return s&&(s===Ds.Indent&&(o=Bn.shiftIndent(e,o)),s===Ds.Outdent&&(o=Bn.unshiftIndent(e,o)),o=e.normalizeIndentation(o)),o||null}static _replaceJumpToNextIndent(e,t,i,s){let o="";const r=i.getStartPosition();if(e.insertSpaces){const a=e.visibleColumnFromColumn(t,r),l=e.indentSize,c=l-a%l;for(let d=0;dthis._compositionType(i,d,o,r,a,l));return new Zr(4,c,{shouldPushStackElementBefore:VE(e,4),shouldPushStackElementAfter:!1})}static _compositionType(e,t,i,s,o,r){if(!t.isEmpty())return null;const a=t.getPosition(),l=Math.max(1,a.column-s),c=Math.min(e.getLineMaxColumn(a.lineNumber),a.column+o),d=new A(a.lineNumber,l,a.lineNumber,c);return e.getValueInRange(d)===i&&r===0?null:new CN(d,i,0,r)}static _typeCommand(e,t,i){return i?new WE(e,t,!0):new Io(e,t,!0)}static _enter(e,t,i,s){if(e.autoIndent===0)return Bn._typeCommand(s,` `,i);if(!t.tokenization.isCheapToTokenize(s.getStartPosition().lineNumber)||e.autoIndent===1){const l=t.getLineContent(s.startLineNumber),c=on(l).substring(0,s.startColumn-1);return Bn._typeCommand(s,` `+e.normalizeIndentation(c),i)}const o=eC(e.autoIndent,t,s,e.languageConfigurationService);if(o){if(o.indentAction===Ds.None)return Bn._typeCommand(s,` `+e.normalizeIndentation(o.indentation+o.appendText),i);if(o.indentAction===Ds.Indent)return Bn._typeCommand(s,` `+e.normalizeIndentation(o.indentation+o.appendText),i);if(o.indentAction===Ds.IndentOutdent){const l=e.normalizeIndentation(o.indentation),c=e.normalizeIndentation(o.indentation+o.appendText),d=` `+c+` `+l;return i?new WE(s,d,!0):new CN(s,d,-1,c.length-l.length,!0)}else if(o.indentAction===Ds.Outdent){const l=Bn.unshiftIndent(e,o.indentation);return Bn._typeCommand(s,` `+e.normalizeIndentation(l+o.appendText),i)}}const r=t.getLineContent(s.startLineNumber),a=on(r).substring(0,s.startColumn-1);if(e.autoIndent>=4){const l=L8e(e.autoIndent,t,s,{unshiftIndent:c=>Bn.unshiftIndent(e,c),shiftIndent:c=>Bn.shiftIndent(e,c),normalizeIndentation:c=>e.normalizeIndentation(c)},e.languageConfigurationService);if(l){let c=e.visibleColumnFromColumn(t,s.getEndPosition());const d=s.endColumn,u=t.getLineContent(s.endLineNumber),h=fr(u);if(h>=0?s=s.setEndPosition(s.endLineNumber,Math.max(s.endColumn,h+1)):s=s.setEndPosition(s.endLineNumber,t.getLineMaxColumn(s.endLineNumber)),i)return new WE(s,` `+e.normalizeIndentation(l.afterEnter),!0);{let f=0;return d<=h+1&&(e.insertSpaces||(c=Math.ceil(c/e.indentSize)),f=Math.min(c+1-e.normalizeIndentation(l.afterEnter).length-1,0)),new CN(s,` `+e.normalizeIndentation(l.afterEnter),0,f,!0)}}}return Bn._typeCommand(s,` `+e.normalizeIndentation(a),i)}static _isAutoIndentType(e,t,i){if(e.autoIndent<4)return!1;for(let s=0,o=i.length;sBn.shiftIndent(e,a),unshiftIndent:a=>Bn.unshiftIndent(e,a)},e.languageConfigurationService);if(r===null)return null;if(r!==e.normalizeIndentation(o)){const a=t.getLineFirstNonWhitespaceColumn(i.startLineNumber);return a===0?Bn._typeCommand(new A(i.startLineNumber,1,i.endLineNumber,i.endColumn),e.normalizeIndentation(r)+s,!1):Bn._typeCommand(new A(i.startLineNumber,1,i.endLineNumber,i.endColumn),e.normalizeIndentation(r)+t.getLineContent(i.startLineNumber).substring(a-1,i.startColumn-1)+s,!1)}return null}static _isAutoClosingOvertype(e,t,i,s,o){if(e.autoClosingOvertype==="never"||!e.autoClosingPairs.autoClosingPairsCloseSingleChar.has(o))return!1;for(let r=0,a=i.length;r2?d.charCodeAt(c.column-2):0)===92&&h)return!1;if(e.autoClosingOvertype==="auto"){let g=!1;for(let p=0,_=s.length;p<_;p++){const b=s[p];if(c.lineNumber===b.startLineNumber&&c.column===b.startColumn){g=!0;break}}if(!g)return!1}}return!0}static _runAutoClosingOvertype(e,t,i,s,o){const r=[];for(let a=0,l=s.length;at.startsWith(l.open)),a=o.some(l=>t.startsWith(l.close));return!r&&a}static _findAutoClosingPairOpen(e,t,i,s){const o=e.autoClosingPairs.autoClosingPairsOpenByEnd.get(s);if(!o)return null;let r=null;for(const a of o)if(r===null||a.open.length>r.open.length){let l=!0;for(const c of i)if(t.getValueInRange(new A(c.lineNumber,c.column-a.open.length+1,c.lineNumber,c.column))+s!==a.open){l=!1;break}l&&(r=a)}return r}static _findContainedAutoClosingPair(e,t){if(t.open.length<=1)return null;const i=t.close.charAt(t.close.length-1),s=e.autoClosingPairs.autoClosingPairsCloseByEnd.get(i)||[];let o=null;for(const r of s)r.open!==t.open&&t.open.includes(r.open)&&t.close.endsWith(r.close)&&(!o||r.open.length>o.open.length)&&(o=r);return o}static _getAutoClosingPairClose(e,t,i,s,o){for(const g of i)if(!g.isEmpty())return null;const r=i.map(g=>{const p=g.getPosition();return o?{lineNumber:p.lineNumber,beforeColumn:p.column-s.length,afterColumn:p.column}:{lineNumber:p.lineNumber,beforeColumn:p.column,afterColumn:p.column}}),a=this._findAutoClosingPairOpen(e,t,r.map(g=>new ee(g.lineNumber,g.beforeColumn)),s);if(!a)return null;let l,c;if(vp(s)?(l=e.autoClosingQuotes,c=e.shouldAutoCloseBefore.quote):(e.blockCommentStartToken?a.open.includes(e.blockCommentStartToken):!1)?(l=e.autoClosingComments,c=e.shouldAutoCloseBefore.comment):(l=e.autoClosingBrackets,c=e.shouldAutoCloseBefore.bracket),l==="never")return null;const u=this._findContainedAutoClosingPair(e,a),h=u?u.close:"";let f=!0;for(const g of r){const{lineNumber:p,beforeColumn:_,afterColumn:b}=g,w=t.getLineContent(p),y=w.substring(0,_-1),S=w.substring(b-1);if(S.startsWith(h)||(f=!1),S.length>0){const I=S.charAt(0);if(!Bn._isBeforeClosingBrace(e,S)&&!c(I))return null}if(a.open.length===1&&(s==="'"||s==='"')&&l!=="always"){const I=cc(e.wordSeparators,[]);if(y.length>0){const N=y.charCodeAt(y.length-1);if(I.get(N)===0)return null}}if(!t.tokenization.isCheapToTokenize(p))return null;t.tokenization.forceTokenization(p);const x=t.tokenization.getLineTokens(p),k=xv(x,_-1);if(!a.shouldAutoClose(k,_-k.firstCharOffset))return null;const D=a.findNeutralCharacter();if(D){const I=t.tokenization.getTokenTypeIfInsertingCharacter(p,_,D);if(!a.isOK(I))return null}}return f?a.close.substring(0,a.close.length-h.length):a.close}static _runAutoClosingOpenCharType(e,t,i,s,o,r,a){const l=[];for(let c=0,d=s.length;cnew Io(new A(h.positionLineNumber,h.positionColumn,h.positionLineNumber,h.positionColumn+1),"",!1));return new Zr(4,u,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}const d=this._getAutoClosingPairClose(t,i,o,l,!0);return d!==null?this._runAutoClosingOpenCharType(e,t,i,o,l,!0,d):null}static typeWithInterceptors(e,t,i,s,o,r,a){if(!e&&a===` `){const d=[];for(let u=0,h=o.length;u{const s=t.get(vi).getFocusedCodeEditor();return s&&s.hasTextFocus()?this._runEditorCommand(t,s,i):!1}),e.addImplementation(1e3,"generic-dom-input-textarea",(t,i)=>{const s=Ao();return s&&["input","textarea"].indexOf(s.tagName.toLowerCase())>=0?(this.runDOMCommand(s),!0):!1}),e.addImplementation(0,"generic-dom",(t,i)=>{const s=t.get(vi).getActiveCodeEditor();return s?(s.focus(),this._runEditorCommand(t,s,i)):!1})}_runEditorCommand(e,t,i){const s=this.runEditorCommand(e,t,i);return s||!0}}var io;(function(n){class e extends ts{constructor(w){super(w),this._inSelectionMode=w.inSelectionMode}runCoreEditorCommand(w,y){if(!y.position)return;w.model.pushStackElement(),w.setCursorStates(y.source,3,[po.moveTo(w,w.getPrimaryCursorState(),this._inSelectionMode,y.position,y.viewPosition)])&&y.revealType!==2&&w.revealAllCursors(y.source,!0,!0)}}n.MoveTo=Fe(new e({id:"_moveTo",inSelectionMode:!1,precondition:void 0})),n.MoveToSelect=Fe(new e({id:"_moveToSelect",inSelectionMode:!0,precondition:void 0}));class t extends ts{runCoreEditorCommand(w,y){w.model.pushStackElement();const S=this._getColumnSelectResult(w,w.getPrimaryCursorState(),w.getCursorColumnSelectData(),y);S!==null&&(w.setCursorStates(y.source,3,S.viewStates.map(x=>gi.fromViewState(x))),w.setCursorColumnSelectData({isReal:!0,fromViewLineNumber:S.fromLineNumber,fromViewVisualColumn:S.fromVisualColumn,toViewLineNumber:S.toLineNumber,toViewVisualColumn:S.toVisualColumn}),S.reversed?w.revealTopMostCursor(y.source):w.revealBottomMostCursor(y.source))}}n.ColumnSelect=Fe(new class extends t{constructor(){super({id:"columnSelect",precondition:void 0})}_getColumnSelectResult(b,w,y,S){if(typeof S.position>"u"||typeof S.viewPosition>"u"||typeof S.mouseColumn>"u")return null;const x=b.model.validatePosition(S.position),k=b.coordinatesConverter.validateViewPosition(new ee(S.viewPosition.lineNumber,S.viewPosition.column),x),D=S.doColumnSelect?y.fromViewLineNumber:k.lineNumber,I=S.doColumnSelect?y.fromViewVisualColumn:S.mouseColumn-1;return mv.columnSelect(b.cursorConfig,b,D,I,k.lineNumber,S.mouseColumn-1)}}),n.CursorColumnSelectLeft=Fe(new class extends t{constructor(){super({id:"cursorColumnSelectLeft",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:3599,linux:{primary:0}}})}_getColumnSelectResult(b,w,y,S){return mv.columnSelectLeft(b.cursorConfig,b,y)}}),n.CursorColumnSelectRight=Fe(new class extends t{constructor(){super({id:"cursorColumnSelectRight",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:3601,linux:{primary:0}}})}_getColumnSelectResult(b,w,y,S){return mv.columnSelectRight(b.cursorConfig,b,y)}});class i extends t{constructor(w){super(w),this._isPaged=w.isPaged}_getColumnSelectResult(w,y,S,x){return mv.columnSelectUp(w.cursorConfig,w,S,this._isPaged)}}n.CursorColumnSelectUp=Fe(new i({isPaged:!1,id:"cursorColumnSelectUp",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:3600,linux:{primary:0}}})),n.CursorColumnSelectPageUp=Fe(new i({isPaged:!0,id:"cursorColumnSelectPageUp",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:3595,linux:{primary:0}}}));class s extends t{constructor(w){super(w),this._isPaged=w.isPaged}_getColumnSelectResult(w,y,S,x){return mv.columnSelectDown(w.cursorConfig,w,S,this._isPaged)}}n.CursorColumnSelectDown=Fe(new s({isPaged:!1,id:"cursorColumnSelectDown",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:3602,linux:{primary:0}}})),n.CursorColumnSelectPageDown=Fe(new s({isPaged:!0,id:"cursorColumnSelectPageDown",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:3596,linux:{primary:0}}}));class o extends ts{constructor(){super({id:"cursorMove",precondition:void 0,metadata:tA.metadata})}runCoreEditorCommand(w,y){const S=tA.parse(y);S&&this._runCursorMove(w,y.source,S)}_runCursorMove(w,y,S){w.model.pushStackElement(),w.setCursorStates(y,3,o._move(w,w.getCursorStates(),S)),w.revealAllCursors(y,!0)}static _move(w,y,S){const x=S.select,k=S.value;switch(S.direction){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return po.simpleMove(w,y,S.direction,x,k,S.unit);case 11:case 13:case 12:case 14:return po.viewportMove(w,y,S.direction,x,k);default:return null}}}n.CursorMoveImpl=o,n.CursorMove=Fe(new o);class r extends ts{constructor(w){super(w),this._staticArgs=w.args}runCoreEditorCommand(w,y){let S=this._staticArgs;this._staticArgs.value===-1&&(S={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:y.pageSize||w.cursorConfig.pageSize}),w.model.pushStackElement(),w.setCursorStates(y.source,3,po.simpleMove(w,w.getCursorStates(),S.direction,S.select,S.value,S.unit)),w.revealAllCursors(y.source,!0)}}n.CursorLeft=Fe(new r({args:{direction:0,unit:0,select:!1,value:1},id:"cursorLeft",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),n.CursorLeftSelect=Fe(new r({args:{direction:0,unit:0,select:!0,value:1},id:"cursorLeftSelect",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:1039}})),n.CursorRight=Fe(new r({args:{direction:1,unit:0,select:!1,value:1},id:"cursorRight",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),n.CursorRightSelect=Fe(new r({args:{direction:1,unit:0,select:!0,value:1},id:"cursorRightSelect",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:1041}})),n.CursorUp=Fe(new r({args:{direction:2,unit:2,select:!1,value:1},id:"cursorUp",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),n.CursorUpSelect=Fe(new r({args:{direction:2,unit:2,select:!0,value:1},id:"cursorUpSelect",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),n.CursorPageUp=Fe(new r({args:{direction:2,unit:2,select:!1,value:-1},id:"cursorPageUp",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:11}})),n.CursorPageUpSelect=Fe(new r({args:{direction:2,unit:2,select:!0,value:-1},id:"cursorPageUpSelect",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:1035}})),n.CursorDown=Fe(new r({args:{direction:3,unit:2,select:!1,value:1},id:"cursorDown",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),n.CursorDownSelect=Fe(new r({args:{direction:3,unit:2,select:!0,value:1},id:"cursorDownSelect",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),n.CursorPageDown=Fe(new r({args:{direction:3,unit:2,select:!1,value:-1},id:"cursorPageDown",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:12}})),n.CursorPageDownSelect=Fe(new r({args:{direction:3,unit:2,select:!0,value:-1},id:"cursorPageDownSelect",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:1036}})),n.CreateCursor=Fe(new class extends ts{constructor(){super({id:"createCursor",precondition:void 0})}runCoreEditorCommand(b,w){if(!w.position)return;let y;w.wholeLine?y=po.line(b,b.getPrimaryCursorState(),!1,w.position,w.viewPosition):y=po.moveTo(b,b.getPrimaryCursorState(),!1,w.position,w.viewPosition);const S=b.getCursorStates();if(S.length>1){const x=y.modelState?y.modelState.position:null,k=y.viewState?y.viewState.position:null;for(let D=0,I=S.length;Dk&&(x=k);const D=new A(x,1,x,b.model.getLineMaxColumn(x));let I=0;if(y.at)switch(y.at){case L1.RawAtArgument.Top:I=3;break;case L1.RawAtArgument.Center:I=1;break;case L1.RawAtArgument.Bottom:I=4;break}const N=b.coordinatesConverter.convertModelRangeToViewRange(D);b.revealRange(w.source,!1,N,I,0)}}),n.SelectAll=new class extends OB{constructor(){super(bPe)}runDOMCommand(b){lc&&(b.focus(),b.select()),b.ownerDocument.execCommand("selectAll")}runEditorCommand(b,w,y){const S=w._getViewModel();S&&this.runCoreEditorCommand(S,y)}runCoreEditorCommand(b,w){b.model.pushStackElement(),b.setCursorStates("keyboard",3,[po.selectAll(b,b.getPrimaryCursorState())])}},n.SetSelection=Fe(new class extends ts{constructor(){super({id:"setSelection",precondition:void 0})}runCoreEditorCommand(b,w){w.selection&&(b.model.pushStackElement(),b.setCursorStates(w.source,3,[gi.fromModelSelection(w.selection)]))}})})(io||(io={}));const E8e=pe.and(W.textInputFocus,W.columnSelection);function Hw(n,e){Hr.registerKeybindingRule({id:n,primary:e,when:E8e,weight:xi+1})}Hw(io.CursorColumnSelectLeft.id,1039);Hw(io.CursorColumnSelectRight.id,1041);Hw(io.CursorColumnSelectUp.id,1040);Hw(io.CursorColumnSelectPageUp.id,1035);Hw(io.CursorColumnSelectDown.id,1042);Hw(io.CursorColumnSelectPageDown.id,1036);function jX(n){return n.register(),n}var tC;(function(n){class e extends Us{runEditorCommand(i,s,o){const r=s._getViewModel();r&&this.runCoreEditingCommand(s,r,o||{})}}n.CoreEditingCommand=e,n.LineBreakInsert=Fe(new class extends e{constructor(){super({id:"lineBreakInsert",precondition:W.writable,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:0,mac:{primary:301}}})}runCoreEditingCommand(t,i,s){t.pushUndoStop(),t.executeCommands(this.id,Bn.lineBreakInsert(i.cursorConfig,i.model,i.getCursorStates().map(o=>o.modelState.selection)))}}),n.Outdent=Fe(new class extends e{constructor(){super({id:"outdent",precondition:W.writable,kbOpts:{weight:xi,kbExpr:pe.and(W.editorTextFocus,W.tabDoesNotMoveFocus),primary:1026}})}runCoreEditingCommand(t,i,s){t.pushUndoStop(),t.executeCommands(this.id,Bn.outdent(i.cursorConfig,i.model,i.getCursorStates().map(o=>o.modelState.selection))),t.pushUndoStop()}}),n.Tab=Fe(new class extends e{constructor(){super({id:"tab",precondition:W.writable,kbOpts:{weight:xi,kbExpr:pe.and(W.editorTextFocus,W.tabDoesNotMoveFocus),primary:2}})}runCoreEditingCommand(t,i,s){t.pushUndoStop(),t.executeCommands(this.id,Bn.tab(i.cursorConfig,i.model,i.getCursorStates().map(o=>o.modelState.selection))),t.pushUndoStop()}}),n.DeleteLeft=Fe(new class extends e{constructor(){super({id:"deleteLeft",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})}runCoreEditingCommand(t,i,s){const[o,r]=m0.deleteLeft(i.getPrevEditOperationType(),i.cursorConfig,i.model,i.getCursorStates().map(a=>a.modelState.selection),i.getCursorAutoClosedCharacters());o&&t.pushUndoStop(),t.executeCommands(this.id,r),i.setPrevEditOperationType(2)}}),n.DeleteRight=Fe(new class extends e{constructor(){super({id:"deleteRight",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})}runCoreEditingCommand(t,i,s){const[o,r]=m0.deleteRight(i.getPrevEditOperationType(),i.cursorConfig,i.model,i.getCursorStates().map(a=>a.modelState.selection));o&&t.pushUndoStop(),t.executeCommands(this.id,r),i.setPrevEditOperationType(3)}}),n.Undo=new class extends OB{constructor(){super(rle)}runDOMCommand(t){t.ownerDocument.execCommand("undo")}runEditorCommand(t,i,s){if(!(!i.hasModel()||i.getOption(91)===!0))return i.getModel().undo()}},n.Redo=new class extends OB{constructor(){super(ale)}runDOMCommand(t){t.ownerDocument.execCommand("redo")}runEditorCommand(t,i,s){if(!(!i.hasModel()||i.getOption(91)===!0))return i.getModel().redo()}}})(tC||(tC={}));class KX extends SM{constructor(e,t,i){super({id:e,precondition:void 0,metadata:i}),this._handlerId=t}runCommand(e,t){const i=e.get(vi).getFocusedCodeEditor();i&&i.trigger("keyboard",this._handlerId,t)}}function Q0(n,e){jX(new KX("default:"+n,n)),jX(new KX(n,n,e))}Q0("type",{description:"Type",args:[{name:"args",schema:{type:"object",required:["text"],properties:{text:{type:"string"}}}}]});Q0("replacePreviousChar");Q0("compositionType");Q0("compositionStart");Q0("compositionEnd");Q0("paste");Q0("cut");class T8e{constructor(e,t,i,s){this.configuration=e,this.viewModel=t,this.userInputEvents=i,this.commandDelegate=s}paste(e,t,i,s){this.commandDelegate.paste(e,t,i,s)}type(e){this.commandDelegate.type(e)}compositionType(e,t,i,s){this.commandDelegate.compositionType(e,t,i,s)}compositionStart(){this.commandDelegate.startComposition()}compositionEnd(){this.commandDelegate.endComposition()}cut(){this.commandDelegate.cut()}setSelection(e){io.SetSelection.runCoreEditorCommand(this.viewModel,{source:"keyboard",selection:e})}_validateViewColumn(e){const t=this.viewModel.getLineMinColumn(e.lineNumber);return e.column=4?this._selectAll():e.mouseDownCount===3?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelectDrag(e.position,e.revealType):this._lastCursorLineSelect(e.position,e.revealType):e.inSelectionMode?this._lineSelectDrag(e.position,e.revealType):this._lineSelect(e.position,e.revealType):e.mouseDownCount===2?e.onInjectedText||(this._hasMulticursorModifier(e)?this._lastCursorWordSelect(e.position,e.revealType):e.inSelectionMode?this._wordSelectDrag(e.position,e.revealType):this._wordSelect(e.position,e.revealType)):this._hasMulticursorModifier(e)?this._hasNonMulticursorModifier(e)||(e.shiftKey?this._columnSelect(e.position,e.mouseColumn,!0):e.inSelectionMode?this._lastCursorMoveToSelect(e.position,e.revealType):this._createCursor(e.position,!1)):e.inSelectionMode?e.altKey?this._columnSelect(e.position,e.mouseColumn,!0):s?this._columnSelect(e.position,e.mouseColumn,!0):this._moveToSelect(e.position,e.revealType):this.moveTo(e.position,e.revealType)}_usualArgs(e,t){return e=this._validateViewColumn(e),{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,revealType:t}}moveTo(e,t){io.MoveTo.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_moveToSelect(e,t){io.MoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_columnSelect(e,t,i){e=this._validateViewColumn(e),io.ColumnSelect.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,mouseColumn:t,doColumnSelect:i})}_createCursor(e,t){e=this._validateViewColumn(e),io.CreateCursor.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,wholeLine:t})}_lastCursorMoveToSelect(e,t){io.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_wordSelect(e,t){io.WordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_wordSelectDrag(e,t){io.WordSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorWordSelect(e,t){io.LastCursorWordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lineSelect(e,t){io.LineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lineSelectDrag(e,t){io.LineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorLineSelect(e,t){io.LastCursorLineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorLineSelectDrag(e,t){io.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_selectAll(){io.SelectAll.runCoreEditorCommand(this.viewModel,{source:"mouse"})}_convertViewToModelPosition(e){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(e)}emitKeyDown(e){this.userInputEvents.emitKeyDown(e)}emitKeyUp(e){this.userInputEvents.emitKeyUp(e)}emitContextMenu(e){this.userInputEvents.emitContextMenu(e)}emitMouseMove(e){this.userInputEvents.emitMouseMove(e)}emitMouseLeave(e){this.userInputEvents.emitMouseLeave(e)}emitMouseUp(e){this.userInputEvents.emitMouseUp(e)}emitMouseDown(e){this.userInputEvents.emitMouseDown(e)}emitMouseDrag(e){this.userInputEvents.emitMouseDrag(e)}emitMouseDrop(e){this.userInputEvents.emitMouseDrop(e)}emitMouseDropCanceled(){this.userInputEvents.emitMouseDropCanceled()}emitMouseWheel(e){this.userInputEvents.emitMouseWheel(e)}}class vce{constructor(e){this._createLine=e,this._set(1,[])}flush(){this._set(1,[])}_set(e,t){this._lines=t,this._rendLineNumberStart=e}_get(){return{rendLineNumberStart:this._rendLineNumberStart,lines:this._lines}}getStartLineNumber(){return this._rendLineNumberStart}getEndLineNumber(){return this._rendLineNumberStart+this._lines.length-1}getCount(){return this._lines.length}getLine(e){const t=e-this._rendLineNumberStart;if(t<0||t>=this._lines.length)throw new Gi("Illegal value for lineNumber");return this._lines[t]}onLinesDeleted(e,t){if(this.getCount()===0)return null;const i=this.getStartLineNumber(),s=this.getEndLineNumber();if(ts)return null;let o=0,r=0;for(let l=i;l<=s;l++){const c=l-this._rendLineNumberStart;e<=l&&l<=t&&(r===0?(o=c,r=1):r++)}if(e=s&&a<=o&&(this._lines[a-this._rendLineNumberStart].onContentChanged(),r=!0);return r}onLinesInserted(e,t){if(this.getCount()===0)return null;const i=t-e+1,s=this.getStartLineNumber(),o=this.getEndLineNumber();if(e<=s)return this._rendLineNumberStart+=i,null;if(e>o)return null;if(i+e>o)return this._lines.splice(e-this._rendLineNumberStart,o-e+1);const r=[];for(let u=0;ui)continue;const l=Math.max(t,a.fromLineNumber),c=Math.min(i,a.toLineNumber);for(let d=l;d<=c;d++){const u=d-this._rendLineNumberStart;this._lines[u].onTokensChanged(),s=!0}}return s}}class bce{constructor(e){this._host=e,this.domNode=this._createDomNode(),this._linesCollection=new vce(()=>this._host.createVisibleLine())}_createDomNode(){const e=Di(document.createElement("div"));return e.setClassName("view-layer"),e.setPosition("absolute"),e.domNode.setAttribute("role","presentation"),e.domNode.setAttribute("aria-hidden","true"),e}onConfigurationChanged(e){return!!e.hasChanged(145)}onFlushed(e){return this._linesCollection.flush(),!0}onLinesChanged(e){return this._linesCollection.onLinesChanged(e.fromLineNumber,e.count)}onLinesDeleted(e){const t=this._linesCollection.onLinesDeleted(e.fromLineNumber,e.toLineNumber);if(t)for(let i=0,s=t.length;it){const r=t,a=Math.min(i,o.rendLineNumberStart-1);r<=a&&(this._insertLinesBefore(o,r,a,s,t),o.linesLength+=a-r+1)}else if(o.rendLineNumberStart0&&(this._removeLinesBefore(o,r),o.linesLength-=r)}if(o.rendLineNumberStart=t,o.rendLineNumberStart+o.linesLength-1i){const r=Math.max(0,i-o.rendLineNumberStart+1),l=o.linesLength-1-r+1;l>0&&(this._removeLinesAfter(o,l),o.linesLength-=l)}return this._finishRendering(o,!1,s),o}_renderUntouchedLines(e,t,i,s,o){const r=e.rendLineNumberStart,a=e.lines;for(let l=t;l<=i;l++){const c=r+l;a[l].layoutLine(c,s[c-o],this.viewportData.lineHeight)}}_insertLinesBefore(e,t,i,s,o){const r=[];let a=0;for(let l=t;l<=i;l++)r[a++]=this.host.createVisibleLine();e.lines=r.concat(e.lines)}_removeLinesBefore(e,t){for(let i=0;i=0;a--){const l=e.lines[a];s[a]&&(l.setDomNode(r),r=r.previousSibling)}}_finishRenderingInvalidLines(e,t,i){const s=document.createElement("div");zf._ttPolicy&&(t=zf._ttPolicy.createHTML(t)),s.innerHTML=t;for(let o=0;on});zf._sb=new Ow(1e5);class Cce extends Va{constructor(e){super(e),this._visibleLines=new bce(this),this.domNode=this._visibleLines.domNode;const i=this._context.configuration.options.get(50);So(this.domNode,i),this._dynamicOverlays=[],this._isFocused=!1,this.domNode.setClassName("view-overlays")}shouldRender(){if(super.shouldRender())return!0;for(let e=0,t=this._dynamicOverlays.length;ei.shouldRender());for(let i=0,s=t.length;i'),o.appendString(r),o.appendString(""),!0)}layoutLine(e,t,i){this._domNode&&(this._domNode.setTop(t),this._domNode.setHeight(i))}}class A8e extends Cce{constructor(e){super(e);const i=this._context.configuration.options.get(145);this._contentWidth=i.contentWidth,this.domNode.setHeight(0)}onConfigurationChanged(e){const i=this._context.configuration.options.get(145);return this._contentWidth=i.contentWidth,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollWidthChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e),this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth))}}class R8e extends Cce{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(145);this._contentLeft=i.contentLeft,this.domNode.setClassName("margin-view-overlays"),this.domNode.setWidth(1),So(this.domNode,t.get(50))}onConfigurationChanged(e){const t=this._context.configuration.options;So(this.domNode,t.get(50));const i=t.get(145);return this._contentLeft=i.contentLeft,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollHeightChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e);const t=Math.min(e.scrollHeight,1e6);this.domNode.setHeight(t),this.domNode.setWidth(this._contentLeft)}}class BM{constructor(e){this.onKeyDown=null,this.onKeyUp=null,this.onContextMenu=null,this.onMouseMove=null,this.onMouseLeave=null,this.onMouseDown=null,this.onMouseUp=null,this.onMouseDrag=null,this.onMouseDrop=null,this.onMouseDropCanceled=null,this.onMouseWheel=null,this._coordinatesConverter=e}emitKeyDown(e){var t;(t=this.onKeyDown)===null||t===void 0||t.call(this,e)}emitKeyUp(e){var t;(t=this.onKeyUp)===null||t===void 0||t.call(this,e)}emitContextMenu(e){var t;(t=this.onContextMenu)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseMove(e){var t;(t=this.onMouseMove)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseLeave(e){var t;(t=this.onMouseLeave)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDown(e){var t;(t=this.onMouseDown)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseUp(e){var t;(t=this.onMouseUp)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDrag(e){var t;(t=this.onMouseDrag)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDrop(e){var t;(t=this.onMouseDrop)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDropCanceled(){var e;(e=this.onMouseDropCanceled)===null||e===void 0||e.call(this)}emitMouseWheel(e){var t;(t=this.onMouseWheel)===null||t===void 0||t.call(this,e)}_convertViewToModelMouseEvent(e){return e.target?{event:e.event,target:this._convertViewToModelMouseTarget(e.target)}:e}_convertViewToModelMouseTarget(e){return BM.convertViewToModelMouseTarget(e,this._coordinatesConverter)}static convertViewToModelMouseTarget(e,t){const i={...e};return i.position&&(i.position=t.convertViewPositionToModelPosition(i.position)),i.range&&(i.range=t.convertViewRangeToModelRange(i.range)),(i.type===5||i.type===8)&&(i.detail=this.convertViewToModelViewZoneData(i.detail,t)),i}static convertViewToModelViewZoneData(e,t){return{viewZoneId:e.viewZoneId,positionBefore:e.positionBefore?t.convertViewPositionToModelPosition(e.positionBefore):e.positionBefore,positionAfter:e.positionAfter?t.convertViewPositionToModelPosition(e.positionAfter):e.positionAfter,position:t.convertViewPositionToModelPosition(e.position),afterLineNumber:t.convertViewPositionToModelPosition(new ee(e.afterLineNumber,1)).lineNumber}}}class M8e extends Va{constructor(e){super(e),this.blocks=[],this.contentWidth=-1,this.contentLeft=0,this.domNode=Di(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.domNode.setClassName("blockDecorations-container"),this.update()}update(){let e=!1;const i=this._context.configuration.options.get(145),s=i.contentWidth-i.verticalScrollbarWidth;this.contentWidth!==s&&(this.contentWidth=s,e=!0);const o=i.contentLeft;return this.contentLeft!==o&&(this.contentLeft=o,e=!0),e}dispose(){super.dispose()}onConfigurationChanged(e){return this.update()}onScrollChanged(e){return e.scrollTopChanged||e.scrollLeftChanged}onDecorationsChanged(e){return!0}onZonesChanged(e){return!0}prepareRender(e){}render(e){var t;let i=0;const s=e.getDecorationsInViewport();for(const o of s){if(!o.options.blockClassName)continue;let r=this.blocks[i];r||(r=this.blocks[i]=Di(document.createElement("div")),this.domNode.appendChild(r));let a,l;o.options.blockIsAfterEnd?(a=e.getVerticalOffsetAfterLineNumber(o.range.endLineNumber,!1),l=e.getVerticalOffsetAfterLineNumber(o.range.endLineNumber,!0)):(a=e.getVerticalOffsetForLineNumber(o.range.startLineNumber,!0),l=o.range.isEmpty()&&!o.options.blockDoesNotCollapse?e.getVerticalOffsetForLineNumber(o.range.startLineNumber,!1):e.getVerticalOffsetAfterLineNumber(o.range.endLineNumber,!0));const[c,d,u,h]=(t=o.options.blockPadding)!==null&&t!==void 0?t:[0,0,0,0];r.setClassName("blockDecorations-block "+o.options.blockClassName),r.setLeft(this.contentLeft-h),r.setWidth(this.contentWidth+h+d),r.setTop(a-e.scrollTop-c),r.setHeight(l-a+c+u),i++}for(let o=i;o0?this.domNode.setDisplay("block"):this.domNode.setDisplay("none"),this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1}_layoutBoxInViewport(e,t,i,s){const o=e.top,r=o,a=e.top+e.height,l=s.viewportHeight-a,c=o-i,d=r>=i,u=a,h=l>=i;let f=e.left;return f+t>s.scrollLeft+s.viewportWidth&&(f=s.scrollLeft+s.viewportWidth-t),fc){const f=h-(c-s);h-=f,i-=f}if(h=b,S=f+i<=g.height-w;return this._fixedOverflowWidgets?{fitsAbove:y,aboveTop:Math.max(h,b),fitsBelow:S,belowTop:f,left:_}:{fitsAbove:y,aboveTop:a,fitsBelow:S,belowTop:l,left:p}}_prepareRenderWidgetAtExactPositionOverflowing(e){return new By(e.top,e.left+this._contentLeft)}_getAnchorsCoordinates(e){var t,i;const s=a(this._primaryAnchor.viewPosition,this._affinity,this._lineHeight),o=((t=this._secondaryAnchor.viewPosition)===null||t===void 0?void 0:t.lineNumber)===((i=this._primaryAnchor.viewPosition)===null||i===void 0?void 0:i.lineNumber)?this._secondaryAnchor.viewPosition:null,r=a(o,this._affinity,this._lineHeight);return{primary:s,secondary:r};function a(l,c,d){if(!l)return null;const u=e.visibleRangeForPosition(l);if(!u)return null;const h=l.column===1&&c===3?0:u.left,f=e.getVerticalOffsetForLineNumber(l.lineNumber)-e.scrollTop;return new qX(f,h,d)}}_reduceAnchorCoordinates(e,t,i){if(!t)return e;const s=this._context.configuration.options.get(50);let o=t.left;return oe.endLineNumber||this.domNode.setMaxWidth(this._maxWidth)}prepareRender(e){this._renderData=this._prepareRenderWidget(e)}render(e){var t;if(!this._renderData||this._renderData.kind==="offViewport"){this._isVisible&&(this.domNode.removeAttribute("monaco-visible-content-widget"),this._isVisible=!1,((t=this._renderData)===null||t===void 0?void 0:t.kind)==="offViewport"&&this._renderData.preserveFocus?this.domNode.setTop(-1e3):this.domNode.setVisibility("hidden")),typeof this._actual.afterRender=="function"&&o5(this._actual.afterRender,this._actual,null);return}this.allowEditorOverflow?(this.domNode.setTop(this._renderData.coordinate.top),this.domNode.setLeft(this._renderData.coordinate.left)):(this.domNode.setTop(this._renderData.coordinate.top+e.scrollTop-e.bigNumbersDelta),this.domNode.setLeft(this._renderData.coordinate.left)),this._isVisible||(this.domNode.setVisibility("inherit"),this.domNode.setAttribute("monaco-visible-content-widget","true"),this._isVisible=!0),typeof this._actual.afterRender=="function"&&o5(this._actual.afterRender,this._actual,this._renderData.position)}}class Fy{constructor(e,t){this.modelPosition=e,this.viewPosition=t}}class By{constructor(e,t){this.top=e,this.left=t,this._coordinateBrand=void 0}}class qX{constructor(e,t,i){this.top=e,this.left=t,this.height=i,this._anchorCoordinateBrand=void 0}}function o5(n,e,...t){try{return n.call(e,...t)}catch{return null}}class wce extends X0{constructor(e){super(),this._context=e;const t=this._context.configuration.options,i=t.get(145);this._renderLineHighlight=t.get(96),this._renderLineHighlightOnlyWhenFocus=t.get(97),this._wordWrap=i.isViewportWrapping,this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._selectionIsEmpty=!0,this._focused=!1,this._cursorLineNumbers=[1],this._selections=[new it(1,1,1,1)],this._renderData=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}_readFromSelections(){let e=!1;const t=new Set;for(const o of this._selections)t.add(o.positionLineNumber);const i=Array.from(t);i.sort((o,r)=>o-r),zn(this._cursorLineNumbers,i)||(this._cursorLineNumbers=i,e=!0);const s=this._selections.every(o=>o.isEmpty());return this._selectionIsEmpty!==s&&(this._selectionIsEmpty=s,e=!0),e}onThemeChanged(e){return this._readFromSelections()}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(145);return this._renderLineHighlight=t.get(96),this._renderLineHighlightOnlyWhenFocus=t.get(97),this._wordWrap=i.isViewportWrapping,this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,!0}onCursorStateChanged(e){return this._selections=e.selections,this._readFromSelections()}onFlushed(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollWidthChanged||e.scrollTopChanged}onZonesChanged(e){return!0}onFocusChanged(e){return this._renderLineHighlightOnlyWhenFocus?(this._focused=e.isFocused,!0):!1}prepareRender(e){if(!this._shouldRenderThis()){this._renderData=null;return}const t=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,s=[];for(let r=t;r<=i;r++){const a=r-t;s[a]=""}if(this._wordWrap){const r=this._renderOne(e,!1);for(const a of this._cursorLineNumbers){const l=this._context.viewModel.coordinatesConverter,c=l.convertViewPositionToModelPosition(new ee(a,1)).lineNumber,d=l.convertModelPositionToViewPosition(new ee(c,1)).lineNumber,u=l.convertModelPositionToViewPosition(new ee(c,this._context.viewModel.model.getLineMaxColumn(c))).lineNumber,h=Math.max(d,t),f=Math.min(u,i);for(let g=h;g<=f;g++){const p=g-t;s[p]=r}}}const o=this._renderOne(e,!0);for(const r of this._cursorLineNumbers){if(ri)continue;const a=r-t;s[a]=o}this._renderData=s}render(e,t){if(!this._renderData)return"";const i=t-e;return i>=this._renderData.length?"":this._renderData[i]}_shouldRenderInMargin(){return(this._renderLineHighlight==="gutter"||this._renderLineHighlight==="all")&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}_shouldRenderInContent(){return(this._renderLineHighlight==="line"||this._renderLineHighlight==="all")&&this._selectionIsEmpty&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}}class F8e extends wce{_renderOne(e,t){return`
`}_shouldRenderThis(){return this._shouldRenderInContent()}_shouldRenderOther(){return this._shouldRenderInMargin()}}class B8e extends wce{_renderOne(e,t){return`
`}_shouldRenderThis(){return!0}_shouldRenderOther(){return this._shouldRenderInContent()}}mc((n,e)=>{const t=n.getColor(sce);if(t&&(e.addRule(`.monaco-editor .view-overlays .current-line { background-color: ${t}; }`),e.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { background-color: ${t}; border: none; }`)),!t||t.isTransparent()||n.defines(VX)){const i=n.getColor(VX);i&&(e.addRule(`.monaco-editor .view-overlays .current-line-exact { border: 2px solid ${i}; }`),e.addRule(`.monaco-editor .margin-view-overlays .current-line-exact-margin { border: 2px solid ${i}; }`),Zd(n.type)&&(e.addRule(".monaco-editor .view-overlays .current-line-exact { border-width: 1px; }"),e.addRule(".monaco-editor .margin-view-overlays .current-line-exact-margin { border-width: 1px; }")))}});class W8e extends X0{constructor(e){super(),this._context=e;const t=this._context.configuration.options;this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged||e.scrollWidthChanged}onZonesChanged(e){return!0}prepareRender(e){const t=e.getDecorationsInViewport();let i=[],s=0;for(let l=0,c=t.length;l{if(l.options.zIndexc.options.zIndex)return 1;const d=l.options.className,u=c.options.className;return du?1:A.compareRangesUsingStarts(l.range,c.range)});const o=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,a=[];for(let l=o;l<=r;l++){const c=l-o;a[c]=""}this._renderWholeLineDecorations(e,i,a),this._renderNormalDecorations(e,i,a),this._renderResult=a}_renderWholeLineDecorations(e,t,i){const s=e.visibleRange.startLineNumber,o=e.visibleRange.endLineNumber;for(let r=0,a=t.length;r',d=Math.max(l.range.startLineNumber,s),u=Math.min(l.range.endLineNumber,o);for(let h=d;h<=u;h++){const f=h-s;i[f]+=c}}}_renderNormalDecorations(e,t,i){var s;const o=e.visibleRange.startLineNumber;let r=null,a=!1,l=null,c=!1;for(let d=0,u=t.length;d';a[h]+=b}}}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}class H8e extends Va{constructor(e,t,i,s){super(e);const o=this._context.configuration.options,r=o.get(103),a=o.get(75),l=o.get(40),c=o.get(106),d={listenOnDomNode:i.domNode,className:"editor-scrollable "+MB(e.theme.type),useShadows:!1,lazyRender:!0,vertical:r.vertical,horizontal:r.horizontal,verticalHasArrows:r.verticalHasArrows,horizontalHasArrows:r.horizontalHasArrows,verticalScrollbarSize:r.verticalScrollbarSize,verticalSliderSize:r.verticalSliderSize,horizontalScrollbarSize:r.horizontalScrollbarSize,horizontalSliderSize:r.horizontalSliderSize,handleMouseWheel:r.handleMouseWheel,alwaysConsumeMouseWheel:r.alwaysConsumeMouseWheel,arrowSize:r.arrowSize,mouseWheelScrollSensitivity:a,fastScrollSensitivity:l,scrollPredominantAxis:c,scrollByPage:r.scrollByPage};this.scrollbar=this._register(new MM(t.domNode,d,this._context.viewLayout.getScrollable())),ru.write(this.scrollbar.getDomNode(),6),this.scrollbarDomNode=Di(this.scrollbar.getDomNode()),this.scrollbarDomNode.setPosition("absolute"),this._setLayout();const u=(h,f,g)=>{const p={};{const _=h.scrollTop;_&&(p.scrollTop=this._context.viewLayout.getCurrentScrollTop()+_,h.scrollTop=0)}if(g){const _=h.scrollLeft;_&&(p.scrollLeft=this._context.viewLayout.getCurrentScrollLeft()+_,h.scrollLeft=0)}this._context.viewModel.viewLayout.setScrollPosition(p,1)};this._register(ce(i.domNode,"scroll",h=>u(i.domNode,!0,!0))),this._register(ce(t.domNode,"scroll",h=>u(t.domNode,!0,!1))),this._register(ce(s.domNode,"scroll",h=>u(s.domNode,!0,!1))),this._register(ce(this.scrollbarDomNode.domNode,"scroll",h=>u(this.scrollbarDomNode.domNode,!0,!1)))}dispose(){super.dispose()}_setLayout(){const e=this._context.configuration.options,t=e.get(145);this.scrollbarDomNode.setLeft(t.contentLeft),e.get(73).side==="right"?this.scrollbarDomNode.setWidth(t.contentWidth+t.minimap.minimapWidth):this.scrollbarDomNode.setWidth(t.contentWidth),this.scrollbarDomNode.setHeight(t.height)}getOverviewRulerLayoutInfo(){return this.scrollbar.getOverviewRulerLayoutInfo()}getDomNode(){return this.scrollbarDomNode}delegateVerticalScrollbarPointerDown(e){this.scrollbar.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){this.scrollbar.delegateScrollFromMouseWheelEvent(e)}onConfigurationChanged(e){if(e.hasChanged(103)||e.hasChanged(75)||e.hasChanged(40)){const t=this._context.configuration.options,i=t.get(103),s=t.get(75),o=t.get(40),r=t.get(106),a={vertical:i.vertical,horizontal:i.horizontal,verticalScrollbarSize:i.verticalScrollbarSize,horizontalScrollbarSize:i.horizontalScrollbarSize,scrollByPage:i.scrollByPage,handleMouseWheel:i.handleMouseWheel,mouseWheelScrollSensitivity:s,fastScrollSensitivity:o,scrollPredominantAxis:r};this.scrollbar.updateOptions(a)}return e.hasChanged(145)&&this._setLayout(),!0}onScrollChanged(e){return!0}onThemeChanged(e){return this.scrollbar.updateClassName("editor-scrollable "+MB(this._context.theme.type)),!0}prepareRender(e){}render(e){this.scrollbar.renderNow()}}class FB{constructor(e,t,i,s,o){this.startLineNumber=e,this.endLineNumber=t,this.className=i,this.tooltip=s,this._decorationToRenderBrand=void 0,this.zIndex=o??0}}class V8e{constructor(e,t,i){this.className=e,this.zIndex=t,this.tooltip=i}}class z8e{constructor(){this.decorations=[]}add(e){this.decorations.push(e)}getDecorations(){return this.decorations}}class yce extends X0{_render(e,t,i){const s=[];for(let a=e;a<=t;a++){const l=a-e;s[l]=new z8e}if(i.length===0)return s;i.sort((a,l)=>a.className===l.className?a.startLineNumber===l.startLineNumber?a.endLineNumber-l.endLineNumber:a.startLineNumber-l.startLineNumber:a.classNames)continue;const c=Math.max(a,i),d=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new ee(c,0)),u=this._context.viewModel.glyphLanes.getLanesAtLine(d.lineNumber).indexOf(o.preference.lane);t.push(new j8e(c,u,o.preference.zIndex,o))}}_collectSortedGlyphRenderRequests(e){const t=[];return this._collectDecorationBasedGlyphRenderRequest(e,t),this._collectWidgetBasedGlyphRenderRequest(e,t),t.sort((i,s)=>i.lineNumber===s.lineNumber?i.laneIndex===s.laneIndex?i.zIndex===s.zIndex?s.type===i.type?i.type===0&&s.type===0?i.className0;){const s=t.peek();if(!s)break;const o=t.takeWhile(a=>a.lineNumber===s.lineNumber&&a.laneIndex===s.laneIndex);if(!o||o.length===0)break;const r=o[0];if(r.type===0){const a=[];for(const l of o){if(l.zIndex!==r.zIndex||l.type!==r.type)break;(a.length===0||a[a.length-1]!==l.className)&&a.push(l.className)}i.push(r.accept(a.join(" ")))}else r.widget.renderInfo={lineNumber:r.lineNumber,laneIndex:r.laneIndex}}this._decorationGlyphsToRender=i}render(e){if(!this._glyphMargin){for(const i of Object.values(this._widgets))i.domNode.setDisplay("none");for(;this._managedDomNodes.length>0;){const i=this._managedDomNodes.pop();i==null||i.domNode.remove()}return}const t=Math.round(this._glyphMarginWidth/this._glyphMarginDecorationLaneCount);for(const i of Object.values(this._widgets))if(!i.renderInfo)i.domNode.setDisplay("none");else{const s=e.viewportData.relativeVerticalOffset[i.renderInfo.lineNumber-e.viewportData.startLineNumber],o=this._glyphMarginLeft+i.renderInfo.laneIndex*this._lineHeight;i.domNode.setDisplay("block"),i.domNode.setTop(s),i.domNode.setLeft(o),i.domNode.setWidth(t),i.domNode.setHeight(this._lineHeight)}for(let i=0;ithis._decorationGlyphsToRender.length;){const i=this._managedDomNodes.pop();i==null||i.domNode.remove()}}}class U8e{constructor(e,t,i,s){this.lineNumber=e,this.laneIndex=t,this.zIndex=i,this.className=s,this.type=0}accept(e){return new K8e(this.lineNumber,this.laneIndex,e)}}class j8e{constructor(e,t,i,s){this.lineNumber=e,this.laneIndex=t,this.zIndex=i,this.widget=s,this.type=1}}class K8e{constructor(e,t,i){this.lineNumber=e,this.laneIndex=t,this.combinedClassName=i}}class Sce extends ne{constructor(){super(...arguments),this._isDisposed=!1}dispose(){super.dispose(),this._isDisposed=!0}assertNotDisposed(){if(this._isDisposed)throw new Error("TextModelPart is disposed!")}}function WM(n,e){let t=0,i=0;const s=n.length;for(;is)throw new Gi("Illegal value for lineNumber");const o=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,r=!!(o&&o.offSide);let a=-2,l=-1,c=-2,d=-1;const u=D=>{if(a!==-1&&(a===-2||a>D-1)){a=-1,l=-1;for(let I=D-2;I>=0;I--){const N=this._computeIndentLevel(I);if(N>=0){a=I,l=N;break}}}if(c===-2){c=-1,d=-1;for(let I=D;I=0){c=I,d=N;break}}}};let h=-2,f=-1,g=-2,p=-1;const _=D=>{if(h===-2){h=-1,f=-1;for(let I=D-2;I>=0;I--){const N=this._computeIndentLevel(I);if(N>=0){h=I,f=N;break}}}if(g!==-1&&(g===-2||g=0){g=I,p=N;break}}}};let b=0,w=!0,y=0,S=!0,x=0,k=0;for(let D=0;w||S;D++){const I=e-D,N=e+D;D>1&&(I<1||I1&&(N>s||N>i)&&(S=!1),D>5e4&&(w=!1,S=!1);let P=-1;if(w&&I>=1){const M=this._computeIndentLevel(I-1);M>=0?(c=I-1,d=M,P=Math.ceil(M/this.textModel.getOptions().indentSize)):(u(I),P=this._getIndentLevelForWhitespaceLine(r,l,d))}let O=-1;if(S&&N<=s){const M=this._computeIndentLevel(N-1);M>=0?(h=N-1,f=M,O=Math.ceil(M/this.textModel.getOptions().indentSize)):(_(N),O=this._getIndentLevelForWhitespaceLine(r,f,p))}if(D===0){k=P;continue}if(D===1){if(N<=s&&O>=0&&k+1===O){w=!1,b=N,y=N,x=O;continue}if(I>=1&&P>=0&&P-1===k){S=!1,b=I,y=I,x=P;continue}if(b=e,y=e,x=k,x===0)return{startLineNumber:b,endLineNumber:y,indent:x}}w&&(P>=x?b=I:w=!1),S&&(O>=x?y=N:S=!1)}return{startLineNumber:b,endLineNumber:y,indent:x}}getLinesBracketGuides(e,t,i,s){var o;const r=[];for(let h=e;h<=t;h++)r.push([]);const a=!0,l=this.textModel.bracketPairs.getBracketPairsInRangeWithMinIndentation(new A(e,1,t,this.textModel.getLineMaxColumn(t))).toArray();let c;if(i&&l.length>0){const h=(e<=i.lineNumber&&i.lineNumber<=t?l:this.textModel.bracketPairs.getBracketPairsInRange(A.fromPositions(i)).toArray()).filter(f=>A.strictContainsPosition(f.range,i));c=(o=mL(h,f=>a))===null||o===void 0?void 0:o.range}const d=this.textModel.getOptions().bracketPairColorizationOptions.independentColorPoolPerBracketType,u=new xce;for(const h of l){if(!h.closingBracketRange)continue;const f=c&&h.range.equalsRange(c);if(!f&&!s.includeInactive)continue;const g=u.getInlineClassName(h.nestingLevel,h.nestingLevelOfEqualBracketType,d)+(s.highlightActive&&f?" "+u.activeClassName:""),p=h.openingBracketRange.getStartPosition(),_=h.closingBracketRange.getStartPosition(),b=s.horizontalGuides===jv.Enabled||s.horizontalGuides===jv.EnabledForActive&&f;if(h.range.startLineNumber===h.range.endLineNumber){b&&r[h.range.startLineNumber-e].push(new Dv(-1,h.openingBracketRange.getEndPosition().column,g,new fx(!1,_.column),-1,-1));continue}const w=this.getVisibleColumnFromPosition(_),y=this.getVisibleColumnFromPosition(h.openingBracketRange.getStartPosition()),S=Math.min(y,w,h.minVisibleColumnIndentation+1);let x=!1;fr(this.textModel.getLineContent(h.closingBracketRange.startLineNumber))=e&&y>S&&r[p.lineNumber-e].push(new Dv(S,-1,g,new fx(!1,p.column),-1,-1)),_.lineNumber<=t&&w>S&&r[_.lineNumber-e].push(new Dv(S,-1,g,new fx(!x,_.column),-1,-1)))}for(const h of r)h.sort((f,g)=>f.visibleColumn-g.visibleColumn);return r}getVisibleColumnFromPosition(e){return zs.visibleColumnFromColumn(this.textModel.getLineContent(e.lineNumber),e.column,this.textModel.getOptions().tabSize)+1}getLinesIndentGuides(e,t){this.assertNotDisposed();const i=this.textModel.getLineCount();if(e<1||e>i)throw new Error("Illegal value for startLineNumber");if(t<1||t>i)throw new Error("Illegal value for endLineNumber");const s=this.textModel.getOptions(),o=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,r=!!(o&&o.offSide),a=new Array(t-e+1);let l=-2,c=-1,d=-2,u=-1;for(let h=e;h<=t;h++){const f=h-e,g=this._computeIndentLevel(h-1);if(g>=0){l=h-1,c=g,a[f]=Math.ceil(g/s.indentSize);continue}if(l===-2){l=-1,c=-1;for(let p=h-2;p>=0;p--){const _=this._computeIndentLevel(p);if(_>=0){l=p,c=_;break}}}if(d!==-1&&(d===-2||d=0){d=p,u=_;break}}}a[f]=this._getIndentLevelForWhitespaceLine(r,c,u)}return a}_getIndentLevelForWhitespaceLine(e,t,i){const s=this.textModel.getOptions();return t===-1||i===-1?0:tl||this._maxIndentLeft>0&&w>this._maxIndentLeft)break;const y=b.horizontalLine?b.horizontalLine.top?"horizontal-top":"horizontal-bottom":"vertical",S=b.horizontalLine?((o=(s=e.visibleRangeForPosition(new ee(h,b.horizontalLine.endColumn)))===null||s===void 0?void 0:s.left)!==null&&o!==void 0?o:w+this._spaceWidth)-w:this._spaceWidth;p+=`
`}u[f]=p}this._renderResult=u}getGuidesByLine(e,t,i){const s=this._bracketPairGuideOptions.bracketPairs!==!1?this._context.viewModel.getBracketGuidesInRangeByLine(e,t,i,{highlightActive:this._bracketPairGuideOptions.highlightActiveBracketPair,horizontalGuides:this._bracketPairGuideOptions.bracketPairsHorizontal===!0?jv.Enabled:this._bracketPairGuideOptions.bracketPairsHorizontal==="active"?jv.EnabledForActive:jv.Disabled,includeInactive:this._bracketPairGuideOptions.bracketPairs===!0}):null,o=this._bracketPairGuideOptions.indentation?this._context.viewModel.getLinesIndentGuides(e,t):null;let r=0,a=0,l=0;if(this._bracketPairGuideOptions.highlightActiveIndentation!==!1&&i){const u=this._context.viewModel.getActiveIndentGuide(i.lineNumber,e,t);r=u.startLineNumber,a=u.endLineNumber,l=u.indent}const{indentSize:c}=this._context.viewModel.model.getOptions(),d=[];for(let u=e;u<=t;u++){const h=new Array;d.push(h);const f=s?s[u-e]:[],g=new Lg(f),p=o?o[u-e]:0;for(let _=1;_<=p;_++){const b=(_-1)*c+1,w=(this._bracketPairGuideOptions.highlightActiveIndentation==="always"||f.length===0)&&r<=u&&u<=a&&_===l;h.push(...g.takeWhile(S=>S.visibleColumn!0)||[])}return d}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}function Fb(n){if(!(n&&n.isTransparent()))return n}mc((n,e)=>{const t=[{bracketColor:lce,guideColor:X3e,guideColorActive:n8e},{bracketColor:cce,guideColor:Q3e,guideColorActive:s8e},{bracketColor:dce,guideColor:J3e,guideColorActive:o8e},{bracketColor:uce,guideColor:e8e,guideColorActive:r8e},{bracketColor:hce,guideColor:t8e,guideColorActive:a8e},{bracketColor:fce,guideColor:i8e,guideColorActive:l8e}],i=new xce,s=[{indentColor:yD,indentColorActive:SD},{indentColor:R3e,indentColorActive:B3e},{indentColor:M3e,indentColorActive:W3e},{indentColor:P3e,indentColorActive:H3e},{indentColor:O3e,indentColorActive:V3e},{indentColor:F3e,indentColorActive:z3e}],o=t.map(a=>{var l,c;const d=n.getColor(a.bracketColor),u=n.getColor(a.guideColor),h=n.getColor(a.guideColorActive),f=Fb((l=Fb(u))!==null&&l!==void 0?l:d==null?void 0:d.transparent(.3)),g=Fb((c=Fb(h))!==null&&c!==void 0?c:d);if(!(!f||!g))return{guideColor:f,guideColorActive:g}}).filter(gh),r=s.map(a=>{const l=n.getColor(a.indentColor),c=n.getColor(a.indentColorActive),d=Fb(l),u=Fb(c);if(!(!d||!u))return{indentColor:d,indentColorActive:u}}).filter(gh);if(o.length>0){for(let a=0;a<30;a++){const l=o[a%o.length];e.addRule(`.monaco-editor .${i.getInlineClassNameOfLevel(a).replace(/ /g,".")} { --guide-color: ${l.guideColor}; --guide-color-active: ${l.guideColorActive}; }`)}e.addRule(".monaco-editor .vertical { box-shadow: 1px 0 0 0 var(--guide-color) inset; }"),e.addRule(".monaco-editor .horizontal-top { border-top: 1px solid var(--guide-color); }"),e.addRule(".monaco-editor .horizontal-bottom { border-bottom: 1px solid var(--guide-color); }"),e.addRule(`.monaco-editor .vertical.${i.activeClassName} { box-shadow: 1px 0 0 0 var(--guide-color-active) inset; }`),e.addRule(`.monaco-editor .horizontal-top.${i.activeClassName} { border-top: 1px solid var(--guide-color-active); }`),e.addRule(`.monaco-editor .horizontal-bottom.${i.activeClassName} { border-bottom: 1px solid var(--guide-color-active); }`)}if(r.length>0){for(let a=0;a<30;a++){const l=r[a%r.length];e.addRule(`.monaco-editor .lines-content .core-guide-indent.lvl-${a} { --indent-color: ${l.indentColor}; --indent-color-active: ${l.indentColorActive}; }`)}e.addRule(".monaco-editor .lines-content .core-guide-indent { box-shadow: 1px 0 0 0 var(--indent-color) inset; }"),e.addRule(".monaco-editor .lines-content .core-guide-indent.indent-active { box-shadow: 1px 0 0 0 var(--indent-color-active) inset; }")}});class r5{get didDomLayout(){return this._didDomLayout}readClientRect(){if(!this._clientRectRead){this._clientRectRead=!0;const e=this._domNode.getBoundingClientRect();this.markDidDomLayout(),this._clientRectDeltaLeft=e.left,this._clientRectScale=e.width/this._domNode.offsetWidth}}get clientRectDeltaLeft(){return this._clientRectRead||this.readClientRect(),this._clientRectDeltaLeft}get clientRectScale(){return this._clientRectRead||this.readClientRect(),this._clientRectScale}constructor(e,t){this._domNode=e,this.endNode=t,this._didDomLayout=!1,this._clientRectDeltaLeft=0,this._clientRectScale=1,this._clientRectRead=!1}markDidDomLayout(){this._didDomLayout=!0}}class Z8e{constructor(){this._currentVisibleRange=new A(1,1,1,1)}getCurrentVisibleRange(){return this._currentVisibleRange}setCurrentVisibleRange(e){this._currentVisibleRange=e}}class Y8e{constructor(e,t,i,s,o,r,a){this.minimalReveal=e,this.lineNumber=t,this.startColumn=i,this.endColumn=s,this.startScrollTop=o,this.stopScrollTop=r,this.scrollType=a,this.type="range",this.minLineNumber=t,this.maxLineNumber=t}}class X8e{constructor(e,t,i,s,o){this.minimalReveal=e,this.selections=t,this.startScrollTop=i,this.stopScrollTop=s,this.scrollType=o,this.type="selections";let r=t[0].startLineNumber,a=t[0].endLineNumber;for(let l=1,c=t.length;l{this._updateLineWidthsSlow()},200),this._asyncCheckMonospaceFontAssumptions=new Xi(()=>{this._checkMonospaceFontAssumptions()},2e3),this._lastRenderedData=new Z8e,this._horizontalRevealRequest=null,this._stickyScrollEnabled=s.get(115).enabled,this._maxNumberStickyLines=s.get(115).maxLineCount}dispose(){this._asyncUpdateLineWidths.dispose(),this._asyncCheckMonospaceFontAssumptions.dispose(),super.dispose()}getDomNode(){return this.domNode}createVisibleLine(){return new eh(this._viewLineOptions)}onConfigurationChanged(e){this._visibleLines.onConfigurationChanged(e),e.hasChanged(146)&&(this._maxLineWidth=0);const t=this._context.configuration.options,i=t.get(50),s=t.get(146);return this._lineHeight=t.get(67),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._isViewportWrapping=s.isViewportWrapping,this._revealHorizontalRightPadding=t.get(100),this._cursorSurroundingLines=t.get(29),this._cursorSurroundingLinesStyle=t.get(30),this._canUseLayerHinting=!t.get(32),this._stickyScrollEnabled=t.get(115).enabled,this._maxNumberStickyLines=t.get(115).maxLineCount,So(this.domNode,i),this._onOptionsMaybeChanged(),e.hasChanged(145)&&(this._maxLineWidth=0),!0}_onOptionsMaybeChanged(){const e=this._context.configuration,t=new OX(e,this._context.theme.type);if(!this._viewLineOptions.equals(t)){this._viewLineOptions=t;const i=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();for(let o=i;o<=s;o++)this._visibleLines.getVisibleLine(o).onOptionsChanged(this._viewLineOptions);return!0}return!1}onCursorStateChanged(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();let s=!1;for(let o=t;o<=i;o++)s=this._visibleLines.getVisibleLine(o).onSelectionChanged()||s;return s}onDecorationsChanged(e){{const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();for(let s=t;s<=i;s++)this._visibleLines.getVisibleLine(s).onDecorationsChanged()}return!0}onFlushed(e){const t=this._visibleLines.onFlushed(e);return this._maxLineWidth=0,t}onLinesChanged(e){return this._visibleLines.onLinesChanged(e)}onLinesDeleted(e){return this._visibleLines.onLinesDeleted(e)}onLinesInserted(e){return this._visibleLines.onLinesInserted(e)}onRevealRangeRequest(e){const t=this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(),e.source,e.minimalReveal,e.range,e.selections,e.verticalType);if(t===-1)return!1;let i=this._context.viewLayout.validateScrollPosition({scrollTop:t});e.revealHorizontal?e.range&&e.range.startLineNumber!==e.range.endLineNumber?i={scrollTop:i.scrollTop,scrollLeft:0}:e.range?this._horizontalRevealRequest=new Y8e(e.minimalReveal,e.range.startLineNumber,e.range.startColumn,e.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),i.scrollTop,e.scrollType):e.selections&&e.selections.length>0&&(this._horizontalRevealRequest=new X8e(e.minimalReveal,e.selections,this._context.viewLayout.getCurrentScrollTop(),i.scrollTop,e.scrollType)):this._horizontalRevealRequest=null;const o=Math.abs(this._context.viewLayout.getCurrentScrollTop()-i.scrollTop)<=this._lineHeight?1:e.scrollType;return this._context.viewModel.viewLayout.setScrollPosition(i,o),!0}onScrollChanged(e){if(this._horizontalRevealRequest&&e.scrollLeftChanged&&(this._horizontalRevealRequest=null),this._horizontalRevealRequest&&e.scrollTopChanged){const t=Math.min(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop),i=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(e.scrollTopi)&&(this._horizontalRevealRequest=null)}return this.domNode.setWidth(e.scrollWidth),this._visibleLines.onScrollChanged(e)||!0}onTokensChanged(e){return this._visibleLines.onTokensChanged(e)}onZonesChanged(e){return this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth),this._visibleLines.onZonesChanged(e)}onThemeChanged(e){return this._onOptionsMaybeChanged()}getPositionFromDOMInfo(e,t){const i=this._getViewLineDomNode(e);if(i===null)return null;const s=this._getLineNumberFor(i);if(s===-1||s<1||s>this._context.viewModel.getLineCount())return null;if(this._context.viewModel.getLineMaxColumn(s)===1)return new ee(s,1);const o=this._visibleLines.getStartLineNumber(),r=this._visibleLines.getEndLineNumber();if(sr)return null;let a=this._visibleLines.getVisibleLine(s).getColumnOfNodeOffset(e,t);const l=this._context.viewModel.getLineMinColumn(s);return ai)return-1;const s=new r5(this.domNode.domNode,this._textRangeRestingSpot),o=this._visibleLines.getVisibleLine(e).getWidth(s);return this._updateLineWidthsSlowIfDomDidLayout(s),o}linesVisibleRangesForRange(e,t){if(this.shouldRender())return null;const i=e.endLineNumber,s=A.intersectRanges(e,this._lastRenderedData.getCurrentVisibleRange());if(!s)return null;const o=[];let r=0;const a=new r5(this.domNode.domNode,this._textRangeRestingSpot);let l=0;t&&(l=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new ee(s.startLineNumber,1)).lineNumber);const c=this._visibleLines.getStartLineNumber(),d=this._visibleLines.getEndLineNumber();for(let u=s.startLineNumber;u<=s.endLineNumber;u++){if(ud)continue;const h=u===s.startLineNumber?s.startColumn:1,f=u!==s.endLineNumber,g=f?this._context.viewModel.getLineMaxColumn(u):s.endColumn,p=this._visibleLines.getVisibleLine(u).getVisibleRangesForRange(u,h,g,a);if(p){if(t&&uthis._visibleLines.getEndLineNumber())return null;const s=new r5(this.domNode.domNode,this._textRangeRestingSpot),o=this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(e,t,i,s);return this._updateLineWidthsSlowIfDomDidLayout(s),o}visibleRangeForPosition(e){const t=this._visibleRangesForLineRange(e.lineNumber,e.column,e.column);return t?new X5e(t.outsideRenderedLine,t.ranges[0].left):null}_updateLineWidthsFast(){return this._updateLineWidths(!0)}_updateLineWidthsSlow(){this._updateLineWidths(!1)}_updateLineWidthsSlowIfDomDidLayout(e){e.didDomLayout&&(this._asyncUpdateLineWidths.isScheduled()||(this._asyncUpdateLineWidths.cancel(),this._updateLineWidthsSlow()))}_updateLineWidths(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();let s=1,o=!0;for(let r=t;r<=i;r++){const a=this._visibleLines.getVisibleLine(r);if(e&&!a.getWidthIsFast()){o=!1;continue}s=Math.max(s,a.getWidth(null))}return o&&t===1&&i===this._context.viewModel.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(s),o}_checkMonospaceFontAssumptions(){let e=-1,t=-1;const i=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();for(let o=i;o<=s;o++){const r=this._visibleLines.getVisibleLine(o);if(r.needsMonospaceFontCheck()){const a=r.getWidth(null);a>t&&(t=a,e=o)}}if(e!==-1&&!this._visibleLines.getVisibleLine(e).monospaceAssumptionsAreValid())for(let o=i;o<=s;o++)this._visibleLines.getVisibleLine(o).onMonospaceAssumptionsInvalidated()}prepareRender(){throw new Error("Not supported")}render(){throw new Error("Not supported")}renderText(e){if(this._visibleLines.renderLines(e),this._lastRenderedData.setCurrentVisibleRange(e.visibleRange),this.domNode.setWidth(this._context.viewLayout.getScrollWidth()),this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(),1e6)),this._horizontalRevealRequest){const i=this._horizontalRevealRequest;if(e.startLineNumber<=i.minLineNumber&&i.maxLineNumber<=e.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();const s=this._computeScrollLeftToReveal(i);s&&(this._isViewportWrapping||this._ensureMaxLineWidth(s.maxHorizontalOffset),this._context.viewModel.viewLayout.setScrollPosition({scrollLeft:s.scrollLeft},i.scrollType))}}if(this._updateLineWidthsFast()?this._asyncUpdateLineWidths.cancel():this._asyncUpdateLineWidths.schedule(),Br&&!this._asyncCheckMonospaceFontAssumptions.isScheduled()){const i=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();for(let o=i;o<=s;o++)if(this._visibleLines.getVisibleLine(o).needsMonospaceFontCheck()){this._asyncCheckMonospaceFontAssumptions.schedule();break}}this._linesContent.setLayerHinting(this._canUseLayerHinting),this._linesContent.setContain("strict");const t=this._context.viewLayout.getCurrentScrollTop()-e.bigNumbersDelta;this._linesContent.setTop(-t),this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())}_ensureMaxLineWidth(e){const t=Math.ceil(e);this._maxLineWidth0){let b=o[0].startLineNumber,w=o[0].endLineNumber;for(let y=1,S=o.length;yl){if(!d)return-1;_=u}else if(r===5||r===6)if(r===6&&a<=u&&h<=c)_=a;else{const b=Math.max(5*this._lineHeight,l*.2),w=u-b,y=h-l;_=Math.max(y,w)}else if(r===1||r===2)if(r===2&&a<=u&&h<=c)_=a;else{const b=(u+h)/2;_=Math.max(0,b-l/2)}else _=this._computeMinimumScrolling(a,c,u,h,r===3,r===4);return _}_computeScrollLeftToReveal(e){const t=this._context.viewLayout.getCurrentViewport(),i=this._context.configuration.options.get(145),s=t.left,o=s+t.width-i.verticalScrollbarWidth;let r=1073741824,a=0;if(e.type==="range"){const c=this._visibleRangesForLineRange(e.lineNumber,e.startColumn,e.endColumn);if(!c)return null;for(const d of c.ranges)r=Math.min(r,Math.round(d.left)),a=Math.max(a,Math.round(d.left+d.width))}else for(const c of e.selections){if(c.startLineNumber!==c.endLineNumber)return null;const d=this._visibleRangesForLineRange(c.startLineNumber,c.startColumn,c.endColumn);if(!d)return null;for(const u of d.ranges)r=Math.min(r,Math.round(u.left)),a=Math.max(a,Math.round(u.left+u.width))}return e.minimalReveal||(r=Math.max(0,r-HM.HORIZONTAL_EXTRA_PX),a+=this._revealHorizontalRightPadding),e.type==="selections"&&a-r>t.width?null:{scrollLeft:this._computeMinimumScrolling(s,o,r,a),maxHorizontalOffset:a}}_computeMinimumScrolling(e,t,i,s,o,r){e=e|0,t=t|0,i=i|0,s=s|0,o=!!o,r=!!r;const a=t-e;if(s-it)return Math.max(0,s-a)}else return i;return e}}HM.HORIZONTAL_EXTRA_PX=30;class Q8e extends yce{constructor(e){super(),this._context=e;const i=this._context.configuration.options.get(145);this._decorationsLeft=i.decorationsLeft,this._decorationsWidth=i.decorationsWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const i=this._context.configuration.options.get(145);return this._decorationsLeft=i.decorationsLeft,this._decorationsWidth=i.decorationsWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_getDecorations(e){var t,i;const s=e.getDecorationsInViewport(),o=[];let r=0;for(let a=0,l=s.length;a',l=[];for(let c=t;c<=i;c++){const d=c-t,u=s[d].getDecorations();let h="";for(const f of u){let g='
';o[a]=c}this._renderResult=o}render(e,t){return this._renderResult?this._renderResult[t-e]:""}}class pl{constructor(e,t,i,s){this._rgba8Brand=void 0,this.r=pl._clamp(e),this.g=pl._clamp(t),this.b=pl._clamp(i),this.a=pl._clamp(s)}equals(e){return this.r===e.r&&this.g===e.g&&this.b===e.b&&this.a===e.a}static _clamp(e){return e<0?0:e>255?255:e|0}}pl.Empty=new pl(0,0,0,0);class LD extends ne{static getInstance(){return this._INSTANCE||(this._INSTANCE=new LD),this._INSTANCE}constructor(){super(),this._onDidChange=new X,this.onDidChange=this._onDidChange.event,this._updateColorMap(),this._register(Zn.onDidChange(e=>{e.changedColorMap&&this._updateColorMap()}))}_updateColorMap(){const e=Zn.getColorMap();if(!e){this._colors=[pl.Empty],this._backgroundIsLight=!0;return}this._colors=[pl.Empty];for(let i=1;i=.5,this._onDidChange.fire(void 0)}getColor(e){return(e<1||e>=this._colors.length)&&(e=2),this._colors[e]}backgroundIsLight(){return this._backgroundIsLight}}LD._INSTANCE=null;const e7e=(()=>{const n=[];for(let e=32;e<=126;e++)n.push(e);return n.push(65533),n})(),t7e=(n,e)=>(n-=32,n<0||n>96?e<=2?(n+96)%96:95:n);class TL{constructor(e,t){this.scale=t,this._minimapCharRendererBrand=void 0,this.charDataNormal=TL.soften(e,12/15),this.charDataLight=TL.soften(e,50/60)}static soften(e,t){const i=new Uint8ClampedArray(e.length);for(let s=0,o=e.length;se.width||i+g>e.height){console.warn("bad render request outside image data");return}const p=d?this.charDataLight:this.charDataNormal,_=t7e(s,c),b=e.width*4,w=a.r,y=a.g,S=a.b,x=o.r-w,k=o.g-y,D=o.b-S,I=Math.max(r,l),N=e.data;let P=_*h*f,O=i*b+t*4;for(let M=0;Me.width||i+u>e.height){console.warn("bad render request outside image data");return}const h=e.width*4,f=.5*(o/255),g=r.r,p=r.g,_=r.b,b=s.r-g,w=s.g-p,y=s.b-_,S=g+b*f,x=p+w*f,k=_+y*f,D=Math.max(o,a),I=e.data;let N=i*h+t*4;for(let P=0;P{const e=new Uint8ClampedArray(n.length/2);for(let t=0;t>1]=GX[n[t]]<<4|GX[n[t+1]]&15;return e},YX={1:Am(()=>ZX("0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792")),2:Am(()=>ZX("000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126"))};class gx{static create(e,t){if(this.lastCreated&&e===this.lastCreated.scale&&t===this.lastFontFamily)return this.lastCreated;let i;return YX[e]?i=new TL(YX[e](),e):i=gx.createFromSampleData(gx.createSampleData(t).data,e),this.lastFontFamily=t,this.lastCreated=i,i}static createSampleData(e){const t=document.createElement("canvas"),i=t.getContext("2d");t.style.height="16px",t.height=16,t.width=96*10,t.style.width=96*10+"px",i.fillStyle="#ffffff",i.font=`bold 16px ${e}`,i.textBaseline="middle";let s=0;for(const o of e7e)i.fillText(String.fromCharCode(o),s,16/2),s+=10;return i.getImageData(0,0,96*10,16)}static createFromSampleData(e,t){if(e.length!==61440)throw new Error("Unexpected source in MinimapCharRenderer");const s=gx._downsample(e,t);return new TL(s,t)}static _downsampleChar(e,t,i,s,o){const r=1*o,a=2*o;let l=s,c=0;for(let d=0;d0){const c=255/l;for(let d=0;dgx.create(this.fontScale,l.fontFamily)),this.defaultBackgroundColor=i.getColor(2),this.backgroundColor=iC._getMinimapBackground(t,this.defaultBackgroundColor),this.foregroundAlpha=iC._getMinimapForegroundOpacity(t)}static _getMinimapBackground(e,t){const i=e.getColor($Fe);return i?new pl(i.rgba.r,i.rgba.g,i.rgba.b,Math.round(255*i.rgba.a)):t}static _getMinimapForegroundOpacity(e){const t=e.getColor(UFe);return t?pl._clamp(Math.round(255*t.rgba.a)):255}static _getSectionHeaderColor(e,t){const i=e.getColor(Ql);return i?new pl(i.rgba.r,i.rgba.g,i.rgba.b,Math.round(255*i.rgba.a)):t}equals(e){return this.renderMinimap===e.renderMinimap&&this.size===e.size&&this.minimapHeightIsEditorHeight===e.minimapHeightIsEditorHeight&&this.scrollBeyondLastLine===e.scrollBeyondLastLine&&this.paddingTop===e.paddingTop&&this.paddingBottom===e.paddingBottom&&this.showSlider===e.showSlider&&this.autohide===e.autohide&&this.pixelRatio===e.pixelRatio&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.lineHeight===e.lineHeight&&this.minimapLeft===e.minimapLeft&&this.minimapWidth===e.minimapWidth&&this.minimapHeight===e.minimapHeight&&this.canvasInnerWidth===e.canvasInnerWidth&&this.canvasInnerHeight===e.canvasInnerHeight&&this.canvasOuterWidth===e.canvasOuterWidth&&this.canvasOuterHeight===e.canvasOuterHeight&&this.isSampling===e.isSampling&&this.editorHeight===e.editorHeight&&this.fontScale===e.fontScale&&this.minimapLineHeight===e.minimapLineHeight&&this.minimapCharWidth===e.minimapCharWidth&&this.sectionHeaderFontSize===e.sectionHeaderFontSize&&this.sectionHeaderLetterSpacing===e.sectionHeaderLetterSpacing&&this.defaultBackgroundColor&&this.defaultBackgroundColor.equals(e.defaultBackgroundColor)&&this.backgroundColor&&this.backgroundColor.equals(e.backgroundColor)&&this.foregroundAlpha===e.foregroundAlpha}}class px{constructor(e,t,i,s,o,r,a,l,c){this.scrollTop=e,this.scrollHeight=t,this.sliderNeeded=i,this._computedSliderRatio=s,this.sliderTop=o,this.sliderHeight=r,this.topPaddingLineCount=a,this.startLineNumber=l,this.endLineNumber=c}getDesiredScrollTopFromDelta(e){return Math.round(this.scrollTop+e/this._computedSliderRatio)}getDesiredScrollTopFromTouchLocation(e){return Math.round((e-this.sliderHeight/2)/this._computedSliderRatio)}intersectWithViewport(e){const t=Math.max(this.startLineNumber,e.startLineNumber),i=Math.min(this.endLineNumber,e.endLineNumber);return t>i?null:[t,i]}getYForLineNumber(e,t){return+(e-this.startLineNumber+this.topPaddingLineCount)*t}static create(e,t,i,s,o,r,a,l,c,d,u){const h=e.pixelRatio,f=e.minimapLineHeight,g=Math.floor(e.canvasInnerHeight/f),p=e.lineHeight;if(e.minimapHeightIsEditorHeight){let k=l*e.lineHeight+e.paddingTop+e.paddingBottom;e.scrollBeyondLastLine&&(k+=Math.max(0,o-e.lineHeight-e.paddingBottom));const D=Math.max(1,Math.floor(o*o/k)),I=Math.max(0,e.minimapHeight-D),N=I/(d-o),P=c*N,O=I>0,M=Math.floor(e.canvasInnerHeight/e.minimapLineHeight),z=Math.floor(e.paddingTop/e.lineHeight);return new px(c,d,O,N,P,D,z,1,Math.min(a,M))}let _;if(r&&i!==a){const k=i-t+1;_=Math.floor(k*f/h)}else{const k=o/p;_=Math.floor(k*f/h)}const b=Math.floor(e.paddingTop/p);let w=Math.floor(e.paddingBottom/p);if(e.scrollBeyondLastLine){const k=o/p;w=Math.max(w,k-1)}let y;if(w>0){const k=o/p;y=(b+a+w-k-1)*f/h}else y=Math.max(0,(b+a)*f/h-_);y=Math.min(e.minimapHeight-_,y);const S=y/(d-o),x=c*S;if(g>=b+a+w){const k=y>0;return new px(c,d,k,S,x,_,b,1,a)}else{let k;t>1?k=t+b:k=Math.max(1,c/p);let D,I=Math.max(1,Math.floor(k-x*h/f));Ic&&(I=Math.min(I,u.startLineNumber),D=Math.max(D,u.topPaddingLineCount)),u.scrollTop=e.paddingTop?O=(t-I+D+P)*f/h:O=c/e.paddingTop*(D+P)*f/h,new px(c,d,!0,S,O,_,D,I,N)}}}class iA{constructor(e){this.dy=e}onContentChanged(){this.dy=-1}onTokensChanged(){this.dy=-1}}iA.INVALID=new iA(-1);class XX{constructor(e,t,i){this.renderedLayout=e,this._imageData=t,this._renderedLines=new vce(()=>iA.INVALID),this._renderedLines._set(e.startLineNumber,i)}linesEquals(e){if(!this.scrollEquals(e))return!1;const i=this._renderedLines._get().lines;for(let s=0,o=i.length;s1){for(let b=0,w=s-1;b0&&this.minimapLines[i-1]>=e;)i--;let s=this.modelLineToMinimapLine(t)-1;for(;s+1t)return null}return[i+1,s+1]}decorationLineRangeToMinimapLineRange(e,t){let i=this.modelLineToMinimapLine(e),s=this.modelLineToMinimapLine(t);return e!==t&&s===i&&(s===this.minimapLines.length?i>1&&i--:s++),[i,s]}onLinesDeleted(e){const t=e.toLineNumber-e.fromLineNumber+1;let i=this.minimapLines.length,s=0;for(let o=this.minimapLines.length-1;o>=0&&!(this.minimapLines[o]=0&&!(this.minimapLines[i]0,scrollWidth:e.scrollWidth,scrollHeight:e.scrollHeight,viewportStartLineNumber:t,viewportEndLineNumber:i,viewportStartLineNumberVerticalOffset:e.getVerticalOffsetForLineNumber(t),scrollTop:e.scrollTop,scrollLeft:e.scrollLeft,viewportWidth:e.viewportWidth,viewportHeight:e.viewportHeight};this._actual.render(s)}_recreateLineSampling(){this._minimapSelections=null;const e=!!this._samplingState,[t,i]=NL.compute(this.options,this._context.viewModel.getLineCount(),this._samplingState);if(this._samplingState=t,e&&this._samplingState)for(const s of i)switch(s.type){case"deleted":this._actual.onLinesDeleted(s.deleteFromLineNumber,s.deleteToLineNumber);break;case"inserted":this._actual.onLinesInserted(s.insertFromLineNumber,s.insertToLineNumber);break;case"flush":this._actual.onFlushed();break}}getLineCount(){return this._samplingState?this._samplingState.minimapLines.length:this._context.viewModel.getLineCount()}getRealLineCount(){return this._context.viewModel.getLineCount()}getLineContent(e){return this._samplingState?this._context.viewModel.getLineContent(this._samplingState.minimapLines[e-1]):this._context.viewModel.getLineContent(e)}getLineMaxColumn(e){return this._samplingState?this._context.viewModel.getLineMaxColumn(this._samplingState.minimapLines[e-1]):this._context.viewModel.getLineMaxColumn(e)}getMinimapLinesRenderingData(e,t,i){if(this._samplingState){const s=[];for(let o=0,r=t-e+1;o{var o;return!(!((o=s.options.minimap)===null||o===void 0)&&o.sectionHeaderStyle)});if(this._samplingState){const s=[];for(const o of i){if(!o.options.minimap)continue;const r=o.range,a=this._samplingState.modelLineToMinimapLine(r.startLineNumber),l=this._samplingState.modelLineToMinimapLine(r.endLineNumber);s.push(new Mle(new A(a,r.startColumn,l,r.endColumn),o.options))}return s}return i}getSectionHeaderDecorationsInViewport(e,t){const i=this.options.minimapLineHeight,o=this.options.sectionHeaderFontSize/i;return e=Math.floor(Math.max(1,e-o)),this._getMinimapDecorationsInViewport(e,t).filter(r=>{var a;return!!(!((a=r.options.minimap)===null||a===void 0)&&a.sectionHeaderStyle)})}_getMinimapDecorationsInViewport(e,t){let i;if(this._samplingState){const s=this._samplingState.minimapLines[e-1],o=this._samplingState.minimapLines[t-1];i=new A(s,1,o,this._context.viewModel.getLineMaxColumn(o))}else i=new A(e,1,t,this._context.viewModel.getLineMaxColumn(t));return this._context.viewModel.getMinimapDecorationsInRange(i)}getSectionHeaderText(e,t){var i;const s=(i=e.options.minimap)===null||i===void 0?void 0:i.sectionHeaderText;if(!s)return null;const o=this._sectionHeaderCache.get(s);if(o)return o;const r=t(s);return this._sectionHeaderCache.set(s,r),r}getOptions(){return this._context.viewModel.model.getOptions()}revealLineNumber(e){this._samplingState&&(e=this._samplingState.minimapLines[e-1]),this._context.viewModel.revealRange("mouse",!1,new A(e,1,e,1),1,0)}setScrollTop(e){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:e},1)}}class k1 extends ne{constructor(e,t){super(),this._renderDecorations=!1,this._gestureInProgress=!1,this._theme=e,this._model=t,this._lastRenderData=null,this._buffers=null,this._selectionColor=this._theme.getColor(AX),this._domNode=Di(document.createElement("div")),ru.write(this._domNode,9),this._domNode.setClassName(this._getMinimapDomNodeClassName()),this._domNode.setPosition("absolute"),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._shadow=Di(document.createElement("div")),this._shadow.setClassName("minimap-shadow-hidden"),this._domNode.appendChild(this._shadow),this._canvas=Di(document.createElement("canvas")),this._canvas.setPosition("absolute"),this._canvas.setLeft(0),this._domNode.appendChild(this._canvas),this._decorationsCanvas=Di(document.createElement("canvas")),this._decorationsCanvas.setPosition("absolute"),this._decorationsCanvas.setClassName("minimap-decorations-layer"),this._decorationsCanvas.setLeft(0),this._domNode.appendChild(this._decorationsCanvas),this._slider=Di(document.createElement("div")),this._slider.setPosition("absolute"),this._slider.setClassName("minimap-slider"),this._slider.setLayerHinting(!0),this._slider.setContain("strict"),this._domNode.appendChild(this._slider),this._sliderHorizontal=Di(document.createElement("div")),this._sliderHorizontal.setPosition("absolute"),this._sliderHorizontal.setClassName("minimap-slider-horizontal"),this._slider.appendChild(this._sliderHorizontal),this._applyLayout(),this._pointerDownListener=rs(this._domNode.domNode,Le.POINTER_DOWN,i=>{if(i.preventDefault(),this._model.options.renderMinimap===0||!this._lastRenderData)return;if(this._model.options.size!=="proportional"){if(i.button===0&&this._lastRenderData){const c=bs(this._slider.domNode),d=c.top+c.height/2;this._startSliderDragging(i,d,this._lastRenderData.renderedLayout)}return}const o=this._model.options.minimapLineHeight,r=this._model.options.canvasInnerHeight/this._model.options.canvasOuterHeight*i.offsetY;let l=Math.floor(r/o)+this._lastRenderData.renderedLayout.startLineNumber-this._lastRenderData.renderedLayout.topPaddingLineCount;l=Math.min(l,this._model.getLineCount()),this._model.revealLineNumber(l)}),this._sliderPointerMoveMonitor=new Bw,this._sliderPointerDownListener=rs(this._slider.domNode,Le.POINTER_DOWN,i=>{i.preventDefault(),i.stopPropagation(),i.button===0&&this._lastRenderData&&this._startSliderDragging(i,i.pageY,this._lastRenderData.renderedLayout)}),this._gestureDisposable=hn.addTarget(this._domNode.domNode),this._sliderTouchStartListener=ce(this._domNode.domNode,fn.Start,i=>{i.preventDefault(),i.stopPropagation(),this._lastRenderData&&(this._slider.toggleClassName("active",!0),this._gestureInProgress=!0,this.scrollDueToTouchEvent(i))},{passive:!1}),this._sliderTouchMoveListener=ce(this._domNode.domNode,fn.Change,i=>{i.preventDefault(),i.stopPropagation(),this._lastRenderData&&this._gestureInProgress&&this.scrollDueToTouchEvent(i)},{passive:!1}),this._sliderTouchEndListener=rs(this._domNode.domNode,fn.End,i=>{i.preventDefault(),i.stopPropagation(),this._gestureInProgress=!1,this._slider.toggleClassName("active",!1)})}_startSliderDragging(e,t,i){if(!e.target||!(e.target instanceof Element))return;const s=e.pageX;this._slider.toggleClassName("active",!0);const o=(r,a)=>{const l=bs(this._domNode.domNode),c=Math.min(Math.abs(a-s),Math.abs(a-l.left),Math.abs(a-l.left-l.width));if(Mo&&c>n7e){this._model.setScrollTop(i.scrollTop);return}const d=r-t;this._model.setScrollTop(i.getDesiredScrollTopFromDelta(d))};e.pageY!==t&&o(e.pageY,s),this._sliderPointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,r=>o(r.pageY,r.pageX),()=>{this._slider.toggleClassName("active",!1)})}scrollDueToTouchEvent(e){const t=this._domNode.domNode.getBoundingClientRect().top,i=this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(e.pageY-t);this._model.setScrollTop(i)}dispose(){this._pointerDownListener.dispose(),this._sliderPointerMoveMonitor.dispose(),this._sliderPointerDownListener.dispose(),this._gestureDisposable.dispose(),this._sliderTouchStartListener.dispose(),this._sliderTouchMoveListener.dispose(),this._sliderTouchEndListener.dispose(),super.dispose()}_getMinimapDomNodeClassName(){const e=["minimap"];return this._model.options.showSlider==="always"?e.push("slider-always"):e.push("slider-mouseover"),this._model.options.autohide&&e.push("autohide"),e.join(" ")}getDomNode(){return this._domNode}_applyLayout(){this._domNode.setLeft(this._model.options.minimapLeft),this._domNode.setWidth(this._model.options.minimapWidth),this._domNode.setHeight(this._model.options.minimapHeight),this._shadow.setHeight(this._model.options.minimapHeight),this._canvas.setWidth(this._model.options.canvasOuterWidth),this._canvas.setHeight(this._model.options.canvasOuterHeight),this._canvas.domNode.width=this._model.options.canvasInnerWidth,this._canvas.domNode.height=this._model.options.canvasInnerHeight,this._decorationsCanvas.setWidth(this._model.options.canvasOuterWidth),this._decorationsCanvas.setHeight(this._model.options.canvasOuterHeight),this._decorationsCanvas.domNode.width=this._model.options.canvasInnerWidth,this._decorationsCanvas.domNode.height=this._model.options.canvasInnerHeight,this._slider.setWidth(this._model.options.minimapWidth)}_getBuffer(){return this._buffers||this._model.options.canvasInnerWidth>0&&this._model.options.canvasInnerHeight>0&&(this._buffers=new Hz(this._canvas.domNode.getContext("2d"),this._model.options.canvasInnerWidth,this._model.options.canvasInnerHeight,this._model.options.backgroundColor)),this._buffers?this._buffers.getBuffer():null}onDidChangeOptions(){this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName())}onSelectionChanged(){return this._renderDecorations=!0,!0}onDecorationsChanged(){return this._renderDecorations=!0,!0}onFlushed(){return this._lastRenderData=null,!0}onLinesChanged(e,t){return this._lastRenderData?this._lastRenderData.onLinesChanged(e,t):!1}onLinesDeleted(e,t){var i;return(i=this._lastRenderData)===null||i===void 0||i.onLinesDeleted(e,t),!0}onLinesInserted(e,t){var i;return(i=this._lastRenderData)===null||i===void 0||i.onLinesInserted(e,t),!0}onScrollChanged(){return this._renderDecorations=!0,!0}onThemeChanged(){return this._selectionColor=this._theme.getColor(AX),this._renderDecorations=!0,!0}onTokensChanged(e){return this._lastRenderData?this._lastRenderData.onTokensChanged(e):!1}onTokensColorsChanged(){return this._lastRenderData=null,this._buffers=null,!0}onZonesChanged(){return this._lastRenderData=null,!0}render(e){if(this._model.options.renderMinimap===0){this._shadow.setClassName("minimap-shadow-hidden"),this._sliderHorizontal.setWidth(0),this._sliderHorizontal.setHeight(0);return}e.scrollLeft+e.viewportWidth>=e.scrollWidth?this._shadow.setClassName("minimap-shadow-hidden"):this._shadow.setClassName("minimap-shadow-visible");const i=px.create(this._model.options,e.viewportStartLineNumber,e.viewportEndLineNumber,e.viewportStartLineNumberVerticalOffset,e.viewportHeight,e.viewportContainsWhitespaceGaps,this._model.getLineCount(),this._model.getRealLineCount(),e.scrollTop,e.scrollHeight,this._lastRenderData?this._lastRenderData.renderedLayout:null);this._slider.setDisplay(i.sliderNeeded?"block":"none"),this._slider.setTop(i.sliderTop),this._slider.setHeight(i.sliderHeight),this._sliderHorizontal.setLeft(0),this._sliderHorizontal.setWidth(this._model.options.minimapWidth),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(i.sliderHeight),this.renderDecorations(i),this._lastRenderData=this.renderLines(i)}renderDecorations(e){if(this._renderDecorations){this._renderDecorations=!1;const t=this._model.getSelections();t.sort(A.compareRangesUsingStarts);const i=this._model.getMinimapDecorationsInViewport(e.startLineNumber,e.endLineNumber);i.sort((h,f)=>(h.options.zIndex||0)-(f.options.zIndex||0));const{canvasInnerWidth:s,canvasInnerHeight:o}=this._model.options,r=this._model.options.minimapLineHeight,a=this._model.options.minimapCharWidth,l=this._model.getOptions().tabSize,c=this._decorationsCanvas.domNode.getContext("2d");c.clearRect(0,0,s,o);const d=new QX(e.startLineNumber,e.endLineNumber,!1);this._renderSelectionLineHighlights(c,t,d,e,r),this._renderDecorationsLineHighlights(c,i,d,e,r);const u=new QX(e.startLineNumber,e.endLineNumber,null);this._renderSelectionsHighlights(c,t,u,e,r,l,a,s),this._renderDecorationsHighlights(c,i,u,e,r,l,a,s),this._renderSectionHeaders(e)}}_renderSelectionLineHighlights(e,t,i,s,o){if(!this._selectionColor||this._selectionColor.isTransparent())return;e.fillStyle=this._selectionColor.transparent(.5).toString();let r=0,a=0;for(const l of t){const c=s.intersectWithViewport(l);if(!c)continue;const[d,u]=c;for(let g=d;g<=u;g++)i.set(g,!0);const h=s.getYForLineNumber(d,o),f=s.getYForLineNumber(u,o);a>=h||(a>r&&e.fillRect(Ou,r,e.canvas.width,a-r),r=h),a=f}a>r&&e.fillRect(Ou,r,e.canvas.width,a-r)}_renderDecorationsLineHighlights(e,t,i,s,o){const r=new Map;for(let a=t.length-1;a>=0;a--){const l=t[a],c=l.options.minimap;if(!c||c.position!==1)continue;const d=s.intersectWithViewport(l.range);if(!d)continue;const[u,h]=d,f=c.getColor(this._theme.value);if(!f||f.isTransparent())continue;let g=r.get(f.toString());g||(g=f.transparent(.5).toString(),r.set(f.toString(),g)),e.fillStyle=g;for(let p=u;p<=h;p++){if(i.has(p))continue;i.set(p,!0);const _=s.getYForLineNumber(u,o);e.fillRect(Ou,_,e.canvas.width,o)}}}_renderSelectionsHighlights(e,t,i,s,o,r,a,l){if(!(!this._selectionColor||this._selectionColor.isTransparent()))for(const c of t){const d=s.intersectWithViewport(c);if(!d)continue;const[u,h]=d;for(let f=u;f<=h;f++)this.renderDecorationOnLine(e,i,c,this._selectionColor,s,f,o,o,r,a,l)}}_renderDecorationsHighlights(e,t,i,s,o,r,a,l){for(const c of t){const d=c.options.minimap;if(!d)continue;const u=s.intersectWithViewport(c.range);if(!u)continue;const[h,f]=u,g=d.getColor(this._theme.value);if(!(!g||g.isTransparent()))for(let p=h;p<=f;p++)switch(d.position){case 1:this.renderDecorationOnLine(e,i,c.range,g,s,p,o,o,r,a,l);continue;case 2:{const _=s.getYForLineNumber(p,o);this.renderDecoration(e,g,2,_,s7e,o);continue}}}}renderDecorationOnLine(e,t,i,s,o,r,a,l,c,d,u){const h=o.getYForLineNumber(r,l);if(h+a<0||h>this._model.options.canvasInnerHeight)return;const{startLineNumber:f,endLineNumber:g}=i,p=f===r?i.startColumn:1,_=g===r?i.endColumn:this._model.getLineMaxColumn(r),b=this.getXOffsetForPosition(t,r,p,c,d,u),w=this.getXOffsetForPosition(t,r,_,c,d,u);this.renderDecoration(e,s,b,h,w-b,a)}getXOffsetForPosition(e,t,i,s,o,r){if(i===1)return Ou;if((i-1)*o>=r)return r;let l=e.get(t);if(!l){const c=this._model.getLineContent(t);l=[Ou];let d=Ou;for(let u=1;u=r){l[u]=r;break}l[u]=g,d=g}e.set(t,l)}return i-1_.range.startLineNumber-b.range.startLineNumber);const p=k1._fitSectionHeader.bind(null,f,a-Ou);for(const _ of g){const b=e.getYForLineNumber(_.range.startLineNumber,i)+s,w=b-s,y=w+2,S=this._model.getSectionHeaderText(_,p);k1._renderSectionLabel(f,S,((t=_.options.minimap)===null||t===void 0?void 0:t.sectionHeaderStyle)===2,c,u,a,w,r,b,y)}}static _fitSectionHeader(e,t,i){if(!i)return i;const s="…",o=e.measureText(i).width,r=e.measureText(s).width;if(o<=t||o<=r)return i;const a=i.length,l=o/i.length,c=Math.floor((t-r)/l)-1;let d=Math.ceil(c/2);for(;d>0&&/\s/.test(i[d-1]);)--d;return i.substring(0,d)+s+i.substring(a-(c-d))}static _renderSectionLabel(e,t,i,s,o,r,a,l,c,d){t&&(e.fillStyle=s,e.fillRect(0,a,r,l),e.fillStyle=o,e.fillText(t,Ou,c)),i&&(e.beginPath(),e.moveTo(0,d),e.lineTo(r,d),e.closePath(),e.stroke())}renderLines(e){const t=e.startLineNumber,i=e.endLineNumber,s=this._model.options.minimapLineHeight;if(this._lastRenderData&&this._lastRenderData.linesEquals(e)){const ae=this._lastRenderData._get();return new XX(e,ae.imageData,ae.lines)}const o=this._getBuffer();if(!o)return null;const[r,a,l]=k1._renderUntouchedLines(o,e.topPaddingLineCount,t,i,s,this._lastRenderData),c=this._model.getMinimapLinesRenderingData(t,i,l),d=this._model.getOptions().tabSize,u=this._model.options.defaultBackgroundColor,h=this._model.options.backgroundColor,f=this._model.options.foregroundAlpha,g=this._model.tokensColorTracker,p=g.backgroundIsLight(),_=this._model.options.renderMinimap,b=this._model.options.charRenderer(),w=this._model.options.fontScale,y=this._model.options.minimapCharWidth,x=(_===1?2:3)*w,k=s>x?Math.floor((s-x)/2):0,D=h.a/255,I=new pl(Math.round((h.r-u.r)*D+u.r),Math.round((h.g-u.g)*D+u.g),Math.round((h.b-u.b)*D+u.b),255);let N=e.topPaddingLineCount*s;const P=[];for(let ae=0,se=i-t+1;ae=0&&Ow)return;const M=_.charCodeAt(x);if(M===9){const z=h-(x+k)%h;k+=z-1,S+=z*r}else if(M===32)S+=r;else{const z=Mm(M)?2:1;for(let K=0;Kw)return}}}}}class QX{constructor(e,t,i){this._startLineNumber=e,this._endLineNumber=t,this._defaultValue=i,this._values=[];for(let s=0,o=this._endLineNumber-this._startLineNumber+1;sthis._endLineNumber||(this._values[e-this._startLineNumber]=t)}get(e){return ethis._endLineNumber?this._defaultValue:this._values[e-this._startLineNumber]}}class r7e extends Va{constructor(e,t){super(e),this._viewDomNode=t;const s=this._context.configuration.options.get(145);this._widgets={},this._verticalScrollbarWidth=s.verticalScrollbarWidth,this._minimapWidth=s.minimap.minimapWidth,this._horizontalScrollbarHeight=s.horizontalScrollbarHeight,this._editorHeight=s.height,this._editorWidth=s.width,this._viewDomNodeRect={top:0,left:0,width:0,height:0},this._domNode=Di(document.createElement("div")),ru.write(this._domNode,4),this._domNode.setClassName("overlayWidgets"),this.overflowingOverlayWidgetsDomNode=Di(document.createElement("div")),ru.write(this.overflowingOverlayWidgetsDomNode,5),this.overflowingOverlayWidgetsDomNode.setClassName("overflowingOverlayWidgets")}dispose(){super.dispose(),this._widgets={}}getDomNode(){return this._domNode}onConfigurationChanged(e){const i=this._context.configuration.options.get(145);return this._verticalScrollbarWidth=i.verticalScrollbarWidth,this._minimapWidth=i.minimap.minimapWidth,this._horizontalScrollbarHeight=i.horizontalScrollbarHeight,this._editorHeight=i.height,this._editorWidth=i.width,!0}addWidget(e){const t=Di(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:null,domNode:t},t.setPosition("absolute"),t.setAttribute("widgetId",e.getId()),e.allowEditorOverflow?this.overflowingOverlayWidgetsDomNode.appendChild(t):this._domNode.appendChild(t),this.setShouldRender(),this._updateMaxMinWidth()}setWidgetPosition(e,t){const i=this._widgets[e.getId()],s=t?t.preference:null,o=t==null?void 0:t.stackOridinal;return i.preference===s&&i.stack===o?(this._updateMaxMinWidth(),!1):(i.preference=s,i.stack=o,this.setShouldRender(),this._updateMaxMinWidth(),!0)}removeWidget(e){const t=e.getId();if(this._widgets.hasOwnProperty(t)){const s=this._widgets[t].domNode.domNode;delete this._widgets[t],s.remove(),this.setShouldRender(),this._updateMaxMinWidth()}}_updateMaxMinWidth(){var e,t;let i=0;const s=Object.keys(this._widgets);for(let o=0,r=s.length;o0);t.sort((s,o)=>(this._widgets[s].stack||0)-(this._widgets[o].stack||0));for(let s=0,o=t.length;s=3){const o=Math.floor(s/3),r=Math.floor(s/3),a=s-o-r,l=e,c=l+o,d=l+o+a;return[[0,l,c,l,d,l,c,l],[0,o,a,o+a,r,o+a+r,a+r,o+a+r]]}else if(i===2){const o=Math.floor(s/2),r=s-o,a=e,l=a+o;return[[0,a,a,a,l,a,a,a],[0,o,o,o,r,o+r,o+r,o+r]]}else{const o=e,r=s;return[[0,o,o,o,o,o,o,o],[0,r,r,r,r,r,r,r]]}}equals(e){return this.lineHeight===e.lineHeight&&this.pixelRatio===e.pixelRatio&&this.overviewRulerLanes===e.overviewRulerLanes&&this.renderBorder===e.renderBorder&&this.borderColor===e.borderColor&&this.hideCursor===e.hideCursor&&this.cursorColorSingle===e.cursorColorSingle&&this.cursorColorPrimary===e.cursorColorPrimary&&this.cursorColorSecondary===e.cursorColorSecondary&&this.themeType===e.themeType&&le.equals(this.backgroundColor,e.backgroundColor)&&this.top===e.top&&this.right===e.right&&this.domWidth===e.domWidth&&this.domHeight===e.domHeight&&this.canvasWidth===e.canvasWidth&&this.canvasHeight===e.canvasHeight}}class l7e extends Va{constructor(e){super(e),this._actualShouldRender=0,this._renderedDecorations=[],this._renderedCursorPositions=[],this._domNode=Di(document.createElement("canvas")),this._domNode.setClassName("decorationsOverviewRuler"),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._domNode.setAttribute("aria-hidden","true"),this._updateSettings(!1),this._tokensColorTrackerListener=Zn.onDidChange(t=>{t.changedColorMap&&this._updateSettings(!0)}),this._cursorPositions=[{position:new ee(1,1),color:this._settings.cursorColorSingle}]}dispose(){super.dispose(),this._tokensColorTrackerListener.dispose()}_updateSettings(e){const t=new a7e(this._context.configuration,this._context.theme);return this._settings&&this._settings.equals(t)?!1:(this._settings=t,this._domNode.setTop(this._settings.top),this._domNode.setRight(this._settings.right),this._domNode.setWidth(this._settings.domWidth),this._domNode.setHeight(this._settings.domHeight),this._domNode.domNode.width=this._settings.canvasWidth,this._domNode.domNode.height=this._settings.canvasHeight,e&&this._render(),!0)}_markRenderingIsNeeded(){return this._actualShouldRender=2,!0}_markRenderingIsMaybeNeeded(){return this._actualShouldRender=1,!0}onConfigurationChanged(e){return this._updateSettings(!1)?this._markRenderingIsNeeded():!1}onCursorStateChanged(e){this._cursorPositions=[];for(let t=0,i=e.selections.length;t1&&(s=t===0?this._settings.cursorColorPrimary:this._settings.cursorColorSecondary),this._cursorPositions.push({position:e.selections[t].getPosition(),color:s})}return this._cursorPositions.sort((t,i)=>ee.compare(t.position,i.position)),this._markRenderingIsMaybeNeeded()}onDecorationsChanged(e){return e.affectsOverviewRuler?this._markRenderingIsMaybeNeeded():!1}onFlushed(e){return this._markRenderingIsNeeded()}onScrollChanged(e){return e.scrollHeightChanged?this._markRenderingIsNeeded():!1}onZonesChanged(e){return this._markRenderingIsNeeded()}onThemeChanged(e){return this._updateSettings(!1)?this._markRenderingIsNeeded():!1}getDomNode(){return this._domNode.domNode}prepareRender(e){}render(e){this._render(),this._actualShouldRender=0}_render(){const e=this._settings.backgroundColor;if(this._settings.overviewRulerLanes===0){this._domNode.setBackgroundColor(e?le.Format.CSS.formatHexA(e):""),this._domNode.setDisplay("none");return}const t=this._context.viewModel.getAllOverviewRulerDecorations(this._context.theme);if(t.sort(CL.compareByRenderingProps),this._actualShouldRender===1&&!CL.equalsArr(this._renderedDecorations,t)&&(this._actualShouldRender=2),this._actualShouldRender===1&&!zn(this._renderedCursorPositions,this._cursorPositions,(g,p)=>g.position.lineNumber===p.position.lineNumber&&g.color===p.color)&&(this._actualShouldRender=2),this._actualShouldRender===1)return;this._renderedDecorations=t,this._renderedCursorPositions=this._cursorPositions,this._domNode.setDisplay("block");const i=this._settings.canvasWidth,s=this._settings.canvasHeight,o=this._settings.lineHeight,r=this._context.viewLayout,a=this._context.viewLayout.getScrollHeight(),l=s/a,c=6*this._settings.pixelRatio|0,d=c/2|0,u=this._domNode.domNode.getContext("2d");e?e.isOpaque()?(u.fillStyle=le.Format.CSS.formatHexA(e),u.fillRect(0,0,i,s)):(u.clearRect(0,0,i,s),u.fillStyle=le.Format.CSS.formatHexA(e),u.fillRect(0,0,i,s)):u.clearRect(0,0,i,s);const h=this._settings.x,f=this._settings.w;for(const g of t){const p=g.color,_=g.data;u.fillStyle=p;let b=0,w=0,y=0;for(let S=0,x=_.length/3;Ss&&(M=s-d),N=M-d,P=M+d}N>y+1||k!==b?(S!==0&&u.fillRect(h[b],w,f[b],y-w),b=k,w=N,y=P):P>y&&(y=P)}u.fillRect(h[b],w,f[b],y-w)}if(!this._settings.hideCursor){const g=2*this._settings.pixelRatio|0,p=g/2|0,_=this._settings.x[7],b=this._settings.w[7];let w=-100,y=-100,S=null;for(let x=0,k=this._cursorPositions.length;xs&&(N=s-p);const P=N-p,O=P+g;P>y+1||D!==S?(x!==0&&S&&u.fillRect(_,w,b,y-w),w=P,y=O):O>y&&(y=O),S=D,u.fillStyle=D}S&&u.fillRect(_,w,b,y-w)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(u.beginPath(),u.lineWidth=1,u.strokeStyle=this._settings.borderColor,u.moveTo(0,0),u.lineTo(0,s),u.stroke(),u.moveTo(0,0),u.lineTo(i,0),u.stroke())}}class JX{constructor(e,t,i){this._colorZoneBrand=void 0,this.from=e|0,this.to=t|0,this.colorId=i|0}static compare(e,t){return e.colorId===t.colorId?e.from===t.from?e.to-t.to:e.from-t.from:e.colorId-t.colorId}}class Lce{constructor(e,t,i,s){this._overviewRulerZoneBrand=void 0,this.startLineNumber=e,this.endLineNumber=t,this.heightInLines=i,this.color=s,this._colorZone=null}static compare(e,t){return e.color===t.color?e.startLineNumber===t.startLineNumber?e.heightInLines===t.heightInLines?e.endLineNumber-t.endLineNumber:e.heightInLines-t.heightInLines:e.startLineNumber-t.startLineNumber:e.colori&&(p=i-_);const b=d.color;let w=this._color2Id[b];w||(w=++this._lastAssignedId,this._color2Id[b]=w,this._id2Color[w]=b);const y=new JX(p-_,p+_,w);d.setColorZone(y),a.push(y)}return this._colorZonesInvalid=!1,a.sort(JX.compare),a}}class d7e extends CD{constructor(e,t){super(),this._context=e;const i=this._context.configuration.options;this._domNode=Di(document.createElement("canvas")),this._domNode.setClassName(t),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._zoneManager=new c7e(s=>this._context.viewLayout.getVerticalOffsetForLineNumber(s)),this._zoneManager.setDOMWidth(0),this._zoneManager.setDOMHeight(0),this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight()),this._zoneManager.setLineHeight(i.get(67)),this._zoneManager.setPixelRatio(i.get(143)),this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return e.hasChanged(67)&&(this._zoneManager.setLineHeight(t.get(67)),this._render()),e.hasChanged(143)&&(this._zoneManager.setPixelRatio(t.get(143)),this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render()),!0}onFlushed(e){return this._render(),!0}onScrollChanged(e){return e.scrollHeightChanged&&(this._zoneManager.setOuterHeight(e.scrollHeight),this._render()),!0}onZonesChanged(e){return this._render(),!0}getDomNode(){return this._domNode.domNode}setLayout(e){this._domNode.setTop(e.top),this._domNode.setRight(e.right);let t=!1;t=this._zoneManager.setDOMWidth(e.width)||t,t=this._zoneManager.setDOMHeight(e.height)||t,t&&(this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render())}setZones(e){this._zoneManager.setZones(e),this._render()}_render(){if(this._zoneManager.getOuterHeight()===0)return!1;const e=this._zoneManager.getCanvasWidth(),t=this._zoneManager.getCanvasHeight(),i=this._zoneManager.resolveColorZones(),s=this._zoneManager.getId2Color(),o=this._domNode.domNode.getContext("2d");return o.clearRect(0,0,e,t),i.length>0&&this._renderOneLane(o,i,s,e),!0}_renderOneLane(e,t,i,s){let o=0,r=0,a=0;for(const l of t){const c=l.colorId,d=l.from,u=l.to;c!==o?(e.fillRect(0,r,s,a-r),o=c,e.fillStyle=i[o],r=d,a=u):a>=d?a=Math.max(a,u):(e.fillRect(0,r,s,a-r),r=d,a=u)}e.fillRect(0,r,s,a-r)}}class u7e extends Va{constructor(e){super(e),this.domNode=Di(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.domNode.setClassName("view-rulers"),this._renderedRulers=[];const t=this._context.configuration.options;this._rulers=t.get(102),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth}dispose(){super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._rulers=t.get(102),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onScrollChanged(e){return e.scrollHeightChanged}prepareRender(e){}_ensureRulersCount(){const e=this._renderedRulers.length,t=this._rulers.length;if(e===t)return;if(e0;){const a=Di(document.createElement("div"));a.setClassName("view-ruler"),a.setWidth(o),this.domNode.appendChild(a),this._renderedRulers.push(a),r--}return}let i=e-t;for(;i>0;){const s=this._renderedRulers.pop();this.domNode.removeChild(s),i--}}render(e){this._ensureRulersCount();for(let t=0,i=this._rulers.length;t0;return this._shouldShow!==e?(this._shouldShow=e,!0):!1}getDomNode(){return this._domNode}_updateWidth(){const t=this._context.configuration.options.get(145);t.minimap.renderMinimap===0||t.minimap.minimapWidth>0&&t.minimap.minimapLeft===0?this._width=t.width:this._width=t.width-t.verticalScrollbarWidth}onConfigurationChanged(e){const i=this._context.configuration.options.get(103);return this._useShadows=i.useShadows,this._updateWidth(),this._updateShouldShow(),!0}onScrollChanged(e){return this._scrollTop=e.scrollTop,this._updateShouldShow()}prepareRender(e){}render(e){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?"scroll-decoration":"")}}class f7e{constructor(e){this.left=e.left,this.width=e.width,this.startStyle=null,this.endStyle=null}}class g7e{constructor(e,t){this.lineNumber=e,this.ranges=t}}function p7e(n){return new f7e(n)}function m7e(n){return new g7e(n.lineNumber,n.ranges.map(p7e))}class cs extends X0{constructor(e){super(),this._previousFrameVisibleRangesWithStyle=[],this._context=e;const t=this._context.configuration.options;this._roundedSelection=t.get(101),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,this._selections=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._roundedSelection=t.get(101),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_visibleRangesHaveGaps(e){for(let t=0,i=e.length;t1)return!0;return!1}_enrichVisibleRangesWithStyle(e,t,i){const s=this._typicalHalfwidthCharacterWidth/4;let o=null,r=null;if(i&&i.length>0&&t.length>0){const a=t[0].lineNumber;if(a===e.startLineNumber)for(let c=0;!o&&c=0;c--)i[c].lineNumber===l&&(r=i[c].ranges[0]);o&&!o.startStyle&&(o=null),r&&!r.startStyle&&(r=null)}for(let a=0,l=t.length;a0){const g=t[a-1].ranges[0].left,p=t[a-1].ranges[0].left+t[a-1].ranges[0].width;zE(d-g)g&&(h.top=1),zE(u-p)'}_actualRenderOneSelection(e,t,i,s){if(s.length===0)return;const o=!!s[0].ranges[0].startStyle,r=s[0].lineNumber,a=s[s.length-1].lineNumber;for(let l=0,c=s.length;l1,c)}this._previousFrameVisibleRangesWithStyle=o,this._renderResult=t.map(([r,a])=>r+a)}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}cs.SELECTION_CLASS_NAME="selected-text";cs.SELECTION_TOP_LEFT="top-left-radius";cs.SELECTION_BOTTOM_LEFT="bottom-left-radius";cs.SELECTION_TOP_RIGHT="top-right-radius";cs.SELECTION_BOTTOM_RIGHT="bottom-right-radius";cs.EDITOR_BACKGROUND_CLASS_NAME="monaco-editor-background";cs.ROUNDED_PIECE_WIDTH=10;mc((n,e)=>{const t=n.getColor(yFe);t&&!t.isTransparent()&&e.addRule(`.monaco-editor .view-line span.inline-selected-text { color: ${t}; }`)});function zE(n){return n<0?-n:n}class eQ{constructor(e,t,i,s,o,r,a){this.top=e,this.left=t,this.paddingLeft=i,this.width=s,this.height=o,this.textContent=r,this.textContentClassName=a}}var ag;(function(n){n[n.Single=0]="Single",n[n.MultiPrimary=1]="MultiPrimary",n[n.MultiSecondary=2]="MultiSecondary"})(ag||(ag={}));class tQ{constructor(e,t){this._context=e;const i=this._context.configuration.options,s=i.get(50);this._cursorStyle=i.get(28),this._lineHeight=i.get(67),this._typicalHalfwidthCharacterWidth=s.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(i.get(31),this._typicalHalfwidthCharacterWidth),this._isVisible=!0,this._domNode=Di(document.createElement("div")),this._domNode.setClassName(`cursor ${J1}`),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),So(this._domNode,s),this._domNode.setDisplay("none"),this._position=new ee(1,1),this._pluralityClass="",this.setPlurality(t),this._lastRenderedContent="",this._renderData=null}getDomNode(){return this._domNode}getPosition(){return this._position}setPlurality(e){switch(e){default:case ag.Single:this._pluralityClass="";break;case ag.MultiPrimary:this._pluralityClass="cursor-primary";break;case ag.MultiSecondary:this._pluralityClass="cursor-secondary";break}}show(){this._isVisible||(this._domNode.setVisibility("inherit"),this._isVisible=!0)}hide(){this._isVisible&&(this._domNode.setVisibility("hidden"),this._isVisible=!1)}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(50);return this._cursorStyle=t.get(28),this._lineHeight=t.get(67),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(31),this._typicalHalfwidthCharacterWidth),So(this._domNode,i),!0}onCursorPositionChanged(e,t){return t?this._domNode.domNode.style.transitionProperty="none":this._domNode.domNode.style.transitionProperty="",this._position=e,!0}_getGraphemeAwarePosition(){const{lineNumber:e,column:t}=this._position,i=this._context.viewModel.getLineContent(e),[s,o]=vRe(i,t-1);return[new ee(e,s+1),i.substring(s,o)]}_prepareRender(e){let t="",i="";const[s,o]=this._getGraphemeAwarePosition();if(this._cursorStyle===vo.Line||this._cursorStyle===vo.LineThin){const h=e.visibleRangeForPosition(s);if(!h||h.outsideRenderedLine)return null;const f=gt(this._domNode.domNode);let g;this._cursorStyle===vo.Line?(g=SY(f,this._lineCursorWidth>0?this._lineCursorWidth:2),g>2&&(t=o,i=this._getTokenClassName(s))):g=SY(f,1);let p=h.left,_=0;g>=2&&p>=1&&(_=1,p-=_);const b=e.getVerticalOffsetForLineNumber(s.lineNumber)-e.bigNumbersDelta;return new eQ(b,p,_,g,this._lineHeight,t,i)}const r=e.linesVisibleRangesForRange(new A(s.lineNumber,s.column,s.lineNumber,s.column+o.length),!1);if(!r||r.length===0)return null;const a=r[0];if(a.outsideRenderedLine||a.ranges.length===0)return null;const l=a.ranges[0],c=o===" "?this._typicalHalfwidthCharacterWidth:l.width<1?this._typicalHalfwidthCharacterWidth:l.width;this._cursorStyle===vo.Block&&(t=o,i=this._getTokenClassName(s));let d=e.getVerticalOffsetForLineNumber(s.lineNumber)-e.bigNumbersDelta,u=this._lineHeight;return(this._cursorStyle===vo.Underline||this._cursorStyle===vo.UnderlineThin)&&(d+=this._lineHeight-2,u=2),new eQ(d,l.left,0,c,u,t,i)}_getTokenClassName(e){const t=this._context.viewModel.getViewLineData(e.lineNumber),i=t.tokens.findTokenIndexAtOffset(e.column-1);return t.tokens.getClassName(i)}prepareRender(e){this._renderData=this._prepareRender(e)}render(e){return this._renderData?(this._lastRenderedContent!==this._renderData.textContent&&(this._lastRenderedContent=this._renderData.textContent,this._domNode.domNode.textContent=this._lastRenderedContent),this._domNode.setClassName(`cursor ${this._pluralityClass} ${J1} ${this._renderData.textContentClassName}`),this._domNode.setDisplay("block"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setPaddingLeft(this._renderData.paddingLeft),this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._renderData.height),this._domNode.setHeight(this._renderData.height),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._renderData.height,width:2}):(this._domNode.setDisplay("none"),null)}}class AL extends Va{constructor(e){super(e);const t=this._context.configuration.options;this._readOnly=t.get(91),this._cursorBlinking=t.get(26),this._cursorStyle=t.get(28),this._cursorSmoothCaretAnimation=t.get(27),this._selectionIsEmpty=!0,this._isComposingInput=!1,this._isVisible=!1,this._primaryCursor=new tQ(this._context,ag.Single),this._secondaryCursors=[],this._renderData=[],this._domNode=Di(document.createElement("div")),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._updateDomClassName(),this._domNode.appendChild(this._primaryCursor.getDomNode()),this._startCursorBlinkAnimation=new cd,this._cursorFlatBlinkInterval=new iz,this._blinkingEnabled=!1,this._editorHasFocus=!1,this._updateBlinking()}dispose(){super.dispose(),this._startCursorBlinkAnimation.dispose(),this._cursorFlatBlinkInterval.dispose()}getDomNode(){return this._domNode}onCompositionStart(e){return this._isComposingInput=!0,this._updateBlinking(),!0}onCompositionEnd(e){return this._isComposingInput=!1,this._updateBlinking(),!0}onConfigurationChanged(e){const t=this._context.configuration.options;this._readOnly=t.get(91),this._cursorBlinking=t.get(26),this._cursorStyle=t.get(28),this._cursorSmoothCaretAnimation=t.get(27),this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(e);for(let i=0,s=this._secondaryCursors.length;it.length){const o=this._secondaryCursors.length-t.length;for(let r=0;r{for(let s=0,o=e.ranges.length;s{this._isVisible?this._hide():this._show()},AL.BLINK_INTERVAL,gt(this._domNode.domNode)):this._startCursorBlinkAnimation.setIfNotSet(()=>{this._blinkingEnabled=!0,this._updateDomClassName()},AL.BLINK_INTERVAL))}_updateDomClassName(){this._domNode.setClassName(this._getClassName())}_getClassName(){let e="cursors-layer";switch(this._selectionIsEmpty||(e+=" has-selection"),this._cursorStyle){case vo.Line:e+=" cursor-line-style";break;case vo.Block:e+=" cursor-block-style";break;case vo.Underline:e+=" cursor-underline-style";break;case vo.LineThin:e+=" cursor-line-thin-style";break;case vo.BlockOutline:e+=" cursor-block-outline-style";break;case vo.UnderlineThin:e+=" cursor-underline-thin-style";break;default:e+=" cursor-line-style"}if(this._blinkingEnabled)switch(this._getCursorBlinking()){case 1:e+=" cursor-blink";break;case 2:e+=" cursor-smooth";break;case 3:e+=" cursor-phase";break;case 4:e+=" cursor-expand";break;case 5:e+=" cursor-solid";break;default:e+=" cursor-solid"}else e+=" cursor-solid";return(this._cursorSmoothCaretAnimation==="on"||this._cursorSmoothCaretAnimation==="explicit")&&(e+=" cursor-smooth-caret-animation"),e}_show(){this._primaryCursor.show();for(let e=0,t=this._secondaryCursors.length;e{const t=[{class:".cursor",foreground:uh,background:og},{class:".cursor-primary",foreground:oce,background:T3e},{class:".cursor-secondary",foreground:rce,background:N3e}];for(const i of t){const s=n.getColor(i.foreground);if(s){let o=n.getColor(i.background);o||(o=s.opposite()),e.addRule(`.monaco-editor .cursors-layer ${i.class} { background-color: ${s}; border-color: ${s}; color: ${o}; }`),Zd(n.type)&&e.addRule(`.monaco-editor .cursors-layer.has-selection ${i.class} { border-left: 1px solid ${o}; border-right: 1px solid ${o}; }`)}}});const a5=()=>{throw new Error("Invalid change accessor")};class _7e extends Va{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(145);this._lineHeight=t.get(67),this._contentWidth=i.contentWidth,this._contentLeft=i.contentLeft,this.domNode=Di(document.createElement("div")),this.domNode.setClassName("view-zones"),this.domNode.setPosition("absolute"),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.marginDomNode=Di(document.createElement("div")),this.marginDomNode.setClassName("margin-view-zones"),this.marginDomNode.setPosition("absolute"),this.marginDomNode.setAttribute("role","presentation"),this.marginDomNode.setAttribute("aria-hidden","true"),this._zones={}}dispose(){super.dispose(),this._zones={}}_recomputeWhitespacesProps(){const e=this._context.viewLayout.getWhitespaces(),t=new Map;for(const s of e)t.set(s.id,s);let i=!1;return this._context.viewModel.changeWhitespace(s=>{const o=Object.keys(this._zones);for(let r=0,a=o.length;r{const s={addZone:o=>(t=!0,this._addZone(i,o)),removeZone:o=>{o&&(t=this._removeZone(i,o)||t)},layoutZone:o=>{o&&(t=this._layoutZone(i,o)||t)}};v7e(e,s),s.addZone=a5,s.removeZone=a5,s.layoutZone=a5}),t}_addZone(e,t){const i=this._computeWhitespaceProps(t),o={whitespaceId:e.insertWhitespace(i.afterViewLineNumber,this._getZoneOrdinal(t),i.heightInPx,i.minWidthInPx),delegate:t,isInHiddenArea:i.isInHiddenArea,isVisible:!1,domNode:Di(t.domNode),marginDomNode:t.marginDomNode?Di(t.marginDomNode):null};return this._safeCallOnComputedHeight(o.delegate,i.heightInPx),o.domNode.setPosition("absolute"),o.domNode.domNode.style.width="100%",o.domNode.setDisplay("none"),o.domNode.setAttribute("monaco-view-zone",o.whitespaceId),this.domNode.appendChild(o.domNode),o.marginDomNode&&(o.marginDomNode.setPosition("absolute"),o.marginDomNode.domNode.style.width="100%",o.marginDomNode.setDisplay("none"),o.marginDomNode.setAttribute("monaco-view-zone",o.whitespaceId),this.marginDomNode.appendChild(o.marginDomNode)),this._zones[o.whitespaceId]=o,this.setShouldRender(),o.whitespaceId}_removeZone(e,t){if(this._zones.hasOwnProperty(t)){const i=this._zones[t];return delete this._zones[t],e.removeWhitespace(i.whitespaceId),i.domNode.removeAttribute("monaco-visible-view-zone"),i.domNode.removeAttribute("monaco-view-zone"),i.domNode.domNode.parentNode.removeChild(i.domNode.domNode),i.marginDomNode&&(i.marginDomNode.removeAttribute("monaco-visible-view-zone"),i.marginDomNode.removeAttribute("monaco-view-zone"),i.marginDomNode.domNode.parentNode.removeChild(i.marginDomNode.domNode)),this.setShouldRender(),!0}return!1}_layoutZone(e,t){if(this._zones.hasOwnProperty(t)){const i=this._zones[t],s=this._computeWhitespaceProps(i.delegate);return i.isInHiddenArea=s.isInHiddenArea,e.changeOneWhitespace(i.whitespaceId,s.afterViewLineNumber,s.heightInPx),this._safeCallOnComputedHeight(i.delegate,s.heightInPx),this.setShouldRender(),!0}return!1}shouldSuppressMouseDownOnViewZone(e){return this._zones.hasOwnProperty(e)?!!this._zones[e].delegate.suppressMouseDown:!1}_heightInPixels(e){return typeof e.heightInPx=="number"?e.heightInPx:typeof e.heightInLines=="number"?this._lineHeight*e.heightInLines:this._lineHeight}_minWidthInPixels(e){return typeof e.minWidthInPx=="number"?e.minWidthInPx:0}_safeCallOnComputedHeight(e,t){if(typeof e.onComputedHeight=="function")try{e.onComputedHeight(t)}catch(i){Mt(i)}}_safeCallOnDomNodeTop(e,t){if(typeof e.onDomNodeTop=="function")try{e.onDomNodeTop(t)}catch(i){Mt(i)}}prepareRender(e){}render(e){const t=e.viewportData.whitespaceViewportData,i={};let s=!1;for(const r of t)this._zones[r.id].isInHiddenArea||(i[r.id]=r,s=!0);const o=Object.keys(this._zones);for(let r=0,a=o.length;ra)continue;const f=h.startLineNumber===a?h.startColumn:c.minColumn,g=h.endLineNumber===a?h.endColumn:c.maxColumn;f=P.endOffset&&(N++,P=i&&i[N]),z!==9&&z!==32||h&&!k&&M<=I)continue;if(u&&M>=D&&M<=I&&z===32){const ae=M-1>=0?a.charCodeAt(M-1):0,se=M+1=0?a.charCodeAt(M-1):0;if(z===32&&ae!==32&&ae!==9)continue}if(i&&(!P||P.startOffset>M||P.endOffset<=M))continue;const K=e.visibleRangeForPosition(new ee(t,M+1));K&&(r?(O=Math.max(O,K.left),z===9?x+=this._renderArrow(f,_,K.left):x+=``):z===9?x+=`
${S?"→":"→"}
`:x+=`
${String.fromCharCode(y)}
`)}return r?(O=Math.round(O+_),``+x+""):x}_renderArrow(e,t,i){const s=t/7,o=t,r=e/2,a=i,l={x:0,y:s/2},c={x:100/125*o,y:l.y},d={x:c.x-.2*c.x,y:c.y+.2*c.x},u={x:d.x+.1*c.x,y:d.y+.1*c.x},h={x:u.x+.35*c.x,y:u.y-.35*c.x},f={x:h.x,y:-h.y},g={x:u.x,y:-u.y},p={x:d.x,y:-d.y},_={x:c.x,y:-c.y},b={x:l.x,y:-l.y};return``}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}class iQ{constructor(e){const t=e.options,i=t.get(50),s=t.get(38);s==="off"?(this.renderWhitespace="none",this.renderWithSVG=!1):s==="svg"?(this.renderWhitespace=t.get(99),this.renderWithSVG=!0):(this.renderWhitespace=t.get(99),this.renderWithSVG=!1),this.spaceWidth=i.spaceWidth,this.middotWidth=i.middotWidth,this.wsmiddotWidth=i.wsmiddotWidth,this.canUseHalfwidthRightwardsArrow=i.canUseHalfwidthRightwardsArrow,this.lineHeight=t.get(67),this.stopRenderingLineAfter=t.get(117)}equals(e){return this.renderWhitespace===e.renderWhitespace&&this.renderWithSVG===e.renderWithSVG&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineHeight===e.lineHeight&&this.stopRenderingLineAfter===e.stopRenderingLineAfter}}class C7e{constructor(e,t,i,s){this.selections=e,this.startLineNumber=t.startLineNumber|0,this.endLineNumber=t.endLineNumber|0,this.relativeVerticalOffset=t.relativeVerticalOffset,this.bigNumbersDelta=t.bigNumbersDelta|0,this.lineHeight=t.lineHeight|0,this.whitespaceViewportData=i,this._model=s,this.visibleRange=new A(t.startLineNumber,this._model.getLineMinColumn(t.startLineNumber),t.endLineNumber,this._model.getLineMaxColumn(t.endLineNumber))}getViewLineRenderingData(e){return this._model.getViewportViewLineRenderingData(this.visibleRange,e)}getDecorationsInViewport(){return this._model.getDecorationsInViewport(this.visibleRange)}}class w7e{get type(){return this._theme.type}get value(){return this._theme}constructor(e){this._theme=e}update(e){this._theme=e}getColor(e){return this._theme.getColor(e)}}class y7e{constructor(e,t,i){this.configuration=e,this.theme=new w7e(t),this.viewModel=i,this.viewLayout=i.viewLayout}addEventHandler(e){this.viewModel.addViewEventHandler(e)}removeEventHandler(e){this.viewModel.removeViewEventHandler(e)}}var S7e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},x7e=function(n,e){return function(t,i){e(t,i,n)}};let BB=class extends CD{constructor(e,t,i,s,o,r,a){super(),this._instantiationService=a,this._shouldRecomputeGlyphMarginLanes=!1,this._selections=[new it(1,1,1,1)],this._renderAnimationFrame=null;const l=new T8e(t,s,o,e);this._context=new y7e(t,i,s),this._context.addEventHandler(this),this._viewParts=[],this._textAreaHandler=this._instantiationService.createInstance(PB,this._context,l,this._createTextAreaHandlerHelper()),this._viewParts.push(this._textAreaHandler),this._linesContent=Di(document.createElement("div")),this._linesContent.setClassName("lines-content monaco-editor-background"),this._linesContent.setPosition("absolute"),this.domNode=Di(document.createElement("div")),this.domNode.setClassName(this._getEditorClassName()),this.domNode.setAttribute("role","code"),this._overflowGuardContainer=Di(document.createElement("div")),ru.write(this._overflowGuardContainer,3),this._overflowGuardContainer.setClassName("overflow-guard"),this._scrollbar=new H8e(this._context,this._linesContent,this.domNode,this._overflowGuardContainer),this._viewParts.push(this._scrollbar),this._viewLines=new HM(this._context,this._linesContent),this._viewZones=new _7e(this._context),this._viewParts.push(this._viewZones);const c=new l7e(this._context);this._viewParts.push(c);const d=new h7e(this._context);this._viewParts.push(d);const u=new A8e(this._context);this._viewParts.push(u),u.addDynamicOverlay(new F8e(this._context)),u.addDynamicOverlay(new cs(this._context)),u.addDynamicOverlay(new G8e(this._context)),u.addDynamicOverlay(new W8e(this._context)),u.addDynamicOverlay(new b7e(this._context));const h=new R8e(this._context);this._viewParts.push(h),h.addDynamicOverlay(new B8e(this._context)),h.addDynamicOverlay(new J8e(this._context)),h.addDynamicOverlay(new Q8e(this._context)),h.addDynamicOverlay(new xD(this._context)),this._glyphMarginWidgets=new $8e(this._context),this._viewParts.push(this._glyphMarginWidgets);const f=new p0(this._context);f.getDomNode().appendChild(this._viewZones.marginDomNode),f.getDomNode().appendChild(h.getDomNode()),f.getDomNode().appendChild(this._glyphMarginWidgets.domNode),this._viewParts.push(f),this._contentWidgets=new P8e(this._context,this.domNode),this._viewParts.push(this._contentWidgets),this._viewCursors=new AL(this._context),this._viewParts.push(this._viewCursors),this._overlayWidgets=new r7e(this._context,this.domNode),this._viewParts.push(this._overlayWidgets);const g=new u7e(this._context);this._viewParts.push(g);const p=new M8e(this._context);this._viewParts.push(p);const _=new o7e(this._context);if(this._viewParts.push(_),c){const b=this._scrollbar.getOverviewRulerLayoutInfo();b.parent.insertBefore(c.getDomNode(),b.insertBefore)}this._linesContent.appendChild(u.getDomNode()),this._linesContent.appendChild(g.domNode),this._linesContent.appendChild(this._viewZones.domNode),this._linesContent.appendChild(this._viewLines.getDomNode()),this._linesContent.appendChild(this._contentWidgets.domNode),this._linesContent.appendChild(this._viewCursors.getDomNode()),this._overflowGuardContainer.appendChild(f.getDomNode()),this._overflowGuardContainer.appendChild(this._scrollbar.getDomNode()),this._overflowGuardContainer.appendChild(d.getDomNode()),this._overflowGuardContainer.appendChild(this._textAreaHandler.textArea),this._overflowGuardContainer.appendChild(this._textAreaHandler.textAreaCover),this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode()),this._overflowGuardContainer.appendChild(_.getDomNode()),this._overflowGuardContainer.appendChild(p.domNode),this.domNode.appendChild(this._overflowGuardContainer),r?(r.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode.domNode),r.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode.domNode)):(this.domNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode),this.domNode.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode)),this._applyLayout(),this._pointerHandler=this._register(new D3e(this._context,l,this._createPointerHandlerHelper()))}_computeGlyphMarginLanes(){const e=this._context.viewModel.model,t=this._context.viewModel.glyphLanes;let i=[],s=0;i=i.concat(e.getAllMarginDecorations().map(o=>{var r,a,l;const c=(a=(r=o.options.glyphMargin)===null||r===void 0?void 0:r.position)!==null&&a!==void 0?a:Dh.Center;return s=Math.max(s,o.range.endLineNumber),{range:o.range,lane:c,persist:(l=o.options.glyphMargin)===null||l===void 0?void 0:l.persistLane}})),i=i.concat(this._glyphMarginWidgets.getWidgets().map(o=>{const r=e.validateRange(o.preference.range);return s=Math.max(s,r.endLineNumber),{range:r,lane:o.preference.lane}})),i.sort((o,r)=>A.compareRangesUsingStarts(o.range,r.range)),t.reset(s);for(const o of i)t.push(o.lane,o.range,o.persist);return t}_createPointerHandlerHelper(){return{viewDomNode:this.domNode.domNode,linesContentDomNode:this._linesContent.domNode,viewLinesDomNode:this._viewLines.getDomNode().domNode,focusTextArea:()=>{this.focus()},dispatchTextAreaEvent:e=>{this._textAreaHandler.textArea.domNode.dispatchEvent(e)},getLastRenderData:()=>{const e=this._viewCursors.getLastRenderData()||[],t=this._textAreaHandler.getLastRenderData();return new i3e(e,t)},renderNow:()=>{this.render(!0,!1)},shouldSuppressMouseDownOnViewZone:e=>this._viewZones.shouldSuppressMouseDownOnViewZone(e),shouldSuppressMouseDownOnWidget:e=>this._contentWidgets.shouldSuppressMouseDownOnWidget(e),getPositionFromDOMInfo:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getPositionFromDOMInfo(e,t)),visibleRangeForPosition:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(new ee(e,t))),getLineWidth:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getLineWidth(e))}}_createTextAreaHandlerHelper(){return{visibleRangeForPosition:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(e))}}_applyLayout(){const t=this._context.configuration.options.get(145);this.domNode.setWidth(t.width),this.domNode.setHeight(t.height),this._overflowGuardContainer.setWidth(t.width),this._overflowGuardContainer.setHeight(t.height),this._linesContent.setWidth(16777216),this._linesContent.setHeight(16777216)}_getEditorClassName(){const e=this._textAreaHandler.isFocused()?" focused":"";return this._context.configuration.options.get(142)+" "+MB(this._context.theme.type)+e}handleEvents(e){super.handleEvents(e),this._scheduleRender()}onConfigurationChanged(e){return this.domNode.setClassName(this._getEditorClassName()),this._applyLayout(),!1}onCursorStateChanged(e){return this._selections=e.selections,!1}onDecorationsChanged(e){return e.affectsGlyphMargin&&(this._shouldRecomputeGlyphMarginLanes=!0),!1}onFocusChanged(e){return this.domNode.setClassName(this._getEditorClassName()),!1}onThemeChanged(e){return this._context.theme.update(e.theme),this.domNode.setClassName(this._getEditorClassName()),!1}dispose(){this._renderAnimationFrame!==null&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(),this._context.removeEventHandler(this),this._viewLines.dispose();for(const e of this._viewParts)e.dispose();super.dispose()}_scheduleRender(){if(this._store.isDisposed)throw new Gi;if(this._renderAnimationFrame===null){const e=this._createCoordinatedRendering();this._renderAnimationFrame=WB.INSTANCE.scheduleCoordinatedRendering({window:gt(this.domNode.domNode),prepareRenderText:()=>{if(this._store.isDisposed)throw new Gi;try{return e.prepareRenderText()}finally{this._renderAnimationFrame=null}},renderText:()=>{if(this._store.isDisposed)throw new Gi;return e.renderText()},prepareRender:(t,i)=>{if(this._store.isDisposed)throw new Gi;return e.prepareRender(t,i)},render:(t,i)=>{if(this._store.isDisposed)throw new Gi;return e.render(t,i)}})}}_flushAccumulatedAndRenderNow(){const e=this._createCoordinatedRendering();Zp(()=>e.prepareRenderText());const t=Zp(()=>e.renderText());if(t){const[i,s]=t;Zp(()=>e.prepareRender(i,s)),Zp(()=>e.render(i,s))}}_getViewPartsToRender(){const e=[];let t=0;for(const i of this._viewParts)i.shouldRender()&&(e[t++]=i);return e}_createCoordinatedRendering(){return{prepareRenderText:()=>{if(this._shouldRecomputeGlyphMarginLanes){this._shouldRecomputeGlyphMarginLanes=!1;const e=this._computeGlyphMarginLanes();this._context.configuration.setGlyphMarginDecorationLaneCount(e.requiredLanes)}Up.onRenderStart()},renderText:()=>{if(!this.domNode.domNode.isConnected)return null;let e=this._getViewPartsToRender();if(!this._viewLines.shouldRender()&&e.length===0)return null;const t=this._context.viewLayout.getLinesViewportData();this._context.viewModel.setViewport(t.startLineNumber,t.endLineNumber,t.centeredLineNumber);const i=new C7e(this._selections,t,this._context.viewLayout.getWhitespaceViewportData(),this._context.viewModel);return this._contentWidgets.shouldRender()&&this._contentWidgets.onBeforeRender(i),this._viewLines.shouldRender()&&(this._viewLines.renderText(i),this._viewLines.onDidRender(),e=this._getViewPartsToRender()),[e,new Z5e(this._context.viewLayout,i,this._viewLines)]},prepareRender:(e,t)=>{for(const i of e)i.prepareRender(t)},render:(e,t)=>{for(const i of e)i.render(t),i.onDidRender()}}}delegateVerticalScrollbarPointerDown(e){this._scrollbar.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){this._scrollbar.delegateScrollFromMouseWheelEvent(e)}restoreState(e){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft},1),this._context.viewModel.visibleLinesStabilized()}getOffsetForColumn(e,t){const i=this._context.viewModel.model.validatePosition({lineNumber:e,column:t}),s=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i);this._flushAccumulatedAndRenderNow();const o=this._viewLines.visibleRangeForPosition(new ee(s.lineNumber,s.column));return o?o.left:-1}getTargetAtClientPoint(e,t){const i=this._pointerHandler.getTargetAtClientPoint(e,t);return i?BM.convertViewToModelMouseTarget(i,this._context.viewModel.coordinatesConverter):null}createOverviewRuler(e){return new d7e(this._context,e)}change(e){this._viewZones.changeViewZones(e),this._scheduleRender()}render(e,t){if(t){this._viewLines.forceShouldRender();for(const i of this._viewParts)i.forceShouldRender()}e?this._flushAccumulatedAndRenderNow():this._scheduleRender()}writeScreenReaderContent(e){this._textAreaHandler.writeScreenReaderContent(e)}focus(){this._textAreaHandler.focusTextArea()}isFocused(){return this._textAreaHandler.isFocused()}setAriaOptions(e){this._textAreaHandler.setAriaOptions(e)}addContentWidget(e){this._contentWidgets.addWidget(e.widget),this.layoutContentWidget(e),this._scheduleRender()}layoutContentWidget(e){var t,i,s,o,r,a,l,c;this._contentWidgets.setWidgetPosition(e.widget,(i=(t=e.position)===null||t===void 0?void 0:t.position)!==null&&i!==void 0?i:null,(o=(s=e.position)===null||s===void 0?void 0:s.secondaryPosition)!==null&&o!==void 0?o:null,(a=(r=e.position)===null||r===void 0?void 0:r.preference)!==null&&a!==void 0?a:null,(c=(l=e.position)===null||l===void 0?void 0:l.positionAffinity)!==null&&c!==void 0?c:null),this._scheduleRender()}removeContentWidget(e){this._contentWidgets.removeWidget(e.widget),this._scheduleRender()}addOverlayWidget(e){this._overlayWidgets.addWidget(e.widget),this.layoutOverlayWidget(e),this._scheduleRender()}layoutOverlayWidget(e){this._overlayWidgets.setWidgetPosition(e.widget,e.position)&&this._scheduleRender()}removeOverlayWidget(e){this._overlayWidgets.removeWidget(e.widget),this._scheduleRender()}addGlyphMarginWidget(e){this._glyphMarginWidgets.addWidget(e.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}layoutGlyphMarginWidget(e){const t=e.position;this._glyphMarginWidgets.setWidgetPosition(e.widget,t)&&(this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender())}removeGlyphMarginWidget(e){this._glyphMarginWidgets.removeWidget(e.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}};BB=S7e([x7e(6,ht)],BB);function Zp(n){try{return n()}catch(e){return Mt(e),null}}class WB{constructor(){this._coordinatedRenderings=[],this._animationFrameRunners=new Map}scheduleCoordinatedRendering(e){return this._coordinatedRenderings.push(e),this._scheduleRender(e.window),{dispose:()=>{const t=this._coordinatedRenderings.indexOf(e);if(t!==-1&&(this._coordinatedRenderings.splice(t,1),this._coordinatedRenderings.length===0)){for(const[i,s]of this._animationFrameRunners)s.dispose();this._animationFrameRunners.clear()}}}}_scheduleRender(e){if(!this._animationFrameRunners.has(e)){const t=()=>{this._animationFrameRunners.delete(e),this._onRenderScheduled()};this._animationFrameRunners.set(e,B2(e,t,100))}}_onRenderScheduled(){const e=this._coordinatedRenderings.slice(0);this._coordinatedRenderings=[];for(const i of e)Zp(()=>i.prepareRenderText());const t=[];for(let i=0,s=e.length;io.renderText())}for(let i=0,s=e.length;io.prepareRender(a,l))}for(let i=0,s=e.length;io.render(a,l))}}}WB.INSTANCE=new WB;class mx{constructor(e,t,i,s,o){this.injectionOffsets=e,this.injectionOptions=t,this.breakOffsets=i,this.breakOffsetsVisibleColumn=s,this.wrappedTextIndentLength=o}getOutputLineCount(){return this.breakOffsets.length}getMinOutputOffset(e){return e>0?this.wrappedTextIndentLength:0}getLineLength(e){const t=e>0?this.breakOffsets[e-1]:0;let s=this.breakOffsets[e]-t;return e>0&&(s+=this.wrappedTextIndentLength),s}getMaxOutputOffset(e){return this.getLineLength(e)}translateToInputOffset(e,t){e>0&&(t=Math.max(0,t-this.wrappedTextIndentLength));let s=e===0?t:this.breakOffsets[e-1]+t;if(this.injectionOffsets!==null)for(let o=0;othis.injectionOffsets[o];o++)s0?this.breakOffsets[o-1]:0,t===0)if(e<=r)s=o-1;else if(e>l)i=o+1;else break;else if(e=l)i=o+1;else break}let a=e-r;return o>0&&(a+=this.wrappedTextIndentLength),new $E(o,a)}normalizeOutputPosition(e,t,i){if(this.injectionOffsets!==null){const s=this.outputPositionToOffsetInInputWithInjections(e,t),o=this.normalizeOffsetInInputWithInjectionsAroundInjections(s,i);if(o!==s)return this.offsetInInputWithInjectionsToOutputPosition(o,i)}if(i===0){if(e>0&&t===this.getMinOutputOffset(e))return new $E(e-1,this.getMaxOutputOffset(e-1))}else if(i===1){const s=this.getOutputLineCount()-1;if(e0&&(t=Math.max(0,t-this.wrappedTextIndentLength)),(e>0?this.breakOffsets[e-1]:0)+t}normalizeOffsetInInputWithInjectionsAroundInjections(e,t){const i=this.getInjectedTextAtOffset(e);if(!i)return e;if(t===2){if(e===i.offsetInInputWithInjections+i.length&&nQ(this.injectionOptions[i.injectedTextIndex].cursorStops))return i.offsetInInputWithInjections+i.length;{let s=i.offsetInInputWithInjections;if(sQ(this.injectionOptions[i.injectedTextIndex].cursorStops))return s;let o=i.injectedTextIndex-1;for(;o>=0&&this.injectionOffsets[o]===this.injectionOffsets[i.injectedTextIndex]&&!(nQ(this.injectionOptions[o].cursorStops)||(s-=this.injectionOptions[o].content.length,sQ(this.injectionOptions[o].cursorStops)));)o--;return s}}else if(t===1||t===4){let s=i.offsetInInputWithInjections+i.length,o=i.injectedTextIndex;for(;o+1=0&&this.injectionOffsets[o-1]===this.injectionOffsets[o];)s-=this.injectionOptions[o-1].content.length,o--;return s}yM()}getInjectedText(e,t){const i=this.outputPositionToOffsetInInputWithInjections(e,t),s=this.getInjectedTextAtOffset(i);return s?{options:this.injectionOptions[s.injectedTextIndex]}:null}getInjectedTextAtOffset(e){const t=this.injectionOffsets,i=this.injectionOptions;if(t!==null){let s=0;for(let o=0;oe)break;if(e<=l)return{injectedTextIndex:o,offsetInInputWithInjections:a,length:r};s+=r}}}}function nQ(n){return n==null?!0:n===qc.Right||n===qc.Both}function sQ(n){return n==null?!0:n===qc.Left||n===qc.Both}class $E{constructor(e,t){this.outputLineIndex=e,this.outputOffset=t}toString(){return`${this.outputLineIndex}:${this.outputOffset}`}toPosition(e){return new ee(e+this.outputLineIndex,this.outputOffset+1)}}class L7e{constructor(){this.changeType=1}}class au{static applyInjectedText(e,t){if(!t||t.length===0)return e;let i="",s=0;for(const o of t)i+=e.substring(s,o.column-1),s=o.column-1,i+=o.options.content;return i+=e.substring(s),i}static fromDecorations(e){const t=[];for(const i of e)i.options.before&&i.options.before.content.length>0&&t.push(new au(i.ownerId,i.range.startLineNumber,i.range.startColumn,i.options.before,0)),i.options.after&&i.options.after.content.length>0&&t.push(new au(i.ownerId,i.range.endLineNumber,i.range.endColumn,i.options.after,1));return t.sort((i,s)=>i.lineNumber===s.lineNumber?i.column===s.column?i.order-s.order:i.column-s.column:i.lineNumber-s.lineNumber),t}constructor(e,t,i,s,o){this.ownerId=e,this.lineNumber=t,this.column=i,this.options=s,this.order=o}}class oQ{constructor(e,t,i){this.changeType=2,this.lineNumber=e,this.detail=t,this.injectedText=i}}class k7e{constructor(e,t){this.changeType=3,this.fromLineNumber=e,this.toLineNumber=t}}class D7e{constructor(e,t,i,s){this.changeType=4,this.injectedTexts=s,this.fromLineNumber=e,this.toLineNumber=t,this.detail=i}}class I7e{constructor(){this.changeType=5}}class nC{constructor(e,t,i,s){this.changes=e,this.versionId=t,this.isUndoing=i,this.isRedoing=s,this.resultingSelection=null}containsEvent(e){for(let t=0,i=this.changes.length;tn});class Vz{static create(e){return new Vz(new WeakRef(e))}constructor(e){this.targetWindow=e}createLineBreaksComputer(e,t,i,s,o){const r=[],a=[];return{addRequest:(l,c,d)=>{r.push(l),a.push(c)},finalize:()=>E7e(Vp(this.targetWindow.deref()),r,e,t,i,s,o,a)}}}function E7e(n,e,t,i,s,o,r,a){var l;function c(P){const O=a[P];if(O){const M=au.applyInjectedText(e[P],O),z=O.map(ae=>ae.options),K=O.map(ae=>ae.column-1);return new mx(K,z,[M.length],[],0)}else return null}if(s===-1){const P=[];for(let O=0,M=e.length;Od?(M=0,z=0):K=d-he}const ae=O.substr(M),se=T7e(ae,z,i,K,p,f);_[P]=M,b[P]=z,w[P]=ae,y[P]=se[0],S[P]=se[1]}const x=p.build(),k=(l=l5==null?void 0:l5.createHTML(x))!==null&&l!==void 0?l:x;g.innerHTML=k,g.style.position="absolute",g.style.top="10000",r==="keepAll"?(g.style.wordBreak="keep-all",g.style.overflowWrap="anywhere"):(g.style.wordBreak="inherit",g.style.overflowWrap="break-word"),n.document.body.appendChild(g);const D=document.createRange(),I=Array.prototype.slice.call(g.children,0),N=[];for(let P=0;Plt.options),me=De.map(lt=>lt.column-1)):(he=null,me=null),N[P]=new mx(me,he,M,se,K)}return n.document.body.removeChild(g),N}function T7e(n,e,t,i,s,o){if(o!==0){const h=String(o);s.appendString('
');const r=n.length;let a=e,l=0;const c=[],d=[];let u=0");for(let h=0;h"),c[h]=l,d[h]=a;const f=u;u=h+1"),c[n.length]=l,d[n.length]=a,s.appendString("
"),[c,d]}function N7e(n,e,t,i){if(t.length<=1)return null;const s=Array.prototype.slice.call(e.children,0),o=[];try{HB(n,s,i,0,null,t.length-1,null,o)}catch(r){return console.log(r),null}return o.length===0?null:(o.push(t.length),o)}function HB(n,e,t,i,s,o,r,a){if(i===o||(s=s||c5(n,e,t[i],t[i+1]),r=r||c5(n,e,t[o],t[o+1]),Math.abs(s[0].top-r[0].top)<=.1))return;if(i+1===o){a.push(o);return}const l=i+(o-i)/2|0,c=c5(n,e,t[l],t[l+1]);HB(n,e,t,i,s,l,c,a),HB(n,e,t,l,c,o,r,a)}function c5(n,e,t,i){return n.setStart(e[t/16384|0].firstChild,t%16384),n.setEnd(e[i/16384|0].firstChild,i%16384),n.getClientRects()}class A7e extends ne{constructor(){super(),this._editor=null,this._instantiationService=null,this._instances=this._register(new WV),this._pending=new Map,this._finishedInstantiation=[],this._finishedInstantiation[0]=!1,this._finishedInstantiation[1]=!1,this._finishedInstantiation[2]=!1,this._finishedInstantiation[3]=!1}initialize(e,t,i){this._editor=e,this._instantiationService=i;for(const s of t){if(this._pending.has(s.id)){Mt(new Error(`Cannot have two contributions with the same id ${s.id}`));continue}this._pending.set(s.id,s)}this._instantiateSome(0),this._register(_S(gt(this._editor.getDomNode()),()=>{this._instantiateSome(1)})),this._register(_S(gt(this._editor.getDomNode()),()=>{this._instantiateSome(2)})),this._register(_S(gt(this._editor.getDomNode()),()=>{this._instantiateSome(3)},5e3))}saveViewState(){const e={};for(const[t,i]of this._instances)typeof i.saveViewState=="function"&&(e[t]=i.saveViewState());return e}restoreViewState(e){for(const[t,i]of this._instances)typeof i.restoreViewState=="function"&&i.restoreViewState(e[t])}get(e){return this._instantiateById(e),this._instances.get(e)||null}onBeforeInteractionEvent(){this._instantiateSome(2)}onAfterModelAttached(){var e;return _S(gt((e=this._editor)===null||e===void 0?void 0:e.getDomNode()),()=>{this._instantiateSome(1)},50)}_instantiateSome(e){if(this._finishedInstantiation[e])return;this._finishedInstantiation[e]=!0;const t=this._findPendingContributionsByInstantiation(e);for(const i of t)this._instantiateById(i.id)}_findPendingContributionsByInstantiation(e){const t=[];for(const[,i]of this._pending)i.instantiation===e&&t.push(i);return t}_instantiateById(e){const t=this._pending.get(e);if(t){if(this._pending.delete(e),!this._instantiationService||!this._editor)throw new Error("Cannot instantiate contributions before being initialized!");try{const i=this._instantiationService.createInstance(t.ctor,this._editor);this._instances.set(t.id,i),typeof i.restoreViewState=="function"&&t.instantiation!==0&&console.warn(`Editor contribution '${t.id}' should be eager instantiated because it uses saveViewState / restoreViewState.`)}catch(i){Mt(i)}}}}class Dce{constructor(e,t,i,s,o,r,a){this.id=e,this.label=t,this.alias=i,this.metadata=s,this._precondition=o,this._run=r,this._contextKeyService=a}isSupported(){return this._contextKeyService.contextMatchesRules(this._precondition)}run(e){return this.isSupported()?this._run(e):Promise.resolve(void 0)}}function Hm(n){let e=0,t=0,i=0,s=0;for(let o=0,r=n.length;o=ml&&(t=t-n%ml),t}function F7e(n,e){return n.reduce((t,i)=>Xn(t,e(i)),Mr)}function Ice(n,e){return n===e}function RL(n,e){const t=n,i=e;if(i-t<=0)return Mr;const o=Math.floor(t/ml),r=Math.floor(i/ml),a=i-r*ml;if(o===r){const l=t-o*ml;return vs(0,a-l)}else return vs(r-o,a)}function sC(n,e){return n=e}function D1(n){return vs(n.lineNumber-1,n.column-1)}function qv(n,e){const t=n,i=Math.floor(t/ml),s=t-i*ml,o=e,r=Math.floor(o/ml),a=o-r*ml;return new A(i+1,s+1,r+1,a+1)}function B7e(n){const e=Wh(n);return vs(e.length-1,e[e.length-1].length)}class lg{static fromModelContentChanges(e){return e.map(i=>{const s=A.lift(i.range);return new lg(D1(s.getStartPosition()),D1(s.getEndPosition()),B7e(i.text))}).reverse()}constructor(e,t,i){this.startOffset=e,this.endOffset=t,this.newLength=i}toString(){return`[${nc(this.startOffset)}...${nc(this.endOffset)}) -> ${nc(this.newLength)}`}}class W7e{constructor(e){this.nextEditIdx=0,this.deltaOldToNewLineCount=0,this.deltaOldToNewColumnCount=0,this.deltaLineIdxInOld=-1,this.edits=e.map(t=>zz.from(t))}getOffsetBeforeChange(e){return this.adjustNextEdit(e),this.translateCurToOld(e)}getDistanceToNextChange(e){this.adjustNextEdit(e);const t=this.edits[this.nextEditIdx],i=t?this.translateOldToCur(t.offsetObj):null;return i===null?null:RL(e,i)}translateOldToCur(e){return e.lineCount===this.deltaLineIdxInOld?vs(e.lineCount+this.deltaOldToNewLineCount,e.columnCount+this.deltaOldToNewColumnCount):vs(e.lineCount+this.deltaOldToNewLineCount,e.columnCount)}translateCurToOld(e){const t=nc(e);return t.lineCount-this.deltaOldToNewLineCount===this.deltaLineIdxInOld?vs(t.lineCount-this.deltaOldToNewLineCount,t.columnCount-this.deltaOldToNewColumnCount):vs(t.lineCount-this.deltaOldToNewLineCount,t.columnCount)}adjustNextEdit(e){for(;this.nextEditIdx>5;if(s===0){const r=1<this.textBufferLineCount-1||this.lineIdx===this.textBufferLineCount-1&&this.lineCharOffset>=this.textBufferLastLineLength)return null;this.line===null&&(this.lineTokens=this.textModel.tokenization.getLineTokens(this.lineIdx+1),this.line=this.lineTokens.getLineContent(),this.lineTokenOffset=this.lineCharOffset===0?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset));const e=this.lineIdx,t=this.lineCharOffset;let i=0;for(;;){const o=this.lineTokens,r=o.getCount();let a=null;if(this.lineTokenOffset1e3))break;if(i>1500)break}const s=P7e(e,t,this.lineIdx,this.lineCharOffset);return new Pp(s,0,-1,Rs.getEmpty(),new _v(s))}}class j7e{constructor(e,t){this.text=e,this._offset=Mr,this.idx=0;const i=t.getRegExpStr(),s=i?new RegExp(i+`| `,"gi"):null,o=[];let r,a=0,l=0,c=0,d=0;const u=[];for(let g=0;g<60;g++)u.push(new Pp(vs(0,g),0,-1,Rs.getEmpty(),new _v(vs(0,g))));const h=[];for(let g=0;g<60;g++)h.push(new Pp(vs(1,g),0,-1,Rs.getEmpty(),new _v(vs(1,g))));if(s)for(s.lastIndex=0;(r=s.exec(e))!==null;){const g=r.index,p=r[0];if(p===` `)a++,l=g+1;else{if(c!==g){let _;if(d===a){const b=g-c;if(bK7e(t)).join("|")}}get regExpGlobal(){if(!this.hasRegExp){const e=this.getRegExpStr();this._regExpGlobal=e?new RegExp(e,"gi"):null,this.hasRegExp=!0}return this._regExpGlobal}getToken(e){return this.map.get(e.toLowerCase())}findClosingTokenText(e){for(const[t,i]of this.map)if(i.kind===2&&i.bracketIds.intersects(e))return t}get isEmpty(){return this.map.size===0}}function K7e(n){let e=wl(n);return/^[\w ]+/.test(n)&&(e=`\\b${e}`),/[\w ]+$/.test(n)&&(e=`${e}\\b`),e}class Nce{constructor(e,t){this.denseKeyProvider=e,this.getLanguageConfiguration=t,this.languageIdToBracketTokens=new Map}didLanguageChange(e){return this.languageIdToBracketTokens.has(e)}getSingleLanguageBracketTokens(e){let t=this.languageIdToBracketTokens.get(e);return t||(t=jz.createFromLanguage(this.getLanguageConfiguration(e),this.denseKeyProvider),this.languageIdToBracketTokens.set(e,t)),t}}function q7e(n){if(n.length===0)return null;if(n.length===1)return n[0];let e=0;function t(){if(e>=n.length)return null;const r=e,a=n[r].listHeight;for(e++;e=2?Ace(r===0&&e===n.length?n:n.slice(r,e),!1):n[r]}let i=t(),s=t();if(!s)return i;for(let r=t();r;r=t())lQ(i,s)<=lQ(s,r)?(i=d5(i,s),s=r):s=d5(s,r);return d5(i,s)}function Ace(n,e=!1){if(n.length===0)return null;if(n.length===1)return n[0];let t=n.length;for(;t>3;){const i=t>>1;for(let s=0;s=3?n[2]:null,e)}function lQ(n,e){return Math.abs(n.listHeight-e.listHeight)}function d5(n,e){return n.listHeight===e.listHeight?Eh.create23(n,e,null,!1):n.listHeight>e.listHeight?G7e(n,e):Z7e(e,n)}function G7e(n,e){n=n.toMutable();let t=n;const i=[];let s;for(;;){if(e.listHeight===t.listHeight){s=e;break}if(t.kind!==4)throw new Error("unexpected");i.push(t),t=t.makeLastElementMutable()}for(let o=i.length-1;o>=0;o--){const r=i[o];s?r.childrenLength>=3?s=Eh.create23(r.unappendChild(),s,null,!1):(r.appendChildOfSameHeight(s),s=void 0):r.handleChildrenChanged()}return s?Eh.create23(n,s,null,!1):n}function Z7e(n,e){n=n.toMutable();let t=n;const i=[];for(;e.listHeight!==t.listHeight;){if(t.kind!==4)throw new Error("unexpected");i.push(t),t=t.makeFirstElementMutable()}let s=e;for(let o=i.length-1;o>=0;o--){const r=i[o];s?r.childrenLength>=3?s=Eh.create23(s,r.unprependChild(),null,!1):(r.prependChildOfSameHeight(s),s=void 0):r.handleChildrenChanged()}return s?Eh.create23(s,n,null,!1):n}class Y7e{constructor(e){this.lastOffset=Mr,this.nextNodes=[e],this.offsets=[Mr],this.idxs=[]}readLongestNodeAt(e,t){if(sC(e,this.lastOffset))throw new Error("Invalid offset");for(this.lastOffset=e;;){const i=Wy(this.nextNodes);if(!i)return;const s=Wy(this.offsets);if(sC(e,s))return;if(sC(s,e))if(Xn(s,i.length)<=e)this.nextNodeAfterCurrent();else{const o=u5(i);o!==-1?(this.nextNodes.push(i.getChild(o)),this.offsets.push(s),this.idxs.push(o)):this.nextNodeAfterCurrent()}else{if(t(i))return this.nextNodeAfterCurrent(),i;{const o=u5(i);if(o===-1){this.nextNodeAfterCurrent();return}else this.nextNodes.push(i.getChild(o)),this.offsets.push(s),this.idxs.push(o)}}}}nextNodeAfterCurrent(){for(;;){const e=Wy(this.offsets),t=Wy(this.nextNodes);if(this.nextNodes.pop(),this.offsets.pop(),this.idxs.length===0)break;const i=Wy(this.nextNodes),s=u5(i,this.idxs[this.idxs.length-1]);if(s!==-1){this.nextNodes.push(i.getChild(s)),this.offsets.push(Xn(e,t.length)),this.idxs[this.idxs.length-1]=s;break}else this.idxs.pop()}}}function u5(n,e=-1){for(;;){if(e++,e>=n.childrenLength)return-1;if(n.getChild(e))return e}}function Wy(n){return n.length>0?n[n.length-1]:void 0}function VB(n,e,t,i){return new X7e(n,e,t,i).parseDocument()}class X7e{constructor(e,t,i,s){if(this.tokenizer=e,this.createImmutableLists=s,this._itemsConstructed=0,this._itemsFromCache=0,i&&s)throw new Error("Not supported");this.oldNodeReader=i?new Y7e(i):void 0,this.positionMapper=new W7e(t)}parseDocument(){this._itemsConstructed=0,this._itemsFromCache=0;let e=this.parseList(Rs.getEmpty(),0);return e||(e=Eh.getEmpty()),e}parseList(e,t){const i=[];for(;;){let o=this.tryReadChildFromCache(e);if(!o){const r=this.tokenizer.peek();if(!r||r.kind===2&&r.bracketIds.intersects(e))break;o=this.parseChild(e,t+1)}o.kind===4&&o.childrenLength===0||i.push(o)}return this.oldNodeReader?q7e(i):Ace(i,this.createImmutableLists)}tryReadChildFromCache(e){if(this.oldNodeReader){const t=this.positionMapper.getDistanceToNextChange(this.tokenizer.offset);if(t===null||!nA(t)){const i=this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange(this.tokenizer.offset),s=>t!==null&&!sC(s.length,t)?!1:s.canBeReused(e));if(i)return this._itemsFromCache++,this.tokenizer.skip(i.length),i}}}parseChild(e,t){this._itemsConstructed++;const i=this.tokenizer.read();switch(i.kind){case 2:return new $7e(i.bracketIds,i.length);case 0:return i.astNode;case 1:{if(t>300)return new _v(i.length);const s=e.merge(i.bracketIds),o=this.parseList(s,t+1),r=this.tokenizer.peek();return r&&r.kind===2&&(r.bracketId===i.bracketId||r.bracketIds.intersects(i.bracketIds))?(this.tokenizer.read(),ML.create(i.astNode,o,r.astNode)):ML.create(i.astNode,o,null)}default:throw new Error("unexpected")}}}function rA(n,e){if(n.length===0)return e;if(e.length===0)return n;const t=new Lg(cQ(n)),i=cQ(e);i.push({modified:!1,lengthBefore:void 0,lengthAfter:void 0});let s=t.dequeue();function o(c){if(c===void 0){const u=t.takeWhile(h=>!0)||[];return s&&u.unshift(s),u}const d=[];for(;s&&!nA(c);){const[u,h]=s.splitAt(c);d.push(u),c=RL(u.lengthAfter,c),s=h??t.dequeue()}return nA(c)||d.push(new Yp(!1,c,c)),d}const r=[];function a(c,d,u){if(r.length>0&&Ice(r[r.length-1].endOffset,c)){const h=r[r.length-1];r[r.length-1]=new lg(h.startOffset,d,Xn(h.newLength,u))}else r.push({startOffset:c,endOffset:d,newLength:u})}let l=Mr;for(const c of i){const d=o(c.lengthBefore);if(c.modified){const u=F7e(d,f=>f.lengthBefore),h=Xn(l,u);a(l,h,c.lengthAfter),l=h}else for(const u of d){const h=l;l=Xn(l,u.lengthBefore),u.modified&&a(h,l,u.lengthAfter)}}return r}class Yp{constructor(e,t,i){this.modified=e,this.lengthBefore=t,this.lengthAfter=i}splitAt(e){const t=RL(e,this.lengthAfter);return Ice(t,Mr)?[this,void 0]:this.modified?[new Yp(this.modified,this.lengthBefore,e),new Yp(this.modified,Mr,t)]:[new Yp(this.modified,e,e),new Yp(this.modified,t,t)]}toString(){return`${this.modified?"M":"U"}:${nc(this.lengthBefore)} -> ${nc(this.lengthAfter)}`}}function cQ(n){const e=[];let t=Mr;for(const i of n){const s=RL(t,i.startOffset);nA(s)||e.push(new Yp(!1,s,s));const o=RL(i.startOffset,i.endOffset);e.push(new Yp(!0,o,i.newLength)),t=i.endOffset}return e}class Q7e extends ne{didLanguageChange(e){return this.brackets.didLanguageChange(e)}constructor(e,t){if(super(),this.textModel=e,this.getLanguageConfiguration=t,this.didChangeEmitter=new X,this.denseKeyProvider=new Ece,this.brackets=new Nce(this.denseKeyProvider,this.getLanguageConfiguration),this.onDidChange=this.didChangeEmitter.event,this.queuedTextEditsForInitialAstWithoutTokens=[],this.queuedTextEdits=[],e.tokenization.hasTokens)e.tokenization.backgroundTokenizationState===2?(this.initialAstWithoutTokens=void 0,this.astWithTokens=this.parseDocumentFromTextBuffer([],void 0,!1)):(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer([],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens);else{const i=this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId()),s=new j7e(this.textModel.getValue(),i);this.initialAstWithoutTokens=VB(s,[],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens}}handleDidChangeBackgroundTokenizationState(){if(this.textModel.tokenization.backgroundTokenizationState===2){const e=this.initialAstWithoutTokens===void 0;this.initialAstWithoutTokens=void 0,e||this.didChangeEmitter.fire()}}handleDidChangeTokens({ranges:e}){const t=e.map(i=>new lg(vs(i.fromLineNumber-1,0),vs(i.toLineNumber,0),vs(i.toLineNumber-i.fromLineNumber+1,0)));this.handleEdits(t,!0),this.initialAstWithoutTokens||this.didChangeEmitter.fire()}handleContentChanged(e){const t=lg.fromModelContentChanges(e.changes);this.handleEdits(t,!1)}handleEdits(e,t){const i=rA(this.queuedTextEdits,e);this.queuedTextEdits=i,this.initialAstWithoutTokens&&!t&&(this.queuedTextEditsForInitialAstWithoutTokens=rA(this.queuedTextEditsForInitialAstWithoutTokens,e))}flushQueue(){this.queuedTextEdits.length>0&&(this.astWithTokens=this.parseDocumentFromTextBuffer(this.queuedTextEdits,this.astWithTokens,!1),this.queuedTextEdits=[]),this.queuedTextEditsForInitialAstWithoutTokens.length>0&&(this.initialAstWithoutTokens&&(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer(this.queuedTextEditsForInitialAstWithoutTokens,this.initialAstWithoutTokens,!1)),this.queuedTextEditsForInitialAstWithoutTokens=[])}parseDocumentFromTextBuffer(e,t,i){const s=t,o=new Tce(this.textModel,this.brackets);return VB(o,e,s,i)}getBracketsInRange(e,t){this.flushQueue();const i=vs(e.startLineNumber-1,e.startColumn-1),s=vs(e.endLineNumber-1,e.endColumn-1);return new fh(o=>{const r=this.initialAstWithoutTokens||this.astWithTokens;zB(r,Mr,r.length,i,s,o,0,0,new Map,t)})}getBracketPairsInRange(e,t){this.flushQueue();const i=D1(e.getStartPosition()),s=D1(e.getEndPosition());return new fh(o=>{const r=this.initialAstWithoutTokens||this.astWithTokens,a=new J7e(o,t,this.textModel);$B(r,Mr,r.length,i,s,a,0,new Map)})}getFirstBracketAfter(e){this.flushQueue();const t=this.initialAstWithoutTokens||this.astWithTokens;return Mce(t,Mr,t.length,D1(e))}getFirstBracketBefore(e){this.flushQueue();const t=this.initialAstWithoutTokens||this.astWithTokens;return Rce(t,Mr,t.length,D1(e))}}function Rce(n,e,t,i){if(n.kind===4||n.kind===2){const s=[];for(const o of n.children)t=Xn(e,o.length),s.push({nodeOffsetStart:e,nodeOffsetEnd:t}),e=t;for(let o=s.length-1;o>=0;o--){const{nodeOffsetStart:r,nodeOffsetEnd:a}=s[o];if(sC(r,i)){const l=Rce(n.children[o],r,a,i);if(l)return l}}return null}else{if(n.kind===3)return null;if(n.kind===1){const s=qv(e,t);return{bracketInfo:n.bracketInfo,range:s}}}return null}function Mce(n,e,t,i){if(n.kind===4||n.kind===2){for(const s of n.children){if(t=Xn(e,s.length),sC(i,t)){const o=Mce(s,e,t,i);if(o)return o}e=t}return null}else{if(n.kind===3)return null;if(n.kind===1){const s=qv(e,t);return{bracketInfo:n.bracketInfo,range:s}}}return null}function zB(n,e,t,i,s,o,r,a,l,c,d=!1){if(r>200)return!0;e:for(;;)switch(n.kind){case 4:{const u=n.childrenLength;for(let h=0;h200)return!0;let c=!0;if(n.kind===2){let d=0;if(a){let f=a.get(n.openingBracket.text);f===void 0&&(f=0),d=f,f++,a.set(n.openingBracket.text,f)}const u=Xn(e,n.openingBracket.length);let h=-1;if(o.includeMinIndentation&&(h=n.computeMinIndentation(e,o.textModel)),c=o.push(new M7e(qv(e,t),qv(e,u),n.closingBracket?qv(Xn(u,((l=n.child)===null||l===void 0?void 0:l.length)||Mr),t):void 0,r,d,n,h)),e=u,c&&n.child){const f=n.child;if(t=Xn(e,f.length),oC(e,s)&&IS(t,i)&&(c=$B(f,e,t,i,s,o,r+1,a),!c))return!1}a==null||a.set(n.openingBracket.text,d)}else{let d=e;for(const u of n.children){const h=d;if(d=Xn(d,u.length),oC(h,s)&&oC(i,d)&&(c=$B(u,h,d,i,s,o,r,a),!c))return!1}}return c}class eBe extends ne{get canBuildAST(){return this.textModel.getValueLength()<=5e6}constructor(e,t){super(),this.textModel=e,this.languageConfigurationService=t,this.bracketPairsTree=this._register(new Qs),this.onDidChangeEmitter=new X,this.onDidChange=this.onDidChangeEmitter.event,this.bracketsRequested=!1,this._register(this.languageConfigurationService.onDidChange(i=>{var s;(!i.languageId||!((s=this.bracketPairsTree.value)===null||s===void 0)&&s.object.didLanguageChange(i.languageId))&&(this.bracketPairsTree.clear(),this.updateBracketPairsTree())}))}handleDidChangeOptions(e){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeLanguage(e){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeContent(e){var t;(t=this.bracketPairsTree.value)===null||t===void 0||t.object.handleContentChanged(e)}handleDidChangeBackgroundTokenizationState(){var e;(e=this.bracketPairsTree.value)===null||e===void 0||e.object.handleDidChangeBackgroundTokenizationState()}handleDidChangeTokens(e){var t;(t=this.bracketPairsTree.value)===null||t===void 0||t.object.handleDidChangeTokens(e)}updateBracketPairsTree(){if(this.bracketsRequested&&this.canBuildAST){if(!this.bracketPairsTree.value){const e=new be;this.bracketPairsTree.value=tBe(e.add(new Q7e(this.textModel,t=>this.languageConfigurationService.getLanguageConfiguration(t))),e),e.add(this.bracketPairsTree.value.object.onDidChange(t=>this.onDidChangeEmitter.fire(t))),this.onDidChangeEmitter.fire()}}else this.bracketPairsTree.value&&(this.bracketPairsTree.clear(),this.onDidChangeEmitter.fire())}getBracketPairsInRange(e){var t;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((t=this.bracketPairsTree.value)===null||t===void 0?void 0:t.object.getBracketPairsInRange(e,!1))||fh.empty}getBracketPairsInRangeWithMinIndentation(e){var t;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((t=this.bracketPairsTree.value)===null||t===void 0?void 0:t.object.getBracketPairsInRange(e,!0))||fh.empty}getBracketsInRange(e,t=!1){var i;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((i=this.bracketPairsTree.value)===null||i===void 0?void 0:i.object.getBracketsInRange(e,t))||fh.empty}findMatchingBracketUp(e,t,i){const s=this.textModel.validatePosition(t),o=this.textModel.getLanguageIdAtPosition(s.lineNumber,s.column);if(this.canBuildAST){const r=this.languageConfigurationService.getLanguageConfiguration(o).bracketsNew.getClosingBracketInfo(e);if(!r)return null;const a=this.getBracketPairsInRange(A.fromPositions(t,t)).findLast(l=>r.closes(l.openingBracketInfo));return a?a.openingBracketRange:null}else{const r=e.toLowerCase(),a=this.languageConfigurationService.getLanguageConfiguration(o).brackets;if(!a)return null;const l=a.textIsBracket[r];return l?UE(this._findMatchingBracketUp(l,s,h5(i))):null}}matchBracket(e,t){if(this.canBuildAST){const i=this.getBracketPairsInRange(A.fromPositions(e,e)).filter(s=>s.closingBracketRange!==void 0&&(s.openingBracketRange.containsPosition(e)||s.closingBracketRange.containsPosition(e))).findLastMaxBy(oa(s=>s.openingBracketRange.containsPosition(e)?s.openingBracketRange:s.closingBracketRange,A.compareRangesUsingStarts));return i?[i.openingBracketRange,i.closingBracketRange]:null}else{const i=h5(t);return this._matchBracket(this.textModel.validatePosition(e),i)}}_establishBracketSearchOffsets(e,t,i,s){const o=t.getCount(),r=t.getLanguageId(s);let a=Math.max(0,e.column-1-i.maxBracketLength);for(let c=s-1;c>=0;c--){const d=t.getEndOffset(c);if(d<=a)break;if(Fu(t.getStandardTokenType(c))||t.getLanguageId(c)!==r){a=d;break}}let l=Math.min(t.getLineContent().length,e.column-1+i.maxBracketLength);for(let c=s+1;c=l)break;if(Fu(t.getStandardTokenType(c))||t.getLanguageId(c)!==r){l=d;break}}return{searchStartOffset:a,searchEndOffset:l}}_matchBracket(e,t){const i=e.lineNumber,s=this.textModel.tokenization.getLineTokens(i),o=this.textModel.getLineContent(i),r=s.findTokenIndexAtOffset(e.column-1);if(r<0)return null;const a=this.languageConfigurationService.getLanguageConfiguration(s.getLanguageId(r)).brackets;if(a&&!Fu(s.getStandardTokenType(r))){let{searchStartOffset:l,searchEndOffset:c}=this._establishBracketSearchOffsets(e,s,a,r),d=null;for(;;){const u=Oc.findNextBracketInRange(a.forwardRegex,i,o,l,c);if(!u)break;if(u.startColumn<=e.column&&e.column<=u.endColumn){const h=o.substring(u.startColumn-1,u.endColumn-1).toLowerCase(),f=this._matchFoundBracket(u,a.textIsBracket[h],a.textIsOpenBracket[h],t);if(f){if(f instanceof Nf)return null;d=f}}l=u.endColumn-1}if(d)return d}if(r>0&&s.getStartOffset(r)===e.column-1){const l=r-1,c=this.languageConfigurationService.getLanguageConfiguration(s.getLanguageId(l)).brackets;if(c&&!Fu(s.getStandardTokenType(l))){const{searchStartOffset:d,searchEndOffset:u}=this._establishBracketSearchOffsets(e,s,c,l),h=Oc.findPrevBracketInRange(c.reversedRegex,i,o,d,u);if(h&&h.startColumn<=e.column&&e.column<=h.endColumn){const f=o.substring(h.startColumn-1,h.endColumn-1).toLowerCase(),g=this._matchFoundBracket(h,c.textIsBracket[f],c.textIsOpenBracket[f],t);if(g)return g instanceof Nf?null:g}}}return null}_matchFoundBracket(e,t,i,s){if(!t)return null;const o=i?this._findMatchingBracketDown(t,e.getEndPosition(),s):this._findMatchingBracketUp(t,e.getStartPosition(),s);return o?o instanceof Nf?o:[e,o]:null}_findMatchingBracketUp(e,t,i){const s=e.languageId,o=e.reversedRegex;let r=-1,a=0;const l=(c,d,u,h)=>{for(;;){if(i&&++a%100===0&&!i())return Nf.INSTANCE;const f=Oc.findPrevBracketInRange(o,c,d,u,h);if(!f)break;const g=d.substring(f.startColumn-1,f.endColumn-1).toLowerCase();if(e.isOpen(g)?r++:e.isClose(g)&&r--,r===0)return f;h=f.startColumn-1}return null};for(let c=t.lineNumber;c>=1;c--){const d=this.textModel.tokenization.getLineTokens(c),u=d.getCount(),h=this.textModel.getLineContent(c);let f=u-1,g=h.length,p=h.length;c===t.lineNumber&&(f=d.findTokenIndexAtOffset(t.column-1),g=t.column-1,p=t.column-1);let _=!0;for(;f>=0;f--){const b=d.getLanguageId(f)===s&&!Fu(d.getStandardTokenType(f));if(b)_?g=d.getStartOffset(f):(g=d.getStartOffset(f),p=d.getEndOffset(f));else if(_&&g!==p){const w=l(c,h,g,p);if(w)return w}_=b}if(_&&g!==p){const b=l(c,h,g,p);if(b)return b}}return null}_findMatchingBracketDown(e,t,i){const s=e.languageId,o=e.forwardRegex;let r=1,a=0;const l=(d,u,h,f)=>{for(;;){if(i&&++a%100===0&&!i())return Nf.INSTANCE;const g=Oc.findNextBracketInRange(o,d,u,h,f);if(!g)break;const p=u.substring(g.startColumn-1,g.endColumn-1).toLowerCase();if(e.isOpen(p)?r++:e.isClose(p)&&r--,r===0)return g;h=g.endColumn-1}return null},c=this.textModel.getLineCount();for(let d=t.lineNumber;d<=c;d++){const u=this.textModel.tokenization.getLineTokens(d),h=u.getCount(),f=this.textModel.getLineContent(d);let g=0,p=0,_=0;d===t.lineNumber&&(g=u.findTokenIndexAtOffset(t.column-1),p=t.column-1,_=t.column-1);let b=!0;for(;g=1;a--){const l=this.textModel.tokenization.getLineTokens(a),c=l.getCount(),d=this.textModel.getLineContent(a);let u=c-1,h=d.length,f=d.length;if(a===i.lineNumber){u=l.findTokenIndexAtOffset(i.column-1),h=i.column-1,f=i.column-1;const p=l.getLanguageId(u);s!==p&&(s=p,o=this.languageConfigurationService.getLanguageConfiguration(s).brackets,r=this.languageConfigurationService.getLanguageConfiguration(s).bracketsNew)}let g=!0;for(;u>=0;u--){const p=l.getLanguageId(u);if(s!==p){if(o&&r&&g&&h!==f){const b=Oc.findPrevBracketInRange(o.reversedRegex,a,d,h,f);if(b)return this._toFoundBracket(r,b);g=!1}s=p,o=this.languageConfigurationService.getLanguageConfiguration(s).brackets,r=this.languageConfigurationService.getLanguageConfiguration(s).bracketsNew}const _=!!o&&!Fu(l.getStandardTokenType(u));if(_)g?h=l.getStartOffset(u):(h=l.getStartOffset(u),f=l.getEndOffset(u));else if(r&&o&&g&&h!==f){const b=Oc.findPrevBracketInRange(o.reversedRegex,a,d,h,f);if(b)return this._toFoundBracket(r,b)}g=_}if(r&&o&&g&&h!==f){const p=Oc.findPrevBracketInRange(o.reversedRegex,a,d,h,f);if(p)return this._toFoundBracket(r,p)}}return null}findNextBracket(e){var t;const i=this.textModel.validatePosition(e);if(this.canBuildAST)return this.bracketsRequested=!0,this.updateBracketPairsTree(),((t=this.bracketPairsTree.value)===null||t===void 0?void 0:t.object.getFirstBracketAfter(i))||null;const s=this.textModel.getLineCount();let o=null,r=null,a=null;for(let l=i.lineNumber;l<=s;l++){const c=this.textModel.tokenization.getLineTokens(l),d=c.getCount(),u=this.textModel.getLineContent(l);let h=0,f=0,g=0;if(l===i.lineNumber){h=c.findTokenIndexAtOffset(i.column-1),f=i.column-1,g=i.column-1;const _=c.getLanguageId(h);o!==_&&(o=_,r=this.languageConfigurationService.getLanguageConfiguration(o).brackets,a=this.languageConfigurationService.getLanguageConfiguration(o).bracketsNew)}let p=!0;for(;hp.closingBracketRange!==void 0&&p.range.strictContainsRange(f));return g?[g.openingBracketRange,g.closingBracketRange]:null}const s=h5(t),o=this.textModel.getLineCount(),r=new Map;let a=[];const l=(f,g)=>{if(!r.has(f)){const p=[];for(let _=0,b=g?g.brackets.length:0;_{for(;;){if(s&&++c%100===0&&!s())return Nf.INSTANCE;const w=Oc.findNextBracketInRange(f.forwardRegex,g,p,_,b);if(!w)break;const y=p.substring(w.startColumn-1,w.endColumn-1).toLowerCase(),S=f.textIsBracket[y];if(S&&(S.isOpen(y)?a[S.index]++:S.isClose(y)&&a[S.index]--,a[S.index]===-1))return this._matchFoundBracket(w,S,!1,s);_=w.endColumn-1}return null};let u=null,h=null;for(let f=i.lineNumber;f<=o;f++){const g=this.textModel.tokenization.getLineTokens(f),p=g.getCount(),_=this.textModel.getLineContent(f);let b=0,w=0,y=0;if(f===i.lineNumber){b=g.findTokenIndexAtOffset(i.column-1),w=i.column-1,y=i.column-1;const x=g.getLanguageId(b);u!==x&&(u=x,h=this.languageConfigurationService.getLanguageConfiguration(u).brackets,l(u,h))}let S=!0;for(;be==null?void 0:e.dispose()}}function h5(n){if(typeof n>"u")return()=>!0;{const e=Date.now();return()=>Date.now()-e<=n}}class Nf{constructor(){this._searchCanceledBrand=void 0}}Nf.INSTANCE=new Nf;function UE(n){return n instanceof Nf?null:n}class iBe extends ne{constructor(e){super(),this.textModel=e,this.colorProvider=new Pce,this.onDidChangeEmitter=new X,this.onDidChange=this.onDidChangeEmitter.event,this.colorizationOptions=e.getOptions().bracketPairColorizationOptions,this._register(e.bracketPairs.onDidChange(t=>{this.onDidChangeEmitter.fire()}))}handleDidChangeOptions(e){this.colorizationOptions=this.textModel.getOptions().bracketPairColorizationOptions}getDecorationsInRange(e,t,i,s){return s?[]:t===void 0?[]:this.colorizationOptions.enabled?this.textModel.bracketPairs.getBracketsInRange(e,!0).map(r=>({id:`bracket${r.range.toString()}-${r.nestingLevel}`,options:{description:"BracketPairColorization",inlineClassName:this.colorProvider.getInlineClassName(r,this.colorizationOptions.independentColorPoolPerBracketType)},ownerId:0,range:r.range})).toArray():[]}getAllDecorations(e,t){return e===void 0?[]:this.colorizationOptions.enabled?this.getDecorationsInRange(new A(1,1,this.textModel.getLineCount(),1),e,t):[]}}class Pce{constructor(){this.unexpectedClosingBracketClassName="unexpected-closing-bracket"}getInlineClassName(e,t){return e.isInvalid?this.unexpectedClosingBracketClassName:this.getInlineClassNameOfLevel(t?e.nestingLevelOfEqualBracketType:e.nestingLevel)}getInlineClassNameOfLevel(e){return`bracket-highlighting-${e%30}`}}mc((n,e)=>{const t=[lce,cce,dce,uce,hce,fce],i=new Pce;e.addRule(`.monaco-editor .${i.unexpectedClosingBracketClassName} { color: ${n.getColor(Y3e)}; }`);const s=t.map(o=>n.getColor(o)).filter(o=>!!o).filter(o=>!o.isTransparent());for(let o=0;o<30;o++){const r=s[o%s.length];e.addRule(`.monaco-editor .${i.getInlineClassNameOfLevel(o)} { color: ${r}; }`)}});function jE(n){return n.replace(/\n/g,"\\n").replace(/\r/g,"\\r")}class Eo{get oldLength(){return this.oldText.length}get oldEnd(){return this.oldPosition+this.oldText.length}get newLength(){return this.newText.length}get newEnd(){return this.newPosition+this.newText.length}constructor(e,t,i,s){this.oldPosition=e,this.oldText=t,this.newPosition=i,this.newText=s}toString(){return this.oldText.length===0?`(insert@${this.oldPosition} "${jE(this.newText)}")`:this.newText.length===0?`(delete@${this.oldPosition} "${jE(this.oldText)}")`:`(replace@${this.oldPosition} "${jE(this.oldText)}" with "${jE(this.newText)}")`}static _writeStringSize(e){return 4+2*e.length}static _writeString(e,t,i){const s=t.length;Id(e,s,i),i+=4;for(let o=0;on.length)return!1;if(t){if(!jV(n,e))return!1;if(e.length===n.length)return!0;let o=e.length;return e.charAt(e.length-1)===i&&o--,n.charAt(o)===i}return e.charAt(e.length-1)!==i&&(e+=i),n.indexOf(e)===0}function Fce(n){return n>=65&&n<=90||n>=97&&n<=122}function oBe(n,e=Mo){return e?Fce(n.charCodeAt(0))&&n.charCodeAt(1)===58:!1}function Bu(n){return T2(n,!0)}class rBe{constructor(e){this._ignorePathCasing=e}compare(e,t,i=!1){return e===t?0:dL(this.getComparisonKey(e,i),this.getComparisonKey(t,i))}isEqual(e,t,i=!1){return e===t?!0:!e||!t?!1:this.getComparisonKey(e,i)===this.getComparisonKey(t,i)}getComparisonKey(e,t=!1){return e.with({path:this._ignorePathCasing(e)?e.path.toLowerCase():void 0,fragment:t?null:void 0}).toString()}isEqualOrParent(e,t,i=!1){if(e.scheme===t.scheme){if(e.scheme===Tt.file)return UB(Bu(e),Bu(t),this._ignorePathCasing(e))&&e.query===t.query&&(i||e.fragment===t.fragment);if(hQ(e.authority,t.authority))return UB(e.path,t.path,this._ignorePathCasing(e),"/")&&e.query===t.query&&(i||e.fragment===t.fragment)}return!1}joinPath(e,...t){return pt.joinPath(e,...t)}basenameOrAuthority(e){return dc(e)||e.authority}basename(e){return ks.basename(e.path)}extname(e){return ks.extname(e.path)}dirname(e){if(e.path.length===0)return e;let t;return e.scheme===Tt.file?t=pt.file(cae(Bu(e))).path:(t=ks.dirname(e.path),e.authority&&t.length&&t.charCodeAt(0)!==47&&(console.error(`dirname("${e.toString})) resulted in a relative path`),t="/")),e.with({path:t})}normalizePath(e){if(!e.path.length)return e;let t;return e.scheme===Tt.file?t=pt.file(lae(Bu(e))).path:t=ks.normalize(e.path),e.with({path:t})}relativePath(e,t){if(e.scheme!==t.scheme||!hQ(e.authority,t.authority))return;if(e.scheme===Tt.file){const o=UAe(Bu(e),Bu(t));return Mo?Oce(o):o}let i=e.path||"/";const s=t.path||"/";if(this._ignorePathCasing(e)){let o=0;for(const r=Math.min(i.length,s.length);odQ(i).length&&i[i.length-1]===t}else{const i=e.path;return i.length>1&&i.charCodeAt(i.length-1)===47&&!/^[a-zA-Z]:(\/$|\\$)/.test(e.fsPath)}}removeTrailingPathSeparator(e,t=jd){return fQ(e,t)?e.with({path:e.path.substr(0,e.path.length-1)}):e}addTrailingPathSeparator(e,t=jd){let i=!1;if(e.scheme===Tt.file){const s=Bu(e);i=s!==void 0&&s.length===dQ(s).length&&s[s.length-1]===t}else{t="/";const s=e.path;i=s.length===1&&s.charCodeAt(s.length-1)===47}return!i&&!fQ(e,t)?e.with({path:e.path+"/"}):e}}const Tn=new rBe(()=>!1),Kz=Tn.isEqual.bind(Tn);Tn.isEqualOrParent.bind(Tn);Tn.getComparisonKey.bind(Tn);const aBe=Tn.basenameOrAuthority.bind(Tn),dc=Tn.basename.bind(Tn),lBe=Tn.extname.bind(Tn),VM=Tn.dirname.bind(Tn),cBe=Tn.joinPath.bind(Tn),dBe=Tn.normalizePath.bind(Tn),uBe=Tn.relativePath.bind(Tn),uQ=Tn.resolvePath.bind(Tn);Tn.isAbsolutePath.bind(Tn);const hQ=Tn.isEqualAuthority.bind(Tn),fQ=Tn.hasTrailingPathSeparator.bind(Tn);Tn.removeTrailingPathSeparator.bind(Tn);Tn.addTrailingPathSeparator.bind(Tn);var Vm;(function(n){n.META_DATA_LABEL="label",n.META_DATA_DESCRIPTION="description",n.META_DATA_SIZE="size",n.META_DATA_MIME="mime";function e(t){const i=new Map;t.path.substring(t.path.indexOf(";")+1,t.path.lastIndexOf(";")).split(";").forEach(r=>{const[a,l]=r.split(":");a&&l&&i.set(a,l)});const o=t.path.substring(0,t.path.indexOf(";"));return o&&i.set(n.META_DATA_MIME,o),i}n.parseMetaData=e})(Vm||(Vm={}));function Bb(n){return n.toString()}class no{static create(e,t){const i=e.getAlternativeVersionId(),s=jB(e);return new no(i,i,s,s,t,t,[])}constructor(e,t,i,s,o,r,a){this.beforeVersionId=e,this.afterVersionId=t,this.beforeEOL=i,this.afterEOL=s,this.beforeCursorState=o,this.afterCursorState=r,this.changes=a}append(e,t,i,s,o){t.length>0&&(this.changes=nBe(this.changes,t)),this.afterEOL=i,this.afterVersionId=s,this.afterCursorState=o}static _writeSelectionsSize(e){return 4+4*4*(e?e.length:0)}static _writeSelections(e,t,i){if(Id(e,t?t.length:0,i),i+=4,t)for(const s of t)Id(e,s.selectionStartLineNumber,i),i+=4,Id(e,s.selectionStartColumn,i),i+=4,Id(e,s.positionLineNumber,i),i+=4,Id(e,s.positionColumn,i),i+=4;return i}static _readSelections(e,t,i){const s=Dd(e,t);t+=4;for(let o=0;ot.toString()).join(", ")}matchesResource(e){return(pt.isUri(this.model)?this.model:this.model.uri).toString()===e.toString()}setModel(e){this.model=e}canAppend(e){return this.model===e&&this._data instanceof no}append(e,t,i,s,o){this._data instanceof no&&this._data.append(e,t,i,s,o)}close(){this._data instanceof no&&(this._data=this._data.serialize())}open(){this._data instanceof no||(this._data=no.deserialize(this._data))}undo(){if(pt.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof no&&(this._data=this._data.serialize());const e=no.deserialize(this._data);this.model._applyUndo(e.changes,e.beforeEOL,e.beforeVersionId,e.beforeCursorState)}redo(){if(pt.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof no&&(this._data=this._data.serialize());const e=no.deserialize(this._data);this.model._applyRedo(e.changes,e.afterEOL,e.afterVersionId,e.afterCursorState)}heapSize(){return this._data instanceof no&&(this._data=this._data.serialize()),this._data.byteLength+168}}class hBe{get resources(){return this._editStackElementsArr.map(e=>e.resource)}constructor(e,t,i){this.label=e,this.code=t,this.type=1,this._isOpen=!0,this._editStackElementsArr=i.slice(0),this._editStackElementsMap=new Map;for(const s of this._editStackElementsArr){const o=Bb(s.resource);this._editStackElementsMap.set(o,s)}this._delegate=null}prepareUndoRedo(){if(this._delegate)return this._delegate.prepareUndoRedo(this)}matchesResource(e){const t=Bb(e);return this._editStackElementsMap.has(t)}setModel(e){const t=Bb(pt.isUri(e)?e:e.uri);this._editStackElementsMap.has(t)&&this._editStackElementsMap.get(t).setModel(e)}canAppend(e){if(!this._isOpen)return!1;const t=Bb(e.uri);return this._editStackElementsMap.has(t)?this._editStackElementsMap.get(t).canAppend(e):!1}append(e,t,i,s,o){const r=Bb(e.uri);this._editStackElementsMap.get(r).append(e,t,i,s,o)}close(){this._isOpen=!1}open(){}undo(){this._isOpen=!1;for(const e of this._editStackElementsArr)e.undo()}redo(){for(const e of this._editStackElementsArr)e.redo()}heapSize(e){const t=Bb(e);return this._editStackElementsMap.has(t)?this._editStackElementsMap.get(t).heapSize():0}split(){return this._editStackElementsArr}toString(){const e=[];for(const t of this._editStackElementsArr)e.push(`${dc(t.resource)}: ${t}`);return`{${e.join(", ")}}`}}function jB(n){return n.getEOL()===` `?0:1}function Af(n){return n?n instanceof Bce||n instanceof hBe:!1}class qz{constructor(e,t){this._model=e,this._undoRedoService=t}pushStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);Af(e)&&e.close()}popStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);Af(e)&&e.open()}clear(){this._undoRedoService.removeElements(this._model.uri)}_getOrCreateEditStackElement(e,t){const i=this._undoRedoService.getLastElement(this._model.uri);if(Af(i)&&i.canAppend(this._model))return i;const s=new Bce(v("edit","Typing"),"undoredo.textBufferEdit",this._model,e);return this._undoRedoService.pushElement(s,t),s}pushEOL(e){const t=this._getOrCreateEditStackElement(null,void 0);this._model.setEOL(e),t.append(this._model,[],jB(this._model),this._model.getAlternativeVersionId(),null)}pushEditOperation(e,t,i,s){const o=this._getOrCreateEditStackElement(e,s),r=this._model.applyEdits(t,!0),a=qz._computeCursorState(i,r),l=r.map((c,d)=>({index:d,textChange:c.textChange}));return l.sort((c,d)=>c.textChange.oldPosition===d.textChange.oldPosition?c.index-d.index:c.textChange.oldPosition-d.textChange.oldPosition),o.append(this._model,l.map(c=>c.textChange),jB(this._model),this._model.getAlternativeVersionId(),a),a}static _computeCursorState(e,t){try{return e?e(t):null}catch(i){return Mt(i),null}}}class fBe{constructor(){this.spacesDiff=0,this.looksLikeAlignment=!1}}function gBe(n,e,t,i,s){s.spacesDiff=0,s.looksLikeAlignment=!1;let o;for(o=0;o0&&a>0||l>0&&c>0)return;const d=Math.abs(a-c),u=Math.abs(r-l);if(d===0){s.spacesDiff=u,u>0&&0<=l-1&&l-10?s++:S>1&&o++,gBe(r,a,_,y,u),u.looksLikeAlignment&&!(t&&e===u.spacesDiff)))continue;const k=u.spacesDiff;k<=c&&d[k]++,r=_,a=y}let h=t;s!==o&&(h=s{const _=d[p];_>g&&(g=_,f=p)}),f===4&&d[4]>0&&d[2]>0&&d[2]>=d[4]/2&&(f=2)}return{insertSpaces:h,tabSize:f}}function Yr(n){return(n.metadata&1)>>>0}function xn(n,e){n.metadata=n.metadata&254|e<<0}function Ro(n){return(n.metadata&2)>>>1===1}function wn(n,e){n.metadata=n.metadata&253|(e?1:0)<<1}function Wce(n){return(n.metadata&4)>>>2===1}function pQ(n,e){n.metadata=n.metadata&251|(e?1:0)<<2}function Hce(n){return(n.metadata&64)>>>6===1}function mQ(n,e){n.metadata=n.metadata&191|(e?1:0)<<6}function pBe(n){return(n.metadata&24)>>>3}function _Q(n,e){n.metadata=n.metadata&231|e<<3}function mBe(n){return(n.metadata&32)>>>5===1}function vQ(n,e){n.metadata=n.metadata&223|(e?1:0)<<5}class Vce{constructor(e,t,i){this.metadata=0,this.parent=this,this.left=this,this.right=this,xn(this,1),this.start=t,this.end=i,this.delta=0,this.maxEnd=i,this.id=e,this.ownerId=0,this.options=null,pQ(this,!1),mQ(this,!1),_Q(this,1),vQ(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=i,this.range=null,wn(this,!1)}reset(e,t,i,s){this.start=t,this.end=i,this.maxEnd=i,this.cachedVersionId=e,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=i,this.range=s}setOptions(e){this.options=e;const t=this.options.className;pQ(this,t==="squiggly-error"||t==="squiggly-warning"||t==="squiggly-info"),mQ(this,this.options.glyphMarginClassName!==null),_Q(this,this.options.stickiness),vQ(this,this.options.collapseOnReplaceEdit)}setCachedOffsets(e,t,i){this.cachedVersionId!==i&&(this.range=null),this.cachedVersionId=i,this.cachedAbsoluteStart=e,this.cachedAbsoluteEnd=t}detach(){this.parent=null,this.left=null,this.right=null}}const Yt=new Vce(null,0,0);Yt.parent=Yt;Yt.left=Yt;Yt.right=Yt;xn(Yt,0);class f5{constructor(){this.root=Yt,this.requestNormalizeDelta=!1}intervalSearch(e,t,i,s,o,r){return this.root===Yt?[]:xBe(this,e,t,i,s,o,r)}search(e,t,i,s){return this.root===Yt?[]:SBe(this,e,t,i,s)}collectNodesFromOwner(e){return wBe(this,e)}collectNodesPostOrder(){return yBe(this)}insert(e){bQ(this,e),this._normalizeDeltaIfNecessary()}delete(e){CQ(this,e),this._normalizeDeltaIfNecessary()}resolveNode(e,t){const i=e;let s=0;for(;e!==this.root;)e===e.parent.right&&(s+=e.parent.delta),e=e.parent;const o=i.start+s,r=i.end+s;i.setCachedOffsets(o,r,t)}acceptReplace(e,t,i,s){const o=bBe(this,e,e+t);for(let r=0,a=o.length;rt||i===1?!1:i===2?!0:e}function vBe(n,e,t,i,s){const o=pBe(n),r=o===0||o===2,a=o===1||o===2,l=t-e,c=i,d=Math.min(l,c),u=n.start;let h=!1;const f=n.end;let g=!1;e<=u&&f<=t&&mBe(n)&&(n.start=e,h=!0,n.end=e,g=!0);{const _=s?1:l>0?2:0;!h&&Wb(u,r,e,_)&&(h=!0),!g&&Wb(f,a,e,_)&&(g=!0)}if(d>0&&!s){const _=l>c?2:0;!h&&Wb(u,r,e+d,_)&&(h=!0),!g&&Wb(f,a,e+d,_)&&(g=!0)}{const _=s?1:0;!h&&Wb(u,r,t,_)&&(n.start=e+c,h=!0),!g&&Wb(f,a,t,_)&&(n.end=e+c,g=!0)}const p=c-l;h||(n.start=Math.max(0,u+p)),g||(n.end=Math.max(0,f+p)),n.start>n.end&&(n.end=n.start)}function bBe(n,e,t){let i=n.root,s=0,o=0,r=0,a=0;const l=[];let c=0;for(;i!==Yt;){if(Ro(i)){wn(i.left,!1),wn(i.right,!1),i===i.parent.right&&(s-=i.parent.delta),i=i.parent;continue}if(!Ro(i.left)){if(o=s+i.maxEnd,ot){wn(i,!0);continue}if(a=s+i.end,a>=e&&(i.setCachedOffsets(r,a,0),l[c++]=i),wn(i,!0),i.right!==Yt&&!Ro(i.right)){s+=i.delta,i=i.right;continue}}return wn(n.root,!1),l}function CBe(n,e,t,i){let s=n.root,o=0,r=0,a=0;const l=i-(t-e);for(;s!==Yt;){if(Ro(s)){wn(s.left,!1),wn(s.right,!1),s===s.parent.right&&(o-=s.parent.delta),zm(s),s=s.parent;continue}if(!Ro(s.left)){if(r=o+s.maxEnd,rt){s.start+=l,s.end+=l,s.delta+=l,(s.delta<-1073741824||s.delta>1073741824)&&(n.requestNormalizeDelta=!0),wn(s,!0);continue}if(wn(s,!0),s.right!==Yt&&!Ro(s.right)){o+=s.delta,s=s.right;continue}}wn(n.root,!1)}function wBe(n,e){let t=n.root;const i=[];let s=0;for(;t!==Yt;){if(Ro(t)){wn(t.left,!1),wn(t.right,!1),t=t.parent;continue}if(t.left!==Yt&&!Ro(t.left)){t=t.left;continue}if(t.ownerId===e&&(i[s++]=t),wn(t,!0),t.right!==Yt&&!Ro(t.right)){t=t.right;continue}}return wn(n.root,!1),i}function yBe(n){let e=n.root;const t=[];let i=0;for(;e!==Yt;){if(Ro(e)){wn(e.left,!1),wn(e.right,!1),e=e.parent;continue}if(e.left!==Yt&&!Ro(e.left)){e=e.left;continue}if(e.right!==Yt&&!Ro(e.right)){e=e.right;continue}t[i++]=e,wn(e,!0)}return wn(n.root,!1),t}function SBe(n,e,t,i,s){let o=n.root,r=0,a=0,l=0;const c=[];let d=0;for(;o!==Yt;){if(Ro(o)){wn(o.left,!1),wn(o.right,!1),o===o.parent.right&&(r-=o.parent.delta),o=o.parent;continue}if(o.left!==Yt&&!Ro(o.left)){o=o.left;continue}a=r+o.start,l=r+o.end,o.setCachedOffsets(a,l,i);let u=!0;if(e&&o.ownerId&&o.ownerId!==e&&(u=!1),t&&Wce(o)&&(u=!1),s&&!Hce(o)&&(u=!1),u&&(c[d++]=o),wn(o,!0),o.right!==Yt&&!Ro(o.right)){r+=o.delta,o=o.right;continue}}return wn(n.root,!1),c}function xBe(n,e,t,i,s,o,r){let a=n.root,l=0,c=0,d=0,u=0;const h=[];let f=0;for(;a!==Yt;){if(Ro(a)){wn(a.left,!1),wn(a.right,!1),a===a.parent.right&&(l-=a.parent.delta),a=a.parent;continue}if(!Ro(a.left)){if(c=l+a.maxEnd,ct){wn(a,!0);continue}if(u=l+a.end,u>=e){a.setCachedOffsets(d,u,o);let g=!0;i&&a.ownerId&&a.ownerId!==i&&(g=!1),s&&Wce(a)&&(g=!1),r&&!Hce(a)&&(g=!1),g&&(h[f++]=a)}if(wn(a,!0),a.right!==Yt&&!Ro(a.right)){l+=a.delta,a=a.right;continue}}return wn(n.root,!1),h}function bQ(n,e){if(n.root===Yt)return e.parent=Yt,e.left=Yt,e.right=Yt,xn(e,0),n.root=e,n.root;LBe(n,e),bp(e.parent);let t=e;for(;t!==n.root&&Yr(t.parent)===1;)if(t.parent===t.parent.parent.left){const i=t.parent.parent.right;Yr(i)===1?(xn(t.parent,0),xn(i,0),xn(t.parent.parent,1),t=t.parent.parent):(t===t.parent.right&&(t=t.parent,_x(n,t)),xn(t.parent,0),xn(t.parent.parent,1),vx(n,t.parent.parent))}else{const i=t.parent.parent.left;Yr(i)===1?(xn(t.parent,0),xn(i,0),xn(t.parent.parent,1),t=t.parent.parent):(t===t.parent.left&&(t=t.parent,vx(n,t)),xn(t.parent,0),xn(t.parent.parent,1),_x(n,t.parent.parent))}return xn(n.root,0),e}function LBe(n,e){let t=0,i=n.root;const s=e.start,o=e.end;for(;;)if(DBe(s,o,i.start+t,i.end+t)<0)if(i.left===Yt){e.start-=t,e.end-=t,e.maxEnd-=t,i.left=e;break}else i=i.left;else if(i.right===Yt){e.start-=t+i.delta,e.end-=t+i.delta,e.maxEnd-=t+i.delta,i.right=e;break}else t+=i.delta,i=i.right;e.parent=i,e.left=Yt,e.right=Yt,xn(e,1)}function CQ(n,e){let t,i;if(e.left===Yt?(t=e.right,i=e,t.delta+=e.delta,(t.delta<-1073741824||t.delta>1073741824)&&(n.requestNormalizeDelta=!0),t.start+=e.delta,t.end+=e.delta):e.right===Yt?(t=e.left,i=e):(i=kBe(e.right),t=i.right,t.start+=i.delta,t.end+=i.delta,t.delta+=i.delta,(t.delta<-1073741824||t.delta>1073741824)&&(n.requestNormalizeDelta=!0),i.start+=e.delta,i.end+=e.delta,i.delta=e.delta,(i.delta<-1073741824||i.delta>1073741824)&&(n.requestNormalizeDelta=!0)),i===n.root){n.root=t,xn(t,0),e.detach(),g5(),zm(t),n.root.parent=Yt;return}const s=Yr(i)===1;if(i===i.parent.left?i.parent.left=t:i.parent.right=t,i===e?t.parent=i.parent:(i.parent===e?t.parent=i:t.parent=i.parent,i.left=e.left,i.right=e.right,i.parent=e.parent,xn(i,Yr(e)),e===n.root?n.root=i:e===e.parent.left?e.parent.left=i:e.parent.right=i,i.left!==Yt&&(i.left.parent=i),i.right!==Yt&&(i.right.parent=i)),e.detach(),s){bp(t.parent),i!==e&&(bp(i),bp(i.parent)),g5();return}bp(t),bp(t.parent),i!==e&&(bp(i),bp(i.parent));let o;for(;t!==n.root&&Yr(t)===0;)t===t.parent.left?(o=t.parent.right,Yr(o)===1&&(xn(o,0),xn(t.parent,1),_x(n,t.parent),o=t.parent.right),Yr(o.left)===0&&Yr(o.right)===0?(xn(o,1),t=t.parent):(Yr(o.right)===0&&(xn(o.left,0),xn(o,1),vx(n,o),o=t.parent.right),xn(o,Yr(t.parent)),xn(t.parent,0),xn(o.right,0),_x(n,t.parent),t=n.root)):(o=t.parent.left,Yr(o)===1&&(xn(o,0),xn(t.parent,1),vx(n,t.parent),o=t.parent.left),Yr(o.left)===0&&Yr(o.right)===0?(xn(o,1),t=t.parent):(Yr(o.left)===0&&(xn(o.right,0),xn(o,1),_x(n,o),o=t.parent.left),xn(o,Yr(t.parent)),xn(t.parent,0),xn(o.left,0),vx(n,t.parent),t=n.root));xn(t,0),g5()}function kBe(n){for(;n.left!==Yt;)n=n.left;return n}function g5(){Yt.parent=Yt,Yt.delta=0,Yt.start=0,Yt.end=0}function _x(n,e){const t=e.right;t.delta+=e.delta,(t.delta<-1073741824||t.delta>1073741824)&&(n.requestNormalizeDelta=!0),t.start+=e.delta,t.end+=e.delta,e.right=t.left,t.left!==Yt&&(t.left.parent=e),t.parent=e.parent,e.parent===Yt?n.root=t:e===e.parent.left?e.parent.left=t:e.parent.right=t,t.left=e,e.parent=t,zm(e),zm(t)}function vx(n,e){const t=e.left;e.delta-=t.delta,(e.delta<-1073741824||e.delta>1073741824)&&(n.requestNormalizeDelta=!0),e.start-=t.delta,e.end-=t.delta,e.left=t.right,t.right!==Yt&&(t.right.parent=e),t.parent=e.parent,e.parent===Yt?n.root=t:e===e.parent.right?e.parent.right=t:e.parent.left=t,t.right=e,e.parent=t,zm(e),zm(t)}function zce(n){let e=n.end;if(n.left!==Yt){const t=n.left.maxEnd;t>e&&(e=t)}if(n.right!==Yt){const t=n.right.maxEnd+n.delta;t>e&&(e=t)}return e}function zm(n){n.maxEnd=zce(n)}function bp(n){for(;n!==Yt;){const e=zce(n);if(n.maxEnd===e)return;n.maxEnd=e,n=n.parent}}function DBe(n,e,t,i){return n===t?e-i:n-t}class KB{constructor(e,t){this.piece=e,this.color=t,this.size_left=0,this.lf_left=0,this.parent=this,this.left=this,this.right=this}next(){if(this.right!==Ht)return Gz(this.right);let e=this;for(;e.parent!==Ht&&e.parent.left!==e;)e=e.parent;return e.parent===Ht?Ht:e.parent}prev(){if(this.left!==Ht)return $ce(this.left);let e=this;for(;e.parent!==Ht&&e.parent.right!==e;)e=e.parent;return e.parent===Ht?Ht:e.parent}detach(){this.parent=null,this.left=null,this.right=null}}const Ht=new KB(null,0);Ht.parent=Ht;Ht.left=Ht;Ht.right=Ht;Ht.color=0;function Gz(n){for(;n.left!==Ht;)n=n.left;return n}function $ce(n){for(;n.right!==Ht;)n=n.right;return n}function Zz(n){return n===Ht?0:n.size_left+n.piece.length+Zz(n.right)}function Yz(n){return n===Ht?0:n.lf_left+n.piece.lineFeedCnt+Yz(n.right)}function p5(){Ht.parent=Ht}function bx(n,e){const t=e.right;t.size_left+=e.size_left+(e.piece?e.piece.length:0),t.lf_left+=e.lf_left+(e.piece?e.piece.lineFeedCnt:0),e.right=t.left,t.left!==Ht&&(t.left.parent=e),t.parent=e.parent,e.parent===Ht?n.root=t:e.parent.left===e?e.parent.left=t:e.parent.right=t,t.left=e,e.parent=t}function Cx(n,e){const t=e.left;e.left=t.right,t.right!==Ht&&(t.right.parent=e),t.parent=e.parent,e.size_left-=t.size_left+(t.piece?t.piece.length:0),e.lf_left-=t.lf_left+(t.piece?t.piece.lineFeedCnt:0),e.parent===Ht?n.root=t:e===e.parent.right?e.parent.right=t:e.parent.left=t,t.right=e,e.parent=t}function KE(n,e){let t,i;if(e.left===Ht?(i=e,t=i.right):e.right===Ht?(i=e,t=i.left):(i=Gz(e.right),t=i.right),i===n.root){n.root=t,t.color=0,e.detach(),p5(),n.root.parent=Ht;return}const s=i.color===1;if(i===i.parent.left?i.parent.left=t:i.parent.right=t,i===e?(t.parent=i.parent,ES(n,t)):(i.parent===e?t.parent=i:t.parent=i.parent,ES(n,t),i.left=e.left,i.right=e.right,i.parent=e.parent,i.color=e.color,e===n.root?n.root=i:e===e.parent.left?e.parent.left=i:e.parent.right=i,i.left!==Ht&&(i.left.parent=i),i.right!==Ht&&(i.right.parent=i),i.size_left=e.size_left,i.lf_left=e.lf_left,ES(n,i)),e.detach(),t.parent.left===t){const r=Zz(t),a=Yz(t);if(r!==t.parent.size_left||a!==t.parent.lf_left){const l=r-t.parent.size_left,c=a-t.parent.lf_left;t.parent.size_left=r,t.parent.lf_left=a,Sf(n,t.parent,l,c)}}if(ES(n,t.parent),s){p5();return}let o;for(;t!==n.root&&t.color===0;)t===t.parent.left?(o=t.parent.right,o.color===1&&(o.color=0,t.parent.color=1,bx(n,t.parent),o=t.parent.right),o.left.color===0&&o.right.color===0?(o.color=1,t=t.parent):(o.right.color===0&&(o.left.color=0,o.color=1,Cx(n,o),o=t.parent.right),o.color=t.parent.color,t.parent.color=0,o.right.color=0,bx(n,t.parent),t=n.root)):(o=t.parent.left,o.color===1&&(o.color=0,t.parent.color=1,Cx(n,t.parent),o=t.parent.left),o.left.color===0&&o.right.color===0?(o.color=1,t=t.parent):(o.left.color===0&&(o.right.color=0,o.color=1,bx(n,o),o=t.parent.left),o.color=t.parent.color,t.parent.color=0,o.left.color=0,Cx(n,t.parent),t=n.root));t.color=0,p5()}function wQ(n,e){for(ES(n,e);e!==n.root&&e.parent.color===1;)if(e.parent===e.parent.parent.left){const t=e.parent.parent.right;t.color===1?(e.parent.color=0,t.color=0,e.parent.parent.color=1,e=e.parent.parent):(e===e.parent.right&&(e=e.parent,bx(n,e)),e.parent.color=0,e.parent.parent.color=1,Cx(n,e.parent.parent))}else{const t=e.parent.parent.left;t.color===1?(e.parent.color=0,t.color=0,e.parent.parent.color=1,e=e.parent.parent):(e===e.parent.left&&(e=e.parent,Cx(n,e)),e.parent.color=0,e.parent.parent.color=1,bx(n,e.parent.parent))}n.root.color=0}function Sf(n,e,t,i){for(;e!==n.root&&e!==Ht;)e.parent.left===e&&(e.parent.size_left+=t,e.parent.lf_left+=i),e=e.parent}function ES(n,e){let t=0,i=0;if(e!==n.root){for(;e!==n.root&&e===e.parent.right;)e=e.parent;if(e!==n.root)for(e=e.parent,t=Zz(e.left)-e.size_left,i=Yz(e.left)-e.lf_left,e.size_left+=t,e.lf_left+=i;e!==n.root&&(t!==0||i!==0);)e.parent.left===e&&(e.parent.size_left+=t,e.parent.lf_left+=i),e=e.parent}}const uf=65535;function Uce(n){let e;return n[n.length-1]<65536?e=new Uint16Array(n.length):e=new Uint32Array(n.length),e.set(n,0),e}class IBe{constructor(e,t,i,s,o){this.lineStarts=e,this.cr=t,this.lf=i,this.crlf=s,this.isBasicASCII=o}}function Lf(n,e=!0){const t=[0];let i=1;for(let s=0,o=n.length;s126)&&(r=!1)}const a=new IBe(Uce(n),i,s,o,r);return n.length=0,a}class va{constructor(e,t,i,s,o){this.bufferIndex=e,this.start=t,this.end=i,this.lineFeedCnt=s,this.length=o}}class vv{constructor(e,t){this.buffer=e,this.lineStarts=t}}class TBe{constructor(e,t){this._pieces=[],this._tree=e,this._BOM=t,this._index=0,e.root!==Ht&&e.iterate(e.root,i=>(i!==Ht&&this._pieces.push(i.piece),!0))}read(){return this._pieces.length===0?this._index===0?(this._index++,this._BOM):null:this._index>this._pieces.length-1?null:this._index===0?this._BOM+this._tree.getPieceContent(this._pieces[this._index++]):this._tree.getPieceContent(this._pieces[this._index++])}}class NBe{constructor(e){this._limit=e,this._cache=[]}get(e){for(let t=this._cache.length-1;t>=0;t--){const i=this._cache[t];if(i.nodeStartOffset<=e&&i.nodeStartOffset+i.node.piece.length>=e)return i}return null}get2(e){for(let t=this._cache.length-1;t>=0;t--){const i=this._cache[t];if(i.nodeStartLineNumber&&i.nodeStartLineNumber=e)return i}return null}set(e){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(e)}validate(e){let t=!1;const i=this._cache;for(let s=0;s=e){i[s]=null,t=!0;continue}}if(t){const s=[];for(const o of i)o!==null&&s.push(o);this._cache=s}}}class ABe{constructor(e,t,i){this.create(e,t,i)}create(e,t,i){this._buffers=[new vv("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=Ht,this._lineCnt=1,this._length=0,this._EOL=t,this._EOLLength=t.length,this._EOLNormalized=i;let s=null;for(let o=0,r=e.length;o0){e[o].lineStarts||(e[o].lineStarts=Lf(e[o].buffer));const a=new va(o+1,{line:0,column:0},{line:e[o].lineStarts.length-1,column:e[o].buffer.length-e[o].lineStarts[e[o].lineStarts.length-1]},e[o].lineStarts.length-1,e[o].buffer.length);this._buffers.push(e[o]),s=this.rbInsertRight(s,a)}this._searchCache=new NBe(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}normalizeEOL(e){const t=uf,i=t-Math.floor(t/3),s=i*2;let o="",r=0;const a=[];if(this.iterate(this.root,l=>{const c=this.getNodeContent(l),d=c.length;if(r<=i||r+d0){const l=o.replace(/\r\n|\r|\n/g,e);a.push(new vv(l,Lf(l)))}this.create(a,e,!0)}getEOL(){return this._EOL}setEOL(e){this._EOL=e,this._EOLLength=this._EOL.length,this.normalizeEOL(e)}createSnapshot(e){return new TBe(this,e)}getOffsetAt(e,t){let i=0,s=this.root;for(;s!==Ht;)if(s.left!==Ht&&s.lf_left+1>=e)s=s.left;else if(s.lf_left+s.piece.lineFeedCnt+1>=e){i+=s.size_left;const o=this.getAccumulatedValue(s,e-s.lf_left-2);return i+=o+t-1}else e-=s.lf_left+s.piece.lineFeedCnt,i+=s.size_left+s.piece.length,s=s.right;return i}getPositionAt(e){e=Math.floor(e),e=Math.max(0,e);let t=this.root,i=0;const s=e;for(;t!==Ht;)if(t.size_left!==0&&t.size_left>=e)t=t.left;else if(t.size_left+t.piece.length>=e){const o=this.getIndexOf(t,e-t.size_left);if(i+=t.lf_left+o.index,o.index===0){const r=this.getOffsetAt(i+1,1),a=s-r;return new ee(i+1,a+1)}return new ee(i+1,o.remainder+1)}else if(e-=t.size_left+t.piece.length,i+=t.lf_left+t.piece.lineFeedCnt,t.right===Ht){const o=this.getOffsetAt(i+1,1),r=s-e-o;return new ee(i+1,r+1)}else t=t.right;return new ee(1,1)}getValueInRange(e,t){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return"";const i=this.nodeAt2(e.startLineNumber,e.startColumn),s=this.nodeAt2(e.endLineNumber,e.endColumn),o=this.getValueInRange2(i,s);return t?t!==this._EOL||!this._EOLNormalized?o.replace(/\r\n|\r|\n/g,t):t===this.getEOL()&&this._EOLNormalized?o:o.replace(/\r\n|\r|\n/g,t):o}getValueInRange2(e,t){if(e.node===t.node){const a=e.node,l=this._buffers[a.piece.bufferIndex].buffer,c=this.offsetInBuffer(a.piece.bufferIndex,a.piece.start);return l.substring(c+e.remainder,c+t.remainder)}let i=e.node;const s=this._buffers[i.piece.bufferIndex].buffer,o=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);let r=s.substring(o+e.remainder,o+i.piece.length);for(i=i.next();i!==Ht;){const a=this._buffers[i.piece.bufferIndex].buffer,l=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);if(i===t.node){r+=a.substring(l,l+t.remainder);break}else r+=a.substr(l,i.piece.length);i=i.next()}return r}getLinesContent(){const e=[];let t=0,i="",s=!1;return this.iterate(this.root,o=>{if(o===Ht)return!0;const r=o.piece;let a=r.length;if(a===0)return!0;const l=this._buffers[r.bufferIndex].buffer,c=this._buffers[r.bufferIndex].lineStarts,d=r.start.line,u=r.end.line;let h=c[d]+r.start.column;if(s&&(l.charCodeAt(h)===10&&(h++,a--),e[t++]=i,i="",s=!1,a===0))return!0;if(d===u)return!this._EOLNormalized&&l.charCodeAt(h+a-1)===13?(s=!0,i+=l.substr(h,a-1)):i+=l.substr(h,a),!0;i+=this._EOLNormalized?l.substring(h,Math.max(h,c[d+1]-this._EOLLength)):l.substring(h,c[d+1]).replace(/(\r\n|\r|\n)$/,""),e[t++]=i;for(let f=d+1;fS+g,t.reset(0)):(w=h.buffer,y=S=>S,t.reset(g));do if(_=t.next(w),_){if(y(_.index)>=p)return d;this.positionInBuffer(e,y(_.index)-f,b);const S=this.getLineFeedCnt(e.piece.bufferIndex,o,b),x=b.line===o.line?b.column-o.column+s:b.column+1,k=x+_[0].length;if(u[d++]=uv(new A(i+S,x,i+S,k),_,l),y(_.index)+_[0].length>=p||d>=c)return d}while(_);return d}findMatchesLineByLine(e,t,i,s){const o=[];let r=0;const a=new m1(t.wordSeparators,t.regex);let l=this.nodeAt2(e.startLineNumber,e.startColumn);if(l===null)return[];const c=this.nodeAt2(e.endLineNumber,e.endColumn);if(c===null)return[];let d=this.positionInBuffer(l.node,l.remainder);const u=this.positionInBuffer(c.node,c.remainder);if(l.node===c.node)return this.findMatchesInNode(l.node,a,e.startLineNumber,e.startColumn,d,u,t,i,s,r,o),o;let h=e.startLineNumber,f=l.node;for(;f!==c.node;){const p=this.getLineFeedCnt(f.piece.bufferIndex,d,f.piece.end);if(p>=1){const b=this._buffers[f.piece.bufferIndex].lineStarts,w=this.offsetInBuffer(f.piece.bufferIndex,f.piece.start),y=b[d.line+p],S=h===e.startLineNumber?e.startColumn:1;if(r=this.findMatchesInNode(f,a,h,S,d,this.positionInBuffer(f,y-w),t,i,s,r,o),r>=s)return o;h+=p}const _=h===e.startLineNumber?e.startColumn-1:0;if(h===e.endLineNumber){const b=this.getLineContent(h).substring(_,e.endColumn-1);return r=this._findMatchesInLine(t,a,b,e.endLineNumber,_,r,o,i,s),o}if(r=this._findMatchesInLine(t,a,this.getLineContent(h).substr(_),h,_,r,o,i,s),r>=s)return o;h++,l=this.nodeAt2(h,1),f=l.node,d=this.positionInBuffer(l.node,l.remainder)}if(h===e.endLineNumber){const p=h===e.startLineNumber?e.startColumn-1:0,_=this.getLineContent(h).substring(p,e.endColumn-1);return r=this._findMatchesInLine(t,a,_,e.endLineNumber,p,r,o,i,s),o}const g=h===e.startLineNumber?e.startColumn:1;return r=this.findMatchesInNode(c.node,a,h,g,d,u,t,i,s,r,o),o}_findMatchesInLine(e,t,i,s,o,r,a,l,c){const d=e.wordSeparators;if(!l&&e.simpleSearch){const h=e.simpleSearch,f=h.length,g=i.length;let p=-f;for(;(p=i.indexOf(h,p+f))!==-1;)if((!d||hz(d,i,g,p,f))&&(a[r++]=new pL(new A(s,p+1+o,s,p+1+f+o),null),r>=c))return r;return r}let u;t.reset(0);do if(u=t.next(i),u&&(a[r++]=uv(new A(s,u.index+1+o,s,u.index+1+u[0].length+o),u,l),r>=c))return r;while(u);return r}insert(e,t,i=!1){if(this._EOLNormalized=this._EOLNormalized&&i,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==Ht){const{node:s,remainder:o,nodeStartOffset:r}=this.nodeAt(e),a=s.piece,l=a.bufferIndex,c=this.positionInBuffer(s,o);if(s.piece.bufferIndex===0&&a.end.line===this._lastChangeBufferPos.line&&a.end.column===this._lastChangeBufferPos.column&&r+a.length===e&&t.lengthe){const d=[];let u=new va(a.bufferIndex,c,a.end,this.getLineFeedCnt(a.bufferIndex,c,a.end),this.offsetInBuffer(l,a.end)-this.offsetInBuffer(l,c));if(this.shouldCheckCRLF()&&this.endWithCR(t)&&this.nodeCharCodeAt(s,o)===10){const p={line:u.start.line+1,column:0};u=new va(u.bufferIndex,p,u.end,this.getLineFeedCnt(u.bufferIndex,p,u.end),u.length-1),t+=` `}if(this.shouldCheckCRLF()&&this.startWithLF(t))if(this.nodeCharCodeAt(s,o-1)===13){const p=this.positionInBuffer(s,o-1);this.deleteNodeTail(s,p),t="\r"+t,s.piece.length===0&&d.push(s)}else this.deleteNodeTail(s,c);else this.deleteNodeTail(s,c);const h=this.createNewPieces(t);u.length>0&&this.rbInsertRight(s,u);let f=s;for(let g=0;g=0;r--)o=this.rbInsertLeft(o,s[r]);this.validateCRLFWithPrevNode(o),this.deleteNodes(i)}insertContentToNodeRight(e,t){this.adjustCarriageReturnFromNext(e,t)&&(e+=` `);const i=this.createNewPieces(e),s=this.rbInsertRight(t,i[0]);let o=s;for(let r=1;r=h)c=u+1;else break;return i?(i.line=u,i.column=l-f,null):{line:u,column:l-f}}getLineFeedCnt(e,t,i){if(i.column===0)return i.line-t.line;const s=this._buffers[e].lineStarts;if(i.line===s.length-1)return i.line-t.line;const o=s[i.line+1],r=s[i.line]+i.column;if(o>r+1)return i.line-t.line;const a=r-1;return this._buffers[e].buffer.charCodeAt(a)===13?i.line-t.line+1:i.line-t.line}offsetInBuffer(e,t){return this._buffers[e].lineStarts[t.line]+t.column}deleteNodes(e){for(let t=0;tuf){const d=[];for(;e.length>uf;){const h=e.charCodeAt(uf-1);let f;h===13||h>=55296&&h<=56319?(f=e.substring(0,uf-1),e=e.substring(uf-1)):(f=e.substring(0,uf),e=e.substring(uf));const g=Lf(f);d.push(new va(this._buffers.length,{line:0,column:0},{line:g.length-1,column:f.length-g[g.length-1]},g.length-1,f.length)),this._buffers.push(new vv(f,g))}const u=Lf(e);return d.push(new va(this._buffers.length,{line:0,column:0},{line:u.length-1,column:e.length-u[u.length-1]},u.length-1,e.length)),this._buffers.push(new vv(e,u)),d}let t=this._buffers[0].buffer.length;const i=Lf(e,!1);let s=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===t&&t!==0&&this.startWithLF(e)&&this.endWithCR(this._buffers[0].buffer)){this._lastChangeBufferPos={line:this._lastChangeBufferPos.line,column:this._lastChangeBufferPos.column+1},s=this._lastChangeBufferPos;for(let d=0;d=e-1)i=i.left;else if(i.lf_left+i.piece.lineFeedCnt>e-1){const l=this.getAccumulatedValue(i,e-i.lf_left-2),c=this.getAccumulatedValue(i,e-i.lf_left-1),d=this._buffers[i.piece.bufferIndex].buffer,u=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return r+=i.size_left,this._searchCache.set({node:i,nodeStartOffset:r,nodeStartLineNumber:a-(e-1-i.lf_left)}),d.substring(u+l,u+c-t)}else if(i.lf_left+i.piece.lineFeedCnt===e-1){const l=this.getAccumulatedValue(i,e-i.lf_left-2),c=this._buffers[i.piece.bufferIndex].buffer,d=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);s=c.substring(d+l,d+i.piece.length);break}else e-=i.lf_left+i.piece.lineFeedCnt,r+=i.size_left+i.piece.length,i=i.right}for(i=i.next();i!==Ht;){const r=this._buffers[i.piece.bufferIndex].buffer;if(i.piece.lineFeedCnt>0){const a=this.getAccumulatedValue(i,0),l=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return s+=r.substring(l,l+a-t),s}else{const a=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);s+=r.substr(a,i.piece.length)}i=i.next()}return s}computeBufferMetadata(){let e=this.root,t=1,i=0;for(;e!==Ht;)t+=e.lf_left+e.piece.lineFeedCnt,i+=e.size_left+e.piece.length,e=e.right;this._lineCnt=t,this._length=i,this._searchCache.validate(this._length)}getIndexOf(e,t){const i=e.piece,s=this.positionInBuffer(e,t),o=s.line-i.start.line;if(this.offsetInBuffer(i.bufferIndex,i.end)-this.offsetInBuffer(i.bufferIndex,i.start)===t){const r=this.getLineFeedCnt(e.piece.bufferIndex,i.start,s);if(r!==o)return{index:r,remainder:0}}return{index:o,remainder:s.column}}getAccumulatedValue(e,t){if(t<0)return 0;const i=e.piece,s=this._buffers[i.bufferIndex].lineStarts,o=i.start.line+t+1;return o>i.end.line?s[i.end.line]+i.end.column-s[i.start.line]-i.start.column:s[o]-s[i.start.line]-i.start.column}deleteNodeTail(e,t){const i=e.piece,s=i.lineFeedCnt,o=this.offsetInBuffer(i.bufferIndex,i.end),r=t,a=this.offsetInBuffer(i.bufferIndex,r),l=this.getLineFeedCnt(i.bufferIndex,i.start,r),c=l-s,d=a-o,u=i.length+d;e.piece=new va(i.bufferIndex,i.start,r,l,u),Sf(this,e,d,c)}deleteNodeHead(e,t){const i=e.piece,s=i.lineFeedCnt,o=this.offsetInBuffer(i.bufferIndex,i.start),r=t,a=this.getLineFeedCnt(i.bufferIndex,r,i.end),l=this.offsetInBuffer(i.bufferIndex,r),c=a-s,d=o-l,u=i.length+d;e.piece=new va(i.bufferIndex,r,i.end,a,u),Sf(this,e,d,c)}shrinkNode(e,t,i){const s=e.piece,o=s.start,r=s.end,a=s.length,l=s.lineFeedCnt,c=t,d=this.getLineFeedCnt(s.bufferIndex,s.start,c),u=this.offsetInBuffer(s.bufferIndex,t)-this.offsetInBuffer(s.bufferIndex,o);e.piece=new va(s.bufferIndex,s.start,c,d,u),Sf(this,e,u-a,d-l);const h=new va(s.bufferIndex,i,r,this.getLineFeedCnt(s.bufferIndex,i,r),this.offsetInBuffer(s.bufferIndex,r)-this.offsetInBuffer(s.bufferIndex,i)),f=this.rbInsertRight(e,h);this.validateCRLFWithPrevNode(f)}appendToNode(e,t){this.adjustCarriageReturnFromNext(t,e)&&(t+=` `);const i=this.shouldCheckCRLF()&&this.startWithLF(t)&&this.endWithCR(e),s=this._buffers[0].buffer.length;this._buffers[0].buffer+=t;const o=Lf(t,!1);for(let f=0;fe)t=t.left;else if(t.size_left+t.piece.length>=e){s+=t.size_left;const o={node:t,remainder:e-t.size_left,nodeStartOffset:s};return this._searchCache.set(o),o}else e-=t.size_left+t.piece.length,s+=t.size_left+t.piece.length,t=t.right;return null}nodeAt2(e,t){let i=this.root,s=0;for(;i!==Ht;)if(i.left!==Ht&&i.lf_left>=e-1)i=i.left;else if(i.lf_left+i.piece.lineFeedCnt>e-1){const o=this.getAccumulatedValue(i,e-i.lf_left-2),r=this.getAccumulatedValue(i,e-i.lf_left-1);return s+=i.size_left,{node:i,remainder:Math.min(o+t-1,r),nodeStartOffset:s}}else if(i.lf_left+i.piece.lineFeedCnt===e-1){const o=this.getAccumulatedValue(i,e-i.lf_left-2);if(o+t-1<=i.piece.length)return{node:i,remainder:o+t-1,nodeStartOffset:s};t-=i.piece.length-o;break}else e-=i.lf_left+i.piece.lineFeedCnt,s+=i.size_left+i.piece.length,i=i.right;for(i=i.next();i!==Ht;){if(i.piece.lineFeedCnt>0){const o=this.getAccumulatedValue(i,0),r=this.offsetOfNode(i);return{node:i,remainder:Math.min(t-1,o),nodeStartOffset:r}}else if(i.piece.length>=t-1){const o=this.offsetOfNode(i);return{node:i,remainder:t-1,nodeStartOffset:o}}else t-=i.piece.length;i=i.next()}return null}nodeCharCodeAt(e,t){if(e.piece.lineFeedCnt<1)return-1;const i=this._buffers[e.piece.bufferIndex],s=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start)+t;return i.buffer.charCodeAt(s)}offsetOfNode(e){if(!e)return 0;let t=e.size_left;for(;e!==this.root;)e.parent.right===e&&(t+=e.parent.size_left+e.parent.piece.length),e=e.parent;return t}shouldCheckCRLF(){return!(this._EOLNormalized&&this._EOL===` `)}startWithLF(e){if(typeof e=="string")return e.charCodeAt(0)===10;if(e===Ht||e.piece.lineFeedCnt===0)return!1;const t=e.piece,i=this._buffers[t.bufferIndex].lineStarts,s=t.start.line,o=i[s]+t.start.column;return s===i.length-1||i[s+1]>o+1?!1:this._buffers[t.bufferIndex].buffer.charCodeAt(o)===10}endWithCR(e){return typeof e=="string"?e.charCodeAt(e.length-1)===13:e===Ht||e.piece.lineFeedCnt===0?!1:this.nodeCharCodeAt(e,e.piece.length-1)===13}validateCRLFWithPrevNode(e){if(this.shouldCheckCRLF()&&this.startWithLF(e)){const t=e.prev();this.endWithCR(t)&&this.fixCRLF(t,e)}}validateCRLFWithNextNode(e){if(this.shouldCheckCRLF()&&this.endWithCR(e)){const t=e.next();this.startWithLF(t)&&this.fixCRLF(e,t)}}fixCRLF(e,t){const i=[],s=this._buffers[e.piece.bufferIndex].lineStarts;let o;e.piece.end.column===0?o={line:e.piece.end.line-1,column:s[e.piece.end.line]-s[e.piece.end.line-1]-1}:o={line:e.piece.end.line,column:e.piece.end.column-1};const r=e.piece.length-1,a=e.piece.lineFeedCnt-1;e.piece=new va(e.piece.bufferIndex,e.piece.start,o,a,r),Sf(this,e,-1,-1),e.piece.length===0&&i.push(e);const l={line:t.piece.start.line+1,column:0},c=t.piece.length-1,d=this.getLineFeedCnt(t.piece.bufferIndex,l,t.piece.end);t.piece=new va(t.piece.bufferIndex,l,t.piece.end,d,c),Sf(this,t,-1,-1),t.piece.length===0&&i.push(t);const u=this.createNewPieces(`\r `);this.rbInsertRight(e,u[0]);for(let h=0;h_.sortIndex-b.sortIndex)}this._mightContainRTL=s,this._mightContainUnusualLineTerminators=o,this._mightContainNonBasicASCII=r;const f=this._doApplyEdits(l);let g=null;if(t&&u.length>0){u.sort((p,_)=>_.lineNumber-p.lineNumber),g=[];for(let p=0,_=u.length;p<_;p++){const b=u[p].lineNumber;if(p>0&&u[p-1].lineNumber===b)continue;const w=u[p].oldContent,y=this.getLineContent(b);y.length===0||y===w||fr(y)!==-1||g.push(b)}}return this._onDidChangeContent.fire(),new TOe(h,f,g)}_reduceOperations(e){return e.length<1e3?e:[this._toSingleEditOperation(e)]}_toSingleEditOperation(e){let t=!1;const i=e[0].range,s=e[e.length-1].range,o=new A(i.startLineNumber,i.startColumn,s.endLineNumber,s.endColumn);let r=i.startLineNumber,a=i.startColumn;const l=[];for(let f=0,g=e.length;f0&&l.push(p.text),r=_.endLineNumber,a=_.endColumn}const c=l.join(""),[d,u,h]=Hm(c);return{sortIndex:0,identifier:e[0].identifier,range:o,rangeOffset:this.getOffsetAt(o.startLineNumber,o.startColumn),rangeLength:this.getValueLengthInRange(o,0),text:c,eolCount:d,firstLineLength:u,lastLineLength:h,forceMoveMarkers:t,isAutoWhitespaceEdit:!1}}_doApplyEdits(e){e.sort(rC._sortOpsDescending);const t=[];for(let i=0;i0){const h=l.eolCount+1;h===1?u=new A(c,d,c,d+l.firstLineLength):u=new A(c,d,c+h-1,l.lastLineLength+1)}else u=new A(c,d,c,d);i=u.endLineNumber,s=u.endColumn,t.push(u),o=l}return t}static _sortOpsAscending(e,t){const i=A.compareRangesUsingEnds(e.range,t.range);return i===0?e.sortIndex-t.sortIndex:i}static _sortOpsDescending(e,t){const i=A.compareRangesUsingEnds(e.range,t.range);return i===0?t.sortIndex-e.sortIndex:-i}}class RBe{constructor(e,t,i,s,o,r,a,l,c){this._chunks=e,this._bom=t,this._cr=i,this._lf=s,this._crlf=o,this._containsRTL=r,this._containsUnusualLineTerminators=a,this._isBasicASCII=l,this._normalizeEOL=c}_getEOL(e){const t=this._cr+this._lf+this._crlf,i=this._cr+this._crlf;return t===0?e===1?` `:`\r `:i>t/2?`\r `:` `}create(e){const t=this._getEOL(e),i=this._chunks;if(this._normalizeEOL&&(t===`\r `&&(this._cr>0||this._lf>0)||t===` `&&(this._cr>0||this._crlf>0)))for(let o=0,r=i.length;o=55296&&t<=56319?(this._acceptChunk1(e.substr(0,e.length-1),!1),this._hasPreviousChar=!0,this._previousChar=t):(this._acceptChunk1(e,!1),this._hasPreviousChar=!1,this._previousChar=t)}_acceptChunk1(e,t){!t&&e.length===0||(this._hasPreviousChar?this._acceptChunk2(String.fromCharCode(this._previousChar)+e):this._acceptChunk2(e))}_acceptChunk2(e){const t=EBe(this._tmpLineStarts,e);this.chunks.push(new vv(e,t.lineStarts)),this.cr+=t.cr,this.lf+=t.lf,this.crlf+=t.crlf,t.isBasicASCII||(this.isBasicASCII=!1,this.containsRTL||(this.containsRTL=TC(e)),this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=yae(e)))}finish(e=!0){return this._finish(),new RBe(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.containsUnusualLineTerminators,this.isBasicASCII,e)}_finish(){if(this.chunks.length===0&&this._acceptChunk1("",!0),this._hasPreviousChar){this._hasPreviousChar=!1;const e=this.chunks[this.chunks.length-1];e.buffer+=String.fromCharCode(this._previousChar);const t=Lf(e.buffer);e.lineStarts=t,this._previousChar===13&&this.cr++}}}class MBe{constructor(e){this._default=e,this._store=[]}get(e){return e=this._store.length;)this._store[this._store.length]=this._default;this._store[e]=t}replace(e,t,i){if(e>=this._store.length)return;if(t===0){this.insert(e,i);return}else if(i===0){this.delete(e,t);return}const s=this._store.slice(0,e),o=this._store.slice(e+t),r=PBe(i,this._default);this._store=s.concat(r,o)}delete(e,t){t===0||e>=this._store.length||this._store.splice(e,t)}insert(e,t){if(t===0||e>=this._store.length)return;const i=[];for(let s=0;s0){const i=this._tokens[this._tokens.length-1];if(i.endLineNumber+1===e){i.appendLineTokens(t);return}}this._tokens.push(new OBe(e,[t]))}finalize(){return this._tokens}}class FBe{constructor(e,t){this.tokenizationSupport=t,this.initialState=this.tokenizationSupport.getInitialState(),this.store=new GB(e)}getStartState(e){return this.store.getStartState(e,this.initialState)}getFirstInvalidLine(){return this.store.getFirstInvalidLine(this.initialState)}}class BBe extends FBe{constructor(e,t,i,s){super(e,t),this._textModel=i,this._languageIdCodec=s}updateTokensUntilLine(e,t){const i=this._textModel.getLanguageId();for(;;){const s=this.getFirstInvalidLine();if(!s||s.lineNumber>t)break;const o=this._textModel.getLineContent(s.lineNumber),r=Hy(this._languageIdCodec,i,this.tokenizationSupport,o,!0,s.startState);e.add(s.lineNumber,r.tokens),this.store.setEndState(s.lineNumber,r.endState)}}getTokenTypeIfInsertingCharacter(e,t){const i=this.getStartState(e.lineNumber);if(!i)return 0;const s=this._textModel.getLanguageId(),o=this._textModel.getLineContent(e.lineNumber),r=o.substring(0,e.column-1)+t+o.substring(e.column-1),a=Hy(this._languageIdCodec,s,this.tokenizationSupport,r,!0,i),l=new Is(a.tokens,r,this._languageIdCodec);if(l.getCount()===0)return 0;const c=l.findTokenIndexAtOffset(e.column-1);return l.getStandardTokenType(c)}tokenizeLineWithEdit(e,t,i){const s=e.lineNumber,o=e.column,r=this.getStartState(s);if(!r)return null;const a=this._textModel.getLineContent(s),l=a.substring(0,o-1)+i+a.substring(o-1+t),c=this._textModel.getLanguageIdAtPosition(s,0),d=Hy(this._languageIdCodec,c,this.tokenizationSupport,l,!0,r);return new Is(d.tokens,l,this._languageIdCodec)}hasAccurateTokensForLine(e){const t=this.store.getFirstInvalidEndStateLineNumberOrMax();return e1&&a>=1;a--){const l=this._textModel.getLineFirstNonWhitespaceColumn(a);if(l!==0&&l0&&i>0&&(i--,t--),this._lineEndStates.replace(e.startLineNumber,i,t)}}class HBe{constructor(){this._ranges=[]}get min(){return this._ranges.length===0?null:this._ranges[0].start}delete(e){const t=this._ranges.findIndex(i=>i.contains(e));if(t!==-1){const i=this._ranges[t];i.start===e?i.endExclusive===e+1?this._ranges.splice(t,1):this._ranges[t]=new zt(e+1,i.endExclusive):i.endExclusive===e+1?this._ranges[t]=new zt(i.start,e):this._ranges.splice(t,1,new zt(i.start,e),new zt(e+1,i.endExclusive))}}addRange(e){zt.addRange(e,this._ranges)}addRangeAndResize(e,t){let i=0;for(;!(i>=this._ranges.length||e.start<=this._ranges[i].endExclusive);)i++;let s=i;for(;!(s>=this._ranges.length||e.endExclusivee.toString()).join(" + ")}}function Hy(n,e,t,i,s,o){let r=null;if(t)try{r=t.tokenizeEncoded(i,s,o.clone())}catch(a){Mt(a)}return r||(r=IM(n.encodeLanguageId(e),o)),Is.convertToEndOffset(r.tokens,i.length),r}class VBe{constructor(e,t){this._tokenizerWithStateStore=e,this._backgroundTokenStore=t,this._isDisposed=!1,this._isScheduled=!1}dispose(){this._isDisposed=!0}handleChanges(){this._beginBackgroundTokenization()}_beginBackgroundTokenization(){this._isScheduled||!this._tokenizerWithStateStore._textModel.isAttachedToEditor()||!this._hasLinesToTokenize()||(this._isScheduled=!0,Eae(e=>{this._isScheduled=!1,this._backgroundTokenizeWithDeadline(e)}))}_backgroundTokenizeWithDeadline(e){const t=Date.now()+e.timeRemaining(),i=()=>{this._isDisposed||!this._tokenizerWithStateStore._textModel.isAttachedToEditor()||!this._hasLinesToTokenize()||(this._backgroundTokenizeForAtLeast1ms(),Date.now()1||this._tokenizeOneInvalidLine(t)>=e)break;while(this._hasLinesToTokenize());this._backgroundTokenStore.setTokens(t.finalize()),this.checkFinished()}_hasLinesToTokenize(){return this._tokenizerWithStateStore?!this._tokenizerWithStateStore.store.allStatesValid():!1}_tokenizeOneInvalidLine(e){var t;const i=(t=this._tokenizerWithStateStore)===null||t===void 0?void 0:t.getFirstInvalidLine();return i?(this._tokenizerWithStateStore.updateTokensUntilLine(e,i.lineNumber),i.lineNumber):this._tokenizerWithStateStore._textModel.getLineCount()+1}checkFinished(){this._isDisposed||this._tokenizerWithStateStore.store.allStatesValid()&&this._backgroundTokenStore.backgroundTokenizationFinished()}requestTokens(e,t){this._tokenizerWithStateStore.store.invalidateEndStateRange(new Vt(e,t))}}const kf=new Uint32Array(0).buffer;class Uu{static deleteBeginning(e,t){return e===null||e===kf?e:Uu.delete(e,0,t)}static deleteEnding(e,t){if(e===null||e===kf)return e;const i=$f(e),s=i[i.length-2];return Uu.delete(e,t,s)}static delete(e,t,i){if(e===null||e===kf||t===i)return e;const s=$f(e),o=s.length>>>1;if(t===0&&s[s.length-2]===i)return kf;const r=Is.findIndexInTokensArray(s,t),a=r>0?s[r-1<<1]:0,l=s[r<<1];if(id&&(s[c++]=g,s[c++]=s[(f<<1)+1],d=g)}if(c===s.length)return e;const h=new Uint32Array(c);return h.set(s.subarray(0,c),0),h.buffer}static append(e,t){if(t===kf)return e;if(e===kf)return t;if(e===null)return e;if(t===null)return null;const i=$f(e),s=$f(t),o=s.length>>>1,r=new Uint32Array(i.length+s.length);r.set(i,0);let a=i.length;const l=i[i.length-2];for(let c=0;c>>1;let r=Is.findIndexInTokensArray(s,t);r>0&&s[r-1<<1]===t&&r--;for(let a=r;a0}getTokens(e,t,i){let s=null;if(t1&&(o=No.getLanguageId(s[1])!==e),!o)return kf}if(!s||s.length===0){const o=new Uint32Array(2);return o[0]=t,o[1]=yQ(e),o.buffer}return s[s.length-2]=t,s.byteOffset===0&&s.byteLength===s.buffer.byteLength?s.buffer:s}_ensureLine(e){for(;e>=this._len;)this._lineTokens[this._len]=null,this._len++}_deleteLines(e,t){t!==0&&(e+t>this._len&&(t=this._len-e),this._lineTokens.splice(e,t),this._len-=t)}_insertLines(e,t){if(t===0)return;const i=[];for(let s=0;s=this._len)return;if(e.startLineNumber===e.endLineNumber){if(e.startColumn===e.endColumn)return;this._lineTokens[t]=Uu.delete(this._lineTokens[t],e.startColumn-1,e.endColumn-1);return}this._lineTokens[t]=Uu.deleteEnding(this._lineTokens[t],e.startColumn-1);const i=e.endLineNumber-1;let s=null;i=this._len)){if(t===0){this._lineTokens[s]=Uu.insert(this._lineTokens[s],e.column-1,i);return}this._lineTokens[s]=Uu.deleteEnding(this._lineTokens[s],e.column-1),this._lineTokens[s]=Uu.insert(this._lineTokens[s],e.column-1,i),this._insertLines(e.lineNumber,t)}}setMultilineTokens(e,t){if(e.length===0)return{changes:[]};const i=[];for(let s=0,o=e.length;s>>0}class Xz{constructor(e){this._pieces=[],this._isComplete=!1,this._languageIdCodec=e}flush(){this._pieces=[],this._isComplete=!1}isEmpty(){return this._pieces.length===0}set(e,t){this._pieces=e||[],this._isComplete=t}setPartial(e,t){let i=e;if(t.length>0){const o=t[0].getRange(),r=t[t.length-1].getRange();if(!o||!r)return e;i=e.plusRange(o).plusRange(r)}let s=null;for(let o=0,r=this._pieces.length;oi.endLineNumber){s=s||{index:o};break}if(a.removeTokens(i),a.isEmpty()){this._pieces.splice(o,1),o--,r--;continue}if(a.endLineNumberi.endLineNumber){s=s||{index:o};continue}const[l,c]=a.split(i);if(l.isEmpty()){s=s||{index:o};continue}c.isEmpty()||(this._pieces.splice(o,1,l,c),o++,r++,s=s||{index:o})}return s=s||{index:this._pieces.length},t.length>0&&(this._pieces=eM(this._pieces,s.index,t)),i}isComplete(){return this._isComplete}addSparseTokens(e,t){if(t.getLineContent().length===0)return t;const i=this._pieces;if(i.length===0)return t;const s=Xz._findFirstPieceWithLine(i,e),o=i[s].getLineTokens(e);if(!o)return t;const r=t.getCount(),a=o.getCount();let l=0;const c=[];let d=0,u=0;const h=(f,g)=>{f!==u&&(u=f,c[d++]=f,c[d++]=g)};for(let f=0;f>>0,w=~b>>>0;for(;lt)s=o-1;else{for(;o>i&&e[o-1].startLineNumber<=t&&t<=e[o-1].endLineNumber;)o--;return o}}return i}acceptEdit(e,t,i,s,o){for(const r of this._pieces)r.acceptEdit(e,t,i,s,o)}}class aA extends Sce{constructor(e,t,i,s,o,r){super(),this._languageService=e,this._languageConfigurationService=t,this._textModel=i,this._bracketPairsTextModelPart=s,this._languageId=o,this._attachedViews=r,this._semanticTokens=new Xz(this._languageService.languageIdCodec),this._onDidChangeLanguage=this._register(new X),this.onDidChangeLanguage=this._onDidChangeLanguage.event,this._onDidChangeLanguageConfiguration=this._register(new X),this.onDidChangeLanguageConfiguration=this._onDidChangeLanguageConfiguration.event,this._onDidChangeTokens=this._register(new X),this.onDidChangeTokens=this._onDidChangeTokens.event,this.grammarTokens=this._register(new zBe(this._languageService.languageIdCodec,this._textModel,()=>this._languageId,this._attachedViews)),this._register(this._languageConfigurationService.onDidChange(a=>{a.affects(this._languageId)&&this._onDidChangeLanguageConfiguration.fire({})})),this._register(this.grammarTokens.onDidChangeTokens(a=>{this._emitModelTokensChangedEvent(a)})),this._register(this.grammarTokens.onDidChangeBackgroundTokenizationState(a=>{this._bracketPairsTextModelPart.handleDidChangeBackgroundTokenizationState()}))}handleDidChangeContent(e){if(e.isFlush)this._semanticTokens.flush();else if(!e.isEolChange)for(const t of e.changes){const[i,s,o]=Hm(t.text);this._semanticTokens.acceptEdit(t.range,i,s,o,t.text.length>0?t.text.charCodeAt(0):0)}this.grammarTokens.handleDidChangeContent(e)}handleDidChangeAttached(){this.grammarTokens.handleDidChangeAttached()}getLineTokens(e){this.validateLineNumber(e);const t=this.grammarTokens.getLineTokens(e);return this._semanticTokens.addSparseTokens(e,t)}_emitModelTokensChangedEvent(e){this._textModel._isDisposing()||(this._bracketPairsTextModelPart.handleDidChangeTokens(e),this._onDidChangeTokens.fire(e))}validateLineNumber(e){if(e<1||e>this._textModel.getLineCount())throw new Gi("Illegal value for lineNumber")}get hasTokens(){return this.grammarTokens.hasTokens}resetTokenization(){this.grammarTokens.resetTokenization()}get backgroundTokenizationState(){return this.grammarTokens.backgroundTokenizationState}forceTokenization(e){this.validateLineNumber(e),this.grammarTokens.forceTokenization(e)}hasAccurateTokensForLine(e){return this.validateLineNumber(e),this.grammarTokens.hasAccurateTokensForLine(e)}isCheapToTokenize(e){return this.validateLineNumber(e),this.grammarTokens.isCheapToTokenize(e)}tokenizeIfCheap(e){this.validateLineNumber(e),this.grammarTokens.tokenizeIfCheap(e)}getTokenTypeIfInsertingCharacter(e,t,i){return this.grammarTokens.getTokenTypeIfInsertingCharacter(e,t,i)}tokenizeLineWithEdit(e,t,i){return this.grammarTokens.tokenizeLineWithEdit(e,t,i)}setSemanticTokens(e,t){this._semanticTokens.set(e,t),this._emitModelTokensChangedEvent({semanticTokensApplied:e!==null,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]})}hasCompleteSemanticTokens(){return this._semanticTokens.isComplete()}hasSomeSemanticTokens(){return!this._semanticTokens.isEmpty()}setPartialSemanticTokens(e,t){if(this.hasCompleteSemanticTokens())return;const i=this._textModel.validateRange(this._semanticTokens.setPartial(e,t));this._emitModelTokensChangedEvent({semanticTokensApplied:!0,ranges:[{fromLineNumber:i.startLineNumber,toLineNumber:i.endLineNumber}]})}getWordAtPosition(e){this.assertNotDisposed();const t=this._textModel.validatePosition(e),i=this._textModel.getLineContent(t.lineNumber),s=this.getLineTokens(t.lineNumber),o=s.findTokenIndexAtOffset(t.column-1),[r,a]=aA._findLanguageBoundaries(s,o),l=sL(t.column,this.getLanguageConfiguration(s.getLanguageId(o)).getWordDefinition(),i.substring(r,a),r);if(l&&l.startColumn<=e.column&&e.column<=l.endColumn)return l;if(o>0&&r===t.column-1){const[c,d]=aA._findLanguageBoundaries(s,o-1),u=sL(t.column,this.getLanguageConfiguration(s.getLanguageId(o-1)).getWordDefinition(),i.substring(c,d),c);if(u&&u.startColumn<=e.column&&e.column<=u.endColumn)return u}return null}getLanguageConfiguration(e){return this._languageConfigurationService.getLanguageConfiguration(e)}static _findLanguageBoundaries(e,t){const i=e.getLanguageId(t);let s=0;for(let r=t;r>=0&&e.getLanguageId(r)===i;r--)s=e.getStartOffset(r);let o=e.getLineContent().length;for(let r=t,a=e.getCount();r{const r=this.getLanguageId();o.changedLanguages.indexOf(r)!==-1&&this.resetTokenization()})),this.resetTokenization(),this._register(s.onDidChangeVisibleRanges(({view:o,state:r})=>{if(r){let a=this._attachedViewStates.get(o);a||(a=new $Be(()=>this.refreshRanges(a.lineRanges)),this._attachedViewStates.set(o,a)),a.handleStateChange(r)}else this._attachedViewStates.deleteAndDispose(o)}))}resetTokenization(e=!0){var t;this._tokens.flush(),(t=this._debugBackgroundTokens)===null||t===void 0||t.flush(),this._debugBackgroundStates&&(this._debugBackgroundStates=new GB(this._textModel.getLineCount())),e&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]});const i=()=>{if(this._textModel.isTooLargeForTokenization())return[null,null];const r=Zn.get(this.getLanguageId());if(!r)return[null,null];let a;try{a=r.getInitialState()}catch(l){return Mt(l),[null,null]}return[r,a]},[s,o]=i();if(s&&o?this._tokenizer=new BBe(this._textModel.getLineCount(),s,this._textModel,this._languageIdCodec):this._tokenizer=null,this._backgroundTokenizer.clear(),this._defaultBackgroundTokenizer=null,this._tokenizer){const r={setTokens:a=>{this.setTokens(a)},backgroundTokenizationFinished:()=>{if(this._backgroundTokenizationState===2)return;const a=2;this._backgroundTokenizationState=a,this._onDidChangeBackgroundTokenizationState.fire()},setEndState:(a,l)=>{var c;if(!this._tokenizer)return;const d=this._tokenizer.store.getFirstInvalidEndStateLineNumber();d!==null&&a>=d&&((c=this._tokenizer)===null||c===void 0||c.store.setEndState(a,l))}};s&&s.createBackgroundTokenizer&&!s.backgroundTokenizerShouldOnlyVerifyTokens&&(this._backgroundTokenizer.value=s.createBackgroundTokenizer(this._textModel,r)),!this._backgroundTokenizer.value&&!this._textModel.isTooLargeForTokenization()&&(this._backgroundTokenizer.value=this._defaultBackgroundTokenizer=new VBe(this._tokenizer,r),this._defaultBackgroundTokenizer.handleChanges()),s!=null&&s.backgroundTokenizerShouldOnlyVerifyTokens&&s.createBackgroundTokenizer?(this._debugBackgroundTokens=new OL(this._languageIdCodec),this._debugBackgroundStates=new GB(this._textModel.getLineCount()),this._debugBackgroundTokenizer.clear(),this._debugBackgroundTokenizer.value=s.createBackgroundTokenizer(this._textModel,{setTokens:a=>{var l;(l=this._debugBackgroundTokens)===null||l===void 0||l.setMultilineTokens(a,this._textModel)},backgroundTokenizationFinished(){},setEndState:(a,l)=>{var c;(c=this._debugBackgroundStates)===null||c===void 0||c.setEndState(a,l)}})):(this._debugBackgroundTokens=void 0,this._debugBackgroundStates=void 0,this._debugBackgroundTokenizer.value=void 0)}this.refreshAllVisibleLineTokens()}handleDidChangeAttached(){var e;(e=this._defaultBackgroundTokenizer)===null||e===void 0||e.handleChanges()}handleDidChangeContent(e){var t,i,s;if(e.isFlush)this.resetTokenization(!1);else if(!e.isEolChange){for(const o of e.changes){const[r,a]=Hm(o.text);this._tokens.acceptEdit(o.range,r,a),(t=this._debugBackgroundTokens)===null||t===void 0||t.acceptEdit(o.range,r,a)}(i=this._debugBackgroundStates)===null||i===void 0||i.acceptChanges(e.changes),this._tokenizer&&this._tokenizer.store.acceptChanges(e.changes),(s=this._defaultBackgroundTokenizer)===null||s===void 0||s.handleChanges()}}setTokens(e){const{changes:t}=this._tokens.setMultilineTokens(e,this._textModel);return t.length>0&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:t}),{changes:t}}refreshAllVisibleLineTokens(){const e=Vt.joinMany([...this._attachedViewStates].map(([t,i])=>i.lineRanges));this.refreshRanges(e)}refreshRanges(e){for(const t of e)this.refreshRange(t.startLineNumber,t.endLineNumberExclusive-1)}refreshRange(e,t){var i,s;if(!this._tokenizer)return;e=Math.max(1,Math.min(this._textModel.getLineCount(),e)),t=Math.min(this._textModel.getLineCount(),t);const o=new qB,{heuristicTokens:r}=this._tokenizer.tokenizeHeuristically(o,e,t),a=this.setTokens(o.finalize());if(r)for(const l of a.changes)(i=this._backgroundTokenizer.value)===null||i===void 0||i.requestTokens(l.fromLineNumber,l.toLineNumber+1);(s=this._defaultBackgroundTokenizer)===null||s===void 0||s.checkFinished()}forceTokenization(e){var t,i;const s=new qB;(t=this._tokenizer)===null||t===void 0||t.updateTokensUntilLine(s,e),this.setTokens(s.finalize()),(i=this._defaultBackgroundTokenizer)===null||i===void 0||i.checkFinished()}hasAccurateTokensForLine(e){return this._tokenizer?this._tokenizer.hasAccurateTokensForLine(e):!0}isCheapToTokenize(e){return this._tokenizer?this._tokenizer.isCheapToTokenize(e):!0}tokenizeIfCheap(e){this.isCheapToTokenize(e)&&this.forceTokenization(e)}getLineTokens(e){var t;const i=this._textModel.getLineContent(e),s=this._tokens.getTokens(this._textModel.getLanguageId(),e-1,i);if(this._debugBackgroundTokens&&this._debugBackgroundStates&&this._tokenizer&&this._debugBackgroundStates.getFirstInvalidEndStateLineNumberOrMax()>e&&this._tokenizer.store.getFirstInvalidEndStateLineNumberOrMax()>e){const o=this._debugBackgroundTokens.getTokens(this._textModel.getLanguageId(),e-1,i);!s.equals(o)&&(!((t=this._debugBackgroundTokenizer.value)===null||t===void 0)&&t.reportMismatchingTokens)&&this._debugBackgroundTokenizer.value.reportMismatchingTokens(e)}return s}getTokenTypeIfInsertingCharacter(e,t,i){if(!this._tokenizer)return 0;const s=this._textModel.validatePosition(new ee(e,t));return this.forceTokenization(s.lineNumber),this._tokenizer.getTokenTypeIfInsertingCharacter(s,i)}tokenizeLineWithEdit(e,t,i){if(!this._tokenizer)return null;const s=this._textModel.validatePosition(e);return this.forceTokenization(s.lineNumber),this._tokenizer.tokenizeLineWithEdit(s,t,i)}get hasTokens(){return this._tokens.hasTokens}}class $Be extends ne{get lineRanges(){return this._lineRanges}constructor(e){super(),this._refreshTokens=e,this.runner=this._register(new Xi(()=>this.update(),50)),this._computedLineRanges=[],this._lineRanges=[]}update(){zn(this._computedLineRanges,this._lineRanges,(e,t)=>e.equals(t))||(this._computedLineRanges=this._lineRanges,this._refreshTokens())}handleStateChange(e){this._lineRanges=e.visibleLineRanges,e.stabilized?(this.runner.cancel(),this.update()):this.runner.schedule()}}const zM=Jt("undoRedoService");class Kce{constructor(e,t){this.resource=e,this.elements=t}}class UC{constructor(){this.id=UC._ID++,this.order=1}nextOrder(){return this.id===0?0:this.order++}}UC._ID=0;UC.None=new UC;class th{constructor(){this.id=th._ID++,this.order=1}nextOrder(){return this.id===0?0:this.order++}}th._ID=0;th.None=new th;var UBe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},m5=function(n,e){return function(t,i){e(t,i,n)}},sv;function jBe(n){const e=new jce;return e.acceptChunk(n),e.finish()}function KBe(n){const e=new jce;let t;for(;typeof(t=n.read())=="string";)e.acceptChunk(t);return e.finish()}function SQ(n,e){let t;return typeof n=="string"?t=jBe(n):IOe(n)?t=KBe(n):t=n,t.create(e)}let qE=0;const qBe=999,GBe=1e4;class ZBe{constructor(e){this._source=e,this._eos=!1}read(){if(this._eos)return null;const e=[];let t=0,i=0;do{const s=this._source.read();if(s===null)return this._eos=!0,t===0?null:e.join("");if(s.length>0&&(e[t++]=s,i+=s.length),i>=64*1024)return e.join("")}while(!0)}}const Vy=()=>{throw new Error("Invalid change accessor")};let Th=sv=class extends ne{static resolveOptions(e,t){if(t.detectIndentation){const i=gQ(e,t.tabSize,t.insertSpaces);return new gN({tabSize:i.tabSize,indentSize:"tabSize",insertSpaces:i.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL,bracketPairColorizationOptions:t.bracketPairColorizationOptions})}return new gN(t)}get onDidChangeLanguage(){return this._tokenizationTextModelPart.onDidChangeLanguage}get onDidChangeLanguageConfiguration(){return this._tokenizationTextModelPart.onDidChangeLanguageConfiguration}get onDidChangeTokens(){return this._tokenizationTextModelPart.onDidChangeTokens}onDidChangeContent(e){return this._eventEmitter.slowEvent(t=>e(t.contentChangedEvent))}onDidChangeContentOrInjectedText(e){return Jc(this._eventEmitter.fastEvent(t=>e(t)),this._onDidChangeInjectedText.event(t=>e(t)))}_isDisposing(){return this.__isDisposing}get tokenization(){return this._tokenizationTextModelPart}get bracketPairs(){return this._bracketPairs}get guides(){return this._guidesTextModelPart}constructor(e,t,i,s=null,o,r,a){super(),this._undoRedoService=o,this._languageService=r,this._languageConfigurationService=a,this._onWillDispose=this._register(new X),this.onWillDispose=this._onWillDispose.event,this._onDidChangeDecorations=this._register(new t9e(f=>this.handleBeforeFireDecorationsChangedEvent(f))),this.onDidChangeDecorations=this._onDidChangeDecorations.event,this._onDidChangeOptions=this._register(new X),this.onDidChangeOptions=this._onDidChangeOptions.event,this._onDidChangeAttached=this._register(new X),this.onDidChangeAttached=this._onDidChangeAttached.event,this._onDidChangeInjectedText=this._register(new X),this._eventEmitter=this._register(new i9e),this._languageSelectionListener=this._register(new Qs),this._deltaDecorationCallCnt=0,this._attachedViews=new n9e,qE++,this.id="$model"+qE,this.isForSimpleWidget=i.isForSimpleWidget,typeof s>"u"||s===null?this._associatedResource=pt.parse("inmemory://model/"+qE):this._associatedResource=s,this._attachedEditorCount=0;const{textBuffer:l,disposable:c}=SQ(e,i.defaultEOL);this._buffer=l,this._bufferDisposable=c,this._options=sv.resolveOptions(this._buffer,i);const d=typeof t=="string"?t:t.languageId;typeof t!="string"&&(this._languageSelectionListener.value=t.onDidChange(()=>this._setLanguage(t.languageId))),this._bracketPairs=this._register(new eBe(this,this._languageConfigurationService)),this._guidesTextModelPart=this._register(new q8e(this,this._languageConfigurationService)),this._decorationProvider=this._register(new iBe(this)),this._tokenizationTextModelPart=new aA(this._languageService,this._languageConfigurationService,this,this._bracketPairs,d,this._attachedViews);const u=this._buffer.getLineCount(),h=this._buffer.getValueLengthInRange(new A(1,1,u,this._buffer.getLineLength(u)+1),0);i.largeFileOptimizations?(this._isTooLargeForTokenization=h>sv.LARGE_FILE_SIZE_THRESHOLD||u>sv.LARGE_FILE_LINE_COUNT_THRESHOLD,this._isTooLargeForHeapOperation=h>sv.LARGE_FILE_HEAP_OPERATION_THRESHOLD):(this._isTooLargeForTokenization=!1,this._isTooLargeForHeapOperation=!1),this._isTooLargeForSyncing=h>sv._MODEL_SYNC_LIMIT,this._versionId=1,this._alternativeVersionId=1,this._initialUndoRedoSnapshot=null,this._isDisposed=!1,this.__isDisposing=!1,this._instanceId=Sae(qE),this._lastDecorationId=0,this._decorations=Object.create(null),this._decorationsTree=new xQ,this._commandManager=new qz(this,this._undoRedoService),this._isUndoing=!1,this._isRedoing=!1,this._trimAutoWhitespaceLines=null,this._register(this._decorationProvider.onDidChange(()=>{this._onDidChangeDecorations.beginDeferredEmit(),this._onDidChangeDecorations.fire(),this._onDidChangeDecorations.endDeferredEmit()})),this._languageService.requestRichLanguageFeatures(d)}dispose(){this.__isDisposing=!0,this._onWillDispose.fire(),this._tokenizationTextModelPart.dispose(),this._isDisposed=!0,super.dispose(),this._bufferDisposable.dispose(),this.__isDisposing=!1;const e=new rC([],"",` `,!1,!1,!0,!0);e.dispose(),this._buffer=e,this._bufferDisposable=ne.None}_assertNotDisposed(){if(this._isDisposed)throw new Error("Model is disposed!")}_emitContentChangedEvent(e,t){this.__isDisposing||(this._tokenizationTextModelPart.handleDidChangeContent(t),this._bracketPairs.handleDidChangeContent(t),this._eventEmitter.fire(new Kv(e,t)))}setValue(e){if(this._assertNotDisposed(),e==null)throw ic();const{textBuffer:t,disposable:i}=SQ(e,this._options.defaultEOL);this._setValueFromTextBuffer(t,i)}_createContentChanged2(e,t,i,s,o,r,a,l){return{changes:[{range:e,rangeOffset:t,rangeLength:i,text:s}],eol:this._buffer.getEOL(),isEolChange:l,versionId:this.getVersionId(),isUndoing:o,isRedoing:r,isFlush:a}}_setValueFromTextBuffer(e,t){this._assertNotDisposed();const i=this.getFullModelRange(),s=this.getValueLengthInRange(i),o=this.getLineCount(),r=this.getLineMaxColumn(o);this._buffer=e,this._bufferDisposable.dispose(),this._bufferDisposable=t,this._increaseVersionId(),this._decorations=Object.create(null),this._decorationsTree=new xQ,this._commandManager.clear(),this._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new nC([new L7e],this._versionId,!1,!1),this._createContentChanged2(new A(1,1,o,r),0,s,this.getValue(),!1,!1,!0,!1))}setEOL(e){this._assertNotDisposed();const t=e===1?`\r `:` `;if(this._buffer.getEOL()===t)return;const i=this.getFullModelRange(),s=this.getValueLengthInRange(i),o=this.getLineCount(),r=this.getLineMaxColumn(o);this._onBeforeEOLChange(),this._buffer.setEOL(t),this._increaseVersionId(),this._onAfterEOLChange(),this._emitContentChangedEvent(new nC([new I7e],this._versionId,!1,!1),this._createContentChanged2(new A(1,1,o,r),0,s,this.getValue(),!1,!1,!1,!0))}_onBeforeEOLChange(){this._decorationsTree.ensureAllNodesHaveRanges(this)}_onAfterEOLChange(){const e=this.getVersionId(),t=this._decorationsTree.collectNodesPostOrder();for(let i=0,s=t.length;i0}getAttachedEditorCount(){return this._attachedEditorCount}isTooLargeForSyncing(){return this._isTooLargeForSyncing}isTooLargeForTokenization(){return this._isTooLargeForTokenization}isTooLargeForHeapOperation(){return this._isTooLargeForHeapOperation}isDisposed(){return this._isDisposed}isDominatedByLongLines(){if(this._assertNotDisposed(),this.isTooLargeForTokenization())return!1;let e=0,t=0;const i=this._buffer.getLineCount();for(let s=1;s<=i;s++){const o=this._buffer.getLineLength(s);o>=GBe?t+=o:e+=o}return t>e}get uri(){return this._associatedResource}getOptions(){return this._assertNotDisposed(),this._options}getFormattingOptions(){return{tabSize:this._options.indentSize,insertSpaces:this._options.insertSpaces}}updateOptions(e){this._assertNotDisposed();const t=typeof e.tabSize<"u"?e.tabSize:this._options.tabSize,i=typeof e.indentSize<"u"?e.indentSize:this._options.originalIndentSize,s=typeof e.insertSpaces<"u"?e.insertSpaces:this._options.insertSpaces,o=typeof e.trimAutoWhitespace<"u"?e.trimAutoWhitespace:this._options.trimAutoWhitespace,r=typeof e.bracketColorizationOptions<"u"?e.bracketColorizationOptions:this._options.bracketPairColorizationOptions,a=new gN({tabSize:t,indentSize:i,insertSpaces:s,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:o,bracketPairColorizationOptions:r});if(this._options.equals(a))return;const l=this._options.createChangeEvent(a);this._options=a,this._bracketPairs.handleDidChangeOptions(l),this._decorationProvider.handleDidChangeOptions(l),this._onDidChangeOptions.fire(l)}detectIndentation(e,t){this._assertNotDisposed();const i=gQ(this._buffer,t,e);this.updateOptions({insertSpaces:i.insertSpaces,tabSize:i.tabSize,indentSize:i.tabSize})}normalizeIndentation(e){return this._assertNotDisposed(),Pz(e,this._options.indentSize,this._options.insertSpaces)}getVersionId(){return this._assertNotDisposed(),this._versionId}mightContainRTL(){return this._buffer.mightContainRTL()}mightContainUnusualLineTerminators(){return this._buffer.mightContainUnusualLineTerminators()}removeUnusualLineTerminators(e=null){const t=this.findMatches(wae.source,!1,!0,!1,null,!1,1073741824);this._buffer.resetMightContainUnusualLineTerminators(),this.pushEditOperations(e,t.map(i=>({range:i.range,text:null})),()=>null)}mightContainNonBasicASCII(){return this._buffer.mightContainNonBasicASCII()}getAlternativeVersionId(){return this._assertNotDisposed(),this._alternativeVersionId}getInitialUndoRedoSnapshot(){return this._assertNotDisposed(),this._initialUndoRedoSnapshot}getOffsetAt(e){this._assertNotDisposed();const t=this._validatePosition(e.lineNumber,e.column,0);return this._buffer.getOffsetAt(t.lineNumber,t.column)}getPositionAt(e){this._assertNotDisposed();const t=Math.min(this._buffer.getLength(),Math.max(0,e));return this._buffer.getPositionAt(t)}_increaseVersionId(){this._versionId=this._versionId+1,this._alternativeVersionId=this._versionId}_overwriteVersionId(e){this._versionId=e}_overwriteAlternativeVersionId(e){this._alternativeVersionId=e}_overwriteInitialUndoRedoSnapshot(e){this._initialUndoRedoSnapshot=e}getValue(e,t=!1){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new Gi("Operation would exceed heap memory limits");const i=this.getFullModelRange(),s=this.getValueInRange(i,e);return t?this._buffer.getBOM()+s:s}createSnapshot(e=!1){return new ZBe(this._buffer.createSnapshot(e))}getValueLength(e,t=!1){this._assertNotDisposed();const i=this.getFullModelRange(),s=this.getValueLengthInRange(i,e);return t?this._buffer.getBOM().length+s:s}getValueInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getValueInRange(this.validateRange(e),t)}getValueLengthInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getValueLengthInRange(this.validateRange(e),t)}getCharacterCountInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getCharacterCountInRange(this.validateRange(e),t)}getLineCount(){return this._assertNotDisposed(),this._buffer.getLineCount()}getLineContent(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Gi("Illegal value for lineNumber");return this._buffer.getLineContent(e)}getLineLength(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Gi("Illegal value for lineNumber");return this._buffer.getLineLength(e)}getLinesContent(){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new Gi("Operation would exceed heap memory limits");return this._buffer.getLinesContent()}getEOL(){return this._assertNotDisposed(),this._buffer.getEOL()}getEndOfLineSequence(){return this._assertNotDisposed(),this._buffer.getEOL()===` `?0:1}getLineMinColumn(e){return this._assertNotDisposed(),1}getLineMaxColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Gi("Illegal value for lineNumber");return this._buffer.getLineLength(e)+1}getLineFirstNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Gi("Illegal value for lineNumber");return this._buffer.getLineFirstNonWhitespaceColumn(e)}getLineLastNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Gi("Illegal value for lineNumber");return this._buffer.getLineLastNonWhitespaceColumn(e)}_validateRangeRelaxedNoAllocations(e){const t=this._buffer.getLineCount(),i=e.startLineNumber,s=e.startColumn;let o=Math.floor(typeof i=="number"&&!isNaN(i)?i:1),r=Math.floor(typeof s=="number"&&!isNaN(s)?s:1);if(o<1)o=1,r=1;else if(o>t)o=t,r=this.getLineMaxColumn(o);else if(r<=1)r=1;else{const u=this.getLineMaxColumn(o);r>=u&&(r=u)}const a=e.endLineNumber,l=e.endColumn;let c=Math.floor(typeof a=="number"&&!isNaN(a)?a:1),d=Math.floor(typeof l=="number"&&!isNaN(l)?l:1);if(c<1)c=1,d=1;else if(c>t)c=t,d=this.getLineMaxColumn(c);else if(d<=1)d=1;else{const u=this.getLineMaxColumn(c);d>=u&&(d=u)}return i===o&&s===r&&a===c&&l===d&&e instanceof A&&!(e instanceof it)?e:new A(o,r,c,d)}_isValidPosition(e,t,i){if(typeof e!="number"||typeof t!="number"||isNaN(e)||isNaN(t)||e<1||t<1||(e|0)!==e||(t|0)!==t)return!1;const s=this._buffer.getLineCount();if(e>s)return!1;if(t===1)return!0;const o=this.getLineMaxColumn(e);if(t>o)return!1;if(i===1){const r=this._buffer.getLineCharCode(e,t-2);if(Gs(r))return!1}return!0}_validatePosition(e,t,i){const s=Math.floor(typeof e=="number"&&!isNaN(e)?e:1),o=Math.floor(typeof t=="number"&&!isNaN(t)?t:1),r=this._buffer.getLineCount();if(s<1)return new ee(1,1);if(s>r)return new ee(r,this.getLineMaxColumn(r));if(o<=1)return new ee(s,1);const a=this.getLineMaxColumn(s);if(o>=a)return new ee(s,a);if(i===1){const l=this._buffer.getLineCharCode(s,o-2);if(Gs(l))return new ee(s,o-1)}return new ee(s,o)}validatePosition(e){return this._assertNotDisposed(),e instanceof ee&&this._isValidPosition(e.lineNumber,e.column,1)?e:this._validatePosition(e.lineNumber,e.column,1)}_isValidRange(e,t){const i=e.startLineNumber,s=e.startColumn,o=e.endLineNumber,r=e.endColumn;if(!this._isValidPosition(i,s,0)||!this._isValidPosition(o,r,0))return!1;if(t===1){const a=s>1?this._buffer.getLineCharCode(i,s-2):0,l=r>1&&r<=this._buffer.getLineLength(o)?this._buffer.getLineCharCode(o,r-2):0,c=Gs(a),d=Gs(l);return!c&&!d}return!0}validateRange(e){if(this._assertNotDisposed(),e instanceof A&&!(e instanceof it)&&this._isValidRange(e,1))return e;const i=this._validatePosition(e.startLineNumber,e.startColumn,0),s=this._validatePosition(e.endLineNumber,e.endColumn,0),o=i.lineNumber,r=i.column,a=s.lineNumber,l=s.column;{const c=r>1?this._buffer.getLineCharCode(o,r-2):0,d=l>1&&l<=this._buffer.getLineLength(a)?this._buffer.getLineCharCode(a,l-2):0,u=Gs(c),h=Gs(d);return!u&&!h?new A(o,r,a,l):o===a&&r===l?new A(o,r-1,a,l-1):u&&h?new A(o,r-1,a,l+1):u?new A(o,r-1,a,l):new A(o,r,a,l+1)}}modifyPosition(e,t){this._assertNotDisposed();const i=this.getOffsetAt(e)+t;return this.getPositionAt(Math.min(this._buffer.getLength(),Math.max(0,i)))}getFullModelRange(){this._assertNotDisposed();const e=this.getLineCount();return new A(1,1,e,this.getLineMaxColumn(e))}findMatchesLineByLine(e,t,i,s){return this._buffer.findMatchesLineByLine(e,t,i,s)}findMatches(e,t,i,s,o,r,a=qBe){this._assertNotDisposed();let l=null;t!==null&&(Array.isArray(t)||(t=[t]),t.every(u=>A.isIRange(u))&&(l=t.map(u=>this.validateRange(u)))),l===null&&(l=[this.getFullModelRange()]),l=l.sort((u,h)=>u.startLineNumber-h.startLineNumber||u.startColumn-h.startColumn);const c=[];c.push(l.reduce((u,h)=>A.areIntersecting(u,h)?u.plusRange(h):(c.push(u),h)));let d;if(!i&&e.indexOf(` `)<0){const h=new nv(e,i,s,o).parseSearchRequest();if(!h)return[];d=f=>this.findMatchesLineByLine(f,h,r,a)}else d=u=>EE.findMatches(this,new nv(e,i,s,o),u,r,a);return c.map(d).reduce((u,h)=>u.concat(h),[])}findNextMatch(e,t,i,s,o,r){this._assertNotDisposed();const a=this.validatePosition(t);if(!i&&e.indexOf(` `)<0){const c=new nv(e,i,s,o).parseSearchRequest();if(!c)return null;const d=this.getLineCount();let u=new A(a.lineNumber,a.column,d,this.getLineMaxColumn(d)),h=this.findMatchesLineByLine(u,c,r,1);return EE.findNextMatch(this,new nv(e,i,s,o),a,r),h.length>0||(u=new A(1,1,a.lineNumber,this.getLineMaxColumn(a.lineNumber)),h=this.findMatchesLineByLine(u,c,r,1),h.length>0)?h[0]:null}return EE.findNextMatch(this,new nv(e,i,s,o),a,r)}findPreviousMatch(e,t,i,s,o,r){this._assertNotDisposed();const a=this.validatePosition(t);return EE.findPreviousMatch(this,new nv(e,i,s,o),a,r)}pushStackElement(){this._commandManager.pushStackElement()}popStackElement(){this._commandManager.popStackElement()}pushEOL(e){if((this.getEOL()===` `?0:1)!==e)try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._initialUndoRedoSnapshot===null&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEOL(e)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_validateEditOperation(e){return e instanceof GF?e:new GF(e.identifier||null,this.validateRange(e.range),e.text,e.forceMoveMarkers||!1,e.isAutoWhitespaceEdit||!1,e._isTracked||!1)}_validateEditOperations(e){const t=[];for(let i=0,s=e.length;i({range:this.validateRange(a.range),text:a.text}));let r=!0;if(e)for(let a=0,l=e.length;ac.endLineNumber,p=c.startLineNumber>f.endLineNumber;if(!g&&!p){d=!0;break}}if(!d){r=!1;break}}if(r)for(let a=0,l=this._trimAutoWhitespaceLines.length;ag.endLineNumber)&&!(c===g.startLineNumber&&g.startColumn===d&&g.isEmpty()&&p&&p.length>0&&p.charAt(0)===` `)&&!(c===g.startLineNumber&&g.startColumn===1&&g.isEmpty()&&p&&p.length>0&&p.charAt(p.length-1)===` `)){u=!1;break}}if(u){const h=new A(c,1,c,d);t.push(new GF(null,h,null,!1,!1,!1))}}this._trimAutoWhitespaceLines=null}return this._initialUndoRedoSnapshot===null&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEditOperation(e,t,i,s)}_applyUndo(e,t,i,s){const o=e.map(r=>{const a=this.getPositionAt(r.newPosition),l=this.getPositionAt(r.newEnd);return{range:new A(a.lineNumber,a.column,l.lineNumber,l.column),text:r.oldText}});this._applyUndoRedoEdits(o,t,!0,!1,i,s)}_applyRedo(e,t,i,s){const o=e.map(r=>{const a=this.getPositionAt(r.oldPosition),l=this.getPositionAt(r.oldEnd);return{range:new A(a.lineNumber,a.column,l.lineNumber,l.column),text:r.newText}});this._applyUndoRedoEdits(o,t,!1,!0,i,s)}_applyUndoRedoEdits(e,t,i,s,o,r){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._isUndoing=i,this._isRedoing=s,this.applyEdits(e,!1),this.setEOL(t),this._overwriteAlternativeVersionId(o)}finally{this._isUndoing=!1,this._isRedoing=!1,this._eventEmitter.endDeferredEmit(r),this._onDidChangeDecorations.endDeferredEmit()}}applyEdits(e,t=!1){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit();const i=this._validateEditOperations(e);return this._doApplyEdits(i,t)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_doApplyEdits(e,t){const i=this._buffer.getLineCount(),s=this._buffer.applyEdits(e,this._options.trimAutoWhitespace,t),o=this._buffer.getLineCount(),r=s.changes;if(this._trimAutoWhitespaceLines=s.trimAutoWhitespaceLineNumbers,r.length!==0){for(let c=0,d=r.length;c=0;N--){const P=f+N,O=y+N;I.takeFromEndWhile(z=>z.lineNumber>O);const M=I.takeFromEndWhile(z=>z.lineNumber===O);a.push(new oQ(P,this.getLineContent(O),M))}if(bhe.lineNumberhe.lineNumber===se)}a.push(new D7e(P+1,f+_,K,z))}l+=w}this._emitContentChangedEvent(new nC(a,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:r,eol:this._buffer.getEOL(),isEolChange:!1,versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1})}return s.reverseEdits===null?void 0:s.reverseEdits}undo(){return this._undoRedoService.undo(this.uri)}canUndo(){return this._undoRedoService.canUndo(this.uri)}redo(){return this._undoRedoService.redo(this.uri)}canRedo(){return this._undoRedoService.canRedo(this.uri)}handleBeforeFireDecorationsChangedEvent(e){if(e===null||e.size===0)return;const i=Array.from(e).map(s=>new oQ(s,this.getLineContent(s),this._getInjectedTextInLine(s)));this._onDidChangeInjectedText.fire(new kce(i))}changeDecorations(e,t=0){this._assertNotDisposed();try{return this._onDidChangeDecorations.beginDeferredEmit(),this._changeDecorations(t,e)}finally{this._onDidChangeDecorations.endDeferredEmit()}}_changeDecorations(e,t){const i={addDecoration:(o,r)=>this._deltaDecorationsImpl(e,[],[{range:o,options:r}])[0],changeDecoration:(o,r)=>{this._changeDecorationImpl(o,r)},changeDecorationOptions:(o,r)=>{this._changeDecorationOptionsImpl(o,kQ(r))},removeDecoration:o=>{this._deltaDecorationsImpl(e,[o],[])},deltaDecorations:(o,r)=>o.length===0&&r.length===0?[]:this._deltaDecorationsImpl(e,o,r)};let s=null;try{s=t(i)}catch(o){Mt(o)}return i.addDecoration=Vy,i.changeDecoration=Vy,i.changeDecorationOptions=Vy,i.removeDecoration=Vy,i.deltaDecorations=Vy,s}deltaDecorations(e,t,i=0){if(this._assertNotDisposed(),e||(e=[]),e.length===0&&t.length===0)return[];try{return this._deltaDecorationCallCnt++,this._deltaDecorationCallCnt>1&&(console.warn("Invoking deltaDecorations recursively could lead to leaking decorations."),Mt(new Error("Invoking deltaDecorations recursively could lead to leaking decorations."))),this._onDidChangeDecorations.beginDeferredEmit(),this._deltaDecorationsImpl(i,e,t)}finally{this._onDidChangeDecorations.endDeferredEmit(),this._deltaDecorationCallCnt--}}_getTrackedRange(e){return this.getDecorationRange(e)}_setTrackedRange(e,t,i){const s=e?this._decorations[e]:null;if(!s)return t?this._deltaDecorationsImpl(0,[],[{range:t,options:LQ[i]}],!0)[0]:null;if(!t)return this._decorationsTree.delete(s),delete this._decorations[s.id],null;const o=this._validateRangeRelaxedNoAllocations(t),r=this._buffer.getOffsetAt(o.startLineNumber,o.startColumn),a=this._buffer.getOffsetAt(o.endLineNumber,o.endColumn);return this._decorationsTree.delete(s),s.reset(this.getVersionId(),r,a,o),s.setOptions(LQ[i]),this._decorationsTree.insert(s),s.id}removeAllDecorationsWithOwnerId(e){if(this._isDisposed)return;const t=this._decorationsTree.collectNodesFromOwner(e);for(let i=0,s=t.length;ithis.getLineCount()?[]:this.getLinesDecorations(e,e,t,i)}getLinesDecorations(e,t,i=0,s=!1,o=!1){const r=this.getLineCount(),a=Math.min(r,Math.max(1,e)),l=Math.min(r,Math.max(1,t)),c=this.getLineMaxColumn(l),d=new A(a,1,l,c),u=this._getDecorationsInRange(d,i,s,o);return Z8(u,this._decorationProvider.getDecorationsInRange(d,i,s)),u}getDecorationsInRange(e,t=0,i=!1,s=!1,o=!1){const r=this.validateRange(e),a=this._getDecorationsInRange(r,t,i,o);return Z8(a,this._decorationProvider.getDecorationsInRange(r,t,i,s)),a}getOverviewRulerDecorations(e=0,t=!1){return this._decorationsTree.getAll(this,e,t,!0,!1)}getInjectedTextDecorations(e=0){return this._decorationsTree.getAllInjectedText(this,e)}_getInjectedTextInLine(e){const t=this._buffer.getOffsetAt(e,1),i=t+this._buffer.getLineLength(e),s=this._decorationsTree.getInjectedTextInInterval(this,t,i,0);return au.fromDecorations(s).filter(o=>o.lineNumber===e)}getAllDecorations(e=0,t=!1){let i=this._decorationsTree.getAll(this,e,t,!1,!1);return i=i.concat(this._decorationProvider.getAllDecorations(e,t)),i}getAllMarginDecorations(e=0){return this._decorationsTree.getAll(this,e,!1,!1,!0)}_getDecorationsInRange(e,t,i,s){const o=this._buffer.getOffsetAt(e.startLineNumber,e.startColumn),r=this._buffer.getOffsetAt(e.endLineNumber,e.endColumn);return this._decorationsTree.getAllInInterval(this,o,r,t,i,s)}getRangeAt(e,t){return this._buffer.getRangeAt(e,t-e)}_changeDecorationImpl(e,t){const i=this._decorations[e];if(!i)return;if(i.options.after){const a=this.getDecorationRange(e);this._onDidChangeDecorations.recordLineAffectedByInjectedText(a.endLineNumber)}if(i.options.before){const a=this.getDecorationRange(e);this._onDidChangeDecorations.recordLineAffectedByInjectedText(a.startLineNumber)}const s=this._validateRangeRelaxedNoAllocations(t),o=this._buffer.getOffsetAt(s.startLineNumber,s.startColumn),r=this._buffer.getOffsetAt(s.endLineNumber,s.endColumn);this._decorationsTree.delete(i),i.reset(this.getVersionId(),o,r,s),this._decorationsTree.insert(i),this._onDidChangeDecorations.checkAffectedAndFire(i.options),i.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(s.endLineNumber),i.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(s.startLineNumber)}_changeDecorationOptionsImpl(e,t){const i=this._decorations[e];if(!i)return;const s=!!(i.options.overviewRuler&&i.options.overviewRuler.color),o=!!(t.overviewRuler&&t.overviewRuler.color);if(this._onDidChangeDecorations.checkAffectedAndFire(i.options),this._onDidChangeDecorations.checkAffectedAndFire(t),i.options.after||t.after){const l=this._decorationsTree.getNodeRange(this,i);this._onDidChangeDecorations.recordLineAffectedByInjectedText(l.endLineNumber)}if(i.options.before||t.before){const l=this._decorationsTree.getNodeRange(this,i);this._onDidChangeDecorations.recordLineAffectedByInjectedText(l.startLineNumber)}const r=s!==o,a=XBe(t)!==SN(i);r||a?(this._decorationsTree.delete(i),i.setOptions(t),this._decorationsTree.insert(i)):i.setOptions(t)}_deltaDecorationsImpl(e,t,i,s=!1){const o=this.getVersionId(),r=t.length;let a=0;const l=i.length;let c=0;this._onDidChangeDecorations.beginDeferredEmit();try{const d=new Array(l);for(;athis._setLanguage(e.languageId,t)),this._setLanguage(e.languageId,t))}_setLanguage(e,t){this.tokenization.setLanguageId(e,t),this._languageService.requestRichLanguageFeatures(e)}getLanguageIdAtPosition(e,t){return this.tokenization.getLanguageIdAtPosition(e,t)}getWordAtPosition(e){return this._tokenizationTextModelPart.getWordAtPosition(e)}getWordUntilPosition(e){return this._tokenizationTextModelPart.getWordUntilPosition(e)}normalizePosition(e,t){return e}getLineIndentColumn(e){return YBe(this.getLineContent(e))+1}};Th._MODEL_SYNC_LIMIT=50*1024*1024;Th.LARGE_FILE_SIZE_THRESHOLD=20*1024*1024;Th.LARGE_FILE_LINE_COUNT_THRESHOLD=300*1e3;Th.LARGE_FILE_HEAP_OPERATION_THRESHOLD=256*1024*1024;Th.DEFAULT_CREATION_OPTIONS={isForSimpleWidget:!1,tabSize:zo.tabSize,indentSize:zo.indentSize,insertSpaces:zo.insertSpaces,detectIndentation:!1,defaultEOL:1,trimAutoWhitespace:zo.trimAutoWhitespace,largeFileOptimizations:zo.largeFileOptimizations,bracketPairColorizationOptions:zo.bracketPairColorizationOptions};Th=sv=UBe([m5(4,zM),m5(5,An),m5(6,gn)],Th);function YBe(n){let e=0;for(const t of n)if(t===" "||t===" ")e++;else break;return e}function _5(n){return!!(n.options.overviewRuler&&n.options.overviewRuler.color)}function XBe(n){return!!n.after||!!n.before}function SN(n){return!!n.options.after||!!n.options.before}class xQ{constructor(){this._decorationsTree0=new f5,this._decorationsTree1=new f5,this._injectedTextDecorationsTree=new f5}ensureAllNodesHaveRanges(e){this.getAll(e,0,!1,!1,!1)}_ensureNodesHaveRanges(e,t){for(const i of t)i.range===null&&(i.range=e.getRangeAt(i.cachedAbsoluteStart,i.cachedAbsoluteEnd));return t}getAllInInterval(e,t,i,s,o,r){const a=e.getVersionId(),l=this._intervalSearch(t,i,s,o,a,r);return this._ensureNodesHaveRanges(e,l)}_intervalSearch(e,t,i,s,o,r){const a=this._decorationsTree0.intervalSearch(e,t,i,s,o,r),l=this._decorationsTree1.intervalSearch(e,t,i,s,o,r),c=this._injectedTextDecorationsTree.intervalSearch(e,t,i,s,o,r);return a.concat(l).concat(c)}getInjectedTextInInterval(e,t,i,s){const o=e.getVersionId(),r=this._injectedTextDecorationsTree.intervalSearch(t,i,s,!1,o,!1);return this._ensureNodesHaveRanges(e,r).filter(a=>a.options.showIfCollapsed||!a.range.isEmpty())}getAllInjectedText(e,t){const i=e.getVersionId(),s=this._injectedTextDecorationsTree.search(t,!1,i,!1);return this._ensureNodesHaveRanges(e,s).filter(o=>o.options.showIfCollapsed||!o.range.isEmpty())}getAll(e,t,i,s,o){const r=e.getVersionId(),a=this._search(t,i,s,r,o);return this._ensureNodesHaveRanges(e,a)}_search(e,t,i,s,o){if(i)return this._decorationsTree1.search(e,t,s,o);{const r=this._decorationsTree0.search(e,t,s,o),a=this._decorationsTree1.search(e,t,s,o),l=this._injectedTextDecorationsTree.search(e,t,s,o);return r.concat(a).concat(l)}}collectNodesFromOwner(e){const t=this._decorationsTree0.collectNodesFromOwner(e),i=this._decorationsTree1.collectNodesFromOwner(e),s=this._injectedTextDecorationsTree.collectNodesFromOwner(e);return t.concat(i).concat(s)}collectNodesPostOrder(){const e=this._decorationsTree0.collectNodesPostOrder(),t=this._decorationsTree1.collectNodesPostOrder(),i=this._injectedTextDecorationsTree.collectNodesPostOrder();return e.concat(t).concat(i)}insert(e){SN(e)?this._injectedTextDecorationsTree.insert(e):_5(e)?this._decorationsTree1.insert(e):this._decorationsTree0.insert(e)}delete(e){SN(e)?this._injectedTextDecorationsTree.delete(e):_5(e)?this._decorationsTree1.delete(e):this._decorationsTree0.delete(e)}getNodeRange(e,t){const i=e.getVersionId();return t.cachedVersionId!==i&&this._resolveNode(t,i),t.range===null&&(t.range=e.getRangeAt(t.cachedAbsoluteStart,t.cachedAbsoluteEnd)),t.range}_resolveNode(e,t){SN(e)?this._injectedTextDecorationsTree.resolveNode(e,t):_5(e)?this._decorationsTree1.resolveNode(e,t):this._decorationsTree0.resolveNode(e,t)}acceptReplace(e,t,i,s){this._decorationsTree0.acceptReplace(e,t,i,s),this._decorationsTree1.acceptReplace(e,t,i,s),this._injectedTextDecorationsTree.acceptReplace(e,t,i,s)}}function Du(n){return n.replace(/[^a-z0-9\-_]/gi," ")}class qce{constructor(e){this.color=e.color||"",this.darkColor=e.darkColor||""}}class QBe extends qce{constructor(e){super(e),this._resolvedColor=null,this.position=typeof e.position=="number"?e.position:Sl.Center}getColor(e){return this._resolvedColor||(e.type!=="light"&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=null}_resolveColor(e,t){if(typeof e=="string")return e;const i=e?t.getColor(e.id):null;return i?i.toString():""}}class JBe{constructor(e){var t;this.position=(t=e==null?void 0:e.position)!==null&&t!==void 0?t:Dh.Center,this.persistLane=e==null?void 0:e.persistLane}}class e9e extends qce{constructor(e){var t,i;super(e),this.position=e.position,this.sectionHeaderStyle=(t=e.sectionHeaderStyle)!==null&&t!==void 0?t:null,this.sectionHeaderText=(i=e.sectionHeaderText)!==null&&i!==void 0?i:null}getColor(e){return this._resolvedColor||(e.type!=="light"&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=void 0}_resolveColor(e,t){return typeof e=="string"?le.fromHex(e):t.getColor(e.id)}}class $m{static from(e){return e instanceof $m?e:new $m(e)}constructor(e){this.content=e.content||"",this.inlineClassName=e.inlineClassName||null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.attachedData=e.attachedData||null,this.cursorStops=e.cursorStops||null}}class Wt{static register(e){return new Wt(e)}static createDynamic(e){return new Wt(e)}constructor(e){var t,i,s,o,r,a;this.description=e.description,this.blockClassName=e.blockClassName?Du(e.blockClassName):null,this.blockDoesNotCollapse=(t=e.blockDoesNotCollapse)!==null&&t!==void 0?t:null,this.blockIsAfterEnd=(i=e.blockIsAfterEnd)!==null&&i!==void 0?i:null,this.blockPadding=(s=e.blockPadding)!==null&&s!==void 0?s:null,this.stickiness=e.stickiness||0,this.zIndex=e.zIndex||0,this.className=e.className?Du(e.className):null,this.shouldFillLineOnLineBreak=(o=e.shouldFillLineOnLineBreak)!==null&&o!==void 0?o:null,this.hoverMessage=e.hoverMessage||null,this.glyphMarginHoverMessage=e.glyphMarginHoverMessage||null,this.lineNumberHoverMessage=e.lineNumberHoverMessage||null,this.isWholeLine=e.isWholeLine||!1,this.showIfCollapsed=e.showIfCollapsed||!1,this.collapseOnReplaceEdit=e.collapseOnReplaceEdit||!1,this.overviewRuler=e.overviewRuler?new QBe(e.overviewRuler):null,this.minimap=e.minimap?new e9e(e.minimap):null,this.glyphMargin=e.glyphMarginClassName?new JBe(e.glyphMargin):null,this.glyphMarginClassName=e.glyphMarginClassName?Du(e.glyphMarginClassName):null,this.linesDecorationsClassName=e.linesDecorationsClassName?Du(e.linesDecorationsClassName):null,this.lineNumberClassName=e.lineNumberClassName?Du(e.lineNumberClassName):null,this.linesDecorationsTooltip=e.linesDecorationsTooltip?uRe(e.linesDecorationsTooltip):null,this.firstLineDecorationClassName=e.firstLineDecorationClassName?Du(e.firstLineDecorationClassName):null,this.marginClassName=e.marginClassName?Du(e.marginClassName):null,this.inlineClassName=e.inlineClassName?Du(e.inlineClassName):null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.beforeContentClassName=e.beforeContentClassName?Du(e.beforeContentClassName):null,this.afterContentClassName=e.afterContentClassName?Du(e.afterContentClassName):null,this.after=e.after?$m.from(e.after):null,this.before=e.before?$m.from(e.before):null,this.hideInCommentTokens=(r=e.hideInCommentTokens)!==null&&r!==void 0?r:!1,this.hideInStringTokens=(a=e.hideInStringTokens)!==null&&a!==void 0?a:!1}}Wt.EMPTY=Wt.register({description:"empty"});const LQ=[Wt.register({description:"tracked-range-always-grows-when-typing-at-edges",stickiness:0}),Wt.register({description:"tracked-range-never-grows-when-typing-at-edges",stickiness:1}),Wt.register({description:"tracked-range-grows-only-when-typing-before",stickiness:2}),Wt.register({description:"tracked-range-grows-only-when-typing-after",stickiness:3})];function kQ(n){return n instanceof Wt?n:Wt.createDynamic(n)}class t9e extends ne{constructor(e){super(),this.handleBeforeFire=e,this._actual=this._register(new X),this.event=this._actual.event,this._affectedInjectedTextLines=null,this._deferredCnt=0,this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._affectsLineNumber=!1}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(){var e;this._deferredCnt--,this._deferredCnt===0&&(this._shouldFireDeferred&&this.doFire(),(e=this._affectedInjectedTextLines)===null||e===void 0||e.clear(),this._affectedInjectedTextLines=null)}recordLineAffectedByInjectedText(e){this._affectedInjectedTextLines||(this._affectedInjectedTextLines=new Set),this._affectedInjectedTextLines.add(e)}checkAffectedAndFire(e){var t,i;this._affectsMinimap||(this._affectsMinimap=!!(!((t=e.minimap)===null||t===void 0)&&t.position)),this._affectsOverviewRuler||(this._affectsOverviewRuler=!!(!((i=e.overviewRuler)===null||i===void 0)&&i.color)),this._affectsGlyphMargin||(this._affectsGlyphMargin=!!e.glyphMarginClassName),this._affectsLineNumber||(this._affectsLineNumber=!!e.lineNumberClassName),this.tryFire()}fire(){this._affectsMinimap=!0,this._affectsOverviewRuler=!0,this._affectsGlyphMargin=!0,this.tryFire()}tryFire(){this._deferredCnt===0?this.doFire():this._shouldFireDeferred=!0}doFire(){this.handleBeforeFire(this._affectedInjectedTextLines);const e={affectsMinimap:this._affectsMinimap,affectsOverviewRuler:this._affectsOverviewRuler,affectsGlyphMargin:this._affectsGlyphMargin,affectsLineNumber:this._affectsLineNumber};this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._actual.fire(e)}}class i9e extends ne{constructor(){super(),this._fastEmitter=this._register(new X),this.fastEvent=this._fastEmitter.event,this._slowEmitter=this._register(new X),this.slowEvent=this._slowEmitter.event,this._deferredCnt=0,this._deferredEvent=null}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(e=null){if(this._deferredCnt--,this._deferredCnt===0&&this._deferredEvent!==null){this._deferredEvent.rawContentChangedEvent.resultingSelection=e;const t=this._deferredEvent;this._deferredEvent=null,this._fastEmitter.fire(t),this._slowEmitter.fire(t)}}fire(e){if(this._deferredCnt>0){this._deferredEvent?this._deferredEvent=this._deferredEvent.merge(e):this._deferredEvent=e;return}this._fastEmitter.fire(e),this._slowEmitter.fire(e)}}class n9e{constructor(){this._onDidChangeVisibleRanges=new X,this.onDidChangeVisibleRanges=this._onDidChangeVisibleRanges.event,this._views=new Set}attachView(){const e=new s9e(t=>{this._onDidChangeVisibleRanges.fire({view:e,state:t})});return this._views.add(e),e}detachView(e){this._views.delete(e),this._onDidChangeVisibleRanges.fire({view:e,state:void 0})}}class s9e{constructor(e){this.handleStateChange=e}setVisibleLines(e,t){const i=e.map(s=>new Vt(s.startLineNumber,s.endLineNumber+1));this.handleStateChange({visibleLineRanges:i,stabilized:t})}}class Qz{static create(e){return new Qz(e.get(134),e.get(133))}constructor(e,t){this.classifier=new o9e(e,t)}createLineBreaksComputer(e,t,i,s,o){const r=[],a=[],l=[];return{addRequest:(c,d,u)=>{r.push(c),a.push(d),l.push(u)},finalize:()=>{const c=e.typicalFullwidthCharacterWidth/e.typicalHalfwidthCharacterWidth,d=[];for(let u=0,h=r.length;u=0&&e<256?this._asciiMap[e]:e>=12352&&e<=12543||e>=13312&&e<=19903||e>=19968&&e<=40959?3:this._map.get(e)||this._defaultValue}}let ZB=[],YB=[];function r9e(n,e,t,i,s,o,r,a){if(s===-1)return null;const l=t.length;if(l<=1)return null;const c=a==="keepAll",d=e.breakOffsets,u=e.breakOffsetsVisibleColumn,h=Gce(t,i,s,o,r),f=s-h,g=ZB,p=YB;let _=0,b=0,w=0,y=s;const S=d.length;let x=0;if(x>=0){let k=Math.abs(u[x]-y);for(;x+1=k)break;k=D,x++}}for(;xk&&(k=b,D=w);let I=0,N=0,P=0,O=0;if(D<=y){let z=D,K=k===0?0:t.charCodeAt(k-1),ae=k===0?0:n.get(K),se=!0;for(let he=k;heb&&XB(K,ae,De,lt,c)&&(I=me,N=z),z+=We,z>y){me>b?(P=me,O=z-We):(P=he+1,O=z),z-N>f&&(I=0),se=!1;break}K=De,ae=lt}if(se){_>0&&(g[_]=d[d.length-1],p[_]=u[d.length-1],_++);break}}if(I===0){let z=D,K=t.charCodeAt(k),ae=n.get(K),se=!1;for(let he=k-1;he>=b;he--){const me=he+1,De=t.charCodeAt(he);if(De===9){se=!0;break}let lt,We;if(c0(De)?(he--,lt=0,We=2):(lt=n.get(De),We=Mm(De)?o:1),z<=y){if(P===0&&(P=me,O=z),z<=y-f)break;if(XB(De,lt,K,ae,c)){I=me,N=z;break}}z-=We,K=De,ae=lt}if(I!==0){const he=f-(O-N);if(he<=i){const me=t.charCodeAt(P);let De;Gs(me)?De=2:De=wx(me,O,i,o),he-De<0&&(I=0)}}if(se){x--;continue}}if(I===0&&(I=P,N=O),I<=b){const z=t.charCodeAt(b);Gs(z)?(I=b+2,N=w+2):(I=b+1,N=w+wx(z,w,i,o))}for(b=I,g[_]=I,w=N,p[_]=N,_++,y=N+f;x<0||x=M)break;M=z,x++}}return _===0?null:(g.length=_,p.length=_,ZB=e.breakOffsets,YB=e.breakOffsetsVisibleColumn,e.breakOffsets=g,e.breakOffsetsVisibleColumn=p,e.wrappedTextIndentLength=h,e)}function a9e(n,e,t,i,s,o,r,a){const l=au.applyInjectedText(e,t);let c,d;if(t&&t.length>0?(c=t.map(N=>N.options),d=t.map(N=>N.column-1)):(c=null,d=null),s===-1)return c?new mx(d,c,[l.length],[],0):null;const u=l.length;if(u<=1)return c?new mx(d,c,[l.length],[],0):null;const h=a==="keepAll",f=Gce(l,i,s,o,r),g=s-f,p=[],_=[];let b=0,w=0,y=0,S=s,x=l.charCodeAt(0),k=n.get(x),D=wx(x,0,i,o),I=1;Gs(x)&&(D+=1,x=l.charCodeAt(1),k=n.get(x),I++);for(let N=I;NS&&((w===0||D-y>g)&&(w=P,y=D-z),p[b]=w,_[b]=y,b++,S=y+g,w=0),x=O,k=M}return b===0&&(!t||t.length===0)?null:(p[b]=u,_[b]=D,new mx(d,c,p,_,f))}function wx(n,e,t,i){return n===9?t-e%t:Mm(n)||n<32?i:1}function DQ(n,e){return e-n%e}function XB(n,e,t,i,s){return t!==32&&(e===2&&i!==2||e!==1&&i===1||!s&&e===3&&i!==2||!s&&i===3&&e!==1)}function Gce(n,e,t,i,s){let o=0;if(s!==0){const r=fr(n);if(r!==-1){for(let l=0;lt&&(o=0)}}return o}class lA{constructor(e){this._selTrackedRange=null,this._trackSelection=!0,this._setState(e,new _o(new A(1,1,1,1),0,0,new ee(1,1),0),new _o(new A(1,1,1,1),0,0,new ee(1,1),0))}dispose(e){this._removeTrackedRange(e)}startTrackingSelection(e){this._trackSelection=!0,this._updateTrackedRange(e)}stopTrackingSelection(e){this._trackSelection=!1,this._removeTrackedRange(e)}_updateTrackedRange(e){this._trackSelection&&(this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,this.modelState.selection,0))}_removeTrackedRange(e){this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,null,0)}asCursorState(){return new gi(this.modelState,this.viewState)}readSelectionFromMarkers(e){const t=e.model._getTrackedRange(this._selTrackedRange);return this.modelState.selection.isEmpty()&&!t.isEmpty()?it.fromRange(t.collapseToEnd(),this.modelState.selection.getDirection()):it.fromRange(t,this.modelState.selection.getDirection())}ensureValidState(e){this._setState(e,this.modelState,this.viewState)}setState(e,t,i){this._setState(e,t,i)}static _validatePositionWithCache(e,t,i,s){return t.equals(i)?s:e.normalizePosition(t,2)}static _validateViewState(e,t){const i=t.position,s=t.selectionStart.getStartPosition(),o=t.selectionStart.getEndPosition(),r=e.normalizePosition(i,2),a=this._validatePositionWithCache(e,s,i,r),l=this._validatePositionWithCache(e,o,s,a);return i.equals(r)&&s.equals(a)&&o.equals(l)?t:new _o(A.fromPositions(a,l),t.selectionStartKind,t.selectionStartLeftoverVisibleColumns+s.column-a.column,r,t.leftoverVisibleColumns+i.column-r.column)}_setState(e,t,i){if(i&&(i=lA._validateViewState(e.viewModel,i)),t){const s=e.model.validateRange(t.selectionStart),o=t.selectionStart.equalsRange(s)?t.selectionStartLeftoverVisibleColumns:0,r=e.model.validatePosition(t.position),a=t.position.equals(r)?t.leftoverVisibleColumns:0;t=new _o(s,t.selectionStartKind,o,r,a)}else{if(!i)return;const s=e.model.validateRange(e.coordinatesConverter.convertViewRangeToModelRange(i.selectionStart)),o=e.model.validatePosition(e.coordinatesConverter.convertViewPositionToModelPosition(i.position));t=new _o(s,i.selectionStartKind,i.selectionStartLeftoverVisibleColumns,o,i.leftoverVisibleColumns)}if(i){const s=e.coordinatesConverter.validateViewRange(i.selectionStart,t.selectionStart),o=e.coordinatesConverter.validateViewPosition(i.position,t.position);i=new _o(s,t.selectionStartKind,t.selectionStartLeftoverVisibleColumns,o,t.leftoverVisibleColumns)}else{const s=e.coordinatesConverter.convertModelPositionToViewPosition(new ee(t.selectionStart.startLineNumber,t.selectionStart.startColumn)),o=e.coordinatesConverter.convertModelPositionToViewPosition(new ee(t.selectionStart.endLineNumber,t.selectionStart.endColumn)),r=new A(s.lineNumber,s.column,o.lineNumber,o.column),a=e.coordinatesConverter.convertModelPositionToViewPosition(t.position);i=new _o(r,t.selectionStartKind,t.selectionStartLeftoverVisibleColumns,a,t.leftoverVisibleColumns)}this.modelState=t,this.viewState=i,this._updateTrackedRange(e)}}class IQ{constructor(e){this.context=e,this.cursors=[new lA(e)],this.lastAddedCursorIndex=0}dispose(){for(const e of this.cursors)e.dispose(this.context)}startTrackingSelections(){for(const e of this.cursors)e.startTrackingSelection(this.context)}stopTrackingSelections(){for(const e of this.cursors)e.stopTrackingSelection(this.context)}updateContext(e){this.context=e}ensureValidState(){for(const e of this.cursors)e.ensureValidState(this.context)}readSelectionFromMarkers(){return this.cursors.map(e=>e.readSelectionFromMarkers(this.context))}getAll(){return this.cursors.map(e=>e.asCursorState())}getViewPositions(){return this.cursors.map(e=>e.viewState.position)}getTopMostViewPosition(){return WOe(this.cursors,oa(e=>e.viewState.position,ee.compare)).viewState.position}getBottomMostViewPosition(){return BOe(this.cursors,oa(e=>e.viewState.position,ee.compare)).viewState.position}getSelections(){return this.cursors.map(e=>e.modelState.selection)}getViewSelections(){return this.cursors.map(e=>e.viewState.selection)}setSelections(e){this.setStates(gi.fromModelSelections(e))}getPrimaryCursor(){return this.cursors[0].asCursorState()}setStates(e){e!==null&&(this.cursors[0].setState(this.context,e[0].modelState,e[0].viewState),this._setSecondaryStates(e.slice(1)))}_setSecondaryStates(e){const t=this.cursors.length-1,i=e.length;if(ti){const s=t-i;for(let o=0;o=e+1&&this.lastAddedCursorIndex--,this.cursors[e+1].dispose(this.context),this.cursors.splice(e+1,1)}normalize(){if(this.cursors.length===1)return;const e=this.cursors.slice(0),t=[];for(let i=0,s=e.length;ii.selection,A.compareRangesUsingStarts));for(let i=0;iu&&p.index--;e.splice(u,1),t.splice(d,1),this._removeSecondaryCursor(u-1),i--}}}}class EQ{constructor(e,t,i,s){this._cursorContextBrand=void 0,this.model=e,this.viewModel=t,this.coordinatesConverter=i,this.cursorConfig=s}}class l9e{constructor(){this.type=0}}class c9e{constructor(){this.type=1}}class d9e{constructor(e){this.type=2,this._source=e}hasChanged(e){return this._source.hasChanged(e)}}class u9e{constructor(e,t,i){this.selections=e,this.modelSelections=t,this.reason=i,this.type=3}}class V_{constructor(e){this.type=4,e?(this.affectsMinimap=e.affectsMinimap,this.affectsOverviewRuler=e.affectsOverviewRuler,this.affectsGlyphMargin=e.affectsGlyphMargin,this.affectsLineNumber=e.affectsLineNumber):(this.affectsMinimap=!0,this.affectsOverviewRuler=!0,this.affectsGlyphMargin=!0,this.affectsLineNumber=!0)}}class GE{constructor(){this.type=5}}class h9e{constructor(e){this.type=6,this.isFocused=e}}class f9e{constructor(){this.type=7}}class ZE{constructor(){this.type=8}}class Zce{constructor(e,t){this.fromLineNumber=e,this.count=t,this.type=9}}class QB{constructor(e,t){this.type=10,this.fromLineNumber=e,this.toLineNumber=t}}class JB{constructor(e,t){this.type=11,this.fromLineNumber=e,this.toLineNumber=t}}class yx{constructor(e,t,i,s,o,r,a){this.source=e,this.minimalReveal=t,this.range=i,this.selections=s,this.verticalType=o,this.revealHorizontal=r,this.scrollType=a,this.type=12}}class g9e{constructor(e){this.type=13,this.scrollWidth=e.scrollWidth,this.scrollLeft=e.scrollLeft,this.scrollHeight=e.scrollHeight,this.scrollTop=e.scrollTop,this.scrollWidthChanged=e.scrollWidthChanged,this.scrollLeftChanged=e.scrollLeftChanged,this.scrollHeightChanged=e.scrollHeightChanged,this.scrollTopChanged=e.scrollTopChanged}}class p9e{constructor(e){this.theme=e,this.type=14}}class m9e{constructor(e){this.type=15,this.ranges=e}}class _9e{constructor(){this.type=16}}let v9e=class{constructor(){this.type=17}};class b9e extends ne{constructor(){super(),this._onEvent=this._register(new X),this.onEvent=this._onEvent.event,this._eventHandlers=[],this._viewEventQueue=null,this._isConsumingViewEventQueue=!1,this._collector=null,this._collectorCnt=0,this._outgoingEvents=[]}emitOutgoingEvent(e){this._addOutgoingEvent(e),this._emitOutgoingEvents()}_addOutgoingEvent(e){for(let t=0,i=this._outgoingEvents.length;t0;){if(this._collector||this._isConsumingViewEventQueue)return;const e=this._outgoingEvents.shift();e.isNoOp()||this._onEvent.fire(e)}}addViewEventHandler(e){for(let t=0,i=this._eventHandlers.length;t0&&this._emitMany(t)}this._emitOutgoingEvents()}emitSingleViewEvent(e){try{this.beginEmitViewEvents().emitViewEvent(e)}finally{this.endEmitViewEvents()}}_emitMany(e){this._viewEventQueue?this._viewEventQueue=this._viewEventQueue.concat(e):this._viewEventQueue=e,this._isConsumingViewEventQueue||this._consumeViewEventQueue()}_consumeViewEventQueue(){try{this._isConsumingViewEventQueue=!0,this._doConsumeQueue()}finally{this._isConsumingViewEventQueue=!1}}_doConsumeQueue(){for(;this._viewEventQueue;){const e=this._viewEventQueue;this._viewEventQueue=null;const t=this._eventHandlers.slice(0);for(const i of t)i.handleEvents(e)}}}class C9e{constructor(){this.viewEvents=[],this.outgoingEvents=[]}emitViewEvent(e){this.viewEvents.push(e)}emitOutgoingEvent(e){this.outgoingEvents.push(e)}}class Jz{constructor(e,t,i,s){this.kind=0,this._oldContentWidth=e,this._oldContentHeight=t,this.contentWidth=i,this.contentHeight=s,this.contentWidthChanged=this._oldContentWidth!==this.contentWidth,this.contentHeightChanged=this._oldContentHeight!==this.contentHeight}isNoOp(){return!this.contentWidthChanged&&!this.contentHeightChanged}attemptToMerge(e){return e.kind!==this.kind?null:new Jz(this._oldContentWidth,this._oldContentHeight,e.contentWidth,e.contentHeight)}}class e${constructor(e,t){this.kind=1,this.oldHasFocus=e,this.hasFocus=t}isNoOp(){return this.oldHasFocus===this.hasFocus}attemptToMerge(e){return e.kind!==this.kind?null:new e$(this.oldHasFocus,e.hasFocus)}}class t${constructor(e,t,i,s,o,r,a,l){this.kind=2,this._oldScrollWidth=e,this._oldScrollLeft=t,this._oldScrollHeight=i,this._oldScrollTop=s,this.scrollWidth=o,this.scrollLeft=r,this.scrollHeight=a,this.scrollTop=l,this.scrollWidthChanged=this._oldScrollWidth!==this.scrollWidth,this.scrollLeftChanged=this._oldScrollLeft!==this.scrollLeft,this.scrollHeightChanged=this._oldScrollHeight!==this.scrollHeight,this.scrollTopChanged=this._oldScrollTop!==this.scrollTop}isNoOp(){return!this.scrollWidthChanged&&!this.scrollLeftChanged&&!this.scrollHeightChanged&&!this.scrollTopChanged}attemptToMerge(e){return e.kind!==this.kind?null:new t$(this._oldScrollWidth,this._oldScrollLeft,this._oldScrollHeight,this._oldScrollTop,e.scrollWidth,e.scrollLeft,e.scrollHeight,e.scrollTop)}}class w9e{constructor(){this.kind=3}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class y9e{constructor(){this.kind=4}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class cA{constructor(e,t,i,s,o,r,a){this.kind=6,this.oldSelections=e,this.selections=t,this.oldModelVersionId=i,this.modelVersionId=s,this.source=o,this.reason=r,this.reachedMaxCursorCount=a}static _selectionsAreEqual(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;const i=e.length,s=t.length;if(i!==s)return!1;for(let o=0;o0){const e=this._cursors.getSelections();for(let t=0;tr&&(s=s.slice(0,r),o=!0);const a=Sx.from(this._model,this);return this._cursors.setStates(s),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,t,i,a,o)}setCursorColumnSelectData(e){this._columnSelectData=e}revealAll(e,t,i,s,o,r){const a=this._cursors.getViewPositions();let l=null,c=null;a.length>1?c=this._cursors.getViewSelections():l=A.fromPositions(a[0],a[0]),e.emitViewEvent(new yx(t,i,l,c,s,o,r))}revealPrimary(e,t,i,s,o,r){const l=[this._cursors.getPrimaryCursor().viewState.selection];e.emitViewEvent(new yx(t,i,null,l,s,o,r))}saveState(){const e=[],t=this._cursors.getSelections();for(let i=0,s=t.length;i0){const o=gi.fromModelSelections(i.resultingSelection);this.setStates(e,"modelChange",i.isUndoing?5:i.isRedoing?6:2,o)&&this.revealAll(e,"modelChange",!1,0,!0,0)}else{const o=this._cursors.readSelectionFromMarkers();this.setStates(e,"modelChange",2,gi.fromModelSelections(o))}}}getSelection(){return this._cursors.getPrimaryCursor().modelState.selection}getTopMostViewPosition(){return this._cursors.getTopMostViewPosition()}getBottomMostViewPosition(){return this._cursors.getBottomMostViewPosition()}getCursorColumnSelectData(){if(this._columnSelectData)return this._columnSelectData;const e=this._cursors.getPrimaryCursor(),t=e.viewState.selectionStart.getStartPosition(),i=e.viewState.position;return{isReal:!1,fromViewLineNumber:t.lineNumber,fromViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,t),toViewLineNumber:i.lineNumber,toViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,i)}}getSelections(){return this._cursors.getSelections()}setSelections(e,t,i,s){this.setStates(e,t,s,gi.fromModelSelections(i))}getPrevEditOperationType(){return this._prevEditOperationType}setPrevEditOperationType(e){this._prevEditOperationType=e}_pushAutoClosedAction(e,t){const i=[],s=[];for(let a=0,l=e.length;a0&&this._pushAutoClosedAction(i,s),this._prevEditOperationType=e.type}e.shouldPushStackElementAfter&&this._model.pushStackElement()}_interpretCommandResult(e){(!e||e.length===0)&&(e=this._cursors.readSelectionFromMarkers()),this._columnSelectData=null,this._cursors.setSelections(e),this._cursors.normalize()}_emitStateChangedIfNecessary(e,t,i,s,o){const r=Sx.from(this._model,this);if(r.equals(s))return!1;const a=this._cursors.getSelections(),l=this._cursors.getViewSelections();if(e.emitViewEvent(new u9e(l,a,i)),!s||s.cursorState.length!==r.cursorState.length||r.cursorState.some((c,d)=>!c.modelState.equals(s.cursorState[d].modelState))){const c=s?s.cursorState.map(u=>u.modelState.selection):null,d=s?s.modelVersionId:0;e.emitOutgoingEvent(new cA(c,a,d,r.modelVersionId,t||"keyboard",i,o))}return!0}_findAutoClosingPairs(e){if(!e.length)return null;const t=[];for(let i=0,s=e.length;i=0)return null;const r=o.text.match(/([)\]}>'"`])([^)\]}>'"`]*)$/);if(!r)return null;const a=r[1],l=this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(a);if(!l||l.length!==1)return null;const c=l[0].open,d=o.text.length-r[2].length-1,u=o.text.lastIndexOf(c,d-1);if(u===-1)return null;t.push([u,d])}return t}executeEdits(e,t,i,s){let o=null;t==="snippet"&&(o=this._findAutoClosingPairs(i)),o&&(i[0]._isTracked=!0);const r=[],a=[],l=this._model.pushEditOperations(this.getSelections(),i,c=>{if(o)for(let u=0,h=o.length;u0&&this._pushAutoClosedAction(r,a)}_executeEdit(e,t,i,s=0){if(this.context.cursorConfig.readOnly)return;const o=Sx.from(this._model,this);this._cursors.stopTrackingSelections(),this._isHandling=!0;try{this._cursors.ensureValidState(),e()}catch(r){Mt(r)}this._isHandling=!1,this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(t,i,s,o,!1)&&this.revealAll(t,i,!1,0,!0,0)}getAutoClosedCharacters(){return TQ.getAllAutoClosedCharacters(this._autoClosedActions)}startComposition(e){this._compositionState=new xx(this._model,this.getSelections())}endComposition(e,t){const i=this._compositionState?this._compositionState.deduceOutcome(this._model,this.getSelections()):null;this._compositionState=null,this._executeEdit(()=>{t==="keyboard"&&this._executeEditOperation(Bn.compositionEndWithInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,i,this.getSelections(),this.getAutoClosedCharacters()))},e,t)}type(e,t,i){this._executeEdit(()=>{if(i==="keyboard"){const s=t.length;let o=0;for(;o{const c=l.getPosition();return new it(c.lineNumber,c.column+o,c.lineNumber,c.column+o)});this.setSelections(e,r,a,0)}return}this._executeEdit(()=>{this._executeEditOperation(Bn.compositionType(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t,i,s,o))},e,r)}paste(e,t,i,s,o){this._executeEdit(()=>{this._executeEditOperation(Bn.paste(this.context.cursorConfig,this._model,this.getSelections(),t,i,s||[]))},e,o,4)}cut(e,t){this._executeEdit(()=>{this._executeEditOperation(m0.cut(this.context.cursorConfig,this._model,this.getSelections()))},e,t)}executeCommand(e,t,i){this._executeEdit(()=>{this._cursors.killSecondaryCursors(),this._executeEditOperation(new Zr(0,[t],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},e,i)}executeCommands(e,t,i){this._executeEdit(()=>{this._executeEditOperation(new Zr(0,t,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},e,i)}}class Sx{static from(e,t){return new Sx(e.getVersionId(),t.getCursorStates())}constructor(e,t){this.modelVersionId=e,this.cursorState=t}equals(e){if(!e||this.modelVersionId!==e.modelVersionId||this.cursorState.length!==e.cursorState.length)return!1;for(let t=0,i=this.cursorState.length;t=t.length||!t[i].strictContainsRange(e[i]))return!1;return!0}}class N9e{static executeCommands(e,t,i){const s={model:e,selectionsBefore:t,trackedRanges:[],trackedRangesDirection:[]},o=this._innerExecuteCommands(s,i);for(let r=0,a=s.trackedRanges.length;r0&&(r[0]._isTracked=!0);let a=e.model.pushEditOperations(e.selectionsBefore,r,c=>{const d=[];for(let f=0;ff.identifier.minor-g.identifier.minor,h=[];for(let f=0;f0?(d[f].sort(u),h[f]=t[f].computeCursorState(e.model,{getInverseEditOperations:()=>d[f],getTrackedSelection:g=>{const p=parseInt(g,10),_=e.model._getTrackedRange(e.trackedRanges[p]);return e.trackedRangesDirection[p]===0?new it(_.startLineNumber,_.startColumn,_.endLineNumber,_.endColumn):new it(_.endLineNumber,_.endColumn,_.startLineNumber,_.startColumn)}})):h[f]=e.selectionsBefore[f];return h});a||(a=e.selectionsBefore);const l=[];for(const c in o)o.hasOwnProperty(c)&&l.push(parseInt(c,10));l.sort((c,d)=>d-c);for(const c of l)a.splice(c,1);return a}static _arrayIsEmpty(e){for(let t=0,i=e.length;t{A.isEmpty(u)&&h===""||s.push({identifier:{major:t,minor:o++},range:u,text:h,forceMoveMarkers:f,isAutoWhitespaceEdit:i.insertsAutoWhitespace})};let a=!1;const d={addEditOperation:r,addTrackedEditOperation:(u,h,f)=>{a=!0,r(u,h,f)},trackSelection:(u,h)=>{const f=it.liftSelection(u);let g;if(f.isEmpty())if(typeof h=="boolean")h?g=2:g=3;else{const b=e.model.getLineMaxColumn(f.startLineNumber);f.startColumn===b?g=2:g=3}else g=1;const p=e.trackedRanges.length,_=e.model._setTrackedRange(null,f,g);return e.trackedRanges[p]=_,e.trackedRangesDirection[p]=f.getDirection(),p.toString()}};try{i.getEditOperations(e.model,d)}catch(u){return Mt(u),{operations:[],hadTrackedEditOperation:!1}}return{operations:s,hadTrackedEditOperation:a}}static _getLoserCursorMap(e){e=e.slice(0),e.sort((i,s)=>-A.compareRangesUsingEnds(i.range,s.range));const t={};for(let i=1;io.identifier.major?r=s.identifier.major:r=o.identifier.major,t[r.toString()]=!0;for(let a=0;a0&&i--}}return t}}class A9e{constructor(e,t,i){this.text=e,this.startSelection=t,this.endSelection=i}}class xx{static _capture(e,t){const i=[];for(const s of t){if(s.startLineNumber!==s.endLineNumber)return null;i.push(new A9e(e.getLineContent(s.startLineNumber),s.startColumn-1,s.endColumn-1))}return i}constructor(e,t){this._original=xx._capture(e,t)}deduceOutcome(e,t){if(!this._original)return null;const i=xx._capture(e,t);if(!i||this._original.length!==i.length)return null;const s=[];for(let o=0,r=this._original.length;oOC,tokenizeEncoded:(n,e,t)=>IM(0,t)};async function R9e(n,e,t){if(!t)return AQ(e,n.languageIdCodec,NQ);const i=await Zn.getOrCreate(t);return AQ(e,n.languageIdCodec,i||NQ)}function M9e(n,e,t,i,s,o,r){let a="
",l=i,c=0,d=!0;for(let u=0,h=e.getCount();u0;)r&&d?(g+=" ",d=!1):(g+=" ",d=!0),_--;break}case 60:g+="<",d=!1;break;case 62:g+=">",d=!1;break;case 38:g+="&",d=!1;break;case 0:g+="�",d=!1;break;case 65279:case 8232:case 8233:case 133:g+="�",d=!1;break;case 13:g+="​",d=!1;break;case 32:r&&d?(g+=" ",d=!1):(g+=" ",d=!0);break;default:g+=String.fromCharCode(p),d=!1}}if(a+=`${g}`,f>s||l>=s)break}return a+="
",a}function AQ(n,e,t){let i='
';const s=Wh(n);let o=t.getInitialState();for(let r=0,a=s.length;r0&&(i+="
");const c=t.tokenizeEncoded(l,!0,o);Is.convertToEndOffset(c.tokens,l.length);const u=new Is(c.tokens,l,e).inflate();let h=0;for(let f=0,g=u.getCount();f${ox(l.substring(h,_))}`,h=_}o=c.endState}return i+="
",i}class P9e{constructor(){this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[]}insert(e){this._hasPending=!0,this._inserts.push(e)}change(e){this._hasPending=!0,this._changes.push(e)}remove(e){this._hasPending=!0,this._removes.push(e)}mustCommit(){return this._hasPending}commit(e){if(!this._hasPending)return;const t=this._inserts,i=this._changes,s=this._removes;this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[],e._commitPendingChanges(t,i,s)}}class O9e{constructor(e,t,i,s,o){this.id=e,this.afterLineNumber=t,this.ordinal=i,this.height=s,this.minWidth=o,this.prefixSum=0}}let Yce=class e9{constructor(e,t,i,s){this._instanceId=Sae(++e9.INSTANCE_COUNT),this._pendingChanges=new P9e,this._lastWhitespaceId=0,this._arr=[],this._prefixSumValidIndex=-1,this._minWidth=-1,this._lineCount=e,this._lineHeight=t,this._paddingTop=i,this._paddingBottom=s}static findInsertionIndex(e,t,i){let s=0,o=e.length;for(;s>>1;t===e[r].afterLineNumber?i{t=!0,s=s|0,o=o|0,r=r|0,a=a|0;const l=this._instanceId+ ++this._lastWhitespaceId;return this._pendingChanges.insert(new O9e(l,s,o,r,a)),l},changeOneWhitespace:(s,o,r)=>{t=!0,o=o|0,r=r|0,this._pendingChanges.change({id:s,newAfterLineNumber:o,newHeight:r})},removeWhitespace:s=>{t=!0,this._pendingChanges.remove({id:s})}})}finally{this._pendingChanges.commit(this)}return t}_commitPendingChanges(e,t,i){if((e.length>0||i.length>0)&&(this._minWidth=-1),e.length+t.length+i.length<=1){for(const l of e)this._insertWhitespace(l);for(const l of t)this._changeOneWhitespace(l.id,l.newAfterLineNumber,l.newHeight);for(const l of i){const c=this._findWhitespaceIndex(l.id);c!==-1&&this._removeWhitespace(c)}return}const s=new Set;for(const l of i)s.add(l.id);const o=new Map;for(const l of t)o.set(l.id,l);const r=l=>{const c=[];for(const d of l)if(!s.has(d.id)){if(o.has(d.id)){const u=o.get(d.id);d.afterLineNumber=u.newAfterLineNumber,d.height=u.newHeight}c.push(d)}return c},a=r(this._arr).concat(r(e));a.sort((l,c)=>l.afterLineNumber===c.afterLineNumber?l.ordinal-c.ordinal:l.afterLineNumber-c.afterLineNumber),this._arr=a,this._prefixSumValidIndex=-1}_checkPendingChanges(){this._pendingChanges.mustCommit()&&this._pendingChanges.commit(this)}_insertWhitespace(e){const t=e9.findInsertionIndex(this._arr,e.afterLineNumber,e.ordinal);this._arr.splice(t,0,e),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,t-1)}_findWhitespaceIndex(e){const t=this._arr;for(let i=0,s=t.length;it&&(this._arr[i].afterLineNumber-=t-e+1)}}onLinesInserted(e,t){this._checkPendingChanges(),e=e|0,t=t|0,this._lineCount+=t-e+1;for(let i=0,s=this._arr.length;i=t.length||t[a+1].afterLineNumber>=e)return a;i=a+1|0}else s=a-1|0}return-1}_findFirstWhitespaceAfterLineNumber(e){e=e|0;const i=this._findLastWhitespaceBeforeLineNumber(e)+1;return i1?i=this._lineHeight*(e-1):i=0;const s=this.getWhitespaceAccumulatedHeightBeforeLineNumber(e-(t?1:0));return i+s+this._paddingTop}getVerticalOffsetAfterLineNumber(e,t=!1){this._checkPendingChanges(),e=e|0;const i=this._lineHeight*e,s=this.getWhitespaceAccumulatedHeightBeforeLineNumber(e+(t?1:0));return i+s+this._paddingTop}getWhitespaceMinWidth(){if(this._checkPendingChanges(),this._minWidth===-1){let e=0;for(let t=0,i=this._arr.length;tt}isInTopPadding(e){return this._paddingTop===0?!1:(this._checkPendingChanges(),e=t-this._paddingBottom}getLineNumberAtOrAfterVerticalOffset(e){if(this._checkPendingChanges(),e=e|0,e<0)return 1;const t=this._lineCount|0,i=this._lineHeight;let s=1,o=t;for(;s=a+i)s=r+1;else{if(e>=a)return r;o=r}}return s>t?t:s}getLinesViewportData(e,t){this._checkPendingChanges(),e=e|0,t=t|0;const i=this._lineHeight,s=this.getLineNumberAtOrAfterVerticalOffset(e)|0,o=this.getVerticalOffsetForLineNumber(s)|0;let r=this._lineCount|0,a=this.getFirstWhitespaceIndexAfterLineNumber(s)|0;const l=this.getWhitespacesCount()|0;let c,d;a===-1?(a=l,d=r+1,c=0):(d=this.getAfterLineNumberForWhitespaceIndex(a)|0,c=this.getHeightForWhitespaceIndex(a)|0);let u=o,h=u;const f=5e5;let g=0;o>=f&&(g=Math.floor(o/f)*f,g=Math.floor(g/i)*i,h-=g);const p=[],_=e+(t-e)/2;let b=-1;for(let x=s;x<=r;x++){if(b===-1){const k=u,D=u+i;(k<=_&&__)&&(b=x)}for(u+=i,p[x-s]=h,h+=i;d===x;)h+=c,u+=c,a++,a>=l?d=r+1:(d=this.getAfterLineNumberForWhitespaceIndex(a)|0,c=this.getHeightForWhitespaceIndex(a)|0);if(u>=t){r=x;break}}b===-1&&(b=r);const w=this.getVerticalOffsetForLineNumber(r)|0;let y=s,S=r;return yt&&S--,{bigNumbersDelta:g,startLineNumber:s,endLineNumber:r,relativeVerticalOffset:p,centeredLineNumber:b,completelyVisibleStartLineNumber:y,completelyVisibleEndLineNumber:S,lineHeight:this._lineHeight}}getVerticalOffsetForWhitespaceIndex(e){this._checkPendingChanges(),e=e|0;const t=this.getAfterLineNumberForWhitespaceIndex(e);let i;t>=1?i=this._lineHeight*t:i=0;let s;return e>0?s=this.getWhitespacesAccumulatedHeight(e-1):s=0,i+s+this._paddingTop}getWhitespaceIndexAtOrAfterVerticallOffset(e){this._checkPendingChanges(),e=e|0;let t=0,i=this.getWhitespacesCount()-1;if(i<0)return-1;const s=this.getVerticalOffsetForWhitespaceIndex(i),o=this.getHeightForWhitespaceIndex(i);if(e>=s+o)return-1;for(;t=a+l)t=r+1;else{if(e>=a)return r;i=r}}return t}getWhitespaceAtVerticalOffset(e){this._checkPendingChanges(),e=e|0;const t=this.getWhitespaceIndexAtOrAfterVerticallOffset(e);if(t<0||t>=this.getWhitespacesCount())return null;const i=this.getVerticalOffsetForWhitespaceIndex(t);if(i>e)return null;const s=this.getHeightForWhitespaceIndex(t),o=this.getIdForWhitespaceIndex(t),r=this.getAfterLineNumberForWhitespaceIndex(t);return{id:o,afterLineNumber:r,verticalOffset:i,height:s}}getWhitespaceViewportData(e,t){this._checkPendingChanges(),e=e|0,t=t|0;const i=this.getWhitespaceIndexAtOrAfterVerticallOffset(e),s=this.getWhitespacesCount()-1;if(i<0)return[];const o=[];for(let r=i;r<=s;r++){const a=this.getVerticalOffsetForWhitespaceIndex(r),l=this.getHeightForWhitespaceIndex(r);if(a>=t)break;o.push({id:this.getIdForWhitespaceIndex(r),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(r),verticalOffset:a,height:l})}return o}getWhitespaces(){return this._checkPendingChanges(),this._arr.slice(0)}getWhitespacesCount(){return this._checkPendingChanges(),this._arr.length}getIdForWhitespaceIndex(e){return this._checkPendingChanges(),e=e|0,this._arr[e].id}getAfterLineNumberForWhitespaceIndex(e){return this._checkPendingChanges(),e=e|0,this._arr[e].afterLineNumber}getHeightForWhitespaceIndex(e){return this._checkPendingChanges(),e=e|0,this._arr[e].height}};Yce.INSTANCE_COUNT=0;const F9e=125;class TS{constructor(e,t,i,s){e=e|0,t=t|0,i=i|0,s=s|0,e<0&&(e=0),t<0&&(t=0),i<0&&(i=0),s<0&&(s=0),this.width=e,this.contentWidth=t,this.scrollWidth=Math.max(e,t),this.height=i,this.contentHeight=s,this.scrollHeight=Math.max(i,s)}equals(e){return this.width===e.width&&this.contentWidth===e.contentWidth&&this.height===e.height&&this.contentHeight===e.contentHeight}}class B9e extends ne{constructor(e,t){super(),this._onDidContentSizeChange=this._register(new X),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._dimensions=new TS(0,0,0,0),this._scrollable=this._register(new Ww({forceIntegerValues:!0,smoothScrollDuration:e,scheduleAtNextAnimationFrame:t})),this.onDidScroll=this._scrollable.onScroll}getScrollable(){return this._scrollable}setSmoothScrollDuration(e){this._scrollable.setSmoothScrollDuration(e)}validateScrollPosition(e){return this._scrollable.validateScrollPosition(e)}getScrollDimensions(){return this._dimensions}setScrollDimensions(e){if(this._dimensions.equals(e))return;const t=this._dimensions;this._dimensions=e,this._scrollable.setScrollDimensions({width:e.width,scrollWidth:e.scrollWidth,height:e.height,scrollHeight:e.scrollHeight},!0);const i=t.contentWidth!==e.contentWidth,s=t.contentHeight!==e.contentHeight;(i||s)&&this._onDidContentSizeChange.fire(new Jz(t.contentWidth,t.contentHeight,e.contentWidth,e.contentHeight))}getFutureScrollPosition(){return this._scrollable.getFutureScrollPosition()}getCurrentScrollPosition(){return this._scrollable.getCurrentScrollPosition()}setScrollPositionNow(e){this._scrollable.setScrollPositionNow(e)}setScrollPositionSmooth(e){this._scrollable.setScrollPositionSmooth(e)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}}class W9e extends ne{constructor(e,t,i){super(),this._configuration=e;const s=this._configuration.options,o=s.get(145),r=s.get(84);this._linesLayout=new Yce(t,s.get(67),r.top,r.bottom),this._maxLineWidth=0,this._overlayWidgetsMinWidth=0,this._scrollable=this._register(new B9e(0,i)),this._configureSmoothScrollDuration(),this._scrollable.setScrollDimensions(new TS(o.contentWidth,0,o.height,0)),this.onDidScroll=this._scrollable.onDidScroll,this.onDidContentSizeChange=this._scrollable.onDidContentSizeChange,this._updateHeight()}dispose(){super.dispose()}getScrollable(){return this._scrollable.getScrollable()}onHeightMaybeChanged(){this._updateHeight()}_configureSmoothScrollDuration(){this._scrollable.setSmoothScrollDuration(this._configuration.options.get(114)?F9e:0)}onConfigurationChanged(e){const t=this._configuration.options;if(e.hasChanged(67)&&this._linesLayout.setLineHeight(t.get(67)),e.hasChanged(84)){const i=t.get(84);this._linesLayout.setPadding(i.top,i.bottom)}if(e.hasChanged(145)){const i=t.get(145),s=i.contentWidth,o=i.height,r=this._scrollable.getScrollDimensions(),a=r.contentWidth;this._scrollable.setScrollDimensions(new TS(s,r.contentWidth,o,this._getContentHeight(s,o,a)))}else this._updateHeight();e.hasChanged(114)&&this._configureSmoothScrollDuration()}onFlushed(e){this._linesLayout.onFlushed(e)}onLinesDeleted(e,t){this._linesLayout.onLinesDeleted(e,t)}onLinesInserted(e,t){this._linesLayout.onLinesInserted(e,t)}_getHorizontalScrollbarHeight(e,t){const s=this._configuration.options.get(103);return s.horizontal===2||e>=t?0:s.horizontalScrollbarSize}_getContentHeight(e,t,i){const s=this._configuration.options;let o=this._linesLayout.getLinesTotalHeight();return s.get(105)?o+=Math.max(0,t-s.get(67)-s.get(84).bottom):s.get(103).ignoreHorizontalScrollbarInContentHeight||(o+=this._getHorizontalScrollbarHeight(e,i)),o}_updateHeight(){const e=this._scrollable.getScrollDimensions(),t=e.width,i=e.height,s=e.contentWidth;this._scrollable.setScrollDimensions(new TS(t,e.contentWidth,i,this._getContentHeight(t,i,s)))}getCurrentViewport(){const e=this._scrollable.getScrollDimensions(),t=this._scrollable.getCurrentScrollPosition();return new bX(t.scrollTop,t.scrollLeft,e.width,e.height)}getFutureViewport(){const e=this._scrollable.getScrollDimensions(),t=this._scrollable.getFutureScrollPosition();return new bX(t.scrollTop,t.scrollLeft,e.width,e.height)}_computeContentWidth(){const e=this._configuration.options,t=this._maxLineWidth,i=e.get(146),s=e.get(50),o=e.get(145);if(i.isViewportWrapping){const r=e.get(73);return t>o.contentWidth+s.typicalHalfwidthCharacterWidth&&r.enabled&&r.side==="right"?t+o.verticalScrollbarWidth:t}else{const r=e.get(104)*s.typicalHalfwidthCharacterWidth,a=this._linesLayout.getWhitespaceMinWidth();return Math.max(t+r+o.verticalScrollbarWidth,a,this._overlayWidgetsMinWidth)}}setMaxLineWidth(e){this._maxLineWidth=e,this._updateContentWidth()}setOverlayWidgetsMinWidth(e){this._overlayWidgetsMinWidth=e,this._updateContentWidth()}_updateContentWidth(){const e=this._scrollable.getScrollDimensions();this._scrollable.setScrollDimensions(new TS(e.width,this._computeContentWidth(),e.height,e.contentHeight)),this._updateHeight()}saveState(){const e=this._scrollable.getFutureScrollPosition(),t=e.scrollTop,i=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t),s=this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(i);return{scrollTop:t,scrollTopWithoutViewZones:t-s,scrollLeft:e.scrollLeft}}changeWhitespace(e){const t=this._linesLayout.changeWhitespace(e);return t&&this.onHeightMaybeChanged(),t}getVerticalOffsetForLineNumber(e,t=!1){return this._linesLayout.getVerticalOffsetForLineNumber(e,t)}getVerticalOffsetAfterLineNumber(e,t=!1){return this._linesLayout.getVerticalOffsetAfterLineNumber(e,t)}isAfterLines(e){return this._linesLayout.isAfterLines(e)}isInTopPadding(e){return this._linesLayout.isInTopPadding(e)}isInBottomPadding(e){return this._linesLayout.isInBottomPadding(e)}getLineNumberAtVerticalOffset(e){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)}getWhitespaceAtVerticalOffset(e){return this._linesLayout.getWhitespaceAtVerticalOffset(e)}getLinesViewportData(){const e=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(e.top,e.top+e.height)}getLinesViewportDataAtScrollTop(e){const t=this._scrollable.getScrollDimensions();return e+t.height>t.scrollHeight&&(e=t.scrollHeight-t.height),e<0&&(e=0),this._linesLayout.getLinesViewportData(e,e+t.height)}getWhitespaceViewportData(){const e=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(e.top,e.top+e.height)}getWhitespaces(){return this._linesLayout.getWhitespaces()}getContentWidth(){return this._scrollable.getScrollDimensions().contentWidth}getScrollWidth(){return this._scrollable.getScrollDimensions().scrollWidth}getContentHeight(){return this._scrollable.getScrollDimensions().contentHeight}getScrollHeight(){return this._scrollable.getScrollDimensions().scrollHeight}getCurrentScrollLeft(){return this._scrollable.getCurrentScrollPosition().scrollLeft}getCurrentScrollTop(){return this._scrollable.getCurrentScrollPosition().scrollTop}validateScrollPosition(e){return this._scrollable.validateScrollPosition(e)}setScrollPosition(e,t){t===1?this._scrollable.setScrollPositionNow(e):this._scrollable.setScrollPositionSmooth(e)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}deltaScrollNow(e,t){const i=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:i.scrollLeft+e,scrollTop:i.scrollTop+t})}}class H9e{constructor(e,t,i,s,o){this.editorId=e,this.model=t,this.configuration=i,this._linesCollection=s,this._coordinatesConverter=o,this._decorationsCache=Object.create(null),this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}_clearCachedModelDecorationsResolver(){this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}dispose(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}reset(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onModelDecorationsChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onLineMappingChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}_getOrCreateViewModelDecoration(e){const t=e.id;let i=this._decorationsCache[t];if(!i){const s=e.range,o=e.options;let r;if(o.isWholeLine){const a=this._coordinatesConverter.convertModelPositionToViewPosition(new ee(s.startLineNumber,1),0,!1,!0),l=this._coordinatesConverter.convertModelPositionToViewPosition(new ee(s.endLineNumber,this.model.getLineMaxColumn(s.endLineNumber)),1);r=new A(a.lineNumber,a.column,l.lineNumber,l.column)}else r=this._coordinatesConverter.convertModelRangeToViewRange(s,1);i=new Mle(r,o),this._decorationsCache[t]=i}return i}getMinimapDecorationsInRange(e){return this._getDecorationsInRange(e,!0,!1).decorations}getDecorationsViewportData(e){let t=this._cachedModelDecorationsResolver!==null;return t=t&&e.equalsRange(this._cachedModelDecorationsResolverViewRange),t||(this._cachedModelDecorationsResolver=this._getDecorationsInRange(e,!1,!1),this._cachedModelDecorationsResolverViewRange=e),this._cachedModelDecorationsResolver}getInlineDecorationsOnLine(e,t=!1,i=!1){const s=new A(e,this._linesCollection.getViewLineMinColumn(e),e,this._linesCollection.getViewLineMaxColumn(e));return this._getDecorationsInRange(s,t,i).inlineDecorations[0]}_getDecorationsInRange(e,t,i){const s=this._linesCollection.getDecorationsInRange(e,this.editorId,k2(this.configuration.options),t,i),o=e.startLineNumber,r=e.endLineNumber,a=[];let l=0;const c=[];for(let d=o;d<=r;d++)c[d-o]=[];for(let d=0,u=s.length;dt===1)}function s$(n,e){return Xce(n,e.range,t=>t===2)}function Xce(n,e,t){for(let i=e.startLineNumber;i<=e.endLineNumber;i++){const s=n.tokenization.getLineTokens(i),o=i===e.startLineNumber,r=i===e.endLineNumber;let a=o?s.findTokenIndexAtOffset(e.startColumn-1):0;for(;ae.endColumn-1);){if(!t(s.getStandardTokenType(a)))return!1;a++}}return!0}function v5(n,e){return n===null?e?dA.INSTANCE:uA.INSTANCE:new V9e(n,e)}class V9e{constructor(e,t){this._projectionData=e,this._isVisible=t}isVisible(){return this._isVisible}setVisible(e){return this._isVisible=e,this}getProjectionData(){return this._projectionData}getViewLineCount(){return this._isVisible?this._projectionData.getOutputLineCount():0}getViewLineContent(e,t,i){this._assertVisible();const s=i>0?this._projectionData.breakOffsets[i-1]:0,o=this._projectionData.breakOffsets[i];let r;if(this._projectionData.injectionOffsets!==null){const a=this._projectionData.injectionOffsets.map((c,d)=>new au(0,0,c+1,this._projectionData.injectionOptions[d],0));r=au.applyInjectedText(e.getLineContent(t),a).substring(s,o)}else r=e.getValueInRange({startLineNumber:t,startColumn:s+1,endLineNumber:t,endColumn:o+1});return i>0&&(r=RQ(this._projectionData.wrappedTextIndentLength)+r),r}getViewLineLength(e,t,i){return this._assertVisible(),this._projectionData.getLineLength(i)}getViewLineMinColumn(e,t,i){return this._assertVisible(),this._projectionData.getMinOutputOffset(i)+1}getViewLineMaxColumn(e,t,i){return this._assertVisible(),this._projectionData.getMaxOutputOffset(i)+1}getViewLineData(e,t,i){const s=new Array;return this.getViewLinesData(e,t,i,1,0,[!0],s),s[0]}getViewLinesData(e,t,i,s,o,r,a){this._assertVisible();const l=this._projectionData,c=l.injectionOffsets,d=l.injectionOptions;let u=null;if(c){u=[];let f=0,g=0;for(let p=0;p0?l.breakOffsets[p-1]:0,w=l.breakOffsets[p];for(;gw)break;if(b0?l.wrappedTextIndentLength:0,I=D+Math.max(S-b,0),N=D+Math.min(x-b,w-b);I!==N&&_.push(new z4e(I,N,k.inlineClassName,k.inlineClassNameAffectsLetterSpacing))}}if(x<=w)f+=y,g++;else break}}}let h;c?h=e.tokenization.getLineTokens(t).withInserted(c.map((f,g)=>({offset:f,text:d[g].content,tokenMetadata:Is.defaultTokenMetadata}))):h=e.tokenization.getLineTokens(t);for(let f=i;f0?s.wrappedTextIndentLength:0,r=i>0?s.breakOffsets[i-1]:0,a=s.breakOffsets[i],l=e.sliceAndInflate(r,a,o);let c=l.getLineContent();i>0&&(c=RQ(s.wrappedTextIndentLength)+c);const d=this._projectionData.getMinOutputOffset(i)+1,u=c.length+1,h=i+1=b5.length)for(let e=1;e<=n;e++)b5[e]=z9e(e);return b5[n]}function z9e(n){return new Array(n+1).join(" ")}class $9e{constructor(e,t,i,s,o,r,a,l,c,d){this._editorId=e,this.model=t,this._validModelVersionId=-1,this._domLineBreaksComputerFactory=i,this._monospaceLineBreaksComputerFactory=s,this.fontInfo=o,this.tabSize=r,this.wrappingStrategy=a,this.wrappingColumn=l,this.wrappingIndent=c,this.wordBreak=d,this._constructLines(!0,null)}dispose(){this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[])}createCoordinatesConverter(){return new j9e(this)}_constructLines(e,t){this.modelLineProjections=[],e&&(this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[]));const i=this.model.getLinesContent(),s=this.model.getInjectedTextDecorations(this._editorId),o=i.length,r=this.createLineBreaksComputer(),a=new Lg(au.fromDecorations(s));for(let p=0;pb.lineNumber===p+1);r.addRequest(i[p],_,t?t[p]:null)}const l=r.finalize(),c=[],d=this.hiddenAreasDecorationIds.map(p=>this.model.getDecorationRange(p)).sort(A.compareRangesUsingStarts);let u=1,h=0,f=-1,g=f+1=u&&_<=h,w=v5(l[p],!b);c[p]=w.getViewLineCount(),this.modelLineProjections[p]=w}this._validModelVersionId=this.model.getVersionId(),this.projectedModelLineLineCounts=new pOe(c)}getHiddenAreas(){return this.hiddenAreasDecorationIds.map(e=>this.model.getDecorationRange(e))}setHiddenAreas(e){const t=e.map(h=>this.model.validateRange(h)),i=U9e(t),s=this.hiddenAreasDecorationIds.map(h=>this.model.getDecorationRange(h)).sort(A.compareRangesUsingStarts);if(i.length===s.length){let h=!1;for(let f=0;f({range:h,options:Wt.EMPTY}));this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,o);const r=i;let a=1,l=0,c=-1,d=c+1=a&&f<=l?this.modelLineProjections[h].isVisible()&&(this.modelLineProjections[h]=this.modelLineProjections[h].setVisible(!1),g=!0):(u=!0,this.modelLineProjections[h].isVisible()||(this.modelLineProjections[h]=this.modelLineProjections[h].setVisible(!0),g=!0)),g){const p=this.modelLineProjections[h].getViewLineCount();this.projectedModelLineLineCounts.setValue(h,p)}}return u||this.setHiddenAreas([]),!0}modelPositionIsVisible(e,t){return e<1||e>this.modelLineProjections.length?!1:this.modelLineProjections[e-1].isVisible()}getModelLineViewLineCount(e){return e<1||e>this.modelLineProjections.length?1:this.modelLineProjections[e-1].getViewLineCount()}setTabSize(e){return this.tabSize===e?!1:(this.tabSize=e,this._constructLines(!1,null),!0)}setWrappingSettings(e,t,i,s,o){const r=this.fontInfo.equals(e),a=this.wrappingStrategy===t,l=this.wrappingColumn===i,c=this.wrappingIndent===s,d=this.wordBreak===o;if(r&&a&&l&&c&&d)return!1;const u=r&&a&&!l&&c&&d;this.fontInfo=e,this.wrappingStrategy=t,this.wrappingColumn=i,this.wrappingIndent=s,this.wordBreak=o;let h=null;if(u){h=[];for(let f=0,g=this.modelLineProjections.length;f2&&!this.modelLineProjections[t-2].isVisible(),r=t===1?1:this.projectedModelLineLineCounts.getPrefixSum(t-1)+1;let a=0;const l=[],c=[];for(let d=0,u=s.length;dl?(d=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,u=d+l-1,g=u+1,p=g+(o-l)-1,c=!0):ot?t:e|0}getActiveIndentGuide(e,t,i){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t),i=this._toValidViewLineNumber(i);const s=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),o=this.convertViewPositionToModelPosition(t,this.getViewLineMinColumn(t)),r=this.convertViewPositionToModelPosition(i,this.getViewLineMinColumn(i)),a=this.model.guides.getActiveIndentGuide(s.lineNumber,o.lineNumber,r.lineNumber),l=this.convertModelPositionToViewPosition(a.startLineNumber,1),c=this.convertModelPositionToViewPosition(a.endLineNumber,this.model.getLineMaxColumn(a.endLineNumber));return{startLineNumber:l.lineNumber,endLineNumber:c.lineNumber,indent:a.indent}}getViewLineInfo(e){e=this._toValidViewLineNumber(e);const t=this.projectedModelLineLineCounts.getIndexOf(e-1),i=t.index,s=t.remainder;return new MQ(i+1,s)}getMinColumnOfViewLine(e){return this.modelLineProjections[e.modelLineNumber-1].getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx)}getMaxColumnOfViewLine(e){return this.modelLineProjections[e.modelLineNumber-1].getViewLineMaxColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx)}getModelStartPositionOfViewLine(e){const t=this.modelLineProjections[e.modelLineNumber-1],i=t.getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),s=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,i);return new ee(e.modelLineNumber,s)}getModelEndPositionOfViewLine(e){const t=this.modelLineProjections[e.modelLineNumber-1],i=t.getViewLineMaxColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),s=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,i);return new ee(e.modelLineNumber,s)}getViewLineInfosGroupedByModelRanges(e,t){const i=this.getViewLineInfo(e),s=this.getViewLineInfo(t),o=new Array;let r=this.getModelStartPositionOfViewLine(i),a=new Array;for(let l=i.modelLineNumber;l<=s.modelLineNumber;l++){const c=this.modelLineProjections[l-1];if(c.isVisible()){const d=l===i.modelLineNumber?i.modelLineWrappedLineIdx:0,u=l===s.modelLineNumber?s.modelLineWrappedLineIdx+1:c.getViewLineCount();for(let h=d;h{if(f.forWrappedLinesAfterColumn!==-1&&this.modelLineProjections[d.modelLineNumber-1].getViewPositionOfModelPosition(0,f.forWrappedLinesAfterColumn).lineNumber>=d.modelLineWrappedLineIdx||f.forWrappedLinesBeforeOrAtColumn!==-1&&this.modelLineProjections[d.modelLineNumber-1].getViewPositionOfModelPosition(0,f.forWrappedLinesBeforeOrAtColumn).lineNumberd.modelLineWrappedLineIdx)return}const p=this.convertModelPositionToViewPosition(d.modelLineNumber,f.horizontalLine.endColumn),_=this.modelLineProjections[d.modelLineNumber-1].getViewPositionOfModelPosition(0,f.horizontalLine.endColumn);return _.lineNumber===d.modelLineWrappedLineIdx?new Dv(f.visibleColumn,g,f.className,new fx(f.horizontalLine.top,p.column),-1,-1):_.lineNumber!!f))}}return r}getViewLinesIndentGuides(e,t){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);const i=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),s=this.convertViewPositionToModelPosition(t,this.getViewLineMaxColumn(t));let o=[];const r=[],a=[],l=i.lineNumber-1,c=s.lineNumber-1;let d=null;for(let g=l;g<=c;g++){const p=this.modelLineProjections[g];if(p.isVisible()){const _=p.getViewLineNumberOfModelPosition(0,g===l?i.column:1),b=p.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(g+1)),w=b-_+1;let y=0;w>1&&p.getViewLineMinColumn(this.model,g+1,b)===1&&(y=_===0?1:2),r.push(w),a.push(y),d===null&&(d=new ee(g+1,0))}else d!==null&&(o=o.concat(this.model.guides.getLinesIndentGuides(d.lineNumber,g)),d=null)}d!==null&&(o=o.concat(this.model.guides.getLinesIndentGuides(d.lineNumber,s.lineNumber)),d=null);const u=t-e+1,h=new Array(u);let f=0;for(let g=0,p=o.length;gt&&(g=!0,f=t-o+1),u.getViewLinesData(this.model,c+1,h,f,o-e,i,l),o+=f,g)break}return l}validateViewPosition(e,t,i){e=this._toValidViewLineNumber(e);const s=this.projectedModelLineLineCounts.getIndexOf(e-1),o=s.index,r=s.remainder,a=this.modelLineProjections[o],l=a.getViewLineMinColumn(this.model,o+1,r),c=a.getViewLineMaxColumn(this.model,o+1,r);tc&&(t=c);const d=a.getModelColumnOfViewPosition(r,t);return this.model.validatePosition(new ee(o+1,d)).equals(i)?new ee(e,t):this.convertModelPositionToViewPosition(i.lineNumber,i.column)}validateViewRange(e,t){const i=this.validateViewPosition(e.startLineNumber,e.startColumn,t.getStartPosition()),s=this.validateViewPosition(e.endLineNumber,e.endColumn,t.getEndPosition());return new A(i.lineNumber,i.column,s.lineNumber,s.column)}convertViewPositionToModelPosition(e,t){const i=this.getViewLineInfo(e),s=this.modelLineProjections[i.modelLineNumber-1].getModelColumnOfViewPosition(i.modelLineWrappedLineIdx,t);return this.model.validatePosition(new ee(i.modelLineNumber,s))}convertViewRangeToModelRange(e){const t=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),i=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);return new A(t.lineNumber,t.column,i.lineNumber,i.column)}convertModelPositionToViewPosition(e,t,i=2,s=!1,o=!1){const r=this.model.validatePosition(new ee(e,t)),a=r.lineNumber,l=r.column;let c=a-1,d=!1;if(o)for(;c0&&!this.modelLineProjections[c].isVisible();)c--,d=!0;if(c===0&&!this.modelLineProjections[c].isVisible())return new ee(s?0:1,1);const u=1+this.projectedModelLineLineCounts.getPrefixSum(c);let h;return d?o?h=this.modelLineProjections[c].getViewPositionOfModelPosition(u,1,i):h=this.modelLineProjections[c].getViewPositionOfModelPosition(u,this.model.getLineMaxColumn(c+1),i):h=this.modelLineProjections[a-1].getViewPositionOfModelPosition(u,l,i),h}convertModelRangeToViewRange(e,t=0){if(e.isEmpty()){const i=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,t);return A.fromPositions(i)}else{const i=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,1),s=this.convertModelPositionToViewPosition(e.endLineNumber,e.endColumn,0);return new A(i.lineNumber,i.column,s.lineNumber,s.column)}}getViewLineNumberOfModelPosition(e,t){let i=e-1;if(this.modelLineProjections[i].isVisible()){const o=1+this.projectedModelLineLineCounts.getPrefixSum(i);return this.modelLineProjections[i].getViewLineNumberOfModelPosition(o,t)}for(;i>0&&!this.modelLineProjections[i].isVisible();)i--;if(i===0&&!this.modelLineProjections[i].isVisible())return 1;const s=1+this.projectedModelLineLineCounts.getPrefixSum(i);return this.modelLineProjections[i].getViewLineNumberOfModelPosition(s,this.model.getLineMaxColumn(i+1))}getDecorationsInRange(e,t,i,s,o){const r=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),a=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);if(a.lineNumber-r.lineNumber<=e.endLineNumber-e.startLineNumber)return this.model.getDecorationsInRange(new A(r.lineNumber,1,a.lineNumber,a.column),t,i,s,o);let l=[];const c=r.lineNumber-1,d=a.lineNumber-1;let u=null;for(let p=c;p<=d;p++)if(this.modelLineProjections[p].isVisible())u===null&&(u=new ee(p+1,p===c?r.column:1));else if(u!==null){const b=this.model.getLineMaxColumn(p);l=l.concat(this.model.getDecorationsInRange(new A(u.lineNumber,u.column,p,b),t,i,s)),u=null}u!==null&&(l=l.concat(this.model.getDecorationsInRange(new A(u.lineNumber,u.column,a.lineNumber,a.column),t,i,s)),u=null),l.sort((p,_)=>{const b=A.compareRangesUsingStarts(p.range,_.range);return b===0?p.id<_.id?-1:p.id>_.id?1:0:b});const h=[];let f=0,g=null;for(const p of l){const _=p.id;g!==_&&(g=_,h[f++]=p)}return h}getInjectedTextAt(e){const t=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[t.modelLineNumber-1].getInjectedTextAt(t.modelLineWrappedLineIdx,e.column)}normalizePosition(e,t){const i=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[i.modelLineNumber-1].normalizePosition(i.modelLineWrappedLineIdx,e,t)}getLineIndentColumn(e){const t=this.getViewLineInfo(e);return t.modelLineWrappedLineIdx===0?this.model.getLineIndentColumn(t.modelLineNumber):0}}function U9e(n){if(n.length===0)return[];const e=n.slice();e.sort(A.compareRangesUsingStarts);const t=[];let i=e[0].startLineNumber,s=e[0].endLineNumber;for(let o=1,r=e.length;os+1?(t.push(new A(i,1,s,1)),i=a.startLineNumber,s=a.endLineNumber):a.endLineNumber>s&&(s=a.endLineNumber)}return t.push(new A(i,1,s,1)),t}class MQ{constructor(e,t){this.modelLineNumber=e,this.modelLineWrappedLineIdx=t}}class PQ{constructor(e,t){this.modelRange=e,this.viewLines=t}}class j9e{constructor(e){this._lines=e}convertViewPositionToModelPosition(e){return this._lines.convertViewPositionToModelPosition(e.lineNumber,e.column)}convertViewRangeToModelRange(e){return this._lines.convertViewRangeToModelRange(e)}validateViewPosition(e,t){return this._lines.validateViewPosition(e.lineNumber,e.column,t)}validateViewRange(e,t){return this._lines.validateViewRange(e,t)}convertModelPositionToViewPosition(e,t,i,s){return this._lines.convertModelPositionToViewPosition(e.lineNumber,e.column,t,i,s)}convertModelRangeToViewRange(e,t){return this._lines.convertModelRangeToViewRange(e,t)}modelPositionIsVisible(e){return this._lines.modelPositionIsVisible(e.lineNumber,e.column)}getModelLineViewLineCount(e){return this._lines.getModelLineViewLineCount(e)}getViewLineNumberOfModelPosition(e,t){return this._lines.getViewLineNumberOfModelPosition(e,t)}}class K9e{constructor(e){this.model=e}dispose(){}createCoordinatesConverter(){return new q9e(this)}getHiddenAreas(){return[]}setHiddenAreas(e){return!1}setTabSize(e){return!1}setWrappingSettings(e,t,i,s){return!1}createLineBreaksComputer(){const e=[];return{addRequest:(t,i,s)=>{e.push(null)},finalize:()=>e}}onModelFlushed(){}onModelLinesDeleted(e,t,i){return new QB(t,i)}onModelLinesInserted(e,t,i,s){return new JB(t,i)}onModelLineChanged(e,t,i){return[!1,new Zce(t,1),null,null]}acceptVersionId(e){}getViewLineCount(){return this.model.getLineCount()}getActiveIndentGuide(e,t,i){return{startLineNumber:e,endLineNumber:e,indent:0}}getViewLinesBracketGuides(e,t,i){return new Array(t-e+1).fill([])}getViewLinesIndentGuides(e,t){const i=t-e+1,s=new Array(i);for(let o=0;ot)}getModelLineViewLineCount(e){return 1}getViewLineNumberOfModelPosition(e,t){return e}}const z_=Dh.Right;class G9e{constructor(e){this.persist=0,this._requiredLanes=1,this.lanes=new Uint8Array(Math.ceil((e+1)*z_/8))}reset(e){const t=Math.ceil((e+1)*z_/8);this.lanes.length>>3]|=1<>>3]&1<>>3]&1<this._updateConfigurationViewLineCountNow(),0)),this._hasFocus=!1,this._viewportStart=o$.create(this.model),this.glyphLanes=new G9e(0),this.model.isTooLargeForTokenization())this._lines=new K9e(this.model);else{const d=this._configuration.options,u=d.get(50),h=d.get(139),f=d.get(146),g=d.get(138),p=d.get(129);this._lines=new $9e(this._editorId,this.model,s,o,u,this.model.getOptions().tabSize,h,f.wrappingColumn,g,p)}this.coordinatesConverter=this._lines.createCoordinatesConverter(),this._cursor=this._register(new T9e(i,this,this.coordinatesConverter,this.cursorConfig)),this.viewLayout=this._register(new W9e(this._configuration,this.getLineCount(),r)),this._register(this.viewLayout.onDidScroll(d=>{d.scrollTopChanged&&this._handleVisibleLinesChanged(),d.scrollTopChanged&&this._viewportStart.invalidate(),this._eventDispatcher.emitSingleViewEvent(new g9e(d)),this._eventDispatcher.emitOutgoingEvent(new t$(d.oldScrollWidth,d.oldScrollLeft,d.oldScrollHeight,d.oldScrollTop,d.scrollWidth,d.scrollLeft,d.scrollHeight,d.scrollTop))})),this._register(this.viewLayout.onDidContentSizeChange(d=>{this._eventDispatcher.emitOutgoingEvent(d)})),this._decorations=new H9e(this._editorId,this.model,this._configuration,this._lines,this.coordinatesConverter),this._registerModelEvents(),this._register(this._configuration.onDidChangeFast(d=>{try{const u=this._eventDispatcher.beginEmitViewEvents();this._onConfigurationChanged(u,d)}finally{this._eventDispatcher.endEmitViewEvents()}})),this._register(LD.getInstance().onDidChange(()=>{this._eventDispatcher.emitSingleViewEvent(new _9e)})),this._register(this._themeService.onDidColorThemeChange(d=>{this._invalidateDecorationsColorCache(),this._eventDispatcher.emitSingleViewEvent(new p9e(d))})),this._updateConfigurationViewLineCountNow()}dispose(){super.dispose(),this._decorations.dispose(),this._lines.dispose(),this._viewportStart.dispose(),this._eventDispatcher.dispose()}createLineBreaksComputer(){return this._lines.createLineBreaksComputer()}addViewEventHandler(e){this._eventDispatcher.addViewEventHandler(e)}removeViewEventHandler(e){this._eventDispatcher.removeViewEventHandler(e)}_updateConfigurationViewLineCountNow(){this._configuration.setViewLineCount(this._lines.getViewLineCount())}getModelVisibleRanges(){const e=this.viewLayout.getLinesViewportData(),t=new A(e.startLineNumber,this.getLineMinColumn(e.startLineNumber),e.endLineNumber,this.getLineMaxColumn(e.endLineNumber));return this._toModelVisibleRanges(t)}visibleLinesStabilized(){const e=this.getModelVisibleRanges();this._attachedView.setVisibleLines(e,!0)}_handleVisibleLinesChanged(){const e=this.getModelVisibleRanges();this._attachedView.setVisibleLines(e,!1)}setHasFocus(e){this._hasFocus=e,this._cursor.setHasFocus(e),this._eventDispatcher.emitSingleViewEvent(new h9e(e)),this._eventDispatcher.emitOutgoingEvent(new e$(!e,e))}onCompositionStart(){this._eventDispatcher.emitSingleViewEvent(new l9e)}onCompositionEnd(){this._eventDispatcher.emitSingleViewEvent(new c9e)}_captureStableViewport(){if(this._viewportStart.isValid&&this.viewLayout.getCurrentScrollTop()>0){const e=new ee(this._viewportStart.viewLineNumber,this.getLineMinColumn(this._viewportStart.viewLineNumber)),t=this.coordinatesConverter.convertViewPositionToModelPosition(e);return new FQ(t,this._viewportStart.startLineDelta)}return new FQ(null,0)}_onConfigurationChanged(e,t){const i=this._captureStableViewport(),s=this._configuration.options,o=s.get(50),r=s.get(139),a=s.get(146),l=s.get(138),c=s.get(129);this._lines.setWrappingSettings(o,r,a.wrappingColumn,l,c)&&(e.emitViewEvent(new GE),e.emitViewEvent(new ZE),e.emitViewEvent(new V_(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this._updateConfigurationViewLineCount.schedule()),t.hasChanged(91)&&(this._decorations.reset(),e.emitViewEvent(new V_(null))),t.hasChanged(98)&&(this._decorations.reset(),e.emitViewEvent(new V_(null))),e.emitViewEvent(new d9e(t)),this.viewLayout.onConfigurationChanged(t),i.recoverViewportStart(this.coordinatesConverter,this.viewLayout),Ob.shouldRecreate(t)&&(this.cursorConfig=new Ob(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig))}_registerModelEvents(){this._register(this.model.onDidChangeContentOrInjectedText(e=>{try{const i=this._eventDispatcher.beginEmitViewEvents();let s=!1,o=!1;const r=e instanceof Kv?e.rawContentChangedEvent.changes:e.changes,a=e instanceof Kv?e.rawContentChangedEvent.versionId:null,l=this._lines.createLineBreaksComputer();for(const u of r)switch(u.changeType){case 4:{for(let h=0;h!p.ownerId||p.ownerId===this._editorId)),l.addRequest(f,g,null)}break}case 2:{let h=null;u.injectedText&&(h=u.injectedText.filter(f=>!f.ownerId||f.ownerId===this._editorId)),l.addRequest(u.detail,h,null);break}}const c=l.finalize(),d=new Lg(c);for(const u of r)switch(u.changeType){case 1:{this._lines.onModelFlushed(),i.emitViewEvent(new GE),this._decorations.reset(),this.viewLayout.onFlushed(this.getLineCount()),s=!0;break}case 3:{const h=this._lines.onModelLinesDeleted(a,u.fromLineNumber,u.toLineNumber);h!==null&&(i.emitViewEvent(h),this.viewLayout.onLinesDeleted(h.fromLineNumber,h.toLineNumber)),s=!0;break}case 4:{const h=d.takeCount(u.detail.length),f=this._lines.onModelLinesInserted(a,u.fromLineNumber,u.toLineNumber,h);f!==null&&(i.emitViewEvent(f),this.viewLayout.onLinesInserted(f.fromLineNumber,f.toLineNumber)),s=!0;break}case 2:{const h=d.dequeue(),[f,g,p,_]=this._lines.onModelLineChanged(a,u.lineNumber,h);o=f,g&&i.emitViewEvent(g),p&&(i.emitViewEvent(p),this.viewLayout.onLinesInserted(p.fromLineNumber,p.toLineNumber)),_&&(i.emitViewEvent(_),this.viewLayout.onLinesDeleted(_.fromLineNumber,_.toLineNumber));break}case 5:break}a!==null&&this._lines.acceptVersionId(a),this.viewLayout.onHeightMaybeChanged(),!s&&o&&(i.emitViewEvent(new ZE),i.emitViewEvent(new V_(null)),this._cursor.onLineMappingChanged(i),this._decorations.onLineMappingChanged())}finally{this._eventDispatcher.endEmitViewEvents()}const t=this._viewportStart.isValid;if(this._viewportStart.invalidate(),this._configuration.setModelLineCount(this.model.getLineCount()),this._updateConfigurationViewLineCountNow(),!this._hasFocus&&this.model.getAttachedEditorCount()>=2&&t){const i=this.model._getTrackedRange(this._viewportStart.modelTrackedRange);if(i){const s=this.coordinatesConverter.convertModelPositionToViewPosition(i.getStartPosition()),o=this.viewLayout.getVerticalOffsetForLineNumber(s.lineNumber);this.viewLayout.setScrollPosition({scrollTop:o+this._viewportStart.startLineDelta},1)}}try{const i=this._eventDispatcher.beginEmitViewEvents();e instanceof Kv&&i.emitOutgoingEvent(new D9e(e.contentChangedEvent)),this._cursor.onModelContentChanged(i,e)}finally{this._eventDispatcher.endEmitViewEvents()}this._handleVisibleLinesChanged()})),this._register(this.model.onDidChangeTokens(e=>{const t=[];for(let i=0,s=e.ranges.length;i{this._eventDispatcher.emitSingleViewEvent(new f9e),this.cursorConfig=new Ob(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new k9e(e))})),this._register(this.model.onDidChangeLanguage(e=>{this.cursorConfig=new Ob(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new L9e(e))})),this._register(this.model.onDidChangeOptions(e=>{if(this._lines.setTabSize(this.model.getOptions().tabSize)){try{const t=this._eventDispatcher.beginEmitViewEvents();t.emitViewEvent(new GE),t.emitViewEvent(new ZE),t.emitViewEvent(new V_(null)),this._cursor.onLineMappingChanged(t),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount())}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule()}this.cursorConfig=new Ob(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new I9e(e))})),this._register(this.model.onDidChangeDecorations(e=>{this._decorations.onModelDecorationsChanged(),this._eventDispatcher.emitSingleViewEvent(new V_(e)),this._eventDispatcher.emitOutgoingEvent(new x9e(e))}))}setHiddenAreas(e,t){var i;this.hiddenAreasModel.setHiddenAreas(t,e);const s=this.hiddenAreasModel.getMergedRanges();if(s===this.previousHiddenAreas)return;this.previousHiddenAreas=s;const o=this._captureStableViewport();let r=!1;try{const a=this._eventDispatcher.beginEmitViewEvents();r=this._lines.setHiddenAreas(s),r&&(a.emitViewEvent(new GE),a.emitViewEvent(new ZE),a.emitViewEvent(new V_(null)),this._cursor.onLineMappingChanged(a),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this.viewLayout.onHeightMaybeChanged());const l=(i=o.viewportStartModelPosition)===null||i===void 0?void 0:i.lineNumber;l&&s.some(d=>d.startLineNumber<=l&&l<=d.endLineNumber)||o.recoverViewportStart(this.coordinatesConverter,this.viewLayout)}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule(),r&&this._eventDispatcher.emitOutgoingEvent(new y9e)}getVisibleRangesPlusViewportAboveBelow(){const e=this._configuration.options.get(145),t=this._configuration.options.get(67),i=Math.max(20,Math.round(e.height/t)),s=this.viewLayout.getLinesViewportData(),o=Math.max(1,s.completelyVisibleStartLineNumber-i),r=Math.min(this.getLineCount(),s.completelyVisibleEndLineNumber+i);return this._toModelVisibleRanges(new A(o,this.getLineMinColumn(o),r,this.getLineMaxColumn(r)))}getVisibleRanges(){const e=this.getCompletelyVisibleViewRange();return this._toModelVisibleRanges(e)}getHiddenAreas(){return this._lines.getHiddenAreas()}_toModelVisibleRanges(e){const t=this.coordinatesConverter.convertViewRangeToModelRange(e),i=this._lines.getHiddenAreas();if(i.length===0)return[t];const s=[];let o=0,r=t.startLineNumber,a=t.startColumn;const l=t.endLineNumber,c=t.endColumn;for(let d=0,u=i.length;dl||(r"u")return this._reduceRestoreStateCompatibility(e);const t=this.model.validatePosition(e.firstPosition),i=this.coordinatesConverter.convertModelPositionToViewPosition(t),s=this.viewLayout.getVerticalOffsetForLineNumber(i.lineNumber)-e.firstPositionDeltaTop;return{scrollLeft:e.scrollLeft,scrollTop:s}}_reduceRestoreStateCompatibility(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTopWithoutViewZones}}getTabSize(){return this.model.getOptions().tabSize}getLineCount(){return this._lines.getViewLineCount()}setViewport(e,t,i){this._viewportStart.update(this,e)}getActiveIndentGuide(e,t,i){return this._lines.getActiveIndentGuide(e,t,i)}getLinesIndentGuides(e,t){return this._lines.getViewLinesIndentGuides(e,t)}getBracketGuidesInRangeByLine(e,t,i,s){return this._lines.getViewLinesBracketGuides(e,t,i,s)}getLineContent(e){return this._lines.getViewLineContent(e)}getLineLength(e){return this._lines.getViewLineLength(e)}getLineMinColumn(e){return this._lines.getViewLineMinColumn(e)}getLineMaxColumn(e){return this._lines.getViewLineMaxColumn(e)}getLineFirstNonWhitespaceColumn(e){const t=fr(this.getLineContent(e));return t===-1?0:t+1}getLineLastNonWhitespaceColumn(e){const t=Kd(this.getLineContent(e));return t===-1?0:t+2}getMinimapDecorationsInRange(e){return this._decorations.getMinimapDecorationsInRange(e)}getDecorationsInViewport(e){return this._decorations.getDecorationsViewportData(e).decorations}getInjectedTextAt(e){return this._lines.getInjectedTextAt(e)}getViewportViewLineRenderingData(e,t){const s=this._decorations.getDecorationsViewportData(e).inlineDecorations[t-e.startLineNumber];return this._getViewLineRenderingData(t,s)}getViewLineRenderingData(e){const t=this._decorations.getInlineDecorationsOnLine(e);return this._getViewLineRenderingData(e,t)}_getViewLineRenderingData(e,t){const i=this.model.mightContainRTL(),s=this.model.mightContainNonBasicASCII(),o=this.getTabSize(),r=this._lines.getViewLineData(e);return r.inlineDecorations&&(t=[...t,...r.inlineDecorations.map(a=>a.toInlineDecoration(e))]),new xl(r.minColumn,r.maxColumn,r.content,r.continuesWithWrappedLine,i,s,r.tokens,t,o,r.startVisibleColumn)}getViewLineData(e){return this._lines.getViewLineData(e)}getMinimapLinesRenderingData(e,t,i){const s=this._lines.getViewLinesData(e,t,i);return new V4e(this.getTabSize(),s)}getAllOverviewRulerDecorations(e){const t=this.model.getOverviewRulerDecorations(this._editorId,k2(this._configuration.options)),i=new Y9e;for(const s of t){const o=s.options,r=o.overviewRuler;if(!r)continue;const a=r.position;if(a===0)continue;const l=r.getColor(e.value),c=this.coordinatesConverter.getViewLineNumberOfModelPosition(s.range.startLineNumber,s.range.startColumn),d=this.coordinatesConverter.getViewLineNumberOfModelPosition(s.range.endLineNumber,s.range.endColumn);i.accept(l,o.zIndex,c,d,a)}return i.asArray}_invalidateDecorationsColorCache(){const e=this.model.getOverviewRulerDecorations();for(const t of e){const i=t.options.overviewRuler;i==null||i.invalidateCachedColor();const s=t.options.minimap;s==null||s.invalidateCachedColor()}}getValueInRange(e,t){const i=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueInRange(i,t)}getValueLengthInRange(e,t){const i=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueLengthInRange(i,t)}modifyPosition(e,t){const i=this.coordinatesConverter.convertViewPositionToModelPosition(e),s=this.model.modifyPosition(i,t);return this.coordinatesConverter.convertModelPositionToViewPosition(s)}deduceModelPositionRelativeToViewPosition(e,t,i){const s=this.coordinatesConverter.convertViewPositionToModelPosition(e);this.model.getEOL().length===2&&(t<0?t-=i:t+=i);const r=this.model.getOffsetAt(s)+t;return this.model.getPositionAt(r)}getPlainTextToCopy(e,t,i){const s=i?`\r `:this.model.getEOL();e=e.slice(0),e.sort(A.compareRangesUsingStarts);let o=!1,r=!1;for(const l of e)l.isEmpty()?o=!0:r=!0;if(!r){if(!t)return"";const l=e.map(d=>d.startLineNumber);let c="";for(let d=0;d0&&l[d-1]===l[d]||(c+=this.model.getLineContent(l[d])+s);return c}if(o&&t){const l=[];let c=0;for(const d of e){const u=d.startLineNumber;d.isEmpty()?u!==c&&l.push(this.model.getLineContent(u)):l.push(this.model.getValueInRange(d,i?2:0)),c=u}return l.length===1?l[0]:l}const a=[];for(const l of e)l.isEmpty()||a.push(this.model.getValueInRange(l,i?2:0));return a.length===1?a[0]:a}getRichTextToCopy(e,t){const i=this.model.getLanguageId();if(i===bl||e.length!==1)return null;let s=e[0];if(s.isEmpty()){if(!t)return null;const d=s.startLineNumber;s=new A(d,this.model.getLineMinColumn(d),d,this.model.getLineMaxColumn(d))}const o=this._configuration.options.get(50),r=this._getColorMap(),l=/[:;\\\/<>]/.test(o.fontFamily)||o.fontFamily===ra.fontFamily;let c;return l?c=ra.fontFamily:(c=o.fontFamily,c=c.replace(/"/g,"'"),/[,']/.test(c)||/[+ ]/.test(c)&&(c=`'${c}'`),c=`${c}, ${ra.fontFamily}`),{mode:i,html:`
`+this._getHTMLToCopy(s,r)+"
"}}_getHTMLToCopy(e,t){const i=e.startLineNumber,s=e.startColumn,o=e.endLineNumber,r=e.endColumn,a=this.getTabSize();let l="";for(let c=i;c<=o;c++){const d=this.model.tokenization.getLineTokens(c),u=d.getLineContent(),h=c===i?s-1:0,f=c===o?r-1:u.length;u===""?l+="
":l+=M9e(u,d.inflate(),t,h,f,a,Mo)}return l}_getColorMap(){const e=Zn.getColorMap(),t=["#000000"];if(e)for(let i=1,s=e.length;ithis._cursor.setStates(s,e,t,i))}getCursorColumnSelectData(){return this._cursor.getCursorColumnSelectData()}getCursorAutoClosedCharacters(){return this._cursor.getAutoClosedCharacters()}setCursorColumnSelectData(e){this._cursor.setCursorColumnSelectData(e)}getPrevEditOperationType(){return this._cursor.getPrevEditOperationType()}setPrevEditOperationType(e){this._cursor.setPrevEditOperationType(e)}getSelection(){return this._cursor.getSelection()}getSelections(){return this._cursor.getSelections()}getPosition(){return this._cursor.getPrimaryCursorState().modelState.position}setSelections(e,t,i=0){this._withViewEventsCollector(s=>this._cursor.setSelections(s,e,t,i))}saveCursorState(){return this._cursor.saveState()}restoreCursorState(e){this._withViewEventsCollector(t=>this._cursor.restoreState(t,e))}_executeCursorEdit(e){if(this._cursor.context.cursorConfig.readOnly){this._eventDispatcher.emitOutgoingEvent(new S9e);return}this._withViewEventsCollector(e)}executeEdits(e,t,i){this._executeCursorEdit(s=>this._cursor.executeEdits(s,e,t,i))}startComposition(){this._executeCursorEdit(e=>this._cursor.startComposition(e))}endComposition(e){this._executeCursorEdit(t=>this._cursor.endComposition(t,e))}type(e,t){this._executeCursorEdit(i=>this._cursor.type(i,e,t))}compositionType(e,t,i,s,o){this._executeCursorEdit(r=>this._cursor.compositionType(r,e,t,i,s,o))}paste(e,t,i,s){this._executeCursorEdit(o=>this._cursor.paste(o,e,t,i,s))}cut(e){this._executeCursorEdit(t=>this._cursor.cut(t,e))}executeCommand(e,t){this._executeCursorEdit(i=>this._cursor.executeCommand(i,e,t))}executeCommands(e,t){this._executeCursorEdit(i=>this._cursor.executeCommands(i,e,t))}revealAllCursors(e,t,i=!1){this._withViewEventsCollector(s=>this._cursor.revealAll(s,e,i,0,t,0))}revealPrimaryCursor(e,t,i=!1){this._withViewEventsCollector(s=>this._cursor.revealPrimary(s,e,i,0,t,0))}revealTopMostCursor(e){const t=this._cursor.getTopMostViewPosition(),i=new A(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(s=>s.emitViewEvent(new yx(e,!1,i,null,0,!0,0)))}revealBottomMostCursor(e){const t=this._cursor.getBottomMostViewPosition(),i=new A(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(s=>s.emitViewEvent(new yx(e,!1,i,null,0,!0,0)))}revealRange(e,t,i,s,o){this._withViewEventsCollector(r=>r.emitViewEvent(new yx(e,!1,i,null,s,t,o)))}changeWhitespace(e){this.viewLayout.changeWhitespace(e)&&(this._eventDispatcher.emitSingleViewEvent(new v9e),this._eventDispatcher.emitOutgoingEvent(new w9e))}_withViewEventsCollector(e){try{const t=this._eventDispatcher.beginEmitViewEvents();return e(t)}finally{this._eventDispatcher.endEmitViewEvents()}}batchEvents(e){this._withViewEventsCollector(()=>{e()})}normalizePosition(e,t){return this._lines.normalizePosition(e,t)}getLineIndentColumn(e){return this._lines.getLineIndentColumn(e)}};class o${static create(e){const t=e._setTrackedRange(null,new A(1,1,1,1),1);return new o$(e,1,!1,t,0)}get viewLineNumber(){return this._viewLineNumber}get isValid(){return this._isValid}get modelTrackedRange(){return this._modelTrackedRange}get startLineDelta(){return this._startLineDelta}constructor(e,t,i,s,o){this._model=e,this._viewLineNumber=t,this._isValid=i,this._modelTrackedRange=s,this._startLineDelta=o}dispose(){this._model._setTrackedRange(this._modelTrackedRange,null,1)}update(e,t){const i=e.coordinatesConverter.convertViewPositionToModelPosition(new ee(t,e.getLineMinColumn(t))),s=e.model._setTrackedRange(this._modelTrackedRange,new A(i.lineNumber,i.column,i.lineNumber,i.column),1),o=e.viewLayout.getVerticalOffsetForLineNumber(t),r=e.viewLayout.getCurrentScrollTop();this._viewLineNumber=t,this._isValid=!0,this._modelTrackedRange=s,this._startLineDelta=r-o}invalidate(){this._isValid=!1}}class Y9e{constructor(){this._asMap=Object.create(null),this.asArray=[]}accept(e,t,i,s,o){const r=this._asMap[e];if(r){const a=r.data,l=a[a.length-3],c=a[a.length-1];if(l===o&&c+1>=i){s>c&&(a[a.length-1]=s);return}a.push(o,i,s)}else{const a=new CL(e,t,[o,i,s]);this._asMap[e]=a,this.asArray.push(a)}}}class X9e{constructor(){this.hiddenAreas=new Map,this.shouldRecompute=!1,this.ranges=[]}setHiddenAreas(e,t){const i=this.hiddenAreas.get(e);i&&OQ(i,t)||(this.hiddenAreas.set(e,t),this.shouldRecompute=!0)}getMergedRanges(){if(!this.shouldRecompute)return this.ranges;this.shouldRecompute=!1;const e=Array.from(this.hiddenAreas.values()).reduce((t,i)=>Q9e(t,i),[]);return OQ(this.ranges,e)?this.ranges:(this.ranges=e,this.ranges)}}function Q9e(n,e){const t=[];let i=0,s=0;for(;i=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},hf=function(n,e){return function(t,i){e(t,i,n)}},ov;let jC=ov=class extends ne{get isSimpleWidget(){return this._configuration.isSimpleWidget}get contextMenuId(){return this._configuration.contextMenuId}constructor(e,t,i,s,o,r,a,l,c,d,u,h){var f,g;super(),this.languageConfigurationService=u,this._deliveryQueue=TAe(),this._contributions=this._register(new A7e),this._onDidDispose=this._register(new X),this.onDidDispose=this._onDidDispose.event,this._onDidChangeModelContent=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelContent=this._onDidChangeModelContent.event,this._onDidChangeModelLanguage=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguage=this._onDidChangeModelLanguage.event,this._onDidChangeModelLanguageConfiguration=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguageConfiguration=this._onDidChangeModelLanguageConfiguration.event,this._onDidChangeModelOptions=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelOptions=this._onDidChangeModelOptions.event,this._onDidChangeModelDecorations=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelDecorations=this._onDidChangeModelDecorations.event,this._onDidChangeModelTokens=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelTokens=this._onDidChangeModelTokens.event,this._onDidChangeConfiguration=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._onWillChangeModel=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onWillChangeModel=this._onWillChangeModel.event,this._onDidChangeModel=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeModel=this._onDidChangeModel.event,this._onDidChangeCursorPosition=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorPosition=this._onDidChangeCursorPosition.event,this._onDidChangeCursorSelection=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorSelection=this._onDidChangeCursorSelection.event,this._onDidAttemptReadOnlyEdit=this._register(new nr(this._contributions,this._deliveryQueue)),this.onDidAttemptReadOnlyEdit=this._onDidAttemptReadOnlyEdit.event,this._onDidLayoutChange=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidLayoutChange=this._onDidLayoutChange.event,this._editorTextFocus=this._register(new BQ({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorText=this._editorTextFocus.onDidChangeToTrue,this.onDidBlurEditorText=this._editorTextFocus.onDidChangeToFalse,this._editorWidgetFocus=this._register(new BQ({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorWidget=this._editorWidgetFocus.onDidChangeToTrue,this.onDidBlurEditorWidget=this._editorWidgetFocus.onDidChangeToFalse,this._onWillType=this._register(new nr(this._contributions,this._deliveryQueue)),this.onWillType=this._onWillType.event,this._onDidType=this._register(new nr(this._contributions,this._deliveryQueue)),this.onDidType=this._onDidType.event,this._onDidCompositionStart=this._register(new nr(this._contributions,this._deliveryQueue)),this.onDidCompositionStart=this._onDidCompositionStart.event,this._onDidCompositionEnd=this._register(new nr(this._contributions,this._deliveryQueue)),this.onDidCompositionEnd=this._onDidCompositionEnd.event,this._onDidPaste=this._register(new nr(this._contributions,this._deliveryQueue)),this.onDidPaste=this._onDidPaste.event,this._onMouseUp=this._register(new nr(this._contributions,this._deliveryQueue)),this.onMouseUp=this._onMouseUp.event,this._onMouseDown=this._register(new nr(this._contributions,this._deliveryQueue)),this.onMouseDown=this._onMouseDown.event,this._onMouseDrag=this._register(new nr(this._contributions,this._deliveryQueue)),this.onMouseDrag=this._onMouseDrag.event,this._onMouseDrop=this._register(new nr(this._contributions,this._deliveryQueue)),this.onMouseDrop=this._onMouseDrop.event,this._onMouseDropCanceled=this._register(new nr(this._contributions,this._deliveryQueue)),this.onMouseDropCanceled=this._onMouseDropCanceled.event,this._onDropIntoEditor=this._register(new nr(this._contributions,this._deliveryQueue)),this.onDropIntoEditor=this._onDropIntoEditor.event,this._onContextMenu=this._register(new nr(this._contributions,this._deliveryQueue)),this.onContextMenu=this._onContextMenu.event,this._onMouseMove=this._register(new nr(this._contributions,this._deliveryQueue)),this.onMouseMove=this._onMouseMove.event,this._onMouseLeave=this._register(new nr(this._contributions,this._deliveryQueue)),this.onMouseLeave=this._onMouseLeave.event,this._onMouseWheel=this._register(new nr(this._contributions,this._deliveryQueue)),this.onMouseWheel=this._onMouseWheel.event,this._onKeyUp=this._register(new nr(this._contributions,this._deliveryQueue)),this.onKeyUp=this._onKeyUp.event,this._onKeyDown=this._register(new nr(this._contributions,this._deliveryQueue)),this.onKeyDown=this._onKeyDown.event,this._onDidContentSizeChange=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._onDidScrollChange=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidScrollChange=this._onDidScrollChange.event,this._onDidChangeViewZones=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeViewZones=this._onDidChangeViewZones.event,this._onDidChangeHiddenAreas=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeHiddenAreas=this._onDidChangeHiddenAreas.event,this._updateCounter=0,this._onBeginUpdate=this._register(new X),this.onBeginUpdate=this._onBeginUpdate.event,this._onEndUpdate=this._register(new X),this.onEndUpdate=this._onEndUpdate.event,this._actions=new Map,this._bannerDomNode=null,this._dropIntoEditorDecorations=this.createDecorationsCollection(),o.willCreateCodeEditor();const p={...t};this._domElement=e,this._overflowWidgetsDomNode=p.overflowWidgetsDomNode,delete p.overflowWidgetsDomNode,this._id=++t6e,this._decorationTypeKeysToIds={},this._decorationTypeSubtypes={},this._telemetryData=i.telemetryData,this._configuration=this._register(this._createConfiguration(i.isSimpleWidget||!1,(f=i.contextMenuId)!==null&&f!==void 0?f:i.isSimpleWidget?R.SimpleEditorContext:R.EditorContext,p,d)),this._register(this._configuration.onDidChange(w=>{this._onDidChangeConfiguration.fire(w);const y=this._configuration.options;if(w.hasChanged(145)){const S=y.get(145);this._onDidLayoutChange.fire(S)}})),this._contextKeyService=this._register(a.createScoped(this._domElement)),this._notificationService=c,this._codeEditorService=o,this._commandService=r,this._themeService=l,this._register(new n6e(this,this._contextKeyService)),this._register(new s6e(this,this._contextKeyService,h)),this._instantiationService=this._register(s.createChild(new kD([Ct,this._contextKeyService]))),this._modelData=null,this._focusTracker=new o6e(e,this._overflowWidgetsDomNode),this._register(this._focusTracker.onChange(()=>{this._editorWidgetFocus.setValue(this._focusTracker.hasFocus())})),this._contentWidgets={},this._overlayWidgets={},this._glyphMarginWidgets={};let _;Array.isArray(i.contributions)?_=i.contributions:_=G1.getEditorContributions(),this._contributions.initialize(this,_,this._instantiationService);for(const w of G1.getEditorActions()){if(this._actions.has(w.id)){Mt(new Error(`Cannot have two actions with the same id ${w.id}`));continue}const y=new Dce(w.id,w.label,w.alias,w.metadata,(g=w.precondition)!==null&&g!==void 0?g:void 0,S=>this._instantiationService.invokeFunction(x=>Promise.resolve(w.runEditorCommand(x,this,S))),this._contextKeyService);this._actions.set(y.id,y)}const b=()=>!this._configuration.options.get(91)&&this._configuration.options.get(36).enabled;this._register(new WMe(this._domElement,{onDragOver:w=>{if(!b())return;const y=this.getTargetAtClientPoint(w.clientX,w.clientY);y!=null&&y.position&&this.showDropIndicatorAt(y.position)},onDrop:async w=>{if(!b()||(this.removeDropIndicator(),!w.dataTransfer))return;const y=this.getTargetAtClientPoint(w.clientX,w.clientY);y!=null&&y.position&&this._onDropIntoEditor.fire({position:y.position,event:w})},onDragLeave:()=>{this.removeDropIndicator()},onDragEnd:()=>{this.removeDropIndicator()}})),this._codeEditorService.addCodeEditor(this)}writeScreenReaderContent(e){var t;(t=this._modelData)===null||t===void 0||t.view.writeScreenReaderContent(e)}_createConfiguration(e,t,i,s){return new kB(e,t,i,this._domElement,s)}getId(){return this.getEditorType()+":"+this._id}getEditorType(){return mD.ICodeEditor}dispose(){this._codeEditorService.removeCodeEditor(this),this._focusTracker.dispose(),this._actions.clear(),this._contentWidgets={},this._overlayWidgets={},this._removeDecorationTypes(),this._postDetachModelCleanup(this._detachModel()),this._onDidDispose.fire(),super.dispose()}invokeWithinContext(e){return this._instantiationService.invokeFunction(e)}updateOptions(e){this._configuration.updateOptions(e||{})}getOptions(){return this._configuration.options}getOption(e){return this._configuration.options.get(e)}getRawOptions(){return this._configuration.getRawOptions()}getOverflowWidgetsDomNode(){return this._overflowWidgetsDomNode}getConfiguredWordAtPosition(e){return this._modelData?ki.getWordAtPosition(this._modelData.model,this._configuration.options.get(131),this._configuration.options.get(130),e):null}getValue(e=null){if(!this._modelData)return"";const t=!!(e&&e.preserveBOM);let i=0;return e&&e.lineEnding&&e.lineEnding===` `?i=1:e&&e.lineEnding&&e.lineEnding===`\r `&&(i=2),this._modelData.model.getValue(i,t)}setValue(e){try{if(this._beginUpdate(),!this._modelData)return;this._modelData.model.setValue(e)}finally{this._endUpdate()}}getModel(){return this._modelData?this._modelData.model:null}setModel(e=null){var t;try{this._beginUpdate();const i=e;if(this._modelData===null&&i===null||this._modelData&&this._modelData.model===i)return;const s={oldModelUrl:((t=this._modelData)===null||t===void 0?void 0:t.model.uri)||null,newModelUrl:(i==null?void 0:i.uri)||null};this._onWillChangeModel.fire(s);const o=this.hasTextFocus(),r=this._detachModel();this._attachModel(i),o&&this.hasModel()&&this.focus(),this._removeDecorationTypes(),this._onDidChangeModel.fire(s),this._postDetachModelCleanup(r),this._contributionsDisposable=this._contributions.onAfterModelAttached()}finally{this._endUpdate()}}_removeDecorationTypes(){if(this._decorationTypeKeysToIds={},this._decorationTypeSubtypes){for(const e in this._decorationTypeSubtypes){const t=this._decorationTypeSubtypes[e];for(const i in t)this._removeDecorationType(e+"-"+i)}this._decorationTypeSubtypes={}}}getVisibleRanges(){return this._modelData?this._modelData.viewModel.getVisibleRanges():[]}getVisibleRangesPlusViewportAboveBelow(){return this._modelData?this._modelData.viewModel.getVisibleRangesPlusViewportAboveBelow():[]}getWhitespaces(){return this._modelData?this._modelData.viewModel.viewLayout.getWhitespaces():[]}static _getVerticalOffsetAfterPosition(e,t,i,s){const o=e.model.validatePosition({lineNumber:t,column:i}),r=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(o);return e.viewModel.viewLayout.getVerticalOffsetAfterLineNumber(r.lineNumber,s)}getTopForLineNumber(e,t=!1){return this._modelData?ov._getVerticalOffsetForPosition(this._modelData,e,1,t):-1}getTopForPosition(e,t){return this._modelData?ov._getVerticalOffsetForPosition(this._modelData,e,t,!1):-1}static _getVerticalOffsetForPosition(e,t,i,s=!1){const o=e.model.validatePosition({lineNumber:t,column:i}),r=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(o);return e.viewModel.viewLayout.getVerticalOffsetForLineNumber(r.lineNumber,s)}getBottomForLineNumber(e,t=!1){return this._modelData?ov._getVerticalOffsetAfterPosition(this._modelData,e,1,t):-1}setHiddenAreas(e,t){var i;(i=this._modelData)===null||i===void 0||i.viewModel.setHiddenAreas(e.map(s=>A.lift(s)),t)}getVisibleColumnFromPosition(e){if(!this._modelData)return e.column;const t=this._modelData.model.validatePosition(e),i=this._modelData.model.getOptions().tabSize;return zs.visibleColumnFromColumn(this._modelData.model.getLineContent(t.lineNumber),t.column,i)+1}getPosition(){return this._modelData?this._modelData.viewModel.getPosition():null}setPosition(e,t="api"){if(this._modelData){if(!ee.isIPosition(e))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections(t,[{selectionStartLineNumber:e.lineNumber,selectionStartColumn:e.column,positionLineNumber:e.lineNumber,positionColumn:e.column}])}}_sendRevealRange(e,t,i,s){if(!this._modelData)return;if(!A.isIRange(e))throw new Error("Invalid arguments");const o=this._modelData.model.validateRange(e),r=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(o);this._modelData.viewModel.revealRange("api",i,r,t,s)}revealLine(e,t=0){this._revealLine(e,0,t)}revealLineInCenter(e,t=0){this._revealLine(e,1,t)}revealLineInCenterIfOutsideViewport(e,t=0){this._revealLine(e,2,t)}revealLineNearTop(e,t=0){this._revealLine(e,5,t)}_revealLine(e,t,i){if(typeof e!="number")throw new Error("Invalid arguments");this._sendRevealRange(new A(e,1,e,1),t,!1,i)}revealPosition(e,t=0){this._revealPosition(e,0,!0,t)}revealPositionInCenter(e,t=0){this._revealPosition(e,1,!0,t)}revealPositionInCenterIfOutsideViewport(e,t=0){this._revealPosition(e,2,!0,t)}revealPositionNearTop(e,t=0){this._revealPosition(e,5,!0,t)}_revealPosition(e,t,i,s){if(!ee.isIPosition(e))throw new Error("Invalid arguments");this._sendRevealRange(new A(e.lineNumber,e.column,e.lineNumber,e.column),t,i,s)}getSelection(){return this._modelData?this._modelData.viewModel.getSelection():null}getSelections(){return this._modelData?this._modelData.viewModel.getSelections():null}setSelection(e,t="api"){const i=it.isISelection(e),s=A.isIRange(e);if(!i&&!s)throw new Error("Invalid arguments");if(i)this._setSelectionImpl(e,t);else if(s){const o={selectionStartLineNumber:e.startLineNumber,selectionStartColumn:e.startColumn,positionLineNumber:e.endLineNumber,positionColumn:e.endColumn};this._setSelectionImpl(o,t)}}_setSelectionImpl(e,t){if(!this._modelData)return;const i=new it(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn);this._modelData.viewModel.setSelections(t,[i])}revealLines(e,t,i=0){this._revealLines(e,t,0,i)}revealLinesInCenter(e,t,i=0){this._revealLines(e,t,1,i)}revealLinesInCenterIfOutsideViewport(e,t,i=0){this._revealLines(e,t,2,i)}revealLinesNearTop(e,t,i=0){this._revealLines(e,t,5,i)}_revealLines(e,t,i,s){if(typeof e!="number"||typeof t!="number")throw new Error("Invalid arguments");this._sendRevealRange(new A(e,1,t,1),i,!1,s)}revealRange(e,t=0,i=!1,s=!0){this._revealRange(e,i?1:0,s,t)}revealRangeInCenter(e,t=0){this._revealRange(e,1,!0,t)}revealRangeInCenterIfOutsideViewport(e,t=0){this._revealRange(e,2,!0,t)}revealRangeNearTop(e,t=0){this._revealRange(e,5,!0,t)}revealRangeNearTopIfOutsideViewport(e,t=0){this._revealRange(e,6,!0,t)}revealRangeAtTop(e,t=0){this._revealRange(e,3,!0,t)}_revealRange(e,t,i,s){if(!A.isIRange(e))throw new Error("Invalid arguments");this._sendRevealRange(A.lift(e),t,i,s)}setSelections(e,t="api",i=0){if(this._modelData){if(!e||e.length===0)throw new Error("Invalid arguments");for(let s=0,o=e.length;s0&&this._modelData.viewModel.restoreCursorState(i):this._modelData.viewModel.restoreCursorState([i]),this._contributions.restoreViewState(t.contributionsState||{});const s=this._modelData.viewModel.reduceRestoreState(t.viewState);this._modelData.view.restoreState(s)}}handleInitialized(){var e;(e=this._getViewModel())===null||e===void 0||e.visibleLinesStabilized()}getContribution(e){return this._contributions.get(e)}getActions(){return Array.from(this._actions.values())}getSupportedActions(){let e=this.getActions();return e=e.filter(t=>t.isSupported()),e}getAction(e){return this._actions.get(e)||null}trigger(e,t,i){i=i||{};try{switch(this._beginUpdate(),t){case"compositionStart":this._startComposition();return;case"compositionEnd":this._endComposition(e);return;case"type":{const o=i;this._type(e,o.text||"");return}case"replacePreviousChar":{const o=i;this._compositionType(e,o.text||"",o.replaceCharCnt||0,0,0);return}case"compositionType":{const o=i;this._compositionType(e,o.text||"",o.replacePrevCharCnt||0,o.replaceNextCharCnt||0,o.positionDelta||0);return}case"paste":{const o=i;this._paste(e,o.text||"",o.pasteOnNewLine||!1,o.multicursorText||null,o.mode||null,o.clipboardEvent);return}case"cut":this._cut(e);return}const s=this.getAction(t);if(s){Promise.resolve(s.run(i)).then(void 0,Mt);return}if(!this._modelData||this._triggerEditorCommand(e,t,i))return;this._triggerCommand(t,i)}finally{this._endUpdate()}}_triggerCommand(e,t){this._commandService.executeCommand(e,t)}_startComposition(){this._modelData&&(this._modelData.viewModel.startComposition(),this._onDidCompositionStart.fire())}_endComposition(e){this._modelData&&(this._modelData.viewModel.endComposition(e),this._onDidCompositionEnd.fire())}_type(e,t){!this._modelData||t.length===0||(e==="keyboard"&&this._onWillType.fire(t),this._modelData.viewModel.type(t,e),e==="keyboard"&&this._onDidType.fire(t))}_compositionType(e,t,i,s,o){this._modelData&&this._modelData.viewModel.compositionType(t,i,s,o,e)}_paste(e,t,i,s,o,r){if(!this._modelData)return;const a=this._modelData.viewModel,l=a.getSelection().getStartPosition();a.paste(t,i,s,e);const c=a.getSelection().getStartPosition();e==="keyboard"&&this._onDidPaste.fire({clipboardEvent:r,range:new A(l.lineNumber,l.column,c.lineNumber,c.column),languageId:o})}_cut(e){this._modelData&&this._modelData.viewModel.cut(e)}_triggerEditorCommand(e,t,i){const s=G1.getEditorCommand(t);return s?(i=i||{},i.source=e,this._instantiationService.invokeFunction(o=>{Promise.resolve(s.runEditorCommand(o,this,i)).then(void 0,Mt)}),!0):!1}_getViewModel(){return this._modelData?this._modelData.viewModel:null}pushUndoStop(){return!this._modelData||this._configuration.options.get(91)?!1:(this._modelData.model.pushStackElement(),!0)}popUndoStop(){return!this._modelData||this._configuration.options.get(91)?!1:(this._modelData.model.popStackElement(),!0)}executeEdits(e,t,i){if(!this._modelData||this._configuration.options.get(91))return!1;let s;return i?Array.isArray(i)?s=()=>i:s=i:s=()=>null,this._modelData.viewModel.executeEdits(e,t,s),!0}executeCommand(e,t){this._modelData&&this._modelData.viewModel.executeCommand(t,e)}executeCommands(e,t){this._modelData&&this._modelData.viewModel.executeCommands(t,e)}createDecorationsCollection(e){return new r6e(this,e)}changeDecorations(e){return this._modelData?this._modelData.model.changeDecorations(e,this._id):null}getLineDecorations(e){return this._modelData?this._modelData.model.getLineDecorations(e,this._id,k2(this._configuration.options)):null}getDecorationsInRange(e){return this._modelData?this._modelData.model.getDecorationsInRange(e,this._id,k2(this._configuration.options)):null}deltaDecorations(e,t){return this._modelData?e.length===0&&t.length===0?e:this._modelData.model.deltaDecorations(e,t,this._id):[]}removeDecorations(e){!this._modelData||e.length===0||this._modelData.model.changeDecorations(t=>{t.deltaDecorations(e,[])})}removeDecorationsByType(e){const t=this._decorationTypeKeysToIds[e];t&&this.changeDecorations(i=>i.deltaDecorations(t,[])),this._decorationTypeKeysToIds.hasOwnProperty(e)&&delete this._decorationTypeKeysToIds[e],this._decorationTypeSubtypes.hasOwnProperty(e)&&delete this._decorationTypeSubtypes[e]}getLayoutInfo(){return this._configuration.options.get(145)}createOverviewRuler(e){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.createOverviewRuler(e)}getContainerDomNode(){return this._domElement}getDomNode(){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.domNode.domNode}delegateVerticalScrollbarPointerDown(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateScrollFromMouseWheelEvent(e)}layout(e,t=!1){this._configuration.observeContainer(e),t||this.render()}focus(){!this._modelData||!this._modelData.hasRealView||this._modelData.view.focus()}hasTextFocus(){return!this._modelData||!this._modelData.hasRealView?!1:this._modelData.view.isFocused()}hasWidgetFocus(){return this._focusTracker&&this._focusTracker.hasFocus()}addContentWidget(e){const t={widget:e,position:e.getPosition()};this._contentWidgets.hasOwnProperty(e.getId())&&console.warn("Overwriting a content widget with the same id:"+e.getId()),this._contentWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addContentWidget(t)}layoutContentWidget(e){const t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){const i=this._contentWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget(i)}}removeContentWidget(e){const t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){const i=this._contentWidgets[t];delete this._contentWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget(i)}}addOverlayWidget(e){const t={widget:e,position:e.getPosition()};this._overlayWidgets.hasOwnProperty(e.getId())&&console.warn("Overwriting an overlay widget with the same id."),this._overlayWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addOverlayWidget(t)}layoutOverlayWidget(e){const t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){const i=this._overlayWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget(i)}}removeOverlayWidget(e){const t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){const i=this._overlayWidgets[t];delete this._overlayWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget(i)}}addGlyphMarginWidget(e){const t={widget:e,position:e.getPosition()};this._glyphMarginWidgets.hasOwnProperty(e.getId())&&console.warn("Overwriting a glyph margin widget with the same id."),this._glyphMarginWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addGlyphMarginWidget(t)}layoutGlyphMarginWidget(e){const t=e.getId();if(this._glyphMarginWidgets.hasOwnProperty(t)){const i=this._glyphMarginWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutGlyphMarginWidget(i)}}removeGlyphMarginWidget(e){const t=e.getId();if(this._glyphMarginWidgets.hasOwnProperty(t)){const i=this._glyphMarginWidgets[t];delete this._glyphMarginWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeGlyphMarginWidget(i)}}changeViewZones(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.change(e)}getTargetAtClientPoint(e,t){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.getTargetAtClientPoint(e,t)}getScrolledVisiblePosition(e){if(!this._modelData||!this._modelData.hasRealView)return null;const t=this._modelData.model.validatePosition(e),i=this._configuration.options,s=i.get(145),o=ov._getVerticalOffsetForPosition(this._modelData,t.lineNumber,t.column)-this.getScrollTop(),r=this._modelData.view.getOffsetForColumn(t.lineNumber,t.column)+s.glyphMarginWidth+s.lineNumbersWidth+s.decorationsWidth-this.getScrollLeft();return{top:o,left:r,height:i.get(67)}}getOffsetForColumn(e,t){return!this._modelData||!this._modelData.hasRealView?-1:this._modelData.view.getOffsetForColumn(e,t)}render(e=!1){!this._modelData||!this._modelData.hasRealView||this._modelData.viewModel.batchEvents(()=>{this._modelData.view.render(!0,e)})}setAriaOptions(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.setAriaOptions(e)}applyFontInfo(e){So(e,this._configuration.options.get(50))}setBanner(e,t){this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._domElement.removeChild(this._bannerDomNode),this._bannerDomNode=e,this._configuration.setReservedHeight(e?t:0),this._bannerDomNode&&this._domElement.prepend(this._bannerDomNode)}_attachModel(e){if(!e){this._modelData=null;return}const t=[];this._domElement.setAttribute("data-mode-id",e.getLanguageId()),this._configuration.setIsDominatedByLongLines(e.isDominatedByLongLines()),this._configuration.setModelLineCount(e.getLineCount());const i=e.onBeforeAttached(),s=new Z9e(this._id,this._configuration,e,Vz.create(gt(this._domElement)),Qz.create(this._configuration.options),a=>Oa(gt(this._domElement),a),this.languageConfigurationService,this._themeService,i);t.push(e.onWillDispose(()=>this.setModel(null))),t.push(s.onEvent(a=>{switch(a.kind){case 0:this._onDidContentSizeChange.fire(a);break;case 1:this._editorTextFocus.setValue(a.hasFocus);break;case 2:this._onDidScrollChange.fire(a);break;case 3:this._onDidChangeViewZones.fire();break;case 4:this._onDidChangeHiddenAreas.fire();break;case 5:this._onDidAttemptReadOnlyEdit.fire();break;case 6:{if(a.reachedMaxCursorCount){const u=this.getOption(80),h=v("cursors.maximum","The number of cursors has been limited to {0}. Consider using [find and replace](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) for larger changes or increase the editor multi cursor limit setting.",u);this._notificationService.prompt($M.Warning,h,[{label:"Find and Replace",run:()=>{this._commandService.executeCommand("editor.action.startFindReplaceAction")}},{label:v("goToSetting","Increase Multi Cursor Limit"),run:()=>{this._commandService.executeCommand("workbench.action.openSettings2",{query:"editor.multiCursorLimit"})}}])}const l=[];for(let u=0,h=a.selections.length;u{this._paste("keyboard",o,r,a,l)},type:o=>{this._type("keyboard",o)},compositionType:(o,r,a,l)=>{this._compositionType("keyboard",o,r,a,l)},startComposition:()=>{this._startComposition()},endComposition:()=>{this._endComposition("keyboard")},cut:()=>{this._cut("keyboard")}}:t={paste:(o,r,a,l)=>{const c={text:o,pasteOnNewLine:r,multicursorText:a,mode:l};this._commandService.executeCommand("paste",c)},type:o=>{const r={text:o};this._commandService.executeCommand("type",r)},compositionType:(o,r,a,l)=>{if(a||l){const c={text:o,replacePrevCharCnt:r,replaceNextCharCnt:a,positionDelta:l};this._commandService.executeCommand("compositionType",c)}else{const c={text:o,replaceCharCnt:r};this._commandService.executeCommand("replacePreviousChar",c)}},startComposition:()=>{this._commandService.executeCommand("compositionStart",{})},endComposition:()=>{this._commandService.executeCommand("compositionEnd",{})},cut:()=>{this._commandService.executeCommand("cut",{})}};const i=new BM(e.coordinatesConverter);return i.onKeyDown=o=>this._onKeyDown.fire(o),i.onKeyUp=o=>this._onKeyUp.fire(o),i.onContextMenu=o=>this._onContextMenu.fire(o),i.onMouseMove=o=>this._onMouseMove.fire(o),i.onMouseLeave=o=>this._onMouseLeave.fire(o),i.onMouseDown=o=>this._onMouseDown.fire(o),i.onMouseUp=o=>this._onMouseUp.fire(o),i.onMouseDrag=o=>this._onMouseDrag.fire(o),i.onMouseDrop=o=>this._onMouseDrop.fire(o),i.onMouseDropCanceled=o=>this._onMouseDropCanceled.fire(o),i.onMouseWheel=o=>this._onMouseWheel.fire(o),[new BB(t,this._configuration,this._themeService.getColorTheme(),e,i,this._overflowWidgetsDomNode,this._instantiationService),!0]}_postDetachModelCleanup(e){e==null||e.removeAllDecorationsWithOwnerId(this._id)}_detachModel(){var e;if((e=this._contributionsDisposable)===null||e===void 0||e.dispose(),this._contributionsDisposable=void 0,!this._modelData)return null;const t=this._modelData.model,i=this._modelData.hasRealView?this._modelData.view.domNode.domNode:null;return this._modelData.dispose(),this._modelData=null,this._domElement.removeAttribute("data-mode-id"),i&&this._domElement.contains(i)&&this._domElement.removeChild(i),this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._domElement.removeChild(this._bannerDomNode),t}_removeDecorationType(e){this._codeEditorService.removeDecorationType(e)}hasModel(){return this._modelData!==null}showDropIndicatorAt(e){const t=[{range:new A(e.lineNumber,e.column,e.lineNumber,e.column),options:ov.dropIntoEditorDecorationOptions}];this._dropIntoEditorDecorations.set(t),this.revealPosition(e,1)}removeDropIndicator(){this._dropIntoEditorDecorations.clear()}setContextValue(e,t){this._contextKeyService.createKey(e,t)}_beginUpdate(){this._updateCounter++,this._updateCounter===1&&this._onBeginUpdate.fire()}_endUpdate(){this._updateCounter--,this._updateCounter===0&&this._onEndUpdate.fire()}};jC.dropIntoEditorDecorationOptions=Wt.register({description:"workbench-dnd-target",className:"dnd-target"});jC=ov=e6e([hf(3,ht),hf(4,vi),hf(5,Sn),hf(6,Ct),hf(7,js),hf(8,ps),hf(9,Ha),hf(10,gn),hf(11,Xe)],jC);let t6e=0,i6e=class{constructor(e,t,i,s,o,r){this.model=e,this.viewModel=t,this.view=i,this.hasRealView=s,this.listenersToRemove=o,this.attachedView=r}dispose(){tn(this.listenersToRemove),this.model.onBeforeDetached(this.attachedView),this.hasRealView&&this.view.dispose(),this.viewModel.dispose()}};class BQ extends ne{constructor(e){super(),this._emitterOptions=e,this._onDidChangeToTrue=this._register(new X(this._emitterOptions)),this.onDidChangeToTrue=this._onDidChangeToTrue.event,this._onDidChangeToFalse=this._register(new X(this._emitterOptions)),this.onDidChangeToFalse=this._onDidChangeToFalse.event,this._value=0}setValue(e){const t=e?2:1;this._value!==t&&(this._value=t,this._value===2?this._onDidChangeToTrue.fire():this._value===1&&this._onDidChangeToFalse.fire())}}class nr extends X{constructor(e,t){super({deliveryQueue:t}),this._contributions=e}fire(e){this._contributions.onBeforeInteractionEvent(),super.fire(e)}}class n6e extends ne{constructor(e,t){super(),this._editor=e,t.createKey("editorId",e.getId()),this._editorSimpleInput=W.editorSimpleInput.bindTo(t),this._editorFocus=W.focus.bindTo(t),this._textInputFocus=W.textInputFocus.bindTo(t),this._editorTextFocus=W.editorTextFocus.bindTo(t),this._tabMovesFocus=W.tabMovesFocus.bindTo(t),this._editorReadonly=W.readOnly.bindTo(t),this._inDiffEditor=W.inDiffEditor.bindTo(t),this._editorColumnSelection=W.columnSelection.bindTo(t),this._hasMultipleSelections=W.hasMultipleSelections.bindTo(t),this._hasNonEmptySelection=W.hasNonEmptySelection.bindTo(t),this._canUndo=W.canUndo.bindTo(t),this._canRedo=W.canRedo.bindTo(t),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromConfig())),this._register(this._editor.onDidChangeCursorSelection(()=>this._updateFromSelection())),this._register(this._editor.onDidFocusEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidFocusEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidChangeModel(()=>this._updateFromModel())),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromModel())),this._register(FC.onDidChangeTabFocus(i=>this._tabMovesFocus.set(i))),this._updateFromConfig(),this._updateFromSelection(),this._updateFromFocus(),this._updateFromModel(),this._editorSimpleInput.set(this._editor.isSimpleWidget)}_updateFromConfig(){const e=this._editor.getOptions();this._tabMovesFocus.set(FC.getTabFocusMode()),this._editorReadonly.set(e.get(91)),this._inDiffEditor.set(e.get(61)),this._editorColumnSelection.set(e.get(22))}_updateFromSelection(){const e=this._editor.getSelections();e?(this._hasMultipleSelections.set(e.length>1),this._hasNonEmptySelection.set(e.some(t=>!t.isEmpty()))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())}_updateFromFocus(){this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),this._textInputFocus.set(this._editor.hasTextFocus())}_updateFromModel(){const e=this._editor.getModel();this._canUndo.set(!!(e&&e.canUndo())),this._canRedo.set(!!(e&&e.canRedo()))}}class s6e extends ne{constructor(e,t,i){super(),this._editor=e,this._contextKeyService=t,this._languageFeaturesService=i,this._langId=W.languageId.bindTo(t),this._hasCompletionItemProvider=W.hasCompletionItemProvider.bindTo(t),this._hasCodeActionsProvider=W.hasCodeActionsProvider.bindTo(t),this._hasCodeLensProvider=W.hasCodeLensProvider.bindTo(t),this._hasDefinitionProvider=W.hasDefinitionProvider.bindTo(t),this._hasDeclarationProvider=W.hasDeclarationProvider.bindTo(t),this._hasImplementationProvider=W.hasImplementationProvider.bindTo(t),this._hasTypeDefinitionProvider=W.hasTypeDefinitionProvider.bindTo(t),this._hasHoverProvider=W.hasHoverProvider.bindTo(t),this._hasDocumentHighlightProvider=W.hasDocumentHighlightProvider.bindTo(t),this._hasDocumentSymbolProvider=W.hasDocumentSymbolProvider.bindTo(t),this._hasReferenceProvider=W.hasReferenceProvider.bindTo(t),this._hasRenameProvider=W.hasRenameProvider.bindTo(t),this._hasSignatureHelpProvider=W.hasSignatureHelpProvider.bindTo(t),this._hasInlayHintsProvider=W.hasInlayHintsProvider.bindTo(t),this._hasDocumentFormattingProvider=W.hasDocumentFormattingProvider.bindTo(t),this._hasDocumentSelectionFormattingProvider=W.hasDocumentSelectionFormattingProvider.bindTo(t),this._hasMultipleDocumentFormattingProvider=W.hasMultipleDocumentFormattingProvider.bindTo(t),this._hasMultipleDocumentSelectionFormattingProvider=W.hasMultipleDocumentSelectionFormattingProvider.bindTo(t),this._isInEmbeddedEditor=W.isInEmbeddedEditor.bindTo(t);const s=()=>this._update();this._register(e.onDidChangeModel(s)),this._register(e.onDidChangeModelLanguage(s)),this._register(i.completionProvider.onDidChange(s)),this._register(i.codeActionProvider.onDidChange(s)),this._register(i.codeLensProvider.onDidChange(s)),this._register(i.definitionProvider.onDidChange(s)),this._register(i.declarationProvider.onDidChange(s)),this._register(i.implementationProvider.onDidChange(s)),this._register(i.typeDefinitionProvider.onDidChange(s)),this._register(i.hoverProvider.onDidChange(s)),this._register(i.documentHighlightProvider.onDidChange(s)),this._register(i.documentSymbolProvider.onDidChange(s)),this._register(i.referenceProvider.onDidChange(s)),this._register(i.renameProvider.onDidChange(s)),this._register(i.documentFormattingEditProvider.onDidChange(s)),this._register(i.documentRangeFormattingEditProvider.onDidChange(s)),this._register(i.signatureHelpProvider.onDidChange(s)),this._register(i.inlayHintsProvider.onDidChange(s)),s()}dispose(){super.dispose()}reset(){this._contextKeyService.bufferChangeEvents(()=>{this._langId.reset(),this._hasCompletionItemProvider.reset(),this._hasCodeActionsProvider.reset(),this._hasCodeLensProvider.reset(),this._hasDefinitionProvider.reset(),this._hasDeclarationProvider.reset(),this._hasImplementationProvider.reset(),this._hasTypeDefinitionProvider.reset(),this._hasHoverProvider.reset(),this._hasDocumentHighlightProvider.reset(),this._hasDocumentSymbolProvider.reset(),this._hasReferenceProvider.reset(),this._hasRenameProvider.reset(),this._hasDocumentFormattingProvider.reset(),this._hasDocumentSelectionFormattingProvider.reset(),this._hasSignatureHelpProvider.reset(),this._isInEmbeddedEditor.reset()})}_update(){const e=this._editor.getModel();if(!e){this.reset();return}this._contextKeyService.bufferChangeEvents(()=>{this._langId.set(e.getLanguageId()),this._hasCompletionItemProvider.set(this._languageFeaturesService.completionProvider.has(e)),this._hasCodeActionsProvider.set(this._languageFeaturesService.codeActionProvider.has(e)),this._hasCodeLensProvider.set(this._languageFeaturesService.codeLensProvider.has(e)),this._hasDefinitionProvider.set(this._languageFeaturesService.definitionProvider.has(e)),this._hasDeclarationProvider.set(this._languageFeaturesService.declarationProvider.has(e)),this._hasImplementationProvider.set(this._languageFeaturesService.implementationProvider.has(e)),this._hasTypeDefinitionProvider.set(this._languageFeaturesService.typeDefinitionProvider.has(e)),this._hasHoverProvider.set(this._languageFeaturesService.hoverProvider.has(e)),this._hasDocumentHighlightProvider.set(this._languageFeaturesService.documentHighlightProvider.has(e)),this._hasDocumentSymbolProvider.set(this._languageFeaturesService.documentSymbolProvider.has(e)),this._hasReferenceProvider.set(this._languageFeaturesService.referenceProvider.has(e)),this._hasRenameProvider.set(this._languageFeaturesService.renameProvider.has(e)),this._hasSignatureHelpProvider.set(this._languageFeaturesService.signatureHelpProvider.has(e)),this._hasInlayHintsProvider.set(this._languageFeaturesService.inlayHintsProvider.has(e)),this._hasDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.has(e)||this._languageFeaturesService.documentRangeFormattingEditProvider.has(e)),this._hasDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.has(e)),this._hasMultipleDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.all(e).length+this._languageFeaturesService.documentRangeFormattingEditProvider.all(e).length>1),this._hasMultipleDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.all(e).length>1),this._isInEmbeddedEditor.set(e.uri.scheme===Tt.walkThroughSnippet||e.uri.scheme===Tt.vscodeChatCodeBlock)})}}class o6e extends ne{constructor(e,t){super(),this._onChange=this._register(new X),this.onChange=this._onChange.event,this._hadFocus=void 0,this._hasDomElementFocus=!1,this._domFocusTracker=this._register(ou(e)),this._overflowWidgetsDomNodeHasFocus=!1,this._register(this._domFocusTracker.onDidFocus(()=>{this._hasDomElementFocus=!0,this._update()})),this._register(this._domFocusTracker.onDidBlur(()=>{this._hasDomElementFocus=!1,this._update()})),t&&(this._overflowWidgetsDomNode=this._register(ou(t)),this._register(this._overflowWidgetsDomNode.onDidFocus(()=>{this._overflowWidgetsDomNodeHasFocus=!0,this._update()})),this._register(this._overflowWidgetsDomNode.onDidBlur(()=>{this._overflowWidgetsDomNodeHasFocus=!1,this._update()})))}_update(){const e=this._hasDomElementFocus||this._overflowWidgetsDomNodeHasFocus;this._hadFocus!==e&&(this._hadFocus=e,this._onChange.fire(void 0))}hasFocus(){var e;return(e=this._hadFocus)!==null&&e!==void 0?e:!1}}class r6e{get length(){return this._decorationIds.length}constructor(e,t){this._editor=e,this._decorationIds=[],this._isChangingDecorations=!1,Array.isArray(t)&&t.length>0&&this.set(t)}onDidChange(e,t,i){return this._editor.onDidChangeModelDecorations(s=>{this._isChangingDecorations||e.call(t,s)},i)}getRange(e){return!this._editor.hasModel()||e>=this._decorationIds.length?null:this._editor.getModel().getDecorationRange(this._decorationIds[e])}getRanges(){if(!this._editor.hasModel())return[];const e=this._editor.getModel(),t=[];for(const i of this._decorationIds){const s=e.getDecorationRange(i);s&&t.push(s)}return t}has(e){return this._decorationIds.includes(e.id)}clear(){this._decorationIds.length!==0&&this.set([])}set(e){try{this._isChangingDecorations=!0,this._editor.changeDecorations(t=>{this._decorationIds=t.deltaDecorations(this._decorationIds,e)})}finally{this._isChangingDecorations=!1}return this._decorationIds}append(e){let t=[];try{this._isChangingDecorations=!0,this._editor.changeDecorations(i=>{t=i.deltaDecorations([],e),this._decorationIds=this._decorationIds.concat(t)})}finally{this._isChangingDecorations=!1}return t}}const a6e=encodeURIComponent("");function C5(n){return a6e+encodeURIComponent(n.toString())+l6e}const c6e=encodeURIComponent('');function u6e(n){return c6e+encodeURIComponent(n.toString())+d6e}mc((n,e)=>{const t=n.getColor(lh);t&&e.addRule(`.monaco-editor .squiggly-error { background: url("data:image/svg+xml,${C5(t)}") repeat-x bottom left; }`);const i=n.getColor(hr);i&&e.addRule(`.monaco-editor .squiggly-warning { background: url("data:image/svg+xml,${C5(i)}") repeat-x bottom left; }`);const s=n.getColor(sa);s&&e.addRule(`.monaco-editor .squiggly-info { background: url("data:image/svg+xml,${C5(s)}") repeat-x bottom left; }`);const o=n.getColor(CFe);o&&e.addRule(`.monaco-editor .squiggly-hint { background: url("data:image/svg+xml,${u6e(o)}") no-repeat bottom left; }`);const r=n.getColor(K3e);r&&e.addRule(`.monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ${r.rgba.a}; }`)});var h6e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},f6e=function(n,e){return function(t,i){e(t,i,n)}};let t9=class extends ne{constructor(e){super(),this._themeService=e,this._onWillCreateCodeEditor=this._register(new X),this._onCodeEditorAdd=this._register(new X),this.onCodeEditorAdd=this._onCodeEditorAdd.event,this._onCodeEditorRemove=this._register(new X),this.onCodeEditorRemove=this._onCodeEditorRemove.event,this._onWillCreateDiffEditor=this._register(new X),this._onDiffEditorAdd=this._register(new X),this.onDiffEditorAdd=this._onDiffEditorAdd.event,this._onDiffEditorRemove=this._register(new X),this.onDiffEditorRemove=this._onDiffEditorRemove.event,this._decorationOptionProviders=new Map,this._codeEditorOpenHandlers=new Tr,this._modelProperties=new Map,this._codeEditors=Object.create(null),this._diffEditors=Object.create(null),this._globalStyleSheet=null}willCreateCodeEditor(){this._onWillCreateCodeEditor.fire()}addCodeEditor(e){this._codeEditors[e.getId()]=e,this._onCodeEditorAdd.fire(e)}removeCodeEditor(e){delete this._codeEditors[e.getId()]&&this._onCodeEditorRemove.fire(e)}listCodeEditors(){return Object.keys(this._codeEditors).map(e=>this._codeEditors[e])}willCreateDiffEditor(){this._onWillCreateDiffEditor.fire()}addDiffEditor(e){this._diffEditors[e.getId()]=e,this._onDiffEditorAdd.fire(e)}listDiffEditors(){return Object.keys(this._diffEditors).map(e=>this._diffEditors[e])}getFocusedCodeEditor(){let e=null;const t=this.listCodeEditors();for(const i of t){if(i.hasTextFocus())return i;i.hasWidgetFocus()&&(e=i)}return e}removeDecorationType(e){const t=this._decorationOptionProviders.get(e);t&&(t.refCount--,t.refCount<=0&&(this._decorationOptionProviders.delete(e),t.dispose(),this.listCodeEditors().forEach(i=>i.removeDecorationsByType(e))))}setModelProperty(e,t,i){const s=e.toString();let o;this._modelProperties.has(s)?o=this._modelProperties.get(s):(o=new Map,this._modelProperties.set(s,o)),o.set(t,i)}getModelProperty(e,t){const i=e.toString();if(this._modelProperties.has(i))return this._modelProperties.get(i).get(t)}async openCodeEditor(e,t,i){for(const s of this._codeEditorOpenHandlers){const o=await s(e,t,i);if(o!==null)return o}return null}registerCodeEditorOpenHandler(e){const t=this._codeEditorOpenHandlers.unshift(e);return dt(t)}};t9=h6e([f6e(0,js)],t9);var g6e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},WQ=function(n,e){return function(t,i){e(t,i,n)}};let hA=class extends t9{constructor(e,t){super(t),this._register(this.onCodeEditorAdd(()=>this._checkContextKey())),this._register(this.onCodeEditorRemove(()=>this._checkContextKey())),this._editorIsOpen=e.createKey("editorIsOpen",!1),this._activeCodeEditor=null,this._register(this.registerCodeEditorOpenHandler(async(i,s,o)=>s?this.doOpenEditor(s,i):null))}_checkContextKey(){let e=!1;for(const t of this.listCodeEditors())if(!t.isSimpleWidget){e=!0;break}this._editorIsOpen.set(e)}setActiveCodeEditor(e){this._activeCodeEditor=e}getActiveCodeEditor(){return this._activeCodeEditor}doOpenEditor(e,t){if(!this.findModel(e,t.resource)){if(t.resource){const o=t.resource.scheme;if(o===Tt.http||o===Tt.https)return Yae(t.resource.toString()),e}return null}const s=t.options?t.options.selection:null;if(s)if(typeof s.endLineNumber=="number"&&typeof s.endColumn=="number")e.setSelection(s),e.revealRangeInCenter(s,1);else{const o={lineNumber:s.startLineNumber,column:s.startColumn};e.setPosition(o),e.revealPositionInCenter(o,1)}return e}findModel(e,t){const i=e.getModel();return i&&i.uri.toString()!==t.toString()?null:i}};hA=g6e([WQ(0,Ct),WQ(1,js)],hA);ai(vi,hA,0);const g_=Jt("layoutService");var Qce=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Jce=function(n,e){return function(t,i){e(t,i,n)}};let fA=class{get mainContainer(){var e,t;return(t=(e=NV(this._codeEditorService.listCodeEditors()))===null||e===void 0?void 0:e.getContainerDomNode())!==null&&t!==void 0?t:Ji.document.body}get activeContainer(){var e,t;const i=(e=this._codeEditorService.getFocusedCodeEditor())!==null&&e!==void 0?e:this._codeEditorService.getActiveCodeEditor();return(t=i==null?void 0:i.getContainerDomNode())!==null&&t!==void 0?t:this.mainContainer}get mainContainerDimension(){return Fm(this.mainContainer)}get activeContainerDimension(){return Fm(this.activeContainer)}get containers(){return tu(this._codeEditorService.listCodeEditors().map(e=>e.getContainerDomNode()))}getContainer(){return this.activeContainer}whenContainerStylesLoaded(){}focus(){var e;(e=this._codeEditorService.getFocusedCodeEditor())===null||e===void 0||e.focus()}constructor(e){this._codeEditorService=e,this.onDidLayoutMainContainer=Ae.None,this.onDidLayoutActiveContainer=Ae.None,this.onDidLayoutContainer=Ae.None,this.onDidChangeActiveContainer=Ae.None,this.onDidAddContainer=Ae.None,this.mainContainerOffset={top:0,quickPickTop:0},this.activeContainerOffset={top:0,quickPickTop:0}}};fA=Qce([Jce(0,vi)],fA);let i9=class extends fA{get mainContainer(){return this._container}constructor(e,t){super(t),this._container=e}};i9=Qce([Jce(1,vi)],i9);ai(g_,fA,1);const DD=Jt("dialogService");var p6e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},HQ=function(n,e){return function(t,i){e(t,i,n)}};function YE(n){return n.scheme===Tt.file?n.fsPath:n.path}let ede=0;class XE{constructor(e,t,i,s,o,r,a){this.id=++ede,this.type=0,this.actual=e,this.label=e.label,this.confirmBeforeUndo=e.confirmBeforeUndo||!1,this.resourceLabel=t,this.strResource=i,this.resourceLabels=[this.resourceLabel],this.strResources=[this.strResource],this.groupId=s,this.groupOrder=o,this.sourceId=r,this.sourceOrder=a,this.isValid=!0}setValid(e){this.isValid=e}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.isValid?" VALID":"INVALID"}] ${this.actual.constructor.name} - ${this.actual}`}}class VQ{constructor(e,t){this.resourceLabel=e,this.reason=t}}class zQ{constructor(){this.elements=new Map}createMessage(){const e=[],t=[];for(const[,s]of this.elements)(s.reason===0?e:t).push(s.resourceLabel);const i=[];return e.length>0&&i.push(v({},"The following files have been closed and modified on disk: {0}.",e.join(", "))),t.length>0&&i.push(v({},"The following files have been modified in an incompatible way: {0}.",t.join(", "))),i.join(` `)}get size(){return this.elements.size}has(e){return this.elements.has(e)}set(e,t){this.elements.set(e,t)}delete(e){return this.elements.delete(e)}}class m6e{constructor(e,t,i,s,o,r,a){this.id=++ede,this.type=1,this.actual=e,this.label=e.label,this.confirmBeforeUndo=e.confirmBeforeUndo||!1,this.resourceLabels=t,this.strResources=i,this.groupId=s,this.groupOrder=o,this.sourceId=r,this.sourceOrder=a,this.removedResources=null,this.invalidatedResources=null}canSplit(){return typeof this.actual.split=="function"}removeResource(e,t,i){this.removedResources||(this.removedResources=new zQ),this.removedResources.has(t)||this.removedResources.set(t,new VQ(e,i))}setValid(e,t,i){i?this.invalidatedResources&&(this.invalidatedResources.delete(t),this.invalidatedResources.size===0&&(this.invalidatedResources=null)):(this.invalidatedResources||(this.invalidatedResources=new zQ),this.invalidatedResources.has(t)||this.invalidatedResources.set(t,new VQ(e,0)))}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.invalidatedResources?"INVALID":" VALID"}] ${this.actual.constructor.name} - ${this.actual}`}}class tde{constructor(e,t){this.resourceLabel=e,this.strResource=t,this._past=[],this._future=[],this.locked=!1,this.versionId=1}dispose(){for(const e of this._past)e.type===1&&e.removeResource(this.resourceLabel,this.strResource,0);for(const e of this._future)e.type===1&&e.removeResource(this.resourceLabel,this.strResource,0);this.versionId++}toString(){const e=[];e.push(`* ${this.strResource}:`);for(let t=0;t=0;t--)e.push(` * [REDO] ${this._future[t]}`);return e.join(` `)}flushAllElements(){this._past=[],this._future=[],this.versionId++}_setElementValidFlag(e,t){e.type===1?e.setValid(this.resourceLabel,this.strResource,t):e.setValid(t)}setElementsValidFlag(e,t){for(const i of this._past)t(i.actual)&&this._setElementValidFlag(i,e);for(const i of this._future)t(i.actual)&&this._setElementValidFlag(i,e)}pushElement(e){for(const t of this._future)t.type===1&&t.removeResource(this.resourceLabel,this.strResource,1);this._future=[],this._past.push(e),this.versionId++}createSnapshot(e){const t=[];for(let i=0,s=this._past.length;i=0;i--)t.push(this._future[i].id);return new Kce(e,t)}restoreSnapshot(e){const t=e.elements.length;let i=!0,s=0,o=-1;for(let a=0,l=this._past.length;a=t||c.id!==e.elements[s])&&(i=!1,o=0),!i&&c.type===1&&c.removeResource(this.resourceLabel,this.strResource,0)}let r=-1;for(let a=this._future.length-1;a>=0;a--,s++){const l=this._future[a];i&&(s>=t||l.id!==e.elements[s])&&(i=!1,r=a),!i&&l.type===1&&l.removeResource(this.resourceLabel,this.strResource,0)}o!==-1&&(this._past=this._past.slice(0,o)),r!==-1&&(this._future=this._future.slice(r+1)),this.versionId++}getElements(){const e=[],t=[];for(const i of this._past)e.push(i.actual);for(const i of this._future)t.push(i.actual);return{past:e,future:t}}getClosestPastElement(){return this._past.length===0?null:this._past[this._past.length-1]}getSecondClosestPastElement(){return this._past.length<2?null:this._past[this._past.length-2]}getClosestFutureElement(){return this._future.length===0?null:this._future[this._future.length-1]}hasPastElements(){return this._past.length>0}hasFutureElements(){return this._future.length>0}splitPastWorkspaceElement(e,t){for(let i=this._past.length-1;i>=0;i--)if(this._past[i]===e){t.has(this.strResource)?this._past[i]=t.get(this.strResource):this._past.splice(i,1);break}this.versionId++}splitFutureWorkspaceElement(e,t){for(let i=this._future.length-1;i>=0;i--)if(this._future[i]===e){t.has(this.strResource)?this._future[i]=t.get(this.strResource):this._future.splice(i,1);break}this.versionId++}moveBackward(e){this._past.pop(),this._future.push(e),this.versionId++}moveForward(e){this._future.pop(),this._past.push(e),this.versionId++}}class w5{constructor(e){this.editStacks=e,this._versionIds=[];for(let t=0,i=this.editStacks.length;tt.sourceOrder)&&(t=r,i=s)}return[t,i]}canUndo(e){if(e instanceof th){const[,i]=this._findClosestUndoElementWithSource(e.id);return!!i}const t=this.getUriComparisonKey(e);return this._editStacks.has(t)?this._editStacks.get(t).hasPastElements():!1}_onError(e,t){Mt(e);for(const i of t.strResources)this.removeElements(i);this._notificationService.error(e)}_acquireLocks(e){for(const t of e.editStacks)if(t.locked)throw new Error("Cannot acquire edit stack lock");for(const t of e.editStacks)t.locked=!0;return()=>{for(const t of e.editStacks)t.locked=!1}}_safeInvokeWithLocks(e,t,i,s,o){const r=this._acquireLocks(i);let a;try{a=t()}catch(l){return r(),s.dispose(),this._onError(l,e)}return a?a.then(()=>(r(),s.dispose(),o()),l=>(r(),s.dispose(),this._onError(l,e))):(r(),s.dispose(),o())}async _invokeWorkspacePrepare(e){if(typeof e.actual.prepareUndoRedo>"u")return ne.None;const t=e.actual.prepareUndoRedo();return typeof t>"u"?ne.None:t}_invokeResourcePrepare(e,t){if(e.actual.type!==1||typeof e.actual.prepareUndoRedo>"u")return t(ne.None);const i=e.actual.prepareUndoRedo();return i?nM(i)?t(i):i.then(s=>t(s)):t(ne.None)}_getAffectedEditStacks(e){const t=[];for(const i of e.strResources)t.push(this._editStacks.get(i)||ide);return new w5(t)}_tryToSplitAndUndo(e,t,i,s){if(t.canSplit())return this._splitPastWorkspaceElement(t,i),this._notificationService.warn(s),new QE(this._undo(e,0,!0));for(const o of t.strResources)this.removeElements(o);return this._notificationService.warn(s),new QE}_checkWorkspaceUndo(e,t,i,s){if(t.removedResources)return this._tryToSplitAndUndo(e,t,t.removedResources,v({},"Could not undo '{0}' across all files. {1}",t.label,t.removedResources.createMessage()));if(s&&t.invalidatedResources)return this._tryToSplitAndUndo(e,t,t.invalidatedResources,v({},"Could not undo '{0}' across all files. {1}",t.label,t.invalidatedResources.createMessage()));const o=[];for(const a of i.editStacks)a.getClosestPastElement()!==t&&o.push(a.resourceLabel);if(o.length>0)return this._tryToSplitAndUndo(e,t,null,v({},"Could not undo '{0}' across all files because changes were made to {1}",t.label,o.join(", ")));const r=[];for(const a of i.editStacks)a.locked&&r.push(a.resourceLabel);return r.length>0?this._tryToSplitAndUndo(e,t,null,v({},"Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}",t.label,r.join(", "))):i.isValid()?null:this._tryToSplitAndUndo(e,t,null,v({},"Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime",t.label))}_workspaceUndo(e,t,i){const s=this._getAffectedEditStacks(t),o=this._checkWorkspaceUndo(e,t,s,!1);return o?o.returnValue:this._confirmAndExecuteWorkspaceUndo(e,t,s,i)}_isPartOfUndoGroup(e){if(!e.groupId)return!1;for(const[,t]of this._editStacks){const i=t.getClosestPastElement();if(i){if(i===e){const s=t.getSecondClosestPastElement();if(s&&s.groupId===e.groupId)return!0}if(i.groupId===e.groupId)return!0}}return!1}async _confirmAndExecuteWorkspaceUndo(e,t,i,s){if(t.canSplit()&&!this._isPartOfUndoGroup(t)){let a;(function(d){d[d.All=0]="All",d[d.This=1]="This",d[d.Cancel=2]="Cancel"})(a||(a={}));const{result:l}=await this._dialogService.prompt({type:us.Info,message:v("confirmWorkspace","Would you like to undo '{0}' across all files?",t.label),buttons:[{label:v({},"&&Undo in {0} Files",i.editStacks.length),run:()=>a.All},{label:v({},"Undo this &&File"),run:()=>a.This}],cancelButton:{run:()=>a.Cancel}});if(l===a.Cancel)return;if(l===a.This)return this._splitPastWorkspaceElement(t,null),this._undo(e,0,!0);const c=this._checkWorkspaceUndo(e,t,i,!1);if(c)return c.returnValue;s=!0}let o;try{o=await this._invokeWorkspacePrepare(t)}catch(a){return this._onError(a,t)}const r=this._checkWorkspaceUndo(e,t,i,!0);if(r)return o.dispose(),r.returnValue;for(const a of i.editStacks)a.moveBackward(t);return this._safeInvokeWithLocks(t,()=>t.actual.undo(),i,o,()=>this._continueUndoInGroup(t.groupId,s))}_resourceUndo(e,t,i){if(!t.isValid){e.flushAllElements();return}if(e.locked){const s=v({},"Could not undo '{0}' because there is already an undo or redo operation running.",t.label);this._notificationService.warn(s);return}return this._invokeResourcePrepare(t,s=>(e.moveBackward(t),this._safeInvokeWithLocks(t,()=>t.actual.undo(),new w5([e]),s,()=>this._continueUndoInGroup(t.groupId,i))))}_findClosestUndoElementInGroup(e){if(!e)return[null,null];let t=null,i=null;for(const[s,o]of this._editStacks){const r=o.getClosestPastElement();r&&r.groupId===e&&(!t||r.groupOrder>t.groupOrder)&&(t=r,i=s)}return[t,i]}_continueUndoInGroup(e,t){if(!e)return;const[,i]=this._findClosestUndoElementInGroup(e);if(i)return this._undo(i,0,t)}undo(e){if(e instanceof th){const[,t]=this._findClosestUndoElementWithSource(e.id);return t?this._undo(t,e.id,!1):void 0}return typeof e=="string"?this._undo(e,0,!1):this._undo(this.getUriComparisonKey(e),0,!1)}_undo(e,t=0,i){if(!this._editStacks.has(e))return;const s=this._editStacks.get(e),o=s.getClosestPastElement();if(!o)return;if(o.groupId){const[a,l]=this._findClosestUndoElementInGroup(o.groupId);if(o!==a&&l)return this._undo(l,t,i)}if((o.sourceId!==t||o.confirmBeforeUndo)&&!i)return this._confirmAndContinueUndo(e,t,o);try{return o.type===1?this._workspaceUndo(e,o,i):this._resourceUndo(s,o,i)}finally{}}async _confirmAndContinueUndo(e,t,i){if((await this._dialogService.confirm({message:v("confirmDifferentSource","Would you like to undo '{0}'?",i.label),primaryButton:v({},"&&Yes"),cancelButton:v("confirmDifferentSource.no","No")})).confirmed)return this._undo(e,t,!0)}_findClosestRedoElementWithSource(e){if(!e)return[null,null];let t=null,i=null;for(const[s,o]of this._editStacks){const r=o.getClosestFutureElement();r&&r.sourceId===e&&(!t||r.sourceOrder0)return this._tryToSplitAndRedo(e,t,null,v({},"Could not redo '{0}' across all files because changes were made to {1}",t.label,o.join(", ")));const r=[];for(const a of i.editStacks)a.locked&&r.push(a.resourceLabel);return r.length>0?this._tryToSplitAndRedo(e,t,null,v({},"Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}",t.label,r.join(", "))):i.isValid()?null:this._tryToSplitAndRedo(e,t,null,v({},"Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime",t.label))}_workspaceRedo(e,t){const i=this._getAffectedEditStacks(t),s=this._checkWorkspaceRedo(e,t,i,!1);return s?s.returnValue:this._executeWorkspaceRedo(e,t,i)}async _executeWorkspaceRedo(e,t,i){let s;try{s=await this._invokeWorkspacePrepare(t)}catch(r){return this._onError(r,t)}const o=this._checkWorkspaceRedo(e,t,i,!0);if(o)return s.dispose(),o.returnValue;for(const r of i.editStacks)r.moveForward(t);return this._safeInvokeWithLocks(t,()=>t.actual.redo(),i,s,()=>this._continueRedoInGroup(t.groupId))}_resourceRedo(e,t){if(!t.isValid){e.flushAllElements();return}if(e.locked){const i=v({},"Could not redo '{0}' because there is already an undo or redo operation running.",t.label);this._notificationService.warn(i);return}return this._invokeResourcePrepare(t,i=>(e.moveForward(t),this._safeInvokeWithLocks(t,()=>t.actual.redo(),new w5([e]),i,()=>this._continueRedoInGroup(t.groupId))))}_findClosestRedoElementInGroup(e){if(!e)return[null,null];let t=null,i=null;for(const[s,o]of this._editStacks){const r=o.getClosestFutureElement();r&&r.groupId===e&&(!t||r.groupOrder=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},$Q=function(n,e){return function(t,i){e(t,i,n)}};const _c=Jt("ILanguageFeatureDebounceService");var gA;(function(n){const e=new WeakMap;let t=0;function i(s){let o=e.get(s);return o===void 0&&(o=++t,e.set(s,o)),o}n.of=i})(gA||(gA={}));class b6e{constructor(e){this._default=e}get(e){return this._default}update(e,t){return this._default}default(){return this._default}}class C6e{constructor(e,t,i,s,o,r){this._logService=e,this._name=t,this._registry=i,this._default=s,this._min=o,this._max=r,this._cache=new zh(50,.7)}_key(e){return e.id+this._registry.all(e).reduce((t,i)=>lM(gA.of(i),t),0)}get(e){const t=this._key(e),i=this._cache.get(t);return i?Sr(i.value,this._min,this._max):this.default()}update(e,t){const i=this._key(e);let s=this._cache.get(i);s||(s=new _6e(6),this._cache.set(i,s));const o=Sr(s.update(t),this._min,this._max);return ez(e.uri,"output")||this._logService.trace(`[DEBOUNCE: ${this._name}] for ${e.uri.toString()} is ${o}ms`),o}_overall(){const e=new nde;for(const[,t]of this._cache)e.update(t.value);return e.value}default(){const e=this._overall()|0||this._default;return Sr(e,this._min,this._max)}}let s9=class{constructor(e,t){this._logService=e,this._data=new Map,this._isDev=t.isExtensionDevelopment||!t.isBuilt}for(e,t,i){var s,o,r;const a=(s=i==null?void 0:i.min)!==null&&s!==void 0?s:50,l=(o=i==null?void 0:i.max)!==null&&o!==void 0?o:a**2,c=(r=i==null?void 0:i.key)!==null&&r!==void 0?r:void 0,d=`${gA.of(e)},${a}${c?","+c:""}`;let u=this._data.get(d);return u||(this._isDev?(this._logService.debug(`[DEBOUNCE: ${t}] is disabled in developed mode`),u=new b6e(a*1.5)):u=new C6e(this._logService,t,e,this._overallAverage()|0||a*1.5,a,l),this._data.set(d,u)),u}_overallAverage(){const e=new nde;for(const t of this._data.values())e.update(t.default());return e.value}};s9=v6e([$Q(0,er),$Q(1,r$)],s9);ai(_c,s9,1);class Lx{static create(e,t){return new Lx(e,new pA(t))}get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._endLineNumber}constructor(e,t){this._startLineNumber=e,this._tokens=t,this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}toString(){return this._tokens.toString(this._startLineNumber)}_updateEndLineNumber(){this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}isEmpty(){return this._tokens.isEmpty()}getLineTokens(e){return this._startLineNumber<=e&&e<=this._endLineNumber?this._tokens.getLineTokens(e-this._startLineNumber):null}getRange(){const e=this._tokens.getRange();return e&&new A(this._startLineNumber+e.startLineNumber,e.startColumn,this._startLineNumber+e.endLineNumber,e.endColumn)}removeTokens(e){const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber;this._startLineNumber+=this._tokens.removeTokens(t,e.startColumn-1,i,e.endColumn-1),this._updateEndLineNumber()}split(e){const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber,[s,o,r]=this._tokens.split(t,e.startColumn-1,i,e.endColumn-1);return[new Lx(this._startLineNumber,s),new Lx(this._startLineNumber+r,o)]}applyEdit(e,t){const[i,s,o]=Hm(t);this.acceptEdit(e,i,s,o,t.length>0?t.charCodeAt(0):0)}acceptEdit(e,t,i,s,o){this._acceptDeleteRange(e),this._acceptInsertText(new ee(e.startLineNumber,e.startColumn),t,i,s,o),this._updateEndLineNumber()}_acceptDeleteRange(e){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return;const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber;if(i<0){const o=i-t;this._startLineNumber-=o;return}const s=this._tokens.getMaxDeltaLine();if(!(t>=s+1)){if(t<0&&i>=s+1){this._startLineNumber=0,this._tokens.clear();return}if(t<0){const o=-t;this._startLineNumber-=o,this._tokens.acceptDeleteRange(e.startColumn-1,0,0,i,e.endColumn-1)}else this._tokens.acceptDeleteRange(0,t,e.startColumn-1,i,e.endColumn-1)}}_acceptInsertText(e,t,i,s,o){if(t===0&&i===0)return;const r=e.lineNumber-this._startLineNumber;if(r<0){this._startLineNumber+=t;return}const a=this._tokens.getMaxDeltaLine();r>=a+1||this._tokens.acceptInsertText(r,e.column-1,t,i,s,o)}}class pA{constructor(e){this._tokens=e,this._tokenCount=e.length/4}toString(e){const t=[];for(let i=0;ie)i=s-1;else{let r=s;for(;r>t&&this._getDeltaLine(r-1)===e;)r--;let a=s;for(;ae||h===e&&g>=t)&&(he||g===e&&_>=t){if(go?p-=o-i:p=i;else if(f===t&&g===i)if(f===s&&p>o)p-=o-i;else{d=!0;continue}else if(fo)f=t,g=i,p=g+(p-o);else{d=!0;continue}else if(f>s){if(l===0&&!d){c=a;break}f-=l}else if(f===s&&g>=o)e&&f===0&&(g+=e,p+=e),f-=l,g-=o-i,p-=o-i;else throw new Error("Not possible!");const b=4*c;r[b]=f,r[b+1]=g,r[b+2]=p,r[b+3]=_,c++}this._tokenCount=c}acceptInsertText(e,t,i,s,o,r){const a=i===0&&s===1&&(r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122),l=this._tokens,c=this._tokenCount;for(let d=0;d=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},y5=function(n,e){return function(t,i){e(t,i,n)}};let o9=class{constructor(e,t,i,s){this._legend=e,this._themeService=t,this._languageService=i,this._logService=s,this._hasWarnedOverlappingTokens=!1,this._hasWarnedInvalidLengthTokens=!1,this._hasWarnedInvalidEditStart=!1,this._hashTable=new Rf}getMetadata(e,t,i){const s=this._languageService.languageIdCodec.encodeLanguageId(i),o=this._hashTable.get(e,t,s);let r;if(o)r=o.metadata,this._logService.getLevel()===To.Trace&&this._logService.trace(`SemanticTokensProviderStyling [CACHED] ${e} / ${t}: foreground ${No.getForeground(r)}, fontStyle ${No.getFontStyle(r).toString(2)}`);else{let a=this._legend.tokenTypes[e];const l=[];if(a){let c=t;for(let u=0;c>0&&u>1;c>0&&this._logService.getLevel()===To.Trace&&(this._logService.trace(`SemanticTokensProviderStyling: unknown token modifier index: ${t.toString(2)} for legend: ${JSON.stringify(this._legend.tokenModifiers)}`),l.push("not-in-legend"));const d=this._themeService.getColorTheme().getTokenStyleMetadata(a,l,i);if(typeof d>"u")r=2147483647;else{if(r=0,typeof d.italic<"u"){const u=(d.italic?1:0)<<11;r|=u|1}if(typeof d.bold<"u"){const u=(d.bold?2:0)<<11;r|=u|2}if(typeof d.underline<"u"){const u=(d.underline?4:0)<<11;r|=u|4}if(typeof d.strikethrough<"u"){const u=(d.strikethrough?8:0)<<11;r|=u|8}if(d.foreground){const u=d.foreground<<15;r|=u|16}r===0&&(r=2147483647)}}else this._logService.getLevel()===To.Trace&&this._logService.trace(`SemanticTokensProviderStyling: unknown token type index: ${e} for legend: ${JSON.stringify(this._legend.tokenTypes)}`),r=2147483647,a="not-in-legend";this._hashTable.add(e,t,s,r),this._logService.getLevel()===To.Trace&&this._logService.trace(`SemanticTokensProviderStyling ${e} (${a}) / ${t} (${l.join(" ")}): foreground ${No.getForeground(r)}, fontStyle ${No.getFontStyle(r).toString(2)}`)}return r}warnOverlappingSemanticTokens(e,t){this._hasWarnedOverlappingTokens||(this._hasWarnedOverlappingTokens=!0,this._logService.warn(`Overlapping semantic tokens detected at lineNumber ${e}, column ${t}`))}warnInvalidLengthSemanticTokens(e,t){this._hasWarnedInvalidLengthTokens||(this._hasWarnedInvalidLengthTokens=!0,this._logService.warn(`Semantic token with invalid length detected at lineNumber ${e}, column ${t}`))}warnInvalidEditStart(e,t,i,s,o){this._hasWarnedInvalidEditStart||(this._hasWarnedInvalidEditStart=!0,this._logService.warn(`Invalid semantic tokens edit detected (previousResultId: ${e}, resultId: ${t}) at edit #${i}: The provided start offset ${s} is outside the previous data (length ${o}).`))}};o9=w6e([y5(1,js),y5(2,An),y5(3,er)],o9);function sde(n,e,t){const i=n.data,s=n.data.length/5|0,o=Math.max(Math.ceil(s/1024),400),r=[];let a=0,l=1,c=0;for(;ad&&i[5*w]===0;)w--;if(w-1===d){let y=u;for(;y+1k)e.warnOverlappingSemanticTokens(x,k+1);else{const O=e.getMetadata(N,P,t);O!==2147483647&&(g===0&&(g=x),h[f]=x-g,h[f+1]=k,h[f+2]=I,h[f+3]=O,f+=4,p=x,_=I)}l=x,c=k,a++}f!==h.length&&(h=h.subarray(0,f));const b=Lx.create(g,h);r.push(b)}return r}class y6e{constructor(e,t,i,s){this.tokenTypeIndex=e,this.tokenModifierSet=t,this.languageId=i,this.metadata=s,this.next=null}}class Rf{constructor(){this._elementsCount=0,this._currentLengthIndex=0,this._currentLength=Rf._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1=this._growCount){const o=this._elements;this._currentLengthIndex++,this._currentLength=Rf._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},S5=function(n,e){return function(t,i){e(t,i,n)}};let r9=class extends ne{constructor(e,t,i){super(),this._themeService=e,this._logService=t,this._languageService=i,this._caches=new WeakMap,this._register(this._themeService.onDidColorThemeChange(()=>{this._caches=new WeakMap}))}getStyling(e){return this._caches.has(e)||this._caches.set(e,new o9(e.getLegend(),this._themeService,this._languageService,this._logService)),this._caches.get(e)}};r9=S6e([S5(0,js),S5(1,er),S5(2,An)],r9);ai(UM,r9,1);const JE="**",jQ="/",xN="[/\\\\]",LN="[^/\\\\]",x6e=/\//g;function KQ(n,e){switch(n){case 0:return"";case 1:return`${LN}*?`;default:return`(?:${xN}|${LN}+${xN}${e?`|${xN}${LN}+`:""})*?`}}function qQ(n,e){if(!n)return[];const t=[];let i=!1,s=!1,o="";for(const r of n){switch(r){case e:if(!i&&!s){t.push(o),o="";continue}break;case"{":i=!0;break;case"}":i=!1;break;case"[":s=!0;break;case"]":s=!1;break}o+=r}return o&&t.push(o),t}function ode(n){if(!n)return"";let e="";const t=qQ(n,jQ);if(t.every(i=>i===JE))e=".*";else{let i=!1;t.forEach((s,o)=>{if(s===JE){if(i)return;e+=KQ(2,o===t.length-1)}else{let r=!1,a="",l=!1,c="";for(const d of s){if(d!=="}"&&r){a+=d;continue}if(l&&(d!=="]"||!c)){let u;d==="-"?u=d:(d==="^"||d==="!")&&!c?u="^":d===jQ?u="":u=wl(d),c+=u;continue}switch(d){case"{":r=!0;continue;case"[":l=!0;continue;case"}":{const h=`(?:${qQ(a,",").map(f=>ode(f)).join("|")})`;e+=h,r=!1,a="";break}case"]":{e+="["+c+"]",l=!1,c="";break}case"?":e+=LN;continue;case"*":e+=KQ(1);continue;default:e+=wl(d)}}oa$(a,e)).filter(a=>a!==_h),n),i=t.length;if(!i)return _h;if(i===1)return t[0];const s=function(a,l){for(let c=0,d=t.length;c!!a.allBasenames);o&&(s.allBasenames=o.allBasenames);const r=t.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return r.length&&(s.allPaths=r),s}function XQ(n,e,t){const i=jd===ks.sep,s=i?n:n.replace(x6e,jd),o=jd+s,r=ks.sep+n;let a;return t?a=function(l,c){return typeof l=="string"&&(l===s||l.endsWith(o)||!i&&(l===n||l.endsWith(r)))?e:null}:a=function(l,c){return typeof l=="string"&&(l===s||!i&&l===n)?e:null},a.allPaths=[(t?"*/":"./")+n],a}function M6e(n){try{const e=new RegExp(`^${ode(n)}$`);return function(t){return e.lastIndex=0,typeof t=="string"&&e.test(t)?n:null}}catch{return _h}}function P6e(n,e,t){return!n||typeof e!="string"?!1:rde(n)(e,void 0,t)}function rde(n,e={}){if(!n)return ZQ;if(typeof n=="string"||O6e(n)){const t=a$(n,e);if(t===_h)return ZQ;const i=function(s,o){return!!t(s,o)};return t.allBasenames&&(i.allBasenames=t.allBasenames),t.allPaths&&(i.allPaths=t.allPaths),i}return F6e(n,e)}function O6e(n){const e=n;return e?typeof e.base=="string"&&typeof e.pattern=="string":!1}function F6e(n,e){const t=ade(Object.getOwnPropertyNames(n).map(a=>B6e(a,n[a],e)).filter(a=>a!==_h)),i=t.length;if(!i)return _h;if(!t.some(a=>!!a.requiresSiblings)){if(i===1)return t[0];const a=function(d,u){let h;for(let f=0,g=t.length;f{for(const f of h){const g=await f;if(typeof g=="string")return g}return null})():null},l=t.find(d=>!!d.allBasenames);l&&(a.allBasenames=l.allBasenames);const c=t.reduce((d,u)=>u.allPaths?d.concat(u.allPaths):d,[]);return c.length&&(a.allPaths=c),a}const s=function(a,l,c){let d,u;for(let h=0,f=t.length;h{for(const h of u){const f=await h;if(typeof f=="string")return f}return null})():null},o=t.find(a=>!!a.allBasenames);o&&(s.allBasenames=o.allBasenames);const r=t.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return r.length&&(s.allPaths=r),s}function B6e(n,e,t){if(e===!1)return _h;const i=a$(n,t);if(i===_h)return _h;if(typeof e=="boolean")return i;if(e){const s=e.when;if(typeof s=="string"){const o=(r,a,l,c)=>{if(!c||!i(r,a))return null;const d=s.replace("$(basename)",()=>l),u=c(d);return tB(u)?u.then(h=>h?n:null):u?n:null};return o.requiresSiblings=!0,o}}return i}function ade(n,e){const t=n.filter(a=>!!a.basenames);if(t.length<2)return n;const i=t.reduce((a,l)=>{const c=l.basenames;return c?a.concat(c):a},[]);let s;if(e){s=[];for(let a=0,l=i.length;a{const c=l.patterns;return c?a.concat(c):a},[]);const o=function(a,l){if(typeof a!="string")return null;if(!l){let d;for(d=a.length;d>0;d--){const u=a.charCodeAt(d-1);if(u===47||u===92)break}l=a.substr(d)}const c=i.indexOf(l);return c!==-1?s[c]:null};o.basenames=i,o.patterns=s,o.allBasenames=i;const r=n.filter(a=>!a.basenames);return r.push(o),r}function l$(n,e,t,i,s,o){if(Array.isArray(n)){let r=0;for(const a of n){const l=l$(a,e,t,i,s,o);if(l===10)return l;l>r&&(r=l)}return r}else{if(typeof n=="string")return i?n==="*"?5:n===t?10:0:0;if(n){const{language:r,pattern:a,scheme:l,hasAccessToAllModels:c,notebookType:d}=n;if(!i&&!c)return 0;d&&s&&(e=s);let u=0;if(l)if(l===e.scheme)u=10;else if(l==="*")u=5;else return 0;if(r)if(r===t)u=10;else if(r==="*")u=Math.max(u,5);else return 0;if(d)if(d===o)u=10;else if(d==="*"&&o!==void 0)u=Math.max(u,5);else return 0;if(a){let h;if(typeof a=="string"?h=a:h={...a,base:lae(a.base)},h===e.fsPath||P6e(h,e.fsPath))u=10;else return 0}return u}else return 0}}function lde(n){return typeof n=="string"?!1:Array.isArray(n)?n.every(lde):!!n.exclusive}class QQ{constructor(e,t,i,s){this.uri=e,this.languageId=t,this.notebookUri=i,this.notebookType=s}equals(e){var t,i;return this.notebookType===e.notebookType&&this.languageId===e.languageId&&this.uri.toString()===e.uri.toString()&&((t=this.notebookUri)===null||t===void 0?void 0:t.toString())===((i=e.notebookUri)===null||i===void 0?void 0:i.toString())}}class Rn{constructor(e){this._notebookInfoResolver=e,this._clock=0,this._entries=[],this._onDidChange=new X,this.onDidChange=this._onDidChange.event}register(e,t){let i={selector:e,provider:t,_score:-1,_time:this._clock++};return this._entries.push(i),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),dt(()=>{if(i){const s=this._entries.indexOf(i);s>=0&&(this._entries.splice(s,1),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),i=void 0)}})}has(e){return this.all(e).length>0}all(e){if(!e)return[];this._updateScores(e);const t=[];for(const i of this._entries)i._score>0&&t.push(i.provider);return t}ordered(e){const t=[];return this._orderedForEach(e,i=>t.push(i.provider)),t}orderedGroups(e){const t=[];let i,s;return this._orderedForEach(e,o=>{i&&s===o._score?i.push(o.provider):(s=o._score,i=[o.provider],t.push(i))}),t}_orderedForEach(e,t){this._updateScores(e);for(const i of this._entries)i._score>0&&t(i)}_updateScores(e){var t,i;const s=(t=this._notebookInfoResolver)===null||t===void 0?void 0:t.call(this,e.uri),o=s?new QQ(e.uri,e.getLanguageId(),s.uri,s.type):new QQ(e.uri,e.getLanguageId(),void 0,void 0);if(!(!((i=this._lastCandidate)===null||i===void 0)&&i.equals(o))){this._lastCandidate=o;for(const r of this._entries)if(r._score=l$(r.selector,o.uri,o.languageId,yle(e),o.notebookUri,o.notebookType),lde(r.selector)&&r._score>0){for(const a of this._entries)a._score=0;r._score=1e3;break}this._entries.sort(Rn._compareByScoreAndTime)}}static _compareByScoreAndTime(e,t){return e._scoret._score?-1:NS(e.selector)&&!NS(t.selector)?1:!NS(e.selector)&&NS(t.selector)?-1:e._timet._time?-1:0}}function NS(n){return typeof n=="string"?!1:Array.isArray(n)?n.some(NS):!!n.isBuiltin}class W6e{constructor(){this.referenceProvider=new Rn(this._score.bind(this)),this.renameProvider=new Rn(this._score.bind(this)),this.newSymbolNamesProvider=new Rn(this._score.bind(this)),this.codeActionProvider=new Rn(this._score.bind(this)),this.definitionProvider=new Rn(this._score.bind(this)),this.typeDefinitionProvider=new Rn(this._score.bind(this)),this.declarationProvider=new Rn(this._score.bind(this)),this.implementationProvider=new Rn(this._score.bind(this)),this.documentSymbolProvider=new Rn(this._score.bind(this)),this.inlayHintsProvider=new Rn(this._score.bind(this)),this.colorProvider=new Rn(this._score.bind(this)),this.codeLensProvider=new Rn(this._score.bind(this)),this.documentFormattingEditProvider=new Rn(this._score.bind(this)),this.documentRangeFormattingEditProvider=new Rn(this._score.bind(this)),this.onTypeFormattingEditProvider=new Rn(this._score.bind(this)),this.signatureHelpProvider=new Rn(this._score.bind(this)),this.hoverProvider=new Rn(this._score.bind(this)),this.documentHighlightProvider=new Rn(this._score.bind(this)),this.multiDocumentHighlightProvider=new Rn(this._score.bind(this)),this.selectionRangeProvider=new Rn(this._score.bind(this)),this.foldingRangeProvider=new Rn(this._score.bind(this)),this.linkProvider=new Rn(this._score.bind(this)),this.inlineCompletionsProvider=new Rn(this._score.bind(this)),this.inlineEditProvider=new Rn(this._score.bind(this)),this.completionProvider=new Rn(this._score.bind(this)),this.linkedEditingRangeProvider=new Rn(this._score.bind(this)),this.documentRangeSemanticTokensProvider=new Rn(this._score.bind(this)),this.documentSemanticTokensProvider=new Rn(this._score.bind(this)),this.documentDropEditProvider=new Rn(this._score.bind(this)),this.documentPasteEditProvider=new Rn(this._score.bind(this))}_score(e){var t;return(t=this._notebookTypeResolver)===null||t===void 0?void 0:t.call(this,e)}}ai(Xe,W6e,1);var H6e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},JQ=function(n,e){return function(t,i){e(t,i,n)}};const $h=Jt("hoverService");let KC=class extends ne{get delay(){return this.isInstantlyHovering()?0:this._delay}constructor(e,t,i={},s,o){super(),this.placement=e,this.instantHover=t,this.overrideOptions=i,this.configurationService=s,this.hoverService=o,this.lastHoverHideTime=0,this.timeLimit=200,this.hoverDisposables=this._register(new be),this._delay=this.configurationService.getValue("workbench.hover.delay"),this._register(this.configurationService.onDidChangeConfiguration(r=>{r.affectsConfiguration("workbench.hover.delay")&&(this._delay=this.configurationService.getValue("workbench.hover.delay"))}))}showHover(e,t){const i=typeof this.overrideOptions=="function"?this.overrideOptions(e,t):this.overrideOptions;this.hoverDisposables.clear();const s=co(e.target)?[e.target]:e.target.targetElements;for(const r of s)this.hoverDisposables.add(rs(r,"keydown",a=>{a.equals(9)&&this.hoverService.hideHover()}));const o=co(e.content)?void 0:e.content.toString();return this.hoverService.showHover({...e,...i,persistence:{hideOnKeyDown:!0,...i.persistence},id:o,appearance:{...e.appearance,compact:!0,skipFadeInAnimation:this.isInstantlyHovering(),...i.appearance}},t)}isInstantlyHovering(){return this.instantHover&&Date.now()-this.lastHoverHideTime{i.stopPropagation(),i.preventDefault(),t(e)}))}}class ude extends ne{constructor(e,t,i){super(),this._register(ce(e,Le.KEY_DOWN,s=>{const o=new ln(s);i.some(r=>o.equals(r))&&(s.stopPropagation(),s.preventDefault(),t(e))}))}}const $a=Jt("openerService");function V6e(n){let e;const t=/^L?(\d+)(?:,(\d+))?(-L?(\d+)(?:,(\d+))?)?/.exec(n.fragment);return t&&(e={startLineNumber:parseInt(t[1]),startColumn:t[2]?parseInt(t[2]):1,endLineNumber:t[4]?parseInt(t[4]):void 0,endColumn:t[4]?t[5]?parseInt(t[5]):1:void 0},n=n.with({fragment:""})),{selection:e,uri:n}}function z6e(n,e={}){const t=d$(e);return t.textContent=n,t}function $6e(n,e={}){const t=d$(e);return hde(t,j6e(n,!!e.renderCodeSegments),e.actionHandler,e.renderCodeSegments),t}function d$(n){const e=n.inline?"span":"div",t=document.createElement(e);return n.className&&(t.className=n.className),t}class U6e{constructor(e){this.source=e,this.index=0}eos(){return this.index>=this.source.length}next(){const e=this.peek();return this.advance(),e}peek(){return this.source[this.index]}advance(){this.index++}}function hde(n,e,t,i){let s;if(e.type===2)s=document.createTextNode(e.content||"");else if(e.type===3)s=document.createElement("b");else if(e.type===4)s=document.createElement("i");else if(e.type===7&&i)s=document.createElement("code");else if(e.type===5&&t){const o=document.createElement("a");t.disposables.add(rs(o,"click",r=>{t.callback(String(e.index),r)})),s=o}else e.type===8?s=document.createElement("br"):e.type===1&&(s=n);s&&n!==s&&n.appendChild(s),s&&Array.isArray(e.children)&&e.children.forEach(o=>{hde(s,o,t,i)})}function j6e(n,e){const t={type:1,children:[]};let i=0,s=t;const o=[],r=new U6e(n);for(;!r.eos();){let a=r.next();const l=a==="\\"&&a9(r.peek(),e)!==0;if(l&&(a=r.next()),!l&&K6e(a,e)&&a===r.peek()){r.advance(),s.type===2&&(s=o.pop());const c=a9(a,e);if(s.type===c||s.type===5&&c===6)s=o.pop();else{const d={type:c,children:[]};c===5&&(d.index=i,i++),s.children.push(d),o.push(s),s=d}}else if(a===` `)s.type===2&&(s=o.pop()),s.children.push({type:8});else if(s.type!==2){const c={type:2,content:a};s.children.push(c),o.push(s),s=c}else s.content+=a}return s.type===2&&(s=o.pop()),t}function K6e(n,e){return a9(n,e)!==0}function a9(n,e){switch(n){case"*":return 3;case"_":return 4;case"[":return 5;case"]":return 6;case"`":return e?7:0;default:return 0}}const q6e=new RegExp(`(\\\\)?\\$\\((${_t.iconNameExpression}(?:${_t.iconModifierExpression})?)\\)`,"g");function gm(n){const e=new Array;let t,i=0,s=0;for(;(t=q6e.exec(n))!==null;){s=t.index||0,i0)return new Uint32Array(e)}let Ja=0;const Op=new Uint32Array(10);function Z6e(n){if(Ja=0,Iu(n,L5,4352),Ja>0||(Iu(n,k5,4449),Ja>0)||(Iu(n,D5,4520),Ja>0)||(Iu(n,$_,12593),Ja))return Op.subarray(0,Ja);if(n>=44032&&n<=55203){const e=n-44032,t=e%588,i=Math.floor(e/588),s=Math.floor(t/28),o=t%28-1;if(i=0&&(o0)return Op.subarray(0,Ja)}}function Iu(n,e,t){n>=t&&n>8&&(Op[Ja++]=n>>8&255),n>>16&&(Op[Ja++]=n>>16&255))}const L5=new Uint8Array([114,82,115,101,69,102,97,113,81,116,84,100,119,87,99,122,120,118,103]),k5=new Uint16Array([107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]),D5=new Uint16Array([114,82,29810,115,30579,26483,101,102,29286,24934,29030,29798,30822,30310,26470,97,113,29809,116,84,100,119,99,122,120,118,103]),$_=new Uint16Array([114,82,29810,115,30579,26483,101,69,102,29286,24934,29030,29798,30822,30310,26470,97,113,81,29809,116,84,100,119,87,99,122,120,118,103,107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]);function u$(...n){return function(e,t){for(let i=0,s=n.length;i0?[{start:0,end:e.length}]:[]:null}function gde(n,e){const t=e.toLowerCase().indexOf(n.toLowerCase());return t===-1?null:[{start:t,end:t+n.length}]}function pde(n,e){return l9(n.toLowerCase(),e.toLowerCase(),0,0)}function l9(n,e,t,i){if(t===n.length)return[];if(i===e.length)return null;if(n[t]===e[i]){let s=null;return(s=l9(n,e,t+1,i+1))?g$({start:i,end:i+1},s):null}return l9(n,e,t,i+1)}function h$(n){return 97<=n&&n<=122}function KM(n){return 65<=n&&n<=90}function f$(n){return 48<=n&&n<=57}function mde(n){return n===32||n===9||n===10||n===13}const _de=new Set;"()[]{}<>`'\"-/;:,.?!".split("").forEach(n=>_de.add(n.charCodeAt(0)));function mA(n){return mde(n)||_de.has(n)}function eJ(n,e){return n===e||mA(n)&&mA(e)}const I5=new Map;function tJ(n){if(I5.has(n))return I5.get(n);let e;const t=G6e(n);return t&&(e=t),I5.set(n,e),e}function vde(n){return h$(n)||KM(n)||f$(n)}function g$(n,e){return e.length===0?e=[n]:n.end===e[0].start?e[0].start=n.start:e.unshift(n),e}function bde(n,e){for(let t=e;t0&&!vde(n.charCodeAt(t-1)))return t}return n.length}function c9(n,e,t,i){if(t===n.length)return[];if(i===e.length)return null;if(n[t]!==e[i].toLowerCase())return null;{let s=null,o=i+1;for(s=c9(n,e,t+1,i+1);!s&&(o=bde(e,o)).6}function J6e(n){const{upperPercent:e,lowerPercent:t,alphaPercent:i,numericPercent:s}=n;return t>.2&&e<.8&&i>.6&&s<.2}function eWe(n){let e=0,t=0,i=0,s=0;for(let o=0;o60&&(e=e.substring(0,60));const t=X6e(e);if(!J6e(t)){if(!Q6e(t))return null;e=e.toLowerCase()}let i=null,s=0;for(n=n.toLowerCase();s0&&mA(n.charCodeAt(t-1)))return t;return n.length}const iWe=u$(BL,Cde,gde),nWe=u$(BL,Cde,pde),iJ=new zh(1e4);function nJ(n,e,t=!1){if(typeof n!="string"||typeof e!="string")return null;let i=iJ.get(n);i||(i=new RegExp(fRe(n),"i"),iJ.set(n,i));const s=i.exec(e);return s?[{start:s.index,end:s.index+s[0].length}]:t?nWe(n,e):iWe(n,e)}function sWe(n,e){const t=v0(n,n.toLowerCase(),0,e,e.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return t?ID(t):null}function oWe(n,e,t,i,s,o){const r=Math.min(13,n.length);for(;t"u")return[];const e=[],t=n[1];for(let i=n.length-1;i>1;i--){const s=n[i]+t,o=e[e.length-1];o&&o.end===s?o.end=s+1:e.push({start:s,end:s+1})}return e}const Xp=128;function p$(){const n=[],e=[];for(let t=0;t<=Xp;t++)e[t]=0;for(let t=0;t<=Xp;t++)n.push(e.slice(0));return n}function yde(n){const e=[];for(let t=0;t<=n;t++)e[t]=0;return e}const Sde=yde(2*Xp),u9=yde(2*Xp),ff=p$(),U_=p$(),tT=p$();function iT(n,e){if(e<0||e>=n.length)return!1;const t=n.codePointAt(e);switch(t){case 95:case 45:case 46:case 32:case 47:case 92:case 39:case 34:case 58:case 36:case 60:case 62:case 40:case 41:case 91:case 93:case 123:case 125:return!0;case void 0:return!1;default:return!!ZV(t)}}function sJ(n,e){if(e<0||e>=n.length)return!1;switch(n.charCodeAt(e)){case 32:case 9:return!0;default:return!1}}function kN(n,e,t){return e[n]!==t[n]}function rWe(n,e,t,i,s,o,r=!1){for(;eXp?Xp:n.length,l=i.length>Xp?Xp:i.length;if(t>=a||o>=l||a-t>l-o||!rWe(e,t,a,s,o,l,!0))return;aWe(a,l,t,o,e,s);let c=1,d=1,u=t,h=o;const f=[!1];for(c=1,u=t;uw,N=I?U_[c][d-1]+(ff[c][d-1]>0?-5:0):0,P=h>w+1&&ff[c][d-1]>0,O=P?U_[c][d-2]+(ff[c][d-2]>0?-5:0):0;if(P&&(!I||O>=N)&&(!k||O>=D))U_[c][d]=O,tT[c][d]=3,ff[c][d]=0;else if(I&&(!k||N>=D))U_[c][d]=N,tT[c][d]=2,ff[c][d]=0;else if(k)U_[c][d]=D,tT[c][d]=1,ff[c][d]=ff[c-1][d-1]+1;else throw new Error("not possible")}}if(!f[0]&&!r.firstMatchCanBeWeak)return;c--,d--;const g=[U_[c][d],o];let p=0,_=0;for(;c>=1;){let w=d;do{const y=tT[c][w];if(y===3)w=w-2;else if(y===2)w=w-1;else break}while(w>=1);p>1&&e[t+c-1]===s[o+d-1]&&!kN(w+o-1,i,s)&&p+1>ff[c][w]&&(w=d),w===d?p++:p=1,_||(_=w),c--,d=w-1,g.push(d)}l-o===a&&r.boostFullMatch&&(g[0]+=2);const b=_-a;return g[0]-=b,g}function aWe(n,e,t,i,s,o){let r=n-1,a=e-1;for(;r>=t&&a>=i;)s[r]===o[a]&&(u9[r]=a,r--),a--}function lWe(n,e,t,i,s,o,r,a,l,c,d){if(e[t]!==o[r])return Number.MIN_SAFE_INTEGER;let u=1,h=!1;return r===t-i?u=n[t]===s[r]?7:5:kN(r,s,o)&&(r===0||!kN(r-1,s,o))?(u=n[t]===s[r]?7:5,h=!0):iT(o,r)&&(r===0||!iT(o,r-1))?u=5:(iT(o,r-1)||sJ(o,r-1))&&(u=5,h=!0),u>1&&t===i&&(d[0]=!0),h||(h=kN(r,s,o)||iT(o,r-1)||sJ(o,r-1)),t===i?r>l&&(u-=h?3:5):c?u+=h?2:0:u+=h?0:1,r+1===a&&(u-=h?3:5),u}function cWe(n,e,t,i,s,o,r){return dWe(n,e,t,i,s,o,!0,r)}function dWe(n,e,t,i,s,o,r,a){let l=v0(n,e,t,i,s,o,a);if(n.length>=3){const c=Math.min(7,n.length-1);for(let d=t+1;dl[0])&&(l=h))}}}return l}function uWe(n,e){if(e+1>=n.length)return;const t=n[e],i=n[e+1];if(t!==i)return n.slice(0,e)+i+t+n.slice(e+2)}const hWe="$(",m$=new RegExp(`\\$\\(${_t.iconNameExpression}(?:${_t.iconModifierExpression})?\\)`,"g"),fWe=new RegExp(`(\\\\)?${m$.source}`,"g");function gWe(n){return n.replace(fWe,(e,t)=>t?e:`\\${e}`)}const pWe=new RegExp(`\\\\${m$.source}`,"g");function mWe(n){return n.replace(pWe,e=>`\\${e}`)}const _We=new RegExp(`(\\s)?(\\\\)?${m$.source}(\\s)?`,"g");function _$(n){return n.indexOf(hWe)===-1?n:n.replace(_We,(e,t,i,s)=>i?e:t||s||"")}function vWe(n){return n?n.replace(/\$\((.*?)\)/g,(e,t)=>` ${t} `).trim():""}const E5=new RegExp(`\\$\\(${_t.iconNameCharacter}+\\)`,"g");function AS(n){E5.lastIndex=0;let e="";const t=[];let i=0;for(;;){const s=E5.lastIndex,o=E5.exec(n),r=n.substring(s,o==null?void 0:o.index);if(r.length>0){e+=r;for(let a=0;a" ".repeat(s.length)).replace(/\>/gm,"\\>").replace(/\n/g,t===1?`\\ `:` `),this}appendMarkdown(e){return this.value+=e,this}appendCodeblock(e,t){return this.value+=` ${wWe(t,e)} `,this}appendLink(e,t,i){return this.value+="[",this.value+=this._escape(t,"]"),this.value+="](",this.value+=this._escape(String(e),")"),i&&(this.value+=` "${this._escape(this._escape(i,'"'),")")}"`),this.value+=")",this}_escape(e,t){const i=new RegExp(wl(t),"g");return e.replace(i,(s,o)=>e.charAt(o-1)!=="\\"?`\\${s}`:s)}}function qC(n){return Xd(n)?!n.value:Array.isArray(n)?n.every(qC):!0}function Xd(n){return n instanceof $o?!0:n&&typeof n=="object"?typeof n.value=="string"&&(typeof n.isTrusted=="boolean"||typeof n.isTrusted=="object"||n.isTrusted===void 0)&&(typeof n.supportThemeIcons=="boolean"||n.supportThemeIcons===void 0):!1}function bWe(n,e){return n===e?!0:!n||!e?!1:n.value===e.value&&n.isTrusted===e.isTrusted&&n.supportThemeIcons===e.supportThemeIcons&&n.supportHtml===e.supportHtml&&(n.baseUri===e.baseUri||!!n.baseUri&&!!e.baseUri&&Kz(pt.from(n.baseUri),pt.from(e.baseUri)))}function CWe(n){return n.replace(/[\\`*_{}[\]()#+\-!~]/g,"\\$&")}function wWe(n,e){var t,i;const s=(i=(t=n.match(/^`+/gm))===null||t===void 0?void 0:t.reduce((r,a)=>r.length>a.length?r:a).length)!==null&&i!==void 0?i:0,o=s>=3?s+1:3;return[`${"`".repeat(o)}${e}`,n,`${"`".repeat(o)}`].join(` `)}function nT(n){return n.replace(/"/g,""")}function N5(n){return n&&n.replace(/\\([\\`*_{}[\]()#+\-.!~])/g,"$1")}function yWe(n){const e=[],t=n.split("|").map(s=>s.trim());n=t[0];const i=t[1];if(i){const s=/height=(\d+)/.exec(i),o=/width=(\d+)/.exec(i),r=s?s[1]:"",a=o?o[1]:"",l=isFinite(parseInt(a)),c=isFinite(parseInt(r));l&&e.push(`width="${a}"`),c&&e.push(`height="${r}"`)}return{href:n,dimensions:e}}class v${constructor(e){this._prefix=e,this._lastId=0}nextId(){return this._prefix+ ++this._lastId}}const h9=new v$("id#");let $r={};(function(){function n(e,t){t($r)}n.amd=!0,function(e,t){typeof n=="function"&&n.amd?n(["exports"],t):t(typeof exports=="object"&&typeof module<"u"?exports:globalThis.marked={})}(this,function(e){function t(re,Q){for(var Z=0;Zre.length)&&(Q=re.length);for(var Z=0,B=new Array(Q);Z=re.length?{done:!0}:{done:!1,value:re[B++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function a(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}e.defaults=a();function l(re){e.defaults=re}var c=/[&<>"']/,d=/[&<>"']/g,u=/[<>"']|&(?!#?\w+;)/,h=/[<>"']|&(?!#?\w+;)/g,f={"&":"&","<":"<",">":">",'"':""","'":"'"},g=function(Q){return f[Q]};function p(re,Q){if(Q){if(c.test(re))return re.replace(d,g)}else if(u.test(re))return re.replace(h,g);return re}var _=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function b(re){return re.replace(_,function(Q,Z){return Z=Z.toLowerCase(),Z==="colon"?":":Z.charAt(0)==="#"?Z.charAt(1)==="x"?String.fromCharCode(parseInt(Z.substring(2),16)):String.fromCharCode(+Z.substring(1)):""})}var w=/(^|[^\[])\^/g;function y(re,Q){re=typeof re=="string"?re:re.source,Q=Q||"";var Z={replace:function(H,Y){return Y=Y.source||Y,Y=Y.replace(w,"$1"),re=re.replace(H,Y),Z},getRegex:function(){return new RegExp(re,Q)}};return Z}var S=/[^\w:]/g,x=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function k(re,Q,Z){if(re){var B;try{B=decodeURIComponent(b(Z)).replace(S,"").toLowerCase()}catch{return null}if(B.indexOf("javascript:")===0||B.indexOf("vbscript:")===0||B.indexOf("data:")===0)return null}Q&&!x.test(Z)&&(Z=O(Q,Z));try{Z=encodeURI(Z).replace(/%25/g,"%")}catch{return null}return Z}var D={},I=/^[^:]+:\/*[^/]*$/,N=/^([^:]+:)[\s\S]*$/,P=/^([^:]+:\/*[^/]*)[\s\S]*$/;function O(re,Q){D[" "+re]||(I.test(re)?D[" "+re]=re+"/":D[" "+re]=ae(re,"/",!0)),re=D[" "+re];var Z=re.indexOf(":")===-1;return Q.substring(0,2)==="//"?Z?Q:re.replace(N,"$1")+Q:Q.charAt(0)==="/"?Z?Q:re.replace(P,"$1")+Q:re+Q}var M={exec:function(){}};function z(re){for(var Q=1,Z,B;Q=0&&ge[qe]==="\\";)Ie=!Ie;return Ie?"|":" |"}),B=Z.split(/ \|/),H=0;if(B[0].trim()||B.shift(),B.length>0&&!B[B.length-1].trim()&&B.pop(),B.length>Q)B.splice(Q);else for(;B.length1;)Q&1&&(Z+=re),Q>>=1,re+=re;return Z+re}function De(re,Q,Z,B){var H=Q.href,Y=Q.title?p(Q.title):null,G=re[1].replace(/\\([\[\]])/g,"$1");if(re[0].charAt(0)!=="!"){B.state.inLink=!0;var ge={type:"link",raw:Z,href:H,title:Y,text:G,tokens:B.inlineTokens(G)};return B.state.inLink=!1,ge}return{type:"image",raw:Z,href:H,title:Y,text:p(G)}}function lt(re,Q){var Z=re.match(/^(\s+)(?:```)/);if(Z===null)return Q;var B=Z[1];return Q.split(` `).map(function(H){var Y=H.match(/^\s+/);if(Y===null)return H;var G=Y[0];return G.length>=B.length?H.slice(B.length):H}).join(` `)}var We=function(){function re(Z){this.options=Z||e.defaults}var Q=re.prototype;return Q.space=function(B){var H=this.rules.block.newline.exec(B);if(H&&H[0].length>0)return{type:"space",raw:H[0]}},Q.code=function(B){var H=this.rules.block.code.exec(B);if(H){var Y=H[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:H[0],codeBlockStyle:"indented",text:this.options.pedantic?Y:ae(Y,` `)}}},Q.fences=function(B){var H=this.rules.block.fences.exec(B);if(H){var Y=H[0],G=lt(Y,H[3]||"");return{type:"code",raw:Y,lang:H[2]?H[2].trim():H[2],text:G}}},Q.heading=function(B){var H=this.rules.block.heading.exec(B);if(H){var Y=H[2].trim();if(/#$/.test(Y)){var G=ae(Y,"#");(this.options.pedantic||!G||/ $/.test(G))&&(Y=G.trim())}return{type:"heading",raw:H[0],depth:H[1].length,text:Y,tokens:this.lexer.inline(Y)}}},Q.hr=function(B){var H=this.rules.block.hr.exec(B);if(H)return{type:"hr",raw:H[0]}},Q.blockquote=function(B){var H=this.rules.block.blockquote.exec(B);if(H){var Y=H[0].replace(/^ *>[ \t]?/gm,"");return{type:"blockquote",raw:H[0],tokens:this.lexer.blockTokens(Y,[]),text:Y}}},Q.list=function(B){var H=this.rules.block.list.exec(B);if(H){var Y,G,ge,Ie,qe,ot,bt,xt,si,Ci,Dt,Si,Ai=H[1].trim(),mr=Ai.length>1,Ei={type:"list",raw:"",ordered:mr,start:mr?+Ai.slice(0,-1):"",loose:!1,items:[]};Ai=mr?"\\d{1,9}\\"+Ai.slice(-1):"\\"+Ai,this.options.pedantic&&(Ai=mr?Ai:"[*+-]");for(var Cs=new RegExp("^( {0,3}"+Ai+")((?:[ ][^\\n]*)?(?:\\n|$))");B&&(Si=!1,!(!(H=Cs.exec(B))||this.rules.block.hr.test(B)));){if(Y=H[0],B=B.substring(Y.length),xt=H[2].split(` `,1)[0],si=B.split(` `,1)[0],this.options.pedantic?(Ie=2,Dt=xt.trimLeft()):(Ie=H[2].search(/[^ ]/),Ie=Ie>4?1:Ie,Dt=xt.slice(Ie),Ie+=H[1].length),ot=!1,!xt&&/^ *$/.test(si)&&(Y+=si+` `,B=B.substring(si.length+1),Si=!0),!Si)for(var wu=new RegExp("^ {0,"+Math.min(3,Ie-1)+"}(?:[*+-]|\\d{1,9}[.)])((?: [^\\n]*)?(?:\\n|$))"),yu=new RegExp("^ {0,"+Math.min(3,Ie-1)+"}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)"),Nl=new RegExp("^ {0,"+Math.min(3,Ie-1)+"}(?:```|~~~)"),Su=new RegExp("^ {0,"+Math.min(3,Ie-1)+"}#");B&&(Ci=B.split(` `,1)[0],xt=Ci,this.options.pedantic&&(xt=xt.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!(Nl.test(xt)||Su.test(xt)||wu.test(xt)||yu.test(B)));){if(xt.search(/[^ ]/)>=Ie||!xt.trim())Dt+=` `+xt.slice(Ie);else if(!ot)Dt+=` `+xt;else break;!ot&&!xt.trim()&&(ot=!0),Y+=Ci+` `,B=B.substring(Ci.length+1)}Ei.loose||(bt?Ei.loose=!0:/\n *\n *$/.test(Y)&&(bt=!0)),this.options.gfm&&(G=/^\[[ xX]\] /.exec(Dt),G&&(ge=G[0]!=="[ ] ",Dt=Dt.replace(/^\[[ xX]\] +/,""))),Ei.items.push({type:"list_item",raw:Y,task:!!G,checked:ge,loose:!1,text:Dt}),Ei.raw+=Y}Ei.items[Ei.items.length-1].raw=Y.trimRight(),Ei.items[Ei.items.length-1].text=Dt.trimRight(),Ei.raw=Ei.raw.trimRight();var Kh=Ei.items.length;for(qe=0;qe1)return!0}return!1});!Ei.loose&&qh.length&&Gh&&(Ei.loose=!0,Ei.items[qe].loose=!0)}return Ei}},Q.html=function(B){var H=this.rules.block.html.exec(B);if(H){var Y={type:"html",raw:H[0],pre:!this.options.sanitizer&&(H[1]==="pre"||H[1]==="script"||H[1]==="style"),text:H[0]};if(this.options.sanitize){var G=this.options.sanitizer?this.options.sanitizer(H[0]):p(H[0]);Y.type="paragraph",Y.text=G,Y.tokens=this.lexer.inline(G)}return Y}},Q.def=function(B){var H=this.rules.block.def.exec(B);if(H){H[3]&&(H[3]=H[3].substring(1,H[3].length-1));var Y=H[1].toLowerCase().replace(/\s+/g," ");return{type:"def",tag:Y,raw:H[0],href:H[2],title:H[3]}}},Q.table=function(B){var H=this.rules.block.table.exec(B);if(H){var Y={type:"table",header:K(H[1]).map(function(bt){return{text:bt}}),align:H[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:H[3]&&H[3].trim()?H[3].replace(/\n[ \t]*$/,"").split(` `):[]};if(Y.header.length===Y.align.length){Y.raw=H[0];var G=Y.align.length,ge,Ie,qe,ot;for(ge=0;ge/i.test(H[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(H[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(H[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:H[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(H[0]):p(H[0]):H[0]}},Q.link=function(B){var H=this.rules.inline.link.exec(B);if(H){var Y=H[2].trim();if(!this.options.pedantic&&/^$/.test(Y))return;var G=ae(Y.slice(0,-1),"\\");if((Y.length-G.length)%2===0)return}else{var ge=se(H[2],"()");if(ge>-1){var Ie=H[0].indexOf("!")===0?5:4,qe=Ie+H[1].length+ge;H[2]=H[2].substring(0,ge),H[0]=H[0].substring(0,qe).trim(),H[3]=""}}var ot=H[2],bt="";if(this.options.pedantic){var xt=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(ot);xt&&(ot=xt[1],bt=xt[3])}else bt=H[3]?H[3].slice(1,-1):"";return ot=ot.trim(),/^$/.test(Y)?ot=ot.slice(1):ot=ot.slice(1,-1)),De(H,{href:ot&&ot.replace(this.rules.inline._escapes,"$1"),title:bt&&bt.replace(this.rules.inline._escapes,"$1")},H[0],this.lexer)}},Q.reflink=function(B,H){var Y;if((Y=this.rules.inline.reflink.exec(B))||(Y=this.rules.inline.nolink.exec(B))){var G=(Y[2]||Y[1]).replace(/\s+/g," ");if(G=H[G.toLowerCase()],!G||!G.href){var ge=Y[0].charAt(0);return{type:"text",raw:ge,text:ge}}return De(Y,G,Y[0],this.lexer)}},Q.emStrong=function(B,H,Y){Y===void 0&&(Y="");var G=this.rules.inline.emStrong.lDelim.exec(B);if(G&&!(G[3]&&Y.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var ge=G[1]||G[2]||"";if(!ge||ge&&(Y===""||this.rules.inline.punctuation.exec(Y))){var Ie=G[0].length-1,qe,ot,bt=Ie,xt=0,si=G[0][0]==="*"?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(si.lastIndex=0,H=H.slice(-1*B.length+Ie);(G=si.exec(H))!=null;)if(qe=G[1]||G[2]||G[3]||G[4]||G[5]||G[6],!!qe){if(ot=qe.length,G[3]||G[4]){bt+=ot;continue}else if((G[5]||G[6])&&Ie%3&&!((Ie+ot)%3)){xt+=ot;continue}if(bt-=ot,!(bt>0)){if(ot=Math.min(ot,ot+bt+xt),Math.min(Ie,ot)%2){var Ci=B.slice(1,Ie+G.index+ot);return{type:"em",raw:B.slice(0,Ie+G.index+ot+1),text:Ci,tokens:this.lexer.inlineTokens(Ci)}}var Dt=B.slice(2,Ie+G.index+ot-1);return{type:"strong",raw:B.slice(0,Ie+G.index+ot+1),text:Dt,tokens:this.lexer.inlineTokens(Dt)}}}}}},Q.codespan=function(B){var H=this.rules.inline.code.exec(B);if(H){var Y=H[2].replace(/\n/g," "),G=/[^ ]/.test(Y),ge=/^ /.test(Y)&&/ $/.test(Y);return G&&ge&&(Y=Y.substring(1,Y.length-1)),Y=p(Y,!0),{type:"codespan",raw:H[0],text:Y}}},Q.br=function(B){var H=this.rules.inline.br.exec(B);if(H)return{type:"br",raw:H[0]}},Q.del=function(B){var H=this.rules.inline.del.exec(B);if(H)return{type:"del",raw:H[0],text:H[2],tokens:this.lexer.inlineTokens(H[2])}},Q.autolink=function(B,H){var Y=this.rules.inline.autolink.exec(B);if(Y){var G,ge;return Y[2]==="@"?(G=p(this.options.mangle?H(Y[1]):Y[1]),ge="mailto:"+G):(G=p(Y[1]),ge=G),{type:"link",raw:Y[0],text:G,href:ge,tokens:[{type:"text",raw:G,text:G}]}}},Q.url=function(B,H){var Y;if(Y=this.rules.inline.url.exec(B)){var G,ge;if(Y[2]==="@")G=p(this.options.mangle?H(Y[0]):Y[0]),ge="mailto:"+G;else{var Ie;do Ie=Y[0],Y[0]=this.rules.inline._backpedal.exec(Y[0])[0];while(Ie!==Y[0]);G=p(Y[0]),Y[1]==="www."?ge="http://"+G:ge=G}return{type:"link",raw:Y[0],text:G,href:ge,tokens:[{type:"text",raw:G,text:G}]}}},Q.inlineText=function(B,H){var Y=this.rules.inline.text.exec(B);if(Y){var G;return this.lexer.state.inRawBlock?G=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(Y[0]):p(Y[0]):Y[0]:G=p(this.options.smartypants?H(Y[0]):Y[0]),{type:"text",raw:Y[0],text:G}}},re}(),Ve={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:M,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/};Ve._label=/(?!\s*\])(?:\\.|[^\[\]\\])+/,Ve._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,Ve.def=y(Ve.def).replace("label",Ve._label).replace("title",Ve._title).getRegex(),Ve.bullet=/(?:[*+-]|\d{1,9}[.)])/,Ve.listItemStart=y(/^( *)(bull) */).replace("bull",Ve.bullet).getRegex(),Ve.list=y(Ve.list).replace(/bull/g,Ve.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+Ve.def.source+")").getRegex(),Ve._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Ve._comment=/|$)/,Ve.html=y(Ve.html,"i").replace("comment",Ve._comment).replace("tag",Ve._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Ve.paragraph=y(Ve._paragraph).replace("hr",Ve.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Ve._tag).getRegex(),Ve.blockquote=y(Ve.blockquote).replace("paragraph",Ve.paragraph).getRegex(),Ve.normal=z({},Ve),Ve.gfm=z({},Ve.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),Ve.gfm.table=y(Ve.gfm.table).replace("hr",Ve.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Ve._tag).getRegex(),Ve.gfm.paragraph=y(Ve._paragraph).replace("hr",Ve.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",Ve.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Ve._tag).getRegex(),Ve.pedantic=z({},Ve.normal,{html:y(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Ve._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:M,paragraph:y(Ve.normal._paragraph).replace("hr",Ve.hr).replace("heading",` *#{1,6} *[^ ]`).replace("lheading",Ve.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var Me={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:M,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[^*]+(?=[^*])|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[^_]+(?=[^_])|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:M,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~",Me.punctuation=y(Me.punctuation).replace(/punctuation/g,Me._punctuation).getRegex(),Me.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,Me.escapedEmSt=/\\\*|\\_/g,Me._comment=y(Ve._comment).replace("(?:-->|$)","-->").getRegex(),Me.emStrong.lDelim=y(Me.emStrong.lDelim).replace(/punct/g,Me._punctuation).getRegex(),Me.emStrong.rDelimAst=y(Me.emStrong.rDelimAst,"g").replace(/punct/g,Me._punctuation).getRegex(),Me.emStrong.rDelimUnd=y(Me.emStrong.rDelimUnd,"g").replace(/punct/g,Me._punctuation).getRegex(),Me._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,Me._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Me._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,Me.autolink=y(Me.autolink).replace("scheme",Me._scheme).replace("email",Me._email).getRegex(),Me._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,Me.tag=y(Me.tag).replace("comment",Me._comment).replace("attribute",Me._attribute).getRegex(),Me._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Me._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,Me._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,Me.link=y(Me.link).replace("label",Me._label).replace("href",Me._href).replace("title",Me._title).getRegex(),Me.reflink=y(Me.reflink).replace("label",Me._label).replace("ref",Ve._label).getRegex(),Me.nolink=y(Me.nolink).replace("ref",Ve._label).getRegex(),Me.reflinkSearch=y(Me.reflinkSearch,"g").replace("reflink",Me.reflink).replace("nolink",Me.nolink).getRegex(),Me.normal=z({},Me),Me.pedantic=z({},Me.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:y(/^!?\[(label)\]\((.*?)\)/).replace("label",Me._label).getRegex(),reflink:y(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Me._label).getRegex()}),Me.gfm=z({},Me.normal,{escape:y(Me.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\.5&&(B="x"+B.toString(16)),Q+="&#"+B+";";return Q}var ni=function(){function re(Z){this.tokens=[],this.tokens.links=Object.create(null),this.options=Z||e.defaults,this.options.tokenizer=this.options.tokenizer||new We,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};var B={block:Ve.normal,inline:Me.normal};this.options.pedantic?(B.block=Ve.pedantic,B.inline=Me.pedantic):this.options.gfm&&(B.block=Ve.gfm,this.options.breaks?B.inline=Me.breaks:B.inline=Me.gfm),this.tokenizer.rules=B}re.lex=function(B,H){var Y=new re(H);return Y.lex(B)},re.lexInline=function(B,H){var Y=new re(H);return Y.inlineTokens(B)};var Q=re.prototype;return Q.lex=function(B){B=B.replace(/\r\n|\r/g,` `),this.blockTokens(B,this.tokens);for(var H;H=this.inlineQueue.shift();)this.inlineTokens(H.src,H.tokens);return this.tokens},Q.blockTokens=function(B,H){var Y=this;H===void 0&&(H=[]),this.options.pedantic?B=B.replace(/\t/g," ").replace(/^ +$/gm,""):B=B.replace(/^( *)(\t+)/gm,function(bt,xt,si){return xt+" ".repeat(si.length)});for(var G,ge,Ie,qe;B;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(function(bt){return(G=bt.call({lexer:Y},B,H))?(B=B.substring(G.raw.length),H.push(G),!0):!1}))){if(G=this.tokenizer.space(B)){B=B.substring(G.raw.length),G.raw.length===1&&H.length>0?H[H.length-1].raw+=` `:H.push(G);continue}if(G=this.tokenizer.code(B)){B=B.substring(G.raw.length),ge=H[H.length-1],ge&&(ge.type==="paragraph"||ge.type==="text")?(ge.raw+=` `+G.raw,ge.text+=` `+G.text,this.inlineQueue[this.inlineQueue.length-1].src=ge.text):H.push(G);continue}if(G=this.tokenizer.fences(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.heading(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.hr(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.blockquote(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.list(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.html(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.def(B)){B=B.substring(G.raw.length),ge=H[H.length-1],ge&&(ge.type==="paragraph"||ge.type==="text")?(ge.raw+=` `+G.raw,ge.text+=` `+G.raw,this.inlineQueue[this.inlineQueue.length-1].src=ge.text):this.tokens.links[G.tag]||(this.tokens.links[G.tag]={href:G.href,title:G.title});continue}if(G=this.tokenizer.table(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.lheading(B)){B=B.substring(G.raw.length),H.push(G);continue}if(Ie=B,this.options.extensions&&this.options.extensions.startBlock&&function(){var bt=1/0,xt=B.slice(1),si=void 0;Y.options.extensions.startBlock.forEach(function(Ci){si=Ci.call({lexer:this},xt),typeof si=="number"&&si>=0&&(bt=Math.min(bt,si))}),bt<1/0&&bt>=0&&(Ie=B.substring(0,bt+1))}(),this.state.top&&(G=this.tokenizer.paragraph(Ie))){ge=H[H.length-1],qe&&ge.type==="paragraph"?(ge.raw+=` `+G.raw,ge.text+=` `+G.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=ge.text):H.push(G),qe=Ie.length!==B.length,B=B.substring(G.raw.length);continue}if(G=this.tokenizer.text(B)){B=B.substring(G.raw.length),ge=H[H.length-1],ge&&ge.type==="text"?(ge.raw+=` `+G.raw,ge.text+=` `+G.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=ge.text):H.push(G);continue}if(B){var ot="Infinite loop on byte: "+B.charCodeAt(0);if(this.options.silent){console.error(ot);break}else throw new Error(ot)}}return this.state.top=!0,H},Q.inline=function(B,H){return H===void 0&&(H=[]),this.inlineQueue.push({src:B,tokens:H}),H},Q.inlineTokens=function(B,H){var Y=this;H===void 0&&(H=[]);var G,ge,Ie,qe=B,ot,bt,xt;if(this.tokens.links){var si=Object.keys(this.tokens.links);if(si.length>0)for(;(ot=this.tokenizer.rules.inline.reflinkSearch.exec(qe))!=null;)si.includes(ot[0].slice(ot[0].lastIndexOf("[")+1,-1))&&(qe=qe.slice(0,ot.index)+"["+me("a",ot[0].length-2)+"]"+qe.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(ot=this.tokenizer.rules.inline.blockSkip.exec(qe))!=null;)qe=qe.slice(0,ot.index)+"["+me("a",ot[0].length-2)+"]"+qe.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(ot=this.tokenizer.rules.inline.escapedEmSt.exec(qe))!=null;)qe=qe.slice(0,ot.index)+"++"+qe.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;B;)if(bt||(xt=""),bt=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(function(Dt){return(G=Dt.call({lexer:Y},B,H))?(B=B.substring(G.raw.length),H.push(G),!0):!1}))){if(G=this.tokenizer.escape(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.tag(B)){B=B.substring(G.raw.length),ge=H[H.length-1],ge&&G.type==="text"&&ge.type==="text"?(ge.raw+=G.raw,ge.text+=G.text):H.push(G);continue}if(G=this.tokenizer.link(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.reflink(B,this.tokens.links)){B=B.substring(G.raw.length),ge=H[H.length-1],ge&&G.type==="text"&&ge.type==="text"?(ge.raw+=G.raw,ge.text+=G.text):H.push(G);continue}if(G=this.tokenizer.emStrong(B,qe,xt)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.codespan(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.br(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.del(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.autolink(B,Oi)){B=B.substring(G.raw.length),H.push(G);continue}if(!this.state.inLink&&(G=this.tokenizer.url(B,Oi))){B=B.substring(G.raw.length),H.push(G);continue}if(Ie=B,this.options.extensions&&this.options.extensions.startInline&&function(){var Dt=1/0,Si=B.slice(1),Ai=void 0;Y.options.extensions.startInline.forEach(function(mr){Ai=mr.call({lexer:this},Si),typeof Ai=="number"&&Ai>=0&&(Dt=Math.min(Dt,Ai))}),Dt<1/0&&Dt>=0&&(Ie=B.substring(0,Dt+1))}(),G=this.tokenizer.inlineText(Ie,Zt)){B=B.substring(G.raw.length),G.raw.slice(-1)!=="_"&&(xt=G.raw.slice(-1)),bt=!0,ge=H[H.length-1],ge&&ge.type==="text"?(ge.raw+=G.raw,ge.text+=G.text):H.push(G);continue}if(B){var Ci="Infinite loop on byte: "+B.charCodeAt(0);if(this.options.silent){console.error(Ci);break}else throw new Error(Ci)}}return H},i(re,null,[{key:"rules",get:function(){return{block:Ve,inline:Me}}}]),re}(),Se=function(){function re(Z){this.options=Z||e.defaults}var Q=re.prototype;return Q.code=function(B,H,Y){var G=(H||"").match(/\S*/)[0];if(this.options.highlight){var ge=this.options.highlight(B,G);ge!=null&&ge!==B&&(Y=!0,B=ge)}return B=B.replace(/\n$/,"")+` `,G?'
'+(Y?B:p(B,!0))+`
`:"
"+(Y?B:p(B,!0))+`
`},Q.blockquote=function(B){return`
`+B+`
`},Q.html=function(B){return B},Q.heading=function(B,H,Y,G){if(this.options.headerIds){var ge=this.options.headerPrefix+G.slug(Y);return"'+B+" `}return""+B+" `},Q.hr=function(){return this.options.xhtml?`
`:`
`},Q.list=function(B,H,Y){var G=H?"ol":"ul",ge=H&&Y!==1?' start="'+Y+'"':"";return"<"+G+ge+`> `+B+" `},Q.listitem=function(B){return"
  • "+B+`
  • `},Q.checkbox=function(B){return" "},Q.paragraph=function(B){return"

    "+B+`

    `},Q.table=function(B,H){return H&&(H=""+H+""),` `+B+` `+H+`
    `},Q.tablerow=function(B){return` `+B+` `},Q.tablecell=function(B,H){var Y=H.header?"th":"td",G=H.align?"<"+Y+' align="'+H.align+'">':"<"+Y+">";return G+B+(" `)},Q.strong=function(B){return""+B+""},Q.em=function(B){return""+B+""},Q.codespan=function(B){return""+B+""},Q.br=function(){return this.options.xhtml?"
    ":"
    "},Q.del=function(B){return""+B+""},Q.link=function(B,H,Y){if(B=k(this.options.sanitize,this.options.baseUrl,B),B===null)return Y;var G='",G},Q.image=function(B,H,Y){if(B=k(this.options.sanitize,this.options.baseUrl,B),B===null)return Y;var G=''+Y+'":">",G},Q.text=function(B){return B},re}(),Qe=function(){function re(){}var Q=re.prototype;return Q.strong=function(B){return B},Q.em=function(B){return B},Q.codespan=function(B){return B},Q.del=function(B){return B},Q.html=function(B){return B},Q.text=function(B){return B},Q.link=function(B,H,Y){return""+Y},Q.image=function(B,H,Y){return""+Y},Q.br=function(){return""},re}(),nt=function(){function re(){this.seen={}}var Q=re.prototype;return Q.serialize=function(B){return B.toLowerCase().trim().replace(/<[!\/a-z].*?>/ig,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},Q.getNextSafeSlug=function(B,H){var Y=B,G=0;if(this.seen.hasOwnProperty(Y)){G=this.seen[B];do G++,Y=B+"-"+G;while(this.seen.hasOwnProperty(Y))}return H||(this.seen[B]=G,this.seen[Y]=0),Y},Q.slug=function(B,H){H===void 0&&(H={});var Y=this.serialize(B);return this.getNextSafeSlug(Y,H.dryrun)},re}(),mt=function(){function re(Z){this.options=Z||e.defaults,this.options.renderer=this.options.renderer||new Se,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Qe,this.slugger=new nt}re.parse=function(B,H){var Y=new re(H);return Y.parse(B)},re.parseInline=function(B,H){var Y=new re(H);return Y.parseInline(B)};var Q=re.prototype;return Q.parse=function(B,H){H===void 0&&(H=!0);var Y="",G,ge,Ie,qe,ot,bt,xt,si,Ci,Dt,Si,Ai,mr,Ei,Cs,wu,yu,Nl,Su,Kh=B.length;for(G=0;G0&&Cs.tokens[0].type==="paragraph"?(Cs.tokens[0].text=Nl+" "+Cs.tokens[0].text,Cs.tokens[0].tokens&&Cs.tokens[0].tokens.length>0&&Cs.tokens[0].tokens[0].type==="text"&&(Cs.tokens[0].tokens[0].text=Nl+" "+Cs.tokens[0].tokens[0].text)):Cs.tokens.unshift({type:"text",text:Nl}):Ei+=Nl),Ei+=this.parse(Cs.tokens,mr),Ci+=this.renderer.listitem(Ei,yu,wu);Y+=this.renderer.list(Ci,Si,Ai);continue}case"html":{Y+=this.renderer.html(Dt.text);continue}case"paragraph":{Y+=this.renderer.paragraph(this.parseInline(Dt.tokens));continue}case"text":{for(Ci=Dt.tokens?this.parseInline(Dt.tokens):Dt.text;G+1"u"||re===null)throw new Error("marked(): input parameter is undefined or null");if(typeof re!="string")throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(re)+", string expected");if(typeof Q=="function"&&(Z=Q,Q=null),Q=z({},Je.defaults,Q||{}),he(Q),Z){var B=Q.highlight,H;try{H=ni.lex(re,Q)}catch(qe){return Z(qe)}var Y=function(ot){var bt;if(!ot)try{Q.walkTokens&&Je.walkTokens(H,Q.walkTokens),bt=mt.parse(H,Q)}catch(xt){ot=xt}return Q.highlight=B,ot?Z(ot):Z(null,bt)};if(!B||B.length<3||(delete Q.highlight,!H.length))return Y();var G=0;Je.walkTokens(H,function(qe){qe.type==="code"&&(G++,setTimeout(function(){B(qe.text,qe.lang,function(ot,bt){if(ot)return Y(ot);bt!=null&&bt!==qe.text&&(qe.text=bt,qe.escaped=!0),G--,G===0&&Y()})},0))}),G===0&&Y();return}function ge(qe){if(qe.message+=` Please report this to https://github.com/markedjs/marked.`,Q.silent)return"

    An error occurred:

    "+p(qe.message+"",!0)+"
    ";throw qe}try{var Ie=ni.lex(re,Q);if(Q.walkTokens){if(Q.async)return Promise.all(Je.walkTokens(Ie,Q.walkTokens)).then(function(){return mt.parse(Ie,Q)}).catch(ge);Je.walkTokens(Ie,Q.walkTokens)}return mt.parse(Ie,Q)}catch(qe){ge(qe)}}Je.options=Je.setOptions=function(re){return z(Je.defaults,re),l(Je.defaults),Je},Je.getDefaults=a,Je.defaults=e.defaults,Je.use=function(){for(var re=arguments.length,Q=new Array(re),Z=0;Z"u"||re===null)throw new Error("marked.parseInline(): input parameter is undefined or null");if(typeof re!="string")throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(re)+", string expected");Q=z({},Je.defaults,Q||{}),he(Q);try{var Z=ni.lexInline(re,Q);return Q.walkTokens&&Je.walkTokens(Z,Q.walkTokens),mt.parseInline(Z,Q)}catch(B){if(B.message+=` Please report this to https://github.com/markedjs/marked.`,Q.silent)return"

    An error occurred:

    "+p(B.message+"",!0)+"
    ";throw B}},Je.Parser=mt,Je.parser=mt.parse,Je.Renderer=Se,Je.TextRenderer=Qe,Je.Lexer=ni,Je.lexer=ni.lex,Je.Tokenizer=We,Je.Slugger=nt,Je.parse=Je;var Ii=Je.options,J=Je.setOptions,ie=Je.use,ye=Je.walkTokens,ze=Je.parseInline,Oe=Je,et=mt.parse,vt=ni.lex;e.Lexer=ni,e.Parser=mt,e.Renderer=Se,e.Slugger=nt,e.TextRenderer=Qe,e.Tokenizer=We,e.getDefaults=a,e.lexer=vt,e.marked=Je,e.options=Ii,e.parse=Oe,e.parseInline=ze,e.parser=et,e.setOptions=J,e.use=ie,e.walkTokens=ye,Object.defineProperty(e,"__esModule",{value:!0})})})();$r.Lexer||exports.Lexer;$r.Parser||exports.Parser;$r.Renderer||exports.Renderer;$r.Slugger||exports.Slugger;$r.TextRenderer||exports.TextRenderer;$r.Tokenizer||exports.Tokenizer;$r.getDefaults||exports.getDefaults;$r.lexer||exports.lexer;var Bd=$r.marked||exports.marked;$r.options||exports.options;$r.parse||exports.parse;$r.parseInline||exports.parseInline;$r.parser||exports.parser;$r.setOptions||exports.setOptions;$r.use||exports.use;$r.walkTokens||exports.walkTokens;function SWe(n){return JSON.stringify(n,xWe)}function f9(n){let e=JSON.parse(n);return e=g9(e),e}function xWe(n,e){return e instanceof RegExp?{$mid:2,source:e.source,flags:e.flags}:e}function g9(n,e=0){if(!n||e>200)return n;if(typeof n=="object"){switch(n.$mid){case 1:return pt.revive(n);case 2:return new RegExp(n.source,n.flags);case 17:return new Date(n.source)}if(n instanceof LM||n instanceof Uint8Array)return n;if(Array.isArray(n))for(let t=0;t{let i=[],s=[];return n&&({href:n,dimensions:i}=yWe(n),s.push(`src="${nT(n)}"`)),t&&s.push(`alt="${nT(t)}"`),e&&s.push(`title="${nT(e)}"`),i.length&&(s=s.concat(i)),""},paragraph:n=>`

    ${n}

    `,link:(n,e,t)=>typeof n!="string"?"":(n===t&&(t=N5(t)),e=typeof e=="string"?nT(N5(e)):"",n=N5(n),n=n.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),`
    ${t}`)});function GM(n,e={},t={}){var i,s;const o=new be;let r=!1;const a=d$(e),l=function(b){let w;try{w=f9(decodeURIComponent(b))}catch{}return w?(w=$re(w,y=>{if(n.uris&&n.uris[y])return pt.revive(n.uris[y])}),encodeURIComponent(JSON.stringify(w))):b},c=function(b,w){const y=n.uris&&n.uris[b];let S=pt.revive(y);return w?b.startsWith(Tt.data+":")?b:(S||(S=pt.parse(b)),Wae.uriToBrowserUri(S).toString(!0)):!S||pt.parse(b).toString()===S.toString()?b:(S.query&&(S=S.with({query:l(S.query)})),S.toString())},d=new Bd.Renderer;d.image=A5.image,d.link=A5.link,d.paragraph=A5.paragraph;const u=[],h=[];if(e.codeBlockRendererSync?d.code=(b,w)=>{const y=h9.nextId(),S=e.codeBlockRendererSync(oJ(w),b);return h.push([y,S]),`
    ${ox(b)}
    `}:e.codeBlockRenderer&&(d.code=(b,w)=>{const y=h9.nextId(),S=e.codeBlockRenderer(oJ(w),b);return u.push(S.then(x=>[y,x])),`
    ${ox(b)}
    `}),e.actionHandler){const b=function(S){let x=S.target;if(!(x.tagName!=="A"&&(x=x.parentElement,!x||x.tagName!=="A")))try{let k=x.dataset.href;k&&(n.baseUri&&(k=R5(pt.from(n.baseUri),k)),e.actionHandler.callback(k,S))}catch(k){Mt(k)}finally{S.preventDefault()}},w=e.actionHandler.disposables.add(new ei(a,"click")),y=e.actionHandler.disposables.add(new ei(a,"auxclick"));e.actionHandler.disposables.add(Ae.any(w.event,y.event)(S=>{const x=new Kc(gt(a),S);!x.leftButton&&!x.middleButton||b(x)})),e.actionHandler.disposables.add(ce(a,"keydown",S=>{const x=new ln(S);!x.equals(10)&&!x.equals(3)||b(x)}))}n.supportHtml||(t.sanitizer=b=>{var w;return!((w=e.sanitizerOptions)===null||w===void 0)&&w.replaceWithPlaintext?ox(b):(n.isTrusted?b.match(/^(]+>)|(<\/\s*span>)$/):void 0)?b:""},t.sanitize=!0,t.silent=!0),t.renderer=d;let f=(i=n.value)!==null&&i!==void 0?i:"";f.length>1e5&&(f=`${f.substr(0,1e5)}…`),n.supportThemeIcons&&(f=mWe(f));let g;if(e.fillInIncompleteTokens){const b={...Bd.defaults,...t},w=Bd.lexer(f,b),y=FWe(w);g=Bd.parser(y,b)}else g=Bd.parse(f,t);n.supportThemeIcons&&(g=gm(g).map(w=>typeof w=="string"?w:w.outerHTML).join(""));const _=new DOMParser().parseFromString(p9({isTrusted:n.isTrusted,...e.sanitizerOptions},g),"text/html");if(_.body.querySelectorAll("img, audio, video, source").forEach(b=>{const w=b.getAttribute("src");if(w){let y=w;try{n.baseUri&&(y=R5(pt.from(n.baseUri),y))}catch{}if(b.setAttribute("src",c(y,!0)),e.remoteImageIsAllowed){const S=pt.parse(y);S.scheme!==Tt.file&&S.scheme!==Tt.data&&!e.remoteImageIsAllowed(S)&&b.replaceWith(ke("",void 0,b.outerHTML))}}}),_.body.querySelectorAll("a").forEach(b=>{const w=b.getAttribute("href");if(b.setAttribute("href",""),!w||/^data:|javascript:/i.test(w)||/^command:/i.test(w)&&!n.isTrusted||/^command:(\/\/\/)?_workbench\.downloadResource/i.test(w))b.replaceWith(...b.childNodes);else{let y=c(w,!1);n.baseUri&&(y=R5(pt.from(n.baseUri),w)),b.dataset.href=y}}),a.innerHTML=p9({isTrusted:n.isTrusted,...e.sanitizerOptions},_.body.innerHTML),u.length>0)Promise.all(u).then(b=>{var w,y;if(r)return;const S=new Map(b),x=a.querySelectorAll("div[data-code]");for(const k of x){const D=S.get((w=k.dataset.code)!==null&&w!==void 0?w:"");D&&yo(k,D)}(y=e.asyncRenderCallback)===null||y===void 0||y.call(e)});else if(h.length>0){const b=new Map(h),w=a.querySelectorAll("div[data-code]");for(const y of w){const S=b.get((s=y.dataset.code)!==null&&s!==void 0?s:"");S&&yo(y,S)}}if(e.asyncRenderCallback)for(const b of a.getElementsByTagName("img")){const w=o.add(ce(b,"load",()=>{w.dispose(),e.asyncRenderCallback()}))}return{element:a,dispose:()=>{r=!0,o.dispose()}}}function oJ(n){if(!n)return"";const e=n.split(/[\s+|:|,|\{|\?]/,1);return e.length?e[0]:n}function R5(n,e){return/^\w[\w\d+.-]*:/.test(e)?e:n.path.endsWith("/")?uQ(n,e).toString():uQ(VM(n),e).toString()}const LWe=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function p9(n,e){const{config:t,allowedSchemes:i}=DWe(n),s=new be;s.add(rJ("uponSanitizeAttribute",(o,r)=>{var a;if(r.attrName==="style"||r.attrName==="class"){if(o.tagName==="SPAN"){if(r.attrName==="style"){r.keepAttr=/^(color\:(#[0-9a-fA-F]+|var\(--vscode(-[a-zA-Z]+)+\));)?(background-color\:(#[0-9a-fA-F]+|var\(--vscode(-[a-zA-Z]+)+\));)?$/.test(r.attrValue);return}else if(r.attrName==="class"){r.keepAttr=/^codicon codicon-[a-z\-]+( codicon-modifier-[a-z\-]+)?$/.test(r.attrValue);return}}r.keepAttr=!1;return}else if(o.tagName==="INPUT"&&((a=o.attributes.getNamedItem("type"))===null||a===void 0?void 0:a.value)==="checkbox"){if(r.attrName==="type"&&r.attrValue==="checkbox"||r.attrName==="disabled"||r.attrName==="checked"){r.keepAttr=!0;return}r.keepAttr=!1}})),s.add(rJ("uponSanitizeElement",(o,r)=>{var a,l;if(r.tagName==="input"&&(((a=o.attributes.getNamedItem("type"))===null||a===void 0?void 0:a.value)==="checkbox"?o.setAttribute("disabled",""):n.replaceWithPlaintext||(l=o.parentElement)===null||l===void 0||l.removeChild(o)),n.replaceWithPlaintext&&!r.allowedTags[r.tagName]&&r.tagName!=="body"&&o.parentElement){let c,d;if(r.tagName==="#comment")c=``;else{const g=LWe.includes(r.tagName),p=o.attributes.length?" "+Array.from(o.attributes).map(_=>`${_.name}="${_.value}"`).join(" "):"";c=`<${r.tagName}${p}>`,g||(d=``)}const u=document.createDocumentFragment(),h=o.parentElement.ownerDocument.createTextNode(c);u.appendChild(h);const f=d?o.parentElement.ownerDocument.createTextNode(d):void 0;for(;o.firstChild;)u.appendChild(o.firstChild);f&&u.appendChild(f),o.parentElement.replaceChild(u,o)}})),s.add(FMe(i));try{return Pae(e,{...t,RETURN_TRUSTED_TYPE:!0})}finally{s.dispose()}}const kWe=["align","autoplay","alt","checked","class","controls","data-code","data-href","disabled","draggable","height","href","loop","muted","playsinline","poster","src","style","target","title","type","width","start"];function DWe(n){var e;const t=[Tt.http,Tt.https,Tt.mailto,Tt.data,Tt.file,Tt.vscodeFileResource,Tt.vscodeRemote,Tt.vscodeRemoteResource];return n.isTrusted&&t.push(Tt.command),{config:{ALLOWED_TAGS:(e=n.allowedTags)!==null&&e!==void 0?e:[...BMe],ALLOWED_ATTR:kWe,ALLOW_UNKNOWN_PROTOCOLS:!0},allowedSchemes:t}}function IWe(n){return typeof n=="string"?n:EWe(n)}function EWe(n,e){var t;let i=(t=n.value)!==null&&t!==void 0?t:"";i.length>1e5&&(i=`${i.substr(0,1e5)}…`);const s=Bd.parse(i,{renderer:AWe.value}).replace(/&(#\d+|[a-zA-Z]+);/g,o=>{var r;return(r=TWe.get(o))!==null&&r!==void 0?r:o});return p9({isTrusted:!1},s).toString()}const TWe=new Map([[""",'"'],[" "," "],["&","&"],["'","'"],["<","<"],[">",">"]]);function NWe(){const n=new Bd.Renderer;return n.code=e=>e,n.blockquote=e=>e,n.html=e=>"",n.heading=(e,t,i)=>e+` `,n.hr=()=>"",n.list=(e,t)=>e,n.listitem=e=>e+` `,n.paragraph=e=>e+` `,n.table=(e,t)=>e+t+` `,n.tablerow=e=>e,n.tablecell=(e,t)=>e+" ",n.strong=e=>e,n.em=e=>e,n.codespan=e=>e,n.br=()=>` `,n.del=e=>e,n.image=(e,t,i)=>"",n.text=e=>e,n.link=(e,t,i)=>i,n}const AWe=new pu(n=>NWe());function WL(n){let e="";return n.forEach(t=>{e+=t.raw}),e}function xde(n){var e,t;if(n.tokens)for(let i=n.tokens.length-1;i>=0;i--){const s=n.tokens[i];if(s.type==="text"){const o=s.raw.split(` `),r=o[o.length-1];if(r.includes("`"))return HWe(n);if(r.includes("**"))return KWe(n);if(r.match(/\*\w/))return VWe(n);if(r.match(/(^|\s)__\w/))return qWe(n);if(r.match(/(^|\s)_\w/))return zWe(n);if(RWe(r)||MWe(r)&&n.tokens.slice(0,i).some(a=>a.type==="text"&&a.raw.match(/\[[^\]]*$/))){const a=n.tokens.slice(i+1);return((e=a[0])===null||e===void 0?void 0:e.type)==="link"&&((t=a[1])===null||t===void 0?void 0:t.type)==="text"&&a[1].raw.match(/^ *"[^"]*$/)||r.match(/^[^"]* +"[^"]*$/)?UWe(n):$We(n)}else if(r.match(/(^|\s)\[\w*/))return jWe(n)}}}function RWe(n){return!!n.match(/(^|\s)\[.*\]\(\w*/)}function MWe(n){return!!n.match(/^[^\[]*\]\([^\)]*$/)}function PWe(n){var e;const t=n.items[n.items.length-1],i=t.tokens?t.tokens[t.tokens.length-1]:void 0;let s;if((i==null?void 0:i.type)==="text"&&!("inRawBlock"in t)&&(s=xde(i)),!s||s.type!=="paragraph")return;const o=WL(n.items.slice(0,-1)),r=(e=t.raw.match(/^(\s*(-|\d+\.) +)/))===null||e===void 0?void 0:e[0];if(!r)return;const a=r+WL(t.tokens.slice(0,-1))+s.raw,l=Bd.lexer(o+a)[0];if(l.type==="list")return l}const OWe=3;function FWe(n){for(let e=0;e"u"&&r.match(/^\s*\|/)){const a=r.match(/(\|[^\|]+)(?=\||$)/g);a&&(i=a.length)}else if(typeof i=="number")if(r.match(/^\s*\|/)){if(o!==t.length-1)return;s=!0}else return}if(typeof i=="number"&&i>0){const o=s?t.slice(0,-1).join(` `):e,r=!!o.match(/\|\s*$/),a=o+(r?"":"|")+` |${" --- |".repeat(i)}`;return Bd.lexer(a)}}function rJ(n,e){return Oae(n,e),dt(()=>Fae(n))}var ZWe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},aJ=function(n,e){return function(t,i){e(t,i,n)}},m9;let Nh=m9=class{constructor(e,t,i){this._options=e,this._languageService=t,this._openerService=i,this._onDidRenderAsync=new X,this.onDidRenderAsync=this._onDidRenderAsync.event}dispose(){this._onDidRenderAsync.dispose()}render(e,t,i){if(!e)return{element:document.createElement("span"),dispose:()=>{}};const s=new be,o=s.add(GM(e,{...this._getRenderOptions(e,s),...t},i));return o.element.classList.add("rendered-markdown"),{element:o.element,dispose:()=>s.dispose()}}_getRenderOptions(e,t){return{codeBlockRenderer:async(i,s)=>{var o,r,a;let l;i?l=this._languageService.getLanguageIdByLanguageName(i):this._options.editor&&(l=(o=this._options.editor.getModel())===null||o===void 0?void 0:o.getLanguageId()),l||(l=bl);const c=await R9e(this._languageService,s,l),d=document.createElement("span");if(d.innerHTML=(a=(r=m9._ttpTokenizer)===null||r===void 0?void 0:r.createHTML(c))!==null&&a!==void 0?a:c,this._options.editor){const u=this._options.editor.getOption(50);So(d,u)}else this._options.codeBlockFontFamily&&(d.style.fontFamily=this._options.codeBlockFontFamily);return this._options.codeBlockFontSize!==void 0&&(d.style.fontSize=this._options.codeBlockFontSize),d},asyncRenderCallback:()=>this._onDidRenderAsync.fire(),actionHandler:{callback:i=>b$(this._openerService,i,e.isTrusted),disposables:t}}}};Nh._ttpTokenizer=Bg("tokenizeToString",{createHTML(n){return n}});Nh=m9=ZWe([aJ(1,An),aJ(2,$a)],Nh);async function b$(n,e,t){try{return await n.open(e,{fromUserGesture:!0,allowContributedOpeners:!0,allowCommands:YWe(t)})}catch(i){return Mt(i),!1}}function YWe(n){return n===!0?!0:n&&Array.isArray(n.enabledCommands)?n.enabledCommands:!1}var XWe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},zy=function(n,e){return function(t,i){e(t,i,n)}};const Eu=ke;let _9=class extends Il{get _targetWindow(){return gt(this._target.targetElements[0])}get _targetDocumentElement(){return gt(this._target.targetElements[0]).document.documentElement}get isDisposed(){return this._isDisposed}get isMouseIn(){return this._lockMouseTracker.isMouseIn}get domNode(){return this._hover.containerDomNode}get onDispose(){return this._onDispose.event}get onRequestLayout(){return this._onRequestLayout.event}get anchor(){return this._hoverPosition===2?0:1}get x(){return this._x}get y(){return this._y}get isLocked(){return this._isLocked}set isLocked(e){this._isLocked!==e&&(this._isLocked=e,this._hoverContainer.classList.toggle("locked",this._isLocked))}constructor(e,t,i,s,o,r){var a,l,c,d,u,h,f,g;super(),this._keybindingService=t,this._configurationService=i,this._openerService=s,this._instantiationService=o,this._accessibilityService=r,this._messageListeners=new be,this._isDisposed=!1,this._forcePosition=!1,this._x=0,this._y=0,this._isLocked=!1,this._enableFocusTraps=!1,this._addedFocusTrap=!1,this._onDispose=this._register(new X),this._onRequestLayout=this._register(new X),this._linkHandler=e.linkHandler||(S=>b$(this._openerService,S,Xd(e.content)?e.content.isTrusted:void 0)),this._target="targetElements"in e.target?e.target:new QWe(e.target),this._hoverPointer=!((a=e.appearance)===null||a===void 0)&&a.showPointer?Eu("div.workbench-hover-pointer"):void 0,this._hover=this._register(new c$),this._hover.containerDomNode.classList.add("workbench-hover","fadeIn"),!((l=e.appearance)===null||l===void 0)&&l.compact&&this._hover.containerDomNode.classList.add("workbench-hover","compact"),!((c=e.appearance)===null||c===void 0)&&c.skipFadeInAnimation&&this._hover.containerDomNode.classList.add("skip-fade-in"),e.additionalClasses&&this._hover.containerDomNode.classList.add(...e.additionalClasses),!((d=e.position)===null||d===void 0)&&d.forcePosition&&(this._forcePosition=!0),e.trapFocus&&(this._enableFocusTraps=!0),this._hoverPosition=(h=(u=e.position)===null||u===void 0?void 0:u.hoverPosition)!==null&&h!==void 0?h:3,this.onmousedown(this._hover.containerDomNode,S=>S.stopPropagation()),this.onkeydown(this._hover.containerDomNode,S=>{S.equals(9)&&this.dispose()}),this._register(ce(this._targetWindow,"blur",()=>this.dispose()));const p=Eu("div.hover-row.markdown-hover"),_=Eu("div.hover-contents");if(typeof e.content=="string")_.textContent=e.content,_.style.whiteSpace="pre-wrap";else if(co(e.content))_.appendChild(e.content),_.classList.add("html-hover-contents");else{const S=e.content,x=this._instantiationService.createInstance(Nh,{codeBlockFontFamily:this._configurationService.getValue("editor").fontFamily||ra.fontFamily}),{element:k}=x.render(S,{actionHandler:{callback:D=>this._linkHandler(D),disposables:this._messageListeners},asyncRenderCallback:()=>{_.classList.add("code-hover-contents"),this.layout(),this._onRequestLayout.fire()}});_.appendChild(k)}if(p.appendChild(_),this._hover.contentsDomNode.appendChild(p),e.actions&&e.actions.length>0){const S=Eu("div.hover-row.status-bar"),x=Eu("div.actions");e.actions.forEach(k=>{const D=this._keybindingService.lookupKeybinding(k.commandId),I=D?D.getLabel():null;jM.render(x,{label:k.label,commandId:k.commandId,run:N=>{k.run(N),this.dispose()},iconClass:k.iconClass},I)}),S.appendChild(x),this._hover.containerDomNode.appendChild(S)}this._hoverContainer=Eu("div.workbench-hover-container"),this._hoverPointer&&this._hoverContainer.appendChild(this._hoverPointer),this._hoverContainer.appendChild(this._hover.containerDomNode);let b;if(e.actions&&e.actions.length>0?b=!1:((f=e.persistence)===null||f===void 0?void 0:f.hideOnHover)===void 0?b=typeof e.content=="string"||Xd(e.content)&&!e.content.value.includes("](")&&!e.content.value.includes(""):b=e.persistence.hideOnHover,b&&(!((g=e.appearance)===null||g===void 0)&&g.showHoverHint)){const S=Eu("div.hover-row.status-bar"),x=Eu("div.info");x.textContent=v("hoverhint","Hold {0} key to mouse over",Xt?"Option":"Alt"),S.appendChild(x),this._hover.containerDomNode.appendChild(S)}const w=[...this._target.targetElements];b||w.push(this._hoverContainer);const y=this._register(new lJ(w));if(this._register(y.onMouseOut(()=>{this._isLocked||this.dispose()})),b){const S=[...this._target.targetElements,this._hoverContainer];this._lockMouseTracker=this._register(new lJ(S)),this._register(this._lockMouseTracker.onMouseOut(()=>{this._isLocked||this.dispose()}))}else this._lockMouseTracker=y}addFocusTrap(){if(!this._enableFocusTraps||this._addedFocusTrap)return;this._addedFocusTrap=!0;const e=this._hover.containerDomNode,t=this.findLastFocusableChild(this._hover.containerDomNode);if(t){const i=oz(this._hoverContainer,Eu("div")),s=we(this._hoverContainer,Eu("div"));i.tabIndex=0,s.tabIndex=0,this._register(ce(s,"focus",o=>{e.focus(),o.preventDefault()})),this._register(ce(i,"focus",o=>{t.focus(),o.preventDefault()}))}}findLastFocusableChild(e){if(e.hasChildNodes())for(let t=0;t=0)return o}const s=this.findLastFocusableChild(i);if(s)return s}}render(e){var t;e.appendChild(this._hoverContainer);const s=this._hoverContainer.contains(this._hoverContainer.ownerDocument.activeElement)&&cde(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),(t=this._keybindingService.lookupKeybinding("editor.action.accessibleView"))===null||t===void 0?void 0:t.getAriaLabel());s&&Ih(s),this.layout(),this.addFocusTrap()}layout(){this._hover.containerDomNode.classList.remove("right-aligned"),this._hover.contentsDomNode.style.maxHeight="";const e=d=>{const u=$ae(d),h=d.getBoundingClientRect();return{top:h.top*u,bottom:h.bottom*u,right:h.right*u,left:h.left*u}},t=this._target.targetElements.map(d=>e(d)),{top:i,right:s,bottom:o,left:r}=t[0],a=s-r,l=o-i,c={top:i,right:s,bottom:o,left:r,width:a,height:l,center:{x:r+a/2,y:i+l/2}};if(this.adjustHorizontalHoverPosition(c),this.adjustVerticalHoverPosition(c),this.adjustHoverMaxHeight(c),this._hoverContainer.style.padding="",this._hoverContainer.style.margin="",this._hoverPointer){switch(this._hoverPosition){case 1:c.left+=3,c.right+=3,this._hoverContainer.style.paddingLeft="3px",this._hoverContainer.style.marginLeft="-3px";break;case 0:c.left-=3,c.right-=3,this._hoverContainer.style.paddingRight="3px",this._hoverContainer.style.marginRight="-3px";break;case 2:c.top+=3,c.bottom+=3,this._hoverContainer.style.paddingTop="3px",this._hoverContainer.style.marginTop="-3px";break;case 3:c.top-=3,c.bottom-=3,this._hoverContainer.style.paddingBottom="3px",this._hoverContainer.style.marginBottom="-3px";break}c.center.x=c.left+a/2,c.center.y=c.top+l/2}this.computeXCordinate(c),this.computeYCordinate(c),this._hoverPointer&&(this._hoverPointer.classList.remove("top"),this._hoverPointer.classList.remove("left"),this._hoverPointer.classList.remove("right"),this._hoverPointer.classList.remove("bottom"),this.setHoverPointerPosition(c)),this._hover.onContentsChanged()}computeXCordinate(e){const t=this._hover.containerDomNode.clientWidth+2;this._target.x!==void 0?this._x=this._target.x:this._hoverPosition===1?this._x=e.right:this._hoverPosition===0?this._x=e.left-t:(this._hoverPointer?this._x=e.center.x-this._hover.containerDomNode.clientWidth/2:this._x=e.left,this._x+t>=this._targetDocumentElement.clientWidth&&(this._hover.containerDomNode.classList.add("right-aligned"),this._x=Math.max(this._targetDocumentElement.clientWidth-t-2,this._targetDocumentElement.clientLeft))),this._xthis._targetWindow.innerHeight&&(this._y=e.bottom)}adjustHorizontalHoverPosition(e){if(this._target.x!==void 0)return;const t=this._hoverPointer?3:0;if(this._forcePosition){const i=t+2;this._hoverPosition===1?this._hover.containerDomNode.style.maxWidth=`${this._targetDocumentElement.clientWidth-e.right-i}px`:this._hoverPosition===0&&(this._hover.containerDomNode.style.maxWidth=`${e.left-i}px`);return}this._hoverPosition===1?this._targetDocumentElement.clientWidth-e.right=this._hover.containerDomNode.clientWidth+t?this._hoverPosition=0:this._hoverPosition=2):this._hoverPosition===0&&(e.left=this._hover.containerDomNode.clientWidth+t?this._hoverPosition=1:this._hoverPosition=2),e.left-this._hover.containerDomNode.clientWidth-t<=this._targetDocumentElement.clientLeft&&(this._hoverPosition=1))}adjustVerticalHoverPosition(e){if(this._target.y!==void 0||this._forcePosition)return;const t=this._hoverPointer?3:0;this._hoverPosition===3?e.top-this._hover.containerDomNode.clientHeight-t<0&&(this._hoverPosition=2):this._hoverPosition===2&&e.bottom+this._hover.containerDomNode.clientHeight+t>this._targetWindow.innerHeight&&(this._hoverPosition=3)}adjustHoverMaxHeight(e){let t=this._targetWindow.innerHeight/2;if(this._forcePosition){const i=(this._hoverPointer?3:0)+2;this._hoverPosition===3?t=Math.min(t,e.top-i):this._hoverPosition===2&&(t=Math.min(t,this._targetWindow.innerHeight-e.bottom-i))}if(this._hover.containerDomNode.style.maxHeight=`${t}px`,this._hover.contentsDomNode.clientHeighte.height?this._hoverPointer.style.top=`${e.center.y-(this._y-t)-3}px`:this._hoverPointer.style.top=`${Math.round(t/2)-3}px`;break}case 3:case 2:{this._hoverPointer.classList.add(this._hoverPosition===3?"bottom":"top");const t=this._hover.containerDomNode.clientWidth;let i=Math.round(t/2)-3;const s=this._x+i;(se.right)&&(i=e.center.x-this._x-3),this._hoverPointer.style.left=`${i}px`;break}}}focus(){this._hover.containerDomNode.focus()}dispose(){this._isDisposed||(this._onDispose.fire(),this._hoverContainer.remove(),this._messageListeners.dispose(),this._target.dispose(),super.dispose()),this._isDisposed=!0}};_9=XWe([zy(1,Li),zy(2,qt),zy(3,$a),zy(4,ht),zy(5,Ha)],_9);class lJ extends Il{get onMouseOut(){return this._onMouseOut.event}get isMouseIn(){return this._isMouseIn}constructor(e){super(),this._elements=e,this._isMouseIn=!0,this._onMouseOut=this._register(new X),this._elements.forEach(t=>this.onmouseover(t,()=>this._onTargetMouseOver(t))),this._elements.forEach(t=>this.onmouseleave(t,()=>this._onTargetMouseLeave(t)))}_onTargetMouseOver(e){this._isMouseIn=!0,this._clearEvaluateMouseStateTimeout(e)}_onTargetMouseLeave(e){this._isMouseIn=!1,this._evaluateMouseState(e)}_evaluateMouseState(e){this._clearEvaluateMouseStateTimeout(e),this._mouseTimeout=gt(e).setTimeout(()=>this._fireIfMouseOutside(),0)}_clearEvaluateMouseStateTimeout(e){this._mouseTimeout&&(gt(e).clearTimeout(this._mouseTimeout),this._mouseTimeout=void 0)}_fireIfMouseOutside(){this._isMouseIn||this._onMouseOut.fire()}}class QWe{constructor(e){this._element=e,this.targetElements=[this._element]}dispose(){}}var Ho;(function(n){function e(o,r){if(o.start>=r.end||r.start>=o.end)return{start:0,end:0};const a=Math.max(o.start,r.start),l=Math.min(o.end,r.end);return l-a<=0?{start:0,end:0}:{start:a,end:l}}n.intersect=e;function t(o){return o.end-o.start<=0}n.isEmpty=t;function i(o,r){return!t(e(o,r))}n.intersects=i;function s(o,r){const a=[],l={start:o.start,end:Math.min(r.start,o.end)},c={start:Math.max(r.end,o.start),end:o.end};return t(l)||a.push(l),t(c)||a.push(c),a}n.relativeComplement=s})(Ho||(Ho={}));function JWe(n){const e=n;return!!e&&typeof e.x=="number"&&typeof e.y=="number"}var Qp;(function(n){n[n.AVOID=0]="AVOID",n[n.ALIGN=1]="ALIGN"})(Qp||(Qp={}));function I1(n,e,t){const i=t.mode===Qp.ALIGN?t.offset:t.offset+t.size,s=t.mode===Qp.ALIGN?t.offset+t.size:t.offset;return t.position===0?e<=n-i?i:e<=s?s-e:Math.max(n-e,0):e<=s?s-e:e<=n-i?i:0}class GC extends ne{constructor(e,t){super(),this.container=null,this.useFixedPosition=!1,this.useShadowDOM=!1,this.delegate=null,this.toDisposeOnClean=ne.None,this.toDisposeOnSetContainer=ne.None,this.shadowRoot=null,this.shadowRootHostElement=null,this.view=ke(".context-view"),Lr(this.view),this.setContainer(e,t),this._register(dt(()=>this.setContainer(null,1)))}setContainer(e,t){var i;this.useFixedPosition=t!==1;const s=this.useShadowDOM;if(this.useShadowDOM=t===3,!(e===this.container&&s===this.useShadowDOM)&&(this.container&&(this.toDisposeOnSetContainer.dispose(),this.shadowRoot?(this.shadowRoot.removeChild(this.view),this.shadowRoot=null,(i=this.shadowRootHostElement)===null||i===void 0||i.remove(),this.shadowRootHostElement=null):this.container.removeChild(this.view),this.container=null),e)){if(this.container=e,this.useShadowDOM){this.shadowRootHostElement=ke(".shadow-root-host"),this.container.appendChild(this.shadowRootHostElement),this.shadowRoot=this.shadowRootHostElement.attachShadow({mode:"open"});const r=document.createElement("style");r.textContent=eHe,this.shadowRoot.appendChild(r),this.shadowRoot.appendChild(this.view),this.shadowRoot.appendChild(ke("slot"))}else this.container.appendChild(this.view);const o=new be;GC.BUBBLE_UP_EVENTS.forEach(r=>{o.add(rs(this.container,r,a=>{this.onDOMEvent(a,!1)}))}),GC.BUBBLE_DOWN_EVENTS.forEach(r=>{o.add(rs(this.container,r,a=>{this.onDOMEvent(a,!0)},!0))}),this.toDisposeOnSetContainer=o}}show(e){var t,i,s;this.isVisible()&&this.hide(),wo(this.view),this.view.className="context-view monaco-component",this.view.style.top="0px",this.view.style.left="0px",this.view.style.zIndex=`${2575+((t=e.layer)!==null&&t!==void 0?t:0)}`,this.view.style.position=this.useFixedPosition?"fixed":"absolute",ka(this.view),this.toDisposeOnClean=e.render(this.view)||ne.None,this.delegate=e,this.doLayout(),(s=(i=this.delegate).focus)===null||s===void 0||s.call(i)}getViewElement(){return this.view}layout(){var e,t;if(this.isVisible()){if(this.delegate.canRelayout===!1&&!(iu&&XV.pointerEvents)){this.hide();return}(t=(e=this.delegate)===null||e===void 0?void 0:e.layout)===null||t===void 0||t.call(e),this.doLayout()}}doLayout(){if(!this.isVisible())return;const e=this.delegate.getAnchor();let t;if(co(e)){const h=bs(e),f=$ae(e);t={top:h.top*f,left:h.left*f,width:h.width*f,height:h.height*f}}else JWe(e)?t={top:e.y,left:e.x,width:e.width||1,height:e.height||2}:t={top:e.posy,left:e.posx,width:2,height:2};const i=Sa(this.view),s=Zf(this.view),o=this.delegate.anchorPosition||0,r=this.delegate.anchorAlignment||0,a=this.delegate.anchorAxisAlignment||0;let l,c;const d=uN();if(a===0){const h={offset:t.top-d.pageYOffset,size:t.height,position:o===0?0:1},f={offset:t.left,size:t.width,position:r===0?0:1,mode:Qp.ALIGN};l=I1(d.innerHeight,s,h)+d.pageYOffset,Ho.intersects({start:l,end:l+s},{start:h.offset,end:h.offset+h.size})&&(f.mode=Qp.AVOID),c=I1(d.innerWidth,i,f)}else{const h={offset:t.left,size:t.width,position:r===0?0:1},f={offset:t.top,size:t.height,position:o===0?0:1,mode:Qp.ALIGN};c=I1(d.innerWidth,i,h),Ho.intersects({start:c,end:c+i},{start:h.offset,end:h.offset+h.size})&&(f.mode=Qp.AVOID),l=I1(d.innerHeight,s,f)+d.pageYOffset}this.view.classList.remove("top","bottom","left","right"),this.view.classList.add(o===0?"bottom":"top"),this.view.classList.add(r===0?"left":"right"),this.view.classList.toggle("fixed",this.useFixedPosition);const u=bs(this.container);this.view.style.top=`${l-(this.useFixedPosition?bs(this.view).top:u.top)}px`,this.view.style.left=`${c-(this.useFixedPosition?bs(this.view).left:u.left)}px`,this.view.style.width="initial"}hide(e){const t=this.delegate;this.delegate=null,t!=null&&t.onHide&&t.onHide(e),this.toDisposeOnClean.dispose(),Lr(this.view)}isVisible(){return!!this.delegate}onDOMEvent(e,t){this.delegate&&(this.delegate.onDOMEvent?this.delegate.onDOMEvent(e,gt(e).document.activeElement):t&&!Zs(e.target,this.container)&&this.hide())}dispose(){this.hide(),super.dispose()}}GC.BUBBLE_UP_EVENTS=["click","keydown","focus","blur"];GC.BUBBLE_DOWN_EVENTS=["click"];const eHe=` :host { all: initial; /* 1st rule so subsequent properties are reset. */ } .codicon[class*='codicon-'] { font: normal normal normal 16px/1 codicon; display: inline-block; text-decoration: none; text-rendering: auto; text-align: center; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; user-select: none; -webkit-user-select: none; -ms-user-select: none; } :host { font-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "HelveticaNeue-Light", system-ui, "Ubuntu", "Droid Sans", sans-serif; } :host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; } :host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", sans-serif; } :host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang TC", sans-serif; } :host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic Pro", sans-serif; } :host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, "Nanum Gothic", "Apple SD Gothic Neo", "AppleGothic", sans-serif; } :host-context(.windows) { font-family: "Segoe WPC", "Segoe UI", sans-serif; } :host-context(.windows:lang(zh-Hans)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft YaHei", sans-serif; } :host-context(.windows:lang(zh-Hant)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft Jhenghei", sans-serif; } :host-context(.windows:lang(ja)) { font-family: "Segoe WPC", "Segoe UI", "Yu Gothic UI", "Meiryo UI", sans-serif; } :host-context(.windows:lang(ko)) { font-family: "Segoe WPC", "Segoe UI", "Malgun Gothic", "Dotom", sans-serif; } :host-context(.linux) { font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif; } :host-context(.linux:lang(zh-Hans)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans SC", "Source Han Sans CN", "Source Han Sans", sans-serif; } :host-context(.linux:lang(zh-Hant)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans TC", "Source Han Sans TW", "Source Han Sans", sans-serif; } :host-context(.linux:lang(ja)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans J", "Source Han Sans JP", "Source Han Sans", sans-serif; } :host-context(.linux:lang(ko)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans K", "Source Han Sans JR", "Source Han Sans", "UnDotum", "FBaekmuk Gulim", sans-serif; } `;var tHe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},iHe=function(n,e){return function(t,i){e(t,i,n)}};let _A=class extends ne{constructor(e){super(),this.layoutService=e,this.contextView=this._register(new GC(this.layoutService.mainContainer,1)),this.layout(),this._register(e.onDidLayoutContainer(()=>this.layout()))}showContextView(e,t,i){let s;t?t===this.layoutService.getContainer(gt(t))?s=1:i?s=3:s=2:s=1,this.contextView.setContainer(t??this.layoutService.activeContainer,s),this.contextView.show(e);const o={close:()=>{this.openContextView===o&&this.hideContextView()}};return this.openContextView=o,o}layout(){this.contextView.layout()}hideContextView(e){this.contextView.hide(e),this.openContextView=void 0}};_A=tHe([iHe(0,g_)],_A);class nHe extends _A{getContextViewElement(){return this.contextView.getViewElement()}}class sHe{constructor(e,t,i){this.hoverDelegate=e,this.target=t,this.fadeInAnimation=i}async update(e,t,i){var s;if(this._cancellationTokenSource&&(this._cancellationTokenSource.dispose(!0),this._cancellationTokenSource=void 0),this.isDisposed)return;let o;if(e===void 0||Pr(e)||co(e))o=e;else if(!nL(e.markdown))o=(s=e.markdown)!==null&&s!==void 0?s:e.markdownNotSupportedFallback;else{this._hoverWidget||this.show(v("iconLabel.loading","Loading..."),t,i),this._cancellationTokenSource=new $n;const r=this._cancellationTokenSource.token;if(o=await e.markdown(r),o===void 0&&(o=e.markdownNotSupportedFallback),this.isDisposed||r.isCancellationRequested)return}this.show(o,t,i)}show(e,t,i){const s=this._hoverWidget;if(this.hasContent(e)){const o={content:e,target:this.target,appearance:{showPointer:this.hoverDelegate.placement==="element",skipFadeInAnimation:!this.fadeInAnimation||!!s},position:{hoverPosition:2},...i};this._hoverWidget=this.hoverDelegate.showHover(o,t)}s==null||s.dispose()}hasContent(e){return e?Xd(e)?!!e.value:!0:!1}get isDisposed(){var e;return(e=this._hoverWidget)===null||e===void 0?void 0:e.isDisposed}dispose(){var e,t;(e=this._hoverWidget)===null||e===void 0||e.dispose(),(t=this._cancellationTokenSource)===null||t===void 0||t.dispose(!0),this._cancellationTokenSource=void 0}}var oHe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},$y=function(n,e){return function(t,i){e(t,i,n)}};let v9=class extends ne{constructor(e,t,i,s,o){super(),this._instantiationService=e,this._keybindingService=i,this._layoutService=s,this._accessibilityService=o,this._existingHovers=new Map,t.onDidShowContextMenu(()=>this.hideHover()),this._contextViewHandler=this._register(new _A(this._layoutService))}showHover(e,t,i){var s,o,r,a;if(cJ(this._currentHoverOptions)===cJ(e)||this._currentHover&&(!((o=(s=this._currentHoverOptions)===null||s===void 0?void 0:s.persistence)===null||o===void 0)&&o.sticky))return;this._currentHoverOptions=e,this._lastHoverOptions=e;const l=e.trapFocus||this._accessibilityService.isScreenReaderOptimized(),c=Ao();i||(l&&c?c.classList.contains("monaco-hover")||(this._lastFocusedElementBeforeOpen=c):this._lastFocusedElementBeforeOpen=void 0);const d=new be,u=this._instantiationService.createInstance(_9,e);if(!((r=e.persistence)===null||r===void 0)&&r.sticky&&(u.isLocked=!0),u.onDispose(()=>{var h,f;((h=this._currentHover)===null||h===void 0?void 0:h.domNode)&&jae(this._currentHover.domNode)&&((f=this._lastFocusedElementBeforeOpen)===null||f===void 0||f.focus()),this._currentHoverOptions===e&&(this._currentHoverOptions=void 0),d.dispose()},void 0,d),!e.container){const h=co(e.target)?e.target:e.target.targetElements[0];e.container=this._layoutService.getContainer(gt(h))}if(this._contextViewHandler.showContextView(new rHe(u,t),e.container),u.onRequestLayout(()=>this._contextViewHandler.layout(),void 0,d),!((a=e.persistence)===null||a===void 0)&&a.sticky)d.add(ce(gt(e.container).document,Le.MOUSE_DOWN,h=>{Zs(h.target,u.domNode)||this.doHideHover()}));else{if("targetElements"in e.target)for(const f of e.target.targetElements)d.add(ce(f,Le.CLICK,()=>this.hideHover()));else d.add(ce(e.target,Le.CLICK,()=>this.hideHover()));const h=Ao();if(h){const f=gt(h).document;d.add(ce(h,Le.KEY_DOWN,g=>{var p;return this._keyDown(g,u,!!(!((p=e.persistence)===null||p===void 0)&&p.hideOnKeyDown))})),d.add(ce(f,Le.KEY_DOWN,g=>{var p;return this._keyDown(g,u,!!(!((p=e.persistence)===null||p===void 0)&&p.hideOnKeyDown))})),d.add(ce(h,Le.KEY_UP,g=>this._keyUp(g,u))),d.add(ce(f,Le.KEY_UP,g=>this._keyUp(g,u)))}}if("IntersectionObserver"in Ji){const h=new IntersectionObserver(g=>this._intersectionChange(g,u),{threshold:0}),f="targetElements"in e.target?e.target.targetElements[0]:e.target;h.observe(f),d.add(dt(()=>h.disconnect()))}return this._currentHover=u,u}hideHover(){var e;!((e=this._currentHover)===null||e===void 0)&&e.isLocked||!this._currentHoverOptions||this.doHideHover()}doHideHover(){this._currentHover=void 0,this._currentHoverOptions=void 0,this._contextViewHandler.hideContextView()}_intersectionChange(e,t){e[e.length-1].isIntersecting||t.dispose()}showAndFocusLastHover(){this._lastHoverOptions&&this.showHover(this._lastHoverOptions,!0,!0)}_keyDown(e,t,i){var s,o;if(e.key==="Alt"){t.isLocked=!0;return}const r=new ln(e);this._keybindingService.resolveKeyboardEvent(r).getSingleModifierDispatchChords().some(l=>!!l)||this._keybindingService.softDispatch(r,r.target).kind!==0||i&&(!(!((s=this._currentHoverOptions)===null||s===void 0)&&s.trapFocus)||e.key!=="Tab")&&(this.hideHover(),(o=this._lastFocusedElementBeforeOpen)===null||o===void 0||o.focus())}_keyUp(e,t){var i;e.key==="Alt"&&(t.isLocked=!1,t.isMouseIn||(this.hideHover(),(i=this._lastFocusedElementBeforeOpen)===null||i===void 0||i.focus()))}setupUpdatableHover(e,t,i,s){t.setAttribute("custom-hover","true"),t.title!==""&&(console.warn("HTML element already has a title attribute, which will conflict with the custom hover. Please remove the title attribute."),console.trace("Stack trace:",t.title),t.title="");let o,r;const a=(y,S)=>{var x;const k=r!==void 0;y&&(r==null||r.dispose(),r=void 0),S&&(o==null||o.dispose(),o=void 0),k&&((x=e.onDidHideHover)===null||x===void 0||x.call(e),r=void 0)},l=(y,S,x,k)=>new cd(async()=>{(!r||r.isDisposed)&&(r=new sHe(e,x||t,y>0),await r.update(typeof i=="function"?i():i,S,{...s,trapFocus:k}))},y);let c=!1;const d=ce(t,Le.MOUSE_DOWN,()=>{c=!0,a(!0,!0)},!0),u=ce(t,Le.MOUSE_UP,()=>{c=!1},!0),h=ce(t,Le.MOUSE_LEAVE,y=>{c=!1,a(!1,y.fromElement===t)},!0),f=y=>{if(o)return;const S=new be,x={targetElements:[t],dispose:()=>{}};if(e.placement===void 0||e.placement==="mouse"){const k=D=>{x.x=D.x+10,co(D.target)&&dJ(D.target,t)!==t&&a(!0,!0)};S.add(ce(t,Le.MOUSE_MOVE,k,!0))}o=S,!(co(y.target)&&dJ(y.target,t)!==t)&&S.add(l(e.delay,!1,x))},g=ce(t,Le.MOUSE_OVER,f,!0),p=()=>{if(c||o)return;const y={targetElements:[t],dispose:()=>{}},S=new be,x=()=>a(!0,!0);S.add(ce(t,Le.BLUR,x,!0)),S.add(l(e.delay,!1,y)),o=S};let _;const b=t.tagName.toLowerCase();b!=="input"&&b!=="textarea"&&(_=ce(t,Le.FOCUS,p,!0));const w={show:y=>{a(!1,!0),l(0,y,void 0,y)},hide:()=>{a(!0,!0)},update:async(y,S)=>{i=y,await(r==null?void 0:r.update(i,void 0,S))},dispose:()=>{this._existingHovers.delete(t),g.dispose(),h.dispose(),d.dispose(),u.dispose(),_==null||_.dispose(),a(!0,!0)}};return this._existingHovers.set(t,w),w}triggerUpdatableHover(e){const t=this._existingHovers.get(e);t&&t.show(!0)}dispose(){this._existingHovers.forEach(e=>e.dispose()),super.dispose()}};v9=oHe([$y(0,ht),$y(1,za),$y(2,Li),$y(3,g_),$y(4,Ha)],v9);function cJ(n){var e;if(n!==void 0)return(e=n==null?void 0:n.id)!==null&&e!==void 0?e:n}class rHe{get anchorPosition(){return this._hover.anchor}constructor(e,t=!1){this._hover=e,this._focus=t,this.layer=1}render(e){return this._hover.render(e),this._focus&&this._hover.focus(),this._hover}getAnchor(){return{x:this._hover.x,y:this._hover.y}}layout(){this._hover.layout()}}function dJ(n,e){for(e=e??gt(n).document.body;!n.hasAttribute("custom-hover")&&n!==e;)n=n.parentElement;return n}ai($h,v9,1);mc((n,e)=>{const t=n.getColor(zle);t&&(e.addRule(`.monaco-workbench .workbench-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${t.transparent(.5)}; }`),e.addRule(`.monaco-workbench .workbench-hover hr { border-top: 1px solid ${t.transparent(.5)}; }`))});const ED=Jt("IWorkspaceEditService");class C${constructor(e){this.metadata=e}static convert(e){return e.edits.map(t=>{if(pm.is(t))return pm.lift(t);if(aC.is(t))return aC.lift(t);throw new Error("Unsupported edit")})}}class pm extends C${static is(e){return e instanceof pm?!0:Er(e)&&pt.isUri(e.resource)&&Er(e.textEdit)}static lift(e){return e instanceof pm?e:new pm(e.resource,e.textEdit,e.versionId,e.metadata)}constructor(e,t,i=void 0,s){super(s),this.resource=e,this.textEdit=t,this.versionId=i}}class aC extends C${static is(e){return e instanceof aC?!0:Er(e)&&(!!e.newResource||!!e.oldResource)}static lift(e){return e instanceof aC?e:new aC(e.oldResource,e.newResource,e.options,e.metadata)}constructor(e,t,i={},s){super(s),this.oldResource=e,this.newResource=t,this.options=i}}const Wo={enableSplitViewResizing:!0,renderSideBySide:!0,renderMarginRevertIcon:!0,renderGutterMenu:!0,maxComputationTime:5e3,maxFileSize:50,ignoreTrimWhitespace:!0,renderIndicators:!0,originalEditable:!1,diffCodeLens:!1,renderOverviewRuler:!0,diffWordWrap:"inherit",diffAlgorithm:"advanced",accessibilityVerbose:!1,experimental:{showMoves:!1,showEmptyDecorations:!0},hideUnchangedRegions:{enabled:!1,contextLineCount:3,minimumLineCount:3,revealLineCount:20},isInEmbeddedEditor:!1,onlyShowAccessibleDiffViewer:!1,renderSideBySideInlineBreakpoint:900,useInlineViewWhenSpaceIsLimited:!0},ZM=Object.freeze({id:"editor",order:5,type:"object",title:v("editorConfigurationTitle","Editor"),scope:5}),vA={...ZM,properties:{"editor.tabSize":{type:"number",default:zo.tabSize,minimum:1,markdownDescription:v("tabSize","The number of spaces a tab is equal to. This setting is overridden based on the file contents when {0} is on.","`#editor.detectIndentation#`")},"editor.indentSize":{anyOf:[{type:"string",enum:["tabSize"]},{type:"number",minimum:1}],default:"tabSize",markdownDescription:v("indentSize",'The number of spaces used for indentation or `"tabSize"` to use the value from `#editor.tabSize#`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.')},"editor.insertSpaces":{type:"boolean",default:zo.insertSpaces,markdownDescription:v("insertSpaces","Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when {0} is on.","`#editor.detectIndentation#`")},"editor.detectIndentation":{type:"boolean",default:zo.detectIndentation,markdownDescription:v("detectIndentation","Controls whether {0} and {1} will be automatically detected when a file is opened based on the file contents.","`#editor.tabSize#`","`#editor.insertSpaces#`")},"editor.trimAutoWhitespace":{type:"boolean",default:zo.trimAutoWhitespace,description:v("trimAutoWhitespace","Remove trailing auto inserted whitespace.")},"editor.largeFileOptimizations":{type:"boolean",default:zo.largeFileOptimizations,description:v("largeFileOptimizations","Special handling for large files to disable certain memory intensive features.")},"editor.wordBasedSuggestions":{enum:["off","currentDocument","matchingDocuments","allDocuments"],default:"matchingDocuments",enumDescriptions:[v("wordBasedSuggestions.off","Turn off Word Based Suggestions."),v("wordBasedSuggestions.currentDocument","Only suggest words from the active document."),v("wordBasedSuggestions.matchingDocuments","Suggest words from all open documents of the same language."),v("wordBasedSuggestions.allDocuments","Suggest words from all open documents.")],description:v("wordBasedSuggestions","Controls whether completions should be computed based on words in the document and from which documents they are computed.")},"editor.semanticHighlighting.enabled":{enum:[!0,!1,"configuredByTheme"],enumDescriptions:[v("semanticHighlighting.true","Semantic highlighting enabled for all color themes."),v("semanticHighlighting.false","Semantic highlighting disabled for all color themes."),v("semanticHighlighting.configuredByTheme","Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.")],default:"configuredByTheme",description:v("semanticHighlighting.enabled","Controls whether the semanticHighlighting is shown for the languages that support it.")},"editor.stablePeek":{type:"boolean",default:!1,markdownDescription:v("stablePeek","Keep peek editors open even when double-clicking their content or when hitting `Escape`.")},"editor.maxTokenizationLineLength":{type:"integer",default:2e4,description:v("maxTokenizationLineLength","Lines above this length will not be tokenized for performance reasons")},"editor.experimental.asyncTokenization":{type:"boolean",default:!1,description:v("editor.experimental.asyncTokenization","Controls whether the tokenization should happen asynchronously on a web worker."),tags:["experimental"]},"editor.experimental.asyncTokenizationLogging":{type:"boolean",default:!1,description:v("editor.experimental.asyncTokenizationLogging","Controls whether async tokenization should be logged. For debugging only.")},"editor.experimental.asyncTokenizationVerification":{type:"boolean",default:!1,description:v("editor.experimental.asyncTokenizationVerification","Controls whether async tokenization should be verified against legacy background tokenization. Might slow down tokenization. For debugging only."),tags:["experimental"]},"editor.language.brackets":{type:["array","null"],default:null,description:v("schema.brackets","Defines the bracket symbols that increase or decrease the indentation."),items:{type:"array",items:[{type:"string",description:v("schema.openBracket","The opening bracket character or string sequence.")},{type:"string",description:v("schema.closeBracket","The closing bracket character or string sequence.")}]}},"editor.language.colorizedBracketPairs":{type:["array","null"],default:null,description:v("schema.colorizedBracketPairs","Defines the bracket pairs that are colorized by their nesting level if bracket pair colorization is enabled."),items:{type:"array",items:[{type:"string",description:v("schema.openBracket","The opening bracket character or string sequence.")},{type:"string",description:v("schema.closeBracket","The closing bracket character or string sequence.")}]}},"diffEditor.maxComputationTime":{type:"number",default:Wo.maxComputationTime,description:v("maxComputationTime","Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.")},"diffEditor.maxFileSize":{type:"number",default:Wo.maxFileSize,description:v("maxFileSize","Maximum file size in MB for which to compute diffs. Use 0 for no limit.")},"diffEditor.renderSideBySide":{type:"boolean",default:Wo.renderSideBySide,description:v("sideBySide","Controls whether the diff editor shows the diff side by side or inline.")},"diffEditor.renderSideBySideInlineBreakpoint":{type:"number",default:Wo.renderSideBySideInlineBreakpoint,description:v("renderSideBySideInlineBreakpoint","If the diff editor width is smaller than this value, the inline view is used.")},"diffEditor.useInlineViewWhenSpaceIsLimited":{type:"boolean",default:Wo.useInlineViewWhenSpaceIsLimited,description:v("useInlineViewWhenSpaceIsLimited","If enabled and the editor width is too small, the inline view is used.")},"diffEditor.renderMarginRevertIcon":{type:"boolean",default:Wo.renderMarginRevertIcon,description:v("renderMarginRevertIcon","When enabled, the diff editor shows arrows in its glyph margin to revert changes.")},"diffEditor.renderGutterMenu":{type:"boolean",default:Wo.renderGutterMenu,description:v("renderGutterMenu","When enabled, the diff editor shows a special gutter for revert and stage actions.")},"diffEditor.ignoreTrimWhitespace":{type:"boolean",default:Wo.ignoreTrimWhitespace,description:v("ignoreTrimWhitespace","When enabled, the diff editor ignores changes in leading or trailing whitespace.")},"diffEditor.renderIndicators":{type:"boolean",default:Wo.renderIndicators,description:v("renderIndicators","Controls whether the diff editor shows +/- indicators for added/removed changes.")},"diffEditor.codeLens":{type:"boolean",default:Wo.diffCodeLens,description:v("codeLens","Controls whether the editor shows CodeLens.")},"diffEditor.wordWrap":{type:"string",enum:["off","on","inherit"],default:Wo.diffWordWrap,markdownEnumDescriptions:[v("wordWrap.off","Lines will never wrap."),v("wordWrap.on","Lines will wrap at the viewport width."),v("wordWrap.inherit","Lines will wrap according to the {0} setting.","`#editor.wordWrap#`")]},"diffEditor.diffAlgorithm":{type:"string",enum:["legacy","advanced"],default:Wo.diffAlgorithm,markdownEnumDescriptions:[v("diffAlgorithm.legacy","Uses the legacy diffing algorithm."),v("diffAlgorithm.advanced","Uses the advanced diffing algorithm.")],tags:["experimental"]},"diffEditor.hideUnchangedRegions.enabled":{type:"boolean",default:Wo.hideUnchangedRegions.enabled,markdownDescription:v("hideUnchangedRegions.enabled","Controls whether the diff editor shows unchanged regions.")},"diffEditor.hideUnchangedRegions.revealLineCount":{type:"integer",default:Wo.hideUnchangedRegions.revealLineCount,markdownDescription:v("hideUnchangedRegions.revealLineCount","Controls how many lines are used for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.minimumLineCount":{type:"integer",default:Wo.hideUnchangedRegions.minimumLineCount,markdownDescription:v("hideUnchangedRegions.minimumLineCount","Controls how many lines are used as a minimum for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.contextLineCount":{type:"integer",default:Wo.hideUnchangedRegions.contextLineCount,markdownDescription:v("hideUnchangedRegions.contextLineCount","Controls how many lines are used as context when comparing unchanged regions."),minimum:1},"diffEditor.experimental.showMoves":{type:"boolean",default:Wo.experimental.showMoves,markdownDescription:v("showMoves","Controls whether the diff editor should show detected code moves.")},"diffEditor.experimental.showEmptyDecorations":{type:"boolean",default:Wo.experimental.showEmptyDecorations,description:v("showEmptyDecorations","Controls whether the diff editor shows empty decorations to see where characters got inserted or deleted.")}}};function aHe(n){return typeof n.type<"u"||typeof n.anyOf<"u"}for(const n of h1){const e=n.schema;if(typeof e<"u")if(aHe(e))vA.properties[`editor.${n.name}`]=e;else for(const t in e)Object.hasOwnProperty.call(e,t)&&(vA.properties[t]=e[t])}let sT=null;function Lde(){return sT===null&&(sT=Object.create(null),Object.keys(vA.properties).forEach(n=>{sT[n]=!0})),sT}function lHe(n){return Lde()[`editor.${n}`]||!1}function cHe(n){return Lde()[`diffEditor.${n}`]||!1}const dHe=Un.as(_u.Configuration);dHe.registerConfiguration(vA);class Mn{static insert(e,t){return{range:new A(e.lineNumber,e.column,e.lineNumber,e.column),text:t,forceMoveMarkers:!0}}static delete(e){return{range:e,text:null}}static replace(e,t){return{range:e,text:t}}static replaceMove(e,t){return{range:e,text:t,forceMoveMarkers:!0}}}function oT(n){return Object.isFrozen(n)?n:h2e(n)}class bo{static createEmptyModel(e){return new bo({},[],[],void 0,e)}constructor(e,t,i,s,o){this._contents=e,this._keys=t,this._overrides=i,this.raw=s,this.logService=o,this.overrideConfigurations=new Map}get rawConfiguration(){var e;if(!this._rawConfiguration)if(!((e=this.raw)===null||e===void 0)&&e.length){const t=this.raw.map(i=>{if(i instanceof bo)return i;const s=new uHe("",this.logService);return s.parseRaw(i),s.configurationModel});this._rawConfiguration=t.reduce((i,s)=>s===i?s:i.merge(s),t[0])}else this._rawConfiguration=this;return this._rawConfiguration}get contents(){return this._contents}get overrides(){return this._overrides}get keys(){return this._keys}isEmpty(){return this._keys.length===0&&Object.keys(this._contents).length===0&&this._overrides.length===0}getValue(e){return e?OY(this.contents,e):this.contents}inspect(e,t){const i=this;return{get value(){return oT(i.rawConfiguration.getValue(e))},get override(){return t?oT(i.rawConfiguration.getOverrideValue(e,t)):void 0},get merged(){return oT(t?i.rawConfiguration.override(t).getValue(e):i.rawConfiguration.getValue(e))},get overrides(){const s=[];for(const{contents:o,identifiers:r,keys:a}of i.rawConfiguration.overrides){const l=new bo(o,a,[],void 0,i.logService).getValue(e);l!==void 0&&s.push({identifiers:r,value:l})}return s.length?oT(s):void 0}}}getOverrideValue(e,t){const i=this.getContentsForOverrideIdentifer(t);return i?e?OY(i,e):i:void 0}override(e){let t=this.overrideConfigurations.get(e);return t||(t=this.createOverrideConfigurationModel(e),this.overrideConfigurations.set(e,t)),t}merge(...e){var t,i;const s=Tf(this.contents),o=Tf(this.overrides),r=[...this.keys],a=!((t=this.raw)===null||t===void 0)&&t.length?[...this.raw]:[this];for(const l of e)if(a.push(...!((i=l.raw)===null||i===void 0)&&i.length?l.raw:[l]),!l.isEmpty()){this.mergeContents(s,l.contents);for(const c of l.overrides){const[d]=o.filter(u=>zn(u.identifiers,c.identifiers));d?(this.mergeContents(d.contents,c.contents),d.keys.push(...c.keys),d.keys=xg(d.keys)):o.push(Tf(c))}for(const c of l.keys)r.indexOf(c)===-1&&r.push(c)}return new bo(s,r,o,a.every(l=>l instanceof bo)?void 0:a,this.logService)}createOverrideConfigurationModel(e){const t=this.getContentsForOverrideIdentifer(e);if(!t||typeof t!="object"||!Object.keys(t).length)return this;const i={};for(const s of xg([...Object.keys(this.contents),...Object.keys(t)])){let o=this.contents[s];const r=t[s];r&&(typeof o=="object"&&typeof r=="object"?(o=Tf(o),this.mergeContents(o,r)):o=r),i[s]=o}return new bo(i,this.keys,this.overrides,void 0,this.logService)}mergeContents(e,t){for(const i of Object.keys(t)){if(i in e&&Er(e[i])&&Er(t[i])){this.mergeContents(e[i],t[i]);continue}e[i]=Tf(t[i])}}getContentsForOverrideIdentifer(e){let t=null,i=null;const s=o=>{o&&(i?this.mergeContents(i,o):i=Tf(o))};for(const o of this.overrides)o.identifiers.length===1&&o.identifiers[0]===e?t=o.contents:o.identifiers.includes(e)&&s(o.contents);return s(t),i}toJSON(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}}addValue(e,t){this.updateValue(e,t,!0)}setValue(e,t){this.updateValue(e,t,!1)}removeValue(e){const t=this.keys.indexOf(e);t!==-1&&(this.keys.splice(t,1),qPe(this.contents,e),Bm.test(e)&&this.overrides.splice(this.overrides.findIndex(i=>zn(i.identifiers,$2(e))),1))}updateValue(e,t,i){gle(this.contents,e,t,s=>this.logService.error(s)),i=i||this.keys.indexOf(e)===-1,i&&this.keys.push(e),Bm.test(e)&&this.overrides.push({identifiers:$2(e),keys:Object.keys(this.contents[e]),contents:fB(this.contents[e],s=>this.logService.error(s))})}}class uHe{constructor(e,t){this._name=e,this.logService=t,this._raw=null,this._configurationModel=null,this._restrictedConfigurations=[]}get configurationModel(){return this._configurationModel||bo.createEmptyModel(this.logService)}parseRaw(e,t){this._raw=e;const{contents:i,keys:s,overrides:o,restricted:r,hasExcludedProperties:a}=this.doParseRaw(e,t);this._configurationModel=new bo(i,s,o,a?[e]:void 0,this.logService),this._restrictedConfigurations=r||[]}doParseRaw(e,t){const i=Un.as(_u.Configuration).getConfigurationProperties(),s=this.filter(e,i,!0,t);e=s.raw;const o=fB(e,l=>this.logService.error(`Conflict in settings file ${this._name}: ${l}`)),r=Object.keys(e),a=this.toOverrides(e,l=>this.logService.error(`Conflict in settings file ${this._name}: ${l}`));return{contents:o,keys:r,overrides:a,restricted:s.restricted,hasExcludedProperties:s.hasExcludedProperties}}filter(e,t,i,s){var o,r,a;let l=!1;if(!(s!=null&&s.scopes)&&!(s!=null&&s.skipRestricted)&&!(!((o=s==null?void 0:s.exclude)===null||o===void 0)&&o.length))return{raw:e,restricted:[],hasExcludedProperties:l};const c={},d=[];for(const u in e)if(Bm.test(u)&&i){const h=this.filter(e[u],t,!1,s);c[u]=h.raw,l=l||h.hasExcludedProperties,d.push(...h.restricted)}else{const h=t[u],f=h?typeof h.scope<"u"?h.scope:3:void 0;h!=null&&h.restricted&&d.push(u),!(!((r=s.exclude)===null||r===void 0)&&r.includes(u))&&(!((a=s.include)===null||a===void 0)&&a.includes(u)||(f===void 0||s.scopes===void 0||s.scopes.includes(f))&&!(s.skipRestricted&&(h!=null&&h.restricted)))?c[u]=e[u]:l=!0}return{raw:c,restricted:d,hasExcludedProperties:l}}toOverrides(e,t){const i=[];for(const s of Object.keys(e))if(Bm.test(s)){const o={};for(const r in e[s])o[r]=e[s][r];i.push({identifiers:$2(s),keys:Object.keys(o),contents:fB(o,t)})}return i}}class hHe{constructor(e,t,i,s,o,r,a,l,c,d,u,h,f){this.key=e,this.overrides=t,this._value=i,this.overrideIdentifiers=s,this.defaultConfiguration=o,this.policyConfiguration=r,this.applicationConfiguration=a,this.userConfiguration=l,this.localUserConfiguration=c,this.remoteUserConfiguration=d,this.workspaceConfiguration=u,this.folderConfigurationModel=h,this.memoryConfigurationModel=f}toInspectValue(e){return(e==null?void 0:e.value)!==void 0||(e==null?void 0:e.override)!==void 0||(e==null?void 0:e.overrides)!==void 0?e:void 0}get userInspectValue(){return this._userInspectValue||(this._userInspectValue=this.userConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._userInspectValue}get user(){return this.toInspectValue(this.userInspectValue)}}class YM{constructor(e,t,i,s,o,r,a,l,c,d){this._defaultConfiguration=e,this._policyConfiguration=t,this._applicationConfiguration=i,this._localUserConfiguration=s,this._remoteUserConfiguration=o,this._workspaceConfiguration=r,this._folderConfigurations=a,this._memoryConfiguration=l,this._memoryConfigurationByResource=c,this.logService=d,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations=new hs,this._userConfiguration=null}getValue(e,t,i){return this.getConsolidatedConfigurationModel(e,t,i).getValue(e)}updateValue(e,t,i={}){let s;i.resource?(s=this._memoryConfigurationByResource.get(i.resource),s||(s=bo.createEmptyModel(this.logService),this._memoryConfigurationByResource.set(i.resource,s))):s=this._memoryConfiguration,t===void 0?s.removeValue(e):s.setValue(e,t),i.resource||(this._workspaceConsolidatedConfiguration=null)}inspect(e,t,i){const s=this.getConsolidatedConfigurationModel(e,t,i),o=this.getFolderConfigurationModelForResource(t.resource,i),r=t.resource?this._memoryConfigurationByResource.get(t.resource)||this._memoryConfiguration:this._memoryConfiguration,a=new Set;for(const l of s.overrides)for(const c of l.identifiers)s.getOverrideValue(e,c)!==void 0&&a.add(c);return new hHe(e,t,s.getValue(e),a.size?[...a]:void 0,this._defaultConfiguration,this._policyConfiguration.isEmpty()?void 0:this._policyConfiguration,this.applicationConfiguration.isEmpty()?void 0:this.applicationConfiguration,this.userConfiguration,this.localUserConfiguration,this.remoteUserConfiguration,i?this._workspaceConfiguration:void 0,o||void 0,r)}get applicationConfiguration(){return this._applicationConfiguration}get userConfiguration(){return this._userConfiguration||(this._userConfiguration=this._remoteUserConfiguration.isEmpty()?this._localUserConfiguration:this._localUserConfiguration.merge(this._remoteUserConfiguration)),this._userConfiguration}get localUserConfiguration(){return this._localUserConfiguration}get remoteUserConfiguration(){return this._remoteUserConfiguration}getConsolidatedConfigurationModel(e,t,i){let s=this.getConsolidatedConfigurationModelForResource(t,i);return t.overrideIdentifier&&(s=s.override(t.overrideIdentifier)),!this._policyConfiguration.isEmpty()&&this._policyConfiguration.getValue(e)!==void 0&&(s=s.merge(this._policyConfiguration)),s}getConsolidatedConfigurationModelForResource({resource:e},t){let i=this.getWorkspaceConsolidatedConfiguration();if(t&&e){const s=t.getFolder(e);s&&(i=this.getFolderConsolidatedConfiguration(s.uri)||i);const o=this._memoryConfigurationByResource.get(e);o&&(i=i.merge(o))}return i}getWorkspaceConsolidatedConfiguration(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this.applicationConfiguration,this.userConfiguration,this._workspaceConfiguration,this._memoryConfiguration)),this._workspaceConsolidatedConfiguration}getFolderConsolidatedConfiguration(e){let t=this._foldersConsolidatedConfigurations.get(e);if(!t){const i=this.getWorkspaceConsolidatedConfiguration(),s=this._folderConfigurations.get(e);s?(t=i.merge(s),this._foldersConsolidatedConfigurations.set(e,t)):t=i}return t}getFolderConfigurationModelForResource(e,t){if(t&&e){const i=t.getFolder(e);if(i)return this._folderConfigurations.get(i.uri)}}toData(){return{defaults:{contents:this._defaultConfiguration.contents,overrides:this._defaultConfiguration.overrides,keys:this._defaultConfiguration.keys},policy:{contents:this._policyConfiguration.contents,overrides:this._policyConfiguration.overrides,keys:this._policyConfiguration.keys},application:{contents:this.applicationConfiguration.contents,overrides:this.applicationConfiguration.overrides,keys:this.applicationConfiguration.keys},user:{contents:this.userConfiguration.contents,overrides:this.userConfiguration.overrides,keys:this.userConfiguration.keys},workspace:{contents:this._workspaceConfiguration.contents,overrides:this._workspaceConfiguration.overrides,keys:this._workspaceConfiguration.keys},folders:[...this._folderConfigurations.keys()].reduce((e,t)=>{const{contents:i,overrides:s,keys:o}=this._folderConfigurations.get(t);return e.push([t,{contents:i,overrides:s,keys:o}]),e},[])}}static parse(e,t){const i=this.parseConfigurationModel(e.defaults,t),s=this.parseConfigurationModel(e.policy,t),o=this.parseConfigurationModel(e.application,t),r=this.parseConfigurationModel(e.user,t),a=this.parseConfigurationModel(e.workspace,t),l=e.folders.reduce((c,d)=>(c.set(pt.revive(d[0]),this.parseConfigurationModel(d[1],t)),c),new hs);return new YM(i,s,o,r,bo.createEmptyModel(t),a,l,bo.createEmptyModel(t),new hs,t)}static parseConfigurationModel(e,t){return new bo(e.contents,e.keys,e.overrides,void 0,t)}}class fHe{constructor(e,t,i,s,o){this.change=e,this.previous=t,this.currentConfiguraiton=i,this.currentWorkspace=s,this.logService=o,this._marker=` `,this._markerCode1=this._marker.charCodeAt(0),this._markerCode2=46,this.affectedKeys=new Set,this._previousConfiguration=void 0;for(const r of e.keys)this.affectedKeys.add(r);for(const[,r]of e.overrides)for(const a of r)this.affectedKeys.add(a);this._affectsConfigStr=this._marker;for(const r of this.affectedKeys)this._affectsConfigStr+=r+this._marker}get previousConfiguration(){return!this._previousConfiguration&&this.previous&&(this._previousConfiguration=YM.parse(this.previous.data,this.logService)),this._previousConfiguration}affectsConfiguration(e,t){var i;const s=this._marker+e,o=this._affectsConfigStr.indexOf(s);if(o<0)return!1;const r=o+s.length;if(r>=this._affectsConfigStr.length)return!1;const a=this._affectsConfigStr.charCodeAt(r);if(a!==this._markerCode1&&a!==this._markerCode2)return!1;if(t){const l=this.previousConfiguration?this.previousConfiguration.getValue(e,t,(i=this.previous)===null||i===void 0?void 0:i.workspace):void 0,c=this.currentConfiguraiton.getValue(e,t,this.currentWorkspace);return!vl(l,c)}return!0}}const bA={kind:0},gHe={kind:1};function pHe(n,e,t){return{kind:2,commandId:n,commandArgs:e,isBubble:t}}class kx{constructor(e,t,i){var s;this._log=i,this._defaultKeybindings=e,this._defaultBoundCommands=new Map;for(const o of e){const r=o.command;r&&r.charAt(0)!=="-"&&this._defaultBoundCommands.set(r,!0)}this._map=new Map,this._lookupMap=new Map,this._keybindings=kx.handleRemovals([].concat(e).concat(t));for(let o=0,r=this._keybindings.length;o"u"){this._map.set(e,[t]),this._addToLookupMap(t);return}for(let s=i.length-1;s>=0;s--){const o=i[s];if(o.command===t.command)continue;let r=!0;for(let a=1;a"u"?(t=[e],this._lookupMap.set(e.command,t)):t.push(e)}_removeFromLookupMap(e){if(!e.command)return;const t=this._lookupMap.get(e.command);if(!(typeof t>"u")){for(let i=0,s=t.length;i"u"||i.length===0)return null;if(i.length===1)return i[0];for(let s=i.length-1;s>=0;s--){const o=i[s];if(t.contextMatchesRules(o.when))return o}return i[i.length-1]}resolve(e,t,i){const s=[...t,i];this._log(`| Resolving ${s}`);const o=this._map.get(s[0]);if(o===void 0)return this._log("\\ No keybinding entries."),bA;let r=null;if(s.length<2)r=o;else{r=[];for(let l=0,c=o.length;ld.chords.length)continue;let u=!0;for(let h=1;h=0;i--){const s=t[i];if(kx._contextMatchesRules(e,s.when))return s}return null}static _contextMatchesRules(e,t){return t?t.evaluate(e):!0}}function uJ(n){return n?`${n.serialize()}`:"no when condition"}function hJ(n){return n.extensionId?n.isBuiltinExtension?`built-in extension ${n.extensionId}`:`user extension ${n.extensionId}`:n.isDefault?"built-in":"user"}const mHe=/^(cursor|delete|undo|redo|tab|editor\.action\.clipboard)/;class _He extends ne{get onDidUpdateKeybindings(){return this._onDidUpdateKeybindings?this._onDidUpdateKeybindings.event:Ae.None}get inChordMode(){return this._currentChords.length>0}constructor(e,t,i,s,o){super(),this._contextKeyService=e,this._commandService=t,this._telemetryService=i,this._notificationService=s,this._logService=o,this._onDidUpdateKeybindings=this._register(new X),this._currentChords=[],this._currentChordChecker=new JV,this._currentChordStatusMessage=null,this._ignoreSingleModifiers=E1.EMPTY,this._currentSingleModifier=null,this._currentSingleModifierClearTimeout=new cd,this._currentlyDispatchingCommandId=null,this._logging=!1}dispose(){super.dispose()}_log(e){this._logging&&this._logService.info(`[KeybindingService]: ${e}`)}getKeybindings(){return this._getResolver().getKeybindings()}lookupKeybinding(e,t){const i=this._getResolver().lookupPrimaryKeybinding(e,t||this._contextKeyService);if(i)return i.resolvedKeybinding}dispatchEvent(e,t){return this._dispatch(e,t)}softDispatch(e,t){this._log("/ Soft dispatching keyboard event");const i=this.resolveKeyboardEvent(e);if(i.hasMultipleChords())return console.warn("keyboard event should not be mapped to multiple chords"),bA;const[s]=i.getDispatchChords();if(s===null)return this._log("\\ Keyboard event cannot be dispatched"),bA;const o=this._contextKeyService.getContext(t),r=this._currentChords.map(({keypress:a})=>a);return this._getResolver().resolve(o,r,s)}_scheduleLeaveChordMode(){const e=Date.now();this._currentChordChecker.cancelAndSet(()=>{if(!this._documentHasFocus()){this._leaveChordMode();return}Date.now()-e>5e3&&this._leaveChordMode()},500)}_expectAnotherChord(e,t){switch(this._currentChords.push({keypress:e,label:t}),this._currentChords.length){case 0:throw BV("impossible");case 1:this._currentChordStatusMessage=this._notificationService.status(v("first.chord","({0}) was pressed. Waiting for second key of chord...",t));break;default:{const i=this._currentChords.map(({label:s})=>s).join(", ");this._currentChordStatusMessage=this._notificationService.status(v("next.chord","({0}) was pressed. Waiting for next key of chord...",i))}}this._scheduleLeaveChordMode(),ux.enabled&&ux.disable()}_leaveChordMode(){this._currentChordStatusMessage&&(this._currentChordStatusMessage.dispose(),this._currentChordStatusMessage=null),this._currentChordChecker.cancel(),this._currentChords=[],ux.enable()}_dispatch(e,t){return this._doDispatch(this.resolveKeyboardEvent(e),t,!1)}_singleModifierDispatch(e,t){const i=this.resolveKeyboardEvent(e),[s]=i.getSingleModifierDispatchChords();if(s)return this._ignoreSingleModifiers.has(s)?(this._log(`+ Ignoring single modifier ${s} due to it being pressed together with other keys.`),this._ignoreSingleModifiers=E1.EMPTY,this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1):(this._ignoreSingleModifiers=E1.EMPTY,this._currentSingleModifier===null?(this._log(`+ Storing single modifier for possible chord ${s}.`),this._currentSingleModifier=s,this._currentSingleModifierClearTimeout.cancelAndSet(()=>{this._log("+ Clearing single modifier due to 300ms elapsed."),this._currentSingleModifier=null},300),!1):s===this._currentSingleModifier?(this._log(`/ Dispatching single modifier chord ${s} ${s}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,this._doDispatch(i,t,!0)):(this._log(`+ Clearing single modifier due to modifier mismatch: ${this._currentSingleModifier} ${s}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1));const[o]=i.getChords();return this._ignoreSingleModifiers=new E1(o),this._currentSingleModifier!==null&&this._log("+ Clearing single modifier due to other key up."),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1}_doDispatch(e,t,i=!1){var s;let o=!1;if(e.hasMultipleChords())return console.warn("Unexpected keyboard event mapped to multiple chords"),!1;let r=null,a=null;if(i){const[u]=e.getSingleModifierDispatchChords();r=u,a=u?[u]:[]}else[r]=e.getDispatchChords(),a=this._currentChords.map(({keypress:u})=>u);if(r===null)return this._log("\\ Keyboard event cannot be dispatched in keydown phase."),o;const l=this._contextKeyService.getContext(t),c=e.getLabel(),d=this._getResolver().resolve(l,a,r);switch(d.kind){case 0:{if(this._logService.trace("KeybindingService#dispatch",c,"[ No matching keybinding ]"),this.inChordMode){const u=this._currentChords.map(({label:h})=>h).join(", ");this._log(`+ Leaving multi-chord mode: Nothing bound to "${u}, ${c}".`),this._notificationService.status(v("missing.chord","The key combination ({0}, {1}) is not a command.",u,c),{hideAfter:10*1e3}),this._leaveChordMode(),o=!0}return o}case 1:return this._logService.trace("KeybindingService#dispatch",c,"[ Several keybindings match - more chords needed ]"),o=!0,this._expectAnotherChord(r,c),this._log(this._currentChords.length===1?"+ Entering multi-chord mode...":"+ Continuing multi-chord mode..."),o;case 2:{if(this._logService.trace("KeybindingService#dispatch",c,`[ Will dispatch command ${d.commandId} ]`),d.commandId===null||d.commandId===""){if(this.inChordMode){const u=this._currentChords.map(({label:h})=>h).join(", ");this._log(`+ Leaving chord mode: Nothing bound to "${u}, ${c}".`),this._notificationService.status(v("missing.chord","The key combination ({0}, {1}) is not a command.",u,c),{hideAfter:10*1e3}),this._leaveChordMode(),o=!0}}else{this.inChordMode&&this._leaveChordMode(),d.isBubble||(o=!0),this._log(`+ Invoking command ${d.commandId}.`),this._currentlyDispatchingCommandId=d.commandId;try{typeof d.commandArgs>"u"?this._commandService.executeCommand(d.commandId).then(void 0,u=>this._notificationService.warn(u)):this._commandService.executeCommand(d.commandId,d.commandArgs).then(void 0,u=>this._notificationService.warn(u))}finally{this._currentlyDispatchingCommandId=null}mHe.test(d.commandId)||this._telemetryService.publicLog2("workbenchActionExecuted",{id:d.commandId,from:"keybinding",detail:(s=e.getUserSettingsLabel())!==null&&s!==void 0?s:void 0})}return o}}}mightProducePrintableCharacter(e){return e.ctrlKey||e.metaKey?!1:e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30}}class E1{constructor(e){this._ctrlKey=e?e.ctrlKey:!1,this._shiftKey=e?e.shiftKey:!1,this._altKey=e?e.altKey:!1,this._metaKey=e?e.metaKey:!1}has(e){switch(e){case"ctrl":return this._ctrlKey;case"shift":return this._shiftKey;case"alt":return this._altKey;case"meta":return this._metaKey}}}E1.EMPTY=new E1(null);class fJ{constructor(e,t,i,s,o,r,a){this._resolvedKeybindingItemBrand=void 0,this.resolvedKeybinding=e,this.chords=e?b9(e.getDispatchChords()):[],e&&this.chords.length===0&&(this.chords=b9(e.getSingleModifierDispatchChords())),this.bubble=t?t.charCodeAt(0)===94:!1,this.command=this.bubble?t.substr(1):t,this.commandArgs=i,this.when=s,this.isDefault=o,this.extensionId=r,this.isBuiltinExtension=a}}function b9(n){const e=[];for(let t=0,i=n.length;tthis._getLabel(e))}getAriaLabel(){return vHe.toLabel(this._os,this._chords,e=>this._getAriaLabel(e))}getElectronAccelerator(){return this._chords.length>1||this._chords[0].isDuplicateModifierCase()?null:bHe.toLabel(this._os,this._chords,e=>this._getElectronAccelerator(e))}getUserSettingsLabel(){return CHe.toLabel(this._os,this._chords,e=>this._getUserSettingsLabel(e))}hasMultipleChords(){return this._chords.length>1}getChords(){return this._chords.map(e=>this._getChord(e))}_getChord(e){return new IRe(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,this._getLabel(e),this._getAriaLabel(e))}getDispatchChords(){return this._chords.map(e=>this._getChordDispatch(e))}getSingleModifierDispatchChords(){return this._chords.map(e=>this._getSingleModifierChordDispatch(e))}}class HL extends yHe{constructor(e,t){super(t,e)}_keyCodeToUILabel(e){if(this._os===2)switch(e){case 15:return"←";case 16:return"↑";case 17:return"→";case 18:return"↓"}return Wf.toString(e)}_getLabel(e){return e.isDuplicateModifierCase()?"":this._keyCodeToUILabel(e.keyCode)}_getAriaLabel(e){return e.isDuplicateModifierCase()?"":Wf.toString(e.keyCode)}_getElectronAccelerator(e){return Wf.toElectronAccelerator(e.keyCode)}_getUserSettingsLabel(e){if(e.isDuplicateModifierCase())return"";const t=Wf.toUserSettingsUS(e.keyCode);return t&&t.toLowerCase()}_getChordDispatch(e){return HL.getDispatchStr(e)}static getDispatchStr(e){if(e.isModifierKey())return null;let t="";return e.ctrlKey&&(t+="ctrl+"),e.shiftKey&&(t+="shift+"),e.altKey&&(t+="alt+"),e.metaKey&&(t+="meta+"),t+=Wf.toString(e.keyCode),t}_getSingleModifierChordDispatch(e){return e.keyCode===5&&!e.shiftKey&&!e.altKey&&!e.metaKey?"ctrl":e.keyCode===4&&!e.ctrlKey&&!e.altKey&&!e.metaKey?"shift":e.keyCode===6&&!e.ctrlKey&&!e.shiftKey&&!e.metaKey?"alt":e.keyCode===57&&!e.ctrlKey&&!e.shiftKey&&!e.altKey?"meta":null}static _scanCodeToKeyCode(e){const t=zV[e];if(t!==-1)return t;switch(e){case 10:return 31;case 11:return 32;case 12:return 33;case 13:return 34;case 14:return 35;case 15:return 36;case 16:return 37;case 17:return 38;case 18:return 39;case 19:return 40;case 20:return 41;case 21:return 42;case 22:return 43;case 23:return 44;case 24:return 45;case 25:return 46;case 26:return 47;case 27:return 48;case 28:return 49;case 29:return 50;case 30:return 51;case 31:return 52;case 32:return 53;case 33:return 54;case 34:return 55;case 35:return 56;case 36:return 22;case 37:return 23;case 38:return 24;case 39:return 25;case 40:return 26;case 41:return 27;case 42:return 28;case 43:return 29;case 44:return 30;case 45:return 21;case 51:return 88;case 52:return 86;case 53:return 92;case 54:return 94;case 55:return 93;case 56:return 0;case 57:return 85;case 58:return 95;case 59:return 91;case 60:return 87;case 61:return 89;case 62:return 90;case 106:return 97}return 0}static _toKeyCodeChord(e){if(!e)return null;if(e instanceof kg)return e;const t=this._scanCodeToKeyCode(e.scanCode);return t===0?null:new kg(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,t)}static resolveKeybinding(e,t){const i=b9(e.chords.map(s=>this._toKeyCodeChord(s)));return i.length>0?[new HL(i,t)]:[]}}const ZC=Jt("labelService"),kde=Jt("progressService");class bg{constructor(e){this.callback=e}report(e){this._value=e,this.callback(this._value)}}bg.None=Object.freeze({report(){}});const m_=Jt("editorProgressService");class SHe{constructor(){this._value="",this._pos=0}reset(e){return this._value=e,this._pos=0,this}next(){return this._pos+=1,this}hasNext(){return this._pos=0;t--,this._valueLen--){const i=this._value.charCodeAt(t);if(!(i===47||this._splitOnBackslash&&i===92))break}return this.next()}hasNext(){return this._to!1,t=()=>!1){return new lC(new kHe(e,t))}static forStrings(){return new lC(new SHe)}static forConfigKeys(){return new lC(new xHe)}constructor(e){this._iter=e}clear(){this._root=void 0}set(e,t){const i=this._iter.reset(e);let s;this._root||(this._root=new rT,this._root.segment=i.value());const o=[];for(s=this._root;;){const a=i.cmp(s.segment);if(a>0)s.left||(s.left=new rT,s.left.segment=i.value()),o.push([-1,s]),s=s.left;else if(a<0)s.right||(s.right=new rT,s.right.segment=i.value()),o.push([1,s]),s=s.right;else if(i.hasNext())i.next(),s.mid||(s.mid=new rT,s.mid.segment=i.value()),o.push([0,s]),s=s.mid;else break}const r=s.value;s.value=t,s.key=e;for(let a=o.length-1;a>=0;a--){const l=o[a][1];l.updateHeight();const c=l.balanceFactor();if(c<-1||c>1){const d=o[a][0],u=o[a+1][0];if(d===1&&u===1)o[a][1]=l.rotateLeft();else if(d===-1&&u===-1)o[a][1]=l.rotateRight();else if(d===1&&u===-1)l.right=o[a+1][1]=o[a+1][1].rotateRight(),o[a][1]=l.rotateLeft();else if(d===-1&&u===1)l.left=o[a+1][1]=o[a+1][1].rotateLeft(),o[a][1]=l.rotateRight();else throw new Error;if(a>0)switch(o[a-1][0]){case-1:o[a-1][1].left=o[a][1];break;case 1:o[a-1][1].right=o[a][1];break;case 0:o[a-1][1].mid=o[a][1];break}else this._root=o[0][1]}}return r}get(e){var t;return(t=this._getNode(e))===null||t===void 0?void 0:t.value}_getNode(e){const t=this._iter.reset(e);let i=this._root;for(;i;){const s=t.cmp(i.segment);if(s>0)i=i.left;else if(s<0)i=i.right;else if(t.hasNext())t.next(),i=i.mid;else break}return i}has(e){const t=this._getNode(e);return!((t==null?void 0:t.value)===void 0&&(t==null?void 0:t.mid)===void 0)}delete(e){return this._delete(e,!1)}deleteSuperstr(e){return this._delete(e,!0)}_delete(e,t){var i;const s=this._iter.reset(e),o=[];let r=this._root;for(;r;){const a=s.cmp(r.segment);if(a>0)o.push([-1,r]),r=r.left;else if(a<0)o.push([1,r]),r=r.right;else if(s.hasNext())s.next(),o.push([0,r]),r=r.mid;else break}if(r){if(t?(r.left=void 0,r.mid=void 0,r.right=void 0,r.height=1):(r.key=void 0,r.value=void 0),!r.mid&&!r.value)if(r.left&&r.right){const a=this._min(r.right);if(a.key){const{key:l,value:c,segment:d}=a;this._delete(a.key,!1),r.key=l,r.value=c,r.segment=d}}else{const a=(i=r.left)!==null&&i!==void 0?i:r.right;if(o.length>0){const[l,c]=o[o.length-1];switch(l){case-1:c.left=a;break;case 0:c.mid=a;break;case 1:c.right=a;break}}else this._root=a}for(let a=o.length-1;a>=0;a--){const l=o[a][1];l.updateHeight();const c=l.balanceFactor();if(c>1?(l.right.balanceFactor()>=0||(l.right=l.right.rotateRight()),o[a][1]=l.rotateLeft()):c<-1&&(l.left.balanceFactor()<=0||(l.left=l.left.rotateLeft()),o[a][1]=l.rotateRight()),a>0)switch(o[a-1][0]){case-1:o[a-1][1].left=o[a][1];break;case 1:o[a-1][1].right=o[a][1];break;case 0:o[a-1][1].mid=o[a][1];break}else this._root=o[0][1]}}}_min(e){for(;e.left;)e=e.left;return e}findSubstr(e){const t=this._iter.reset(e);let i=this._root,s;for(;i;){const o=t.cmp(i.segment);if(o>0)i=i.left;else if(o<0)i=i.right;else if(t.hasNext())t.next(),s=i.value||s,i=i.mid;else break}return i&&i.value||s}findSuperstr(e){return this._findSuperstrOrElement(e,!1)}_findSuperstrOrElement(e,t){const i=this._iter.reset(e);let s=this._root;for(;s;){const o=i.cmp(s.segment);if(o>0)s=s.left;else if(o<0)s=s.right;else if(i.hasNext())i.next(),s=s.mid;else return s.mid?this._entries(s.mid):t?s.value:void 0}}forEach(e){for(const[t,i]of this)e(i,t)}*[Symbol.iterator](){yield*this._entries(this._root)}_entries(e){const t=[];return this._dfsEntries(e,t),t[Symbol.iterator]()}_dfsEntries(e,t){e&&(e.left&&this._dfsEntries(e.left,t),e.value&&t.push([e.key,e.value]),e.mid&&this._dfsEntries(e.mid,t),e.right&&this._dfsEntries(e.right,t))}}const b0=Jt("contextService");function C9(n){const e=n;return typeof(e==null?void 0:e.id)=="string"&&pt.isUri(e.uri)}function DHe(n){const e=n;return typeof(e==null?void 0:e.id)=="string"&&!C9(n)&&!THe(n)}const IHe={id:"empty-window"};function EHe(n,e){if(typeof n=="string"||typeof n>"u")return typeof n=="string"?{id:dm(n)}:IHe;const t=n;return t.configuration?{id:t.id,configPath:t.configuration}:t.folders.length===1?{id:t.id,uri:t.folders[0].uri}:{id:t.id}}function THe(n){const e=n;return typeof(e==null?void 0:e.id)=="string"&&pt.isUri(e.configPath)}class NHe{constructor(e,t){this.raw=t,this.uri=e.uri,this.index=e.index,this.name=e.name}toJSON(){return{uri:this.uri,name:this.name,index:this.index}}}const w9="code-workspace";v("codeWorkspace","Code Workspace");const Dde="4064f6ec-cb38-4ad0-af64-ee6467e63c82";function AHe(n){return n.id===Dde}var y9;(function(n){n.inspectTokensAction=v("inspectTokens","Developer: Inspect Tokens")})(y9||(y9={}));var CA;(function(n){n.gotoLineActionLabel=v("gotoLineActionLabel","Go to Line/Column...")})(CA||(CA={}));var S9;(function(n){n.helpQuickAccessActionLabel=v("helpQuickAccess","Show all Quick Access Providers")})(S9||(S9={}));var wA;(function(n){n.quickCommandActionLabel=v("quickCommandActionLabel","Command Palette"),n.quickCommandHelp=v("quickCommandActionHelp","Show And Run Commands")})(wA||(wA={}));var VL;(function(n){n.quickOutlineActionLabel=v("quickOutlineActionLabel","Go to Symbol..."),n.quickOutlineByCategoryActionLabel=v("quickOutlineByCategoryActionLabel","Go to Symbol by Category...")})(VL||(VL={}));var yA;(function(n){n.editorViewAccessibleLabel=v("editorViewAccessibleLabel","Editor content"),n.accessibilityHelpMessage=v("accessibilityHelpMessage","Press Alt+F1 for Accessibility Options.")})(yA||(yA={}));var x9;(function(n){n.toggleHighContrast=v("toggleHighContrast","Toggle High Contrast Theme")})(x9||(x9={}));var L9;(function(n){n.bulkEditServiceSummary=v("bulkEditServiceSummary","Made {0} edits in {1} files")})(L9||(L9={}));const Ide=Jt("workspaceTrustManagementService");let YC=[],y$=[],Ede=[];function aT(n,e=!1){RHe(n,!1,e)}function RHe(n,e,t){const i=MHe(n,e);YC.push(i),i.userConfigured?Ede.push(i):y$.push(i),t&&!i.userConfigured&&YC.forEach(s=>{s.mime===i.mime||s.userConfigured||(i.extension&&s.extension===i.extension&&console.warn(`Overwriting extension <<${i.extension}>> to now point to mime <<${i.mime}>>`),i.filename&&s.filename===i.filename&&console.warn(`Overwriting filename <<${i.filename}>> to now point to mime <<${i.mime}>>`),i.filepattern&&s.filepattern===i.filepattern&&console.warn(`Overwriting filepattern <<${i.filepattern}>> to now point to mime <<${i.mime}>>`),i.firstline&&s.firstline===i.firstline&&console.warn(`Overwriting firstline <<${i.firstline}>> to now point to mime <<${i.mime}>>`))})}function MHe(n,e){return{id:n.id,mime:n.mime,filename:n.filename,extension:n.extension,filepattern:n.filepattern,firstline:n.firstline,userConfigured:e,filenameLowercase:n.filename?n.filename.toLowerCase():void 0,extensionLowercase:n.extension?n.extension.toLowerCase():void 0,filepatternLowercase:n.filepattern?rde(n.filepattern.toLowerCase()):void 0,filepatternOnPath:n.filepattern?n.filepattern.indexOf(ks.sep)>=0:!1}}function PHe(){YC=YC.filter(n=>n.userConfigured),y$=[]}function OHe(n,e){return FHe(n,e).map(t=>t.id)}function FHe(n,e){let t;if(n)switch(n.scheme){case Tt.file:t=n.fsPath;break;case Tt.data:{t=Vm.parseMetaData(n).get(Vm.META_DATA_LABEL);break}case Tt.vscodeNotebookCell:t=void 0;break;default:t=n.path}if(!t)return[{id:"unknown",mime:ss.unknown}];t=t.toLowerCase();const i=dm(t),s=gJ(t,i,Ede);if(s)return[s,{id:bl,mime:ss.text}];const o=gJ(t,i,y$);if(o)return[o,{id:bl,mime:ss.text}];if(e){const r=BHe(e);if(r)return[r,{id:bl,mime:ss.text}]}return[{id:"unknown",mime:ss.unknown}]}function gJ(n,e,t){var i;let s,o,r;for(let a=t.length-1;a>=0;a--){const l=t[a];if(e===l.filenameLowercase){s=l;break}if(l.filepattern&&(!o||l.filepattern.length>o.filepattern.length)){const c=l.filepatternOnPath?n:e;!((i=l.filepatternLowercase)===null||i===void 0)&&i.call(l,c)&&(o=l)}l.extension&&(!r||l.extension.length>r.extension.length)&&e.endsWith(l.extensionLowercase)&&(r=l)}if(s)return s;if(o)return o;if(r)return r}function BHe(n){if(YV(n)&&(n=n.substr(1)),n.length>0)for(let e=YC.length-1;e>=0;e--){const t=YC[e];if(!t.firstline)continue;const i=n.match(t.firstline);if(i&&i.length>0)return t}}const lT=Object.prototype.hasOwnProperty,pJ="vs.editor.nullLanguage";class WHe{constructor(){this._languageIdToLanguage=[],this._languageToLanguageId=new Map,this._register(pJ,0),this._register(bl,1),this._nextLanguageId=2}_register(e,t){this._languageIdToLanguage[t]=e,this._languageToLanguageId.set(e,t)}register(e){if(this._languageToLanguageId.has(e))return;const t=this._nextLanguageId++;this._register(e,t)}encodeLanguageId(e){return this._languageToLanguageId.get(e)||0}decodeLanguageId(e){return this._languageIdToLanguage[e]||pJ}}class zL extends ne{constructor(e=!0,t=!1){super(),this._onDidChange=this._register(new X),this.onDidChange=this._onDidChange.event,zL.instanceCount++,this._warnOnOverwrite=t,this.languageIdCodec=new WHe,this._dynamicLanguages=[],this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},e&&(this._initializeFromRegistry(),this._register(RC.onDidChangeLanguages(i=>{this._initializeFromRegistry()})))}dispose(){zL.instanceCount--,super.dispose()}_initializeFromRegistry(){this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},PHe();const e=[].concat(RC.getLanguages()).concat(this._dynamicLanguages);this._registerLanguages(e)}_registerLanguages(e){for(const t of e)this._registerLanguage(t);this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},Object.keys(this._languages).forEach(t=>{const i=this._languages[t];i.name&&(this._nameMap[i.name]=i.identifier),i.aliases.forEach(s=>{this._lowercaseNameMap[s.toLowerCase()]=i.identifier}),i.mimetypes.forEach(s=>{this._mimeTypesMap[s]=i.identifier})}),Un.as(_u.Configuration).registerOverrideIdentifiers(this.getRegisteredLanguageIds()),this._onDidChange.fire()}_registerLanguage(e){const t=e.id;let i;lT.call(this._languages,t)?i=this._languages[t]:(this.languageIdCodec.register(t),i={identifier:t,name:null,mimetypes:[],aliases:[],extensions:[],filenames:[],configurationFiles:[],icons:[]},this._languages[t]=i),this._mergeLanguage(i,e)}_mergeLanguage(e,t){const i=t.id;let s=null;if(Array.isArray(t.mimetypes)&&t.mimetypes.length>0&&(e.mimetypes.push(...t.mimetypes),s=t.mimetypes[0]),s||(s=`text/x-${i}`,e.mimetypes.push(s)),Array.isArray(t.extensions)){t.configuration?e.extensions=t.extensions.concat(e.extensions):e.extensions=e.extensions.concat(t.extensions);for(const a of t.extensions)aT({id:i,mime:s,extension:a},this._warnOnOverwrite)}if(Array.isArray(t.filenames))for(const a of t.filenames)aT({id:i,mime:s,filename:a},this._warnOnOverwrite),e.filenames.push(a);if(Array.isArray(t.filenamePatterns))for(const a of t.filenamePatterns)aT({id:i,mime:s,filepattern:a},this._warnOnOverwrite);if(typeof t.firstLine=="string"&&t.firstLine.length>0){let a=t.firstLine;a.charAt(0)!=="^"&&(a="^"+a);try{const l=new RegExp(a);pRe(l)||aT({id:i,mime:s,firstline:l},this._warnOnOverwrite)}catch(l){console.warn(`[${t.id}]: Invalid regular expression \`${a}\`: `,l)}}e.aliases.push(i);let o=null;if(typeof t.aliases<"u"&&Array.isArray(t.aliases)&&(t.aliases.length===0?o=[null]:o=t.aliases),o!==null)for(const a of o)!a||a.length===0||e.aliases.push(a);const r=o!==null&&o.length>0;if(!(r&&o[0]===null)){const a=(r?o[0]:null)||i;(r||!e.name)&&(e.name=a)}t.configuration&&e.configurationFiles.push(t.configuration),t.icon&&e.icons.push(t.icon)}isRegisteredLanguageId(e){return e?lT.call(this._languages,e):!1}getRegisteredLanguageIds(){return Object.keys(this._languages)}getLanguageIdByLanguageName(e){const t=e.toLowerCase();return lT.call(this._lowercaseNameMap,t)?this._lowercaseNameMap[t]:null}getLanguageIdByMimeType(e){return e&&lT.call(this._mimeTypesMap,e)?this._mimeTypesMap[e]:null}guessLanguageIdByFilepathOrFirstLine(e,t){return!e&&!t?[]:OHe(e,t)}}zL.instanceCount=0;class $L extends ne{constructor(e=!1){super(),this._onDidRequestBasicLanguageFeatures=this._register(new X),this.onDidRequestBasicLanguageFeatures=this._onDidRequestBasicLanguageFeatures.event,this._onDidRequestRichLanguageFeatures=this._register(new X),this.onDidRequestRichLanguageFeatures=this._onDidRequestRichLanguageFeatures.event,this._onDidChange=this._register(new X({leakWarningThreshold:200})),this.onDidChange=this._onDidChange.event,this._requestedBasicLanguages=new Set,this._requestedRichLanguages=new Set,$L.instanceCount++,this._registry=this._register(new zL(!0,e)),this.languageIdCodec=this._registry.languageIdCodec,this._register(this._registry.onDidChange(()=>this._onDidChange.fire()))}dispose(){$L.instanceCount--,super.dispose()}isRegisteredLanguageId(e){return this._registry.isRegisteredLanguageId(e)}getLanguageIdByLanguageName(e){return this._registry.getLanguageIdByLanguageName(e)}getLanguageIdByMimeType(e){return this._registry.getLanguageIdByMimeType(e)}guessLanguageIdByFilepathOrFirstLine(e,t){const i=this._registry.guessLanguageIdByFilepathOrFirstLine(e,t);return NV(i,null)}createById(e){return new mJ(this.onDidChange,()=>this._createAndGetLanguageIdentifier(e))}createByFilepathOrFirstLine(e,t){return new mJ(this.onDidChange,()=>{const i=this.guessLanguageIdByFilepathOrFirstLine(e,t);return this._createAndGetLanguageIdentifier(i)})}_createAndGetLanguageIdentifier(e){return(!e||!this.isRegisteredLanguageId(e))&&(e=bl),e}requestBasicLanguageFeatures(e){this._requestedBasicLanguages.has(e)||(this._requestedBasicLanguages.add(e),this._onDidRequestBasicLanguageFeatures.fire(e))}requestRichLanguageFeatures(e){this._requestedRichLanguages.has(e)||(this._requestedRichLanguages.add(e),this.requestBasicLanguageFeatures(e),Zn.getOrCreate(e),this._onDidRequestRichLanguageFeatures.fire(e))}}$L.instanceCount=0;class mJ{constructor(e,t){this._onDidChangeLanguages=e,this._selector=t,this._listener=null,this._emitter=null,this.languageId=this._selector()}_dispose(){this._listener&&(this._listener.dispose(),this._listener=null),this._emitter&&(this._emitter.dispose(),this._emitter=null)}get onDidChange(){return this._listener||(this._listener=this._onDidChangeLanguages(()=>this._evaluate())),this._emitter||(this._emitter=new X({onDidRemoveLastListener:()=>{this._dispose()}})),this._emitter.event}_evaluate(){var e;const t=this._selector();t!==this.languageId&&(this.languageId=t,(e=this._emitter)===null||e===void 0||e.fire(this.languageId))}}const UL={RESOURCES:"ResourceURLs",TEXT:ss.text,INTERNAL_URI_LIST:"application/vnd.code.uri-list"},HHe=()=>({get delay(){return-1},dispose:()=>{},showHover:()=>{}});let QM=HHe;const VHe=new pu(()=>QM("mouse",!1)),zHe=new pu(()=>QM("element",!1));function $He(n){QM=n}function Ur(n){return n==="element"?zHe.value:VHe.value}function XC(){return QM("element",!0)}let Tde={showHover:()=>{},hideHover:()=>{},showAndFocusLastHover:()=>{},setupUpdatableHover:()=>null,triggerUpdatableHover:()=>{}};function UHe(n){Tde=n}function bu(){return Tde}class jHe{constructor(e){this.spliceables=e}splice(e,t,i){this.spliceables.forEach(s=>s.splice(e,t,i))}}class j_ extends Error{constructor(e,t){super(`ListError [${e}] ${t}`)}}function _J(n,e){const t=[];for(const i of e){if(n.start>=i.range.end)continue;if(n.ende.concat(t),[]))}class GHe{get paddingTop(){return this._paddingTop}set paddingTop(e){this._size=this._size+e-this._paddingTop,this._paddingTop=e}constructor(e){this.groups=[],this._size=0,this._paddingTop=0,this._paddingTop=e??0,this._size=this._paddingTop}splice(e,t,i=[]){const s=i.length-t,o=_J({start:0,end:e},this.groups),r=_J({start:e+t,end:Number.POSITIVE_INFINITY},this.groups).map(l=>({range:k9(l.range,s),size:l.size})),a=i.map((l,c)=>({range:{start:e+c,end:e+c+1},size:l.size}));this.groups=qHe(o,a,r),this._size=this._paddingTop+this.groups.reduce((l,c)=>l+c.size*(c.range.end-c.range.start),0)}get count(){const e=this.groups.length;return e?this.groups[e-1].range.end:0}get size(){return this._size}indexAt(e){if(e<0)return-1;if(e{for(const i of e)this.getRenderer(t).disposeTemplate(i.templateData),i.templateData=null}),this.cache.clear(),this.transactionNodesPendingRemoval.clear()}getRenderer(e){const t=this.renderers.get(e);if(!t)throw new Error(`No renderer found for ${e}`);return t}}var Hg=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o};const K_={CurrentDragAndDropData:void 0},Tu={useShadows:!0,verticalScrollMode:1,setRowLineHeight:!0,setRowHeight:!0,supportDynamicHeights:!1,dnd:{getDragElements(n){return[n]},getDragURI(){return null},onDragStart(){},onDragOver(){return!1},drop(){},dispose(){}},horizontalScrolling:!1,transformOptimization:!0,alwaysConsumeMouseWheel:!0};class TD{constructor(e){this.elements=e}update(){}getData(){return this.elements}}class XHe{constructor(e){this.elements=e}update(){}getData(){return this.elements}}class QHe{constructor(){this.types=[],this.files=[]}update(e){if(e.types&&this.types.splice(0,this.types.length,...e.types),e.files){this.files.splice(0,this.files.length);for(let t=0;ts,e!=null&&e.getPosInSet?this.getPosInSet=e.getPosInSet.bind(e):this.getPosInSet=(t,i)=>i+1,e!=null&&e.getRole?this.getRole=e.getRole.bind(e):this.getRole=t=>"listitem",e!=null&&e.isChecked?this.isChecked=e.isChecked.bind(e):this.isChecked=t=>{}}}class vc{get contentHeight(){return this.rangeMap.size}get onDidScroll(){return this.scrollableElement.onScroll}get scrollableElementDomNode(){return this.scrollableElement.getDomNode()}get horizontalScrolling(){return this._horizontalScrolling}set horizontalScrolling(e){if(e!==this._horizontalScrolling){if(e&&this.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");if(this._horizontalScrolling=e,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this._horizontalScrolling){for(const t of this.items)this.measureItemWidth(t);this.updateScrollWidth(),this.scrollableElement.setScrollDimensions({width:MF(this.domNode)}),this.rowsContainer.style.width=`${Math.max(this.scrollWidth||0,this.renderWidth)}px`}else this.scrollableElementWidthDelayer.cancel(),this.scrollableElement.setScrollDimensions({width:this.renderWidth,scrollWidth:this.renderWidth}),this.rowsContainer.style.width=""}}constructor(e,t,i,s=Tu){var o,r,a,l,c,d,u,h,f,g,p,_,b;if(this.virtualDelegate=t,this.domId=`list_id_${++vc.InstanceCount}`,this.renderers=new Map,this.renderWidth=0,this._scrollHeight=0,this.scrollableElementUpdateDisposable=null,this.scrollableElementWidthDelayer=new sd(50),this.splicing=!1,this.dragOverAnimationStopDisposable=ne.None,this.dragOverMouseY=0,this.canDrop=!1,this.currentDragFeedbackDisposable=ne.None,this.onDragLeaveTimeout=ne.None,this.disposables=new be,this._onDidChangeContentHeight=new X,this._onDidChangeContentWidth=new X,this.onDidChangeContentHeight=Ae.latch(this._onDidChangeContentHeight.event,void 0,this.disposables),this._horizontalScrolling=!1,s.horizontalScrolling&&s.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");this.items=[],this.itemId=0,this.rangeMap=this.createRangeMap((o=s.paddingTop)!==null&&o!==void 0?o:0);for(const y of i)this.renderers.set(y.templateId,y);this.cache=this.disposables.add(new YHe(this.renderers)),this.lastRenderTop=0,this.lastRenderHeight=0,this.domNode=document.createElement("div"),this.domNode.className="monaco-list",this.domNode.classList.add(this.domId),this.domNode.tabIndex=0,this.domNode.classList.toggle("mouse-support",typeof s.mouseSupport=="boolean"?s.mouseSupport:!0),this._horizontalScrolling=(r=s.horizontalScrolling)!==null&&r!==void 0?r:Tu.horizontalScrolling,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this.paddingBottom=typeof s.paddingBottom>"u"?0:s.paddingBottom,this.accessibilityProvider=new eVe(s.accessibilityProvider),this.rowsContainer=document.createElement("div"),this.rowsContainer.className="monaco-list-rows",((a=s.transformOptimization)!==null&&a!==void 0?a:Tu.transformOptimization)&&(this.rowsContainer.style.transform="translate3d(0px, 0px, 0px)",this.rowsContainer.style.overflow="hidden",this.rowsContainer.style.contain="strict"),this.disposables.add(hn.addTarget(this.rowsContainer)),this.scrollable=this.disposables.add(new Ww({forceIntegerValues:!0,smoothScrollDuration:(l=s.smoothScrolling)!==null&&l!==void 0&&l?125:0,scheduleAtNextAnimationFrame:y=>Oa(gt(this.domNode),y)})),this.scrollableElement=this.disposables.add(new MM(this.rowsContainer,{alwaysConsumeMouseWheel:(c=s.alwaysConsumeMouseWheel)!==null&&c!==void 0?c:Tu.alwaysConsumeMouseWheel,horizontal:1,vertical:(d=s.verticalScrollMode)!==null&&d!==void 0?d:Tu.verticalScrollMode,useShadows:(u=s.useShadows)!==null&&u!==void 0?u:Tu.useShadows,mouseWheelScrollSensitivity:s.mouseWheelScrollSensitivity,fastScrollSensitivity:s.fastScrollSensitivity,scrollByPage:s.scrollByPage},this.scrollable)),this.domNode.appendChild(this.scrollableElement.getDomNode()),e.appendChild(this.domNode),this.scrollableElement.onScroll(this.onScroll,this,this.disposables),this.disposables.add(ce(this.rowsContainer,fn.Change,y=>this.onTouchChange(y))),this.disposables.add(ce(this.scrollableElement.getDomNode(),"scroll",y=>y.target.scrollTop=0)),this.disposables.add(ce(this.domNode,"dragover",y=>this.onDragOver(this.toDragEvent(y)))),this.disposables.add(ce(this.domNode,"drop",y=>this.onDrop(this.toDragEvent(y)))),this.disposables.add(ce(this.domNode,"dragleave",y=>this.onDragLeave(this.toDragEvent(y)))),this.disposables.add(ce(this.domNode,"dragend",y=>this.onDragEnd(y))),this.setRowLineHeight=(h=s.setRowLineHeight)!==null&&h!==void 0?h:Tu.setRowLineHeight,this.setRowHeight=(f=s.setRowHeight)!==null&&f!==void 0?f:Tu.setRowHeight,this.supportDynamicHeights=(g=s.supportDynamicHeights)!==null&&g!==void 0?g:Tu.supportDynamicHeights,this.dnd=(p=s.dnd)!==null&&p!==void 0?p:this.disposables.add(Tu.dnd),this.layout((_=s.initialSize)===null||_===void 0?void 0:_.height,(b=s.initialSize)===null||b===void 0?void 0:b.width)}updateOptions(e){e.paddingBottom!==void 0&&(this.paddingBottom=e.paddingBottom,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),e.smoothScrolling!==void 0&&this.scrollable.setSmoothScrollDuration(e.smoothScrolling?125:0),e.horizontalScrolling!==void 0&&(this.horizontalScrolling=e.horizontalScrolling);let t;if(e.scrollByPage!==void 0&&(t={...t??{},scrollByPage:e.scrollByPage}),e.mouseWheelScrollSensitivity!==void 0&&(t={...t??{},mouseWheelScrollSensitivity:e.mouseWheelScrollSensitivity}),e.fastScrollSensitivity!==void 0&&(t={...t??{},fastScrollSensitivity:e.fastScrollSensitivity}),t&&this.scrollableElement.updateOptions(t),e.paddingTop!==void 0&&e.paddingTop!==this.rangeMap.paddingTop){const i=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),s=e.paddingTop-this.rangeMap.paddingTop;this.rangeMap.paddingTop=e.paddingTop,this.render(i,Math.max(0,this.lastRenderTop+s),this.lastRenderHeight,void 0,void 0,!0),this.setScrollTop(this.lastRenderTop),this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.lastRenderTop,this.lastRenderHeight)}}createRangeMap(e){return new GHe(e)}splice(e,t,i=[]){if(this.splicing)throw new Error("Can't run recursive splices.");this.splicing=!0;try{return this._splice(e,t,i)}finally{this.splicing=!1,this._onDidChangeContentHeight.fire(this.contentHeight)}}_splice(e,t,i=[]){const s=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),o={start:e,end:e+t},r=Ho.intersect(s,o),a=new Map;for(let x=r.end-1;x>=r.start;x--){const k=this.items[x];if(k.dragStartDisposable.dispose(),k.checkedDisposable.dispose(),k.row){let D=a.get(k.templateId);D||(D=[],a.set(k.templateId,D));const I=this.renderers.get(k.templateId);I&&I.disposeElement&&I.disposeElement(k.element,x,k.row.templateData,k.size),D.unshift(k.row)}k.row=null,k.stale=!0}const l={start:e+t,end:this.items.length},c=Ho.intersect(l,s),d=Ho.relativeComplement(l,s),u=i.map(x=>({id:String(this.itemId++),element:x,templateId:this.virtualDelegate.getTemplateId(x),size:this.virtualDelegate.getHeight(x),width:void 0,hasDynamicHeight:!!this.virtualDelegate.hasDynamicHeight&&this.virtualDelegate.hasDynamicHeight(x),lastDynamicHeightWidth:void 0,row:null,uri:void 0,dropTarget:!1,dragStartDisposable:ne.None,checkedDisposable:ne.None,stale:!1}));let h;e===0&&t>=this.items.length?(this.rangeMap=this.createRangeMap(this.rangeMap.paddingTop),this.rangeMap.splice(0,0,u),h=this.items,this.items=u):(this.rangeMap.splice(e,t,u),h=this.items.splice(e,t,...u));const f=i.length-t,g=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),p=k9(c,f),_=Ho.intersect(g,p);for(let x=_.start;x<_.end;x++)this.updateItemInDOM(this.items[x],x);const b=Ho.relativeComplement(p,g);for(const x of b)for(let k=x.start;kk9(x,f)),S=[{start:e,end:e+i.length},...w].map(x=>Ho.intersect(g,x)).reverse();for(const x of S)for(let k=x.end-1;k>=x.start;k--){const D=this.items[k],I=a.get(D.templateId),N=I==null?void 0:I.pop();this.insertItemInDOM(k,N)}for(const x of a.values())for(const k of x)this.cache.release(k);return this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight),h.map(x=>x.element)}eventuallyUpdateScrollDimensions(){this._scrollHeight=this.contentHeight,this.rowsContainer.style.height=`${this._scrollHeight}px`,this.scrollableElementUpdateDisposable||(this.scrollableElementUpdateDisposable=Oa(gt(this.domNode),()=>{this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight}),this.updateScrollWidth(),this.scrollableElementUpdateDisposable=null}))}eventuallyUpdateScrollWidth(){if(!this.horizontalScrolling){this.scrollableElementWidthDelayer.cancel();return}this.scrollableElementWidthDelayer.trigger(()=>this.updateScrollWidth())}updateScrollWidth(){if(!this.horizontalScrolling)return;let e=0;for(const t of this.items)typeof t.width<"u"&&(e=Math.max(e,t.width));this.scrollWidth=e,this.scrollableElement.setScrollDimensions({scrollWidth:e===0?0:e+10}),this._onDidChangeContentWidth.fire(this.scrollWidth)}rerender(){if(this.supportDynamicHeights){for(const e of this.items)e.lastDynamicHeightWidth=void 0;this._rerender(this.lastRenderTop,this.lastRenderHeight)}}get length(){return this.items.length}get renderHeight(){return this.scrollableElement.getScrollDimensions().height}get firstVisibleIndex(){return this.getRenderRange(this.lastRenderTop,this.lastRenderHeight).start}element(e){return this.items[e].element}indexOf(e){return this.items.findIndex(t=>t.element===e)}domElement(e){const t=this.items[e].row;return t&&t.domNode}elementHeight(e){return this.items[e].size}elementTop(e){return this.rangeMap.positionAt(e)}indexAt(e){return this.rangeMap.indexAt(e)}indexAfter(e){return this.rangeMap.indexAfter(e)}layout(e,t){const i={height:typeof e=="number"?e:xMe(this.domNode)};this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,i.scrollHeight=this.scrollHeight),this.scrollableElement.setScrollDimensions(i),typeof t<"u"&&(this.renderWidth=t,this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight)),this.horizontalScrolling&&this.scrollableElement.setScrollDimensions({width:typeof t=="number"?t:MF(this.domNode)})}render(e,t,i,s,o,r=!1){const a=this.getRenderRange(t,i),l=Ho.relativeComplement(a,e).reverse(),c=Ho.relativeComplement(e,a);if(r){const d=Ho.intersect(e,a);for(let u=d.start;u{for(const d of c)for(let u=d.start;u=d.start;u--)this.insertItemInDOM(u)}),s!==void 0&&(this.rowsContainer.style.left=`-${s}px`),this.rowsContainer.style.top=`-${t}px`,this.horizontalScrolling&&o!==void 0&&(this.rowsContainer.style.width=`${Math.max(o,this.renderWidth)}px`),this.lastRenderTop=t,this.lastRenderHeight=i}insertItemInDOM(e,t){var i,s,o;const r=this.items[e];if(!r.row)if(t)r.row=t,r.stale=!0;else{const u=this.cache.alloc(r.templateId);r.row=u.row,r.stale||(r.stale=u.isReusingConnectedDomNode)}const a=this.accessibilityProvider.getRole(r.element)||"listitem";r.row.domNode.setAttribute("role",a);const l=this.accessibilityProvider.isChecked(r.element);if(typeof l=="boolean")r.row.domNode.setAttribute("aria-checked",String(!!l));else if(l){const u=h=>r.row.domNode.setAttribute("aria-checked",String(!!h));u(l.value),r.checkedDisposable=l.onDidChange(()=>u(l.value))}if(r.stale||!r.row.domNode.parentElement){const u=(o=(s=(i=this.items.at(e+1))===null||i===void 0?void 0:i.row)===null||s===void 0?void 0:s.domNode)!==null&&o!==void 0?o:null;(r.row.domNode.parentElement!==this.rowsContainer||r.row.domNode.nextElementSibling!==u)&&this.rowsContainer.insertBefore(r.row.domNode,u),r.stale=!1}this.updateItemInDOM(r,e);const c=this.renderers.get(r.templateId);if(!c)throw new Error(`No renderer found for template id ${r.templateId}`);c==null||c.renderElement(r.element,e,r.row.templateData,r.size);const d=this.dnd.getDragURI(r.element);r.dragStartDisposable.dispose(),r.row.domNode.draggable=!!d,d&&(r.dragStartDisposable=ce(r.row.domNode,"dragstart",u=>this.onDragStart(r.element,d,u))),this.horizontalScrolling&&(this.measureItemWidth(r),this.eventuallyUpdateScrollWidth())}measureItemWidth(e){if(!e.row||!e.row.domNode)return;e.row.domNode.style.width="fit-content",e.width=MF(e.row.domNode);const t=gt(e.row.domNode).getComputedStyle(e.row.domNode);t.paddingLeft&&(e.width+=parseFloat(t.paddingLeft)),t.paddingRight&&(e.width+=parseFloat(t.paddingRight)),e.row.domNode.style.width=""}updateItemInDOM(e,t){e.row.domNode.style.top=`${this.elementTop(t)}px`,this.setRowHeight&&(e.row.domNode.style.height=`${e.size}px`),this.setRowLineHeight&&(e.row.domNode.style.lineHeight=`${e.size}px`),e.row.domNode.setAttribute("data-index",`${t}`),e.row.domNode.setAttribute("data-last-element",t===this.length-1?"true":"false"),e.row.domNode.setAttribute("data-parity",t%2===0?"even":"odd"),e.row.domNode.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize(e.element,t,this.length))),e.row.domNode.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet(e.element,t))),e.row.domNode.setAttribute("id",this.getElementDomId(t)),e.row.domNode.classList.toggle("drop-target",e.dropTarget)}removeItemFromDOM(e){const t=this.items[e];if(t.dragStartDisposable.dispose(),t.checkedDisposable.dispose(),t.row){const i=this.renderers.get(t.templateId);i&&i.disposeElement&&i.disposeElement(t.element,e,t.row.templateData,t.size),this.cache.release(t.row),t.row=null}this.horizontalScrolling&&this.eventuallyUpdateScrollWidth()}getScrollTop(){return this.scrollableElement.getScrollPosition().scrollTop}setScrollTop(e,t){this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),this.scrollableElement.setScrollPosition({scrollTop:e,reuseAnimation:t})}get scrollTop(){return this.getScrollTop()}set scrollTop(e){this.setScrollTop(e)}get scrollHeight(){return this._scrollHeight+(this.horizontalScrolling?10:0)+this.paddingBottom}get onMouseClick(){return Ae.map(this.disposables.add(new ei(this.domNode,"click")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseDblClick(){return Ae.map(this.disposables.add(new ei(this.domNode,"dblclick")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseMiddleClick(){return Ae.filter(Ae.map(this.disposables.add(new ei(this.domNode,"auxclick")).event,e=>this.toMouseEvent(e),this.disposables),e=>e.browserEvent.button===1,this.disposables)}get onMouseDown(){return Ae.map(this.disposables.add(new ei(this.domNode,"mousedown")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseOver(){return Ae.map(this.disposables.add(new ei(this.domNode,"mouseover")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseOut(){return Ae.map(this.disposables.add(new ei(this.domNode,"mouseout")).event,e=>this.toMouseEvent(e),this.disposables)}get onContextMenu(){return Ae.any(Ae.map(this.disposables.add(new ei(this.domNode,"contextmenu")).event,e=>this.toMouseEvent(e),this.disposables),Ae.map(this.disposables.add(new ei(this.domNode,fn.Contextmenu)).event,e=>this.toGestureEvent(e),this.disposables))}get onTouchStart(){return Ae.map(this.disposables.add(new ei(this.domNode,"touchstart")).event,e=>this.toTouchEvent(e),this.disposables)}get onTap(){return Ae.map(this.disposables.add(new ei(this.rowsContainer,fn.Tap)).event,e=>this.toGestureEvent(e),this.disposables)}toMouseEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=typeof t>"u"?void 0:this.items[t],s=i&&i.element;return{browserEvent:e,index:t,element:s}}toTouchEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=typeof t>"u"?void 0:this.items[t],s=i&&i.element;return{browserEvent:e,index:t,element:s}}toGestureEvent(e){const t=this.getItemIndexFromEventTarget(e.initialTarget||null),i=typeof t>"u"?void 0:this.items[t],s=i&&i.element;return{browserEvent:e,index:t,element:s}}toDragEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=typeof t>"u"?void 0:this.items[t],s=i&&i.element,o=this.getTargetSector(e,t);return{browserEvent:e,index:t,element:s,sector:o}}onScroll(e){try{const t=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight);this.render(t,e.scrollTop,e.height,e.scrollLeft,e.scrollWidth),this.supportDynamicHeights&&this._rerender(e.scrollTop,e.height,e.inSmoothScrolling)}catch(t){throw console.error("Got bad scroll event:",e),t}}onTouchChange(e){e.preventDefault(),e.stopPropagation(),this.scrollTop-=e.translationY}onDragStart(e,t,i){var s,o;if(!i.dataTransfer)return;const r=this.dnd.getDragElements(e);if(i.dataTransfer.effectAllowed="copyMove",i.dataTransfer.setData(UL.TEXT,t),i.dataTransfer.setDragImage){let a;this.dnd.getDragLabel&&(a=this.dnd.getDragLabel(r,i)),typeof a>"u"&&(a=String(r.length));const l=ke(".monaco-drag-image");l.textContent=a;const d=(u=>{for(;u&&!u.classList.contains("monaco-workbench");)u=u.parentElement;return u||this.domNode.ownerDocument})(this.domNode);d.appendChild(l),i.dataTransfer.setDragImage(l,-10,-10),setTimeout(()=>d.removeChild(l),0)}this.domNode.classList.add("dragging"),this.currentDragData=new TD(r),K_.CurrentDragAndDropData=new XHe(r),(o=(s=this.dnd).onDragStart)===null||o===void 0||o.call(s,this.currentDragData,i)}onDragOver(e){var t,i;if(e.browserEvent.preventDefault(),this.onDragLeaveTimeout.dispose(),K_.CurrentDragAndDropData&&K_.CurrentDragAndDropData.getData()==="vscode-ui"||(this.setupDragAndDropScrollTopAnimation(e.browserEvent),!e.browserEvent.dataTransfer))return!1;if(!this.currentDragData)if(K_.CurrentDragAndDropData)this.currentDragData=K_.CurrentDragAndDropData;else{if(!e.browserEvent.dataTransfer.types)return!1;this.currentDragData=new QHe}const s=this.dnd.onDragOver(this.currentDragData,e.element,e.index,e.sector,e.browserEvent);if(this.canDrop=typeof s=="boolean"?s:s.accept,!this.canDrop)return this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),!1;e.browserEvent.dataTransfer.dropEffect=typeof s!="boolean"&&((t=s.effect)===null||t===void 0?void 0:t.type)===0?"copy":"move";let o;typeof s!="boolean"&&s.feedback?o=s.feedback:typeof e.index>"u"?o=[-1]:o=[e.index],o=xg(o).filter(a=>a>=-1&&aa-l),o=o[0]===-1?[-1]:o;let r=typeof s!="boolean"&&s.effect&&s.effect.position?s.effect.position:"drop-target";if(JHe(this.currentDragFeedback,o)&&this.currentDragFeedbackPosition===r)return!0;if(this.currentDragFeedback=o,this.currentDragFeedbackPosition=r,this.currentDragFeedbackDisposable.dispose(),o[0]===-1)this.domNode.classList.add(r),this.rowsContainer.classList.add(r),this.currentDragFeedbackDisposable=dt(()=>{this.domNode.classList.remove(r),this.rowsContainer.classList.remove(r)});else{if(o.length>1&&r!=="drop-target")throw new Error("Can't use multiple feedbacks with position different than 'over'");r==="drop-target-after"&&o[0]{var a;for(const l of o){const c=this.items[l];c.dropTarget=!1,(a=c.row)===null||a===void 0||a.domNode.classList.remove(r)}})}return!0}onDragLeave(e){var t,i;this.onDragLeaveTimeout.dispose(),this.onDragLeaveTimeout=Om(()=>this.clearDragOverFeedback(),100,this.disposables),this.currentDragData&&((i=(t=this.dnd).onDragLeave)===null||i===void 0||i.call(t,this.currentDragData,e.element,e.index,e.browserEvent))}onDrop(e){if(!this.canDrop)return;const t=this.currentDragData;this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.domNode.classList.remove("dragging"),this.currentDragData=void 0,K_.CurrentDragAndDropData=void 0,!(!t||!e.browserEvent.dataTransfer)&&(e.browserEvent.preventDefault(),t.update(e.browserEvent.dataTransfer),this.dnd.drop(t,e.element,e.index,e.sector,e.browserEvent))}onDragEnd(e){var t,i;this.canDrop=!1,this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.domNode.classList.remove("dragging"),this.currentDragData=void 0,K_.CurrentDragAndDropData=void 0,(i=(t=this.dnd).onDragEnd)===null||i===void 0||i.call(t,e)}clearDragOverFeedback(){this.currentDragFeedback=void 0,this.currentDragFeedbackPosition=void 0,this.currentDragFeedbackDisposable.dispose(),this.currentDragFeedbackDisposable=ne.None}setupDragAndDropScrollTopAnimation(e){if(!this.dragOverAnimationDisposable){const t=zae(this.domNode).top;this.dragOverAnimationDisposable=OMe(gt(this.domNode),this.animateDragAndDropScrollTop.bind(this,t))}this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationStopDisposable=Om(()=>{this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)},1e3,this.disposables),this.dragOverMouseY=e.pageY}animateDragAndDropScrollTop(e){if(this.dragOverMouseY===void 0)return;const t=this.dragOverMouseY-e,i=this.renderHeight-35;t<35?this.scrollTop+=Math.max(-14,Math.floor(.3*(t-35))):t>i&&(this.scrollTop+=Math.min(14,Math.floor(.3*(t-i))))}teardownDragAndDropScrollTopAnimation(){this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)}getTargetSector(e,t){if(t===void 0)return;const i=e.offsetY/this.items[t].size,s=Math.floor(i/.25);return Sr(s,0,3)}getItemIndexFromEventTarget(e){const t=this.scrollableElement.getDomNode();let i=e;for(;co(i)&&i!==this.rowsContainer&&t.contains(i);){const s=i.getAttribute("data-index");if(s){const o=Number(s);if(!isNaN(o))return o}i=i.parentElement}}getRenderRange(e,t){return{start:this.rangeMap.indexAt(e),end:this.rangeMap.indexAfter(e+t-1)}}_rerender(e,t,i){const s=this.getRenderRange(e,t);let o,r;e===this.elementTop(s.start)?(o=s.start,r=0):s.end-s.start>1&&(o=s.start+1,r=this.elementTop(o)-e);let a=0;for(;;){const l=this.getRenderRange(e,t);let c=!1;for(let d=l.start;d=h.start;f--)this.insertItemInDOM(f);for(let h=l.start;hn===e;function D9(n=lu){return(e,t)=>zn(e,t,n)}function Nde(){return(n,e)=>n.equals(e)}function tVe(n,e,t){return!n||!e?n===e:t(n,e)}class ca{constructor(e,t,i){this.owner=e,this.debugNameSource=t,this.referenceFn=i}getDebugName(e){return iVe(e,this)}}const vJ=new Map,I9=new WeakMap;function iVe(n,e){var t;const i=I9.get(n);if(i)return i;const s=nVe(n,e);if(s){let o=(t=vJ.get(s))!==null&&t!==void 0?t:0;o++,vJ.set(s,o);const r=o===1?s:`${s}#${o}`;return I9.set(n,r),r}}function nVe(n,e){const t=I9.get(n);if(t)return t;const i=e.owner?oVe(e.owner)+".":"";let s;const o=e.debugNameSource;if(o!==void 0)if(typeof o=="function"){if(s=o(),s!==void 0)return i+s}else return i+o;const r=e.referenceFn;if(r!==void 0&&(s=JM(r),s!==void 0))return i+s;if(e.owner!==void 0){const a=sVe(e.owner,n);if(a!==void 0)return i+a}}function sVe(n,e){for(const t in n)if(n[t]===e)return t}const bJ=new Map,CJ=new WeakMap;function oVe(n){var e;const t=CJ.get(n);if(t)return t;const i=rVe(n);let s=(e=bJ.get(i))!==null&&e!==void 0?e:0;s++,bJ.set(i,s);const o=s===1?i:`${i}#${s}`;return CJ.set(n,o),o}function rVe(n){const e=n.constructor;return e?e.name:"Object"}function JM(n){const e=n.toString(),i=/\/\*\*\s*@description\s*([^*]*)\*\//.exec(e),s=i?i[1]:void 0;return s==null?void 0:s.trim()}let aVe;function vh(){return aVe}let Ade;function lVe(n){Ade=n}let Rde;function cVe(n){Rde=n}class Mde{get TChange(){return null}reportChanges(){this.get()}read(e){return e?e.readObservable(this):this.get()}map(e,t){const i=t===void 0?void 0:e,s=t===void 0?e:t;return Rde({owner:i,debugName:()=>{const o=JM(s);if(o!==void 0)return o;const a=/^\s*\(?\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\s*\)?\s*=>\s*\1(?:\??)\.([a-zA-Z_$][a-zA-Z_$0-9]*)\s*$/.exec(s.toString());if(a)return`${this.debugName}.${a[2]}`;if(!i)return`${this.debugName} (mapped)`},debugReferenceFn:s},o=>s(this.read(o),o))}recomputeInitiallyAndOnChange(e,t){return e.add(Ade(this,t)),this}}class ND extends Mde{constructor(){super(...arguments),this.observers=new Set}addObserver(e){const t=this.observers.size;this.observers.add(e),t===0&&this.onFirstObserverAdded()}removeObserver(e){this.observers.delete(e)&&this.observers.size===0&&this.onLastObserverRemoved()}onFirstObserverAdded(){}onLastObserverRemoved(){}}function rn(n,e){const t=new eP(n,e);try{n(t)}finally{t.finish()}}let cT;function DN(n){if(cT)n(cT);else{const e=new eP(n,void 0);cT=e;try{n(e)}finally{e.finish(),cT=void 0}}}async function dVe(n,e){const t=new eP(n,e);try{await n(t)}finally{t.finish()}}function jL(n,e,t){n?e(n):rn(e,t)}class eP{constructor(e,t){var i;this._fn=e,this._getDebugName=t,this.updatingObservers=[],(i=vh())===null||i===void 0||i.handleBeginTransaction(this)}getDebugName(){return this._getDebugName?this._getDebugName():JM(this._fn)}updateObserver(e,t){this.updatingObservers.push({observer:e,observable:t}),e.beginUpdate(t)}finish(){var e;const t=this.updatingObservers;for(let i=0;i{},()=>`Setting ${this.debugName}`));try{const r=this._value;this._setValue(e),(s=vh())===null||s===void 0||s.handleObservableChanged(this,{oldValue:r,newValue:e,change:i,didChange:!0,hadValue:!0});for(const a of this.observers)t.updateObserver(a,this),a.handleChange(this,i)}finally{o&&o.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(e){this._value=e}}function KL(n,e){let t;return typeof n=="string"?t=new ca(void 0,n,void 0):t=new ca(n,void 0,void 0),new hVe(t,e,lu)}class hVe extends S${_setValue(e){this._value!==e&&(this._value&&this._value.dispose(),this._value=e)}dispose(){var e;(e=this._value)===null||e===void 0||e.dispose()}}function Rt(n,e){return e!==void 0?new C0(new ca(n,void 0,e),e,void 0,void 0,void 0,lu):new C0(new ca(void 0,void 0,n),n,void 0,void 0,void 0,lu)}function Pde(n,e,t){return new gVe(new ca(n,void 0,e),e,void 0,void 0,void 0,lu,t)}function Uf(n,e){var t;return new C0(new ca(n.owner,n.debugName,n.debugReferenceFn),e,void 0,void 0,n.onLastObserverRemoved,(t=n.equalsFn)!==null&&t!==void 0?t:lu)}cVe(Uf);function fVe(n,e){var t;return new C0(new ca(n.owner,n.debugName,void 0),e,n.createEmptyChangeSummary,n.handleChange,void 0,(t=n.equalityComparer)!==null&&t!==void 0?t:lu)}function J0(n,e){let t,i;e===void 0?(t=n,i=void 0):(i=n,t=e);const s=new be;return new C0(new ca(i,void 0,t),o=>(s.clear(),t(o,s)),void 0,void 0,()=>s.dispose(),lu)}function zu(n,e){let t,i;e===void 0?(t=n,i=void 0):(i=n,t=e);const s=new be;return new C0(new ca(i,void 0,t),o=>{s.clear();const r=t(o);return r&&s.add(r),r},void 0,void 0,()=>s.dispose(),lu)}class C0 extends ND{get debugName(){var e;return(e=this._debugNameData.getDebugName(this))!==null&&e!==void 0?e:"(anonymous)"}constructor(e,t,i,s,o=void 0,r){var a,l;super(),this._debugNameData=e,this._computeFn=t,this.createChangeSummary=i,this._handleChange=s,this._handleLastObserverRemoved=o,this._equalityComparator=r,this.state=0,this.value=void 0,this.updateCount=0,this.dependencies=new Set,this.dependenciesToBeRemoved=new Set,this.changeSummary=void 0,this.changeSummary=(a=this.createChangeSummary)===null||a===void 0?void 0:a.call(this),(l=vh())===null||l===void 0||l.handleDerivedCreated(this)}onLastObserverRemoved(){var e;this.state=0,this.value=void 0;for(const t of this.dependencies)t.removeObserver(this);this.dependencies.clear(),(e=this._handleLastObserverRemoved)===null||e===void 0||e.call(this)}get(){var e;if(this.observers.size===0){const t=this._computeFn(this,(e=this.createChangeSummary)===null||e===void 0?void 0:e.call(this));return this.onLastObserverRemoved(),t}else{do{if(this.state===1){for(const t of this.dependencies)if(t.reportChanges(),this.state===2)break}this.state===1&&(this.state=3),this._recomputeIfNeeded()}while(this.state!==3);return this.value}}_recomputeIfNeeded(){var e,t;if(this.state===3)return;const i=this.dependenciesToBeRemoved;this.dependenciesToBeRemoved=this.dependencies,this.dependencies=i;const s=this.state!==0,o=this.value;this.state=3;const r=this.changeSummary;this.changeSummary=(e=this.createChangeSummary)===null||e===void 0?void 0:e.call(this);try{this.value=this._computeFn(this,r)}finally{for(const l of this.dependenciesToBeRemoved)l.removeObserver(this);this.dependenciesToBeRemoved.clear()}const a=s&&!this._equalityComparator(o,this.value);if((t=vh())===null||t===void 0||t.handleDerivedRecomputed(this,{oldValue:o,newValue:this.value,change:void 0,didChange:a,hadValue:s}),a)for(const l of this.observers)l.handleChange(this,void 0)}toString(){return`LazyDerived<${this.debugName}>`}beginUpdate(e){this.updateCount++;const t=this.updateCount===1;if(this.state===3&&(this.state=1,!t))for(const i of this.observers)i.handlePossibleChange(this);if(t)for(const i of this.observers)i.beginUpdate(this)}endUpdate(e){if(this.updateCount--,this.updateCount===0){const t=[...this.observers];for(const i of t)i.endUpdate(this)}g0(()=>this.updateCount>=0)}handlePossibleChange(e){if(this.state===3&&this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)){this.state=1;for(const t of this.observers)t.handlePossibleChange(this)}}handleChange(e,t){if(this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)){const i=this._handleChange?this._handleChange({changedObservable:e,change:t,didChange:o=>o===e},this.changeSummary):!0,s=this.state===3;if(i&&(this.state===1||s)&&(this.state=2,s))for(const o of this.observers)o.handlePossibleChange(this)}}readObservable(e){e.addObserver(this);const t=e.get();return this.dependencies.add(e),this.dependenciesToBeRemoved.delete(e),t}addObserver(e){const t=!this.observers.has(e)&&this.updateCount>0;super.addObserver(e),t&&e.beginUpdate(this)}removeObserver(e){const t=this.observers.has(e)&&this.updateCount>0;super.removeObserver(e),t&&e.endUpdate(this)}}class gVe extends C0{constructor(e,t,i,s,o=void 0,r,a){super(e,t,i,s,o,r),this.set=a}}function Ut(n){return new iP(new ca(void 0,void 0,n),n,void 0,void 0)}function tP(n,e){var t;return new iP(new ca(n.owner,n.debugName,(t=n.debugReferenceFn)!==null&&t!==void 0?t:e),e,void 0,void 0)}function AD(n,e){var t;return new iP(new ca(n.owner,n.debugName,(t=n.debugReferenceFn)!==null&&t!==void 0?t:e),e,n.createEmptyChangeSummary,n.handleChange)}function uc(n){const e=new be,t=tP({owner:void 0,debugName:void 0,debugReferenceFn:n},i=>{e.clear(),n(i,e)});return dt(()=>{t.dispose(),e.dispose()})}class iP{get debugName(){var e;return(e=this._debugNameData.getDebugName(this))!==null&&e!==void 0?e:"(anonymous)"}constructor(e,t,i,s){var o,r;this._debugNameData=e,this._runFn=t,this.createChangeSummary=i,this._handleChange=s,this.state=2,this.updateCount=0,this.disposed=!1,this.dependencies=new Set,this.dependenciesToBeRemoved=new Set,this.changeSummary=(o=this.createChangeSummary)===null||o===void 0?void 0:o.call(this),(r=vh())===null||r===void 0||r.handleAutorunCreated(this),this._runIfNeeded()}dispose(){this.disposed=!0;for(const e of this.dependencies)e.removeObserver(this);this.dependencies.clear()}_runIfNeeded(){var e,t,i;if(this.state===3)return;const s=this.dependenciesToBeRemoved;this.dependenciesToBeRemoved=this.dependencies,this.dependencies=s,this.state=3;const o=this.disposed;try{if(!o){(e=vh())===null||e===void 0||e.handleAutorunTriggered(this);const r=this.changeSummary;this.changeSummary=(t=this.createChangeSummary)===null||t===void 0?void 0:t.call(this),this._runFn(this,r)}}finally{o||(i=vh())===null||i===void 0||i.handleAutorunFinished(this);for(const r of this.dependenciesToBeRemoved)r.removeObserver(this);this.dependenciesToBeRemoved.clear()}}toString(){return`Autorun<${this.debugName}>`}beginUpdate(){this.state===3&&(this.state=1),this.updateCount++}endUpdate(){if(this.updateCount===1)do{if(this.state===1){this.state=3;for(const e of this.dependencies)if(e.reportChanges(),this.state===2)break}this._runIfNeeded()}while(this.state!==3);this.updateCount--,g0(()=>this.updateCount>=0)}handlePossibleChange(e){this.state===3&&this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)&&(this.state=1)}handleChange(e,t){this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)&&(!this._handleChange||this._handleChange({changedObservable:e,change:t,didChange:s=>s===e},this.changeSummary))&&(this.state=2)}readObservable(e){if(this.disposed)return e.get();e.addObserver(this);const t=e.get();return this.dependencies.add(e),this.dependenciesToBeRemoved.delete(e),t}}(function(n){n.Observer=iP})(Ut||(Ut={}));function Vd(n){return new pVe(n)}class pVe extends Mde{constructor(e){super(),this.value=e}get debugName(){return this.toString()}get(){return this.value}addObserver(e){}removeObserver(e){}toString(){return`Const: ${this.value}`}}function qi(n,e){return new Iv(n,e)}class Iv extends ND{constructor(e,t){super(),this.event=e,this._getValue=t,this.hasValue=!1,this.handleEvent=i=>{var s;const o=this._getValue(i),r=this.value,a=!this.hasValue||r!==o;let l=!1;a&&(this.value=o,this.hasValue&&(l=!0,jL(Iv.globalTransaction,c=>{var d;(d=vh())===null||d===void 0||d.handleFromEventObservableTriggered(this,{oldValue:r,newValue:o,change:void 0,didChange:a,hadValue:this.hasValue});for(const u of this.observers)c.updateObserver(u,this),u.handleChange(this,void 0)},()=>{const c=this.getDebugName();return"Event fired"+(c?`: ${c}`:"")})),this.hasValue=!0),l||(s=vh())===null||s===void 0||s.handleFromEventObservableTriggered(this,{oldValue:r,newValue:o,change:void 0,didChange:a,hadValue:this.hasValue})}}getDebugName(){return JM(this._getValue)}get debugName(){const e=this.getDebugName();return"From Event"+(e?`: ${e}`:"")}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0,this.hasValue=!1,this.value=void 0}get(){return this.subscription?(this.hasValue||this.handleEvent(void 0),this.value):this._getValue(void 0)}}(function(n){n.Observer=Iv;function e(t,i){let s=!1;Iv.globalTransaction===void 0&&(Iv.globalTransaction=t,s=!0);try{i()}finally{s&&(Iv.globalTransaction=void 0)}}n.batchEventsGlobally=e})(qi||(qi={}));function Ko(n,e){return new mVe(n,e)}class mVe extends ND{constructor(e,t){super(),this.debugName=e,this.event=t,this.handleEvent=()=>{rn(i=>{for(const s of this.observers)i.updateObserver(s,this),s.handleChange(this,void 0)},()=>this.debugName)}}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0}get(){}}function nP(n){return typeof n=="string"?new wJ(n):new wJ(void 0,n)}class wJ extends ND{get debugName(){var e;return(e=new ca(this._owner,this._debugName,void 0).getDebugName(this))!==null&&e!==void 0?e:"Observable Signal"}constructor(e,t){super(),this._debugName=e,this._owner=t}trigger(e,t){if(!e){rn(i=>{this.trigger(i,t)},()=>`Trigger signal ${this.debugName}`);return}for(const i of this.observers)e.updateObserver(i,this),i.handleChange(this,t)}get(){}}function RD(n,e){const t=new _Ve(!0,e);return n.addObserver(t),e?e(n.get()):n.reportChanges(),dt(()=>{n.removeObserver(t)})}lVe(RD);class _Ve{constructor(e,t){this._forceRecompute=e,this._handleValue=t,this._counter=0}beginUpdate(e){this._counter++}endUpdate(e){this._counter--,this._counter===0&&this._forceRecompute&&(this._handleValue?this._handleValue(e.get()):e.reportChanges())}handlePossibleChange(e){}handleChange(e,t){}}function vVe(n,e){let t;return Rt(n,s=>(t=e(s,t),t))}function bVe(n,e,t,i){let s=new yJ(t,i);return Uf({debugReferenceFn:t,owner:n,onLastObserverRemoved:()=>{s.dispose(),s=new yJ(t)}},r=>(s.setItems(e.read(r)),s.getItems()))}class yJ{constructor(e,t){this._map=e,this._keySelector=t,this._cache=new Map,this._items=[]}dispose(){this._cache.forEach(e=>e.store.dispose()),this._cache.clear()}setItems(e){const t=[],i=new Set(this._cache.keys());for(const s of e){const o=this._keySelector?this._keySelector(s):s;let r=this._cache.get(o);if(r)i.delete(o);else{const a=new be;r={out:this._map(s,a),store:a},this._cache.set(o,r)}t.push(r.out)}for(const s of i)this._cache.get(s).store.dispose(),this._cache.delete(s);this._items=t}getItems(){return this._items}}function Ode(n,e,t,i){return e||(e=s=>s!=null),new Promise((s,o)=>{let r=!0,a=!1;const l=n.map(d=>({isFinished:e(d),error:t?t(d):!1,state:d})),c=Ut(d=>{const{isFinished:u,error:h,state:f}=l.read(d);(u||h)&&(r?a=!0:c.dispose(),h?o(h===!0?f:h):s(f))});if(i){const d=i.onCancellationRequested(()=>{c.dispose(),d.dispose(),o(new nu)});if(i.isCancellationRequested){c.dispose(),d.dispose(),o(new nu);return}}r=!1,a&&c.dispose()})}var __=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o};class CVe{constructor(e){this.trait=e,this.renderedElements=[]}get templateId(){return`template:${this.trait.name}`}renderTemplate(e){return e}renderElement(e,t,i){const s=this.renderedElements.findIndex(o=>o.templateData===i);if(s>=0){const o=this.renderedElements[s];this.trait.unrender(i),o.index=t}else{const o={index:t,templateData:i};this.renderedElements.push(o)}this.trait.renderIndex(t,i)}splice(e,t,i){const s=[];for(const o of this.renderedElements)o.index=e+t&&s.push({index:o.index+i-t,templateData:o.templateData});this.renderedElements=s}renderIndexes(e){for(const{index:t,templateData:i}of this.renderedElements)e.indexOf(t)>-1&&this.trait.renderIndex(t,i)}disposeTemplate(e){const t=this.renderedElements.findIndex(i=>i.templateData===e);t<0||this.renderedElements.splice(t,1)}}let SA=class{get name(){return this._trait}get renderer(){return new CVe(this)}constructor(e){this._trait=e,this.indexes=[],this.sortedIndexes=[],this._onChange=new X,this.onChange=this._onChange.event}splice(e,t,i){const s=i.length-t,o=e+t,r=[];let a=0;for(;a=o;)r.push(this.sortedIndexes[a++]+s);this.renderer.splice(e,t,i.length),this._set(r,r)}renderIndex(e,t){t.classList.toggle(this._trait,this.contains(e))}unrender(e){e.classList.remove(this._trait)}set(e,t){return this._set(e,[...e].sort(xJ),t)}_set(e,t,i){const s=this.indexes,o=this.sortedIndexes;this.indexes=e,this.sortedIndexes=t;const r=E9(o,e);return this.renderer.renderIndexes(r),this._onChange.fire({indexes:e,browserEvent:i}),s}get(){return this.indexes}contains(e){return tL(this.sortedIndexes,e,xJ)>=0}dispose(){tn(this._onChange)}};__([gs],SA.prototype,"renderer",null);class wVe extends SA{constructor(e){super("selected"),this.setAriaSelected=e}renderIndex(e,t){super.renderIndex(e,t),this.setAriaSelected&&(this.contains(e)?t.setAttribute("aria-selected","true"):t.setAttribute("aria-selected","false"))}}class M5{constructor(e,t,i){this.trait=e,this.view=t,this.identityProvider=i}splice(e,t,i){if(!this.identityProvider)return this.trait.splice(e,t,new Array(i.length).fill(!1));const s=this.trait.get().map(a=>this.identityProvider.getId(this.view.element(a)).toString());if(s.length===0)return this.trait.splice(e,t,new Array(i.length).fill(!1));const o=new Set(s),r=i.map(a=>o.has(this.identityProvider.getId(a).toString()));this.trait.splice(e,t,r)}}function mm(n){return n.tagName==="INPUT"||n.tagName==="TEXTAREA"}function MD(n,e){return n.classList.contains(e)?!0:n.classList.contains("monaco-list")||!n.parentElement?!1:MD(n.parentElement,e)}function RS(n){return MD(n,"monaco-editor")}function yVe(n){return MD(n,"monaco-custom-toggle")}function SVe(n){return MD(n,"action-item")}function Dx(n){return MD(n,"monaco-tree-sticky-row")}function qL(n){return n.classList.contains("monaco-tree-sticky-container")}function Fde(n){return n.tagName==="A"&&n.classList.contains("monaco-button")||n.tagName==="DIV"&&n.classList.contains("monaco-button-dropdown")?!0:n.classList.contains("monaco-list")||!n.parentElement?!1:Fde(n.parentElement)}class Bde{get onKeyDown(){return Ae.chain(this.disposables.add(new ei(this.view.domNode,"keydown")).event,e=>e.filter(t=>!mm(t.target)).map(t=>new ln(t)))}constructor(e,t,i){this.list=e,this.view=t,this.disposables=new be,this.multipleSelectionDisposables=new be,this.multipleSelectionSupport=i.multipleSelectionSupport,this.disposables.add(this.onKeyDown(s=>{switch(s.keyCode){case 3:return this.onEnter(s);case 16:return this.onUpArrow(s);case 18:return this.onDownArrow(s);case 11:return this.onPageUpArrow(s);case 12:return this.onPageDownArrow(s);case 9:return this.onEscape(s);case 31:this.multipleSelectionSupport&&(Xt?s.metaKey:s.ctrlKey)&&this.onCtrlA(s)}}))}updateOptions(e){e.multipleSelectionSupport!==void 0&&(this.multipleSelectionSupport=e.multipleSelectionSupport)}onEnter(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(this.list.getFocus(),e.browserEvent)}onUpArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusPrevious(1,!1,e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onDownArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusNext(1,!1,e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onPageUpArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusPreviousPage(e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onPageDownArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusNextPage(e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onCtrlA(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(Xr(this.list.length),e.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus()}onEscape(e){this.list.getSelection().length&&(e.preventDefault(),e.stopPropagation(),this.list.setSelection([],e.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus())}dispose(){this.disposables.dispose(),this.multipleSelectionDisposables.dispose()}}__([gs],Bde.prototype,"onKeyDown",null);var ih;(function(n){n[n.Automatic=0]="Automatic",n[n.Trigger=1]="Trigger"})(ih||(ih={}));var T1;(function(n){n[n.Idle=0]="Idle",n[n.Typing=1]="Typing"})(T1||(T1={}));const xVe=new class{mightProducePrintableCharacter(n){return n.ctrlKey||n.metaKey||n.altKey?!1:n.keyCode>=31&&n.keyCode<=56||n.keyCode>=21&&n.keyCode<=30||n.keyCode>=98&&n.keyCode<=107||n.keyCode>=85&&n.keyCode<=95}};class LVe{constructor(e,t,i,s,o){this.list=e,this.view=t,this.keyboardNavigationLabelProvider=i,this.keyboardNavigationEventFilter=s,this.delegate=o,this.enabled=!1,this.state=T1.Idle,this.mode=ih.Automatic,this.triggered=!1,this.previouslyFocused=-1,this.enabledDisposables=new be,this.disposables=new be,this.updateOptions(e.options)}updateOptions(e){var t,i;!((t=e.typeNavigationEnabled)!==null&&t!==void 0)||t?this.enable():this.disable(),this.mode=(i=e.typeNavigationMode)!==null&&i!==void 0?i:ih.Automatic}enable(){if(this.enabled)return;let e=!1;const t=Ae.chain(this.enabledDisposables.add(new ei(this.view.domNode,"keydown")).event,o=>o.filter(r=>!mm(r.target)).filter(()=>this.mode===ih.Automatic||this.triggered).map(r=>new ln(r)).filter(r=>e||this.keyboardNavigationEventFilter(r)).filter(r=>this.delegate.mightProducePrintableCharacter(r)).forEach(r=>ii.stop(r,!0)).map(r=>r.browserEvent.key)),i=Ae.debounce(t,()=>null,800,void 0,void 0,void 0,this.enabledDisposables);Ae.reduce(Ae.any(t,i),(o,r)=>r===null?null:(o||"")+r,void 0,this.enabledDisposables)(this.onInput,this,this.enabledDisposables),i(this.onClear,this,this.enabledDisposables),t(()=>e=!0,void 0,this.enabledDisposables),i(()=>e=!1,void 0,this.enabledDisposables),this.enabled=!0,this.triggered=!1}disable(){this.enabled&&(this.enabledDisposables.clear(),this.enabled=!1,this.triggered=!1)}onClear(){var e;const t=this.list.getFocus();if(t.length>0&&t[0]===this.previouslyFocused){const i=(e=this.list.options.accessibilityProvider)===null||e===void 0?void 0:e.getAriaLabel(this.list.element(t[0]));typeof i=="string"?la(i):i&&la(i.get())}this.previouslyFocused=-1}onInput(e){if(!e){this.state=T1.Idle,this.triggered=!1;return}const t=this.list.getFocus(),i=t.length>0?t[0]:0,s=this.state===T1.Idle?1:0;this.state=T1.Typing;for(let o=0;o1&&c.length===1){this.previouslyFocused=i,this.list.setFocus([r]),this.list.reveal(r);return}}}else if(typeof l>"u"||BL(e,l)){this.previouslyFocused=i,this.list.setFocus([r]),this.list.reveal(r);return}}}dispose(){this.disable(),this.enabledDisposables.dispose(),this.disposables.dispose()}}class kVe{constructor(e,t){this.list=e,this.view=t,this.disposables=new be;const i=Ae.chain(this.disposables.add(new ei(t.domNode,"keydown")).event,o=>o.filter(r=>!mm(r.target)).map(r=>new ln(r)));Ae.chain(i,o=>o.filter(r=>r.keyCode===2&&!r.ctrlKey&&!r.metaKey&&!r.shiftKey&&!r.altKey))(this.onTab,this,this.disposables)}onTab(e){if(e.target!==this.view.domNode)return;const t=this.list.getFocus();if(t.length===0)return;const i=this.view.domElement(t[0]);if(!i)return;const s=i.querySelector("[tabIndex]");if(!s||!co(s)||s.tabIndex===-1)return;const o=gt(s).getComputedStyle(s);o.visibility==="hidden"||o.display==="none"||(e.preventDefault(),e.stopPropagation(),s.focus())}dispose(){this.disposables.dispose()}}function Wde(n){return Xt?n.browserEvent.metaKey:n.browserEvent.ctrlKey}function Hde(n){return n.browserEvent.shiftKey}function DVe(n){return sz(n)&&n.button===2}const SJ={isSelectionSingleChangeEvent:Wde,isSelectionRangeChangeEvent:Hde};class Vde{constructor(e){this.list=e,this.disposables=new be,this._onPointer=new X,this.onPointer=this._onPointer.event,e.options.multipleSelectionSupport!==!1&&(this.multipleSelectionController=this.list.options.multipleSelectionController||SJ),this.mouseSupport=typeof e.options.mouseSupport>"u"||!!e.options.mouseSupport,this.mouseSupport&&(e.onMouseDown(this.onMouseDown,this,this.disposables),e.onContextMenu(this.onContextMenu,this,this.disposables),e.onMouseDblClick(this.onDoubleClick,this,this.disposables),e.onTouchStart(this.onMouseDown,this,this.disposables),this.disposables.add(hn.addTarget(e.getHTMLElement()))),Ae.any(e.onMouseClick,e.onMouseMiddleClick,e.onTap)(this.onViewPointer,this,this.disposables)}updateOptions(e){e.multipleSelectionSupport!==void 0&&(this.multipleSelectionController=void 0,e.multipleSelectionSupport&&(this.multipleSelectionController=this.list.options.multipleSelectionController||SJ))}isSelectionSingleChangeEvent(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionSingleChangeEvent(e):!1}isSelectionRangeChangeEvent(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionRangeChangeEvent(e):!1}isSelectionChangeEvent(e){return this.isSelectionSingleChangeEvent(e)||this.isSelectionRangeChangeEvent(e)}onMouseDown(e){RS(e.browserEvent.target)||Ao()!==e.browserEvent.target&&this.list.domFocus()}onContextMenu(e){if(mm(e.browserEvent.target)||RS(e.browserEvent.target))return;const t=typeof e.index>"u"?[]:[e.index];this.list.setFocus(t,e.browserEvent)}onViewPointer(e){if(!this.mouseSupport||mm(e.browserEvent.target)||RS(e.browserEvent.target)||e.browserEvent.isHandledByList)return;e.browserEvent.isHandledByList=!0;const t=e.index;if(typeof t>"u"){this.list.setFocus([],e.browserEvent),this.list.setSelection([],e.browserEvent),this.list.setAnchor(void 0);return}if(this.isSelectionChangeEvent(e))return this.changeSelection(e);this.list.setFocus([t],e.browserEvent),this.list.setAnchor(t),DVe(e.browserEvent)||this.list.setSelection([t],e.browserEvent),this._onPointer.fire(e)}onDoubleClick(e){if(mm(e.browserEvent.target)||RS(e.browserEvent.target)||this.isSelectionChangeEvent(e)||e.browserEvent.isHandledByList)return;e.browserEvent.isHandledByList=!0;const t=this.list.getFocus();this.list.setSelection(t,e.browserEvent)}changeSelection(e){const t=e.index;let i=this.list.getAnchor();if(this.isSelectionRangeChangeEvent(e)){if(typeof i>"u"){const d=this.list.getFocus()[0];i=d??t,this.list.setAnchor(i)}const s=Math.min(i,t),o=Math.max(i,t),r=Xr(s,o+1),a=this.list.getSelection(),l=TVe(E9(a,[i]),i);if(l.length===0)return;const c=E9(r,NVe(a,l));this.list.setSelection(c,e.browserEvent),this.list.setFocus([t],e.browserEvent)}else if(this.isSelectionSingleChangeEvent(e)){const s=this.list.getSelection(),o=s.filter(r=>r!==t);this.list.setFocus([t]),this.list.setAnchor(t),s.length===o.length?this.list.setSelection([...o,t],e.browserEvent):this.list.setSelection(o,e.browserEvent)}}dispose(){this.disposables.dispose()}}class zde{constructor(e,t){this.styleElement=e,this.selectorSuffix=t}style(e){var t,i;const s=this.selectorSuffix&&`.${this.selectorSuffix}`,o=[];e.listBackground&&o.push(`.monaco-list${s} .monaco-list-rows { background: ${e.listBackground}; }`),e.listFocusBackground&&(o.push(`.monaco-list${s}:focus .monaco-list-row.focused { background-color: ${e.listFocusBackground}; }`),o.push(`.monaco-list${s}:focus .monaco-list-row.focused:hover { background-color: ${e.listFocusBackground}; }`)),e.listFocusForeground&&o.push(`.monaco-list${s}:focus .monaco-list-row.focused { color: ${e.listFocusForeground}; }`),e.listActiveSelectionBackground&&(o.push(`.monaco-list${s}:focus .monaco-list-row.selected { background-color: ${e.listActiveSelectionBackground}; }`),o.push(`.monaco-list${s}:focus .monaco-list-row.selected:hover { background-color: ${e.listActiveSelectionBackground}; }`)),e.listActiveSelectionForeground&&o.push(`.monaco-list${s}:focus .monaco-list-row.selected { color: ${e.listActiveSelectionForeground}; }`),e.listActiveSelectionIconForeground&&o.push(`.monaco-list${s}:focus .monaco-list-row.selected .codicon { color: ${e.listActiveSelectionIconForeground}; }`),e.listFocusAndSelectionBackground&&o.push(` .monaco-drag-image, .monaco-list${s}:focus .monaco-list-row.selected.focused { background-color: ${e.listFocusAndSelectionBackground}; } `),e.listFocusAndSelectionForeground&&o.push(` .monaco-drag-image, .monaco-list${s}:focus .monaco-list-row.selected.focused { color: ${e.listFocusAndSelectionForeground}; } `),e.listInactiveFocusForeground&&(o.push(`.monaco-list${s} .monaco-list-row.focused { color: ${e.listInactiveFocusForeground}; }`),o.push(`.monaco-list${s} .monaco-list-row.focused:hover { color: ${e.listInactiveFocusForeground}; }`)),e.listInactiveSelectionIconForeground&&o.push(`.monaco-list${s} .monaco-list-row.focused .codicon { color: ${e.listInactiveSelectionIconForeground}; }`),e.listInactiveFocusBackground&&(o.push(`.monaco-list${s} .monaco-list-row.focused { background-color: ${e.listInactiveFocusBackground}; }`),o.push(`.monaco-list${s} .monaco-list-row.focused:hover { background-color: ${e.listInactiveFocusBackground}; }`)),e.listInactiveSelectionBackground&&(o.push(`.monaco-list${s} .monaco-list-row.selected { background-color: ${e.listInactiveSelectionBackground}; }`),o.push(`.monaco-list${s} .monaco-list-row.selected:hover { background-color: ${e.listInactiveSelectionBackground}; }`)),e.listInactiveSelectionForeground&&o.push(`.monaco-list${s} .monaco-list-row.selected { color: ${e.listInactiveSelectionForeground}; }`),e.listHoverBackground&&o.push(`.monaco-list${s}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ${e.listHoverBackground}; }`),e.listHoverForeground&&o.push(`.monaco-list${s}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { color: ${e.listHoverForeground}; }`);const r=mg(e.listFocusAndSelectionOutline,mg(e.listSelectionOutline,(t=e.listFocusOutline)!==null&&t!==void 0?t:""));r&&o.push(`.monaco-list${s}:focus .monaco-list-row.focused.selected { outline: 1px solid ${r}; outline-offset: -1px;}`),e.listFocusOutline&&o.push(` .monaco-drag-image, .monaco-list${s}:focus .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; } .monaco-workbench.context-menu-visible .monaco-list${s}.last-focused .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; } `);const a=mg(e.listSelectionOutline,(i=e.listInactiveFocusOutline)!==null&&i!==void 0?i:"");a&&o.push(`.monaco-list${s} .monaco-list-row.focused.selected { outline: 1px dotted ${a}; outline-offset: -1px; }`),e.listSelectionOutline&&o.push(`.monaco-list${s} .monaco-list-row.selected { outline: 1px dotted ${e.listSelectionOutline}; outline-offset: -1px; }`),e.listInactiveFocusOutline&&o.push(`.monaco-list${s} .monaco-list-row.focused { outline: 1px dotted ${e.listInactiveFocusOutline}; outline-offset: -1px; }`),e.listHoverOutline&&o.push(`.monaco-list${s} .monaco-list-row:hover { outline: 1px dashed ${e.listHoverOutline}; outline-offset: -1px; }`),e.listDropOverBackground&&o.push(` .monaco-list${s}.drop-target, .monaco-list${s} .monaco-list-rows.drop-target, .monaco-list${s} .monaco-list-row.drop-target { background-color: ${e.listDropOverBackground} !important; color: inherit !important; } `),e.listDropBetweenBackground&&(o.push(` .monaco-list${s} .monaco-list-rows.drop-target-before .monaco-list-row:first-child::before, .monaco-list${s} .monaco-list-row.drop-target-before::before { content: ""; position: absolute; top: 0px; left: 0px; width: 100%; height: 1px; background-color: ${e.listDropBetweenBackground}; }`),o.push(` .monaco-list${s} .monaco-list-rows.drop-target-after .monaco-list-row:last-child::after, .monaco-list${s} .monaco-list-row.drop-target-after::after { content: ""; position: absolute; bottom: 0px; left: 0px; width: 100%; height: 1px; background-color: ${e.listDropBetweenBackground}; }`)),e.tableColumnsBorder&&o.push(` .monaco-table > .monaco-split-view2, .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before, .monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2, .monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before { border-color: ${e.tableColumnsBorder}; } .monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2, .monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before { border-color: transparent; } `),e.tableOddRowsBackgroundColor&&o.push(` .monaco-table .monaco-list-row[data-parity=odd]:not(.focused):not(.selected):not(:hover) .monaco-table-tr, .monaco-table .monaco-list:not(:focus) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr, .monaco-table .monaco-list:not(.focused) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr { background-color: ${e.tableOddRowsBackgroundColor}; } `),this.styleElement.textContent=o.join(` `)}}const IVe={listFocusBackground:"#7FB0D0",listActiveSelectionBackground:"#0E639C",listActiveSelectionForeground:"#FFFFFF",listActiveSelectionIconForeground:"#FFFFFF",listFocusAndSelectionOutline:"#90C2F9",listFocusAndSelectionBackground:"#094771",listFocusAndSelectionForeground:"#FFFFFF",listInactiveSelectionBackground:"#3F3F46",listInactiveSelectionIconForeground:"#FFFFFF",listHoverBackground:"#2A2D2E",listDropOverBackground:"#383B3D",listDropBetweenBackground:"#EEEEEE",treeIndentGuidesStroke:"#a9a9a9",treeInactiveIndentGuidesStroke:le.fromHex("#a9a9a9").transparent(.4).toString(),tableColumnsBorder:le.fromHex("#cccccc").transparent(.2).toString(),tableOddRowsBackgroundColor:le.fromHex("#cccccc").transparent(.04).toString(),listBackground:void 0,listFocusForeground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusForeground:void 0,listInactiveFocusBackground:void 0,listHoverForeground:void 0,listFocusOutline:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listHoverOutline:void 0,treeStickyScrollBackground:void 0,treeStickyScrollBorder:void 0,treeStickyScrollShadow:void 0},EVe={keyboardSupport:!0,mouseSupport:!0,multipleSelectionSupport:!0,dnd:{getDragURI(){return null},onDragStart(){},onDragOver(){return!1},drop(){},dispose(){}}};function TVe(n,e){const t=n.indexOf(e);if(t===-1)return[];const i=[];let s=t-1;for(;s>=0&&n[s]===e-(t-s);)i.push(n[s--]);for(i.reverse(),s=t;s=n.length)t.push(e[s++]);else if(s>=e.length)t.push(n[i++]);else if(n[i]===e[s]){t.push(n[i]),i++,s++;continue}else n[i]=n.length)t.push(e[s++]);else if(s>=e.length)t.push(n[i++]);else if(n[i]===e[s]){i++,s++;continue}else n[i]n-e;class AVe{constructor(e,t){this._templateId=e,this.renderers=t}get templateId(){return this._templateId}renderTemplate(e){return this.renderers.map(t=>t.renderTemplate(e))}renderElement(e,t,i,s){let o=0;for(const r of this.renderers)r.renderElement(e,t,i[o++],s)}disposeElement(e,t,i,s){var o;let r=0;for(const a of this.renderers)(o=a.disposeElement)===null||o===void 0||o.call(a,e,t,i[r],s),r+=1}disposeTemplate(e){let t=0;for(const i of this.renderers)i.disposeTemplate(e[t++])}}class RVe{constructor(e){this.accessibilityProvider=e,this.templateId="a18n"}renderTemplate(e){return{container:e,disposables:new be}}renderElement(e,t,i){const s=this.accessibilityProvider.getAriaLabel(e),o=s&&typeof s!="string"?s:Vd(s);i.disposables.add(Ut(a=>{this.setAriaLabel(a.readObservable(o),i.container)}));const r=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(e);typeof r=="number"?i.container.setAttribute("aria-level",`${r}`):i.container.removeAttribute("aria-level")}setAriaLabel(e,t){e?t.setAttribute("aria-label",e):t.removeAttribute("aria-label")}disposeElement(e,t,i,s){i.disposables.clear()}disposeTemplate(e){e.disposables.dispose()}}class MVe{constructor(e,t){this.list=e,this.dnd=t}getDragElements(e){const t=this.list.getSelectedElements();return t.indexOf(e)>-1?t:[e]}getDragURI(e){return this.dnd.getDragURI(e)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e,t)}onDragStart(e,t){var i,s;(s=(i=this.dnd).onDragStart)===null||s===void 0||s.call(i,e,t)}onDragOver(e,t,i,s,o){return this.dnd.onDragOver(e,t,i,s,o)}onDragLeave(e,t,i,s){var o,r;(r=(o=this.dnd).onDragLeave)===null||r===void 0||r.call(o,e,t,i,s)}onDragEnd(e){var t,i;(i=(t=this.dnd).onDragEnd)===null||i===void 0||i.call(t,e)}drop(e,t,i,s,o){this.dnd.drop(e,t,i,s,o)}dispose(){this.dnd.dispose()}}class El{get onDidChangeFocus(){return Ae.map(this.eventBufferer.wrapEvent(this.focus.onChange),e=>this.toListEvent(e),this.disposables)}get onDidChangeSelection(){return Ae.map(this.eventBufferer.wrapEvent(this.selection.onChange),e=>this.toListEvent(e),this.disposables)}get domId(){return this.view.domId}get onDidScroll(){return this.view.onDidScroll}get onMouseClick(){return this.view.onMouseClick}get onMouseDblClick(){return this.view.onMouseDblClick}get onMouseMiddleClick(){return this.view.onMouseMiddleClick}get onPointer(){return this.mouseController.onPointer}get onMouseDown(){return this.view.onMouseDown}get onMouseOver(){return this.view.onMouseOver}get onMouseOut(){return this.view.onMouseOut}get onTouchStart(){return this.view.onTouchStart}get onTap(){return this.view.onTap}get onContextMenu(){let e=!1;const t=Ae.chain(this.disposables.add(new ei(this.view.domNode,"keydown")).event,o=>o.map(r=>new ln(r)).filter(r=>e=r.keyCode===58||r.shiftKey&&r.keyCode===68).map(r=>ii.stop(r,!0)).filter(()=>!1)),i=Ae.chain(this.disposables.add(new ei(this.view.domNode,"keyup")).event,o=>o.forEach(()=>e=!1).map(r=>new ln(r)).filter(r=>r.keyCode===58||r.shiftKey&&r.keyCode===68).map(r=>ii.stop(r,!0)).map(({browserEvent:r})=>{const a=this.getFocus(),l=a.length?a[0]:void 0,c=typeof l<"u"?this.view.element(l):void 0,d=typeof l<"u"?this.view.domElement(l):this.view.domNode;return{index:l,element:c,anchor:d,browserEvent:r}})),s=Ae.chain(this.view.onContextMenu,o=>o.filter(r=>!e).map(({element:r,index:a,browserEvent:l})=>({element:r,index:a,anchor:new Kc(gt(this.view.domNode),l),browserEvent:l})));return Ae.any(t,i,s)}get onKeyDown(){return this.disposables.add(new ei(this.view.domNode,"keydown")).event}get onDidFocus(){return Ae.signal(this.disposables.add(new ei(this.view.domNode,"focus",!0)).event)}get onDidBlur(){return Ae.signal(this.disposables.add(new ei(this.view.domNode,"blur",!0)).event)}constructor(e,t,i,s,o=EVe){var r,a,l,c;this.user=e,this._options=o,this.focus=new SA("focused"),this.anchor=new SA("anchor"),this.eventBufferer=new sM,this._ariaLabel="",this.disposables=new be,this._onDidDispose=new X,this.onDidDispose=this._onDidDispose.event;const d=this._options.accessibilityProvider&&this._options.accessibilityProvider.getWidgetRole?(r=this._options.accessibilityProvider)===null||r===void 0?void 0:r.getWidgetRole():"list";this.selection=new wVe(d!=="listbox");const u=[this.focus.renderer,this.selection.renderer];this.accessibilityProvider=o.accessibilityProvider,this.accessibilityProvider&&(u.push(new RVe(this.accessibilityProvider)),(l=(a=this.accessibilityProvider).onDidChangeActiveDescendant)===null||l===void 0||l.call(a,this.onDidChangeActiveDescendant,this,this.disposables)),s=s.map(f=>new AVe(f.templateId,[...u,f]));const h={...o,dnd:o.dnd&&new MVe(this,o.dnd)};if(this.view=this.createListView(t,i,s,h),this.view.domNode.setAttribute("role",d),o.styleController)this.styleController=o.styleController(this.view.domId);else{const f=yl(this.view.domNode);this.styleController=new zde(f,this.view.domId)}if(this.spliceable=new jHe([new M5(this.focus,this.view,o.identityProvider),new M5(this.selection,this.view,o.identityProvider),new M5(this.anchor,this.view,o.identityProvider),this.view]),this.disposables.add(this.focus),this.disposables.add(this.selection),this.disposables.add(this.anchor),this.disposables.add(this.view),this.disposables.add(this._onDidDispose),this.disposables.add(new kVe(this,this.view)),(typeof o.keyboardSupport!="boolean"||o.keyboardSupport)&&(this.keyboardController=new Bde(this,this.view,o),this.disposables.add(this.keyboardController)),o.keyboardNavigationLabelProvider){const f=o.keyboardNavigationDelegate||xVe;this.typeNavigationController=new LVe(this,this.view,o.keyboardNavigationLabelProvider,(c=o.keyboardNavigationEventFilter)!==null&&c!==void 0?c:()=>!0,f),this.disposables.add(this.typeNavigationController)}this.mouseController=this.createMouseController(o),this.disposables.add(this.mouseController),this.onDidChangeFocus(this._onFocusChange,this,this.disposables),this.onDidChangeSelection(this._onSelectionChange,this,this.disposables),this.accessibilityProvider&&(this.ariaLabel=this.accessibilityProvider.getWidgetAriaLabel()),this._options.multipleSelectionSupport!==!1&&this.view.domNode.setAttribute("aria-multiselectable","true")}createListView(e,t,i,s){return new vc(e,t,i,s)}createMouseController(e){return new Vde(this)}updateOptions(e={}){var t,i;this._options={...this._options,...e},(t=this.typeNavigationController)===null||t===void 0||t.updateOptions(this._options),this._options.multipleSelectionController!==void 0&&(this._options.multipleSelectionSupport?this.view.domNode.setAttribute("aria-multiselectable","true"):this.view.domNode.removeAttribute("aria-multiselectable")),this.mouseController.updateOptions(e),(i=this.keyboardController)===null||i===void 0||i.updateOptions(e),this.view.updateOptions(e)}get options(){return this._options}splice(e,t,i=[]){if(e<0||e>this.view.length)throw new j_(this.user,`Invalid start index: ${e}`);if(t<0)throw new j_(this.user,`Invalid delete count: ${t}`);t===0&&i.length===0||this.eventBufferer.bufferEvents(()=>this.spliceable.splice(e,t,i))}rerender(){this.view.rerender()}element(e){return this.view.element(e)}indexOf(e){return this.view.indexOf(e)}indexAt(e){return this.view.indexAt(e)}get length(){return this.view.length}get contentHeight(){return this.view.contentHeight}get onDidChangeContentHeight(){return this.view.onDidChangeContentHeight}get scrollTop(){return this.view.getScrollTop()}set scrollTop(e){this.view.setScrollTop(e)}get scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}get firstVisibleIndex(){return this.view.firstVisibleIndex}get ariaLabel(){return this._ariaLabel}set ariaLabel(e){this._ariaLabel=e,this.view.domNode.setAttribute("aria-label",e)}domFocus(){this.view.domNode.focus({preventScroll:!0})}layout(e,t){this.view.layout(e,t)}setSelection(e,t){for(const i of e)if(i<0||i>=this.length)throw new j_(this.user,`Invalid index ${i}`);this.selection.set(e,t)}getSelection(){return this.selection.get()}getSelectedElements(){return this.getSelection().map(e=>this.view.element(e))}setAnchor(e){if(typeof e>"u"){this.anchor.set([]);return}if(e<0||e>=this.length)throw new j_(this.user,`Invalid index ${e}`);this.anchor.set([e])}getAnchor(){return NV(this.anchor.get(),void 0)}getAnchorElement(){const e=this.getAnchor();return typeof e>"u"?void 0:this.element(e)}setFocus(e,t){for(const i of e)if(i<0||i>=this.length)throw new j_(this.user,`Invalid index ${i}`);this.focus.set(e,t)}focusNext(e=1,t=!1,i,s){if(this.length===0)return;const o=this.focus.get(),r=this.findNextIndex(o.length>0?o[0]+e:0,t,s);r>-1&&this.setFocus([r],i)}focusPrevious(e=1,t=!1,i,s){if(this.length===0)return;const o=this.focus.get(),r=this.findPreviousIndex(o.length>0?o[0]-e:0,t,s);r>-1&&this.setFocus([r],i)}async focusNextPage(e,t){let i=this.view.indexAt(this.view.getScrollTop()+this.view.renderHeight);i=i===0?0:i-1;const s=this.getFocus()[0];if(s!==i&&(s===void 0||i>s)){const o=this.findPreviousIndex(i,!1,t);o>-1&&s!==o?this.setFocus([o],e):this.setFocus([i],e)}else{const o=this.view.getScrollTop();let r=o+this.view.renderHeight;i>s&&(r-=this.view.elementHeight(i)),this.view.setScrollTop(r),this.view.getScrollTop()!==o&&(this.setFocus([]),await Dg(0),await this.focusNextPage(e,t))}}async focusPreviousPage(e,t,i=()=>0){let s;const o=i(),r=this.view.getScrollTop()+o;r===0?s=this.view.indexAt(r):s=this.view.indexAfter(r-1);const a=this.getFocus()[0];if(a!==s&&(a===void 0||a>=s)){const l=this.findNextIndex(s,!1,t);l>-1&&a!==l?this.setFocus([l],e):this.setFocus([s],e)}else{const l=r;this.view.setScrollTop(r-this.view.renderHeight-o),this.view.getScrollTop()+i()!==l&&(this.setFocus([]),await Dg(0),await this.focusPreviousPage(e,t,i))}}focusLast(e,t){if(this.length===0)return;const i=this.findPreviousIndex(this.length-1,!1,t);i>-1&&this.setFocus([i],e)}focusFirst(e,t){this.focusNth(0,e,t)}focusNth(e,t,i){if(this.length===0)return;const s=this.findNextIndex(e,!1,i);s>-1&&this.setFocus([s],t)}findNextIndex(e,t=!1,i){for(let s=0;s=this.length&&!t)return-1;if(e=e%this.length,!i||i(this.element(e)))return e;e++}return-1}findPreviousIndex(e,t=!1,i){for(let s=0;sthis.view.element(e))}reveal(e,t,i=0){if(e<0||e>=this.length)throw new j_(this.user,`Invalid index ${e}`);const s=this.view.getScrollTop(),o=this.view.elementTop(e),r=this.view.elementHeight(e);if(Nm(t)){const a=r-this.view.renderHeight+i;this.view.setScrollTop(a*Sr(t,0,1)+o-i)}else{const a=o+r,l=s+this.view.renderHeight;o=l||(o=l&&r>=this.view.renderHeight?this.view.setScrollTop(o-i):a>=l&&this.view.setScrollTop(a-this.view.renderHeight))}}getRelativeTop(e,t=0){if(e<0||e>=this.length)throw new j_(this.user,`Invalid index ${e}`);const i=this.view.getScrollTop(),s=this.view.elementTop(e),o=this.view.elementHeight(e);if(si+this.view.renderHeight)return null;const r=o-this.view.renderHeight+t;return Math.abs((i+t-s)/r)}getHTMLElement(){return this.view.domNode}getScrollableElement(){return this.view.scrollableElementDomNode}getElementID(e){return this.view.getElementDomId(e)}getElementTop(e){return this.view.elementTop(e)}style(e){this.styleController.style(e)}toListEvent({indexes:e,browserEvent:t}){return{indexes:e,elements:e.map(i=>this.view.element(i)),browserEvent:t}}_onFocusChange(){const e=this.focus.get();this.view.domNode.classList.toggle("element-focused",e.length>0),this.onDidChangeActiveDescendant()}onDidChangeActiveDescendant(){var e;const t=this.focus.get();if(t.length>0){let i;!((e=this.accessibilityProvider)===null||e===void 0)&&e.getActiveDescendantId&&(i=this.accessibilityProvider.getActiveDescendantId(this.view.element(t[0]))),this.view.domNode.setAttribute("aria-activedescendant",i||this.view.getElementDomId(t[0]))}else this.view.domNode.removeAttribute("aria-activedescendant")}_onSelectionChange(){const e=this.selection.get();this.view.domNode.classList.toggle("selection-none",e.length===0),this.view.domNode.classList.toggle("selection-single",e.length===1),this.view.domNode.classList.toggle("selection-multiple",e.length>1)}dispose(){this._onDidDispose.fire(),this.disposables.dispose(),this._onDidDispose.dispose()}}__([gs],El.prototype,"onDidChangeFocus",null);__([gs],El.prototype,"onDidChangeSelection",null);__([gs],El.prototype,"onContextMenu",null);__([gs],El.prototype,"onKeyDown",null);__([gs],El.prototype,"onDidFocus",null);__([gs],El.prototype,"onDidBlur",null);const Ev=ke,$de="selectOption.entry.template";class PVe{get templateId(){return $de}renderTemplate(e){const t=Object.create(null);return t.root=e,t.text=we(e,Ev(".option-text")),t.detail=we(e,Ev(".option-detail")),t.decoratorRight=we(e,Ev(".option-decorator-right")),t}renderElement(e,t,i){const s=i,o=e.text,r=e.detail,a=e.decoratorRight,l=e.isDisabled;s.text.textContent=o,s.detail.textContent=r||"",s.decoratorRight.innerText=a||"",l?s.root.classList.add("option-disabled"):s.root.classList.remove("option-disabled")}disposeTemplate(e){}}class nh extends ne{constructor(e,t,i,s,o){super(),this.options=[],this._currentSelection=0,this._hasDetails=!1,this._skipLayout=!1,this._sticky=!1,this._isVisible=!1,this.styles=s,this.selectBoxOptions=o||Object.create(null),typeof this.selectBoxOptions.minBottomMargin!="number"?this.selectBoxOptions.minBottomMargin=nh.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN:this.selectBoxOptions.minBottomMargin<0&&(this.selectBoxOptions.minBottomMargin=0),this.selectElement=document.createElement("select"),this.selectElement.className="monaco-select-box monaco-select-box-dropdown-padding",typeof this.selectBoxOptions.ariaLabel=="string"&&this.selectElement.setAttribute("aria-label",this.selectBoxOptions.ariaLabel),typeof this.selectBoxOptions.ariaDescription=="string"&&this.selectElement.setAttribute("aria-description",this.selectBoxOptions.ariaDescription),this._onDidSelect=new X,this._register(this._onDidSelect),this.registerListeners(),this.constructSelectDropDown(i),this.selected=t||0,e&&this.setOptions(e,t),this.initStyleSheet()}setTitle(e){!this._hover&&e?this._hover=this._register(bu().setupUpdatableHover(Ur("mouse"),this.selectElement,e)):this._hover&&this._hover.update(e)}getHeight(){return 22}getTemplateId(){return $de}constructSelectDropDown(e){this.contextViewProvider=e,this.selectDropDownContainer=ke(".monaco-select-box-dropdown-container"),this.selectDropDownContainer.classList.add("monaco-select-box-dropdown-padding"),this.selectionDetailsPane=we(this.selectDropDownContainer,Ev(".select-box-details-pane"));const t=we(this.selectDropDownContainer,Ev(".select-box-dropdown-container-width-control")),i=we(t,Ev(".width-control-div"));this.widthControlElement=document.createElement("span"),this.widthControlElement.className="option-text-width-control",we(i,this.widthControlElement),this._dropDownPosition=0,this.styleElement=yl(this.selectDropDownContainer),this.selectDropDownContainer.setAttribute("draggable","true"),this._register(ce(this.selectDropDownContainer,Le.DRAG_START,s=>{ii.stop(s,!0)}))}registerListeners(){this._register(rs(this.selectElement,"change",t=>{this.selected=t.target.selectedIndex,this._onDidSelect.fire({index:t.target.selectedIndex,selected:t.target.value}),this.options[this.selected]&&this.options[this.selected].text&&this.setTitle(this.options[this.selected].text)})),this._register(ce(this.selectElement,Le.CLICK,t=>{ii.stop(t),this._isVisible?this.hideSelectDropDown(!0):this.showSelectDropDown()})),this._register(ce(this.selectElement,Le.MOUSE_DOWN,t=>{ii.stop(t)}));let e;this._register(ce(this.selectElement,"touchstart",t=>{e=this._isVisible})),this._register(ce(this.selectElement,"touchend",t=>{ii.stop(t),e?this.hideSelectDropDown(!0):this.showSelectDropDown()})),this._register(ce(this.selectElement,Le.KEY_DOWN,t=>{const i=new ln(t);let s=!1;Xt?(i.keyCode===18||i.keyCode===16||i.keyCode===10||i.keyCode===3)&&(s=!0):(i.keyCode===18&&i.altKey||i.keyCode===16&&i.altKey||i.keyCode===10||i.keyCode===3)&&(s=!0),s&&(this.showSelectDropDown(),ii.stop(t,!0))}))}get onDidSelect(){return this._onDidSelect.event}setOptions(e,t){zn(this.options,e)||(this.options=e,this.selectElement.options.length=0,this._hasDetails=!1,this._cachedMaxDetailsHeight=void 0,this.options.forEach((i,s)=>{this.selectElement.add(this.createOption(i.text,s,i.isDisabled)),typeof i.description=="string"&&(this._hasDetails=!0)})),t!==void 0&&(this.select(t),this._currentSelection=this.selected)}setOptionsList(){var e;(e=this.selectList)===null||e===void 0||e.splice(0,this.selectList.length,this.options)}select(e){e>=0&&ethis.options.length-1?this.select(this.options.length-1):this.selected<0&&(this.selected=0),this.selectElement.selectedIndex=this.selected,this.options[this.selected]&&this.options[this.selected].text&&this.setTitle(this.options[this.selected].text)}focus(){this.selectElement&&(this.selectElement.tabIndex=0,this.selectElement.focus())}blur(){this.selectElement&&(this.selectElement.tabIndex=-1,this.selectElement.blur())}setFocusable(e){this.selectElement.tabIndex=e?0:-1}render(e){this.container=e,e.classList.add("select-container"),e.appendChild(this.selectElement),this.styleSelectElement()}initStyleSheet(){const e=[];this.styles.listFocusBackground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { background-color: ${this.styles.listFocusBackground} !important; }`),this.styles.listFocusForeground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { color: ${this.styles.listFocusForeground} !important; }`),this.styles.decoratorRightForeground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.focused) .option-decorator-right { color: ${this.styles.decoratorRightForeground}; }`),this.styles.selectBackground&&this.styles.selectBorder&&this.styles.selectBorder!==this.styles.selectBackground?(e.push(`.monaco-select-box-dropdown-container { border: 1px solid ${this.styles.selectBorder} } `),e.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectBorder} } `),e.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectBorder} } `)):this.styles.selectListBorder&&(e.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectListBorder} } `),e.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectListBorder} } `)),this.styles.listHoverForeground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { color: ${this.styles.listHoverForeground} !important; }`),this.styles.listHoverBackground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { background-color: ${this.styles.listHoverBackground} !important; }`),this.styles.listFocusOutline&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { outline: 1.6px dotted ${this.styles.listFocusOutline} !important; outline-offset: -1.6px !important; }`),this.styles.listHoverOutline&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { outline: 1.6px dashed ${this.styles.listHoverOutline} !important; outline-offset: -1.6px !important; }`),e.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled.focused { background-color: transparent !important; color: inherit !important; outline: none !important; }"),e.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled:hover { background-color: transparent !important; color: inherit !important; outline: none !important; }"),this.styleElement.textContent=e.join(` `)}styleSelectElement(){var e,t,i;const s=(e=this.styles.selectBackground)!==null&&e!==void 0?e:"",o=(t=this.styles.selectForeground)!==null&&t!==void 0?t:"",r=(i=this.styles.selectBorder)!==null&&i!==void 0?i:"";this.selectElement.style.backgroundColor=s,this.selectElement.style.color=o,this.selectElement.style.borderColor=r}styleList(){var e,t;const i=(e=this.styles.selectBackground)!==null&&e!==void 0?e:"",s=mg(this.styles.selectListBackground,i);this.selectDropDownListContainer.style.backgroundColor=s,this.selectionDetailsPane.style.backgroundColor=s;const o=(t=this.styles.focusBorder)!==null&&t!==void 0?t:"";this.selectDropDownContainer.style.outlineColor=o,this.selectDropDownContainer.style.outlineOffset="-1px",this.selectList.style(this.styles)}createOption(e,t,i){const s=document.createElement("option");return s.value=e,s.text=e,s.disabled=!!i,s}showSelectDropDown(){this.selectionDetailsPane.innerText="",!(!this.contextViewProvider||this._isVisible)&&(this.createSelectList(this.selectDropDownContainer),this.setOptionsList(),this.contextViewProvider.showContextView({getAnchor:()=>this.selectElement,render:e=>this.renderSelectDropDown(e,!0),layout:()=>{this.layoutSelectDropDown()},onHide:()=>{this.selectDropDownContainer.classList.remove("visible"),this.selectElement.classList.remove("synthetic-focus")},anchorPosition:this._dropDownPosition},this.selectBoxOptions.optionsAsChildren?this.container:void 0),this._isVisible=!0,this.hideSelectDropDown(!1),this.contextViewProvider.showContextView({getAnchor:()=>this.selectElement,render:e=>this.renderSelectDropDown(e),layout:()=>this.layoutSelectDropDown(),onHide:()=>{this.selectDropDownContainer.classList.remove("visible"),this.selectElement.classList.remove("synthetic-focus")},anchorPosition:this._dropDownPosition},this.selectBoxOptions.optionsAsChildren?this.container:void 0),this._currentSelection=this.selected,this._isVisible=!0,this.selectElement.setAttribute("aria-expanded","true"))}hideSelectDropDown(e){!this.contextViewProvider||!this._isVisible||(this._isVisible=!1,this.selectElement.setAttribute("aria-expanded","false"),e&&this.selectElement.focus(),this.contextViewProvider.hideContextView())}renderSelectDropDown(e,t){return e.appendChild(this.selectDropDownContainer),this.layoutSelectDropDown(t),{dispose:()=>{try{e.removeChild(this.selectDropDownContainer)}catch{}}}}measureMaxDetailsHeight(){let e=0;return this.options.forEach((t,i)=>{this.updateDetail(i),this.selectionDetailsPane.offsetHeight>e&&(e=this.selectionDetailsPane.offsetHeight)}),e}layoutSelectDropDown(e){if(this._skipLayout)return!1;if(this.selectList){this.selectDropDownContainer.classList.add("visible");const t=gt(this.selectElement),i=bs(this.selectElement),s=gt(this.selectElement).getComputedStyle(this.selectElement),o=parseFloat(s.getPropertyValue("--dropdown-padding-top"))+parseFloat(s.getPropertyValue("--dropdown-padding-bottom")),r=t.innerHeight-i.top-i.height-(this.selectBoxOptions.minBottomMargin||0),a=i.top-nh.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN,l=this.selectElement.offsetWidth,c=this.setWidthControlElement(this.widthControlElement),d=Math.max(c,Math.round(l)).toString()+"px";this.selectDropDownContainer.style.width=d,this.selectList.getHTMLElement().style.height="",this.selectList.layout();let u=this.selectList.contentHeight;this._hasDetails&&this._cachedMaxDetailsHeight===void 0&&(this._cachedMaxDetailsHeight=this.measureMaxDetailsHeight());const h=this._hasDetails?this._cachedMaxDetailsHeight:0,f=u+o+h,g=Math.floor((r-o-h)/this.getHeight()),p=Math.floor((a-o-h)/this.getHeight());if(e)return i.top+i.height>t.innerHeight-22||i.topg&&this.options.length>g?(this._dropDownPosition=1,this.selectDropDownContainer.removeChild(this.selectDropDownListContainer),this.selectDropDownContainer.removeChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectionDetailsPane.classList.remove("border-top"),this.selectionDetailsPane.classList.add("border-bottom")):(this._dropDownPosition=0,this.selectDropDownContainer.removeChild(this.selectDropDownListContainer),this.selectDropDownContainer.removeChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectionDetailsPane.classList.remove("border-bottom"),this.selectionDetailsPane.classList.add("border-top")),!0);if(i.top+i.height>t.innerHeight-22||i.topr&&(u=g*this.getHeight())}else f>a&&(u=p*this.getHeight());return this.selectList.layout(u),this.selectList.domFocus(),this.selectList.length>0&&(this.selectList.setFocus([this.selected||0]),this.selectList.reveal(this.selectList.getFocus()[0]||0)),this._hasDetails?(this.selectList.getHTMLElement().style.height=u+o+"px",this.selectDropDownContainer.style.height=""):this.selectDropDownContainer.style.height=u+o+"px",this.updateDetail(this.selected),this.selectDropDownContainer.style.width=d,this.selectDropDownListContainer.setAttribute("tabindex","0"),this.selectElement.classList.add("synthetic-focus"),this.selectDropDownContainer.classList.add("synthetic-focus"),!0}else return!1}setWidthControlElement(e){let t=0;if(e){let i=0,s=0;this.options.forEach((o,r)=>{const a=o.detail?o.detail.length:0,l=o.decoratorRight?o.decoratorRight.length:0,c=o.text.length+a+l;c>s&&(i=r,s=c)}),e.textContent=this.options[i].text+(this.options[i].decoratorRight?this.options[i].decoratorRight+" ":""),t=Sa(e)}return t}createSelectList(e){if(this.selectList)return;this.selectDropDownListContainer=we(e,Ev(".select-box-dropdown-list-container")),this.listRenderer=new PVe,this.selectList=new El("SelectBoxCustom",this.selectDropDownListContainer,this,[this.listRenderer],{useShadows:!1,verticalScrollMode:3,keyboardSupport:!1,mouseSupport:!1,accessibilityProvider:{getAriaLabel:s=>{let o=s.text;return s.detail&&(o+=`. ${s.detail}`),s.decoratorRight&&(o+=`. ${s.decoratorRight}`),s.description&&(o+=`. ${s.description}`),o},getWidgetAriaLabel:()=>v({},"Select Box"),getRole:()=>Xt?"":"option",getWidgetRole:()=>"listbox"}}),this.selectBoxOptions.ariaLabel&&(this.selectList.ariaLabel=this.selectBoxOptions.ariaLabel);const t=this._register(new ei(this.selectDropDownListContainer,"keydown")),i=Ae.chain(t.event,s=>s.filter(()=>this.selectList.length>0).map(o=>new ln(o)));this._register(Ae.chain(i,s=>s.filter(o=>o.keyCode===3))(this.onEnter,this)),this._register(Ae.chain(i,s=>s.filter(o=>o.keyCode===2))(this.onEnter,this)),this._register(Ae.chain(i,s=>s.filter(o=>o.keyCode===9))(this.onEscape,this)),this._register(Ae.chain(i,s=>s.filter(o=>o.keyCode===16))(this.onUpArrow,this)),this._register(Ae.chain(i,s=>s.filter(o=>o.keyCode===18))(this.onDownArrow,this)),this._register(Ae.chain(i,s=>s.filter(o=>o.keyCode===12))(this.onPageDown,this)),this._register(Ae.chain(i,s=>s.filter(o=>o.keyCode===11))(this.onPageUp,this)),this._register(Ae.chain(i,s=>s.filter(o=>o.keyCode===14))(this.onHome,this)),this._register(Ae.chain(i,s=>s.filter(o=>o.keyCode===13))(this.onEnd,this)),this._register(Ae.chain(i,s=>s.filter(o=>o.keyCode>=21&&o.keyCode<=56||o.keyCode>=85&&o.keyCode<=113))(this.onCharacter,this)),this._register(ce(this.selectList.getHTMLElement(),Le.POINTER_UP,s=>this.onPointerUp(s))),this._register(this.selectList.onMouseOver(s=>typeof s.index<"u"&&this.selectList.setFocus([s.index]))),this._register(this.selectList.onDidChangeFocus(s=>this.onListFocus(s))),this._register(ce(this.selectDropDownContainer,Le.FOCUS_OUT,s=>{!this._isVisible||Zs(s.relatedTarget,this.selectDropDownContainer)||this.onListBlur()})),this.selectList.getHTMLElement().setAttribute("aria-label",this.selectBoxOptions.ariaLabel||""),this.selectList.getHTMLElement().setAttribute("aria-expanded","true"),this.styleList()}onPointerUp(e){if(!this.selectList.length)return;ii.stop(e);const t=e.target;if(!t||t.classList.contains("slider"))return;const i=t.closest(".monaco-list-row");if(!i)return;const s=Number(i.getAttribute("data-index")),o=i.classList.contains("option-disabled");s>=0&&s{for(let r=0;rthis.selected+2)this.selected+=2;else{if(t)return;this.selected++}this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0])}}onUpArrow(e){this.selected>0&&(ii.stop(e,!0),this.options[this.selected-1].isDisabled&&this.selected>1?this.selected-=2:this.selected--,this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0]))}onPageUp(e){ii.stop(e),this.selectList.focusPreviousPage(),setTimeout(()=>{this.selected=this.selectList.getFocus()[0],this.options[this.selected].isDisabled&&this.selected{this.selected=this.selectList.getFocus()[0],this.options[this.selected].isDisabled&&this.selected>0&&(this.selected--,this.selectList.setFocus([this.selected])),this.selectList.reveal(this.selected),this.select(this.selected)},1)}onHome(e){ii.stop(e),!(this.options.length<2)&&(this.selected=0,this.options[this.selected].isDisabled&&this.selected>1&&this.selected++,this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selected),this.select(this.selected))}onEnd(e){ii.stop(e),!(this.options.length<2)&&(this.selected=this.options.length-1,this.options[this.selected].isDisabled&&this.selected>1&&this.selected--,this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selected),this.select(this.selected))}onCharacter(e){const t=Wf.toString(e.keyCode);let i=-1;for(let s=0;s{this._register(ce(this.selectElement,e,t=>{this.selectElement.focus()}))}),this._register(rs(this.selectElement,"click",e=>{ii.stop(e,!0)})),this._register(rs(this.selectElement,"change",e=>{this.selectElement.title=e.target.value,this._onDidSelect.fire({index:e.target.selectedIndex,selected:e.target.value})})),this._register(rs(this.selectElement,"keydown",e=>{let t=!1;Xt?(e.keyCode===18||e.keyCode===16||e.keyCode===10)&&(t=!0):(e.keyCode===18&&e.altKey||e.keyCode===10||e.keyCode===3)&&(t=!0),t&&e.stopPropagation()}))}get onDidSelect(){return this._onDidSelect.event}setOptions(e,t){(!this.options||!zn(this.options,e))&&(this.options=e,this.selectElement.options.length=0,this.options.forEach((i,s)=>{this.selectElement.add(this.createOption(i.text,s,i.isDisabled))})),t!==void 0&&this.select(t)}select(e){this.options.length===0?this.selected=0:e>=0&&ethis.options.length-1?this.select(this.options.length-1):this.selected<0&&(this.selected=0),this.selectElement.selectedIndex=this.selected,this.selected{this.element&&this.handleActionChangeEvent(s)}))}handleActionChangeEvent(e){e.enabled!==void 0&&this.updateEnabled(),e.checked!==void 0&&this.updateChecked(),e.class!==void 0&&this.updateClass(),e.label!==void 0&&(this.updateLabel(),this.updateTooltip()),e.tooltip!==void 0&&this.updateTooltip()}get actionRunner(){return this._actionRunner||(this._actionRunner=this._register(new f0)),this._actionRunner}set actionRunner(e){this._actionRunner=e}isEnabled(){return this._action.enabled}setActionContext(e){this._context=e}render(e){const t=this.element=e;this._register(hn.addTarget(e));const i=this.options&&this.options.draggable;i&&(e.draggable=!0,lc&&this._register(ce(e,Le.DRAG_START,s=>{var o;return(o=s.dataTransfer)===null||o===void 0?void 0:o.setData(UL.TEXT,this._action.label)}))),this._register(ce(t,fn.Tap,s=>this.onClick(s,!0))),this._register(ce(t,Le.MOUSE_DOWN,s=>{i||ii.stop(s,!0),this._action.enabled&&s.button===0&&t.classList.add("active")})),Xt&&this._register(ce(t,Le.CONTEXT_MENU,s=>{s.button===0&&s.ctrlKey===!0&&this.onClick(s)})),this._register(ce(t,Le.CLICK,s=>{ii.stop(s,!0),this.options&&this.options.isMenu||this.onClick(s)})),this._register(ce(t,Le.DBLCLICK,s=>{ii.stop(s,!0)})),[Le.MOUSE_UP,Le.MOUSE_OUT].forEach(s=>{this._register(ce(t,s,o=>{ii.stop(o),t.classList.remove("active")}))})}onClick(e,t=!1){var i;ii.stop(e,!0);const s=ll(this._context)?!((i=this.options)===null||i===void 0)&&i.useEventAsContext?e:{preserveFocus:t}:this._context;this.actionRunner.run(this._action,s)}focus(){this.element&&(this.element.tabIndex=0,this.element.focus(),this.element.classList.add("focused"))}blur(){this.element&&(this.element.blur(),this.element.tabIndex=-1,this.element.classList.remove("focused"))}setFocusable(e){this.element&&(this.element.tabIndex=e?0:-1)}get trapsArrowNavigation(){return!1}updateEnabled(){}updateLabel(){}getClass(){return this.action.class}getTooltip(){return this.action.tooltip}updateTooltip(){var e,t,i;if(!this.element)return;const s=(e=this.getTooltip())!==null&&e!==void 0?e:"";if(this.updateAriaLabel(),!((t=this.options.hoverDelegate)===null||t===void 0)&&t.showNativeHover)this.element.title=s;else if(!this.customHover&&s!==""){const o=(i=this.options.hoverDelegate)!==null&&i!==void 0?i:Ur("element");this.customHover=this._store.add(bu().setupUpdatableHover(o,this.element,s))}else this.customHover&&this.customHover.update(s)}updateAriaLabel(){var e;if(this.element){const t=(e=this.getTooltip())!==null&&e!==void 0?e:"";this.element.setAttribute("aria-label",t)}}updateClass(){}updateChecked(){}dispose(){this.element&&(this.element.remove(),this.element=void 0),this._context=void 0,super.dispose()}}class QC extends Rd{constructor(e,t,i){super(e,t,i),this.options=i,this.options.icon=i.icon!==void 0?i.icon:!1,this.options.label=i.label!==void 0?i.label:!0,this.cssClass=""}render(e){super.render(e),mi(this.element);const t=document.createElement("a");if(t.classList.add("action-label"),t.setAttribute("role",this.getDefaultAriaRole()),this.label=t,this.element.appendChild(t),this.options.label&&this.options.keybinding){const i=document.createElement("span");i.classList.add("keybinding"),i.textContent=this.options.keybinding,this.element.appendChild(i)}this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked()}getDefaultAriaRole(){return this._action.id===Ms.ID?"presentation":this.options.isMenu?"menuitem":"button"}focus(){this.label&&(this.label.tabIndex=0,this.label.focus())}blur(){this.label&&(this.label.tabIndex=-1)}setFocusable(e){this.label&&(this.label.tabIndex=e?0:-1)}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this.action.label)}getTooltip(){let e=null;return this.action.tooltip?e=this.action.tooltip:!this.options.label&&this.action.label&&this.options.icon&&(e=this.action.label,this.options.keybinding&&(e=v({},"{0} ({1})",e,this.options.keybinding))),e??void 0}updateClass(){var e;this.cssClass&&this.label&&this.label.classList.remove(...this.cssClass.split(" ")),this.options.icon?(this.cssClass=this.getClass(),this.label&&(this.label.classList.add("codicon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" "))),this.updateEnabled()):(e=this.label)===null||e===void 0||e.classList.remove("codicon")}updateEnabled(){var e,t;this.action.enabled?(this.label&&(this.label.removeAttribute("aria-disabled"),this.label.classList.remove("disabled")),(e=this.element)===null||e===void 0||e.classList.remove("disabled")):(this.label&&(this.label.setAttribute("aria-disabled","true"),this.label.classList.add("disabled")),(t=this.element)===null||t===void 0||t.classList.add("disabled"))}updateAriaLabel(){var e;if(this.label){const t=(e=this.getTooltip())!==null&&e!==void 0?e:"";this.label.setAttribute("aria-label",t)}}updateChecked(){this.label&&(this.action.checked!==void 0?(this.label.classList.toggle("checked",this.action.checked),this.label.setAttribute("aria-checked",this.action.checked?"true":"false"),this.label.setAttribute("role","checkbox")):(this.label.classList.remove("checked"),this.label.removeAttribute("aria-checked"),this.label.setAttribute("role",this.getDefaultAriaRole())))}}class BVe extends Rd{constructor(e,t,i,s,o,r,a){super(e,t),this.selectBox=new FVe(i,s,o,r,a),this.selectBox.setFocusable(!1),this._register(this.selectBox),this.registerListeners()}select(e){this.selectBox.select(e)}registerListeners(){this._register(this.selectBox.onDidSelect(e=>this.runAction(e.selected,e.index)))}runAction(e,t){this.actionRunner.run(this._action,this.getActionContext(e,t))}getActionContext(e,t){return e}setFocusable(e){this.selectBox.setFocusable(e)}focus(){var e;(e=this.selectBox)===null||e===void 0||e.focus()}blur(){var e;(e=this.selectBox)===null||e===void 0||e.blur()}render(e){this.selectBox.render(e)}}class WVe extends f0{constructor(e,t){super(),this._onDidChangeVisibility=this._register(new X),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this._element=we(e,ke(".monaco-dropdown")),this._label=we(this._element,ke(".dropdown-label"));let i=t.labelRenderer;i||(i=o=>(o.textContent=t.label||"",null));for(const o of[Le.CLICK,Le.MOUSE_DOWN,fn.Tap])this._register(ce(this.element,o,r=>ii.stop(r,!0)));for(const o of[Le.MOUSE_DOWN,fn.Tap])this._register(ce(this._label,o,r=>{sz(r)&&(r.detail>1||r.button!==0)||(this.visible?this.hide():this.show())}));this._register(ce(this._label,Le.KEY_UP,o=>{const r=new ln(o);(r.equals(3)||r.equals(10))&&(ii.stop(o,!0),this.visible?this.hide():this.show())}));const s=i(this._label);s&&this._register(s),this._register(hn.addTarget(this._label))}get element(){return this._element}show(){this.visible||(this.visible=!0,this._onDidChangeVisibility.fire(!0))}hide(){this.visible&&(this.visible=!1,this._onDidChangeVisibility.fire(!1))}dispose(){super.dispose(),this.hide(),this.boxContainer&&(this.boxContainer.remove(),this.boxContainer=void 0),this.contents&&(this.contents.remove(),this.contents=void 0),this._label&&(this._label.remove(),this._label=void 0)}}class HVe extends WVe{constructor(e,t){super(e,t),this._options=t,this._actions=[],this.actions=t.actions||[]}set menuOptions(e){this._menuOptions=e}get menuOptions(){return this._menuOptions}get actions(){return this._options.actionProvider?this._options.actionProvider.getActions():this._actions}set actions(e){this._actions=e}show(){super.show(),this.element.classList.add("active"),this._options.contextMenuProvider.showContextMenu({getAnchor:()=>this.element,getActions:()=>this.actions,getActionsContext:()=>this.menuOptions?this.menuOptions.context:null,getActionViewItem:(e,t)=>this.menuOptions&&this.menuOptions.actionViewItemProvider?this.menuOptions.actionViewItemProvider(e,t):void 0,getKeyBinding:e=>this.menuOptions&&this.menuOptions.getKeyBinding?this.menuOptions.getKeyBinding(e):void 0,getMenuClassName:()=>this._options.menuClassName||"",onHide:()=>this.onHide(),actionRunner:this.menuOptions?this.menuOptions.actionRunner:void 0,anchorAlignment:this.menuOptions?this.menuOptions.anchorAlignment:0,domForShadowRoot:this._options.menuAsChild?this.element:void 0,skipTelemetry:this._options.skipTelemetry})}hide(){super.hide()}onHide(){this.hide(),this.element.classList.remove("active")}}class xA extends Rd{constructor(e,t,i,s=Object.create(null)){super(null,e,s),this.actionItem=null,this._onDidChangeVisibility=this._register(new X),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this.menuActionsOrProvider=t,this.contextMenuProvider=i,this.options=s,this.options.actionRunner&&(this.actionRunner=this.options.actionRunner)}render(e){this.actionItem=e;const t=o=>{var r;this.element=we(o,ke("a.action-label"));let a=[];return typeof this.options.classNames=="string"?a=this.options.classNames.split(/\s+/g).filter(l=>!!l):this.options.classNames&&(a=this.options.classNames),a.find(l=>l==="icon")||a.push("codicon"),this.element.classList.add(...a),this.element.setAttribute("role","button"),this.element.setAttribute("aria-haspopup","true"),this.element.setAttribute("aria-expanded","false"),this._action.label&&this._register(bu().setupUpdatableHover((r=this.options.hoverDelegate)!==null&&r!==void 0?r:Ur("mouse"),this.element,this._action.label)),this.element.ariaLabel=this._action.label||"",null},i=Array.isArray(this.menuActionsOrProvider),s={contextMenuProvider:this.contextMenuProvider,labelRenderer:t,menuAsChild:this.options.menuAsChild,actions:i?this.menuActionsOrProvider:void 0,actionProvider:i?void 0:this.menuActionsOrProvider,skipTelemetry:this.options.skipTelemetry};if(this.dropdownMenu=this._register(new HVe(e,s)),this._register(this.dropdownMenu.onDidChangeVisibility(o=>{var r;(r=this.element)===null||r===void 0||r.setAttribute("aria-expanded",`${o}`),this._onDidChangeVisibility.fire(o)})),this.dropdownMenu.menuOptions={actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,getKeyBinding:this.options.keybindingProvider,context:this._context},this.options.anchorAlignmentProvider){const o=this;this.dropdownMenu.menuOptions={...this.dropdownMenu.menuOptions,get anchorAlignment(){return o.options.anchorAlignmentProvider()}}}this.updateTooltip(),this.updateEnabled()}getTooltip(){let e=null;return this.action.tooltip?e=this.action.tooltip:this.action.label&&(e=this.action.label),e??void 0}setActionContext(e){super.setActionContext(e),this.dropdownMenu&&(this.dropdownMenu.menuOptions?this.dropdownMenu.menuOptions.context=e:this.dropdownMenu.menuOptions={context:e})}show(){var e;(e=this.dropdownMenu)===null||e===void 0||e.show()}updateEnabled(){var e,t;const i=!this.action.enabled;(e=this.actionItem)===null||e===void 0||e.classList.toggle("disabled",i),(t=this.element)===null||t===void 0||t.classList.toggle("disabled",i)}}function VVe(n){return n&&typeof n=="object"&&typeof n.original=="string"&&typeof n.value=="string"}function zVe(n){return n?n.condition!==void 0:!1}var cC;(function(n){n[n.STORAGE_DOES_NOT_EXIST=0]="STORAGE_DOES_NOT_EXIST",n[n.STORAGE_IN_MEMORY=1]="STORAGE_IN_MEMORY"})(cC||(cC={}));var N1;(function(n){n[n.None=0]="None",n[n.Initialized=1]="Initialized",n[n.Closed=2]="Closed"})(N1||(N1={}));class dC extends ne{constructor(e,t=Object.create(null)){super(),this.database=e,this.options=t,this._onDidChangeStorage=this._register(new a0),this.onDidChangeStorage=this._onDidChangeStorage.event,this.state=N1.None,this.cache=new Map,this.flushDelayer=this._register(new Iae(dC.DEFAULT_FLUSH_DELAY)),this.pendingDeletes=new Set,this.pendingInserts=new Map,this.whenFlushedCallbacks=[],this.registerListeners()}registerListeners(){this._register(this.database.onDidChangeItemsExternal(e=>this.onDidChangeItemsExternal(e)))}onDidChangeItemsExternal(e){var t,i;this._onDidChangeStorage.pause();try{(t=e.changed)===null||t===void 0||t.forEach((s,o)=>this.acceptExternal(o,s)),(i=e.deleted)===null||i===void 0||i.forEach(s=>this.acceptExternal(s,void 0))}finally{this._onDidChangeStorage.resume()}}acceptExternal(e,t){if(this.state===N1.Closed)return;let i=!1;ll(t)?i=this.cache.delete(e):this.cache.get(e)!==t&&(this.cache.set(e,t),i=!0),i&&this._onDidChangeStorage.fire({key:e,external:!0})}get(e,t){const i=this.cache.get(e);return ll(i)?t:i}getBoolean(e,t){const i=this.get(e);return ll(i)?t:i==="true"}getNumber(e,t){const i=this.get(e);return ll(i)?t:parseInt(i,10)}async set(e,t,i=!1){if(this.state===N1.Closed)return;if(ll(t))return this.delete(e,i);const s=Er(t)||Array.isArray(t)?SWe(t):String(t);if(this.cache.get(e)!==s)return this.cache.set(e,s),this.pendingInserts.set(e,s),this.pendingDeletes.delete(e),this._onDidChangeStorage.fire({key:e,external:i}),this.doFlush()}async delete(e,t=!1){if(!(this.state===N1.Closed||!this.cache.delete(e)))return this.pendingDeletes.has(e)||this.pendingDeletes.add(e),this.pendingInserts.delete(e),this._onDidChangeStorage.fire({key:e,external:t}),this.doFlush()}get hasPending(){return this.pendingInserts.size>0||this.pendingDeletes.size>0}async flushPending(){if(!this.hasPending)return;const e={insert:this.pendingInserts,delete:this.pendingDeletes};return this.pendingDeletes=new Set,this.pendingInserts=new Map,this.database.updateItems(e).finally(()=>{var t;if(!this.hasPending)for(;this.whenFlushedCallbacks.length;)(t=this.whenFlushedCallbacks.pop())===null||t===void 0||t()})}async doFlush(e){return this.options.hint===cC.STORAGE_IN_MEMORY?this.flushPending():this.flushDelayer.trigger(()=>this.flushPending(),e)}}dC.DEFAULT_FLUSH_DELAY=100;class P5{constructor(){this.onDidChangeItemsExternal=Ae.None,this.items=new Map}async updateItems(e){var t,i;(t=e.insert)===null||t===void 0||t.forEach((s,o)=>this.items.set(o,s)),(i=e.delete)===null||i===void 0||i.forEach(s=>this.items.delete(s))}}const IN="__$__targetStorageMarker",dd=Jt("storageService");var GL;(function(n){n[n.NONE=0]="NONE",n[n.SHUTDOWN=1]="SHUTDOWN"})(GL||(GL={}));function $Ve(n){const e=n.get(IN);if(e)try{return JSON.parse(e)}catch{}return Object.create(null)}class sP extends ne{constructor(e={flushInterval:sP.DEFAULT_FLUSH_INTERVAL}){super(),this.options=e,this._onDidChangeValue=this._register(new a0),this._onDidChangeTarget=this._register(new a0),this._onWillSaveState=this._register(new X),this.onWillSaveState=this._onWillSaveState.event,this._workspaceKeyTargets=void 0,this._profileKeyTargets=void 0,this._applicationKeyTargets=void 0}onDidChangeValue(e,t,i){return Ae.filter(this._onDidChangeValue.event,s=>s.scope===e&&(t===void 0||s.key===t),i)}emitDidChangeValue(e,t){const{key:i,external:s}=t;if(i===IN){switch(e){case-1:this._applicationKeyTargets=void 0;break;case 0:this._profileKeyTargets=void 0;break;case 1:this._workspaceKeyTargets=void 0;break}this._onDidChangeTarget.fire({scope:e})}else this._onDidChangeValue.fire({scope:e,key:i,target:this.getKeyTargets(e)[i],external:s})}get(e,t,i){var s;return(s=this.getStorage(t))===null||s===void 0?void 0:s.get(e,i)}getBoolean(e,t,i){var s;return(s=this.getStorage(t))===null||s===void 0?void 0:s.getBoolean(e,i)}getNumber(e,t,i){var s;return(s=this.getStorage(t))===null||s===void 0?void 0:s.getNumber(e,i)}store(e,t,i,s,o=!1){if(ll(t)){this.remove(e,i,o);return}this.withPausedEmitters(()=>{var r;this.updateKeyTarget(e,i,s),(r=this.getStorage(i))===null||r===void 0||r.set(e,t,o)})}remove(e,t,i=!1){this.withPausedEmitters(()=>{var s;this.updateKeyTarget(e,t,void 0),(s=this.getStorage(t))===null||s===void 0||s.delete(e,i)})}withPausedEmitters(e){this._onDidChangeValue.pause(),this._onDidChangeTarget.pause();try{e()}finally{this._onDidChangeValue.resume(),this._onDidChangeTarget.resume()}}updateKeyTarget(e,t,i,s=!1){var o,r;const a=this.getKeyTargets(t);typeof i=="number"?a[e]!==i&&(a[e]=i,(o=this.getStorage(t))===null||o===void 0||o.set(IN,JSON.stringify(a),s)):typeof a[e]=="number"&&(delete a[e],(r=this.getStorage(t))===null||r===void 0||r.set(IN,JSON.stringify(a),s))}get workspaceKeyTargets(){return this._workspaceKeyTargets||(this._workspaceKeyTargets=this.loadKeyTargets(1)),this._workspaceKeyTargets}get profileKeyTargets(){return this._profileKeyTargets||(this._profileKeyTargets=this.loadKeyTargets(0)),this._profileKeyTargets}get applicationKeyTargets(){return this._applicationKeyTargets||(this._applicationKeyTargets=this.loadKeyTargets(-1)),this._applicationKeyTargets}getKeyTargets(e){switch(e){case-1:return this.applicationKeyTargets;case 0:return this.profileKeyTargets;default:return this.workspaceKeyTargets}}loadKeyTargets(e){const t=this.getStorage(e);return t?$Ve(t):Object.create(null)}}sP.DEFAULT_FLUSH_INTERVAL=60*1e3;class UVe extends sP{constructor(){super(),this.applicationStorage=this._register(new dC(new P5,{hint:cC.STORAGE_IN_MEMORY})),this.profileStorage=this._register(new dC(new P5,{hint:cC.STORAGE_IN_MEMORY})),this.workspaceStorage=this._register(new dC(new P5,{hint:cC.STORAGE_IN_MEMORY})),this._register(this.workspaceStorage.onDidChangeStorage(e=>this.emitDidChangeValue(1,e))),this._register(this.profileStorage.onDidChangeStorage(e=>this.emitDidChangeValue(0,e))),this._register(this.applicationStorage.onDidChangeStorage(e=>this.emitDidChangeValue(-1,e)))}getStorage(e){switch(e){case-1:return this.applicationStorage;case 0:return this.profileStorage;default:return this.workspaceStorage}}}function jVe(n,e){const t={...e};for(const i in n){const s=n[i];t[i]=s!==void 0?Ge(s):void 0}return t}const KVe={keybindingLabelBackground:Ge(c5e),keybindingLabelForeground:Ge(d5e),keybindingLabelBorder:Ge(u5e),keybindingLabelBottomBorder:Ge(h5e),keybindingLabelShadow:Ge(ig)},qVe={buttonForeground:Ge(xS),buttonSeparator:Ge(t5e),buttonBackground:Ge(LS),buttonHoverBackground:Ge(i5e),buttonSecondaryForeground:Ge(s5e),buttonSecondaryBackground:Ge(TB),buttonSecondaryHoverBackground:Ge(o5e),buttonBorder:Ge(n5e)},GVe={progressBarBackground:Ge(vFe)},LA={inputActiveOptionBorder:Ge(Iz),inputActiveOptionForeground:Ge(Ez),inputActiveOptionBackground:Ge(Lv)};Ge(r5e),Ge(l5e),Ge(a5e);Ge(fs),Ge(Xf),Ge(ig),Ge(ti),Ge(FFe),Ge(BFe),Ge(WFe),Ge(mFe);const kA={inputBackground:Ge(EB),inputForeground:Ge(jle),inputBorder:Ge(Kle),inputValidationInfoBorder:Ge(qFe),inputValidationInfoBackground:Ge(jFe),inputValidationInfoForeground:Ge(KFe),inputValidationWarningBorder:Ge(YFe),inputValidationWarningBackground:Ge(GFe),inputValidationWarningForeground:Ge(ZFe),inputValidationErrorBorder:Ge(JFe),inputValidationErrorBackground:Ge(XFe),inputValidationErrorForeground:Ge(QFe)},ZVe={listFilterWidgetBackground:Ge(x5e),listFilterWidgetOutline:Ge(L5e),listFilterWidgetNoMatchesOutline:Ge(k5e),listFilterWidgetShadow:Ge(D5e),inputBoxStyles:kA,toggleStyles:LA},Ude={badgeBackground:Ge(vN),badgeForeground:Ge(_Fe),badgeBorder:Ge(ti)};Ge(PFe),Ge(MFe),Ge(IX),Ge(IX),Ge(OFe);const eb={listBackground:void 0,listInactiveFocusForeground:void 0,listFocusBackground:Ge(f5e),listFocusForeground:Ge(g5e),listFocusOutline:Ge(p5e),listActiveSelectionBackground:Ge(sg),listActiveSelectionForeground:Ge(dh),listActiveSelectionIconForeground:Ge(kS),listFocusAndSelectionOutline:Ge(m5e),listFocusAndSelectionBackground:Ge(sg),listFocusAndSelectionForeground:Ge(dh),listInactiveSelectionBackground:Ge(_5e),listInactiveSelectionIconForeground:Ge(b5e),listInactiveSelectionForeground:Ge(v5e),listInactiveFocusBackground:Ge(C5e),listInactiveFocusOutline:Ge(w5e),listHoverBackground:Ge(qle),listHoverForeground:Ge(Gle),listDropOverBackground:Ge(y5e),listDropBetweenBackground:Ge(S5e),listSelectionOutline:Ge(En),listHoverOutline:Ge(En),treeIndentGuidesStroke:Ge(DS),treeInactiveIndentGuidesStroke:Ge(I5e),treeStickyScrollBackground:void 0,treeStickyScrollBorder:void 0,treeStickyScrollShadow:void 0,tableColumnsBorder:Ge(E5e),tableOddRowsBackgroundColor:Ge(T5e)};function tb(n){return jVe(n,eb)}const YVe={selectBackground:Ge(ch),selectListBackground:Ge(e5e),selectForeground:Ge(ng),decoratorRightForeground:Ge(Zle),selectBorder:Ge(y1),focusBorder:Ge(Xl),listFocusBackground:Ge(Gp),listInactiveSelectionIconForeground:Ge(S1),listFocusForeground:Ge(qp),listFocusOutline:hFe(En,le.transparent.toString()),listHoverBackground:Ge(qle),listHoverForeground:Ge(Gle),listHoverOutline:Ge(En),selectListBorder:Ge(Qf),listBackground:void 0,listActiveSelectionBackground:void 0,listActiveSelectionForeground:void 0,listActiveSelectionIconForeground:void 0,listFocusAndSelectionBackground:void 0,listDropOverBackground:void 0,listDropBetweenBackground:void 0,listInactiveSelectionBackground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusBackground:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listFocusAndSelectionForeground:void 0,listFocusAndSelectionOutline:void 0,listInactiveFocusForeground:void 0,tableColumnsBorder:void 0,tableOddRowsBackgroundColor:void 0,treeIndentGuidesStroke:void 0,treeInactiveIndentGuidesStroke:void 0,treeStickyScrollBackground:void 0,treeStickyScrollBorder:void 0,treeStickyScrollShadow:void 0},XVe={shadowColor:Ge(ig),borderColor:Ge(N5e),foregroundColor:Ge(A5e),backgroundColor:Ge(R5e),selectionForegroundColor:Ge(M5e),selectionBackgroundColor:Ge(P5e),selectionBorderColor:Ge(O5e),separatorColor:Ge(F5e),scrollbarShadow:Ge(bS),scrollbarSliderBackground:Ge(CS),scrollbarSliderHoverBackground:Ge(wS),scrollbarSliderActiveBackground:Ge(yS)};var oP=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},ia=function(n,e){return function(t,i){e(t,i,n)}};function QVe(n,e,t,i){const s=n.getActions(e),o=Yf.getInstance(),r=o.keyStatus.altKey||(Mo||Br)&&o.keyStatus.shiftKey;jde(s,t,r,a=>a==="navigation")}function rP(n,e,t,i,s,o){const r=n.getActions(e);jde(r,t,!1,typeof i=="string"?l=>l===i:i,s,o)}function jde(n,e,t,i=r=>r==="navigation",s=()=>!1,o=!1){let r,a;Array.isArray(e)?(r=e,a=e):(r=e.primary,a=e.secondary);const l=new Set;for(const[c,d]of n){let u;i(c)?(u=r,u.length>0&&o&&u.push(new Ms)):(u=a,u.length>0&&u.push(new Ms));for(let h of d){t&&(h=h instanceof Na&&h.alt?h.alt:h);const f=u.push(h);h instanceof NC&&l.add({group:c,action:h,index:f-1})}}for(const{group:c,action:d,index:u}of l){const h=i(c)?r:a,f=d.actions;s(d,c,h.length)&&h.splice(u,1,...f)}}let Um=class extends QC{constructor(e,t,i,s,o,r,a,l){super(void 0,e,{icon:!!(e.class||e.item.icon),label:!e.class&&!e.item.icon,draggable:t==null?void 0:t.draggable,keybinding:t==null?void 0:t.keybinding,hoverDelegate:t==null?void 0:t.hoverDelegate}),this._keybindingService=i,this._notificationService=s,this._contextKeyService=o,this._themeService=r,this._contextMenuService=a,this._accessibilityService=l,this._wantsAltCommand=!1,this._itemClassDispose=this._register(new Qs),this._altKey=Yf.getInstance()}get _menuItemAction(){return this._action}get _commandAction(){return this._wantsAltCommand&&this._menuItemAction.alt||this._menuItemAction}async onClick(e){e.preventDefault(),e.stopPropagation();try{await this.actionRunner.run(this._commandAction,this._context)}catch(t){this._notificationService.error(t)}}render(e){if(super.render(e),e.classList.add("menu-entry"),this.options.icon&&this._updateItemClass(this._menuItemAction.item),this._menuItemAction.alt){let t=!1;const i=()=>{var s;const o=!!(!((s=this._menuItemAction.alt)===null||s===void 0)&&s.enabled)&&(!this._accessibilityService.isMotionReduced()||t)&&(this._altKey.keyStatus.altKey||this._altKey.keyStatus.shiftKey&&t);o!==this._wantsAltCommand&&(this._wantsAltCommand=o,this.updateLabel(),this.updateTooltip(),this.updateClass())};this._register(this._altKey.event(i)),this._register(ce(e,"mouseleave",s=>{t=!1,i()})),this._register(ce(e,"mouseenter",s=>{t=!0,i()})),i()}}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this._commandAction.label)}getTooltip(){var e;const t=this._keybindingService.lookupKeybinding(this._commandAction.id,this._contextKeyService),i=t&&t.getLabel(),s=this._commandAction.tooltip||this._commandAction.label;let o=i?v("titleAndKb","{0} ({1})",s,i):s;if(!this._wantsAltCommand&&(!((e=this._menuItemAction.alt)===null||e===void 0)&&e.enabled)){const r=this._menuItemAction.alt.tooltip||this._menuItemAction.alt.label,a=this._keybindingService.lookupKeybinding(this._menuItemAction.alt.id,this._contextKeyService),l=a&&a.getLabel(),c=l?v("titleAndKb","{0} ({1})",r,l):r;o=v("titleAndKbAndAlt",`{0} [{1}] {2}`,o,w$.modifierLabels[Da].altKey,c)}return o}updateClass(){this.options.icon&&(this._commandAction!==this._menuItemAction?this._menuItemAction.alt&&this._updateItemClass(this._menuItemAction.alt.item):this._updateItemClass(this._menuItemAction.item))}_updateItemClass(e){this._itemClassDispose.value=void 0;const{element:t,label:i}=this;if(!t||!i)return;const s=this._commandAction.checked&&zVe(e.toggled)&&e.toggled.icon?e.toggled.icon:e.icon;if(s)if(_t.isThemeIcon(s)){const o=_t.asClassNameArray(s);i.classList.add(...o),this._itemClassDispose.value=dt(()=>{i.classList.remove(...o)})}else i.style.backgroundImage=HC(this._themeService.getColorTheme().type)?Ig(s.dark):Ig(s.light),i.classList.add("icon"),this._itemClassDispose.value=Jc(dt(()=>{i.style.backgroundImage="",i.classList.remove("icon")}),this._themeService.onDidColorThemeChange(()=>{this.updateClass()}))}};Um=oP([ia(2,Li),ia(3,ps),ia(4,Ct),ia(5,js),ia(6,za),ia(7,Ha)],Um);let T9=class extends xA{constructor(e,t,i,s,o){var r,a,l;const c={...t,menuAsChild:(r=t==null?void 0:t.menuAsChild)!==null&&r!==void 0?r:!1,classNames:(a=t==null?void 0:t.classNames)!==null&&a!==void 0?a:_t.isThemeIcon(e.item.icon)?_t.asClassName(e.item.icon):void 0,keybindingProvider:(l=t==null?void 0:t.keybindingProvider)!==null&&l!==void 0?l:d=>i.lookupKeybinding(d.id)};super(e,{getActions:()=>e.actions},s,c),this._keybindingService=i,this._contextMenuService=s,this._themeService=o}render(e){super.render(e),mi(this.element),e.classList.add("menu-entry");const t=this._action,{icon:i}=t.item;if(i&&!_t.isThemeIcon(i)){this.element.classList.add("icon");const s=()=>{this.element&&(this.element.style.backgroundImage=HC(this._themeService.getColorTheme().type)?Ig(i.dark):Ig(i.light))};s(),this._register(this._themeService.onDidColorThemeChange(()=>{s()}))}}};T9=oP([ia(2,Li),ia(3,za),ia(4,js)],T9);let N9=class extends Rd{constructor(e,t,i,s,o,r,a,l){var c,d,u;super(null,e),this._keybindingService=i,this._notificationService=s,this._contextMenuService=o,this._menuService=r,this._instaService=a,this._storageService=l,this._container=null,this._options=t,this._storageKey=`${e.item.submenu.id}_lastActionId`;let h;const f=t!=null&&t.persistLastActionId?l.get(this._storageKey,1):void 0;f&&(h=e.actions.find(p=>f===p.id)),h||(h=e.actions[0]),this._defaultAction=this._instaService.createInstance(Um,h,{keybinding:this._getDefaultActionKeybindingLabel(h)});const g={keybindingProvider:p=>this._keybindingService.lookupKeybinding(p.id),...t,menuAsChild:(c=t==null?void 0:t.menuAsChild)!==null&&c!==void 0?c:!0,classNames:(d=t==null?void 0:t.classNames)!==null&&d!==void 0?d:["codicon","codicon-chevron-down"],actionRunner:(u=t==null?void 0:t.actionRunner)!==null&&u!==void 0?u:new f0};this._dropdown=new xA(e,e.actions,this._contextMenuService,g),this._register(this._dropdown.actionRunner.onDidRun(p=>{p.action instanceof Na&&this.update(p.action)}))}update(e){var t;!((t=this._options)===null||t===void 0)&&t.persistLastActionId&&this._storageService.store(this._storageKey,e.id,1,1),this._defaultAction.dispose(),this._defaultAction=this._instaService.createInstance(Um,e,{keybinding:this._getDefaultActionKeybindingLabel(e)}),this._defaultAction.actionRunner=new class extends f0{async runAction(i,s){await i.run(void 0)}},this._container&&this._defaultAction.render(oz(this._container,ke(".action-container")))}_getDefaultActionKeybindingLabel(e){var t;let i;if(!((t=this._options)===null||t===void 0)&&t.renderKeybindingWithDefaultActionLabel){const s=this._keybindingService.lookupKeybinding(e.id);s&&(i=`(${s.getLabel()})`)}return i}setActionContext(e){super.setActionContext(e),this._defaultAction.setActionContext(e),this._dropdown.setActionContext(e)}render(e){this._container=e,super.render(this._container),this._container.classList.add("monaco-dropdown-with-default");const t=ke(".action-container");this._defaultAction.render(we(this._container,t)),this._register(ce(t,Le.KEY_DOWN,s=>{const o=new ln(s);o.equals(17)&&(this._defaultAction.element.tabIndex=-1,this._dropdown.focus(),o.stopPropagation())}));const i=ke(".dropdown-action-container");this._dropdown.render(we(this._container,i)),this._register(ce(i,Le.KEY_DOWN,s=>{var o;const r=new ln(s);r.equals(15)&&(this._defaultAction.element.tabIndex=0,this._dropdown.setFocusable(!1),(o=this._defaultAction.element)===null||o===void 0||o.focus(),r.stopPropagation())}))}focus(e){e?this._dropdown.focus():(this._defaultAction.element.tabIndex=0,this._defaultAction.element.focus())}blur(){this._defaultAction.element.tabIndex=-1,this._dropdown.blur(),this._container.blur()}setFocusable(e){e?this._defaultAction.element.tabIndex=0:(this._defaultAction.element.tabIndex=-1,this._dropdown.setFocusable(!1))}dispose(){this._defaultAction.dispose(),this._dropdown.dispose(),super.dispose()}};N9=oP([ia(2,Li),ia(3,ps),ia(4,za),ia(5,Dl),ia(6,ht),ia(7,dd)],N9);let A9=class extends BVe{constructor(e,t){super(null,e,e.actions.map(i=>({text:i.id===Ms.ID?"─────────":i.label,isDisabled:!i.enabled})),0,t,YVe,{ariaLabel:e.tooltip,optionsAsChildren:!0}),this.select(Math.max(0,e.actions.findIndex(i=>i.checked)))}render(e){super.render(e),e.style.borderColor=Ge(y1)}runAction(e,t){const i=this.action.actions[t];i&&this.actionRunner.run(i)}};A9=oP([ia(1,Wg)],A9);function Kde(n,e,t){return e instanceof Na?n.createInstance(Um,e,t):e instanceof q1?e.item.isSelection?n.createInstance(A9,e):e.item.rememberDefaultAction?n.createInstance(N9,e,{...t,persistLastActionId:!0}):n.createInstance(T9,e,t):void 0}class hc extends ne{constructor(e,t={}){var i,s,o,r,a,l,c;super(),this._actionRunnerDisposables=this._register(new be),this.viewItemDisposables=this._register(new WV),this.triggerKeyDown=!1,this.focusable=!0,this._onDidBlur=this._register(new X),this.onDidBlur=this._onDidBlur.event,this._onDidCancel=this._register(new X({onWillAddFirstListener:()=>this.cancelHasListener=!0})),this.onDidCancel=this._onDidCancel.event,this.cancelHasListener=!1,this._onDidRun=this._register(new X),this.onDidRun=this._onDidRun.event,this._onWillRun=this._register(new X),this.onWillRun=this._onWillRun.event,this.options=t,this._context=(i=t.context)!==null&&i!==void 0?i:null,this._orientation=(s=this.options.orientation)!==null&&s!==void 0?s:0,this._triggerKeys={keyDown:(r=(o=this.options.triggerKeys)===null||o===void 0?void 0:o.keyDown)!==null&&r!==void 0?r:!1,keys:(l=(a=this.options.triggerKeys)===null||a===void 0?void 0:a.keys)!==null&&l!==void 0?l:[3,10]},this._hoverDelegate=(c=t.hoverDelegate)!==null&&c!==void 0?c:this._register(XC()),this.options.actionRunner?this._actionRunner=this.options.actionRunner:(this._actionRunner=new f0,this._actionRunnerDisposables.add(this._actionRunner)),this._actionRunnerDisposables.add(this._actionRunner.onDidRun(h=>this._onDidRun.fire(h))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun(h=>this._onWillRun.fire(h))),this.viewItems=[],this.focusedItem=void 0,this.domNode=document.createElement("div"),this.domNode.className="monaco-action-bar";let d,u;switch(this._orientation){case 0:d=[15],u=[17];break;case 1:d=[16],u=[18],this.domNode.className+=" vertical";break}this._register(ce(this.domNode,Le.KEY_DOWN,h=>{const f=new ln(h);let g=!0;const p=typeof this.focusedItem=="number"?this.viewItems[this.focusedItem]:void 0;d&&(f.equals(d[0])||f.equals(d[1]))?g=this.focusPrevious():u&&(f.equals(u[0])||f.equals(u[1]))?g=this.focusNext():f.equals(9)&&this.cancelHasListener?this._onDidCancel.fire():f.equals(14)?g=this.focusFirst():f.equals(13)?g=this.focusLast():f.equals(2)&&p instanceof Rd&&p.trapsArrowNavigation?g=this.focusNext():this.isTriggerKeyEvent(f)?this._triggerKeys.keyDown?this.doTrigger(f):this.triggerKeyDown=!0:g=!1,g&&(f.preventDefault(),f.stopPropagation())})),this._register(ce(this.domNode,Le.KEY_UP,h=>{const f=new ln(h);this.isTriggerKeyEvent(f)?(!this._triggerKeys.keyDown&&this.triggerKeyDown&&(this.triggerKeyDown=!1,this.doTrigger(f)),f.preventDefault(),f.stopPropagation()):(f.equals(2)||f.equals(1026)||f.equals(16)||f.equals(18)||f.equals(15)||f.equals(17))&&this.updateFocusedItem()})),this.focusTracker=this._register(ou(this.domNode)),this._register(this.focusTracker.onDidBlur(()=>{(Ao()===this.domNode||!Zs(Ao(),this.domNode))&&(this._onDidBlur.fire(),this.previouslyFocusedItem=this.focusedItem,this.focusedItem=void 0,this.triggerKeyDown=!1)})),this._register(this.focusTracker.onDidFocus(()=>this.updateFocusedItem())),this.actionsList=document.createElement("ul"),this.actionsList.className="actions-container",this.options.highlightToggledItems&&this.actionsList.classList.add("highlight-toggled"),this.actionsList.setAttribute("role",this.options.ariaRole||"toolbar"),this.options.ariaLabel&&this.actionsList.setAttribute("aria-label",this.options.ariaLabel),this.domNode.appendChild(this.actionsList),e.appendChild(this.domNode)}refreshRole(){this.length()>=1?this.actionsList.setAttribute("role",this.options.ariaRole||"toolbar"):this.actionsList.setAttribute("role","presentation")}setFocusable(e){if(this.focusable=e,this.focusable){const t=this.viewItems.find(i=>i instanceof Rd&&i.isEnabled());t instanceof Rd&&t.setFocusable(!0)}else this.viewItems.forEach(t=>{t instanceof Rd&&t.setFocusable(!1)})}isTriggerKeyEvent(e){let t=!1;return this._triggerKeys.keys.forEach(i=>{t=t||e.equals(i)}),t}updateFocusedItem(){var e,t;for(let i=0;it.setActionContext(e))}get actionRunner(){return this._actionRunner}set actionRunner(e){this._actionRunner=e,this._actionRunnerDisposables.clear(),this._actionRunnerDisposables.add(this._actionRunner.onDidRun(t=>this._onDidRun.fire(t))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun(t=>this._onWillRun.fire(t))),this.viewItems.forEach(t=>t.actionRunner=e)}getContainer(){return this.domNode}getAction(e){var t;if(typeof e=="number")return(t=this.viewItems[e])===null||t===void 0?void 0:t.action;if(co(e)){for(;e.parentElement!==this.actionsList;){if(!e.parentElement)return;e=e.parentElement}for(let i=0;i{const r=document.createElement("li");r.className="action-item",r.setAttribute("role","presentation");let a;const l={hoverDelegate:this._hoverDelegate,...t};this.options.actionViewItemProvider&&(a=this.options.actionViewItemProvider(o,l)),a||(a=new QC(this.context,o,l)),this.options.allowContextMenu||this.viewItemDisposables.set(a,ce(r,Le.CONTEXT_MENU,c=>{ii.stop(c,!0)})),a.actionRunner=this._actionRunner,a.setActionContext(this.context),a.render(r),this.focusable&&a instanceof Rd&&this.viewItems.length===0&&a.setFocusable(!0),s===null||s<0||s>=this.actionsList.children.length?(this.actionsList.appendChild(r),this.viewItems.push(a)):(this.actionsList.insertBefore(r,this.actionsList.children[s]),this.viewItems.splice(s,0,a),s++)}),typeof this.focusedItem=="number"&&this.focus(this.focusedItem),this.refreshRole()}clear(){this.isEmpty()||(this.viewItems=tn(this.viewItems),this.viewItemDisposables.clearAndDisposeAll(),wo(this.actionsList),this.refreshRole())}length(){return this.viewItems.length}isEmpty(){return this.viewItems.length===0}focus(e){let t=!1,i;if(e===void 0?t=!0:typeof e=="number"?i=e:typeof e=="boolean"&&(t=e),t&&typeof this.focusedItem>"u"){const s=this.viewItems.findIndex(o=>o.isEnabled());this.focusedItem=s===-1?void 0:s,this.updateFocus(void 0,void 0,!0)}else i!==void 0&&(this.focusedItem=i),this.updateFocus(void 0,void 0,!0)}focusFirst(){return this.focusedItem=this.length()-1,this.focusNext(!0)}focusLast(){return this.focusedItem=0,this.focusPrevious(!0)}focusNext(e){if(typeof this.focusedItem>"u")this.focusedItem=this.viewItems.length-1;else if(this.viewItems.length<=1)return!1;const t=this.focusedItem;let i;do{if(!e&&this.options.preventLoopNavigation&&this.focusedItem+1>=this.viewItems.length)return this.focusedItem=t,!1;this.focusedItem=(this.focusedItem+1)%this.viewItems.length,i=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&(this.options.focusOnlyEnabledItems&&!i.isEnabled()||i.action.id===Ms.ID));return this.updateFocus(),!0}focusPrevious(e){if(typeof this.focusedItem>"u")this.focusedItem=0;else if(this.viewItems.length<=1)return!1;const t=this.focusedItem;let i;do{if(this.focusedItem=this.focusedItem-1,this.focusedItem<0){if(!e&&this.options.preventLoopNavigation)return this.focusedItem=t,!1;this.focusedItem=this.viewItems.length-1}i=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&(this.options.focusOnlyEnabledItems&&!i.isEnabled()||i.action.id===Ms.ID));return this.updateFocus(!0),!0}updateFocus(e,t,i=!1){var s,o;typeof this.focusedItem>"u"&&this.actionsList.focus({preventScroll:t}),this.previouslyFocusedItem!==void 0&&this.previouslyFocusedItem!==this.focusedItem&&((s=this.viewItems[this.previouslyFocusedItem])===null||s===void 0||s.blur());const r=this.focusedItem!==void 0?this.viewItems[this.focusedItem]:void 0;if(r){let a=!0;nL(r.focus)||(a=!1),this.options.focusOnlyEnabledItems&&nL(r.isEnabled)&&!r.isEnabled()&&(a=!1),r.action.id===Ms.ID&&(a=!1),a?(i||this.previouslyFocusedItem!==this.focusedItem)&&(r.focus(e),this.previouslyFocusedItem=this.focusedItem):(this.actionsList.focus({preventScroll:t}),this.previouslyFocusedItem=void 0),a&&((o=r.showHover)===null||o===void 0||o.call(r))}}doTrigger(e){if(typeof this.focusedItem>"u")return;const t=this.viewItems[this.focusedItem];if(t instanceof Rd){const i=t._context===null||t._context===void 0?e:t._context;this.run(t._action,i)}}async run(e,t){await this._actionRunner.run(e,t)}dispose(){this._context=void 0,this.viewItems=tn(this.viewItems),this.getContainer().remove(),super.dispose()}}const R9=/\(&([^\s&])\)|(^|[^&])&([^\s&])/,O5=/(&)?(&)([^\s&])/g;var DA;(function(n){n[n.Right=0]="Right",n[n.Left=1]="Left"})(DA||(DA={}));var M9;(function(n){n[n.Above=0]="Above",n[n.Below=1]="Below"})(M9||(M9={}));class uC extends hc{constructor(e,t,i,s){e.classList.add("monaco-menu-container"),e.setAttribute("role","presentation");const o=document.createElement("div");o.classList.add("monaco-menu"),o.setAttribute("role","presentation"),super(o,{orientation:1,actionViewItemProvider:c=>this.doGetActionViewItem(c,i,r),context:i.context,actionRunner:i.actionRunner,ariaLabel:i.ariaLabel,ariaRole:"menu",focusOnlyEnabledItems:!0,triggerKeys:{keys:[3,...Xt||Br?[10]:[]],keyDown:!0}}),this.menuStyles=s,this.menuElement=o,this.actionsList.tabIndex=0,this.initializeOrUpdateStyleSheet(e,s),this._register(hn.addTarget(o)),this._register(ce(o,Le.KEY_DOWN,c=>{new ln(c).equals(2)&&c.preventDefault()})),i.enableMnemonics&&this._register(ce(o,Le.KEY_DOWN,c=>{const d=c.key.toLocaleLowerCase();if(this.mnemonics.has(d)){ii.stop(c,!0);const u=this.mnemonics.get(d);if(u.length===1&&(u[0]instanceof LJ&&u[0].container&&this.focusItemByElement(u[0].container),u[0].onClick(c)),u.length>1){const h=u.shift();h&&h.container&&(this.focusItemByElement(h.container),u.push(h)),this.mnemonics.set(d,u)}}})),Br&&this._register(ce(o,Le.KEY_DOWN,c=>{const d=new ln(c);d.equals(14)||d.equals(11)?(this.focusedItem=this.viewItems.length-1,this.focusNext(),ii.stop(c,!0)):(d.equals(13)||d.equals(12))&&(this.focusedItem=0,this.focusPrevious(),ii.stop(c,!0))})),this._register(ce(this.domNode,Le.MOUSE_OUT,c=>{const d=c.relatedTarget;Zs(d,this.domNode)||(this.focusedItem=void 0,this.updateFocus(),c.stopPropagation())})),this._register(ce(this.actionsList,Le.MOUSE_OVER,c=>{let d=c.target;if(!(!d||!Zs(d,this.actionsList)||d===this.actionsList)){for(;d.parentElement!==this.actionsList&&d.parentElement!==null;)d=d.parentElement;if(d.classList.contains("action-item")){const u=this.focusedItem;this.setFocusedItem(d),u!==this.focusedItem&&this.updateFocus()}}})),this._register(hn.addTarget(this.actionsList)),this._register(ce(this.actionsList,fn.Tap,c=>{let d=c.initialTarget;if(!(!d||!Zs(d,this.actionsList)||d===this.actionsList)){for(;d.parentElement!==this.actionsList&&d.parentElement!==null;)d=d.parentElement;if(d.classList.contains("action-item")){const u=this.focusedItem;this.setFocusedItem(d),u!==this.focusedItem&&this.updateFocus()}}}));const r={parent:this};this.mnemonics=new Map,this.scrollableElement=this._register(new wD(o,{alwaysConsumeMouseWheel:!0,horizontal:2,vertical:3,verticalScrollbarSize:7,handleMouseWheel:!0,useShadows:!0}));const a=this.scrollableElement.getDomNode();a.style.position="",this.styleScrollElement(a,s),this._register(ce(o,fn.Change,c=>{ii.stop(c,!0);const d=this.scrollableElement.getScrollPosition().scrollTop;this.scrollableElement.setScrollPosition({scrollTop:d-c.translationY})})),this._register(ce(a,Le.MOUSE_UP,c=>{c.preventDefault()}));const l=gt(e);o.style.maxHeight=`${Math.max(10,l.innerHeight-e.getBoundingClientRect().top-35)}px`,t=t.filter((c,d)=>{var u;return!((u=i.submenuIds)===null||u===void 0)&&u.has(c.id)?(console.warn(`Found submenu cycle: ${c.id}`),!1):!(c instanceof Ms&&(d===t.length-1||d===0||t[d-1]instanceof Ms))}),this.push(t,{icon:!0,label:!0,isMenu:!0}),e.appendChild(this.scrollableElement.getDomNode()),this.scrollableElement.scanDomNode(),this.viewItems.filter(c=>!(c instanceof kJ)).forEach((c,d,u)=>{c.updatePositionInSet(d+1,u.length)})}initializeOrUpdateStyleSheet(e,t){this.styleSheet||(W2(e)?this.styleSheet=yl(e):(uC.globalStyleSheet||(uC.globalStyleSheet=yl()),this.styleSheet=uC.globalStyleSheet)),this.styleSheet.textContent=eze(t,W2(e))}styleScrollElement(e,t){var i,s;const o=(i=t.foregroundColor)!==null&&i!==void 0?i:"",r=(s=t.backgroundColor)!==null&&s!==void 0?s:"",a=t.borderColor?`1px solid ${t.borderColor}`:"",l="5px",c=t.shadowColor?`0 2px 8px ${t.shadowColor}`:"";e.style.outline=a,e.style.borderRadius=l,e.style.color=o,e.style.backgroundColor=r,e.style.boxShadow=c}getContainer(){return this.scrollableElement.getDomNode()}get onScroll(){return this.scrollableElement.onScroll}focusItemByElement(e){const t=this.focusedItem;this.setFocusedItem(e),t!==this.focusedItem&&this.updateFocus()}setFocusedItem(e){for(let t=0;t{this.element&&(this._register(ce(this.element,Le.MOUSE_UP,o=>{if(ii.stop(o,!0),lc){if(new Kc(gt(this.element),o).rightButton)return;this.onClick(o)}else setTimeout(()=>{this.onClick(o)},0)})),this._register(ce(this.element,Le.CONTEXT_MENU,o=>{ii.stop(o,!0)})))},100),this._register(this.runOnceToEnableMouseUp)}render(e){super.render(e),this.element&&(this.container=e,this.item=we(this.element,ke("a.action-menu-item")),this._action.id===Ms.ID?this.item.setAttribute("role","presentation"):(this.item.setAttribute("role","menuitem"),this.mnemonic&&this.item.setAttribute("aria-keyshortcuts",`${this.mnemonic}`)),this.check=we(this.item,ke("span.menu-item-check"+_t.asCSSSelector(Te.menuSelection))),this.check.setAttribute("role","none"),this.label=we(this.item,ke("span.action-label")),this.options.label&&this.options.keybinding&&(we(this.item,ke("span.keybinding")).textContent=this.options.keybinding),this.runOnceToEnableMouseUp.schedule(),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked(),this.applyStyle())}blur(){super.blur(),this.applyStyle()}focus(){var e;super.focus(),(e=this.item)===null||e===void 0||e.focus(),this.applyStyle()}updatePositionInSet(e,t){this.item&&(this.item.setAttribute("aria-posinset",`${e}`),this.item.setAttribute("aria-setsize",`${t}`))}updateLabel(){var e;if(this.label&&this.options.label){wo(this.label);let t=_$(this.action.label);if(t){const i=JVe(t);this.options.enableMnemonics||(t=i),this.label.setAttribute("aria-label",i.replace(/&&/g,"&"));const s=R9.exec(t);if(s){t=ox(t),O5.lastIndex=0;let o=O5.exec(t);for(;o&&o[1];)o=O5.exec(t);const r=a=>a.replace(/&&/g,"&");o?this.label.append(aD(r(t.substr(0,o.index))," "),ke("u",{"aria-hidden":"true"},o[3]),vae(r(t.substr(o.index+o[0].length))," ")):this.label.innerText=r(t).trim(),(e=this.item)===null||e===void 0||e.setAttribute("aria-keyshortcuts",(s[1]?s[1]:s[3]).toLocaleLowerCase())}else this.label.innerText=t.replace(/&&/g,"&").trim()}}}updateTooltip(){}updateClass(){this.cssClass&&this.item&&this.item.classList.remove(...this.cssClass.split(" ")),this.options.icon&&this.label?(this.cssClass=this.action.class||"",this.label.classList.add("icon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" ")),this.updateEnabled()):this.label&&this.label.classList.remove("icon")}updateEnabled(){this.action.enabled?(this.element&&(this.element.classList.remove("disabled"),this.element.removeAttribute("aria-disabled")),this.item&&(this.item.classList.remove("disabled"),this.item.removeAttribute("aria-disabled"),this.item.tabIndex=0)):(this.element&&(this.element.classList.add("disabled"),this.element.setAttribute("aria-disabled","true")),this.item&&(this.item.classList.add("disabled"),this.item.setAttribute("aria-disabled","true")))}updateChecked(){if(!this.item)return;const e=this.action.checked;this.item.classList.toggle("checked",!!e),e!==void 0?(this.item.setAttribute("role","menuitemcheckbox"),this.item.setAttribute("aria-checked",e?"true":"false")):(this.item.setAttribute("role","menuitem"),this.item.setAttribute("aria-checked",""))}getMnemonic(){return this.mnemonic}applyStyle(){const e=this.element&&this.element.classList.contains("focused"),t=e&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor,i=e&&this.menuStyle.selectionBackgroundColor?this.menuStyle.selectionBackgroundColor:void 0,s=e&&this.menuStyle.selectionBorderColor?`1px solid ${this.menuStyle.selectionBorderColor}`:"",o=e&&this.menuStyle.selectionBorderColor?"-1px":"";this.item&&(this.item.style.color=t??"",this.item.style.backgroundColor=i??"",this.item.style.outline=s,this.item.style.outlineOffset=o),this.check&&(this.check.style.color=t??"")}}class LJ extends qde{constructor(e,t,i,s,o){super(e,e,s,o),this.submenuActions=t,this.parentData=i,this.submenuOptions=s,this.mysubmenu=null,this.submenuDisposables=this._register(new be),this.mouseOver=!1,this.expandDirection=s&&s.expandDirection!==void 0?s.expandDirection:{horizontal:DA.Right,vertical:M9.Below},this.showScheduler=new Xi(()=>{this.mouseOver&&(this.cleanupExistingSubmenu(!1),this.createSubmenu(!1))},250),this.hideScheduler=new Xi(()=>{this.element&&!Zs(Ao(),this.element)&&this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))},750)}render(e){super.render(e),this.element&&(this.item&&(this.item.classList.add("monaco-submenu-item"),this.item.tabIndex=0,this.item.setAttribute("aria-haspopup","true"),this.updateAriaExpanded("false"),this.submenuIndicator=we(this.item,ke("span.submenu-indicator"+_t.asCSSSelector(Te.menuSubmenu))),this.submenuIndicator.setAttribute("aria-hidden","true")),this._register(ce(this.element,Le.KEY_UP,t=>{const i=new ln(t);(i.equals(17)||i.equals(3))&&(ii.stop(t,!0),this.createSubmenu(!0))})),this._register(ce(this.element,Le.KEY_DOWN,t=>{const i=new ln(t);Ao()===this.item&&(i.equals(17)||i.equals(3))&&ii.stop(t,!0)})),this._register(ce(this.element,Le.MOUSE_OVER,t=>{this.mouseOver||(this.mouseOver=!0,this.showScheduler.schedule())})),this._register(ce(this.element,Le.MOUSE_LEAVE,t=>{this.mouseOver=!1})),this._register(ce(this.element,Le.FOCUS_OUT,t=>{this.element&&!Zs(Ao(),this.element)&&this.hideScheduler.schedule()})),this._register(this.parentData.parent.onScroll(()=>{this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))})))}updateEnabled(){}onClick(e){ii.stop(e,!0),this.cleanupExistingSubmenu(!1),this.createSubmenu(!0)}cleanupExistingSubmenu(e){if(this.parentData.submenu&&(e||this.parentData.submenu!==this.mysubmenu)){try{this.parentData.submenu.dispose()}catch{}this.parentData.submenu=void 0,this.updateAriaExpanded("false"),this.submenuContainer&&(this.submenuDisposables.clear(),this.submenuContainer=void 0)}}calculateSubmenuMenuLayout(e,t,i,s){const o={top:0,left:0};return o.left=I1(e.width,t.width,{position:s.horizontal===DA.Right?0:1,offset:i.left,size:i.width}),o.left>=i.left&&o.left{new ln(d).equals(15)&&(ii.stop(d,!0),this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0))})),this.submenuDisposables.add(ce(this.submenuContainer,Le.KEY_DOWN,d=>{new ln(d).equals(15)&&ii.stop(d,!0)})),this.submenuDisposables.add(this.parentData.submenu.onDidCancel(()=>{this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0)})),this.parentData.submenu.focus(e),this.mysubmenu=this.parentData.submenu}}updateAriaExpanded(e){var t;this.item&&((t=this.item)===null||t===void 0||t.setAttribute("aria-expanded",e))}applyStyle(){super.applyStyle();const t=this.element&&this.element.classList.contains("focused")&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor;this.submenuIndicator&&(this.submenuIndicator.style.color=t??"")}dispose(){super.dispose(),this.hideScheduler.dispose(),this.mysubmenu&&(this.mysubmenu.dispose(),this.mysubmenu=null),this.submenuContainer&&(this.submenuContainer=void 0)}}class kJ extends QC{constructor(e,t,i,s){super(e,t,i),this.menuStyles=s}render(e){super.render(e),this.label&&(this.label.style.borderBottomColor=this.menuStyles.separatorColor?`${this.menuStyles.separatorColor}`:"")}}function JVe(n){const e=R9,t=e.exec(n);if(!t)return n;const i=!t[1];return n.replace(e,i?"$2$3":"").trim()}function DJ(n){const e=fae()[n.id];return`.codicon-${n.id}:before { content: '\\${e.toString(16)}'; }`}function eze(n,e){let t=` .monaco-menu { font-size: 13px; border-radius: 5px; min-width: 160px; } ${DJ(Te.menuSelection)} ${DJ(Te.menuSubmenu)} .monaco-menu .monaco-action-bar { text-align: right; overflow: hidden; white-space: nowrap; } .monaco-menu .monaco-action-bar .actions-container { display: flex; margin: 0 auto; padding: 0; width: 100%; justify-content: flex-end; } .monaco-menu .monaco-action-bar.vertical .actions-container { display: inline-block; } .monaco-menu .monaco-action-bar.reverse .actions-container { flex-direction: row-reverse; } .monaco-menu .monaco-action-bar .action-item { cursor: pointer; display: inline-block; transition: transform 50ms ease; position: relative; /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */ } .monaco-menu .monaco-action-bar .action-item.disabled { cursor: default; } .monaco-menu .monaco-action-bar .action-item .icon, .monaco-menu .monaco-action-bar .action-item .codicon { display: inline-block; } .monaco-menu .monaco-action-bar .action-item .codicon { display: flex; align-items: center; } .monaco-menu .monaco-action-bar .action-label { font-size: 11px; margin-right: 4px; } .monaco-menu .monaco-action-bar .action-item.disabled .action-label, .monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover { color: var(--vscode-disabledForeground); } /* Vertical actions */ .monaco-menu .monaco-action-bar.vertical { text-align: left; } .monaco-menu .monaco-action-bar.vertical .action-item { display: block; } .monaco-menu .monaco-action-bar.vertical .action-label.separator { display: block; border-bottom: 1px solid var(--vscode-menu-separatorBackground); padding-top: 1px; padding: 30px; } .monaco-menu .secondary-actions .monaco-action-bar .action-label { margin-left: 6px; } /* Action Items */ .monaco-menu .monaco-action-bar .action-item.select-container { overflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */ flex: 1; max-width: 170px; min-width: 60px; display: flex; align-items: center; justify-content: center; margin-right: 10px; } .monaco-menu .monaco-action-bar.vertical { margin-left: 0; overflow: visible; } .monaco-menu .monaco-action-bar.vertical .actions-container { display: block; } .monaco-menu .monaco-action-bar.vertical .action-item { padding: 0; transform: none; display: flex; } .monaco-menu .monaco-action-bar.vertical .action-item.active { transform: none; } .monaco-menu .monaco-action-bar.vertical .action-menu-item { flex: 1 1 auto; display: flex; height: 2em; align-items: center; position: relative; margin: 0 4px; border-radius: 4px; } .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .keybinding, .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .keybinding { opacity: unset; } .monaco-menu .monaco-action-bar.vertical .action-label { flex: 1 1 auto; text-decoration: none; padding: 0 1em; background: none; font-size: 12px; line-height: 1; } .monaco-menu .monaco-action-bar.vertical .keybinding, .monaco-menu .monaco-action-bar.vertical .submenu-indicator { display: inline-block; flex: 2 1 auto; padding: 0 1em; text-align: right; font-size: 12px; line-height: 1; } .monaco-menu .monaco-action-bar.vertical .submenu-indicator { height: 100%; } .monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon { font-size: 16px !important; display: flex; align-items: center; } .monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before { margin-left: auto; margin-right: -20px; } .monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding, .monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator { opacity: 0.4; } .monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) { display: inline-block; box-sizing: border-box; margin: 0; } .monaco-menu .monaco-action-bar.vertical .action-item { position: static; overflow: visible; } .monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu { position: absolute; } .monaco-menu .monaco-action-bar.vertical .action-label.separator { width: 100%; height: 0px !important; opacity: 1; } .monaco-menu .monaco-action-bar.vertical .action-label.separator.text { padding: 0.7em 1em 0.1em 1em; font-weight: bold; opacity: 1; } .monaco-menu .monaco-action-bar.vertical .action-label:hover { color: inherit; } .monaco-menu .monaco-action-bar.vertical .menu-item-check { position: absolute; visibility: hidden; width: 1em; height: 100%; } .monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check { visibility: visible; display: flex; align-items: center; justify-content: center; } /* Context Menu */ .context-view.monaco-menu-container { outline: 0; border: none; animation: fadeIn 0.083s linear; -webkit-app-region: no-drag; } .context-view.monaco-menu-container :focus, .context-view.monaco-menu-container .monaco-action-bar.vertical:focus, .context-view.monaco-menu-container .monaco-action-bar.vertical :focus { outline: 0; } .hc-black .context-view.monaco-menu-container, .hc-light .context-view.monaco-menu-container, :host-context(.hc-black) .context-view.monaco-menu-container, :host-context(.hc-light) .context-view.monaco-menu-container { box-shadow: none; } .hc-black .monaco-menu .monaco-action-bar.vertical .action-item.focused, .hc-light .monaco-menu .monaco-action-bar.vertical .action-item.focused, :host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused, :host-context(.hc-light) .monaco-menu .monaco-action-bar.vertical .action-item.focused { background: none; } /* Vertical Action Bar Styles */ .monaco-menu .monaco-action-bar.vertical { padding: 4px 0; } .monaco-menu .monaco-action-bar.vertical .action-menu-item { height: 2em; } .monaco-menu .monaco-action-bar.vertical .action-label:not(.separator), .monaco-menu .monaco-action-bar.vertical .keybinding { font-size: inherit; padding: 0 2em; max-height: 100%; } .monaco-menu .monaco-action-bar.vertical .menu-item-check { font-size: inherit; width: 2em; } .monaco-menu .monaco-action-bar.vertical .action-label.separator { font-size: inherit; margin: 5px 0 !important; padding: 0; border-radius: 0; } .linux .monaco-menu .monaco-action-bar.vertical .action-label.separator, :host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator { margin-left: 0; margin-right: 0; } .monaco-menu .monaco-action-bar.vertical .submenu-indicator { font-size: 60%; padding: 0 1.8em; } .linux .monaco-menu .monaco-action-bar.vertical .submenu-indicator, :host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator { height: 100%; mask-size: 10px 10px; -webkit-mask-size: 10px 10px; } .monaco-menu .action-item { cursor: default; }`;if(e){t+=` /* Arrows */ .monaco-scrollable-element > .scrollbar > .scra { cursor: pointer; font-size: 11px !important; } .monaco-scrollable-element > .visible { opacity: 1; /* Background rule added for IE9 - to allow clicks on dom node */ background:rgba(0,0,0,0); transition: opacity 100ms linear; } .monaco-scrollable-element > .invisible { opacity: 0; pointer-events: none; } .monaco-scrollable-element > .invisible.fade { transition: opacity 800ms linear; } /* Scrollable Content Inset Shadow */ .monaco-scrollable-element > .shadow { position: absolute; display: none; } .monaco-scrollable-element > .shadow.top { display: block; top: 0; left: 3px; height: 3px; width: 100%; } .monaco-scrollable-element > .shadow.left { display: block; top: 3px; left: 0; height: 100%; width: 3px; } .monaco-scrollable-element > .shadow.top-left-corner { display: block; top: 0; left: 0; height: 3px; width: 3px; } `;const i=n.scrollbarShadow;i&&(t+=` .monaco-scrollable-element > .shadow.top { box-shadow: ${i} 0 6px 6px -6px inset; } .monaco-scrollable-element > .shadow.left { box-shadow: ${i} 6px 0 6px -6px inset; } .monaco-scrollable-element > .shadow.top.left { box-shadow: ${i} 6px 6px 6px -6px inset; } `);const s=n.scrollbarSliderBackground;s&&(t+=` .monaco-scrollable-element > .scrollbar > .slider { background: ${s}; } `);const o=n.scrollbarSliderHoverBackground;o&&(t+=` .monaco-scrollable-element > .scrollbar > .slider:hover { background: ${o}; } `);const r=n.scrollbarSliderActiveBackground;r&&(t+=` .monaco-scrollable-element > .scrollbar > .slider.active { background: ${r}; } `)}return t}class tze{constructor(e,t,i,s){this.contextViewService=e,this.telemetryService=t,this.notificationService=i,this.keybindingService=s,this.focusToReturn=null,this.lastContainer=null,this.block=null,this.blockDisposable=null,this.options={blockMouse:!0}}configure(e){this.options=e}showContextMenu(e){const t=e.getActions();if(!t.length)return;this.focusToReturn=Ao();let i;const s=co(e.domForShadowRoot)?e.domForShadowRoot:void 0;this.contextViewService.showContextView({getAnchor:()=>e.getAnchor(),canRelayout:!1,anchorAlignment:e.anchorAlignment,anchorAxisAlignment:e.anchorAxisAlignment,render:o=>{var r;this.lastContainer=o;const a=e.getMenuClassName?e.getMenuClassName():"";a&&(o.className+=" "+a),this.options.blockMouse&&(this.block=o.appendChild(ke(".context-view-block")),this.block.style.position="fixed",this.block.style.cursor="initial",this.block.style.left="0",this.block.style.top="0",this.block.style.width="100%",this.block.style.height="100%",this.block.style.zIndex="-1",(r=this.blockDisposable)===null||r===void 0||r.dispose(),this.blockDisposable=ce(this.block,Le.MOUSE_DOWN,u=>u.stopPropagation()));const l=new be,c=e.actionRunner||new f0;c.onWillRun(u=>this.onActionRun(u,!e.skipTelemetry),this,l),c.onDidRun(this.onDidActionRun,this,l),i=new uC(o,t,{actionViewItemProvider:e.getActionViewItem,context:e.getActionsContext?e.getActionsContext():null,actionRunner:c,getKeyBinding:e.getKeyBinding?e.getKeyBinding:u=>this.keybindingService.lookupKeybinding(u.id)},XVe),i.onDidCancel(()=>this.contextViewService.hideContextView(!0),null,l),i.onDidBlur(()=>this.contextViewService.hideContextView(!0),null,l);const d=gt(o);return l.add(ce(d,Le.BLUR,()=>this.contextViewService.hideContextView(!0))),l.add(ce(d,Le.MOUSE_DOWN,u=>{if(u.defaultPrevented)return;const h=new Kc(d,u);let f=h.target;if(!h.rightButton){for(;f;){if(f===o)return;f=f.parentElement}this.contextViewService.hideContextView(!0)}})),Jc(l,i)},focus:()=>{i==null||i.focus(!!e.autoSelectFirstItem)},onHide:o=>{var r,a,l;(r=e.onHide)===null||r===void 0||r.call(e,!!o),this.block&&(this.block.remove(),this.block=null),(a=this.blockDisposable)===null||a===void 0||a.dispose(),this.blockDisposable=null,this.lastContainer&&(Ao()===this.lastContainer||Zs(Ao(),this.lastContainer))&&((l=this.focusToReturn)===null||l===void 0||l.focus()),this.lastContainer=null}},s,!!s)}onActionRun(e,t){t&&this.telemetryService.publicLog2("workbenchActionExecuted",{id:e.action.id,from:"contextMenu"}),this.contextViewService.hideContextView(!1)}onDidActionRun(e){e.error&&!ld(e.error)&&this.notificationService.error(e.error)}}var ize=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Hb=function(n,e){return function(t,i){e(t,i,n)}};let P9=class extends ne{get contextMenuHandler(){return this._contextMenuHandler||(this._contextMenuHandler=new tze(this.contextViewService,this.telemetryService,this.notificationService,this.keybindingService)),this._contextMenuHandler}constructor(e,t,i,s,o,r){super(),this.telemetryService=e,this.notificationService=t,this.contextViewService=i,this.keybindingService=s,this.menuService=o,this.contextKeyService=r,this._contextMenuHandler=void 0,this._onDidShowContextMenu=this._store.add(new X),this.onDidShowContextMenu=this._onDidShowContextMenu.event,this._onDidHideContextMenu=this._store.add(new X)}configure(e){this.contextMenuHandler.configure(e)}showContextMenu(e){e=O9.transform(e,this.menuService,this.contextKeyService),this.contextMenuHandler.showContextMenu({...e,onHide:t=>{var i;(i=e.onHide)===null||i===void 0||i.call(e,t),this._onDidHideContextMenu.fire()}}),Yf.getInstance().resetKeyStatus(),this._onDidShowContextMenu.fire()}};P9=ize([Hb(0,Po),Hb(1,ps),Hb(2,Wg),Hb(3,Li),Hb(4,Dl),Hb(5,Ct)],P9);var O9;(function(n){function e(i){return i&&i.menuId instanceof R}function t(i,s,o){if(!e(i))return i;const{menuId:r,menuActionOptions:a,contextKeyService:l}=i;return{...i,getActions:()=>{const c=[];if(r){const d=s.createMenu(r,l??o);QVe(d,a,c),d.dispose()}return i.getActions?Ms.join(i.getActions(),c):c}}}n.transform=t})(O9||(O9={}));var IA;(function(n){n[n.API=0]="API",n[n.USER=1]="USER"})(IA||(IA={}));var x$=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},EA=function(n,e){return function(t,i){e(t,i,n)}};let F9=class{constructor(e){this._commandService=e}async open(e,t){if(!ez(e,Tt.command))return!1;if(!(t!=null&&t.allowCommands)||(typeof e=="string"&&(e=pt.parse(e)),Array.isArray(t.allowCommands)&&!t.allowCommands.includes(e.path)))return!0;let i=[];try{i=f9(decodeURIComponent(e.query))}catch{try{i=f9(e.query)}catch{}}return Array.isArray(i)||(i=[i]),await this._commandService.executeCommand(e.path,...i),!0}};F9=x$([EA(0,Sn)],F9);let B9=class{constructor(e){this._editorService=e}async open(e,t){typeof e=="string"&&(e=pt.parse(e));const{selection:i,uri:s}=V6e(e);return e=s,e.scheme===Tt.file&&(e=dBe(e)),await this._editorService.openCodeEditor({resource:e,options:{selection:i,source:t!=null&&t.fromUserGesture?IA.USER:IA.API,...t==null?void 0:t.editorOptions}},this._editorService.getFocusedCodeEditor(),t==null?void 0:t.openToSide),!0}};B9=x$([EA(0,vi)],B9);let W9=class{constructor(e,t){this._openers=new Tr,this._validators=new Tr,this._resolvers=new Tr,this._resolvedUriTargets=new hs(i=>i.with({path:null,fragment:null,query:null}).toString()),this._externalOpeners=new Tr,this._defaultExternalOpener={openExternal:async i=>(oB(i,Tt.http,Tt.https)?Yae(i):Ji.location.href=i,!0)},this._openers.push({open:async(i,s)=>s!=null&&s.openExternal||oB(i,Tt.mailto,Tt.http,Tt.https,Tt.vsls)?(await this._doOpenExternal(i,s),!0):!1}),this._openers.push(new F9(t)),this._openers.push(new B9(e))}registerOpener(e){return{dispose:this._openers.unshift(e)}}async open(e,t){var i;const s=typeof e=="string"?pt.parse(e):e,o=(i=this._resolvedUriTargets.get(s))!==null&&i!==void 0?i:e;for(const r of this._validators)if(!await r.shouldOpen(o,t))return!1;for(const r of this._openers)if(await r.open(e,t))return!0;return!1}async resolveExternalUri(e,t){for(const i of this._resolvers)try{const s=await i.resolveExternalUri(e,t);if(s)return this._resolvedUriTargets.has(s.resolved)||this._resolvedUriTargets.set(s.resolved,e),s}catch{}throw new Error("Could not resolve external URI: "+e.toString())}async _doOpenExternal(e,t){const i=typeof e=="string"?pt.parse(e):e;let s;try{s=(await this.resolveExternalUri(i,t)).resolved}catch{s=i}let o;if(typeof e=="string"&&i.toString()===s.toString()?o=e:o=encodeURI(s.toString(!0)),t!=null&&t.allowContributedOpeners){const r=typeof(t==null?void 0:t.allowContributedOpeners)=="string"?t==null?void 0:t.allowContributedOpeners:void 0;for(const a of this._externalOpeners)if(await a.openExternal(o,{sourceUri:i,preferredOpenerId:r},Qt.None))return!0}return this._defaultExternalOpener.openExternal(o,{sourceUri:i},Qt.None)}dispose(){this._validators.clear()}};W9=x$([EA(0,vi),EA(1,Sn)],W9);const bc=Jt("editorWorkerService");var Qn;(function(n){n[n.Hint=1]="Hint",n[n.Info=2]="Info",n[n.Warning=4]="Warning",n[n.Error=8]="Error"})(Qn||(Qn={}));(function(n){function e(r,a){return a-r}n.compare=e;const t=Object.create(null);t[n.Error]=v("sev.error","Error"),t[n.Warning]=v("sev.warning","Warning"),t[n.Info]=v("sev.info","Info");function i(r){return t[r]||""}n.toString=i;function s(r){switch(r){case us.Error:return n.Error;case us.Warning:return n.Warning;case us.Info:return n.Info;case us.Ignore:return n.Hint}}n.fromSeverity=s;function o(r){switch(r){case n.Error:return us.Error;case n.Warning:return us.Warning;case n.Info:return us.Info;case n.Hint:return us.Ignore}}n.toSeverity=o})(Qn||(Qn={}));var TA;(function(n){const e="";function t(s){return i(s,!0)}n.makeKey=t;function i(s,o){const r=[e];return s.source?r.push(s.source.replace("¦","\\¦")):r.push(e),s.code?typeof s.code=="string"?r.push(s.code.replace("¦","\\¦")):r.push(s.code.value.replace("¦","\\¦")):r.push(e),s.severity!==void 0&&s.severity!==null?r.push(Qn.toString(s.severity)):r.push(e),s.message&&o?r.push(s.message.replace("¦","\\¦")):r.push(e),s.startLineNumber!==void 0&&s.startLineNumber!==null?r.push(s.startLineNumber.toString()):r.push(e),s.startColumn!==void 0&&s.startColumn!==null?r.push(s.startColumn.toString()):r.push(e),s.endLineNumber!==void 0&&s.endLineNumber!==null?r.push(s.endLineNumber.toString()):r.push(e),s.endColumn!==void 0&&s.endColumn!==null?r.push(s.endColumn.toString()):r.push(e),r.push(e),r.join("¦")}n.makeKeyOptionalMessage=i})(TA||(TA={}));const Uh=Jt("markerService");function nze(n,e){const t=[],i=[];for(const s of n)e.has(s)||t.push(s);for(const s of e)n.has(s)||i.push(s);return{removed:t,added:i}}function sze(n,e){const t=new Set;for(const i of e)n.has(i)&&t.add(i);return t}var oze=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},IJ=function(n,e){return function(t,i){e(t,i,n)}};let H9=class extends ne{constructor(e,t){super(),this._markerService=t,this._onDidChangeMarker=this._register(new X),this._markerDecorations=new hs,e.getModels().forEach(i=>this._onModelAdded(i)),this._register(e.onModelAdded(this._onModelAdded,this)),this._register(e.onModelRemoved(this._onModelRemoved,this)),this._register(this._markerService.onMarkerChanged(this._handleMarkerChange,this))}dispose(){super.dispose(),this._markerDecorations.forEach(e=>e.dispose()),this._markerDecorations.clear()}getMarker(e,t){const i=this._markerDecorations.get(e);return i&&i.getMarker(t)||null}_handleMarkerChange(e){e.forEach(t=>{const i=this._markerDecorations.get(t);i&&this._updateDecorations(i)})}_onModelAdded(e){const t=new rze(e);this._markerDecorations.set(e.uri,t),this._updateDecorations(t)}_onModelRemoved(e){var t;const i=this._markerDecorations.get(e.uri);i&&(i.dispose(),this._markerDecorations.delete(e.uri)),(e.uri.scheme===Tt.inMemory||e.uri.scheme===Tt.internal||e.uri.scheme===Tt.vscode)&&((t=this._markerService)===null||t===void 0||t.read({resource:e.uri}).map(s=>s.owner).forEach(s=>this._markerService.remove(s,[e.uri])))}_updateDecorations(e){const t=this._markerService.read({resource:e.model.uri,take:500});e.update(t)&&this._onDidChangeMarker.fire(e.model)}};H9=oze([IJ(0,Pn),IJ(1,Uh)],H9);class rze extends ne{constructor(e){super(),this.model=e,this._map=new kOe,this._register(dt(()=>{this.model.deltaDecorations([...this._map.values()],[]),this._map.clear()}))}update(e){const{added:t,removed:i}=nze(new Set(this._map.keys()),new Set(e));if(t.length===0&&i.length===0)return!1;const s=i.map(a=>this._map.get(a)),o=t.map(a=>({range:this._createDecorationRange(this.model,a),options:this._createDecorationOption(a)})),r=this.model.deltaDecorations(s,o);for(const a of i)this._map.delete(a);for(let a=0;a=s)return i;const o=e.getWordAtPosition(i.getStartPosition());o&&(i=new A(i.startLineNumber,o.startColumn,i.endLineNumber,o.endColumn))}else if(t.endColumn===Number.MAX_VALUE&&t.startColumn===1&&i.startLineNumber===i.endLineNumber){const s=e.getLineFirstNonWhitespaceColumn(t.startLineNumber);s=0:!1}}var aze=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Uy=function(n,e){return function(t,i){e(t,i,n)}},i1;function q_(n){return n.toString()}class lze{constructor(e,t,i){this.model=e,this._modelEventListeners=new be,this.model=e,this._modelEventListeners.add(e.onWillDispose(()=>t(e))),this._modelEventListeners.add(e.onDidChangeLanguage(s=>i(e,s)))}dispose(){this._modelEventListeners.dispose()}}const cze=Br||Xt?1:2;class dze{constructor(e,t,i,s,o,r,a,l){this.uri=e,this.initialUndoRedoSnapshot=t,this.time=i,this.sharesUndoRedoStack=s,this.heapSize=o,this.sha1=r,this.versionId=a,this.alternativeVersionId=l}}let NA=i1=class extends ne{constructor(e,t,i,s,o){super(),this._configurationService=e,this._resourcePropertiesService=t,this._undoRedoService=i,this._languageService=s,this._languageConfigurationService=o,this._onModelAdded=this._register(new X),this.onModelAdded=this._onModelAdded.event,this._onModelRemoved=this._register(new X),this.onModelRemoved=this._onModelRemoved.event,this._onModelModeChanged=this._register(new X),this.onModelLanguageChanged=this._onModelModeChanged.event,this._modelCreationOptionsByLanguageAndResource=Object.create(null),this._models={},this._disposedModels=new Map,this._disposedModelsHeapSize=0,this._register(this._configurationService.onDidChangeConfiguration(r=>this._updateModelOptions(r))),this._updateModelOptions(void 0)}static _readModelOptions(e,t){var i;let s=zo.tabSize;if(e.editor&&typeof e.editor.tabSize<"u"){const f=parseInt(e.editor.tabSize,10);isNaN(f)||(s=f),s<1&&(s=1)}let o="tabSize";if(e.editor&&typeof e.editor.indentSize<"u"&&e.editor.indentSize!=="tabSize"){const f=parseInt(e.editor.indentSize,10);isNaN(f)||(o=Math.max(f,1))}let r=zo.insertSpaces;e.editor&&typeof e.editor.insertSpaces<"u"&&(r=e.editor.insertSpaces==="false"?!1:!!e.editor.insertSpaces);let a=cze;const l=e.eol;l===`\r `?a=2:l===` `&&(a=1);let c=zo.trimAutoWhitespace;e.editor&&typeof e.editor.trimAutoWhitespace<"u"&&(c=e.editor.trimAutoWhitespace==="false"?!1:!!e.editor.trimAutoWhitespace);let d=zo.detectIndentation;e.editor&&typeof e.editor.detectIndentation<"u"&&(d=e.editor.detectIndentation==="false"?!1:!!e.editor.detectIndentation);let u=zo.largeFileOptimizations;e.editor&&typeof e.editor.largeFileOptimizations<"u"&&(u=e.editor.largeFileOptimizations==="false"?!1:!!e.editor.largeFileOptimizations);let h=zo.bracketPairColorizationOptions;return!((i=e.editor)===null||i===void 0)&&i.bracketPairColorization&&typeof e.editor.bracketPairColorization=="object"&&(h={enabled:!!e.editor.bracketPairColorization.enabled,independentColorPoolPerBracketType:!!e.editor.bracketPairColorization.independentColorPoolPerBracketType}),{isForSimpleWidget:t,tabSize:s,indentSize:o,insertSpaces:r,detectIndentation:d,defaultEOL:a,trimAutoWhitespace:c,largeFileOptimizations:u,bracketPairColorizationOptions:h}}_getEOL(e,t){if(e)return this._resourcePropertiesService.getEOL(e,t);const i=this._configurationService.getValue("files.eol",{overrideIdentifier:t});return i&&typeof i=="string"&&i!=="auto"?i:Da===3||Da===2?` `:`\r `}_shouldRestoreUndoStack(){const e=this._configurationService.getValue("files.restoreUndoStack");return typeof e=="boolean"?e:!0}getCreationOptions(e,t,i){const s=typeof e=="string"?e:e.languageId;let o=this._modelCreationOptionsByLanguageAndResource[s+t];if(!o){const r=this._configurationService.getValue("editor",{overrideIdentifier:s,resource:t}),a=this._getEOL(t,s);o=i1._readModelOptions({editor:r,eol:a},i),this._modelCreationOptionsByLanguageAndResource[s+t]=o}return o}_updateModelOptions(e){const t=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null);const i=Object.keys(this._models);for(let s=0,o=i.length;se){const t=[];for(this._disposedModels.forEach(i=>{i.sharesUndoRedoStack||t.push(i)}),t.sort((i,s)=>i.time-s.time);t.length>0&&this._disposedModelsHeapSize>e;){const i=t.shift();this._removeDisposedModel(i.uri),i.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(i.initialUndoRedoSnapshot)}}}_createModelData(e,t,i,s){const o=this.getCreationOptions(t,i,s),r=new Th(e,t,o,i,this._undoRedoService,this._languageService,this._languageConfigurationService);if(i&&this._disposedModels.has(q_(i))){const c=this._removeDisposedModel(i),d=this._undoRedoService.getElements(i),u=this._getSHA1Computer(),h=u.canComputeSHA1(r)?u.computeSHA1(r)===c.sha1:!1;if(h||c.sharesUndoRedoStack){for(const f of d.past)Af(f)&&f.matchesResource(i)&&f.setModel(r);for(const f of d.future)Af(f)&&f.matchesResource(i)&&f.setModel(r);this._undoRedoService.setElementsValidFlag(i,!0,f=>Af(f)&&f.matchesResource(i)),h&&(r._overwriteVersionId(c.versionId),r._overwriteAlternativeVersionId(c.alternativeVersionId),r._overwriteInitialUndoRedoSnapshot(c.initialUndoRedoSnapshot))}else c.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(c.initialUndoRedoSnapshot)}const a=q_(r.uri);if(this._models[a])throw new Error("ModelService: Cannot add model because it already exists!");const l=new lze(r,c=>this._onWillDispose(c),(c,d)=>this._onDidChangeLanguage(c,d));return this._models[a]=l,l}createModel(e,t,i,s=!1){let o;return t?o=this._createModelData(e,t,i,s):o=this._createModelData(e,bl,i,s),this._onModelAdded.fire(o.model),o.model}getModels(){const e=[],t=Object.keys(this._models);for(let i=0,s=t.length;i0||c.future.length>0){for(const d of c.past)Af(d)&&d.matchesResource(e.uri)&&(o=!0,r+=d.heapSize(e.uri),d.setModel(e.uri));for(const d of c.future)Af(d)&&d.matchesResource(e.uri)&&(o=!0,r+=d.heapSize(e.uri),d.setModel(e.uri))}}const a=i1.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK,l=this._getSHA1Computer();if(o)if(!s&&(r>a||!l.canComputeSHA1(e))){const c=i.model.getInitialUndoRedoSnapshot();c!==null&&this._undoRedoService.restoreSnapshot(c)}else this._ensureDisposedModelsHeapSize(a-r),this._undoRedoService.setElementsValidFlag(e.uri,!1,c=>Af(c)&&c.matchesResource(e.uri)),this._insertDisposedModel(new dze(e.uri,i.model.getInitialUndoRedoSnapshot(),Date.now(),s,r,l.computeSHA1(e),e.getVersionId(),e.getAlternativeVersionId()));else if(!s){const c=i.model.getInitialUndoRedoSnapshot();c!==null&&this._undoRedoService.restoreSnapshot(c)}delete this._models[t],i.dispose(),delete this._modelCreationOptionsByLanguageAndResource[e.getLanguageId()+e.uri],this._onModelRemoved.fire(e)}_onDidChangeLanguage(e,t){const i=t.oldLanguage,s=e.getLanguageId(),o=this.getCreationOptions(i,e.uri,e.isForSimpleWidget),r=this.getCreationOptions(s,e.uri,e.isForSimpleWidget);i1._setModelOptionsForModel(e,r,o),this._onModelModeChanged.fire({model:e,oldLanguageId:i})}_getSHA1Computer(){return new aP}};NA.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK=20*1024*1024;NA=i1=aze([Uy(0,qt),Uy(1,Tle),Uy(2,zM),Uy(3,An),Uy(4,gn)],NA);class aP{canComputeSHA1(e){return e.getValueLength()<=aP.MAX_MODEL_SIZE}computeSHA1(e){const t=new cM,i=e.createSnapshot();let s;for(;s=i.read();)t.update(s);return t.digest()}}aP.MAX_MODEL_SIZE=10*1024*1024;var V9;(function(n){n[n.PRESERVE=0]="PRESERVE",n[n.LAST=1]="LAST"})(V9||(V9={}));const ib={Quickaccess:"workbench.contributions.quickaccess"};class uze{constructor(){this.providers=[],this.defaultProvider=void 0}registerQuickAccessProvider(e){return e.prefix.length===0?this.defaultProvider=e:this.providers.push(e),this.providers.sort((t,i)=>i.prefix.length-t.prefix.length),dt(()=>{this.providers.splice(this.providers.indexOf(e),1),this.defaultProvider===e&&(this.defaultProvider=void 0)})}getQuickAccessProviders(){return tu([this.defaultProvider,...this.providers])}getQuickAccessProvider(e){return e&&this.providers.find(i=>e.startsWith(i.prefix))||void 0||this.defaultProvider}}Un.add(ib.Quickaccess,new uze);const hze={ctrlCmd:!1,alt:!1};var JC;(function(n){n[n.Blur=1]="Blur",n[n.Gesture=2]="Gesture",n[n.Other=3]="Other"})(JC||(JC={}));var Ed;(function(n){n[n.NONE=0]="NONE",n[n.FIRST=1]="FIRST",n[n.SECOND=2]="SECOND",n[n.LAST=3]="LAST"})(Ed||(Ed={}));var _n;(function(n){n[n.First=1]="First",n[n.Second=2]="Second",n[n.Last=3]="Last",n[n.Next=4]="Next",n[n.Previous=5]="Previous",n[n.NextPage=6]="NextPage",n[n.PreviousPage=7]="PreviousPage",n[n.NextSeparator=8]="NextSeparator",n[n.PreviousSeparator=9]="PreviousSeparator"})(_n||(_n={}));const Cc=Jt("quickInputService");var fze=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},EJ=function(n,e){return function(t,i){e(t,i,n)}};let z9=class extends ne{constructor(e,t){super(),this.quickInputService=e,this.instantiationService=t,this.registry=Un.as(ib.Quickaccess),this.mapProviderToDescriptor=new Map,this.lastAcceptedPickerValues=new Map,this.visibleQuickAccess=void 0}show(e="",t){this.doShowOrPick(e,!1,t)}doShowOrPick(e,t,i){var s,o,r,a;const[l,c]=this.getOrInstantiateProvider(e,i==null?void 0:i.enabledProviderPrefixes),d=this.visibleQuickAccess,u=d==null?void 0:d.descriptor;if(d&&c&&u===c){e!==c.prefix&&!(i!=null&&i.preserveValue)&&(d.picker.value=e),this.adjustValueSelection(d.picker,c,i);return}if(c&&!(i!=null&&i.preserveValue)){let w;if(d&&u&&u!==c){const y=d.value.substr(u.prefix.length);y&&(w=`${c.prefix}${y}`)}if(!w){const y=l==null?void 0:l.defaultFilterValue;y===V9.LAST?w=this.lastAcceptedPickerValues.get(c):typeof y=="string"&&(w=`${c.prefix}${y}`)}typeof w=="string"&&(e=w)}const h=(s=d==null?void 0:d.picker)===null||s===void 0?void 0:s.valueSelection,f=(o=d==null?void 0:d.picker)===null||o===void 0?void 0:o.value,g=new be,p=g.add(this.quickInputService.createQuickPick());p.value=e,this.adjustValueSelection(p,c,i),p.placeholder=(r=i==null?void 0:i.placeholder)!==null&&r!==void 0?r:c==null?void 0:c.placeholder,p.quickNavigate=i==null?void 0:i.quickNavigateConfiguration,p.hideInput=!!p.quickNavigate&&!d,(typeof(i==null?void 0:i.itemActivation)=="number"||i!=null&&i.quickNavigateConfiguration)&&(p.itemActivation=(a=i==null?void 0:i.itemActivation)!==null&&a!==void 0?a:Ed.SECOND),p.contextKey=c==null?void 0:c.contextKey,p.filterValue=w=>w.substring(c?c.prefix.length:0);let _;t&&(_=new hD,g.add(Ae.once(p.onWillAccept)(w=>{w.veto(),p.hide()}))),g.add(this.registerPickerListeners(p,l,c,e,i));const b=g.add(new $n);if(l&&g.add(l.provide(p,b.token,i==null?void 0:i.providerOptions)),Ae.once(p.onDidHide)(()=>{p.selectedItems.length===0&&b.cancel(),g.dispose(),_==null||_.complete(p.selectedItems.slice(0))}),p.show(),h&&f===e&&(p.valueSelection=h),t)return _==null?void 0:_.p}adjustValueSelection(e,t,i){var s;let o;i!=null&&i.preserveValue?o=[e.value.length,e.value.length]:o=[(s=t==null?void 0:t.prefix.length)!==null&&s!==void 0?s:0,e.value.length],e.valueSelection=o}registerPickerListeners(e,t,i,s,o){const r=new be,a=this.visibleQuickAccess={picker:e,descriptor:i,value:s};return r.add(dt(()=>{a===this.visibleQuickAccess&&(this.visibleQuickAccess=void 0)})),r.add(e.onDidChangeValue(l=>{const[c]=this.getOrInstantiateProvider(l,o==null?void 0:o.enabledProviderPrefixes);c!==t?this.show(l,{enabledProviderPrefixes:o==null?void 0:o.enabledProviderPrefixes,preserveValue:!0,providerOptions:o==null?void 0:o.providerOptions}):a.value=l})),i&&r.add(e.onDidAccept(()=>{this.lastAcceptedPickerValues.set(i,e.value)})),r}getOrInstantiateProvider(e,t){const i=this.registry.getQuickAccessProvider(e);if(!i||t&&!(t!=null&&t.includes(i.prefix)))return[void 0,void 0];let s=this.mapProviderToDescriptor.get(i);return s||(s=this.instantiationService.createInstance(i.ctor),this.mapProviderToDescriptor.set(i,s)),[s,i]}};z9=fze([EJ(0,Cc),EJ(1,ht)],z9);class Vw extends Il{constructor(e){var t;super(),this._onChange=this._register(new X),this.onChange=this._onChange.event,this._onKeyDown=this._register(new X),this.onKeyDown=this._onKeyDown.event,this._opts=e,this._checked=this._opts.isChecked;const i=["monaco-custom-toggle"];this._opts.icon&&(this._icon=this._opts.icon,i.push(..._t.asClassNameArray(this._icon))),this._opts.actionClassName&&i.push(...this._opts.actionClassName.split(" ")),this._checked&&i.push("checked"),this.domNode=document.createElement("div"),this._hover=this._register(bu().setupUpdatableHover((t=e.hoverDelegate)!==null&&t!==void 0?t:Ur("mouse"),this.domNode,this._opts.title)),this.domNode.classList.add(...i),this._opts.notFocusable||(this.domNode.tabIndex=0),this.domNode.setAttribute("role","checkbox"),this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.setAttribute("aria-label",this._opts.title),this.applyStyles(),this.onclick(this.domNode,s=>{this.enabled&&(this.checked=!this._checked,this._onChange.fire(!1),s.preventDefault())}),this._register(this.ignoreGesture(this.domNode)),this.onkeydown(this.domNode,s=>{if(s.keyCode===10||s.keyCode===3){this.checked=!this._checked,this._onChange.fire(!0),s.preventDefault(),s.stopPropagation();return}this._onKeyDown.fire(s)})}get enabled(){return this.domNode.getAttribute("aria-disabled")!=="true"}focus(){this.domNode.focus()}get checked(){return this._checked}set checked(e){this._checked=e,this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.classList.toggle("checked",this._checked),this.applyStyles()}width(){return 22}applyStyles(){this.domNode&&(this.domNode.style.borderColor=this._checked&&this._opts.inputActiveOptionBorder||"",this.domNode.style.color=this._checked&&this._opts.inputActiveOptionForeground||"inherit",this.domNode.style.backgroundColor=this._checked&&this._opts.inputActiveOptionBackground||"")}enable(){this.domNode.setAttribute("aria-disabled",String(!1))}disable(){this.domNode.setAttribute("aria-disabled",String(!0))}}var gze=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o};class Gde{constructor(e){this.nodes=e}toString(){return this.nodes.map(e=>typeof e=="string"?e:e.label).join("")}}gze([gs],Gde.prototype,"toString",null);const pze=/\[([^\]]+)\]\(((?:https?:\/\/|command:|file:)[^\)\s]+)(?: (["'])(.+?)(\3))?\)/gi;function mze(n){const e=[];let t=0,i;for(;i=pze.exec(n);){i.index-t>0&&e.push(n.substring(t,i.index));const[,s,o,,r]=i;r?e.push({label:s,href:o,title:r}):e.push({label:s,href:o}),t=i.index+i[0].length}return t{TMe(f)&&ii.stop(f,!0),t.callback(o.href)},c=t.disposables.add(new ei(a,Le.CLICK)).event,d=t.disposables.add(new ei(a,Le.KEY_DOWN)).event,u=Ae.chain(d,f=>f.filter(g=>{const p=new ln(g);return p.equals(10)||p.equals(3)}));t.disposables.add(hn.addTarget(a));const h=t.disposables.add(new ei(a,fn.Tap)).event;Ae.any(c,h,u)(l,null,t.disposables),e.appendChild(a)}}var Cze=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},TJ=function(n,e){return function(t,i){e(t,i,n)}};const Zde="inQuickInput",wze=new He(Zde,!1,v("inQuickInput","Whether keyboard focus is inside the quick input control")),yze=pe.has(Zde),Yde="quickInputType",Sze=new He(Yde,void 0,v("quickInputType","The type of the currently visible quick input")),Xde="cursorAtEndOfQuickInputBox",xze=new He(Xde,!1,v("cursorAtEndOfQuickInputBox","Whether the cursor in the quick input is at the end of the input box")),Lze=pe.has(Xde),$9={iconClass:_t.asClassName(Te.quickInputBack),tooltip:v("quickInput.back","Back")};class PD extends ne{constructor(e){super(),this.ui=e,this._widgetUpdated=!1,this.visible=!1,this._enabled=!0,this._busy=!1,this._ignoreFocusOut=!1,this._buttons=[],this.buttonsUpdated=!1,this._toggles=[],this.togglesUpdated=!1,this.noValidationMessage=PD.noPromptMessage,this._severity=us.Ignore,this.onDidTriggerButtonEmitter=this._register(new X),this.onDidHideEmitter=this._register(new X),this.onWillHideEmitter=this._register(new X),this.onDisposeEmitter=this._register(new X),this.visibleDisposables=this._register(new be),this.onDidHide=this.onDidHideEmitter.event}get title(){return this._title}set title(e){this._title=e,this.update()}get description(){return this._description}set description(e){this._description=e,this.update()}get step(){return this._steps}set step(e){this._steps=e,this.update()}get totalSteps(){return this._totalSteps}set totalSteps(e){this._totalSteps=e,this.update()}get enabled(){return this._enabled}set enabled(e){this._enabled=e,this.update()}get contextKey(){return this._contextKey}set contextKey(e){this._contextKey=e,this.update()}get busy(){return this._busy}set busy(e){this._busy=e,this.update()}get ignoreFocusOut(){return this._ignoreFocusOut}set ignoreFocusOut(e){const t=this._ignoreFocusOut!==e&&!iu;this._ignoreFocusOut=e&&!iu,t&&this.update()}get buttons(){return this._buttons}set buttons(e){this._buttons=e,this.buttonsUpdated=!0,this.update()}get toggles(){return this._toggles}set toggles(e){this._toggles=e??[],this.togglesUpdated=!0,this.update()}get validationMessage(){return this._validationMessage}set validationMessage(e){this._validationMessage=e,this.update()}get severity(){return this._severity}set severity(e){this._severity=e,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.onDidTriggerButton(e=>{this.buttons.indexOf(e)!==-1&&this.onDidTriggerButtonEmitter.fire(e)})),this.ui.show(this),this.visible=!0,this._lastValidationMessage=void 0,this._lastSeverity=void 0,this.buttons.length&&(this.buttonsUpdated=!0),this.toggles.length&&(this.togglesUpdated=!0),this.update())}hide(){this.visible&&this.ui.hide()}didHide(e=JC.Other){this.visible=!1,this.visibleDisposables.clear(),this.onDidHideEmitter.fire({reason:e})}willHide(e=JC.Other){this.onWillHideEmitter.fire({reason:e})}update(){var e,t;if(!this.visible)return;const i=this.getTitle();i&&this.ui.title.textContent!==i?this.ui.title.textContent=i:!i&&this.ui.title.innerHTML!==" "&&(this.ui.title.innerText=" ");const s=this.getDescription();if(this.ui.description1.textContent!==s&&(this.ui.description1.textContent=s),this.ui.description2.textContent!==s&&(this.ui.description2.textContent=s),this._widgetUpdated&&(this._widgetUpdated=!1,this._widget?yo(this.ui.widget,this._widget):yo(this.ui.widget)),this.busy&&!this.busyDelay&&(this.busyDelay=new cd,this.busyDelay.setIfNotSet(()=>{this.visible&&this.ui.progressBar.infinite()},800)),!this.busy&&this.busyDelay&&(this.ui.progressBar.stop(),this.busyDelay.cancel(),this.busyDelay=void 0),this.buttonsUpdated){this.buttonsUpdated=!1,this.ui.leftActionBar.clear();const r=this.buttons.filter(l=>l===$9).map((l,c)=>AA(l,`id-${c}`,async()=>this.onDidTriggerButtonEmitter.fire(l)));this.ui.leftActionBar.push(r,{icon:!0,label:!1}),this.ui.rightActionBar.clear();const a=this.buttons.filter(l=>l!==$9).map((l,c)=>AA(l,`id-${c}`,async()=>this.onDidTriggerButtonEmitter.fire(l)));this.ui.rightActionBar.push(a,{icon:!0,label:!1})}if(this.togglesUpdated){this.togglesUpdated=!1;const r=(t=(e=this.toggles)===null||e===void 0?void 0:e.filter(a=>a instanceof Vw))!==null&&t!==void 0?t:[];this.ui.inputBox.toggles=r}this.ui.ignoreFocusOut=this.ignoreFocusOut,this.ui.setEnabled(this.enabled),this.ui.setContextKey(this.contextKey);const o=this.validationMessage||this.noValidationMessage;this._lastValidationMessage!==o&&(this._lastValidationMessage=o,yo(this.ui.message),bze(o,this.ui.message,{callback:r=>{this.ui.linkOpenerDelegate(r)},disposables:this.visibleDisposables})),this._lastSeverity!==this.severity&&(this._lastSeverity=this.severity,this.showMessageDecoration(this.severity))}getTitle(){return this.title&&this.step?`${this.title} (${this.getSteps()})`:this.title?this.title:this.step?this.getSteps():""}getDescription(){return this.description||""}getSteps(){return this.step&&this.totalSteps?v("quickInput.steps","{0}/{1}",this.step,this.totalSteps):this.step?String(this.step):""}showMessageDecoration(e){if(this.ui.inputBox.showDecoration(e),e!==us.Ignore){const t=this.ui.inputBox.stylesForType(e);this.ui.message.style.color=t.foreground?`${t.foreground}`:"",this.ui.message.style.backgroundColor=t.background?`${t.background}`:"",this.ui.message.style.border=t.border?`1px solid ${t.border}`:"",this.ui.message.style.marginBottom="-2px"}else this.ui.message.style.color="",this.ui.message.style.backgroundColor="",this.ui.message.style.border="",this.ui.message.style.marginBottom=""}dispose(){this.hide(),this.onDisposeEmitter.fire(),super.dispose()}}PD.noPromptMessage=v("inputModeEntry","Press 'Enter' to confirm your input or 'Escape' to cancel");class ZL extends PD{constructor(){super(...arguments),this._value="",this.onDidChangeValueEmitter=this._register(new X),this.onWillAcceptEmitter=this._register(new X),this.onDidAcceptEmitter=this._register(new X),this.onDidCustomEmitter=this._register(new X),this._items=[],this.itemsUpdated=!1,this._canSelectMany=!1,this._canAcceptInBackground=!1,this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._matchOnLabelMode="fuzzy",this._sortByLabel=!0,this._keepScrollPosition=!1,this._itemActivation=Ed.FIRST,this._activeItems=[],this.activeItemsUpdated=!1,this.activeItemsToConfirm=[],this.onDidChangeActiveEmitter=this._register(new X),this._selectedItems=[],this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=[],this.onDidChangeSelectionEmitter=this._register(new X),this.onDidTriggerItemButtonEmitter=this._register(new X),this.onDidTriggerSeparatorButtonEmitter=this._register(new X),this.valueSelectionUpdated=!0,this._ok="default",this._customButton=!1,this._focusEventBufferer=new sM,this.type="quickPick",this.filterValue=e=>e,this.onDidChangeValue=this.onDidChangeValueEmitter.event,this.onWillAccept=this.onWillAcceptEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event,this.onDidChangeActive=this.onDidChangeActiveEmitter.event,this.onDidChangeSelection=this.onDidChangeSelectionEmitter.event,this.onDidTriggerItemButton=this.onDidTriggerItemButtonEmitter.event,this.onDidTriggerSeparatorButton=this.onDidTriggerSeparatorButtonEmitter.event}get quickNavigate(){return this._quickNavigate}set quickNavigate(e){this._quickNavigate=e,this.update()}get value(){return this._value}set value(e){this.doSetValue(e)}doSetValue(e,t){this._value!==e&&(this._value=e,t||this.update(),this.visible&&this.ui.list.filter(this.filterValue(this._value))&&this.trySelectFirst(),this.onDidChangeValueEmitter.fire(this._value))}set ariaLabel(e){this._ariaLabel=e,this.update()}get ariaLabel(){return this._ariaLabel}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.update()}get items(){return this._items}get scrollTop(){return this.ui.list.scrollTop}set scrollTop(e){this.ui.list.scrollTop=e}set items(e){this._items=e,this.itemsUpdated=!0,this.update()}get canSelectMany(){return this._canSelectMany}set canSelectMany(e){this._canSelectMany=e,this.update()}get canAcceptInBackground(){return this._canAcceptInBackground}set canAcceptInBackground(e){this._canAcceptInBackground=e}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(e){this._matchOnDescription=e,this.update()}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(e){this._matchOnDetail=e,this.update()}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(e){this._matchOnLabel=e,this.update()}get matchOnLabelMode(){return this._matchOnLabelMode}set matchOnLabelMode(e){this._matchOnLabelMode=e,this.update()}get sortByLabel(){return this._sortByLabel}set sortByLabel(e){this._sortByLabel=e,this.update()}get keepScrollPosition(){return this._keepScrollPosition}set keepScrollPosition(e){this._keepScrollPosition=e}get itemActivation(){return this._itemActivation}set itemActivation(e){this._itemActivation=e}get activeItems(){return this._activeItems}set activeItems(e){this._activeItems=e,this.activeItemsUpdated=!0,this.update()}get selectedItems(){return this._selectedItems}set selectedItems(e){this._selectedItems=e,this.selectedItemsUpdated=!0,this.update()}get keyMods(){return this._quickNavigate?hze:this.ui.keyMods}get valueSelection(){const e=this.ui.inputBox.getSelection();if(e)return[e.start,e.end]}set valueSelection(e){this._valueSelection=e,this.valueSelectionUpdated=!0,this.update()}get customButton(){return this._customButton}set customButton(e){this._customButton=e,this.update()}get customLabel(){return this._customButtonLabel}set customLabel(e){this._customButtonLabel=e,this.update()}get customHover(){return this._customButtonHover}set customHover(e){this._customButtonHover=e,this.update()}get ok(){return this._ok}set ok(e){this._ok=e,this.update()}get hideInput(){return!!this._hideInput}set hideInput(e){this._hideInput=e,this.update()}trySelectFirst(){this.canSelectMany||this.ui.list.focus(_n.First)}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(e=>{this.doSetValue(e,!0)})),this.visibleDisposables.add(this.ui.onDidAccept(()=>{this.canSelectMany?this.ui.list.getCheckedElements().length||(this._selectedItems=[],this.onDidChangeSelectionEmitter.fire(this.selectedItems)):this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems)),this.handleAccept(!1)})),this.visibleDisposables.add(this.ui.onDidCustom(()=>{this.onDidCustomEmitter.fire()})),this.visibleDisposables.add(this._focusEventBufferer.wrapEvent(this.ui.list.onDidChangeFocus,(e,t)=>t)(e=>{this.activeItemsUpdated||this.activeItemsToConfirm!==this._activeItems&&zn(e,this._activeItems,(t,i)=>t===i)||(this._activeItems=e,this.onDidChangeActiveEmitter.fire(e))})),this.visibleDisposables.add(this.ui.list.onDidChangeSelection(({items:e,event:t})=>{if(this.canSelectMany){e.length&&this.ui.list.setSelectedElements([]);return}this.selectedItemsToConfirm!==this._selectedItems&&zn(e,this._selectedItems,(i,s)=>i===s)||(this._selectedItems=e,this.onDidChangeSelectionEmitter.fire(e),e.length&&this.handleAccept(sz(t)&&t.button===1))})),this.visibleDisposables.add(this.ui.list.onChangedCheckedElements(e=>{this.canSelectMany&&(this.selectedItemsToConfirm!==this._selectedItems&&zn(e,this._selectedItems,(t,i)=>t===i)||(this._selectedItems=e,this.onDidChangeSelectionEmitter.fire(e)))})),this.visibleDisposables.add(this.ui.list.onButtonTriggered(e=>this.onDidTriggerItemButtonEmitter.fire(e))),this.visibleDisposables.add(this.ui.list.onSeparatorButtonTriggered(e=>this.onDidTriggerSeparatorButtonEmitter.fire(e))),this.visibleDisposables.add(this.registerQuickNavigation()),this.valueSelectionUpdated=!0),super.show()}handleAccept(e){let t=!1;this.onWillAcceptEmitter.fire({veto:()=>t=!0}),t||this.onDidAcceptEmitter.fire({inBackground:e})}registerQuickNavigation(){return ce(this.ui.container,Le.KEY_UP,e=>{if(this.canSelectMany||!this._quickNavigate)return;const t=new ln(e),i=t.keyCode;this._quickNavigate.keybindings.some(r=>{const a=r.getChords();return a.length>1?!1:a[0].shiftKey&&i===4?!(t.ctrlKey||t.altKey||t.metaKey):!!(a[0].altKey&&i===6||a[0].ctrlKey&&i===5||a[0].metaKey&&i===57)})&&(this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(!1)),this._quickNavigate=void 0)})}update(){if(!this.visible)return;const e=this.keepScrollPosition?this.scrollTop:0,t=!!this.description,i={title:!!this.title||!!this.step||!!this.buttons.length,description:t,checkAll:this.canSelectMany&&!this._hideCheckAll,checkBox:this.canSelectMany,inputBox:!this._hideInput,progressBar:!this._hideInput||t,visibleCount:!0,count:this.canSelectMany&&!this._hideCountBadge,ok:this.ok==="default"?this.canSelectMany:this.ok,list:!0,message:!!this.validationMessage,customButton:this.customButton};this.ui.setVisibilities(i),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||"");let s=this.ariaLabel;!s&&i.inputBox&&(s=this.placeholder||ZL.DEFAULT_ARIA_LABEL,this.title&&(s+=` - ${this.title}`)),this.ui.list.ariaLabel!==s&&(this.ui.list.ariaLabel=s??null),this.ui.list.matchOnDescription=this.matchOnDescription,this.ui.list.matchOnDetail=this.matchOnDetail,this.ui.list.matchOnLabel=this.matchOnLabel,this.ui.list.matchOnLabelMode=this.matchOnLabelMode,this.ui.list.sortByLabel=this.sortByLabel,this.itemsUpdated&&(this.itemsUpdated=!1,this._focusEventBufferer.bufferEvents(()=>{switch(this.ui.list.setElements(this.items),this.ui.list.shouldLoop=!this.canSelectMany,this.ui.list.filter(this.filterValue(this.ui.inputBox.value)),this.ui.checkAll.checked=this.ui.list.getAllVisibleChecked(),this.ui.visibleCount.setCount(this.ui.list.getVisibleCount()),this.ui.count.setCount(this.ui.list.getCheckedCount()),this._itemActivation){case Ed.NONE:this._itemActivation=Ed.FIRST;break;case Ed.SECOND:this.ui.list.focus(_n.Second),this._itemActivation=Ed.FIRST;break;case Ed.LAST:this.ui.list.focus(_n.Last),this._itemActivation=Ed.FIRST;break;default:this.trySelectFirst();break}})),this.ui.container.classList.contains("show-checkboxes")!==!!this.canSelectMany&&(this.canSelectMany?this.ui.list.clearFocus():this.trySelectFirst()),this.activeItemsUpdated&&(this.activeItemsUpdated=!1,this.activeItemsToConfirm=this._activeItems,this.ui.list.setFocusedElements(this.activeItems),this.activeItemsToConfirm===this._activeItems&&(this.activeItemsToConfirm=null)),this.selectedItemsUpdated&&(this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=this._selectedItems,this.canSelectMany?this.ui.list.setCheckedElements(this.selectedItems):this.ui.list.setSelectedElements(this.selectedItems),this.selectedItemsToConfirm===this._selectedItems&&(this.selectedItemsToConfirm=null)),this.ui.customButton.label=this.customLabel||"",this.ui.customButton.element.title=this.customHover||"",i.inputBox||(this.ui.list.domFocus(),this.canSelectMany&&this.ui.list.focus(_n.First)),this.keepScrollPosition&&(this.scrollTop=e)}focus(e){this.ui.list.focus(e),this.canSelectMany&&this.ui.list.domFocus()}accept(e){e&&!this._canAcceptInBackground||this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(e??!1))}}ZL.DEFAULT_ARIA_LABEL=v("quickInputBox.ariaLabel","Type to narrow down results.");let kze=class extends PD{constructor(){super(...arguments),this._value="",this.valueSelectionUpdated=!0,this._password=!1,this.onDidValueChangeEmitter=this._register(new X),this.onDidAcceptEmitter=this._register(new X),this.type="inputBox",this.onDidChangeValue=this.onDidValueChangeEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event}get value(){return this._value}set value(e){this._value=e||"",this.update()}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.update()}get password(){return this._password}set password(e){this._password=e,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(e=>{e!==this.value&&(this._value=e,this.onDidValueChangeEmitter.fire(e))})),this.visibleDisposables.add(this.ui.onDidAccept(()=>this.onDidAcceptEmitter.fire())),this.valueSelectionUpdated=!0),super.show()}update(){if(!this.visible)return;this.ui.container.classList.remove("hidden-input");const e={title:!!this.title||!!this.step||!!this.buttons.length,description:!!this.description||!!this.step,inputBox:!0,message:!0,progressBar:!0};this.ui.setVisibilities(e),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||""),this.ui.inputBox.password!==this.password&&(this.ui.inputBox.password=this.password)}},U9=class extends KC{constructor(e,t){super("element",!1,i=>this.getOverrideOptions(i),e,t)}getOverrideOptions(e){var t;const i=(co(e.content)?(t=e.content.textContent)!==null&&t!==void 0?t:"":typeof e.content=="string"?e.content:e.content.value).includes(` `);return{persistence:{hideOnKeyDown:!1},appearance:{showHoverHint:i,skipFadeInAnimation:!0}}}};U9=Cze([TJ(0,qt),TJ(1,$h)],U9);le.white.toString(),le.white.toString();class RA extends ne{get onDidClick(){return this._onDidClick.event}constructor(e,t){super(),this._label="",this._onDidClick=this._register(new X),this._onDidEscape=this._register(new X),this.options=t,this._element=document.createElement("a"),this._element.classList.add("monaco-button"),this._element.tabIndex=0,this._element.setAttribute("role","button"),this._element.classList.toggle("secondary",!!t.secondary);const i=t.secondary?t.buttonSecondaryBackground:t.buttonBackground,s=t.secondary?t.buttonSecondaryForeground:t.buttonForeground;this._element.style.color=s||"",this._element.style.backgroundColor=i||"",t.supportShortLabel&&(this._labelShortElement=document.createElement("div"),this._labelShortElement.classList.add("monaco-button-label-short"),this._element.appendChild(this._labelShortElement),this._labelElement=document.createElement("div"),this._labelElement.classList.add("monaco-button-label"),this._element.appendChild(this._labelElement),this._element.classList.add("monaco-text-button-with-short-label")),typeof t.title=="string"&&this.setTitle(t.title),typeof t.ariaLabel=="string"&&this._element.setAttribute("aria-label",t.ariaLabel),e.appendChild(this._element),this._register(hn.addTarget(this._element)),[Le.CLICK,fn.Tap].forEach(o=>{this._register(ce(this._element,o,r=>{if(!this.enabled){ii.stop(r);return}this._onDidClick.fire(r)}))}),this._register(ce(this._element,Le.KEY_DOWN,o=>{const r=new ln(o);let a=!1;this.enabled&&(r.equals(3)||r.equals(10))?(this._onDidClick.fire(o),a=!0):r.equals(9)&&(this._onDidEscape.fire(o),this._element.blur(),a=!0),a&&ii.stop(r,!0)})),this._register(ce(this._element,Le.MOUSE_OVER,o=>{this._element.classList.contains("disabled")||this.updateBackground(!0)})),this._register(ce(this._element,Le.MOUSE_OUT,o=>{this.updateBackground(!1)})),this.focusTracker=this._register(ou(this._element)),this._register(this.focusTracker.onDidFocus(()=>{this.enabled&&this.updateBackground(!0)})),this._register(this.focusTracker.onDidBlur(()=>{this.enabled&&this.updateBackground(!1)}))}dispose(){super.dispose(),this._element.remove()}getContentElements(e){const t=[];for(let i of gm(e))if(typeof i=="string"){if(i=i.trim(),i==="")continue;const s=document.createElement("span");s.textContent=i,t.push(s)}else t.push(i);return t}updateBackground(e){let t;this.options.secondary?t=e?this.options.buttonSecondaryHoverBackground:this.options.buttonSecondaryBackground:t=e?this.options.buttonHoverBackground:this.options.buttonBackground,t&&(this._element.style.backgroundColor=t)}get element(){return this._element}set label(e){var t;if(this._label===e||Xd(this._label)&&Xd(e)&&bWe(this._label,e))return;this._element.classList.add("monaco-text-button");const i=this.options.supportShortLabel?this._labelElement:this._element;if(Xd(e)){const o=GM(e,{inline:!0});o.dispose();const r=(t=o.element.querySelector("p"))===null||t===void 0?void 0:t.innerHTML;if(r){const a=Pae(r,{ADD_TAGS:["b","i","u","code","span"],ALLOWED_ATTR:["class"],RETURN_TRUSTED_TYPE:!0});i.innerHTML=a}else yo(i)}else this.options.supportIcons?yo(i,...this.getContentElements(e)):i.textContent=e;let s="";typeof this.options.title=="string"?s=this.options.title:this.options.title&&(s=IWe(e)),this.setTitle(s),typeof this.options.ariaLabel=="string"?this._element.setAttribute("aria-label",this.options.ariaLabel):this.options.ariaLabel&&this._element.setAttribute("aria-label",s),this._label=e}get label(){return this._label}set icon(e){this._element.classList.add(..._t.asClassNameArray(e))}set enabled(e){e?(this._element.classList.remove("disabled"),this._element.setAttribute("aria-disabled",String(!1)),this._element.tabIndex=0):(this._element.classList.add("disabled"),this._element.setAttribute("aria-disabled",String(!0)))}get enabled(){return!this._element.classList.contains("disabled")}setTitle(e){var t;!this._hover&&e!==""?this._hover=this._register(bu().setupUpdatableHover((t=this.options.hoverDelegate)!==null&&t!==void 0?t:Ur("mouse"),this._element,e)):this._hover&&this._hover.update(e)}}class j9{constructor(e,t,i){this.options=t,this.styles=i,this.count=0,this.element=we(e,ke(".monaco-count-badge")),this.countFormat=this.options.countFormat||"{0}",this.titleFormat=this.options.titleFormat||"",this.setCount(this.options.count||0)}setCount(e){this.count=e,this.render()}setTitleFormat(e){this.titleFormat=e,this.render()}render(){var e,t;this.element.textContent=l0(this.countFormat,this.count),this.element.title=l0(this.titleFormat,this.count),this.element.style.backgroundColor=(e=this.styles.badgeBackground)!==null&&e!==void 0?e:"",this.element.style.color=(t=this.styles.badgeForeground)!==null&&t!==void 0?t:"",this.styles.badgeBorder&&(this.element.style.border=`1px solid ${this.styles.badgeBorder}`)}}const NJ="done",AJ="active",B5="infinite",W5="infinite-long-running",RJ="discrete";class lP extends ne{constructor(e,t){super(),this.progressSignal=this._register(new Qs),this.workedVal=0,this.showDelayedScheduler=this._register(new Xi(()=>ka(this.element),0)),this.longRunningScheduler=this._register(new Xi(()=>this.infiniteLongRunning(),lP.LONG_RUNNING_INFINITE_THRESHOLD)),this.create(e,t)}create(e,t){this.element=document.createElement("div"),this.element.classList.add("monaco-progress-container"),this.element.setAttribute("role","progressbar"),this.element.setAttribute("aria-valuemin","0"),e.appendChild(this.element),this.bit=document.createElement("div"),this.bit.classList.add("progress-bit"),this.bit.style.backgroundColor=(t==null?void 0:t.progressBarBackground)||"#0E70C0",this.element.appendChild(this.bit)}off(){this.bit.style.width="inherit",this.bit.style.opacity="1",this.element.classList.remove(AJ,B5,W5,RJ),this.workedVal=0,this.totalWork=void 0,this.longRunningScheduler.cancel(),this.progressSignal.clear()}stop(){return this.doDone(!1)}doDone(e){return this.element.classList.add(NJ),this.element.classList.contains(B5)?(this.bit.style.opacity="0",e?setTimeout(()=>this.off(),200):this.off()):(this.bit.style.width="inherit",e?setTimeout(()=>this.off(),200):this.off()),this}infinite(){return this.bit.style.width="2%",this.bit.style.opacity="1",this.element.classList.remove(RJ,NJ,W5),this.element.classList.add(AJ,B5),this.longRunningScheduler.schedule(),this}infiniteLongRunning(){this.element.classList.add(W5)}getContainer(){return this.element}}lP.LONG_RUNNING_INFINITE_THRESHOLD=1e4;const Dze=v("caseDescription","Match Case"),Ize=v("wordsDescription","Match Whole Word"),Eze=v("regexDescription","Use Regular Expression");class Qde extends Vw{constructor(e){var t;super({icon:Te.caseSensitive,title:Dze+e.appendTitle,isChecked:e.isChecked,hoverDelegate:(t=e.hoverDelegate)!==null&&t!==void 0?t:Ur("element"),inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class Jde extends Vw{constructor(e){var t;super({icon:Te.wholeWord,title:Ize+e.appendTitle,isChecked:e.isChecked,hoverDelegate:(t=e.hoverDelegate)!==null&&t!==void 0?t:Ur("element"),inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class eue extends Vw{constructor(e){var t;super({icon:Te.regex,title:Eze+e.appendTitle,isChecked:e.isChecked,hoverDelegate:(t=e.hoverDelegate)!==null&&t!==void 0?t:Ur("element"),inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class Tze{constructor(e,t=0,i=e.length,s=t-1){this.items=e,this.start=t,this.end=i,this.index=s}current(){return this.index===this.start-1||this.index===this.end?null:this.items[this.index]}next(){return this.index=Math.min(this.index+1,this.end),this.current()}previous(){return this.index=Math.max(this.index-1,this.start-1),this.current()}first(){return this.index=this.start,this.current()}last(){return this.index=this.end-1,this.current()}}class Nze{constructor(e=[],t=10){this._initialize(e),this._limit=t,this._onChange()}getHistory(){return this._elements}add(e){this._history.delete(e),this._history.add(e),this._onChange()}next(){return this._navigator.next()}previous(){return this._currentPosition()!==0?this._navigator.previous():null}current(){return this._navigator.current()}first(){return this._navigator.first()}last(){return this._navigator.last()}isLast(){return this._currentPosition()>=this._elements.length-1}isNowhere(){return this._navigator.current()===null}has(e){return this._history.has(e)}_onChange(){this._reduceToLimit();const e=this._elements;this._navigator=new Tze(e,0,e.length,e.length)}_reduceToLimit(){const e=this._elements;e.length>this._limit&&this._initialize(e.slice(e.length-this._limit))}_currentPosition(){const e=this._navigator.current();return e?this._elements.indexOf(e):-1}_initialize(e){this._history=new Set;for(const t of e)this._history.add(t)}get _elements(){const e=[];return this._history.forEach(t=>e.push(t)),e}}const jy=ke;class Aze extends Il{constructor(e,t,i){var s;super(),this.state="idle",this.maxHeight=Number.POSITIVE_INFINITY,this._onDidChange=this._register(new X),this.onDidChange=this._onDidChange.event,this._onDidHeightChange=this._register(new X),this.onDidHeightChange=this._onDidHeightChange.event,this.contextViewProvider=t,this.options=i,this.message=null,this.placeholder=this.options.placeholder||"",this.tooltip=(s=this.options.tooltip)!==null&&s!==void 0?s:this.placeholder||"",this.ariaLabel=this.options.ariaLabel||"",this.options.validationOptions&&(this.validation=this.options.validationOptions.validation),this.element=we(e,jy(".monaco-inputbox.idle"));const o=this.options.flexibleHeight?"textarea":"input",r=we(this.element,jy(".ibwrapper"));if(this.input=we(r,jy(o+".input.empty")),this.input.setAttribute("autocorrect","off"),this.input.setAttribute("autocapitalize","off"),this.input.setAttribute("spellcheck","false"),this.onfocus(this.input,()=>this.element.classList.add("synthetic-focus")),this.onblur(this.input,()=>this.element.classList.remove("synthetic-focus")),this.options.flexibleHeight){this.maxHeight=typeof this.options.flexibleMaxHeight=="number"?this.options.flexibleMaxHeight:Number.POSITIVE_INFINITY,this.mirror=we(r,jy("div.mirror")),this.mirror.innerText=" ",this.scrollableElement=new tce(this.element,{vertical:1}),this.options.flexibleWidth&&(this.input.setAttribute("wrap","off"),this.mirror.style.whiteSpace="pre",this.mirror.style.wordWrap="initial"),we(e,this.scrollableElement.getDomNode()),this._register(this.scrollableElement),this._register(this.scrollableElement.onScroll(c=>this.input.scrollTop=c.scrollTop));const a=this._register(new ei(e.ownerDocument,"selectionchange")),l=Ae.filter(a.event,()=>{const c=e.ownerDocument.getSelection();return(c==null?void 0:c.anchorNode)===r});this._register(l(this.updateScrollDimensions,this)),this._register(this.onDidHeightChange(this.updateScrollDimensions,this))}else this.input.type=this.options.type||"text",this.input.setAttribute("wrap","off");this.ariaLabel&&this.input.setAttribute("aria-label",this.ariaLabel),this.placeholder&&!this.options.showPlaceholderOnFocus&&this.setPlaceHolder(this.placeholder),this.tooltip&&this.setTooltip(this.tooltip),this.oninput(this.input,()=>this.onValueChange()),this.onblur(this.input,()=>this.onBlur()),this.onfocus(this.input,()=>this.onFocus()),this._register(this.ignoreGesture(this.input)),setTimeout(()=>this.updateMirror(),0),this.options.actions&&(this.actionbar=this._register(new hc(this.element)),this.actionbar.push(this.options.actions,{icon:!0,label:!1})),this.applyStyles()}onBlur(){this._hideMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder","")}onFocus(){this._showMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder",this.placeholder||"")}setPlaceHolder(e){this.placeholder=e,this.input.setAttribute("placeholder",e)}setTooltip(e){this.tooltip=e,this.hover?this.hover.update(e):this.hover=this._register(bu().setupUpdatableHover(Ur("mouse"),this.input,e))}get inputElement(){return this.input}get value(){return this.input.value}set value(e){this.input.value!==e&&(this.input.value=e,this.onValueChange())}get height(){return typeof this.cachedHeight=="number"?this.cachedHeight:Zf(this.element)}focus(){this.input.focus()}blur(){this.input.blur()}hasFocus(){return hM(this.input)}select(e=null){this.input.select(),e&&(this.input.setSelectionRange(e.start,e.end),e.end===this.input.value.length&&(this.input.scrollLeft=this.input.scrollWidth))}isSelectionAtEnd(){return this.input.selectionEnd===this.input.value.length&&this.input.selectionStart===this.input.selectionEnd}getSelection(){var e;const t=this.input.selectionStart;if(t===null)return null;const i=(e=this.input.selectionEnd)!==null&&e!==void 0?e:t;return{start:t,end:i}}enable(){this.input.removeAttribute("disabled")}disable(){this.blur(),this.input.disabled=!0,this._hideMessage()}set paddingRight(e){this.input.style.width=`calc(100% - ${e}px)`,this.mirror&&(this.mirror.style.paddingRight=e+"px")}updateScrollDimensions(){if(typeof this.cachedContentHeight!="number"||typeof this.cachedHeight!="number"||!this.scrollableElement)return;const e=this.cachedContentHeight,t=this.cachedHeight,i=this.input.scrollTop;this.scrollableElement.setScrollDimensions({scrollHeight:e,height:t}),this.scrollableElement.setScrollPosition({scrollTop:i})}showMessage(e,t){if(this.state==="open"&&vl(this.message,e))return;this.message=e,this.element.classList.remove("idle"),this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add(this.classForType(e.type));const i=this.stylesForType(this.message.type);this.element.style.border=`1px solid ${mg(i.border,"transparent")}`,this.message.content&&(this.hasFocus()||t)&&this._showMessage()}hideMessage(){this.message=null,this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add("idle"),this._hideMessage(),this.applyStyles()}validate(){let e=null;return this.validation&&(e=this.validation(this.value),e?(this.inputElement.setAttribute("aria-invalid","true"),this.showMessage(e)):this.inputElement.hasAttribute("aria-invalid")&&(this.inputElement.removeAttribute("aria-invalid"),this.hideMessage())),e==null?void 0:e.type}stylesForType(e){const t=this.options.inputBoxStyles;switch(e){case 1:return{border:t.inputValidationInfoBorder,background:t.inputValidationInfoBackground,foreground:t.inputValidationInfoForeground};case 2:return{border:t.inputValidationWarningBorder,background:t.inputValidationWarningBackground,foreground:t.inputValidationWarningForeground};default:return{border:t.inputValidationErrorBorder,background:t.inputValidationErrorBackground,foreground:t.inputValidationErrorForeground}}}classForType(e){switch(e){case 1:return"info";case 2:return"warning";default:return"error"}}_showMessage(){if(!this.contextViewProvider||!this.message)return;let e;const t=()=>e.style.width=Sa(this.element)+"px";this.contextViewProvider.showContextView({getAnchor:()=>this.element,anchorAlignment:1,render:s=>{var o,r;if(!this.message)return null;e=we(s,jy(".monaco-inputbox-container")),t();const a={inline:!0,className:"monaco-inputbox-message"},l=this.message.formatContent?$6e(this.message.content,a):z6e(this.message.content,a);l.classList.add(this.classForType(this.message.type));const c=this.stylesForType(this.message.type);return l.style.backgroundColor=(o=c.background)!==null&&o!==void 0?o:"",l.style.color=(r=c.foreground)!==null&&r!==void 0?r:"",l.style.border=c.border?`1px solid ${c.border}`:"",we(e,l),null},onHide:()=>{this.state="closed"},layout:t});let i;this.message.type===3?i=v("alertErrorMessage","Error: {0}",this.message.content):this.message.type===2?i=v("alertWarningMessage","Warning: {0}",this.message.content):i=v("alertInfoMessage","Info: {0}",this.message.content),la(i),this.state="open"}_hideMessage(){this.contextViewProvider&&(this.state==="open"&&this.contextViewProvider.hideContextView(),this.state="idle")}onValueChange(){this._onDidChange.fire(this.value),this.validate(),this.updateMirror(),this.input.classList.toggle("empty",!this.value),this.state==="open"&&this.contextViewProvider&&this.contextViewProvider.layout()}updateMirror(){if(!this.mirror)return;const e=this.value,i=e.charCodeAt(e.length-1)===10?" ":"";(e+i).replace(/\u000c/g,"")?this.mirror.textContent=e+i:this.mirror.innerText=" ",this.layout()}applyStyles(){var e,t,i;const s=this.options.inputBoxStyles,o=(e=s.inputBackground)!==null&&e!==void 0?e:"",r=(t=s.inputForeground)!==null&&t!==void 0?t:"",a=(i=s.inputBorder)!==null&&i!==void 0?i:"";this.element.style.backgroundColor=o,this.element.style.color=r,this.input.style.backgroundColor="inherit",this.input.style.color=r,this.element.style.border=`1px solid ${mg(a,"transparent")}`}layout(){if(!this.mirror)return;const e=this.cachedContentHeight;this.cachedContentHeight=Zf(this.mirror),e!==this.cachedContentHeight&&(this.cachedHeight=Math.min(this.cachedContentHeight,this.maxHeight),this.input.style.height=this.cachedHeight+"px",this._onDidHeightChange.fire(this.cachedContentHeight))}insertAtCursor(e){const t=this.inputElement,i=t.selectionStart,s=t.selectionEnd,o=t.value;i!==null&&s!==null&&(this.value=o.substr(0,i)+e+o.substr(s),t.setSelectionRange(i+1,i+1),this.layout())}dispose(){var e;this._hideMessage(),this.message=null,(e=this.actionbar)===null||e===void 0||e.dispose(),super.dispose()}}class tue extends Aze{constructor(e,t,i){const s=v({}," or {0} for history","⇅"),o=v({}," ({0} for history)","⇅");super(e,t,i),this._onDidFocus=this._register(new X),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new X),this.onDidBlur=this._onDidBlur.event,this.history=new Nze(i.history,100);const r=()=>{if(i.showHistoryHint&&i.showHistoryHint()&&!this.placeholder.endsWith(s)&&!this.placeholder.endsWith(o)&&this.history.getHistory().length){const a=this.placeholder.endsWith(")")?s:o,l=this.placeholder+a;i.showPlaceholderOnFocus&&!hM(this.input)?this.placeholder=l:this.setPlaceHolder(l)}};this.observer=new MutationObserver((a,l)=>{a.forEach(c=>{c.target.textContent||r()})}),this.observer.observe(this.input,{attributeFilter:["class"]}),this.onfocus(this.input,()=>r()),this.onblur(this.input,()=>{const a=l=>{if(this.placeholder.endsWith(l)){const c=this.placeholder.slice(0,this.placeholder.length-l.length);return i.showPlaceholderOnFocus?this.placeholder=c:this.setPlaceHolder(c),!0}else return!1};a(o)||a(s)})}dispose(){super.dispose(),this.observer&&(this.observer.disconnect(),this.observer=void 0)}addToHistory(e){this.value&&(e||this.value!==this.getCurrentValue())&&this.history.add(this.value)}isAtLastInHistory(){return this.history.isLast()}isNowhereInHistory(){return this.history.isNowhere()}showNextValue(){this.history.has(this.value)||this.addToHistory();let e=this.getNextValue();e&&(e=e===this.value?this.getNextValue():e),this.value=e??"",Ih(this.value?this.value:v("clearedInput","Cleared Input"))}showPreviousValue(){this.history.has(this.value)||this.addToHistory();let e=this.getPreviousValue();e&&(e=e===this.value?this.getPreviousValue():e),e&&(this.value=e,Ih(this.value))}setPlaceHolder(e){super.setPlaceHolder(e),this.setTooltip(e)}onBlur(){super.onBlur(),this._onDidBlur.fire()}onFocus(){super.onFocus(),this._onDidFocus.fire()}getCurrentValue(){let e=this.history.current();return e||(e=this.history.last(),this.history.next()),e}getPreviousValue(){return this.history.previous()||this.history.first()}getNextValue(){return this.history.next()}}const Rze=v("defaultLabel","input");class iue extends Il{constructor(e,t,i){super(),this.fixFocusOnOptionClickEnabled=!0,this.imeSessionInProgress=!1,this.additionalTogglesDisposables=this._register(new Qs),this.additionalToggles=[],this._onDidOptionChange=this._register(new X),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new X),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new X),this.onMouseDown=this._onMouseDown.event,this._onInput=this._register(new X),this._onKeyUp=this._register(new X),this._onCaseSensitiveKeyDown=this._register(new X),this.onCaseSensitiveKeyDown=this._onCaseSensitiveKeyDown.event,this._onRegexKeyDown=this._register(new X),this.onRegexKeyDown=this._onRegexKeyDown.event,this._lastHighlightFindOptions=0,this.placeholder=i.placeholder||"",this.validation=i.validation,this.label=i.label||Rze,this.showCommonFindToggles=!!i.showCommonFindToggles;const s=i.appendCaseSensitiveLabel||"",o=i.appendWholeWordsLabel||"",r=i.appendRegexLabel||"",a=i.history||[],l=!!i.flexibleHeight,c=!!i.flexibleWidth,d=i.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new tue(this.domNode,t,{placeholder:this.placeholder||"",ariaLabel:this.label||"",validationOptions:{validation:this.validation},history:a,showHistoryHint:i.showHistoryHint,flexibleHeight:l,flexibleWidth:c,flexibleMaxHeight:d,inputBoxStyles:i.inputBoxStyles}));const u=this._register(XC());if(this.showCommonFindToggles){this.regex=this._register(new eue({appendTitle:r,isChecked:!1,hoverDelegate:u,...i.toggleStyles})),this._register(this.regex.onChange(f=>{this._onDidOptionChange.fire(f),!f&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.regex.onKeyDown(f=>{this._onRegexKeyDown.fire(f)})),this.wholeWords=this._register(new Jde({appendTitle:o,isChecked:!1,hoverDelegate:u,...i.toggleStyles})),this._register(this.wholeWords.onChange(f=>{this._onDidOptionChange.fire(f),!f&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this.caseSensitive=this._register(new Qde({appendTitle:s,isChecked:!1,hoverDelegate:u,...i.toggleStyles})),this._register(this.caseSensitive.onChange(f=>{this._onDidOptionChange.fire(f),!f&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.caseSensitive.onKeyDown(f=>{this._onCaseSensitiveKeyDown.fire(f)}));const h=[this.caseSensitive.domNode,this.wholeWords.domNode,this.regex.domNode];this.onkeydown(this.domNode,f=>{if(f.equals(15)||f.equals(17)||f.equals(9)){const g=h.indexOf(this.domNode.ownerDocument.activeElement);if(g>=0){let p=-1;f.equals(17)?p=(g+1)%h.length:f.equals(15)&&(g===0?p=h.length-1:p=g-1),f.equals(9)?(h[g].blur(),this.inputBox.focus()):p>=0&&h[p].focus(),ii.stop(f,!0)}}})}this.controls=document.createElement("div"),this.controls.className="controls",this.controls.style.display=this.showCommonFindToggles?"":"none",this.caseSensitive&&this.controls.append(this.caseSensitive.domNode),this.wholeWords&&this.controls.appendChild(this.wholeWords.domNode),this.regex&&this.controls.appendChild(this.regex.domNode),this.setAdditionalToggles(i==null?void 0:i.additionalToggles),this.controls&&this.domNode.appendChild(this.controls),e==null||e.appendChild(this.domNode),this._register(ce(this.inputBox.inputElement,"compositionstart",h=>{this.imeSessionInProgress=!0})),this._register(ce(this.inputBox.inputElement,"compositionend",h=>{this.imeSessionInProgress=!1,this._onInput.fire()})),this.onkeydown(this.inputBox.inputElement,h=>this._onKeyDown.fire(h)),this.onkeyup(this.inputBox.inputElement,h=>this._onKeyUp.fire(h)),this.oninput(this.inputBox.inputElement,h=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,h=>this._onMouseDown.fire(h))}get onDidChange(){return this.inputBox.onDidChange}layout(e){this.inputBox.layout(),this.updateInputBoxPadding(e.collapsedFindWidget)}enable(){var e,t,i;this.domNode.classList.remove("disabled"),this.inputBox.enable(),(e=this.regex)===null||e===void 0||e.enable(),(t=this.wholeWords)===null||t===void 0||t.enable(),(i=this.caseSensitive)===null||i===void 0||i.enable();for(const s of this.additionalToggles)s.enable()}disable(){var e,t,i;this.domNode.classList.add("disabled"),this.inputBox.disable(),(e=this.regex)===null||e===void 0||e.disable(),(t=this.wholeWords)===null||t===void 0||t.disable(),(i=this.caseSensitive)===null||i===void 0||i.disable();for(const s of this.additionalToggles)s.disable()}setFocusInputOnOptionClick(e){this.fixFocusOnOptionClickEnabled=e}setEnabled(e){e?this.enable():this.disable()}setAdditionalToggles(e){for(const t of this.additionalToggles)t.domNode.remove();this.additionalToggles=[],this.additionalTogglesDisposables.value=new be;for(const t of e??[])this.additionalTogglesDisposables.value.add(t),this.controls.appendChild(t.domNode),this.additionalTogglesDisposables.value.add(t.onChange(i=>{this._onDidOptionChange.fire(i),!i&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus()})),this.additionalToggles.push(t);this.additionalToggles.length>0&&(this.controls.style.display=""),this.updateInputBoxPadding()}updateInputBoxPadding(e=!1){var t,i,s,o,r,a;e?this.inputBox.paddingRight=0:this.inputBox.paddingRight=((i=(t=this.caseSensitive)===null||t===void 0?void 0:t.width())!==null&&i!==void 0?i:0)+((o=(s=this.wholeWords)===null||s===void 0?void 0:s.width())!==null&&o!==void 0?o:0)+((a=(r=this.regex)===null||r===void 0?void 0:r.width())!==null&&a!==void 0?a:0)+this.additionalToggles.reduce((l,c)=>l+c.width(),0)}getValue(){return this.inputBox.value}setValue(e){this.inputBox.value!==e&&(this.inputBox.value=e)}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getCaseSensitive(){var e,t;return(t=(e=this.caseSensitive)===null||e===void 0?void 0:e.checked)!==null&&t!==void 0?t:!1}setCaseSensitive(e){this.caseSensitive&&(this.caseSensitive.checked=e)}getWholeWords(){var e,t;return(t=(e=this.wholeWords)===null||e===void 0?void 0:e.checked)!==null&&t!==void 0?t:!1}setWholeWords(e){this.wholeWords&&(this.wholeWords.checked=e)}getRegex(){var e,t;return(t=(e=this.regex)===null||e===void 0?void 0:e.checked)!==null&&t!==void 0?t:!1}setRegex(e){this.regex&&(this.regex.checked=e,this.validate())}focusOnCaseSensitive(){var e;(e=this.caseSensitive)===null||e===void 0||e.focus()}highlightFindOptions(){this.domNode.classList.remove("highlight-"+this._lastHighlightFindOptions),this._lastHighlightFindOptions=1-this._lastHighlightFindOptions,this.domNode.classList.add("highlight-"+this._lastHighlightFindOptions)}validate(){this.inputBox.validate()}showMessage(e){this.inputBox.showMessage(e)}clearMessage(){this.inputBox.hideMessage()}}const Mze=ke;class Pze extends ne{constructor(e,t,i){super(),this.parent=e,this.onKeyDown=o=>rs(this.findInput.inputBox.inputElement,Le.KEY_DOWN,o),this.onDidChange=o=>this.findInput.onDidChange(o),this.container=we(this.parent,Mze(".quick-input-box")),this.findInput=this._register(new iue(this.container,void 0,{label:"",inputBoxStyles:t,toggleStyles:i}));const s=this.findInput.inputBox.inputElement;s.role="combobox",s.ariaHasPopup="menu",s.ariaAutoComplete="list",s.ariaExpanded="true"}get value(){return this.findInput.getValue()}set value(e){this.findInput.setValue(e)}select(e=null){this.findInput.inputBox.select(e)}getSelection(){return this.findInput.inputBox.getSelection()}isSelectionAtEnd(){return this.findInput.inputBox.isSelectionAtEnd()}get placeholder(){return this.findInput.inputBox.inputElement.getAttribute("placeholder")||""}set placeholder(e){this.findInput.inputBox.setPlaceHolder(e)}get password(){return this.findInput.inputBox.inputElement.type==="password"}set password(e){this.findInput.inputBox.inputElement.type=e?"password":"text"}set enabled(e){this.findInput.inputBox.inputElement.toggleAttribute("readonly",!e)}set toggles(e){this.findInput.setAdditionalToggles(e)}setAttribute(e,t){this.findInput.inputBox.inputElement.setAttribute(e,t)}showDecoration(e){e===us.Ignore?this.findInput.clearMessage():this.findInput.showMessage({type:e===us.Info?1:e===us.Warning?2:3,content:""})}stylesForType(e){return this.findInput.inputBox.stylesForType(e===us.Info?1:e===us.Warning?2:3)}setFocus(){this.findInput.focus()}layout(){this.findInput.inputBox.layout()}}class Oze{get templateId(){return this.renderer.templateId}constructor(e,t){this.renderer=e,this.modelProvider=t}renderTemplate(e){return{data:this.renderer.renderTemplate(e),disposable:ne.None}}renderElement(e,t,i,s){var o;if((o=i.disposable)===null||o===void 0||o.dispose(),!i.data)return;const r=this.modelProvider();if(r.isResolved(e))return this.renderer.renderElement(r.get(e),e,i.data,s);const a=new $n,l=r.resolve(e,a.token);i.disposable={dispose:()=>a.cancel()},this.renderer.renderPlaceholder(e,i.data),l.then(c=>this.renderer.renderElement(c,e,i.data,s))}disposeTemplate(e){e.disposable&&(e.disposable.dispose(),e.disposable=void 0),e.data&&(this.renderer.disposeTemplate(e.data),e.data=void 0)}}class Fze{constructor(e,t){this.modelProvider=e,this.accessibilityProvider=t}getWidgetAriaLabel(){return this.accessibilityProvider.getWidgetAriaLabel()}getAriaLabel(e){const t=this.modelProvider();return t.isResolved(e)?this.accessibilityProvider.getAriaLabel(t.get(e)):null}}function Bze(n,e){return{...e,accessibilityProvider:e.accessibilityProvider&&new Fze(n,e.accessibilityProvider)}}class Wze{constructor(e,t,i,s,o={}){const r=()=>this.model,a=s.map(l=>new Oze(l,r));this.list=new El(e,t,i,a,Bze(r,o))}updateOptions(e){this.list.updateOptions(e)}getHTMLElement(){return this.list.getHTMLElement()}get onDidFocus(){return this.list.onDidFocus}get widget(){return this.list}get onDidDispose(){return this.list.onDidDispose}get onMouseDblClick(){return Ae.map(this.list.onMouseDblClick,({element:e,index:t,browserEvent:i})=>({element:e===void 0?void 0:this._model.get(e),index:t,browserEvent:i}))}get onPointer(){return Ae.map(this.list.onPointer,({element:e,index:t,browserEvent:i})=>({element:e===void 0?void 0:this._model.get(e),index:t,browserEvent:i}))}get onDidChangeSelection(){return Ae.map(this.list.onDidChangeSelection,({elements:e,indexes:t,browserEvent:i})=>({elements:e.map(s=>this._model.get(s)),indexes:t,browserEvent:i}))}get model(){return this._model}set model(e){this._model=e,this.list.splice(0,this.list.length,Xr(e.length))}getFocus(){return this.list.getFocus()}getSelection(){return this.list.getSelection()}getSelectedElements(){return this.getSelection().map(e=>this.model.get(e))}style(e){this.list.style(e)}dispose(){this.list.dispose()}}var zw=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o};const Hze=!1;var MA;(function(n){n.North="north",n.South="south",n.East="east",n.West="west"})(MA||(MA={}));let Vze=4;const zze=new X;let $ze=300;const Uze=new X;class L${constructor(e){this.el=e,this.disposables=new be}get onPointerMove(){return this.disposables.add(new ei(gt(this.el),"mousemove")).event}get onPointerUp(){return this.disposables.add(new ei(gt(this.el),"mouseup")).event}dispose(){this.disposables.dispose()}}zw([gs],L$.prototype,"onPointerMove",null);zw([gs],L$.prototype,"onPointerUp",null);class k${get onPointerMove(){return this.disposables.add(new ei(this.el,fn.Change)).event}get onPointerUp(){return this.disposables.add(new ei(this.el,fn.End)).event}constructor(e){this.el=e,this.disposables=new be}dispose(){this.disposables.dispose()}}zw([gs],k$.prototype,"onPointerMove",null);zw([gs],k$.prototype,"onPointerUp",null);class PA{get onPointerMove(){return this.factory.onPointerMove}get onPointerUp(){return this.factory.onPointerUp}constructor(e){this.factory=e}dispose(){}}zw([gs],PA.prototype,"onPointerMove",null);zw([gs],PA.prototype,"onPointerUp",null);const MJ="pointer-events-disabled";class Vo extends ne{get state(){return this._state}get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}set state(e){this._state!==e&&(this.el.classList.toggle("disabled",e===0),this.el.classList.toggle("minimum",e===1),this.el.classList.toggle("maximum",e===2),this._state=e,this.onDidEnablementChange.fire(e))}set orthogonalStartSash(e){if(this._orthogonalStartSash!==e){if(this.orthogonalStartDragHandleDisposables.clear(),this.orthogonalStartSashDisposables.clear(),e){const t=i=>{this.orthogonalStartDragHandleDisposables.clear(),i!==0&&(this._orthogonalStartDragHandle=we(this.el,ke(".orthogonal-drag-handle.start")),this.orthogonalStartDragHandleDisposables.add(dt(()=>this._orthogonalStartDragHandle.remove())),this.orthogonalStartDragHandleDisposables.add(new ei(this._orthogonalStartDragHandle,"mouseenter")).event(()=>Vo.onMouseEnter(e),void 0,this.orthogonalStartDragHandleDisposables),this.orthogonalStartDragHandleDisposables.add(new ei(this._orthogonalStartDragHandle,"mouseleave")).event(()=>Vo.onMouseLeave(e),void 0,this.orthogonalStartDragHandleDisposables))};this.orthogonalStartSashDisposables.add(e.onDidEnablementChange.event(t,this)),t(e.state)}this._orthogonalStartSash=e}}set orthogonalEndSash(e){if(this._orthogonalEndSash!==e){if(this.orthogonalEndDragHandleDisposables.clear(),this.orthogonalEndSashDisposables.clear(),e){const t=i=>{this.orthogonalEndDragHandleDisposables.clear(),i!==0&&(this._orthogonalEndDragHandle=we(this.el,ke(".orthogonal-drag-handle.end")),this.orthogonalEndDragHandleDisposables.add(dt(()=>this._orthogonalEndDragHandle.remove())),this.orthogonalEndDragHandleDisposables.add(new ei(this._orthogonalEndDragHandle,"mouseenter")).event(()=>Vo.onMouseEnter(e),void 0,this.orthogonalEndDragHandleDisposables),this.orthogonalEndDragHandleDisposables.add(new ei(this._orthogonalEndDragHandle,"mouseleave")).event(()=>Vo.onMouseLeave(e),void 0,this.orthogonalEndDragHandleDisposables))};this.orthogonalEndSashDisposables.add(e.onDidEnablementChange.event(t,this)),t(e.state)}this._orthogonalEndSash=e}}constructor(e,t,i){super(),this.hoverDelay=$ze,this.hoverDelayer=this._register(new sd(this.hoverDelay)),this._state=3,this.onDidEnablementChange=this._register(new X),this._onDidStart=this._register(new X),this._onDidChange=this._register(new X),this._onDidReset=this._register(new X),this._onDidEnd=this._register(new X),this.orthogonalStartSashDisposables=this._register(new be),this.orthogonalStartDragHandleDisposables=this._register(new be),this.orthogonalEndSashDisposables=this._register(new be),this.orthogonalEndDragHandleDisposables=this._register(new be),this.onDidStart=this._onDidStart.event,this.onDidChange=this._onDidChange.event,this.onDidReset=this._onDidReset.event,this.onDidEnd=this._onDidEnd.event,this.linkedSash=void 0,this.el=we(e,ke(".monaco-sash")),i.orthogonalEdge&&this.el.classList.add(`orthogonal-edge-${i.orthogonalEdge}`),Xt&&this.el.classList.add("mac");const s=this._register(new ei(this.el,"mousedown")).event;this._register(s(u=>this.onPointerStart(u,new L$(e)),this));const o=this._register(new ei(this.el,"dblclick")).event;this._register(o(this.onPointerDoublePress,this));const r=this._register(new ei(this.el,"mouseenter")).event;this._register(r(()=>Vo.onMouseEnter(this)));const a=this._register(new ei(this.el,"mouseleave")).event;this._register(a(()=>Vo.onMouseLeave(this))),this._register(hn.addTarget(this.el));const l=this._register(new ei(this.el,fn.Start)).event;this._register(l(u=>this.onPointerStart(u,new k$(this.el)),this));const c=this._register(new ei(this.el,fn.Tap)).event;let d;this._register(c(u=>{if(d){clearTimeout(d),d=void 0,this.onPointerDoublePress(u);return}clearTimeout(d),d=setTimeout(()=>d=void 0,250)},this)),typeof i.size=="number"?(this.size=i.size,i.orientation===0?this.el.style.width=`${this.size}px`:this.el.style.height=`${this.size}px`):(this.size=Vze,this._register(zze.event(u=>{this.size=u,this.layout()}))),this._register(Uze.event(u=>this.hoverDelay=u)),this.layoutProvider=t,this.orthogonalStartSash=i.orthogonalStartSash,this.orthogonalEndSash=i.orthogonalEndSash,this.orientation=i.orientation||0,this.orientation===1?(this.el.classList.add("horizontal"),this.el.classList.remove("vertical")):(this.el.classList.remove("horizontal"),this.el.classList.add("vertical")),this.el.classList.toggle("debug",Hze),this.layout()}onPointerStart(e,t){ii.stop(e);let i=!1;if(!e.__orthogonalSashEvent){const g=this.getOrthogonalSash(e);g&&(i=!0,e.__orthogonalSashEvent=!0,g.onPointerStart(e,new PA(t)))}if(this.linkedSash&&!e.__linkedSashEvent&&(e.__linkedSashEvent=!0,this.linkedSash.onPointerStart(e,new PA(t))),!this.state)return;const s=this.el.ownerDocument.getElementsByTagName("iframe");for(const g of s)g.classList.add(MJ);const o=e.pageX,r=e.pageY,a=e.altKey,l={startX:o,currentX:o,startY:r,currentY:r,altKey:a};this.el.classList.add("active"),this._onDidStart.fire(l);const c=yl(this.el),d=()=>{let g="";i?g="all-scroll":this.orientation===1?this.state===1?g="s-resize":this.state===2?g="n-resize":g=Xt?"row-resize":"ns-resize":this.state===1?g="e-resize":this.state===2?g="w-resize":g=Xt?"col-resize":"ew-resize",c.textContent=`* { cursor: ${g} !important; }`},u=new be;d(),i||this.onDidEnablementChange.event(d,null,u);const h=g=>{ii.stop(g,!1);const p={startX:o,currentX:g.pageX,startY:r,currentY:g.pageY,altKey:a};this._onDidChange.fire(p)},f=g=>{ii.stop(g,!1),this.el.removeChild(c),this.el.classList.remove("active"),this._onDidEnd.fire(),u.dispose();for(const p of s)p.classList.remove(MJ)};t.onPointerMove(h,null,u),t.onPointerUp(f,null,u),u.add(t)}onPointerDoublePress(e){const t=this.getOrthogonalSash(e);t&&t._onDidReset.fire(),this.linkedSash&&this.linkedSash._onDidReset.fire(),this._onDidReset.fire()}static onMouseEnter(e,t=!1){e.el.classList.contains("active")?(e.hoverDelayer.cancel(),e.el.classList.add("hover")):e.hoverDelayer.trigger(()=>e.el.classList.add("hover"),e.hoverDelay).then(void 0,()=>{}),!t&&e.linkedSash&&Vo.onMouseEnter(e.linkedSash,!0)}static onMouseLeave(e,t=!1){e.hoverDelayer.cancel(),e.el.classList.remove("hover"),!t&&e.linkedSash&&Vo.onMouseLeave(e.linkedSash,!0)}clearSashHoverState(){Vo.onMouseLeave(this)}layout(){if(this.orientation===0){const e=this.layoutProvider;this.el.style.left=e.getVerticalSashLeft(this)-this.size/2+"px",e.getVerticalSashTop&&(this.el.style.top=e.getVerticalSashTop(this)+"px"),e.getVerticalSashHeight&&(this.el.style.height=e.getVerticalSashHeight(this)+"px")}else{const e=this.layoutProvider;this.el.style.top=e.getHorizontalSashTop(this)-this.size/2+"px",e.getHorizontalSashLeft&&(this.el.style.left=e.getHorizontalSashLeft(this)+"px"),e.getHorizontalSashWidth&&(this.el.style.width=e.getHorizontalSashWidth(this)+"px")}}getOrthogonalSash(e){var t;const i=(t=e.initialTarget)!==null&&t!==void 0?t:e.target;if(!(!i||!co(i))&&i.classList.contains("orthogonal-drag-handle"))return i.classList.contains("start")?this.orthogonalStartSash:this.orthogonalEndSash}dispose(){super.dispose(),this.el.remove()}}const jze={separatorBorder:le.transparent};class nue{set size(e){this._size=e}get size(){return this._size}get visible(){return typeof this._cachedVisibleSize>"u"}setVisible(e,t){var i,s;if(e!==this.visible){e?(this.size=Sr(this._cachedVisibleSize,this.viewMinimumSize,this.viewMaximumSize),this._cachedVisibleSize=void 0):(this._cachedVisibleSize=typeof t=="number"?t:this.size,this.size=0),this.container.classList.toggle("visible",e);try{(s=(i=this.view).setVisible)===null||s===void 0||s.call(i,e)}catch(o){console.error("Splitview: Failed to set visible view"),console.error(o)}}}get minimumSize(){return this.visible?this.view.minimumSize:0}get viewMinimumSize(){return this.view.minimumSize}get maximumSize(){return this.visible?this.view.maximumSize:0}get viewMaximumSize(){return this.view.maximumSize}get priority(){return this.view.priority}get proportionalLayout(){var e;return(e=this.view.proportionalLayout)!==null&&e!==void 0?e:!0}get snap(){return!!this.view.snap}set enabled(e){this.container.style.pointerEvents=e?"":"none"}constructor(e,t,i,s){this.container=e,this.view=t,this.disposable=s,this._cachedVisibleSize=void 0,typeof i=="number"?(this._size=i,this._cachedVisibleSize=void 0,e.classList.add("visible")):(this._size=0,this._cachedVisibleSize=i.cachedVisibleSize)}layout(e,t){this.layoutContainer(e);try{this.view.layout(this.size,e,t)}catch(i){console.error("Splitview: Failed to layout view"),console.error(i)}}dispose(){this.disposable.dispose()}}class Kze extends nue{layoutContainer(e){this.container.style.top=`${e}px`,this.container.style.height=`${this.size}px`}}class qze extends nue{layoutContainer(e){this.container.style.left=`${e}px`,this.container.style.width=`${this.size}px`}}var Df;(function(n){n[n.Idle=0]="Idle",n[n.Busy=1]="Busy"})(Df||(Df={}));var OA;(function(n){n.Distribute={type:"distribute"};function e(s){return{type:"split",index:s}}n.Split=e;function t(s){return{type:"auto",index:s}}n.Auto=t;function i(s){return{type:"invisible",cachedVisibleSize:s}}n.Invisible=i})(OA||(OA={}));class sue extends ne{get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}get startSnappingEnabled(){return this._startSnappingEnabled}get endSnappingEnabled(){return this._endSnappingEnabled}set orthogonalStartSash(e){for(const t of this.sashItems)t.sash.orthogonalStartSash=e;this._orthogonalStartSash=e}set orthogonalEndSash(e){for(const t of this.sashItems)t.sash.orthogonalEndSash=e;this._orthogonalEndSash=e}set startSnappingEnabled(e){this._startSnappingEnabled!==e&&(this._startSnappingEnabled=e,this.updateSashEnablement())}set endSnappingEnabled(e){this._endSnappingEnabled!==e&&(this._endSnappingEnabled=e,this.updateSashEnablement())}constructor(e,t={}){var i,s,o,r,a;super(),this.size=0,this._contentSize=0,this.proportions=void 0,this.viewItems=[],this.sashItems=[],this.state=Df.Idle,this._onDidSashChange=this._register(new X),this._onDidSashReset=this._register(new X),this._startSnappingEnabled=!0,this._endSnappingEnabled=!0,this.onDidSashChange=this._onDidSashChange.event,this.onDidSashReset=this._onDidSashReset.event,this.orientation=(i=t.orientation)!==null&&i!==void 0?i:0,this.inverseAltBehavior=(s=t.inverseAltBehavior)!==null&&s!==void 0?s:!1,this.proportionalLayout=(o=t.proportionalLayout)!==null&&o!==void 0?o:!0,this.getSashOrthogonalSize=t.getSashOrthogonalSize,this.el=document.createElement("div"),this.el.classList.add("monaco-split-view2"),this.el.classList.add(this.orientation===0?"vertical":"horizontal"),e.appendChild(this.el),this.sashContainer=we(this.el,ke(".sash-container")),this.viewContainer=ke(".split-view-container"),this.scrollable=this._register(new Ww({forceIntegerValues:!0,smoothScrollDuration:125,scheduleAtNextAnimationFrame:c=>Oa(gt(this.el),c)})),this.scrollableElement=this._register(new MM(this.viewContainer,{vertical:this.orientation===0?(r=t.scrollbarVisibility)!==null&&r!==void 0?r:1:2,horizontal:this.orientation===1?(a=t.scrollbarVisibility)!==null&&a!==void 0?a:1:2},this.scrollable));const l=this._register(new ei(this.viewContainer,"scroll")).event;this._register(l(c=>{const d=this.scrollableElement.getScrollPosition(),u=Math.abs(this.viewContainer.scrollLeft-d.scrollLeft)<=1?void 0:this.viewContainer.scrollLeft,h=Math.abs(this.viewContainer.scrollTop-d.scrollTop)<=1?void 0:this.viewContainer.scrollTop;(u!==void 0||h!==void 0)&&this.scrollableElement.setScrollPosition({scrollLeft:u,scrollTop:h})})),this.onDidScroll=this.scrollableElement.onScroll,this._register(this.onDidScroll(c=>{c.scrollTopChanged&&(this.viewContainer.scrollTop=c.scrollTop),c.scrollLeftChanged&&(this.viewContainer.scrollLeft=c.scrollLeft)})),we(this.el,this.scrollableElement.getDomNode()),this.style(t.styles||jze),t.descriptor&&(this.size=t.descriptor.size,t.descriptor.views.forEach((c,d)=>{const u=na(c.visible)||c.visible?c.size:{type:"invisible",cachedVisibleSize:c.size},h=c.view;this.doAddView(h,u,d,!0)}),this._contentSize=this.viewItems.reduce((c,d)=>c+d.size,0),this.saveProportions())}style(e){e.separatorBorder.isTransparent()?(this.el.classList.remove("separator-border"),this.el.style.removeProperty("--separator-border")):(this.el.classList.add("separator-border"),this.el.style.setProperty("--separator-border",e.separatorBorder.toString()))}addView(e,t,i=this.viewItems.length,s){this.doAddView(e,t,i,s)}layout(e,t){const i=Math.max(this.size,this._contentSize);if(this.size=e,this.layoutContext=t,this.proportions){let s=0;for(let o=0;o0&&(r.size=Sr(Math.round(a*e/s),r.minimumSize,r.maximumSize))}}else{const s=Xr(this.viewItems.length),o=s.filter(a=>this.viewItems[a].priority===1),r=s.filter(a=>this.viewItems[a].priority===2);this.resize(this.viewItems.length-1,e-i,void 0,o,r)}this.distributeEmptySpace(),this.layoutViews()}saveProportions(){this.proportionalLayout&&this._contentSize>0&&(this.proportions=this.viewItems.map(e=>e.proportionalLayout&&e.visible?e.size/this._contentSize:void 0))}onSashStart({sash:e,start:t,alt:i}){for(const a of this.viewItems)a.enabled=!1;const s=this.sashItems.findIndex(a=>a.sash===e),o=Jc(ce(this.el.ownerDocument.body,"keydown",a=>r(this.sashDragState.current,a.altKey)),ce(this.el.ownerDocument.body,"keyup",()=>r(this.sashDragState.current,!1))),r=(a,l)=>{const c=this.viewItems.map(g=>g.size);let d=Number.NEGATIVE_INFINITY,u=Number.POSITIVE_INFINITY;if(this.inverseAltBehavior&&(l=!l),l)if(s===this.sashItems.length-1){const p=this.viewItems[s];d=(p.minimumSize-p.size)/2,u=(p.maximumSize-p.size)/2}else{const p=this.viewItems[s+1];d=(p.size-p.maximumSize)/2,u=(p.size-p.minimumSize)/2}let h,f;if(!l){const g=Xr(s,-1),p=Xr(s+1,this.viewItems.length),_=g.reduce((I,N)=>I+(this.viewItems[N].minimumSize-c[N]),0),b=g.reduce((I,N)=>I+(this.viewItems[N].viewMaximumSize-c[N]),0),w=p.length===0?Number.POSITIVE_INFINITY:p.reduce((I,N)=>I+(c[N]-this.viewItems[N].minimumSize),0),y=p.length===0?Number.NEGATIVE_INFINITY:p.reduce((I,N)=>I+(c[N]-this.viewItems[N].viewMaximumSize),0),S=Math.max(_,y),x=Math.min(w,b),k=this.findFirstSnapIndex(g),D=this.findFirstSnapIndex(p);if(typeof k=="number"){const I=this.viewItems[k],N=Math.floor(I.viewMinimumSize/2);h={index:k,limitDelta:I.visible?S-N:S+N,size:I.size}}if(typeof D=="number"){const I=this.viewItems[D],N=Math.floor(I.viewMinimumSize/2);f={index:D,limitDelta:I.visible?x+N:x-N,size:I.size}}}this.sashDragState={start:a,current:a,index:s,sizes:c,minDelta:d,maxDelta:u,alt:l,snapBefore:h,snapAfter:f,disposable:o}};r(t,i)}onSashChange({current:e}){const{index:t,start:i,sizes:s,alt:o,minDelta:r,maxDelta:a,snapBefore:l,snapAfter:c}=this.sashDragState;this.sashDragState.current=e;const d=e-i,u=this.resize(t,d,s,void 0,void 0,r,a,l,c);if(o){const h=t===this.sashItems.length-1,f=this.viewItems.map(y=>y.size),g=h?t:t+1,p=this.viewItems[g],_=p.size-p.maximumSize,b=p.size-p.minimumSize,w=h?t-1:t+1;this.resize(w,-u,f,void 0,void 0,_,b)}this.distributeEmptySpace(),this.layoutViews()}onSashEnd(e){this._onDidSashChange.fire(e),this.sashDragState.disposable.dispose(),this.saveProportions();for(const t of this.viewItems)t.enabled=!0}onViewChange(e,t){const i=this.viewItems.indexOf(e);i<0||i>=this.viewItems.length||(t=typeof t=="number"?t:e.size,t=Sr(t,e.minimumSize,e.maximumSize),this.inverseAltBehavior&&i>0?(this.resize(i-1,Math.floor((e.size-t)/2)),this.distributeEmptySpace(),this.layoutViews()):(e.size=t,this.relayout([i],void 0)))}resizeView(e,t){if(!(e<0||e>=this.viewItems.length)){if(this.state!==Df.Idle)throw new Error("Cant modify splitview");this.state=Df.Busy;try{const i=Xr(this.viewItems.length).filter(a=>a!==e),s=[...i.filter(a=>this.viewItems[a].priority===1),e],o=i.filter(a=>this.viewItems[a].priority===2),r=this.viewItems[e];t=Math.round(t),t=Sr(t,r.minimumSize,Math.min(r.maximumSize,this.size)),r.size=t,this.relayout(s,o)}finally{this.state=Df.Idle}}}distributeViewSizes(){const e=[];let t=0;for(const a of this.viewItems)a.maximumSize-a.minimumSize>0&&(e.push(a),t+=a.size);const i=Math.floor(t/e.length);for(const a of e)a.size=Sr(i,a.minimumSize,a.maximumSize);const s=Xr(this.viewItems.length),o=s.filter(a=>this.viewItems[a].priority===1),r=s.filter(a=>this.viewItems[a].priority===2);this.relayout(o,r)}getViewSize(e){return e<0||e>=this.viewItems.length?-1:this.viewItems[e].size}doAddView(e,t,i=this.viewItems.length,s){if(this.state!==Df.Idle)throw new Error("Cant modify splitview");this.state=Df.Busy;try{const o=ke(".split-view-view");i===this.viewItems.length?this.viewContainer.appendChild(o):this.viewContainer.insertBefore(o,this.viewContainer.children.item(i));const r=e.onDidChange(h=>this.onViewChange(d,h)),a=dt(()=>this.viewContainer.removeChild(o)),l=Jc(r,a);let c;typeof t=="number"?c=t:(t.type==="auto"&&(this.areViewsDistributed()?t={type:"distribute"}:t={type:"split",index:t.index}),t.type==="split"?c=this.getViewSize(t.index)/2:t.type==="invisible"?c={cachedVisibleSize:t.cachedVisibleSize}:c=e.minimumSize);const d=this.orientation===0?new Kze(o,e,c,l):new qze(o,e,c,l);if(this.viewItems.splice(i,0,d),this.viewItems.length>1){const h={orthogonalStartSash:this.orthogonalStartSash,orthogonalEndSash:this.orthogonalEndSash},f=this.orientation===0?new Vo(this.sashContainer,{getHorizontalSashTop:I=>this.getSashPosition(I),getHorizontalSashWidth:this.getSashOrthogonalSize},{...h,orientation:1}):new Vo(this.sashContainer,{getVerticalSashLeft:I=>this.getSashPosition(I),getVerticalSashHeight:this.getSashOrthogonalSize},{...h,orientation:0}),g=this.orientation===0?I=>({sash:f,start:I.startY,current:I.currentY,alt:I.altKey}):I=>({sash:f,start:I.startX,current:I.currentX,alt:I.altKey}),_=Ae.map(f.onDidStart,g)(this.onSashStart,this),w=Ae.map(f.onDidChange,g)(this.onSashChange,this),S=Ae.map(f.onDidEnd,()=>this.sashItems.findIndex(I=>I.sash===f))(this.onSashEnd,this),x=f.onDidReset(()=>{const I=this.sashItems.findIndex(z=>z.sash===f),N=Xr(I,-1),P=Xr(I+1,this.viewItems.length),O=this.findFirstSnapIndex(N),M=this.findFirstSnapIndex(P);typeof O=="number"&&!this.viewItems[O].visible||typeof M=="number"&&!this.viewItems[M].visible||this._onDidSashReset.fire(I)}),k=Jc(_,w,S,x,f),D={sash:f,disposable:k};this.sashItems.splice(i-1,0,D)}o.appendChild(e.element);let u;typeof t!="number"&&t.type==="split"&&(u=[t.index]),s||this.relayout([i],u),!s&&typeof t!="number"&&t.type==="distribute"&&this.distributeViewSizes()}finally{this.state=Df.Idle}}relayout(e,t){const i=this.viewItems.reduce((s,o)=>s+o.size,0);this.resize(this.viewItems.length-1,this.size-i,void 0,e,t),this.distributeEmptySpace(),this.layoutViews(),this.saveProportions()}resize(e,t,i=this.viewItems.map(d=>d.size),s,o,r=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY,l,c){if(e<0||e>=this.viewItems.length)return 0;const d=Xr(e,-1),u=Xr(e+1,this.viewItems.length);if(o)for(const D of o)vF(d,D),vF(u,D);if(s)for(const D of s)bE(d,D),bE(u,D);const h=d.map(D=>this.viewItems[D]),f=d.map(D=>i[D]),g=u.map(D=>this.viewItems[D]),p=u.map(D=>i[D]),_=d.reduce((D,I)=>D+(this.viewItems[I].minimumSize-i[I]),0),b=d.reduce((D,I)=>D+(this.viewItems[I].maximumSize-i[I]),0),w=u.length===0?Number.POSITIVE_INFINITY:u.reduce((D,I)=>D+(i[I]-this.viewItems[I].minimumSize),0),y=u.length===0?Number.NEGATIVE_INFINITY:u.reduce((D,I)=>D+(i[I]-this.viewItems[I].maximumSize),0),S=Math.max(_,y,r),x=Math.min(w,b,a);let k=!1;if(l){const D=this.viewItems[l.index],I=t>=l.limitDelta;k=I!==D.visible,D.setVisible(I,l.size)}if(!k&&c){const D=this.viewItems[c.index],I=ta+l.size,0);let i=this.size-t;const s=Xr(this.viewItems.length-1,-1),o=s.filter(a=>this.viewItems[a].priority===1),r=s.filter(a=>this.viewItems[a].priority===2);for(const a of r)vF(s,a);for(const a of o)bE(s,a);typeof e=="number"&&bE(s,e);for(let a=0;i!==0&&at+i.size,0);let e=0;for(const t of this.viewItems)t.layout(e,this.layoutContext),e+=t.size;this.sashItems.forEach(t=>t.sash.layout()),this.updateSashEnablement(),this.updateScrollableElement()}updateScrollableElement(){this.orientation===0?this.scrollableElement.setScrollDimensions({height:this.size,scrollHeight:this._contentSize}):this.scrollableElement.setScrollDimensions({width:this.size,scrollWidth:this._contentSize})}updateSashEnablement(){let e=!1;const t=this.viewItems.map(l=>e=l.size-l.minimumSize>0||e);e=!1;const i=this.viewItems.map(l=>e=l.maximumSize-l.size>0||e),s=[...this.viewItems].reverse();e=!1;const o=s.map(l=>e=l.size-l.minimumSize>0||e).reverse();e=!1;const r=s.map(l=>e=l.maximumSize-l.size>0||e).reverse();let a=0;for(let l=0;l0||this.startSnappingEnabled)?c.state=1:w&&t[l]&&(a0)return;if(!i.visible&&i.snap)return t}}areViewsDistributed(){let e,t;for(const i of this.viewItems)if(e=e===void 0?i.size:Math.min(e,i.size),t=t===void 0?i.size:Math.max(t,i.size),t-e>2)return!1;return!0}dispose(){var e;(e=this.sashDragState)===null||e===void 0||e.disposable.dispose(),tn(this.viewItems),this.viewItems=[],this.sashItems.forEach(t=>t.disposable.dispose()),this.sashItems=[],super.dispose()}}class OD{constructor(e,t,i){this.columns=e,this.getColumnSize=i,this.templateId=OD.TemplateId,this.renderedTemplates=new Set;const s=new Map(t.map(o=>[o.templateId,o]));this.renderers=[];for(const o of e){const r=s.get(o.templateId);if(!r)throw new Error(`Table cell renderer for template id ${o.templateId} not found.`);this.renderers.push(r)}}renderTemplate(e){const t=we(e,ke(".monaco-table-tr")),i=[],s=[];for(let r=0;rthis.disposables.add(new Zze(d,u))),l={size:a.reduce((d,u)=>d+u.column.weight,0),views:a.map(d=>({size:d.column.weight,view:d}))};this.splitview=this.disposables.add(new sue(this.domNode,{orientation:1,scrollbarVisibility:2,getSashOrthogonalSize:()=>this.cachedHeight,descriptor:l})),this.splitview.el.style.height=`${i.headerRowHeight}px`,this.splitview.el.style.lineHeight=`${i.headerRowHeight}px`;const c=new OD(s,o,d=>this.splitview.getViewSize(d));this.list=this.disposables.add(new El(e,this.domNode,Gze(i),[c],r)),Ae.any(...a.map(d=>d.onDidLayout))(([d,u])=>c.layoutColumn(d,u),null,this.disposables),this.splitview.onDidSashReset(d=>{const u=s.reduce((f,g)=>f+g.weight,0),h=s[d].weight/u*this.cachedWidth;this.splitview.resizeView(d,h)},null,this.disposables),this.styleElement=yl(this.domNode),this.style(IVe)}updateOptions(e){this.list.updateOptions(e)}splice(e,t,i=[]){this.list.splice(e,t,i)}getHTMLElement(){return this.domNode}style(e){const t=[];t.push(`.monaco-table.${this.domId} > .monaco-split-view2 .monaco-sash.vertical::before { top: ${this.virtualDelegate.headerRowHeight+1}px; height: calc(100% - ${this.virtualDelegate.headerRowHeight}px); }`),this.styleElement.textContent=t.join(` `),this.list.style(e)}getSelectedElements(){return this.list.getSelectedElements()}getSelection(){return this.list.getSelection()}getFocus(){return this.list.getFocus()}dispose(){this.disposables.dispose()}}cP.InstanceCount=0;var sl;(function(n){n[n.Expanded=0]="Expanded",n[n.Collapsed=1]="Collapsed",n[n.PreserveOrExpanded=2]="PreserveOrExpanded",n[n.PreserveOrCollapsed=3]="PreserveOrCollapsed"})(sl||(sl={}));var Tv;(function(n){n[n.Unknown=0]="Unknown",n[n.Twistie=1]="Twistie",n[n.Element=2]="Element",n[n.Filter=3]="Filter"})(Tv||(Tv={}));class dl extends Error{constructor(e,t){super(`TreeError [${e}] ${t}`)}}class D${constructor(e){this.fn=e,this._map=new WeakMap}map(e){let t=this._map.get(e);return t||(t=this.fn(e),this._map.set(e,t)),t}}function I$(n){return typeof n=="object"&&"visibility"in n&&"data"in n}function YL(n){switch(n){case!0:return 1;case!1:return 0;default:return n}}function H5(n){return typeof n.collapsible=="boolean"}class Yze{constructor(e,t,i,s={}){var o;this.user=e,this.list=t,this.rootRef=[],this.eventBufferer=new sM,this._onDidChangeCollapseState=new X,this.onDidChangeCollapseState=this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event),this._onDidChangeRenderNodeCount=new X,this.onDidChangeRenderNodeCount=this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event),this._onDidSplice=new X,this.onDidSplice=this._onDidSplice.event,this.refilterDelayer=new sd(Dae),this.collapseByDefault=typeof s.collapseByDefault>"u"?!1:s.collapseByDefault,this.allowNonCollapsibleParents=(o=s.allowNonCollapsibleParents)!==null&&o!==void 0?o:!1,this.filter=s.filter,this.autoExpandSingleChildren=typeof s.autoExpandSingleChildren>"u"?!1:s.autoExpandSingleChildren,this.root={parent:void 0,element:i,children:[],depth:0,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:!1,collapsed:!1,renderNodeCount:0,visibility:1,visible:!0,filterData:void 0}}splice(e,t,i=oi.empty(),s={}){if(e.length===0)throw new dl(this.user,"Invalid tree location");s.diffIdentityProvider?this.spliceSmart(s.diffIdentityProvider,e,t,i,s):this.spliceSimple(e,t,i,s)}spliceSmart(e,t,i,s,o,r){var a;s===void 0&&(s=oi.empty()),r===void 0&&(r=(a=o.diffDepth)!==null&&a!==void 0?a:0);const{parentNode:l}=this.getParentNodeWithListIndex(t);if(!l.lastDiffIds)return this.spliceSimple(t,i,s,o);const c=[...s],d=t[t.length-1],u=new Ju({getElements:()=>l.lastDiffIds},{getElements:()=>[...l.children.slice(0,d),...c,...l.children.slice(d+i)].map(_=>e.getId(_.element).toString())}).ComputeDiff(!1);if(u.quitEarly)return l.lastDiffIds=void 0,this.spliceSimple(t,i,c,o);const h=t.slice(0,-1),f=(_,b,w)=>{if(r>0)for(let y=0;yw.originalStart-b.originalStart))f(g,p,g-(_.originalStart+_.originalLength)),g=_.originalStart,p=_.modifiedStart-d,this.spliceSimple([...h,g],_.originalLength,oi.slice(c,p,p+_.modifiedLength),o);f(g,p,g)}spliceSimple(e,t,i=oi.empty(),{onDidCreateNode:s,onDidDeleteNode:o,diffIdentityProvider:r}){const{parentNode:a,listIndex:l,revealed:c,visible:d}=this.getParentNodeWithListIndex(e),u=[],h=oi.map(i,x=>this.createTreeNode(x,a,a.visible?1:0,c,u,s)),f=e[e.length-1];let g=0;for(let x=f;x>=0&&xr.getId(x.element).toString())):a.lastDiffIds=a.children.map(x=>r.getId(x.element).toString()):a.lastDiffIds=void 0;let y=0;for(const x of w)x.visible&&y++;if(y!==0)for(let x=f+p.length;xk+(D.visible?D.renderNodeCount:0),0);this._updateAncestorsRenderNodeCount(a,b-x),this.list.splice(l,x,u)}if(w.length>0&&o){const x=k=>{o(k),k.children.forEach(x)};w.forEach(x)}this._onDidSplice.fire({insertedNodes:p,deletedNodes:w});let S=a;for(;S;){if(S.visibility===2){this.refilterDelayer.trigger(()=>this.refilter());break}S=S.parent}}rerender(e){if(e.length===0)throw new dl(this.user,"Invalid tree location");const{node:t,listIndex:i,revealed:s}=this.getTreeNodeWithListIndex(e);t.visible&&s&&this.list.splice(i,1,[t])}has(e){return this.hasTreeNode(e)}getListIndex(e){const{listIndex:t,visible:i,revealed:s}=this.getTreeNodeWithListIndex(e);return i&&s?t:-1}getListRenderCount(e){return this.getTreeNode(e).renderNodeCount}isCollapsible(e){return this.getTreeNode(e).collapsible}setCollapsible(e,t){const i=this.getTreeNode(e);typeof t>"u"&&(t=!i.collapsible);const s={collapsible:t};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(e,s))}isCollapsed(e){return this.getTreeNode(e).collapsed}setCollapsed(e,t,i){const s=this.getTreeNode(e);typeof t>"u"&&(t=!s.collapsed);const o={collapsed:t,recursive:i||!1};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(e,o))}_setCollapseState(e,t){const{node:i,listIndex:s,revealed:o}=this.getTreeNodeWithListIndex(e),r=this._setListNodeCollapseState(i,s,o,t);if(i!==this.root&&this.autoExpandSingleChildren&&r&&!H5(t)&&i.collapsible&&!i.collapsed&&!t.recursive){let a=-1;for(let l=0;l-1){a=-1;break}else a=l;a>-1&&this._setCollapseState([...e,a],t)}return r}_setListNodeCollapseState(e,t,i,s){const o=this._setNodeCollapseState(e,s,!1);if(!i||!e.visible||!o)return o;const r=e.renderNodeCount,a=this.updateNodeAfterCollapseChange(e),l=r-(t===-1?0:1);return this.list.splice(t+1,l,a.slice(1)),o}_setNodeCollapseState(e,t,i){let s;if(e===this.root?s=!1:(H5(t)?(s=e.collapsible!==t.collapsible,e.collapsible=t.collapsible):e.collapsible?(s=e.collapsed!==t.collapsed,e.collapsed=t.collapsed):s=!1,s&&this._onDidChangeCollapseState.fire({node:e,deep:i})),!H5(t)&&t.recursive)for(const o of e.children)s=this._setNodeCollapseState(o,t,!0)||s;return s}expandTo(e){this.eventBufferer.bufferEvents(()=>{let t=this.getTreeNode(e);for(;t.parent;)t=t.parent,e=e.slice(0,e.length-1),t.collapsed&&this._setCollapseState(e,{collapsed:!1,recursive:!1})})}refilter(){const e=this.root.renderNodeCount,t=this.updateNodeAfterFilterChange(this.root);this.list.splice(0,e,t),this.refilterDelayer.cancel()}createTreeNode(e,t,i,s,o,r){const a={parent:t,element:e.element,children:[],depth:t.depth+1,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:typeof e.collapsible=="boolean"?e.collapsible:typeof e.collapsed<"u",collapsed:typeof e.collapsed>"u"?this.collapseByDefault:e.collapsed,renderNodeCount:1,visibility:1,visible:!0,filterData:void 0},l=this._filterNode(a,i);a.visibility=l,s&&o.push(a);const c=e.children||oi.empty(),d=s&&l!==0&&!a.collapsed;let u=0,h=1;for(const f of c){const g=this.createTreeNode(f,a,l,d,o,r);a.children.push(g),h+=g.renderNodeCount,g.visible&&(g.visibleChildIndex=u++)}return this.allowNonCollapsibleParents||(a.collapsible=a.collapsible||a.children.length>0),a.visibleChildrenCount=u,a.visible=l===2?u>0:l===1,a.visible?a.collapsed||(a.renderNodeCount=h):(a.renderNodeCount=0,s&&o.pop()),r==null||r(a),a}updateNodeAfterCollapseChange(e){const t=e.renderNodeCount,i=[];return this._updateNodeAfterCollapseChange(e,i),this._updateAncestorsRenderNodeCount(e.parent,i.length-t),i}_updateNodeAfterCollapseChange(e,t){if(e.visible===!1)return 0;if(t.push(e),e.renderNodeCount=1,!e.collapsed)for(const i of e.children)e.renderNodeCount+=this._updateNodeAfterCollapseChange(i,t);return this._onDidChangeRenderNodeCount.fire(e),e.renderNodeCount}updateNodeAfterFilterChange(e){const t=e.renderNodeCount,i=[];return this._updateNodeAfterFilterChange(e,e.visible?1:0,i),this._updateAncestorsRenderNodeCount(e.parent,i.length-t),i}_updateNodeAfterFilterChange(e,t,i,s=!0){let o;if(e!==this.root){if(o=this._filterNode(e,t),o===0)return e.visible=!1,e.renderNodeCount=0,!1;s&&i.push(e)}const r=i.length;e.renderNodeCount=e===this.root?0:1;let a=!1;if(!e.collapsed||o!==0){let l=0;for(const c of e.children)a=this._updateNodeAfterFilterChange(c,o,i,s&&!e.collapsed)||a,c.visible&&(c.visibleChildIndex=l++);e.visibleChildrenCount=l}else e.visibleChildrenCount=0;return e!==this.root&&(e.visible=o===2?a:o===1,e.visibility=o),e.visible?e.collapsed||(e.renderNodeCount+=i.length-r):(e.renderNodeCount=0,s&&i.pop()),this._onDidChangeRenderNodeCount.fire(e),e.visible}_updateAncestorsRenderNodeCount(e,t){if(t!==0)for(;e;)e.renderNodeCount+=t,this._onDidChangeRenderNodeCount.fire(e),e=e.parent}_filterNode(e,t){const i=this.filter?this.filter.filter(e.element,t):1;return typeof i=="boolean"?(e.filterData=void 0,i?1:0):I$(i)?(e.filterData=i.data,YL(i.visibility)):(e.filterData=void 0,YL(i))}hasTreeNode(e,t=this.root){if(!e||e.length===0)return!0;const[i,...s]=e;return i<0||i>t.children.length?!1:this.hasTreeNode(s,t.children[i])}getTreeNode(e,t=this.root){if(!e||e.length===0)return t;const[i,...s]=e;if(i<0||i>t.children.length)throw new dl(this.user,"Invalid tree location");return this.getTreeNode(s,t.children[i])}getTreeNodeWithListIndex(e){if(e.length===0)return{node:this.root,listIndex:-1,revealed:!0,visible:!1};const{parentNode:t,listIndex:i,revealed:s,visible:o}=this.getParentNodeWithListIndex(e),r=e[e.length-1];if(r<0||r>t.children.length)throw new dl(this.user,"Invalid tree location");const a=t.children[r];return{node:a,listIndex:i,revealed:s,visible:o&&a.visible}}getParentNodeWithListIndex(e,t=this.root,i=0,s=!0,o=!0){const[r,...a]=e;if(r<0||r>t.children.length)throw new dl(this.user,"Invalid tree location");for(let l=0;lt.element)),this.data=e}}function V5(n){return n instanceof TD?new Xze(n):n}class Qze{constructor(e,t){this.modelProvider=e,this.dnd=t,this.autoExpandDisposable=ne.None,this.disposables=new be}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map(i=>i.element),t)}onDragStart(e,t){var i,s;(s=(i=this.dnd).onDragStart)===null||s===void 0||s.call(i,V5(e),t)}onDragOver(e,t,i,s,o,r=!0){const a=this.dnd.onDragOver(V5(e),t&&t.element,i,s,o),l=this.autoExpandNode!==t;if(l&&(this.autoExpandDisposable.dispose(),this.autoExpandNode=t),typeof t>"u")return a;if(l&&typeof a!="boolean"&&a.autoExpand&&(this.autoExpandDisposable=Om(()=>{const f=this.modelProvider(),g=f.getNodeLocation(t);f.isCollapsed(g)&&f.setCollapsed(g,!1),this.autoExpandNode=void 0},500,this.disposables)),typeof a=="boolean"||!a.accept||typeof a.bubble>"u"||a.feedback){if(!r){const f=typeof a=="boolean"?a:a.accept,g=typeof a=="boolean"?void 0:a.effect;return{accept:f,effect:g,feedback:[i]}}return a}if(a.bubble===1){const f=this.modelProvider(),g=f.getNodeLocation(t),p=f.getParentNodeLocation(g),_=f.getNode(p),b=p&&f.getListIndex(p);return this.onDragOver(e,_,b,s,o,!1)}const c=this.modelProvider(),d=c.getNodeLocation(t),u=c.getListIndex(d),h=c.getListRenderCount(d);return{...a,feedback:Xr(u,u+h)}}drop(e,t,i,s,o){this.autoExpandDisposable.dispose(),this.autoExpandNode=void 0,this.dnd.drop(V5(e),t&&t.element,i,s,o)}onDragEnd(e){var t,i;(i=(t=this.dnd).onDragEnd)===null||i===void 0||i.call(t,e)}dispose(){this.disposables.dispose(),this.dnd.dispose()}}function Jze(n,e){return e&&{...e,identityProvider:e.identityProvider&&{getId(t){return e.identityProvider.getId(t.element)}},dnd:e.dnd&&new Qze(n,e.dnd),multipleSelectionController:e.multipleSelectionController&&{isSelectionSingleChangeEvent(t){return e.multipleSelectionController.isSelectionSingleChangeEvent({...t,element:t.element})},isSelectionRangeChangeEvent(t){return e.multipleSelectionController.isSelectionRangeChangeEvent({...t,element:t.element})}},accessibilityProvider:e.accessibilityProvider&&{...e.accessibilityProvider,getSetSize(t){const i=n(),s=i.getNodeLocation(t),o=i.getParentNodeLocation(s);return i.getNode(o).visibleChildrenCount},getPosInSet(t){return t.visibleChildIndex+1},isChecked:e.accessibilityProvider&&e.accessibilityProvider.isChecked?t=>e.accessibilityProvider.isChecked(t.element):void 0,getRole:e.accessibilityProvider&&e.accessibilityProvider.getRole?t=>e.accessibilityProvider.getRole(t.element):()=>"treeitem",getAriaLabel(t){return e.accessibilityProvider.getAriaLabel(t.element)},getWidgetAriaLabel(){return e.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:e.accessibilityProvider&&e.accessibilityProvider.getWidgetRole?()=>e.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:e.accessibilityProvider&&e.accessibilityProvider.getAriaLevel?t=>e.accessibilityProvider.getAriaLevel(t.element):t=>t.depth,getActiveDescendantId:e.accessibilityProvider.getActiveDescendantId&&(t=>e.accessibilityProvider.getActiveDescendantId(t.element))},keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&{...e.keyboardNavigationLabelProvider,getKeyboardNavigationLabel(t){return e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t.element)}}}}class E${constructor(e){this.delegate=e}getHeight(e){return this.delegate.getHeight(e.element)}getTemplateId(e){return this.delegate.getTemplateId(e.element)}hasDynamicHeight(e){return!!this.delegate.hasDynamicHeight&&this.delegate.hasDynamicHeight(e.element)}setDynamicHeight(e,t){var i,s;(s=(i=this.delegate).setDynamicHeight)===null||s===void 0||s.call(i,e.element,t)}}var ew;(function(n){n.None="none",n.OnHover="onHover",n.Always="always"})(ew||(ew={}));class e$e{get elements(){return this._elements}constructor(e,t=[]){this._elements=t,this.disposables=new be,this.onDidChange=Ae.forEach(e,i=>this._elements=i,this.disposables)}dispose(){this.disposables.dispose()}}class XL{constructor(e,t,i,s,o,r={}){var a;this.renderer=e,this.modelProvider=t,this.activeNodes=s,this.renderedIndentGuides=o,this.renderedElements=new Map,this.renderedNodes=new Map,this.indent=XL.DefaultIndent,this.hideTwistiesOfChildlessElements=!1,this.shouldRenderIndentGuides=!1,this.activeIndentNodes=new Set,this.indentGuidesDisposable=ne.None,this.disposables=new be,this.templateId=e.templateId,this.updateOptions(r),Ae.map(i,l=>l.node)(this.onDidChangeNodeTwistieState,this,this.disposables),(a=e.onDidChangeTwistieState)===null||a===void 0||a.call(e,this.onDidChangeTwistieState,this,this.disposables)}updateOptions(e={}){if(typeof e.indent<"u"){const t=Sr(e.indent,0,40);if(t!==this.indent){this.indent=t;for(const[i,s]of this.renderedNodes)this.renderTreeElement(i,s)}}if(typeof e.renderIndentGuides<"u"){const t=e.renderIndentGuides!==ew.None;if(t!==this.shouldRenderIndentGuides){this.shouldRenderIndentGuides=t;for(const[i,s]of this.renderedNodes)this._renderIndentGuides(i,s);if(this.indentGuidesDisposable.dispose(),t){const i=new be;this.activeNodes.onDidChange(this._onDidChangeActiveNodes,this,i),this.indentGuidesDisposable=i,this._onDidChangeActiveNodes(this.activeNodes.elements)}}}typeof e.hideTwistiesOfChildlessElements<"u"&&(this.hideTwistiesOfChildlessElements=e.hideTwistiesOfChildlessElements)}renderTemplate(e){const t=we(e,ke(".monaco-tl-row")),i=we(t,ke(".monaco-tl-indent")),s=we(t,ke(".monaco-tl-twistie")),o=we(t,ke(".monaco-tl-contents")),r=this.renderer.renderTemplate(o);return{container:e,indent:i,twistie:s,indentGuidesDisposable:ne.None,templateData:r}}renderElement(e,t,i,s){this.renderedNodes.set(e,i),this.renderedElements.set(e.element,e),this.renderTreeElement(e,i),this.renderer.renderElement(e,t,i.templateData,s)}disposeElement(e,t,i,s){var o,r;i.indentGuidesDisposable.dispose(),(r=(o=this.renderer).disposeElement)===null||r===void 0||r.call(o,e,t,i.templateData,s),typeof s=="number"&&(this.renderedNodes.delete(e),this.renderedElements.delete(e.element))}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}onDidChangeTwistieState(e){const t=this.renderedElements.get(e);t&&this.onDidChangeNodeTwistieState(t)}onDidChangeNodeTwistieState(e){const t=this.renderedNodes.get(e);t&&(this._onDidChangeActiveNodes(this.activeNodes.elements),this.renderTreeElement(e,t))}renderTreeElement(e,t){const i=XL.DefaultIndent+(e.depth-1)*this.indent;t.twistie.style.paddingLeft=`${i}px`,t.indent.style.width=`${i+this.indent-16}px`,e.collapsible?t.container.setAttribute("aria-expanded",String(!e.collapsed)):t.container.removeAttribute("aria-expanded"),t.twistie.classList.remove(..._t.asClassNameArray(Te.treeItemExpanded));let s=!1;this.renderer.renderTwistie&&(s=this.renderer.renderTwistie(e.element,t.twistie)),e.collapsible&&(!this.hideTwistiesOfChildlessElements||e.visibleChildrenCount>0)?(s||t.twistie.classList.add(..._t.asClassNameArray(Te.treeItemExpanded)),t.twistie.classList.add("collapsible"),t.twistie.classList.toggle("collapsed",e.collapsed)):t.twistie.classList.remove("collapsible","collapsed"),this._renderIndentGuides(e,t)}_renderIndentGuides(e,t){if(wo(t.indent),t.indentGuidesDisposable.dispose(),!this.shouldRenderIndentGuides)return;const i=new be,s=this.modelProvider();for(;;){const o=s.getNodeLocation(e),r=s.getParentNodeLocation(o);if(!r)break;const a=s.getNode(r),l=ke(".indent-guide",{style:`width: ${this.indent}px`});this.activeIndentNodes.has(a)&&l.classList.add("active"),t.indent.childElementCount===0?t.indent.appendChild(l):t.indent.insertBefore(l,t.indent.firstElementChild),this.renderedIndentGuides.add(a,l),i.add(dt(()=>this.renderedIndentGuides.delete(a,l))),e=a}t.indentGuidesDisposable=i}_onDidChangeActiveNodes(e){if(!this.shouldRenderIndentGuides)return;const t=new Set,i=this.modelProvider();e.forEach(s=>{const o=i.getNodeLocation(s);try{const r=i.getParentNodeLocation(o);s.collapsible&&s.children.length>0&&!s.collapsed?t.add(s):r&&t.add(i.getNode(r))}catch{}}),this.activeIndentNodes.forEach(s=>{t.has(s)||this.renderedIndentGuides.forEach(s,o=>o.classList.remove("active"))}),t.forEach(s=>{this.activeIndentNodes.has(s)||this.renderedIndentGuides.forEach(s,o=>o.classList.add("active"))}),this.activeIndentNodes=t}dispose(){this.renderedNodes.clear(),this.renderedElements.clear(),this.indentGuidesDisposable.dispose(),tn(this.disposables)}}XL.DefaultIndent=8;class t$e{get totalCount(){return this._totalCount}get matchCount(){return this._matchCount}constructor(e,t,i){this.tree=e,this.keyboardNavigationLabelProvider=t,this._filter=i,this._totalCount=0,this._matchCount=0,this._pattern="",this._lowercasePattern="",this.disposables=new be,e.onWillRefilter(this.reset,this,this.disposables)}filter(e,t){let i=1;if(this._filter){const r=this._filter.filter(e,t);if(typeof r=="boolean"?i=r?1:0:I$(r)?i=YL(r.visibility):i=r,i===0)return!1}if(this._totalCount++,!this._pattern)return this._matchCount++,{data:Yd.Default,visibility:i};const s=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e),o=Array.isArray(s)?s:[s];for(const r of o){const a=r&&r.toString();if(typeof a>"u")return{data:Yd.Default,visibility:i};let l;if(this.tree.findMatchType===w0.Contiguous){const c=a.toLowerCase().indexOf(this._lowercasePattern);if(c>-1){l=[Number.MAX_SAFE_INTEGER,0];for(let d=this._lowercasePattern.length;d>0;d--)l.push(c+d-1)}}else l=v0(this._pattern,this._lowercasePattern,0,a,a.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});if(l)return this._matchCount++,o.length===1?{data:l,visibility:i}:{data:{label:a,score:l},visibility:i}}return this.tree.findMode===cg.Filter?typeof this.tree.options.defaultFindVisibility=="number"?this.tree.options.defaultFindVisibility:this.tree.options.defaultFindVisibility?this.tree.options.defaultFindVisibility(e):2:{data:Yd.Default,visibility:i}}reset(){this._totalCount=0,this._matchCount=0}dispose(){tn(this.disposables)}}var cg;(function(n){n[n.Highlight=0]="Highlight",n[n.Filter=1]="Filter"})(cg||(cg={}));var w0;(function(n){n[n.Fuzzy=0]="Fuzzy",n[n.Contiguous=1]="Contiguous"})(w0||(w0={}));let i$e=class{get pattern(){return this._pattern}get mode(){return this._mode}set mode(e){e!==this._mode&&(this._mode=e,this.widget&&(this.widget.mode=this._mode),this.tree.refilter(),this.render(),this._onDidChangeMode.fire(e))}get matchType(){return this._matchType}set matchType(e){e!==this._matchType&&(this._matchType=e,this.widget&&(this.widget.matchType=this._matchType),this.tree.refilter(),this.render(),this._onDidChangeMatchType.fire(e))}constructor(e,t,i,s,o,r={}){var a,l;this.tree=e,this.view=i,this.filter=s,this.contextViewProvider=o,this.options=r,this._pattern="",this.width=0,this._onDidChangeMode=new X,this.onDidChangeMode=this._onDidChangeMode.event,this._onDidChangeMatchType=new X,this.onDidChangeMatchType=this._onDidChangeMatchType.event,this._onDidChangePattern=new X,this._onDidChangeOpenState=new X,this.onDidChangeOpenState=this._onDidChangeOpenState.event,this.enabledDisposables=new be,this.disposables=new be,this._mode=(a=e.options.defaultFindMode)!==null&&a!==void 0?a:cg.Highlight,this._matchType=(l=e.options.defaultFindMatchType)!==null&&l!==void 0?l:w0.Fuzzy,t.onDidSplice(this.onDidSpliceModel,this,this.disposables)}updateOptions(e={}){e.defaultFindMode!==void 0&&(this.mode=e.defaultFindMode),e.defaultFindMatchType!==void 0&&(this.matchType=e.defaultFindMatchType)}onDidSpliceModel(){!this.widget||this.pattern.length===0||(this.tree.refilter(),this.render())}render(){var e,t,i,s;const o=this.filter.totalCount>0&&this.filter.matchCount===0;this.pattern&&o?!((e=this.tree.options.showNotFoundMessage)!==null&&e!==void 0)||e?(t=this.widget)===null||t===void 0||t.showMessage({type:2,content:v("not found","No elements found.")}):(i=this.widget)===null||i===void 0||i.showMessage({type:2}):(s=this.widget)===null||s===void 0||s.clearMessage()}shouldAllowFocus(e){return!this.widget||!this.pattern||this.filter.totalCount>0&&this.filter.matchCount<=1?!0:!Yd.isDefault(e.filterData)}layout(e){var t;this.width=e,(t=this.widget)===null||t===void 0||t.layout(e)}dispose(){this._history=void 0,this._onDidChangePattern.dispose(),this.enabledDisposables.dispose(),this.disposables.dispose()}};function n$e(n,e){return n.position===e.position&&oue(n,e)}function oue(n,e){return n.node.element===e.node.element&&n.startIndex===e.startIndex&&n.height===e.height&&n.endIndex===e.endIndex}class s$e{constructor(e=[]){this.stickyNodes=e}get count(){return this.stickyNodes.length}equal(e){return zn(this.stickyNodes,e.stickyNodes,n$e)}lastNodePartiallyVisible(){if(this.count===0)return!1;const e=this.stickyNodes[this.count-1];if(this.count===1)return e.position!==0;const t=this.stickyNodes[this.count-2];return t.position+t.height!==e.position}animationStateChanged(e){if(!zn(this.stickyNodes,e.stickyNodes,oue)||this.count===0)return!1;const t=this.stickyNodes[this.count-1],i=e.stickyNodes[e.count-1];return t.position!==i.position}}class o$e{constrainStickyScrollNodes(e,t,i){for(let s=0;si||s>=t)return e.slice(0,s)}return e}}let PJ=class extends ne{constructor(e,t,i,s,o,r={}){var a;super(),this.tree=e,this.model=t,this.view=i,this.treeDelegate=o,this.maxWidgetViewRatio=.4;const l=this.validateStickySettings(r);this.stickyScrollMaxItemCount=l.stickyScrollMaxItemCount,this.stickyScrollDelegate=(a=r.stickyScrollDelegate)!==null&&a!==void 0?a:new o$e,this._widget=this._register(new r$e(i.getScrollableElement(),i,e,s,o,r.accessibilityProvider)),this.onDidChangeHasFocus=this._widget.onDidChangeHasFocus,this.onContextMenu=this._widget.onContextMenu,this._register(i.onDidScroll(()=>this.update())),this._register(i.onDidChangeContentHeight(()=>this.update())),this._register(e.onDidChangeCollapseState(()=>this.update())),this.update()}get height(){return this._widget.height}getNodeAtHeight(e){let t;if(e===0?t=this.view.firstVisibleIndex:t=this.view.indexAt(e+this.view.scrollTop),!(t<0||t>=this.view.length))return this.view.element(t)}update(){const e=this.getNodeAtHeight(0);if(!e||this.tree.scrollTop===0){this._widget.setState(void 0);return}const t=this.findStickyState(e);this._widget.setState(t)}findStickyState(e){const t=[];let i=e,s=0,o=this.getNextStickyNode(i,void 0,s);for(;o&&(t.push(o),s+=o.height,!(t.length<=this.stickyScrollMaxItemCount&&(i=this.getNextVisibleNode(o),!i)));)o=this.getNextStickyNode(i,o.node,s);const r=this.constrainStickyNodes(t);return r.length?new s$e(r):void 0}getNextVisibleNode(e){return this.getNodeAtHeight(e.position+e.height)}getNextStickyNode(e,t,i){const s=this.getAncestorUnderPrevious(e,t);if(s&&!(s===e&&(!this.nodeIsUncollapsedParent(e)||this.nodeTopAlignsWithStickyNodesBottom(e,i))))return this.createStickyScrollNode(s,i)}nodeTopAlignsWithStickyNodesBottom(e,t){const i=this.getNodeIndex(e),s=this.view.getElementTop(i),o=t;return this.view.scrollTop===s-o}createStickyScrollNode(e,t){const i=this.treeDelegate.getHeight(e),{startIndex:s,endIndex:o}=this.getNodeRange(e),r=this.calculateStickyNodePosition(o,t,i);return{node:e,position:r,height:i,startIndex:s,endIndex:o}}getAncestorUnderPrevious(e,t=void 0){let i=e,s=this.getParentNode(i);for(;s;){if(s===t)return i;i=s,s=this.getParentNode(i)}if(t===void 0)return i}calculateStickyNodePosition(e,t,i){let s=this.view.getRelativeTop(e);if(s===null&&this.view.firstVisibleIndex===e&&e+1l&&t<=l?l-i:t}constrainStickyNodes(e){if(e.length===0)return[];const t=this.view.renderHeight*this.maxWidgetViewRatio,i=e[e.length-1];if(e.length<=this.stickyScrollMaxItemCount&&i.position+i.height<=t)return e;const s=this.stickyScrollDelegate.constrainStickyScrollNodes(e,this.stickyScrollMaxItemCount,t);if(!s.length)return[];const o=s[s.length-1];if(s.length>this.stickyScrollMaxItemCount||o.position+o.height>t)throw new Error("stickyScrollDelegate violates constraints");return s}getParentNode(e){const t=this.model.getNodeLocation(e),i=this.model.getParentNodeLocation(t);return i?this.model.getNode(i):void 0}nodeIsUncollapsedParent(e){const t=this.model.getNodeLocation(e);return this.model.getListRenderCount(t)>1}getNodeIndex(e){const t=this.model.getNodeLocation(e);return this.model.getListIndex(t)}getNodeRange(e){const t=this.model.getNodeLocation(e),i=this.model.getListIndex(t);if(i<0)throw new Error("Node not found in tree");const s=this.model.getListRenderCount(t),o=i+s-1;return{startIndex:i,endIndex:o}}nodePositionTopBelowWidget(e){const t=[];let i=this.getParentNode(e);for(;i;)t.push(i),i=this.getParentNode(i);let s=0;for(let o=0;o0,i=!!e&&e.count>0;if(!t&&!i||t&&i&&this._previousState.equal(e))return;if(t!==i&&this.setVisible(i),!i){this._previousState=void 0,this._previousElements=[],this._previousStateDisposables.clear();return}const s=e.stickyNodes[e.count-1];if(this._previousState&&e.animationStateChanged(this._previousState))this._previousElements[this._previousState.count-1].style.top=`${s.position}px`;else{this._previousStateDisposables.clear();const o=Array(e.count);for(let r=e.count-1;r>=0;r--){const a=e.stickyNodes[r],{element:l,disposable:c}=this.createElement(a,r,e.count);o[r]=l,this._rootDomNode.appendChild(l),this._previousStateDisposables.add(c)}this.stickyScrollFocus.updateElements(o,e),this._previousElements=o}this._previousState=e,this._rootDomNode.style.height=`${s.position+s.height}px`}createElement(e,t,i){const s=e.startIndex,o=document.createElement("div");o.style.top=`${e.position}px`,this.tree.options.setRowHeight!==!1&&(o.style.height=`${e.height}px`),this.tree.options.setRowLineHeight!==!1&&(o.style.lineHeight=`${e.height}px`),o.classList.add("monaco-tree-sticky-row"),o.classList.add("monaco-list-row"),o.setAttribute("data-index",`${s}`),o.setAttribute("data-parity",s%2===0?"even":"odd"),o.setAttribute("id",this.view.getElementID(s));const r=this.setAccessibilityAttributes(o,e.node.element,t,i),a=this.treeDelegate.getTemplateId(e.node),l=this.treeRenderers.find(h=>h.templateId===a);if(!l)throw new Error(`No renderer found for template id ${a}`);let c=e.node;c===this.tree.getNode(this.tree.getNodeLocation(e.node))&&(c=new Proxy(e.node,{}));const d=l.renderTemplate(o);l.renderElement(c,e.startIndex,d,e.height);const u=dt(()=>{r.dispose(),l.disposeElement(c,e.startIndex,d,e.height),l.disposeTemplate(d),o.remove()});return{element:o,disposable:u}}setAccessibilityAttributes(e,t,i,s){var o;if(!this.accessibilityProvider)return ne.None;this.accessibilityProvider.getSetSize&&e.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize(t,i,s))),this.accessibilityProvider.getPosInSet&&e.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet(t,i))),this.accessibilityProvider.getRole&&e.setAttribute("role",(o=this.accessibilityProvider.getRole(t))!==null&&o!==void 0?o:"treeitem");const r=this.accessibilityProvider.getAriaLabel(t),a=r&&typeof r!="string"?r:Vd(r),l=Ut(d=>{const u=d.readObservable(a);u?e.setAttribute("aria-label",u):e.removeAttribute("aria-label")});typeof r=="string"||r&&e.setAttribute("aria-label",r.get());const c=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(t);return typeof c=="number"&&e.setAttribute("aria-level",`${c}`),e.setAttribute("aria-selected",String(!1)),l}setVisible(e){this._rootDomNode.classList.toggle("empty",!e),e||this.stickyScrollFocus.updateElements([],void 0)}domFocus(){this.stickyScrollFocus.domFocus()}focusedLast(){return this.stickyScrollFocus.focusedLast()}dispose(){this.stickyScrollFocus.dispose(),this._previousStateDisposables.dispose(),this._rootDomNode.remove()}};class a$e extends ne{get domHasFocus(){return this._domHasFocus}set domHasFocus(e){e!==this._domHasFocus&&(this._onDidChangeHasFocus.fire(e),this._domHasFocus=e)}constructor(e,t){super(),this.container=e,this.view=t,this.focusedIndex=-1,this.elements=[],this._onDidChangeHasFocus=new X,this.onDidChangeHasFocus=this._onDidChangeHasFocus.event,this._onContextMenu=new X,this.onContextMenu=this._onContextMenu.event,this._domHasFocus=!1,this.container.addEventListener("focus",()=>this.onFocus()),this.container.addEventListener("blur",()=>this.onBlur()),this._register(this.view.onDidFocus(()=>this.toggleStickyScrollFocused(!1))),this._register(this.view.onKeyDown(i=>this.onKeyDown(i))),this._register(this.view.onMouseDown(i=>this.onMouseDown(i))),this._register(this.view.onContextMenu(i=>this.handleContextMenu(i)))}handleContextMenu(e){const t=e.browserEvent.target;if(!qL(t)&&!Dx(t)){this.focusedLast()&&this.view.domFocus();return}if(!Np(e.browserEvent)){if(!this.state)throw new Error("Context menu should not be triggered when state is undefined");const r=this.state.stickyNodes.findIndex(a=>{var l;return a.node.element===((l=e.element)===null||l===void 0?void 0:l.element)});if(r===-1)throw new Error("Context menu should not be triggered when element is not in sticky scroll widget");this.container.focus(),this.setFocus(r);return}if(!this.state||this.focusedIndex<0)throw new Error("Context menu key should not be triggered when focus is not in sticky scroll widget");const s=this.state.stickyNodes[this.focusedIndex].node.element,o=this.elements[this.focusedIndex];this._onContextMenu.fire({element:s,anchor:o,browserEvent:e.browserEvent,isStickyScroll:!0})}onKeyDown(e){if(this.domHasFocus&&this.state){if(e.key==="ArrowUp")this.setFocusedElement(Math.max(0,this.focusedIndex-1)),e.preventDefault(),e.stopPropagation();else if(e.key==="ArrowDown"||e.key==="ArrowRight"){if(this.focusedIndex>=this.state.count-1){const t=this.state.stickyNodes[this.state.count-1].startIndex+1;this.view.domFocus(),this.view.setFocus([t]),this.scrollNodeUnderWidget(t,this.state)}else this.setFocusedElement(this.focusedIndex+1);e.preventDefault(),e.stopPropagation()}}}onMouseDown(e){const t=e.browserEvent.target;!qL(t)&&!Dx(t)||(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation())}updateElements(e,t){if(t&&t.count===0)throw new Error("Sticky scroll state must be undefined when there are no sticky nodes");if(t&&t.count!==e.length)throw new Error("Sticky scroll focus received illigel state");const i=this.focusedIndex;if(this.removeFocus(),this.elements=e,this.state=t,t){const s=Sr(i,0,t.count-1);this.setFocus(s)}else this.domHasFocus&&this.view.domFocus();this.container.tabIndex=t?0:-1}setFocusedElement(e){const t=this.state;if(!t)throw new Error("Cannot set focus when state is undefined");if(this.setFocus(e),!(e1?t.stickyNodes[t.count-2]:void 0,o=this.view.getElementTop(e),r=s?s.position+s.height+i.height:i.height;this.view.scrollTop=o-r}domFocus(){if(!this.state)throw new Error("Cannot focus when state is undefined");this.container.focus()}focusedLast(){return this.state?this.view.getHTMLElement().classList.contains("sticky-scroll-focused"):!1}removeFocus(){this.focusedIndex!==-1&&(this.toggleElementFocus(this.elements[this.focusedIndex],!1),this.focusedIndex=-1)}setFocus(e){if(0>e)throw new Error("addFocus() can not remove focus");if(!this.state&&e>=0)throw new Error("Cannot set focus index when state is undefined");if(this.state&&e>=this.state.count)throw new Error("Cannot set focus index to an index that does not exist");const t=this.focusedIndex;t>=0&&this.toggleElementFocus(this.elements[t],!1),e>=0&&this.toggleElementFocus(this.elements[e],!0),this.focusedIndex=e}toggleElementFocus(e,t){this.toggleElementActiveFocus(e,t&&this.domHasFocus),this.toggleElementPassiveFocus(e,t)}toggleCurrentElementActiveFocus(e){this.focusedIndex!==-1&&this.toggleElementActiveFocus(this.elements[this.focusedIndex],e)}toggleElementActiveFocus(e,t){e.classList.toggle("focused",t)}toggleElementPassiveFocus(e,t){e.classList.toggle("passive-focused",t)}toggleStickyScrollFocused(e){this.view.getHTMLElement().classList.toggle("sticky-scroll-focused",e)}onFocus(){if(!this.state||this.elements.length===0)throw new Error("Cannot focus when state is undefined or elements are empty");this.domHasFocus=!0,this.toggleStickyScrollFocused(!0),this.toggleCurrentElementActiveFocus(!0),this.focusedIndex===-1&&this.setFocus(0)}onBlur(){this.domHasFocus=!1,this.toggleCurrentElementActiveFocus(!1)}dispose(){this.toggleStickyScrollFocused(!1),this._onDidChangeHasFocus.fire(!1),super.dispose()}}function dT(n){let e=Tv.Unknown;return PF(n.browserEvent.target,"monaco-tl-twistie","monaco-tl-row")?e=Tv.Twistie:PF(n.browserEvent.target,"monaco-tl-contents","monaco-tl-row")?e=Tv.Element:PF(n.browserEvent.target,"monaco-tree-type-filter","monaco-list")&&(e=Tv.Filter),{browserEvent:n.browserEvent,element:n.element?n.element.element:null,target:e}}function l$e(n){const e=qL(n.browserEvent.target);return{element:n.element?n.element.element:null,browserEvent:n.browserEvent,anchor:n.anchor,isStickyScroll:e}}function EN(n,e){e(n),n.children.forEach(t=>EN(t,e))}class z5{get nodeSet(){return this._nodeSet||(this._nodeSet=this.createNodeSet()),this._nodeSet}constructor(e,t){this.getFirstViewElementWithTrait=e,this.identityProvider=t,this.nodes=[],this._onDidChange=new X,this.onDidChange=this._onDidChange.event}set(e,t){!(t!=null&&t.__forceEvent)&&zn(this.nodes,e)||this._set(e,!1,t)}_set(e,t,i){if(this.nodes=[...e],this.elements=void 0,this._nodeSet=void 0,!t){const s=this;this._onDidChange.fire({get elements(){return s.get()},browserEvent:i})}}get(){return this.elements||(this.elements=this.nodes.map(e=>e.element)),[...this.elements]}getNodes(){return this.nodes}has(e){return this.nodeSet.has(e)}onDidModelSplice({insertedNodes:e,deletedNodes:t}){if(!this.identityProvider){const l=this.createNodeSet(),c=d=>l.delete(d);t.forEach(d=>EN(d,c)),this.set([...l.values()]);return}const i=new Set,s=l=>i.add(this.identityProvider.getId(l.element).toString());t.forEach(l=>EN(l,s));const o=new Map,r=l=>o.set(this.identityProvider.getId(l.element).toString(),l);e.forEach(l=>EN(l,r));const a=[];for(const l of this.nodes){const c=this.identityProvider.getId(l.element).toString();if(!i.has(c))a.push(l);else{const u=o.get(c);u&&u.visible&&a.push(u)}}if(this.nodes.length>0&&a.length===0){const l=this.getFirstViewElementWithTrait();l&&a.push(l)}this._set(a,!0)}createNodeSet(){const e=new Set;for(const t of this.nodes)e.add(t);return e}}class c$e extends Vde{constructor(e,t,i){super(e),this.tree=t,this.stickyScrollProvider=i}onViewPointer(e){if(Fde(e.browserEvent.target)||mm(e.browserEvent.target)||RS(e.browserEvent.target)||e.browserEvent.isHandledByList)return;const t=e.element;if(!t)return super.onViewPointer(e);if(this.isSelectionRangeChangeEvent(e)||this.isSelectionSingleChangeEvent(e))return super.onViewPointer(e);const i=e.browserEvent.target,s=i.classList.contains("monaco-tl-twistie")||i.classList.contains("monaco-icon-label")&&i.classList.contains("folder-icon")&&e.browserEvent.offsetX<16,o=Dx(e.browserEvent.target);let r=!1;if(o?r=!0:typeof this.tree.expandOnlyOnTwistieClick=="function"?r=this.tree.expandOnlyOnTwistieClick(t.element):r=!!this.tree.expandOnlyOnTwistieClick,o)this.handleStickyScrollMouseEvent(e,t);else{if(r&&!s&&e.browserEvent.detail!==2)return super.onViewPointer(e);if(!this.tree.expandOnDoubleClick&&e.browserEvent.detail===2)return super.onViewPointer(e)}if(t.collapsible&&(!o||s)){const a=this.tree.getNodeLocation(t),l=e.browserEvent.altKey;if(this.tree.setFocus([a]),this.tree.toggleCollapsed(a,l),s){e.browserEvent.isHandledByList=!0;return}}o||super.onViewPointer(e)}handleStickyScrollMouseEvent(e,t){if(yVe(e.browserEvent.target)||SVe(e.browserEvent.target))return;const i=this.stickyScrollProvider();if(!i)throw new Error("Sticky scroll controller not found");const s=this.list.indexOf(t),o=this.list.getElementTop(s),r=i.nodePositionTopBelowWidget(t);this.tree.scrollTop=o-r,this.list.domFocus(),this.list.setFocus([s]),this.list.setSelection([s])}onDoubleClick(e){e.browserEvent.target.classList.contains("monaco-tl-twistie")||!this.tree.expandOnDoubleClick||e.browserEvent.isHandledByList||super.onDoubleClick(e)}onMouseDown(e){const t=e.browserEvent.target;if(!qL(t)&&!Dx(t)){super.onMouseDown(e);return}}onContextMenu(e){const t=e.browserEvent.target;if(!qL(t)&&!Dx(t)){super.onContextMenu(e);return}}}class d$e extends El{constructor(e,t,i,s,o,r,a,l){super(e,t,i,s,l),this.focusTrait=o,this.selectionTrait=r,this.anchorTrait=a}createMouseController(e){return new c$e(this,e.tree,e.stickyScrollProvider)}splice(e,t,i=[]){if(super.splice(e,t,i),i.length===0)return;const s=[],o=[];let r;i.forEach((a,l)=>{this.focusTrait.has(a)&&s.push(e+l),this.selectionTrait.has(a)&&o.push(e+l),this.anchorTrait.has(a)&&(r=e+l)}),s.length>0&&super.setFocus(xg([...super.getFocus(),...s])),o.length>0&&super.setSelection(xg([...super.getSelection(),...o])),typeof r=="number"&&super.setAnchor(r)}setFocus(e,t,i=!1){super.setFocus(e,t),i||this.focusTrait.set(e.map(s=>this.element(s)),t)}setSelection(e,t,i=!1){super.setSelection(e,t),i||this.selectionTrait.set(e.map(s=>this.element(s)),t)}setAnchor(e,t=!1){super.setAnchor(e),t||(typeof e>"u"?this.anchorTrait.set([]):this.anchorTrait.set([this.element(e)]))}}class rue{get onDidScroll(){return this.view.onDidScroll}get onDidChangeFocus(){return this.eventBufferer.wrapEvent(this.focus.onDidChange)}get onDidChangeSelection(){return this.eventBufferer.wrapEvent(this.selection.onDidChange)}get onMouseDblClick(){return Ae.filter(Ae.map(this.view.onMouseDblClick,dT),e=>e.target!==Tv.Filter)}get onMouseOver(){return Ae.map(this.view.onMouseOver,dT)}get onMouseOut(){return Ae.map(this.view.onMouseOut,dT)}get onContextMenu(){var e,t;return Ae.any(Ae.filter(Ae.map(this.view.onContextMenu,l$e),i=>!i.isStickyScroll),(t=(e=this.stickyScrollController)===null||e===void 0?void 0:e.onContextMenu)!==null&&t!==void 0?t:Ae.None)}get onPointer(){return Ae.map(this.view.onPointer,dT)}get onKeyDown(){return this.view.onKeyDown}get onDidFocus(){return this.view.onDidFocus}get onDidChangeModel(){return Ae.signal(this.model.onDidSplice)}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get findMode(){var e,t;return(t=(e=this.findController)===null||e===void 0?void 0:e.mode)!==null&&t!==void 0?t:cg.Highlight}set findMode(e){this.findController&&(this.findController.mode=e)}get findMatchType(){var e,t;return(t=(e=this.findController)===null||e===void 0?void 0:e.matchType)!==null&&t!==void 0?t:w0.Fuzzy}set findMatchType(e){this.findController&&(this.findController.matchType=e)}get expandOnDoubleClick(){return typeof this._options.expandOnDoubleClick>"u"?!0:this._options.expandOnDoubleClick}get expandOnlyOnTwistieClick(){return typeof this._options.expandOnlyOnTwistieClick>"u"?!0:this._options.expandOnlyOnTwistieClick}get onDidDispose(){return this.view.onDidDispose}constructor(e,t,i,s,o={}){var r;this._user=e,this._options=o,this.eventBufferer=new sM,this.onDidChangeFindOpenState=Ae.None,this.onDidChangeStickyScrollFocused=Ae.None,this.disposables=new be,this._onWillRefilter=new X,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new X,this.treeDelegate=new E$(i);const a=new nY,l=new nY,c=this.disposables.add(new e$e(l.event)),d=new uz;this.renderers=s.map(p=>new XL(p,()=>this.model,a.event,c,d,o));for(const p of this.renderers)this.disposables.add(p);let u;o.keyboardNavigationLabelProvider&&(u=new t$e(this,o.keyboardNavigationLabelProvider,o.filter),o={...o,filter:u},this.disposables.add(u)),this.focus=new z5(()=>this.view.getFocusedElements()[0],o.identityProvider),this.selection=new z5(()=>this.view.getSelectedElements()[0],o.identityProvider),this.anchor=new z5(()=>this.view.getAnchorElement(),o.identityProvider),this.view=new d$e(e,t,this.treeDelegate,this.renderers,this.focus,this.selection,this.anchor,{...Jze(()=>this.model,o),tree:this,stickyScrollProvider:()=>this.stickyScrollController}),this.model=this.createModel(e,this.view,o),a.input=this.model.onDidChangeCollapseState;const h=Ae.forEach(this.model.onDidSplice,p=>{this.eventBufferer.bufferEvents(()=>{this.focus.onDidModelSplice(p),this.selection.onDidModelSplice(p)})},this.disposables);h(()=>null,null,this.disposables);const f=this.disposables.add(new X),g=this.disposables.add(new sd(0));if(this.disposables.add(Ae.any(h,this.focus.onDidChange,this.selection.onDidChange)(()=>{g.trigger(()=>{const p=new Set;for(const _ of this.focus.getNodes())p.add(_);for(const _ of this.selection.getNodes())p.add(_);f.fire([...p.values()])})})),l.input=f.event,o.keyboardSupport!==!1){const p=Ae.chain(this.view.onKeyDown,_=>_.filter(b=>!mm(b.target)).map(b=>new ln(b)));Ae.chain(p,_=>_.filter(b=>b.keyCode===15))(this.onLeftArrow,this,this.disposables),Ae.chain(p,_=>_.filter(b=>b.keyCode===17))(this.onRightArrow,this,this.disposables),Ae.chain(p,_=>_.filter(b=>b.keyCode===10))(this.onSpace,this,this.disposables)}if((!((r=o.findWidgetEnabled)!==null&&r!==void 0)||r)&&o.keyboardNavigationLabelProvider&&o.contextViewProvider){const p=this.options.findWidgetStyles?{styles:this.options.findWidgetStyles}:void 0;this.findController=new i$e(this,this.model,this.view,u,o.contextViewProvider,p),this.focusNavigationFilter=_=>this.findController.shouldAllowFocus(_),this.onDidChangeFindOpenState=this.findController.onDidChangeOpenState,this.disposables.add(this.findController),this.onDidChangeFindMode=this.findController.onDidChangeMode,this.onDidChangeFindMatchType=this.findController.onDidChangeMatchType}else this.onDidChangeFindMode=Ae.None,this.onDidChangeFindMatchType=Ae.None;o.enableStickyScroll&&(this.stickyScrollController=new PJ(this,this.model,this.view,this.renderers,this.treeDelegate,o),this.onDidChangeStickyScrollFocused=this.stickyScrollController.onDidChangeHasFocus),this.styleElement=yl(this.view.getHTMLElement()),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===ew.Always)}updateOptions(e={}){var t;this._options={...this._options,...e};for(const i of this.renderers)i.updateOptions(e);this.view.updateOptions(this._options),(t=this.findController)===null||t===void 0||t.updateOptions(e),this.updateStickyScroll(e),this._onDidUpdateOptions.fire(this._options),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===ew.Always)}get options(){return this._options}updateStickyScroll(e){var t;!this.stickyScrollController&&this._options.enableStickyScroll?(this.stickyScrollController=new PJ(this,this.model,this.view,this.renderers,this.treeDelegate,this._options),this.onDidChangeStickyScrollFocused=this.stickyScrollController.onDidChangeHasFocus):this.stickyScrollController&&!this._options.enableStickyScroll&&(this.onDidChangeStickyScrollFocused=Ae.None,this.stickyScrollController.dispose(),this.stickyScrollController=void 0),(t=this.stickyScrollController)===null||t===void 0||t.updateOptions(e)}getHTMLElement(){return this.view.getHTMLElement()}get scrollTop(){return this.view.scrollTop}set scrollTop(e){this.view.scrollTop=e}get scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}get ariaLabel(){return this.view.ariaLabel}set ariaLabel(e){this.view.ariaLabel=e}domFocus(){var e;!((e=this.stickyScrollController)===null||e===void 0)&&e.focusedLast()?this.stickyScrollController.domFocus():this.view.domFocus()}layout(e,t){var i;this.view.layout(e,t),Nm(t)&&((i=this.findController)===null||i===void 0||i.layout(t))}style(e){var t,i;const s=`.${this.view.domId}`,o=[];e.treeIndentGuidesStroke&&(o.push(`.monaco-list${s}:hover .monaco-tl-indent > .indent-guide, .monaco-list${s}.always .monaco-tl-indent > .indent-guide { border-color: ${e.treeInactiveIndentGuidesStroke}; }`),o.push(`.monaco-list${s} .monaco-tl-indent > .indent-guide.active { border-color: ${e.treeIndentGuidesStroke}; }`));const r=(t=e.treeStickyScrollBackground)!==null&&t!==void 0?t:e.listBackground;r&&(o.push(`.monaco-list${s} .monaco-scrollable-element .monaco-tree-sticky-container { background-color: ${r}; }`),o.push(`.monaco-list${s} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row { background-color: ${r}; }`)),e.treeStickyScrollBorder&&o.push(`.monaco-list${s} .monaco-scrollable-element .monaco-tree-sticky-container { border-bottom: 1px solid ${e.treeStickyScrollBorder}; }`),e.treeStickyScrollShadow&&o.push(`.monaco-list${s} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow { box-shadow: ${e.treeStickyScrollShadow} 0 6px 6px -6px inset; height: 3px; }`),e.listFocusForeground&&(o.push(`.monaco-list${s}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { color: ${e.listFocusForeground}; }`),o.push(`.monaco-list${s}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { color: inherit; }`));const a=mg(e.listFocusAndSelectionOutline,mg(e.listSelectionOutline,(i=e.listFocusOutline)!==null&&i!==void 0?i:""));a&&(o.push(`.monaco-list${s}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused.selected { outline: 1px solid ${a}; outline-offset: -1px;}`),o.push(`.monaco-list${s}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused.selected { outline: inherit;}`)),e.listFocusOutline&&(o.push(`.monaco-list${s}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; }`),o.push(`.monaco-list${s}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { outline: inherit; }`),o.push(`.monaco-workbench.context-menu-visible .monaco-list${s}.last-focused.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.passive-focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; }`),o.push(`.monaco-workbench.context-menu-visible .monaco-list${s}.last-focused.sticky-scroll-focused .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`),o.push(`.monaco-workbench.context-menu-visible .monaco-list${s}.last-focused:not(.sticky-scroll-focused) .monaco-tree-sticky-container .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`)),this.styleElement.textContent=o.join(` `),this.view.style(e)}getParentElement(e){const t=this.model.getParentNodeLocation(e);return this.model.getNode(t).element}getFirstElementChild(e){return this.model.getFirstElementChild(e)}getNode(e){return this.model.getNode(e)}getNodeLocation(e){return this.model.getNodeLocation(e)}collapse(e,t=!1){return this.model.setCollapsed(e,!0,t)}expand(e,t=!1){return this.model.setCollapsed(e,!1,t)}toggleCollapsed(e,t=!1){return this.model.setCollapsed(e,void 0,t)}isCollapsible(e){return this.model.isCollapsible(e)}setCollapsible(e,t){return this.model.setCollapsible(e,t)}isCollapsed(e){return this.model.isCollapsed(e)}refilter(){this._onWillRefilter.fire(void 0),this.model.refilter()}setSelection(e,t){this.eventBufferer.bufferEvents(()=>{const i=e.map(o=>this.model.getNode(o));this.selection.set(i,t);const s=e.map(o=>this.model.getListIndex(o)).filter(o=>o>-1);this.view.setSelection(s,t,!0)})}getSelection(){return this.selection.get()}setFocus(e,t){this.eventBufferer.bufferEvents(()=>{const i=e.map(o=>this.model.getNode(o));this.focus.set(i,t);const s=e.map(o=>this.model.getListIndex(o)).filter(o=>o>-1);this.view.setFocus(s,t,!0)})}focusNext(e=1,t=!1,i,s=Np(i)&&i.altKey?void 0:this.focusNavigationFilter){this.view.focusNext(e,t,i,s)}focusPrevious(e=1,t=!1,i,s=Np(i)&&i.altKey?void 0:this.focusNavigationFilter){this.view.focusPrevious(e,t,i,s)}focusNextPage(e,t=Np(e)&&e.altKey?void 0:this.focusNavigationFilter){return this.view.focusNextPage(e,t)}focusPreviousPage(e,t=Np(e)&&e.altKey?void 0:this.focusNavigationFilter){return this.view.focusPreviousPage(e,t,()=>{var i,s;return(s=(i=this.stickyScrollController)===null||i===void 0?void 0:i.height)!==null&&s!==void 0?s:0})}focusFirst(e,t=Np(e)&&e.altKey?void 0:this.focusNavigationFilter){this.view.focusFirst(e,t)}getFocus(){return this.focus.get()}reveal(e,t){this.model.expandTo(e);const i=this.model.getListIndex(e);if(i!==-1)if(!this.stickyScrollController)this.view.reveal(i,t);else{const s=this.stickyScrollController.nodePositionTopBelowWidget(this.getNode(e));this.view.reveal(i,t,s)}}onLeftArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const i=t[0],s=this.model.getNodeLocation(i);if(!this.model.setCollapsed(s,!0)){const r=this.model.getParentNodeLocation(s);if(!r)return;const a=this.model.getListIndex(r);this.view.reveal(a),this.view.setFocus([a])}}onRightArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const i=t[0],s=this.model.getNodeLocation(i);if(!this.model.setCollapsed(s,!1)){if(!i.children.some(l=>l.visible))return;const[r]=this.view.getFocus(),a=r+1;this.view.reveal(a),this.view.setFocus([a])}}onSpace(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const i=t[0],s=this.model.getNodeLocation(i),o=e.browserEvent.altKey;this.model.setCollapsed(s,void 0,o)}dispose(){var e;tn(this.disposables),(e=this.stickyScrollController)===null||e===void 0||e.dispose(),this.view.dispose()}}class T${constructor(e,t,i={}){this.user=e,this.rootRef=null,this.nodes=new Map,this.nodesByIdentity=new Map,this.model=new Yze(e,t,null,i),this.onDidSplice=this.model.onDidSplice,this.onDidChangeCollapseState=this.model.onDidChangeCollapseState,this.onDidChangeRenderNodeCount=this.model.onDidChangeRenderNodeCount,i.sorter&&(this.sorter={compare(s,o){return i.sorter.compare(s.element,o.element)}}),this.identityProvider=i.identityProvider}setChildren(e,t=oi.empty(),i={}){const s=this.getElementLocation(e);this._setChildren(s,this.preserveCollapseState(t),i)}_setChildren(e,t=oi.empty(),i){const s=new Set,o=new Set,r=l=>{var c;if(l.element===null)return;const d=l;if(s.add(d.element),this.nodes.set(d.element,d),this.identityProvider){const u=this.identityProvider.getId(d.element).toString();o.add(u),this.nodesByIdentity.set(u,d)}(c=i.onDidCreateNode)===null||c===void 0||c.call(i,d)},a=l=>{var c;if(l.element===null)return;const d=l;if(s.has(d.element)||this.nodes.delete(d.element),this.identityProvider){const u=this.identityProvider.getId(d.element).toString();o.has(u)||this.nodesByIdentity.delete(u)}(c=i.onDidDeleteNode)===null||c===void 0||c.call(i,d)};this.model.splice([...e,0],Number.MAX_VALUE,t,{...i,onDidCreateNode:r,onDidDeleteNode:a})}preserveCollapseState(e=oi.empty()){return this.sorter&&(e=[...e].sort(this.sorter.compare.bind(this.sorter))),oi.map(e,t=>{let i=this.nodes.get(t.element);if(!i&&this.identityProvider){const r=this.identityProvider.getId(t.element).toString();i=this.nodesByIdentity.get(r)}if(!i){let r;return typeof t.collapsed>"u"?r=void 0:t.collapsed===sl.Collapsed||t.collapsed===sl.PreserveOrCollapsed?r=!0:t.collapsed===sl.Expanded||t.collapsed===sl.PreserveOrExpanded?r=!1:r=!!t.collapsed,{...t,children:this.preserveCollapseState(t.children),collapsed:r}}const s=typeof t.collapsible=="boolean"?t.collapsible:i.collapsible;let o;return typeof t.collapsed>"u"||t.collapsed===sl.PreserveOrCollapsed||t.collapsed===sl.PreserveOrExpanded?o=i.collapsed:t.collapsed===sl.Collapsed?o=!0:t.collapsed===sl.Expanded?o=!1:o=!!t.collapsed,{...t,collapsible:s,collapsed:o,children:this.preserveCollapseState(t.children)}})}rerender(e){const t=this.getElementLocation(e);this.model.rerender(t)}getFirstElementChild(e=null){const t=this.getElementLocation(e);return this.model.getFirstElementChild(t)}has(e){return this.nodes.has(e)}getListIndex(e){const t=this.getElementLocation(e);return this.model.getListIndex(t)}getListRenderCount(e){const t=this.getElementLocation(e);return this.model.getListRenderCount(t)}isCollapsible(e){const t=this.getElementLocation(e);return this.model.isCollapsible(t)}setCollapsible(e,t){const i=this.getElementLocation(e);return this.model.setCollapsible(i,t)}isCollapsed(e){const t=this.getElementLocation(e);return this.model.isCollapsed(t)}setCollapsed(e,t,i){const s=this.getElementLocation(e);return this.model.setCollapsed(s,t,i)}expandTo(e){const t=this.getElementLocation(e);this.model.expandTo(t)}refilter(){this.model.refilter()}getNode(e=null){if(e===null)return this.model.getNode(this.model.rootRef);const t=this.nodes.get(e);if(!t)throw new dl(this.user,`Tree element not found: ${e}`);return t}getNodeLocation(e){return e.element}getParentNodeLocation(e){if(e===null)throw new dl(this.user,"Invalid getParentNodeLocation call");const t=this.nodes.get(e);if(!t)throw new dl(this.user,`Tree element not found: ${e}`);const i=this.model.getNodeLocation(t),s=this.model.getParentNodeLocation(i);return this.model.getNode(s).element}getElementLocation(e){if(e===null)return[];const t=this.nodes.get(e);if(!t)throw new dl(this.user,`Tree element not found: ${e}`);return this.model.getNodeLocation(t)}}function TN(n){const e=[n.element],t=n.incompressible||!1;return{element:{elements:e,incompressible:t},children:oi.map(oi.from(n.children),TN),collapsible:n.collapsible,collapsed:n.collapsed}}function NN(n){const e=[n.element],t=n.incompressible||!1;let i,s;for(;[s,i]=oi.consume(oi.from(n.children),2),!(s.length!==1||s[0].incompressible);)n=s[0],e.push(n.element);return{element:{elements:e,incompressible:t},children:oi.map(oi.concat(s,i),NN),collapsible:n.collapsible,collapsed:n.collapsed}}function K9(n,e=0){let t;return eK9(i,0)),e===0&&n.element.incompressible?{element:n.element.elements[e],children:t,incompressible:!0,collapsible:n.collapsible,collapsed:n.collapsed}:{element:n.element.elements[e],children:t,collapsible:n.collapsible,collapsed:n.collapsed}}function OJ(n){return K9(n,0)}function aue(n,e,t){return n.element===e?{...n,children:t}:{...n,children:oi.map(oi.from(n.children),i=>aue(i,e,t))}}const u$e=n=>({getId(e){return e.elements.map(t=>n.getId(t).toString()).join("\0")}});class h$e{get onDidSplice(){return this.model.onDidSplice}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get onDidChangeRenderNodeCount(){return this.model.onDidChangeRenderNodeCount}constructor(e,t,i={}){this.user=e,this.rootRef=null,this.nodes=new Map,this.model=new T$(e,t,i),this.enabled=typeof i.compressionEnabled>"u"?!0:i.compressionEnabled,this.identityProvider=i.identityProvider}setChildren(e,t=oi.empty(),i){const s=i.diffIdentityProvider&&u$e(i.diffIdentityProvider);if(e===null){const g=oi.map(t,this.enabled?NN:TN);this._setChildren(null,g,{diffIdentityProvider:s,diffDepth:1/0});return}const o=this.nodes.get(e);if(!o)throw new dl(this.user,"Unknown compressed tree node");const r=this.model.getNode(o),a=this.model.getParentNodeLocation(o),l=this.model.getNode(a),c=OJ(r),d=aue(c,e,t),u=(this.enabled?NN:TN)(d),h=i.diffIdentityProvider?(g,p)=>i.diffIdentityProvider.getId(g)===i.diffIdentityProvider.getId(p):void 0;if(zn(u.element.elements,r.element.elements,h)){this._setChildren(o,u.children||oi.empty(),{diffIdentityProvider:s,diffDepth:1});return}const f=l.children.map(g=>g===r?u:g);this._setChildren(l.element,f,{diffIdentityProvider:s,diffDepth:r.depth-l.depth})}isCompressionEnabled(){return this.enabled}setCompressionEnabled(e){if(e===this.enabled)return;this.enabled=e;const i=this.model.getNode().children,s=oi.map(i,OJ),o=oi.map(s,e?NN:TN);this._setChildren(null,o,{diffIdentityProvider:this.identityProvider,diffDepth:1/0})}_setChildren(e,t,i){const s=new Set,o=a=>{for(const l of a.element.elements)s.add(l),this.nodes.set(l,a.element)},r=a=>{for(const l of a.element.elements)s.has(l)||this.nodes.delete(l)};this.model.setChildren(e,t,{...i,onDidCreateNode:o,onDidDeleteNode:r})}has(e){return this.nodes.has(e)}getListIndex(e){const t=this.getCompressedNode(e);return this.model.getListIndex(t)}getListRenderCount(e){const t=this.getCompressedNode(e);return this.model.getListRenderCount(t)}getNode(e){if(typeof e>"u")return this.model.getNode();const t=this.getCompressedNode(e);return this.model.getNode(t)}getNodeLocation(e){const t=this.model.getNodeLocation(e);return t===null?null:t.elements[t.elements.length-1]}getParentNodeLocation(e){const t=this.getCompressedNode(e),i=this.model.getParentNodeLocation(t);return i===null?null:i.elements[i.elements.length-1]}getFirstElementChild(e){const t=this.getCompressedNode(e);return this.model.getFirstElementChild(t)}isCollapsible(e){const t=this.getCompressedNode(e);return this.model.isCollapsible(t)}setCollapsible(e,t){const i=this.getCompressedNode(e);return this.model.setCollapsible(i,t)}isCollapsed(e){const t=this.getCompressedNode(e);return this.model.isCollapsed(t)}setCollapsed(e,t,i){const s=this.getCompressedNode(e);return this.model.setCollapsed(s,t,i)}expandTo(e){const t=this.getCompressedNode(e);this.model.expandTo(t)}rerender(e){const t=this.getCompressedNode(e);this.model.rerender(t)}refilter(){this.model.refilter()}getCompressedNode(e){if(e===null)return null;const t=this.nodes.get(e);if(!t)throw new dl(this.user,`Tree element not found: ${e}`);return t}}const f$e=n=>n[n.length-1];class N${get element(){return this.node.element===null?null:this.unwrapper(this.node.element)}get children(){return this.node.children.map(e=>new N$(this.unwrapper,e))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(e,t){this.unwrapper=e,this.node=t}}function g$e(n,e){return{splice(t,i,s){e.splice(t,i,s.map(o=>n.map(o)))},updateElementHeight(t,i){e.updateElementHeight(t,i)}}}function p$e(n,e){return{...e,identityProvider:e.identityProvider&&{getId(t){return e.identityProvider.getId(n(t))}},sorter:e.sorter&&{compare(t,i){return e.sorter.compare(t.elements[0],i.elements[0])}},filter:e.filter&&{filter(t,i){return e.filter.filter(n(t),i)}}}}class m$e{get onDidSplice(){return Ae.map(this.model.onDidSplice,({insertedNodes:e,deletedNodes:t})=>({insertedNodes:e.map(i=>this.nodeMapper.map(i)),deletedNodes:t.map(i=>this.nodeMapper.map(i))}))}get onDidChangeCollapseState(){return Ae.map(this.model.onDidChangeCollapseState,({node:e,deep:t})=>({node:this.nodeMapper.map(e),deep:t}))}get onDidChangeRenderNodeCount(){return Ae.map(this.model.onDidChangeRenderNodeCount,e=>this.nodeMapper.map(e))}constructor(e,t,i={}){this.rootRef=null,this.elementMapper=i.elementMapper||f$e;const s=o=>this.elementMapper(o.elements);this.nodeMapper=new D$(o=>new N$(s,o)),this.model=new h$e(e,g$e(this.nodeMapper,t),p$e(s,i))}setChildren(e,t=oi.empty(),i={}){this.model.setChildren(e,t,i)}isCompressionEnabled(){return this.model.isCompressionEnabled()}setCompressionEnabled(e){this.model.setCompressionEnabled(e)}has(e){return this.model.has(e)}getListIndex(e){return this.model.getListIndex(e)}getListRenderCount(e){return this.model.getListRenderCount(e)}getNode(e){return this.nodeMapper.map(this.model.getNode(e))}getNodeLocation(e){return e.element}getParentNodeLocation(e){return this.model.getParentNodeLocation(e)}getFirstElementChild(e){const t=this.model.getFirstElementChild(e);return t===null||typeof t>"u"?t:this.elementMapper(t.elements)}isCollapsible(e){return this.model.isCollapsible(e)}setCollapsible(e,t){return this.model.setCollapsible(e,t)}isCollapsed(e){return this.model.isCollapsed(e)}setCollapsed(e,t,i){return this.model.setCollapsed(e,t,i)}expandTo(e){return this.model.expandTo(e)}rerender(e){return this.model.rerender(e)}refilter(){return this.model.refilter()}getCompressedTreeNode(e=null){return this.model.getNode(e)}}var _$e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o};class A$ extends rue{get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}constructor(e,t,i,s,o={}){super(e,t,i,s,o),this.user=e}setChildren(e,t=oi.empty(),i){this.model.setChildren(e,t,i)}rerender(e){if(e===void 0){this.view.rerender();return}this.model.rerender(e)}hasElement(e){return this.model.has(e)}createModel(e,t,i){return new T$(e,t,i)}}class lue{get compressedTreeNodeProvider(){return this._compressedTreeNodeProvider()}constructor(e,t,i){this._compressedTreeNodeProvider=e,this.stickyScrollDelegate=t,this.renderer=i,this.templateId=i.templateId,i.onDidChangeTwistieState&&(this.onDidChangeTwistieState=i.onDidChangeTwistieState)}renderTemplate(e){return{compressedTreeNode:void 0,data:this.renderer.renderTemplate(e)}}renderElement(e,t,i,s){let o=this.stickyScrollDelegate.getCompressedNode(e);o||(o=this.compressedTreeNodeProvider.getCompressedTreeNode(e.element)),o.element.elements.length===1?(i.compressedTreeNode=void 0,this.renderer.renderElement(e,t,i.data,s)):(i.compressedTreeNode=o,this.renderer.renderCompressedElements(o,t,i.data,s))}disposeElement(e,t,i,s){var o,r,a,l;i.compressedTreeNode?(r=(o=this.renderer).disposeCompressedElements)===null||r===void 0||r.call(o,i.compressedTreeNode,t,i.data,s):(l=(a=this.renderer).disposeElement)===null||l===void 0||l.call(a,e,t,i.data,s)}disposeTemplate(e){this.renderer.disposeTemplate(e.data)}renderTwistie(e,t){return this.renderer.renderTwistie?this.renderer.renderTwistie(e,t):!1}}_$e([gs],lue.prototype,"compressedTreeNodeProvider",null);class v$e{constructor(e){this.modelProvider=e,this.compressedStickyNodes=new Map}getCompressedNode(e){return this.compressedStickyNodes.get(e)}constrainStickyScrollNodes(e,t,i){if(this.compressedStickyNodes.clear(),e.length===0)return[];for(let s=0;si||s>=t-1&&tthis,a=new v$e(()=>this.model),l=s.map(c=>new lue(r,a,c));super(e,t,i,l,{...b$e(r,o),stickyScrollDelegate:a})}setChildren(e,t=oi.empty(),i){this.model.setChildren(e,t,i)}createModel(e,t,i){return new m$e(e,t,i)}updateOptions(e={}){super.updateOptions(e),typeof e.compressionEnabled<"u"&&this.model.setCompressionEnabled(e.compressionEnabled)}getCompressedTreeNode(e=null){return this.model.getCompressedTreeNode(e)}}function $5(n){return{...n,children:[],refreshPromise:void 0,stale:!0,slow:!1,forceExpanded:!1}}function q9(n,e){return e.parent?e.parent===n?!0:q9(n,e.parent):!1}function C$e(n,e){return n===e||q9(n,e)||q9(e,n)}class R${get element(){return this.node.element.element}get children(){return this.node.children.map(e=>new R$(e))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(e){this.node=e}}class w$e{constructor(e,t,i){this.renderer=e,this.nodeMapper=t,this.onDidChangeTwistieState=i,this.renderedNodes=new Map,this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,i,s){this.renderer.renderElement(this.nodeMapper.map(e),t,i.templateData,s)}renderTwistie(e,t){return e.slow?(t.classList.add(..._t.asClassNameArray(Te.treeItemLoading)),!0):(t.classList.remove(..._t.asClassNameArray(Te.treeItemLoading)),!1)}disposeElement(e,t,i,s){var o,r;(r=(o=this.renderer).disposeElement)===null||r===void 0||r.call(o,this.nodeMapper.map(e),t,i.templateData,s)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear()}}function FJ(n){return{browserEvent:n.browserEvent,elements:n.elements.map(e=>e.element)}}function BJ(n){return{browserEvent:n.browserEvent,element:n.element&&n.element.element,target:n.target}}class y$e extends TD{constructor(e){super(e.elements.map(t=>t.element)),this.data=e}}function U5(n){return n instanceof TD?new y$e(n):n}class S$e{constructor(e){this.dnd=e}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map(i=>i.element),t)}onDragStart(e,t){var i,s;(s=(i=this.dnd).onDragStart)===null||s===void 0||s.call(i,U5(e),t)}onDragOver(e,t,i,s,o,r=!0){return this.dnd.onDragOver(U5(e),t&&t.element,i,s,o)}drop(e,t,i,s,o){this.dnd.drop(U5(e),t&&t.element,i,s,o)}onDragEnd(e){var t,i;(i=(t=this.dnd).onDragEnd)===null||i===void 0||i.call(t,e)}dispose(){this.dnd.dispose()}}function due(n){return n&&{...n,collapseByDefault:!0,identityProvider:n.identityProvider&&{getId(e){return n.identityProvider.getId(e.element)}},dnd:n.dnd&&new S$e(n.dnd),multipleSelectionController:n.multipleSelectionController&&{isSelectionSingleChangeEvent(e){return n.multipleSelectionController.isSelectionSingleChangeEvent({...e,element:e.element})},isSelectionRangeChangeEvent(e){return n.multipleSelectionController.isSelectionRangeChangeEvent({...e,element:e.element})}},accessibilityProvider:n.accessibilityProvider&&{...n.accessibilityProvider,getPosInSet:void 0,getSetSize:void 0,getRole:n.accessibilityProvider.getRole?e=>n.accessibilityProvider.getRole(e.element):()=>"treeitem",isChecked:n.accessibilityProvider.isChecked?e=>{var t;return!!(!((t=n.accessibilityProvider)===null||t===void 0)&&t.isChecked(e.element))}:void 0,getAriaLabel(e){return n.accessibilityProvider.getAriaLabel(e.element)},getWidgetAriaLabel(){return n.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:n.accessibilityProvider.getWidgetRole?()=>n.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:n.accessibilityProvider.getAriaLevel&&(e=>n.accessibilityProvider.getAriaLevel(e.element)),getActiveDescendantId:n.accessibilityProvider.getActiveDescendantId&&(e=>n.accessibilityProvider.getActiveDescendantId(e.element))},filter:n.filter&&{filter(e,t){return n.filter.filter(e.element,t)}},keyboardNavigationLabelProvider:n.keyboardNavigationLabelProvider&&{...n.keyboardNavigationLabelProvider,getKeyboardNavigationLabel(e){return n.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e.element)}},sorter:void 0,expandOnlyOnTwistieClick:typeof n.expandOnlyOnTwistieClick>"u"?void 0:typeof n.expandOnlyOnTwistieClick!="function"?n.expandOnlyOnTwistieClick:e=>n.expandOnlyOnTwistieClick(e.element),defaultFindVisibility:e=>e.hasChildren&&e.stale?1:typeof n.defaultFindVisibility=="number"?n.defaultFindVisibility:typeof n.defaultFindVisibility>"u"?2:n.defaultFindVisibility(e.element)}}function G9(n,e){e(n),n.children.forEach(t=>G9(t,e))}class uue{get onDidScroll(){return this.tree.onDidScroll}get onDidChangeFocus(){return Ae.map(this.tree.onDidChangeFocus,FJ)}get onDidChangeSelection(){return Ae.map(this.tree.onDidChangeSelection,FJ)}get onMouseDblClick(){return Ae.map(this.tree.onMouseDblClick,BJ)}get onPointer(){return Ae.map(this.tree.onPointer,BJ)}get onDidFocus(){return this.tree.onDidFocus}get onDidChangeModel(){return this.tree.onDidChangeModel}get onDidChangeCollapseState(){return this.tree.onDidChangeCollapseState}get onDidChangeFindOpenState(){return this.tree.onDidChangeFindOpenState}get onDidChangeStickyScrollFocused(){return this.tree.onDidChangeStickyScrollFocused}get onDidDispose(){return this.tree.onDidDispose}constructor(e,t,i,s,o,r={}){this.user=e,this.dataSource=o,this.nodes=new Map,this.subTreeRefreshPromises=new Map,this.refreshPromises=new Map,this._onDidRender=new X,this._onDidChangeNodeSlowState=new X,this.nodeMapper=new D$(a=>new R$(a)),this.disposables=new be,this.identityProvider=r.identityProvider,this.autoExpandSingleChildren=typeof r.autoExpandSingleChildren>"u"?!1:r.autoExpandSingleChildren,this.sorter=r.sorter,this.getDefaultCollapseState=a=>r.collapseByDefault?r.collapseByDefault(a)?sl.PreserveOrCollapsed:sl.PreserveOrExpanded:void 0,this.tree=this.createTree(e,t,i,s,r),this.onDidChangeFindMode=this.tree.onDidChangeFindMode,this.onDidChangeFindMatchType=this.tree.onDidChangeFindMatchType,this.root=$5({element:void 0,parent:null,hasChildren:!0,defaultCollapseState:void 0}),this.identityProvider&&(this.root={...this.root,id:null}),this.nodes.set(null,this.root),this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState,this,this.disposables)}createTree(e,t,i,s,o){const r=new E$(i),a=s.map(c=>new w$e(c,this.nodeMapper,this._onDidChangeNodeSlowState.event)),l=due(o)||{};return new A$(e,t,r,a,l)}updateOptions(e={}){this.tree.updateOptions(e)}getHTMLElement(){return this.tree.getHTMLElement()}get scrollTop(){return this.tree.scrollTop}set scrollTop(e){this.tree.scrollTop=e}get scrollHeight(){return this.tree.scrollHeight}get renderHeight(){return this.tree.renderHeight}domFocus(){this.tree.domFocus()}layout(e,t){this.tree.layout(e,t)}style(e){this.tree.style(e)}getInput(){return this.root.element}async setInput(e,t){this.refreshPromises.forEach(s=>s.cancel()),this.refreshPromises.clear(),this.root.element=e;const i=t&&{viewState:t,focus:[],selection:[]};await this._updateChildren(e,!0,!1,i),i&&(this.tree.setFocus(i.focus),this.tree.setSelection(i.selection)),t&&typeof t.scrollTop=="number"&&(this.scrollTop=t.scrollTop)}async _updateChildren(e=this.root.element,t=!0,i=!1,s,o){if(typeof this.root.element>"u")throw new dl(this.user,"Tree input not set");this.root.refreshPromise&&(await this.root.refreshPromise,await Ae.toPromise(this._onDidRender.event));const r=this.getDataNode(e);if(await this.refreshAndRenderNode(r,t,s,o),i)try{this.tree.rerender(r)}catch{}}rerender(e){if(e===void 0||e===this.root.element){this.tree.rerender();return}const t=this.getDataNode(e);this.tree.rerender(t)}getNode(e=this.root.element){const t=this.getDataNode(e),i=this.tree.getNode(t===this.root?null:t);return this.nodeMapper.map(i)}collapse(e,t=!1){const i=this.getDataNode(e);return this.tree.collapse(i===this.root?null:i,t)}async expand(e,t=!1){if(typeof this.root.element>"u")throw new dl(this.user,"Tree input not set");this.root.refreshPromise&&(await this.root.refreshPromise,await Ae.toPromise(this._onDidRender.event));const i=this.getDataNode(e);if(this.tree.hasElement(i)&&!this.tree.isCollapsible(i)||(i.refreshPromise&&(await this.root.refreshPromise,await Ae.toPromise(this._onDidRender.event)),i!==this.root&&!i.refreshPromise&&!this.tree.isCollapsed(i)))return!1;const s=this.tree.expand(i===this.root?null:i,t);return i.refreshPromise&&(await this.root.refreshPromise,await Ae.toPromise(this._onDidRender.event)),s}setSelection(e,t){const i=e.map(s=>this.getDataNode(s));this.tree.setSelection(i,t)}getSelection(){return this.tree.getSelection().map(t=>t.element)}setFocus(e,t){const i=e.map(s=>this.getDataNode(s));this.tree.setFocus(i,t)}getFocus(){return this.tree.getFocus().map(t=>t.element)}reveal(e,t){this.tree.reveal(this.getDataNode(e),t)}getParentElement(e){const t=this.tree.getParentElement(this.getDataNode(e));return t&&t.element}getFirstElementChild(e=this.root.element){const t=this.getDataNode(e),i=this.tree.getFirstElementChild(t===this.root?null:t);return i&&i.element}getDataNode(e){const t=this.nodes.get(e===this.root.element?null:e);if(!t)throw new dl(this.user,`Data tree node not found: ${e}`);return t}async refreshAndRenderNode(e,t,i,s){await this.refreshNode(e,t,i),!this.disposables.isDisposed&&this.render(e,i,s)}async refreshNode(e,t,i){let s;if(this.subTreeRefreshPromises.forEach((o,r)=>{!s&&C$e(r,e)&&(s=o.then(()=>this.refreshNode(e,t,i)))}),s)return s;if(e!==this.root&&this.tree.getNode(e).collapsed){e.hasChildren=!!this.dataSource.hasChildren(e.element),e.stale=!0,this.setChildren(e,[],t,i);return}return this.doRefreshSubTree(e,t,i)}async doRefreshSubTree(e,t,i){let s;e.refreshPromise=new Promise(o=>s=o),this.subTreeRefreshPromises.set(e,e.refreshPromise),e.refreshPromise.finally(()=>{e.refreshPromise=void 0,this.subTreeRefreshPromises.delete(e)});try{const o=await this.doRefreshNode(e,t,i);e.stale=!1,await iB.settled(o.map(r=>this.doRefreshSubTree(r,t,i)))}finally{s()}}async doRefreshNode(e,t,i){e.hasChildren=!!this.dataSource.hasChildren(e.element);let s;if(!e.hasChildren)s=Promise.resolve(oi.empty());else{const o=this.doGetChildren(e);if(XZ(o))s=Promise.resolve(o);else{const r=Dg(800);r.then(()=>{e.slow=!0,this._onDidChangeNodeSlowState.fire(e)},a=>null),s=o.finally(()=>r.cancel())}}try{const o=await s;return this.setChildren(e,o,t,i)}catch(o){if(e!==this.root&&this.tree.hasElement(e)&&this.tree.collapse(e),ld(o))return[];throw o}finally{e.slow&&(e.slow=!1,this._onDidChangeNodeSlowState.fire(e))}}doGetChildren(e){let t=this.refreshPromises.get(e);if(t)return t;const i=this.dataSource.getChildren(e.element);return XZ(i)?this.processChildren(i):(t=Xs(async()=>this.processChildren(await i)),this.refreshPromises.set(e,t),t.finally(()=>{this.refreshPromises.delete(e)}))}_onDidChangeCollapseState({node:e,deep:t}){e.element!==null&&!e.collapsed&&e.element.stale&&(t?this.collapse(e.element.element):this.refreshAndRenderNode(e.element,!1).catch(Mt))}setChildren(e,t,i,s){const o=[...t];if(e.children.length===0&&o.length===0)return[];const r=new Map,a=new Map;for(const d of e.children)r.set(d.element,d),this.identityProvider&&a.set(d.id,{node:d,collapsed:this.tree.hasElement(d)&&this.tree.isCollapsed(d)});const l=[],c=o.map(d=>{const u=!!this.dataSource.hasChildren(d);if(!this.identityProvider){const p=$5({element:d,parent:e,hasChildren:u,defaultCollapseState:this.getDefaultCollapseState(d)});return u&&p.defaultCollapseState===sl.PreserveOrExpanded&&l.push(p),p}const h=this.identityProvider.getId(d).toString(),f=a.get(h);if(f){const p=f.node;return r.delete(p.element),this.nodes.delete(p.element),this.nodes.set(d,p),p.element=d,p.hasChildren=u,i?f.collapsed?(p.children.forEach(_=>G9(_,b=>this.nodes.delete(b.element))),p.children.splice(0,p.children.length),p.stale=!0):l.push(p):u&&!f.collapsed&&l.push(p),p}const g=$5({element:d,parent:e,id:h,hasChildren:u,defaultCollapseState:this.getDefaultCollapseState(d)});return s&&s.viewState.focus&&s.viewState.focus.indexOf(h)>-1&&s.focus.push(g),s&&s.viewState.selection&&s.viewState.selection.indexOf(h)>-1&&s.selection.push(g),(s&&s.viewState.expanded&&s.viewState.expanded.indexOf(h)>-1||u&&g.defaultCollapseState===sl.PreserveOrExpanded)&&l.push(g),g});for(const d of r.values())G9(d,u=>this.nodes.delete(u.element));for(const d of c)this.nodes.set(d.element,d);return e.children.splice(0,e.children.length,...c),e!==this.root&&this.autoExpandSingleChildren&&c.length===1&&l.length===0&&(c[0].forceExpanded=!0,l.push(c[0])),l}render(e,t,i){const s=e.children.map(r=>this.asTreeElement(r,t)),o=i&&{...i,diffIdentityProvider:i.diffIdentityProvider&&{getId(r){return i.diffIdentityProvider.getId(r.element)}}};this.tree.setChildren(e===this.root?null:e,s,o),e!==this.root&&this.tree.setCollapsible(e,e.hasChildren),this._onDidRender.fire()}asTreeElement(e,t){if(e.stale)return{element:e,collapsible:e.hasChildren,collapsed:!0};let i;return t&&t.viewState.expanded&&e.id&&t.viewState.expanded.indexOf(e.id)>-1?i=!1:e.forceExpanded?(i=!1,e.forceExpanded=!1):i=e.defaultCollapseState,{element:e,children:e.hasChildren?oi.map(e.children,s=>this.asTreeElement(s,t)):[],collapsible:e.hasChildren,collapsed:i}}processChildren(e){return this.sorter&&(e=[...e].sort(this.sorter.compare.bind(this.sorter))),e}dispose(){this.disposables.dispose(),this.tree.dispose()}}class M${get element(){return{elements:this.node.element.elements.map(e=>e.element),incompressible:this.node.element.incompressible}}get children(){return this.node.children.map(e=>new M$(e))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(e){this.node=e}}class x$e{constructor(e,t,i,s){this.renderer=e,this.nodeMapper=t,this.compressibleNodeMapperProvider=i,this.onDidChangeTwistieState=s,this.renderedNodes=new Map,this.disposables=[],this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,i,s){this.renderer.renderElement(this.nodeMapper.map(e),t,i.templateData,s)}renderCompressedElements(e,t,i,s){this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(e),t,i.templateData,s)}renderTwistie(e,t){return e.slow?(t.classList.add(..._t.asClassNameArray(Te.treeItemLoading)),!0):(t.classList.remove(..._t.asClassNameArray(Te.treeItemLoading)),!1)}disposeElement(e,t,i,s){var o,r;(r=(o=this.renderer).disposeElement)===null||r===void 0||r.call(o,this.nodeMapper.map(e),t,i.templateData,s)}disposeCompressedElements(e,t,i,s){var o,r;(r=(o=this.renderer).disposeCompressedElements)===null||r===void 0||r.call(o,this.compressibleNodeMapperProvider().map(e),t,i.templateData,s)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear(),this.disposables=tn(this.disposables)}}function L$e(n){const e=n&&due(n);return e&&{...e,keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&{...e.keyboardNavigationLabelProvider,getCompressedNodeKeyboardNavigationLabel(t){return n.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(t.map(i=>i.element))}}}}class k$e extends uue{constructor(e,t,i,s,o,r,a={}){super(e,t,i,o,r,a),this.compressionDelegate=s,this.compressibleNodeMapper=new D$(l=>new M$(l)),this.filter=a.filter}createTree(e,t,i,s,o){const r=new E$(i),a=s.map(c=>new x$e(c,this.nodeMapper,()=>this.compressibleNodeMapper,this._onDidChangeNodeSlowState.event)),l=L$e(o)||{};return new cue(e,t,r,a,l)}asTreeElement(e,t){return{incompressible:this.compressionDelegate.isIncompressible(e.element),...super.asTreeElement(e,t)}}updateOptions(e={}){this.tree.updateOptions(e)}render(e,t,i){if(!this.identityProvider)return super.render(e,t);const s=f=>this.identityProvider.getId(f).toString(),o=f=>{const g=new Set;for(const p of f){const _=this.tree.getCompressedTreeNode(p===this.root?null:p);if(_.element)for(const b of _.element.elements)g.add(s(b.element))}return g},r=o(this.tree.getSelection()),a=o(this.tree.getFocus());super.render(e,t,i);const l=this.getSelection();let c=!1;const d=this.getFocus();let u=!1;const h=f=>{const g=f.element;if(g)for(let p=0;p{const i=this.filter.filter(t,1),s=D$e(i);if(s===2)throw new Error("Recursive tree visibility not supported in async data compressed trees");return s===1})),super.processChildren(e)}}function D$e(n){return typeof n=="boolean"?n?1:0:I$(n)?YL(n.visibility):YL(n)}class I$e extends rue{constructor(e,t,i,s,o,r={}){super(e,t,i,s,r),this.user=e,this.dataSource=o,this.identityProvider=r.identityProvider}createModel(e,t,i){return new T$(e,t,i)}}new He("isMac",Xt,v("isMac","Whether the operating system is macOS"));new He("isLinux",Br,v("isLinux","Whether the operating system is Linux"));const dP=new He("isWindows",Mo,v("isWindows","Whether the operating system is Windows")),hue=new He("isWeb",u_,v("isWeb","Whether the platform is a web browser"));new He("isMacNative",Xt&&!u_,v("isMacNative","Whether the operating system is macOS on a non-browser platform"));new He("isIOS",iu,v("isIOS","Whether the operating system is iOS"));new He("isMobile",qre,v("isMobile","Whether the platform is a mobile web browser"));new He("isDevelopment",!1,!0);new He("productQualityType","",v("productQualityType","Quality type of VS Code"));const fue="inputFocus",gue=new He(fue,!1,v("inputFocus","Whether keyboard focus is inside an input box"));var Vg=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},yn=function(n,e){return function(t,i){e(t,i,n)}};const wc=Jt("listService");class E$e{get lastFocusedList(){return this._lastFocusedWidget}constructor(){this.disposables=new be,this.lists=[],this._lastFocusedWidget=void 0,this._hasCreatedStyleController=!1}setLastFocusedList(e){var t,i;e!==this._lastFocusedWidget&&((t=this._lastFocusedWidget)===null||t===void 0||t.getHTMLElement().classList.remove("last-focused"),this._lastFocusedWidget=e,(i=this._lastFocusedWidget)===null||i===void 0||i.getHTMLElement().classList.add("last-focused"))}register(e,t){if(this._hasCreatedStyleController||(this._hasCreatedStyleController=!0,new zde(yl(),"").style(eb)),this.lists.some(s=>s.widget===e))throw new Error("Cannot register the same widget multiple times");const i={widget:e,extraContextKeys:t};return this.lists.push(i),hM(e.getHTMLElement())&&this.setLastFocusedList(e),Jc(e.onDidFocus(()=>this.setLastFocusedList(e)),dt(()=>this.lists.splice(this.lists.indexOf(i),1)),e.onDidDispose(()=>{this.lists=this.lists.filter(s=>s!==i),this._lastFocusedWidget===e&&this.setLastFocusedList(void 0)}))}dispose(){this.disposables.dispose()}}const QL=new He("listScrollAtBoundary","none");pe.or(QL.isEqualTo("top"),QL.isEqualTo("both"));pe.or(QL.isEqualTo("bottom"),QL.isEqualTo("both"));const pue=new He("listFocus",!0),mue=new He("treestickyScrollFocused",!1),uP=new He("listSupportsMultiselect",!0),_ue=pe.and(pue,pe.not(fue),mue.negate()),P$=new He("listHasSelectionOrFocus",!1),O$=new He("listDoubleSelection",!1),F$=new He("listMultiSelection",!1),hP=new He("listSelectionNavigation",!1),T$e=new He("listSupportsFind",!0),B$=new He("treeElementCanCollapse",!1),N$e=new He("treeElementHasParent",!1),W$=new He("treeElementCanExpand",!1),A$e=new He("treeElementHasChild",!1),R$e=new He("treeFindOpen",!1),vue="listTypeNavigationMode",bue="listAutomaticKeyboardNavigation";function fP(n,e){const t=n.createScoped(e.getHTMLElement());return pue.bindTo(t),t}function gP(n,e){const t=QL.bindTo(n),i=()=>{const s=e.scrollTop===0,o=e.scrollHeight-e.renderHeight-e.scrollTop<1;s&&o?t.set("both"):s?t.set("top"):o?t.set("bottom"):t.set("none")};return i(),e.onDidScroll(i)}const nb="workbench.list.multiSelectModifier",AN="workbench.list.openMode",sc="workbench.list.horizontalScrolling",H$="workbench.list.defaultFindMode",V$="workbench.list.typeNavigationMode",FA="workbench.list.keyboardNavigation",cu="workbench.list.scrollByPage",z$="workbench.list.defaultFindMatchType",JL="workbench.tree.indent",BA="workbench.tree.renderIndentGuides",du="workbench.list.smoothScrolling",Ah="workbench.list.mouseWheelScrollSensitivity",Rh="workbench.list.fastScrollSensitivity",WA="workbench.tree.expandMode",HA="workbench.tree.enableStickyScroll",VA="workbench.tree.stickyScrollMaxItemCount";function Mh(n){return n.getValue(nb)==="alt"}class M$e extends ne{constructor(e){super(),this.configurationService=e,this.useAltAsMultipleSelectionModifier=Mh(e),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(e=>{e.affectsConfiguration(nb)&&(this.useAltAsMultipleSelectionModifier=Mh(this.configurationService))}))}isSelectionSingleChangeEvent(e){return this.useAltAsMultipleSelectionModifier?e.browserEvent.altKey:Wde(e)}isSelectionRangeChangeEvent(e){return Hde(e)}}function pP(n,e){var t;const i=n.get(qt),s=n.get(Li),o=new be;return[{...e,keyboardNavigationDelegate:{mightProducePrintableCharacter(a){return s.mightProducePrintableCharacter(a)}},smoothScrolling:!!i.getValue(du),mouseWheelScrollSensitivity:i.getValue(Ah),fastScrollSensitivity:i.getValue(Rh),multipleSelectionController:(t=e.multipleSelectionController)!==null&&t!==void 0?t:o.add(new M$e(i)),keyboardNavigationEventFilter:F$e(s),scrollByPage:!!i.getValue(cu)},o]}let WJ=class extends El{constructor(e,t,i,s,o,r,a,l,c){const d=typeof o.horizontalScrolling<"u"?o.horizontalScrolling:!!l.getValue(sc),[u,h]=c.invokeFunction(pP,o);super(e,t,i,s,{keyboardSupport:!1,...u,horizontalScrolling:d}),this.disposables.add(h),this.contextKeyService=fP(r,this),this.disposables.add(gP(this.contextKeyService,this)),this.listSupportsMultiSelect=uP.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(o.multipleSelectionSupport!==!1),hP.bindTo(this.contextKeyService).set(!!o.selectionNavigation),this.listHasSelectionOrFocus=P$.bindTo(this.contextKeyService),this.listDoubleSelection=O$.bindTo(this.contextKeyService),this.listMultiSelection=F$.bindTo(this.contextKeyService),this.horizontalScrolling=o.horizontalScrolling,this._useAltAsMultipleSelectionModifier=Mh(l),this.disposables.add(this.contextKeyService),this.disposables.add(a.register(this)),this.updateStyles(o.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const g=this.getSelection(),p=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(g.length>0||p.length>0),this.listMultiSelection.set(g.length>1),this.listDoubleSelection.set(g.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const g=this.getSelection(),p=this.getFocus();this.listHasSelectionOrFocus.set(g.length>0||p.length>0)})),this.disposables.add(l.onDidChangeConfiguration(g=>{g.affectsConfiguration(nb)&&(this._useAltAsMultipleSelectionModifier=Mh(l));let p={};if(g.affectsConfiguration(sc)&&this.horizontalScrolling===void 0){const _=!!l.getValue(sc);p={...p,horizontalScrolling:_}}if(g.affectsConfiguration(cu)){const _=!!l.getValue(cu);p={...p,scrollByPage:_}}if(g.affectsConfiguration(du)){const _=!!l.getValue(du);p={...p,smoothScrolling:_}}if(g.affectsConfiguration(Ah)){const _=l.getValue(Ah);p={...p,mouseWheelScrollSensitivity:_}}if(g.affectsConfiguration(Rh)){const _=l.getValue(Rh);p={...p,fastScrollSensitivity:_}}Object.keys(p).length>0&&this.updateOptions(p)})),this.navigator=new Cue(this,{configurationService:l,...o}),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles!==void 0&&this.updateStyles(e.overrideStyles),e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){this.style(e?tb(e):eb)}};WJ=Vg([yn(5,Ct),yn(6,wc),yn(7,qt),yn(8,ht)],WJ);let HJ=class extends Wze{constructor(e,t,i,s,o,r,a,l,c){const d=typeof o.horizontalScrolling<"u"?o.horizontalScrolling:!!l.getValue(sc),[u,h]=c.invokeFunction(pP,o);super(e,t,i,s,{keyboardSupport:!1,...u,horizontalScrolling:d}),this.disposables=new be,this.disposables.add(h),this.contextKeyService=fP(r,this),this.disposables.add(gP(this.contextKeyService,this.widget)),this.horizontalScrolling=o.horizontalScrolling,this.listSupportsMultiSelect=uP.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(o.multipleSelectionSupport!==!1),hP.bindTo(this.contextKeyService).set(!!o.selectionNavigation),this._useAltAsMultipleSelectionModifier=Mh(l),this.disposables.add(this.contextKeyService),this.disposables.add(a.register(this)),this.updateStyles(o.overrideStyles),this.disposables.add(l.onDidChangeConfiguration(g=>{g.affectsConfiguration(nb)&&(this._useAltAsMultipleSelectionModifier=Mh(l));let p={};if(g.affectsConfiguration(sc)&&this.horizontalScrolling===void 0){const _=!!l.getValue(sc);p={...p,horizontalScrolling:_}}if(g.affectsConfiguration(cu)){const _=!!l.getValue(cu);p={...p,scrollByPage:_}}if(g.affectsConfiguration(du)){const _=!!l.getValue(du);p={...p,smoothScrolling:_}}if(g.affectsConfiguration(Ah)){const _=l.getValue(Ah);p={...p,mouseWheelScrollSensitivity:_}}if(g.affectsConfiguration(Rh)){const _=l.getValue(Rh);p={...p,fastScrollSensitivity:_}}Object.keys(p).length>0&&this.updateOptions(p)})),this.navigator=new Cue(this,{configurationService:l,...o}),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles!==void 0&&this.updateStyles(e.overrideStyles),e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){this.style(e?tb(e):eb)}dispose(){this.disposables.dispose(),super.dispose()}};HJ=Vg([yn(5,Ct),yn(6,wc),yn(7,qt),yn(8,ht)],HJ);let VJ=class extends cP{constructor(e,t,i,s,o,r,a,l,c,d){const u=typeof r.horizontalScrolling<"u"?r.horizontalScrolling:!!c.getValue(sc),[h,f]=d.invokeFunction(pP,r);super(e,t,i,s,o,{keyboardSupport:!1,...h,horizontalScrolling:u}),this.disposables.add(f),this.contextKeyService=fP(a,this),this.disposables.add(gP(this.contextKeyService,this)),this.listSupportsMultiSelect=uP.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(r.multipleSelectionSupport!==!1),hP.bindTo(this.contextKeyService).set(!!r.selectionNavigation),this.listHasSelectionOrFocus=P$.bindTo(this.contextKeyService),this.listDoubleSelection=O$.bindTo(this.contextKeyService),this.listMultiSelection=F$.bindTo(this.contextKeyService),this.horizontalScrolling=r.horizontalScrolling,this._useAltAsMultipleSelectionModifier=Mh(c),this.disposables.add(this.contextKeyService),this.disposables.add(l.register(this)),this.updateStyles(r.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const p=this.getSelection(),_=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(p.length>0||_.length>0),this.listMultiSelection.set(p.length>1),this.listDoubleSelection.set(p.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const p=this.getSelection(),_=this.getFocus();this.listHasSelectionOrFocus.set(p.length>0||_.length>0)})),this.disposables.add(c.onDidChangeConfiguration(p=>{p.affectsConfiguration(nb)&&(this._useAltAsMultipleSelectionModifier=Mh(c));let _={};if(p.affectsConfiguration(sc)&&this.horizontalScrolling===void 0){const b=!!c.getValue(sc);_={..._,horizontalScrolling:b}}if(p.affectsConfiguration(cu)){const b=!!c.getValue(cu);_={..._,scrollByPage:b}}if(p.affectsConfiguration(du)){const b=!!c.getValue(du);_={..._,smoothScrolling:b}}if(p.affectsConfiguration(Ah)){const b=c.getValue(Ah);_={..._,mouseWheelScrollSensitivity:b}}if(p.affectsConfiguration(Rh)){const b=c.getValue(Rh);_={..._,fastScrollSensitivity:b}}Object.keys(_).length>0&&this.updateOptions(_)})),this.navigator=new P$e(this,{configurationService:c,...r}),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles!==void 0&&this.updateStyles(e.overrideStyles),e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){this.style(e?tb(e):eb)}dispose(){this.disposables.dispose(),super.dispose()}};VJ=Vg([yn(6,Ct),yn(7,wc),yn(8,qt),yn(9,ht)],VJ);class $$ extends ne{constructor(e,t){var i;super(),this.widget=e,this._onDidOpen=this._register(new X),this.onDidOpen=this._onDidOpen.event,this._register(Ae.filter(this.widget.onDidChangeSelection,s=>Np(s.browserEvent))(s=>this.onSelectionFromKeyboard(s))),this._register(this.widget.onPointer(s=>this.onPointer(s.element,s.browserEvent))),this._register(this.widget.onMouseDblClick(s=>this.onMouseDblClick(s.element,s.browserEvent))),typeof(t==null?void 0:t.openOnSingleClick)!="boolean"&&(t!=null&&t.configurationService)?(this.openOnSingleClick=(t==null?void 0:t.configurationService.getValue(AN))!=="doubleClick",this._register(t==null?void 0:t.configurationService.onDidChangeConfiguration(s=>{s.affectsConfiguration(AN)&&(this.openOnSingleClick=(t==null?void 0:t.configurationService.getValue(AN))!=="doubleClick")}))):this.openOnSingleClick=(i=t==null?void 0:t.openOnSingleClick)!==null&&i!==void 0?i:!0}onSelectionFromKeyboard(e){if(e.elements.length!==1)return;const t=e.browserEvent,i=typeof t.preserveFocus=="boolean"?t.preserveFocus:!0,s=typeof t.pinned=="boolean"?t.pinned:!i;this._open(this.getSelectedElement(),i,s,!1,e.browserEvent)}onPointer(e,t){if(!this.openOnSingleClick||t.detail===2)return;const s=t.button===1,o=!0,r=s,a=t.ctrlKey||t.metaKey||t.altKey;this._open(e,o,r,a,t)}onMouseDblClick(e,t){if(!t)return;const i=t.target;if(i.classList.contains("monaco-tl-twistie")||i.classList.contains("monaco-icon-label")&&i.classList.contains("folder-icon")&&t.offsetX<16)return;const o=!1,r=!0,a=t.ctrlKey||t.metaKey||t.altKey;this._open(e,o,r,a,t)}_open(e,t,i,s,o){e&&this._onDidOpen.fire({editorOptions:{preserveFocus:t,pinned:i,revealIfVisible:!0},sideBySide:s,element:e,browserEvent:o})}}class Cue extends $${constructor(e,t){super(e,t),this.widget=e}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class P$e extends $${constructor(e,t){super(e,t)}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class O$e extends $${constructor(e,t){super(e,t)}getSelectedElement(){var e;return(e=this.widget.getSelection()[0])!==null&&e!==void 0?e:void 0}}function F$e(n){let e=!1;return t=>{if(t.toKeyCodeChord().isModifierKey())return!1;if(e)return e=!1,!1;const i=n.softDispatch(t,t.target);return i.kind===1?(e=!0,!1):(e=!1,i.kind===0)}}let Z9=class extends A${constructor(e,t,i,s,o,r,a,l,c){const{options:d,getTypeNavigationMode:u,disposable:h}=r.invokeFunction(FD,o);super(e,t,i,s,d),this.disposables.add(h),this.internals=new y0(this,o,u,o.overrideStyles,a,l,c),this.disposables.add(this.internals)}updateOptions(e){super.updateOptions(e),this.internals.updateOptions(e)}};Z9=Vg([yn(5,ht),yn(6,Ct),yn(7,wc),yn(8,qt)],Z9);let zJ=class extends cue{constructor(e,t,i,s,o,r,a,l,c){const{options:d,getTypeNavigationMode:u,disposable:h}=r.invokeFunction(FD,o);super(e,t,i,s,d),this.disposables.add(h),this.internals=new y0(this,o,u,o.overrideStyles,a,l,c),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};zJ=Vg([yn(5,ht),yn(6,Ct),yn(7,wc),yn(8,qt)],zJ);let $J=class extends I$e{constructor(e,t,i,s,o,r,a,l,c,d){const{options:u,getTypeNavigationMode:h,disposable:f}=a.invokeFunction(FD,r);super(e,t,i,s,o,u),this.disposables.add(f),this.internals=new y0(this,r,h,r.overrideStyles,l,c,d),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles!==void 0&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};$J=Vg([yn(6,ht),yn(7,Ct),yn(8,wc),yn(9,qt)],$J);let Y9=class extends uue{get onDidOpen(){return this.internals.onDidOpen}constructor(e,t,i,s,o,r,a,l,c,d){const{options:u,getTypeNavigationMode:h,disposable:f}=a.invokeFunction(FD,r);super(e,t,i,s,o,u),this.disposables.add(f),this.internals=new y0(this,r,h,r.overrideStyles,l,c,d),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};Y9=Vg([yn(6,ht),yn(7,Ct),yn(8,wc),yn(9,qt)],Y9);let UJ=class extends k$e{constructor(e,t,i,s,o,r,a,l,c,d,u){const{options:h,getTypeNavigationMode:f,disposable:g}=l.invokeFunction(FD,a);super(e,t,i,s,o,r,h),this.disposables.add(g),this.internals=new y0(this,a,f,a.overrideStyles,c,d,u),this.disposables.add(this.internals)}updateOptions(e){super.updateOptions(e),this.internals.updateOptions(e)}};UJ=Vg([yn(7,ht),yn(8,Ct),yn(9,wc),yn(10,qt)],UJ);function wue(n){const e=n.getValue(H$);if(e==="highlight")return cg.Highlight;if(e==="filter")return cg.Filter;const t=n.getValue(FA);if(t==="simple"||t==="highlight")return cg.Highlight;if(t==="filter")return cg.Filter}function yue(n){const e=n.getValue(z$);if(e==="fuzzy")return w0.Fuzzy;if(e==="contiguous")return w0.Contiguous}function FD(n,e){var t;const i=n.get(qt),s=n.get(Wg),o=n.get(Ct),r=n.get(ht),a=()=>{const f=o.getContextKeyValue(vue);if(f==="automatic")return ih.Automatic;if(f==="trigger"||o.getContextKeyValue(bue)===!1)return ih.Trigger;const p=i.getValue(V$);if(p==="automatic")return ih.Automatic;if(p==="trigger")return ih.Trigger},l=e.horizontalScrolling!==void 0?e.horizontalScrolling:!!i.getValue(sc),[c,d]=r.invokeFunction(pP,e),u=e.paddingBottom,h=e.renderIndentGuides!==void 0?e.renderIndentGuides:i.getValue(BA);return{getTypeNavigationMode:a,disposable:d,options:{keyboardSupport:!1,...c,indent:typeof i.getValue(JL)=="number"?i.getValue(JL):void 0,renderIndentGuides:h,smoothScrolling:!!i.getValue(du),defaultFindMode:wue(i),defaultFindMatchType:yue(i),horizontalScrolling:l,scrollByPage:!!i.getValue(cu),paddingBottom:u,hideTwistiesOfChildlessElements:e.hideTwistiesOfChildlessElements,expandOnlyOnTwistieClick:(t=e.expandOnlyOnTwistieClick)!==null&&t!==void 0?t:i.getValue(WA)==="doubleClick",contextViewProvider:s,findWidgetStyles:ZVe,enableStickyScroll:!!i.getValue(HA),stickyScrollMaxItemCount:Number(i.getValue(VA))}}}let y0=class{get onDidOpen(){return this.navigator.onDidOpen}constructor(e,t,i,s,o,r,a){var l;this.tree=e,this.disposables=[],this.contextKeyService=fP(o,e),this.disposables.push(gP(this.contextKeyService,e)),this.listSupportsMultiSelect=uP.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(t.multipleSelectionSupport!==!1),hP.bindTo(this.contextKeyService).set(!!t.selectionNavigation),this.listSupportFindWidget=T$e.bindTo(this.contextKeyService),this.listSupportFindWidget.set((l=t.findWidgetEnabled)!==null&&l!==void 0?l:!0),this.hasSelectionOrFocus=P$.bindTo(this.contextKeyService),this.hasDoubleSelection=O$.bindTo(this.contextKeyService),this.hasMultiSelection=F$.bindTo(this.contextKeyService),this.treeElementCanCollapse=B$.bindTo(this.contextKeyService),this.treeElementHasParent=N$e.bindTo(this.contextKeyService),this.treeElementCanExpand=W$.bindTo(this.contextKeyService),this.treeElementHasChild=A$e.bindTo(this.contextKeyService),this.treeFindOpen=R$e.bindTo(this.contextKeyService),this.treeStickyScrollFocused=mue.bindTo(this.contextKeyService),this._useAltAsMultipleSelectionModifier=Mh(a),this.updateStyleOverrides(s);const d=()=>{const h=e.getFocus()[0];if(!h)return;const f=e.getNode(h);this.treeElementCanCollapse.set(f.collapsible&&!f.collapsed),this.treeElementHasParent.set(!!e.getParentElement(h)),this.treeElementCanExpand.set(f.collapsible&&f.collapsed),this.treeElementHasChild.set(!!e.getFirstElementChild(h))},u=new Set;u.add(vue),u.add(bue),this.disposables.push(this.contextKeyService,r.register(e),e.onDidChangeSelection(()=>{const h=e.getSelection(),f=e.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.hasSelectionOrFocus.set(h.length>0||f.length>0),this.hasMultiSelection.set(h.length>1),this.hasDoubleSelection.set(h.length===2)})}),e.onDidChangeFocus(()=>{const h=e.getSelection(),f=e.getFocus();this.hasSelectionOrFocus.set(h.length>0||f.length>0),d()}),e.onDidChangeCollapseState(d),e.onDidChangeModel(d),e.onDidChangeFindOpenState(h=>this.treeFindOpen.set(h)),e.onDidChangeStickyScrollFocused(h=>this.treeStickyScrollFocused.set(h)),a.onDidChangeConfiguration(h=>{let f={};if(h.affectsConfiguration(nb)&&(this._useAltAsMultipleSelectionModifier=Mh(a)),h.affectsConfiguration(JL)){const g=a.getValue(JL);f={...f,indent:g}}if(h.affectsConfiguration(BA)&&t.renderIndentGuides===void 0){const g=a.getValue(BA);f={...f,renderIndentGuides:g}}if(h.affectsConfiguration(du)){const g=!!a.getValue(du);f={...f,smoothScrolling:g}}if(h.affectsConfiguration(H$)||h.affectsConfiguration(FA)){const g=wue(a);f={...f,defaultFindMode:g}}if(h.affectsConfiguration(V$)||h.affectsConfiguration(FA)){const g=i();f={...f,typeNavigationMode:g}}if(h.affectsConfiguration(z$)){const g=yue(a);f={...f,defaultFindMatchType:g}}if(h.affectsConfiguration(sc)&&t.horizontalScrolling===void 0){const g=!!a.getValue(sc);f={...f,horizontalScrolling:g}}if(h.affectsConfiguration(cu)){const g=!!a.getValue(cu);f={...f,scrollByPage:g}}if(h.affectsConfiguration(WA)&&t.expandOnlyOnTwistieClick===void 0&&(f={...f,expandOnlyOnTwistieClick:a.getValue(WA)==="doubleClick"}),h.affectsConfiguration(HA)){const g=a.getValue(HA);f={...f,enableStickyScroll:g}}if(h.affectsConfiguration(VA)){const g=Math.max(1,a.getValue(VA));f={...f,stickyScrollMaxItemCount:g}}if(h.affectsConfiguration(Ah)){const g=a.getValue(Ah);f={...f,mouseWheelScrollSensitivity:g}}if(h.affectsConfiguration(Rh)){const g=a.getValue(Rh);f={...f,fastScrollSensitivity:g}}Object.keys(f).length>0&&e.updateOptions(f)}),this.contextKeyService.onDidChangeContext(h=>{h.affectsSome(u)&&e.updateOptions({typeNavigationMode:i()})})),this.navigator=new O$e(e,{configurationService:a,...t}),this.disposables.push(this.navigator)}updateOptions(e){e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyleOverrides(e){this.tree.style(e?tb(e):eb)}dispose(){this.disposables=tn(this.disposables)}};y0=Vg([yn(4,Ct),yn(5,wc),yn(6,qt)],y0);const B$e=Un.as(_u.Configuration);B$e.registerConfiguration({id:"workbench",order:7,title:v("workbenchConfigurationTitle","Workbench"),type:"object",properties:{[nb]:{type:"string",enum:["ctrlCmd","alt"],markdownEnumDescriptions:[v("multiSelectModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),v("multiSelectModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],default:"ctrlCmd",description:v({},"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.")},[AN]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:v({},"Controls how to open items in trees and lists using the mouse (if supported). Note that some trees and lists might choose to ignore this setting if it is not applicable.")},[sc]:{type:"boolean",default:!1,description:v("horizontalScrolling setting","Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.")},[cu]:{type:"boolean",default:!1,description:v("list.scrollByPage","Controls whether clicks in the scrollbar scroll page by page.")},[JL]:{type:"number",default:8,minimum:4,maximum:40,description:v("tree indent setting","Controls tree indentation in pixels.")},[BA]:{type:"string",enum:["none","onHover","always"],default:"onHover",description:v("render tree indent guides","Controls whether the tree should render indent guides.")},[du]:{type:"boolean",default:!1,description:v("list smoothScrolling setting","Controls whether lists and trees have smooth scrolling.")},[Ah]:{type:"number",default:1,markdownDescription:v("Mouse Wheel Scroll Sensitivity","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")},[Rh]:{type:"number",default:5,markdownDescription:v("Fast Scroll Sensitivity","Scrolling speed multiplier when pressing `Alt`.")},[H$]:{type:"string",enum:["highlight","filter"],enumDescriptions:[v("defaultFindModeSettingKey.highlight","Highlight elements when searching. Further up and down navigation will traverse only the highlighted elements."),v("defaultFindModeSettingKey.filter","Filter elements when searching.")],default:"highlight",description:v("defaultFindModeSettingKey","Controls the default find mode for lists and trees in the workbench.")},[FA]:{type:"string",enum:["simple","highlight","filter"],enumDescriptions:[v("keyboardNavigationSettingKey.simple","Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes."),v("keyboardNavigationSettingKey.highlight","Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements."),v("keyboardNavigationSettingKey.filter","Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.")],default:"highlight",description:v("keyboardNavigationSettingKey","Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter."),deprecated:!0,deprecationMessage:v("keyboardNavigationSettingKeyDeprecated","Please use 'workbench.list.defaultFindMode' and 'workbench.list.typeNavigationMode' instead.")},[z$]:{type:"string",enum:["fuzzy","contiguous"],enumDescriptions:[v("defaultFindMatchTypeSettingKey.fuzzy","Use fuzzy matching when searching."),v("defaultFindMatchTypeSettingKey.contiguous","Use contiguous matching when searching.")],default:"fuzzy",description:v("defaultFindMatchTypeSettingKey","Controls the type of matching used when searching lists and trees in the workbench.")},[WA]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:v("expand mode","Controls how tree folders are expanded when clicking the folder names. Note that some trees and lists might choose to ignore this setting if it is not applicable.")},[HA]:{type:"boolean",default:!0,description:v("sticky scroll","Controls whether sticky scrolling is enabled in trees.")},[VA]:{type:"number",minimum:1,default:7,markdownDescription:v("sticky scroll maximum items","Controls the number of sticky elements displayed in the tree when `#workbench.tree.enableStickyScroll#` is enabled.")},[V$]:{type:"string",enum:["automatic","trigger"],default:"automatic",markdownDescription:v("typeNavigationMode2","Controls how type navigation works in lists and trees in the workbench. When set to `trigger`, type navigation begins once the `list.triggerTypeNavigation` command is run.")}}});class _m extends ne{constructor(e,t){var i;super(),this.options=t,this.text="",this.title="",this.highlights=[],this.didEverRender=!1,this.supportIcons=(i=t==null?void 0:t.supportIcons)!==null&&i!==void 0?i:!1,this.domNode=we(e,ke("span.monaco-highlighted-label"))}get element(){return this.domNode}set(e,t=[],i="",s){e||(e=""),s&&(e=_m.escapeNewLines(e,t)),!(this.didEverRender&&this.text===e&&this.title===i&&vl(this.highlights,t))&&(this.text=e,this.title=i,this.highlights=t,this.render())}render(){var e,t,i,s;const o=[];let r=0;for(const a of this.highlights){if(a.end===a.start)continue;if(r{s=o===`\r `?-1:0,r+=i;for(const a of t)a.end<=r||(a.start>=r&&(a.start+=s),a.end>=r&&(a.end+=s));return i+=s,"⏎"})}}class Ky{constructor(e){this._element=e}get element(){return this._element}set textContent(e){this.disposed||e===this._textContent||(this._textContent=e,this._element.textContent=e)}set className(e){this.disposed||e===this._className||(this._className=e,this._element.className=e)}set empty(e){this.disposed||e===this._empty||(this._empty=e,this._element.style.marginLeft=e?"0":"")}dispose(){this.disposed=!0}}class zA extends ne{constructor(e,t){var i;super(),this.customHovers=new Map,this.creationOptions=t,this.domNode=this._register(new Ky(we(e,ke(".monaco-icon-label")))),this.labelContainer=we(this.domNode.element,ke(".monaco-icon-label-container")),this.nameContainer=we(this.labelContainer,ke("span.monaco-icon-name-container")),t!=null&&t.supportHighlights||t!=null&&t.supportIcons?this.nameNode=this._register(new V$e(this.nameContainer,!!t.supportIcons)):this.nameNode=new W$e(this.nameContainer),this.hoverDelegate=(i=t==null?void 0:t.hoverDelegate)!==null&&i!==void 0?i:Ur("mouse")}get element(){return this.domNode.element}setLabel(e,t,i){var s;const o=["monaco-icon-label"],r=["monaco-icon-label-container"];let a="";i&&(i.extraClasses&&o.push(...i.extraClasses),i.italic&&o.push("italic"),i.strikethrough&&o.push("strikethrough"),i.disabledCommand&&r.push("disabled"),i.title&&(typeof i.title=="string"?a+=i.title:a+=e));const l=this.domNode.element.querySelector(".monaco-icon-label-iconpath");if(i!=null&&i.iconPath){let c;!l||!co(l)?(c=ke(".monaco-icon-label-iconpath"),this.domNode.element.prepend(c)):c=l,c.style.backgroundImage=Ig(i==null?void 0:i.iconPath)}else l&&l.remove();if(this.domNode.className=o.join(" "),this.domNode.element.setAttribute("aria-label",a),this.labelContainer.className=r.join(" "),this.setupHover(i!=null&&i.descriptionTitle?this.labelContainer:this.element,i==null?void 0:i.title),this.nameNode.setLabel(e,i),t||this.descriptionNode){const c=this.getOrCreateDescriptionNode();c instanceof _m?(c.set(t||"",i?i.descriptionMatches:void 0,void 0,i==null?void 0:i.labelEscapeNewLines),this.setupHover(c.element,i==null?void 0:i.descriptionTitle)):(c.textContent=t&&(i!=null&&i.labelEscapeNewLines)?_m.escapeNewLines(t,[]):t||"",this.setupHover(c.element,(i==null?void 0:i.descriptionTitle)||""),c.empty=!t)}if(i!=null&&i.suffix||this.suffixNode){const c=this.getOrCreateSuffixNode();c.textContent=(s=i==null?void 0:i.suffix)!==null&&s!==void 0?s:""}}setupHover(e,t){const i=this.customHovers.get(e);if(i&&(i.dispose(),this.customHovers.delete(e)),!t){e.removeAttribute("title");return}if(this.hoverDelegate.showNativeHover)(function(o,r){Pr(r)?o.title=_$(r):r!=null&&r.markdownNotSupportedFallback?o.title=r.markdownNotSupportedFallback:o.removeAttribute("title")})(e,t);else{const s=bu().setupUpdatableHover(this.hoverDelegate,e,t);s&&this.customHovers.set(e,s)}}dispose(){super.dispose();for(const e of this.customHovers.values())e.dispose();this.customHovers.clear()}getOrCreateSuffixNode(){if(!this.suffixNode){const e=this._register(new Ky(RMe(this.nameContainer,ke("span.monaco-icon-suffix-container"))));this.suffixNode=this._register(new Ky(we(e.element,ke("span.label-suffix"))))}return this.suffixNode}getOrCreateDescriptionNode(){var e;if(!this.descriptionNode){const t=this._register(new Ky(we(this.labelContainer,ke("span.monaco-icon-description-container"))));!((e=this.creationOptions)===null||e===void 0)&&e.supportDescriptionHighlights?this.descriptionNode=this._register(new _m(we(t.element,ke("span.label-description")),{supportIcons:!!this.creationOptions.supportIcons})):this.descriptionNode=this._register(new Ky(we(t.element,ke("span.label-description"))))}return this.descriptionNode}}class W$e{constructor(e){this.container=e,this.label=void 0,this.singleLabel=void 0}setLabel(e,t){if(!(this.label===e&&vl(this.options,t)))if(this.label=e,this.options=t,typeof e=="string")this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=we(this.container,ke("a.label-name",{id:t==null?void 0:t.domId}))),this.singleLabel.textContent=e;else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;for(let i=0;i{const o={start:i,end:i+s.length},r=t.map(a=>Ho.intersect(o,a)).filter(a=>!Ho.isEmpty(a)).map(({start:a,end:l})=>({start:a-i,end:l-i}));return i=o.end+e.length,r})}class V$e extends ne{constructor(e,t){super(),this.container=e,this.supportIcons=t,this.label=void 0,this.singleLabel=void 0}setLabel(e,t){if(!(this.label===e&&vl(this.options,t)))if(this.label=e,this.options=t,typeof e=="string")this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=this._register(new _m(we(this.container,ke("a.label-name",{id:t==null?void 0:t.domId})),{supportIcons:this.supportIcons}))),this.singleLabel.set(e,t==null?void 0:t.matches,void 0,t==null?void 0:t.labelEscapeNewLines);else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;const i=(t==null?void 0:t.separator)||"/",s=H$e(e,i,t==null?void 0:t.matches);for(let o=0;o{const n=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});return{collator:n,collatorIsNumeric:n.resolvedOptions().numeric}});function z$e(n,e,t=!1){const i=n||"",s=e||"",o=jJ.value.collator.compare(i,s);return jJ.value.collatorIsNumeric&&o===0&&i!==s?is.length)return 1}return 0}var mP=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},X9=function(n,e){return function(t,i){e(t,i,n)}},Q9;const yd=ke;class xue{constructor(e,t,i){this.index=e,this.hasCheckbox=t,this._hidden=!1,this._init=new pu(()=>{var s;const o=(s=i.label)!==null&&s!==void 0?s:"",r=AS(o).text.trim(),a=i.ariaLabel||[o,this.saneDescription,this.saneDetail].map(l=>vWe(l)).filter(l=>!!l).join(", ");return{saneLabel:o,saneSortLabel:r,saneAriaLabel:a}}),this._saneDescription=i.description,this._saneTooltip=i.tooltip}get saneLabel(){return this._init.value.saneLabel}get saneSortLabel(){return this._init.value.saneSortLabel}get saneAriaLabel(){return this._init.value.saneAriaLabel}get element(){return this._element}set element(e){this._element=e}get hidden(){return this._hidden}set hidden(e){this._hidden=e}get saneDescription(){return this._saneDescription}set saneDescription(e){this._saneDescription=e}get saneDetail(){return this._saneDetail}set saneDetail(e){this._saneDetail=e}get saneTooltip(){return this._saneTooltip}set saneTooltip(e){this._saneTooltip=e}get labelHighlights(){return this._labelHighlights}set labelHighlights(e){this._labelHighlights=e}get descriptionHighlights(){return this._descriptionHighlights}set descriptionHighlights(e){this._descriptionHighlights=e}get detailHighlights(){return this._detailHighlights}set detailHighlights(e){this._detailHighlights=e}}class sr extends xue{constructor(e,t,i,s,o,r){var a,l,c;super(e,t,o),this.fireButtonTriggered=i,this._onChecked=s,this.item=o,this._separator=r,this._checked=!1,this.onChecked=t?Ae.map(Ae.filter(this._onChecked.event,d=>d.element===this),d=>d.checked):Ae.None,this._saneDetail=o.detail,this._labelHighlights=(a=o.highlights)===null||a===void 0?void 0:a.label,this._descriptionHighlights=(l=o.highlights)===null||l===void 0?void 0:l.description,this._detailHighlights=(c=o.highlights)===null||c===void 0?void 0:c.detail}get separator(){return this._separator}set separator(e){this._separator=e}get checked(){return this._checked}set checked(e){e!==this._checked&&(this._checked=e,this._onChecked.fire({element:this,checked:e}))}get checkboxDisabled(){return!!this.item.disabled}}var ju;(function(n){n[n.NONE=0]="NONE",n[n.MOUSE_HOVER=1]="MOUSE_HOVER",n[n.ACTIVE_ITEM=2]="ACTIVE_ITEM"})(ju||(ju={}));class Cp extends xue{constructor(e,t,i){super(e,!1,i),this.fireSeparatorButtonTriggered=t,this.separator=i,this.children=new Array,this.focusInsideSeparator=ju.NONE}}class j$e{getHeight(e){return e instanceof Cp?30:e.saneDetail?44:22}getTemplateId(e){return e instanceof sr?ek.ID:BD.ID}}class K$e{getWidgetAriaLabel(){return v("quickInput","Quick Input")}getAriaLabel(e){var t;return!((t=e.separator)===null||t===void 0)&&t.label?`${e.saneAriaLabel}, ${e.separator.label}`:e.saneAriaLabel}getWidgetRole(){return"listbox"}getRole(e){return e.hasCheckbox?"checkbox":"option"}isChecked(e){if(!(!e.hasCheckbox||!(e instanceof sr)))return{get value(){return e.checked},onDidChange:t=>e.onChecked(()=>t())}}}class Lue{constructor(e){this.hoverDelegate=e}renderTemplate(e){const t=Object.create(null);t.toDisposeElement=new be,t.toDisposeTemplate=new be,t.entry=we(e,yd(".quick-input-list-entry"));const i=we(t.entry,yd("label.quick-input-list-label"));t.toDisposeTemplate.add(rs(i,Le.CLICK,c=>{t.checkbox.offsetParent||c.preventDefault()})),t.checkbox=we(i,yd("input.quick-input-list-checkbox")),t.checkbox.type="checkbox";const s=we(i,yd(".quick-input-list-rows")),o=we(s,yd(".quick-input-list-row")),r=we(s,yd(".quick-input-list-row"));t.label=new zA(o,{supportHighlights:!0,supportDescriptionHighlights:!0,supportIcons:!0,hoverDelegate:this.hoverDelegate}),t.toDisposeTemplate.add(t.label),t.icon=oz(t.label.element,yd(".quick-input-list-icon"));const a=we(o,yd(".quick-input-list-entry-keybinding"));t.keybinding=new $w(a,Da),t.toDisposeTemplate.add(t.keybinding);const l=we(r,yd(".quick-input-list-label-meta"));return t.detail=new zA(l,{supportHighlights:!0,supportIcons:!0,hoverDelegate:this.hoverDelegate}),t.toDisposeTemplate.add(t.detail),t.separator=we(t.entry,yd(".quick-input-list-separator")),t.actionBar=new hc(t.entry,this.hoverDelegate?{hoverDelegate:this.hoverDelegate}:void 0),t.actionBar.domNode.classList.add("quick-input-list-entry-action-bar"),t.toDisposeTemplate.add(t.actionBar),t}disposeTemplate(e){e.toDisposeElement.dispose(),e.toDisposeTemplate.dispose()}disposeElement(e,t,i){i.toDisposeElement.clear(),i.actionBar.clear()}}let ek=Q9=class extends Lue{constructor(e,t){super(e),this.themeService=t,this._itemsWithSeparatorsFrequency=new Map}get templateId(){return Q9.ID}renderTemplate(e){const t=super.renderTemplate(e);return t.toDisposeTemplate.add(rs(t.checkbox,Le.CHANGE,i=>{t.element.checked=t.checkbox.checked})),t}renderElement(e,t,i){var s,o,r;const a=e.element;i.element=a,a.element=(s=i.entry)!==null&&s!==void 0?s:void 0;const l=a.item;i.checkbox.checked=a.checked,i.toDisposeElement.add(a.onChecked(p=>i.checkbox.checked=p)),i.checkbox.disabled=a.checkboxDisabled;const{labelHighlights:c,descriptionHighlights:d,detailHighlights:u}=a;if(l.iconPath){const p=HC(this.themeService.getColorTheme().type)?l.iconPath.dark:(o=l.iconPath.light)!==null&&o!==void 0?o:l.iconPath.dark,_=pt.revive(p);i.icon.className="quick-input-list-icon",i.icon.style.backgroundImage=Ig(_)}else i.icon.style.backgroundImage="",i.icon.className=l.iconClass?`quick-input-list-icon ${l.iconClass}`:"";let h;!a.saneTooltip&&a.saneDescription&&(h={markdown:{value:a.saneDescription,supportThemeIcons:!0},markdownNotSupportedFallback:a.saneDescription});const f={matches:c||[],descriptionTitle:h,descriptionMatches:d||[],labelEscapeNewLines:!0};if(f.extraClasses=l.iconClasses,f.italic=l.italic,f.strikethrough=l.strikethrough,i.entry.classList.remove("quick-input-list-separator-as-item"),i.label.setLabel(a.saneLabel,a.saneDescription,f),i.keybinding.set(l.keybinding),a.saneDetail){let p;a.saneTooltip||(p={markdown:{value:a.saneDetail,supportThemeIcons:!0},markdownNotSupportedFallback:a.saneDetail}),i.detail.element.style.display="",i.detail.setLabel(a.saneDetail,void 0,{matches:u,title:p,labelEscapeNewLines:!0})}else i.detail.element.style.display="none";!((r=a.separator)===null||r===void 0)&&r.label?(i.separator.textContent=a.separator.label,i.separator.style.display="",this.addItemWithSeparator(a)):i.separator.style.display="none",i.entry.classList.toggle("quick-input-list-separator-border",!!a.separator);const g=l.buttons;g&&g.length?(i.actionBar.push(g.map((p,_)=>AA(p,`id-${_}`,()=>a.fireButtonTriggered({button:p,item:a.item}))),{icon:!0,label:!1}),i.entry.classList.add("has-actions")):i.entry.classList.remove("has-actions")}disposeElement(e,t,i){this.removeItemWithSeparator(e.element),super.disposeElement(e,t,i)}isItemWithSeparatorVisible(e){return this._itemsWithSeparatorsFrequency.has(e)}addItemWithSeparator(e){this._itemsWithSeparatorsFrequency.set(e,(this._itemsWithSeparatorsFrequency.get(e)||0)+1)}removeItemWithSeparator(e){const t=this._itemsWithSeparatorsFrequency.get(e)||0;t>1?this._itemsWithSeparatorsFrequency.set(e,t-1):this._itemsWithSeparatorsFrequency.delete(e)}};ek.ID="quickpickitem";ek=Q9=mP([X9(1,js)],ek);class BD extends Lue{constructor(){super(...arguments),this._visibleSeparatorsFrequency=new Map}get templateId(){return BD.ID}get visibleSeparators(){return[...this._visibleSeparatorsFrequency.keys()]}isSeparatorVisible(e){return this._visibleSeparatorsFrequency.has(e)}renderElement(e,t,i){var s;const o=e.element;i.element=o,o.element=(s=i.entry)!==null&&s!==void 0?s:void 0,o.element.classList.toggle("focus-inside",!!o.focusInsideSeparator);const r=o.separator,{labelHighlights:a,descriptionHighlights:l,detailHighlights:c}=o;i.icon.style.backgroundImage="",i.icon.className="";let d;!o.saneTooltip&&o.saneDescription&&(d={markdown:{value:o.saneDescription,supportThemeIcons:!0},markdownNotSupportedFallback:o.saneDescription});const u={matches:a||[],descriptionTitle:d,descriptionMatches:l||[],labelEscapeNewLines:!0};if(i.entry.classList.add("quick-input-list-separator-as-item"),i.label.setLabel(o.saneLabel,o.saneDescription,u),o.saneDetail){let f;o.saneTooltip||(f={markdown:{value:o.saneDetail,supportThemeIcons:!0},markdownNotSupportedFallback:o.saneDetail}),i.detail.element.style.display="",i.detail.setLabel(o.saneDetail,void 0,{matches:c,title:f,labelEscapeNewLines:!0})}else i.detail.element.style.display="none";i.separator.style.display="none",i.entry.classList.add("quick-input-list-separator-border");const h=r.buttons;h&&h.length?(i.actionBar.push(h.map((f,g)=>AA(f,`id-${g}`,()=>o.fireSeparatorButtonTriggered({button:f,separator:o.separator}))),{icon:!0,label:!1}),i.entry.classList.add("has-actions")):i.entry.classList.remove("has-actions"),this.addSeparator(o)}disposeElement(e,t,i){var s;this.removeSeparator(e.element),this.isSeparatorVisible(e.element)||(s=e.element.element)===null||s===void 0||s.classList.remove("focus-inside"),super.disposeElement(e,t,i)}addSeparator(e){this._visibleSeparatorsFrequency.set(e,(this._visibleSeparatorsFrequency.get(e)||0)+1)}removeSeparator(e){const t=this._visibleSeparatorsFrequency.get(e)||0;t>1?this._visibleSeparatorsFrequency.set(e,t-1):this._visibleSeparatorsFrequency.delete(e)}}BD.ID="quickpickseparator";let tk=class extends ne{constructor(e,t,i,s,o,r){super(),this.parent=e,this.hoverDelegate=t,this.linkOpenerDelegate=i,this.accessibilityService=r,this._onKeyDown=new X,this._onLeave=new X,this.onLeave=this._onLeave.event,this._onChangedAllVisibleChecked=new X,this.onChangedAllVisibleChecked=this._onChangedAllVisibleChecked.event,this._onChangedCheckedCount=new X,this.onChangedCheckedCount=this._onChangedCheckedCount.event,this._onChangedVisibleCount=new X,this.onChangedVisibleCount=this._onChangedVisibleCount.event,this._onChangedCheckedElements=new X,this.onChangedCheckedElements=this._onChangedCheckedElements.event,this._onButtonTriggered=new X,this.onButtonTriggered=this._onButtonTriggered.event,this._onSeparatorButtonTriggered=new X,this.onSeparatorButtonTriggered=this._onSeparatorButtonTriggered.event,this._elementChecked=new X,this._inputElements=new Array,this._elementTree=new Array,this._itemElements=new Array,this._elementDisposable=this._register(new be),this._shouldFireCheckedEvents=!0,this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._matchOnLabelMode="fuzzy",this._sortByLabel=!0,this._shouldLoop=!0,this._container=we(this.parent,yd(".quick-input-list")),this._separatorRenderer=new BD(t),this._itemRenderer=o.createInstance(ek,t),this._tree=this._register(o.createInstance(Z9,"QuickInput",this._container,new j$e,[this._itemRenderer,this._separatorRenderer],{accessibilityProvider:new K$e,setRowLineHeight:!1,multipleSelectionSupport:!1,hideTwistiesOfChildlessElements:!0,renderIndentGuides:ew.None,findWidgetEnabled:!1,indent:0,horizontalScrolling:!1,allowNonCollapsibleParents:!0,alwaysConsumeMouseWheel:!0})),this._tree.getHTMLElement().id=s,this._registerListeners()}get onDidChangeFocus(){return Ae.map(this._tree.onDidChangeFocus,e=>e.elements.filter(t=>t instanceof sr).map(t=>t.item))}get onDidChangeSelection(){return Ae.map(this._tree.onDidChangeSelection,e=>({items:e.elements.filter(t=>t instanceof sr).map(t=>t.item),event:e.browserEvent}))}get scrollTop(){return this._tree.scrollTop}set scrollTop(e){this._tree.scrollTop=e}get ariaLabel(){return this._tree.ariaLabel}set ariaLabel(e){this._tree.ariaLabel=e??""}set enabled(e){this._tree.getHTMLElement().style.pointerEvents=e?"":"none"}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(e){this._matchOnDescription=e}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(e){this._matchOnDetail=e}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(e){this._matchOnLabel=e}get matchOnLabelMode(){return this._matchOnLabelMode}set matchOnLabelMode(e){this._matchOnLabelMode=e}get sortByLabel(){return this._sortByLabel}set sortByLabel(e){this._sortByLabel=e}get shouldLoop(){return this._shouldLoop}set shouldLoop(e){this._shouldLoop=e}_registerListeners(){this._registerOnKeyDown(),this._registerOnContainerClick(),this._registerOnMouseMiddleClick(),this._registerOnElementChecked(),this._registerOnContextMenu(),this._registerHoverListeners(),this._registerSelectionChangeListener(),this._registerSeparatorActionShowingListeners()}_registerOnKeyDown(){this._register(this._tree.onKeyDown(e=>{const t=new ln(e);switch(t.keyCode){case 10:this.toggleCheckbox();break}this._onKeyDown.fire(t)}))}_registerOnContainerClick(){this._register(ce(this._container,Le.CLICK,e=>{(e.x||e.y)&&this._onLeave.fire()}))}_registerOnMouseMiddleClick(){this._register(ce(this._container,Le.AUXCLICK,e=>{e.button===1&&this._onLeave.fire()}))}_registerOnElementChecked(){this._register(this._elementChecked.event(e=>this._fireCheckedEvents()))}_registerOnContextMenu(){this._register(this._tree.onContextMenu(e=>{e.element&&(e.browserEvent.preventDefault(),this._tree.setSelection([e.element]))}))}_registerHoverListeners(){const e=this._register(new Iae(this.hoverDelegate.delay));this._register(this._tree.onMouseOver(async t=>{var i;if(yY(t.browserEvent.target)){e.cancel();return}if(!(!yY(t.browserEvent.relatedTarget)&&Zs(t.browserEvent.relatedTarget,(i=t.element)===null||i===void 0?void 0:i.element)))try{await e.trigger(async()=>{t.element instanceof sr&&this.showHover(t.element)})}catch(s){if(!ld(s))throw s}})),this._register(this._tree.onMouseOut(t=>{var i;Zs(t.browserEvent.relatedTarget,(i=t.element)===null||i===void 0?void 0:i.element)||e.cancel()}))}_registerSeparatorActionShowingListeners(){this._register(this._tree.onDidChangeFocus(e=>{const t=e.elements[0]?this._tree.getParentElement(e.elements[0]):null;for(const i of this._separatorRenderer.visibleSeparators){const s=i===t;!!(i.focusInsideSeparator&ju.ACTIVE_ITEM)!==s&&(s?i.focusInsideSeparator|=ju.ACTIVE_ITEM:i.focusInsideSeparator&=~ju.ACTIVE_ITEM,this._tree.rerender(i))}})),this._register(this._tree.onMouseOver(e=>{const t=e.element?this._tree.getParentElement(e.element):null;for(const i of this._separatorRenderer.visibleSeparators){if(i!==t)continue;!!(i.focusInsideSeparator&ju.MOUSE_HOVER)||(i.focusInsideSeparator|=ju.MOUSE_HOVER,this._tree.rerender(i))}})),this._register(this._tree.onMouseOut(e=>{const t=e.element?this._tree.getParentElement(e.element):null;for(const i of this._separatorRenderer.visibleSeparators){if(i!==t)continue;!!(i.focusInsideSeparator&ju.MOUSE_HOVER)&&(i.focusInsideSeparator&=~ju.MOUSE_HOVER,this._tree.rerender(i))}}))}_registerSelectionChangeListener(){this._register(this._tree.onDidChangeSelection(e=>{const t=e.elements.filter(i=>i instanceof sr);t.length!==e.elements.length&&(e.elements.length===1&&e.elements[0]instanceof Cp&&(this._tree.setFocus([e.elements[0].children[0]]),this._tree.reveal(e.elements[0],0)),this._tree.setSelection(t))}))}getAllVisibleChecked(){return this._allVisibleChecked(this._itemElements,!1)}getCheckedCount(){return this._itemElements.filter(e=>e.checked).length}getVisibleCount(){return this._itemElements.filter(e=>!e.hidden).length}setAllVisibleChecked(e){try{this._shouldFireCheckedEvents=!1,this._itemElements.forEach(t=>{!t.hidden&&!t.checkboxDisabled&&(t.checked=e)})}finally{this._shouldFireCheckedEvents=!0,this._fireCheckedEvents()}}setElements(e){this._elementDisposable.clear(),this._inputElements=e;const t=this.parent.classList.contains("show-checkboxes");let i;this._itemElements=new Array,this._elementTree=e.reduce((r,a,l)=>{let c;if(a.type==="separator"){if(!a.buttons)return r;i=new Cp(l,d=>this.fireSeparatorButtonTriggered(d),a),c=i}else{const d=l>0?e[l-1]:void 0;let u;d&&d.type==="separator"&&!d.buttons&&(i=void 0,u=d);const h=new sr(l,t,f=>this.fireButtonTriggered(f),this._elementChecked,a,u);if(this._itemElements.push(h),i)return i.children.push(h),r;c=h}return r.push(c),r},new Array);const s=new Array;let o=0;for(const r of this._elementTree)r instanceof Cp?(s.push({element:r,collapsible:!1,collapsed:!1,children:r.children.map(a=>({element:a,collapsible:!1,collapsed:!1}))}),o+=r.children.length+1):(s.push({element:r,collapsible:!1,collapsed:!1}),o++);this._tree.setChildren(null,s),this._onChangedVisibleCount.fire(o),this.accessibilityService.isScreenReaderOptimized()&&setTimeout(()=>{const r=this._tree.getHTMLElement().querySelector(".monaco-list-row.focused"),a=r==null?void 0:r.parentNode;if(r&&a){const l=r.nextSibling;a.removeChild(r),a.insertBefore(r,l)}},0)}setFocusedElements(e){const t=e.map(i=>this._itemElements.find(s=>s.item===i)).filter(i=>!!i);if(this._tree.setFocus(t),e.length>0){const i=this._tree.getFocus()[0];i&&this._tree.reveal(i)}}getActiveDescendant(){return this._tree.getHTMLElement().getAttribute("aria-activedescendant")}setSelectedElements(e){const t=e.map(i=>this._itemElements.find(s=>s.item===i)).filter(i=>!!i);this._tree.setSelection(t)}getCheckedElements(){return this._itemElements.filter(e=>e.checked).map(e=>e.item)}setCheckedElements(e){try{this._shouldFireCheckedEvents=!1;const t=new Set;for(const i of e)t.add(i);for(const i of this._itemElements)i.checked=t.has(i.item)}finally{this._shouldFireCheckedEvents=!0,this._fireCheckedEvents()}}focus(e){var t;if(this._itemElements.length)switch(e===_n.Second&&this._itemElements.length<2&&(e=_n.First),e){case _n.First:this._tree.scrollTop=0,this._tree.focusFirst(void 0,i=>i.element instanceof sr);break;case _n.Second:this._tree.scrollTop=0,this._tree.setFocus([this._itemElements[1]]);break;case _n.Last:this._tree.scrollTop=this._tree.scrollHeight,this._tree.setFocus([this._itemElements[this._itemElements.length-1]]);break;case _n.Next:{const i=this._tree.getFocus();this._tree.focusNext(void 0,this._shouldLoop,void 0,o=>o.element instanceof sr?(this._tree.reveal(o.element),!0):!1);const s=this._tree.getFocus();i.length&&i[0]===s[0]&&i[0]===this._itemElements[this._itemElements.length-1]&&this._onLeave.fire();break}case _n.Previous:{const i=this._tree.getFocus();this._tree.focusPrevious(void 0,this._shouldLoop,void 0,o=>{if(!(o.element instanceof sr))return!1;const r=this._tree.getParentElement(o.element);return r===null||r.children[0]!==o.element?this._tree.reveal(o.element):this._tree.reveal(r),!0});const s=this._tree.getFocus();i.length&&i[0]===s[0]&&i[0]===this._itemElements[0]&&this._onLeave.fire();break}case _n.NextPage:this._tree.focusNextPage(void 0,i=>i.element instanceof sr?(this._tree.reveal(i.element),!0):!1);break;case _n.PreviousPage:this._tree.focusPreviousPage(void 0,i=>{if(!(i.element instanceof sr))return!1;const s=this._tree.getParentElement(i.element);return s===null||s.children[0]!==i.element?this._tree.reveal(i.element):this._tree.reveal(s),!0});break;case _n.NextSeparator:{let i=!1;const s=this._tree.getFocus()[0];this._tree.focusNext(void 0,!0,void 0,r=>{if(i)return!0;if(r.element instanceof Cp)i=!0,this._separatorRenderer.isSeparatorVisible(r.element)?this._tree.reveal(r.element.children[0]):this._tree.reveal(r.element,0);else if(r.element instanceof sr){if(r.element.separator)return this._itemRenderer.isItemWithSeparatorVisible(r.element)?this._tree.reveal(r.element):this._tree.reveal(r.element,0),!0;if(r.element===this._elementTree[0])return this._tree.reveal(r.element,0),!0}return!1});const o=this._tree.getFocus()[0];s===o&&(this._tree.scrollTop=this._tree.scrollHeight,this._tree.setFocus([this._itemElements[this._itemElements.length-1]]));break}case _n.PreviousSeparator:{let i,s=!!(!((t=this._tree.getFocus()[0])===null||t===void 0)&&t.separator);this._tree.focusPrevious(void 0,!0,void 0,o=>{if(o.element instanceof Cp)s?i||(this._separatorRenderer.isSeparatorVisible(o.element)?this._tree.reveal(o.element):this._tree.reveal(o.element,0),i=o.element.children[0]):s=!0;else if(o.element instanceof sr&&!i){if(o.element.separator)this._itemRenderer.isItemWithSeparatorVisible(o.element)?this._tree.reveal(o.element):this._tree.reveal(o.element,0),i=o.element;else if(o.element===this._elementTree[0])return this._tree.reveal(o.element,0),!0}return!1}),i&&this._tree.setFocus([i]);break}}}clearFocus(){this._tree.setFocus([])}domFocus(){this._tree.domFocus()}layout(e){this._tree.getHTMLElement().style.maxHeight=e?`${Math.floor(e/44)*44+6}px`:"",this._tree.layout()}filter(e){if(!(this._sortByLabel||this._matchOnLabel||this._matchOnDescription||this._matchOnDetail))return this._tree.layout(),!1;const t=e;if(e=e.trim(),!e||!(this.matchOnLabel||this.matchOnDescription||this.matchOnDetail))this._itemElements.forEach(a=>{a.labelHighlights=void 0,a.descriptionHighlights=void 0,a.detailHighlights=void 0,a.hidden=!1;const l=a.index&&this._inputElements[a.index-1];a.item&&(a.separator=l&&l.type==="separator"&&!l.buttons?l:void 0)});else{let a;this._elementTree.forEach(l=>{var c,d,u,h;let f;this.matchOnLabelMode==="fuzzy"?f=this.matchOnLabel&&(c=T5(e,AS(l.saneLabel)))!==null&&c!==void 0?c:void 0:f=this.matchOnLabel&&(d=q$e(t,AS(l.saneLabel)))!==null&&d!==void 0?d:void 0;const g=this.matchOnDescription&&(u=T5(e,AS(l.saneDescription||"")))!==null&&u!==void 0?u:void 0,p=this.matchOnDetail&&(h=T5(e,AS(l.saneDetail||"")))!==null&&h!==void 0?h:void 0;if(f||g||p?(l.labelHighlights=f,l.descriptionHighlights=g,l.detailHighlights=p,l.hidden=!1):(l.labelHighlights=void 0,l.descriptionHighlights=void 0,l.detailHighlights=void 0,l.hidden=l.item?!l.item.alwaysShow:!0),l.item?l.separator=void 0:l.separator&&(l.hidden=!0),!this.sortByLabel){const _=l.index&&this._inputElements[l.index-1];a=_&&_.type==="separator"?_:a,a&&!l.hidden&&(l.separator=a,a=void 0)}})}const i=this._elementTree.filter(a=>!a.hidden);if(this.sortByLabel&&e){const a=e.toLowerCase();i.sort((l,c)=>G$e(l,c,a))}let s;const o=i.reduce((a,l,c)=>(l instanceof sr?s?s.children.push(l):a.push(l):l instanceof Cp&&(l.children=[],s=l,a.push(l)),a),new Array),r=new Array;for(const a of o)a instanceof Cp?r.push({element:a,collapsible:!1,collapsed:!1,children:a.children.map(l=>({element:l,collapsible:!1,collapsed:!1}))}):r.push({element:a,collapsible:!1,collapsed:!1});return this._tree.setChildren(null,r),this._tree.layout(),this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedVisibleCount.fire(i.length),!0}toggleCheckbox(){try{this._shouldFireCheckedEvents=!1;const e=this._tree.getFocus().filter(i=>i instanceof sr),t=this._allVisibleChecked(e);for(const i of e)i.checkboxDisabled||(i.checked=!t)}finally{this._shouldFireCheckedEvents=!0,this._fireCheckedEvents()}}display(e){this._container.style.display=e?"":"none"}isDisplayed(){return this._container.style.display!=="none"}style(e){this._tree.style(e)}toggleHover(){const e=this._tree.getFocus()[0];if(!(e!=null&&e.saneTooltip)||!(e instanceof sr))return;if(this._lastHover&&!this._lastHover.isDisposed){this._lastHover.dispose();return}this.showHover(e);const t=new be;t.add(this._tree.onDidChangeFocus(i=>{i.elements[0]instanceof sr&&this.showHover(i.elements[0])})),this._lastHover&&t.add(this._lastHover),this._elementDisposable.add(t)}_allVisibleChecked(e,t=!0){for(let i=0,s=e.length;i{this.linkOpenerDelegate(o)},appearance:{showPointer:!0},container:this._container,position:{hoverPosition:1}},!1))}};mP([gs],tk.prototype,"onDidChangeFocus",null);mP([gs],tk.prototype,"onDidChangeSelection",null);tk=mP([X9(4,ht),X9(5,Ha)],tk);function q$e(n,e){const{text:t,iconOffsets:i}=e;if(!i||i.length===0)return KJ(n,t);const s=aD(t," "),o=t.length-s.length,r=KJ(n,s);if(r)for(const a of r){const l=i[a.start+o]+o;a.start+=l,a.end+=l}return r}function KJ(n,e){const t=e.toLowerCase().indexOf(n.toLowerCase());return t!==-1?[{start:t,end:t+n.length}]:null}function G$e(n,e,t){const i=n.labelHighlights||[],s=e.labelHighlights||[];return i.length&&!s.length?-1:!i.length&&s.length?1:i.length===0&&s.length===0?0:$$e(n.saneSortLabel,e.saneSortLabel,t)}const kue={weight:200,when:pe.and(pe.equals(Yde,"quickPick"),yze),metadata:{description:v("quickPick","Used while in the context of the quick pick. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.")}};function xa(n,e={}){var t;Hr.registerCommandAndKeybindingRule({...kue,...n,secondary:Z$e(n.primary,(t=n.secondary)!==null&&t!==void 0?t:[],e)})}const $A=Xt?256:2048;function Z$e(n,e,t={}){return t.withAltMod&&e.push(512+n),t.withCtrlMod&&(e.push($A+n),t.withAltMod&&e.push(512+$A+n)),t.withCmdMod&&Xt&&(e.push(2048+n),t.withCtrlMod&&e.push(2304+n),t.withAltMod&&(e.push(2560+n),t.withCtrlMod&&e.push(2816+n))),e}function ol(n,e){return t=>{const i=t.get(Cc).currentQuickInput;if(i)return e&&i.quickNavigate?i.focus(e):i.focus(n)}}xa({id:"quickInput.pageNext",primary:12,handler:ol(_n.NextPage)},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0});xa({id:"quickInput.pagePrevious",primary:11,handler:ol(_n.PreviousPage)},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0});xa({id:"quickInput.first",primary:$A+14,handler:ol(_n.First)},{withAltMod:!0,withCmdMod:!0});xa({id:"quickInput.last",primary:$A+13,handler:ol(_n.Last)},{withAltMod:!0,withCmdMod:!0});xa({id:"quickInput.next",primary:18,handler:ol(_n.Next)},{withCtrlMod:!0});xa({id:"quickInput.previous",primary:16,handler:ol(_n.Previous)},{withCtrlMod:!0});const qJ=v("quickInput.nextSeparatorWithQuickAccessFallback","If we're in quick access mode, this will navigate to the next item. If we are not in quick access mode, this will navigate to the next separator."),GJ=v("quickInput.previousSeparatorWithQuickAccessFallback","If we're in quick access mode, this will navigate to the previous item. If we are not in quick access mode, this will navigate to the previous separator.");Xt?(xa({id:"quickInput.nextSeparatorWithQuickAccessFallback",primary:2066,handler:ol(_n.NextSeparator,_n.Next),metadata:{description:qJ}}),xa({id:"quickInput.nextSeparator",primary:2578,secondary:[2322],handler:ol(_n.NextSeparator)},{withCtrlMod:!0}),xa({id:"quickInput.previousSeparatorWithQuickAccessFallback",primary:2064,handler:ol(_n.PreviousSeparator,_n.Previous),metadata:{description:GJ}}),xa({id:"quickInput.previousSeparator",primary:2576,secondary:[2320],handler:ol(_n.PreviousSeparator)},{withCtrlMod:!0})):(xa({id:"quickInput.nextSeparatorWithQuickAccessFallback",primary:530,handler:ol(_n.NextSeparator,_n.Next),metadata:{description:qJ}}),xa({id:"quickInput.nextSeparator",primary:2578,handler:ol(_n.NextSeparator)}),xa({id:"quickInput.previousSeparatorWithQuickAccessFallback",primary:528,handler:ol(_n.PreviousSeparator,_n.Previous),metadata:{description:GJ}}),xa({id:"quickInput.previousSeparator",primary:2576,handler:ol(_n.PreviousSeparator)}));xa({id:"quickInput.acceptInBackground",when:pe.and(kue.when,pe.or(gue.negate(),Lze)),primary:17,weight:250,handler:n=>{const e=n.get(Cc).currentQuickInput;e==null||e.accept(!0)}},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0});var Y$e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},j5=function(n,e){return function(t,i){e(t,i,n)}},J9;const ba=ke;let UA=J9=class extends ne{get currentQuickInput(){var e;return(e=this.controller)!==null&&e!==void 0?e:void 0}get container(){return this._container}constructor(e,t,i,s){super(),this.options=e,this.layoutService=t,this.instantiationService=i,this.contextKeyService=s,this.enabled=!0,this.onDidAcceptEmitter=this._register(new X),this.onDidCustomEmitter=this._register(new X),this.onDidTriggerButtonEmitter=this._register(new X),this.keyMods={ctrlCmd:!1,alt:!1},this.controller=null,this.onShowEmitter=this._register(new X),this.onShow=this.onShowEmitter.event,this.onHideEmitter=this._register(new X),this.onHide=this.onHideEmitter.event,this.inQuickInputContext=wze.bindTo(this.contextKeyService),this.quickInputTypeContext=Sze.bindTo(this.contextKeyService),this.endOfQuickInputBoxContext=xze.bindTo(this.contextKeyService),this.idPrefix=e.idPrefix,this._container=e.container,this.styles=e.styles,this._register(Ae.runAndSubscribe(dM,({window:o,disposables:r})=>this.registerKeyModsListeners(o,r),{window:Ji,disposables:this._store})),this._register(_Me(o=>{this.ui&>(this.ui.container)===o&&(this.reparentUI(this.layoutService.mainContainer),this.layout(this.layoutService.mainContainerDimension,this.layoutService.mainContainerOffset.quickPickTop))}))}registerKeyModsListeners(e,t){const i=s=>{this.keyMods.ctrlCmd=s.ctrlKey||s.metaKey,this.keyMods.alt=s.altKey};for(const s of[Le.KEY_DOWN,Le.KEY_UP,Le.MOUSE_DOWN])t.add(ce(e,s,i,!0))}getUI(e){if(this.ui)return e&>(this._container)!==gt(this.layoutService.activeContainer)&&(this.reparentUI(this.layoutService.activeContainer),this.layout(this.layoutService.activeContainerDimension,this.layoutService.activeContainerOffset.quickPickTop)),this.ui;const t=we(this._container,ba(".quick-input-widget.show-file-icons"));t.tabIndex=-1,t.style.display="none";const i=yl(t),s=we(t,ba(".quick-input-titlebar")),o=this._register(new hc(s,{hoverDelegate:this.options.hoverDelegate}));o.domNode.classList.add("quick-input-left-action-bar");const r=we(s,ba(".quick-input-title")),a=this._register(new hc(s,{hoverDelegate:this.options.hoverDelegate}));a.domNode.classList.add("quick-input-right-action-bar");const l=we(t,ba(".quick-input-header")),c=we(l,ba("input.quick-input-check-all"));c.type="checkbox",c.setAttribute("aria-label",v("quickInput.checkAll","Toggle all checkboxes")),this._register(rs(c,Le.CHANGE,z=>{const K=c.checked;O.setAllVisibleChecked(K)})),this._register(ce(c,Le.CLICK,z=>{(z.x||z.y)&&f.setFocus()}));const d=we(l,ba(".quick-input-description")),u=we(l,ba(".quick-input-and-message")),h=we(u,ba(".quick-input-filter")),f=this._register(new Pze(h,this.styles.inputBox,this.styles.toggle));f.setAttribute("aria-describedby",`${this.idPrefix}message`);const g=we(h,ba(".quick-input-visible-count"));g.setAttribute("aria-live","polite"),g.setAttribute("aria-atomic","true");const p=new j9(g,{countFormat:v({},"{0} Results")},this.styles.countBadge),_=we(h,ba(".quick-input-count"));_.setAttribute("aria-live","polite");const b=new j9(_,{countFormat:v({},"{0} Selected")},this.styles.countBadge),w=we(l,ba(".quick-input-action")),y=this._register(new RA(w,this.styles.button));y.label=v("ok","OK"),this._register(y.onDidClick(z=>{this.onDidAcceptEmitter.fire()}));const S=we(l,ba(".quick-input-action")),x=this._register(new RA(S,{...this.styles.button,supportIcons:!0}));x.label=v("custom","Custom"),this._register(x.onDidClick(z=>{this.onDidCustomEmitter.fire()}));const k=we(u,ba(`#${this.idPrefix}message.quick-input-message`)),D=this._register(new lP(t,this.styles.progressBar));D.getContainer().classList.add("quick-input-progress");const I=we(t,ba(".quick-input-html-widget"));I.tabIndex=-1;const N=we(t,ba(".quick-input-description")),P=this.idPrefix+"list",O=this._register(this.instantiationService.createInstance(tk,t,this.options.hoverDelegate,this.options.linkOpenerDelegate,P));f.setAttribute("aria-controls",P),this._register(O.onDidChangeFocus(()=>{var z;f.setAttribute("aria-activedescendant",(z=O.getActiveDescendant())!==null&&z!==void 0?z:"")})),this._register(O.onChangedAllVisibleChecked(z=>{c.checked=z})),this._register(O.onChangedVisibleCount(z=>{p.setCount(z)})),this._register(O.onChangedCheckedCount(z=>{b.setCount(z)})),this._register(O.onLeave(()=>{setTimeout(()=>{this.controller&&(f.setFocus(),this.controller instanceof ZL&&this.controller.canSelectMany&&O.clearFocus())},0)}));const M=ou(t);return this._register(M),this._register(ce(t,Le.FOCUS,z=>{const K=this.getUI();if(Zs(z.relatedTarget,K.inputContainer)){const ae=K.inputBox.isSelectionAtEnd();this.endOfQuickInputBoxContext.get()!==ae&&this.endOfQuickInputBoxContext.set(ae)}Zs(z.relatedTarget,K.container)||(this.inQuickInputContext.set(!0),this.previousFocusElement=co(z.relatedTarget)?z.relatedTarget:void 0)},!0)),this._register(M.onDidBlur(()=>{!this.getUI().ignoreFocusOut&&!this.options.ignoreFocusOut()&&this.hide(JC.Blur),this.inQuickInputContext.set(!1),this.endOfQuickInputBoxContext.set(!1),this.previousFocusElement=void 0})),this._register(f.onKeyDown(z=>{const K=this.getUI().inputBox.isSelectionAtEnd();this.endOfQuickInputBoxContext.get()!==K&&this.endOfQuickInputBoxContext.set(K)})),this._register(ce(t,Le.FOCUS,z=>{f.setFocus()})),this._register(rs(t,Le.KEY_DOWN,z=>{if(!Zs(z.target,I))switch(z.keyCode){case 3:ii.stop(z,!0),this.enabled&&this.onDidAcceptEmitter.fire();break;case 9:ii.stop(z,!0),this.hide(JC.Gesture);break;case 2:if(!z.altKey&&!z.ctrlKey&&!z.metaKey){const K=[".quick-input-list .monaco-action-bar .always-visible",".quick-input-list-entry:hover .monaco-action-bar",".monaco-list-row.focused .monaco-action-bar"];if(t.classList.contains("show-checkboxes")?K.push("input"):K.push("input[type=text]"),this.getUI().list.isDisplayed()&&K.push(".monaco-list"),this.getUI().message&&K.push(".quick-input-message a"),this.getUI().widget){if(Zs(z.target,this.getUI().widget))break;K.push(".quick-input-html-widget")}const ae=t.querySelectorAll(K.join(", "));z.shiftKey&&z.target===ae[0]?(ii.stop(z,!0),O.clearFocus()):!z.shiftKey&&Zs(z.target,ae[ae.length-1])&&(ii.stop(z,!0),ae[0].focus())}break;case 10:z.ctrlKey&&(ii.stop(z,!0),this.getUI().list.toggleHover());break}})),this.ui={container:t,styleSheet:i,leftActionBar:o,titleBar:s,title:r,description1:N,description2:d,widget:I,rightActionBar:a,checkAll:c,inputContainer:u,filterContainer:h,inputBox:f,visibleCountContainer:g,visibleCount:p,countContainer:_,count:b,okContainer:w,ok:y,message:k,customButtonContainer:S,customButton:x,list:O,progressBar:D,onDidAccept:this.onDidAcceptEmitter.event,onDidCustom:this.onDidCustomEmitter.event,onDidTriggerButton:this.onDidTriggerButtonEmitter.event,ignoreFocusOut:!1,keyMods:this.keyMods,show:z=>this.show(z),hide:()=>this.hide(),setVisibilities:z=>this.setVisibilities(z),setEnabled:z=>this.setEnabled(z),setContextKey:z=>this.options.setContextKey(z),linkOpenerDelegate:z=>this.options.linkOpenerDelegate(z)},this.updateStyles(),this.ui}reparentUI(e){this.ui&&(this._container=e,we(this._container,this.ui.container))}pick(e,t={},i=Qt.None){return new Promise((s,o)=>{let r=d=>{var u;r=s,(u=t.onKeyMods)===null||u===void 0||u.call(t,a.keyMods),s(d)};if(i.isCancellationRequested){r(void 0);return}const a=this.createQuickPick();let l;const c=[a,a.onDidAccept(()=>{if(a.canSelectMany)r(a.selectedItems.slice()),a.hide();else{const d=a.activeItems[0];d&&(r(d),a.hide())}}),a.onDidChangeActive(d=>{const u=d[0];u&&t.onDidFocus&&t.onDidFocus(u)}),a.onDidChangeSelection(d=>{if(!a.canSelectMany){const u=d[0];u&&(r(u),a.hide())}}),a.onDidTriggerItemButton(d=>t.onDidTriggerItemButton&&t.onDidTriggerItemButton({...d,removeItem:()=>{const u=a.items.indexOf(d.item);if(u!==-1){const h=a.items.slice(),f=h.splice(u,1),g=a.activeItems.filter(_=>_!==f[0]),p=a.keepScrollPosition;a.keepScrollPosition=!0,a.items=h,g&&(a.activeItems=g),a.keepScrollPosition=p}}})),a.onDidTriggerSeparatorButton(d=>{var u;return(u=t.onDidTriggerSeparatorButton)===null||u===void 0?void 0:u.call(t,d)}),a.onDidChangeValue(d=>{l&&!d&&(a.activeItems.length!==1||a.activeItems[0]!==l)&&(a.activeItems=[l])}),i.onCancellationRequested(()=>{a.hide()}),a.onDidHide(()=>{tn(c),r(void 0)})];a.title=t.title,a.canSelectMany=!!t.canPickMany,a.placeholder=t.placeHolder,a.ignoreFocusOut=!!t.ignoreFocusLost,a.matchOnDescription=!!t.matchOnDescription,a.matchOnDetail=!!t.matchOnDetail,a.matchOnLabel=t.matchOnLabel===void 0||t.matchOnLabel,a.quickNavigate=t.quickNavigate,a.hideInput=!!t.hideInput,a.contextKey=t.contextKey,a.busy=!0,Promise.all([e,t.activeItem]).then(([d,u])=>{l=u,a.busy=!1,a.items=d,a.canSelectMany&&(a.selectedItems=d.filter(h=>h.type!=="separator"&&h.picked)),l&&(a.activeItems=[l])}),a.show(),Promise.resolve(e).then(void 0,d=>{o(d),a.hide()})})}createQuickPick(){const e=this.getUI(!0);return new ZL(e)}createInputBox(){const e=this.getUI(!0);return new kze(e)}show(e){const t=this.getUI(!0);this.onShowEmitter.fire();const i=this.controller;this.controller=e,i==null||i.didHide(),this.setEnabled(!0),t.leftActionBar.clear(),t.title.textContent="",t.description1.textContent="",t.description2.textContent="",yo(t.widget),t.rightActionBar.clear(),t.checkAll.checked=!1,t.inputBox.placeholder="",t.inputBox.password=!1,t.inputBox.showDecoration(us.Ignore),t.visibleCount.setCount(0),t.count.setCount(0),yo(t.message),t.progressBar.stop(),t.list.setElements([]),t.list.matchOnDescription=!1,t.list.matchOnDetail=!1,t.list.matchOnLabel=!0,t.list.sortByLabel=!0,t.ignoreFocusOut=!1,t.inputBox.toggles=void 0;const s=this.options.backKeybindingLabel();$9.tooltip=s?v("quickInput.backWithKeybinding","Back ({0})",s):v("quickInput.back","Back"),t.container.style.display="",this.updateLayout(),t.inputBox.setFocus(),this.quickInputTypeContext.set(e.type)}isVisible(){return!!this.ui&&this.ui.container.style.display!=="none"}setVisibilities(e){const t=this.getUI();t.title.style.display=e.title?"":"none",t.description1.style.display=e.description&&(e.inputBox||e.checkAll)?"":"none",t.description2.style.display=e.description&&!(e.inputBox||e.checkAll)?"":"none",t.checkAll.style.display=e.checkAll?"":"none",t.inputContainer.style.display=e.inputBox?"":"none",t.filterContainer.style.display=e.inputBox?"":"none",t.visibleCountContainer.style.display=e.visibleCount?"":"none",t.countContainer.style.display=e.count?"":"none",t.okContainer.style.display=e.ok?"":"none",t.customButtonContainer.style.display=e.customButton?"":"none",t.message.style.display=e.message?"":"none",t.progressBar.getContainer().style.display=e.progressBar?"":"none",t.list.display(!!e.list),t.container.classList.toggle("show-checkboxes",!!e.checkBox),t.container.classList.toggle("hidden-input",!e.inputBox&&!e.description),this.updateLayout()}setEnabled(e){if(e!==this.enabled){this.enabled=e;for(const t of this.getUI().leftActionBar.viewItems)t.action.enabled=e;for(const t of this.getUI().rightActionBar.viewItems)t.action.enabled=e;this.getUI().checkAll.disabled=!e,this.getUI().inputBox.enabled=e,this.getUI().ok.enabled=e,this.getUI().list.enabled=e}}hide(e){var t,i;const s=this.controller;if(!s)return;s.willHide(e);const o=(t=this.ui)===null||t===void 0?void 0:t.container,r=o&&!jae(o);if(this.controller=null,this.onHideEmitter.fire(),o&&(o.style.display="none"),!r){let a=this.previousFocusElement;for(;a&&!a.offsetParent;)a=(i=a.parentElement)!==null&&i!==void 0?i:void 0;a!=null&&a.offsetParent?(a.focus(),this.previousFocusElement=void 0):this.options.returnFocus()}s.didHide(e)}layout(e,t){this.dimension=e,this.titleBarOffset=t,this.updateLayout()}updateLayout(){if(this.ui&&this.isVisible()){this.ui.container.style.top=`${this.titleBarOffset}px`;const e=this.ui.container.style,t=Math.min(this.dimension.width*.62,J9.MAX_WIDTH);e.width=t+"px",e.marginLeft="-"+t/2+"px",this.ui.inputBox.layout(),this.ui.list.layout(this.dimension&&this.dimension.height*.4)}}applyStyles(e){this.styles=e,this.updateStyles()}updateStyles(){if(this.ui){const{quickInputTitleBackground:e,quickInputBackground:t,quickInputForeground:i,widgetBorder:s,widgetShadow:o}=this.styles.widget;this.ui.titleBar.style.backgroundColor=e??"",this.ui.container.style.backgroundColor=t??"",this.ui.container.style.color=i??"",this.ui.container.style.border=s?`1px solid ${s}`:"",this.ui.container.style.boxShadow=o?`0 0 8px 2px ${o}`:"",this.ui.list.style(this.styles.list);const r=[];this.styles.pickerGroup.pickerGroupBorder&&r.push(`.quick-input-list .quick-input-list-entry { border-top-color: ${this.styles.pickerGroup.pickerGroupBorder}; }`),this.styles.pickerGroup.pickerGroupForeground&&r.push(`.quick-input-list .quick-input-list-separator { color: ${this.styles.pickerGroup.pickerGroupForeground}; }`),this.styles.pickerGroup.pickerGroupForeground&&r.push(".quick-input-list .quick-input-list-separator-as-item { color: var(--vscode-descriptionForeground); }"),(this.styles.keybindingLabel.keybindingLabelBackground||this.styles.keybindingLabel.keybindingLabelBorder||this.styles.keybindingLabel.keybindingLabelBottomBorder||this.styles.keybindingLabel.keybindingLabelShadow||this.styles.keybindingLabel.keybindingLabelForeground)&&(r.push(".quick-input-list .monaco-keybinding > .monaco-keybinding-key {"),this.styles.keybindingLabel.keybindingLabelBackground&&r.push(`background-color: ${this.styles.keybindingLabel.keybindingLabelBackground};`),this.styles.keybindingLabel.keybindingLabelBorder&&r.push(`border-color: ${this.styles.keybindingLabel.keybindingLabelBorder};`),this.styles.keybindingLabel.keybindingLabelBottomBorder&&r.push(`border-bottom-color: ${this.styles.keybindingLabel.keybindingLabelBottomBorder};`),this.styles.keybindingLabel.keybindingLabelShadow&&r.push(`box-shadow: inset 0 -1px 0 ${this.styles.keybindingLabel.keybindingLabelShadow};`),this.styles.keybindingLabel.keybindingLabelForeground&&r.push(`color: ${this.styles.keybindingLabel.keybindingLabelForeground};`),r.push("}"));const a=r.join(` `);a!==this.ui.styleSheet.textContent&&(this.ui.styleSheet.textContent=a)}}};UA.MAX_WIDTH=600;UA=J9=Y$e([j5(1,g_),j5(2,ht),j5(3,Ct)],UA);var X$e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},qy=function(n,e){return function(t,i){e(t,i,n)}};let e6=class extends E3e{get controller(){return this._controller||(this._controller=this._register(this.createController())),this._controller}get hasController(){return!!this._controller}get currentQuickInput(){return this.controller.currentQuickInput}get quickAccess(){return this._quickAccess||(this._quickAccess=this._register(this.instantiationService.createInstance(z9))),this._quickAccess}constructor(e,t,i,s,o){super(i),this.instantiationService=e,this.contextKeyService=t,this.layoutService=s,this.configurationService=o,this._onShow=this._register(new X),this._onHide=this._register(new X),this.contexts=new Map}createController(e=this.layoutService,t){const i={idPrefix:"quickInput_",container:e.activeContainer,ignoreFocusOut:()=>!1,backKeybindingLabel:()=>{},setContextKey:o=>this.setContextKey(o),linkOpenerDelegate:o=>{this.instantiationService.invokeFunction(r=>{r.get($a).open(o,{allowCommands:!0,fromUserGesture:!0})})},returnFocus:()=>e.focus(),styles:this.computeStyles(),hoverDelegate:this._register(this.instantiationService.createInstance(U9))},s=this._register(this.instantiationService.createInstance(UA,{...i,...t}));return s.layout(e.activeContainerDimension,e.activeContainerOffset.quickPickTop),this._register(e.onDidLayoutActiveContainer(o=>{gt(e.activeContainer)===gt(s.container)&&s.layout(o,e.activeContainerOffset.quickPickTop)})),this._register(e.onDidChangeActiveContainer(()=>{s.isVisible()||s.layout(e.activeContainerDimension,e.activeContainerOffset.quickPickTop)})),this._register(s.onShow(()=>{this.resetContextKeys(),this._onShow.fire()})),this._register(s.onHide(()=>{this.resetContextKeys(),this._onHide.fire()})),s}setContextKey(e){let t;e&&(t=this.contexts.get(e),t||(t=new He(e,!1).bindTo(this.contextKeyService),this.contexts.set(e,t))),!(t&&t.get())&&(this.resetContextKeys(),t==null||t.set(!0))}resetContextKeys(){this.contexts.forEach(e=>{e.get()&&e.reset()})}pick(e,t={},i=Qt.None){return this.controller.pick(e,t,i)}createQuickPick(){return this.controller.createQuickPick()}createInputBox(){return this.controller.createInputBox()}updateStyles(){this.hasController&&this.controller.applyStyles(this.computeStyles())}computeStyles(){return{widget:{quickInputBackground:Ge(RX),quickInputForeground:Ge(B5e),quickInputTitleBackground:Ge(W5e),widgetBorder:Ge($le),widgetShadow:Ge(ig)},inputBox:kA,toggle:LA,countBadge:Ude,button:qVe,progressBar:GVe,keybindingLabel:KVe,list:tb({listBackground:RX,listFocusBackground:Gp,listFocusForeground:qp,listInactiveFocusForeground:qp,listInactiveSelectionIconForeground:S1,listInactiveFocusBackground:Gp,listFocusOutline:En,listInactiveFocusOutline:En}),pickerGroup:{pickerGroupBorder:Ge(H5e),pickerGroupForeground:Ge(Zle)}}}};e6=X$e([qy(0,ht),qy(1,Ct),qy(2,js),qy(3,g_),qy(4,qt)],e6);var Due=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},bv=function(n,e){return function(t,i){e(t,i,n)}};let t6=class extends e6{constructor(e,t,i,s,o,r){super(t,i,s,new i9(e.getContainerDomNode(),o),r),this.host=void 0;const a=tw.get(e);if(a){const l=a.widget;this.host={_serviceBrand:void 0,get mainContainer(){return l.getDomNode()},getContainer(){return l.getDomNode()},whenContainerStylesLoaded(){},get containers(){return[l.getDomNode()]},get activeContainer(){return l.getDomNode()},get mainContainerDimension(){return e.getLayoutInfo()},get activeContainerDimension(){return e.getLayoutInfo()},get onDidLayoutMainContainer(){return e.onDidLayoutChange},get onDidLayoutActiveContainer(){return e.onDidLayoutChange},get onDidLayoutContainer(){return Ae.map(e.onDidLayoutChange,c=>({container:l.getDomNode(),dimension:c}))},get onDidChangeActiveContainer(){return Ae.None},get onDidAddContainer(){return Ae.None},get mainContainerOffset(){return{top:0,quickPickTop:0}},get activeContainerOffset(){return{top:0,quickPickTop:0}},focus:()=>e.focus()}}else this.host=void 0}createController(){return super.createController(this.host)}};t6=Due([bv(1,ht),bv(2,Ct),bv(3,js),bv(4,vi),bv(5,qt)],t6);let i6=class{get activeService(){const e=this.codeEditorService.getFocusedCodeEditor();if(!e)throw new Error("Quick input service needs a focused editor to work.");let t=this.mapEditorToService.get(e);if(!t){const i=t=this.instantiationService.createInstance(t6,e);this.mapEditorToService.set(e,t),Am(e.onDidDispose)(()=>{i.dispose(),this.mapEditorToService.delete(e)})}return t}get currentQuickInput(){return this.activeService.currentQuickInput}get quickAccess(){return this.activeService.quickAccess}constructor(e,t){this.instantiationService=e,this.codeEditorService=t,this.mapEditorToService=new Map}pick(e,t={},i=Qt.None){return this.activeService.pick(e,t,i)}createQuickPick(){return this.activeService.createQuickPick()}createInputBox(){return this.activeService.createInputBox()}};i6=Due([bv(0,ht),bv(1,vi)],i6);class tw{static get(e){return e.getContribution(tw.ID)}constructor(e){this.editor=e,this.widget=new _P(this.editor)}dispose(){this.widget.dispose()}}tw.ID="editor.controller.quickInput";class _P{constructor(e){this.codeEditor=e,this.domNode=document.createElement("div"),this.codeEditor.addOverlayWidget(this)}getId(){return _P.ID}getDomNode(){return this.domNode}getPosition(){return{preference:2}}dispose(){this.codeEditor.removeOverlayWidget(this)}}_P.ID="editor.contrib.quickInputWidget";bi(tw.ID,tw,4);class Q$e{constructor(e,t,i,s,o){this._parsedThemeRuleBrand=void 0,this.token=e,this.index=t,this.fontStyle=i,this.foreground=s,this.background=o}}function J$e(n){if(!n||!Array.isArray(n))return[];const e=[];let t=0;for(let i=0,s=n.length;i{const h=oUe(d.token,u.token);return h!==0?h:d.index-u.index});let t=0,i="000000",s="ffffff";for(;n.length>=1&&n[0].token==="";){const d=n.shift();d.fontStyle!==-1&&(t=d.fontStyle),d.foreground!==null&&(i=d.foreground),d.background!==null&&(s=d.background)}const o=new iUe;for(const d of e)o.getId(d);const r=o.getId(i),a=o.getId(s),l=new U$(t,r,a),c=new j$(l);for(let d=0,u=n.length;d"u"){const s=this._match(t),o=sUe(t);i=(s.metadata|o<<8)>>>0,this._cache.set(t,i)}return(i|e<<0)>>>0}}const nUe=/\b(comment|string|regex|regexp)\b/;function sUe(n){const e=n.match(nUe);if(!e)return 0;switch(e[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"regexp":return 3}throw new Error("Unexpected match for standard token type!")}function oUe(n,e){return ne?1:0}class U${constructor(e,t,i){this._themeTrieElementRuleBrand=void 0,this._fontStyle=e,this._foreground=t,this._background=i,this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}clone(){return new U$(this._fontStyle,this._foreground,this._background)}acceptOverwrite(e,t,i){e!==-1&&(this._fontStyle=e),t!==0&&(this._foreground=t),i!==0&&(this._background=i),this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}}class j${constructor(e){this._themeTrieElementBrand=void 0,this._mainRule=e,this._children=new Map}match(e){if(e==="")return this._mainRule;const t=e.indexOf(".");let i,s;t===-1?(i=e,s=""):(i=e.substring(0,t),s=e.substring(t+1));const o=this._children.get(i);return typeof o<"u"?o.match(s):this._mainRule}insert(e,t,i,s){if(e===""){this._mainRule.acceptOverwrite(t,i,s);return}const o=e.indexOf(".");let r,a;o===-1?(r=e,a=""):(r=e.substring(0,o),a=e.substring(o+1));let l=this._children.get(r);typeof l>"u"&&(l=new j$(this._mainRule.clone()),this._children.set(r,l)),l.insert(a,t,i,s)}}function rUe(n){const e=[];for(let t=1,i=n.length;t({format:s.format,location:s.location.toString()}))}}n.toJSONObject=e;function t(i){const s=o=>Pr(o)?o:void 0;if(i&&Array.isArray(i.src)&&i.src.every(o=>Pr(o.format)&&Pr(o.location)))return{weight:s(i.weight),style:s(i.style),src:i.src.map(o=>({format:o.format,location:pt.parse(o.location)}))}}n.fromJSONObject=t})(YJ||(YJ={}));class hUe{constructor(){this._onDidChange=new X,this.onDidChange=this._onDidChange.event,this.iconSchema={definitions:{icons:{type:"object",properties:{fontId:{type:"string",description:v("iconDefinition.fontId","The id of the font to use. If not set, the font that is defined first is used.")},fontCharacter:{type:"string",description:v("iconDefinition.fontCharacter","The font character associated with the icon definition.")}},additionalProperties:!1,defaultSnippets:[{body:{fontCharacter:"\\\\e030"}}]}},type:"object",properties:{}},this.iconReferenceSchema={type:"string",pattern:`^${_t.iconNameExpression}$`,enum:[],enumDescriptions:[]},this.iconsById={},this.iconFontsById={}}registerIcon(e,t,i,s){const o=this.iconsById[e];if(o){if(i&&!o.description){o.description=i,this.iconSchema.properties[e].markdownDescription=`${i} $(${e})`;const l=this.iconReferenceSchema.enum.indexOf(e);l!==-1&&(this.iconReferenceSchema.enumDescriptions[l]=i),this._onDidChange.fire()}return o}const r={id:e,description:i,defaults:t,deprecationMessage:s};this.iconsById[e]=r;const a={$ref:"#/definitions/icons"};return s&&(a.deprecationMessage=s),i&&(a.markdownDescription=`${i}: $(${e})`),this.iconSchema.properties[e]=a,this.iconReferenceSchema.enum.push(e),this.iconReferenceSchema.enumDescriptions.push(i||""),this._onDidChange.fire(),{id:e}}getIcons(){return Object.keys(this.iconsById).map(e=>this.iconsById[e])}getIcon(e){return this.iconsById[e]}getIconSchema(){return this.iconSchema}toString(){const e=(o,r)=>o.id.localeCompare(r.id),t=o=>{for(;_t.isThemeIcon(o.defaults);)o=this.iconsById[o.defaults.id];return`codicon codicon-${o?o.id:""}`},i=[];i.push("| preview | identifier | default codicon ID | description"),i.push("| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |");const s=Object.keys(this.iconsById).map(o=>this.iconsById[o]);for(const o of s.filter(r=>!!r.description).sort(e))i.push(`||${o.id}|${_t.isThemeIcon(o.defaults)?o.defaults.id:o.id}|${o.description||""}|`);i.push("| preview | identifier "),i.push("| ----------- | --------------------------------- |");for(const o of s.filter(r=>!_t.isThemeIcon(r.defaults)).sort(e))i.push(`||${o.id}|`);return i.join(` `)}}const sb=new hUe;Un.add(uUe.IconContribution,sb);function Jn(n,e,t,i){return sb.registerIcon(n,e,t,i)}function Eue(){return sb}function fUe(){const n=fae();for(const e in n){const t="\\"+n[e].toString(16);sb.registerIcon(e,{fontCharacter:t})}}fUe();const Tue="vscode://schemas/icons",Nue=Un.as(DM.JSONContribution);Nue.registerSchema(Tue,sb.getIconSchema());const XJ=new Xi(()=>Nue.notifySchemaChanged(Tue),200);sb.onDidChange(()=>{XJ.isScheduled()||XJ.schedule()});const Aue=Jn("widget-close",Te.close,v("widgetClose","Icon for the close action in widgets."));Jn("goto-previous-location",Te.arrowUp,v("previousChangeIcon","Icon for goto previous editor location."));Jn("goto-next-location",Te.arrowDown,v("nextChangeIcon","Icon for goto next editor location."));_t.modify(Te.sync,"spin");_t.modify(Te.loading,"spin");function gUe(n){const e=new be,t=e.add(new X),i=Eue();return e.add(i.onDidChange(()=>t.fire())),n&&e.add(n.onDidProductIconThemeChange(()=>t.fire())),{dispose:()=>e.dispose(),onDidChange:t.event,getCSS(){const s=n?n.getProductIconTheme():new Rue,o={},r=[],a=[];for(const l of i.getIcons()){const c=s.getIcon(l);if(!c)continue;const d=c.font,u=`--vscode-icon-${l.id}-font-family`,h=`--vscode-icon-${l.id}-content`;d?(o[d.id]=d.definition,a.push(`${u}: ${FF(d.id)};`,`${h}: '${c.fontCharacter}';`),r.push(`.codicon-${l.id}:before { content: '${c.fontCharacter}'; font-family: ${FF(d.id)}; }`)):(a.push(`${h}: '${c.fontCharacter}'; ${u}: 'codicon';`),r.push(`.codicon-${l.id}:before { content: '${c.fontCharacter}'; }`))}for(const l in o){const c=o[l],d=c.weight?`font-weight: ${c.weight};`:"",u=c.style?`font-style: ${c.style};`:"",h=c.src.map(f=>`${Ig(f.location)} format('${f.format}')`).join(", ");r.push(`@font-face { src: ${h}; font-family: ${FF(l)};${d}${u} font-display: block; }`)}return r.push(`:root { ${a.join(" ")} }`),r.join(` `)}}}class Rue{getIcon(e){const t=Eue();let i=e.defaults;for(;_t.isThemeIcon(i);){const s=t.getIcon(i.id);if(!s)return;i=s.defaults}return i}}const jf="vs",hC="vs-dark",Gv="hc-black",Zv="hc-light",Mue=Un.as(Ble.ColorContribution),pUe=Un.as(ice.ThemingContribution);class Pue{constructor(e,t){this.semanticHighlighting=!1,this.themeData=t;const i=t.base;e.length>0?(RN(e)?this.id=e:this.id=i+" "+e,this.themeName=e):(this.id=i,this.themeName=i),this.colors=null,this.defaultColors=Object.create(null),this._tokenTheme=null}get base(){return this.themeData.base}notifyBaseUpdated(){this.themeData.inherit&&(this.colors=null,this._tokenTheme=null)}getColors(){if(!this.colors){const e=new Map;for(const t in this.themeData.colors)e.set(t,le.fromHex(this.themeData.colors[t]));if(this.themeData.inherit){const t=n6(this.themeData.base);for(const i in t.colors)e.has(i)||e.set(i,le.fromHex(t.colors[i]))}this.colors=e}return this.colors}getColor(e,t){const i=this.getColors().get(e);if(i)return i;if(t!==!1)return this.getDefault(e)}getDefault(e){let t=this.defaultColors[e];return t||(t=Mue.resolveDefaultColor(e,this),this.defaultColors[e]=t,t)}defines(e){return this.getColors().has(e)}get type(){switch(this.base){case jf:return Jl.LIGHT;case Gv:return Jl.HIGH_CONTRAST_DARK;case Zv:return Jl.HIGH_CONTRAST_LIGHT;default:return Jl.DARK}}get tokenTheme(){if(!this._tokenTheme){let e=[],t=[];if(this.themeData.inherit){const o=n6(this.themeData.base);e=o.rules,o.encodedTokensColors&&(t=o.encodedTokensColors)}const i=this.themeData.colors["editor.foreground"],s=this.themeData.colors["editor.background"];if(i||s){const o={token:""};i&&(o.foreground=i),s&&(o.background=s),e.push(o)}e=e.concat(this.themeData.rules),this.themeData.encodedTokensColors&&(t=this.themeData.encodedTokensColors),this._tokenTheme=Iue.createFromRawTokenTheme(e,t)}return this._tokenTheme}getTokenStyleMetadata(e,t,i){const o=this.tokenTheme._match([e].concat(t).join(".")).metadata,r=No.getForeground(o),a=No.getFontStyle(o);return{foreground:r,italic:!!(a&1),bold:!!(a&2),underline:!!(a&4),strikethrough:!!(a&8)}}}function RN(n){return n===jf||n===hC||n===Gv||n===Zv}function n6(n){switch(n){case jf:return aUe;case hC:return lUe;case Gv:return cUe;case Zv:return dUe}}function hT(n){const e=n6(n);return new Pue(n,e)}class mUe extends ne{constructor(){super(),this._onColorThemeChange=this._register(new X),this.onDidColorThemeChange=this._onColorThemeChange.event,this._onProductIconThemeChange=this._register(new X),this.onDidProductIconThemeChange=this._onProductIconThemeChange.event,this._environment=Object.create(null),this._builtInProductIconTheme=new Rue,this._autoDetectHighContrast=!0,this._knownThemes=new Map,this._knownThemes.set(jf,hT(jf)),this._knownThemes.set(hC,hT(hC)),this._knownThemes.set(Gv,hT(Gv)),this._knownThemes.set(Zv,hT(Zv));const e=this._register(gUe(this));this._codiconCSS=e.getCSS(),this._themeCSS="",this._allCSS=`${this._codiconCSS} ${this._themeCSS}`,this._globalStyleElement=null,this._styleElements=[],this._colorMapOverride=null,this.setTheme(jf),this._onOSSchemeChanged(),this._register(e.onDidChange(()=>{this._codiconCSS=e.getCSS(),this._updateCSS()})),Lae(Ji,"(forced-colors: active)",()=>{this._onOSSchemeChanged()})}registerEditorContainer(e){return W2(e)?this._registerShadowDomContainer(e):this._registerRegularEditorContainer()}_registerRegularEditorContainer(){return this._globalStyleElement||(this._globalStyleElement=yl(void 0,e=>{e.className="monaco-colors",e.textContent=this._allCSS}),this._styleElements.push(this._globalStyleElement)),ne.None}_registerShadowDomContainer(e){const t=yl(e,i=>{i.className="monaco-colors",i.textContent=this._allCSS});return this._styleElements.push(t),{dispose:()=>{for(let i=0;i{i.base===e&&i.notifyBaseUpdated()}),this._theme.themeName===e&&this.setTheme(e)}getColorTheme(){return this._theme}setColorMapOverride(e){this._colorMapOverride=e,this._updateThemeOrColorMap()}setTheme(e){let t;this._knownThemes.has(e)?t=this._knownThemes.get(e):t=this._knownThemes.get(jf),this._updateActualTheme(t)}_updateActualTheme(e){!e||this._theme===e||(this._theme=e,this._updateThemeOrColorMap())}_onOSSchemeChanged(){if(this._autoDetectHighContrast){const e=Ji.matchMedia("(forced-colors: active)").matches;if(e!==Zd(this._theme.type)){let t;HC(this._theme.type)?t=e?Gv:hC:t=e?Zv:jf,this._updateActualTheme(this._knownThemes.get(t))}}}setAutoDetectHighContrast(e){this._autoDetectHighContrast=e,this._onOSSchemeChanged()}_updateThemeOrColorMap(){const e=[],t={},i={addRule:r=>{t[r]||(e.push(r),t[r]=!0)}};pUe.getThemingParticipants().forEach(r=>r(this._theme,i,this._environment));const s=[];for(const r of Mue.getColors()){const a=this._theme.getColor(r.id,!0);a&&s.push(`${Lz(r.id)}: ${a.toString()};`)}i.addRule(`.monaco-editor, .monaco-diff-editor, .monaco-component { ${s.join(` `)} }`);const o=this._colorMapOverride||this._theme.tokenTheme.getColorMap();i.addRule(rUe(o)),this._themeCSS=e.join(` `),this._updateCSS(),Zn.setColorMap(o),this._onColorThemeChange.fire(this._theme)}_updateCSS(){this._allCSS=`${this._codiconCSS} ${this._themeCSS}`,this._styleElements.forEach(e=>e.textContent=this._allCSS)}getFileIconTheme(){return{hasFileIcons:!1,hasFolderIcons:!1,hidesExplorerArrows:!1}}getProductIconTheme(){return this._builtInProductIconTheme}}const Tl=Jt("themeService");var _Ue=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},K5=function(n,e){return function(t,i){e(t,i,n)}};let s6=class extends ne{constructor(e,t,i){super(),this._contextKeyService=e,this._layoutService=t,this._configurationService=i,this._accessibilitySupport=0,this._onDidChangeScreenReaderOptimized=new X,this._onDidChangeReducedMotion=new X,this._accessibilityModeEnabledContext=vD.bindTo(this._contextKeyService);const s=()=>this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized());this._register(this._configurationService.onDidChangeConfiguration(r=>{r.affectsConfiguration("editor.accessibilitySupport")&&(s(),this._onDidChangeScreenReaderOptimized.fire()),r.affectsConfiguration("workbench.reduceMotion")&&(this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this._onDidChangeReducedMotion.fire())})),s(),this._register(this.onDidChangeScreenReaderOptimized(()=>s()));const o=Ji.matchMedia("(prefers-reduced-motion: reduce)");this._systemMotionReduced=o.matches,this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this.initReducedMotionListeners(o)}initReducedMotionListeners(e){this._register(ce(e,"change",()=>{this._systemMotionReduced=e.matches,this._configMotionReduced==="auto"&&this._onDidChangeReducedMotion.fire()}));const t=()=>{const i=this.isMotionReduced();this._layoutService.mainContainer.classList.toggle("reduce-motion",i),this._layoutService.mainContainer.classList.toggle("enable-motion",!i)};t(),this._register(this.onDidChangeReducedMotion(()=>t()))}get onDidChangeScreenReaderOptimized(){return this._onDidChangeScreenReaderOptimized.event}isScreenReaderOptimized(){const e=this._configurationService.getValue("editor.accessibilitySupport");return e==="on"||e==="auto"&&this._accessibilitySupport===2}get onDidChangeReducedMotion(){return this._onDidChangeReducedMotion.event}isMotionReduced(){const e=this._configMotionReduced;return e==="on"||e==="auto"&&this._systemMotionReduced}getAccessibilitySupport(){return this._accessibilitySupport}};s6=_Ue([K5(0,Ct),K5(1,g_),K5(2,qt)],s6);var vP=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},bh=function(n,e){return function(t,i){e(t,i,n)}},n1,wp;let o6=class{constructor(e,t,i){this._commandService=e,this._keybindingService=t,this._hiddenStates=new jA(i)}createMenu(e,t,i){return new a6(e,this._hiddenStates,{emitEventsForSubmenuChanges:!1,eventDebounceDelay:50,...i},this._commandService,this._keybindingService,t)}resetHiddenStates(e){this._hiddenStates.reset(e)}};o6=vP([bh(0,Sn),bh(1,Li),bh(2,dd)],o6);let jA=n1=class{constructor(e){this._storageService=e,this._disposables=new be,this._onDidChange=new X,this.onDidChange=this._onDidChange.event,this._ignoreChangeEvent=!1,this._hiddenByDefaultCache=new Map;try{const t=e.get(n1._key,0,"{}");this._data=JSON.parse(t)}catch{this._data=Object.create(null)}this._disposables.add(e.onDidChangeValue(0,n1._key,this._disposables)(()=>{if(!this._ignoreChangeEvent)try{const t=e.get(n1._key,0,"{}");this._data=JSON.parse(t)}catch(t){console.log("FAILED to read storage after UPDATE",t)}this._onDidChange.fire()}))}dispose(){this._onDidChange.dispose(),this._disposables.dispose()}_isHiddenByDefault(e,t){var i;return(i=this._hiddenByDefaultCache.get(`${e.id}/${t}`))!==null&&i!==void 0?i:!1}setDefaultState(e,t,i){this._hiddenByDefaultCache.set(`${e.id}/${t}`,i)}isHidden(e,t){var i,s;const o=this._isHiddenByDefault(e,t),r=(s=(i=this._data[e.id])===null||i===void 0?void 0:i.includes(t))!==null&&s!==void 0?s:!1;return o?!r:r}updateHidden(e,t,i){this._isHiddenByDefault(e,t)&&(i=!i);const o=this._data[e.id];if(i)o?o.indexOf(t)<0&&o.push(t):this._data[e.id]=[t];else if(o){const r=o.indexOf(t);r>=0&&n2e(o,r),o.length===0&&delete this._data[e.id]}this._persist()}reset(e){if(e===void 0)this._data=Object.create(null),this._persist();else{for(const{id:t}of e)this._data[t]&&delete this._data[t];this._persist()}}_persist(){try{this._ignoreChangeEvent=!0;const e=JSON.stringify(this._data);this._storageService.store(n1._key,e,0,0)}finally{this._ignoreChangeEvent=!1}}};jA._key="menu.hiddenCommands";jA=n1=vP([bh(0,dd)],jA);let r6=wp=class{constructor(e,t,i,s,o,r){this._id=e,this._hiddenStates=t,this._collectContextKeysForSubmenus=i,this._commandService=s,this._keybindingService=o,this._contextKeyService=r,this._menuGroups=[],this._structureContextKeys=new Set,this._preconditionContextKeys=new Set,this._toggledContextKeys=new Set,this.refresh()}get structureContextKeys(){return this._structureContextKeys}get preconditionContextKeys(){return this._preconditionContextKeys}get toggledContextKeys(){return this._toggledContextKeys}refresh(){this._menuGroups.length=0,this._structureContextKeys.clear(),this._preconditionContextKeys.clear(),this._toggledContextKeys.clear();const e=ao.getMenuItems(this._id);let t;e.sort(wp._compareMenuItems);for(const i of e){const s=i.group||"";(!t||t[0]!==s)&&(t=[s,[]],this._menuGroups.push(t)),t[1].push(i),this._collectContextKeys(i)}}_collectContextKeys(e){if(wp._fillInKbExprKeys(e.when,this._structureContextKeys),g1(e)){if(e.command.precondition&&wp._fillInKbExprKeys(e.command.precondition,this._preconditionContextKeys),e.command.toggled){const t=e.command.toggled.condition||e.command.toggled;wp._fillInKbExprKeys(t,this._toggledContextKeys)}}else this._collectContextKeysForSubmenus&&ao.getMenuItems(e.submenu).forEach(this._collectContextKeys,this)}createActionGroups(e){const t=[];for(const i of this._menuGroups){const[s,o]=i;let r;for(const a of o)if(this._contextKeyService.contextMatchesRules(a.when)){const l=g1(a);l&&this._hiddenStates.setDefaultState(this._id,a.command.id,!!a.isHiddenByDefault);const c=vUe(this._id,l?a.command:a,this._hiddenStates);if(l){const d=Oue(a.command.id,a.when,this._commandService,this._keybindingService);(r??(r=[])).push(new Na(a.command,a.alt,e,c,d,this._contextKeyService,this._commandService))}else{const d=new wp(a.submenu,this._hiddenStates,this._collectContextKeysForSubmenus,this._commandService,this._keybindingService,this._contextKeyService).createActionGroups(e),u=Ms.join(...d.map(h=>h[1]));u.length>0&&(r??(r=[])).push(new q1(a,c,u))}}r&&r.length>0&&t.push([s,r])}return t}static _fillInKbExprKeys(e,t){if(e)for(const i of e.keys())t.add(i)}static _compareMenuItems(e,t){const i=e.group,s=t.group;if(i!==s){if(i){if(!s)return-1}else return 1;if(i==="navigation")return-1;if(s==="navigation")return 1;const a=i.localeCompare(s);if(a!==0)return a}const o=e.order||0,r=t.order||0;return or?1:wp._compareTitles(g1(e)?e.command.title:e.title,g1(t)?t.command.title:t.title)}static _compareTitles(e,t){const i=typeof e=="string"?e:e.original,s=typeof t=="string"?t:t.original;return i.localeCompare(s)}};r6=wp=vP([bh(3,Sn),bh(4,Li),bh(5,Ct)],r6);let a6=class{constructor(e,t,i,s,o,r){this._disposables=new be,this._menuInfo=new r6(e,t,i.emitEventsForSubmenuChanges,s,o,r);const a=new Xi(()=>{this._menuInfo.refresh(),this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!0,isToggleChange:!0})},i.eventDebounceDelay);this._disposables.add(a),this._disposables.add(ao.onDidChangeMenu(u=>{u.has(e)&&a.schedule()}));const l=this._disposables.add(new be),c=u=>{let h=!1,f=!1,g=!1;for(const p of u)if(h=h||p.isStructuralChange,f=f||p.isEnablementChange,g=g||p.isToggleChange,h&&f&&g)break;return{menu:this,isStructuralChange:h,isEnablementChange:f,isToggleChange:g}},d=()=>{l.add(r.onDidChangeContext(u=>{const h=u.affectsSome(this._menuInfo.structureContextKeys),f=u.affectsSome(this._menuInfo.preconditionContextKeys),g=u.affectsSome(this._menuInfo.toggledContextKeys);(h||f||g)&&this._onDidChange.fire({menu:this,isStructuralChange:h,isEnablementChange:f,isToggleChange:g})})),l.add(t.onDidChange(u=>{this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!1,isToggleChange:!1})}))};this._onDidChange=new nae({onWillAddFirstListener:d,onDidRemoveLastListener:l.clear.bind(l),delay:i.eventDebounceDelay,merge:c}),this.onDidChange=this._onDidChange.event}getActions(e){return this._menuInfo.createActionGroups(e)}dispose(){this._disposables.dispose(),this._onDidChange.dispose()}};a6=vP([bh(3,Sn),bh(4,Li),bh(5,Ct)],a6);function vUe(n,e,t){const i=fPe(e)?e.submenu.id:e.id,s=typeof e.title=="string"?e.title:e.title.value,o=$v({id:`hide/${n.id}/${i}`,label:v("hide.label","Hide '{0}'",s),run(){t.updateHidden(n,i,!0)}}),r=$v({id:`toggle/${n.id}/${i}`,label:s,get checked(){return!t.isHidden(n,i)},run(){t.updateHidden(n,i,!!this.checked)}});return{hide:o,toggle:r,get isHidden(){return!r.checked}}}function Oue(n,e=void 0,t,i){return $v({id:`configureKeybinding/${n}`,label:v("configure keybinding","Configure Keybinding"),run(){const o=!!!i.lookupKeybinding(n)&&e?e.serialize():void 0;t.executeCommand("workbench.action.openGlobalKeybindings",`@command:${n}`+(o?` +when:${o}`:""))}})}var bUe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},QJ=function(n,e){return function(t,i){e(t,i,n)}},l6;let KA=l6=class extends ne{constructor(e,t){super(),this.layoutService=e,this.logService=t,this.mapTextToType=new Map,this.findText="",this.resources=[],this.resourcesStateHash=void 0,(Pm||kae)&&this.installWebKitWriteTextWorkaround(),this._register(Ae.runAndSubscribe(dM,({window:i,disposables:s})=>{s.add(ce(i.document,"copy",()=>this.clearResources()))},{window:Ji,disposables:this._store}))}installWebKitWriteTextWorkaround(){const e=()=>{const t=new hD;this.webKitPendingClipboardWritePromise&&!this.webKitPendingClipboardWritePromise.isSettled&&this.webKitPendingClipboardWritePromise.cancel(),this.webKitPendingClipboardWritePromise=t,uN().navigator.clipboard.write([new ClipboardItem({"text/plain":t.p})]).catch(async i=>{(!(i instanceof Error)||i.name!=="NotAllowedError"||!t.isRejected)&&this.logService.error(i)})};this._register(Ae.runAndSubscribe(this.layoutService.onDidAddContainer,({container:t,disposables:i})=>{i.add(ce(t,"click",e)),i.add(ce(t,"keydown",e))},{container:this.layoutService.mainContainer,disposables:this._store}))}async writeText(e,t){if(this.writeResources([]),t){this.mapTextToType.set(t,e);return}if(this.webKitPendingClipboardWritePromise)return this.webKitPendingClipboardWritePromise.complete(e);try{return await uN().navigator.clipboard.writeText(e)}catch(i){console.error(i)}this.fallbackWriteText(e)}fallbackWriteText(e){const t=Rw(),i=t.activeElement,s=t.body.appendChild(ke("textarea",{"aria-hidden":!0}));s.style.height="1px",s.style.width="1px",s.style.position="absolute",s.value=e,s.focus(),s.select(),t.execCommand("copy"),co(i)&&i.focus(),t.body.removeChild(s)}async readText(e){if(e)return this.mapTextToType.get(e)||"";try{return await uN().navigator.clipboard.readText()}catch(t){console.error(t)}return""}async readFindText(){return this.findText}async writeFindText(e){this.findText=e}async writeResources(e){e.length===0?this.clearResources():(this.resources=e,this.resourcesStateHash=await this.computeResourcesStateHash())}async readResources(){const e=await this.computeResourcesStateHash();return this.resourcesStateHash!==e&&this.clearResources(),this.resources}async computeResourcesStateHash(){if(this.resources.length===0)return;const e=await this.readText();return aM(e.substring(0,l6.MAX_RESOURCE_STATE_SOURCE_LENGTH))}clearResources(){this.resources=[],this.resourcesStateHash=void 0}};KA.MAX_RESOURCE_STATE_SOURCE_LENGTH=1e3;KA=l6=bUe([QJ(0,g_),QJ(1,er)],KA);const zg=Jt("clipboardService");var CUe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},wUe=function(n,e){return function(t,i){e(t,i,n)}};const Ix="data-keybinding-context";let K$=class{constructor(e,t){this._id=e,this._parent=t,this._value=Object.create(null),this._value._contextId=e}get value(){return{...this._value}}setValue(e,t){return this._value[e]!==t?(this._value[e]=t,!0):!1}removeValue(e){return e in this._value?(delete this._value[e],!0):!1}getValue(e){const t=this._value[e];return typeof t>"u"&&this._parent?this._parent.getValue(e):t}};class iw extends K${constructor(){super(-1,null)}setValue(e,t){return!1}removeValue(e){return!1}getValue(e){}}iw.INSTANCE=new iw;class ik extends K${constructor(e,t,i){super(e,null),this._configurationService=t,this._values=lC.forConfigKeys(),this._listener=this._configurationService.onDidChangeConfiguration(s=>{if(s.source===7){const o=Array.from(this._values,([r])=>r);this._values.clear(),i.fire(new eee(o))}else{const o=[];for(const r of s.affectedKeys){const a=`config.${r}`,l=this._values.findSuperstr(a);l!==void 0&&(o.push(...oi.map(l,([c])=>c)),this._values.deleteSuperstr(a)),this._values.has(a)&&(o.push(a),this._values.delete(a))}i.fire(new eee(o))}})}dispose(){this._listener.dispose()}getValue(e){if(e.indexOf(ik._keyPrefix)!==0)return super.getValue(e);if(this._values.has(e))return this._values.get(e);const t=e.substr(ik._keyPrefix.length),i=this._configurationService.getValue(t);let s;switch(typeof i){case"number":case"boolean":case"string":s=i;break;default:Array.isArray(i)?s=JSON.stringify(i):s=i}return this._values.set(e,s),s}setValue(e,t){return super.setValue(e,t)}removeValue(e){return super.removeValue(e)}}ik._keyPrefix="config.";class yUe{constructor(e,t,i){this._service=e,this._key=t,this._defaultValue=i,this.reset()}set(e){this._service.setContext(this._key,e)}reset(){typeof this._defaultValue>"u"?this._service.removeContext(this._key):this._service.setContext(this._key,this._defaultValue)}get(){return this._service.getContextKeyValue(this._key)}}class JJ{constructor(e){this.key=e}affectsSome(e){return e.has(this.key)}allKeysContainedIn(e){return this.affectsSome(e)}}class eee{constructor(e){this.keys=e}affectsSome(e){for(const t of this.keys)if(e.has(t))return!0;return!1}allKeysContainedIn(e){return this.keys.every(t=>e.has(t))}}class SUe{constructor(e){this.events=e}affectsSome(e){for(const t of this.events)if(t.affectsSome(e))return!0;return!1}allKeysContainedIn(e){return this.events.every(t=>t.allKeysContainedIn(e))}}function xUe(n,e){return n.allKeysContainedIn(new Set(Object.keys(e)))}class Fue extends ne{constructor(e){super(),this._onDidChangeContext=this._register(new a0({merge:t=>new SUe(t)})),this.onDidChangeContext=this._onDidChangeContext.event,this._isDisposed=!1,this._myContextId=e}createKey(e,t){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new yUe(this,e,t)}bufferChangeEvents(e){this._onDidChangeContext.pause();try{e()}finally{this._onDidChangeContext.resume()}}createScoped(e){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new LUe(this,e)}contextMatchesRules(e){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");const t=this.getContextValuesContainer(this._myContextId);return e?e.evaluate(t):!0}getContextKeyValue(e){if(!this._isDisposed)return this.getContextValuesContainer(this._myContextId).getValue(e)}setContext(e,t){if(this._isDisposed)return;const i=this.getContextValuesContainer(this._myContextId);i&&i.setValue(e,t)&&this._onDidChangeContext.fire(new JJ(e))}removeContext(e){this._isDisposed||this.getContextValuesContainer(this._myContextId).removeValue(e)&&this._onDidChangeContext.fire(new JJ(e))}getContext(e){return this._isDisposed?iw.INSTANCE:this.getContextValuesContainer(kUe(e))}dispose(){super.dispose(),this._isDisposed=!0}}let c6=class extends Fue{constructor(e){super(0),this._contexts=new Map,this._lastContextId=0;const t=this._register(new ik(this._myContextId,e,this._onDidChangeContext));this._contexts.set(this._myContextId,t)}getContextValuesContainer(e){return this._isDisposed?iw.INSTANCE:this._contexts.get(e)||iw.INSTANCE}createChildContext(e=this._myContextId){if(this._isDisposed)throw new Error("ContextKeyService has been disposed");const t=++this._lastContextId;return this._contexts.set(t,new K$(t,this.getContextValuesContainer(e))),t}disposeContext(e){this._isDisposed||this._contexts.delete(e)}};c6=CUe([wUe(0,qt)],c6);class LUe extends Fue{constructor(e,t){if(super(e.createChildContext()),this._parentChangeListener=this._register(new Qs),this._parent=e,this._updateParentChangeListener(),this._domNode=t,this._domNode.hasAttribute(Ix)){let i="";this._domNode.classList&&(i=Array.from(this._domNode.classList.values()).join(", ")),console.error(`Element already has context attribute${i?": "+i:""}`)}this._domNode.setAttribute(Ix,String(this._myContextId))}_updateParentChangeListener(){this._parentChangeListener.value=this._parent.onDidChangeContext(e=>{const i=this._parent.getContextValuesContainer(this._myContextId).value;xUe(e,i)||this._onDidChangeContext.fire(e)})}dispose(){this._isDisposed||(this._parent.disposeContext(this._myContextId),this._domNode.removeAttribute(Ix),super.dispose())}getContextValuesContainer(e){return this._isDisposed?iw.INSTANCE:this._parent.getContextValuesContainer(e)}createChildContext(e=this._myContextId){if(this._isDisposed)throw new Error("ScopedContextKeyService has been disposed");return this._parent.createChildContext(e)}disposeContext(e){this._isDisposed||this._parent.disposeContext(e)}}function kUe(n){for(;n;){if(n.hasAttribute(Ix)){const e=n.getAttribute(Ix);return e?parseInt(e,10):NaN}n=n.parentElement}return 0}function DUe(n,e,t){n.get(Ct).createKey(String(e),IUe(t))}function IUe(n){return $re(n,e=>{if(typeof e=="object"&&e.$mid===1)return pt.revive(e).toString();if(e instanceof pt)return e.toString()})}ri.registerCommand("_setContext",DUe);ri.registerCommand({id:"getContextKeyInfo",handler(){return[...He.all()].sort((n,e)=>n.key.localeCompare(e.key))},metadata:{description:v("getContextKeyInfo","A command that returns information about context keys"),args:[]}});ri.registerCommand("_generateContextKeyInfo",function(){const n=[],e=new Set;for(const t of He.all())e.has(t.key)||(e.add(t.key),n.push(t));n.sort((t,i)=>t.key.localeCompare(i.key)),console.log(JSON.stringify(n,void 0,2))});let EUe=class{constructor(e,t){this.key=e,this.data=t,this.incoming=new Map,this.outgoing=new Map}};class tee{constructor(e){this._hashFn=e,this._nodes=new Map}roots(){const e=[];for(const t of this._nodes.values())t.outgoing.size===0&&e.push(t);return e}insertEdge(e,t){const i=this.lookupOrInsertNode(e),s=this.lookupOrInsertNode(t);i.outgoing.set(s.key,s),s.incoming.set(i.key,i)}removeNode(e){const t=this._hashFn(e);this._nodes.delete(t);for(const i of this._nodes.values())i.outgoing.delete(t),i.incoming.delete(t)}lookupOrInsertNode(e){const t=this._hashFn(e);let i=this._nodes.get(t);return i||(i=new EUe(t,e),this._nodes.set(t,i)),i}isEmpty(){return this._nodes.size===0}toString(){const e=[];for(const[t,i]of this._nodes)e.push(`${t} (-> incoming)[${[...i.incoming.keys()].join(", ")}] (outgoing ->)[${[...i.outgoing.keys()].join(",")}] `);return e.join(` `)}findCycleSlow(){for(const[e,t]of this._nodes){const i=new Set([e]),s=this._findCycle(t,i);if(s)return s}}_findCycle(e,t){for(const[i,s]of e.outgoing){if(t.has(i))return[...t,i].join(" -> ");t.add(i);const o=this._findCycle(s,t);if(o)return o;t.delete(i)}}}const TUe=!1;class iee extends Error{constructor(e){var t;super("cyclic dependency between services"),this.message=(t=e.findCycleSlow())!==null&&t!==void 0?t:`UNABLE to detect cycle, dumping graph: ${e.toString()}`}}class qA{constructor(e=new kD,t=!1,i,s=TUe){var o;this._services=e,this._strict=t,this._parent=i,this._enableTracing=s,this._isDisposed=!1,this._servicesToMaybeDispose=new Set,this._children=new Set,this._activeInstantiations=new Set,this._services.set(ht,this),this._globalGraph=s?(o=i==null?void 0:i._globalGraph)!==null&&o!==void 0?o:new tee(r=>r):void 0}dispose(){if(!this._isDisposed){this._isDisposed=!0,tn(this._children),this._children.clear();for(const e of this._servicesToMaybeDispose)nM(e)&&e.dispose();this._servicesToMaybeDispose.clear()}}_throwIfDisposed(){if(this._isDisposed)throw new Error("InstantiationService has been disposed")}createChild(e,t){this._throwIfDisposed();const i=this,s=new class extends qA{dispose(){i._children.delete(s),super.dispose()}}(e,this._strict,this,this._enableTracing);return this._children.add(s),t==null||t.add(s),s}invokeFunction(e,...t){this._throwIfDisposed();const i=Qr.traceInvocation(this._enableTracing,e);let s=!1;try{return e({get:r=>{if(s)throw BV("service accessor is only valid during the invocation of its target method");const a=this._getOrCreateServiceInstance(r,i);if(!a)throw new Error(`[invokeFunction] unknown service '${r}'`);return a}},...t)}finally{s=!0,i.stop()}}createInstance(e,...t){this._throwIfDisposed();let i,s;return e instanceof qu?(i=Qr.traceCreation(this._enableTracing,e.ctor),s=this._createInstance(e.ctor,e.staticArguments.concat(t),i)):(i=Qr.traceCreation(this._enableTracing,e),s=this._createInstance(e,t,i)),i.stop(),s}_createInstance(e,t=[],i){const s=Hd.getServiceDependencies(e).sort((a,l)=>a.index-l.index),o=[];for(const a of s){const l=this._getOrCreateServiceInstance(a.id,i);l||this._throwIfStrict(`[createInstance] ${e.name} depends on UNKNOWN service ${a.id}.`,!1),o.push(l)}const r=s.length>0?s[0].index:t.length;if(t.length!==r){console.trace(`[createInstance] First service dependency of ${e.name} at position ${r+1} conflicts with ${t.length} static arguments`);const a=r-t.length;a>0?t=t.concat(new Array(a)):t=t.slice(0,r)}return Reflect.construct(e,t.concat(o))}_setCreatedServiceInstance(e,t){if(this._services.get(e)instanceof qu)this._services.set(e,t);else if(this._parent)this._parent._setCreatedServiceInstance(e,t);else throw new Error("illegalState - setting UNKNOWN service instance")}_getServiceInstanceOrDescriptor(e){const t=this._services.get(e);return!t&&this._parent?this._parent._getServiceInstanceOrDescriptor(e):t}_getOrCreateServiceInstance(e,t){this._globalGraph&&this._globalGraphImplicitDependency&&this._globalGraph.insertEdge(this._globalGraphImplicitDependency,String(e));const i=this._getServiceInstanceOrDescriptor(e);return i instanceof qu?this._safeCreateAndCacheServiceInstance(e,i,t.branch(e,!0)):(t.branch(e,!1),i)}_safeCreateAndCacheServiceInstance(e,t,i){if(this._activeInstantiations.has(e))throw new Error(`illegal state - RECURSIVELY instantiating service '${e}'`);this._activeInstantiations.add(e);try{return this._createAndCacheServiceInstance(e,t,i)}finally{this._activeInstantiations.delete(e)}}_createAndCacheServiceInstance(e,t,i){var s;const o=new tee(l=>l.id.toString());let r=0;const a=[{id:e,desc:t,_trace:i}];for(;a.length;){const l=a.pop();if(o.lookupOrInsertNode(l),r++>1e3)throw new iee(o);for(const c of Hd.getServiceDependencies(l.desc.ctor)){const d=this._getServiceInstanceOrDescriptor(c.id);if(d||this._throwIfStrict(`[createInstance] ${e} depends on ${c.id} which is NOT registered.`,!0),(s=this._globalGraph)===null||s===void 0||s.insertEdge(String(l.id),String(c.id)),d instanceof qu){const u={id:c.id,desc:d,_trace:l._trace.branch(c.id,!0)};o.insertEdge(l,u),a.push(u)}}}for(;;){const l=o.roots();if(l.length===0){if(!o.isEmpty())throw new iee(o);break}for(const{data:c}of l){if(this._getServiceInstanceOrDescriptor(c.id)instanceof qu){const u=this._createServiceInstanceWithOwner(c.id,c.desc.ctor,c.desc.staticArguments,c.desc.supportsDelayedInstantiation,c._trace);this._setCreatedServiceInstance(c.id,u)}o.removeNode(c)}}return this._getServiceInstanceOrDescriptor(e)}_createServiceInstanceWithOwner(e,t,i=[],s,o){if(this._services.get(e)instanceof qu)return this._createServiceInstance(e,t,i,s,o,this._servicesToMaybeDispose);if(this._parent)return this._parent._createServiceInstanceWithOwner(e,t,i,s,o);throw new Error(`illegalState - creating UNKNOWN service instance ${t.name}`)}_createServiceInstance(e,t,i=[],s,o,r){if(s){const a=new qA(void 0,this._strict,this,this._enableTracing);a._globalGraphImplicitDependency=String(e);const l=new Map,c=new HRe(()=>{const d=a._createInstance(t,i,o);for(const[u,h]of l){const f=d[u];if(typeof f=="function")for(const g of h)g.disposable=f.apply(d,g.listener)}return l.clear(),r.add(d),d});return new Proxy(Object.create(null),{get(d,u){if(!c.isInitialized&&typeof u=="string"&&(u.startsWith("onDid")||u.startsWith("onWill"))){let g=l.get(u);return g||(g=new Tr,l.set(u,g)),(_,b,w)=>{if(c.isInitialized)return c.value[u](_,b,w);{const y={listener:[_,b,w],disposable:void 0},S=g.push(y);return dt(()=>{var k;S(),(k=y.disposable)===null||k===void 0||k.dispose()})}}}if(u in d)return d[u];const h=c.value;let f=h[u];return typeof f!="function"||(f=f.bind(h),d[u]=f),f},set(d,u,h){return c.value[u]=h,!0},getPrototypeOf(d){return t.prototype}})}else{const a=this._createInstance(t,i,o);return r.add(a),a}}_throwIfStrict(e,t){if(t&&console.warn(e),this._strict)throw new Error(e)}}class Qr{static traceInvocation(e,t){return e?new Qr(2,t.name||new Error().stack.split(` `).slice(3,4).join(` `)):Qr._None}static traceCreation(e,t){return e?new Qr(1,t.name):Qr._None}constructor(e,t){this.type=e,this.name=t,this._start=Date.now(),this._dep=[]}branch(e,t){const i=new Qr(3,e.toString());return this._dep.push([e,t,i]),i}stop(){const e=Date.now()-this._start;Qr._totals+=e;let t=!1;function i(o,r){const a=[],l=new Array(o+1).join(" ");for(const[c,d,u]of r._dep)if(d&&u){t=!0,a.push(`${l}CREATES -> ${c}`);const h=i(o+1,u);h&&a.push(h)}else a.push(`${l}uses -> ${c}`);return a.join(` `)}const s=[`${this.type===1?"CREATE":"CALL"} ${this.name}`,`${i(1,this)}`,`DONE, took ${e.toFixed(2)}ms (grand total ${Qr._totals.toFixed(2)}ms)`];(e>2||t)&&Qr.all.add(s.join(` `))}}Qr.all=new Set;Qr._None=new class extends Qr{constructor(){super(0,null)}stop(){}branch(){return this}};Qr._totals=0;const NUe=new Set([Tt.inMemory,Tt.vscodeSourceControl,Tt.walkThrough,Tt.walkThroughSnippet,Tt.vscodeChatCodeBlock,Tt.vscodeCopilotBackingChatCodeBlock]);class AUe{constructor(){this._byResource=new hs,this._byOwner=new Map}set(e,t,i){let s=this._byResource.get(e);s||(s=new Map,this._byResource.set(e,s)),s.set(t,i);let o=this._byOwner.get(t);o||(o=new hs,this._byOwner.set(t,o)),o.set(e,i)}get(e,t){const i=this._byResource.get(e);return i==null?void 0:i.get(t)}delete(e,t){let i=!1,s=!1;const o=this._byResource.get(e);o&&(i=o.delete(t));const r=this._byOwner.get(t);if(r&&(s=r.delete(e)),i!==s)throw new Error("illegal state");return i&&s}values(e){var t,i,s,o;return typeof e=="string"?(i=(t=this._byOwner.get(e))===null||t===void 0?void 0:t.values())!==null&&i!==void 0?i:oi.empty():pt.isUri(e)?(o=(s=this._byResource.get(e))===null||s===void 0?void 0:s.values())!==null&&o!==void 0?o:oi.empty():oi.map(oi.concat(...this._byOwner.values()),r=>r[1])}}class RUe{constructor(e){this.errors=0,this.infos=0,this.warnings=0,this.unknowns=0,this._data=new hs,this._service=e,this._subscription=e.onMarkerChanged(this._update,this)}dispose(){this._subscription.dispose()}_update(e){for(const t of e){const i=this._data.get(t);i&&this._substract(i);const s=this._resourceStats(t);this._add(s),this._data.set(t,s)}}_resourceStats(e){const t={errors:0,warnings:0,infos:0,unknowns:0};if(NUe.has(e.scheme))return t;for(const{severity:i}of this._service.read({resource:e}))i===Qn.Error?t.errors+=1:i===Qn.Warning?t.warnings+=1:i===Qn.Info?t.infos+=1:t.unknowns+=1;return t}_substract(e){this.errors-=e.errors,this.warnings-=e.warnings,this.infos-=e.infos,this.unknowns-=e.unknowns}_add(e){this.errors+=e.errors,this.warnings+=e.warnings,this.infos+=e.infos,this.unknowns+=e.unknowns}}class Ip{constructor(){this._onMarkerChanged=new nae({delay:0,merge:Ip._merge}),this.onMarkerChanged=this._onMarkerChanged.event,this._data=new AUe,this._stats=new RUe(this)}dispose(){this._stats.dispose(),this._onMarkerChanged.dispose()}remove(e,t){for(const i of t||[])this.changeOne(e,i,[])}changeOne(e,t,i){if(Bre(i))this._data.delete(t,e)&&this._onMarkerChanged.fire([t]);else{const s=[];for(const o of i){const r=Ip._toMarker(e,t,o);r&&s.push(r)}this._data.set(t,e,s),this._onMarkerChanged.fire([t])}}static _toMarker(e,t,i){let{code:s,severity:o,message:r,source:a,startLineNumber:l,startColumn:c,endLineNumber:d,endColumn:u,relatedInformation:h,tags:f}=i;if(r)return l=l>0?l:1,c=c>0?c:1,d=d>=l?d:l,u=u>0?u:c,{resource:t,owner:e,code:s,severity:o,message:r,source:a,startLineNumber:l,startColumn:c,endLineNumber:d,endColumn:u,relatedInformation:h,tags:f}}changeAll(e,t){const i=[],s=this._data.values(e);if(s)for(const o of s){const r=oi.first(o);r&&(i.push(r.resource),this._data.delete(r.resource,e))}if(Zo(t)){const o=new hs;for(const{resource:r,marker:a}of t){const l=Ip._toMarker(e,r,a);if(!l)continue;const c=o.get(r);c?c.push(l):(o.set(r,[l]),i.push(r))}for(const[r,a]of o)this._data.set(r,e,a)}i.length>0&&this._onMarkerChanged.fire(i)}read(e=Object.create(null)){let{owner:t,resource:i,severities:s,take:o}=e;if((!o||o<0)&&(o=-1),t&&i){const r=this._data.get(i,t);if(r){const a=[];for(const l of r)if(Ip._accept(l,s)){const c=a.push(l);if(o>0&&c===o)break}return a}else return[]}else if(!t&&!i){const r=[];for(const a of this._data.values())for(const l of a)if(Ip._accept(l,s)){const c=r.push(l);if(o>0&&c===o)return r}return r}else{const r=this._data.values(i??t),a=[];for(const l of r)for(const c of l)if(Ip._accept(c,s)){const d=a.push(c);if(o>0&&d===o)return a}return a}}static _accept(e,t){return t===void 0||(t&e.severity)===e.severity}static _merge(e){const t=new hs;for(const i of e)for(const s of i)t.set(s,!0);return Array.from(t.keys())}}class MUe extends ne{get configurationModel(){return this._configurationModel}constructor(e){super(),this.logService=e,this._configurationModel=bo.createEmptyModel(this.logService)}reload(){return this.resetConfigurationModel(),this.configurationModel}getConfigurationDefaultOverrides(){return{}}resetConfigurationModel(){this._configurationModel=bo.createEmptyModel(this.logService);const e=Un.as(_u.Configuration).getConfigurationProperties();this.updateConfigurationModel(Object.keys(e),e)}updateConfigurationModel(e,t){const i=this.getConfigurationDefaultOverrides();for(const s of e){const o=i[s],r=t[s];o!==void 0?this._configurationModel.addValue(s,o):r?this._configurationModel.addValue(s,r.default):this._configurationModel.removeValue(s)}}}const v_=Jt("accessibilitySignalService");class yt{static register(e){return new yt(e.fileName)}constructor(e){this.fileName=e}}yt.error=yt.register({fileName:"error.mp3"});yt.warning=yt.register({fileName:"warning.mp3"});yt.success=yt.register({fileName:"success.mp3"});yt.foldedArea=yt.register({fileName:"foldedAreas.mp3"});yt.break=yt.register({fileName:"break.mp3"});yt.quickFixes=yt.register({fileName:"quickFixes.mp3"});yt.taskCompleted=yt.register({fileName:"taskCompleted.mp3"});yt.taskFailed=yt.register({fileName:"taskFailed.mp3"});yt.terminalBell=yt.register({fileName:"terminalBell.mp3"});yt.diffLineInserted=yt.register({fileName:"diffLineInserted.mp3"});yt.diffLineDeleted=yt.register({fileName:"diffLineDeleted.mp3"});yt.diffLineModified=yt.register({fileName:"diffLineModified.mp3"});yt.chatRequestSent=yt.register({fileName:"chatRequestSent.mp3"});yt.chatResponseReceived1=yt.register({fileName:"chatResponseReceived1.mp3"});yt.chatResponseReceived2=yt.register({fileName:"chatResponseReceived2.mp3"});yt.chatResponseReceived3=yt.register({fileName:"chatResponseReceived3.mp3"});yt.chatResponseReceived4=yt.register({fileName:"chatResponseReceived4.mp3"});yt.clear=yt.register({fileName:"clear.mp3"});yt.save=yt.register({fileName:"save.mp3"});yt.format=yt.register({fileName:"format.mp3"});yt.voiceRecordingStarted=yt.register({fileName:"voiceRecordingStarted.mp3"});yt.voiceRecordingStopped=yt.register({fileName:"voiceRecordingStopped.mp3"});yt.progress=yt.register({fileName:"progress.mp3"});class PUe{constructor(e){this.randomOneOf=e}}class At{constructor(e,t,i,s,o,r,a){this.sound=e,this.name=t,this.legacySoundSettingsKey=i,this.settingsKey=s,this.legacyAnnouncementSettingsKey=o,this.announcementMessage=r,this.delaySettingsKey=a}static register(e){const t=new PUe("randomOneOf"in e.sound?e.sound.randomOneOf:[e.sound]),i=new At(t,e.name,e.legacySoundSettingsKey,e.settingsKey,e.legacyAnnouncementSettingsKey,e.announcementMessage,e.delaySettingsKey);return At._signals.add(i),i}}At._signals=new Set;At.errorAtPosition=At.register({name:v("accessibilitySignals.positionHasError.name","Error at Position"),sound:yt.error,announcementMessage:v("accessibility.signals.positionHasError","Error"),settingsKey:"accessibility.signals.positionHasError",delaySettingsKey:"accessibility.signalOptions.delays.errorAtPosition"});At.warningAtPosition=At.register({name:v("accessibilitySignals.positionHasWarning.name","Warning at Position"),sound:yt.warning,announcementMessage:v("accessibility.signals.positionHasWarning","Warning"),settingsKey:"accessibility.signals.positionHasWarning",delaySettingsKey:"accessibility.signalOptions.delays.warningAtPosition"});At.errorOnLine=At.register({name:v("accessibilitySignals.lineHasError.name","Error on Line"),sound:yt.error,legacySoundSettingsKey:"audioCues.lineHasError",legacyAnnouncementSettingsKey:"accessibility.alert.error",announcementMessage:v("accessibility.signals.lineHasError","Error on Line"),settingsKey:"accessibility.signals.lineHasError"});At.warningOnLine=At.register({name:v("accessibilitySignals.lineHasWarning.name","Warning on Line"),sound:yt.warning,legacySoundSettingsKey:"audioCues.lineHasWarning",legacyAnnouncementSettingsKey:"accessibility.alert.warning",announcementMessage:v("accessibility.signals.lineHasWarning","Warning on Line"),settingsKey:"accessibility.signals.lineHasWarning"});At.foldedArea=At.register({name:v("accessibilitySignals.lineHasFoldedArea.name","Folded Area on Line"),sound:yt.foldedArea,legacySoundSettingsKey:"audioCues.lineHasFoldedArea",legacyAnnouncementSettingsKey:"accessibility.alert.foldedArea",announcementMessage:v("accessibility.signals.lineHasFoldedArea","Folded"),settingsKey:"accessibility.signals.lineHasFoldedArea"});At.break=At.register({name:v("accessibilitySignals.lineHasBreakpoint.name","Breakpoint on Line"),sound:yt.break,legacySoundSettingsKey:"audioCues.lineHasBreakpoint",legacyAnnouncementSettingsKey:"accessibility.alert.breakpoint",announcementMessage:v("accessibility.signals.lineHasBreakpoint","Breakpoint"),settingsKey:"accessibility.signals.lineHasBreakpoint"});At.inlineSuggestion=At.register({name:v("accessibilitySignals.lineHasInlineSuggestion.name","Inline Suggestion on Line"),sound:yt.quickFixes,legacySoundSettingsKey:"audioCues.lineHasInlineSuggestion",settingsKey:"accessibility.signals.lineHasInlineSuggestion"});At.terminalQuickFix=At.register({name:v("accessibilitySignals.terminalQuickFix.name","Terminal Quick Fix"),sound:yt.quickFixes,legacySoundSettingsKey:"audioCues.terminalQuickFix",legacyAnnouncementSettingsKey:"accessibility.alert.terminalQuickFix",announcementMessage:v("accessibility.signals.terminalQuickFix","Quick Fix"),settingsKey:"accessibility.signals.terminalQuickFix"});At.onDebugBreak=At.register({name:v("accessibilitySignals.onDebugBreak.name","Debugger Stopped on Breakpoint"),sound:yt.break,legacySoundSettingsKey:"audioCues.onDebugBreak",legacyAnnouncementSettingsKey:"accessibility.alert.onDebugBreak",announcementMessage:v("accessibility.signals.onDebugBreak","Breakpoint"),settingsKey:"accessibility.signals.onDebugBreak"});At.noInlayHints=At.register({name:v("accessibilitySignals.noInlayHints","No Inlay Hints on Line"),sound:yt.error,legacySoundSettingsKey:"audioCues.noInlayHints",legacyAnnouncementSettingsKey:"accessibility.alert.noInlayHints",announcementMessage:v("accessibility.signals.noInlayHints","No Inlay Hints"),settingsKey:"accessibility.signals.noInlayHints"});At.taskCompleted=At.register({name:v("accessibilitySignals.taskCompleted","Task Completed"),sound:yt.taskCompleted,legacySoundSettingsKey:"audioCues.taskCompleted",legacyAnnouncementSettingsKey:"accessibility.alert.taskCompleted",announcementMessage:v("accessibility.signals.taskCompleted","Task Completed"),settingsKey:"accessibility.signals.taskCompleted"});At.taskFailed=At.register({name:v("accessibilitySignals.taskFailed","Task Failed"),sound:yt.taskFailed,legacySoundSettingsKey:"audioCues.taskFailed",legacyAnnouncementSettingsKey:"accessibility.alert.taskFailed",announcementMessage:v("accessibility.signals.taskFailed","Task Failed"),settingsKey:"accessibility.signals.taskFailed"});At.terminalCommandFailed=At.register({name:v("accessibilitySignals.terminalCommandFailed","Terminal Command Failed"),sound:yt.error,legacySoundSettingsKey:"audioCues.terminalCommandFailed",legacyAnnouncementSettingsKey:"accessibility.alert.terminalCommandFailed",announcementMessage:v("accessibility.signals.terminalCommandFailed","Command Failed"),settingsKey:"accessibility.signals.terminalCommandFailed"});At.terminalCommandSucceeded=At.register({name:v("accessibilitySignals.terminalCommandSucceeded","Terminal Command Succeeded"),sound:yt.success,announcementMessage:v("accessibility.signals.terminalCommandSucceeded","Command Succeeded"),settingsKey:"accessibility.signals.terminalCommandSucceeded"});At.terminalBell=At.register({name:v("accessibilitySignals.terminalBell","Terminal Bell"),sound:yt.terminalBell,legacySoundSettingsKey:"audioCues.terminalBell",legacyAnnouncementSettingsKey:"accessibility.alert.terminalBell",announcementMessage:v("accessibility.signals.terminalBell","Terminal Bell"),settingsKey:"accessibility.signals.terminalBell"});At.notebookCellCompleted=At.register({name:v("accessibilitySignals.notebookCellCompleted","Notebook Cell Completed"),sound:yt.taskCompleted,legacySoundSettingsKey:"audioCues.notebookCellCompleted",legacyAnnouncementSettingsKey:"accessibility.alert.notebookCellCompleted",announcementMessage:v("accessibility.signals.notebookCellCompleted","Notebook Cell Completed"),settingsKey:"accessibility.signals.notebookCellCompleted"});At.notebookCellFailed=At.register({name:v("accessibilitySignals.notebookCellFailed","Notebook Cell Failed"),sound:yt.taskFailed,legacySoundSettingsKey:"audioCues.notebookCellFailed",legacyAnnouncementSettingsKey:"accessibility.alert.notebookCellFailed",announcementMessage:v("accessibility.signals.notebookCellFailed","Notebook Cell Failed"),settingsKey:"accessibility.signals.notebookCellFailed"});At.diffLineInserted=At.register({name:v("accessibilitySignals.diffLineInserted","Diff Line Inserted"),sound:yt.diffLineInserted,legacySoundSettingsKey:"audioCues.diffLineInserted",settingsKey:"accessibility.signals.diffLineInserted"});At.diffLineDeleted=At.register({name:v("accessibilitySignals.diffLineDeleted","Diff Line Deleted"),sound:yt.diffLineDeleted,legacySoundSettingsKey:"audioCues.diffLineDeleted",settingsKey:"accessibility.signals.diffLineDeleted"});At.diffLineModified=At.register({name:v("accessibilitySignals.diffLineModified","Diff Line Modified"),sound:yt.diffLineModified,legacySoundSettingsKey:"audioCues.diffLineModified",settingsKey:"accessibility.signals.diffLineModified"});At.chatRequestSent=At.register({name:v("accessibilitySignals.chatRequestSent","Chat Request Sent"),sound:yt.chatRequestSent,legacySoundSettingsKey:"audioCues.chatRequestSent",legacyAnnouncementSettingsKey:"accessibility.alert.chatRequestSent",announcementMessage:v("accessibility.signals.chatRequestSent","Chat Request Sent"),settingsKey:"accessibility.signals.chatRequestSent"});At.chatResponseReceived=At.register({name:v("accessibilitySignals.chatResponseReceived","Chat Response Received"),legacySoundSettingsKey:"audioCues.chatResponseReceived",sound:{randomOneOf:[yt.chatResponseReceived1,yt.chatResponseReceived2,yt.chatResponseReceived3,yt.chatResponseReceived4]},settingsKey:"accessibility.signals.chatResponseReceived"});At.progress=At.register({name:v("accessibilitySignals.progress","Progress"),sound:yt.progress,legacySoundSettingsKey:"audioCues.chatResponsePending",legacyAnnouncementSettingsKey:"accessibility.alert.progress",announcementMessage:v("accessibility.signals.progress","Progress"),settingsKey:"accessibility.signals.progress"});At.clear=At.register({name:v("accessibilitySignals.clear","Clear"),sound:yt.clear,legacySoundSettingsKey:"audioCues.clear",legacyAnnouncementSettingsKey:"accessibility.alert.clear",announcementMessage:v("accessibility.signals.clear","Clear"),settingsKey:"accessibility.signals.clear"});At.save=At.register({name:v("accessibilitySignals.save","Save"),sound:yt.save,legacySoundSettingsKey:"audioCues.save",legacyAnnouncementSettingsKey:"accessibility.alert.save",announcementMessage:v("accessibility.signals.save","Save"),settingsKey:"accessibility.signals.save"});At.format=At.register({name:v("accessibilitySignals.format","Format"),sound:yt.format,legacySoundSettingsKey:"audioCues.format",legacyAnnouncementSettingsKey:"accessibility.alert.format",announcementMessage:v("accessibility.signals.format","Format"),settingsKey:"accessibility.signals.format"});At.voiceRecordingStarted=At.register({name:v("accessibilitySignals.voiceRecordingStarted","Voice Recording Started"),sound:yt.voiceRecordingStarted,legacySoundSettingsKey:"audioCues.voiceRecordingStarted",settingsKey:"accessibility.signals.voiceRecordingStarted"});At.voiceRecordingStopped=At.register({name:v("accessibilitySignals.voiceRecordingStopped","Voice Recording Stopped"),sound:yt.voiceRecordingStopped,legacySoundSettingsKey:"audioCues.voiceRecordingStopped",settingsKey:"accessibility.signals.voiceRecordingStopped"});class OUe extends ne{constructor(e,t=[]){super(),this.logger=new pPe([e,...t]),this._register(e.onDidChangeLogLevel(i=>this.setLevel(i)))}get onDidChangeLogLevel(){return this.logger.onDidChangeLogLevel}setLevel(e){this.logger.setLevel(e)}getLevel(){return this.logger.getLevel()}trace(e,...t){this.logger.trace(e,...t)}debug(e,...t){this.logger.debug(e,...t)}info(e,...t){this.logger.info(e,...t)}warn(e,...t){this.logger.warn(e,...t)}error(e,...t){this.logger.error(e,...t)}}const Bue=[];function WD(n){Bue.push(n)}function FUe(){return Bue.slice(0)}var $g=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},ro=function(n,e){return function(t,i){e(t,i,n)}};class BUe{constructor(e){this.disposed=!1,this.model=e,this._onWillDispose=new X}get textEditorModel(){return this.model}dispose(){this.disposed=!0,this._onWillDispose.fire()}}let d6=class{constructor(e){this.modelService=e}createModelReference(e){const t=this.modelService.getModel(e);return t?Promise.resolve(new SAe(new BUe(t))):Promise.reject(new Error("Model not found"))}};d6=$g([ro(0,Pn)],d6);class bP{show(){return bP.NULL_PROGRESS_RUNNER}async showWhile(e,t){await e}}bP.NULL_PROGRESS_RUNNER={done:()=>{},total:()=>{},worked:()=>{}};class WUe{withProgress(e,t,i){return t({report:()=>{}})}}class HUe{constructor(){this.isExtensionDevelopment=!1,this.isBuilt=!1}}class VUe{async confirm(e){return{confirmed:this.doConfirm(e.message,e.detail),checkboxChecked:!1}}doConfirm(e,t){let i=e;return t&&(i=i+` `+t),Ji.confirm(i)}async prompt(e){var t,i;let s;if(this.doConfirm(e.message,e.detail)){const r=[...(t=e.buttons)!==null&&t!==void 0?t:[]];e.cancelButton&&typeof e.cancelButton!="string"&&typeof e.cancelButton!="boolean"&&r.push(e.cancelButton),s=await((i=r[0])===null||i===void 0?void 0:i.run({checkboxChecked:!1}))}return{result:s}}async error(e,t){await this.prompt({type:us.Error,message:e,detail:t})}}class nk{info(e){return this.notify({severity:us.Info,message:e})}warn(e){return this.notify({severity:us.Warning,message:e})}error(e){return this.notify({severity:us.Error,message:e})}notify(e){switch(e.severity){case us.Error:console.error(e.message);break;case us.Warning:console.warn(e.message);break;default:console.log(e.message);break}return nk.NO_OP}prompt(e,t,i,s){return nk.NO_OP}status(e,t){return ne.None}}nk.NO_OP=new J9e;let u6=class{constructor(e){this._onWillExecuteCommand=new X,this._onDidExecuteCommand=new X,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this._instantiationService=e}executeCommand(e,...t){const i=ri.getCommand(e);if(!i)return Promise.reject(new Error(`command '${e}' not found`));try{this._onWillExecuteCommand.fire({commandId:e,args:t});const s=this._instantiationService.invokeFunction.apply(this._instantiationService,[i.handler,...t]);return this._onDidExecuteCommand.fire({commandId:e,args:t}),Promise.resolve(s)}catch(s){return Promise.reject(s)}}};u6=$g([ro(0,ht)],u6);let nw=class extends _He{constructor(e,t,i,s,o,r){super(e,t,i,s,o),this._cachedResolver=null,this._dynamicKeybindings=[],this._domNodeListeners=[];const a=f=>{const g=new be;g.add(ce(f,Le.KEY_DOWN,p=>{const _=new ln(p);this._dispatch(_,_.target)&&(_.preventDefault(),_.stopPropagation())})),g.add(ce(f,Le.KEY_UP,p=>{const _=new ln(p);this._singleModifierDispatch(_,_.target)&&_.preventDefault()})),this._domNodeListeners.push(new zUe(f,g))},l=f=>{for(let g=0;g{f.getOption(61)||a(f.getContainerDomNode())},d=f=>{f.getOption(61)||l(f.getContainerDomNode())};this._register(r.onCodeEditorAdd(c)),this._register(r.onCodeEditorRemove(d)),r.listCodeEditors().forEach(c);const u=f=>{a(f.getContainerDomNode())},h=f=>{l(f.getContainerDomNode())};this._register(r.onDiffEditorAdd(u)),this._register(r.onDiffEditorRemove(h)),r.listDiffEditors().forEach(u)}addDynamicKeybinding(e,t,i,s){return Jc(ri.registerCommand(e,i),this.addDynamicKeybindings([{keybinding:t,command:e,when:s}]))}addDynamicKeybindings(e){const t=e.map(i=>{var s;return{keybinding:eB(i.keybinding,Da),command:(s=i.command)!==null&&s!==void 0?s:null,commandArgs:i.commandArgs,when:i.when,weight1:1e3,weight2:0,extensionId:null,isBuiltinExtension:!1}});return this._dynamicKeybindings=this._dynamicKeybindings.concat(t),this.updateResolver(),dt(()=>{for(let i=0;ithis._log(i))}return this._cachedResolver}_documentHasFocus(){return Ji.document.hasFocus()}_toNormalizedKeybindingItems(e,t){const i=[];let s=0;for(const o of e){const r=o.when||void 0,a=o.keybinding;if(!a)i[s++]=new fJ(void 0,o.command,o.commandArgs,r,t,null,!1);else{const l=HL.resolveKeybinding(a,Da);for(const c of l)i[s++]=new fJ(c,o.command,o.commandArgs,r,t,null,!1)}}return i}resolveKeyboardEvent(e){const t=new kg(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,e.keyCode);return new HL([t],Da)}};nw=$g([ro(0,Ct),ro(1,Sn),ro(2,Po),ro(3,ps),ro(4,er),ro(5,vi)],nw);class zUe extends ne{constructor(e,t){super(),this.domNode=e,this._register(t)}}function nee(n){return n&&typeof n=="object"&&(!n.overrideIdentifier||typeof n.overrideIdentifier=="string")&&(!n.resource||n.resource instanceof pt)}let GA=class{constructor(e){this.logService=e,this._onDidChangeConfiguration=new X,this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;const t=new MUe(e);this._configuration=new YM(t.reload(),bo.createEmptyModel(e),bo.createEmptyModel(e),bo.createEmptyModel(e),bo.createEmptyModel(e),bo.createEmptyModel(e),new hs,bo.createEmptyModel(e),new hs,e),t.dispose()}getValue(e,t){const i=typeof e=="string"?e:void 0,s=nee(e)?e:nee(t)?t:{};return this._configuration.getValue(i,s,void 0)}updateValues(e){const t={data:this._configuration.toData()},i=[];for(const s of e){const[o,r]=s;this.getValue(o)!==r&&(this._configuration.updateValue(o,r),i.push(o))}if(i.length>0){const s=new fHe({keys:i,overrides:[]},t,this._configuration,void 0,this.logService);s.source=8,this._onDidChangeConfiguration.fire(s)}return Promise.resolve()}updateValue(e,t,i,s){return this.updateValues([[e,t]])}inspect(e,t={}){return this._configuration.inspect(e,t,void 0)}};GA=$g([ro(0,er)],GA);let h6=class{constructor(e,t,i){this.configurationService=e,this.modelService=t,this.languageService=i,this._onDidChangeConfiguration=new X,this.configurationService.onDidChangeConfiguration(s=>{this._onDidChangeConfiguration.fire({affectedKeys:s.affectedKeys,affectsConfiguration:(o,r)=>s.affectsConfiguration(r)})})}getValue(e,t,i){const s=ee.isIPosition(t)?t:null,o=s?typeof i=="string"?i:void 0:typeof t=="string"?t:void 0,r=e?this.getLanguage(e,s):void 0;return typeof o>"u"?this.configurationService.getValue({resource:e,overrideIdentifier:r}):this.configurationService.getValue(o,{resource:e,overrideIdentifier:r})}getLanguage(e,t){const i=this.modelService.getModel(e);return i?t?i.getLanguageIdAtPosition(t.lineNumber,t.column):i.getLanguageId():this.languageService.guessLanguageIdByFilepathOrFirstLine(e)}};h6=$g([ro(0,qt),ro(1,Pn),ro(2,An)],h6);let f6=class{constructor(e){this.configurationService=e}getEOL(e,t){const i=this.configurationService.getValue("files.eol",{overrideIdentifier:t,resource:e});return i&&typeof i=="string"&&i!=="auto"?i:Br||Xt?` `:`\r `}};f6=$g([ro(0,qt)],f6);class $Ue{publicLog2(){}}class sk{constructor(){const e=pt.from({scheme:sk.SCHEME,authority:"model",path:"/"});this.workspace={id:Dde,folders:[new NHe({uri:e,name:"",index:0})]}}getWorkspace(){return this.workspace}getWorkspaceFolder(e){return e&&e.scheme===sk.SCHEME?this.workspace.folders[0]:null}}sk.SCHEME="inmemory";function ZA(n,e,t){if(!e||!(n instanceof GA))return;const i=[];Object.keys(e).forEach(s=>{lHe(s)&&i.push([`editor.${s}`,e[s]]),t&&cHe(s)&&i.push([`diffEditor.${s}`,e[s]])}),i.length>0&&n.updateValues(i)}let g6=class{constructor(e){this._modelService=e}hasPreviewHandler(){return!1}async apply(e,t){const i=Array.isArray(e)?e:C$.convert(e),s=new Map;for(const a of i){if(!(a instanceof pm))throw new Error("bad edit - only text edits are supported");const l=this._modelService.getModel(a.resource);if(!l)throw new Error("bad edit - model not found");if(typeof a.versionId=="number"&&l.getVersionId()!==a.versionId)throw new Error("bad state - model changed in the meantime");let c=s.get(l);c||(c=[],s.set(l,c)),c.push(Mn.replaceMove(A.lift(a.textEdit.range),a.textEdit.text))}let o=0,r=0;for(const[a,l]of s)a.pushStackElement(),a.pushEditOperations([],l,()=>[]),a.pushStackElement(),r+=1,o+=l.length;return{ariaSummary:l0(L9.bulkEditServiceSummary,o,r),isApplied:o>0}}};g6=$g([ro(0,Pn)],g6);class UUe{getUriLabel(e,t){return e.scheme==="file"?e.fsPath:e.path}getUriBasenameLabel(e){return dc(e)}}let p6=class extends nHe{constructor(e,t){super(e),this._codeEditorService=t}showContextView(e,t,i){if(!t){const s=this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor();s&&(t=s.getContainerDomNode())}return super.showContextView(e,t,i)}};p6=$g([ro(0,g_),ro(1,vi)],p6);class jUe{constructor(){this._neverEmitter=new X,this.onDidChangeTrust=this._neverEmitter.event}isWorkspaceTrusted(){return!0}}class KUe extends $L{constructor(){super()}}class qUe extends OUe{constructor(){super(new gPe)}}let m6=class extends P9{constructor(e,t,i,s,o,r){super(e,t,i,s,o,r),this.configure({blockMouse:!1})}};m6=$g([ro(0,Po),ro(1,ps),ro(2,Wg),ro(3,Li),ro(4,Dl),ro(5,Ct)],m6);class GUe{async playSignal(e,t){}}ai(er,qUe,0);ai(qt,GA,0);ai(vz,h6,0);ai(Tle,f6,0);ai(b0,sk,0);ai(ZC,UUe,0);ai(Po,$Ue,0);ai(DD,VUe,0);ai(r$,HUe,0);ai(ps,nk,0);ai(Uh,Ip,0);ai(An,KUe,0);ai(Tl,mUe,0);ai(Pn,NA,0);ai(xz,H9,0);ai(Ct,c6,0);ai(kde,WUe,0);ai(m_,bP,0);ai(dd,UVe,0);ai(bc,wB,0);ai(ED,g6,0);ai(Ide,jUe,0);ai(fa,d6,0);ai(Ha,s6,0);ai(wc,E$e,0);ai(Sn,u6,0);ai(Li,nw,0);ai(Cc,i6,0);ai(Wg,p6,0);ai($a,W9,0);ai(zg,KA,0);ai(za,m6,0);ai(Dl,o6,0);ai(v_,GUe,0);var St;(function(n){const e=new kD;for(const[l,c]of FY())e.set(l,c);const t=new qA(e,!0);e.set(ht,t);function i(l){s||r({});const c=e.get(l);if(!c)throw new Error("Missing service "+l);return c instanceof qu?t.invokeFunction(d=>d.get(l)):c}n.get=i;let s=!1;const o=new X;function r(l){if(s)return t;s=!0;for(const[d,u]of FY())e.get(d)||e.set(d,u);for(const d in l)if(l.hasOwnProperty(d)){const u=Jt(d);e.get(u)instanceof qu&&e.set(u,l[d])}const c=FUe();for(const d of c)try{t.createInstance(d)}catch(u){Mt(u)}return o.fire(),t}n.initialize=r;function a(l){if(s)return l();const c=new be,d=c.add(o.event(()=>{d.dispose(),c.add(l())}));return c}n.withServices=a})(St||(St={}));class uu{static capture(e){if(e.getScrollTop()===0||e.hasPendingScrollAnimation())return new uu(e.getScrollTop(),e.getContentHeight(),null,0,null);let t=null,i=0;const s=e.getVisibleRanges();if(s.length>0){t=s[0].getStartPosition();const o=e.getTopForPosition(t.lineNumber,t.column);i=e.getScrollTop()-o}return new uu(e.getScrollTop(),e.getContentHeight(),t,i,e.getPosition())}constructor(e,t,i,s,o){this._initialScrollTop=e,this._initialContentHeight=t,this._visiblePosition=i,this._visiblePositionScrollDelta=s,this._cursorPosition=o}restore(e){if(!(this._initialContentHeight===e.getContentHeight()&&this._initialScrollTop===e.getScrollTop())&&this._visiblePosition){const t=e.getTopForPosition(this._visiblePosition.lineNumber,this._visiblePosition.column);e.setScrollTop(t+this._visiblePositionScrollDelta)}}restoreRelativeVerticalPositionOfCursor(e){if(this._initialContentHeight===e.getContentHeight()&&this._initialScrollTop===e.getScrollTop())return;const t=e.getPosition();if(!this._cursorPosition||!t)return;const i=e.getTopForLineNumber(t.lineNumber)-e.getTopForLineNumber(this._cursorPosition.lineNumber);e.setScrollTop(e.getScrollTop()+i,1)}}function q$(){return e7&&!!e7.VSCODE_DEV}function Wue(n){if(q$()){const e=ZUe();return e.add(n),{dispose(){e.delete(n)}}}else return{dispose(){}}}function ZUe(){fT||(fT=new Set);const n=globalThis;return n.$hotReload_applyNewExports||(n.$hotReload_applyNewExports=e=>{const t={config:{mode:void 0},...e};for(const i of fT){const s=i(t);if(s)return s}}),fT}let fT;q$()&&Wue(({oldExports:n,newSrc:e,config:t})=>{if(t.mode==="patch-prototype")return i=>{var s,o;for(const r in i){const a=i[r];if(console.log(`[hot-reload] Patching prototype methods of '${r}'`,{exportedItem:a}),typeof a=="function"&&a.prototype){const l=n[r];if(l){for(const c of Object.getOwnPropertyNames(a.prototype)){const d=Object.getOwnPropertyDescriptor(a.prototype,c),u=Object.getOwnPropertyDescriptor(l.prototype,c);((s=d==null?void 0:d.value)===null||s===void 0?void 0:s.toString())!==((o=u==null?void 0:u.value)===null||o===void 0?void 0:o.toString())&&console.log(`[hot-reload] Patching prototype method '${r}.${c}'`),Object.defineProperty(l.prototype,c,d)}i[r]=l}}}return!0}});function YUe(n,e,t,i){if(n.length===0)return e;if(e.length===0)return n;const s=[];let o=0,r=0;for(;od?(s.push(l),r++):(s.push(i(a,l)),o++,r++)}for(;o`Apply decorations from ${e.debugName}`},s=>{const o=e.read(s);i.set(o)})),t.add({dispose:()=>{i.clear()}}),t}function MS(n,e){return n.appendChild(e),dt(()=>{n.removeChild(e)})}function XUe(n,e){return n.prepend(e),dt(()=>{n.removeChild(e)})}class Hue extends ne{get width(){return this._width}get height(){return this._height}get automaticLayout(){return this._automaticLayout}constructor(e,t){super(),this._automaticLayout=!1,this.elementSizeObserver=this._register(new Fle(e,t)),this._width=li(this,this.elementSizeObserver.getWidth()),this._height=li(this,this.elementSizeObserver.getHeight()),this._register(this.elementSizeObserver.onDidChange(i=>rn(s=>{this._width.set(this.elementSizeObserver.getWidth(),s),this._height.set(this.elementSizeObserver.getHeight(),s)})))}observe(e){this.elementSizeObserver.observe(e)}setAutomaticLayout(e){this._automaticLayout=e,e?this.elementSizeObserver.startObserving():this.elementSizeObserver.stopObserving()}}function see(n,e,t){let i=e.get(),s=i,o=i;const r=li("animatedValue",i);let a=-1;const l=300;let c;t.add(AD({createEmptyChangeSummary:()=>({animate:!1}),handleChange:(u,h)=>(u.didChange(e)&&(h.animate=h.animate||u.change),!0)},(u,h)=>{c!==void 0&&(n.cancelAnimationFrame(c),c=void 0),s=o,i=e.read(u),a=Date.now()-(h.animate?0:l),d()}));function d(){const u=Date.now()-a;o=Math.floor(QUe(u,s,i-s,l)),u{this._actualTop.set(i,void 0)},this.onComputedHeight=i=>{this._actualHeight.set(i,void 0)}}}class CP{constructor(e,t){this._editor=e,this._domElement=t,this._overlayWidgetId=`managedOverlayWidget-${CP._counter++}`,this._overlayWidget={getId:()=>this._overlayWidgetId,getDomNode:()=>this._domElement,getPosition:()=>null},this._editor.addOverlayWidget(this._overlayWidget)}dispose(){this._editor.removeOverlayWidget(this._overlayWidget)}}CP._counter=0;function jm(n,e){return Ut(t=>{for(let[i,s]of Object.entries(e))s&&typeof s=="object"&&"read"in s&&(s=s.read(t)),typeof s=="number"&&(s=`${s}px`),i=i.replace(/[A-Z]/g,o=>"-"+o.toLowerCase()),n.style[i]=s})}function Wc(n,e){return JUe([n],e),n}function JUe(n,e){q$()&&Ko("reload",i=>Wue(({oldExports:s})=>{if([...Object.values(s)].some(o=>n.includes(o)))return o=>(i(void 0),!0)})).read(e)}function QA(n,e,t,i){const s=new be,o=[];return s.add(uc((r,a)=>{const l=e.read(r),c=new Map,d=new Map;t&&t(!0),n.changeViewZones(u=>{for(const h of o)u.removeZone(h),i==null||i.delete(h);o.length=0;for(const h of l){const f=u.addZone(h);h.setZoneId&&h.setZoneId(f),o.push(f),i==null||i.add(f),c.set(h,f)}}),t&&t(!1),a.add(AD({createEmptyChangeSummary(){return{zoneIds:[]}},handleChange(u,h){const f=d.get(u.changedObservable);return f!==void 0&&h.zoneIds.push(f),!0}},(u,h)=>{for(const f of l)f.onChange&&(d.set(f.onChange,c.get(f)),f.onChange.read(u));t&&t(!0),n.changeViewZones(f=>{for(const g of h.zoneIds)f.layoutZone(g)}),t&&t(!1)}))})),s.add({dispose(){t&&t(!0),n.changeViewZones(r=>{for(const a of o)r.removeZone(a)}),i==null||i.clear(),t&&t(!1)}}),s}class eje extends $n{dispose(){super.dispose(!0)}}function oee(n,e){const t=mL(e,s=>s.original.startLineNumber<=n.lineNumber);if(!t)return A.fromPositions(n);if(t.original.endLineNumberExclusive<=n.lineNumber){const s=n.lineNumber-t.original.endLineNumberExclusive+t.modified.endLineNumberExclusive;return A.fromPositions(new ee(s,n.column))}if(!t.innerChanges)return A.fromPositions(new ee(t.modified.startLineNumber,1));const i=mL(t.innerChanges,s=>s.originalRange.getStartPosition().isBeforeOrEqual(n));if(!i){const s=n.lineNumber-t.original.startLineNumber+t.modified.startLineNumber;return A.fromPositions(new ee(s,n.column))}if(i.originalRange.containsPosition(n))return i.modifiedRange;{const s=tje(i.originalRange.getEndPosition(),n);return A.fromPositions(s.addToPosition(i.modifiedRange.getEndPosition()))}}function tje(n,e){return n.lineNumber===e.lineNumber?new Ar(0,e.column-n.column):new Ar(e.lineNumber-n.lineNumber,e.column-1)}function ije(n,e){let t;return n.filter(i=>{const s=e(i,t);return t=i,s})}var G$=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Z$=function(n,e){return function(t,i){e(t,i,n)}};const nje=Jn("diff-review-insert",Te.add,v("accessibleDiffViewerInsertIcon","Icon for 'Insert' in accessible diff viewer.")),sje=Jn("diff-review-remove",Te.remove,v("accessibleDiffViewerRemoveIcon","Icon for 'Remove' in accessible diff viewer.")),oje=Jn("diff-review-close",Te.close,v("accessibleDiffViewerCloseIcon","Icon for 'Close' in accessible diff viewer."));let Jp=class extends ne{constructor(e,t,i,s,o,r,a,l,c){super(),this._parentNode=e,this._visible=t,this._setVisible=i,this._canClose=s,this._width=o,this._height=r,this._diffs=a,this._models=l,this._instantiationService=c,this._state=J0(this,(d,u)=>{const h=this._visible.read(d);if(this._parentNode.style.visibility=h?"visible":"hidden",!h)return null;const f=u.add(this._instantiationService.createInstance(_6,this._diffs,this._models,this._setVisible,this._canClose)),g=u.add(this._instantiationService.createInstance(v6,this._parentNode,f,this._width,this._height,this._models));return{model:f,view:g}}).recomputeInitiallyAndOnChange(this._store)}next(){rn(e=>{const t=this._visible.get();this._setVisible(!0,e),t&&this._state.get().model.nextGroup(e)})}prev(){rn(e=>{this._setVisible(!0,e),this._state.get().model.previousGroup(e)})}close(){rn(e=>{this._setVisible(!1,e)})}};Jp._ttPolicy=Bg("diffReview",{createHTML:n=>n});Jp=G$([Z$(8,ht)],Jp);let _6=class extends ne{constructor(e,t,i,s,o){super(),this._diffs=e,this._models=t,this._setVisible=i,this.canClose=s,this._accessibilitySignalService=o,this._groups=li(this,[]),this._currentGroupIdx=li(this,0),this._currentElementIdx=li(this,0),this.groups=this._groups,this.currentGroup=this._currentGroupIdx.map((r,a)=>this._groups.read(a)[r]),this.currentGroupIndex=this._currentGroupIdx,this.currentElement=this._currentElementIdx.map((r,a)=>{var l;return(l=this.currentGroup.read(a))===null||l===void 0?void 0:l.lines[r]}),this._register(Ut(r=>{const a=this._diffs.read(r);if(!a){this._groups.set([],void 0);return}const l=rje(a,this._models.getOriginalModel().getLineCount(),this._models.getModifiedModel().getLineCount());rn(c=>{const d=this._models.getModifiedPosition();if(d){const u=l.findIndex(h=>(d==null?void 0:d.lineNumber){const a=this.currentElement.read(r);(a==null?void 0:a.type)===kr.Deleted?this._accessibilitySignalService.playSignal(At.diffLineDeleted,{source:"accessibleDiffViewer.currentElementChanged"}):(a==null?void 0:a.type)===kr.Added&&this._accessibilitySignalService.playSignal(At.diffLineInserted,{source:"accessibleDiffViewer.currentElementChanged"})})),this._register(Ut(r=>{var a;const l=this.currentElement.read(r);if(l&&l.type!==kr.Header){const c=(a=l.modifiedLineNumber)!==null&&a!==void 0?a:l.diff.modified.startLineNumber;this._models.modifiedSetSelection(A.fromPositions(new ee(c,1)))}}))}_goToGroupDelta(e,t){const i=this.groups.get();!i||i.length<=1||jL(t,s=>{this._currentGroupIdx.set(zt.ofLength(i.length).clipCyclic(this._currentGroupIdx.get()+e),s),this._currentElementIdx.set(0,s)})}nextGroup(e){this._goToGroupDelta(1,e)}previousGroup(e){this._goToGroupDelta(-1,e)}_goToLineDelta(e){const t=this.currentGroup.get();!t||t.lines.length<=1||rn(i=>{this._currentElementIdx.set(zt.ofLength(t.lines.length).clip(this._currentElementIdx.get()+e),i)})}goToNextLine(){this._goToLineDelta(1)}goToPreviousLine(){this._goToLineDelta(-1)}goToLine(e){const t=this.currentGroup.get();if(!t)return;const i=t.lines.indexOf(e);i!==-1&&rn(s=>{this._currentElementIdx.set(i,s)})}revealCurrentElementInEditor(){if(!this.canClose.get())return;this._setVisible(!1,void 0);const e=this.currentElement.get();e&&(e.type===kr.Deleted?this._models.originalReveal(A.fromPositions(new ee(e.originalLineNumber,1))):this._models.modifiedReveal(e.type!==kr.Header?A.fromPositions(new ee(e.modifiedLineNumber,1)):void 0))}close(){this.canClose.get()&&(this._setVisible(!1,void 0),this._models.modifiedFocus())}};_6=G$([Z$(4,v_)],_6);const Gy=3;function rje(n,e,t){const i=[];for(const s of TV(n,(o,r)=>r.modified.startLineNumber-o.modified.endLineNumberExclusive<2*Gy)){const o=[];o.push(new lje);const r=new Vt(Math.max(1,s[0].original.startLineNumber-Gy),Math.min(s[s.length-1].original.endLineNumberExclusive+Gy,e+1)),a=new Vt(Math.max(1,s[0].modified.startLineNumber-Gy),Math.min(s[s.length-1].modified.endLineNumberExclusive+Gy,t+1));Fre(s,(d,u)=>{const h=new Vt(d?d.original.endLineNumberExclusive:r.startLineNumber,u?u.original.startLineNumber:r.endLineNumberExclusive),f=new Vt(d?d.modified.endLineNumberExclusive:a.startLineNumber,u?u.modified.startLineNumber:a.endLineNumberExclusive);h.forEach(g=>{o.push(new uje(g,f.startLineNumber+(g-h.startLineNumber)))}),u&&(u.original.forEach(g=>{o.push(new cje(u,g))}),u.modified.forEach(g=>{o.push(new dje(u,g))}))});const l=s[0].modified.join(s[s.length-1].modified),c=s[0].original.join(s[s.length-1].original);i.push(new aje(new Ir(l,c),o))}return i}var kr;(function(n){n[n.Header=0]="Header",n[n.Unchanged=1]="Unchanged",n[n.Deleted=2]="Deleted",n[n.Added=3]="Added"})(kr||(kr={}));class aje{constructor(e,t){this.range=e,this.lines=t}}class lje{constructor(){this.type=kr.Header}}class cje{constructor(e,t){this.diff=e,this.originalLineNumber=t,this.type=kr.Deleted,this.modifiedLineNumber=void 0}}class dje{constructor(e,t){this.diff=e,this.modifiedLineNumber=t,this.type=kr.Added,this.originalLineNumber=void 0}}class uje{constructor(e,t){this.originalLineNumber=e,this.modifiedLineNumber=t,this.type=kr.Unchanged}}let v6=class extends ne{constructor(e,t,i,s,o,r){super(),this._element=e,this._model=t,this._width=i,this._height=s,this._models=o,this._languageService=r,this.domNode=this._element,this.domNode.className="monaco-component diff-review monaco-editor-background";const a=document.createElement("div");a.className="diff-review-actions",this._actionBar=this._register(new hc(a)),this._register(Ut(l=>{this._actionBar.clear(),this._model.canClose.read(l)&&this._actionBar.push(new Ta("diffreview.close",v("label.close","Close"),"close-diff-review "+_t.asClassName(oje),!0,async()=>t.close()),{label:!1,icon:!0})})),this._content=document.createElement("div"),this._content.className="diff-review-content",this._content.setAttribute("role","code"),this._scrollbar=this._register(new wD(this._content,{})),yo(this.domNode,this._scrollbar.getDomNode(),a),this._register(Ut(l=>{this._height.read(l),this._width.read(l),this._scrollbar.scanDomNode()})),this._register(dt(()=>{yo(this.domNode)})),this._register(jm(this.domNode,{width:this._width,height:this._height})),this._register(jm(this._content,{width:this._width,height:this._height})),this._register(uc((l,c)=>{this._model.currentGroup.read(l),this._render(c)})),this._register(rs(this.domNode,"keydown",l=>{(l.equals(18)||l.equals(2066)||l.equals(530))&&(l.preventDefault(),this._model.goToNextLine()),(l.equals(16)||l.equals(2064)||l.equals(528))&&(l.preventDefault(),this._model.goToPreviousLine()),(l.equals(9)||l.equals(2057)||l.equals(521)||l.equals(1033))&&(l.preventDefault(),this._model.close()),(l.equals(10)||l.equals(3))&&(l.preventDefault(),this._model.revealCurrentElementInEditor())}))}_render(e){const t=this._models.getOriginalOptions(),i=this._models.getModifiedOptions(),s=document.createElement("div");s.className="diff-review-table",s.setAttribute("role","list"),s.setAttribute("aria-label",v("ariaLabel","Accessible Diff Viewer. Use arrow up and down to navigate.")),So(s,i.get(50)),yo(this._content,s);const o=this._models.getOriginalModel(),r=this._models.getModifiedModel();if(!o||!r)return;const a=o.getOptions(),l=r.getOptions(),c=i.get(67),d=this._model.currentGroup.get();for(const u of(d==null?void 0:d.lines)||[]){if(!d)break;let h;if(u.type===kr.Header){const g=document.createElement("div");g.className="diff-review-row",g.setAttribute("role","listitem");const p=d.range,_=this._model.currentGroupIndex.get(),b=this._model.groups.get().length,w=k=>k===0?v("no_lines_changed","no lines changed"):k===1?v("one_line_changed","1 line changed"):v("more_lines_changed","{0} lines changed",k),y=w(p.original.length),S=w(p.modified.length);g.setAttribute("aria-label",v({},"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}",_+1,b,p.original.startLineNumber,y,p.modified.startLineNumber,S));const x=document.createElement("div");x.className="diff-review-cell diff-review-summary",x.appendChild(document.createTextNode(`${_+1}/${b}: @@ -${p.original.startLineNumber},${p.original.length} +${p.modified.startLineNumber},${p.modified.length} @@`)),g.appendChild(x),h=g}else h=this._createRow(u,c,this._width.get(),t,o,a,i,r,l);s.appendChild(h);const f=Rt(g=>this._model.currentElement.read(g)===u);e.add(Ut(g=>{const p=f.read(g);h.tabIndex=p?0:-1,p&&h.focus()})),e.add(ce(h,"focus",()=>{this._model.goToLine(u)}))}this._scrollbar.scanDomNode()}_createRow(e,t,i,s,o,r,a,l,c){const d=s.get(145),u=d.glyphMarginWidth+d.lineNumbersWidth,h=a.get(145),f=10+h.glyphMarginWidth+h.lineNumbersWidth;let g="diff-review-row",p="";const _="diff-review-spacer";let b=null;switch(e.type){case kr.Added:g="diff-review-row line-insert",p=" char-insert",b=nje;break;case kr.Deleted:g="diff-review-row line-delete",p=" char-delete",b=sje;break}const w=document.createElement("div");w.style.minWidth=i+"px",w.className=g,w.setAttribute("role","listitem"),w.ariaLevel="";const y=document.createElement("div");y.className="diff-review-cell",y.style.height=`${t}px`,w.appendChild(y);const S=document.createElement("span");S.style.width=u+"px",S.style.minWidth=u+"px",S.className="diff-review-line-number"+p,e.originalLineNumber!==void 0?S.appendChild(document.createTextNode(String(e.originalLineNumber))):S.innerText=" ",y.appendChild(S);const x=document.createElement("span");x.style.width=f+"px",x.style.minWidth=f+"px",x.style.paddingRight="10px",x.className="diff-review-line-number"+p,e.modifiedLineNumber!==void 0?x.appendChild(document.createTextNode(String(e.modifiedLineNumber))):x.innerText=" ",y.appendChild(x);const k=document.createElement("span");if(k.className=_,b){const N=document.createElement("span");N.className=_t.asClassName(b),N.innerText="  ",k.appendChild(N)}else k.innerText="  ";y.appendChild(k);let D;if(e.modifiedLineNumber!==void 0){let N=this._getLineHtml(l,a,c.tabSize,e.modifiedLineNumber,this._languageService.languageIdCodec);Jp._ttPolicy&&(N=Jp._ttPolicy.createHTML(N)),y.insertAdjacentHTML("beforeend",N),D=l.getLineContent(e.modifiedLineNumber)}else{let N=this._getLineHtml(o,s,r.tabSize,e.originalLineNumber,this._languageService.languageIdCodec);Jp._ttPolicy&&(N=Jp._ttPolicy.createHTML(N)),y.insertAdjacentHTML("beforeend",N),D=o.getLineContent(e.originalLineNumber)}D.length===0&&(D=v("blankLine","blank"));let I="";switch(e.type){case kr.Unchanged:e.originalLineNumber===e.modifiedLineNumber?I=v({},"{0} unchanged line {1}",D,e.originalLineNumber):I=v("equalLine","{0} original line {1} modified line {2}",D,e.originalLineNumber,e.modifiedLineNumber);break;case kr.Added:I=v("insertLine","+ {0} modified line {1}",D,e.modifiedLineNumber);break;case kr.Deleted:I=v("deleteLine","- {0} original line {1}",D,e.originalLineNumber);break}return w.setAttribute("aria-label",I),w}_getLineHtml(e,t,i,s,o){const r=e.getLineContent(s),a=t.get(50),l=Is.createEmpty(r,o),c=xl.isBasicASCII(r,e.mightContainNonBasicASCII()),d=xl.containsRTL(r,c,e.mightContainRTL());return EM(new f_(a.isMonospace&&!t.get(33),a.canUseHalfwidthRightwardsArrow,r,!1,c,d,0,l,[],i,0,a.spaceWidth,a.middotWidth,a.wsmiddotWidth,t.get(117),t.get(99),t.get(94),t.get(51)!==cl.OFF,null)).html}};v6=G$([Z$(5,An)],v6);class hje{constructor(e){this.editors=e}getOriginalModel(){return this.editors.original.getModel()}getOriginalOptions(){return this.editors.original.getOptions()}originalReveal(e){this.editors.original.revealRange(e),this.editors.original.setSelection(e),this.editors.original.focus()}getModifiedModel(){return this.editors.modified.getModel()}getModifiedOptions(){return this.editors.modified.getOptions()}modifiedReveal(e){e&&(this.editors.modified.revealRange(e),this.editors.modified.setSelection(e)),this.editors.modified.focus()}modifiedSetSelection(e){this.editors.modified.setSelection(e)}modifiedFocus(){this.editors.modified.focus()}getModifiedPosition(){var e;return(e=this.editors.modified.getPosition())!==null&&e!==void 0?e:void 0}}class vm extends ne{constructor(e,t,i,s,o){super(),this._rootElement=e,this._diffModel=t,this._originalEditorLayoutInfo=i,this._modifiedEditorLayoutInfo=s,this._editors=o,this._originalScrollTop=qi(this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=qi(this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._viewZonesChanged=Ko("onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this.width=li(this,0),this._modifiedViewZonesChangedSignal=Ko("modified.onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this._originalViewZonesChangedSignal=Ko("original.onDidChangeViewZones",this._editors.original.onDidChangeViewZones),this._state=J0(this,(d,u)=>{var h;this._element.replaceChildren();const f=this._diffModel.read(d),g=(h=f==null?void 0:f.diff.read(d))===null||h===void 0?void 0:h.movedTexts;if(!g||g.length===0){this.width.set(0,void 0);return}this._viewZonesChanged.read(d);const p=this._originalEditorLayoutInfo.read(d),_=this._modifiedEditorLayoutInfo.read(d);if(!p||!_){this.width.set(0,void 0);return}this._modifiedViewZonesChangedSignal.read(d),this._originalViewZonesChangedSignal.read(d);const b=g.map(I=>{function N(me,De){const lt=De.getTopForLineNumber(me.startLineNumber,!0),We=De.getTopForLineNumber(me.endLineNumberExclusive,!0);return(lt+We)/2}const P=N(I.lineRangeMapping.original,this._editors.original),O=this._originalScrollTop.read(d),M=N(I.lineRangeMapping.modified,this._editors.modified),z=this._modifiedScrollTop.read(d),K=P-O,ae=M-z,se=Math.min(P,M),he=Math.max(P,M);return{range:new zt(se,he),from:K,to:ae,fromWithoutScroll:P,toWithoutScroll:M,move:I}});b.sort(a2e(oa(I=>I.fromWithoutScroll>I.toWithoutScroll,l2e),oa(I=>I.fromWithoutScroll>I.toWithoutScroll?I.fromWithoutScroll:-I.toWithoutScroll,Qc)));const w=Y$.compute(b.map(I=>I.range)),y=10,S=p.verticalScrollbarWidth,x=(w.getTrackCount()-1)*10+y*2,k=S+x+(_.contentLeft-vm.movedCodeBlockPadding);let D=0;for(const I of b){const N=w.getTrack(D),P=S+y+N*10,O=15,M=15,z=k,K=_.glyphMarginWidth+_.lineNumbersWidth,ae=18,se=document.createElementNS("http://www.w3.org/2000/svg","rect");se.classList.add("arrow-rectangle"),se.setAttribute("x",`${z-K}`),se.setAttribute("y",`${I.to-ae/2}`),se.setAttribute("width",`${K}`),se.setAttribute("height",`${ae}`),this._element.appendChild(se);const he=document.createElementNS("http://www.w3.org/2000/svg","g"),me=document.createElementNS("http://www.w3.org/2000/svg","path");me.setAttribute("d",`M 0 ${I.from} L ${P} ${I.from} L ${P} ${I.to} L ${z-M} ${I.to}`),me.setAttribute("fill","none"),he.appendChild(me);const De=document.createElementNS("http://www.w3.org/2000/svg","polygon");De.classList.add("arrow"),u.add(Ut(lt=>{me.classList.toggle("currentMove",I.move===f.activeMovedText.read(lt)),De.classList.toggle("currentMove",I.move===f.activeMovedText.read(lt))})),De.setAttribute("points",`${z-M},${I.to-O/2} ${z},${I.to} ${z-M},${I.to+O/2}`),he.appendChild(De),this._element.appendChild(he),D++}this.width.set(x,void 0)}),this._element=document.createElementNS("http://www.w3.org/2000/svg","svg"),this._element.setAttribute("class","moved-blocks-lines"),this._rootElement.appendChild(this._element),this._register(dt(()=>this._element.remove())),this._register(Ut(d=>{const u=this._originalEditorLayoutInfo.read(d),h=this._modifiedEditorLayoutInfo.read(d);!u||!h||(this._element.style.left=`${u.width-u.verticalScrollbarWidth}px`,this._element.style.height=`${u.height}px`,this._element.style.width=`${u.verticalScrollbarWidth+u.contentLeft-vm.movedCodeBlockPadding+this.width.read(d)}px`)})),this._register(RD(this._state));const r=Rt(d=>{const u=this._diffModel.read(d),h=u==null?void 0:u.diff.read(d);return h?h.movedTexts.map(f=>({move:f,original:new XA(Vd(f.lineRangeMapping.original.startLineNumber-1),18),modified:new XA(Vd(f.lineRangeMapping.modified.startLineNumber-1),18)})):[]});this._register(QA(this._editors.original,r.map(d=>d.map(u=>u.original)))),this._register(QA(this._editors.modified,r.map(d=>d.map(u=>u.modified)))),this._register(uc((d,u)=>{const h=r.read(d);for(const f of h)u.add(new ree(this._editors.original,f.original,f.move,"original",this._diffModel.get())),u.add(new ree(this._editors.modified,f.modified,f.move,"modified",this._diffModel.get()))}));const a=Ko("original.onDidFocusEditorWidget",d=>this._editors.original.onDidFocusEditorWidget(()=>setTimeout(()=>d(void 0),0))),l=Ko("modified.onDidFocusEditorWidget",d=>this._editors.modified.onDidFocusEditorWidget(()=>setTimeout(()=>d(void 0),0)));let c="modified";this._register(AD({createEmptyChangeSummary:()=>{},handleChange:(d,u)=>(d.didChange(a)&&(c="original"),d.didChange(l)&&(c="modified"),!0)},d=>{a.read(d),l.read(d);const u=this._diffModel.read(d);if(!u)return;const h=u.diff.read(d);let f;if(h&&c==="original"){const g=this._editors.originalCursor.read(d);g&&(f=h.movedTexts.find(p=>p.lineRangeMapping.original.contains(g.lineNumber)))}if(h&&c==="modified"){const g=this._editors.modifiedCursor.read(d);g&&(f=h.movedTexts.find(p=>p.lineRangeMapping.modified.contains(g.lineNumber)))}f!==u.movedTextToCompare.get()&&u.movedTextToCompare.set(void 0,void 0),u.setActiveMovedText(f)}))}}vm.movedCodeBlockPadding=4;class Y${static compute(e){const t=[],i=[];for(const s of e){let o=t.findIndex(r=>!r.intersectsStrict(s));o===-1&&(t.length>=6?o=HOe(t,oa(a=>a.intersectWithRangeLength(s),Qc)):(o=t.length,t.push(new gz))),t[o].addRange(s),i.push(o)}return new Y$(t.length,i)}constructor(e,t){this._trackCount=e,this.trackPerLineIdx=t}getTrack(e){return this.trackPerLineIdx[e]}getTrackCount(){return this._trackCount}}class ree extends Vue{constructor(e,t,i,s,o){const r=wi("div.diff-hidden-lines-widget");super(e,t,r.root),this._editor=e,this._move=i,this._kind=s,this._diffModel=o,this._nodes=wi("div.diff-moved-code-block",{style:{marginRight:"4px"}},[wi("div.text-content@textContent"),wi("div.action-bar@actionBar")]),r.root.appendChild(this._nodes.root);const a=qi(this._editor.onDidLayoutChange,()=>this._editor.getLayoutInfo());this._register(jm(this._nodes.root,{paddingRight:a.map(h=>h.verticalScrollbarWidth)}));let l;i.changes.length>0?l=this._kind==="original"?v("codeMovedToWithChanges","Code moved with changes to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):v("codeMovedFromWithChanges","Code moved with changes from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1):l=this._kind==="original"?v("codeMovedTo","Code moved to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):v("codeMovedFrom","Code moved from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1);const c=this._register(new hc(this._nodes.actionBar,{highlightToggledItems:!0})),d=new Ta("",l,"",!1);c.push(d,{icon:!1,label:!0});const u=new Ta("","Compare",_t.asClassName(Te.compareChanges),!0,()=>{this._editor.focus(),this._diffModel.movedTextToCompare.set(this._diffModel.movedTextToCompare.get()===i?void 0:this._move,void 0)});this._register(Ut(h=>{const f=this._diffModel.movedTextToCompare.read(h)===i;u.checked=f})),c.push(u,{icon:!1,label:!0})}}V("diffEditor.move.border",{dark:"#8b8b8b9c",light:"#8b8b8b9c",hcDark:"#8b8b8b9c",hcLight:"#8b8b8b9c"},v("diffEditor.move.border","The border color for text that got moved in the diff editor."));V("diffEditor.moveActive.border",{dark:"#FFA500",light:"#FFA500",hcDark:"#FFA500",hcLight:"#FFA500"},v("diffEditor.moveActive.border","The active border color for text that got moved in the diff editor."));V("diffEditor.unchangedRegionShadow",{dark:"#000000",light:"#737373BF",hcDark:"#000000",hcLight:"#737373BF"},v("diffEditor.unchangedRegionShadow","The color of the shadow around unchanged region widgets."));const fje=Jn("diff-insert",Te.add,v("diffInsertIcon","Line decoration for inserts in the diff editor.")),zue=Jn("diff-remove",Te.remove,v("diffRemoveIcon","Line decoration for removals in the diff editor.")),aee=Wt.register({className:"line-insert",description:"line-insert",isWholeLine:!0,linesDecorationsClassName:"insert-sign "+_t.asClassName(fje),marginClassName:"gutter-insert"}),lee=Wt.register({className:"line-delete",description:"line-delete",isWholeLine:!0,linesDecorationsClassName:"delete-sign "+_t.asClassName(zue),marginClassName:"gutter-delete"}),cee=Wt.register({className:"line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),dee=Wt.register({className:"line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),uee=Wt.register({className:"char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),gje=Wt.register({className:"char-insert",description:"char-insert",isWholeLine:!0}),pje=Wt.register({className:"char-insert diff-range-empty",description:"char-insert diff-range-empty"}),b6=Wt.register({className:"char-delete",description:"char-delete",shouldFillLineOnLineBreak:!0}),mje=Wt.register({className:"char-delete",description:"char-delete",isWholeLine:!0}),_je=Wt.register({className:"char-delete diff-range-empty",description:"char-delete diff-range-empty"});class vje extends ne{constructor(e,t,i,s){super(),this._editors=e,this._diffModel=t,this._options=i,this._decorations=Rt(this,o=>{var r;const a=(r=this._diffModel.read(o))===null||r===void 0?void 0:r.diff.read(o);if(!a)return null;const l=this._diffModel.read(o).movedTextToCompare.read(o),c=this._options.renderIndicators.read(o),d=this._options.showEmptyDecorations.read(o),u=[],h=[];if(!l)for(const g of a.mappings)if(g.lineRangeMapping.original.isEmpty||u.push({range:g.lineRangeMapping.original.toInclusiveRange(),options:c?lee:dee}),g.lineRangeMapping.modified.isEmpty||h.push({range:g.lineRangeMapping.modified.toInclusiveRange(),options:c?aee:cee}),g.lineRangeMapping.modified.isEmpty||g.lineRangeMapping.original.isEmpty)g.lineRangeMapping.original.isEmpty||u.push({range:g.lineRangeMapping.original.toInclusiveRange(),options:mje}),g.lineRangeMapping.modified.isEmpty||h.push({range:g.lineRangeMapping.modified.toInclusiveRange(),options:gje});else for(const p of g.lineRangeMapping.innerChanges||[])g.lineRangeMapping.original.contains(p.originalRange.startLineNumber)&&u.push({range:p.originalRange,options:p.originalRange.isEmpty()&&d?_je:b6}),g.lineRangeMapping.modified.contains(p.modifiedRange.startLineNumber)&&h.push({range:p.modifiedRange,options:p.modifiedRange.isEmpty()&&d?pje:uee});if(l)for(const g of l.changes){const p=g.original.toInclusiveRange();p&&u.push({range:p,options:c?lee:dee});const _=g.modified.toInclusiveRange();_&&h.push({range:_,options:c?aee:cee});for(const b of g.innerChanges||[])u.push({range:b.originalRange,options:b6}),h.push({range:b.modifiedRange,options:uee})}const f=this._diffModel.read(o).activeMovedText.read(o);for(const g of a.movedTexts)u.push({range:g.lineRangeMapping.original.toInclusiveRange(),options:{description:"moved",blockClassName:"movedOriginal"+(g===f?" currentMove":""),blockPadding:[vm.movedCodeBlockPadding,0,vm.movedCodeBlockPadding,vm.movedCodeBlockPadding]}}),h.push({range:g.lineRangeMapping.modified.toInclusiveRange(),options:{description:"moved",blockClassName:"movedModified"+(g===f?" currentMove":""),blockPadding:[4,0,4,4]}});return{originalDecorations:u,modifiedDecorations:h}}),this._register(YA(this._editors.original,this._decorations.map(o=>(o==null?void 0:o.originalDecorations)||[]))),this._register(YA(this._editors.modified,this._decorations.map(o=>(o==null?void 0:o.modifiedDecorations)||[])))}}class bje{resetSash(){this._sashRatio.set(void 0,void 0)}constructor(e,t){this._options=e,this.dimensions=t,this.sashLeft=Pde(this,i=>{var s;const o=(s=this._sashRatio.read(i))!==null&&s!==void 0?s:this._options.splitViewDefaultRatio.read(i);return this._computeSashLeft(o,i)},(i,s)=>{const o=this.dimensions.width.get();this._sashRatio.set(i/o,s)}),this._sashRatio=li(this,void 0)}_computeSashLeft(e,t){const i=this.dimensions.width.read(t),s=Math.floor(this._options.splitViewDefaultRatio.read(t)*i),o=this._options.enableSplitViewResizing.read(t)?Math.floor(e*i):s,r=100;return i<=r*2?s:oi-r?i-r:o}}class $ue extends ne{constructor(e,t,i,s,o,r){super(),this._domNode=e,this._dimensions=t,this._enabled=i,this._boundarySashes=s,this.sashLeft=o,this._resetSash=r,this._sash=this._register(new Vo(this._domNode,{getVerticalSashTop:a=>0,getVerticalSashLeft:a=>this.sashLeft.get(),getVerticalSashHeight:a=>this._dimensions.height.get()},{orientation:0})),this._startSashPosition=void 0,this._register(this._sash.onDidStart(()=>{this._startSashPosition=this.sashLeft.get()})),this._register(this._sash.onDidChange(a=>{this.sashLeft.set(this._startSashPosition+(a.currentX-a.startX),void 0)})),this._register(this._sash.onDidEnd(()=>this._sash.layout())),this._register(this._sash.onDidReset(()=>this._resetSash())),this._register(Ut(a=>{const l=this._boundarySashes.read(a);l&&(this._sash.orthogonalEndSash=l.bottom)})),this._register(Ut(a=>{const l=this._enabled.read(a);this._sash.state=l?3:0,this.sashLeft.read(a),this._dimensions.height.read(a),this._sash.layout()}))}}var Uue=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},C6=function(n,e){return function(t,i){e(t,i,n)}},rv;const jue=Jt("diffProviderFactoryService");let w6=class{constructor(e){this.instantiationService=e}createDiffProvider(e){return this.instantiationService.createInstance(JA,e)}};w6=Uue([C6(0,ht)],w6);ai(jue,w6,1);let JA=rv=class{constructor(e,t,i){this.editorWorkerService=t,this.telemetryService=i,this.onDidChangeEventEmitter=new X,this.onDidChange=this.onDidChangeEventEmitter.event,this.diffAlgorithm="advanced",this.diffAlgorithmOnDidChangeSubscription=void 0,this.setOptions(e)}dispose(){var e;(e=this.diffAlgorithmOnDidChangeSubscription)===null||e===void 0||e.dispose()}async computeDiff(e,t,i,s){var o,r;if(typeof this.diffAlgorithm!="string")return this.diffAlgorithm.computeDiff(e,t,i,s);if(e.isDisposed()||t.isDisposed())return{changes:[],identical:!0,quitEarly:!1,moves:[]};if(e.getLineCount()===1&&e.getLineMaxColumn(1)===1)return t.getLineCount()===1&&t.getLineMaxColumn(1)===1?{changes:[],identical:!0,quitEarly:!1,moves:[]}:{changes:[new Cl(new Vt(1,2),new Vt(1,t.getLineCount()+1),[new qd(e.getFullModelRange(),t.getFullModelRange())])],identical:!1,quitEarly:!1,moves:[]};const a=JSON.stringify([e.uri.toString(),t.uri.toString()]),l=JSON.stringify([e.id,t.id,e.getAlternativeVersionId(),t.getAlternativeVersionId(),JSON.stringify(i)]),c=rv.diffCache.get(a);if(c&&c.context===l)return c.result;const d=xo.create(),u=await this.editorWorkerService.computeDiff(e.uri,t.uri,i,this.diffAlgorithm),h=d.elapsed();if(this.telemetryService.publicLog2("diffEditor.computeDiff",{timeMs:h,timedOut:(o=u==null?void 0:u.quitEarly)!==null&&o!==void 0?o:!0,detectedMoves:i.computeMoves?(r=u==null?void 0:u.moves.length)!==null&&r!==void 0?r:0:-1}),s.isCancellationRequested)return{changes:[],identical:!1,quitEarly:!0,moves:[]};if(!u)throw new Error("no diff result available");return rv.diffCache.size>10&&rv.diffCache.delete(rv.diffCache.keys().next().value),rv.diffCache.set(a,{result:u,context:l}),u}setOptions(e){var t;let i=!1;e.diffAlgorithm&&this.diffAlgorithm!==e.diffAlgorithm&&((t=this.diffAlgorithmOnDidChangeSubscription)===null||t===void 0||t.dispose(),this.diffAlgorithmOnDidChangeSubscription=void 0,this.diffAlgorithm=e.diffAlgorithm,typeof e.diffAlgorithm!="string"&&(this.diffAlgorithmOnDidChangeSubscription=e.diffAlgorithm.onDidChange(()=>this.onDidChangeEventEmitter.fire())),i=!0),i&&this.onDidChangeEventEmitter.fire()}};JA.diffCache=new Map;JA=rv=Uue([C6(1,bc),C6(2,Po)],JA);var Cje=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},wje=function(n,e){return function(t,i){e(t,i,n)}};let y6=class extends ne{setActiveMovedText(e){this._activeMovedText.set(e,void 0)}constructor(e,t,i){super(),this.model=e,this._options=t,this._diffProviderFactoryService=i,this._isDiffUpToDate=li(this,!1),this.isDiffUpToDate=this._isDiffUpToDate,this._diff=li(this,void 0),this.diff=this._diff,this._unchangedRegions=li(this,void 0),this.unchangedRegions=Rt(this,a=>{var l,c;return this._options.hideUnchangedRegions.read(a)?(c=(l=this._unchangedRegions.read(a))===null||l===void 0?void 0:l.regions)!==null&&c!==void 0?c:[]:(rn(d=>{var u;for(const h of((u=this._unchangedRegions.get())===null||u===void 0?void 0:u.regions)||[])h.collapseAll(d)}),[])}),this.movedTextToCompare=li(this,void 0),this._activeMovedText=li(this,void 0),this._hoveredMovedText=li(this,void 0),this.activeMovedText=Rt(this,a=>{var l,c;return(c=(l=this.movedTextToCompare.read(a))!==null&&l!==void 0?l:this._hoveredMovedText.read(a))!==null&&c!==void 0?c:this._activeMovedText.read(a)}),this._cancellationTokenSource=new $n,this._diffProvider=Rt(this,a=>{const l=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:this._options.diffAlgorithm.read(a)}),c=Ko("onDidChange",l.onDidChange);return{diffProvider:l,onChangeSignal:c}}),this._register(dt(()=>this._cancellationTokenSource.cancel()));const s=nP("contentChangedSignal"),o=this._register(new Xi(()=>s.trigger(void 0),200));this._register(Ut(a=>{const l=this._unchangedRegions.read(a);if(!l||l.regions.some(g=>g.isDragged.read(a)))return;const c=l.originalDecorationIds.map(g=>e.original.getDecorationRange(g)).map(g=>g?Vt.fromRangeInclusive(g):void 0),d=l.modifiedDecorationIds.map(g=>e.modified.getDecorationRange(g)).map(g=>g?Vt.fromRangeInclusive(g):void 0),u=l.regions.map((g,p)=>!c[p]||!d[p]?void 0:new em(c[p].startLineNumber,d[p].startLineNumber,c[p].length,g.visibleLineCountTop.read(a),g.visibleLineCountBottom.read(a))).filter(gh),h=[];let f=!1;for(const g of TV(u,(p,_)=>p.getHiddenModifiedRange(a).endLineNumberExclusive===_.getHiddenModifiedRange(a).startLineNumber))if(g.length>1){f=!0;const p=g.reduce((b,w)=>b+w.lineCount,0),_=new em(g[0].originalLineNumber,g[0].modifiedLineNumber,p,g[0].visibleLineCountTop.get(),g[g.length-1].visibleLineCountBottom.get());h.push(_)}else h.push(g[0]);if(f){const g=e.original.deltaDecorations(l.originalDecorationIds,h.map(_=>({range:_.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),p=e.modified.deltaDecorations(l.modifiedDecorationIds,h.map(_=>({range:_.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));rn(_=>{this._unchangedRegions.set({regions:h,originalDecorationIds:g,modifiedDecorationIds:p},_)})}}));const r=(a,l,c)=>{const d=em.fromDiffs(a.changes,e.original.getLineCount(),e.modified.getLineCount(),this._options.hideUnchangedRegionsMinimumLineCount.read(c),this._options.hideUnchangedRegionsContextLineCount.read(c));let u;const h=this._unchangedRegions.get();if(h){const _=h.originalDecorationIds.map(S=>e.original.getDecorationRange(S)).map(S=>S?Vt.fromRangeInclusive(S):void 0),b=h.modifiedDecorationIds.map(S=>e.modified.getDecorationRange(S)).map(S=>S?Vt.fromRangeInclusive(S):void 0);let y=ije(h.regions.map((S,x)=>{if(!_[x]||!b[x])return;const k=_[x].length;return new em(_[x].startLineNumber,b[x].startLineNumber,k,Math.min(S.visibleLineCountTop.get(),k),Math.min(S.visibleLineCountBottom.get(),k-S.visibleLineCountTop.get()))}).filter(gh),(S,x)=>!x||S.modifiedLineNumber>=x.modifiedLineNumber+x.lineCount&&S.originalLineNumber>=x.originalLineNumber+x.lineCount).map(S=>new Ir(S.getHiddenOriginalRange(c),S.getHiddenModifiedRange(c)));y=Ir.clip(y,Vt.ofLength(1,e.original.getLineCount()),Vt.ofLength(1,e.modified.getLineCount())),u=Ir.inverse(y,e.original.getLineCount(),e.modified.getLineCount())}const f=[];if(u)for(const _ of d){const b=u.filter(w=>w.original.intersectsStrict(_.originalUnchangedRange)&&w.modified.intersectsStrict(_.modifiedUnchangedRange));f.push(..._.setVisibleRanges(b,l))}else f.push(...d);const g=e.original.deltaDecorations((h==null?void 0:h.originalDecorationIds)||[],f.map(_=>({range:_.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),p=e.modified.deltaDecorations((h==null?void 0:h.modifiedDecorationIds)||[],f.map(_=>({range:_.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));this._unchangedRegions.set({regions:f,originalDecorationIds:g,modifiedDecorationIds:p},l)};this._register(e.modified.onDidChangeContent(a=>{if(this._diff.get()){const c=lg.fromModelContentChanges(a.changes);this._lastDiff,e.original,e.modified}this._isDiffUpToDate.set(!1,void 0),o.schedule()})),this._register(e.original.onDidChangeContent(a=>{if(this._diff.get()){const c=lg.fromModelContentChanges(a.changes);this._lastDiff,e.original,e.modified}this._isDiffUpToDate.set(!1,void 0),o.schedule()})),this._register(uc(async(a,l)=>{var c,d;this._options.hideUnchangedRegionsMinimumLineCount.read(a),this._options.hideUnchangedRegionsContextLineCount.read(a),o.cancel(),s.read(a);const u=this._diffProvider.read(a);u.onChangeSignal.read(a),Wc(Dle,a),Wc(CB,a),this._isDiffUpToDate.set(!1,void 0);let h=[];l.add(e.original.onDidChangeContent(p=>{const _=lg.fromModelContentChanges(p.changes);h=rA(h,_)}));let f=[];l.add(e.modified.onDidChangeContent(p=>{const _=lg.fromModelContentChanges(p.changes);f=rA(f,_)}));let g=await u.diffProvider.computeDiff(e.original,e.modified,{ignoreTrimWhitespace:this._options.ignoreTrimWhitespace.read(a),maxComputationTimeMs:this._options.maxComputationTimeMs.read(a),computeMoves:this._options.showMoves.read(a)},this._cancellationTokenSource.token);this._cancellationTokenSource.token.isCancellationRequested||e.original.isDisposed()||e.modified.isDisposed()||(g=yje(g,e.original,e.modified),g=(c=(e.original,e.modified,void 0))!==null&&c!==void 0?c:g,g=(d=(e.original,e.modified,void 0))!==null&&d!==void 0?d:g,rn(p=>{r(g,p),this._lastDiff=g;const _=X$.fromDiffResult(g);this._diff.set(_,p),this._isDiffUpToDate.set(!0,p);const b=this.movedTextToCompare.get();this.movedTextToCompare.set(b?this._lastDiff.moves.find(w=>w.lineRangeMapping.modified.intersect(b.lineRangeMapping.modified)):void 0,p)}))}))}ensureModifiedLineIsVisible(e,t,i){var s,o;if(((s=this.diff.get())===null||s===void 0?void 0:s.mappings.length)===0)return;const r=((o=this._unchangedRegions.get())===null||o===void 0?void 0:o.regions)||[];for(const a of r)if(a.getHiddenModifiedRange(void 0).contains(e)){a.showModifiedLine(e,t,i);return}}ensureOriginalLineIsVisible(e,t,i){var s,o;if(((s=this.diff.get())===null||s===void 0?void 0:s.mappings.length)===0)return;const r=((o=this._unchangedRegions.get())===null||o===void 0?void 0:o.regions)||[];for(const a of r)if(a.getHiddenOriginalRange(void 0).contains(e)){a.showOriginalLine(e,t,i);return}}async waitForDiff(){await Ode(this.isDiffUpToDate,e=>e)}serializeState(){const e=this._unchangedRegions.get();return{collapsedRegions:e==null?void 0:e.regions.map(t=>({range:t.getHiddenModifiedRange(void 0).serialize()}))}}restoreSerializedState(e){var t;const i=(t=e.collapsedRegions)===null||t===void 0?void 0:t.map(o=>Vt.deserialize(o.range)),s=this._unchangedRegions.get();!s||!i||rn(o=>{for(const r of s.regions)for(const a of i)if(r.modifiedUnchangedRange.intersect(a)){r.setHiddenModifiedRange(a,o);break}})}};y6=Cje([wje(2,jue)],y6);function yje(n,e,t){return{changes:n.changes.map(i=>new Cl(i.original,i.modified,i.innerChanges?i.innerChanges.map(s=>Sje(s,e,t)):void 0)),moves:n.moves,identical:n.identical,quitEarly:n.quitEarly}}function Sje(n,e,t){let i=n.originalRange,s=n.modifiedRange;return(i.endColumn!==1||s.endColumn!==1)&&i.endColumn===e.getLineMaxColumn(i.endLineNumber)&&s.endColumn===t.getLineMaxColumn(s.endLineNumber)&&i.endLineNumbernew Kue(t)),e.moves||[],e.identical,e.quitEarly)}constructor(e,t,i,s){this.mappings=e,this.movedTexts=t,this.identical=i,this.quitEarly=s}}class Kue{constructor(e){this.lineRangeMapping=e}}class em{static fromDiffs(e,t,i,s,o){const r=Cl.inverse(e,t,i),a=[];for(const l of r){let c=l.original.startLineNumber,d=l.modified.startLineNumber,u=l.original.length;const h=c===1&&d===1,f=c+u===t+1&&d+u===i+1;(h||f)&&u>=o+s?(h&&!f&&(u-=o),f&&!h&&(c+=o,d+=o,u-=o),a.push(new em(c,d,u,0,0))):u>=o*2+s&&(c+=o,d+=o,u-=o*2,a.push(new em(c,d,u,0,0)))}return a}get originalUnchangedRange(){return Vt.ofLength(this.originalLineNumber,this.lineCount)}get modifiedUnchangedRange(){return Vt.ofLength(this.modifiedLineNumber,this.lineCount)}constructor(e,t,i,s,o){this.originalLineNumber=e,this.modifiedLineNumber=t,this.lineCount=i,this._visibleLineCountTop=li(this,0),this.visibleLineCountTop=this._visibleLineCountTop,this._visibleLineCountBottom=li(this,0),this.visibleLineCountBottom=this._visibleLineCountBottom,this._shouldHideControls=Rt(this,l=>this.visibleLineCountTop.read(l)+this.visibleLineCountBottom.read(l)===this.lineCount&&!this.isDragged.read(l)),this.isDragged=li(this,void 0);const r=Math.max(Math.min(s,this.lineCount),0),a=Math.max(Math.min(o,this.lineCount-s),0);IY(s===r),IY(o===a),this._visibleLineCountTop.set(r,void 0),this._visibleLineCountBottom.set(a,void 0)}setVisibleRanges(e,t){const i=[],s=new Gl(e.map(l=>l.modified)).subtractFrom(this.modifiedUnchangedRange);let o=this.originalLineNumber,r=this.modifiedLineNumber;const a=this.modifiedLineNumber+this.lineCount;if(s.ranges.length===0)this.showAll(t),i.push(this);else{let l=0;for(const c of s.ranges){const d=l===s.ranges.length-1;l++;const u=(d?a:c.endLineNumberExclusive)-r,h=new em(o,r,u,0,0);h.setHiddenModifiedRange(c,t),i.push(h),o=h.originalUnchangedRange.endLineNumberExclusive,r=h.modifiedUnchangedRange.endLineNumberExclusive}}return i}shouldHideControls(e){return this._shouldHideControls.read(e)}getHiddenOriginalRange(e){return Vt.ofLength(this.originalLineNumber+this._visibleLineCountTop.read(e),this.lineCount-this._visibleLineCountTop.read(e)-this._visibleLineCountBottom.read(e))}getHiddenModifiedRange(e){return Vt.ofLength(this.modifiedLineNumber+this._visibleLineCountTop.read(e),this.lineCount-this._visibleLineCountTop.read(e)-this._visibleLineCountBottom.read(e))}setHiddenModifiedRange(e,t){const i=e.startLineNumber-this.modifiedLineNumber,s=this.modifiedLineNumber+this.lineCount-e.endLineNumberExclusive;this.setState(i,s,t)}getMaxVisibleLineCountTop(){return this.lineCount-this._visibleLineCountBottom.get()}getMaxVisibleLineCountBottom(){return this.lineCount-this._visibleLineCountTop.get()}showMoreAbove(e=10,t){const i=this.getMaxVisibleLineCountTop();this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get()+e,i),t)}showMoreBelow(e=10,t){const i=this.lineCount-this._visibleLineCountTop.get();this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get()+e,i),t)}showAll(e){this._visibleLineCountBottom.set(this.lineCount-this._visibleLineCountTop.get(),e)}showModifiedLine(e,t,i){const s=e+1-(this.modifiedLineNumber+this._visibleLineCountTop.get()),o=this.modifiedLineNumber-this._visibleLineCountBottom.get()+this.lineCount-e;t===0&&s{var _;this._contextMenuService.showContextMenu({domForShadowRoot:h&&(_=i.getDomNode())!==null&&_!==void 0?_:void 0,getAnchor:()=>({x:g,y:p}),getActions:()=>{const b=[],w=s.modified.isEmpty;return b.push(new Ta("diff.clipboard.copyDeletedContent",w?s.original.length>1?v("diff.clipboard.copyDeletedLinesContent.label","Copy deleted lines"):v("diff.clipboard.copyDeletedLinesContent.single.label","Copy deleted line"):s.original.length>1?v("diff.clipboard.copyChangedLinesContent.label","Copy changed lines"):v("diff.clipboard.copyChangedLinesContent.single.label","Copy changed line"),void 0,!0,async()=>{const S=this._originalTextModel.getValueInRange(s.original.toExclusiveRange());await this._clipboardService.writeText(S)})),s.original.length>1&&b.push(new Ta("diff.clipboard.copyDeletedLineContent",w?v("diff.clipboard.copyDeletedLineContent.label","Copy deleted line ({0})",s.original.startLineNumber+u):v("diff.clipboard.copyChangedLineContent.label","Copy changed line ({0})",s.original.startLineNumber+u),void 0,!0,async()=>{let S=this._originalTextModel.getLineContent(s.original.startLineNumber+u);S===""&&(S=this._originalTextModel.getEndOfLineSequence()===0?` `:`\r `),await this._clipboardService.writeText(S)})),i.getOption(91)||b.push(new Ta("diff.inline.revertChange",v("diff.inline.revertChange.label","Revert this change"),void 0,!0,async()=>{this._editor.revert(this._diff)})),b},autoSelectFirstItem:!0})};this._register(rs(this._diffActions,"mousedown",g=>{if(!g.leftButton)return;const{top:p,height:_}=bs(this._diffActions),b=Math.floor(d/3);g.preventDefault(),f(g.posx,p+_+b)})),this._register(i.onMouseMove(g=>{(g.target.type===8||g.target.type===5)&&g.target.detail.viewZoneId===this._getViewZoneId()?(u=this._updateLightBulbPosition(this._marginDomNode,g.event.browserEvent.y,d),this.visibility=!0):this.visibility=!1})),this._register(i.onMouseDown(g=>{g.event.leftButton&&(g.target.type===8||g.target.type===5)&&g.target.detail.viewZoneId===this._getViewZoneId()&&(g.event.preventDefault(),u=this._updateLightBulbPosition(this._marginDomNode,g.event.browserEvent.y,d),f(g.event.posx,g.event.posy+d))}))}_updateLightBulbPosition(e,t,i){const{top:s}=bs(e),o=t-s,r=Math.floor(o/i),a=r*i;if(this._diffActions.style.top=`${a}px`,this._viewLineCounts){let l=0;for(let c=0;cn});function Lje(n,e,t,i){So(i,e.fontInfo);const s=t.length>0,o=new Ow(1e4);let r=0,a=0;const l=[];for(let h=0;h');const l=e.getLineContent(),c=xl.isBasicASCII(l,s),d=xl.containsRTL(l,c,o),u=_D(new f_(r.fontInfo.isMonospace&&!r.disableMonospaceOptimizations,r.fontInfo.canUseHalfwidthRightwardsArrow,l,!1,c,d,0,e,t,r.tabSize,0,r.fontInfo.spaceWidth,r.fontInfo.middotWidth,r.fontInfo.wsmiddotWidth,r.stopRenderingLineAfter,r.renderWhitespace,r.renderControlCharacters,r.fontLigatures!==cl.OFF,null),a);return a.appendString(""),u.characterMapping.getHorizontalOffset(u.characterMapping.length)}var Dje=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},gee=function(n,e){return function(t,i){e(t,i,n)}};let S6=class extends ne{constructor(e,t,i,s,o,r,a,l,c,d){super(),this._targetWindow=e,this._editors=t,this._diffModel=i,this._options=s,this._diffEditorWidget=o,this._canIgnoreViewZoneUpdateEvent=r,this._origViewZonesToIgnore=a,this._modViewZonesToIgnore=l,this._clipboardService=c,this._contextMenuService=d,this._originalTopPadding=li(this,0),this._originalScrollOffset=li(this,0),this._originalScrollOffsetAnimated=see(this._targetWindow,this._originalScrollOffset,this._store),this._modifiedTopPadding=li(this,0),this._modifiedScrollOffset=li(this,0),this._modifiedScrollOffsetAnimated=see(this._targetWindow,this._modifiedScrollOffset,this._store);const u=li("invalidateAlignmentsState",0),h=this._register(new Xi(()=>{u.set(u.get()+1,void 0)},0));this._register(this._editors.original.onDidChangeViewZones(y=>{this._canIgnoreViewZoneUpdateEvent()||h.schedule()})),this._register(this._editors.modified.onDidChangeViewZones(y=>{this._canIgnoreViewZoneUpdateEvent()||h.schedule()})),this._register(this._editors.original.onDidChangeConfiguration(y=>{(y.hasChanged(146)||y.hasChanged(67))&&h.schedule()})),this._register(this._editors.modified.onDidChangeConfiguration(y=>{(y.hasChanged(146)||y.hasChanged(67))&&h.schedule()}));const f=this._diffModel.map(y=>y?qi(y.model.original.onDidChangeTokens,()=>y.model.original.tokenization.backgroundTokenizationState===2):void 0).map((y,S)=>y==null?void 0:y.read(S)),g=Rt(y=>{const S=this._diffModel.read(y),x=S==null?void 0:S.diff.read(y);if(!S||!x)return null;u.read(y);const D=this._options.renderSideBySide.read(y);return pee(this._editors.original,this._editors.modified,x.mappings,this._origViewZonesToIgnore,this._modViewZonesToIgnore,D)}),p=Rt(y=>{var S;const x=(S=this._diffModel.read(y))===null||S===void 0?void 0:S.movedTextToCompare.read(y);if(!x)return null;u.read(y);const k=x.changes.map(D=>new Kue(D));return pee(this._editors.original,this._editors.modified,k,this._origViewZonesToIgnore,this._modViewZonesToIgnore,!0)});function _(){const y=document.createElement("div");return y.className="diagonal-fill",y}const b=this._register(new be);this.viewZones=J0(this,(y,S)=>{var x,k,D,I,N,P,O,M;b.clear();const z=g.read(y)||[],K=[],ae=[],se=this._modifiedTopPadding.read(y);se>0&&ae.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:se,showInHiddenAreas:!0,suppressMouseDown:!0});const he=this._originalTopPadding.read(y);he>0&&K.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:he,showInHiddenAreas:!0,suppressMouseDown:!0});const me=this._options.renderSideBySide.read(y),De=me||(x=this._editors.modified._getViewModel())===null||x===void 0?void 0:x.createLineBreaksComputer();if(De){const Se=this._editors.original.getModel();for(const Qe of z)if(Qe.diff)for(let nt=Qe.originalRange.startLineNumber;ntSe.getLineCount())return{orig:K,mod:ae};De==null||De.addRequest(Se.getLineContent(nt),null,null)}}const lt=(k=De==null?void 0:De.finalize())!==null&&k!==void 0?k:[];let We=0;const Ve=this._editors.modified.getOption(67),Me=(D=this._diffModel.read(y))===null||D===void 0?void 0:D.movedTextToCompare.read(y),Zt=(N=(I=this._editors.original.getModel())===null||I===void 0?void 0:I.mightContainNonBasicASCII())!==null&&N!==void 0?N:!1,Oi=(O=(P=this._editors.original.getModel())===null||P===void 0?void 0:P.mightContainRTL())!==null&&O!==void 0?O:!1,ni=Q$.fromEditor(this._editors.modified);for(const Se of z)if(Se.diff&&!me){if(!Se.originalRange.isEmpty){f.read(y);const nt=document.createElement("div");nt.classList.add("view-lines","line-delete","monaco-mouse-cursor-text");const mt=this._editors.original.getModel();if(Se.originalRange.endLineNumberExclusive-1>mt.getLineCount())return{orig:K,mod:ae};const Je=new kje(Se.originalRange.mapToLineArray(ze=>mt.tokenization.getLineTokens(ze)),Se.originalRange.mapToLineArray(ze=>lt[We++]),Zt,Oi),Ii=[];for(const ze of Se.diff.innerChanges||[])Ii.push(new cx(ze.originalRange.delta(-(Se.diff.original.startLineNumber-1)),b6.className,0));const J=Lje(Je,ni,Ii,nt),ie=document.createElement("div");if(ie.className="inline-deleted-margin-view-zone",So(ie,ni.fontInfo),this._options.renderIndicators.read(y))for(let ze=0;zeVp(ye),ie,this._editors.modified,Se.diff,this._diffEditorWidget,J.viewLineCounts,this._editors.original.getModel(),this._contextMenuService,this._clipboardService));for(let ze=0;ze1&&K.push({afterLineNumber:Se.originalRange.startLineNumber+ze,domNode:_(),heightInPx:(Oe-1)*Ve,showInHiddenAreas:!0,suppressMouseDown:!0})}ae.push({afterLineNumber:Se.modifiedRange.startLineNumber-1,domNode:nt,heightInPx:J.heightInLines*Ve,minWidthInPx:J.minWidthInPx,marginDomNode:ie,setZoneId(ze){ye=ze},showInHiddenAreas:!0,suppressMouseDown:!0})}const Qe=document.createElement("div");Qe.className="gutter-delete",K.push({afterLineNumber:Se.originalRange.endLineNumberExclusive-1,domNode:_(),heightInPx:Se.modifiedHeightInPx,marginDomNode:Qe,showInHiddenAreas:!0,suppressMouseDown:!0})}else{const Qe=Se.modifiedHeightInPx-Se.originalHeightInPx;if(Qe>0){if(Me!=null&&Me.lineRangeMapping.original.delta(-1).deltaLength(2).contains(Se.originalRange.endLineNumberExclusive-1))continue;K.push({afterLineNumber:Se.originalRange.endLineNumberExclusive-1,domNode:_(),heightInPx:Qe,showInHiddenAreas:!0,suppressMouseDown:!0})}else{let nt=function(){const Je=document.createElement("div");return Je.className="arrow-revert-change "+_t.asClassName(Te.arrowRight),S.add(ce(Je,"mousedown",Ii=>Ii.stopPropagation())),S.add(ce(Je,"click",Ii=>{Ii.stopPropagation(),o.revert(Se.diff)})),ke("div",{},Je)};if(Me!=null&&Me.lineRangeMapping.modified.delta(-1).deltaLength(2).contains(Se.modifiedRange.endLineNumberExclusive-1))continue;let mt;Se.diff&&Se.diff.modified.isEmpty&&this._options.shouldRenderOldRevertArrows.read(y)&&(mt=nt()),ae.push({afterLineNumber:Se.modifiedRange.endLineNumberExclusive-1,domNode:_(),heightInPx:-Qe,marginDomNode:mt,showInHiddenAreas:!0,suppressMouseDown:!0})}}for(const Se of(M=p.read(y))!==null&&M!==void 0?M:[]){if(!(Me!=null&&Me.lineRangeMapping.original.intersect(Se.originalRange))||!(Me!=null&&Me.lineRangeMapping.modified.intersect(Se.modifiedRange)))continue;const Qe=Se.modifiedHeightInPx-Se.originalHeightInPx;Qe>0?K.push({afterLineNumber:Se.originalRange.endLineNumberExclusive-1,domNode:_(),heightInPx:Qe,showInHiddenAreas:!0,suppressMouseDown:!0}):ae.push({afterLineNumber:Se.modifiedRange.endLineNumberExclusive-1,domNode:_(),heightInPx:-Qe,showInHiddenAreas:!0,suppressMouseDown:!0})}return{orig:K,mod:ae}});let w=!1;this._register(this._editors.original.onDidScrollChange(y=>{y.scrollLeftChanged&&!w&&(w=!0,this._editors.modified.setScrollLeft(y.scrollLeft),w=!1)})),this._register(this._editors.modified.onDidScrollChange(y=>{y.scrollLeftChanged&&!w&&(w=!0,this._editors.original.setScrollLeft(y.scrollLeft),w=!1)})),this._originalScrollTop=qi(this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=qi(this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._register(Ut(y=>{const S=this._originalScrollTop.read(y)-(this._originalScrollOffsetAnimated.get()-this._modifiedScrollOffsetAnimated.read(y))-(this._originalTopPadding.get()-this._modifiedTopPadding.read(y));S!==this._editors.modified.getScrollTop()&&this._editors.modified.setScrollTop(S,1)})),this._register(Ut(y=>{const S=this._modifiedScrollTop.read(y)-(this._modifiedScrollOffsetAnimated.get()-this._originalScrollOffsetAnimated.read(y))-(this._modifiedTopPadding.get()-this._originalTopPadding.read(y));S!==this._editors.original.getScrollTop()&&this._editors.original.setScrollTop(S,1)})),this._register(Ut(y=>{var S;const x=(S=this._diffModel.read(y))===null||S===void 0?void 0:S.movedTextToCompare.read(y);let k=0;if(x){const D=this._editors.original.getTopForLineNumber(x.lineRangeMapping.original.startLineNumber,!0)-this._originalTopPadding.get();k=this._editors.modified.getTopForLineNumber(x.lineRangeMapping.modified.startLineNumber,!0)-this._modifiedTopPadding.get()-D}k>0?(this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(k,void 0)):k<0?(this._modifiedTopPadding.set(-k,void 0),this._originalTopPadding.set(0,void 0)):setTimeout(()=>{this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(0,void 0)},400),this._editors.modified.hasTextFocus()?this._originalScrollOffset.set(this._modifiedScrollOffset.get()-k,void 0,!0):this._modifiedScrollOffset.set(this._originalScrollOffset.get()+k,void 0,!0)}))}};S6=Dje([gee(8,zg),gee(9,za)],S6);function pee(n,e,t,i,s,o){const r=new Lg(mee(n,i)),a=new Lg(mee(e,s)),l=n.getOption(67),c=e.getOption(67),d=[];let u=0,h=0;function f(g,p){for(;;){let _=r.peek(),b=a.peek();if(_&&_.lineNumber>=g&&(_=void 0),b&&b.lineNumber>=p&&(b=void 0),!_&&!b)break;const w=_?_.lineNumber-u:Number.MAX_VALUE,y=b?b.lineNumber-h:Number.MAX_VALUE;wy?(a.dequeue(),_={lineNumber:b.lineNumber-h+u,heightInPx:0}):(r.dequeue(),a.dequeue()),d.push({originalRange:Vt.ofLength(_.lineNumber,1),modifiedRange:Vt.ofLength(b.lineNumber,1),originalHeightInPx:l+_.heightInPx,modifiedHeightInPx:c+b.heightInPx,diff:void 0})}}for(const g of t){let y=function(S,x){var k,D,I,N;if(SK.lineNumberK+ae.heightInPx,0))!==null&&D!==void 0?D:0,z=(N=(I=a.takeWhile(K=>K.lineNumberK+ae.heightInPx,0))!==null&&N!==void 0?N:0;d.push({originalRange:P,modifiedRange:O,originalHeightInPx:P.length*l+M,modifiedHeightInPx:O.length*c+z,diff:g.lineRangeMapping}),w=S,b=x};const p=g.lineRangeMapping;f(p.original.startLineNumber,p.modified.startLineNumber);let _=!0,b=p.modified.startLineNumber,w=p.original.startLineNumber;if(o)for(const S of p.innerChanges||[]){S.originalRange.startColumn>1&&S.modifiedRange.startColumn>1&&y(S.originalRange.startLineNumber,S.modifiedRange.startLineNumber);const x=n.getModel(),k=S.originalRange.endLineNumber<=x.getLineCount()?x.getLineMaxColumn(S.originalRange.endLineNumber):Number.MAX_SAFE_INTEGER;S.originalRange.endColumn1&&i.push({lineNumber:l,heightInPx:r*(c-1)})}for(const l of n.getWhitespaces()){if(e.has(l.id))continue;const c=l.afterLineNumber===0?0:o.convertViewPositionToModelPosition(new ee(l.afterLineNumber,1)).lineNumber;t.push({lineNumber:c,heightInPx:l.height})}return YUe(t,i,l=>l.lineNumber,(l,c)=>({lineNumber:l.lineNumber,heightInPx:l.heightInPx+c.heightInPx}))}class Ije extends ne{constructor(e,t,i){super(),this._editor=e,this._domNode=t,this.itemProvider=i,this.scrollTop=qi(this._editor.onDidScrollChange,r=>this._editor.getScrollTop()),this.isScrollTopZero=this.scrollTop.map(r=>r===0),this.modelAttached=qi(this._editor.onDidChangeModel,r=>this._editor.hasModel()),this.editorOnDidChangeViewZones=Ko("onDidChangeViewZones",this._editor.onDidChangeViewZones),this.editorOnDidContentSizeChange=Ko("onDidContentSizeChange",this._editor.onDidContentSizeChange),this.domNodeSizeChanged=nP("domNodeSizeChanged"),this.views=new Map,this._domNode.className="gutter monaco-editor";const s=this._domNode.appendChild(wi("div.scroll-decoration",{role:"presentation",ariaHidden:"true",style:{width:"100%"}}).root),o=new ResizeObserver(()=>{rn(r=>{this.domNodeSizeChanged.trigger(r)})});o.observe(this._domNode),this._register(dt(()=>o.disconnect())),this._register(Ut(r=>{s.className=this.isScrollTopZero.read(r)?"":"scroll-decoration"})),this._register(Ut(r=>this.render(r)))}dispose(){super.dispose(),yo(this._domNode)}render(e){if(!this.modelAttached.read(e))return;this.domNodeSizeChanged.read(e),this.editorOnDidChangeViewZones.read(e),this.editorOnDidContentSizeChange.read(e);const t=this.scrollTop.read(e),i=this._editor.getVisibleRanges(),s=new Set(this.views.keys()),o=zt.ofStartAndLength(0,this._domNode.clientHeight);if(!o.isEmpty)for(const r of i){const a=new Vt(r.startLineNumber,r.endLineNumber+1),l=this.itemProvider.getIntersectingGutterItems(a,e);rn(c=>{for(const d of l){if(!d.range.intersect(a))continue;s.delete(d.id);let u=this.views.get(d.id);if(u)u.item.set(d,c);else{const p=document.createElement("div");this._domNode.appendChild(p);const _=li("item",d),b=this.itemProvider.createView(_,p);u=new Eje(_,b,p),this.views.set(d.id,u)}const h=d.range.startLineNumber<=this._editor.getModel().getLineCount()?this._editor.getTopForLineNumber(d.range.startLineNumber,!0)-t:this._editor.getBottomForLineNumber(d.range.startLineNumber-1,!1)-t,g=(d.range.isEmpty?h:this._editor.getBottomForLineNumber(d.range.endLineNumberExclusive-1,!0)-t)-h;u.domNode.style.top=`${h}px`,u.domNode.style.height=`${g}px`,u.gutterItemView.layout(zt.ofStartAndLength(h,g),o)}})}for(const r of s){const a=this.views.get(r);a.gutterItemView.dispose(),this._domNode.removeChild(a.domNode),this.views.delete(r)}}}class Eje{constructor(e,t,i){this.item=e,this.gutterItemView=t,this.domNode=i}}class que extends f0{constructor(e){super(),this._getContext=e}runAction(e,t){const i=this._getContext();return super.runAction(e,i)}}class _ee extends xle{constructor(e){super(),this._textModel=e}getValueOfRange(e){return this._textModel.getValueInRange(e)}get length(){const e=this._textModel.getLineCount(),t=this._textModel.getLineLength(e);return new Ar(e-1,t)}}class Tje extends ne{constructor(e,t,i={orientation:0}){var s;super(),this.submenuActionViewItems=[],this.hasSecondaryActions=!1,this._onDidChangeDropdownVisibility=this._register(new AAe),this.onDidChangeDropdownVisibility=this._onDidChangeDropdownVisibility.event,this.disposables=this._register(new be),i.hoverDelegate=(s=i.hoverDelegate)!==null&&s!==void 0?s:this._register(XC()),this.options=i,this.lookupKeybindings=typeof this.options.getKeyBinding=="function",this.toggleMenuAction=this._register(new sw(()=>{var o;return(o=this.toggleMenuActionViewItem)===null||o===void 0?void 0:o.show()},i.toggleMenuTitle)),this.element=document.createElement("div"),this.element.className="monaco-toolbar",e.appendChild(this.element),this.actionBar=this._register(new hc(this.element,{orientation:i.orientation,ariaLabel:i.ariaLabel,actionRunner:i.actionRunner,allowContextMenu:i.allowContextMenu,highlightToggledItems:i.highlightToggledItems,hoverDelegate:i.hoverDelegate,actionViewItemProvider:(o,r)=>{var a;if(o.id===sw.ID)return this.toggleMenuActionViewItem=new xA(o,o.menuActions,t,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:_t.asClassNameArray((a=i.moreIcon)!==null&&a!==void 0?a:Te.toolBarMore),anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,isMenu:!0,hoverDelegate:this.options.hoverDelegate}),this.toggleMenuActionViewItem.setActionContext(this.actionBar.context),this.disposables.add(this._onDidChangeDropdownVisibility.add(this.toggleMenuActionViewItem.onDidChangeVisibility)),this.toggleMenuActionViewItem;if(i.actionViewItemProvider){const l=i.actionViewItemProvider(o,r);if(l)return l}if(o instanceof NC){const l=new xA(o,o.actions,t,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:o.class,anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,hoverDelegate:this.options.hoverDelegate});return l.setActionContext(this.actionBar.context),this.submenuActionViewItems.push(l),this.disposables.add(this._onDidChangeDropdownVisibility.add(l.onDidChangeVisibility)),l}}}))}set actionRunner(e){this.actionBar.actionRunner=e}get actionRunner(){return this.actionBar.actionRunner}getElement(){return this.element}getItemAction(e){return this.actionBar.getAction(e)}setActions(e,t){this.clear();const i=e?e.slice(0):[];this.hasSecondaryActions=!!(t&&t.length>0),this.hasSecondaryActions&&t&&(this.toggleMenuAction.menuActions=t.slice(0),i.push(this.toggleMenuAction)),i.forEach(s=>{this.actionBar.push(s,{icon:!0,label:!1,keybinding:this.getKeybindingLabel(s)})})}getKeybindingLabel(e){var t,i,s;const o=this.lookupKeybindings?(i=(t=this.options).getKeyBinding)===null||i===void 0?void 0:i.call(t,e):void 0;return(s=o==null?void 0:o.getLabel())!==null&&s!==void 0?s:void 0}clear(){this.submenuActionViewItems=[],this.disposables.clear(),this.actionBar.clear()}dispose(){this.clear(),this.disposables.dispose(),super.dispose()}}class sw extends Ta{constructor(e,t){t=t||v("moreActions","More Actions..."),super(sw.ID,t,void 0,!0),this._menuActions=[],this.toggleDropdownMenu=e}async run(){this.toggleDropdownMenu()}get menuActions(){return this._menuActions}set menuActions(e){this._menuActions=e}}sw.ID="toolbar.toggle.more";var Gue=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},zc=function(n,e){return function(t,i){e(t,i,n)}};let ok=class extends Tje{constructor(e,t,i,s,o,r,a,l){super(e,o,{getKeyBinding:d=>{var u;return(u=r.lookupKeybinding(d.id))!==null&&u!==void 0?u:void 0},...t,allowContextMenu:!0,skipTelemetry:typeof(t==null?void 0:t.telemetrySource)=="string"}),this._options=t,this._menuService=i,this._contextKeyService=s,this._contextMenuService=o,this._keybindingService=r,this._commandService=a,this._sessionDisposables=this._store.add(new be);const c=t==null?void 0:t.telemetrySource;c&&this._store.add(this.actionBar.onDidRun(d=>l.publicLog2("workbenchActionExecuted",{id:d.action.id,from:c})))}setActions(e,t=[],i){var s,o,r;this._sessionDisposables.clear();const a=e.slice(),l=t.slice(),c=[];let d=0;const u=[];let h=!1;if(((s=this._options)===null||s===void 0?void 0:s.hiddenItemStrategy)!==-1)for(let f=0;f_==null?void 0:_.id)),g=this._options.overflowBehavior.maxItems-f.size;let p=0;for(let _=0;_=g&&(a[_]=void 0,u[_]=b))}}ZZ(a),ZZ(u),super.setActions(a,Ms.join(u,l)),(c.length>0||a.length>0)&&this._sessionDisposables.add(ce(this.getElement(),"contextmenu",f=>{var g,p,_,b,w;const y=new Kc(gt(this.getElement()),f),S=this.getItemAction(y.target);if(!S)return;y.preventDefault(),y.stopPropagation();const x=[];if(S instanceof Na&&S.menuKeybinding?x.push(S.menuKeybinding):S instanceof q1||S instanceof sw||x.push(Oue(S.id,void 0,this._commandService,this._keybindingService)),c.length>0){let D=!1;if(d===1&&((g=this._options)===null||g===void 0?void 0:g.hiddenItemStrategy)===0){D=!0;for(let I=0;Ithis._menuService.resetHiddenStates(i)}))),k.length!==0&&this._contextMenuService.showContextMenu({getAnchor:()=>y,getActions:()=>k,menuId:(_=this._options)===null||_===void 0?void 0:_.contextMenu,menuActionOptions:{renderShortTitle:!0,...(b=this._options)===null||b===void 0?void 0:b.menuOptions},skipTelemetry:typeof((w=this._options)===null||w===void 0?void 0:w.telemetrySource)=="string",contextKeyService:this._contextKeyService})}))}};ok=Gue([zc(2,Dl),zc(3,Ct),zc(4,za),zc(5,Li),zc(6,Sn),zc(7,Po)],ok);let eR=class extends ok{constructor(e,t,i,s,o,r,a,l,c){super(e,{resetMenu:t,...i},s,o,r,a,l,c),this._onDidChangeMenuItems=this._store.add(new X),this.onDidChangeMenuItems=this._onDidChangeMenuItems.event;const d=this._store.add(s.createMenu(t,o,{emitEventsForSubmenuChanges:!0})),u=()=>{var h,f,g;const p=[],_=[];rP(d,i==null?void 0:i.menuOptions,{primary:p,secondary:_},(h=i==null?void 0:i.toolbarOptions)===null||h===void 0?void 0:h.primaryGroup,(f=i==null?void 0:i.toolbarOptions)===null||f===void 0?void 0:f.shouldInlineSubmenu,(g=i==null?void 0:i.toolbarOptions)===null||g===void 0?void 0:g.useSeparatorsInPrimaryActions),e.classList.toggle("has-no-actions",p.length===0&&_.length===0),super.setActions(p,_)};this._store.add(d.onDidChange(()=>{u(),this._onDidChangeMenuItems.fire(this)})),u()}setActions(){throw new Gi("This toolbar is populated from a menu.")}};eR=Gue([zc(3,Dl),zc(4,Ct),zc(5,za),zc(6,Li),zc(7,Sn),zc(8,Po)],eR);var Zue=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},MN=function(n,e){return function(t,i){e(t,i,n)}};const q5=[],gT=35;let x6=class extends ne{constructor(e,t,i,s,o,r,a,l,c){super(),this._diffModel=t,this._editors=i,this._options=s,this._sashLayout=o,this._boundarySashes=r,this._instantiationService=a,this._contextKeyService=l,this._menuService=c,this._menu=this._register(this._menuService.createMenu(R.DiffEditorHunkToolbar,this._contextKeyService)),this._actions=qi(this._menu.onDidChange,()=>this._menu.getActions()),this._hasActions=this._actions.map(d=>d.length>0),this._showSash=Rt(this,d=>this._options.renderSideBySide.read(d)&&this._hasActions.read(d)),this.width=Rt(this,d=>this._hasActions.read(d)?gT:0),this.elements=wi("div.gutter@gutter",{style:{position:"absolute",height:"100%",width:gT+"px"}},[]),this._currentDiff=Rt(this,d=>{var u;const h=this._diffModel.read(d);if(!h)return;const f=(u=h.diff.read(d))===null||u===void 0?void 0:u.mappings,g=this._editors.modifiedCursor.read(d);if(g)return f==null?void 0:f.find(p=>p.lineRangeMapping.modified.contains(g.lineNumber))}),this._selectedDiffs=Rt(this,d=>{const u=this._diffModel.read(d),h=u==null?void 0:u.diff.read(d);if(!h)return q5;const f=this._editors.modifiedSelections.read(d);if(f.every(b=>b.isEmpty()))return q5;const g=new Gl(f.map(b=>Vt.fromRangeInclusive(b))),_=h.mappings.filter(b=>b.lineRangeMapping.innerChanges&&g.intersects(b.lineRangeMapping.modified)).map(b=>({mapping:b,rangeMappings:b.lineRangeMapping.innerChanges.filter(w=>f.some(y=>A.areIntersecting(w.modifiedRange,y)))}));return _.length===0||_.every(b=>b.rangeMappings.length===0)?q5:_}),this._register(XUe(e,this.elements.root)),this._register(ce(this.elements.root,"click",()=>{this._editors.modified.focus()})),this._register(jm(this.elements.root,{display:this._hasActions.map(d=>d?"block":"none")})),zu(this,d=>this._showSash.read(d)?new $ue(e,this._sashLayout.dimensions,this._options.enableSplitViewResizing,this._boundarySashes,Pde(this,h=>this._sashLayout.sashLeft.read(h)-gT,(h,f)=>this._sashLayout.sashLeft.set(h+gT,f)),()=>this._sashLayout.resetSash()):void 0).recomputeInitiallyAndOnChange(this._store),this._register(new Ije(this._editors.modified,this.elements.root,{getIntersectingGutterItems:(d,u)=>{const h=this._diffModel.read(u);if(!h)return[];const f=h.diff.read(u);if(!f)return[];const g=this._selectedDiffs.read(u);if(g.length>0){const _=Cl.fromRangeMappings(g.flatMap(b=>b.rangeMappings));return[new vee(_,!0,R.DiffEditorSelectionToolbar,void 0,h.model.original.uri,h.model.modified.uri)]}const p=this._currentDiff.read(u);return f.mappings.map(_=>new vee(_.lineRangeMapping.withInnerChangesFromLineRanges(),_.lineRangeMapping===(p==null?void 0:p.lineRangeMapping),R.DiffEditorHunkToolbar,void 0,h.model.original.uri,h.model.modified.uri))},createView:(d,u)=>this._instantiationService.createInstance(L6,d,u,this)})),this._register(ce(this.elements.gutter,Le.MOUSE_WHEEL,d=>{this._editors.modified.getOption(103).handleMouseWheel&&this._editors.modified.delegateScrollFromMouseWheelEvent(d)},{passive:!1}))}computeStagedValue(e){var t;const i=(t=e.innerChanges)!==null&&t!==void 0?t:[],s=new _ee(this._editors.modifiedModel.get()),o=new _ee(this._editors.original.getModel());return new mz(i.map(l=>l.toTextEdit(s))).apply(o)}layout(e){this.elements.gutter.style.left=e+"px"}};x6=Zue([MN(6,ht),MN(7,Ct),MN(8,Dl)],x6);class vee{constructor(e,t,i,s,o,r){this.mapping=e,this.showAlways=t,this.menuId=i,this.rangeOverride=s,this.originalUri=o,this.modifiedUri=r}get id(){return this.mapping.modified.toString()}get range(){var e;return(e=this.rangeOverride)!==null&&e!==void 0?e:this.mapping.modified}}let L6=class extends ne{constructor(e,t,i,s){super(),this._item=e,this._elements=wi("div.gutterItem",{style:{height:"20px",width:"34px"}},[wi("div.background@background",{},[]),wi("div.buttons@buttons",{},[])]),this._showAlways=this._item.map(this,r=>r.showAlways),this._menuId=this._item.map(this,r=>r.menuId),this._isSmall=li(this,!1),this._lastItemRange=void 0,this._lastViewRange=void 0;const o=this._register(s.createInstance(KC,"element",!0,{position:{hoverPosition:1}}));this._register(MS(t,this._elements.root)),this._register(Ut(r=>{const a=this._showAlways.read(r);this._elements.root.classList.toggle("noTransition",!0),this._elements.root.classList.toggle("showAlways",a),setTimeout(()=>{this._elements.root.classList.toggle("noTransition",!1)},0)})),this._register(uc((r,a)=>{this._elements.buttons.replaceChildren();const l=a.add(s.createInstance(eR,this._elements.buttons,this._menuId.read(r),{orientation:1,hoverDelegate:o,toolbarOptions:{primaryGroup:c=>c.startsWith("primary")},overflowBehavior:{maxItems:this._isSmall.read(r)?1:3},hiddenItemStrategy:0,actionRunner:new que(()=>{const c=this._item.get(),d=c.mapping;return{mapping:d,originalWithModifiedChanges:i.computeStagedValue(d),originalUri:c.originalUri,modifiedUri:c.modifiedUri}}),menuOptions:{shouldForwardArgs:!0}}));a.add(l.onDidChangeMenuItems(()=>{this._lastItemRange&&this.layout(this._lastItemRange,this._lastViewRange)}))}))}layout(e,t){this._lastItemRange=e,this._lastViewRange=t;let i=this._elements.buttons.clientHeight;this._isSmall.set(this._item.get().mapping.original.startLineNumber===1&&e.length<30,void 0),i=this._elements.buttons.clientHeight;const s=e.length/2-i/2,o=i;let r=e.start+s;const a=zt.tryCreate(o,t.endExclusive-o-i),l=zt.tryCreate(e.start+o,e.endExclusive-i-o);l&&a&&l.start=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Aje=function(n,e){return function(t,i){e(t,i,n)}},k6;let rk=k6=class extends ne{static setBreadcrumbsSourceFactory(e){this._breadcrumbsSourceFactory.set(e,void 0)}get isUpdatingHiddenAreas(){return this._isUpdatingHiddenAreas}constructor(e,t,i,s){super(),this._editors=e,this._diffModel=t,this._options=i,this._instantiationService=s,this._modifiedOutlineSource=zu(this,l=>{const c=this._editors.modifiedModel.read(l),d=k6._breadcrumbsSourceFactory.read(l);return!c||!d?void 0:d(c,this._instantiationService)}),this._isUpdatingHiddenAreas=!1,this._register(this._editors.original.onDidChangeCursorPosition(l=>{if(l.reason===1)return;const c=this._diffModel.get();rn(d=>{for(const u of this._editors.original.getSelections()||[])c==null||c.ensureOriginalLineIsVisible(u.getStartPosition().lineNumber,0,d),c==null||c.ensureOriginalLineIsVisible(u.getEndPosition().lineNumber,0,d)})})),this._register(this._editors.modified.onDidChangeCursorPosition(l=>{if(l.reason===1)return;const c=this._diffModel.get();rn(d=>{for(const u of this._editors.modified.getSelections()||[])c==null||c.ensureModifiedLineIsVisible(u.getStartPosition().lineNumber,0,d),c==null||c.ensureModifiedLineIsVisible(u.getEndPosition().lineNumber,0,d)})}));const o=this._diffModel.map((l,c)=>{var d,u;const h=(d=l==null?void 0:l.unchangedRegions.read(c))!==null&&d!==void 0?d:[];return h.length===1&&h[0].modifiedLineNumber===1&&h[0].lineCount===((u=this._editors.modifiedModel.read(c))===null||u===void 0?void 0:u.getLineCount())?[]:h});this.viewZones=J0(this,(l,c)=>{const d=this._modifiedOutlineSource.read(l);if(!d)return{origViewZones:[],modViewZones:[]};const u=[],h=[],f=this._options.renderSideBySide.read(l),g=o.read(l);for(const p of g)if(!p.shouldHideControls(l)){{const _=Rt(this,w=>p.getHiddenOriginalRange(w).startLineNumber-1),b=new XA(_,24);u.push(b),c.add(new bee(this._editors.original,b,p,p.originalUnchangedRange,!f,d,w=>this._diffModel.get().ensureModifiedLineIsVisible(w,2,void 0),this._options))}{const _=Rt(this,w=>p.getHiddenModifiedRange(w).startLineNumber-1),b=new XA(_,24);h.push(b),c.add(new bee(this._editors.modified,b,p,p.modifiedUnchangedRange,!1,d,w=>this._diffModel.get().ensureModifiedLineIsVisible(w,2,void 0),this._options))}}return{origViewZones:u,modViewZones:h}});const r={description:"unchanged lines",className:"diff-unchanged-lines",isWholeLine:!0},a={description:"Fold Unchanged",glyphMarginHoverMessage:new $o(void 0,{isTrusted:!0,supportThemeIcons:!0}).appendMarkdown(v("foldUnchanged","Fold Unchanged Region")),glyphMarginClassName:"fold-unchanged "+_t.asClassName(Te.fold),zIndex:10001};this._register(YA(this._editors.original,Rt(this,l=>{const c=o.read(l),d=c.map(u=>({range:u.originalUnchangedRange.toInclusiveRange(),options:r}));for(const u of c)u.shouldHideControls(l)&&d.push({range:A.fromPositions(new ee(u.originalLineNumber,1)),options:a});return d}))),this._register(YA(this._editors.modified,Rt(this,l=>{const c=o.read(l),d=c.map(u=>({range:u.modifiedUnchangedRange.toInclusiveRange(),options:r}));for(const u of c)u.shouldHideControls(l)&&d.push({range:Vt.ofLength(u.modifiedLineNumber,1).toInclusiveRange(),options:a});return d}))),this._register(Ut(l=>{const c=o.read(l);this._isUpdatingHiddenAreas=!0;try{this._editors.original.setHiddenAreas(c.map(d=>d.getHiddenOriginalRange(l).toInclusiveRange()).filter(gh)),this._editors.modified.setHiddenAreas(c.map(d=>d.getHiddenModifiedRange(l).toInclusiveRange()).filter(gh))}finally{this._isUpdatingHiddenAreas=!1}})),this._register(this._editors.modified.onMouseUp(l=>{var c;if(!l.event.rightButton&&l.target.position&&(!((c=l.target.element)===null||c===void 0)&&c.className.includes("fold-unchanged"))){const d=l.target.position.lineNumber,u=this._diffModel.get();if(!u)return;const h=u.unchangedRegions.get().find(f=>f.modifiedUnchangedRange.includes(d));if(!h)return;h.collapseAll(void 0),l.event.stopPropagation(),l.event.preventDefault()}})),this._register(this._editors.original.onMouseUp(l=>{var c;if(!l.event.rightButton&&l.target.position&&(!((c=l.target.element)===null||c===void 0)&&c.className.includes("fold-unchanged"))){const d=l.target.position.lineNumber,u=this._diffModel.get();if(!u)return;const h=u.unchangedRegions.get().find(f=>f.originalUnchangedRange.includes(d));if(!h)return;h.collapseAll(void 0),l.event.stopPropagation(),l.event.preventDefault()}}))}};rk._breadcrumbsSourceFactory=li("breadcrumbsSourceFactory",void 0);rk=k6=Nje([Aje(3,ht)],rk);class bee extends Vue{constructor(e,t,i,s,o,r,a,l){const c=wi("div.diff-hidden-lines-widget");super(e,t,c.root),this._editor=e,this._unchangedRegion=i,this._unchangedRegionRange=s,this._hide=o,this._modifiedOutlineSource=r,this._revealModifiedHiddenLine=a,this._options=l,this._nodes=wi("div.diff-hidden-lines",[wi("div.top@top",{title:v("diff.hiddenLines.top","Click or drag to show more above")}),wi("div.center@content",{style:{display:"flex"}},[wi("div@first",{style:{display:"flex",justifyContent:"center",alignItems:"center",flexShrink:"0"}},[ke("a",{title:v("showUnchangedRegion","Show Unchanged Region"),role:"button",onclick:()=>{this._unchangedRegion.showAll(void 0)}},...gm("$(unfold)"))]),wi("div@others",{style:{display:"flex",justifyContent:"center",alignItems:"center"}})]),wi("div.bottom@bottom",{title:v("diff.bottom","Click or drag to show more below"),role:"button"})]),c.root.appendChild(this._nodes.root);const d=qi(this._editor.onDidLayoutChange,()=>this._editor.getLayoutInfo());this._hide?yo(this._nodes.first):this._register(jm(this._nodes.first,{width:d.map(h=>h.contentLeft)})),this._register(Ut(h=>{const f=this._unchangedRegion.visibleLineCountTop.read(h)+this._unchangedRegion.visibleLineCountBottom.read(h)===this._unchangedRegion.lineCount;this._nodes.bottom.classList.toggle("canMoveTop",!f),this._nodes.bottom.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(h)>0),this._nodes.top.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(h)>0),this._nodes.top.classList.toggle("canMoveBottom",!f);const g=this._unchangedRegion.isDragged.read(h),p=this._editor.getDomNode();p&&(p.classList.toggle("draggingUnchangedRegion",!!g),g==="top"?(p.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(h)>0),p.classList.toggle("canMoveBottom",!f)):g==="bottom"?(p.classList.toggle("canMoveTop",!f),p.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(h)>0)):(p.classList.toggle("canMoveTop",!1),p.classList.toggle("canMoveBottom",!1)))}));const u=this._editor;this._register(ce(this._nodes.top,"mousedown",h=>{if(h.button!==0)return;this._nodes.top.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),h.preventDefault();const f=h.clientY;let g=!1;const p=this._unchangedRegion.visibleLineCountTop.get();this._unchangedRegion.isDragged.set("top",void 0);const _=gt(this._nodes.top),b=ce(_,"mousemove",y=>{const x=y.clientY-f;g=g||Math.abs(x)>2;const k=Math.round(x/u.getOption(67)),D=Math.max(0,Math.min(p+k,this._unchangedRegion.getMaxVisibleLineCountTop()));this._unchangedRegion.visibleLineCountTop.set(D,void 0)}),w=ce(_,"mouseup",y=>{g||this._unchangedRegion.showMoreAbove(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0),this._nodes.top.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),this._unchangedRegion.isDragged.set(void 0,void 0),b.dispose(),w.dispose()})})),this._register(ce(this._nodes.bottom,"mousedown",h=>{if(h.button!==0)return;this._nodes.bottom.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),h.preventDefault();const f=h.clientY;let g=!1;const p=this._unchangedRegion.visibleLineCountBottom.get();this._unchangedRegion.isDragged.set("bottom",void 0);const _=gt(this._nodes.bottom),b=ce(_,"mousemove",y=>{const x=y.clientY-f;g=g||Math.abs(x)>2;const k=Math.round(x/u.getOption(67)),D=Math.max(0,Math.min(p-k,this._unchangedRegion.getMaxVisibleLineCountBottom())),I=this._unchangedRegionRange.endLineNumberExclusive>u.getModel().getLineCount()?u.getContentHeight():u.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.visibleLineCountBottom.set(D,void 0);const N=this._unchangedRegionRange.endLineNumberExclusive>u.getModel().getLineCount()?u.getContentHeight():u.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);u.setScrollTop(u.getScrollTop()+(N-I))}),w=ce(_,"mouseup",y=>{if(this._unchangedRegion.isDragged.set(void 0,void 0),!g){const S=u.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.showMoreBelow(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0);const x=u.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);u.setScrollTop(u.getScrollTop()+(x-S))}this._nodes.bottom.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),b.dispose(),w.dispose()})})),this._register(Ut(h=>{const f=[];if(!this._hide){const g=i.getHiddenModifiedRange(h).length,p=v("hiddenLines","{0} hidden lines",g),_=ke("span",{title:v("diff.hiddenLines.expandAll","Double click to unfold")},p);_.addEventListener("dblclick",y=>{y.button===0&&(y.preventDefault(),this._unchangedRegion.showAll(void 0))}),f.push(_);const b=this._unchangedRegion.getHiddenModifiedRange(h),w=this._modifiedOutlineSource.getBreadcrumbItems(b,h);if(w.length>0){f.push(ke("span",void 0,"  |  "));for(let y=0;y{this._revealModifiedHiddenLine(S.startLineNumber)}}}}yo(this._nodes.others,...f)}))}}var Rje=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Mje=function(n,e){return function(t,i){e(t,i,n)}},Fc;let S0=Fc=class extends ne{constructor(e,t,i,s,o,r,a){super(),this._editors=e,this._rootElement=t,this._diffModel=i,this._rootWidth=s,this._rootHeight=o,this._modifiedEditorLayoutInfo=r,this._themeService=a,this.width=Fc.ENTIRE_DIFF_OVERVIEW_WIDTH;const l=qi(this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme()),c=Rt(h=>{const f=l.read(h),g=f.getColor(AFe)||(f.getColor(TFe)||DB).transparent(2),p=f.getColor(RFe)||(f.getColor(NFe)||IB).transparent(2);return{insertColor:g,removeColor:p}}),d=Di(document.createElement("div"));d.setClassName("diffViewport"),d.setPosition("absolute");const u=wi("div.diffOverview",{style:{position:"absolute",top:"0px",width:Fc.ENTIRE_DIFF_OVERVIEW_WIDTH+"px"}}).root;this._register(MS(u,d.domNode)),this._register(rs(u,Le.POINTER_DOWN,h=>{this._editors.modified.delegateVerticalScrollbarPointerDown(h)})),this._register(ce(u,Le.MOUSE_WHEEL,h=>{this._editors.modified.delegateScrollFromMouseWheelEvent(h)},{passive:!1})),this._register(MS(this._rootElement,u)),this._register(uc((h,f)=>{const g=this._diffModel.read(h),p=this._editors.original.createOverviewRuler("original diffOverviewRuler");p&&(f.add(p),f.add(MS(u,p.getDomNode())));const _=this._editors.modified.createOverviewRuler("modified diffOverviewRuler");if(_&&(f.add(_),f.add(MS(u,_.getDomNode()))),!p||!_)return;const b=Ko("viewZoneChanged",this._editors.original.onDidChangeViewZones),w=Ko("viewZoneChanged",this._editors.modified.onDidChangeViewZones),y=Ko("hiddenRangesChanged",this._editors.original.onDidChangeHiddenAreas),S=Ko("hiddenRangesChanged",this._editors.modified.onDidChangeHiddenAreas);f.add(Ut(x=>{var k;b.read(x),w.read(x),y.read(x),S.read(x);const D=c.read(x),I=(k=g==null?void 0:g.diff.read(x))===null||k===void 0?void 0:k.mappings;function N(M,z,K){const ae=K._getViewModel();return ae?M.filter(se=>se.length>0).map(se=>{const he=ae.coordinatesConverter.convertModelPositionToViewPosition(new ee(se.startLineNumber,1)),me=ae.coordinatesConverter.convertModelPositionToViewPosition(new ee(se.endLineNumberExclusive,1)),De=me.lineNumber-he.lineNumber;return new Lce(he.lineNumber,me.lineNumber,De,z.toString())}):[]}const P=N((I||[]).map(M=>M.lineRangeMapping.original),D.removeColor,this._editors.original),O=N((I||[]).map(M=>M.lineRangeMapping.modified),D.insertColor,this._editors.modified);p==null||p.setZones(P),_==null||_.setZones(O)})),f.add(Ut(x=>{const k=this._rootHeight.read(x),D=this._rootWidth.read(x),I=this._modifiedEditorLayoutInfo.read(x);if(I){const N=Fc.ENTIRE_DIFF_OVERVIEW_WIDTH-2*Fc.ONE_OVERVIEW_WIDTH;p.setLayout({top:0,height:k,right:N+Fc.ONE_OVERVIEW_WIDTH,width:Fc.ONE_OVERVIEW_WIDTH}),_.setLayout({top:0,height:k,right:0,width:Fc.ONE_OVERVIEW_WIDTH});const P=this._editors.modifiedScrollTop.read(x),O=this._editors.modifiedScrollHeight.read(x),M=this._editors.modified.getOption(103),z=new $C(M.verticalHasArrows?M.arrowSize:0,M.verticalScrollbarSize,0,I.height,O,P);d.setTop(z.getSliderPosition()),d.setHeight(z.getSliderSize())}else d.setTop(0),d.setHeight(0);u.style.height=k+"px",u.style.left=D-Fc.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",d.setWidth(Fc.ENTIRE_DIFF_OVERVIEW_WIDTH)}))}))}};S0.ONE_OVERVIEW_WIDTH=15;S0.ENTIRE_DIFF_OVERVIEW_WIDTH=Fc.ONE_OVERVIEW_WIDTH*2;S0=Fc=Rje([Mje(6,js)],S0);const G5=[];class Pje extends ne{constructor(e,t,i,s){super(),this._editors=e,this._diffModel=t,this._options=i,this._widget=s,this._selectedDiffs=Rt(this,o=>{const r=this._diffModel.read(o),a=r==null?void 0:r.diff.read(o);if(!a)return G5;const l=this._editors.modifiedSelections.read(o);if(l.every(h=>h.isEmpty()))return G5;const c=new Gl(l.map(h=>Vt.fromRangeInclusive(h))),u=a.mappings.filter(h=>h.lineRangeMapping.innerChanges&&c.intersects(h.lineRangeMapping.modified)).map(h=>({mapping:h,rangeMappings:h.lineRangeMapping.innerChanges.filter(f=>l.some(g=>A.areIntersecting(f.modifiedRange,g)))}));return u.length===0||u.every(h=>h.rangeMappings.length===0)?G5:u}),this._register(uc((o,r)=>{if(!this._options.shouldRenderOldRevertArrows.read(o))return;const a=this._diffModel.read(o),l=a==null?void 0:a.diff.read(o);if(!a||!l||a.movedTextToCompare.read(o))return;const c=[],d=this._selectedDiffs.read(o),u=new Set(d.map(h=>h.mapping));if(d.length>0){const h=this._editors.modifiedSelections.read(o),f=r.add(new ak(h[h.length-1].positionLineNumber,this._widget,d.flatMap(g=>g.rangeMappings),!0));this._editors.modified.addGlyphMarginWidget(f),c.push(f)}for(const h of l.mappings)if(!u.has(h)&&!h.lineRangeMapping.modified.isEmpty&&h.lineRangeMapping.innerChanges){const f=r.add(new ak(h.lineRangeMapping.modified.startLineNumber,this._widget,h.lineRangeMapping,!1));this._editors.modified.addGlyphMarginWidget(f),c.push(f)}r.add(dt(()=>{for(const h of c)this._editors.modified.removeGlyphMarginWidget(h)}))}))}}class ak extends ne{getId(){return this._id}constructor(e,t,i,s){super(),this._lineNumber=e,this._widget=t,this._diffs=i,this._revertSelection=s,this._id=`revertButton${ak.counter++}`,this._domNode=wi("div.revertButton",{title:this._revertSelection?v("revertSelectedChanges","Revert Selected Changes"):v("revertChange","Revert Change")},[_0(Te.arrowRight)]).root,this._register(ce(this._domNode,Le.MOUSE_DOWN,o=>{o.button!==2&&(o.stopPropagation(),o.preventDefault())})),this._register(ce(this._domNode,Le.MOUSE_UP,o=>{o.stopPropagation(),o.preventDefault()})),this._register(ce(this._domNode,Le.CLICK,o=>{this._diffs instanceof Ir?this._widget.revert(this._diffs):this._widget.revertRangeMappings(this._diffs),o.stopPropagation(),o.preventDefault()}))}getDomNode(){return this._domNode}getPosition(){return{lane:Dh.Right,range:{startColumn:1,startLineNumber:this._lineNumber,endColumn:1,endLineNumber:this._lineNumber},zIndex:10001}}}ak.counter=0;function gf(n,e,t){const i=n.bindTo(e);return tP({debugName:()=>`Set Context Key "${n.key}"`},s=>{i.set(t(s))})}function Oje(n){return Nv.get(n)}class Nv{static get(e){let t=Nv._map.get(e);if(!t){t=new Nv(e),Nv._map.set(e,t);const i=e.onDidDispose(()=>{Nv._map.delete(e),i.dispose()})}return t}constructor(e){this.editor=e,this.model=qi(this.editor.onDidChangeModel,()=>this.editor.getModel())}}Nv._map=new Map;var Fje=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Cee=function(n,e){return function(t,i){e(t,i,n)}};let D6=class extends ne{get onDidContentSizeChange(){return this._onDidContentSizeChange.event}constructor(e,t,i,s,o,r,a){super(),this.originalEditorElement=e,this.modifiedEditorElement=t,this._options=i,this._argCodeEditorWidgetOptions=s,this._createInnerEditor=o,this._instantiationService=r,this._keybindingService=a,this.original=this._register(this._createLeftHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.originalEditor||{})),this.modified=this._register(this._createRightHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.modifiedEditor||{})),this._onDidContentSizeChange=this._register(new X),this.modifiedScrollTop=qi(this.modified.onDidScrollChange,()=>this.modified.getScrollTop()),this.modifiedScrollHeight=qi(this.modified.onDidScrollChange,()=>this.modified.getScrollHeight()),this.modifiedModel=Oje(this.modified).model,this.modifiedSelections=qi(this.modified.onDidChangeCursorSelection,()=>{var l;return(l=this.modified.getSelections())!==null&&l!==void 0?l:[]}),this.modifiedCursor=Uf({owner:this,equalsFn:ee.equals},l=>{var c,d;return(d=(c=this.modifiedSelections.read(l)[0])===null||c===void 0?void 0:c.getPosition())!==null&&d!==void 0?d:new ee(1,1)}),this.originalCursor=qi(this.original.onDidChangeCursorPosition,()=>{var l;return(l=this.original.getPosition())!==null&&l!==void 0?l:new ee(1,1)}),this._argCodeEditorWidgetOptions=null,this._register(AD({createEmptyChangeSummary:()=>({}),handleChange:(l,c)=>(l.didChange(i.editorOptions)&&Object.assign(c,l.change.changedOptions),!0)},(l,c)=>{i.editorOptions.read(l),this._options.renderSideBySide.read(l),this.modified.updateOptions(this._adjustOptionsForRightHandSide(l,c)),this.original.updateOptions(this._adjustOptionsForLeftHandSide(l,c))}))}_createLeftHandSideEditor(e,t){const i=this._adjustOptionsForLeftHandSide(void 0,e),s=this._constructInnerEditor(this._instantiationService,this.originalEditorElement,i,t);return s.setContextValue("isInDiffLeftEditor",!0),s}_createRightHandSideEditor(e,t){const i=this._adjustOptionsForRightHandSide(void 0,e),s=this._constructInnerEditor(this._instantiationService,this.modifiedEditorElement,i,t);return s.setContextValue("isInDiffRightEditor",!0),s}_constructInnerEditor(e,t,i,s){const o=this._createInnerEditor(e,t,i,s);return this._register(o.onDidContentSizeChange(r=>{const a=this.original.getContentWidth()+this.modified.getContentWidth()+S0.ENTIRE_DIFF_OVERVIEW_WIDTH,l=Math.max(this.modified.getContentHeight(),this.original.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:l,contentWidth:a,contentHeightChanged:r.contentHeightChanged,contentWidthChanged:r.contentWidthChanged})})),o}_adjustOptionsForLeftHandSide(e,t){const i=this._adjustOptionsForSubEditor(t);return this._options.renderSideBySide.get()?(i.unicodeHighlight=this._options.editorOptions.get().unicodeHighlight||{},i.wordWrapOverride1=this._options.diffWordWrap.get()):(i.wordWrapOverride1="off",i.wordWrapOverride2="off",i.stickyScroll={enabled:!1},i.unicodeHighlight={nonBasicASCII:!1,ambiguousCharacters:!1,invisibleCharacters:!1}),i.glyphMargin=this._options.renderSideBySide.get(),t.originalAriaLabel&&(i.ariaLabel=t.originalAriaLabel),i.ariaLabel=this._updateAriaLabel(i.ariaLabel),i.readOnly=!this._options.originalEditable.get(),i.dropIntoEditor={enabled:!i.readOnly},i.extraEditorClassName="original-in-monaco-diff-editor",i}_adjustOptionsForRightHandSide(e,t){const i=this._adjustOptionsForSubEditor(t);return t.modifiedAriaLabel&&(i.ariaLabel=t.modifiedAriaLabel),i.ariaLabel=this._updateAriaLabel(i.ariaLabel),i.wordWrapOverride1=this._options.diffWordWrap.get(),i.revealHorizontalRightPadding=gu.revealHorizontalRightPadding.defaultValue+S0.ENTIRE_DIFF_OVERVIEW_WIDTH,i.scrollbar.verticalHasArrows=!1,i.extraEditorClassName="modified-in-monaco-diff-editor",i}_adjustOptionsForSubEditor(e){const t={...e,dimension:{height:0,width:0}};return t.inDiffEditor=!0,t.automaticLayout=!1,t.scrollbar={...t.scrollbar||{}},t.folding=!1,t.codeLens=this._options.diffCodeLens.get(),t.fixedOverflowWidgets=!0,t.minimap={...t.minimap||{}},t.minimap.enabled=!1,this._options.hideUnchangedRegions.get()?t.stickyScroll={enabled:!1}:t.stickyScroll=this._options.editorOptions.get().stickyScroll,t}_updateAriaLabel(e){var t;e||(e="");const i=v("diff-aria-navigation-tip"," use {0} to open the accessibility help.",(t=this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp"))===null||t===void 0?void 0:t.getAriaLabel());return this._options.accessibilityVerbose.get()?e+i:e?e.replaceAll(i,""):""}};D6=Fje([Cee(5,ht),Cee(6,Li)],D6);class wP extends ne{constructor(){super(...arguments),this._id=++wP.idCounter,this._onDidDispose=this._register(new X),this.onDidDispose=this._onDidDispose.event}getId(){return this.getEditorType()+":v2:"+this._id}getVisibleColumnFromPosition(e){return this._targetEditor.getVisibleColumnFromPosition(e)}getPosition(){return this._targetEditor.getPosition()}setPosition(e,t="api"){this._targetEditor.setPosition(e,t)}revealLine(e,t=0){this._targetEditor.revealLine(e,t)}revealLineInCenter(e,t=0){this._targetEditor.revealLineInCenter(e,t)}revealLineInCenterIfOutsideViewport(e,t=0){this._targetEditor.revealLineInCenterIfOutsideViewport(e,t)}revealLineNearTop(e,t=0){this._targetEditor.revealLineNearTop(e,t)}revealPosition(e,t=0){this._targetEditor.revealPosition(e,t)}revealPositionInCenter(e,t=0){this._targetEditor.revealPositionInCenter(e,t)}revealPositionInCenterIfOutsideViewport(e,t=0){this._targetEditor.revealPositionInCenterIfOutsideViewport(e,t)}revealPositionNearTop(e,t=0){this._targetEditor.revealPositionNearTop(e,t)}getSelection(){return this._targetEditor.getSelection()}getSelections(){return this._targetEditor.getSelections()}setSelection(e,t="api"){this._targetEditor.setSelection(e,t)}setSelections(e,t="api"){this._targetEditor.setSelections(e,t)}revealLines(e,t,i=0){this._targetEditor.revealLines(e,t,i)}revealLinesInCenter(e,t,i=0){this._targetEditor.revealLinesInCenter(e,t,i)}revealLinesInCenterIfOutsideViewport(e,t,i=0){this._targetEditor.revealLinesInCenterIfOutsideViewport(e,t,i)}revealLinesNearTop(e,t,i=0){this._targetEditor.revealLinesNearTop(e,t,i)}revealRange(e,t=0,i=!1,s=!0){this._targetEditor.revealRange(e,t,i,s)}revealRangeInCenter(e,t=0){this._targetEditor.revealRangeInCenter(e,t)}revealRangeInCenterIfOutsideViewport(e,t=0){this._targetEditor.revealRangeInCenterIfOutsideViewport(e,t)}revealRangeNearTop(e,t=0){this._targetEditor.revealRangeNearTop(e,t)}revealRangeNearTopIfOutsideViewport(e,t=0){this._targetEditor.revealRangeNearTopIfOutsideViewport(e,t)}revealRangeAtTop(e,t=0){this._targetEditor.revealRangeAtTop(e,t)}getSupportedActions(){return this._targetEditor.getSupportedActions()}focus(){this._targetEditor.focus()}trigger(e,t,i){this._targetEditor.trigger(e,t,i)}createDecorationsCollection(e){return this._targetEditor.createDecorationsCollection(e)}changeDecorations(e){return this._targetEditor.changeDecorations(e)}}wP.idCounter=0;var Bje=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Wje=function(n,e){return function(t,i){e(t,i,n)}};let I6=class{get editorOptions(){return this._options}constructor(e,t){this._accessibilityService=t,this._diffEditorWidth=li(this,0),this._screenReaderMode=qi(this._accessibilityService.onDidChangeScreenReaderOptimized,()=>this._accessibilityService.isScreenReaderOptimized()),this.couldShowInlineViewBecauseOfSize=Rt(this,s=>this._options.read(s).renderSideBySide&&this._diffEditorWidth.read(s)<=this._options.read(s).renderSideBySideInlineBreakpoint),this.renderOverviewRuler=Rt(this,s=>this._options.read(s).renderOverviewRuler),this.renderSideBySide=Rt(this,s=>this._options.read(s).renderSideBySide&&!(this._options.read(s).useInlineViewWhenSpaceIsLimited&&this.couldShowInlineViewBecauseOfSize.read(s)&&!this._screenReaderMode.read(s))),this.readOnly=Rt(this,s=>this._options.read(s).readOnly),this.shouldRenderOldRevertArrows=Rt(this,s=>!(!this._options.read(s).renderMarginRevertIcon||!this.renderSideBySide.read(s)||this.readOnly.read(s)||this.shouldRenderGutterMenu.read(s))),this.shouldRenderGutterMenu=Rt(this,s=>this._options.read(s).renderGutterMenu),this.renderIndicators=Rt(this,s=>this._options.read(s).renderIndicators),this.enableSplitViewResizing=Rt(this,s=>this._options.read(s).enableSplitViewResizing),this.splitViewDefaultRatio=Rt(this,s=>this._options.read(s).splitViewDefaultRatio),this.ignoreTrimWhitespace=Rt(this,s=>this._options.read(s).ignoreTrimWhitespace),this.maxComputationTimeMs=Rt(this,s=>this._options.read(s).maxComputationTime),this.showMoves=Rt(this,s=>this._options.read(s).experimental.showMoves&&this.renderSideBySide.read(s)),this.isInEmbeddedEditor=Rt(this,s=>this._options.read(s).isInEmbeddedEditor),this.diffWordWrap=Rt(this,s=>this._options.read(s).diffWordWrap),this.originalEditable=Rt(this,s=>this._options.read(s).originalEditable),this.diffCodeLens=Rt(this,s=>this._options.read(s).diffCodeLens),this.accessibilityVerbose=Rt(this,s=>this._options.read(s).accessibilityVerbose),this.diffAlgorithm=Rt(this,s=>this._options.read(s).diffAlgorithm),this.showEmptyDecorations=Rt(this,s=>this._options.read(s).experimental.showEmptyDecorations),this.onlyShowAccessibleDiffViewer=Rt(this,s=>this._options.read(s).onlyShowAccessibleDiffViewer),this.hideUnchangedRegions=Rt(this,s=>this._options.read(s).hideUnchangedRegions.enabled),this.hideUnchangedRegionsRevealLineCount=Rt(this,s=>this._options.read(s).hideUnchangedRegions.revealLineCount),this.hideUnchangedRegionsContextLineCount=Rt(this,s=>this._options.read(s).hideUnchangedRegions.contextLineCount),this.hideUnchangedRegionsMinimumLineCount=Rt(this,s=>this._options.read(s).hideUnchangedRegions.minimumLineCount);const i={...e,...wee(e,Wo)};this._options=li(this,i)}updateOptions(e){const t=wee(e,this._options.get()),i={...this._options.get(),...e,...t};this._options.set(i,void 0,{changedOptions:e})}setWidth(e){this._diffEditorWidth.set(e,void 0)}};I6=Bje([Wje(1,Ha)],I6);function wee(n,e){var t,i,s,o,r,a,l,c;return{enableSplitViewResizing:rt(n.enableSplitViewResizing,e.enableSplitViewResizing),splitViewDefaultRatio:E2e(n.splitViewDefaultRatio,.5,.1,.9),renderSideBySide:rt(n.renderSideBySide,e.renderSideBySide),renderMarginRevertIcon:rt(n.renderMarginRevertIcon,e.renderMarginRevertIcon),maxComputationTime:tv(n.maxComputationTime,e.maxComputationTime,0,1073741824),maxFileSize:tv(n.maxFileSize,e.maxFileSize,0,1073741824),ignoreTrimWhitespace:rt(n.ignoreTrimWhitespace,e.ignoreTrimWhitespace),renderIndicators:rt(n.renderIndicators,e.renderIndicators),originalEditable:rt(n.originalEditable,e.originalEditable),diffCodeLens:rt(n.diffCodeLens,e.diffCodeLens),renderOverviewRuler:rt(n.renderOverviewRuler,e.renderOverviewRuler),diffWordWrap:ns(n.diffWordWrap,e.diffWordWrap,["off","on","inherit"]),diffAlgorithm:ns(n.diffAlgorithm,e.diffAlgorithm,["legacy","advanced"],{smart:"legacy",experimental:"advanced"}),accessibilityVerbose:rt(n.accessibilityVerbose,e.accessibilityVerbose),experimental:{showMoves:rt((t=n.experimental)===null||t===void 0?void 0:t.showMoves,e.experimental.showMoves),showEmptyDecorations:rt((i=n.experimental)===null||i===void 0?void 0:i.showEmptyDecorations,e.experimental.showEmptyDecorations)},hideUnchangedRegions:{enabled:rt((o=(s=n.hideUnchangedRegions)===null||s===void 0?void 0:s.enabled)!==null&&o!==void 0?o:(r=n.experimental)===null||r===void 0?void 0:r.collapseUnchangedRegions,e.hideUnchangedRegions.enabled),contextLineCount:tv((a=n.hideUnchangedRegions)===null||a===void 0?void 0:a.contextLineCount,e.hideUnchangedRegions.contextLineCount,0,1073741824),minimumLineCount:tv((l=n.hideUnchangedRegions)===null||l===void 0?void 0:l.minimumLineCount,e.hideUnchangedRegions.minimumLineCount,0,1073741824),revealLineCount:tv((c=n.hideUnchangedRegions)===null||c===void 0?void 0:c.revealLineCount,e.hideUnchangedRegions.revealLineCount,0,1073741824)},isInEmbeddedEditor:rt(n.isInEmbeddedEditor,e.isInEmbeddedEditor),onlyShowAccessibleDiffViewer:rt(n.onlyShowAccessibleDiffViewer,e.onlyShowAccessibleDiffViewer),renderSideBySideInlineBreakpoint:tv(n.renderSideBySideInlineBreakpoint,e.renderSideBySideInlineBreakpoint,0,1073741824),useInlineViewWhenSpaceIsLimited:rt(n.useInlineViewWhenSpaceIsLimited,e.useInlineViewWhenSpaceIsLimited),renderGutterMenu:rt(n.renderGutterMenu,e.renderGutterMenu)}}var Hje=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Zy=function(n,e){return function(t,i){e(t,i,n)}};let Tg=class extends wP{get onDidContentSizeChange(){return this._editors.onDidContentSizeChange}constructor(e,t,i,s,o,r,a,l){var c;super(),this._domElement=e,this._parentContextKeyService=s,this._parentInstantiationService=o,this._accessibilitySignalService=a,this._editorProgressService=l,this.elements=wi("div.monaco-diff-editor.side-by-side",{style:{position:"relative",height:"100%"}},[wi("div.editor.original@original",{style:{position:"absolute",height:"100%"}}),wi("div.editor.modified@modified",{style:{position:"absolute",height:"100%"}}),wi("div.accessibleDiffViewer@accessibleDiffViewer",{style:{position:"absolute",height:"100%"}})]),this._diffModel=li(this,void 0),this._shouldDisposeDiffModel=!1,this.onDidChangeModel=Ae.fromObservableLight(this._diffModel),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._domElement)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new kD([Ct,this._contextKeyService]))),this._boundarySashes=li(this,void 0),this._accessibleDiffViewerShouldBeVisible=li(this,!1),this._accessibleDiffViewerVisible=Rt(this,x=>this._options.onlyShowAccessibleDiffViewer.read(x)?!0:this._accessibleDiffViewerShouldBeVisible.read(x)),this._movedBlocksLinesPart=li(this,void 0),this._layoutInfo=Rt(this,x=>{var k,D,I,N,P;const O=this._rootSizeObserver.width.read(x),M=this._rootSizeObserver.height.read(x);this._rootSizeObserver.automaticLayout?this.elements.root.style.height="100%":this.elements.root.style.height=M+"px";const z=this._sash.read(x),K=this._gutter.read(x),ae=(k=K==null?void 0:K.width.read(x))!==null&&k!==void 0?k:0,se=(I=(D=this._overviewRulerPart.read(x))===null||D===void 0?void 0:D.width)!==null&&I!==void 0?I:0;let he,me,De,lt,We;if(!!z){const Me=z.sashLeft.read(x),Zt=(P=(N=this._movedBlocksLinesPart.read(x))===null||N===void 0?void 0:N.width.read(x))!==null&&P!==void 0?P:0;he=0,me=Me-ae-Zt,We=Me-ae,De=Me,lt=O-De-se}else We=0,he=ae,me=Math.max(5,this._editors.original.getLayoutInfo().decorationsLeft),De=ae+me,lt=O-De-se;return this.elements.original.style.left=he+"px",this.elements.original.style.width=me+"px",this._editors.original.layout({width:me,height:M},!0),K==null||K.layout(We),this.elements.modified.style.left=De+"px",this.elements.modified.style.width=lt+"px",this._editors.modified.layout({width:lt,height:M},!0),{modifiedEditor:this._editors.modified.getLayoutInfo(),originalEditor:this._editors.original.getLayoutInfo()}}),this._diffValue=this._diffModel.map((x,k)=>x==null?void 0:x.diff.read(k)),this.onDidUpdateDiff=Ae.fromObservableLight(this._diffValue),r.willCreateDiffEditor(),this._contextKeyService.createKey("isInDiffEditor",!0),this._domElement.appendChild(this.elements.root),this._register(dt(()=>this._domElement.removeChild(this.elements.root))),this._rootSizeObserver=this._register(new Hue(this.elements.root,t.dimension)),this._rootSizeObserver.setAutomaticLayout((c=t.automaticLayout)!==null&&c!==void 0?c:!1),this._options=this._instantiationService.createInstance(I6,t),this._register(Ut(x=>{this._options.setWidth(this._rootSizeObserver.width.read(x))})),this._contextKeyService.createKey(W.isEmbeddedDiffEditor.key,!1),this._register(gf(W.isEmbeddedDiffEditor,this._contextKeyService,x=>this._options.isInEmbeddedEditor.read(x))),this._register(gf(W.comparingMovedCode,this._contextKeyService,x=>{var k;return!!(!((k=this._diffModel.read(x))===null||k===void 0)&&k.movedTextToCompare.read(x))})),this._register(gf(W.diffEditorRenderSideBySideInlineBreakpointReached,this._contextKeyService,x=>this._options.couldShowInlineViewBecauseOfSize.read(x))),this._register(gf(W.diffEditorInlineMode,this._contextKeyService,x=>!this._options.renderSideBySide.read(x))),this._register(gf(W.hasChanges,this._contextKeyService,x=>{var k,D,I;return((I=(D=(k=this._diffModel.read(x))===null||k===void 0?void 0:k.diff.read(x))===null||D===void 0?void 0:D.mappings.length)!==null&&I!==void 0?I:0)>0})),this._editors=this._register(this._instantiationService.createInstance(D6,this.elements.original,this.elements.modified,this._options,i,(x,k,D,I)=>this._createInnerEditor(x,k,D,I))),this._register(gf(W.diffEditorOriginalWritable,this._contextKeyService,x=>this._options.originalEditable.read(x))),this._register(gf(W.diffEditorModifiedWritable,this._contextKeyService,x=>!this._options.readOnly.read(x))),this._register(gf(W.diffEditorOriginalUri,this._contextKeyService,x=>{var k,D;return(D=(k=this._diffModel.read(x))===null||k===void 0?void 0:k.model.original.uri.toString())!==null&&D!==void 0?D:""})),this._register(gf(W.diffEditorModifiedUri,this._contextKeyService,x=>{var k,D;return(D=(k=this._diffModel.read(x))===null||k===void 0?void 0:k.model.modified.uri.toString())!==null&&D!==void 0?D:""})),this._overviewRulerPart=zu(this,x=>this._options.renderOverviewRuler.read(x)?this._instantiationService.createInstance(Wc(S0,x),this._editors,this.elements.root,this._diffModel,this._rootSizeObserver.width,this._rootSizeObserver.height,this._layoutInfo.map(k=>k.modifiedEditor)):void 0).recomputeInitiallyAndOnChange(this._store);const d={height:this._rootSizeObserver.height,width:this._rootSizeObserver.width.map((x,k)=>{var D,I;return x-((I=(D=this._overviewRulerPart.read(k))===null||D===void 0?void 0:D.width)!==null&&I!==void 0?I:0)})};this._sashLayout=new bje(this._options,d),this._sash=zu(this,x=>{const k=this._options.renderSideBySide.read(x);return this.elements.root.classList.toggle("side-by-side",k),k?new $ue(this.elements.root,d,this._options.enableSplitViewResizing,this._boundarySashes,this._sashLayout.sashLeft,()=>this._sashLayout.resetSash()):void 0}).recomputeInitiallyAndOnChange(this._store);const u=zu(this,x=>this._instantiationService.createInstance(Wc(rk,x),this._editors,this._diffModel,this._options)).recomputeInitiallyAndOnChange(this._store);zu(this,x=>this._instantiationService.createInstance(Wc(vje,x),this._editors,this._diffModel,this._options,this)).recomputeInitiallyAndOnChange(this._store);const h=new Set,f=new Set;let g=!1;const p=zu(this,x=>this._instantiationService.createInstance(Wc(S6,x),gt(this._domElement),this._editors,this._diffModel,this._options,this,()=>g||u.get().isUpdatingHiddenAreas,h,f)).recomputeInitiallyAndOnChange(this._store),_=Rt(this,x=>{const k=p.read(x).viewZones.read(x).orig,D=u.read(x).viewZones.read(x).origViewZones;return k.concat(D)}),b=Rt(this,x=>{const k=p.read(x).viewZones.read(x).mod,D=u.read(x).viewZones.read(x).modViewZones;return k.concat(D)});this._register(QA(this._editors.original,_,x=>{g=x},h));let w;this._register(QA(this._editors.modified,b,x=>{g=x,g?w=uu.capture(this._editors.modified):(w==null||w.restore(this._editors.modified),w=void 0)},f)),this._accessibleDiffViewer=zu(this,x=>this._instantiationService.createInstance(Wc(Jp,x),this.elements.accessibleDiffViewer,this._accessibleDiffViewerVisible,(k,D)=>this._accessibleDiffViewerShouldBeVisible.set(k,D),this._options.onlyShowAccessibleDiffViewer.map(k=>!k),this._rootSizeObserver.width,this._rootSizeObserver.height,this._diffModel.map((k,D)=>{var I;return(I=k==null?void 0:k.diff.read(D))===null||I===void 0?void 0:I.mappings.map(N=>N.lineRangeMapping)}),new hje(this._editors))).recomputeInitiallyAndOnChange(this._store);const y=this._accessibleDiffViewerVisible.map(x=>x?"hidden":"visible");this._register(jm(this.elements.modified,{visibility:y})),this._register(jm(this.elements.original,{visibility:y})),this._createDiffEditorContributions(),r.addDiffEditor(this),this._gutter=zu(this,x=>this._options.shouldRenderGutterMenu.read(x)?this._instantiationService.createInstance(Wc(x6,x),this.elements.root,this._diffModel,this._editors,this._options,this._sashLayout,this._boundarySashes):void 0),this._register(RD(this._layoutInfo)),zu(this,x=>new(Wc(vm,x))(this.elements.root,this._diffModel,this._layoutInfo.map(k=>k.originalEditor),this._layoutInfo.map(k=>k.modifiedEditor),this._editors)).recomputeInitiallyAndOnChange(this._store,x=>{this._movedBlocksLinesPart.set(x,void 0)}),this._register(Ae.runAndSubscribe(this._editors.modified.onDidChangeCursorPosition,x=>this._handleCursorPositionChange(x,!0))),this._register(Ae.runAndSubscribe(this._editors.original.onDidChangeCursorPosition,x=>this._handleCursorPositionChange(x,!1)));const S=this._diffModel.map(this,(x,k)=>{if(x)return x.diff.read(k)===void 0&&!x.isDiffUpToDate.read(k)});this._register(uc((x,k)=>{if(S.read(x)===!0){const D=this._editorProgressService.show(!0,1e3);k.add(dt(()=>D.done()))}})),this._register(dt(()=>{var x;this._shouldDisposeDiffModel&&((x=this._diffModel.get())===null||x===void 0||x.dispose())})),this._register(uc((x,k)=>{k.add(new(Wc(Pje,x))(this._editors,this._diffModel,this._options,this))}))}_createInnerEditor(e,t,i,s){return e.createInstance(jC,t,i,s)}_createDiffEditorContributions(){const e=G1.getDiffEditorContributions();for(const t of e)try{this._register(this._instantiationService.createInstance(t.ctor,this))}catch(i){Mt(i)}}get _targetEditor(){return this._editors.modified}getEditorType(){return mD.IDiffEditor}layout(e){this._rootSizeObserver.observe(e)}hasTextFocus(){return this._editors.original.hasTextFocus()||this._editors.modified.hasTextFocus()}saveViewState(){var e;const t=this._editors.original.saveViewState(),i=this._editors.modified.saveViewState();return{original:t,modified:i,modelState:(e=this._diffModel.get())===null||e===void 0?void 0:e.serializeState()}}restoreViewState(e){var t;if(e&&e.original&&e.modified){const i=e;this._editors.original.restoreViewState(i.original),this._editors.modified.restoreViewState(i.modified),i.modelState&&((t=this._diffModel.get())===null||t===void 0||t.restoreSerializedState(i.modelState))}}handleInitialized(){this._editors.original.handleInitialized(),this._editors.modified.handleInitialized()}createViewModel(e){return this._instantiationService.createInstance(y6,e,this._options)}getModel(){var e,t;return(t=(e=this._diffModel.get())===null||e===void 0?void 0:e.model)!==null&&t!==void 0?t:null}setModel(e,t){!e&&this._diffModel.get()&&this._accessibleDiffViewer.get().close();const i=e?"model"in e?{model:e,shouldDispose:!1}:{model:this.createViewModel(e),shouldDispose:!0}:void 0;this._diffModel.get()!==(i==null?void 0:i.model)&&jL(t,s=>{var o;qi.batchEventsGlobally(s,()=>{this._editors.original.setModel(i?i.model.model.original:null),this._editors.modified.setModel(i?i.model.model.modified:null)});const r=this._diffModel.get(),a=this._shouldDisposeDiffModel;this._shouldDisposeDiffModel=(o=i==null?void 0:i.shouldDispose)!==null&&o!==void 0?o:!1,this._diffModel.set(i==null?void 0:i.model,s),a&&(r==null||r.dispose())})}updateOptions(e){this._options.updateOptions(e)}getContainerDomNode(){return this._domElement}getOriginalEditor(){return this._editors.original}getModifiedEditor(){return this._editors.modified}getLineChanges(){var e;const t=(e=this._diffModel.get())===null||e===void 0?void 0:e.diff.get();return t?Vje(t):null}revert(e){const t=this._diffModel.get();!t||!t.isDiffUpToDate.get()||this._editors.modified.executeEdits("diffEditor",[{range:e.modified.toExclusiveRange(),text:t.model.original.getValueInRange(e.original.toExclusiveRange())}])}revertRangeMappings(e){const t=this._diffModel.get();if(!t||!t.isDiffUpToDate.get())return;const i=e.map(s=>({range:s.modifiedRange,text:t.model.original.getValueInRange(s.originalRange)}));this._editors.modified.executeEdits("diffEditor",i)}_goTo(e){this._editors.modified.setPosition(new ee(e.lineRangeMapping.modified.startLineNumber,1)),this._editors.modified.revealRangeInCenter(e.lineRangeMapping.modified.toExclusiveRange())}goToDiff(e){var t,i,s,o;const r=(i=(t=this._diffModel.get())===null||t===void 0?void 0:t.diff.get())===null||i===void 0?void 0:i.mappings;if(!r||r.length===0)return;const a=this._editors.modified.getPosition().lineNumber;let l;e==="next"?l=(s=r.find(c=>c.lineRangeMapping.modified.startLineNumber>a))!==null&&s!==void 0?s:r[0]:l=(o=mL(r,c=>c.lineRangeMapping.modified.startLineNumber{var t;const i=(t=e.diff.get())===null||t===void 0?void 0:t.mappings;!i||i.length===0||this._goTo(i[0])})}accessibleDiffViewerNext(){this._accessibleDiffViewer.get().next()}accessibleDiffViewerPrev(){this._accessibleDiffViewer.get().prev()}async waitForDiff(){const e=this._diffModel.get();e&&await e.waitForDiff()}mapToOtherSide(){var e,t;const i=this._editors.modified.hasWidgetFocus(),s=i?this._editors.modified:this._editors.original,o=i?this._editors.original:this._editors.modified;let r;const a=s.getSelection();if(a){const l=(t=(e=this._diffModel.get())===null||e===void 0?void 0:e.diff.get())===null||t===void 0?void 0:t.mappings.map(c=>i?c.lineRangeMapping.flip():c.lineRangeMapping);if(l){const c=oee(a.getStartPosition(),l),d=oee(a.getEndPosition(),l);r=A.plusRange(c,d)}}return{destination:o,destinationSelection:r}}switchSide(){const{destination:e,destinationSelection:t}=this.mapToOtherSide();e.focus(),t&&e.setSelection(t)}exitCompareMove(){const e=this._diffModel.get();e&&e.movedTextToCompare.set(void 0,void 0)}collapseAllUnchangedRegions(){var e;const t=(e=this._diffModel.get())===null||e===void 0?void 0:e.unchangedRegions.get();t&&rn(i=>{for(const s of t)s.collapseAll(i)})}showAllUnchangedRegions(){var e;const t=(e=this._diffModel.get())===null||e===void 0?void 0:e.unchangedRegions.get();t&&rn(i=>{for(const s of t)s.showAll(i)})}_handleCursorPositionChange(e,t){var i,s;if((e==null?void 0:e.reason)===3){const o=(s=(i=this._diffModel.get())===null||i===void 0?void 0:i.diff.get())===null||s===void 0?void 0:s.mappings.find(r=>t?r.lineRangeMapping.modified.contains(e.position.lineNumber):r.lineRangeMapping.original.contains(e.position.lineNumber));o!=null&&o.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(At.diffLineDeleted,{source:"diffEditor.cursorPositionChanged"}):o!=null&&o.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(At.diffLineInserted,{source:"diffEditor.cursorPositionChanged"}):o&&this._accessibilitySignalService.playSignal(At.diffLineModified,{source:"diffEditor.cursorPositionChanged"})}}};Tg=Hje([Zy(3,Ct),Zy(4,ht),Zy(5,vi),Zy(6,v_),Zy(7,m_)],Tg);function Vje(n){return n.mappings.map(e=>{const t=e.lineRangeMapping;let i,s,o,r,a=t.innerChanges;return t.original.isEmpty?(i=t.original.startLineNumber-1,s=0,a=void 0):(i=t.original.startLineNumber,s=t.original.endLineNumberExclusive-1),t.modified.isEmpty?(o=t.modified.startLineNumber-1,r=0,a=void 0):(o=t.modified.startLineNumber,r=t.modified.endLineNumberExclusive-1),{originalStartLineNumber:i,originalEndLineNumber:s,modifiedStartLineNumber:o,modifiedEndLineNumber:r,charChanges:a==null?void 0:a.map(l=>({originalStartLineNumber:l.originalRange.startLineNumber,originalStartColumn:l.originalRange.startColumn,originalEndLineNumber:l.originalRange.endLineNumber,originalEndColumn:l.originalRange.endColumn,modifiedStartLineNumber:l.modifiedRange.startLineNumber,modifiedStartColumn:l.modifiedRange.startColumn,modifiedEndLineNumber:l.modifiedRange.endLineNumber,modifiedEndColumn:l.modifiedRange.endColumn}))}})}var J$=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},mn=function(n,e){return function(t,i){e(t,i,n)}};let zje=0,yee=!1;function $je(n){if(!n){if(yee)return;yee=!0}eFe(n||Ji.document.body)}let tR=class extends jC{constructor(e,t,i,s,o,r,a,l,c,d,u,h,f){const g={...t};g.ariaLabel=g.ariaLabel||yA.editorViewAccessibleLabel,g.ariaLabel=g.ariaLabel+";"+yA.accessibilityHelpMessage,super(e,g,{},i,s,o,r,c,d,u,h,f),l instanceof nw?this._standaloneKeybindingService=l:this._standaloneKeybindingService=null,$je(g.ariaContainerElement),$He((p,_)=>i.createInstance(KC,p,_,{})),UHe(a)}addCommand(e,t,i){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;const s="DYNAMIC_"+ ++zje,o=pe.deserialize(i);return this._standaloneKeybindingService.addDynamicKeybinding(s,e,t,o),s}createContextKey(e,t){return this._contextKeyService.createKey(e,t)}addAction(e){if(typeof e.id!="string"||typeof e.label!="string"||typeof e.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),ne.None;const t=e.id,i=e.label,s=pe.and(pe.equals("editorId",this.getId()),pe.deserialize(e.precondition)),o=e.keybindings,r=pe.and(s,pe.deserialize(e.keybindingContext)),a=e.contextMenuGroupId||null,l=e.contextMenuOrder||0,c=(f,...g)=>Promise.resolve(e.run(this,...g)),d=new be,u=this.getId()+":"+t;if(d.add(ri.registerCommand(u,c)),a){const f={command:{id:u,title:i},when:s,group:a,order:l};d.add(ao.appendMenuItem(R.EditorContext,f))}if(Array.isArray(o))for(const f of o)d.add(this._standaloneKeybindingService.addDynamicKeybinding(u,f,c,r));const h=new Dce(u,i,i,void 0,s,(...f)=>Promise.resolve(e.run(this,...f)),this._contextKeyService);return this._actions.set(t,h),d.add(dt(()=>{this._actions.delete(t)})),d}_triggerCommand(e,t){if(this._codeEditorService instanceof hA)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(e,t)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(e,t)}};tR=J$([mn(2,ht),mn(3,vi),mn(4,Sn),mn(5,Ct),mn(6,$h),mn(7,Li),mn(8,js),mn(9,ps),mn(10,Ha),mn(11,gn),mn(12,Xe)],tR);let E6=class extends tR{constructor(e,t,i,s,o,r,a,l,c,d,u,h,f,g,p,_){const b={...t};ZA(u,b,!1);const w=c.registerEditorContainer(e);typeof b.theme=="string"&&c.setTheme(b.theme),typeof b.autoDetectHighContrast<"u"&&c.setAutoDetectHighContrast(!!b.autoDetectHighContrast);const y=b.model;delete b.model,super(e,b,i,s,o,r,a,l,c,d,h,p,_),this._configurationService=u,this._standaloneThemeService=c,this._register(w);let S;if(typeof y>"u"){const x=g.getLanguageIdByMimeType(b.language)||b.language||bl;S=Yue(f,g,b.value||"",x,void 0),this._ownsModel=!0}else S=y,this._ownsModel=!1;if(this._attachModel(S),S){const x={oldModelUrl:null,newModelUrl:S.uri};this._onDidChangeModel.fire(x)}}dispose(){super.dispose()}updateOptions(e){ZA(this._configurationService,e,!1),typeof e.theme=="string"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_postDetachModelCleanup(e){super._postDetachModelCleanup(e),e&&this._ownsModel&&(e.dispose(),this._ownsModel=!1)}};E6=J$([mn(2,ht),mn(3,vi),mn(4,Sn),mn(5,Ct),mn(6,$h),mn(7,Li),mn(8,Tl),mn(9,ps),mn(10,qt),mn(11,Ha),mn(12,Pn),mn(13,An),mn(14,gn),mn(15,Xe)],E6);let T6=class extends Tg{constructor(e,t,i,s,o,r,a,l,c,d,u,h){const f={...t};ZA(l,f,!0);const g=r.registerEditorContainer(e);typeof f.theme=="string"&&r.setTheme(f.theme),typeof f.autoDetectHighContrast<"u"&&r.setAutoDetectHighContrast(!!f.autoDetectHighContrast),super(e,f,{},s,i,o,h,d),this._configurationService=l,this._standaloneThemeService=r,this._register(g)}dispose(){super.dispose()}updateOptions(e){ZA(this._configurationService,e,!0),typeof e.theme=="string"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_createInnerEditor(e,t,i){return e.createInstance(tR,t,i)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(e,t,i){return this.getModifiedEditor().addCommand(e,t,i)}createContextKey(e,t){return this.getModifiedEditor().createContextKey(e,t)}addAction(e){return this.getModifiedEditor().addAction(e)}};T6=J$([mn(2,ht),mn(3,Ct),mn(4,vi),mn(5,Tl),mn(6,ps),mn(7,qt),mn(8,za),mn(9,m_),mn(10,zg),mn(11,v_)],T6);function Yue(n,e,t,i,s){if(t=t||"",!i){const o=t.indexOf(` `);let r=t;return o!==-1&&(r=t.substring(0,o)),See(n,t,e.createByFilepathOrFirstLine(s||null,r),s)}return See(n,t,e.createById(i),s)}function See(n,e,t,i){return n.createModel(e,t,i)}var Uje=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},jje=function(n,e){return function(t,i){e(t,i,n)}};class Kje{constructor(e,t){this.viewModel=e,this.deltaScrollVertical=t}getId(){return this.viewModel}}let iR=class extends ne{constructor(e,t,i,s){super(),this._container=e,this._overflowWidgetsDomNode=t,this._workbenchUIElementFactory=i,this._instantiationService=s,this._viewModel=li(this,void 0),this._collapsed=Rt(this,r=>{var a;return(a=this._viewModel.read(r))===null||a===void 0?void 0:a.collapsed.read(r)}),this._editorContentHeight=li(this,500),this.contentHeight=Rt(this,r=>(this._collapsed.read(r)?0:this._editorContentHeight.read(r))+this._outerEditorHeight),this._modifiedContentWidth=li(this,0),this._modifiedWidth=li(this,0),this._originalContentWidth=li(this,0),this._originalWidth=li(this,0),this.maxScroll=Rt(this,r=>{const a=this._modifiedContentWidth.read(r)-this._modifiedWidth.read(r),l=this._originalContentWidth.read(r)-this._originalWidth.read(r);return a>l?{maxScroll:a,width:this._modifiedWidth.read(r)}:{maxScroll:l,width:this._originalWidth.read(r)}}),this._elements=wi("div.multiDiffEntry",[wi("div.header@header",[wi("div.header-content",[wi("div.collapse-button@collapseButton"),wi("div.file-path",[wi("div.title.modified.show-file-icons@primaryPath",[]),wi("div.status.deleted@status",["R"]),wi("div.title.original.show-file-icons@secondaryPath",[])]),wi("div.actions@actions")])]),wi("div.editorParent",[wi("div.editorContainer@editor")])]),this.editor=this._register(this._instantiationService.createInstance(Tg,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode},{})),this.isModifedFocused=xee(this.editor.getModifiedEditor()),this.isOriginalFocused=xee(this.editor.getOriginalEditor()),this.isFocused=Rt(this,r=>this.isModifedFocused.read(r)||this.isOriginalFocused.read(r)),this._resourceLabel=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath)):void 0,this._resourceLabel2=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath)):void 0,this._dataStore=new be,this._headerHeight=40,this._lastScrollTop=-1,this._isSettingScrollTop=!1;const o=new RA(this._elements.collapseButton,{});this._register(Ut(r=>{o.element.className="",o.icon=this._collapsed.read(r)?Te.chevronRight:Te.chevronDown})),this._register(o.onDidClick(()=>{var r;(r=this._viewModel.get())===null||r===void 0||r.collapsed.set(!this._collapsed.get(),void 0)})),this._register(Ut(r=>{this._elements.editor.style.display=this._collapsed.read(r)?"none":"block"})),this._register(this.editor.getModifiedEditor().onDidLayoutChange(r=>{const a=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(a,void 0)})),this._register(this.editor.getOriginalEditor().onDidLayoutChange(r=>{const a=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(a,void 0)})),this._register(this.editor.onDidContentSizeChange(r=>{DN(a=>{this._editorContentHeight.set(r.contentHeight,a),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),a),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),a)})})),this._register(this.editor.getOriginalEditor().onDidScrollChange(r=>{if(this._isSettingScrollTop||!r.scrollTopChanged||!this._data)return;const a=r.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(a)})),this._register(Ut(r=>{var a;const l=(a=this._viewModel.read(r))===null||a===void 0?void 0:a.isActive.read(r);this._elements.root.classList.toggle("active",l)})),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._register(this._instantiationService.createInstance(eR,this._elements.actions,R.MultiDiffEditorFileToolbar,{actionRunner:this._register(new que(()=>{var r;return(r=this._viewModel.get())===null||r===void 0?void 0:r.modifiedUri})),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:r=>r.startsWith("navigation")},actionViewItemProvider:(r,a)=>Kde(s,r,a)}))}setScrollLeft(e){this._modifiedContentWidth.get()-this._modifiedWidth.get()>this._originalContentWidth.get()-this._originalWidth.get()?this.editor.getModifiedEditor().setScrollLeft(e):this.editor.getOriginalEditor().setScrollLeft(e)}setData(e){this._data=e;function t(s){return{...s,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}const i=e.viewModel.entry.value;i.onOptionsDidChange&&this._dataStore.add(i.onOptionsDidChange(()=>{var s;this.editor.updateOptions(t((s=i.options)!==null&&s!==void 0?s:{}))})),DN(s=>{var o,r,a,l;(o=this._resourceLabel)===null||o===void 0||o.setUri((r=e.viewModel.modifiedUri)!==null&&r!==void 0?r:e.viewModel.originalUri,{strikethrough:e.viewModel.modifiedUri===void 0});let c=!1,d=!1,u=!1,h="";e.viewModel.modifiedUri&&e.viewModel.originalUri&&e.viewModel.modifiedUri.path!==e.viewModel.originalUri.path?(h="R",c=!0):e.viewModel.modifiedUri?e.viewModel.originalUri||(h="A",u=!0):(h="D",d=!0),this._elements.status.classList.toggle("renamed",c),this._elements.status.classList.toggle("deleted",d),this._elements.status.classList.toggle("added",u),this._elements.status.innerText=h,(a=this._resourceLabel2)===null||a===void 0||a.setUri(c?e.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(e.viewModel,s),this.editor.setModel(e.viewModel.diffEditorViewModel,s),this.editor.updateOptions(t((l=i.options)!==null&&l!==void 0?l:{}))})}render(e,t,i,s){this._elements.root.style.visibility="visible",this._elements.root.style.top=`${e.start}px`,this._elements.root.style.height=`${e.length}px`,this._elements.root.style.width=`${t}px`,this._elements.root.style.position="absolute";const o=e.length-this._headerHeight,r=Math.max(0,Math.min(s.start-e.start,o));this._elements.header.style.transform=`translateY(${r}px)`,DN(a=>{this.editor.layout({width:t-2*8-2*1,height:e.length-this._outerEditorHeight})});try{this._isSettingScrollTop=!0,this._lastScrollTop=i,this.editor.getOriginalEditor().setScrollTop(i)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle("shadow",r>0||i>0),this._elements.header.classList.toggle("collapsed",r===o)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};iR=Uje([jje(3,ht)],iR);function xee(n){return qi(e=>{const t=new be;return t.add(n.onDidFocusEditorWidget(()=>e(!0))),t.add(n.onDidBlurEditorWidget(()=>e(!1))),t},()=>n.hasTextFocus())}class qje{constructor(e){this._create=e,this._unused=new Set,this._used=new Set,this._itemData=new Map}getUnusedObj(e){var t;let i;if(this._unused.size===0)i=this._create(e),this._itemData.set(i,e);else{const s=[...this._unused.values()];i=(t=s.find(o=>this._itemData.get(o).getId()===e.getId()))!==null&&t!==void 0?t:s[0],this._unused.delete(i),this._itemData.set(i,e),i.setData(e)}return this._used.add(i),{object:i,dispose:()=>{this._used.delete(i),this._unused.size>5?i.dispose():this._unused.add(i)}}}dispose(){for(const e of this._used)e.dispose();for(const e of this._unused)e.dispose();this._used.clear(),this._unused.clear()}}var Gje=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Lee=function(n,e){return function(t,i){e(t,i,n)}};let N6=class extends ne{constructor(e,t,i,s,o,r){super(),this._element=e,this._dimension=t,this._viewModel=i,this._workbenchUIElementFactory=s,this._parentContextKeyService=o,this._parentInstantiationService=r,this._scrollableElements=wi("div.scrollContent",[wi("div@content",{style:{overflow:"hidden"}}),wi("div.monaco-editor@overflowWidgetsDomNode",{})]),this._scrollable=this._register(new Ww({forceIntegerValues:!1,scheduleAtNextAnimationFrame:l=>Oa(gt(this._element),l),smoothScrollDuration:100})),this._scrollableElement=this._register(new MM(this._scrollableElements.root,{vertical:1,horizontal:1,useShadows:!1},this._scrollable)),this._elements=wi("div.monaco-component.multiDiffEditor",{},[wi("div",{},[this._scrollableElement.getDomNode()]),wi("div.placeholder@placeholder",{},[wi("div",[v("noChangedFiles","No Changed Files")])])]),this._sizeObserver=this._register(new Hue(this._element,void 0)),this._objectPool=this._register(new qje(l=>{const c=this._instantiationService.createInstance(iR,this._scrollableElements.content,this._scrollableElements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return c.setData(l),c})),this.scrollTop=qi(this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=qi(this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItemsInfo=J0(this,(l,c)=>{const d=this._viewModel.read(l);if(!d)return{items:[],getItem:g=>{throw new Gi}};const u=d.items.read(l),h=new Map;return{items:u.map(g=>{var p;const _=c.add(new Zje(g,this._objectPool,this.scrollLeft,w=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+w})})),b=(p=this._lastDocStates)===null||p===void 0?void 0:p[_.getKey()];return b&&rn(w=>{_.setViewState(b,w)}),h.set(g,_),_}),getItem:g=>h.get(g)}}),this._viewItems=this._viewItemsInfo.map(this,l=>l.items),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,(l,c)=>l.reduce((d,u)=>d+u.contentHeight.read(c)+this._spaceBetweenPx,0)),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new kD([Ct,this._contextKeyService]))),this._lastDocStates={},this._contextKeyService.createKey(W.inMultiDiffEditor.key,!0),this._register(uc((l,c)=>{const d=this._viewModel.read(l);if(d&&d.contextKeys)for(const[u,h]of Object.entries(d.contextKeys)){const f=this._contextKeyService.createKey(u,void 0);f.set(h),c.add(dt(()=>f.reset()))}}));const a=this._parentContextKeyService.createKey(W.multiDiffEditorAllCollapsed.key,!1);this._register(Ut(l=>{const c=this._viewModel.read(l);if(c){const d=c.items.read(l).every(u=>u.collapsed.read(l));a.set(d)}})),this._register(Ut(l=>{const c=this._dimension.read(l);this._sizeObserver.observe(c)})),this._register(Ut(l=>{const c=this._viewItems.read(l);this._elements.placeholder.classList.toggle("visible",c.length===0)})),this._scrollableElements.content.style.position="relative",this._register(Ut(l=>{const c=this._sizeObserver.height.read(l);this._scrollableElements.root.style.height=`${c}px`;const d=this._totalHeight.read(l);this._scrollableElements.content.style.height=`${d}px`;const u=this._sizeObserver.width.read(l);let h=u;const f=this._viewItems.read(l),g=pz(f,oa(p=>p.maxScroll.read(l).maxScroll,Qc));if(g){const p=g.maxScroll.read(l);h=u+p.maxScroll}this._scrollableElement.setScrollDimensions({width:u,height:c,scrollHeight:d,scrollWidth:h})})),e.replaceChildren(this._elements.root),this._register(dt(()=>{e.replaceChildren()})),this._register(this._register(Ut(l=>{DN(c=>{this.render(l)})})))}render(e){const t=this.scrollTop.read(e);let i=0,s=0,o=0;const r=this._sizeObserver.height.read(e),a=zt.ofStartAndLength(t,r),l=this._sizeObserver.width.read(e);for(const c of this._viewItems.read(e)){const d=c.contentHeight.read(e),u=Math.min(d,r),h=zt.ofStartAndLength(s,u),f=zt.ofStartAndLength(o,d);if(f.isBefore(a))i-=d-u,c.hide();else if(f.isAfter(a))c.hide();else{const g=Math.max(0,Math.min(a.start-f.start,d-u));i-=g;const p=zt.ofStartAndLength(t+i,r);c.render(h,g,l,p)}s+=u+this._spaceBetweenPx,o+=d+this._spaceBetweenPx}this._scrollableElements.content.style.transform=`translateY(${-(t+i)}px)`}};N6=Gje([Lee(4,Ct),Lee(5,ht)],N6);class Zje extends ne{constructor(e,t,i,s){super(),this.viewModel=e,this._objectPool=t,this._scrollLeft=i,this._deltaScrollVertical=s,this._templateRef=this._register(KL(this,void 0)),this.contentHeight=Rt(this,o=>{var r,a,l;return(l=(a=(r=this._templateRef.read(o))===null||r===void 0?void 0:r.object.contentHeight)===null||a===void 0?void 0:a.read(o))!==null&&l!==void 0?l:this.viewModel.lastTemplateData.read(o).contentHeight}),this.maxScroll=Rt(this,o=>{var r,a;return(a=(r=this._templateRef.read(o))===null||r===void 0?void 0:r.object.maxScroll.read(o))!==null&&a!==void 0?a:{maxScroll:0,scrollWidth:0}}),this.template=Rt(this,o=>{var r;return(r=this._templateRef.read(o))===null||r===void 0?void 0:r.object}),this._isHidden=li(this,!1),this._isFocused=Rt(this,o=>{var r,a;return(a=(r=this.template.read(o))===null||r===void 0?void 0:r.isFocused.read(o))!==null&&a!==void 0?a:!1}),this.viewModel.setIsFocused(this._isFocused,void 0),this._register(Ut(o=>{var r;const a=this._scrollLeft.read(o);(r=this._templateRef.read(o))===null||r===void 0||r.object.setScrollLeft(a)})),this._register(Ut(o=>{const r=this._templateRef.read(o);!r||!this._isHidden.read(o)||r.object.isFocused.read(o)||this._clear()}))}dispose(){this._clear(),super.dispose()}toString(){var e;return`VirtualViewItem(${(e=this.viewModel.entry.value.modified)===null||e===void 0?void 0:e.uri.toString()})`}getKey(){return this.viewModel.getKey()}setViewState(e,t){var i;this.viewModel.collapsed.set(e.collapsed,t),this._updateTemplateData(t);const s=this.viewModel.lastTemplateData.get(),o=(i=e.selections)===null||i===void 0?void 0:i.map(it.liftSelection);this.viewModel.lastTemplateData.set({...s,selections:o},t);const r=this._templateRef.get();r&&o&&r.object.editor.setSelections(o)}_updateTemplateData(e){var t;const i=this._templateRef.get();i&&this.viewModel.lastTemplateData.set({contentHeight:i.object.contentHeight.get(),selections:(t=i.object.editor.getSelections())!==null&&t!==void 0?t:void 0},e)}_clear(){const e=this._templateRef.get();e&&rn(t=>{this._updateTemplateData(t),e.object.hide(),this._templateRef.set(void 0,t)})}hide(){this._isHidden.set(!0,void 0)}render(e,t,i,s){this._isHidden.set(!1,void 0);let o=this._templateRef.get();if(!o){o=this._objectPool.getUnusedObj(new Kje(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(o,void 0);const r=this.viewModel.lastTemplateData.get().selections;r&&o.object.editor.setSelections(r)}o.object.render(e,i,t,s)}}V("multiDiffEditor.headerBackground",{dark:"#262626",light:"tab.inactiveBackground",hcDark:"tab.inactiveBackground",hcLight:"tab.inactiveBackground"},v("multiDiffEditor.headerBackground","The background color of the diff editor's header"));V("multiDiffEditor.background",{dark:"editorBackground",light:"editorBackground",hcDark:"editorBackground",hcLight:"editorBackground"},v("multiDiffEditor.background","The background color of the multi file diff editor"));V("multiDiffEditor.border",{dark:"sideBarSectionHeader.border",light:"#cccccc",hcDark:"sideBarSectionHeader.border",hcLight:"#cccccc"},v("multiDiffEditor.border","The border color of the multi file diff editor"));var Yje=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Xje=function(n,e){return function(t,i){e(t,i,n)}};let A6=class extends ne{constructor(e,t,i){super(),this._element=e,this._workbenchUIElementFactory=t,this._instantiationService=i,this._dimension=li(this,void 0),this._viewModel=li(this,void 0),this._widgetImpl=J0(this,(s,o)=>(Wc(iR,s),o.add(this._instantiationService.createInstance(Wc(N6,s),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory)))),this._register(RD(this._widgetImpl))}};A6=Yje([Xje(2,ht)],A6);function Qje(n,e,t){return St.initialize(t||{}).createInstance(E6,n,e)}function Jje(n){return St.get(vi).onCodeEditorAdd(t=>{n(t)})}function eKe(n){return St.get(vi).onDiffEditorAdd(t=>{n(t)})}function tKe(){return St.get(vi).listCodeEditors()}function iKe(){return St.get(vi).listDiffEditors()}function nKe(n,e,t){return St.initialize(t||{}).createInstance(T6,n,e)}function sKe(n,e){const t=St.initialize(e||{});return new A6(n,{},t)}function oKe(n){if(typeof n.id!="string"||typeof n.run!="function")throw new Error("Invalid command descriptor, `id` and `run` are required properties!");return ri.registerCommand(n.id,n.run)}function rKe(n){if(typeof n.id!="string"||typeof n.label!="string"||typeof n.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");const e=pe.deserialize(n.precondition),t=(s,...o)=>Us.runEditorCommand(s,o,e,(r,a,l)=>Promise.resolve(n.run(a,...l))),i=new be;if(i.add(ri.registerCommand(n.id,t)),n.contextMenuGroupId){const s={command:{id:n.id,title:n.label},when:e,group:n.contextMenuGroupId,order:n.contextMenuOrder||0};i.add(ao.appendMenuItem(R.EditorContext,s))}if(Array.isArray(n.keybindings)){const s=St.get(Li);if(!(s instanceof nw))console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService");else{const o=pe.and(e,pe.deserialize(n.keybindingContext));i.add(s.addDynamicKeybindings(n.keybindings.map(r=>({keybinding:r,command:n.id,when:o}))))}}return i}function aKe(n){return Xue([n])}function Xue(n){const e=St.get(Li);return e instanceof nw?e.addDynamicKeybindings(n.map(t=>({keybinding:t.keybinding,command:t.command,commandArgs:t.commandArgs,when:pe.deserialize(t.when)}))):(console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),ne.None)}function lKe(n,e,t){const i=St.get(An),s=i.getLanguageIdByMimeType(e)||e;return Yue(St.get(Pn),i,n,s,t)}function cKe(n,e){const t=St.get(An),i=t.getLanguageIdByMimeType(e)||e||bl;n.setLanguage(t.createById(i))}function dKe(n,e,t){n&&St.get(Uh).changeOne(e,n.uri,t)}function uKe(n){St.get(Uh).changeAll(n,[])}function hKe(n){return St.get(Uh).read(n)}function fKe(n){return St.get(Uh).onMarkerChanged(n)}function gKe(n){return St.get(Pn).getModel(n)}function pKe(){return St.get(Pn).getModels()}function mKe(n){return St.get(Pn).onModelAdded(n)}function _Ke(n){return St.get(Pn).onModelRemoved(n)}function vKe(n){return St.get(Pn).onModelLanguageChanged(t=>{n({model:t.model,oldLanguage:t.oldLanguageId})})}function bKe(n){return k4e(St.get(Pn),St.get(gn),n)}function CKe(n,e){const t=St.get(An),i=St.get(Tl);return Sz.colorizeElement(i,t,n,e).then(()=>{i.registerEditorContainer(n)})}function wKe(n,e,t){const i=St.get(An);return St.get(Tl).registerEditorContainer(Ji.document.body),Sz.colorize(i,n,e,t)}function yKe(n,e,t=4){return St.get(Tl).registerEditorContainer(Ji.document.body),Sz.colorizeModelLine(n,e,t)}function SKe(n){const e=Zn.get(n);return e||{getInitialState:()=>OC,tokenize:(t,i,s)=>Cz(n,s)}}function xKe(n,e){Zn.getOrCreate(e);const t=SKe(e),i=Wh(n),s=[];let o=t.getInitialState();for(let r=0,a=i.length;r{var o;if(!i)return null;const r=(o=t.options)===null||o===void 0?void 0:o.selection;let a;return r&&typeof r.endLineNumber=="number"&&typeof r.endColumn=="number"?a=r:r&&(a={lineNumber:r.startLineNumber,column:r.startColumn}),await n.openCodeEditor(i,t.resource,a)?i:null})}function NKe(){return{create:Qje,getEditors:tKe,getDiffEditors:iKe,onDidCreateEditor:Jje,onDidCreateDiffEditor:eKe,createDiffEditor:nKe,addCommand:oKe,addEditorAction:rKe,addKeybindingRule:aKe,addKeybindingRules:Xue,createModel:lKe,setModelLanguage:cKe,setModelMarkers:dKe,getModelMarkers:hKe,removeAllMarkers:uKe,onDidChangeMarkers:fKe,getModels:pKe,getModel:gKe,onDidCreateModel:mKe,onWillDisposeModel:_Ke,onDidChangeModelLanguage:vKe,createWebWorker:bKe,colorizeElement:CKe,colorize:wKe,colorizeModelLine:yKe,tokenize:xKe,defineTheme:LKe,setTheme:kKe,remeasureFonts:DKe,registerCommand:IKe,registerLinkOpener:EKe,registerEditorOpener:TKe,AccessibilitySupport:r7,ContentWidgetPositionPreference:h7,CursorChangeReason:f7,DefaultEndOfLine:g7,EditorAutoIndentStrategy:m7,EditorOption:_7,EndOfLinePreference:v7,EndOfLineSequence:b7,MinimapPosition:T7,MinimapSectionHeaderStyle:N7,MouseTargetType:A7,OverlayWidgetPositionPreference:P7,OverviewRulerLane:O7,GlyphMarginLane:C7,RenderLineNumbersType:W7,RenderMinimap:H7,ScrollbarVisibility:z7,ScrollType:V7,TextEditorCursorBlinkingStyle:G7,TextEditorCursorStyle:Z7,TrackedRangeStickiness:Y7,WrappingIndent:X7,InjectedTextCursorStops:S7,PositionAffinity:B7,ShowLightbulbIconMode:U7,ConfigurationChangedEvent:Jre,BareFontInfo:zv,FontInfo:aB,TextModelResolvedOptions:gN,FindMatch:pL,ApplyUpdateResult:sx,EditorZoom:Kl,createMultiFileDiffEditor:sKe,EditorType:mD,EditorOptions:gu}}function AKe(n,e){if(!e||!Array.isArray(e))return!1;for(const t of e)if(!n(t))return!1;return!0}function pT(n,e){return typeof n=="boolean"?n:e}function kee(n,e){return typeof n=="string"?n:e}function RKe(n){const e={};for(const t of n)e[t]=!0;return e}function Dee(n,e=!1){e&&(n=n.map(function(i){return i.toLowerCase()}));const t=RKe(n);return e?function(i){return t[i.toLowerCase()]!==void 0&&t.hasOwnProperty(i.toLowerCase())}:function(i){return t[i]!==void 0&&t.hasOwnProperty(i)}}function R6(n,e,t){e=e.replace(/@@/g,"");let i=0,s;do s=!1,e=e.replace(/@(\w+)/g,function(r,a){s=!0;let l="";if(typeof n[a]=="string")l=n[a];else if(n[a]&&n[a]instanceof RegExp)l=n[a].source;else throw n[a]===void 0?Ln(n,"language definition does not contain attribute '"+a+"', used at: "+e):Ln(n,"attribute reference '"+a+"' must be a string, used at: "+e);return fv(l)?"":"(?:"+l+")"}),i++;while(s&&i<5);e=e.replace(/\x01/g,"@");const o=(n.ignoreCase?"i":"")+(n.unicode?"u":"");if(t&&e.match(/\$[sS](\d\d?)/g)){let a=null,l=null;return c=>(l&&a===c||(a=c,l=new RegExp(K4e(n,e,c),o)),l)}return new RegExp(e,o)}function MKe(n,e,t,i){if(i<0)return n;if(i=100){i=i-100;const s=t.split(".");if(s.unshift(t),i=0&&(i.tokenSubst=!0),typeof t.bracket=="string")if(t.bracket==="@open")i.bracket=1;else if(t.bracket==="@close")i.bracket=-1;else throw Ln(n,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+e);if(t.next){if(typeof t.next!="string")throw Ln(n,"the next state must be a string value in rule: "+e);{let s=t.next;if(!/^(@pop|@push|@popall)$/.test(s)&&(s[0]==="@"&&(s=s.substr(1)),s.indexOf("$")<0&&!q4e(n,Ap(n,s,"",[],""))))throw Ln(n,"the next state '"+t.next+"' is not defined in rule: "+e);i.next=s}}return typeof t.goBack=="number"&&(i.goBack=t.goBack),typeof t.switchTo=="string"&&(i.switchTo=t.switchTo),typeof t.log=="string"&&(i.log=t.log),typeof t.nextEmbedded=="string"&&(i.nextEmbedded=t.nextEmbedded,n.usesEmbedded=!0),i}}else if(Array.isArray(t)){const i=[];for(let s=0,o=t.length;s0&&i[0]==="^",this.name=this.name+": "+i,this.regex=R6(e,"^(?:"+(this.matchOnlyAtLineStart?i.substr(1):i)+")",!0)}setAction(e,t){this.action=M6(e,this.name,t)}resolveRegex(e){return this.regex instanceof RegExp?this.regex:this.regex(e)}}function Que(n,e){if(!e||typeof e!="object")throw new Error("Monarch: expecting a language definition object");const t={};t.languageId=n,t.includeLF=pT(e.includeLF,!1),t.noThrow=!1,t.maxStack=100,t.start=typeof e.start=="string"?e.start:null,t.ignoreCase=pT(e.ignoreCase,!1),t.unicode=pT(e.unicode,!1),t.tokenPostfix=kee(e.tokenPostfix,"."+t.languageId),t.defaultToken=kee(e.defaultToken,"source"),t.usesEmbedded=!1;const i=e;i.languageId=n,i.includeLF=t.includeLF,i.ignoreCase=t.ignoreCase,i.unicode=t.unicode,i.noThrow=t.noThrow,i.usesEmbedded=t.usesEmbedded,i.stateNames=e.tokenizer,i.defaultToken=t.defaultToken;function s(r,a,l){for(const c of l){let d=c.include;if(d){if(typeof d!="string")throw Ln(t,"an 'include' attribute must be a string at: "+r);if(d[0]==="@"&&(d=d.substr(1)),!e.tokenizer[d])throw Ln(t,"include target '"+d+"' is not defined at: "+r);s(r+"."+d,a,e.tokenizer[d])}else{const u=new OKe(r);if(Array.isArray(c)&&c.length>=1&&c.length<=3)if(u.setRegex(i,c[0]),c.length>=3)if(typeof c[1]=="string")u.setAction(i,{token:c[1],next:c[2]});else if(typeof c[1]=="object"){const h=c[1];h.next=c[2],u.setAction(i,h)}else throw Ln(t,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+r);else u.setAction(i,c[1]);else{if(!c.regex)throw Ln(t,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+r);c.name&&typeof c.name=="string"&&(u.name=c.name),c.matchOnlyAtStart&&(u.matchOnlyAtLineStart=pT(c.matchOnlyAtLineStart,!1)),u.setRegex(i,c.regex),u.setAction(i,c.action)}a.push(u)}}}if(!e.tokenizer||typeof e.tokenizer!="object")throw Ln(t,"a language definition must define the 'tokenizer' attribute as an object");t.tokenizer=[];for(const r in e.tokenizer)if(e.tokenizer.hasOwnProperty(r)){t.start||(t.start=r);const a=e.tokenizer[r];t.tokenizer[r]=new Array,s("tokenizer."+r,t.tokenizer[r],a)}if(t.usesEmbedded=i.usesEmbedded,e.brackets){if(!Array.isArray(e.brackets))throw Ln(t,"the 'brackets' attribute must be defined as an array")}else e.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];const o=[];for(const r of e.brackets){let a=r;if(a&&Array.isArray(a)&&a.length===3&&(a={token:a[2],open:a[0],close:a[1]}),a.open===a.close)throw Ln(t,"open and close brackets in a 'brackets' attribute must be different: "+a.open+` hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof a.open=="string"&&typeof a.token=="string"&&typeof a.close=="string")o.push({token:a.token+t.tokenPostfix,open:vg(t,a.open),close:vg(t,a.close)});else throw Ln(t,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return t.brackets=o,t.noThrow=!0,t}function FKe(n){RC.registerLanguage(n)}function BKe(){let n=[];return n=n.concat(RC.getLanguages()),n}function WKe(n){return St.get(An).languageIdCodec.encodeLanguageId(n)}function HKe(n,e){return St.withServices(()=>{const i=St.get(An).onDidRequestRichLanguageFeatures(s=>{s===n&&(i.dispose(),e())});return i})}function VKe(n,e){return St.withServices(()=>{const i=St.get(An).onDidRequestBasicLanguageFeatures(s=>{s===n&&(i.dispose(),e())});return i})}function zKe(n,e){if(!St.get(An).isRegisteredLanguageId(n))throw new Error(`Cannot set configuration for unknown language ${n}`);return St.get(gn).register(n,e,100)}class $Ke{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,i){if(typeof this._actual.tokenize=="function")return lk.adaptTokenize(this._languageId,this._actual,e,i);throw new Error("Not supported!")}tokenizeEncoded(e,t,i){const s=this._actual.tokenizeEncoded(e,i);return new oM(s.tokens,s.endState)}}class lk{constructor(e,t,i,s){this._languageId=e,this._actual=t,this._languageService=i,this._standaloneThemeService=s}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){const i=[];let s=0;for(let o=0,r=e.length;o0&&o[r-1]===h)continue;let f=u.startIndex;c===0?f=0:f{const i=await Promise.resolve(e.create());return i?UKe(i)?ehe(n,i):new yL(St.get(An),St.get(Tl),n,Que(n,i),St.get(qt)):null});return Zn.registerFactory(n,t)}function qKe(n,e){if(!St.get(An).isRegisteredLanguageId(n))throw new Error(`Cannot set tokens provider for unknown language ${n}`);return Jue(e)?eU(n,{create:()=>e}):Zn.register(n,ehe(n,e))}function GKe(n,e){const t=i=>new yL(St.get(An),St.get(Tl),n,Que(n,i),St.get(qt));return Jue(e)?eU(n,{create:()=>e}):Zn.register(n,t(e))}function ZKe(n,e){return St.get(Xe).referenceProvider.register(n,e)}function YKe(n,e){return St.get(Xe).renameProvider.register(n,e)}function XKe(n,e){return St.get(Xe).newSymbolNamesProvider.register(n,e)}function QKe(n,e){return St.get(Xe).signatureHelpProvider.register(n,e)}function JKe(n,e){return St.get(Xe).hoverProvider.register(n,{provideHover:async(i,s,o,r)=>{const a=i.getWordAtPosition(s);return Promise.resolve(e.provideHover(i,s,o,r)).then(l=>{if(l)return!l.range&&a&&(l.range=new A(s.lineNumber,a.startColumn,s.lineNumber,a.endColumn)),l.range||(l.range=new A(s.lineNumber,s.column,s.lineNumber,s.column)),l})}})}function eqe(n,e){return St.get(Xe).documentSymbolProvider.register(n,e)}function tqe(n,e){return St.get(Xe).documentHighlightProvider.register(n,e)}function iqe(n,e){return St.get(Xe).linkedEditingRangeProvider.register(n,e)}function nqe(n,e){return St.get(Xe).definitionProvider.register(n,e)}function sqe(n,e){return St.get(Xe).implementationProvider.register(n,e)}function oqe(n,e){return St.get(Xe).typeDefinitionProvider.register(n,e)}function rqe(n,e){return St.get(Xe).codeLensProvider.register(n,e)}function aqe(n,e,t){return St.get(Xe).codeActionProvider.register(n,{providedCodeActionKinds:t==null?void 0:t.providedCodeActionKinds,documentation:t==null?void 0:t.documentation,provideCodeActions:(s,o,r,a)=>{const c=St.get(Uh).read({resource:s.uri}).filter(d=>A.areIntersectingOrTouching(d,o));return e.provideCodeActions(s,o,{markers:c,only:r.only,trigger:r.trigger},a)},resolveCodeAction:e.resolveCodeAction})}function lqe(n,e){return St.get(Xe).documentFormattingEditProvider.register(n,e)}function cqe(n,e){return St.get(Xe).documentRangeFormattingEditProvider.register(n,e)}function dqe(n,e){return St.get(Xe).onTypeFormattingEditProvider.register(n,e)}function uqe(n,e){return St.get(Xe).linkProvider.register(n,e)}function hqe(n,e){return St.get(Xe).completionProvider.register(n,e)}function fqe(n,e){return St.get(Xe).colorProvider.register(n,e)}function gqe(n,e){return St.get(Xe).foldingRangeProvider.register(n,e)}function pqe(n,e){return St.get(Xe).declarationProvider.register(n,e)}function mqe(n,e){return St.get(Xe).selectionRangeProvider.register(n,e)}function _qe(n,e){return St.get(Xe).documentSemanticTokensProvider.register(n,e)}function vqe(n,e){return St.get(Xe).documentRangeSemanticTokensProvider.register(n,e)}function bqe(n,e){return St.get(Xe).inlineCompletionsProvider.register(n,e)}function Cqe(n,e){return St.get(Xe).inlineEditProvider.register(n,e)}function wqe(n,e){return St.get(Xe).inlayHintsProvider.register(n,e)}function yqe(){return{register:FKe,getLanguages:BKe,onLanguage:HKe,onLanguageEncountered:VKe,getEncodedLanguageId:WKe,setLanguageConfiguration:zKe,setColorMap:KKe,registerTokensProviderFactory:eU,setTokensProvider:qKe,setMonarchTokensProvider:GKe,registerReferenceProvider:ZKe,registerRenameProvider:YKe,registerNewSymbolNameProvider:XKe,registerCompletionItemProvider:hqe,registerSignatureHelpProvider:QKe,registerHoverProvider:JKe,registerDocumentSymbolProvider:eqe,registerDocumentHighlightProvider:tqe,registerLinkedEditingRangeProvider:iqe,registerDefinitionProvider:nqe,registerImplementationProvider:sqe,registerTypeDefinitionProvider:oqe,registerCodeLensProvider:rqe,registerCodeActionProvider:aqe,registerDocumentFormattingEditProvider:lqe,registerDocumentRangeFormattingEditProvider:cqe,registerOnTypeFormattingEditProvider:dqe,registerLinkProvider:uqe,registerColorProvider:fqe,registerFoldingRangeProvider:gqe,registerDeclarationProvider:pqe,registerSelectionRangeProvider:mqe,registerDocumentSemanticTokensProvider:_qe,registerDocumentRangeSemanticTokensProvider:vqe,registerInlineCompletionsProvider:bqe,registerInlineEditProvider:Cqe,registerInlayHintsProvider:wqe,DocumentHighlightKind:p7,CompletionItemKind:c7,CompletionItemTag:d7,CompletionItemInsertTextRule:l7,SymbolKind:K7,SymbolTag:q7,IndentAction:y7,CompletionTriggerKind:u7,SignatureHelpTriggerKind:j7,InlayHintKind:x7,InlineCompletionTriggerKind:L7,InlineEditTriggerKind:k7,CodeActionTriggerType:a7,NewSymbolNameTag:R7,NewSymbolNameTriggerKind:M7,PartialAcceptTriggerKind:F7,HoverVerbosityAction:w7,FoldingRangeKind:Nr,SelectedSuggestionInfo:gae}}const tU=Jt("IEditorCancelService"),the=new He("cancellableOperation",!1,v("cancellableOperation","Whether the editor runs a cancellable operation, e.g. like 'Peek References'"));ai(tU,class{constructor(){this._tokens=new WeakMap}add(n,e){let t=this._tokens.get(n);t||(t=n.invokeWithinContext(s=>{const o=the.bindTo(s.get(Ct)),r=new Tr;return{key:o,tokens:r}}),this._tokens.set(n,t));let i;return t.key.set(!0),i=t.tokens.push(e),()=>{i&&(i(),t.key.set(!t.tokens.isEmpty()),i=void 0)}}cancel(n){const e=this._tokens.get(n);if(!e)return;const t=e.tokens.pop();t&&(t.cancel(),e.key.set(!e.tokens.isEmpty()))}},1);class Sqe extends $n{constructor(e,t){super(t),this.editor=e,this._unregister=e.invokeWithinContext(i=>i.get(tU).add(e,this))}dispose(){this._unregister(),super.dispose()}}Fe(new class extends Us{constructor(){super({id:"editor.cancelOperation",kbOpts:{weight:100,primary:9},precondition:the})}runEditorCommand(n,e){n.get(tU).cancel(e)}});let ihe=class P6{constructor(e,t){if(this.flags=t,this.flags&1){const i=e.getModel();this.modelVersionId=i?l0("{0}#{1}",i.uri.toString(),i.getVersionId()):null}else this.modelVersionId=null;this.flags&4?this.position=e.getPosition():this.position=null,this.flags&2?this.selection=e.getSelection():this.selection=null,this.flags&8?(this.scrollLeft=e.getScrollLeft(),this.scrollTop=e.getScrollTop()):(this.scrollLeft=-1,this.scrollTop=-1)}_equals(e){if(!(e instanceof P6))return!1;const t=e;return!(this.modelVersionId!==t.modelVersionId||this.scrollLeft!==t.scrollLeft||this.scrollTop!==t.scrollTop||!this.position&&t.position||this.position&&!t.position||this.position&&t.position&&!this.position.equals(t.position)||!this.selection&&t.selection||this.selection&&!t.selection||this.selection&&t.selection&&!this.selection.equalsRange(t.selection))}validate(e){return this._equals(new P6(e,this.flags))}};class Km extends Sqe{constructor(e,t,i,s){super(e,s),this._listener=new be,t&4&&this._listener.add(e.onDidChangeCursorPosition(o=>{(!i||!A.containsPosition(i,o.position))&&this.cancel()})),t&2&&this._listener.add(e.onDidChangeCursorSelection(o=>{(!i||!A.containsRange(i,o.selection))&&this.cancel()})),t&8&&this._listener.add(e.onDidScrollChange(o=>this.cancel())),t&1&&(this._listener.add(e.onDidChangeModel(o=>this.cancel())),this._listener.add(e.onDidChangeModelContent(o=>this.cancel())))}dispose(){this._listener.dispose(),super.dispose()}}class iU extends $n{constructor(e,t){super(t),this._listener=e.onDidChangeContent(()=>this.cancel())}dispose(){this._listener.dispose(),super.dispose()}}function Ph(n){return n&&typeof n.getEditorType=="function"?n.getEditorType()===mD.ICodeEditor:!1}function nU(n){return n&&typeof n.getEditorType=="function"?n.getEditorType()===mD.IDiffEditor:!1}function xqe(n){return!!n&&typeof n=="object"&&typeof n.onDidChangeActiveEditor=="function"}function nhe(n){return Ph(n)?n:nU(n)?n.getModifiedEditor():xqe(n)&&Ph(n.activeCodeEditor)?n.activeCodeEditor:null}class ow{static _handleEolEdits(e,t){let i;const s=[];for(const o of t)typeof o.eol=="number"&&(i=o.eol),o.range&&typeof o.text=="string"&&s.push(o);return typeof i=="number"&&e.hasModel()&&e.getModel().pushEOL(i),s}static _isFullModelReplaceEdit(e,t){if(!e.hasModel())return!1;const i=e.getModel(),s=i.validateRange(t.range);return i.getFullModelRange().equalsRange(s)}static execute(e,t,i){i&&e.pushUndoStop();const s=uu.capture(e),o=ow._handleEolEdits(e,t);o.length===1&&ow._isFullModelReplaceEdit(e,o[0])?e.executeEdits("formatEditsCommand",o.map(r=>Mn.replace(A.lift(r.range),r.text))):e.executeEdits("formatEditsCommand",o.map(r=>Mn.replaceMove(A.lift(r.range),r.text))),i&&e.pushUndoStop(),s.restoreRelativeVerticalPositionOfCursor(e)}}class Iee{constructor(e){this.value=e,this._lower=e.toLowerCase()}static toKey(e){return typeof e=="string"?e.toLowerCase():e._lower}}class Lqe{constructor(e){if(this._set=new Set,e)for(const t of e)this.add(t)}add(e){this._set.add(Iee.toKey(e))}has(e){return this._set.has(Iee.toKey(e))}}function she(n,e,t){const i=[],s=new Lqe,o=n.ordered(t);for(const a of o)i.push(a),a.extensionId&&s.add(a.extensionId);const r=e.ordered(t);for(const a of r){if(a.extensionId){if(s.has(a.extensionId))continue;s.add(a.extensionId)}i.push({displayName:a.displayName,extensionId:a.extensionId,provideDocumentFormattingEdits(l,c,d){return a.provideDocumentRangeFormattingEdits(l,l.getFullModelRange(),c,d)}})}return i}class x0{static setFormatterSelector(e){return{dispose:x0._selectors.unshift(e)}}static async select(e,t,i,s){if(e.length===0)return;const o=oi.first(x0._selectors);if(o)return await o(e,t,i,s)}}x0._selectors=new Tr;async function ohe(n,e,t,i,s,o,r){const a=n.get(ht),{documentRangeFormattingEditProvider:l}=n.get(Xe),c=Ph(e)?e.getModel():e,d=l.ordered(c),u=await x0.select(d,c,i,2);u&&(s.report(u),await a.invokeFunction(kqe,u,e,t,o,r))}async function kqe(n,e,t,i,s,o){var r,a;const l=n.get(bc),c=n.get(er),d=n.get(v_);let u,h;Ph(t)?(u=t.getModel(),h=new Km(t,5,void 0,s)):(u=t,h=new iU(t,s));const f=[];let g=0;for(const y of AV(i).sort(A.compareRangesUsingStarts))g>0&&A.areIntersectingOrTouching(f[g-1],y)?f[g-1]=A.fromPositions(f[g-1].getStartPosition(),y.getEndPosition()):g=f.push(y);const p=async y=>{var S,x;c.trace("[format][provideDocumentRangeFormattingEdits] (request)",(S=e.extensionId)===null||S===void 0?void 0:S.value,y);const k=await e.provideDocumentRangeFormattingEdits(u,y,u.getFormattingOptions(),h.token)||[];return c.trace("[format][provideDocumentRangeFormattingEdits] (response)",(x=e.extensionId)===null||x===void 0?void 0:x.value,k),k},_=(y,S)=>{if(!y.length||!S.length)return!1;const x=y.reduce((k,D)=>A.plusRange(k,D.range),y[0].range);if(!S.some(k=>A.intersectRanges(x,k.range)))return!1;for(const k of y)for(const D of S)if(A.intersectRanges(k.range,D.range))return!0;return!1},b=[],w=[];try{if(typeof e.provideDocumentRangesFormattingEdits=="function"){c.trace("[format][provideDocumentRangeFormattingEdits] (request)",(r=e.extensionId)===null||r===void 0?void 0:r.value,f);const y=await e.provideDocumentRangesFormattingEdits(u,f,u.getFormattingOptions(),h.token)||[];c.trace("[format][provideDocumentRangeFormattingEdits] (response)",(a=e.extensionId)===null||a===void 0?void 0:a.value,y),w.push(y)}else{for(const y of f){if(h.token.isCancellationRequested)return!0;w.push(await p(y))}for(let y=0;y({text:x.text,range:A.lift(x.range),forceMoveMarkers:!0})),x=>{for(const{range:k}of x)if(A.areIntersectingOrTouching(k,S))return[new it(k.startLineNumber,k.startColumn,k.endLineNumber,k.endColumn)];return null})}return d.playSignal(At.format,{userGesture:o}),!0}async function Dqe(n,e,t,i,s,o){const r=n.get(ht),a=n.get(Xe),l=Ph(e)?e.getModel():e,c=she(a.documentFormattingEditProvider,a.documentRangeFormattingEditProvider,l),d=await x0.select(c,l,t,1);d&&(i.report(d),await r.invokeFunction(Iqe,d,e,t,s,o))}async function Iqe(n,e,t,i,s,o){const r=n.get(bc),a=n.get(v_);let l,c;Ph(t)?(l=t.getModel(),c=new Km(t,5,void 0,s)):(l=t,c=new iU(t,s));let d;try{const u=await e.provideDocumentFormattingEdits(l,l.getFormattingOptions(),c.token);if(d=await r.computeMoreMinimalEdits(l.uri,u),c.token.isCancellationRequested)return!0}finally{c.dispose()}if(!d||d.length===0)return!1;if(Ph(t))ow.execute(t,d,i!==2),i!==2&&t.revealPositionInCenterIfOutsideViewport(t.getPosition(),1);else{const[{range:u}]=d,h=new it(u.startLineNumber,u.startColumn,u.endLineNumber,u.endColumn);l.pushEditOperations([h],d.map(f=>({text:f.text,range:A.lift(f.range),forceMoveMarkers:!0})),f=>{for(const{range:g}of f)if(A.areIntersectingOrTouching(g,h))return[new it(g.startLineNumber,g.startColumn,g.endLineNumber,g.endColumn)];return null})}return a.playSignal(At.format,{userGesture:o}),!0}async function Eqe(n,e,t,i,s,o){const r=e.documentRangeFormattingEditProvider.ordered(t);for(const a of r){const l=await Promise.resolve(a.provideDocumentRangeFormattingEdits(t,i,s,o)).catch(as);if(Zo(l))return await n.computeMoreMinimalEdits(t.uri,l)}}async function Tqe(n,e,t,i,s){const o=she(e.documentFormattingEditProvider,e.documentRangeFormattingEditProvider,t);for(const r of o){const a=await Promise.resolve(r.provideDocumentFormattingEdits(t,i,s)).catch(as);if(Zo(a))return await n.computeMoreMinimalEdits(t.uri,a)}}function rhe(n,e,t,i,s,o,r){const a=e.onTypeFormattingEditProvider.ordered(t);return a.length===0||a[0].autoFormatTriggerCharacters.indexOf(s)<0?Promise.resolve(void 0):Promise.resolve(a[0].provideOnTypeFormattingEdits(t,i,s,o,r)).catch(as).then(l=>n.computeMoreMinimalEdits(t.uri,l))}ri.registerCommand("_executeFormatRangeProvider",async function(n,...e){const[t,i,s]=e;mi(pt.isUri(t)),mi(A.isIRange(i));const o=n.get(fa),r=n.get(bc),a=n.get(Xe),l=await o.createModelReference(t);try{return Eqe(r,a,l.object.textEditorModel,A.lift(i),s,Qt.None)}finally{l.dispose()}});ri.registerCommand("_executeFormatDocumentProvider",async function(n,...e){const[t,i]=e;mi(pt.isUri(t));const s=n.get(fa),o=n.get(bc),r=n.get(Xe),a=await s.createModelReference(t);try{return Tqe(o,r,a.object.textEditorModel,i,Qt.None)}finally{a.dispose()}});ri.registerCommand("_executeFormatOnTypeProvider",async function(n,...e){const[t,i,s,o]=e;mi(pt.isUri(t)),mi(ee.isIPosition(i)),mi(typeof s=="string");const r=n.get(fa),a=n.get(bc),l=n.get(Xe),c=await r.createModelReference(t);try{return rhe(a,l,c.object.textEditorModel,ee.lift(i),s,o,Qt.None)}finally{c.dispose()}});gu.wrappingIndent.defaultValue=0;gu.glyphMargin.defaultValue=!1;gu.autoIndent.defaultValue=3;gu.overviewRulerLanes.defaultValue=2;x0.setFormatterSelector((n,e,t)=>Promise.resolve(n[0]));const jr=pae();jr.editor=NKe();jr.languages=yqe();const ahe=jr.CancellationTokenSource,lhe=jr.Emitter,che=jr.KeyCode,dhe=jr.KeyMod,uhe=jr.Position,hhe=jr.Range,fhe=jr.Selection,ghe=jr.SelectionDirection,nR=jr.MarkerSeverity,phe=jr.MarkerTag,mhe=jr.Uri,_he=jr.Token,sU=jr.editor,zd=jr.languages,Z5=globalThis.MonacoEnvironment;(Z5!=null&&Z5.globalAPI||typeof define=="function"&&define.amd)&&(globalThis.monaco=jr);typeof globalThis.require<"u"&&typeof globalThis.require.config=="function"&&globalThis.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});const HD=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource:ahe,Emitter:lhe,KeyCode:che,KeyMod:dhe,MarkerSeverity:nR,MarkerTag:phe,Position:uhe,Range:hhe,Selection:fhe,SelectionDirection:ghe,Token:_he,Uri:mhe,editor:sU,languages:zd},Symbol.toStringTag,{value:"Module"}));/*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var Nqe=Object.defineProperty,Aqe=Object.getOwnPropertyDescriptor,Rqe=Object.getOwnPropertyNames,Mqe=Object.prototype.hasOwnProperty,Pqe=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Rqe(e))!Mqe.call(n,s)&&s!==t&&Nqe(n,s,{get:()=>e[s],enumerable:!(i=Aqe(e,s))||i.enumerable});return n},Oqe=(n,e,t)=>(Pqe(n,e,"default"),t),PS={};Oqe(PS,HD);var vhe={},Y5={},Fqe=class bhe{static getOrCreate(e){return Y5[e]||(Y5[e]=new bhe(e)),Y5[e]}constructor(e){this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((t,i)=>{this._lazyLoadPromiseResolve=t,this._lazyLoadPromiseReject=i})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,vhe[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}};function ft(n){const e=n.id;vhe[e]=n,PS.languages.register(n);const t=Fqe.getOrCreate(e);PS.languages.registerTokensProviderFactory(e,{create:async()=>(await t.load()).language}),PS.languages.onLanguageEncountered(e,async()=>{const i=await t.load();PS.languages.setLanguageConfiguration(e,i.conf)})}ft({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:()=>je(()=>import("./DRC6TkPh.js"),[],import.meta.url)});ft({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:()=>je(()=>import("./BuapDI9Y.js"),[],import.meta.url)});ft({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:()=>je(()=>import("./BypH-vXm.js"),[],import.meta.url)});ft({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:()=>je(()=>import("./BY6pwuIY.js"),[],import.meta.url)});ft({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:()=>je(()=>import("./gRuQeaLk.js"),[],import.meta.url)});ft({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:()=>je(()=>import("./ul-Lp4lw.js"),[],import.meta.url)});ft({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:()=>je(()=>import("./DeYg-96x.js"),[],import.meta.url)});ft({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:()=>je(()=>import("./CfnpWUYo.js"),[],import.meta.url)});ft({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>je(()=>import("./C9L3yaDO.js"),[],import.meta.url)});ft({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>je(()=>import("./C9L3yaDO.js"),[],import.meta.url)});ft({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:()=>je(()=>import("./DWGz5Zuj.js"),[],import.meta.url)});ft({id:"csp",extensions:[".csp"],aliases:["CSP","csp"],loader:()=>je(()=>import("./DrRCxMg5.js"),[],import.meta.url)});ft({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>je(()=>import("./BfLuTCmN.js"),[],import.meta.url)});ft({id:"cypher",extensions:[".cypher",".cyp"],aliases:["Cypher","OpenCypher"],loader:()=>je(()=>import("./DoFvH58O.js"),[],import.meta.url)});ft({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:()=>je(()=>import("./DIovg4uR.js"),[],import.meta.url)});ft({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>je(()=>import("./D2PfwrvU.js"),[],import.meta.url)});ft({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:()=>je(()=>import("./C_scCXcs.js"),[],import.meta.url)});ft({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:()=>je(()=>import("./BRk-K-rg.js"),[],import.meta.url)});ft({id:"flow9",extensions:[".flow"],aliases:["Flow9","Flow","flow9","flow"],loader:()=>je(()=>import("./DLs3tTet.js"),[],import.meta.url)});ft({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:()=>je(()=>import("./D0UiDa5C.js"),[],import.meta.url)});ft({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>je(()=>import("./D4aGjE-s.js"),[],import.meta.url).then(n=>n.TagAutoInterpolationDollar)});ft({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>je(()=>import("./D4aGjE-s.js"),[],import.meta.url).then(n=>n.TagAngleInterpolationDollar)});ft({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>je(()=>import("./D4aGjE-s.js"),[],import.meta.url).then(n=>n.TagBracketInterpolationDollar)});ft({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>je(()=>import("./D4aGjE-s.js"),[],import.meta.url).then(n=>n.TagAngleInterpolationBracket)});ft({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>je(()=>import("./D4aGjE-s.js"),[],import.meta.url).then(n=>n.TagBracketInterpolationBracket)});ft({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>je(()=>import("./D4aGjE-s.js"),[],import.meta.url).then(n=>n.TagAutoInterpolationDollar)});ft({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>je(()=>import("./D4aGjE-s.js"),[],import.meta.url).then(n=>n.TagAutoInterpolationBracket)});ft({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>je(()=>import("./CyVeKkvQ.js"),[],import.meta.url)});ft({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>je(()=>import("./BygKL3ZF.js"),[],import.meta.url)});ft({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>je(()=>import("./BPUjjr-i.js"),[],import.meta.url)});ft({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:()=>je(()=>import("./D_OY6ada.js"),[],import.meta.url)});ft({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:()=>je(()=>import("./Cq2jzwMq.js"),[],import.meta.url)});ft({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>je(()=>import("./BTpWsGps.js"),[],import.meta.url)});ft({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>je(()=>import("./3TATJI7h.js"),[],import.meta.url)});ft({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>je(()=>import("./DXXGBMMv.js"),__vite__mapDeps([65,66]),import.meta.url)});ft({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:()=>je(()=>import("./DDpSJMW6.js"),[],import.meta.url)});ft({id:"kotlin",extensions:[".kt",".kts"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>je(()=>import("./DVYH6Lj_.js"),[],import.meta.url)});ft({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>je(()=>import("./CuFlys0T.js"),[],import.meta.url)});ft({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:()=>je(()=>import("./m09vb5r-.js"),[],import.meta.url)});ft({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>je(()=>import("./D2Z7JJdl.js"),[],import.meta.url)});ft({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>je(()=>import("./DrqOgyji.js"),[],import.meta.url)});ft({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:()=>je(()=>import("./B2Cf9XSq.js"),[],import.meta.url)});ft({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>je(()=>import("./BXYnMxBe.js"),[],import.meta.url)});ft({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>je(()=>import("./CoJj_PRq.js"),[],import.meta.url)});ft({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:()=>je(()=>import("./Ckkbw-AO.js"),[],import.meta.url)});ft({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:()=>je(()=>import("./B5uW3Zvf.js"),[],import.meta.url)});ft({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>je(()=>import("./B8ssZoUh.js"),[],import.meta.url)});ft({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:()=>je(()=>import("./CrrKwR0a.js"),[],import.meta.url)});ft({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:()=>je(()=>import("./BWBTHuhh.js"),[],import.meta.url)});ft({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:()=>je(()=>import("./BGLI1Hdo.js"),[],import.meta.url)});ft({id:"perl",extensions:[".pl",".pm"],aliases:["Perl","pl"],loader:()=>je(()=>import("./DDrv2Hr-.js"),[],import.meta.url)});ft({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:()=>je(()=>import("./DLPipH_Q.js"),[],import.meta.url)});ft({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>je(()=>import("./CTNlIIiR.js"),[],import.meta.url)});ft({id:"pla",extensions:[".pla"],loader:()=>je(()=>import("./2oJWbEOo.js"),[],import.meta.url)});ft({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:()=>je(()=>import("./DOk3G3cc.js"),[],import.meta.url)});ft({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:()=>je(()=>import("./Dgyr3wWZ.js"),[],import.meta.url)});ft({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:()=>je(()=>import("./B_i9asfM.js"),[],import.meta.url)});ft({id:"proto",extensions:[".proto"],aliases:["protobuf","Protocol Buffers"],loader:()=>je(()=>import("./CV9EbfTh.js"),[],import.meta.url)});ft({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:()=>je(()=>import("./CCBS_C5_.js"),[],import.meta.url)});ft({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>je(()=>import("./B2nSH5Xk.js"),[],import.meta.url)});ft({id:"qsharp",extensions:[".qs"],aliases:["Q#","qsharp"],loader:()=>je(()=>import("./BLuZWbUW.js"),[],import.meta.url)});ft({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:()=>je(()=>import("./CzF1MCbP.js"),[],import.meta.url)});ft({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>je(()=>import("./D94h4QjT.js"),[],import.meta.url)});ft({id:"redis",extensions:[".redis"],aliases:["redis"],loader:()=>je(()=>import("./C75U4IDy.js"),[],import.meta.url)});ft({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:()=>je(()=>import("./Bc5xkKR1.js"),[],import.meta.url)});ft({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:()=>je(()=>import("./DmdQbaLT.js"),[],import.meta.url)});ft({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:()=>je(()=>import("./DB0RB20n.js"),[],import.meta.url)});ft({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:()=>je(()=>import("./UMmp-gVE.js"),[],import.meta.url)});ft({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:()=>je(()=>import("./DVG02705.js"),[],import.meta.url)});ft({id:"scala",extensions:[".scala",".sc",".sbt"],aliases:["Scala","scala","SBT","Sbt","sbt","Dotty","dotty"],mimetypes:["text/x-scala-source","text/x-scala","text/x-sbt","text/x-dotty"],loader:()=>je(()=>import("./DvSxYeG4.js"),[],import.meta.url)});ft({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:()=>je(()=>import("./yf5bffbF.js"),[],import.meta.url)});ft({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>je(()=>import("./Bzb7OGdO.js"),[],import.meta.url)});ft({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:()=>je(()=>import("./FNqbgIOG.js"),[],import.meta.url)});ft({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:()=>je(()=>import("./DyKutqhl.js"),[],import.meta.url)});ft({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:()=>je(()=>import("./B4VqtPa2.js"),[],import.meta.url)});ft({id:"sparql",extensions:[".rq"],aliases:["sparql","SPARQL"],loader:()=>je(()=>import("./B7alP455.js"),[],import.meta.url)});ft({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>je(()=>import("./D7lU1fdU.js"),[],import.meta.url)});ft({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib",".TcPOU",".TcDUT",".TcGVL",".TcIO"],aliases:["StructuredText","scl","stl"],loader:()=>je(()=>import("./VuadG5SK.js"),[],import.meta.url)});ft({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:()=>je(()=>import("./BYtUz8ZP.js"),[],import.meta.url)});ft({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:()=>je(()=>import("./DOAuugfS.js"),[],import.meta.url)});ft({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:()=>je(()=>import("./DOAuugfS.js"),[],import.meta.url)});ft({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:()=>je(()=>import("./CXKOl_mN.js"),[],import.meta.url)});ft({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:()=>je(()=>import("./D9yiNO04.js"),[],import.meta.url)});ft({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>je(()=>import("./DmDlXweU.js"),[],import.meta.url)});ft({id:"typespec",extensions:[".tsp"],aliases:["TypeSpec"],loader:()=>je(()=>import("./BupSXVCO.js"),[],import.meta.url)});ft({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:()=>je(()=>import("./ZlaFEk-P.js"),[],import.meta.url)});ft({id:"wgsl",extensions:[".wgsl"],aliases:["WebGPU Shading Language","WGSL","wgsl"],loader:()=>je(()=>import("./B-lZjTdr.js"),[],import.meta.url)});ft({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\je(()=>import("./DcXBrGfk.js"),[],import.meta.url)});ft({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>je(()=>import("./Cc6zh8Uk.js"),[],import.meta.url)});/*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var Bqe=Object.defineProperty,Wqe=Object.getOwnPropertyDescriptor,Hqe=Object.getOwnPropertyNames,Vqe=Object.prototype.hasOwnProperty,zqe=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Hqe(e))!Vqe.call(n,s)&&s!==t&&Bqe(n,s,{get:()=>e[s],enumerable:!(i=Wqe(e,s))||i.enumerable});return n},$qe=(n,e,t)=>(zqe(n,e,"default"),t),Uw={};$qe(Uw,HD);var oU=class{constructor(e,t,i){this._onDidChange=new Uw.Emitter,this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(e){this.setOptions(e)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}},rU={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},aU={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},Che=new oU("css",rU,aU),whe=new oU("scss",rU,aU),yhe=new oU("less",rU,aU);Uw.languages.css={cssDefaults:Che,lessDefaults:yhe,scssDefaults:whe};function lU(){return je(()=>import("./B-k8r3hf.js"),[],import.meta.url)}Uw.languages.onLanguage("less",()=>{lU().then(n=>n.setupMode(yhe))});Uw.languages.onLanguage("scss",()=>{lU().then(n=>n.setupMode(whe))});Uw.languages.onLanguage("css",()=>{lU().then(n=>n.setupMode(Che))});/*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var Uqe=Object.defineProperty,jqe=Object.getOwnPropertyDescriptor,Kqe=Object.getOwnPropertyNames,qqe=Object.prototype.hasOwnProperty,Gqe=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Kqe(e))!qqe.call(n,s)&&s!==t&&Uqe(n,s,{get:()=>e[s],enumerable:!(i=jqe(e,s))||i.enumerable});return n},Zqe=(n,e,t)=>(Gqe(n,e,"default"),t),yP={};Zqe(yP,HD);var Yqe=class{constructor(e,t,i){this._onDidChange=new yP.Emitter,this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}},Xqe={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},SP={format:Xqe,suggest:{},data:{useDefaultDataProvider:!0}};function xP(n){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:n===Ex,documentFormattingEdits:n===Ex,documentRangeFormattingEdits:n===Ex}}var Ex="html",Eee="handlebars",Tee="razor",She=LP(Ex,SP,xP(Ex)),Qqe=She.defaults,xhe=LP(Eee,SP,xP(Eee)),Jqe=xhe.defaults,Lhe=LP(Tee,SP,xP(Tee)),eGe=Lhe.defaults;yP.languages.html={htmlDefaults:Qqe,razorDefaults:eGe,handlebarDefaults:Jqe,htmlLanguageService:She,handlebarLanguageService:xhe,razorLanguageService:Lhe,registerHTMLLanguageService:LP};function tGe(){return je(()=>import("./CZogWebk.js"),[],import.meta.url)}function LP(n,e=SP,t=xP(n)){const i=new Yqe(n,e,t);let s;const o=yP.languages.onLanguage(n,async()=>{s=(await tGe()).setupMode(i)});return{defaults:i,dispose(){o.dispose(),s==null||s.dispose(),s=void 0}}}/*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var iGe=Object.defineProperty,nGe=Object.getOwnPropertyDescriptor,sGe=Object.getOwnPropertyNames,oGe=Object.prototype.hasOwnProperty,rGe=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of sGe(e))!oGe.call(n,s)&&s!==t&&iGe(n,s,{get:()=>e[s],enumerable:!(i=nGe(e,s))||i.enumerable});return n},aGe=(n,e,t)=>(rGe(n,e,"default"),t),VD={};aGe(VD,HD);var lGe=class{constructor(e,t,i){this._onDidChange=new VD.Emitter,this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}},cGe={validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},dGe={documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},khe=new lGe("json",cGe,dGe),uGe=()=>Dhe().then(n=>n.getWorker());VD.languages.json={jsonDefaults:khe,getWorker:uGe};function Dhe(){return je(()=>import("./BjtZpFsH.js"),[],import.meta.url)}VD.languages.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]});VD.languages.onLanguage("json",()=>{Dhe().then(n=>n.setupMode(khe))});/*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/var hGe=Object.defineProperty,fGe=Object.getOwnPropertyDescriptor,gGe=Object.getOwnPropertyNames,pGe=Object.prototype.hasOwnProperty,mGe=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of gGe(e))!pGe.call(n,s)&&s!==t&&hGe(n,s,{get:()=>e[s],enumerable:!(i=fGe(e,s))||i.enumerable});return n},_Ge=(n,e,t)=>(mGe(n,e,"default"),t),vGe="5.4.5",rw={};_Ge(rw,HD);var Ihe=(n=>(n[n.None=0]="None",n[n.CommonJS=1]="CommonJS",n[n.AMD=2]="AMD",n[n.UMD=3]="UMD",n[n.System=4]="System",n[n.ES2015=5]="ES2015",n[n.ESNext=99]="ESNext",n))(Ihe||{}),Ehe=(n=>(n[n.None=0]="None",n[n.Preserve=1]="Preserve",n[n.React=2]="React",n[n.ReactNative=3]="ReactNative",n[n.ReactJSX=4]="ReactJSX",n[n.ReactJSXDev=5]="ReactJSXDev",n))(Ehe||{}),The=(n=>(n[n.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",n[n.LineFeed=1]="LineFeed",n))(The||{}),Nhe=(n=>(n[n.ES3=0]="ES3",n[n.ES5=1]="ES5",n[n.ES2015=2]="ES2015",n[n.ES2016=3]="ES2016",n[n.ES2017=4]="ES2017",n[n.ES2018=5]="ES2018",n[n.ES2019=6]="ES2019",n[n.ES2020=7]="ES2020",n[n.ESNext=99]="ESNext",n[n.JSON=100]="JSON",n[n.Latest=99]="Latest",n))(Nhe||{}),Ahe=(n=>(n[n.Classic=1]="Classic",n[n.NodeJs=2]="NodeJs",n))(Ahe||{}),Rhe=class{constructor(n,e,t,i,s){this._onDidChange=new rw.Emitter,this._onDidExtraLibsChange=new rw.Emitter,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(n),this.setDiagnosticsOptions(e),this.setWorkerOptions(t),this.setInlayHintsOptions(i),this.setModeConfiguration(s),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(n,e){let t;if(typeof e>"u"?t=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:t=e,this._extraLibs[t]&&this._extraLibs[t].content===n)return{dispose:()=>{}};let i=1;return this._removedExtraLibs[t]&&(i=this._removedExtraLibs[t]+1),this._extraLibs[t]&&(i=this._extraLibs[t].version+1),this._extraLibs[t]={content:n,version:i},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let s=this._extraLibs[t];s&&s.version===i&&(delete this._extraLibs[t],this._removedExtraLibs[t]=i,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(n){for(const e in this._extraLibs)this._removedExtraLibs[e]=this._extraLibs[e].version;if(this._extraLibs=Object.create(null),n&&n.length>0)for(const e of n){const t=e.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,i=e.content;let s=1;this._removedExtraLibs[t]&&(s=this._removedExtraLibs[t]+1),this._extraLibs[t]={content:i,version:s}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(n){this._compilerOptions=n||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(n){this._diagnosticsOptions=n||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(n){this._workerOptions=n||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(n){this._inlayHintsOptions=n||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(n){}setEagerModelSync(n){this._eagerModelSync=n}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(n){this._modeConfiguration=n||Object.create(null),this._onDidChange.fire(void 0)}},bGe=vGe,Mhe={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},Phe=new Rhe({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},Mhe),Ohe=new Rhe({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},Mhe),CGe=()=>kP().then(n=>n.getTypeScriptWorker()),wGe=()=>kP().then(n=>n.getJavaScriptWorker());rw.languages.typescript={ModuleKind:Ihe,JsxEmit:Ehe,NewLineKind:The,ScriptTarget:Nhe,ModuleResolutionKind:Ahe,typescriptVersion:bGe,typescriptDefaults:Phe,javascriptDefaults:Ohe,getTypeScriptWorker:CGe,getJavaScriptWorker:wGe};function kP(){return je(()=>import("./3cNudfSz.js"),[],import.meta.url)}rw.languages.onLanguage("typescript",()=>kP().then(n=>n.setupTypeScript(Phe)));rw.languages.onLanguage("javascript",()=>kP().then(n=>n.setupJavaScript(Ohe)));class yGe extends zr{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:Nt("toggleCollapseUnchangedRegions","Toggle Collapse Unchanged Regions"),icon:Te.map,toggled:pe.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:pe.has("isInDiffEditor"),menu:{when:pe.has("isInDiffEditor"),id:R.EditorTitle,order:22,group:"navigation"}})}run(e,...t){const i=e.get(qt),s=!i.getValue("diffEditor.hideUnchangedRegions.enabled");i.updateValue("diffEditor.hideUnchangedRegions.enabled",s)}}class Fhe extends zr{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:Nt("toggleShowMovedCodeBlocks","Toggle Show Moved Code Blocks"),precondition:pe.has("isInDiffEditor")})}run(e,...t){const i=e.get(qt),s=!i.getValue("diffEditor.experimental.showMoves");i.updateValue("diffEditor.experimental.showMoves",s)}}class Bhe extends zr{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:Nt("toggleUseInlineViewWhenSpaceIsLimited","Toggle Use Inline View When Space Is Limited"),precondition:pe.has("isInDiffEditor")})}run(e,...t){const i=e.get(qt),s=!i.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");i.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",s)}}const zD=Nt("diffEditor","Diff Editor");class SGe extends mu{constructor(){super({id:"diffEditor.switchSide",title:Nt("switchSide","Switch Side"),icon:Te.arrowSwap,precondition:pe.has("isInDiffEditor"),f1:!0,category:zD})}runEditorCommand(e,t,i){const s=Kw(e);if(s instanceof Tg){if(i&&i.dryRun)return{destinationSelection:s.mapToOtherSide().destinationSelection};s.switchSide()}}}class xGe extends mu{constructor(){super({id:"diffEditor.exitCompareMove",title:Nt("exitCompareMove","Exit Compare Move"),icon:Te.close,precondition:W.comparingMovedCode,f1:!1,category:zD,keybinding:{weight:1e4,primary:9}})}runEditorCommand(e,t,...i){const s=Kw(e);s instanceof Tg&&s.exitCompareMove()}}class LGe extends mu{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:Nt("collapseAllUnchangedRegions","Collapse All Unchanged Regions"),icon:Te.fold,precondition:pe.has("isInDiffEditor"),f1:!0,category:zD})}runEditorCommand(e,t,...i){const s=Kw(e);s instanceof Tg&&s.collapseAllUnchangedRegions()}}class kGe extends mu{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:Nt("showAllUnchangedRegions","Show All Unchanged Regions"),icon:Te.unfold,precondition:pe.has("isInDiffEditor"),f1:!0,category:zD})}runEditorCommand(e,t,...i){const s=Kw(e);s instanceof Tg&&s.showAllUnchangedRegions()}}class O6 extends zr{constructor(){super({id:"diffEditor.revert",title:Nt("revert","Revert"),f1:!1,category:zD})}run(e,t){var i;const s=DGe(e,t.originalUri,t.modifiedUri);s instanceof Tg&&s.revertRangeMappings((i=t.mapping.innerChanges)!==null&&i!==void 0?i:[])}}const Whe=Nt("accessibleDiffViewer","Accessible Diff Viewer");class jw extends zr{constructor(){super({id:jw.id,title:Nt("editor.action.accessibleDiffViewer.next","Go to Next Difference"),category:Whe,precondition:pe.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(e){const t=Kw(e);t==null||t.accessibleDiffViewerNext()}}jw.id="editor.action.accessibleDiffViewer.next";class $D extends zr{constructor(){super({id:$D.id,title:Nt("editor.action.accessibleDiffViewer.prev","Go to Previous Difference"),category:Whe,precondition:pe.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(e){const t=Kw(e);t==null||t.accessibleDiffViewerPrev()}}$D.id="editor.action.accessibleDiffViewer.prev";function DGe(n,e,t){return n.get(vi).listDiffEditors().find(o=>{var r,a;const l=o.getModifiedEditor(),c=o.getOriginalEditor();return l&&((r=l.getModel())===null||r===void 0?void 0:r.uri.toString())===t.toString()&&c&&((a=c.getModel())===null||a===void 0?void 0:a.uri.toString())===e.toString()})||null}function Kw(n){const t=n.get(vi).listDiffEditors(),i=Ao();if(i)for(const s of t){const o=s.getContainerDomNode();if(IGe(o,i))return s}return null}function IGe(n,e){let t=e;for(;t;){if(t===n)return!0;t=t.parentElement}return!1}dn(yGe);dn(Fhe);dn(Bhe);ao.appendMenuItem(R.EditorTitle,{command:{id:new Bhe().desc.id,title:v("useInlineViewWhenSpaceIsLimited","Use Inline View When Space Is Limited"),toggled:pe.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:pe.has("isInDiffEditor")},order:11,group:"1_diff",when:pe.and(W.diffEditorRenderSideBySideInlineBreakpointReached,pe.has("isInDiffEditor"))});ao.appendMenuItem(R.EditorTitle,{command:{id:new Fhe().desc.id,title:v("showMoves","Show Moved Code Blocks"),icon:Te.move,toggled:Mw.create("config.diffEditor.experimental.showMoves",!0),precondition:pe.has("isInDiffEditor")},order:10,group:"1_diff",when:pe.has("isInDiffEditor")});dn(O6);for(const n of[{icon:Te.arrowRight,key:W.diffEditorInlineMode.toNegated()},{icon:Te.discard,key:W.diffEditorInlineMode}])ao.appendMenuItem(R.DiffEditorHunkToolbar,{command:{id:new O6().desc.id,title:v("revertHunk","Revert Block"),icon:n.icon},when:pe.and(W.diffEditorModifiedWritable,n.key),order:5,group:"primary"}),ao.appendMenuItem(R.DiffEditorSelectionToolbar,{command:{id:new O6().desc.id,title:v("revertSelection","Revert Selection"),icon:n.icon},when:pe.and(W.diffEditorModifiedWritable,n.key),order:5,group:"primary"});dn(SGe);dn(xGe);dn(LGe);dn(kGe);ao.appendMenuItem(R.EditorTitle,{command:{id:jw.id,title:v("Open Accessible Diff Viewer","Open Accessible Diff Viewer"),precondition:pe.has("isInDiffEditor")},order:10,group:"2_diff",when:pe.and(W.accessibleDiffViewerVisible.negate(),pe.has("isInDiffEditor"))});ri.registerCommandAlias("editor.action.diffReview.next",jw.id);dn(jw);ri.registerCommandAlias("editor.action.diffReview.prev",$D.id);dn($D);var EGe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},TGe=function(n,e){return function(t,i){e(t,i,n)}},F6;const DP=new He("selectionAnchorSet",!1);let Ng=F6=class{static get(e){return e.getContribution(F6.ID)}constructor(e,t){this.editor=e,this.selectionAnchorSetContextKey=DP.bindTo(t),this.modelChangeListener=e.onDidChangeModel(()=>this.selectionAnchorSetContextKey.reset())}setSelectionAnchor(){if(this.editor.hasModel()){const e=this.editor.getPosition();this.editor.changeDecorations(t=>{this.decorationId&&t.removeDecoration(this.decorationId),this.decorationId=t.addDecoration(it.fromPositions(e,e),{description:"selection-anchor",stickiness:1,hoverMessage:new $o().appendText(v("selectionAnchor","Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),la(v("anchorSet","Anchor set at {0}:{1}",e.lineNumber,e.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);e&&this.editor.setPosition(e.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);if(e){const t=this.editor.getPosition();this.editor.setSelection(it.fromPositions(e.getStartPosition(),t)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){if(this.decorationId){const e=this.decorationId;this.editor.changeDecorations(t=>{t.removeDecoration(e),this.decorationId=void 0}),this.selectionAnchorSetContextKey.set(!1)}}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}};Ng.ID="editor.contrib.selectionAnchorController";Ng=F6=EGe([TGe(1,Ct)],Ng);class NGe extends Ke{constructor(){super({id:"editor.action.setSelectionAnchor",label:v("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2080),weight:100}})}async run(e,t){var i;(i=Ng.get(t))===null||i===void 0||i.setSelectionAnchor()}}class AGe extends Ke{constructor(){super({id:"editor.action.goToSelectionAnchor",label:v("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:DP})}async run(e,t){var i;(i=Ng.get(t))===null||i===void 0||i.goToSelectionAnchor()}}class RGe extends Ke{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:v("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:DP,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2089),weight:100}})}async run(e,t){var i;(i=Ng.get(t))===null||i===void 0||i.selectFromAnchorToCursor()}}class MGe extends Ke{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:v("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:DP,kbOpts:{kbExpr:W.editorTextFocus,primary:9,weight:100}})}async run(e,t){var i;(i=Ng.get(t))===null||i===void 0||i.cancelSelectionAnchor()}}bi(Ng.ID,Ng,4);xe(NGe);xe(AGe);xe(RGe);xe(MGe);const PGe=V("editorOverviewRuler.bracketMatchForeground",{dark:"#A0A0A0",light:"#A0A0A0",hcDark:"#A0A0A0",hcLight:"#A0A0A0"},v("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets."));class OGe extends Ke{constructor(){super({id:"editor.action.jumpToBracket",label:v("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:W.editorTextFocus,primary:3165,weight:100}})}run(e,t){var i;(i=ed.get(t))===null||i===void 0||i.jumpToBracket()}}class FGe extends Ke{constructor(){super({id:"editor.action.selectToBracket",label:v("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:Nt("smartSelect.selectToBracketDescription","Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(e,t,i){var s;let o=!0;i&&i.selectBrackets===!1&&(o=!1),(s=ed.get(t))===null||s===void 0||s.selectToBracket(o)}}class BGe extends Ke{constructor(){super({id:"editor.action.removeBrackets",label:v("smartSelect.removeBrackets","Remove Brackets"),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:W.editorTextFocus,primary:2561,weight:100}})}run(e,t){var i;(i=ed.get(t))===null||i===void 0||i.removeBrackets(this.id)}}class WGe{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}class ed extends ne{static get(e){return e.getContribution(ed.ID)}constructor(e){super(),this._editor=e,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new Xi(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(72),this._updateBracketsSoon.schedule(),this._register(e.onDidChangeCursorPosition(t=>{this._matchBrackets!=="never"&&this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelContent(t=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModel(t=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelLanguageConfiguration(t=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeConfiguration(t=>{t.hasChanged(72)&&(this._matchBrackets=this._editor.getOption(72),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())})),this._register(e.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;const e=this._editor.getModel(),t=this._editor.getSelections().map(i=>{const s=i.getStartPosition(),o=e.bracketPairs.matchBracket(s);let r=null;if(o)o[0].containsPosition(s)&&!o[1].containsPosition(s)?r=o[1].getStartPosition():o[1].containsPosition(s)&&(r=o[0].getStartPosition());else{const a=e.bracketPairs.findEnclosingBrackets(s);if(a)r=a[1].getStartPosition();else{const l=e.bracketPairs.findNextBracket(s);l&&l.range&&(r=l.range.getStartPosition())}}return r?new it(r.lineNumber,r.column,r.lineNumber,r.column):new it(s.lineNumber,s.column,s.lineNumber,s.column)});this._editor.setSelections(t),this._editor.revealRange(t[0])}selectToBracket(e){if(!this._editor.hasModel())return;const t=this._editor.getModel(),i=[];this._editor.getSelections().forEach(s=>{const o=s.getStartPosition();let r=t.bracketPairs.matchBracket(o);if(!r&&(r=t.bracketPairs.findEnclosingBrackets(o),!r)){const c=t.bracketPairs.findNextBracket(o);c&&c.range&&(r=t.bracketPairs.matchBracket(c.range.getStartPosition()))}let a=null,l=null;if(r){r.sort(A.compareRangesUsingStarts);const[c,d]=r;if(a=e?c.getStartPosition():c.getEndPosition(),l=e?d.getEndPosition():d.getStartPosition(),d.containsPosition(o)){const u=a;a=l,l=u}}a&&l&&i.push(new it(a.lineNumber,a.column,l.lineNumber,l.column))}),i.length>0&&(this._editor.setSelections(i),this._editor.revealRange(i[0]))}removeBrackets(e){if(!this._editor.hasModel())return;const t=this._editor.getModel();this._editor.getSelections().forEach(i=>{const s=i.getPosition();let o=t.bracketPairs.matchBracket(s);o||(o=t.bracketPairs.findEnclosingBrackets(s)),o&&(this._editor.pushUndoStop(),this._editor.executeEdits(e,[{range:o[0],text:""},{range:o[1],text:""}]),this._editor.pushUndoStop())})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();const e=[];let t=0;for(const i of this._lastBracketsData){const s=i.brackets;s&&(e[t++]={range:s[0],options:i.options},e[t++]={range:s[1],options:i.options})}this._decorations.set(e)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}const e=this._editor.getSelections();if(e.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}const t=this._editor.getModel(),i=t.getVersionId();let s=[];this._lastVersionId===i&&(s=this._lastBracketsData);const o=[];let r=0;for(let u=0,h=e.length;u1&&o.sort(ee.compare);const a=[];let l=0,c=0;const d=s.length;for(let u=0,h=o.length;u0&&(t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop())}}xe($Ge);const IP=function(){if(typeof crypto=="object"&&typeof crypto.randomUUID=="function")return crypto.randomUUID.bind(crypto);let n;typeof crypto=="object"&&typeof crypto.getRandomValues=="function"?n=crypto.getRandomValues.bind(crypto):n=function(i){for(let s=0;sn,asFile:()=>{},value:typeof n=="string"?n:void 0}}function UGe(n,e,t){const i={id:IP(),name:n,uri:e,data:t};return{asString:async()=>"",asFile:()=>i,value:void 0}}class Vhe{constructor(){this._entries=new Map}get size(){let e=0;for(const t of this._entries)e++;return e}has(e){return this._entries.has(this.toKey(e))}matches(e){const t=[...this._entries.keys()];return oi.some(this,([i,s])=>s.asFile())&&t.push("files"),$he(sR(e),t)}get(e){var t;return(t=this._entries.get(this.toKey(e)))===null||t===void 0?void 0:t[0]}append(e,t){const i=this._entries.get(e);i?i.push(t):this._entries.set(this.toKey(e),[t])}replace(e,t){this._entries.set(this.toKey(e),[t])}delete(e){this._entries.delete(this.toKey(e))}*[Symbol.iterator](){for(const[e,t]of this._entries)for(const i of t)yield[e,i]}toKey(e){return sR(e)}}function sR(n){return n.toLowerCase()}function zhe(n,e){return $he(sR(n),e.map(sR))}function $he(n,e){if(n==="*/*")return e.length>0;if(e.includes(n))return!0;const t=n.match(/^([a-z]+)\/([a-z]+|\*)$/i);if(!t)return!1;const[i,s,o]=t;return o==="*"?e.some(r=>r.startsWith(s+"/")):!1}const EP=Object.freeze({create:n=>xg(n.map(e=>e.toString())).join(`\r `),split:n=>n.split(`\r `),parse:n=>EP.split(n).filter(e=>!e.startsWith("#"))});class Yi{constructor(e){this.value=e}equals(e){return this.value===e.value}contains(e){return this.equals(e)||this.value===""||e.value.startsWith(this.value+Yi.sep)}intersects(e){return this.contains(e)||e.contains(this)}append(...e){return new Yi((this.value?[this.value,...e]:e).join(Yi.sep))}}Yi.sep=".";Yi.None=new Yi("@@none@@");Yi.Empty=new Yi("");const Nee={EDITORS:"CodeEditors",FILES:"CodeFiles"};class jGe{}const KGe={DragAndDropContribution:"workbench.contributions.dragAndDrop"};Un.add(KGe.DragAndDropContribution,new jGe);class ck{constructor(){}static getInstance(){return ck.INSTANCE}hasData(e){return e&&e===this.proto}getData(e){if(this.hasData(e))return this.data}}ck.INSTANCE=new ck;function Uhe(n){const e=new Vhe;for(const t of n.items){const i=t.type;if(t.kind==="string"){const s=new Promise(o=>t.getAsString(o));e.append(i,cU(s))}else if(t.kind==="file"){const s=t.getAsFile();s&&e.append(i,qGe(s))}}return e}function qGe(n){const e=n.path?pt.parse(n.path):void 0;return UGe(n.name,e,async()=>new Uint8Array(await n.arrayBuffer()))}const GGe=Object.freeze([Nee.EDITORS,Nee.FILES,UL.RESOURCES,UL.INTERNAL_URI_LIST]);function jhe(n,e=!1){const t=Uhe(n),i=t.get(UL.INTERNAL_URI_LIST);if(i)t.replace(ss.uriList,i);else if(e||!t.has(ss.uriList)){const s=[];for(const o of n.items){const r=o.getAsFile();if(r){const a=r.path;try{a?s.push(pt.file(a).toString()):s.push(pt.parse(r.name,!0).toString())}catch{}}}s.length&&t.replace(ss.uriList,cU(EP.create(s)))}for(const s of GGe)t.delete(s);return t}var dU=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},dk=function(n,e){return function(t,i){e(t,i,n)}};class uU{async provideDocumentPasteEdits(e,t,i,s,o){const r=await this.getEdit(i,o);if(r)return{dispose(){},edits:[{insertText:r.insertText,title:r.title,kind:r.kind,handledMimeType:r.handledMimeType,yieldTo:r.yieldTo}]}}async provideDocumentDropEdits(e,t,i,s){const o=await this.getEdit(i,s);return o?[{insertText:o.insertText,title:o.title,kind:o.kind,handledMimeType:o.handledMimeType,yieldTo:o.yieldTo}]:void 0}}class Ag extends uU{constructor(){super(...arguments),this.kind=Ag.kind,this.dropMimeTypes=[ss.text],this.pasteMimeTypes=[ss.text]}async getEdit(e,t){const i=e.get(ss.text);if(!i||e.has(ss.uriList))return;const s=await i.asString();return{handledMimeType:ss.text,title:v("text.label","Insert Plain Text"),insertText:s,kind:this.kind}}}Ag.id="text";Ag.kind=new Yi("text.plain");class Khe extends uU{constructor(){super(...arguments),this.kind=new Yi("uri.absolute"),this.dropMimeTypes=[ss.uriList],this.pasteMimeTypes=[ss.uriList]}async getEdit(e,t){const i=await qhe(e);if(!i.length||t.isCancellationRequested)return;let s=0;const o=i.map(({uri:a,originalText:l})=>a.scheme===Tt.file?a.fsPath:(s++,l)).join(" ");let r;return s>0?r=i.length>1?v("defaultDropProvider.uriList.uris","Insert Uris"):v("defaultDropProvider.uriList.uri","Insert Uri"):r=i.length>1?v("defaultDropProvider.uriList.paths","Insert Paths"):v("defaultDropProvider.uriList.path","Insert Path"),{handledMimeType:ss.uriList,insertText:o,title:r,kind:this.kind}}}let oR=class extends uU{constructor(e){super(),this._workspaceContextService=e,this.kind=new Yi("uri.relative"),this.dropMimeTypes=[ss.uriList],this.pasteMimeTypes=[ss.uriList]}async getEdit(e,t){const i=await qhe(e);if(!i.length||t.isCancellationRequested)return;const s=tu(i.map(({uri:o})=>{const r=this._workspaceContextService.getWorkspaceFolder(o);return r?uBe(r.uri,o):void 0}));if(s.length)return{handledMimeType:ss.uriList,insertText:s.join(" "),title:i.length>1?v("defaultDropProvider.uriList.relativePaths","Insert Relative Paths"):v("defaultDropProvider.uriList.relativePath","Insert Relative Path"),kind:this.kind}}};oR=dU([dk(0,b0)],oR);class ZGe{constructor(){this.kind=new Yi("html"),this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:ss.text}]}async provideDocumentPasteEdits(e,t,i,s,o){var r;if(s.triggerKind!==aL.PasteAs&&!(!((r=s.only)===null||r===void 0)&&r.contains(this.kind)))return;const a=i.get("text/html"),l=await(a==null?void 0:a.asString());if(!(!l||o.isCancellationRequested))return{dispose(){},edits:[{insertText:l,yieldTo:this._yieldTo,title:v("pasteHtmlLabel","Insert HTML"),kind:this.kind}]}}}async function qhe(n){const e=n.get(ss.uriList);if(!e)return[];const t=await e.asString(),i=[];for(const s of EP.parse(t))try{i.push({uri:pt.parse(s),originalText:s})}catch{}return i}let B6=class extends ne{constructor(e,t){super(),this._register(e.documentDropEditProvider.register("*",new Ag)),this._register(e.documentDropEditProvider.register("*",new Khe)),this._register(e.documentDropEditProvider.register("*",new oR(t)))}};B6=dU([dk(0,Xe),dk(1,b0)],B6);let W6=class extends ne{constructor(e,t){super(),this._register(e.documentPasteEditProvider.register("*",new Ag)),this._register(e.documentPasteEditProvider.register("*",new Khe)),this._register(e.documentPasteEditProvider.register("*",new oR(t))),this._register(e.documentPasteEditProvider.register("*",new ZGe))}};W6=dU([dk(0,Xe),dk(1,b0)],W6);class Bc{constructor(){this.value="",this.pos=0}static isDigitCharacter(e){return e>=48&&e<=57}static isVariableCharacter(e){return e===95||e>=97&&e<=122||e>=65&&e<=90}text(e){this.value=e,this.pos=0}tokenText(e){return this.value.substr(e.pos,e.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};const e=this.pos;let t=0,i=this.value.charCodeAt(e),s;if(s=Bc._table[i],typeof s=="number")return this.pos+=1,{type:s,pos:e,len:1};if(Bc.isDigitCharacter(i)){s=8;do t+=1,i=this.value.charCodeAt(e+t);while(Bc.isDigitCharacter(i));return this.pos+=t,{type:s,pos:e,len:t}}if(Bc.isVariableCharacter(i)){s=9;do i=this.value.charCodeAt(e+ ++t);while(Bc.isVariableCharacter(i)||Bc.isDigitCharacter(i));return this.pos+=t,{type:s,pos:e,len:t}}s=10;do t+=1,i=this.value.charCodeAt(e+t);while(!isNaN(i)&&typeof Bc._table[i]>"u"&&!Bc.isDigitCharacter(i)&&!Bc.isVariableCharacter(i));return this.pos+=t,{type:s,pos:e,len:t}}}Bc._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13};class qw{constructor(){this._children=[]}appendChild(e){return e instanceof Dr&&this._children[this._children.length-1]instanceof Dr?this._children[this._children.length-1].value+=e.value:(e.parent=this,this._children.push(e)),this}replace(e,t){const{parent:i}=e,s=i.children.indexOf(e),o=i.children.slice(0);o.splice(s,1,...t),i._children=o,function r(a,l){for(const c of a)c.parent=l,r(c.children,c)}(t,i)}get children(){return this._children}get rightMostDescendant(){return this._children.length>0?this._children[this._children.length-1].rightMostDescendant:this}get snippet(){let e=this;for(;;){if(!e)return;if(e instanceof UD)return e;e=e.parent}}toString(){return this.children.reduce((e,t)=>e+t.toString(),"")}len(){return 0}}class Dr extends qw{constructor(e){super(),this.value=e}toString(){return this.value}len(){return this.value.length}clone(){return new Dr(this.value)}}class Ghe extends qw{}class Ul extends Ghe{static compareByIndex(e,t){return e.index===t.index?0:e.isFinalTabstop?1:t.isFinalTabstop||e.indext.index?1:0}constructor(e){super(),this.index=e}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof Gw?this._children[0]:void 0}clone(){const e=new Ul(this.index);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}class Gw extends qw{constructor(){super(...arguments),this.options=[]}appendChild(e){return e instanceof Dr&&(e.parent=this,this.options.push(e)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const e=new Gw;return this.options.forEach(e.appendChild,e),e}}class hU extends qw{constructor(){super(...arguments),this.regexp=new RegExp("")}resolve(e){const t=this;let i=!1,s=e.replace(this.regexp,function(){return i=!0,t._replace(Array.prototype.slice.call(arguments,0,-2))});return!i&&this._children.some(o=>o instanceof Td&&!!o.elseValue)&&(s=this._replace([])),s}_replace(e){let t="";for(const i of this._children)if(i instanceof Td){let s=e[i.index]||"";s=i.resolve(s),t+=s}else t+=i.toString();return t}toString(){return""}clone(){const e=new hU;return e.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),e._children=this.children.map(t=>t.clone()),e}}class Td extends qw{constructor(e,t,i,s){super(),this.index=e,this.shorthandName=t,this.ifValue=i,this.elseValue=s}resolve(e){return this.shorthandName==="upcase"?e?e.toLocaleUpperCase():"":this.shorthandName==="downcase"?e?e.toLocaleLowerCase():"":this.shorthandName==="capitalize"?e?e[0].toLocaleUpperCase()+e.substr(1):"":this.shorthandName==="pascalcase"?e?this._toPascalCase(e):"":this.shorthandName==="camelcase"?e?this._toCamelCase(e):"":e&&typeof this.ifValue=="string"?this.ifValue:!e&&typeof this.elseValue=="string"?this.elseValue:e||""}_toPascalCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map(i=>i.charAt(0).toUpperCase()+i.substr(1)).join(""):e}_toCamelCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map((i,s)=>s===0?i.charAt(0).toLowerCase()+i.substr(1):i.charAt(0).toUpperCase()+i.substr(1)).join(""):e}clone(){return new Td(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class uk extends Ghe{constructor(e){super(),this.name=e}resolve(e){let t=e.resolve(this);return this.transform&&(t=this.transform.resolve(t||"")),t!==void 0?(this._children=[new Dr(t)],!0):!1}clone(){const e=new uk(this.name);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}function Aee(n,e){const t=[...n];for(;t.length>0;){const i=t.shift();if(!e(i))break;t.unshift(...i.children)}}class UD extends qw{get placeholderInfo(){if(!this._placeholders){const e=[];let t;this.walk(function(i){return i instanceof Ul&&(e.push(i),t=!t||t.indexs===e?(i=!0,!1):(t+=s.len(),!0)),i?t:-1}fullLen(e){let t=0;return Aee([e],i=>(t+=i.len(),!0)),t}enclosingPlaceholders(e){const t=[];let{parent:i}=e;for(;i;)i instanceof Ul&&t.push(i),i=i.parent;return t}resolveVariables(e){return this.walk(t=>(t instanceof uk&&t.resolve(e)&&(this._placeholders=void 0),!0)),this}appendChild(e){return this._placeholders=void 0,super.appendChild(e)}replace(e,t){return this._placeholders=void 0,super.replace(e,t)}clone(){const e=new UD;return this._children=this.children.map(t=>t.clone()),e}walk(e){Aee(this.children,e)}}class L0{constructor(){this._scanner=new Bc,this._token={type:14,pos:0,len:0}}static escape(e){return e.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(e){return/\${?CLIPBOARD/.test(e)}parse(e,t,i){const s=new UD;return this.parseFragment(e,s),this.ensureFinalTabstop(s,i??!1,t??!1),s}parseFragment(e,t){const i=t.children.length;for(this._scanner.text(e),this._token=this._scanner.next();this._parse(t););const s=new Map,o=[];t.walk(l=>(l instanceof Ul&&(l.isFinalTabstop?s.set(0,void 0):!s.has(l.index)&&l.children.length>0?s.set(l.index,l.children):o.push(l)),!0));const r=(l,c)=>{const d=s.get(l.index);if(!d)return;const u=new Ul(l.index);u.transform=l.transform;for(const h of d){const f=h.clone();u.appendChild(f),f instanceof Ul&&s.has(f.index)&&!c.has(f.index)&&(c.add(f.index),r(f,c),c.delete(f.index))}t.replace(l,[u])},a=new Set;for(const l of o)r(l,a);return t.children.slice(i)}ensureFinalTabstop(e,t,i){(t||i&&e.placeholders.length>0)&&(e.placeholders.find(o=>o.index===0)||e.appendChild(new Ul(0)))}_accept(e,t){if(e===void 0||this._token.type===e){const i=t?this._scanner.tokenText(this._token):!0;return this._token=this._scanner.next(),i}return!1}_backTo(e){return this._scanner.pos=e.pos+e.len,this._token=e,!1}_until(e){const t=this._token;for(;this._token.type!==e;){if(this._token.type===14)return!1;if(this._token.type===5){const s=this._scanner.next();if(s.type!==0&&s.type!==4&&s.type!==5)return!1}this._token=this._scanner.next()}const i=this._scanner.value.substring(t.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),i}_parse(e){return this._parseEscaped(e)||this._parseTabstopOrVariableName(e)||this._parseComplexPlaceholder(e)||this._parseComplexVariable(e)||this._parseAnything(e)}_parseEscaped(e){let t;return(t=this._accept(5,!0))?(t=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||t,e.appendChild(new Dr(t)),!0):!1}_parseTabstopOrVariableName(e){let t;const i=this._token;return this._accept(0)&&(t=this._accept(9,!0)||this._accept(8,!0))?(e.appendChild(/^\d+$/.test(t)?new Ul(Number(t)):new uk(t)),!0):this._backTo(i)}_parseComplexPlaceholder(e){let t;const i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(8,!0))))return this._backTo(i);const o=new Ul(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(o),!0;if(!this._parse(o))return e.appendChild(new Dr("${"+t+":")),o.children.forEach(e.appendChild,e),!0}else if(o.index>0&&this._accept(7)){const r=new Gw;for(;;){if(this._parseChoiceElement(r)){if(this._accept(2))continue;if(this._accept(7)&&(o.appendChild(r),this._accept(4)))return e.appendChild(o),!0}return this._backTo(i),!1}}else return this._accept(6)?this._parseTransform(o)?(e.appendChild(o),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(o),!0):this._backTo(i)}_parseChoiceElement(e){const t=this._token,i=[];for(;!(this._token.type===2||this._token.type===7);){let s;if((s=this._accept(5,!0))?s=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||s:s=this._accept(void 0,!0),!s)return this._backTo(t),!1;i.push(s)}return i.length===0?(this._backTo(t),!1):(e.appendChild(new Dr(i.join(""))),!0)}_parseComplexVariable(e){let t;const i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(9,!0))))return this._backTo(i);const o=new uk(t);if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(o),!0;if(!this._parse(o))return e.appendChild(new Dr("${"+t+":")),o.children.forEach(e.appendChild,e),!0}else return this._accept(6)?this._parseTransform(o)?(e.appendChild(o),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(o),!0):this._backTo(i)}_parseTransform(e){const t=new hU;let i="",s="";for(;!this._accept(6);){let o;if(o=this._accept(5,!0)){o=this._accept(6,!0)||o,i+=o;continue}if(this._token.type!==14){i+=this._accept(void 0,!0);continue}return!1}for(;!this._accept(6);){let o;if(o=this._accept(5,!0)){o=this._accept(5,!0)||this._accept(6,!0)||o,t.appendChild(new Dr(o));continue}if(!(this._parseFormatString(t)||this._parseAnything(t)))return!1}for(;!this._accept(4);){if(this._token.type!==14){s+=this._accept(void 0,!0);continue}return!1}try{t.regexp=new RegExp(i,s)}catch{return!1}return e.transform=t,!0}_parseFormatString(e){const t=this._token;if(!this._accept(0))return!1;let i=!1;this._accept(3)&&(i=!0);const s=this._accept(8,!0);if(s)if(i){if(this._accept(4))return e.appendChild(new Td(Number(s))),!0;if(!this._accept(1))return this._backTo(t),!1}else return e.appendChild(new Td(Number(s))),!0;else return this._backTo(t),!1;if(this._accept(6)){const o=this._accept(9,!0);return!o||!this._accept(4)?(this._backTo(t),!1):(e.appendChild(new Td(Number(s),o)),!0)}else if(this._accept(11)){const o=this._until(4);if(o)return e.appendChild(new Td(Number(s),void 0,o,void 0)),!0}else if(this._accept(12)){const o=this._until(4);if(o)return e.appendChild(new Td(Number(s),void 0,void 0,o)),!0}else if(this._accept(13)){const o=this._until(1);if(o){const r=this._until(4);if(r)return e.appendChild(new Td(Number(s),void 0,o,r)),!0}}else{const o=this._until(4);if(o)return e.appendChild(new Td(Number(s),void 0,void 0,o)),!0}return this._backTo(t),!1}_parseAnything(e){return this._token.type!==14?(e.appendChild(new Dr(this._scanner.tokenText(this._token))),this._accept(void 0),!0):!1}}function Zhe(n,e,t){var i,s,o,r;return(typeof t.insertText=="string"?t.insertText==="":t.insertText.snippet==="")?{edits:(s=(i=t.additionalEdit)===null||i===void 0?void 0:i.edits)!==null&&s!==void 0?s:[]}:{edits:[...e.map(a=>new pm(n,{range:a,text:typeof t.insertText=="string"?L0.escape(t.insertText)+"$0":t.insertText.snippet,insertAsSnippet:!0})),...(r=(o=t.additionalEdit)===null||o===void 0?void 0:o.edits)!==null&&r!==void 0?r:[]]}}function Yhe(n){var e;function t(a,l){return"mimeType"in a?a.mimeType===l.handledMimeType:!!l.kind&&a.kind.contains(l.kind)}const i=new Map;for(const a of n)for(const l of(e=a.yieldTo)!==null&&e!==void 0?e:[])for(const c of n)if(c!==a&&t(l,c)){let d=i.get(a);d||(d=[],i.set(a,d)),d.push(c)}if(!i.size)return Array.from(n);const s=new Set,o=[];function r(a){if(!a.length)return[];const l=a[0];if(o.includes(l))return console.warn("Yield to cycle detected",l),a;if(s.has(l))return r(a.slice(1));let c=[];const d=i.get(l);return d&&(o.push(l),c=r(d),o.pop()),s.add(l),[...c,l,...r(a.slice(1))]}return r(Array.from(n))}var YGe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},XGe=function(n,e){return function(t,i){e(t,i,n)}};const QGe=Wt.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:xae,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}});class TP extends ne{constructor(e,t,i,s,o){super(),this.typeId=e,this.editor=t,this.range=i,this.delegate=o,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(s),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(e){this.domNode=ke(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=e;const t=ke("span.icon");this.domNode.append(t),t.classList.add(..._t.asClassNameArray(Te.loading),"codicon-modifier-spin");const i=()=>{const s=this.editor.getOption(67);this.domNode.style.height=`${s}px`,this.domNode.style.width=`${Math.ceil(.8*s)}px`};i(),this._register(this.editor.onDidChangeConfiguration(s=>{(s.hasChanged(52)||s.hasChanged(67))&&i()})),this._register(ce(this.domNode,Le.CLICK,s=>{this.delegate.cancel()}))}getId(){return TP.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:{lineNumber:this.range.startLineNumber,column:this.range.startColumn},preference:[0]}}dispose(){super.dispose(),this.editor.removeContentWidget(this)}}TP.baseId="editor.widget.inlineProgressWidget";let rR=class extends ne{constructor(e,t,i){super(),this.id=e,this._editor=t,this._instantiationService=i,this._showDelay=500,this._showPromise=this._register(new Qs),this._currentWidget=new Qs,this._operationIdPool=0,this._currentDecorations=t.createDecorationsCollection()}async showWhile(e,t,i){const s=this._operationIdPool++;this._currentOperation=s,this.clear(),this._showPromise.value=Om(()=>{const o=A.fromPositions(e);this._currentDecorations.set([{range:o,options:QGe}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(TP,this.id,this._editor,o,t,i))},this._showDelay);try{return await i}finally{this._currentOperation===s&&(this.clear(),this._currentOperation=void 0)}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};rR=YGe([XGe(2,ht)],rR);var JGe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Ree=function(n,e){return function(t,i){e(t,i,n)}},PN;let Or=PN=class{static get(e){return e.getContribution(PN.ID)}constructor(e,t,i){this._openerService=i,this._messageWidget=new Qs,this._messageListeners=new be,this._mouseOverMessage=!1,this._editor=e,this._visible=PN.MESSAGE_VISIBLE.bindTo(t)}dispose(){var e;(e=this._message)===null||e===void 0||e.dispose(),this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(e,t){la(Xd(e)?e.value:e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._message=Xd(e)?GM(e,{actionHandler:{callback:s=>{this.closeMessage(),b$(this._openerService,s,Xd(e)?e.isTrusted:void 0)},disposables:this._messageListeners}}):void 0,this._messageWidget.value=new Mee(this._editor,t,typeof e=="string"?e:this._message.element),this._messageListeners.add(Ae.debounce(this._editor.onDidBlurEditorText,(s,o)=>o,0)(()=>{this._mouseOverMessage||this._messageWidget.value&&Zs(Ao(),this._messageWidget.value.getDomNode())||this.closeMessage()})),this._messageListeners.add(this._editor.onDidChangeCursorPosition(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidDispose(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidChangeModel(()=>this.closeMessage())),this._messageListeners.add(ce(this._messageWidget.value.getDomNode(),Le.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(ce(this._messageWidget.value.getDomNode(),Le.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let i;this._messageListeners.add(this._editor.onMouseMove(s=>{s.target.position&&(i?i.containsPosition(s.target.position)||this.closeMessage():i=new A(t.lineNumber-3,1,s.target.position.lineNumber+3,1))}))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(Mee.fadeOut(this._messageWidget.value))}};Or.ID="editor.contrib.messageController";Or.MESSAGE_VISIBLE=new He("messageVisible",!1,v("messageVisible","Whether the editor is currently showing an inline message"));Or=PN=JGe([Ree(1,Ct),Ree(2,$a)],Or);const eZe=Us.bindToContribution(Or.get);Fe(new eZe({id:"leaveEditorMessage",precondition:Or.MESSAGE_VISIBLE,handler:n=>n.closeMessage(),kbOpts:{weight:130,primary:9}}));let Mee=class{static fadeOut(e){const t=()=>{e.dispose(),clearTimeout(i),e.getDomNode().removeEventListener("animationend",t)},i=setTimeout(t,110);return e.getDomNode().addEventListener("animationend",t),e.getDomNode().classList.add("fadeOut"),{dispose:t}}constructor(e,{lineNumber:t,column:i},s){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=e,this._editor.revealLinesInCenterIfOutsideViewport(t,t,0),this._position={lineNumber:t,column:i},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";const o=document.createElement("div");o.classList.add("anchor","top"),this._domNode.appendChild(o);const r=document.createElement("div");typeof s=="string"?(r.classList.add("message"),r.textContent=s):(s.classList.add("message"),r.appendChild(s)),this._domNode.appendChild(r);const a=document.createElement("div");a.classList.add("anchor","below"),this._domNode.appendChild(a),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}dispose(){this._editor.removeContentWidget(this)}getId(){return"messageoverlay"}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(e){this._domNode.classList.toggle("below",e===2)}};bi(Or.ID,Or,4);function X5(n,e){return e&&(n.stack||n.stacktrace)?v("stackTrace.format","{0}: {1}",Oee(n),Pee(n.stack)||Pee(n.stacktrace)):Oee(n)}function Pee(n){return Array.isArray(n)?n.join(` `):n}function Oee(n){return n.code==="ERR_UNC_HOST_NOT_ALLOWED"?`${n.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`:typeof n.code=="string"&&typeof n.errno=="number"&&typeof n.syscall=="string"?v("nodeExceptionMessage","A system error occurred ({0})",n.message):n.message||v("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}function aR(n=null,e=!1){if(!n)return v("error.defaultMessage","An unknown error occurred. Please consult the log for more details.");if(Array.isArray(n)){const t=tu(n),i=aR(t[0],e);return t.length>1?v("error.moreErrors","{0} ({1} errors in total)",i,t.length):i}if(Pr(n))return n;if(n.detail){const t=n.detail;if(t.error)return X5(t.error,e);if(t.exception)return X5(t.exception,e)}return n.stack?X5(n,e):n.message?n.message:v("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}var Xhe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},fC=function(n,e){return function(t,i){e(t,i,n)}},H6;let lR=H6=class extends ne{constructor(e,t,i,s,o,r,a,l,c,d){super(),this.typeId=e,this.editor=t,this.showCommand=s,this.range=o,this.edits=r,this.onSelectNewEdit=a,this._contextMenuService=l,this._keybindingService=d,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=i.bindTo(c),this.visibleContext.set(!0),this._register(dt(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(dt(()=>this.editor.removeContentWidget(this))),this._register(this.editor.onDidChangeCursorPosition(u=>{o.containsPosition(u.position)||this.dispose()})),this._register(Ae.runAndSubscribe(d.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){var e;const t=(e=this._keybindingService.lookupKeybinding(this.showCommand.id))===null||e===void 0?void 0:e.getLabel();this.button.element.title=this.showCommand.label+(t?` (${t})`:"")}create(){this.domNode=ke(".post-edit-widget"),this.button=this._register(new RA(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(ce(this.domNode,Le.CLICK,()=>this.showSelector()))}getId(){return H6.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){this._contextMenuService.showContextMenu({getAnchor:()=>{const e=bs(this.button.element);return{x:e.left+e.width,y:e.top+e.height}},getActions:()=>this.edits.allEdits.map((e,t)=>$v({id:"",label:e.title,checked:t===this.edits.activeEditIndex,run:()=>{if(t!==this.edits.activeEditIndex)return this.onSelectNewEdit(t)}}))})}};lR.baseId="editor.widget.postEditWidget";lR=H6=Xhe([fC(7,za),fC(8,Ct),fC(9,Li)],lR);let cR=class extends ne{constructor(e,t,i,s,o,r,a){super(),this._id=e,this._editor=t,this._visibleContext=i,this._showCommand=s,this._instantiationService=o,this._bulkEditService=r,this._notificationService=a,this._currentWidget=this._register(new Qs),this._register(Ae.any(t.onDidChangeModel,t.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(e,t,i,s,o){const r=this._editor.getModel();if(!r||!e.length)return;const a=t.allEdits.at(t.activeEditIndex);if(!a)return;const l=async _=>{const b=this._editor.getModel();b&&(await b.undo(),this.applyEditAndShowIfNeeded(e,{activeEditIndex:_,allEdits:t.allEdits},i,s,o))},c=(_,b)=>{ld(_)||(this._notificationService.error(b),i&&this.show(e[0],t,l))};let d;try{d=await s(a,o)}catch(_){return c(_,v("resolveError",`Error resolving edit '{0}': {1}`,a.title,aR(_)))}if(o.isCancellationRequested)return;const u=Zhe(r.uri,e,d),h=e[0],f=r.deltaDecorations([],[{range:h,options:{description:"paste-line-suffix",stickiness:0}}]);this._editor.focus();let g,p;try{g=await this._bulkEditService.apply(u,{editor:this._editor,token:o}),p=r.getDecorationRange(f[0])}catch(_){return c(_,v("applyError",`Error applying edit '{0}': {1}`,a.title,aR(_)))}finally{r.deltaDecorations(f,[])}o.isCancellationRequested||i&&g.isApplied&&t.allEdits.length>1&&this.show(p??h,t,l)}show(e,t,i){this.clear(),this._editor.hasModel()&&(this._currentWidget.value=this._instantiationService.createInstance(lR,this._id,this._editor,this._visibleContext,this._showCommand,e,t,i))}clear(){this._currentWidget.clear()}tryShowSelector(){var e;(e=this._currentWidget.value)===null||e===void 0||e.showSelector()}};cR=Xhe([fC(4,ht),fC(5,ED),fC(6,ps)],cR);var tZe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Vb=function(n,e){return function(t,i){e(t,i,n)}},av;const Qhe="editor.changePasteType",fU=new He("pasteWidgetVisible",!1,v("pasteWidgetVisible","Whether the paste widget is showing")),Q5="application/vnd.code.copyMetadata";let Oh=av=class extends ne{static get(e){return e.getContribution(av.ID)}constructor(e,t,i,s,o,r,a){super(),this._bulkEditService=i,this._clipboardService=s,this._languageFeaturesService=o,this._quickInputService=r,this._progressService=a,this._editor=e;const l=e.getContainerDomNode();this._register(ce(l,"copy",c=>this.handleCopy(c))),this._register(ce(l,"cut",c=>this.handleCopy(c))),this._register(ce(l,"paste",c=>this.handlePaste(c),!0)),this._pasteProgressManager=this._register(new rR("pasteIntoEditor",e,t)),this._postPasteWidgetManager=this._register(t.createInstance(cR,"pasteIntoEditor",e,fU,{id:Qhe,label:v("postPasteWidgetTitle","Show paste options...")}))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}pasteAs(e){this._editor.focus();try{this._pasteAsActionContext={preferred:e},Rw().execCommand("paste")}finally{this._pasteAsActionContext=void 0}}clearWidgets(){this._postPasteWidgetManager.clear()}isPasteAsEnabled(){return this._editor.getOption(85).enabled&&!this._editor.getOption(91)}async finishedPaste(){await this._currentPasteOperation}handleCopy(e){var t,i;if(!this._editor.hasTextFocus()||(u_&&this._clipboardService.writeResources([]),!e.clipboardData||!this.isPasteAsEnabled()))return;const s=this._editor.getModel(),o=this._editor.getSelections();if(!s||!(o!=null&&o.length))return;const r=this._editor.getOption(37);let a=o;const l=o.length===1&&o[0].isEmpty();if(l){if(!r)return;a=[new A(a[0].startLineNumber,1,a[0].startLineNumber,1+s.getLineLength(a[0].startLineNumber))]}const c=(t=this._editor._getViewModel())===null||t===void 0?void 0:t.getPlainTextToCopy(o,r,Mo),u={multicursorText:Array.isArray(c)?c:null,pasteOnNewLine:l,mode:null},h=this._languageFeaturesService.documentPasteEditProvider.ordered(s).filter(b=>!!b.prepareDocumentPaste);if(!h.length){this.setCopyMetadata(e.clipboardData,{defaultPastePayload:u});return}const f=Uhe(e.clipboardData),g=h.flatMap(b=>{var w;return(w=b.copyMimeTypes)!==null&&w!==void 0?w:[]}),p=IP();this.setCopyMetadata(e.clipboardData,{id:p,providerCopyMimeTypes:g,defaultPastePayload:u});const _=Xs(async b=>{const w=tu(await Promise.all(h.map(async y=>{try{return await y.prepareDocumentPaste(s,a,f,b)}catch(S){console.error(S);return}})));w.reverse();for(const y of w)for(const[S,x]of y)f.replace(S,x);return f});(i=av._currentCopyOperation)===null||i===void 0||i.dataTransferPromise.cancel(),av._currentCopyOperation={handle:p,dataTransferPromise:_}}async handlePaste(e){var t,i,s,o;if(!e.clipboardData||!this._editor.hasTextFocus())return;(t=Or.get(this._editor))===null||t===void 0||t.closeMessage(),(i=this._currentPasteOperation)===null||i===void 0||i.cancel(),this._currentPasteOperation=void 0;const r=this._editor.getModel(),a=this._editor.getSelections();if(!(a!=null&&a.length)||!r||!this.isPasteAsEnabled()&&!this._pasteAsActionContext)return;const l=this.fetchCopyMetadata(e),c=jhe(e.clipboardData);c.delete(Q5);const d=[...e.clipboardData.types,...(s=l==null?void 0:l.providerCopyMimeTypes)!==null&&s!==void 0?s:[],ss.uriList],u=this._languageFeaturesService.documentPasteEditProvider.ordered(r).filter(h=>{var f,g;const p=(f=this._pasteAsActionContext)===null||f===void 0?void 0:f.preferred;return p&&h.providedPasteEditKinds&&!this.providerMatchesPreference(h,p)?!1:(g=h.pasteMimeTypes)===null||g===void 0?void 0:g.some(_=>zhe(_,d))});if(!u.length){!((o=this._pasteAsActionContext)===null||o===void 0)&&o.preferred&&this.showPasteAsNoEditMessage(a,this._pasteAsActionContext.preferred);return}e.preventDefault(),e.stopImmediatePropagation(),this._pasteAsActionContext?this.showPasteAsPick(this._pasteAsActionContext.preferred,u,a,c,l):this.doPasteInline(u,a,c,l,e)}showPasteAsNoEditMessage(e,t){var i;(i=Or.get(this._editor))===null||i===void 0||i.showMessage(v("pasteAsError","No paste edits for '{0}' found",t instanceof Yi?t.value:t.providerId),e[0].getStartPosition())}doPasteInline(e,t,i,s,o){const r=Xs(async a=>{const l=this._editor;if(!l.hasModel())return;const c=l.getModel(),d=new Km(l,3,void 0,a);try{if(await this.mergeInDataFromCopy(i,s,d.token),d.token.isCancellationRequested)return;const u=e.filter(g=>this.isSupportedPasteProvider(g,i));if(!u.length||u.length===1&&u[0]instanceof Ag)return this.applyDefaultPasteHandler(i,s,d.token,o);const h={triggerKind:aL.Automatic},f=await this.getPasteEdits(u,i,c,t,h,d.token);if(d.token.isCancellationRequested)return;if(f.length===1&&f[0].provider instanceof Ag)return this.applyDefaultPasteHandler(i,s,d.token,o);if(f.length){const g=l.getOption(85).showPasteSelector==="afterPaste";return this._postPasteWidgetManager.applyEditAndShowIfNeeded(t,{activeEditIndex:0,allEdits:f},g,async(p,_)=>{var b,w;const y=await((w=(b=p.provider).resolveDocumentPasteEdit)===null||w===void 0?void 0:w.call(b,p,_));return y&&(p.additionalEdit=y.additionalEdit),p},d.token)}await this.applyDefaultPasteHandler(i,s,d.token,o)}finally{d.dispose(),this._currentPasteOperation===r&&(this._currentPasteOperation=void 0)}});this._pasteProgressManager.showWhile(t[0].getEndPosition(),v("pasteIntoEditorProgress","Running paste handlers. Click to cancel"),r),this._currentPasteOperation=r}showPasteAsPick(e,t,i,s,o){const r=Xs(async a=>{const l=this._editor;if(!l.hasModel())return;const c=l.getModel(),d=new Km(l,3,void 0,a);try{if(await this.mergeInDataFromCopy(s,o,d.token),d.token.isCancellationRequested)return;let u=t.filter(_=>this.isSupportedPasteProvider(_,s,e));e&&(u=u.filter(_=>this.providerMatchesPreference(_,e)));const h={triggerKind:aL.PasteAs,only:e&&e instanceof Yi?e:void 0};let f=await this.getPasteEdits(u,s,c,i,h,d.token);if(d.token.isCancellationRequested)return;if(e&&(f=f.filter(_=>e instanceof Yi?e.contains(_.kind):e.providerId===_.provider.id)),!f.length){h.only&&this.showPasteAsNoEditMessage(i,h.only);return}let g;if(e)g=f.at(0);else{const _=await this._quickInputService.pick(f.map(b=>{var w;return{label:b.title,description:(w=b.kind)===null||w===void 0?void 0:w.value,edit:b}}),{placeHolder:v("pasteAsPickerPlaceholder","Select Paste Action")});g=_==null?void 0:_.edit}if(!g)return;const p=Zhe(c.uri,i,g);await this._bulkEditService.apply(p,{editor:this._editor})}finally{d.dispose(),this._currentPasteOperation===r&&(this._currentPasteOperation=void 0)}});this._progressService.withProgress({location:10,title:v("pasteAsProgress","Running paste handlers")},()=>r)}setCopyMetadata(e,t){e.setData(Q5,JSON.stringify(t))}fetchCopyMetadata(e){var t;if(!e.clipboardData)return;const i=e.clipboardData.getData(Q5);if(i)try{return JSON.parse(i)}catch{return}const[s,o]=RB.getTextData(e.clipboardData);if(o)return{defaultPastePayload:{mode:o.mode,multicursorText:(t=o.multicursorText)!==null&&t!==void 0?t:null,pasteOnNewLine:!!o.isFromEmptySelection}}}async mergeInDataFromCopy(e,t,i){var s;if(t!=null&&t.id&&((s=av._currentCopyOperation)===null||s===void 0?void 0:s.handle)===t.id){const o=await av._currentCopyOperation.dataTransferPromise;if(i.isCancellationRequested)return;for(const[r,a]of o)e.replace(r,a)}if(!e.has(ss.uriList)){const o=await this._clipboardService.readResources();if(i.isCancellationRequested)return;o.length&&e.append(ss.uriList,cU(EP.create(o)))}}async getPasteEdits(e,t,i,s,o,r){const a=await uD(Promise.all(e.map(async c=>{var d,u;try{const h=await((d=c.provideDocumentPasteEdits)===null||d===void 0?void 0:d.call(c,i,s,t,o,r));return(u=h==null?void 0:h.edits)===null||u===void 0?void 0:u.map(f=>({...f,provider:c}))}catch(h){console.error(h)}})),r),l=tu(a??[]).flat().filter(c=>!o.only||o.only.contains(c.kind));return Yhe(l)}async applyDefaultPasteHandler(e,t,i,s){var o,r,a,l;const c=(o=e.get(ss.text))!==null&&o!==void 0?o:e.get("text"),d=(r=await(c==null?void 0:c.asString()))!==null&&r!==void 0?r:"";if(i.isCancellationRequested)return;const u={clipboardEvent:s,text:d,pasteOnNewLine:(a=t==null?void 0:t.defaultPastePayload.pasteOnNewLine)!==null&&a!==void 0?a:!1,multicursorText:(l=t==null?void 0:t.defaultPastePayload.multicursorText)!==null&&l!==void 0?l:null,mode:null};this._editor.trigger("keyboard","paste",u)}isSupportedPasteProvider(e,t,i){var s;return!((s=e.pasteMimeTypes)===null||s===void 0)&&s.some(o=>t.matches(o))?!i||this.providerMatchesPreference(e,i):!1}providerMatchesPreference(e,t){return t instanceof Yi?e.providedPasteEditKinds?e.providedPasteEditKinds.some(i=>t.contains(i)):!0:e.id===t.providerId}};Oh.ID="editor.contrib.copyPasteActionController";Oh=av=tZe([Vb(1,ht),Vb(2,ED),Vb(3,zg),Vb(4,Xe),Vb(5,Cc),Vb(6,kde)],Oh);const k0="9_cutcopypaste",iZe=Lh||document.queryCommandSupported("cut"),Jhe=Lh||document.queryCommandSupported("copy"),nZe=typeof navigator.clipboard>"u"||lc?document.queryCommandSupported("paste"):!0;function gU(n){return n.register(),n}const sZe=iZe?gU(new Pw({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:Lh?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:R.MenubarEditMenu,group:"2_ccp",title:v({},"Cu&&t"),order:1},{menuId:R.EditorContext,group:k0,title:v("actions.clipboard.cutLabel","Cut"),when:W.writable,order:1},{menuId:R.CommandPalette,group:"",title:v("actions.clipboard.cutLabel","Cut"),order:1},{menuId:R.SimpleEditorContext,group:k0,title:v("actions.clipboard.cutLabel","Cut"),when:W.writable,order:1}]})):void 0,oZe=Jhe?gU(new Pw({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:Lh?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:R.MenubarEditMenu,group:"2_ccp",title:v({},"&&Copy"),order:2},{menuId:R.EditorContext,group:k0,title:v("actions.clipboard.copyLabel","Copy"),order:2},{menuId:R.CommandPalette,group:"",title:v("actions.clipboard.copyLabel","Copy"),order:1},{menuId:R.SimpleEditorContext,group:k0,title:v("actions.clipboard.copyLabel","Copy"),order:2}]})):void 0;ao.appendMenuItem(R.MenubarEditMenu,{submenu:R.MenubarCopy,title:Nt("copy as","Copy As"),group:"2_ccp",order:3});ao.appendMenuItem(R.EditorContext,{submenu:R.EditorContextCopy,title:Nt("copy as","Copy As"),group:k0,order:3});ao.appendMenuItem(R.EditorContext,{submenu:R.EditorContextShare,title:Nt("share","Share"),group:"11_share",order:-1,when:pe.and(pe.notEquals("resourceScheme","output"),W.editorTextFocus)});ao.appendMenuItem(R.ExplorerContext,{submenu:R.ExplorerContextShare,title:Nt("share","Share"),group:"11_share",order:-1});const J5=nZe?gU(new Pw({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:Lh?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:R.MenubarEditMenu,group:"2_ccp",title:v({},"&&Paste"),order:4},{menuId:R.EditorContext,group:k0,title:v("actions.clipboard.pasteLabel","Paste"),when:W.writable,order:4},{menuId:R.CommandPalette,group:"",title:v("actions.clipboard.pasteLabel","Paste"),order:1},{menuId:R.SimpleEditorContext,group:k0,title:v("actions.clipboard.pasteLabel","Paste"),when:W.writable,order:4}]})):void 0;class rZe extends Ke{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:v("actions.clipboard.copyWithSyntaxHighlightingLabel","Copy With Syntax Highlighting"),alias:"Copy With Syntax Highlighting",precondition:void 0,kbOpts:{kbExpr:W.textInputFocus,primary:0,weight:100}})}run(e,t){!t.hasModel()||!t.getOption(37)&&t.getSelection().isEmpty()||(NB.forceCopyWithSyntaxHighlighting=!0,t.focus(),t.getContainerDomNode().ownerDocument.execCommand("copy"),NB.forceCopyWithSyntaxHighlighting=!1)}}function efe(n,e){n&&(n.addImplementation(1e4,"code-editor",(t,i)=>{const s=t.get(vi).getFocusedCodeEditor();if(s&&s.hasTextFocus()){const o=s.getOption(37),r=s.getSelection();return r&&r.isEmpty()&&!o||s.getContainerDomNode().ownerDocument.execCommand(e),!0}return!1}),n.addImplementation(0,"generic-dom",(t,i)=>(Rw().execCommand(e),!0)))}efe(sZe,"cut");efe(oZe,"copy");J5&&(J5.addImplementation(1e4,"code-editor",(n,e)=>{var t,i;const s=n.get(vi),o=n.get(zg),r=s.getFocusedCodeEditor();return r&&r.hasTextFocus()?r.getContainerDomNode().ownerDocument.execCommand("paste")?(i=(t=Oh.get(r))===null||t===void 0?void 0:t.finishedPaste())!==null&&i!==void 0?i:Promise.resolve():u_?(async()=>{const l=await o.readText();if(l!==""){const c=EL.INSTANCE.get(l);let d=!1,u=null,h=null;c&&(d=r.getOption(37)&&!!c.isFromEmptySelection,u=typeof c.multicursorText<"u"?c.multicursorText:null,h=c.mode),r.trigger("keyboard","paste",{text:l,pasteOnNewLine:d,multicursorText:u,mode:h})}})():!0:!1}),J5.addImplementation(0,"generic-dom",(n,e)=>(Rw().execCommand("paste"),!0)));Jhe&&xe(rZe);const kn=new class{constructor(){this.QuickFix=new Yi("quickfix"),this.Refactor=new Yi("refactor"),this.RefactorExtract=this.Refactor.append("extract"),this.RefactorInline=this.Refactor.append("inline"),this.RefactorMove=this.Refactor.append("move"),this.RefactorRewrite=this.Refactor.append("rewrite"),this.Notebook=new Yi("notebook"),this.Source=new Yi("source"),this.SourceOrganizeImports=this.Source.append("organizeImports"),this.SourceFixAll=this.Source.append("fixAll"),this.SurroundWith=this.Refactor.append("surround")}};var Fa;(function(n){n.Refactor="refactor",n.RefactorPreview="refactor preview",n.Lightbulb="lightbulb",n.Default="other (default)",n.SourceAction="source action",n.QuickFix="quick fix action",n.FixAll="fix all",n.OrganizeImports="organize imports",n.AutoFix="auto fix",n.QuickFixHover="quick fix hover window",n.OnSave="save participants",n.ProblemsView="problems view"})(Fa||(Fa={}));function aZe(n,e){return!(n.include&&!n.include.intersects(e)||n.excludes&&n.excludes.some(t=>tfe(e,t,n.include))||!n.includeSourceActions&&kn.Source.contains(e))}function lZe(n,e){const t=e.kind?new Yi(e.kind):void 0;return!(n.include&&(!t||!n.include.contains(t))||n.excludes&&t&&n.excludes.some(i=>tfe(t,i,n.include))||!n.includeSourceActions&&t&&kn.Source.contains(t)||n.onlyIncludePreferredActions&&!e.isPreferred)}function tfe(n,e,t){return!(!e.contains(n)||t&&e.contains(t))}class sh{static fromUser(e,t){return!e||typeof e!="object"?new sh(t.kind,t.apply,!1):new sh(sh.getKindFromUser(e,t.kind),sh.getApplyFromUser(e,t.apply),sh.getPreferredUser(e))}static getApplyFromUser(e,t){switch(typeof e.apply=="string"?e.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return t}}static getKindFromUser(e,t){return typeof e.kind=="string"?new Yi(e.kind):t}static getPreferredUser(e){return typeof e.preferred=="boolean"?e.preferred:!1}constructor(e,t,i){this.kind=e,this.apply=t,this.preferred=i}}class cZe{constructor(e,t,i){this.action=e,this.provider=t,this.highlightRange=i}async resolve(e){var t;if(!((t=this.provider)===null||t===void 0)&&t.resolveCodeAction&&!this.action.edit){let i;try{i=await this.provider.resolveCodeAction(this.action,e)}catch(s){as(s)}i&&(this.action.edit=i.edit)}return this}}const ife="editor.action.codeAction",pU="editor.action.quickFix",nfe="editor.action.autoFix",sfe="editor.action.refactor",ofe="editor.action.sourceAction",mU="editor.action.organizeImports",_U="editor.action.fixAll";class Tx extends ne{static codeActionsPreferredComparator(e,t){return e.isPreferred&&!t.isPreferred?-1:!e.isPreferred&&t.isPreferred?1:0}static codeActionsComparator({action:e},{action:t}){return e.isAI&&!t.isAI?1:!e.isAI&&t.isAI?-1:Zo(e.diagnostics)?Zo(t.diagnostics)?Tx.codeActionsPreferredComparator(e,t):-1:Zo(t.diagnostics)?1:Tx.codeActionsPreferredComparator(e,t)}constructor(e,t,i){super(),this.documentation=t,this._register(i),this.allActions=[...e].sort(Tx.codeActionsComparator),this.validActions=this.allActions.filter(({action:s})=>!s.disabled)}get hasAutoFix(){return this.validActions.some(({action:e})=>!!e.kind&&kn.QuickFix.contains(new Yi(e.kind))&&!!e.isPreferred)}get hasAIFix(){return this.validActions.some(({action:e})=>!!e.isAI)}get allAIFixes(){return this.validActions.every(({action:e})=>!!e.isAI)}}const Fee={actions:[],documentation:void 0};async function Nx(n,e,t,i,s,o){var r;const a=i.filter||{},l={...a,excludes:[...a.excludes||[],kn.Notebook]},c={only:(r=a.include)===null||r===void 0?void 0:r.value,trigger:i.type},d=new iU(e,o),u=i.type===2,h=dZe(n,e,u?l:a),f=new be,g=h.map(async _=>{try{s.report(_);const b=await _.provideCodeActions(e,t,c,d.token);if(b&&f.add(b),d.token.isCancellationRequested)return Fee;const w=((b==null?void 0:b.actions)||[]).filter(S=>S&&lZe(a,S)),y=hZe(_,w,a.include);return{actions:w.map(S=>new cZe(S,_)),documentation:y}}catch(b){if(ld(b))throw b;return as(b),Fee}}),p=n.onDidChange(()=>{const _=n.all(e);zn(_,h)||d.cancel()});try{const _=await Promise.all(g),b=_.map(y=>y.actions).flat(),w=[...tu(_.map(y=>y.documentation)),...uZe(n,e,i,b)];return new Tx(b,w,f)}finally{p.dispose(),d.dispose()}}function dZe(n,e,t){return n.all(e).filter(i=>i.providedCodeActionKinds?i.providedCodeActionKinds.some(s=>aZe(t,new Yi(s))):!0)}function*uZe(n,e,t,i){var s,o,r;if(e&&i.length)for(const a of n.all(e))a._getAdditionalMenuItems&&(yield*(s=a._getAdditionalMenuItems)===null||s===void 0?void 0:s.call(a,{trigger:t.type,only:(r=(o=t.filter)===null||o===void 0?void 0:o.include)===null||r===void 0?void 0:r.value},i.map(l=>l.action)))}function hZe(n,e,t){if(!n.documentation)return;const i=n.documentation.map(s=>({kind:new Yi(s.kind),command:s.command}));if(t){let s;for(const o of i)o.kind.contains(t)&&(s?s.kind.contains(o.kind)&&(s=o):s=o);if(s)return s==null?void 0:s.command}for(const s of e)if(s.kind){for(const o of i)if(o.kind.contains(new Yi(s.kind)))return o.command}}var Av;(function(n){n.OnSave="onSave",n.FromProblemsView="fromProblemsView",n.FromCodeActions="fromCodeActions",n.FromAILightbulb="fromAILightbulb"})(Av||(Av={}));async function fZe(n,e,t,i,s=Qt.None){var o;const r=n.get(ED),a=n.get(Sn),l=n.get(Po),c=n.get(ps);if(l.publicLog2("codeAction.applyCodeAction",{codeActionTitle:e.action.title,codeActionKind:e.action.kind,codeActionIsPreferred:!!e.action.isPreferred,reason:t}),await e.resolve(s),!s.isCancellationRequested&&!(!((o=e.action.edit)===null||o===void 0)&&o.edits.length&&!(await r.apply(e.action.edit,{editor:i==null?void 0:i.editor,label:e.action.title,quotableLabel:e.action.title,code:"undoredo.codeAction",respectAutoSaveConfig:t!==Av.OnSave,showPreview:i==null?void 0:i.preview})).isApplied)&&e.action.command)try{await a.executeCommand(e.action.command.id,...e.action.command.arguments||[])}catch(d){const u=gZe(d);c.error(typeof u=="string"?u:v("applyCodeActionFailed","An unknown error occurred while applying the code action"))}}function gZe(n){return typeof n=="string"?n:n instanceof Error&&typeof n.message=="string"?n.message:void 0}ri.registerCommand("_executeCodeActionProvider",async function(n,e,t,i,s){if(!(e instanceof pt))throw ic();const{codeActionProvider:o}=n.get(Xe),r=n.get(Pn).getModel(e);if(!r)throw ic();const a=it.isISelection(t)?it.liftSelection(t):A.isIRange(t)?r.validateRange(t):void 0;if(!a)throw ic();const l=typeof i=="string"?new Yi(i):void 0,c=await Nx(o,r,a,{type:1,triggerAction:Fa.Default,filter:{includeSourceActions:!0,include:l}},bg.None,Qt.None),d=[],u=Math.min(c.validActions.length,typeof s=="number"?s:0);for(let h=0;hh.action)}finally{setTimeout(()=>c.dispose(),100)}});var pZe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},mZe=function(n,e){return function(t,i){e(t,i,n)}},V6;let dR=V6=class{constructor(e){this.keybindingService=e}getResolver(){const e=new pu(()=>this.keybindingService.getKeybindings().filter(t=>V6.codeActionCommands.indexOf(t.command)>=0).filter(t=>t.resolvedKeybinding).map(t=>{let i=t.commandArgs;return t.command===mU?i={kind:kn.SourceOrganizeImports.value}:t.command===_U&&(i={kind:kn.SourceFixAll.value}),{resolvedKeybinding:t.resolvedKeybinding,...sh.fromUser(i,{kind:Yi.None,apply:"never"})}}));return t=>{if(t.kind){const i=this.bestKeybindingForCodeAction(t,e.value);return i==null?void 0:i.resolvedKeybinding}}}bestKeybindingForCodeAction(e,t){if(!e.kind)return;const i=new Yi(e.kind);return t.filter(s=>s.kind.contains(i)).filter(s=>s.preferred?e.isPreferred:!0).reduceRight((s,o)=>s?s.kind.contains(o.kind)?o:s:o,void 0)}};dR.codeActionCommands=[sfe,ife,ofe,mU,_U];dR=V6=pZe([mZe(0,Li)],dR);V("symbolIcon.arrayForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.arrayForeground","The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.booleanForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.booleanForeground","The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},v("symbolIcon.classForeground","The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.colorForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.colorForeground","The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.constantForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.constantForeground","The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},v("symbolIcon.constructorForeground","The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},v("symbolIcon.enumeratorForeground","The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},v("symbolIcon.enumeratorMemberForeground","The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},v("symbolIcon.eventForeground","The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},v("symbolIcon.fieldForeground","The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.fileForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.fileForeground","The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.folderForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.folderForeground","The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},v("symbolIcon.functionForeground","The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},v("symbolIcon.interfaceForeground","The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.keyForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.keyForeground","The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.keywordForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.keywordForeground","The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},v("symbolIcon.methodForeground","The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.moduleForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.moduleForeground","The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.namespaceForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.namespaceForeground","The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.nullForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.nullForeground","The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.numberForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.numberForeground","The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.objectForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.objectForeground","The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.operatorForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.operatorForeground","The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.packageForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.packageForeground","The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.propertyForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.propertyForeground","The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.referenceForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.referenceForeground","The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.snippetForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.snippetForeground","The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.stringForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.stringForeground","The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.structForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.structForeground","The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.textForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.textForeground","The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.typeParameterForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.typeParameterForeground","The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.unitForeground",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v("symbolIcon.unitForeground","The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},v("symbolIcon.variableForeground","The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));const rfe=Object.freeze({kind:Yi.Empty,title:v("codeAction.widget.id.more","More Actions...")}),_Ze=Object.freeze([{kind:kn.QuickFix,title:v("codeAction.widget.id.quickfix","Quick Fix")},{kind:kn.RefactorExtract,title:v("codeAction.widget.id.extract","Extract"),icon:Te.wrench},{kind:kn.RefactorInline,title:v("codeAction.widget.id.inline","Inline"),icon:Te.wrench},{kind:kn.RefactorRewrite,title:v("codeAction.widget.id.convert","Rewrite"),icon:Te.wrench},{kind:kn.RefactorMove,title:v("codeAction.widget.id.move","Move"),icon:Te.wrench},{kind:kn.SurroundWith,title:v("codeAction.widget.id.surround","Surround With"),icon:Te.surroundWith},{kind:kn.Source,title:v("codeAction.widget.id.source","Source Action"),icon:Te.symbolFile},rfe]);function vZe(n,e,t){if(!e)return n.map(o=>{var r;return{kind:"action",item:o,group:rfe,disabled:!!o.action.disabled,label:o.action.disabled||o.action.title,canPreview:!!(!((r=o.action.edit)===null||r===void 0)&&r.edits.length)}});const i=_Ze.map(o=>({group:o,actions:[]}));for(const o of n){const r=o.action.kind?new Yi(o.action.kind):Yi.None;for(const a of i)if(a.group.kind.contains(r)){a.actions.push(o);break}}const s=[];for(const o of i)if(o.actions.length){s.push({kind:"header",group:o.group});for(const r of o.actions){const a=o.group;s.push({kind:"action",item:r,group:r.action.isAI?{title:a.title,kind:a.kind,icon:Te.sparkle}:a,label:r.action.title,disabled:!!r.action.disabled,keybinding:t(r.action)})}}return s}var bZe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Bee=function(n,e){return function(t,i){e(t,i,n)}},z6,A1;(function(n){n.Hidden={type:0};class e{constructor(i,s,o,r){this.actions=i,this.trigger=s,this.editorPosition=o,this.widgetPosition=r,this.type=1}}n.Showing=e})(A1||(A1={}));let D0=z6=class extends ne{constructor(e,t,i){super(),this._editor=e,this._keybindingService=t,this._onClick=this._register(new X),this.onClick=this._onClick.event,this._state=A1.Hidden,this._iconClasses=[],this._domNode=ke("div.lightBulbWidget"),this._domNode.role="listbox",this._register(hn.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent(s=>{const o=this._editor.getModel();(this.state.type!==1||!o||this.state.editorPosition.lineNumber>=o.getLineCount())&&this.hide()})),this._register(wMe(this._domNode,s=>{if(this.state.type!==1)return;this._editor.focus(),s.preventDefault();const{top:o,height:r}=bs(this._domNode),a=this._editor.getOption(67);let l=Math.floor(a/3);this.state.widgetPosition.position!==null&&this.state.widgetPosition.position.lineNumber{(s.buttons&1)===1&&this.hide()})),this._register(Ae.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{var s,o,r,a;this._preferredKbLabel=(o=(s=this._keybindingService.lookupKeybinding(nfe))===null||s===void 0?void 0:s.getLabel())!==null&&o!==void 0?o:void 0,this._quickFixKbLabel=(a=(r=this._keybindingService.lookupKeybinding(pU))===null||r===void 0?void 0:r.getLabel())!==null&&a!==void 0?a:void 0,this._updateLightBulbTitleAndIcon()}))}dispose(){super.dispose(),this._editor.removeContentWidget(this)}getId(){return"LightBulbWidget"}getDomNode(){return this._domNode}getPosition(){return this._state.type===1?this._state.widgetPosition:null}update(e,t,i){if(e.validActions.length<=0)return this.hide();if(!this._editor.getOptions().get(65).enabled)return this.hide();const o=this._editor.getModel();if(!o)return this.hide();const{lineNumber:r,column:a}=o.validatePosition(i),l=o.getOptions().tabSize,c=this._editor.getOptions().get(50),d=o.getLineContent(r),u=WM(d,l),h=c.spaceWidth*u>22,f=w=>w>2&&this._editor.getTopForLineNumber(w)===this._editor.getTopForLineNumber(w-1);let g=r,p=1;if(!h){if(r>1&&!f(r-1))g-=1;else if(r=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},$6=function(n,e){return function(t,i){e(t,i,n)}};const lfe="acceptSelectedCodeAction",cfe="previewSelectedCodeAction";class CZe{get templateId(){return"header"}renderTemplate(e){e.classList.add("group-header");const t=document.createElement("span");return e.append(t),{container:e,text:t}}renderElement(e,t,i){var s,o;i.text.textContent=(o=(s=e.group)===null||s===void 0?void 0:s.title)!==null&&o!==void 0?o:""}disposeTemplate(e){}}let U6=class{get templateId(){return"action"}constructor(e,t){this._supportsPreview=e,this._keybindingService=t}renderTemplate(e){e.classList.add(this.templateId);const t=document.createElement("div");t.className="icon",e.append(t);const i=document.createElement("span");i.className="title",e.append(i);const s=new $w(e,Da);return{container:e,icon:t,text:i,keybinding:s}}renderElement(e,t,i){var s,o,r;if(!((s=e.group)===null||s===void 0)&&s.icon?(i.icon.className=_t.asClassName(e.group.icon),e.group.icon.color&&(i.icon.style.color=Ge(e.group.icon.color.id))):(i.icon.className=_t.asClassName(Te.lightBulb),i.icon.style.color="var(--vscode-editorLightBulb-foreground)"),!e.item||!e.label)return;i.text.textContent=dfe(e.label),i.keybinding.set(e.keybinding),PMe(!!e.keybinding,i.keybinding.element);const a=(o=this._keybindingService.lookupKeybinding(lfe))===null||o===void 0?void 0:o.getLabel(),l=(r=this._keybindingService.lookupKeybinding(cfe))===null||r===void 0?void 0:r.getLabel();i.container.classList.toggle("option-disabled",e.disabled),e.disabled?i.container.title=e.label:a&&l?this._supportsPreview&&e.canPreview?i.container.title=v({},"{0} to Apply, {1} to Preview",a,l):i.container.title=v({},"{0} to Apply",a):i.container.title=""}disposeTemplate(e){e.keybinding.dispose()}};U6=afe([$6(1,Li)],U6);class wZe extends UIEvent{constructor(){super("acceptSelectedAction")}}class Wee extends UIEvent{constructor(){super("previewSelectedAction")}}function yZe(n){if(n.kind==="action")return n.label}let j6=class extends ne{constructor(e,t,i,s,o,r){super(),this._delegate=s,this._contextViewService=o,this._keybindingService=r,this._actionLineHeight=24,this._headerLineHeight=26,this.cts=this._register(new $n),this.domNode=document.createElement("div"),this.domNode.classList.add("actionList");const a={getHeight:l=>l.kind==="header"?this._headerLineHeight:this._actionLineHeight,getTemplateId:l=>l.kind};this._list=this._register(new El(e,this.domNode,a,[new U6(t,this._keybindingService),new CZe],{keyboardSupport:!1,typeNavigationEnabled:!0,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:yZe},accessibilityProvider:{getAriaLabel:l=>{if(l.kind==="action"){let c=l.label?dfe(l==null?void 0:l.label):"";return l.disabled&&(c=v({},"{0}, Disabled Reason: {1}",c,l.disabled)),c}return null},getWidgetAriaLabel:()=>v({},"Action Widget"),getRole:l=>l.kind==="action"?"option":"separator",getWidgetRole:()=>"listbox"}})),this._list.style(eb),this._register(this._list.onMouseClick(l=>this.onListClick(l))),this._register(this._list.onMouseOver(l=>this.onListHover(l))),this._register(this._list.onDidChangeFocus(()=>this.onFocus())),this._register(this._list.onDidChangeSelection(l=>this.onListSelection(l))),this._allMenuItems=i,this._list.splice(0,this._list.length,this._allMenuItems),this._list.length&&this.focusNext()}focusCondition(e){return!e.disabled&&e.kind==="action"}hide(e){this._delegate.onHide(e),this.cts.cancel(),this._contextViewService.hideContextView()}layout(e){const t=this._allMenuItems.filter(l=>l.kind==="header").length,s=this._allMenuItems.length*this._actionLineHeight+t*this._headerLineHeight-t*this._actionLineHeight;this._list.layout(s);let o=e;if(this._allMenuItems.length>=50)o=380;else{const l=this._allMenuItems.map((c,d)=>{const u=this.domNode.ownerDocument.getElementById(this._list.getElementID(d));if(u){u.style.width="auto";const h=u.getBoundingClientRect().width;return u.style.width="",h}return 0});o=Math.max(...l,e)}const a=Math.min(s,this.domNode.ownerDocument.body.clientHeight*.7);return this._list.layout(a,o),this.domNode.style.height=`${a}px`,this._list.domFocus(),o}focusPrevious(){this._list.focusPrevious(1,!0,void 0,this.focusCondition)}focusNext(){this._list.focusNext(1,!0,void 0,this.focusCondition)}acceptSelected(e){const t=this._list.getFocus();if(t.length===0)return;const i=t[0],s=this._list.element(i);if(!this.focusCondition(s))return;const o=e?new Wee:new wZe;this._list.setSelection([i],o)}onListSelection(e){if(!e.elements.length)return;const t=e.elements[0];t.item&&this.focusCondition(t)?this._delegate.onSelect(t.item,e.browserEvent instanceof Wee):this._list.setSelection([])}onFocus(){var e,t;const i=this._list.getFocus();if(i.length===0)return;const s=i[0],o=this._list.element(s);(t=(e=this._delegate).onFocus)===null||t===void 0||t.call(e,o.item)}async onListHover(e){const t=e.element;if(t&&t.item&&this.focusCondition(t)){if(this._delegate.onHover&&!t.disabled&&t.kind==="action"){const i=await this._delegate.onHover(t.item,this.cts.token);t.canPreview=i?i.canPreview:void 0}e.index&&this._list.splice(e.index,1,[t])}this._list.setFocus(typeof e.index=="number"?[e.index]:[])}onListClick(e){e.element&&this.focusCondition(e.element)&&this._list.setFocus([])}};j6=afe([$6(4,Wg),$6(5,Li)],j6);function dfe(n){return n.replace(/\r\n|\r|\n/g," ")}var SZe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},e3=function(n,e){return function(t,i){e(t,i,n)}};V("actionBar.toggledBackground",{dark:Lv,light:Lv,hcDark:Lv,hcLight:Lv},v("actionBar.toggledBackground","Background color for toggled action items in action bar."));const I0={Visible:new He("codeActionMenuVisible",!1,v("codeActionMenuVisible","Whether the action widget list is visible"))},ob=Jt("actionWidgetService");let E0=class extends ne{get isVisible(){return I0.Visible.getValue(this._contextKeyService)||!1}constructor(e,t,i){super(),this._contextViewService=e,this._contextKeyService=t,this._instantiationService=i,this._list=this._register(new Qs)}show(e,t,i,s,o,r,a){const l=I0.Visible.bindTo(this._contextKeyService),c=this._instantiationService.createInstance(j6,e,t,i,s);this._contextViewService.showContextView({getAnchor:()=>o,render:d=>(l.set(!0),this._renderWidget(d,c,a??[])),onHide:d=>{l.reset(),this._onWidgetClosed(d)}},r,!1)}acceptSelected(e){var t;(t=this._list.value)===null||t===void 0||t.acceptSelected(e)}focusPrevious(){var e,t;(t=(e=this._list)===null||e===void 0?void 0:e.value)===null||t===void 0||t.focusPrevious()}focusNext(){var e,t;(t=(e=this._list)===null||e===void 0?void 0:e.value)===null||t===void 0||t.focusNext()}hide(e){var t;(t=this._list.value)===null||t===void 0||t.hide(e),this._list.clear()}_renderWidget(e,t,i){var s;const o=document.createElement("div");if(o.classList.add("action-widget"),e.appendChild(o),this._list.value=t,this._list.value)o.appendChild(this._list.value.domNode);else throw new Error("List has no value");const r=new be,a=document.createElement("div"),l=e.appendChild(a);l.classList.add("context-view-block"),r.add(ce(l,Le.MOUSE_DOWN,g=>g.stopPropagation()));const c=document.createElement("div"),d=e.appendChild(c);d.classList.add("context-view-pointerBlock"),r.add(ce(d,Le.POINTER_MOVE,()=>d.remove())),r.add(ce(d,Le.MOUSE_DOWN,()=>d.remove()));let u=0;if(i.length){const g=this._createActionBar(".action-widget-action-bar",i);g&&(o.appendChild(g.getContainer().parentElement),r.add(g),u=g.getContainer().offsetWidth)}const h=(s=this._list.value)===null||s===void 0?void 0:s.layout(u);o.style.width=`${h}px`;const f=r.add(ou(e));return r.add(f.onDidBlur(()=>this.hide(!0))),r}_createActionBar(e,t){if(!t.length)return;const i=ke(e),s=new hc(i);return s.push(t,{icon:!1,label:!0}),s}_onWidgetClosed(e){var t;(t=this._list.value)===null||t===void 0||t.hide(e)}};E0=SZe([e3(0,Wg),e3(1,Ct),e3(2,ht)],E0);ai(ob,E0,1);const jD=1100;dn(class extends zr{constructor(){super({id:"hideCodeActionWidget",title:Nt("hideCodeActionWidget.title","Hide action widget"),precondition:I0.Visible,keybinding:{weight:jD,primary:9,secondary:[1033]}})}run(n){n.get(ob).hide(!0)}});dn(class extends zr{constructor(){super({id:"selectPrevCodeAction",title:Nt("selectPrevCodeAction.title","Select previous action"),precondition:I0.Visible,keybinding:{weight:jD,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(n){const e=n.get(ob);e instanceof E0&&e.focusPrevious()}});dn(class extends zr{constructor(){super({id:"selectNextCodeAction",title:Nt("selectNextCodeAction.title","Select next action"),precondition:I0.Visible,keybinding:{weight:jD,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(n){const e=n.get(ob);e instanceof E0&&e.focusNext()}});dn(class extends zr{constructor(){super({id:lfe,title:Nt("acceptSelected.title","Accept selected action"),precondition:I0.Visible,keybinding:{weight:jD,primary:3,secondary:[2137]}})}run(n){const e=n.get(ob);e instanceof E0&&e.acceptSelected()}});dn(class extends zr{constructor(){super({id:cfe,title:Nt("previewSelected.title","Preview selected action"),precondition:I0.Visible,keybinding:{weight:jD,primary:2051}})}run(n){const e=n.get(ob);e instanceof E0&&e.acceptSelected(!0)}});const ufe=new He("supportedCodeAction",""),Hee="_typescript.applyFixAllCodeAction";class xZe extends ne{constructor(e,t,i,s=250){super(),this._editor=e,this._markerService=t,this._signalChange=i,this._delay=s,this._autoTriggerTimer=this._register(new cd),this._register(this._markerService.onMarkerChanged(o=>this._onMarkerChanges(o))),this._register(this._editor.onDidChangeCursorPosition(()=>this._tryAutoTrigger()))}trigger(e){const t=this._getRangeOfSelectionUnlessWhitespaceEnclosed(e);this._signalChange(t?{trigger:e,selection:t}:void 0)}_onMarkerChanges(e){const t=this._editor.getModel();t&&e.some(i=>Kz(i,t.uri))&&this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:2,triggerAction:Fa.Default})},this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(e){if(!this._editor.hasModel())return;const t=this._editor.getSelection();if(e.type===1)return t;const i=this._editor.getOption(65).enabled;if(i!==Hc.Off){{if(i===Hc.On)return t;if(i===Hc.OnCode){if(!t.isEmpty())return t;const o=this._editor.getModel(),{lineNumber:r,column:a}=t.getPosition(),l=o.getLineContent(r);if(l.length===0)return;if(a===1){if(/\s/.test(l[0]))return}else if(a===o.getLineMaxColumn(r)){if(/\s/.test(l[l.length-1]))return}else if(/\s/.test(l[a-2])&&/\s/.test(l[a-1]))return}}return t}}}var Cv;(function(n){n.Empty={type:0};class e{constructor(i,s,o){this.trigger=i,this.position=s,this._cancellablePromise=o,this.type=1,this.actions=o.catch(r=>{if(ld(r))return hfe;throw r})}cancel(){this._cancellablePromise.cancel()}}n.Triggered=e})(Cv||(Cv={}));const hfe=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1});class LZe extends ne{constructor(e,t,i,s,o,r){super(),this._editor=e,this._registry=t,this._markerService=i,this._progressService=o,this._configurationService=r,this._codeActionOracle=this._register(new Qs),this._state=Cv.Empty,this._onDidChangeState=this._register(new X),this.onDidChangeState=this._onDidChangeState.event,this._disposed=!1,this._supportedCodeActions=ufe.bindTo(s),this._register(this._editor.onDidChangeModel(()=>this._update())),this._register(this._editor.onDidChangeModelLanguage(()=>this._update())),this._register(this._registry.onDidChange(()=>this._update())),this._register(this._editor.onDidChangeConfiguration(a=>{a.hasChanged(65)&&this._update()})),this._update()}dispose(){this._disposed||(this._disposed=!0,super.dispose(),this.setState(Cv.Empty,!0))}_settingEnabledNearbyQuickfixes(){var e;const t=(e=this._editor)===null||e===void 0?void 0:e.getModel();return this._configurationService?this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickFixes",{resource:t==null?void 0:t.uri}):!1}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(Cv.Empty);const e=this._editor.getModel();if(e&&this._registry.has(e)&&!this._editor.getOption(91)){const t=this._registry.all(e).flatMap(i=>{var s;return(s=i.providedCodeActionKinds)!==null&&s!==void 0?s:[]});this._supportedCodeActions.set(t.join(" ")),this._codeActionOracle.value=new xZe(this._editor,this._markerService,i=>{var s;if(!i){this.setState(Cv.Empty);return}const o=i.selection.getStartPosition(),r=Xs(async c=>{var d,u,h,f,g,p,_,b,w,y;if(this._settingEnabledNearbyQuickfixes()&&i.trigger.type===1&&(i.trigger.triggerAction===Fa.QuickFix||!((u=(d=i.trigger.filter)===null||d===void 0?void 0:d.include)===null||u===void 0)&&u.contains(kn.QuickFix))){const S=await Nx(this._registry,e,i.selection,i.trigger,bg.None,c),x=[...S.allActions];if(c.isCancellationRequested)return hfe;const k=(h=S.validActions)===null||h===void 0?void 0:h.some(I=>I.action.kind?kn.QuickFix.contains(new Yi(I.action.kind)):!1),D=this._markerService.read({resource:e.uri});if(k){for(const I of S.validActions)!((g=(f=I.action.command)===null||f===void 0?void 0:f.arguments)===null||g===void 0)&&g.some(N=>typeof N=="string"&&N.includes(Hee))&&(I.action.diagnostics=[...D.filter(N=>N.relatedInformation)]);return{validActions:S.validActions,allActions:x,documentation:S.documentation,hasAutoFix:S.hasAutoFix,hasAIFix:S.hasAIFix,allAIFixes:S.allAIFixes,dispose:()=>{S.dispose()}}}else if(!k&&D.length>0){const I=i.selection.getPosition();let N=I,P=Number.MAX_VALUE;const O=[...S.validActions];for(const z of D){const K=z.endColumn,ae=z.endLineNumber,se=z.startLineNumber;if(ae===I.lineNumber||se===I.lineNumber){N=new ee(ae,K);const he={type:i.trigger.type,triggerAction:i.trigger.triggerAction,filter:{include:!((p=i.trigger.filter)===null||p===void 0)&&p.include?(_=i.trigger.filter)===null||_===void 0?void 0:_.include:kn.QuickFix},autoApply:i.trigger.autoApply,context:{notAvailableMessage:((b=i.trigger.context)===null||b===void 0?void 0:b.notAvailableMessage)||"",position:N}},me=new it(N.lineNumber,N.column,N.lineNumber,N.column),De=await Nx(this._registry,e,me,he,bg.None,c);if(De.validActions.length!==0){for(const lt of De.validActions)!((y=(w=lt.action.command)===null||w===void 0?void 0:w.arguments)===null||y===void 0)&&y.some(We=>typeof We=="string"&&We.includes(Hee))&&(lt.action.diagnostics=[...D.filter(We=>We.relatedInformation)]);S.allActions.length===0&&x.push(...De.allActions),Math.abs(I.column-K)ae.findIndex(se=>se.action.title===z.action.title)===K);return M.sort((z,K)=>z.action.isPreferred&&!K.action.isPreferred?-1:!z.action.isPreferred&&K.action.isPreferred||z.action.isAI&&!K.action.isAI?1:!z.action.isAI&&K.action.isAI?-1:0),{validActions:M,allActions:x,documentation:S.documentation,hasAutoFix:S.hasAutoFix,hasAIFix:S.hasAIFix,allAIFixes:S.allAIFixes,dispose:()=>{S.dispose()}}}}return Nx(this._registry,e,i.selection,i.trigger,bg.None,c)});i.trigger.type===1&&((s=this._progressService)===null||s===void 0||s.showWhile(r,250));const a=new Cv.Triggered(i.trigger,o,r);let l=!1;this._state.type===1&&(l=this._state.trigger.type===1&&a.type===1&&a.trigger.type===2&&this._state.position!==a.position),l?setTimeout(()=>{this.setState(a)},500):this.setState(a)},void 0),this._codeActionOracle.value.trigger({type:2,triggerAction:Fa.Default})}else this._supportedCodeActions.reset()}trigger(e){var t;(t=this._codeActionOracle.value)===null||t===void 0||t.trigger(e)}setState(e,t){e!==this._state&&(this._state.type===1&&this._state.cancel(),this._state=e,!t&&!this._disposed&&this._onDidChangeState.fire(e))}}var kZe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Nu=function(n,e){return function(t,i){e(t,i,n)}},s1;const DZe="quickfix-edit-highlight";let qm=s1=class extends ne{static get(e){return e.getContribution(s1.ID)}constructor(e,t,i,s,o,r,a,l,c,d,u){super(),this._commandService=a,this._configurationService=l,this._actionWidgetService=c,this._instantiationService=d,this._telemetryService=u,this._activeCodeActions=this._register(new Qs),this._showDisabled=!1,this._disposed=!1,this._editor=e,this._model=this._register(new LZe(this._editor,o.codeActionProvider,t,i,r,l)),this._register(this._model.onDidChangeState(h=>this.update(h))),this._lightBulbWidget=new pu(()=>{const h=this._editor.getContribution(D0.ID);return h&&this._register(h.onClick(f=>this.showCodeActionsFromLightbulb(f.actions,f))),h}),this._resolver=s.createInstance(dR),this._register(this._editor.onDidLayoutChange(()=>this._actionWidgetService.hide()))}dispose(){this._disposed=!0,super.dispose()}async showCodeActionsFromLightbulb(e,t){if(this._telemetryService.publicLog2("codeAction.showCodeActionsFromLightbulb",{codeActionListLength:e.validActions.length,codeActions:e.validActions.map(i=>i.action.title),codeActionProviders:e.validActions.map(i=>{var s,o;return(o=(s=i.provider)===null||s===void 0?void 0:s.displayName)!==null&&o!==void 0?o:""})}),e.allAIFixes&&e.validActions.length===1){const i=e.validActions[0],s=i.action.command;s&&s.id==="inlineChat.start"&&s.arguments&&s.arguments.length>=1&&(s.arguments[0]={...s.arguments[0],autoSend:!1}),await this._applyCodeAction(i,!1,!1,Av.FromAILightbulb);return}await this.showCodeActionList(e,t,{includeDisabledActions:!1,fromLightbulb:!0})}showCodeActions(e,t,i){return this.showCodeActionList(t,i,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(e,t,i,s){var o;if(!this._editor.hasModel())return;(o=Or.get(this._editor))===null||o===void 0||o.closeMessage();const r=this._editor.getPosition();this._trigger({type:1,triggerAction:t,filter:i,autoApply:s,context:{notAvailableMessage:e,position:r}})}_trigger(e){return this._model.trigger(e)}async _applyCodeAction(e,t,i,s){try{await this._instantiationService.invokeFunction(fZe,e,s,{preview:i,editor:this._editor})}finally{t&&this._trigger({type:2,triggerAction:Fa.QuickFix,filter:{}})}}async update(e){var t,i,s,o,r,a,l;if(e.type!==1){(t=this._lightBulbWidget.rawValue)===null||t===void 0||t.hide();return}let c;try{c=await e.actions}catch(d){Mt(d);return}if(!this._disposed)if((i=this._lightBulbWidget.value)===null||i===void 0||i.update(c,e.trigger,e.position),e.trigger.type===1){if(!((s=e.trigger.filter)===null||s===void 0)&&s.include){const u=this.tryGetValidActionToApply(e.trigger,c);if(u){try{(o=this._lightBulbWidget.value)===null||o===void 0||o.hide(),await this._applyCodeAction(u,!1,!1,Av.FromCodeActions)}finally{c.dispose()}return}if(e.trigger.context){const h=this.getInvalidActionThatWouldHaveBeenApplied(e.trigger,c);if(h&&h.action.disabled){(r=Or.get(this._editor))===null||r===void 0||r.showMessage(h.action.disabled,e.trigger.context.position),c.dispose();return}}}const d=!!(!((a=e.trigger.filter)===null||a===void 0)&&a.include);if(e.trigger.context&&(!c.allActions.length||!d&&!c.validActions.length)){(l=Or.get(this._editor))===null||l===void 0||l.showMessage(e.trigger.context.notAvailableMessage,e.trigger.context.position),this._activeCodeActions.value=c,c.dispose();return}this._activeCodeActions.value=c,this.showCodeActionList(c,this.toCoords(e.position),{includeDisabledActions:d,fromLightbulb:!1})}else this._actionWidgetService.isVisible?c.dispose():this._activeCodeActions.value=c}getInvalidActionThatWouldHaveBeenApplied(e,t){if(t.allActions.length&&(e.autoApply==="first"&&t.validActions.length===0||e.autoApply==="ifSingle"&&t.allActions.length===1))return t.allActions.find(({action:i})=>i.disabled)}tryGetValidActionToApply(e,t){if(t.validActions.length&&(e.autoApply==="first"&&t.validActions.length>0||e.autoApply==="ifSingle"&&t.validActions.length===1))return t.validActions[0]}async showCodeActionList(e,t,i){const s=this._editor.createDecorationsCollection(),o=this._editor.getDomNode();if(!o)return;const r=i.includeDisabledActions&&(this._showDisabled||e.validActions.length===0)?e.allActions:e.validActions;if(!r.length)return;const a=ee.isIPosition(t)?this.toCoords(t):t,l={onSelect:async(c,d)=>{this._applyCodeAction(c,!0,!!d,i.fromLightbulb?Av.FromAILightbulb:Av.FromCodeActions),this._actionWidgetService.hide(!1),s.clear()},onHide:c=>{var d;(d=this._editor)===null||d===void 0||d.focus(),s.clear(),i.fromLightbulb&&c!==void 0&&this._telemetryService.publicLog2("codeAction.showCodeActionList.onHide",{codeActionListLength:e.validActions.length,didCancel:c,codeActions:e.validActions.map(u=>u.action.title)})},onHover:async(c,d)=>{var u;if(d.isCancellationRequested)return;let h=!1;const f=c.action.kind;if(f){const g=new Yi(f);h=[kn.RefactorExtract,kn.RefactorInline,kn.RefactorRewrite,kn.RefactorMove,kn.Source].some(_=>_.contains(g))}return{canPreview:h||!!(!((u=c.action.edit)===null||u===void 0)&&u.edits.length)}},onFocus:c=>{var d,u;if(c&&c.action){const h=c.action.ranges,f=c.action.diagnostics;if(s.clear(),h&&h.length>0){const g=f&&(f==null?void 0:f.length)>1?f.map(p=>({range:p,options:s1.DECORATION})):h.map(p=>({range:p,options:s1.DECORATION}));s.set(g)}else if(f&&f.length>0){const g=f.map(_=>({range:_,options:s1.DECORATION}));s.set(g);const p=f[0];if(p.startLineNumber&&p.startColumn){const _=(u=(d=this._editor.getModel())===null||d===void 0?void 0:d.getWordAtPosition({lineNumber:p.startLineNumber,column:p.startColumn}))===null||u===void 0?void 0:u.word;Ih(v("editingNewSelection","Context: {0} at line {1} and column {2}.",_,p.startLineNumber,p.startColumn))}}}else s.clear()}};this._actionWidgetService.show("codeActionWidget",!0,vZe(r,this._shouldShowHeaders(),this._resolver.getResolver()),l,a,o,this._getActionBarActions(e,t,i))}toCoords(e){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(e,1),this._editor.render();const t=this._editor.getScrolledVisiblePosition(e),i=bs(this._editor.getDomNode()),s=i.left+t.left,o=i.top+t.top+t.height;return{x:s,y:o}}_shouldShowHeaders(){var e;const t=(e=this._editor)===null||e===void 0?void 0:e.getModel();return this._configurationService.getValue("editor.codeActionWidget.showHeaders",{resource:t==null?void 0:t.uri})}_getActionBarActions(e,t,i){if(i.fromLightbulb)return[];const s=e.documentation.map(o=>{var r;return{id:o.id,label:o.title,tooltip:(r=o.tooltip)!==null&&r!==void 0?r:"",class:void 0,enabled:!0,run:()=>{var a;return this._commandService.executeCommand(o.id,...(a=o.arguments)!==null&&a!==void 0?a:[])}}});return i.includeDisabledActions&&e.validActions.length>0&&e.allActions.length!==e.validActions.length&&s.push(this._showDisabled?{id:"hideMoreActions",label:v("hideMoreActions","Hide Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(e,t,i))}:{id:"showMoreActions",label:v("showMoreActions","Show Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(e,t,i))}),s}};qm.ID="editor.contrib.codeActionController";qm.DECORATION=Wt.register({description:"quickfix-highlight",className:DZe});qm=s1=kZe([Nu(1,Uh),Nu(2,Ct),Nu(3,ht),Nu(4,Xe),Nu(5,m_),Nu(6,Sn),Nu(7,qt),Nu(8,ob),Nu(9,ht),Nu(10,Po)],qm);mc((n,e)=>{((s,o)=>{o&&e.addRule(`.monaco-editor ${s} { background-color: ${o}; }`)})(".quickfix-edit-highlight",n.getColor(Jf));const i=n.getColor(Kp);i&&e.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${Zd(n.type)?"dotted":"solid"} ${i}; box-sizing: border-box; }`)});function KD(n){return pe.regex(ufe.keys()[0],new RegExp("(\\s|^)"+wl(n.value)+"\\b"))}const vU={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:v("args.schema.kind","Kind of the code action to run.")},apply:{type:"string",description:v("args.schema.apply","Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[v("args.schema.apply.first","Always apply the first returned code action."),v("args.schema.apply.ifSingle","Apply the first returned code action if it is the only one."),v("args.schema.apply.never","Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:v("args.schema.preferred","Controls if only preferred code actions should be returned.")}}};function rb(n,e,t,i,s=Fa.Default){if(n.hasModel()){const o=qm.get(n);o==null||o.manualTriggerAtCurrentPosition(e,s,t,i)}}class IZe extends Ke{constructor(){super({id:pU,label:v("quickfix.trigger.label","Quick Fix..."),alias:"Quick Fix...",precondition:pe.and(W.writable,W.hasCodeActionsProvider),kbOpts:{kbExpr:W.textInputFocus,primary:2137,weight:100}})}run(e,t){return rb(t,v("editor.action.quickFix.noneMessage","No code actions available"),void 0,void 0,Fa.QuickFix)}}class EZe extends Us{constructor(){super({id:ife,precondition:pe.and(W.writable,W.hasCodeActionsProvider),metadata:{description:"Trigger a code action",args:[{name:"args",schema:vU}]}})}runEditorCommand(e,t,i){const s=sh.fromUser(i,{kind:Yi.Empty,apply:"ifSingle"});return rb(t,typeof(i==null?void 0:i.kind)=="string"?s.preferred?v("editor.action.codeAction.noneMessage.preferred.kind","No preferred code actions for '{0}' available",i.kind):v("editor.action.codeAction.noneMessage.kind","No code actions for '{0}' available",i.kind):s.preferred?v("editor.action.codeAction.noneMessage.preferred","No preferred code actions available"):v("editor.action.codeAction.noneMessage","No code actions available"),{include:s.kind,includeSourceActions:!0,onlyIncludePreferredActions:s.preferred},s.apply)}}class TZe extends Ke{constructor(){super({id:sfe,label:v("refactor.label","Refactor..."),alias:"Refactor...",precondition:pe.and(W.writable,W.hasCodeActionsProvider),kbOpts:{kbExpr:W.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:pe.and(W.writable,KD(kn.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:vU}]}})}run(e,t,i){const s=sh.fromUser(i,{kind:kn.Refactor,apply:"never"});return rb(t,typeof(i==null?void 0:i.kind)=="string"?s.preferred?v("editor.action.refactor.noneMessage.preferred.kind","No preferred refactorings for '{0}' available",i.kind):v("editor.action.refactor.noneMessage.kind","No refactorings for '{0}' available",i.kind):s.preferred?v("editor.action.refactor.noneMessage.preferred","No preferred refactorings available"):v("editor.action.refactor.noneMessage","No refactorings available"),{include:kn.Refactor.contains(s.kind)?s.kind:Yi.None,onlyIncludePreferredActions:s.preferred},s.apply,Fa.Refactor)}}class NZe extends Ke{constructor(){super({id:ofe,label:v("source.label","Source Action..."),alias:"Source Action...",precondition:pe.and(W.writable,W.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:pe.and(W.writable,KD(kn.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:vU}]}})}run(e,t,i){const s=sh.fromUser(i,{kind:kn.Source,apply:"never"});return rb(t,typeof(i==null?void 0:i.kind)=="string"?s.preferred?v("editor.action.source.noneMessage.preferred.kind","No preferred source actions for '{0}' available",i.kind):v("editor.action.source.noneMessage.kind","No source actions for '{0}' available",i.kind):s.preferred?v("editor.action.source.noneMessage.preferred","No preferred source actions available"):v("editor.action.source.noneMessage","No source actions available"),{include:kn.Source.contains(s.kind)?s.kind:Yi.None,includeSourceActions:!0,onlyIncludePreferredActions:s.preferred},s.apply,Fa.SourceAction)}}class AZe extends Ke{constructor(){super({id:mU,label:v("organizeImports.label","Organize Imports"),alias:"Organize Imports",precondition:pe.and(W.writable,KD(kn.SourceOrganizeImports)),kbOpts:{kbExpr:W.textInputFocus,primary:1581,weight:100}})}run(e,t){return rb(t,v("editor.action.organize.noneMessage","No organize imports action available"),{include:kn.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",Fa.OrganizeImports)}}class RZe extends Ke{constructor(){super({id:_U,label:v("fixAll.label","Fix All"),alias:"Fix All",precondition:pe.and(W.writable,KD(kn.SourceFixAll))})}run(e,t){return rb(t,v("fixAll.noneMessage","No fix all action available"),{include:kn.SourceFixAll,includeSourceActions:!0},"ifSingle",Fa.FixAll)}}class MZe extends Ke{constructor(){super({id:nfe,label:v("autoFix.label","Auto Fix..."),alias:"Auto Fix...",precondition:pe.and(W.writable,KD(kn.QuickFix)),kbOpts:{kbExpr:W.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(e,t){return rb(t,v("editor.action.autoFix.noneMessage","No auto fixes available"),{include:kn.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",Fa.AutoFix)}}bi(qm.ID,qm,3);bi(D0.ID,D0,4);xe(IZe);xe(TZe);xe(NZe);xe(AZe);xe(MZe);xe(RZe);Fe(new EZe);Un.as(_u.Configuration).registerConfiguration({...ZM,properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:5,description:v("showCodeActionHeaders","Enable/disable showing group headers in the Code Action menu."),default:!0}}});Un.as(_u.Configuration).registerConfiguration({...ZM,properties:{"editor.codeActionWidget.includeNearbyQuickFixes":{type:"boolean",scope:5,description:v("includeNearbyQuickFixes","Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic."),default:!0}}});class K6{constructor(){this.lenses=[],this._disposables=new be}dispose(){this._disposables.dispose()}get isDisposed(){return this._disposables.isDisposed}add(e,t){this._disposables.add(e);for(const i of e.lenses)this.lenses.push({symbol:i,provider:t})}}async function ffe(n,e,t){const i=n.ordered(e),s=new Map,o=new K6,r=i.map(async(a,l)=>{s.set(a,l);try{const c=await Promise.resolve(a.provideCodeLenses(e,t));c&&o.add(c,a)}catch(c){as(c)}});return await Promise.all(r),o.lenses=o.lenses.sort((a,l)=>a.symbol.range.startLineNumberl.symbol.range.startLineNumber?1:s.get(a.provider)s.get(l.provider)?1:a.symbol.range.startColumnl.symbol.range.startColumn?1:0),o}ri.registerCommand("_executeCodeLensProvider",function(n,...e){let[t,i]=e;mi(pt.isUri(t)),mi(typeof i=="number"||!i);const{codeLensProvider:s}=n.get(Xe),o=n.get(Pn).getModel(t);if(!o)throw ic();const r=[],a=new be;return ffe(s,o,Qt.None).then(l=>{a.add(l);const c=[];for(const d of l.lenses)i==null||d.symbol.command?r.push(d.symbol):i-- >0&&d.provider.resolveCodeLens&&c.push(Promise.resolve(d.provider.resolveCodeLens(o,d.symbol,Qt.None)).then(u=>r.push(u||d.symbol)));return Promise.all(c)}).then(()=>r).finally(()=>{setTimeout(()=>a.dispose(),100)})});var PZe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},OZe=function(n,e){return function(t,i){e(t,i,n)}};const gfe=Jt("ICodeLensCache");class Vee{constructor(e,t){this.lineCount=e,this.data=t}}let q6=class{constructor(e){this._fakeProvider=new class{provideCodeLenses(){throw new Error("not supported")}},this._cache=new zh(20,.75);const t="codelens/cache";_S(Ji,()=>e.remove(t,1));const i="codelens/cache2",s=e.get(i,1,"{}");this._deserialize(s),Ae.once(e.onWillSaveState)(o=>{o.reason===GL.SHUTDOWN&&e.store(i,this._serialize(),1,1)})}put(e,t){const i=t.lenses.map(r=>{var a;return{range:r.symbol.range,command:r.symbol.command&&{id:"",title:(a=r.symbol.command)===null||a===void 0?void 0:a.title}}}),s=new K6;s.add({lenses:i,dispose:()=>{}},this._fakeProvider);const o=new Vee(e.getLineCount(),s);this._cache.set(e.uri.toString(),o)}get(e){const t=this._cache.get(e.uri.toString());return t&&t.lineCount===e.getLineCount()?t.data:void 0}delete(e){this._cache.delete(e.uri.toString())}_serialize(){const e=Object.create(null);for(const[t,i]of this._cache){const s=new Set;for(const o of i.data.lenses)s.add(o.symbol.range.startLineNumber);e[t]={lineCount:i.lineCount,lines:[...s.values()]}}return JSON.stringify(e)}_deserialize(e){try{const t=JSON.parse(e);for(const i in t){const s=t[i],o=[];for(const a of s.lines)o.push({range:new A(a,1,a,11)});const r=new K6;r.add({lenses:o,dispose(){}},this._fakeProvider),this._cache.set(i,new Vee(s.lineCount,r))}}catch{}}};q6=PZe([OZe(0,dd)],q6);ai(gfe,q6,1);class FZe{constructor(e,t,i){this.afterColumn=1073741824,this.afterLineNumber=e,this.heightInPx=t,this._onHeight=i,this.suppressMouseDown=!0,this.domNode=document.createElement("div")}onComputedHeight(e){this._lastHeight===void 0?this._lastHeight=e:this._lastHeight!==e&&(this._lastHeight=e,this._onHeight())}isVisible(){return this._lastHeight!==0&&this.domNode.hasAttribute("monaco-visible-view-zone")}}class hk{constructor(e,t){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=e,this._id=`codelens.widget-${hk._idPool++}`,this.updatePosition(t),this._domNode=document.createElement("span"),this._domNode.className="codelens-decoration"}withCommands(e,t){this._commands.clear();const i=[];let s=!1;for(let o=0;o{c.symbol.command&&l.push(c.symbol),i.addDecoration({range:c.symbol.range,options:zee},u=>this._decorationIds[d]=u),a?a=A.plusRange(a,c.symbol.range):a=A.lift(c.symbol.range)}),this._viewZone=new FZe(a.startLineNumber-1,o,r),this._viewZoneId=s.addZone(this._viewZone),l.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(l,!1))}_createContentWidgetIfNecessary(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new hk(this._editor,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))}dispose(e,t){this._decorationIds.forEach(e.removeDecoration,e),this._decorationIds=[],t==null||t.removeZone(this._viewZoneId),this._contentWidget&&(this._editor.removeContentWidget(this._contentWidget),this._contentWidget=void 0),this._isDisposed=!0}isDisposed(){return this._isDisposed}isValid(){return this._decorationIds.some((e,t)=>{const i=this._editor.getModel().getDecorationRange(e),s=this._data[t].symbol;return!!(i&&A.isEmpty(s.range)===i.isEmpty())})}updateCodeLensSymbols(e,t){this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],this._data=e,this._data.forEach((i,s)=>{t.addDecoration({range:i.symbol.range,options:zee},o=>this._decorationIds[s]=o)})}updateHeight(e,t){this._viewZone.heightInPx=e,t.layoutZone(this._viewZoneId),this._contentWidget&&this._editor.layoutContentWidget(this._contentWidget)}computeIfNecessary(e){if(!this._viewZone.isVisible())return null;for(let t=0;t=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Yy=function(n,e){return function(t,i){e(t,i,n)}};let aw=class{constructor(e,t,i,s,o,r){this._editor=e,this._languageFeaturesService=t,this._commandService=s,this._notificationService=o,this._codeLensCache=r,this._disposables=new be,this._localToDispose=new be,this._lenses=[],this._oldCodeLensModels=new be,this._provideCodeLensDebounce=i.for(t.codeLensProvider,"CodeLensProvide",{min:250}),this._resolveCodeLensesDebounce=i.for(t.codeLensProvider,"CodeLensResolve",{min:250,salt:"resolve"}),this._resolveCodeLensesScheduler=new Xi(()=>this._resolveCodeLensesInViewport(),this._resolveCodeLensesDebounce.default()),this._disposables.add(this._editor.onDidChangeModel(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeConfiguration(a=>{(a.hasChanged(50)||a.hasChanged(19)||a.hasChanged(18))&&this._updateLensStyle(),a.hasChanged(17)&&this._onModelChange()})),this._disposables.add(t.codeLensProvider.onDidChange(this._onModelChange,this)),this._onModelChange(),this._updateLensStyle()}dispose(){var e;this._localDispose(),this._disposables.dispose(),this._oldCodeLensModels.dispose(),(e=this._currentCodeLensModel)===null||e===void 0||e.dispose()}_getLayoutInfo(){const e=Math.max(1.3,this._editor.getOption(67)/this._editor.getOption(52));let t=this._editor.getOption(19);return(!t||t<5)&&(t=this._editor.getOption(52)*.9|0),{fontSize:t,codeLensHeight:t*e|0}}_updateLensStyle(){const{codeLensHeight:e,fontSize:t}=this._getLayoutInfo(),i=this._editor.getOption(18),s=this._editor.getOption(50),{style:o}=this._editor.getContainerDomNode();o.setProperty("--vscode-editorCodeLens-lineHeight",`${e}px`),o.setProperty("--vscode-editorCodeLens-fontSize",`${t}px`),o.setProperty("--vscode-editorCodeLens-fontFeatureSettings",s.fontFeatureSettings),i&&(o.setProperty("--vscode-editorCodeLens-fontFamily",i),o.setProperty("--vscode-editorCodeLens-fontFamilyDefault",ra.fontFamily)),this._editor.changeViewZones(r=>{for(const a of this._lenses)a.updateHeight(e,r)})}_localDispose(){var e,t,i;(e=this._getCodeLensModelPromise)===null||e===void 0||e.cancel(),this._getCodeLensModelPromise=void 0,(t=this._resolveCodeLensesPromise)===null||t===void 0||t.cancel(),this._resolveCodeLensesPromise=void 0,this._localToDispose.clear(),this._oldCodeLensModels.clear(),(i=this._currentCodeLensModel)===null||i===void 0||i.dispose()}_onModelChange(){this._localDispose();const e=this._editor.getModel();if(!e||!this._editor.getOption(17)||e.isTooLargeForTokenization())return;const t=this._codeLensCache.get(e);if(t&&this._renderCodeLensSymbols(t),!this._languageFeaturesService.codeLensProvider.has(e)){t&&Om(()=>{const s=this._codeLensCache.get(e);t===s&&(this._codeLensCache.delete(e),this._onModelChange())},30*1e3,this._localToDispose);return}for(const s of this._languageFeaturesService.codeLensProvider.all(e))if(typeof s.onDidChange=="function"){const o=s.onDidChange(()=>i.schedule());this._localToDispose.add(o)}const i=new Xi(()=>{var s;const o=Date.now();(s=this._getCodeLensModelPromise)===null||s===void 0||s.cancel(),this._getCodeLensModelPromise=Xs(r=>ffe(this._languageFeaturesService.codeLensProvider,e,r)),this._getCodeLensModelPromise.then(r=>{this._currentCodeLensModel&&this._oldCodeLensModels.add(this._currentCodeLensModel),this._currentCodeLensModel=r,this._codeLensCache.put(e,r);const a=this._provideCodeLensDebounce.update(e,Date.now()-o);i.delay=a,this._renderCodeLensSymbols(r),this._resolveCodeLensesInViewportSoon()},Mt)},this._provideCodeLensDebounce.get(e));this._localToDispose.add(i),this._localToDispose.add(dt(()=>this._resolveCodeLensesScheduler.cancel())),this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{var s;this._editor.changeDecorations(o=>{this._editor.changeViewZones(r=>{const a=[];let l=-1;this._lenses.forEach(d=>{!d.isValid()||l===d.getLineNumber()?a.push(d):(d.update(r),l=d.getLineNumber())});const c=new t3;a.forEach(d=>{d.dispose(c,r),this._lenses.splice(this._lenses.indexOf(d),1)}),c.commit(o)})}),i.schedule(),this._resolveCodeLensesScheduler.cancel(),(s=this._resolveCodeLensesPromise)===null||s===void 0||s.cancel(),this._resolveCodeLensesPromise=void 0})),this._localToDispose.add(this._editor.onDidFocusEditorText(()=>{i.schedule()})),this._localToDispose.add(this._editor.onDidBlurEditorText(()=>{i.cancel()})),this._localToDispose.add(this._editor.onDidScrollChange(s=>{s.scrollTopChanged&&this._lenses.length>0&&this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(this._editor.onDidLayoutChange(()=>{this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(dt(()=>{if(this._editor.getModel()){const s=uu.capture(this._editor);this._editor.changeDecorations(o=>{this._editor.changeViewZones(r=>{this._disposeAllLenses(o,r)})}),s.restore(this._editor)}else this._disposeAllLenses(void 0,void 0)})),this._localToDispose.add(this._editor.onMouseDown(s=>{if(s.target.type!==9)return;let o=s.target.element;if((o==null?void 0:o.tagName)==="SPAN"&&(o=o.parentElement),(o==null?void 0:o.tagName)==="A")for(const r of this._lenses){const a=r.getCommand(o);if(a){this._commandService.executeCommand(a.id,...a.arguments||[]).catch(l=>this._notificationService.error(l));break}}})),i.schedule()}_disposeAllLenses(e,t){const i=new t3;for(const s of this._lenses)s.dispose(i,t);e&&i.commit(e),this._lenses.length=0}_renderCodeLensSymbols(e){if(!this._editor.hasModel())return;const t=this._editor.getModel().getLineCount(),i=[];let s;for(const a of e.lenses){const l=a.symbol.range.startLineNumber;l<1||l>t||(s&&s[s.length-1].symbol.range.startLineNumber===l?s.push(a):(s=[a],i.push(s)))}if(!i.length&&!this._lenses.length)return;const o=uu.capture(this._editor),r=this._getLayoutInfo();this._editor.changeDecorations(a=>{this._editor.changeViewZones(l=>{const c=new t3;let d=0,u=0;for(;uthis._resolveCodeLensesInViewportSoon())),d++,u++)}for(;dthis._resolveCodeLensesInViewportSoon())),u++;c.commit(a)})}),o.restore(this._editor)}_resolveCodeLensesInViewportSoon(){this._editor.getModel()&&this._resolveCodeLensesScheduler.schedule()}_resolveCodeLensesInViewport(){var e;(e=this._resolveCodeLensesPromise)===null||e===void 0||e.cancel(),this._resolveCodeLensesPromise=void 0;const t=this._editor.getModel();if(!t)return;const i=[],s=[];if(this._lenses.forEach(a=>{const l=a.computeIfNecessary(t);l&&(i.push(l),s.push(a))}),i.length===0)return;const o=Date.now(),r=Xs(a=>{const l=i.map((c,d)=>{const u=new Array(c.length),h=c.map((f,g)=>!f.symbol.command&&typeof f.provider.resolveCodeLens=="function"?Promise.resolve(f.provider.resolveCodeLens(t,f.symbol,a)).then(p=>{u[g]=p},as):(u[g]=f.symbol,Promise.resolve(void 0)));return Promise.all(h).then(()=>{!a.isCancellationRequested&&!s[d].isDisposed()&&s[d].updateCommands(u)})});return Promise.all(l)});this._resolveCodeLensesPromise=r,this._resolveCodeLensesPromise.then(()=>{const a=this._resolveCodeLensesDebounce.update(t,Date.now()-o);this._resolveCodeLensesScheduler.delay=a,this._currentCodeLensModel&&this._codeLensCache.put(t,this._currentCodeLensModel),this._oldCodeLensModels.clear(),r===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)},a=>{Mt(a),r===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)})}async getModel(){var e;return await this._getCodeLensModelPromise,await this._resolveCodeLensesPromise,!((e=this._currentCodeLensModel)===null||e===void 0)&&e.isDisposed?void 0:this._currentCodeLensModel}};aw.ID="css.editor.codeLens";aw=BZe([Yy(1,Xe),Yy(2,_c),Yy(3,Sn),Yy(4,ps),Yy(5,gfe)],aw);bi(aw.ID,aw,1);xe(class extends Ke{constructor(){super({id:"codelens.showLensesInCurrentLine",precondition:W.hasCodeLensProvider,label:v("showLensOnLine","Show CodeLens Commands For Current Line"),alias:"Show CodeLens Commands For Current Line"})}async run(e,t){if(!t.hasModel())return;const i=e.get(Cc),s=e.get(Sn),o=e.get(ps),r=t.getSelection().positionLineNumber,a=t.getContribution(aw.ID);if(!a)return;const l=await a.getModel();if(!l)return;const c=[];for(const h of l.lenses)h.symbol.command&&h.symbol.range.startLineNumber===r&&c.push({label:h.symbol.command.title,command:h.symbol.command});if(c.length===0)return;const d=await i.pick(c,{canPickMany:!1,placeHolder:v("placeHolder","Select a command")});if(!d)return;let u=d.command;if(l.isDisposed){const h=await a.getModel(),f=h==null?void 0:h.lenses.find(g=>{var p;return g.symbol.range.startLineNumber===r&&((p=g.symbol.command)===null||p===void 0?void 0:p.title)===u.title});if(!f||!f.symbol.command)return;u=f.symbol.command}try{await s.executeCommand(u.id,...u.arguments||[])}catch(h){o.error(h)}}});var WZe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},i3=function(n,e){return function(t,i){e(t,i,n)}};class bU{constructor(e,t){this._editorWorkerClient=new bz(e,!1,"editorWorkerService",t)}async provideDocumentColors(e,t){return this._editorWorkerClient.computeDefaultDocumentColors(e.uri)}provideColorPresentations(e,t,i){const s=t.range,o=t.color,r=o.alpha,a=new le(new ci(Math.round(255*o.red),Math.round(255*o.green),Math.round(255*o.blue),r)),l=r?le.Format.CSS.formatRGB(a):le.Format.CSS.formatRGBA(a),c=r?le.Format.CSS.formatHSL(a):le.Format.CSS.formatHSLA(a),d=r?le.Format.CSS.formatHex(a):le.Format.CSS.formatHexA(a),u=[];return u.push({label:l,textEdit:{range:s,text:l}}),u.push({label:c,textEdit:{range:s,text:c}}),u.push({label:d,textEdit:{range:s,text:d}}),u}}let G6=class extends ne{constructor(e,t,i){super(),this._register(i.colorProvider.register("*",new bU(e,t)))}};G6=WZe([i3(0,Pn),i3(1,gn),i3(2,Xe)],G6);WD(G6);async function pfe(n,e,t,i=!0){return CU(new HZe,n,e,t,i)}function mfe(n,e,t,i){return Promise.resolve(t.provideColorPresentations(n,e,i))}class HZe{constructor(){}async compute(e,t,i,s){const o=await e.provideDocumentColors(t,i);if(Array.isArray(o))for(const r of o)s.push({colorInfo:r,provider:e});return Array.isArray(o)}}class VZe{constructor(){}async compute(e,t,i,s){const o=await e.provideDocumentColors(t,i);if(Array.isArray(o))for(const r of o)s.push({range:r.range,color:[r.color.red,r.color.green,r.color.blue,r.color.alpha]});return Array.isArray(o)}}class zZe{constructor(e){this.colorInfo=e}async compute(e,t,i,s){const o=await e.provideColorPresentations(t,this.colorInfo,Qt.None);return Array.isArray(o)&&s.push(...o),Array.isArray(o)}}async function CU(n,e,t,i,s){let o=!1,r;const a=[],l=e.ordered(t);for(let c=l.length-1;c>=0;c--){const d=l[c];if(d instanceof bU)r=d;else try{await n.compute(d,t,i,a)&&(o=!0)}catch(u){as(u)}}return o?a:r&&s?(await n.compute(r,t,i,a),a):[]}function _fe(n,e){const{colorProvider:t}=n.get(Xe),i=n.get(Pn).getModel(e);if(!i)throw ic();const s=n.get(qt).getValue("editor.defaultColorDecorators",{resource:e});return{model:i,colorProviderRegistry:t,isDefaultColorDecoratorsEnabled:s}}ri.registerCommand("_executeDocumentColorProvider",function(n,...e){const[t]=e;if(!(t instanceof pt))throw ic();const{model:i,colorProviderRegistry:s,isDefaultColorDecoratorsEnabled:o}=_fe(n,t);return CU(new VZe,s,i,Qt.None,o)});ri.registerCommand("_executeColorPresentationProvider",function(n,...e){const[t,i]=e,{uri:s,range:o}=i;if(!(s instanceof pt)||!Array.isArray(t)||t.length!==4||!A.isIRange(o))throw ic();const{model:r,colorProviderRegistry:a,isDefaultColorDecoratorsEnabled:l}=_fe(n,s),[c,d,u,h]=t;return CU(new zZe({range:o,color:{red:c,green:d,blue:u,alpha:h}}),a,r,Qt.None,l)});var $Ze=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},n3=function(n,e){return function(t,i){e(t,i,n)}},Z6;const vfe=Object.create({});let Gm=Z6=class extends ne{constructor(e,t,i,s){super(),this._editor=e,this._configurationService=t,this._languageFeaturesService=i,this._localToDispose=this._register(new be),this._decorationsIds=[],this._colorDatas=new Map,this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=new bD(this._editor),this._decoratorLimitReporter=new UZe,this._colorDecorationClassRefs=this._register(new be),this._debounceInformation=s.for(i.colorProvider,"Document Colors",{min:Z6.RECOMPUTE_TIME}),this._register(e.onDidChangeModel(()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()})),this._register(e.onDidChangeModelLanguage(()=>this.updateColors())),this._register(i.colorProvider.onDidChange(()=>this.updateColors())),this._register(e.onDidChangeConfiguration(o=>{const r=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(147);const a=r!==this._isColorDecoratorsEnabled||o.hasChanged(21),l=o.hasChanged(147);(a||l)&&(this._isColorDecoratorsEnabled?this.updateColors():this.removeAllDecorations())})),this._timeoutTimer=null,this._computePromise=null,this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(147),this.updateColors()}isEnabled(){const e=this._editor.getModel();if(!e)return!1;const t=e.getLanguageId(),i=this._configurationService.getValue(t);if(i&&typeof i=="object"){const s=i.colorDecorators;if(s&&s.enable!==void 0&&!s.enable)return s.enable}return this._editor.getOption(20)}static get(e){return e.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled)return;const e=this._editor.getModel();!e||!this._languageFeaturesService.colorProvider.has(e)||(this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{this._timeoutTimer||(this._timeoutTimer=new cd,this._timeoutTimer.cancelAndSet(()=>{this._timeoutTimer=null,this.beginCompute()},this._debounceInformation.get(e)))})),this.beginCompute())}async beginCompute(){this._computePromise=Xs(async e=>{const t=this._editor.getModel();if(!t)return[];const i=new xo(!1),s=await pfe(this._languageFeaturesService.colorProvider,t,e,this._isDefaultColorDecoratorsEnabled);return this._debounceInformation.update(t,i.elapsed()),s});try{const e=await this._computePromise;this.updateDecorations(e),this.updateColorDecorators(e),this._computePromise=null}catch(e){Mt(e)}}stop(){this._timeoutTimer&&(this._timeoutTimer.cancel(),this._timeoutTimer=null),this._computePromise&&(this._computePromise.cancel(),this._computePromise=null),this._localToDispose.clear()}updateDecorations(e){const t=e.map(i=>({range:{startLineNumber:i.colorInfo.range.startLineNumber,startColumn:i.colorInfo.range.startColumn,endLineNumber:i.colorInfo.range.endLineNumber,endColumn:i.colorInfo.range.endColumn},options:Wt.EMPTY}));this._editor.changeDecorations(i=>{this._decorationsIds=i.deltaDecorations(this._decorationsIds,t),this._colorDatas=new Map,this._decorationsIds.forEach((s,o)=>this._colorDatas.set(s,e[o]))})}updateColorDecorators(e){this._colorDecorationClassRefs.clear();const t=[],i=this._editor.getOption(21);for(let o=0;othis._colorDatas.has(s.id));return i.length===0?null:this._colorDatas.get(i[0].id)}isColorDecoration(e){return this._colorDecoratorIds.has(e)}};Gm.ID="editor.contrib.colorDetector";Gm.RECOMPUTE_TIME=1e3;Gm=Z6=$Ze([n3(1,qt),n3(2,Xe),n3(3,_c)],Gm);class UZe{constructor(){this._onDidChange=new X,this._computed=0,this._limited=!1}update(e,t){(e!==this._computed||t!==this._limited)&&(this._computed=e,this._limited=t,this._onDidChange.fire())}}bi(Gm.ID,Gm,1);class jZe{get color(){return this._color}set color(e){this._color.equals(e)||(this._color=e,this._onDidChangeColor.fire(e))}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(e){this._colorPresentations=e,this.presentationIndex>e.length-1&&(this.presentationIndex=0),this._onDidChangePresentation.fire(this.presentation)}constructor(e,t,i){this.presentationIndex=i,this._onColorFlushed=new X,this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=new X,this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=new X,this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=e,this._color=e,this._colorPresentations=t}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(e,t){let i=-1;for(let s=0;s{this.backgroundColor=r.getColor(X2)||le.white})),this._register(ce(this._pickedColorNode,Le.CLICK,()=>this.model.selectNextColorPresentation())),this._register(ce(this._originalColorNode,Le.CLICK,()=>{this.model.color=this.model.originalColor,this.model.flushColor()})),this._register(t.onDidChangeColor(this.onDidChangeColor,this)),this._register(t.onDidChangePresentation(this.onDidChangePresentation,this)),this._pickedColorNode.style.backgroundColor=le.Format.CSS.format(t.color)||"",this._pickedColorNode.classList.toggle("light",t.color.rgba.a<.5?this.backgroundColor.isLighter():t.color.isLighter()),this.onDidChangeColor(this.model.color),this.showingStandaloneColorPicker&&(this._domNode.classList.add("standalone-colorpicker"),this._closeButton=this._register(new qZe(this._domNode)))}get closeButton(){return this._closeButton}get pickedColorNode(){return this._pickedColorNode}get originalColorNode(){return this._originalColorNode}onDidChangeColor(e){this._pickedColorNode.style.backgroundColor=le.Format.CSS.format(e)||"",this._pickedColorNode.classList.toggle("light",e.rgba.a<.5?this.backgroundColor.isLighter():e.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this._pickedColorPresentation.textContent=this.model.presentation?this.model.presentation.label:""}}class qZe extends ne{constructor(e){super(),this._onClicked=this._register(new X),this.onClicked=this._onClicked.event,this._button=document.createElement("div"),this._button.classList.add("close-button"),we(e,this._button);const t=document.createElement("div");t.classList.add("close-button-inner-div"),we(this._button,t),we(t,ul(".button"+_t.asCSSSelector(Jn("color-picker-close",Te.close,v("closeIcon","Icon to close the color picker"))))).classList.add("close-icon"),this._register(ce(this._button,Le.CLICK,()=>{this._onClicked.fire()}))}}class GZe extends ne{constructor(e,t,i,s=!1){super(),this.model=t,this.pixelRatio=i,this._insertButton=null,this._domNode=ul(".colorpicker-body"),we(e,this._domNode),this._saturationBox=new ZZe(this._domNode,this.model,this.pixelRatio),this._register(this._saturationBox),this._register(this._saturationBox.onDidChange(this.onDidSaturationValueChange,this)),this._register(this._saturationBox.onColorFlushed(this.flushColor,this)),this._opacityStrip=new YZe(this._domNode,this.model,s),this._register(this._opacityStrip),this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this._opacityStrip.onColorFlushed(this.flushColor,this)),this._hueStrip=new XZe(this._domNode,this.model,s),this._register(this._hueStrip),this._register(this._hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this._hueStrip.onColorFlushed(this.flushColor,this)),s&&(this._insertButton=this._register(new QZe(this._domNode)),this._domNode.classList.add("standalone-colorpicker"))}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:e,v:t}){const i=this.model.color.hsva;this.model.color=new le(new rh(i.h,e,t,i.a))}onDidOpacityChange(e){const t=this.model.color.hsva;this.model.color=new le(new rh(t.h,t.s,t.v,e))}onDidHueChange(e){const t=this.model.color.hsva,i=(1-e)*360;this.model.color=new le(new rh(i===360?0:i,t.s,t.v,t.a))}get domNode(){return this._domNode}get saturationBox(){return this._saturationBox}get enterButton(){return this._insertButton}layout(){this._saturationBox.layout(),this._opacityStrip.layout(),this._hueStrip.layout()}}class ZZe extends ne{constructor(e,t,i){super(),this.model=t,this.pixelRatio=i,this._onDidChange=new X,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new X,this.onColorFlushed=this._onColorFlushed.event,this._domNode=ul(".saturation-wrap"),we(e,this._domNode),this._canvas=document.createElement("canvas"),this._canvas.className="saturation-box",we(this._domNode,this._canvas),this.selection=ul(".saturation-selection"),we(this._domNode,this.selection),this.layout(),this._register(ce(this._domNode,Le.POINTER_DOWN,s=>this.onPointerDown(s))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}get domNode(){return this._domNode}onPointerDown(e){if(!e.target||!(e.target instanceof Element))return;this.monitor=this._register(new Bw);const t=bs(this._domNode);e.target!==this.selection&&this.onDidChangePosition(e.offsetX,e.offsetY),this.monitor.startMonitoring(e.target,e.pointerId,e.buttons,s=>this.onDidChangePosition(s.pageX-t.left,s.pageY-t.top),()=>null);const i=ce(e.target.ownerDocument,Le.POINTER_UP,()=>{this._onColorFlushed.fire(),i.dispose(),this.monitor&&(this.monitor.stopMonitoring(!0),this.monitor=null)},!0)}onDidChangePosition(e,t){const i=Math.max(0,Math.min(1,e/this.width)),s=Math.max(0,Math.min(1,1-t/this.height));this.paintSelection(i,s),this._onDidChange.fire({s:i,v:s})}layout(){this.width=this._domNode.offsetWidth,this.height=this._domNode.offsetHeight,this._canvas.width=this.width*this.pixelRatio,this._canvas.height=this.height*this.pixelRatio,this.paint();const e=this.model.color.hsva;this.paintSelection(e.s,e.v)}paint(){const e=this.model.color.hsva,t=new le(new rh(e.h,1,1,1)),i=this._canvas.getContext("2d"),s=i.createLinearGradient(0,0,this._canvas.width,0);s.addColorStop(0,"rgba(255, 255, 255, 1)"),s.addColorStop(.5,"rgba(255, 255, 255, 0.5)"),s.addColorStop(1,"rgba(255, 255, 255, 0)");const o=i.createLinearGradient(0,0,0,this._canvas.height);o.addColorStop(0,"rgba(0, 0, 0, 0)"),o.addColorStop(1,"rgba(0, 0, 0, 1)"),i.rect(0,0,this._canvas.width,this._canvas.height),i.fillStyle=le.Format.CSS.format(t),i.fill(),i.fillStyle=s,i.fill(),i.fillStyle=o,i.fill()}paintSelection(e,t){this.selection.style.left=`${e*this.width}px`,this.selection.style.top=`${this.height-t*this.height}px`}onDidChangeColor(e){if(this.monitor&&this.monitor.isMonitoring())return;this.paint();const t=e.hsva;this.paintSelection(t.s,t.v)}}class bfe extends ne{constructor(e,t,i=!1){super(),this.model=t,this._onDidChange=new X,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new X,this.onColorFlushed=this._onColorFlushed.event,i?(this.domNode=we(e,ul(".standalone-strip")),this.overlay=we(this.domNode,ul(".standalone-overlay"))):(this.domNode=we(e,ul(".strip")),this.overlay=we(this.domNode,ul(".overlay"))),this.slider=we(this.domNode,ul(".slider")),this.slider.style.top="0px",this._register(ce(this.domNode,Le.POINTER_DOWN,s=>this.onPointerDown(s))),this._register(t.onDidChangeColor(this.onDidChangeColor,this)),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;const e=this.getValue(this.model.color);this.updateSliderPosition(e)}onDidChangeColor(e){const t=this.getValue(e);this.updateSliderPosition(t)}onPointerDown(e){if(!e.target||!(e.target instanceof Element))return;const t=this._register(new Bw),i=bs(this.domNode);this.domNode.classList.add("grabbing"),e.target!==this.slider&&this.onDidChangeTop(e.offsetY),t.startMonitoring(e.target,e.pointerId,e.buttons,o=>this.onDidChangeTop(o.pageY-i.top),()=>null);const s=ce(e.target.ownerDocument,Le.POINTER_UP,()=>{this._onColorFlushed.fire(),s.dispose(),t.stopMonitoring(!0),this.domNode.classList.remove("grabbing")},!0)}onDidChangeTop(e){const t=Math.max(0,Math.min(1,1-e/this.height));this.updateSliderPosition(t),this._onDidChange.fire(t)}updateSliderPosition(e){this.slider.style.top=`${(1-e)*this.height}px`}}class YZe extends bfe{constructor(e,t,i=!1){super(e,t,i),this.domNode.classList.add("opacity-strip"),this.onDidChangeColor(this.model.color)}onDidChangeColor(e){super.onDidChangeColor(e);const{r:t,g:i,b:s}=e.rgba,o=new le(new ci(t,i,s,1)),r=new le(new ci(t,i,s,0));this.overlay.style.background=`linear-gradient(to bottom, ${o} 0%, ${r} 100%)`}getValue(e){return e.hsva.a}}class XZe extends bfe{constructor(e,t,i=!1){super(e,t,i),this.domNode.classList.add("hue-strip")}getValue(e){return 1-e.hsva.h/360}}class QZe extends ne{constructor(e){super(),this._onClicked=this._register(new X),this.onClicked=this._onClicked.event,this._button=we(e,document.createElement("button")),this._button.classList.add("insert-button"),this._button.textContent="Insert",this._register(ce(this._button,Le.CLICK,()=>{this._onClicked.fire()}))}get button(){return this._button}}class JZe extends Il{constructor(e,t,i,s,o=!1){super(),this.model=t,this.pixelRatio=i,this._register(fL.getInstance(gt(e)).onDidChange(()=>this.layout()));const r=ul(".colorpicker-widget");e.appendChild(r),this.header=this._register(new KZe(r,this.model,s,o)),this.body=this._register(new GZe(r,this.model,this.pixelRatio,o))}layout(){this.body.layout()}}var Cfe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},wfe=function(n,e){return function(t,i){e(t,i,n)}};class eYe{constructor(e,t,i,s){this.owner=e,this.range=t,this.model=i,this.provider=s,this.forceShowAtRange=!0}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let uR=class{constructor(e,t){this._editor=e,this._themeService=t,this.hoverOrdinal=2}computeSync(e,t){return[]}computeAsync(e,t,i){return Ls.fromPromise(this._computeAsync(e,t,i))}async _computeAsync(e,t,i){if(!this._editor.hasModel())return[];const s=Gm.get(this._editor);if(!s)return[];for(const o of t){if(!s.isColorDecoration(o))continue;const r=s.getColorData(o.range.getStartPosition());if(r)return[await yfe(this,this._editor.getModel(),r.colorInfo,r.provider)]}return[]}renderHoverParts(e,t){return Sfe(this,this._editor,this._themeService,t,e)}};uR=Cfe([wfe(1,js)],uR);class tYe{constructor(e,t,i,s){this.owner=e,this.range=t,this.model=i,this.provider=s}}let fk=class{constructor(e,t){this._editor=e,this._themeService=t,this._color=null}async createColorHover(e,t,i){if(!this._editor.hasModel()||!Gm.get(this._editor))return null;const o=await pfe(i,this._editor.getModel(),Qt.None);let r=null,a=null;for(const u of o){const h=u.colorInfo;A.containsRange(h.range,e.range)&&(r=h,a=u.provider)}const l=r??e,c=a??t,d=!!r;return{colorHover:await yfe(this,this._editor.getModel(),l,c),foundInEditor:d}}async updateEditorModel(e){if(!this._editor.hasModel())return;const t=e.model;let i=new A(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn);this._color&&(await ON(this._editor.getModel(),t,this._color,i,e),i=xfe(this._editor,i,t))}renderHoverParts(e,t){return Sfe(this,this._editor,this._themeService,t,e)}set color(e){this._color=e}get color(){return this._color}};fk=Cfe([wfe(1,js)],fk);async function yfe(n,e,t,i){const s=e.getValueInRange(t.range),{red:o,green:r,blue:a,alpha:l}=t.color,c=new ci(Math.round(o*255),Math.round(r*255),Math.round(a*255),l),d=new le(c),u=await mfe(e,t,i,Qt.None),h=new jZe(d,[],0);return h.colorPresentations=u||[],h.guessColorPresentation(d,s),n instanceof uR?new eYe(n,A.lift(t.range),h,i):new tYe(n,A.lift(t.range),h,i)}function Sfe(n,e,t,i,s){if(i.length===0||!e.hasModel())return ne.None;if(s.setMinimumDimensions){const h=e.getOption(67)+8;s.setMinimumDimensions(new yi(302,h))}const o=new be,r=i[0],a=e.getModel(),l=r.model,c=o.add(new JZe(s.fragment,l,e.getOption(143),t,n instanceof fk));s.setColorPicker(c);let d=!1,u=new A(r.range.startLineNumber,r.range.startColumn,r.range.endLineNumber,r.range.endColumn);if(n instanceof fk){const h=i[0].model.color;n.color=h,ON(a,l,h,u,r),o.add(l.onColorFlushed(f=>{n.color=f}))}else o.add(l.onColorFlushed(async h=>{await ON(a,l,h,u,r),d=!0,u=xfe(e,u,l)}));return o.add(l.onDidChangeColor(h=>{ON(a,l,h,u,r)})),o.add(e.onDidChangeModelContent(h=>{d?d=!1:(s.hide(),e.focus())})),o}function xfe(n,e,t){var i,s;const o=[],r=(i=t.presentation.textEdit)!==null&&i!==void 0?i:{range:e,text:t.presentation.label,forceMoveMarkers:!1};o.push(r),t.presentation.additionalTextEdits&&o.push(...t.presentation.additionalTextEdits);const a=A.lift(r.range),l=n.getModel()._setTrackedRange(null,a,3);return n.executeEdits("colorpicker",o),n.pushUndoStop(),(s=n.getModel()._getTrackedRange(l))!==null&&s!==void 0?s:a}async function ON(n,e,t,i,s){const o=await mfe(n,{range:i,color:{red:t.rgba.r/255,green:t.rgba.g/255,blue:t.rgba.b/255,alpha:t.rgba.a}},s.provider,Qt.None);e.colorPresentations=o||[]}const Lfe="editor.action.showHover",iYe="editor.action.showDefinitionPreviewHover",nYe="editor.action.scrollUpHover",sYe="editor.action.scrollDownHover",oYe="editor.action.scrollLeftHover",rYe="editor.action.scrollRightHover",aYe="editor.action.pageUpHover",lYe="editor.action.pageDownHover",cYe="editor.action.goToTopHover",dYe="editor.action.goToBottomHover",NP="editor.action.increaseHoverVerbosityLevel",uYe=v({},"Increase Hover Verbosity Level"),AP="editor.action.decreaseHoverVerbosityLevel",hYe=v({},"Decrease Hover Verbosity Level"),kfe="editor.action.inlineSuggest.commit",Dfe="editor.action.inlineSuggest.showPrevious",Ife="editor.action.inlineSuggest.showNext";var wU=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},$c=function(n,e){return function(t,i){e(t,i,n)}},FN;let Y6=class extends ne{constructor(e,t,i){super(),this.editor=e,this.model=t,this.instantiationService=i,this.alwaysShowToolbar=qi(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).showToolbar==="always"),this.sessionPosition=void 0,this.position=Rt(this,s=>{var o,r,a;const l=(o=this.model.read(s))===null||o===void 0?void 0:o.primaryGhostText.read(s);if(!this.alwaysShowToolbar.read(s)||!l||l.parts.length===0)return this.sessionPosition=void 0,null;const c=l.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==l.lineNumber&&(this.sessionPosition=void 0);const d=new ee(l.lineNumber,Math.min(c,(a=(r=this.sessionPosition)===null||r===void 0?void 0:r.column)!==null&&a!==void 0?a:Number.MAX_SAFE_INTEGER));return this.sessionPosition=d,d}),this._register(uc((s,o)=>{const r=this.model.read(s);if(!r||!this.alwaysShowToolbar.read(s))return;const a=J0((c,d)=>{const u=d.add(this.instantiationService.createInstance(Zm,this.editor,!0,this.position,r.selectedInlineCompletionIndex,r.inlineCompletionsCount,r.activeCommands));return e.addContentWidget(u),d.add(dt(()=>e.removeContentWidget(u))),d.add(Ut(h=>{this.position.read(h)&&r.lastTriggerKind.read(h)!==pg.Explicit&&r.triggerExplicitly()})),u}),l=vVe(this,(c,d)=>!!this.position.read(c)||!!d);o.add(Ut(c=>{l.read(c)&&a.read(c)}))}))}};Y6=wU([$c(2,ht)],Y6);const fYe=Jn("inline-suggestion-hints-next",Te.chevronRight,v("parameterHintsNextIcon","Icon for show next parameter hint.")),gYe=Jn("inline-suggestion-hints-previous",Te.chevronLeft,v("parameterHintsPreviousIcon","Icon for show previous parameter hint."));let Zm=FN=class extends ne{static get dropDownVisible(){return this._dropDownVisible}createCommandAction(e,t,i){const s=new Ta(e,t,i,!0,()=>this._commandService.executeCommand(e)),o=this.keybindingService.lookupKeybinding(e,this._contextKeyService);let r=t;return o&&(r=v({},"{0} ({1})",t,o.getLabel())),s.tooltip=r,s}constructor(e,t,i,s,o,r,a,l,c,d,u){super(),this.editor=e,this.withBorder=t,this._position=i,this._currentSuggestionIdx=s,this._suggestionCount=o,this._extraCommands=r,this._commandService=a,this.keybindingService=c,this._contextKeyService=d,this._menuService=u,this.id=`InlineSuggestionHintsContentWidget${FN.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=wi("div.inlineSuggestionsHints",{className:this.withBorder?".withBorder":""},[wi("div@toolBar")]),this.previousAction=this.createCommandAction(Dfe,v("previous","Previous"),_t.asClassName(gYe)),this.availableSuggestionCountAction=new Ta("inlineSuggestionHints.availableSuggestionCount","",void 0,!1),this.nextAction=this.createCommandAction(Ife,v("next","Next"),_t.asClassName(fYe)),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(R.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new Xi(()=>{this.availableSuggestionCountAction.label=""},100)),this.disableButtonsDebounced=this._register(new Xi(()=>{this.previousAction.enabled=this.nextAction.enabled=!1},100)),this.toolBar=this._register(l.createInstance(X6,this.nodes.toolBar,R.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:h=>h.startsWith("primary")},actionViewItemProvider:(h,f)=>{if(h instanceof Na)return l.createInstance(mYe,h,void 0);if(h===this.availableSuggestionCountAction){const g=new pYe(void 0,h,{label:!0,icon:!1});return g.setClass("availableSuggestionCount"),g}},telemetrySource:"InlineSuggestionToolbar"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility(h=>{FN._dropDownVisible=h})),this._register(Ut(h=>{this._position.read(h),this.editor.layoutContentWidget(this)})),this._register(Ut(h=>{const f=this._suggestionCount.read(h),g=this._currentSuggestionIdx.read(h);f!==void 0?(this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label=`${g+1}/${f}`):this.clearAvailableSuggestionCountLabelDebounced.schedule(),f!==void 0&&f>1?(this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0):this.disableButtonsDebounced.schedule()})),this._register(Ut(h=>{const g=this._extraCommands.read(h).map(p=>({class:void 0,id:p.id,enabled:!0,tooltip:p.tooltip||"",label:p.title,run:_=>this._commandService.executeCommand(p.id)}));for(const[p,_]of this.inlineCompletionsActionsMenus.getActions())for(const b of _)b instanceof Na&&g.push(b);g.length>0&&g.unshift(new Ms),this.toolBar.setAdditionalSecondaryActions(g)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};Zm._dropDownVisible=!1;Zm.id=0;Zm=FN=wU([$c(6,Sn),$c(7,ht),$c(8,Li),$c(9,Ct),$c(10,Dl)],Zm);class pYe extends QC{constructor(){super(...arguments),this._className=void 0}setClass(e){this._className=e}render(e){super.render(e),this._className&&e.classList.add(this._className)}updateTooltip(){}}let mYe=class extends Um{updateLabel(){const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!e)return super.updateLabel();if(this.label){const t=wi("div.keybinding").root;this._register(new $w(t,Da,{disableTitle:!0,...Sue})).set(e),this.label.textContent=this._action.label,this.label.appendChild(t),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}updateTooltip(){}},X6=class extends ok{constructor(e,t,i,s,o,r,a,l,c){super(e,{resetMenu:t,...i},s,o,r,a,l,c),this.menuId=t,this.options2=i,this.menuService=s,this.contextKeyService=o,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){var e,t,i,s,o,r,a;const l=[],c=[];rP(this.menu,(e=this.options2)===null||e===void 0?void 0:e.menuOptions,{primary:l,secondary:c},(i=(t=this.options2)===null||t===void 0?void 0:t.toolbarOptions)===null||i===void 0?void 0:i.primaryGroup,(o=(s=this.options2)===null||s===void 0?void 0:s.toolbarOptions)===null||o===void 0?void 0:o.shouldInlineSubmenu,(a=(r=this.options2)===null||r===void 0?void 0:r.toolbarOptions)===null||a===void 0?void 0:a.useSeparatorsInPrimaryActions),c.push(...this.additionalActions),l.unshift(...this.prependedPrimaryActions),this.setActions(l,c)}setPrependedPrimaryActions(e){zn(this.prependedPrimaryActions,e,(t,i)=>t===i)||(this.prependedPrimaryActions=e,this.updateToolbar())}setAdditionalSecondaryActions(e){zn(this.additionalActions,e,(t,i)=>t===i)||(this.additionalActions=e,this.updateToolbar())}};X6=wU([$c(3,Dl),$c(4,Ct),$c(5,za),$c(6,Li),$c(7,Sn),$c(8,Po)],X6);class yU{constructor(){this._onDidWillResize=new X,this.onDidWillResize=this._onDidWillResize.event,this._onDidResize=new X,this.onDidResize=this._onDidResize.event,this._sashListener=new be,this._size=new yi(0,0),this._minSize=new yi(0,0),this._maxSize=new yi(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new Vo(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new Vo(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new Vo(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:MA.North}),this._southSash=new Vo(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:MA.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let e,t=0,i=0;this._sashListener.add(Ae.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{e===void 0&&(this._onDidWillResize.fire(),e=this._size,t=0,i=0)})),this._sashListener.add(Ae.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{e!==void 0&&(e=void 0,t=0,i=0,this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(this._eastSash.onDidChange(s=>{e&&(i=s.currentX-s.startX,this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,east:!0}))})),this._sashListener.add(this._westSash.onDidChange(s=>{e&&(i=-(s.currentX-s.startX),this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,west:!0}))})),this._sashListener.add(this._northSash.onDidChange(s=>{e&&(t=-(s.currentY-s.startY),this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,north:!0}))})),this._sashListener.add(this._southSash.onDidChange(s=>{e&&(t=s.currentY-s.startY,this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,south:!0}))})),this._sashListener.add(Ae.any(this._eastSash.onDidReset,this._westSash.onDidReset)(s=>{this._preferredSize&&(this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(Ae.any(this._northSash.onDidReset,this._southSash.onDidReset)(s=>{this._preferredSize&&(this.layout(this._preferredSize.height,this._size.width),this._onDidResize.fire({dimension:this._size,done:!0}))}))}dispose(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this._onDidResize.dispose(),this._onDidWillResize.dispose(),this.domNode.remove()}enableSashes(e,t,i,s){this._northSash.state=e?3:0,this._eastSash.state=t?3:0,this._southSash.state=i?3:0,this._westSash.state=s?3:0}layout(e=this.size.height,t=this.size.width){const{height:i,width:s}=this._minSize,{height:o,width:r}=this._maxSize;e=Math.max(i,Math.min(o,e)),t=Math.max(s,Math.min(r,t));const a=new yi(t,e);yi.equals(a,this._size)||(this.domNode.style.height=e+"px",this.domNode.style.width=t+"px",this._size=a,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout())}clearSashHoverState(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}get size(){return this._size}set maxSize(e){this._maxSize=e}get maxSize(){return this._maxSize}set minSize(e){this._minSize=e}get minSize(){return this._minSize}set preferredSize(e){this._preferredSize=e}get preferredSize(){return this._preferredSize}}const _Ye=30,vYe=24;class bYe extends ne{constructor(e,t=new yi(10,10)){super(),this._editor=e,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new yU),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position="absolute",this._resizableNode.minSize=yi.lift(t),this._resizableNode.layout(t.height,t.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize(i=>{this._resize(new yi(i.dimension.width,i.dimension.height)),i.done&&(this._isResizing=!1)})),this._register(this._resizableNode.onDidWillResize(()=>{this._isResizing=!0}))}get isResizing(){return this._isResizing}getDomNode(){return this._resizableNode.domNode}getPosition(){return this._contentPosition}get position(){var e;return!((e=this._contentPosition)===null||e===void 0)&&e.position?ee.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(e){const t=this._editor.getDomNode(),i=this._editor.getScrolledVisiblePosition(e);return!t||!i?void 0:bs(t).top+i.top-_Ye}_availableVerticalSpaceBelow(e){const t=this._editor.getDomNode(),i=this._editor.getScrolledVisiblePosition(e);if(!t||!i)return;const s=bs(t),o=Fm(t.ownerDocument.body),r=s.top+i.top+i.height;return o.height-r-vYe}_findPositionPreference(e,t){var i,s;const o=Math.min((i=this._availableVerticalSpaceBelow(t))!==null&&i!==void 0?i:1/0,e),r=Math.min((s=this._availableVerticalSpaceAbove(t))!==null&&s!==void 0?s:1/0,e),a=Math.min(Math.max(r,o),e),l=Math.min(e,a);let c;return this._editor.getOption(60).above?c=l<=r?1:2:c=l<=o?2:1,c===1?this._resizableNode.enableSashes(!0,!0,!1,!1):this._resizableNode.enableSashes(!1,!0,!0,!1),c}_resize(e){this._resizableNode.layout(e.height,e.width)}}var CYe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},mT=function(n,e){return function(t,i){e(t,i,n)}},Wu;const Uee=30,wYe=6;let lw=Wu=class extends bYe{get isColorPickerVisible(){var e;return!!(!((e=this._visibleData)===null||e===void 0)&&e.colorPicker)}get isVisibleFromKeyboard(){var e;return((e=this._visibleData)===null||e===void 0?void 0:e.source)===1}get isVisible(){var e;return(e=this._hoverVisibleKey.get())!==null&&e!==void 0?e:!1}get isFocused(){var e;return(e=this._hoverFocusedKey.get())!==null&&e!==void 0?e:!1}constructor(e,t,i,s,o){const r=e.getOption(67)+8,a=150,l=new yi(a,r);super(e,l),this._configurationService=i,this._accessibilityService=s,this._keybindingService=o,this._hover=this._register(new c$),this._minimumSize=l,this._hoverVisibleKey=W.hoverVisible.bindTo(t),this._hoverFocusedKey=W.hoverFocused.bindTo(t),we(this._resizableNode.domNode,this._hover.containerDomNode),this._resizableNode.domNode.style.zIndex="50",this._register(this._editor.onDidLayoutChange(()=>{this.isVisible&&this._updateMaxDimensions()})),this._register(this._editor.onDidChangeConfiguration(d=>{d.hasChanged(50)&&this._updateFont()}));const c=this._register(ou(this._resizableNode.domNode));this._register(c.onDidFocus(()=>{this._hoverFocusedKey.set(!0)})),this._register(c.onDidBlur(()=>{this._hoverFocusedKey.set(!1)})),this._setHoverData(void 0),this._editor.addContentWidget(this)}dispose(){var e;super.dispose(),(e=this._visibleData)===null||e===void 0||e.disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return Wu.ID}static _applyDimensions(e,t,i){const s=typeof t=="number"?`${t}px`:t,o=typeof i=="number"?`${i}px`:i;e.style.width=s,e.style.height=o}_setContentsDomNodeDimensions(e,t){const i=this._hover.contentsDomNode;return Wu._applyDimensions(i,e,t)}_setContainerDomNodeDimensions(e,t){const i=this._hover.containerDomNode;return Wu._applyDimensions(i,e,t)}_setHoverWidgetDimensions(e,t){this._setContentsDomNodeDimensions(e,t),this._setContainerDomNodeDimensions(e,t),this._layoutContentWidget()}static _applyMaxDimensions(e,t,i){const s=typeof t=="number"?`${t}px`:t,o=typeof i=="number"?`${i}px`:i;e.style.maxWidth=s,e.style.maxHeight=o}_setHoverWidgetMaxDimensions(e,t){Wu._applyMaxDimensions(this._hover.contentsDomNode,e,t),Wu._applyMaxDimensions(this._hover.containerDomNode,e,t),this._hover.containerDomNode.style.setProperty("--vscode-hover-maxWidth",typeof e=="number"?`${e}px`:e),this._layoutContentWidget()}_setAdjustedHoverWidgetDimensions(e){this._setHoverWidgetMaxDimensions("none","none");const t=e.width,i=e.height;this._setHoverWidgetDimensions(t,i)}_updateResizableNodeMaxDimensions(){var e,t;const i=(e=this._findMaximumRenderingWidth())!==null&&e!==void 0?e:1/0,s=(t=this._findMaximumRenderingHeight())!==null&&t!==void 0?t:1/0;this._resizableNode.maxSize=new yi(i,s),this._setHoverWidgetMaxDimensions(i,s)}_resize(e){var t,i;Wu._lastDimensions=new yi(e.width,e.height),this._setAdjustedHoverWidgetDimensions(e),this._resizableNode.layout(e.height,e.width),this._updateResizableNodeMaxDimensions(),this._hover.scrollbar.scanDomNode(),this._editor.layoutContentWidget(this),(i=(t=this._visibleData)===null||t===void 0?void 0:t.colorPicker)===null||i===void 0||i.layout()}_findAvailableSpaceVertically(){var e;const t=(e=this._visibleData)===null||e===void 0?void 0:e.showAtPosition;if(t)return this._positionPreference===1?this._availableVerticalSpaceAbove(t):this._availableVerticalSpaceBelow(t)}_findMaximumRenderingHeight(){const e=this._findAvailableSpaceVertically();if(!e)return;let t=wYe;return Array.from(this._hover.contentsDomNode.children).forEach(i=>{t+=i.clientHeight}),Math.min(e,t)}_isHoverTextOverflowing(){this._hover.containerDomNode.style.setProperty("--vscode-hover-whiteSpace","nowrap"),this._hover.containerDomNode.style.setProperty("--vscode-hover-sourceWhiteSpace","nowrap");const e=Array.from(this._hover.contentsDomNode.children).some(t=>t.scrollWidth>t.clientWidth);return this._hover.containerDomNode.style.removeProperty("--vscode-hover-whiteSpace"),this._hover.containerDomNode.style.removeProperty("--vscode-hover-sourceWhiteSpace"),e}_findMaximumRenderingWidth(){if(!this._editor||!this._editor.hasModel())return;const e=this._isHoverTextOverflowing(),t=typeof this._contentWidth>"u"?0:this._contentWidth-2;return e||this._hover.containerDomNode.clientWidth"u"||typeof this._visibleData.initialMousePosY>"u")return this._visibleData.initialMousePosX=e,this._visibleData.initialMousePosY=t,!1;const i=bs(this.getDomNode());typeof this._visibleData.closestMouseDistance>"u"&&(this._visibleData.closestMouseDistance=jee(this._visibleData.initialMousePosX,this._visibleData.initialMousePosY,i.left,i.top,i.width,i.height));const s=jee(e,t,i.left,i.top,i.width,i.height);return s>this._visibleData.closestMouseDistance+4?!1:(this._visibleData.closestMouseDistance=Math.min(this._visibleData.closestMouseDistance,s),!0)}_setHoverData(e){var t;(t=this._visibleData)===null||t===void 0||t.disposables.dispose(),this._visibleData=e,this._hoverVisibleKey.set(!!e),this._hover.containerDomNode.classList.toggle("hidden",!e)}_updateFont(){const{fontSize:e,lineHeight:t}=this._editor.getOption(50),i=this._hover.contentsDomNode;i.style.fontSize=`${e}px`,i.style.lineHeight=`${t/e}`,Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(o=>this._editor.applyFontInfo(o))}_updateContent(e){const t=this._hover.contentsDomNode;t.style.paddingBottom="",t.textContent="",t.appendChild(e)}_layoutContentWidget(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_updateMaxDimensions(){const e=Math.max(this._editor.getLayoutInfo().height/4,250,Wu._lastDimensions.height),t=Math.max(this._editor.getLayoutInfo().width*.66,500,Wu._lastDimensions.width);this._setHoverWidgetMaxDimensions(t,e)}_render(e,t){this._setHoverData(t),this._updateFont(),this._updateContent(e),this._updateMaxDimensions(),this.onContentsChanged(),this._editor.render()}getPosition(){var e;return this._visibleData?{position:this._visibleData.showAtPosition,secondaryPosition:this._visibleData.showAtSecondaryPosition,positionAffinity:this._visibleData.isBeforeContent?3:void 0,preference:[(e=this._positionPreference)!==null&&e!==void 0?e:1]}:null}showAt(e,t){var i,s,o,r;if(!this._editor||!this._editor.hasModel())return;this._render(e,t);const a=Zf(this._hover.containerDomNode),l=t.showAtPosition;this._positionPreference=(i=this._findPositionPreference(a,l))!==null&&i!==void 0?i:1,this.onContentsChanged(),t.stoleFocus&&this._hover.containerDomNode.focus(),(s=t.colorPicker)===null||s===void 0||s.layout();const d=this._hover.containerDomNode.ownerDocument.activeElement===this._hover.containerDomNode&&cde(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),(r=(o=this._keybindingService.lookupKeybinding("editor.action.accessibleView"))===null||o===void 0?void 0:o.getAriaLabel())!==null&&r!==void 0?r:"");d&&(this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+", "+d)}hide(){if(!this._visibleData)return;const e=this._visibleData.stoleFocus||this._hoverFocusedKey.get();this._setHoverData(void 0),this._resizableNode.maxSize=new yi(1/0,1/0),this._resizableNode.clearSashHoverState(),this._hoverFocusedKey.set(!1),this._editor.layoutContentWidget(this),e&&this._editor.focus()}_removeConstraintsRenderNormally(){const e=this._editor.getLayoutInfo();this._resizableNode.layout(e.height,e.width),this._setHoverWidgetDimensions("auto","auto")}setMinimumDimensions(e){this._minimumSize=new yi(Math.max(this._minimumSize.width,e.width),Math.max(this._minimumSize.height,e.height)),this._updateMinimumWidth()}_updateMinimumWidth(){const e=typeof this._contentWidth>"u"?this._minimumSize.width:Math.min(this._contentWidth,this._minimumSize.width);this._resizableNode.minSize=new yi(e,this._minimumSize.height)}onContentsChanged(){var e;this._removeConstraintsRenderNormally();const t=this._hover.containerDomNode;let i=Zf(t),s=Sa(t);if(this._resizableNode.layout(i,s),this._setHoverWidgetDimensions(s,i),i=Zf(t),s=Sa(t),this._contentWidth=s,this._updateMinimumWidth(),this._resizableNode.layout(i,s),!((e=this._visibleData)===null||e===void 0)&&e.showAtPosition){const o=Zf(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(o,this._visibleData.showAtPosition)}this._layoutContentWidget()}focus(){this._hover.containerDomNode.focus()}scrollUp(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:e-t.lineHeight})}scrollDown(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:e+t.lineHeight})}scrollLeft(){const e=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:e-Uee})}scrollRight(){const e=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:e+Uee})}pageUp(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:e-t})}pageDown(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:e+t})}goToTop(){this._hover.scrollbar.setScrollPosition({scrollTop:0})}goToBottom(){this._hover.scrollbar.setScrollPosition({scrollTop:this._hover.scrollbar.getScrollDimensions().scrollHeight})}};lw.ID="editor.contrib.resizableContentHoverWidget";lw._lastDimensions=new yi(0,0);lw=Wu=CYe([mT(1,Ct),mT(2,qt),mT(3,Ha),mT(4,Li)],lw);function jee(n,e,t,i,s,o){const r=t+s/2,a=i+o/2,l=Math.max(Math.abs(n-r)-s/2,0),c=Math.max(Math.abs(e-a)-o/2,0);return Math.sqrt(l*l+c*c)}let yYe=class{constructor(e,t,i){this.value=e,this.isComplete=t,this.hasLoadingMessage=i}};class Efe extends ne{constructor(e,t){super(),this._editor=e,this._computer=t,this._onResult=this._register(new X),this.onResult=this._onResult.event,this._firstWaitScheduler=this._register(new Xi(()=>this._triggerAsyncComputation(),0)),this._secondWaitScheduler=this._register(new Xi(()=>this._triggerSyncComputation(),0)),this._loadingMessageScheduler=this._register(new Xi(()=>this._triggerLoadingMessage(),0)),this._state=0,this._asyncIterable=null,this._asyncIterableDone=!1,this._result=[]}dispose(){this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),super.dispose()}get _hoverTime(){return this._editor.getOption(60).delay}get _firstWaitTime(){return this._hoverTime/2}get _secondWaitTime(){return this._hoverTime-this._firstWaitTime}get _loadingMessageTime(){return 3*this._hoverTime}_setState(e,t=!0){this._state=e,t&&this._fireResult()}_triggerAsyncComputation(){this._setState(2),this._secondWaitScheduler.schedule(this._secondWaitTime),this._computer.computeAsync?(this._asyncIterableDone=!1,this._asyncIterable=zRe(e=>this._computer.computeAsync(e)),(async()=>{try{for await(const e of this._asyncIterable)e&&(this._result.push(e),this._fireResult());this._asyncIterableDone=!0,(this._state===3||this._state===4)&&this._setState(0)}catch(e){Mt(e)}})()):this._asyncIterableDone=!0}_triggerSyncComputation(){this._computer.computeSync&&(this._result=this._result.concat(this._computer.computeSync())),this._setState(this._asyncIterableDone?0:3)}_triggerLoadingMessage(){this._state===3&&this._setState(4)}_fireResult(){if(this._state===1||this._state===2)return;const e=this._state===0,t=this._state===4;this._onResult.fire(new yYe(this._result.slice(0),e,t))}start(e){if(e===0)this._state===0&&(this._setState(1),this._firstWaitScheduler.schedule(this._firstWaitTime),this._loadingMessageScheduler.schedule(this._loadingMessageTime));else switch(this._state){case 0:this._triggerAsyncComputation(),this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break;case 2:this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break}}cancel(){this._firstWaitScheduler.cancel(),this._secondWaitScheduler.cancel(),this._loadingMessageScheduler.cancel(),this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),this._result=[],this._setState(0,!1)}}class s3{constructor(e,t,i,s){this.priority=e,this.range=t,this.initialMousePosX=i,this.initialMousePosY=s,this.type=1}equals(e){return e.type===1&&this.range.equalsRange(e.range)}canAdoptVisibleHover(e,t){return e.type===1&&t.lineNumber===this.range.startLineNumber}}class Yv{constructor(e,t,i,s,o,r){this.priority=e,this.owner=t,this.range=i,this.initialMousePosX=s,this.initialMousePosY=o,this.supportsMarkerHover=r,this.type=2}equals(e){return e.type===2&&this.owner===e.owner}canAdoptVisibleHover(e,t){return e.type===2&&this.owner===e.owner}}const b_=new class{constructor(){this._participants=[]}register(e){this._participants.push(e)}getAll(){return this._participants}};class SYe{constructor(e,t,i){this.provider=e,this.hover=t,this.ordinal=i}}async function xYe(n,e,t,i,s){const o=await Promise.resolve(n.provideHover(t,i,s)).catch(as);if(!(!o||!kYe(o)))return new SYe(n,o,e)}function SU(n,e,t,i){const o=n.ordered(e).map((r,a)=>xYe(r,a,e,t,i));return Ls.fromPromises(o).coalesce()}function LYe(n,e,t,i){return SU(n,e,t,i).map(s=>s.hover).toPromise()}Vh("_executeHoverProvider",(n,e,t)=>{const i=n.get(Xe);return LYe(i.hoverProvider,e,t,Qt.None)});function kYe(n){const e=typeof n.range<"u",t=typeof n.contents<"u"&&n.contents&&n.contents.length>0;return e&&t}var DYe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},zb=function(n,e){return function(t,i){e(t,i,n)}};const R1=ke,IYe=Jn("hover-increase-verbosity",Te.add,v("increaseHoverVerbosity","Icon for increaseing hover verbosity.")),EYe=Jn("hover-decrease-verbosity",Te.remove,v("decreaseHoverVerbosity","Icon for decreasing hover verbosity."));class Wd{constructor(e,t,i,s,o,r=void 0){this.owner=e,this.range=t,this.contents=i,this.isBeforeContent=s,this.ordinal=o,this.source=r}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}class Tfe{constructor(e,t,i){this.hover=e,this.hoverProvider=t,this.hoverPosition=i}supportsVerbosityAction(e){var t,i;switch(e){case rl.Increase:return(t=this.hover.canIncreaseVerbosity)!==null&&t!==void 0?t:!1;case rl.Decrease:return(i=this.hover.canDecreaseVerbosity)!==null&&i!==void 0?i:!1}}}let gk=class{constructor(e,t,i,s,o,r,a){this._editor=e,this._languageService=t,this._openerService=i,this._configurationService=s,this._languageFeaturesService=o,this._keybindingService=r,this._hoverService=a,this.hoverOrdinal=3}createLoadingMessage(e){return new Wd(this,e.range,[new $o().appendText(v("modesContentHover.loading","Loading..."))],!1,2e3)}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1)return[];const i=this._editor.getModel(),s=e.range.startLineNumber,o=i.getLineMaxColumn(s),r=[];let a=1e3;const l=i.getLineLength(s),c=i.getLanguageIdAtPosition(e.range.startLineNumber,e.range.startColumn),d=this._editor.getOption(117),u=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:c});let h=!1;d>=0&&l>d&&e.range.startColumn>=d&&(h=!0,r.push(new Wd(this,e.range,[{value:v("stopped rendering","Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`.")}],!1,a++))),!h&&typeof u=="number"&&l>=u&&r.push(new Wd(this,e.range,[{value:v("too many characters","Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.")}],!1,a++));let f=!1;for(const g of t){const p=g.range.startLineNumber===s?g.range.startColumn:1,_=g.range.endLineNumber===s?g.range.endColumn:o,b=g.options.hoverMessage;if(!b||qC(b))continue;g.options.beforeContentClassName&&(f=!0);const w=new A(e.range.startLineNumber,p,e.range.startLineNumber,_);r.push(new Wd(this,w,AV(b),f,a++))}return r}computeAsync(e,t,i){if(!this._editor.hasModel()||e.type!==1)return Ls.EMPTY;const s=this._editor.getModel(),o=this._languageFeaturesService.hoverProvider;return o.has(s)?this._getMarkdownHovers(o,s,e,i):Ls.EMPTY}_getMarkdownHovers(e,t,i,s){const o=i.range.getStartPosition();return SU(e,t,o,s).filter(l=>!qC(l.hover.contents)).map(l=>{const c=l.hover.range?A.lift(l.hover.range):i.range,d=new Tfe(l.hover,l.provider,o);return new Wd(this,c,l.hover.contents,!1,l.ordinal,d)})}renderHoverParts(e,t){return this._renderedHoverParts=new TYe(t,e.fragment,this._editor,this._languageService,this._openerService,this._keybindingService,this._hoverService,this._configurationService,e.onContentsChanged),this._renderedHoverParts}markdownHoverContentAtIndex(e){var t,i;return(i=(t=this._renderedHoverParts)===null||t===void 0?void 0:t.markdownHoverContentAtIndex(e))!==null&&i!==void 0?i:""}doesMarkdownHoverAtIndexSupportVerbosityAction(e,t){var i,s;return(s=(i=this._renderedHoverParts)===null||i===void 0?void 0:i.doesMarkdownHoverAtIndexSupportVerbosityAction(e,t))!==null&&s!==void 0?s:!1}updateMarkdownHoverVerbosityLevel(e,t,i){var s;(s=this._renderedHoverParts)===null||s===void 0||s.updateMarkdownHoverPartVerbosityLevel(e,t,i)}};gk=DYe([zb(1,An),zb(2,$a),zb(3,qt),zb(4,Xe),zb(5,Li),zb(6,$h)],gk);class TYe extends ne{constructor(e,t,i,s,o,r,a,l,c){super(),this._editor=i,this._languageService=s,this._openerService=o,this._keybindingService=r,this._hoverService=a,this._configurationService=l,this._onFinishedRendering=c,this._focusedHoverPartIndex=-1,this._ongoingHoverOperations=new Map,this._renderedHoverParts=this._renderHoverParts(e,t,this._onFinishedRendering),this._register(dt(()=>{this._renderedHoverParts.forEach(d=>{d.disposables.dispose()})})),this._register(dt(()=>{this._ongoingHoverOperations.forEach(d=>{d.tokenSource.dispose(!0)})}))}_renderHoverParts(e,t,i){return e.sort(oa(s=>s.ordinal,Qc)),e.map((s,o)=>{const r=this._renderHoverPart(o,s.contents,s.source,i);return t.appendChild(r.renderedMarkdown),r})}_renderHoverPart(e,t,i,s){const{renderedMarkdown:o,disposables:r}=this._renderMarkdownContent(t,s);if(!i)return{renderedMarkdown:o,disposables:r};const a=i.supportsVerbosityAction(rl.Increase),l=i.supportsVerbosityAction(rl.Decrease);if(!a&&!l)return{renderedMarkdown:o,disposables:r,hoverSource:i};const c=R1("div.verbosity-actions");return o.prepend(c),r.add(this._renderHoverExpansionAction(c,rl.Increase,a)),r.add(this._renderHoverExpansionAction(c,rl.Decrease,l)),this._register(ce(o,Le.FOCUS_IN,d=>{d.stopPropagation(),this._focusedHoverPartIndex=e})),this._register(ce(o,Le.FOCUS_OUT,d=>{d.stopPropagation(),this._focusedHoverPartIndex=-1})),{renderedMarkdown:o,disposables:r,hoverSource:i}}_renderMarkdownContent(e,t){const i=R1("div.hover-row");i.tabIndex=0;const s=R1("div.hover-row-contents");i.appendChild(s);const o=new be;return o.add(Nfe(this._editor,s,e,this._languageService,this._openerService,t)),{renderedMarkdown:i,disposables:o}}_renderHoverExpansionAction(e,t,i){const s=new be,o=t===rl.Increase,r=we(e,R1(_t.asCSSSelector(o?IYe:EYe)));r.tabIndex=0;const a=new KC("mouse",!1,{target:e,position:{hoverPosition:0}},this._configurationService,this._hoverService);if(s.add(this._hoverService.setupUpdatableHover(a,r,AYe(this._keybindingService,t))),!i)return r.classList.add("disabled"),s;r.classList.add("enabled");const l=()=>this.updateMarkdownHoverPartVerbosityLevel(t);return s.add(new dde(r,l)),s.add(new ude(r,l,[3,10])),s}async updateMarkdownHoverPartVerbosityLevel(e,t=-1,i=!0){var s;const o=this._editor.getModel();if(!o)return;const r=t!==-1?t:this._focusedHoverPartIndex,a=this._getRenderedHoverPartAtIndex(r);if(!a||!(!((s=a.hoverSource)===null||s===void 0)&&s.supportsVerbosityAction(e)))return;const l=a.hoverSource,c=await this._fetchHover(l,o,e);if(!c)return;const d=new Tfe(c,l.hoverProvider,l.hoverPosition),u=this._renderHoverPart(r,c.contents,d,this._onFinishedRendering);this._replaceRenderedHoverPartAtIndex(r,u),i&&this._focusOnHoverPartWithIndex(r),this._onFinishedRendering()}markdownHoverContentAtIndex(e){var t;const i=this._getRenderedHoverPartAtIndex(e);return(t=i==null?void 0:i.renderedMarkdown.innerText)!==null&&t!==void 0?t:""}doesMarkdownHoverAtIndexSupportVerbosityAction(e,t){var i;const s=this._getRenderedHoverPartAtIndex(e);return!(!s||!(!((i=s.hoverSource)===null||i===void 0)&&i.supportsVerbosityAction(t)))}async _fetchHover(e,t,i){let s=i===rl.Increase?1:-1;const o=e.hoverProvider,r=this._ongoingHoverOperations.get(o);r&&(r.tokenSource.cancel(),s+=r.verbosityDelta);const a=new $n;this._ongoingHoverOperations.set(o,{verbosityDelta:s,tokenSource:a});const l={verbosityRequest:{verbosityDelta:s,previousHover:e.hover}};let c;try{c=await Promise.resolve(o.provideHover(t,e.hoverPosition,a.token,l))}catch(d){as(d)}return a.dispose(),this._ongoingHoverOperations.delete(o),c}_replaceRenderedHoverPartAtIndex(e,t){if(e>=this._renderHoverParts.length||e<0)return;const i=this._renderedHoverParts[e];i.renderedMarkdown.replaceWith(t.renderedMarkdown),i.disposables.dispose(),this._renderedHoverParts[e]=t}_focusOnHoverPartWithIndex(e){this._renderedHoverParts[e].renderedMarkdown.focus()}_getRenderedHoverPartAtIndex(e){return this._renderedHoverParts[e]}}function NYe(n,e,t,i,s){e.sort(oa(r=>r.ordinal,Qc));const o=new be;for(const r of e)o.add(Nfe(t,n.fragment,r.contents,i,s,n.onContentsChanged));return o}function Nfe(n,e,t,i,s,o){const r=new be;for(const a of t){if(qC(a))continue;const l=R1("div.markdown-hover"),c=we(l,R1("div.hover-contents")),d=r.add(new Nh({editor:n},i,s));r.add(d.onDidRenderAsync(()=>{c.className="hover-contents code-hover-contents",o()}));const u=r.add(d.render(a));c.appendChild(u.element),e.appendChild(l)}return r}function AYe(n,e){switch(e){case rl.Increase:{const t=n.lookupKeybinding(NP);return t?v("increaseVerbosityWithKb","Increase Hover Verbosity ({0})",t.getLabel()):v("increaseVerbosity","Increase Hover Verbosity")}case rl.Decrease:{const t=n.lookupKeybinding(AP);return t?v("decreaseVerbosityWithKb","Decrease Hover Verbosity ({0})",t.getLabel()):v("decreaseVerbosity","Decrease Hover Verbosity")}}}function Q6(n,e){return!!n[e]}class o3{constructor(e,t){this.target=e.target,this.isLeftClick=e.event.leftButton,this.isMiddleClick=e.event.middleButton,this.isRightClick=e.event.rightButton,this.hasTriggerModifier=Q6(e.event,t.triggerModifier),this.hasSideBySideModifier=Q6(e.event,t.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=e.event.detail<=1}}class Kee{constructor(e,t){this.keyCodeIsTriggerKey=e.keyCode===t.triggerKey,this.keyCodeIsSideBySideKey=e.keyCode===t.triggerSideBySideKey,this.hasTriggerModifier=Q6(e,t.triggerModifier)}}class _T{constructor(e,t,i,s){this.triggerKey=e,this.triggerModifier=t,this.triggerSideBySideKey=i,this.triggerSideBySideModifier=s}equals(e){return this.triggerKey===e.triggerKey&&this.triggerModifier===e.triggerModifier&&this.triggerSideBySideKey===e.triggerSideBySideKey&&this.triggerSideBySideModifier===e.triggerSideBySideModifier}}function qee(n){return n==="altKey"?Xt?new _T(57,"metaKey",6,"altKey"):new _T(5,"ctrlKey",6,"altKey"):Xt?new _T(6,"altKey",57,"metaKey"):new _T(6,"altKey",5,"ctrlKey")}class RP extends ne{constructor(e,t){var i;super(),this._onMouseMoveOrRelevantKeyDown=this._register(new X),this.onMouseMoveOrRelevantKeyDown=this._onMouseMoveOrRelevantKeyDown.event,this._onExecute=this._register(new X),this.onExecute=this._onExecute.event,this._onCancel=this._register(new X),this.onCancel=this._onCancel.event,this._editor=e,this._extractLineNumberFromMouseEvent=(i=t==null?void 0:t.extractLineNumberFromMouseEvent)!==null&&i!==void 0?i:s=>s.target.position?s.target.position.lineNumber:0,this._opts=qee(this._editor.getOption(78)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration(s=>{if(s.hasChanged(78)){const o=qee(this._editor.getOption(78));if(this._opts.equals(o))return;this._opts=o,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}})),this._register(this._editor.onMouseMove(s=>this._onEditorMouseMove(new o3(s,this._opts)))),this._register(this._editor.onMouseDown(s=>this._onEditorMouseDown(new o3(s,this._opts)))),this._register(this._editor.onMouseUp(s=>this._onEditorMouseUp(new o3(s,this._opts)))),this._register(this._editor.onKeyDown(s=>this._onEditorKeyDown(new Kee(s,this._opts)))),this._register(this._editor.onKeyUp(s=>this._onEditorKeyUp(new Kee(s,this._opts)))),this._register(this._editor.onMouseDrag(()=>this._resetHandler())),this._register(this._editor.onDidChangeCursorSelection(s=>this._onDidChangeCursorSelection(s))),this._register(this._editor.onDidChangeModel(s=>this._resetHandler())),this._register(this._editor.onDidChangeModelContent(()=>this._resetHandler())),this._register(this._editor.onDidScrollChange(s=>{(s.scrollTopChanged||s.scrollLeftChanged)&&this._resetHandler()}))}_onDidChangeCursorSelection(e){e.selection&&e.selection.startColumn!==e.selection.endColumn&&this._resetHandler()}_onEditorMouseMove(e){this._lastMouseMoveEvent=e,this._onMouseMoveOrRelevantKeyDown.fire([e,null])}_onEditorMouseDown(e){this._hasTriggerKeyOnMouseDown=e.hasTriggerModifier,this._lineNumberOnMouseDown=this._extractLineNumberFromMouseEvent(e)}_onEditorMouseUp(e){const t=this._extractLineNumberFromMouseEvent(e);this._hasTriggerKeyOnMouseDown&&this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===t&&this._onExecute.fire(e)}_onEditorKeyDown(e){this._lastMouseMoveEvent&&(e.keyCodeIsTriggerKey||e.keyCodeIsSideBySideKey&&e.hasTriggerModifier)?this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,e]):e.hasTriggerModifier&&this._onCancel.fire()}_onEditorKeyUp(e){e.keyCodeIsTriggerKey&&this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}class Afe{constructor(e,t){this.range=e,this.direction=t}}class xU{constructor(e,t,i){this.hint=e,this.anchor=t,this.provider=i,this._isResolved=!1}with(e){const t=new xU(this.hint,e.anchor,this.provider);return t._isResolved=this._isResolved,t._currentResolve=this._currentResolve,t}async resolve(e){if(typeof this.provider.resolveInlayHint=="function"){if(this._currentResolve)return await this._currentResolve,e.isCancellationRequested?void 0:this.resolve(e);this._isResolved||(this._currentResolve=this._doResolve(e).finally(()=>this._currentResolve=void 0)),await this._currentResolve}}async _doResolve(e){var t,i,s;try{const o=await Promise.resolve(this.provider.resolveInlayHint(this.hint,e));this.hint.tooltip=(t=o==null?void 0:o.tooltip)!==null&&t!==void 0?t:this.hint.tooltip,this.hint.label=(i=o==null?void 0:o.label)!==null&&i!==void 0?i:this.hint.label,this.hint.textEdits=(s=o==null?void 0:o.textEdits)!==null&&s!==void 0?s:this.hint.textEdits,this._isResolved=!0}catch(o){as(o),this._isResolved=!1}}}class Xv{static async create(e,t,i,s){const o=[],r=e.ordered(t).reverse().map(a=>i.map(async l=>{try{const c=await a.provideInlayHints(t,l,s);(c!=null&&c.hints.length||a.onDidChangeInlayHints)&&o.push([c??Xv._emptyInlayHintList,a])}catch(c){as(c)}}));if(await Promise.all(r.flat()),s.isCancellationRequested||t.isDisposed())throw new nu;return new Xv(i,o,t)}constructor(e,t,i){this._disposables=new be,this.ranges=e,this.provider=new Set;const s=[];for(const[o,r]of t){this._disposables.add(o),this.provider.add(r);for(const a of o.hints){const l=i.validatePosition(a.position);let c="before";const d=Xv._getRangeAtPosition(i,l);let u;d.getStartPosition().isBefore(l)?(u=A.fromPositions(d.getStartPosition(),l),c="after"):(u=A.fromPositions(l,d.getEndPosition()),c="before"),s.push(new xU(a,new Afe(u,c),r))}}this.items=s.sort((o,r)=>ee.compare(o.hint.position,r.hint.position))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(e,t){const i=t.lineNumber,s=e.getWordAtPosition(t);if(s)return new A(i,s.startColumn,i,s.endColumn);e.tokenization.tokenizeIfCheap(i);const o=e.tokenization.getLineTokens(i),r=t.column-1,a=o.findTokenIndexAtOffset(r);let l=o.getStartOffset(a),c=o.getEndOffset(a);return c-l===1&&(l===r&&a>1?(l=o.getStartOffset(a-1),c=o.getEndOffset(a-1)):c===r&&a=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},pf=function(n,e){return function(t,i){e(t,i,n)}};let Ym=class extends jC{constructor(e,t,i,s,o,r,a,l,c,d,u,h,f){super(e,{...s.getRawOptions(),overflowWidgetsDomNode:s.getOverflowWidgetsDomNode()},i,o,r,a,l,c,d,u,h,f),this._parentEditor=s,this._overwriteOptions=t,super.updateOptions(this._overwriteOptions),this._register(s.onDidChangeConfiguration(g=>this._onParentConfigurationChanged(g)))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(e){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(e){tM(this._overwriteOptions,e,!0),super.updateOptions(this._overwriteOptions)}};Ym=MYe([pf(4,ht),pf(5,vi),pf(6,Sn),pf(7,Ct),pf(8,js),pf(9,ps),pf(10,Ha),pf(11,gn),pf(12,Xe)],Ym);const Gee=new le(new ci(0,122,204)),PYe={showArrow:!0,showFrame:!0,className:"",frameColor:Gee,arrowColor:Gee,keepEditorSelection:!1},OYe="vs.editor.contrib.zoneWidget";class FYe{constructor(e,t,i,s,o,r,a,l){this.id="",this.domNode=e,this.afterLineNumber=t,this.afterColumn=i,this.heightInLines=s,this.showInHiddenAreas=a,this.ordinal=l,this._onDomNodeTop=o,this._onComputedHeight=r}onDomNodeTop(e){this._onDomNodeTop(e)}onComputedHeight(e){this._onComputedHeight(e)}}class BYe{constructor(e,t){this._id=e,this._domNode=t}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}}class MP{constructor(e){this._editor=e,this._ruleName=MP._IdGenerator.nextId(),this._decorations=this._editor.createDecorationsCollection(),this._color=null,this._height=-1}dispose(){this.hide(),rB(this._ruleName)}set color(e){this._color!==e&&(this._color=e,this._updateStyle())}set height(e){this._height!==e&&(this._height=e,this._updateStyle())}_updateStyle(){rB(this._ruleName),H2(`.monaco-editor ${this._ruleName}`,`border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px !important; margin-left: -${this._height}px; `)}show(e){e.column===1&&(e={lineNumber:e.lineNumber,column:2}),this._decorations.set([{range:A.fromPositions(e),options:{description:"zone-widget-arrow",className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}}MP._IdGenerator=new v$(".arrow-decoration-");class WYe{constructor(e,t={}){this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._viewZone=null,this._disposables=new be,this.container=null,this._isShowing=!1,this.editor=e,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=Tf(t),tM(this.options,PYe,!1),this.domNode=document.createElement("div"),this.options.isAccessible||(this.domNode.setAttribute("aria-hidden","true"),this.domNode.setAttribute("role","presentation")),this._disposables.add(this.editor.onDidLayoutChange(i=>{const s=this._getWidth(i);this.domNode.style.width=s+"px",this.domNode.style.left=this._getLeft(i)+"px",this._onWidth(s)}))}dispose(){this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._viewZone&&this.editor.changeViewZones(e=>{this._viewZone&&e.removeZone(this._viewZone.id),this._viewZone=null}),this._positionMarkerId.clear(),this._disposables.dispose()}create(){this.domNode.classList.add("zone-widget"),this.options.className&&this.domNode.classList.add(this.options.className),this.container=document.createElement("div"),this.container.classList.add("zone-widget-container"),this.domNode.appendChild(this.container),this.options.showArrow&&(this._arrow=new MP(this.editor),this._disposables.add(this._arrow)),this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(e){e.frameColor&&(this.options.frameColor=e.frameColor),e.arrowColor&&(this.options.arrowColor=e.arrowColor),this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){const e=this.options.frameColor.toString();this.container.style.borderTopColor=e,this.container.style.borderBottomColor=e}if(this._arrow&&this.options.arrowColor){const e=this.options.arrowColor.toString();this._arrow.color=e}}_getWidth(e){return e.width-e.minimap.minimapWidth-e.verticalScrollbarWidth}_getLeft(e){return e.minimap.minimapWidth>0&&e.minimap.minimapLeft===0?e.minimap.minimapWidth:0}_onViewZoneTop(e){this.domNode.style.top=e+"px"}_onViewZoneHeight(e){var t;if(this.domNode.style.height=`${e}px`,this.container){const i=e-this._decoratingElementsHeight();this.container.style.height=`${i}px`;const s=this.editor.getLayoutInfo();this._doLayout(i,this._getWidth(s))}(t=this._resizeSash)===null||t===void 0||t.layout()}get position(){const e=this._positionMarkerId.getRange(0);if(e)return e.getStartPosition()}show(e,t){const i=A.isIRange(e)?A.lift(e):A.fromPositions(e);this._isShowing=!0,this._showImpl(i,t),this._isShowing=!1,this._positionMarkerId.set([{range:i,options:Wt.EMPTY}])}hide(){var e;this._viewZone&&(this.editor.changeViewZones(t=>{this._viewZone&&t.removeZone(this._viewZone.id)}),this._viewZone=null),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),(e=this._arrow)===null||e===void 0||e.hide(),this._positionMarkerId.clear()}_decoratingElementsHeight(){const e=this.editor.getOption(67);let t=0;if(this.options.showArrow){const i=Math.round(e/3);t+=2*i}if(this.options.showFrame){const i=Math.round(e/9);t+=2*i}return t}_showImpl(e,t){const i=e.getStartPosition(),s=this.editor.getLayoutInfo(),o=this._getWidth(s);this.domNode.style.width=`${o}px`,this.domNode.style.left=this._getLeft(s)+"px";const r=document.createElement("div");r.style.overflow="hidden";const a=this.editor.getOption(67);if(!this.options.allowUnlimitedHeight){const h=Math.max(12,this.editor.getLayoutInfo().height/a*.8);t=Math.min(t,h)}let l=0,c=0;if(this._arrow&&this.options.showArrow&&(l=Math.round(a/3),this._arrow.height=l,this._arrow.show(i)),this.options.showFrame&&(c=Math.round(a/9)),this.editor.changeViewZones(h=>{this._viewZone&&h.removeZone(this._viewZone.id),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this.domNode.style.top="-1000px",this._viewZone=new FYe(r,i.lineNumber,i.column,t,f=>this._onViewZoneTop(f),f=>this._onViewZoneHeight(f),this.options.showInHiddenAreas,this.options.ordinal),this._viewZone.id=h.addZone(this._viewZone),this._overlayWidget=new BYe(OYe+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)}),this.container&&this.options.showFrame){const h=this.options.frameWidth?this.options.frameWidth:c;this.container.style.borderTopWidth=h+"px",this.container.style.borderBottomWidth=h+"px"}const d=t*a-this._decoratingElementsHeight();this.container&&(this.container.style.top=l+"px",this.container.style.height=d+"px",this.container.style.overflow="hidden"),this._doLayout(d,o),this.options.keepEditorSelection||this.editor.setSelection(e);const u=this.editor.getModel();if(u){const h=u.validateRange(new A(e.startLineNumber,1,e.endLineNumber+1,1));this.revealRange(h,h.startLineNumber===u.getLineCount())}}revealRange(e,t){t?this.editor.revealLineNearTop(e.endLineNumber,0):this.editor.revealRange(e,0)}setCssClass(e,t){this.container&&(t&&this.container.classList.remove(t),this.container.classList.add(e))}_onWidth(e){}_doLayout(e,t){}_relayout(e){this._viewZone&&this._viewZone.heightInLines!==e&&this.editor.changeViewZones(t=>{this._viewZone&&(this._viewZone.heightInLines=e,t.layoutZone(this._viewZone.id))})}_initSash(){if(this._resizeSash)return;this._resizeSash=this._disposables.add(new Vo(this.domNode,this,{orientation:1})),this.options.isResizeable||(this._resizeSash.state=0);let e;this._disposables.add(this._resizeSash.onDidStart(t=>{this._viewZone&&(e={startY:t.startY,heightInLines:this._viewZone.heightInLines})})),this._disposables.add(this._resizeSash.onDidEnd(()=>{e=void 0})),this._disposables.add(this._resizeSash.onDidChange(t=>{if(e){const i=(t.currentY-e.startY)/this.editor.getOption(67),s=i<0?Math.ceil(i):Math.floor(i),o=e.heightInLines+s;o>5&&o<35&&this._relayout(o)}}))}getHorizontalSashLeft(){return 0}getHorizontalSashTop(){return(this.domNode.style.height===null?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2}getHorizontalSashWidth(){const e=this.editor.getLayoutInfo();return e.width-e.minimap.minimapWidth}}var Rfe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Mfe=function(n,e){return function(t,i){e(t,i,n)}};const Pfe=Jt("IPeekViewService");ai(Pfe,class{constructor(){this._widgets=new Map}addExclusiveWidget(n,e){const t=this._widgets.get(n);t&&(t.listener.dispose(),t.widget.dispose());const i=()=>{const s=this._widgets.get(n);s&&s.widget===e&&(s.listener.dispose(),this._widgets.delete(n))};this._widgets.set(n,{widget:e,listener:e.onDidClose(i)})}},1);var da;(function(n){n.inPeekEditor=new He("inReferenceSearchEditor",!0,v("inReferenceSearchEditor","Whether the current code editor is embedded inside peek")),n.notInPeekEditor=n.inPeekEditor.toNegated()})(da||(da={}));let pk=class{constructor(e,t){e instanceof Ym&&da.inPeekEditor.bindTo(t)}dispose(){}};pk.ID="editor.contrib.referenceController";pk=Rfe([Mfe(1,Ct)],pk);bi(pk.ID,pk,0);function HYe(n){const e=n.get(vi).getFocusedCodeEditor();return e instanceof Ym?e.getParentEditor():e}const VYe={headerBackgroundColor:le.white,primaryHeadingColor:le.fromHex("#333333"),secondaryHeadingColor:le.fromHex("#6c6c6cb3")};let hR=class extends WYe{constructor(e,t,i){super(e,t),this.instantiationService=i,this._onDidClose=new X,this.onDidClose=this._onDidClose.event,tM(this.options,VYe,!1)}dispose(){this.disposed||(this.disposed=!0,super.dispose(),this._onDidClose.fire(this))}style(e){const t=this.options;e.headerBackgroundColor&&(t.headerBackgroundColor=e.headerBackgroundColor),e.primaryHeadingColor&&(t.primaryHeadingColor=e.primaryHeadingColor),e.secondaryHeadingColor&&(t.secondaryHeadingColor=e.secondaryHeadingColor),super.style(e)}_applyStyles(){super._applyStyles();const e=this.options;this._headElement&&e.headerBackgroundColor&&(this._headElement.style.backgroundColor=e.headerBackgroundColor.toString()),this._primaryHeading&&e.primaryHeadingColor&&(this._primaryHeading.style.color=e.primaryHeadingColor.toString()),this._secondaryHeading&&e.secondaryHeadingColor&&(this._secondaryHeading.style.color=e.secondaryHeadingColor.toString()),this._bodyElement&&e.frameColor&&(this._bodyElement.style.borderColor=e.frameColor.toString())}_fillContainer(e){this.setCssClass("peekview-widget"),this._headElement=ke(".head"),this._bodyElement=ke(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),e.appendChild(this._headElement),e.appendChild(this._bodyElement)}_fillHead(e,t){this._titleElement=ke(".peekview-title"),this.options.supportOnTitleClick&&(this._titleElement.classList.add("clickable"),rs(this._titleElement,"click",o=>this._onTitleClick(o))),we(this._headElement,this._titleElement),this._fillTitleIcon(this._titleElement),this._primaryHeading=ke("span.filename"),this._secondaryHeading=ke("span.dirname"),this._metaHeading=ke("span.meta"),we(this._titleElement,this._primaryHeading,this._secondaryHeading,this._metaHeading);const i=ke(".peekview-actions");we(this._headElement,i);const s=this._getActionBarOptions();this._actionbarWidget=new hc(i,s),this._disposables.add(this._actionbarWidget),t||this._actionbarWidget.push(new Ta("peekview.close",v("label.close","Close"),_t.asClassName(Te.close),!0,()=>(this.dispose(),Promise.resolve())),{label:!1,icon:!0})}_fillTitleIcon(e){}_getActionBarOptions(){return{actionViewItemProvider:Kde.bind(void 0,this.instantiationService),orientation:0}}_onTitleClick(e){}setTitle(e,t){this._primaryHeading&&this._secondaryHeading&&(this._primaryHeading.innerText=e,this._primaryHeading.setAttribute("title",e),t?this._secondaryHeading.innerText=t:wo(this._secondaryHeading))}setMetaTitle(e){this._metaHeading&&(e?(this._metaHeading.innerText=e,ka(this._metaHeading)):Lr(this._metaHeading))}_doLayout(e,t){if(!this._isShowing&&e<0){this.dispose();return}const i=Math.ceil(this.editor.getOption(67)*1.2),s=Math.round(e-(i+2));this._doLayoutHead(i,t),this._doLayoutBody(s,t)}_doLayoutHead(e,t){this._headElement&&(this._headElement.style.height=`${e}px`,this._headElement.style.lineHeight=this._headElement.style.height)}_doLayoutBody(e,t){this._bodyElement&&(this._bodyElement.style.height=`${e}px`)}};hR=Rfe([Mfe(2,ht)],hR);const zYe=V("peekViewTitle.background",{dark:"#252526",light:"#F3F3F3",hcDark:le.black,hcLight:le.white},v("peekViewTitleBackground","Background color of the peek view title area.")),Ofe=V("peekViewTitleLabel.foreground",{dark:le.white,light:le.black,hcDark:le.white,hcLight:Ql},v("peekViewTitleForeground","Color of the peek view title.")),Ffe=V("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161",hcDark:"#FFFFFF99",hcLight:"#292929"},v("peekViewTitleInfoForeground","Color of the peek view title info.")),$Ye=V("peekView.border",{dark:sa,light:sa,hcDark:ti,hcLight:ti},v("peekViewBorder","Color of the peek view borders and arrow.")),UYe=V("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hcDark:le.black,hcLight:le.white},v("peekViewResultsBackground","Background color of the peek view result list."));V("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hcDark:le.white,hcLight:Ql},v("peekViewResultsMatchForeground","Foreground color for line nodes in the peek view result list."));V("peekViewResult.fileForeground",{dark:le.white,light:"#1E1E1E",hcDark:le.white,hcLight:Ql},v("peekViewResultsFileForeground","Foreground color for file nodes in the peek view result list."));V("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hcDark:null,hcLight:null},v("peekViewResultsSelectionBackground","Background color of the selected entry in the peek view result list."));V("peekViewResult.selectionForeground",{dark:le.white,light:"#6C6C6C",hcDark:le.white,hcLight:Ql},v("peekViewResultsSelectionForeground","Foreground color of the selected entry in the peek view result list."));const tm=V("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hcDark:le.black,hcLight:le.white},v("peekViewEditorBackground","Background color of the peek view editor."));V("peekViewEditorGutter.background",{dark:tm,light:tm,hcDark:tm,hcLight:tm},v("peekViewEditorGutterBackground","Background color of the gutter in the peek view editor."));V("peekViewEditorStickyScroll.background",{dark:tm,light:tm,hcDark:tm,hcLight:tm},v("peekViewEditorStickScrollBackground","Background color of sticky scroll in the peek view editor."));V("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hcDark:null,hcLight:null},v("peekViewResultsMatchHighlight","Match highlight color in the peek view result list."));V("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hcDark:null,hcLight:null},v("peekViewEditorMatchHighlight","Match highlight color in the peek view editor."));V("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hcDark:En,hcLight:En},v("peekViewEditorMatchHighlightBorder","Match highlight border in the peek view editor."));class Xm{constructor(e,t,i,s){this.isProviderFirst=e,this.parent=t,this.link=i,this._rangeCallback=s,this.id=h9.nextId()}get uri(){return this.link.uri}get range(){var e,t;return(t=(e=this._range)!==null&&e!==void 0?e:this.link.targetSelectionRange)!==null&&t!==void 0?t:this.link.range}set range(e){this._range=e,this._rangeCallback(this)}get ariaMessage(){var e;const t=(e=this.parent.getPreview(this))===null||e===void 0?void 0:e.preview(this.range);return t?v({},"{0} in {1} on line {2} at column {3}",t.value,dc(this.uri),this.range.startLineNumber,this.range.startColumn):v("aria.oneReference","in {0} on line {1} at column {2}",dc(this.uri),this.range.startLineNumber,this.range.startColumn)}}class jYe{constructor(e){this._modelReference=e}dispose(){this._modelReference.dispose()}preview(e,t=8){const i=this._modelReference.object.textEditorModel;if(!i)return;const{startLineNumber:s,startColumn:o,endLineNumber:r,endColumn:a}=e,l=i.getWordUntilPosition({lineNumber:s,column:o-t}),c=new A(s,l.startColumn,s,o),d=new A(r,a,r,1073741824),u=i.getValueInRange(c).replace(/^\s+/,""),h=i.getValueInRange(e),f=i.getValueInRange(d).replace(/\s+$/,"");return{value:u+h+f,highlight:{start:u.length,end:u.length+h.length}}}}class mk{constructor(e,t){this.parent=e,this.uri=t,this.children=[],this._previews=new hs}dispose(){tn(this._previews.values()),this._previews.clear()}getPreview(e){return this._previews.get(e.uri)}get ariaMessage(){const e=this.children.length;return e===1?v("aria.fileReferences.1","1 symbol in {0}, full path {1}",dc(this.uri),this.uri.fsPath):v("aria.fileReferences.N","{0} symbols in {1}, full path {2}",e,dc(this.uri),this.uri.fsPath)}async resolve(e){if(this._previews.size!==0)return this;for(const t of this.children)if(!this._previews.has(t.uri))try{const i=await e.createModelReference(t.uri);this._previews.set(t.uri,new jYe(i))}catch(i){Mt(i)}return this}}class Aa{constructor(e,t){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new X,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=e,this._title=t;const[i]=e;e.sort(Aa._compareReferences);let s;for(const o of e)if((!s||!Tn.isEqual(s.uri,o.uri,!0))&&(s=new mk(this,o.uri),this.groups.push(s)),s.children.length===0||Aa._compareReferences(o,s.children[s.children.length-1])!==0){const r=new Xm(i===o,s,o,a=>this._onDidChangeReferenceRange.fire(a));this.references.push(r),s.children.push(r)}}dispose(){tn(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new Aa(this._links,this._title)}get title(){return this._title}get isEmpty(){return this.groups.length===0}get ariaMessage(){return this.isEmpty?v("aria.result.0","No results found"):this.references.length===1?v("aria.result.1","Found 1 symbol in {0}",this.references[0].uri.fsPath):this.groups.length===1?v("aria.result.n1","Found {0} symbols in {1}",this.references.length,this.groups[0].uri.fsPath):v("aria.result.nm","Found {0} symbols in {1} files",this.references.length,this.groups.length)}nextOrPreviousReference(e,t){const{parent:i}=e;let s=i.children.indexOf(e);const o=i.children.length,r=i.parent.groups.length;return r===1||t&&s+10?(t?s=(s+1)%o:s=(s+o-1)%o,i.children[s]):(s=i.parent.groups.indexOf(i),t?(s=(s+1)%r,i.parent.groups[s].children[0]):(s=(s+r-1)%r,i.parent.groups[s].children[i.parent.groups[s].children.length-1]))}nearestReference(e,t){const i=this.references.map((s,o)=>({idx:o,prefixLen:Rm(s.uri.toString(),e.toString()),offsetDist:Math.abs(s.range.startLineNumber-t.lineNumber)*100+Math.abs(s.range.startColumn-t.column)})).sort((s,o)=>s.prefixLen>o.prefixLen?-1:s.prefixLeno.offsetDist?1:0)[0];if(i)return this.references[i.idx]}referenceAt(e,t){for(const i of this.references)if(i.uri.toString()===e.toString()&&A.containsPosition(i.range,t))return i}firstReference(){for(const e of this.references)if(e.isProviderFirst)return e;return this.references[0]}static _compareReferences(e,t){return Tn.compare(e.uri,t.uri)||A.compareRangesUsingStarts(e.range,t.range)}}var PP=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},OP=function(n,e){return function(t,i){e(t,i,n)}},J6;let eW=class{constructor(e){this._resolverService=e}hasChildren(e){return e instanceof Aa||e instanceof mk}getChildren(e){if(e instanceof Aa)return e.groups;if(e instanceof mk)return e.resolve(this._resolverService).then(t=>t.children);throw new Error("bad tree")}};eW=PP([OP(0,fa)],eW);class KYe{getHeight(){return 23}getTemplateId(e){return e instanceof mk?_k.id:qD.id}}let tW=class{constructor(e){this._keybindingService=e}getKeyboardNavigationLabel(e){var t;if(e instanceof Xm){const i=(t=e.parent.getPreview(e))===null||t===void 0?void 0:t.preview(e.range);if(i)return i.value}return dc(e.uri)}};tW=PP([OP(0,Li)],tW);class qYe{getId(e){return e instanceof Xm?e.id:e.uri}}let iW=class extends ne{constructor(e,t){super(),this._labelService=t;const i=document.createElement("div");i.classList.add("reference-file"),this.file=this._register(new zA(i,{supportHighlights:!0})),this.badge=new j9(we(i,ke(".count")),{},Ude),e.appendChild(i)}set(e,t){const i=VM(e.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(e.uri),this._labelService.getUriLabel(i,{relative:!0}),{title:this._labelService.getUriLabel(e.uri),matches:t});const s=e.children.length;this.badge.setCount(s),s>1?this.badge.setTitleFormat(v("referencesCount","{0} references",s)):this.badge.setTitleFormat(v("referenceCount","{0} reference",s))}};iW=PP([OP(1,ZC)],iW);let _k=J6=class{constructor(e){this._instantiationService=e,this.templateId=J6.id}renderTemplate(e){return this._instantiationService.createInstance(iW,e)}renderElement(e,t,i){i.set(e.element,ID(e.filterData))}disposeTemplate(e){e.dispose()}};_k.id="FileReferencesRenderer";_k=J6=PP([OP(0,ht)],_k);class GYe extends ne{constructor(e){super(),this.label=this._register(new _m(e))}set(e,t){var i;const s=(i=e.parent.getPreview(e))===null||i===void 0?void 0:i.preview(e.range);if(!s||!s.value)this.label.set(`${dc(e.uri)}:${e.range.startLineNumber+1}:${e.range.startColumn+1}`);else{const{value:o,highlight:r}=s;t&&!Yd.isDefault(t)?(this.label.element.classList.toggle("referenceMatch",!1),this.label.set(o,ID(t))):(this.label.element.classList.toggle("referenceMatch",!0),this.label.set(o,[r]))}}}class qD{constructor(){this.templateId=qD.id}renderTemplate(e){return new GYe(e)}renderElement(e,t,i){i.set(e.element,e.filterData)}disposeTemplate(e){e.dispose()}}qD.id="OneReferenceRenderer";class ZYe{getWidgetAriaLabel(){return v("treeAriaLabel","References")}getAriaLabel(e){return e.ariaMessage}}var YYe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},mf=function(n,e){return function(t,i){e(t,i,n)}};class FP{constructor(e,t){this._editor=e,this._model=t,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new be,this._callOnModelChange=new be,this._callOnDispose.add(this._editor.onDidChangeModel(()=>this._onModelChanged())),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();const e=this._editor.getModel();if(e){for(const t of this._model.references)if(t.uri.toString()===e.uri.toString()){this._addDecorations(t.parent);return}}}_addDecorations(e){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(()=>this._onDecorationChanged()));const t=[],i=[];for(let s=0,o=e.children.length;s{const o=s.deltaDecorations([],t);for(let r=0;r{o.equals(9)&&(this._keybindingService.dispatchEvent(o,o.target),o.stopPropagation())},!0)),this._tree=this._instantiationService.createInstance(QYe,"ReferencesWidget",this._treeContainer,new KYe,[this._instantiationService.createInstance(_k),this._instantiationService.createInstance(qD)],this._instantiationService.createInstance(eW),i),this._splitView.addView({onDidChange:Ae.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:o=>{this._preview.layout({height:this._dim.height,width:o})}},OA.Distribute),this._splitView.addView({onDidChange:Ae.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:o=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${o}px`,this._tree.layout(this._dim.height,o)}},OA.Distribute),this._disposables.add(this._splitView.onDidSashChange(()=>{this._dim.width&&(this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width)},void 0));const s=(o,r)=>{o instanceof Xm&&(r==="show"&&this._revealReference(o,!1),this._onDidSelectReference.fire({element:o,kind:r,source:"tree"}))};this._tree.onDidOpen(o=>{o.sideBySide?s(o.element,"side"):o.editorOptions.pinned?s(o.element,"goto"):s(o.element,"show")}),Lr(this._treeContainer)}_onWidth(e){this._dim&&this._doLayoutBody(this._dim.height,e)}_doLayoutBody(e,t){super._doLayoutBody(e,t),this._dim=new yi(t,e),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(t),this._splitView.resizeView(0,t*this.layoutData.ratio)}setSelection(e){return this._revealReference(e,!0).then(()=>{this._model&&(this._tree.setSelection([e]),this._tree.setFocus([e]))})}setModel(e){return this._disposeOnNewModel.clear(),this._model=e,this._model?this._onNewModel():Promise.resolve()}_onNewModel(){return this._model?this._model.isEmpty?(this.setTitle(""),this._messageContainer.innerText=v("noResults","No results"),ka(this._messageContainer),Promise.resolve(void 0)):(Lr(this._messageContainer),this._decorationsManager=new FP(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange(e=>this._tree.rerender(e))),this._disposeOnNewModel.add(this._preview.onMouseDown(e=>{const{event:t,target:i}=e;if(t.detail!==2)return;const s=this._getFocusedReference();s&&this._onDidSelectReference.fire({element:{uri:s.uri,range:i.range},kind:t.ctrlKey||t.metaKey||t.altKey?"side":"open",source:"editor"})})),this.container.classList.add("results-loaded"),ka(this._treeContainer),ka(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(this._model.groups.length===1?this._model.groups[0]:this._model)):Promise.resolve(void 0)}_getFocusedReference(){const[e]=this._tree.getFocus();if(e instanceof Xm)return e;if(e instanceof mk&&e.children.length>0)return e.children[0]}async revealReference(e){await this._revealReference(e,!1),this._onDidSelectReference.fire({element:e,kind:"goto",source:"tree"})}async _revealReference(e,t){if(this._revealedReference===e)return;this._revealedReference=e,e.uri.scheme!==Tt.inMemory?this.setTitle(aBe(e.uri),this._uriLabel.getUriLabel(VM(e.uri))):this.setTitle(v("peekView.alternateTitle","References"));const i=this._textModelResolverService.createModelReference(e.uri);this._tree.getInput()===e.parent?this._tree.reveal(e):(t&&this._tree.reveal(e.parent),await this._tree.expand(e.parent),this._tree.reveal(e));const s=await i;if(!this._model){s.dispose();return}tn(this._previewModelReference);const o=s.object;if(o){const r=this._preview.getModel()===o.textEditorModel?0:1,a=A.lift(e.range).collapseToStart();this._previewModelReference=s,this._preview.setModel(o.textEditorModel),this._preview.setSelection(a),this._preview.revealRangeInCenter(a,r)}else this._preview.setModel(this._previewNotAvailableMessage),s.dispose()}};nW=YYe([mf(3,js),mf(4,fa),mf(5,ht),mf(6,Pfe),mf(7,ZC),mf(8,zM),mf(9,Li),mf(10,An),mf(11,gn)],nW);var JYe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},$b=function(n,e){return function(t,i){e(t,i,n)}},BN;const ab=new He("referenceSearchVisible",!1,v("referenceSearchVisible","Whether reference peek is visible, like 'Peek References' or 'Peek Definition'"));let Qm=BN=class{static get(e){return e.getContribution(BN.ID)}constructor(e,t,i,s,o,r,a,l){this._defaultTreeKeyboardSupport=e,this._editor=t,this._editorService=s,this._notificationService=o,this._instantiationService=r,this._storageService=a,this._configurationService=l,this._disposables=new be,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=ab.bindTo(i)}dispose(){var e,t;this._referenceSearchVisible.reset(),this._disposables.dispose(),(e=this._widget)===null||e===void 0||e.dispose(),(t=this._model)===null||t===void 0||t.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(e,t,i){let s;if(this._widget&&(s=this._widget.position),this.closeWidget(),s&&e.containsPosition(s))return;this._peekMode=i,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>{this.closeWidget()})),this._disposables.add(this._editor.onDidChangeModel(()=>{this._ignoreModelChangeEvent||this.closeWidget()}));const o="peekViewLayout",r=XYe.fromJSON(this._storageService.get(o,0,"{}"));this._widget=this._instantiationService.createInstance(nW,this._editor,this._defaultTreeKeyboardSupport,r),this._widget.setTitle(v("labelLoading","Loading...")),this._widget.show(e),this._disposables.add(this._widget.onDidClose(()=>{t.cancel(),this._widget&&(this._storageService.store(o,JSON.stringify(this._widget.layoutData),0,1),this._widget=void 0),this.closeWidget()})),this._disposables.add(this._widget.onDidSelectReference(l=>{const{element:c,kind:d}=l;if(c)switch(d){case"open":(l.source!=="editor"||!this._configurationService.getValue("editor.stablePeek"))&&this.openReference(c,!1,!1);break;case"side":this.openReference(c,!0,!1);break;case"goto":i?this._gotoReference(c,!0):this.openReference(c,!1,!0);break}}));const a=++this._requestIdPool;t.then(l=>{var c;if(a!==this._requestIdPool||!this._widget){l.dispose();return}return(c=this._model)===null||c===void 0||c.dispose(),this._model=l,this._widget.setModel(this._model).then(()=>{if(this._widget&&this._model&&this._editor.hasModel()){this._model.isEmpty?this._widget.setMetaTitle(""):this._widget.setMetaTitle(v("metaTitle.N","{0} ({1})",this._model.title,this._model.references.length));const d=this._editor.getModel().uri,u=new ee(e.startLineNumber,e.startColumn),h=this._model.nearestReference(d,u);if(h)return this._widget.setSelection(h).then(()=>{this._widget&&this._editor.getOption(87)==="editor"&&this._widget.focusOnPreviewEditor()})}})},l=>{this._notificationService.error(l)})}changeFocusBetweenPreviewAndReferences(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())}async goToNextOrPreviousReference(e){if(!this._editor.hasModel()||!this._model||!this._widget)return;const t=this._widget.position;if(!t)return;const i=this._model.nearestReference(this._editor.getModel().uri,t);if(!i)return;const s=this._model.nextOrPreviousReference(i,e),o=this._editor.hasTextFocus(),r=this._widget.isPreviewEditorFocused();await this._widget.setSelection(s),await this._gotoReference(s,!1),o?this._editor.focus():this._widget&&r&&this._widget.focusOnPreviewEditor()}async revealReference(e){!this._editor.hasModel()||!this._model||!this._widget||await this._widget.revealReference(e)}closeWidget(e=!0){var t,i;(t=this._widget)===null||t===void 0||t.dispose(),(i=this._model)===null||i===void 0||i.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,e&&this._editor.focus(),this._requestIdPool+=1}_gotoReference(e,t){var i;(i=this._widget)===null||i===void 0||i.hide(),this._ignoreModelChangeEvent=!0;const s=A.lift(e.range).collapseToStart();return this._editorService.openCodeEditor({resource:e.uri,options:{selection:s,selectionSource:"code.jump",pinned:t}},this._editor).then(o=>{var r;if(this._ignoreModelChangeEvent=!1,!o||!this._widget){this.closeWidget();return}if(this._editor===o)this._widget.show(s),this._widget.focusOnReferenceTree();else{const a=BN.get(o),l=this._model.clone();this.closeWidget(),o.focus(),a==null||a.toggleWidget(s,Xs(c=>Promise.resolve(l)),(r=this._peekMode)!==null&&r!==void 0?r:!1)}},o=>{this._ignoreModelChangeEvent=!1,Mt(o)})}openReference(e,t,i){t||this.closeWidget();const{uri:s,range:o}=e;this._editorService.openCodeEditor({resource:s,options:{selection:o,selectionSource:"code.jump",pinned:i}},this._editor,t)}};Qm.ID="editor.contrib.referencesController";Qm=BN=JYe([$b(2,Ct),$b(3,vi),$b(4,ps),$b(5,ht),$b(6,dd),$b(7,qt)],Qm);function lb(n,e){const t=HYe(n);if(!t)return;const i=Qm.get(t);i&&e(i)}Hr.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:Os(2089,60),when:pe.or(ab,da.inPeekEditor),handler(n){lb(n,e=>{e.changeFocusBetweenPreviewAndReferences()})}});Hr.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:pe.or(ab,da.inPeekEditor),handler(n){lb(n,e=>{e.goToNextOrPreviousReference(!0)})}});Hr.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:pe.or(ab,da.inPeekEditor),handler(n){lb(n,e=>{e.goToNextOrPreviousReference(!1)})}});ri.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference");ri.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference");ri.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch");ri.registerCommand("closeReferenceSearch",n=>lb(n,e=>e.closeWidget()));Hr.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:pe.and(da.inPeekEditor,pe.not("config.editor.stablePeek"))});Hr.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:pe.and(ab,pe.not("config.editor.stablePeek"),pe.or(W.editorTextFocus,gue.negate()))});Hr.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:pe.and(ab,_ue,B$.negate(),W$.negate()),handler(n){var e;const i=(e=n.get(wc).lastFocusedList)===null||e===void 0?void 0:e.getFocus();Array.isArray(i)&&i[0]instanceof Xm&&lb(n,s=>s.revealReference(i[0]))}});Hr.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:pe.and(ab,_ue,B$.negate(),W$.negate()),handler(n){var e;const i=(e=n.get(wc).lastFocusedList)===null||e===void 0?void 0:e.getFocus();Array.isArray(i)&&i[0]instanceof Xm&&lb(n,s=>s.openReference(i[0],!0,!0))}});ri.registerCommand("openReference",n=>{var e;const i=(e=n.get(wc).lastFocusedList)===null||e===void 0?void 0:e.getFocus();Array.isArray(i)&&i[0]instanceof Xm&&lb(n,s=>s.openReference(i[0],!1,!0))});var Bfe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},OS=function(n,e){return function(t,i){e(t,i,n)}};const LU=new He("hasSymbols",!1,v("hasSymbols","Whether there are symbol locations that can be navigated via keyboard-only.")),BP=Jt("ISymbolNavigationService");let sW=class{constructor(e,t,i,s){this._editorService=t,this._notificationService=i,this._keybindingService=s,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=LU.bindTo(e)}reset(){var e,t;this._ctxHasSymbols.reset(),(e=this._currentState)===null||e===void 0||e.dispose(),(t=this._currentMessage)===null||t===void 0||t.dispose(),this._currentModel=void 0,this._currentIdx=-1}put(e){const t=e.parent.parent;if(t.references.length<=1){this.reset();return}this._currentModel=t,this._currentIdx=t.references.indexOf(e),this._ctxHasSymbols.set(!0),this._showMessage();const i=new oW(this._editorService),s=i.onDidChange(o=>{if(this._ignoreEditorChange)return;const r=this._editorService.getActiveCodeEditor();if(!r)return;const a=r.getModel(),l=r.getPosition();if(!a||!l)return;let c=!1,d=!1;for(const u of t.references)if(Kz(u.uri,a.uri))c=!0,d=d||A.containsPosition(u.range,l);else if(c)break;(!c||!d)&&this.reset()});this._currentState=Jc(i,s)}revealNext(e){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;const t=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:t.uri,options:{selection:A.collapseToStart(t.range),selectionRevealType:3}},e).finally(()=>{this._ignoreEditorChange=!1})}_showMessage(){var e;(e=this._currentMessage)===null||e===void 0||e.dispose();const t=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),i=t?v("location.kb","Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,t.getLabel()):v("location","Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(i)}};sW=Bfe([OS(0,Ct),OS(1,vi),OS(2,ps),OS(3,Li)],sW);ai(BP,sW,1);Fe(new class extends Us{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:LU,kbOpts:{weight:100,primary:70}})}runEditorCommand(n,e){return n.get(BP).revealNext(e)}});Hr.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:LU,primary:9,handler(n){n.get(BP).reset()}});let oW=class{constructor(e){this._listener=new Map,this._disposables=new be,this._onDidChange=new X,this.onDidChange=this._onDidChange.event,this._disposables.add(e.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(e.onCodeEditorAdd(this._onDidAddEditor,this)),e.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),tn(this._listener.values())}_onDidAddEditor(e){this._listener.set(e,Jc(e.onDidChangeCursorPosition(t=>this._onDidChange.fire({editor:e})),e.onDidChangeModelContent(t=>this._onDidChange.fire({editor:e}))))}_onDidRemoveEditor(e){var t;(t=this._listener.get(e))===null||t===void 0||t.dispose(),this._listener.delete(e)}};oW=Bfe([OS(0,vi)],oW);function rW(n,e){return e.uri.scheme===n.uri.scheme?!0:!oB(e.uri,Tt.walkThroughSnippet,Tt.vscodeChatCodeBlock,Tt.vscodeChatCodeCompareBlock,Tt.vscodeCopilotBackingChatCodeBlock)}async function GD(n,e,t,i){const o=t.ordered(n).map(a=>Promise.resolve(i(a,n,e)).then(void 0,l=>{as(l)})),r=await Promise.all(o);return tu(r.flat()).filter(a=>rW(n,a))}function WP(n,e,t,i){return GD(e,t,n,(s,o,r)=>s.provideDefinition(o,r,i))}function Wfe(n,e,t,i){return GD(e,t,n,(s,o,r)=>s.provideDeclaration(o,r,i))}function Hfe(n,e,t,i){return GD(e,t,n,(s,o,r)=>s.provideImplementation(o,r,i))}function Vfe(n,e,t,i){return GD(e,t,n,(s,o,r)=>s.provideTypeDefinition(o,r,i))}function HP(n,e,t,i,s){return GD(e,t,n,async(o,r,a)=>{var l,c;const d=(l=await o.provideReferences(r,a,{includeDeclaration:!0},s))===null||l===void 0?void 0:l.filter(h=>rW(r,h));if(!i||!d||d.length!==2)return d;const u=(c=await o.provideReferences(r,a,{includeDeclaration:!1},s))===null||c===void 0?void 0:c.filter(h=>rW(r,h));return u&&u.length===1?u:d})}async function ZD(n){const e=await n(),t=new Aa(e,""),i=t.references.map(s=>s.link);return t.dispose(),i}Vh("_executeDefinitionProvider",(n,e,t)=>{const i=n.get(Xe),s=WP(i.definitionProvider,e,t,Qt.None);return ZD(()=>s)});Vh("_executeTypeDefinitionProvider",(n,e,t)=>{const i=n.get(Xe),s=Vfe(i.typeDefinitionProvider,e,t,Qt.None);return ZD(()=>s)});Vh("_executeDeclarationProvider",(n,e,t)=>{const i=n.get(Xe),s=Wfe(i.declarationProvider,e,t,Qt.None);return ZD(()=>s)});Vh("_executeReferenceProvider",(n,e,t)=>{const i=n.get(Xe),s=HP(i.referenceProvider,e,t,!1,Qt.None);return ZD(()=>s)});Vh("_executeImplementationProvider",(n,e,t)=>{const i=n.get(Xe),s=Hfe(i.implementationProvider,e,t,Qt.None);return ZD(()=>s)});var Xy,Qy,Jy,vT,bT,CT,wT,yT;ao.appendMenuItem(R.EditorContext,{submenu:R.EditorContextPeek,title:v("peek.submenu","Peek"),group:"navigation",order:100});class cw{static is(e){return!e||typeof e!="object"?!1:!!(e instanceof cw||ee.isIPosition(e.position)&&e.model)}constructor(e,t){this.model=e,this.position=t}}class ur extends mu{static all(){return ur._allSymbolNavigationCommands.values()}static _patchConfig(e){const t={...e,f1:!0};if(t.menu)for(const i of oi.wrap(t.menu))(i.id===R.EditorContext||i.id===R.EditorContextPeek)&&(i.when=pe.and(e.precondition,i.when));return t}constructor(e,t){super(ur._patchConfig(t)),this.configuration=e,ur._allSymbolNavigationCommands.set(t.id,this)}runEditorCommand(e,t,i,s){if(!t.hasModel())return Promise.resolve(void 0);const o=e.get(ps),r=e.get(vi),a=e.get(m_),l=e.get(BP),c=e.get(Xe),d=e.get(ht),u=t.getModel(),h=t.getPosition(),f=cw.is(i)?i:new cw(u,h),g=new Km(t,5),p=uD(this._getLocationModel(c,f.model,f.position,g.token),g.token).then(async _=>{var b;if(!_||g.token.isCancellationRequested)return;la(_.ariaMessage);let w;if(_.referenceAt(u.uri,h)){const S=this._getAlternativeCommand(t);!ur._activeAlternativeCommands.has(S)&&ur._allSymbolNavigationCommands.has(S)&&(w=ur._allSymbolNavigationCommands.get(S))}const y=_.references.length;if(y===0){if(!this.configuration.muteMessage){const S=u.getWordAtPosition(h);(b=Or.get(t))===null||b===void 0||b.showMessage(this._getNoResultFoundMessage(S),h)}}else if(y===1&&w)ur._activeAlternativeCommands.add(this.desc.id),d.invokeFunction(S=>w.runEditorCommand(S,t,i,s).finally(()=>{ur._activeAlternativeCommands.delete(this.desc.id)}));else return this._onResult(r,l,t,_,s)},_=>{o.error(_)}).finally(()=>{g.dispose()});return a.showWhile(p,250),p}async _onResult(e,t,i,s,o){const r=this._getGoToPreference(i);if(!(i instanceof Ym)&&(this.configuration.openInPeek||r==="peek"&&s.references.length>1))this._openInPeek(i,s,o);else{const a=s.firstReference(),l=s.references.length>1&&r==="gotoAndPeek",c=await this._openReference(i,e,a,this.configuration.openToSide,!l);l&&c?this._openInPeek(c,s,o):s.dispose(),r==="goto"&&t.put(a)}}async _openReference(e,t,i,s,o){let r;if(sRe(i)&&(r=i.targetSelectionRange),r||(r=i.range),!r)return;const a=await t.openCodeEditor({resource:i.uri,options:{selection:A.collapseToStart(r),selectionRevealType:3,selectionSource:"code.jump"}},e,s);if(a){if(o){const l=a.getModel(),c=a.createDecorationsCollection([{range:r,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{a.getModel()===l&&c.clear()},350)}return a}}_openInPeek(e,t,i){const s=Qm.get(e);s&&e.hasModel()?s.toggleWidget(i??e.getSelection(),Xs(o=>Promise.resolve(t)),this.configuration.openInPeek):t.dispose()}}ur._allSymbolNavigationCommands=new Map;ur._activeAlternativeCommands=new Set;class YD extends ur{async _getLocationModel(e,t,i,s){return new Aa(await WP(e.definitionProvider,t,i,s),v("def.title","Definitions"))}_getNoResultFoundMessage(e){return e&&e.word?v("noResultWord","No definition found for '{0}'",e.word):v("generic.noResults","No definition found")}_getAlternativeCommand(e){return e.getOption(58).alternativeDefinitionCommand}_getGoToPreference(e){return e.getOption(58).multipleDefinitions}}dn((Xy=class extends YD{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:Xy.id,title:{...Nt("actions.goToDecl.label","Go to Definition"),mnemonicTitle:v({},"Go to &&Definition")},precondition:W.hasDefinitionProvider,keybinding:[{when:W.editorTextFocus,primary:70,weight:100},{when:pe.and(W.editorTextFocus,hue),primary:2118,weight:100}],menu:[{id:R.EditorContext,group:"navigation",order:1.1},{id:R.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:2}]}),ri.registerCommandAlias("editor.action.goToDeclaration",Xy.id)}},Xy.id="editor.action.revealDefinition",Xy));dn((Qy=class extends YD{constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:Qy.id,title:Nt("actions.goToDeclToSide.label","Open Definition to the Side"),precondition:pe.and(W.hasDefinitionProvider,W.isInEmbeddedEditor.toNegated()),keybinding:[{when:W.editorTextFocus,primary:Os(2089,70),weight:100},{when:pe.and(W.editorTextFocus,hue),primary:Os(2089,2118),weight:100}]}),ri.registerCommandAlias("editor.action.openDeclarationToTheSide",Qy.id)}},Qy.id="editor.action.revealDefinitionAside",Qy));dn((Jy=class extends YD{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:Jy.id,title:Nt("actions.previewDecl.label","Peek Definition"),precondition:pe.and(W.hasDefinitionProvider,da.notInPeekEditor,W.isInEmbeddedEditor.toNegated()),keybinding:{when:W.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:R.EditorContextPeek,group:"peek",order:2}}),ri.registerCommandAlias("editor.action.previewDeclaration",Jy.id)}},Jy.id="editor.action.peekDefinition",Jy));class zfe extends ur{async _getLocationModel(e,t,i,s){return new Aa(await Wfe(e.declarationProvider,t,i,s),v("decl.title","Declarations"))}_getNoResultFoundMessage(e){return e&&e.word?v("decl.noResultWord","No declaration found for '{0}'",e.word):v("decl.generic.noResults","No declaration found")}_getAlternativeCommand(e){return e.getOption(58).alternativeDeclarationCommand}_getGoToPreference(e){return e.getOption(58).multipleDeclarations}}dn((vT=class extends zfe{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:vT.id,title:{...Nt("actions.goToDeclaration.label","Go to Declaration"),mnemonicTitle:v({},"Go to &&Declaration")},precondition:pe.and(W.hasDeclarationProvider,W.isInEmbeddedEditor.toNegated()),menu:[{id:R.EditorContext,group:"navigation",order:1.3},{id:R.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}_getNoResultFoundMessage(e){return e&&e.word?v("decl.noResultWord","No declaration found for '{0}'",e.word):v("decl.generic.noResults","No declaration found")}},vT.id="editor.action.revealDeclaration",vT));dn(class extends zfe{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:Nt("actions.peekDecl.label","Peek Declaration"),precondition:pe.and(W.hasDeclarationProvider,da.notInPeekEditor,W.isInEmbeddedEditor.toNegated()),menu:{id:R.EditorContextPeek,group:"peek",order:3}})}});class $fe extends ur{async _getLocationModel(e,t,i,s){return new Aa(await Vfe(e.typeDefinitionProvider,t,i,s),v("typedef.title","Type Definitions"))}_getNoResultFoundMessage(e){return e&&e.word?v("goToTypeDefinition.noResultWord","No type definition found for '{0}'",e.word):v("goToTypeDefinition.generic.noResults","No type definition found")}_getAlternativeCommand(e){return e.getOption(58).alternativeTypeDefinitionCommand}_getGoToPreference(e){return e.getOption(58).multipleTypeDefinitions}}dn((bT=class extends $fe{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:bT.ID,title:{...Nt("actions.goToTypeDefinition.label","Go to Type Definition"),mnemonicTitle:v({},"Go to &&Type Definition")},precondition:W.hasTypeDefinitionProvider,keybinding:{when:W.editorTextFocus,primary:0,weight:100},menu:[{id:R.EditorContext,group:"navigation",order:1.4},{id:R.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}},bT.ID="editor.action.goToTypeDefinition",bT));dn((CT=class extends $fe{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:CT.ID,title:Nt("actions.peekTypeDefinition.label","Peek Type Definition"),precondition:pe.and(W.hasTypeDefinitionProvider,da.notInPeekEditor,W.isInEmbeddedEditor.toNegated()),menu:{id:R.EditorContextPeek,group:"peek",order:4}})}},CT.ID="editor.action.peekTypeDefinition",CT));class Ufe extends ur{async _getLocationModel(e,t,i,s){return new Aa(await Hfe(e.implementationProvider,t,i,s),v("impl.title","Implementations"))}_getNoResultFoundMessage(e){return e&&e.word?v("goToImplementation.noResultWord","No implementation found for '{0}'",e.word):v("goToImplementation.generic.noResults","No implementation found")}_getAlternativeCommand(e){return e.getOption(58).alternativeImplementationCommand}_getGoToPreference(e){return e.getOption(58).multipleImplementations}}dn((wT=class extends Ufe{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:wT.ID,title:{...Nt("actions.goToImplementation.label","Go to Implementations"),mnemonicTitle:v({},"Go to &&Implementations")},precondition:W.hasImplementationProvider,keybinding:{when:W.editorTextFocus,primary:2118,weight:100},menu:[{id:R.EditorContext,group:"navigation",order:1.45},{id:R.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:4}]})}},wT.ID="editor.action.goToImplementation",wT));dn((yT=class extends Ufe{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:yT.ID,title:Nt("actions.peekImplementation.label","Peek Implementations"),precondition:pe.and(W.hasImplementationProvider,da.notInPeekEditor,W.isInEmbeddedEditor.toNegated()),keybinding:{when:W.editorTextFocus,primary:3142,weight:100},menu:{id:R.EditorContextPeek,group:"peek",order:5}})}},yT.ID="editor.action.peekImplementation",yT));class jfe extends ur{_getNoResultFoundMessage(e){return e?v("references.no","No references found for '{0}'",e.word):v("references.noGeneric","No references found")}_getAlternativeCommand(e){return e.getOption(58).alternativeReferenceCommand}_getGoToPreference(e){return e.getOption(58).multipleReferences}}dn(class extends jfe{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",title:{...Nt("goToReferences.label","Go to References"),mnemonicTitle:v({},"Go to &&References")},precondition:pe.and(W.hasReferenceProvider,da.notInPeekEditor,W.isInEmbeddedEditor.toNegated()),keybinding:{when:W.editorTextFocus,primary:1094,weight:100},menu:[{id:R.EditorContext,group:"navigation",order:1.45},{id:R.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:5}]})}async _getLocationModel(e,t,i,s){return new Aa(await HP(e.referenceProvider,t,i,!0,s),v("ref.title","References"))}});dn(class extends jfe{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:Nt("references.action.label","Peek References"),precondition:pe.and(W.hasReferenceProvider,da.notInPeekEditor,W.isInEmbeddedEditor.toNegated()),menu:{id:R.EditorContextPeek,group:"peek",order:6}})}async _getLocationModel(e,t,i,s){return new Aa(await HP(e.referenceProvider,t,i,!1,s),v("ref.title","References"))}});class eXe extends ur{constructor(e,t,i){super(e,{id:"editor.action.goToLocation",title:Nt("label.generic","Go to Any Symbol"),precondition:pe.and(da.notInPeekEditor,W.isInEmbeddedEditor.toNegated())}),this._references=t,this._gotoMultipleBehaviour=i}async _getLocationModel(e,t,i,s){return new Aa(this._references,v("generic.title","Locations"))}_getNoResultFoundMessage(e){return e&&v("generic.noResult","No results for '{0}'",e.word)||""}_getGoToPreference(e){var t;return(t=this._gotoMultipleBehaviour)!==null&&t!==void 0?t:e.getOption(58).multipleReferences}_getAlternativeCommand(){return""}}ri.registerCommand({id:"editor.action.goToLocations",metadata:{description:"Go to locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:pt},{name:"position",description:"The position at which to start",constraint:ee.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"},{name:"noResultsMessage",description:"Human readable message that shows when locations is empty."}]},handler:async(n,e,t,i,s,o,r)=>{mi(pt.isUri(e)),mi(ee.isIPosition(t)),mi(Array.isArray(i)),mi(typeof s>"u"||typeof s=="string"),mi(typeof r>"u"||typeof r=="boolean");const a=n.get(vi),l=await a.openCodeEditor({resource:e},a.getFocusedCodeEditor());if(Ph(l))return l.setPosition(t),l.revealPositionInCenterIfOutsideViewport(t,0),l.invokeWithinContext(c=>{const d=new class extends eXe{_getNoResultFoundMessage(u){return o||super._getNoResultFoundMessage(u)}}({muteMessage:!o,openInPeek:!!r,openToSide:!1},i,s);c.get(ht).invokeFunction(d.run.bind(d),l)})}});ri.registerCommand({id:"editor.action.peekLocations",metadata:{description:"Peek locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:pt},{name:"position",description:"The position at which to start",constraint:ee.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"}]},handler:async(n,e,t,i,s)=>{n.get(Sn).executeCommand("editor.action.goToLocations",e,t,i,s,void 0,!0)}});ri.registerCommand({id:"editor.action.findReferences",handler:(n,e,t)=>{mi(pt.isUri(e)),mi(ee.isIPosition(t));const i=n.get(Xe),s=n.get(vi);return s.openCodeEditor({resource:e},s.getFocusedCodeEditor()).then(o=>{if(!Ph(o)||!o.hasModel())return;const r=Qm.get(o);if(!r)return;const a=Xs(c=>HP(i.referenceProvider,o.getModel(),ee.lift(t),!1,c).then(d=>new Aa(d,v("ref.title","References")))),l=new A(t.lineNumber,t.column,t.lineNumber,t.column);return Promise.resolve(r.toggleWidget(l,a,!1))})}});ri.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations");async function tXe(n,e,t,i){var s;const o=n.get(fa),r=n.get(za),a=n.get(Sn),l=n.get(ht),c=n.get(ps);if(await i.item.resolve(Qt.None),!i.part.location)return;const d=i.part.location,u=[],h=new Set(ao.getMenuItems(R.EditorContext).map(g=>g1(g)?g.command.id:IP()));for(const g of ur.all())h.has(g.desc.id)&&u.push(new Ta(g.desc.id,Na.label(g.desc,{renderShortTitle:!0}),void 0,!0,async()=>{const p=await o.createModelReference(d.uri);try{const _=new cw(p.object.textEditorModel,A.getStartPosition(d.range)),b=i.item.anchor.range;await l.invokeFunction(g.runEditorCommand.bind(g),e,_,b)}finally{p.dispose()}}));if(i.part.command){const{command:g}=i.part;u.push(new Ms),u.push(new Ta(g.id,g.title,void 0,!0,async()=>{var p;try{await a.executeCommand(g.id,...(p=g.arguments)!==null&&p!==void 0?p:[])}catch(_){c.notify({severity:$M.Error,source:i.item.provider.displayName,message:_})}}))}const f=e.getOption(127);r.showContextMenu({domForShadowRoot:f&&(s=e.getDomNode())!==null&&s!==void 0?s:void 0,getAnchor:()=>{const g=bs(t);return{x:g.left,y:g.top+g.height+8}},getActions:()=>u,onHide:()=>{e.focus()},autoSelectFirstItem:!0})}async function Kfe(n,e,t,i){const o=await n.get(fa).createModelReference(i.uri);await t.invokeWithinContext(async r=>{const a=e.hasSideBySideModifier,l=r.get(Ct),c=da.inPeekEditor.getValue(l),d=!a&&t.getOption(88)&&!c;return new YD({openToSide:a,openInPeek:d,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(r,new cw(o.object.textEditorModel,A.getStartPosition(i.range)),A.lift(i.range))}),o.dispose()}var iXe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Ub=function(n,e){return function(t,i){e(t,i,n)}},o1;class fR{constructor(){this._entries=new zh(50)}get(e){const t=fR._key(e);return this._entries.get(t)}set(e,t){const i=fR._key(e);this._entries.set(i,t)}static _key(e){return`${e.uri.toString()}/${e.getVersionId()}`}}const qfe=Jt("IInlayHintsCache");ai(qfe,fR,1);class aW{constructor(e,t){this.item=e,this.index=t}get part(){const e=this.item.hint.label;return typeof e=="string"?{label:e}:e[this.index]}}class nXe{constructor(e,t){this.part=e,this.hasTriggerModifier=t}}let Jm=o1=class{static get(e){var t;return(t=e.getContribution(o1.ID))!==null&&t!==void 0?t:void 0}constructor(e,t,i,s,o,r,a){this._editor=e,this._languageFeaturesService=t,this._inlayHintsCache=s,this._commandService=o,this._notificationService=r,this._instaService=a,this._disposables=new be,this._sessionDisposables=new be,this._decorationsMetadata=new Map,this._ruleFactory=new bD(this._editor),this._activeRenderMode=0,this._debounceInfo=i.for(t.inlayHintsProvider,"InlayHint",{min:25}),this._disposables.add(t.inlayHintsProvider.onDidChange(()=>this._update())),this._disposables.add(e.onDidChangeModel(()=>this._update())),this._disposables.add(e.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(e.onDidChangeConfiguration(l=>{l.hasChanged(141)&&this._update()})),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();const e=this._editor.getOption(141);if(e.enabled==="off")return;const t=this._editor.getModel();if(!t||!this._languageFeaturesService.inlayHintsProvider.has(t))return;if(e.enabled==="on")this._activeRenderMode=0;else{let a,l;e.enabled==="onUnlessPressed"?(a=0,l=1):(a=1,l=0),this._activeRenderMode=a,this._sessionDisposables.add(Yf.getInstance().event(c=>{if(!this._editor.hasModel())return;const d=c.altKey&&c.ctrlKey&&!(c.shiftKey||c.metaKey)?l:a;if(d!==this._activeRenderMode){this._activeRenderMode=d;const u=this._editor.getModel(),h=this._copyInlayHintsWithCurrentAnchor(u);this._updateHintsDecorators([u.getFullModelRange()],h),r.schedule(0)}}))}const i=this._inlayHintsCache.get(t);i&&this._updateHintsDecorators([t.getFullModelRange()],i),this._sessionDisposables.add(dt(()=>{t.isDisposed()||this._cacheHintsForFastRestore(t)}));let s;const o=new Set,r=new Xi(async()=>{const a=Date.now();s==null||s.dispose(!0),s=new $n;const l=t.onWillDispose(()=>s==null?void 0:s.cancel());try{const c=s.token,d=await Xv.create(this._languageFeaturesService.inlayHintsProvider,t,this._getHintsRanges(),c);if(r.delay=this._debounceInfo.update(t,Date.now()-a),c.isCancellationRequested){d.dispose();return}for(const u of d.provider)typeof u.onDidChangeInlayHints=="function"&&!o.has(u)&&(o.add(u),this._sessionDisposables.add(u.onDidChangeInlayHints(()=>{r.isScheduled()||r.schedule()})));this._sessionDisposables.add(d),this._updateHintsDecorators(d.ranges,d.items),this._cacheHintsForFastRestore(t)}catch(c){Mt(c)}finally{s.dispose(),l.dispose()}},this._debounceInfo.get(t));this._sessionDisposables.add(r),this._sessionDisposables.add(dt(()=>s==null?void 0:s.dispose(!0))),r.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange(a=>{(a.scrollTopChanged||!r.isScheduled())&&r.schedule()})),this._sessionDisposables.add(this._editor.onDidChangeModelContent(a=>{s==null||s.cancel();const l=Math.max(r.delay,1250);r.schedule(l)})),this._sessionDisposables.add(this._installDblClickGesture(()=>r.schedule(0))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){const e=new be,t=e.add(new RP(this._editor)),i=new be;return e.add(i),e.add(t.onMouseMoveOrRelevantKeyDown(s=>{const[o]=s,r=this._getInlayHintLabelPart(o),a=this._editor.getModel();if(!r||!a){i.clear();return}const l=new $n;i.add(dt(()=>l.dispose(!0))),r.item.resolve(l.token),this._activeInlayHintPart=r.part.command||r.part.location?new nXe(r,o.hasTriggerModifier):void 0;const c=a.validatePosition(r.item.hint.position).lineNumber,d=new A(c,1,c,a.getLineMaxColumn(c)),u=this._getInlineHintsForRange(d);this._updateHintsDecorators([d],u),i.add(dt(()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([d],u)}))})),e.add(t.onCancel(()=>i.clear())),e.add(t.onExecute(async s=>{const o=this._getInlayHintLabelPart(s);if(o){const r=o.part;r.location?this._instaService.invokeFunction(Kfe,s,this._editor,r.location):o7.is(r.command)&&await this._invokeCommand(r.command,o.item)}})),e}_getInlineHintsForRange(e){const t=new Set;for(const i of this._decorationsMetadata.values())e.containsRange(i.item.anchor.range)&&t.add(i.item);return Array.from(t)}_installDblClickGesture(e){return this._editor.onMouseUp(async t=>{if(t.event.detail!==2)return;const i=this._getInlayHintLabelPart(t);if(i&&(t.event.preventDefault(),await i.item.resolve(Qt.None),Zo(i.item.hint.textEdits))){const s=i.item.hint.textEdits.map(o=>Mn.replace(A.lift(o.range),o.text));this._editor.executeEdits("inlayHint.default",s),e()}})}_installContextMenu(){return this._editor.onContextMenu(async e=>{if(!co(e.event.target))return;const t=this._getInlayHintLabelPart(e);t&&await this._instaService.invokeFunction(tXe,this._editor,e.event.target,t)})}_getInlayHintLabelPart(e){var t;if(e.target.type!==6)return;const i=(t=e.target.detail.injectedText)===null||t===void 0?void 0:t.options;if(i instanceof $m&&(i==null?void 0:i.attachedData)instanceof aW)return i.attachedData}async _invokeCommand(e,t){var i;try{await this._commandService.executeCommand(e.id,...(i=e.arguments)!==null&&i!==void 0?i:[])}catch(s){this._notificationService.notify({severity:$M.Error,source:t.provider.displayName,message:s})}}_cacheHintsForFastRestore(e){const t=this._copyInlayHintsWithCurrentAnchor(e);this._inlayHintsCache.set(e,t)}_copyInlayHintsWithCurrentAnchor(e){const t=new Map;for(const[i,s]of this._decorationsMetadata){if(t.has(s.item))continue;const o=e.getDecorationRange(i);if(o){const r=new Afe(o,s.item.anchor.direction),a=s.item.with({anchor:r});t.set(s.item,a)}}return Array.from(t.values())}_getHintsRanges(){const t=this._editor.getModel(),i=this._editor.getVisibleRangesPlusViewportAboveBelow(),s=[];for(const o of i.sort(A.compareRangesUsingStarts)){const r=t.validateRange(new A(o.startLineNumber-30,o.startColumn,o.endLineNumber+30,o.endColumn));s.length===0||!A.areIntersectingOrTouching(s[s.length-1],r)?s.push(r):s[s.length-1]=A.plusRange(s[s.length-1],r)}return s}_updateHintsDecorators(e,t){var i,s;const o=[],r=(_,b,w,y,S)=>{const x={content:w,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:b.className,cursorStops:y,attachedData:S};o.push({item:_,classNameRef:b,decoration:{range:_.anchor.range,options:{description:"InlayHint",showIfCollapsed:_.anchor.range.isEmpty(),collapseOnReplaceEdit:!_.anchor.range.isEmpty(),stickiness:0,[_.anchor.direction]:this._activeRenderMode===0?x:void 0}}})},a=(_,b)=>{const w=this._ruleFactory.createClassNameRef({width:`${l/3|0}px`,display:"inline-block"});r(_,w," ",b?qc.Right:qc.None)},{fontSize:l,fontFamily:c,padding:d,isUniform:u}=this._getLayoutInfo(),h="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(h,c);let f={line:0,totalLen:0};for(const _ of t){if(f.line!==_.anchor.range.startLineNumber&&(f={line:_.anchor.range.startLineNumber,totalLen:0}),f.totalLen>o1._MAX_LABEL_LEN)continue;_.hint.paddingLeft&&a(_,!1);const b=typeof _.hint.label=="string"?[{label:_.hint.label}]:_.hint.label;for(let w=0;w0&&(D=D.slice(0,-N)+"…",I=!0),r(_,this._ruleFactory.createClassNameRef(k),sXe(D),x&&!_.hint.paddingRight?qc.Right:qc.None,new aW(_,w)),I)break}if(_.hint.paddingRight&&a(_,!0),o.length>o1._MAX_DECORATORS)break}const g=[];for(const[_,b]of this._decorationsMetadata){const w=(s=this._editor.getModel())===null||s===void 0?void 0:s.getDecorationRange(_);w&&e.some(y=>y.containsRange(w))&&(g.push(_),b.classNameRef.dispose(),this._decorationsMetadata.delete(_))}const p=uu.capture(this._editor);this._editor.changeDecorations(_=>{const b=_.deltaDecorations(g,o.map(w=>w.decoration));for(let w=0;wi)&&(o=i);const r=e.fontFamily||s;return{fontSize:o,fontFamily:r,padding:t,isUniform:!t&&r===s&&o===i}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(const e of this._decorationsMetadata.values())e.classNameRef.dispose();this._decorationsMetadata.clear()}};Jm.ID="editor.contrib.InlayHints";Jm._MAX_DECORATORS=1500;Jm._MAX_LABEL_LEN=43;Jm=o1=iXe([Ub(1,Xe),Ub(2,_c),Ub(3,qfe),Ub(4,Sn),Ub(5,ps),Ub(6,ht)],Jm);function sXe(n){return n.replace(/[ \t]/g," ")}ri.registerCommand("_executeInlayHintProvider",async(n,...e)=>{const[t,i]=e;mi(pt.isUri(t)),mi(A.isIRange(i));const{inlayHintsProvider:s}=n.get(Xe),o=await n.get(fa).createModelReference(t);try{const r=await Xv.create(s,o.object.textEditorModel,[A.lift(i)],Qt.None),a=r.items.map(l=>l.hint);return setTimeout(()=>r.dispose(),0),a}finally{o.dispose()}});var oXe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},G_=function(n,e){return function(t,i){e(t,i,n)}};class Zee extends Yv{constructor(e,t,i,s){super(10,t,e.item.anchor.range,i,s,!0),this.part=e}}let gR=class extends gk{constructor(e,t,i,s,o,r,a,l){super(e,t,i,r,l,s,o),this._resolverService=a,this.hoverOrdinal=6}suggestHoverAnchor(e){var t;if(!Jm.get(this._editor)||e.target.type!==6)return null;const s=(t=e.target.detail.injectedText)===null||t===void 0?void 0:t.options;return s instanceof $m&&s.attachedData instanceof aW?new Zee(s.attachedData,this,e.event.posx,e.event.posy):null}computeSync(){return[]}computeAsync(e,t,i){return e instanceof Zee?new Ls(async s=>{const{part:o}=e;if(await o.item.resolve(i),i.isCancellationRequested)return;let r;typeof o.item.hint.tooltip=="string"?r=new $o().appendText(o.item.hint.tooltip):o.item.hint.tooltip&&(r=o.item.hint.tooltip),r&&s.emitOne(new Wd(this,e.range,[r],!1,0)),Zo(o.item.hint.textEdits)&&s.emitOne(new Wd(this,e.range,[new $o().appendText(v("hint.dbl","Double-click to insert"))],!1,10001));let a;if(typeof o.part.tooltip=="string"?a=new $o().appendText(o.part.tooltip):o.part.tooltip&&(a=o.part.tooltip),a&&s.emitOne(new Wd(this,e.range,[a],!1,1)),o.part.location||o.part.command){let c;const u=this._editor.getOption(78)==="altKey"?Xt?v("links.navigate.kb.meta.mac","cmd + click"):v("links.navigate.kb.meta","ctrl + click"):Xt?v("links.navigate.kb.alt.mac","option + click"):v("links.navigate.kb.alt","alt + click");o.part.location&&o.part.command?c=new $o().appendText(v("hint.defAndCommand","Go to Definition ({0}), right click for more",u)):o.part.location?c=new $o().appendText(v("hint.def","Go to Definition ({0})",u)):o.part.command&&(c=new $o(`[${v("hint.cmd","Execute Command")}](${RYe(o.part.command)} "${o.part.command.title}") (${u})`,{isTrusted:!0})),c&&s.emitOne(new Wd(this,e.range,[c],!1,1e4))}const l=await this._resolveInlayHintLabelPartHover(o,i);for await(const c of l)s.emitOne(c)}):Ls.EMPTY}async _resolveInlayHintLabelPartHover(e,t){if(!e.part.location)return Ls.EMPTY;const{uri:i,range:s}=e.part.location,o=await this._resolverService.createModelReference(i);try{const r=o.object.textEditorModel;return this._languageFeaturesService.hoverProvider.has(r)?SU(this._languageFeaturesService.hoverProvider,r,new ee(s.startLineNumber,s.startColumn),t).filter(a=>!qC(a.hover.contents)).map(a=>new Wd(this,e.item.anchor.range,a.hover.contents,!1,2+a.ordinal)):Ls.EMPTY}finally{o.dispose()}}};gR=oXe([G_(1,An),G_(2,$a),G_(3,Li),G_(4,$h),G_(5,qt),G_(6,fa),G_(7,Xe)],gR);class pR{get anchor(){return this._anchor}set anchor(e){this._anchor=e}get shouldFocus(){return this._shouldFocus}set shouldFocus(e){this._shouldFocus=e}get source(){return this._source}set source(e){this._source=e}get insistOnKeepingHoverVisible(){return this._insistOnKeepingHoverVisible}set insistOnKeepingHoverVisible(e){this._insistOnKeepingHoverVisible=e}constructor(e,t){this._editor=e,this._participants=t,this._anchor=null,this._shouldFocus=!1,this._source=0,this._insistOnKeepingHoverVisible=!1}static _getLineDecorations(e,t){if(t.type!==1&&!t.supportsMarkerHover)return[];const i=e.getModel(),s=t.range.startLineNumber;if(s>i.getLineCount())return[];const o=i.getLineMaxColumn(s);return e.getLineDecorations(s).filter(r=>{if(r.options.isWholeLine)return!0;const a=r.range.startLineNumber===s?r.range.startColumn:1,l=r.range.endLineNumber===s?r.range.endColumn:o;if(r.options.showIfCollapsed){if(a>t.range.startColumn+1||t.range.endColumn-1>l)return!1}else if(a>t.range.startColumn||t.range.endColumn>l)return!1;return!0})}computeAsync(e){const t=this._anchor;if(!this._editor.hasModel()||!t)return Ls.EMPTY;const i=pR._getLineDecorations(this._editor,t);return Ls.merge(this._participants.map(s=>s.computeAsync?s.computeAsync(t,i,e):Ls.EMPTY))}computeSync(){if(!this._editor.hasModel()||!this._anchor)return[];const e=pR._getLineDecorations(this._editor,this._anchor);let t=[];for(const i of this._participants)t=t.concat(i.computeSync(this._anchor,e));return tu(t)}}class Gfe{constructor(e,t,i){this.anchor=e,this.messages=t,this.isComplete=i}filter(e){const t=this.messages.filter(i=>i.isValidForHoverAnchor(e));return t.length===this.messages.length?this:new rXe(this,this.anchor,t,this.isComplete)}}class rXe extends Gfe{constructor(e,t,i,s){super(t,i,s),this.original=e}filter(e){return this.original.filter(e)}}class aXe{constructor(e,t,i,s,o,r,a,l,c,d){this.initialMousePosX=e,this.initialMousePosY=t,this.colorPicker=i,this.showAtPosition=s,this.showAtSecondaryPosition=o,this.preferAbove=r,this.stoleFocus=a,this.source=l,this.isBeforeContent=c,this.disposables=d,this.closestMouseDistance=void 0}}var lXe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},cXe=function(n,e){return function(t,i){e(t,i,n)}};const Yee=ke;let mR=class extends ne{get hasContent(){return this._hasContent}constructor(e){super(),this._keybindingService=e,this._hasContent=!1,this.hoverElement=Yee("div.hover-row.status-bar"),this.hoverElement.tabIndex=0,this.actionsElement=we(this.hoverElement,Yee("div.actions"))}addAction(e){const t=this._keybindingService.lookupKeybinding(e.commandId),i=t?t.getLabel():null;return this._hasContent=!0,this._register(jM.render(this.actionsElement,e,i))}append(e){const t=we(this.actionsElement,e);return this._hasContent=!0,t}};mR=lXe([cXe(0,Li)],mR);var dXe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Xee=function(n,e){return function(t,i){e(t,i,n)}},WN;let _R=WN=class extends ne{constructor(e,t,i){super(),this._editor=e,this._instantiationService=t,this._keybindingService=i,this._currentResult=null,this._onContentsChanged=this._register(new X),this.onContentsChanged=this._onContentsChanged.event,this._widget=this._register(this._instantiationService.createInstance(lw,this._editor)),this._participants=[];for(const s of b_.getAll()){const o=this._instantiationService.createInstance(s,this._editor);o instanceof gk&&!(o instanceof gR)&&(this._markdownHoverParticipant=o),this._participants.push(o)}this._participants.sort((s,o)=>s.hoverOrdinal-o.hoverOrdinal),this._computer=new pR(this._editor,this._participants),this._hoverOperation=this._register(new Efe(this._editor,this._computer)),this._register(this._hoverOperation.onResult(s=>{if(!this._computer.anchor)return;const o=s.hasLoadingMessage?this._addLoadingMessage(s.value):s.value;this._withResult(new Gfe(this._computer.anchor,o,s.isComplete))})),this._register(rs(this._widget.getDomNode(),"keydown",s=>{s.equals(9)&&this.hide()})),this._register(Zn.onDidChange(()=>{this._widget.position&&this._currentResult&&this._setCurrentResult(this._currentResult)}))}_startShowingOrUpdateHover(e,t,i,s,o){return!this._widget.position||!this._currentResult?e?(this._startHoverOperationIfNecessary(e,t,i,s,!1),!0):!1:this._editor.getOption(60).sticky&&o&&this._widget.isMouseGettingCloser(o.event.posx,o.event.posy)?(e&&this._startHoverOperationIfNecessary(e,t,i,s,!0),!0):e?e&&this._currentResult.anchor.equals(e)?!0:e.canAdoptVisibleHover(this._currentResult.anchor,this._widget.position)?(this._setCurrentResult(this._currentResult.filter(e)),this._startHoverOperationIfNecessary(e,t,i,s,!1),!0):(this._setCurrentResult(null),this._startHoverOperationIfNecessary(e,t,i,s,!1),!0):(this._setCurrentResult(null),!1)}_startHoverOperationIfNecessary(e,t,i,s,o){this._computer.anchor&&this._computer.anchor.equals(e)||(this._hoverOperation.cancel(),this._computer.anchor=e,this._computer.shouldFocus=s,this._computer.source=i,this._computer.insistOnKeepingHoverVisible=o,this._hoverOperation.start(t))}_setCurrentResult(e){this._currentResult!==e&&(e&&e.messages.length===0&&(e=null),this._currentResult=e,this._currentResult?this._renderMessages(this._currentResult.anchor,this._currentResult.messages):this._widget.hide())}_addLoadingMessage(e){if(this._computer.anchor){for(const t of this._participants)if(t.createLoadingMessage){const i=t.createLoadingMessage(this._computer.anchor);if(i)return e.slice(0).concat([i])}}return e}_withResult(e){this._widget.position&&this._currentResult&&this._currentResult.isComplete&&(!e.isComplete||this._computer.insistOnKeepingHoverVisible&&e.messages.length===0)||this._setCurrentResult(e)}_renderMessages(e,t){const{showAtPosition:i,showAtSecondaryPosition:s,highlightRange:o}=WN.computeHoverRanges(this._editor,e.range,t),r=new be,a=r.add(new mR(this._keybindingService)),l=document.createDocumentFragment();let c=null;const d={fragment:l,statusBar:a,setColorPicker:h=>c=h,onContentsChanged:()=>this._doOnContentsChanged(),setMinimumDimensions:h=>this._widget.setMinimumDimensions(h),hide:()=>this.hide()};for(const h of this._participants){const f=t.filter(g=>g.owner===h);f.length>0&&r.add(h.renderHoverParts(d,f))}const u=t.some(h=>h.isBeforeContent);if(a.hasContent&&l.appendChild(a.hoverElement),l.hasChildNodes()){if(o){const h=this._editor.createDecorationsCollection();h.set([{range:o,options:WN._DECORATION_OPTIONS}]),r.add(dt(()=>{h.clear()}))}this._widget.showAt(l,new aXe(e.initialMousePosX,e.initialMousePosY,c,i,s,this._editor.getOption(60).above,this._computer.shouldFocus,this._computer.source,u,r))}else r.dispose()}_doOnContentsChanged(){this._onContentsChanged.fire(),this._widget.onContentsChanged()}static computeHoverRanges(e,t,i){let s=1;if(e.hasModel()){const u=e._getViewModel(),h=u.coordinatesConverter,f=h.convertModelRangeToViewRange(t),g=new ee(f.startLineNumber,u.getLineMinColumn(f.startLineNumber));s=h.convertViewPositionToModelPosition(g).column}const o=t.startLineNumber;let r=t.startColumn,a=i[0].range,l=null;for(const u of i)a=A.plusRange(a,u.range),u.range.startLineNumber===o&&u.range.endLineNumber===o&&(r=Math.max(Math.min(r,u.range.startColumn),s)),u.forceShowAtRange&&(l=u.range);const c=l?l.getStartPosition():new ee(o,t.startColumn),d=l?l.getStartPosition():new ee(o,r);return{showAtPosition:c,showAtSecondaryPosition:d,highlightRange:a}}showsOrWillShow(e){if(this._widget.isResizing)return!0;const t=[];for(const s of this._participants)if(s.suggestHoverAnchor){const o=s.suggestHoverAnchor(e);o&&t.push(o)}const i=e.target;if(i.type===6&&t.push(new s3(0,i.range,e.event.posx,e.event.posy)),i.type===7){const s=this._editor.getOption(50).typicalHalfwidthCharacterWidth/2;!i.detail.isAfterLines&&typeof i.detail.horizontalDistanceToText=="number"&&i.detail.horizontalDistanceToTexto.priority-s.priority),this._startShowingOrUpdateHover(t[0],0,0,!1,e))}startShowingAtRange(e,t,i,s){this._startShowingOrUpdateHover(new s3(0,e,void 0,void 0),t,i,s,null)}async updateMarkdownHoverVerbosityLevel(e,t,i){var s;(s=this._markdownHoverParticipant)===null||s===void 0||s.updateMarkdownHoverVerbosityLevel(e,t,i)}markdownHoverContentAtIndex(e){var t,i;return(i=(t=this._markdownHoverParticipant)===null||t===void 0?void 0:t.markdownHoverContentAtIndex(e))!==null&&i!==void 0?i:""}doesMarkdownHoverAtIndexSupportVerbosityAction(e,t){var i,s;return(s=(i=this._markdownHoverParticipant)===null||i===void 0?void 0:i.doesMarkdownHoverAtIndexSupportVerbosityAction(e,t))!==null&&s!==void 0?s:!1}containsNode(e){return e?this._widget.getDomNode().contains(e):!1}focus(){this._widget.focus()}scrollUp(){this._widget.scrollUp()}scrollDown(){this._widget.scrollDown()}scrollLeft(){this._widget.scrollLeft()}scrollRight(){this._widget.scrollRight()}pageUp(){this._widget.pageUp()}pageDown(){this._widget.pageDown()}goToTop(){this._widget.goToTop()}goToBottom(){this._widget.goToBottom()}hide(){this._computer.anchor=null,this._hoverOperation.cancel(),this._setCurrentResult(null)}get isColorPickerVisible(){return this._widget.isColorPickerVisible}get isVisibleFromKeyboard(){return this._widget.isVisibleFromKeyboard}get isVisible(){return this._widget.isVisible}get isFocused(){return this._widget.isFocused}get isResizing(){return this._widget.isResizing}get widget(){return this._widget}};_R._DECORATION_OPTIONS=Wt.register({description:"content-hover-highlight",className:"hoverHighlight"});_R=WN=dXe([Xee(1,ht),Xee(2,Li)],_R);class uXe{get lineNumber(){return this._lineNumber}set lineNumber(e){this._lineNumber=e}get lane(){return this._laneOrLine}set lane(e){this._laneOrLine=e}constructor(e){this._editor=e,this._lineNumber=-1,this._laneOrLine=Dh.Center}computeSync(){var e,t;const i=a=>({value:a}),s=this._editor.getLineDecorations(this._lineNumber),o=[],r=this._laneOrLine==="lineNo";if(!s)return o;for(const a of s){const l=(t=(e=a.options.glyphMargin)===null||e===void 0?void 0:e.position)!==null&&t!==void 0?t:Dh.Center;if(!r&&l!==this._laneOrLine)continue;const c=r?a.options.lineNumberHoverMessage:a.options.glyphMarginHoverMessage;!c||qC(c)||o.push(...AV(c).map(i))}return o}}const Qee=ke;class vk extends ne{constructor(e,t,i){super(),this._renderDisposeables=this._register(new be),this._editor=e,this._isVisible=!1,this._messages=[],this._hover=this._register(new c$),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._markdownRenderer=this._register(new Nh({editor:this._editor},t,i)),this._computer=new uXe(this._editor),this._hoverOperation=this._register(new Efe(this._editor,this._computer)),this._register(this._hoverOperation.onResult(s=>{this._withResult(s.value)})),this._register(this._editor.onDidChangeModelDecorations(()=>this._onModelDecorationsChanged())),this._register(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(50)&&this._updateFont()})),this._editor.addOverlayWidget(this)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return vk.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(t=>this._editor.applyFontInfo(t))}_onModelDecorationsChanged(){this._isVisible&&(this._hoverOperation.cancel(),this._hoverOperation.start(0))}showsOrWillShow(e){const t=e.target;return t.type===2&&t.detail.glyphMarginLane?(this._startShowingAt(t.position.lineNumber,t.detail.glyphMarginLane),!0):t.type===3?(this._startShowingAt(t.position.lineNumber,"lineNo"),!0):!1}_startShowingAt(e,t){this._computer.lineNumber===e&&this._computer.lane===t||(this._hoverOperation.cancel(),this.hide(),this._computer.lineNumber=e,this._computer.lane=t,this._hoverOperation.start(0))}hide(){this._computer.lineNumber=-1,this._hoverOperation.cancel(),this._isVisible&&(this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible))}_withResult(e){this._messages=e,this._messages.length>0?this._renderMessages(this._computer.lineNumber,this._messages):this.hide()}_renderMessages(e,t){this._renderDisposeables.clear();const i=document.createDocumentFragment();for(const s of t){const o=Qee("div.hover-row.markdown-hover"),r=we(o,Qee("div.hover-contents")),a=this._renderDisposeables.add(this._markdownRenderer.render(s.value));r.appendChild(a.element),i.appendChild(o)}this._updateContents(i),this._showAt(e)}_updateContents(e){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(e),this._updateFont()}_showAt(e){this._isVisible||(this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible));const t=this._editor.getLayoutInfo(),i=this._editor.getTopForLineNumber(e),s=this._editor.getScrollTop(),o=this._editor.getOption(67),r=this._hover.containerDomNode.clientHeight,a=i-s-(r-o)/2,l=t.glyphMarginLeft+t.glyphMarginWidth+(this._computer.lane==="lineNo"?t.lineNumbersWidth:0);this._hover.containerDomNode.style.left=`${l}px`,this._hover.containerDomNode.style.top=`${Math.max(Math.round(a),0)}px`}}vk.ID="editor.contrib.modesGlyphHoverWidget";var hXe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Jee=function(n,e){return function(t,i){e(t,i,n)}},lW;let gr=lW=class extends ne{constructor(e,t,i){super(),this._editor=e,this._instantiationService=t,this._keybindingService=i,this._onHoverContentsChanged=this._register(new X),this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new be,this._hoverState={mouseDown:!1,activatedByDecoratorClick:!1},this._reactToEditorMouseMoveRunner=this._register(new Xi(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(60)&&(this._unhookListeners(),this._hookListeners())}))}static get(e){return e.getContribution(lW.ID)}_hookListeners(){const e=this._editor.getOption(60);this._hoverSettings={enabled:e.enabled,sticky:e.sticky,hidingDelay:e.delay},e.enabled?(this._listenersStore.add(this._editor.onMouseDown(t=>this._onEditorMouseDown(t))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove(t=>this._onEditorMouseMove(t))),this._listenersStore.add(this._editor.onKeyDown(t=>this._onKeyDown(t)))):(this._listenersStore.add(this._editor.onMouseMove(t=>this._onEditorMouseMove(t))),this._listenersStore.add(this._editor.onKeyDown(t=>this._onKeyDown(t)))),this._listenersStore.add(this._editor.onMouseLeave(t=>this._onEditorMouseLeave(t))),this._listenersStore.add(this._editor.onDidChangeModel(()=>{this._cancelScheduler(),this._hideWidgets()})),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange(t=>this._onEditorScrollChanged(t)))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(e){(e.scrollTopChanged||e.scrollLeftChanged)&&this._hideWidgets()}_onEditorMouseDown(e){this._hoverState.mouseDown=!0,!this._shouldNotHideCurrentHoverWidget(e)&&this._hideWidgets()}_shouldNotHideCurrentHoverWidget(e){return!!(this._isMouseOnContentHoverWidget(e)||this._isMouseOnMarginHoverWidget(e)||this._isContentWidgetResizing())}_isMouseOnMarginHoverWidget(e){const t=e.target;return t?t.type===12&&t.detail===vk.ID:!1}_isMouseOnContentHoverWidget(e){const t=e.target;return t?t.type===9&&t.detail===lw.ID:!1}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(e){this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._cancelScheduler(),this._shouldNotHideCurrentHoverWidget(e))||this._hideWidgets()}_shouldNotRecomputeCurrentHoverWidget(e){const t=this._hoverSettings.sticky,i=(a,l)=>{const c=this._isMouseOnMarginHoverWidget(a);return l&&c},s=(a,l)=>{const c=this._isMouseOnContentHoverWidget(a);return l&&c},o=a=>{var l;const c=this._isMouseOnContentHoverWidget(a),d=(l=this._contentWidget)===null||l===void 0?void 0:l.isColorPickerVisible;return c&&d},r=(a,l)=>{var c,d,u,h;return l&&((c=this._contentWidget)===null||c===void 0?void 0:c.containsNode((d=a.event.browserEvent.view)===null||d===void 0?void 0:d.document.activeElement))&&!(!((h=(u=a.event.browserEvent.view)===null||u===void 0?void 0:u.getSelection())===null||h===void 0)&&h.isCollapsed)};return!!(i(e,t)||s(e,t)||o(e)||r(e,t))}_onEditorMouseMove(e){var t,i,s,o;if(this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._mouseMoveEvent=e,!((t=this._contentWidget)===null||t===void 0)&&t.isFocused||!((i=this._contentWidget)===null||i===void 0)&&i.isResizing))return;const r=this._hoverSettings.sticky;if(r&&(!((s=this._contentWidget)===null||s===void 0)&&s.isVisibleFromKeyboard))return;if(this._shouldNotRecomputeCurrentHoverWidget(e)){this._reactToEditorMouseMoveRunner.cancel();return}const l=this._hoverSettings.hidingDelay;if(((o=this._contentWidget)===null||o===void 0?void 0:o.isVisible)&&r&&l>0){this._reactToEditorMouseMoveRunner.isScheduled()||this._reactToEditorMouseMoveRunner.schedule(l);return}this._reactToEditorMouseMove(e)}_reactToEditorMouseMove(e){var t;if(!e)return;const s=(t=e.target.element)===null||t===void 0?void 0:t.classList.contains("colorpicker-color-decoration"),o=this._editor.getOption(148),r=this._hoverSettings.enabled,a=this._hoverState.activatedByDecoratorClick;if(s&&(o==="click"&&!a||o==="hover"&&!r||o==="clickAndHover"&&!r&&!a)||!s&&!r&&!a){this._hideWidgets();return}this._tryShowHoverWidget(e,0)||this._tryShowHoverWidget(e,1)||this._hideWidgets()}_tryShowHoverWidget(e,t){const i=this._getOrCreateContentWidget(),s=this._getOrCreateGlyphWidget();let o,r;switch(t){case 0:o=i,r=s;break;case 1:o=s,r=i;break;default:throw new Error(`HoverWidgetType ${t} is unrecognized`)}const a=o.showsOrWillShow(e);return a&&r.hide(),a}_onKeyDown(e){var t;if(!this._editor.hasModel())return;const i=this._keybindingService.softDispatch(e,this._editor.getDomNode()),s=i.kind===1||i.kind===2&&(i.commandId===Lfe||i.commandId===NP||i.commandId===AP)&&((t=this._contentWidget)===null||t===void 0?void 0:t.isVisible);e.keyCode===5||e.keyCode===6||e.keyCode===57||e.keyCode===4||s||this._hideWidgets()}_hideWidgets(){var e,t,i;this._hoverState.mouseDown&&(!((e=this._contentWidget)===null||e===void 0)&&e.isColorPickerVisible)||Zm.dropDownVisible||(this._hoverState.activatedByDecoratorClick=!1,(t=this._glyphWidget)===null||t===void 0||t.hide(),(i=this._contentWidget)===null||i===void 0||i.hide())}_getOrCreateContentWidget(){return this._contentWidget||(this._contentWidget=this._instantiationService.createInstance(_R,this._editor),this._listenersStore.add(this._contentWidget.onContentsChanged(()=>this._onHoverContentsChanged.fire()))),this._contentWidget}_getOrCreateGlyphWidget(){return this._glyphWidget||(this._glyphWidget=this._instantiationService.createInstance(vk,this._editor)),this._glyphWidget}showContentHover(e,t,i,s,o=!1){this._hoverState.activatedByDecoratorClick=o,this._getOrCreateContentWidget().startShowingAtRange(e,t,i,s)}_isContentWidgetResizing(){var e;return((e=this._contentWidget)===null||e===void 0?void 0:e.widget.isResizing)||!1}markdownHoverContentAtIndex(e){return this._getOrCreateContentWidget().markdownHoverContentAtIndex(e)}doesMarkdownHoverAtIndexSupportVerbosityAction(e,t){return this._getOrCreateContentWidget().doesMarkdownHoverAtIndexSupportVerbosityAction(e,t)}updateMarkdownHoverVerbosityLevel(e,t,i){this._getOrCreateContentWidget().updateMarkdownHoverVerbosityLevel(e,t,i)}focus(){var e;(e=this._contentWidget)===null||e===void 0||e.focus()}scrollUp(){var e;(e=this._contentWidget)===null||e===void 0||e.scrollUp()}scrollDown(){var e;(e=this._contentWidget)===null||e===void 0||e.scrollDown()}scrollLeft(){var e;(e=this._contentWidget)===null||e===void 0||e.scrollLeft()}scrollRight(){var e;(e=this._contentWidget)===null||e===void 0||e.scrollRight()}pageUp(){var e;(e=this._contentWidget)===null||e===void 0||e.pageUp()}pageDown(){var e;(e=this._contentWidget)===null||e===void 0||e.pageDown()}goToTop(){var e;(e=this._contentWidget)===null||e===void 0||e.goToTop()}goToBottom(){var e;(e=this._contentWidget)===null||e===void 0||e.goToBottom()}get isColorPickerVisible(){var e;return(e=this._contentWidget)===null||e===void 0?void 0:e.isColorPickerVisible}get isHoverVisible(){var e;return(e=this._contentWidget)===null||e===void 0?void 0:e.isVisible}dispose(){var e,t;super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),(e=this._glyphWidget)===null||e===void 0||e.dispose(),(t=this._contentWidget)===null||t===void 0||t.dispose()}};gr.ID="editor.contrib.hover";gr=lW=hXe([Jee(1,ht),Jee(2,Li)],gr);class cW extends ne{constructor(e){super(),this._editor=e,this._register(e.onMouseDown(t=>this.onMouseDown(t)))}dispose(){super.dispose()}onMouseDown(e){const t=this._editor.getOption(148);if(t!=="click"&&t!=="clickAndHover")return;const i=e.target;if(i.type!==6||!i.detail.injectedText||i.detail.injectedText.options.attachedData!==vfe||!i.range)return;const s=this._editor.getContribution(gr.ID);if(s&&!s.isColorPickerVisible){const o=new A(i.range.startLineNumber,i.range.startColumn+1,i.range.endLineNumber,i.range.endColumn+1);s.showContentHover(o,1,0,!1,!0)}}}cW.ID="editor.contrib.colorContribution";bi(cW.ID,cW,2);b_.register(uR);var Zfe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Md=function(n,e){return function(t,i){e(t,i,n)}},dW,uW;let e_=dW=class extends ne{constructor(e,t,i,s,o,r,a){super(),this._editor=e,this._modelService=i,this._keybindingService=s,this._instantiationService=o,this._languageFeatureService=r,this._languageConfigurationService=a,this._standaloneColorPickerWidget=null,this._standaloneColorPickerVisible=W.standaloneColorPickerVisible.bindTo(t),this._standaloneColorPickerFocused=W.standaloneColorPickerFocused.bindTo(t)}showOrFocus(){var e;this._editor.hasModel()&&(this._standaloneColorPickerVisible.get()?this._standaloneColorPickerFocused.get()||(e=this._standaloneColorPickerWidget)===null||e===void 0||e.focus():this._standaloneColorPickerWidget=new vR(this._editor,this._standaloneColorPickerVisible,this._standaloneColorPickerFocused,this._instantiationService,this._modelService,this._keybindingService,this._languageFeatureService,this._languageConfigurationService))}hide(){var e;this._standaloneColorPickerFocused.set(!1),this._standaloneColorPickerVisible.set(!1),(e=this._standaloneColorPickerWidget)===null||e===void 0||e.hide(),this._editor.focus()}insertColor(){var e;(e=this._standaloneColorPickerWidget)===null||e===void 0||e.updateEditor(),this.hide()}static get(e){return e.getContribution(dW.ID)}};e_.ID="editor.contrib.standaloneColorPickerController";e_=dW=Zfe([Md(1,Ct),Md(2,Pn),Md(3,Li),Md(4,ht),Md(5,Xe),Md(6,gn)],e_);bi(e_.ID,e_,1);const ete=8,fXe=22;let vR=uW=class extends ne{constructor(e,t,i,s,o,r,a,l){var c;super(),this._editor=e,this._standaloneColorPickerVisible=t,this._standaloneColorPickerFocused=i,this._modelService=o,this._keybindingService=r,this._languageFeaturesService=a,this._languageConfigurationService=l,this.allowEditorOverflow=!0,this._position=void 0,this._body=document.createElement("div"),this._colorHover=null,this._selectionSetInEditor=!1,this._onResult=this._register(new X),this.onResult=this._onResult.event,this._standaloneColorPickerVisible.set(!0),this._standaloneColorPickerParticipant=s.createInstance(fk,this._editor),this._position=(c=this._editor._getViewModel())===null||c===void 0?void 0:c.getPrimaryCursorState().modelState.position;const d=this._editor.getSelection(),u=d?{startLineNumber:d.startLineNumber,startColumn:d.startColumn,endLineNumber:d.endLineNumber,endColumn:d.endColumn}:{startLineNumber:0,endLineNumber:0,endColumn:0,startColumn:0},h=this._register(ou(this._body));this._register(h.onDidBlur(f=>{this.hide()})),this._register(h.onDidFocus(f=>{this.focus()})),this._register(this._editor.onDidChangeCursorPosition(()=>{this._selectionSetInEditor?this._selectionSetInEditor=!1:this.hide()})),this._register(this._editor.onMouseMove(f=>{var g;const p=(g=f.target.element)===null||g===void 0?void 0:g.classList;p&&p.contains("colorpicker-color-decoration")&&this.hide()})),this._register(this.onResult(f=>{this._render(f.value,f.foundInEditor)})),this._start(u),this._body.style.zIndex="50",this._editor.addContentWidget(this)}updateEditor(){this._colorHover&&this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover)}getId(){return uW.ID}getDomNode(){return this._body}getPosition(){if(!this._position)return null;const e=this._editor.getOption(60).above;return{position:this._position,secondaryPosition:this._position,preference:e?[1,2]:[2,1],positionAffinity:2}}hide(){this.dispose(),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerFocused.set(!1),this._editor.removeContentWidget(this),this._editor.focus()}focus(){this._standaloneColorPickerFocused.set(!0),this._body.focus()}async _start(e){const t=await this._computeAsync(e);t&&this._onResult.fire(new gXe(t.result,t.foundInEditor))}async _computeAsync(e){if(!this._editor.hasModel())return null;const t={range:e,color:{red:0,green:0,blue:0,alpha:1}},i=await this._standaloneColorPickerParticipant.createColorHover(t,new bU(this._modelService,this._languageConfigurationService),this._languageFeaturesService.colorProvider);return i?{result:i.colorHover,foundInEditor:i.foundInEditor}:null}_render(e,t){const i=document.createDocumentFragment(),s=this._register(new mR(this._keybindingService));let o;const r={fragment:i,statusBar:s,setColorPicker:p=>o=p,onContentsChanged:()=>{},hide:()=>this.hide()};if(this._colorHover=e,this._register(this._standaloneColorPickerParticipant.renderHoverParts(r,[e])),o===void 0)return;this._body.classList.add("standalone-colorpicker-body"),this._body.style.maxHeight=Math.max(this._editor.getLayoutInfo().height/4,250)+"px",this._body.style.maxWidth=Math.max(this._editor.getLayoutInfo().width*.66,500)+"px",this._body.tabIndex=0,this._body.appendChild(i),o.layout();const a=o.body,l=a.saturationBox.domNode.clientWidth,c=a.domNode.clientWidth-l-fXe-ete,d=o.body.enterButton;d==null||d.onClicked(()=>{this.updateEditor(),this.hide()});const u=o.header,h=u.pickedColorNode;h.style.width=l+ete+"px";const f=u.originalColorNode;f.style.width=c+"px";const g=o.header.closeButton;g==null||g.onClicked(()=>{this.hide()}),t&&(d&&(d.button.textContent="Replace"),this._selectionSetInEditor=!0,this._editor.setSelection(e.range)),this._editor.layoutContentWidget(this)}};vR.ID="editor.contrib.standaloneColorPickerWidget";vR=uW=Zfe([Md(3,ht),Md(4,Pn),Md(5,Li),Md(6,Xe),Md(7,gn)],vR);class gXe{constructor(e,t){this.value=e,this.foundInEditor=t}}class pXe extends mu{constructor(){super({id:"editor.action.showOrFocusStandaloneColorPicker",title:{...Nt("showOrFocusStandaloneColorPicker","Show or Focus Standalone Color Picker"),mnemonicTitle:v({},"&&Show or Focus Standalone Color Picker")},precondition:void 0,menu:[{id:R.CommandPalette}],metadata:{description:Nt("showOrFocusStandaloneColorPickerDescription","Show or focus a standalone color picker which uses the default color provider. It displays hex/rgb/hsl colors.")}})}runEditorCommand(e,t){var i;(i=e_.get(t))===null||i===void 0||i.showOrFocus()}}class mXe extends Ke{constructor(){super({id:"editor.action.hideColorPicker",label:v({},"Hide the Color Picker"),alias:"Hide the Color Picker",precondition:W.standaloneColorPickerVisible.isEqualTo(!0),kbOpts:{primary:9,weight:100},metadata:{description:Nt("hideColorPickerDescription","Hide the standalone color picker.")}})}run(e,t){var i;(i=e_.get(t))===null||i===void 0||i.hide()}}class _Xe extends Ke{constructor(){super({id:"editor.action.insertColorWithStandaloneColorPicker",label:v({},"Insert Color with Standalone Color Picker"),alias:"Insert Color with Standalone Color Picker",precondition:W.standaloneColorPickerFocused.isEqualTo(!0),kbOpts:{primary:3,weight:100},metadata:{description:Nt("insertColorWithStandaloneColorPickerDescription","Insert hex/rgb/hsl colors with the focused standalone color picker.")}})}run(e,t){var i;(i=e_.get(t))===null||i===void 0||i.insertColor()}}xe(mXe);xe(_Xe);dn(pXe);class im{constructor(e,t,i){this.languageConfigurationService=i,this._selection=e,this._insertSpace=t,this._usedEndToken=null}static _haystackHasNeedleAtOffset(e,t,i){if(i<0)return!1;const s=t.length,o=e.length;if(i+s>o)return!1;for(let r=0;r=65&&a<=90&&a+32===l)&&!(l>=65&&l<=90&&l+32===a))return!1}return!0}_createOperationsForBlockComment(e,t,i,s,o,r){const a=e.startLineNumber,l=e.startColumn,c=e.endLineNumber,d=e.endColumn,u=o.getLineContent(a),h=o.getLineContent(c);let f=u.lastIndexOf(t,l-1+t.length),g=h.indexOf(i,d-1-i.length);if(f!==-1&&g!==-1)if(a===c)u.substring(f+t.length,g).indexOf(i)>=0&&(f=-1,g=-1);else{const _=u.substring(f+t.length),b=h.substring(0,g);(_.indexOf(i)>=0||b.indexOf(i)>=0)&&(f=-1,g=-1)}let p;f!==-1&&g!==-1?(s&&f+t.length0&&h.charCodeAt(g-1)===32&&(i=" "+i,g-=1),p=im._createRemoveBlockCommentOperations(new A(a,f+t.length+1,c,g+1),t,i)):(p=im._createAddBlockCommentOperations(e,t,i,this._insertSpace),this._usedEndToken=p.length===1?i:null);for(const _ of p)r.addTrackedEditOperation(_.range,_.text)}static _createRemoveBlockCommentOperations(e,t,i){const s=[];return A.isEmpty(e)?s.push(Mn.delete(new A(e.startLineNumber,e.startColumn-t.length,e.endLineNumber,e.endColumn+i.length))):(s.push(Mn.delete(new A(e.startLineNumber,e.startColumn-t.length,e.startLineNumber,e.startColumn))),s.push(Mn.delete(new A(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn+i.length)))),s}static _createAddBlockCommentOperations(e,t,i,s){const o=[];return A.isEmpty(e)?o.push(Mn.replace(new A(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),t+" "+i)):(o.push(Mn.insert(new ee(e.startLineNumber,e.startColumn),t+(s?" ":""))),o.push(Mn.insert(new ee(e.endLineNumber,e.endColumn),(s?" ":"")+i))),o}getEditOperations(e,t){const i=this._selection.startLineNumber,s=this._selection.startColumn;e.tokenization.tokenizeIfCheap(i);const o=e.getLanguageIdAtPosition(i,s),r=this.languageConfigurationService.getLanguageConfiguration(o).comments;!r||!r.blockCommentStartToken||!r.blockCommentEndToken||this._createOperationsForBlockComment(this._selection,r.blockCommentStartToken,r.blockCommentEndToken,this._insertSpace,e,t)}computeCursorState(e,t){const i=t.getInverseEditOperations();if(i.length===2){const s=i[0],o=i[1];return new it(s.range.endLineNumber,s.range.endColumn,o.range.startLineNumber,o.range.startColumn)}else{const s=i[0].range,o=this._usedEndToken?-this._usedEndToken.length-1:0;return new it(s.endLineNumber,s.endColumn+o,s.endLineNumber,s.endColumn+o)}}}class If{constructor(e,t,i,s,o,r,a){this.languageConfigurationService=e,this._selection=t,this._indentSize=i,this._type=s,this._insertSpace=o,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=r,this._ignoreFirstLine=a||!1}static _gatherPreflightCommentStrings(e,t,i,s){e.tokenization.tokenizeIfCheap(t);const o=e.getLanguageIdAtPosition(t,1),r=s.getLanguageConfiguration(o).comments,a=r?r.lineCommentToken:null;if(!a)return null;const l=[];for(let c=0,d=i-t+1;co?t[l].commentStrOffset=r-1:t[l].commentStrOffset=r}}}class kU extends Ke{constructor(e,t){super(t),this._type=e}run(e,t){const i=e.get(gn);if(!t.hasModel())return;const s=t.getModel(),o=[],r=s.getOptions(),a=t.getOption(23),l=t.getSelections().map((d,u)=>({selection:d,index:u,ignoreFirstLine:!1}));l.sort((d,u)=>A.compareRangesUsingStarts(d.selection,u.selection));let c=l[0];for(let d=1;d=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Z_=function(n,e){return function(t,i){e(t,i,n)}},hW;let dw=hW=class{static get(e){return e.getContribution(hW.ID)}constructor(e,t,i,s,o,r,a,l){this._contextMenuService=t,this._contextViewService=i,this._contextKeyService=s,this._keybindingService=o,this._menuService=r,this._configurationService=a,this._workspaceContextService=l,this._toDispose=new be,this._contextMenuIsBeingShownCount=0,this._editor=e,this._toDispose.add(this._editor.onContextMenu(c=>this._onContextMenu(c))),this._toDispose.add(this._editor.onMouseWheel(c=>{if(this._contextMenuIsBeingShownCount>0){const d=this._contextViewService.getContextViewElement(),u=c.srcElement;u.shadowRoot&&h0(d)===u.shadowRoot||this._contextViewService.hideContextView()}})),this._toDispose.add(this._editor.onKeyDown(c=>{this._editor.getOption(24)&&c.keyCode===58&&(c.preventDefault(),c.stopPropagation(),this.showContextMenu())}))}_onContextMenu(e){if(!this._editor.hasModel())return;if(!this._editor.getOption(24)){this._editor.focus(),e.target.position&&!this._editor.getSelection().containsPosition(e.target.position)&&this._editor.setPosition(e.target.position);return}if(e.target.type===12||e.target.type===6&&e.target.detail.injectedText)return;if(e.event.preventDefault(),e.event.stopPropagation(),e.target.type===11)return this._showScrollbarContextMenu(e.event);if(e.target.type!==6&&e.target.type!==7&&e.target.type!==1)return;if(this._editor.focus(),e.target.position){let i=!1;for(const s of this._editor.getSelections())if(s.containsPosition(e.target.position)){i=!0;break}i||this._editor.setPosition(e.target.position)}let t=null;e.target.type!==1&&(t=e.event),this.showContextMenu(t)}showContextMenu(e){if(!this._editor.getOption(24)||!this._editor.hasModel())return;const t=this._getMenuActions(this._editor.getModel(),this._editor.contextMenuId);t.length>0&&this._doShowContextMenu(t,e)}_getMenuActions(e,t){const i=[],s=this._menuService.createMenu(t,this._contextKeyService),o=s.getActions({arg:e.uri});s.dispose();for(const r of o){const[,a]=r;let l=0;for(const c of a)if(c instanceof q1){const d=this._getMenuActions(e,c.item.submenu);d.length>0&&(i.push(new NC(c.id,c.label,d)),l++)}else i.push(c),l++;l&&i.push(new Ms)}return i.length&&i.pop(),i}_doShowContextMenu(e,t=null){if(!this._editor.hasModel())return;const i=this._editor.getOption(60);this._editor.updateOptions({hover:{enabled:!1}});let s=t;if(!s){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();const r=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),a=bs(this._editor.getDomNode()),l=a.left+r.left,c=a.top+r.top+r.height;s={x:l,y:c}}const o=this._editor.getOption(127)&&!iu;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:o?this._editor.getDomNode():void 0,getAnchor:()=>s,getActions:()=>e,getActionViewItem:r=>{const a=this._keybindingFor(r);if(a)return new QC(r,r,{label:!0,keybinding:a.getLabel(),isMenu:!0});const l=r;return typeof l.getActionViewItem=="function"?l.getActionViewItem():new QC(r,r,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:r=>this._keybindingFor(r),onHide:r=>{this._contextMenuIsBeingShownCount--,this._editor.updateOptions({hover:i})}})}_showScrollbarContextMenu(e){if(!this._editor.hasModel()||AHe(this._workspaceContextService.getWorkspace()))return;const t=this._editor.getOption(73);let i=0;const s=c=>({id:`menu-action-${++i}`,label:c.label,tooltip:"",class:void 0,enabled:typeof c.enabled>"u"?!0:c.enabled,checked:c.checked,run:c.run}),o=(c,d)=>new NC(`menu-action-${++i}`,c,d,void 0),r=(c,d,u,h,f)=>{if(!d)return s({label:c,enabled:d,run:()=>{}});const g=_=>()=>{this._configurationService.updateValue(u,_)},p=[];for(const _ of f)p.push(s({label:_.label,checked:h===_.value,run:g(_.value)}));return o(c,p)},a=[];a.push(s({label:v("context.minimap.minimap","Minimap"),checked:t.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!t.enabled)}})),a.push(new Ms),a.push(s({label:v("context.minimap.renderCharacters","Render Characters"),enabled:t.enabled,checked:t.renderCharacters,run:()=>{this._configurationService.updateValue("editor.minimap.renderCharacters",!t.renderCharacters)}})),a.push(r(v("context.minimap.size","Vertical size"),t.enabled,"editor.minimap.size",t.size,[{label:v("context.minimap.size.proportional","Proportional"),value:"proportional"},{label:v("context.minimap.size.fill","Fill"),value:"fill"},{label:v("context.minimap.size.fit","Fit"),value:"fit"}])),a.push(r(v("context.minimap.slider","Slider"),t.enabled,"editor.minimap.showSlider",t.showSlider,[{label:v("context.minimap.slider.mouseover","Mouse Over"),value:"mouseover"},{label:v("context.minimap.slider.always","Always"),value:"always"}]));const l=this._editor.getOption(127)&&!iu;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:l?this._editor.getDomNode():void 0,getAnchor:()=>e,getActions:()=>a,onHide:c=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(e){return this._keybindingService.lookupKeybinding(e.id)}dispose(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}};dw.ID="editor.contrib.contextmenu";dw=hW=yXe([Z_(1,za),Z_(2,Wg),Z_(3,Ct),Z_(4,Li),Z_(5,Dl),Z_(6,qt),Z_(7,b0)],dw);class SXe extends Ke{constructor(){super({id:"editor.action.showContextMenu",label:v("action.showContextMenu.label","Show Editor Context Menu"),alias:"Show Editor Context Menu",precondition:void 0,kbOpts:{kbExpr:W.textInputFocus,primary:1092,weight:100}})}run(e,t){var i;(i=dw.get(t))===null||i===void 0||i.showContextMenu()}}bi(dw.ID,dw,2);xe(SXe);class r3{constructor(e){this.selections=e}equals(e){const t=this.selections.length,i=e.selections.length;if(t!==i)return!1;for(let s=0;s{this._undoStack=[],this._redoStack=[]})),this._register(e.onDidChangeModelContent(t=>{this._undoStack=[],this._redoStack=[]})),this._register(e.onDidChangeCursorSelection(t=>{if(this._isCursorUndoRedo||!t.oldSelections||t.oldModelVersionId!==t.modelVersionId)return;const i=new r3(t.oldSelections);this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(i)||(this._undoStack.push(new a3(i,e.getScrollTop(),e.getScrollLeft())),this._redoStack=[],this._undoStack.length>50&&this._undoStack.shift())}))}cursorUndo(){!this._editor.hasModel()||this._undoStack.length===0||(this._redoStack.push(new a3(new r3(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))}cursorRedo(){!this._editor.hasModel()||this._redoStack.length===0||(this._undoStack.push(new a3(new r3(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))}_applyState(e){this._isCursorUndoRedo=!0,this._editor.setSelections(e.cursorState.selections),this._editor.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}),this._isCursorUndoRedo=!1}}T0.ID="editor.contrib.cursorUndoRedoController";class xXe extends Ke{constructor(){super({id:"cursorUndo",label:v("cursor.undo","Cursor Undo"),alias:"Cursor Undo",precondition:void 0,kbOpts:{kbExpr:W.textInputFocus,primary:2099,weight:100}})}run(e,t,i){var s;(s=T0.get(t))===null||s===void 0||s.cursorUndo()}}class LXe extends Ke{constructor(){super({id:"cursorRedo",label:v("cursor.redo","Cursor Redo"),alias:"Cursor Redo",precondition:void 0})}run(e,t,i){var s;(s=T0.get(t))===null||s===void 0||s.cursorRedo()}}bi(T0.ID,T0,0);xe(xXe);xe(LXe);class kXe{constructor(e,t,i){this.selection=e,this.targetPosition=t,this.copy=i,this.targetSelection=null}getEditOperations(e,t){const i=e.getValueInRange(this.selection);if(this.copy||t.addEditOperation(this.selection,null),t.addEditOperation(new A(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),i),this.selection.containsPosition(this.targetPosition)&&!(this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition)))){this.targetSelection=this.selection;return}if(this.copy){this.targetSelection=new it(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber>this.selection.endLineNumber){this.targetSelection=new it(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumberthis._onEditorMouseDown(t))),this._register(this._editor.onMouseUp(t=>this._onEditorMouseUp(t))),this._register(this._editor.onMouseDrag(t=>this._onEditorMouseDrag(t))),this._register(this._editor.onMouseDrop(t=>this._onEditorMouseDrop(t))),this._register(this._editor.onMouseDropCanceled(()=>this._onEditorMouseDropCanceled())),this._register(this._editor.onKeyDown(t=>this.onEditorKeyDown(t))),this._register(this._editor.onKeyUp(t=>this.onEditorKeyUp(t))),this._register(this._editor.onDidBlurEditorWidget(()=>this.onEditorBlur())),this._register(this._editor.onDidBlurEditorText(()=>this.onEditorBlur())),this._mouseDown=!1,this._modifierPressed=!1,this._dragSelection=null}onEditorBlur(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}onEditorKeyDown(e){!this._editor.getOption(35)||this._editor.getOption(22)||(jb(e)&&(this._modifierPressed=!0),this._mouseDown&&jb(e)&&this._editor.updateOptions({mouseStyle:"copy"}))}onEditorKeyUp(e){!this._editor.getOption(35)||this._editor.getOption(22)||(jb(e)&&(this._modifierPressed=!1),this._mouseDown&&e.keyCode===Cg.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:"default"}))}_onEditorMouseDown(e){this._mouseDown=!0}_onEditorMouseUp(e){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(e){const t=e.target;if(this._dragSelection===null){const s=(this._editor.getSelections()||[]).filter(o=>t.position&&o.containsPosition(t.position));if(s.length===1)this._dragSelection=s[0];else return}jb(e.event)?this._editor.updateOptions({mouseStyle:"copy"}):this._editor.updateOptions({mouseStyle:"default"}),t.position&&(this._dragSelection.containsPosition(t.position)?this._removeDecoration():this.showAt(t.position))}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(e){if(e.target&&(this._hitContent(e.target)||this._hitMargin(e.target))&&e.target.position){const t=new ee(e.target.position.lineNumber,e.target.position.column);if(this._dragSelection===null){let i=null;if(e.event.shiftKey){const s=this._editor.getSelection();if(s){const{selectionStartLineNumber:o,selectionStartColumn:r}=s;i=[new it(o,r,t.lineNumber,t.column)]}}else i=(this._editor.getSelections()||[]).map(s=>s.containsPosition(t)?new it(t.lineNumber,t.column,t.lineNumber,t.column):s);this._editor.setSelections(i||[],"mouse",3)}else(!this._dragSelection.containsPosition(t)||(jb(e.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(t)||this._dragSelection.getStartPosition().equals(t)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(Cg.ID,new kXe(this._dragSelection,t,jb(e.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}showAt(e){this._dndDecorationIds.set([{range:new A(e.lineNumber,e.column,e.lineNumber,e.column),options:Cg._DECORATION_OPTIONS}]),this._editor.revealPosition(e,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(e){return e.type===6||e.type===7}_hitMargin(e){return e.type===2||e.type===3||e.type===4}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}}Cg.ID="editor.contrib.dragAndDrop";Cg.TRIGGER_KEY_VALUE=Xt?6:5;Cg._DECORATION_OPTIONS=Wt.register({description:"dnd-target",className:"dnd-target"});bi(Cg.ID,Cg,2);var ST;bi(Oh.ID,Oh,0);WD(W6);Fe(new class extends Us{constructor(){super({id:Qhe,precondition:fU,kbOpts:{weight:100,primary:2137}})}runEditorCommand(n,e){var t;return(t=Oh.get(e))===null||t===void 0?void 0:t.changePasteType()}});Fe(new class extends Us{constructor(){super({id:"editor.hidePasteWidget",precondition:fU,kbOpts:{weight:100,primary:9}})}runEditorCommand(n,e){var t;(t=Oh.get(e))===null||t===void 0||t.clearWidgets()}});xe((ST=class extends Ke{constructor(){super({id:"editor.action.pasteAs",label:v("pasteAs","Paste As..."),alias:"Paste As...",precondition:W.writable,metadata:{description:"Paste as",args:[{name:"args",schema:ST.argsSchema}]}})}run(e,t,i){var s;let o=typeof(i==null?void 0:i.kind)=="string"?i.kind:void 0;return!o&&i&&(o=typeof i.id=="string"?i.id:void 0),(s=Oh.get(t))===null||s===void 0?void 0:s.pasteAs(o?new Yi(o):void 0)}},ST.argsSchema={type:"object",properties:{kind:{type:"string",description:v("pasteAs.kind","The kind of the paste edit to try applying. If not provided or there are multiple edits for this kind, the editor will show a picker.")}}},ST));xe(class extends Ke{constructor(){super({id:"editor.action.pasteAsText",label:v("pasteAsText","Paste as Text"),alias:"Paste as Text",precondition:W.writable})}run(n,e){var t;return(t=Oh.get(e))===null||t===void 0?void 0:t.pasteAs({providerId:Ag.id})}});class DXe{constructor(){this._dragOperations=new Map}removeDragOperationTransfer(e){if(e&&this._dragOperations.has(e)){const t=this._dragOperations.get(e);return this._dragOperations.delete(e),t}}}class tte{constructor(e){this.identifier=e}}const Yfe=Jt("treeViewsDndService");ai(Yfe,DXe,1);var IXe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},xT=function(n,e){return function(t,i){e(t,i,n)}},fW;const Xfe="editor.experimental.dropIntoEditor.defaultProvider",Qfe="editor.changeDropType",DU=new He("dropWidgetVisible",!1,v("dropWidgetVisible","Whether the drop widget is showing"));let N0=fW=class extends ne{static get(e){return e.getContribution(fW.ID)}constructor(e,t,i,s,o){super(),this._configService=i,this._languageFeaturesService=s,this._treeViewsDragAndDropService=o,this.treeItemsTransfer=ck.getInstance(),this._dropProgressManager=this._register(t.createInstance(rR,"dropIntoEditor",e)),this._postDropWidgetManager=this._register(t.createInstance(cR,"dropIntoEditor",e,DU,{id:Qfe,label:v("postDropWidgetTitle","Show drop options...")})),this._register(e.onDropIntoEditor(r=>this.onDropIntoEditor(e,r.position,r.event)))}clearWidgets(){this._postDropWidgetManager.clear()}changeDropType(){this._postDropWidgetManager.tryShowSelector()}async onDropIntoEditor(e,t,i){var s;if(!i.dataTransfer||!e.hasModel())return;(s=this._currentOperation)===null||s===void 0||s.cancel(),e.focus(),e.setPosition(t);const o=Xs(async r=>{const a=new Km(e,1,void 0,r);try{const l=await this.extractDataTransferData(i);if(l.size===0||a.token.isCancellationRequested)return;const c=e.getModel();if(!c)return;const d=this._languageFeaturesService.documentDropEditProvider.ordered(c).filter(h=>h.dropMimeTypes?h.dropMimeTypes.some(f=>l.matches(f)):!0),u=await this.getDropEdits(d,c,t,l,a);if(a.token.isCancellationRequested)return;if(u.length){const h=this.getInitialActiveEditIndex(c,u),f=e.getOption(36).showDropSelector==="afterDrop";await this._postDropWidgetManager.applyEditAndShowIfNeeded([A.fromPositions(t)],{activeEditIndex:h,allEdits:u},f,async g=>g,r)}}finally{a.dispose(),this._currentOperation===o&&(this._currentOperation=void 0)}});this._dropProgressManager.showWhile(t,v("dropIntoEditorProgress","Running drop handlers. Click to cancel"),o),this._currentOperation=o}async getDropEdits(e,t,i,s,o){const r=await uD(Promise.all(e.map(async l=>{try{const c=await l.provideDocumentDropEdits(t,i,s,o.token);return c==null?void 0:c.map(d=>({...d,providerId:l.id}))}catch(c){console.error(c)}})),o.token),a=tu(r??[]).flat();return Yhe(a)}getInitialActiveEditIndex(e,t){const i=this._configService.getValue(Xfe,{resource:e.uri});for(const[s,o]of Object.entries(i)){const r=new Yi(o),a=t.findIndex(l=>r.value===l.providerId&&l.handledMimeType&&zhe(s,[l.handledMimeType]));if(a>=0)return a}return 0}async extractDataTransferData(e){if(!e.dataTransfer)return new Vhe;const t=jhe(e.dataTransfer);if(this.treeItemsTransfer.hasData(tte.prototype)){const i=this.treeItemsTransfer.getData(tte.prototype);if(Array.isArray(i))for(const s of i){const o=await this._treeViewsDragAndDropService.removeDragOperationTransfer(s.identifier);if(o)for(const[r,a]of o)t.replace(r,a)}}return t}};N0.ID="editor.contrib.dropIntoEditorController";N0=fW=IXe([xT(1,ht),xT(2,qt),xT(3,Xe),xT(4,Yfe)],N0);bi(N0.ID,N0,2);WD(B6);Fe(new class extends Us{constructor(){super({id:Qfe,precondition:DU,kbOpts:{weight:100,primary:2137}})}runEditorCommand(n,e,t){var i;(i=N0.get(e))===null||i===void 0||i.changeDropType()}});Fe(new class extends Us{constructor(){super({id:"editor.hideDropWidget",precondition:DU,kbOpts:{weight:100,primary:9}})}runEditorCommand(n,e,t){var i;(i=N0.get(e))===null||i===void 0||i.clearWidgets()}});Un.as(_u.Configuration).registerConfiguration({...ZM,properties:{[Xfe]:{type:"object",scope:5,description:v("defaultProviderDescription","Configures the default drop provider to use for content of a given mime type."),default:{},additionalProperties:{type:"string"}}}});class lr{constructor(e){this._editor=e,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}dispose(){this._editor.removeDecorations(this._allDecorations()),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}getFindScopes(){if(this._findScopeDecorationIds.length){const e=this._findScopeDecorationIds.map(t=>this._editor.getModel().getDecorationRange(t)).filter(t=>!!t);if(e.length)return e}return null}getStartPosition(){return this._startPosition}setStartPosition(e){this._startPosition=e,this.setCurrentFindMatch(null)}_getDecorationIndex(e){const t=this._decorations.indexOf(e);return t>=0?t+1:1}getDecorationRangeAt(e){const t=e{if(this._highlightedDecorationId!==null&&(s.changeDecorationOptions(this._highlightedDecorationId,lr._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),t!==null&&(this._highlightedDecorationId=t,s.changeDecorationOptions(this._highlightedDecorationId,lr._CURRENT_FIND_MATCH_DECORATION)),this._rangeHighlightDecorationId!==null&&(s.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),t!==null){let o=this._editor.getModel().getDecorationRange(t);if(o.startLineNumber!==o.endLineNumber&&o.endColumn===1){const r=o.endLineNumber-1,a=this._editor.getModel().getLineMaxColumn(r);o=new A(o.startLineNumber,o.startColumn,r,a)}this._rangeHighlightDecorationId=s.addDecoration(o,lr._RANGE_HIGHLIGHT_DECORATION)}}),i}set(e,t){this._editor.changeDecorations(i=>{let s=lr._FIND_MATCH_DECORATION;const o=[];if(e.length>1e3){s=lr._FIND_MATCH_NO_OVERVIEW_DECORATION;const a=this._editor.getModel().getLineCount(),c=this._editor.getLayoutInfo().height/a,d=Math.max(2,Math.ceil(3/c));let u=e[0].range.startLineNumber,h=e[0].range.endLineNumber;for(let f=1,g=e.length;f=p.startLineNumber?p.endLineNumber>h&&(h=p.endLineNumber):(o.push({range:new A(u,1,h,1),options:lr._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),u=p.startLineNumber,h=p.endLineNumber)}o.push({range:new A(u,1,h,1),options:lr._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}const r=new Array(e.length);for(let a=0,l=e.length;ai.removeDecoration(a)),this._findScopeDecorationIds=[]),t!=null&&t.length&&(this._findScopeDecorationIds=t.map(a=>i.addDecoration(a,lr._FIND_SCOPE_DECORATION)))})}matchBeforePosition(e){if(this._decorations.length===0)return null;for(let t=this._decorations.length-1;t>=0;t--){const i=this._decorations[t],s=this._editor.getModel().getDecorationRange(i);if(!(!s||s.endLineNumber>e.lineNumber)){if(s.endLineNumbere.column))return s}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(e){if(this._decorations.length===0)return null;for(let t=0,i=this._decorations.length;te.lineNumber)return o;if(!(o.startColumn0){const i=[];for(let r=0;rA.compareRangesUsingStarts(r.range,a.range));const s=[];let o=i[0];for(let r=1;r0?e[0].toUpperCase()+e.substr(1):n[0][0].toUpperCase()!==n[0][0]&&e.length>0?e[0].toLowerCase()+e.substr(1):e}else return e}function ite(n,e,t){return n[0].indexOf(t)!==-1&&e.indexOf(t)!==-1&&n[0].split(t).length===e.split(t).length}function nte(n,e,t){const i=e.split(t),s=n[0].split(t);let o="";return i.forEach((r,a)=>{o+=Jfe([s[a]],r)+t}),o.slice(0,-1)}class ste{constructor(e){this.staticValue=e,this.kind=0}}class TXe{constructor(e){this.pieces=e,this.kind=1}}class uw{static fromStaticValue(e){return new uw([Qv.staticValue(e)])}get hasReplacementPatterns(){return this._state.kind===1}constructor(e){!e||e.length===0?this._state=new ste(""):e.length===1&&e[0].staticValue!==null?this._state=new ste(e[0].staticValue):this._state=new TXe(e)}buildReplaceString(e,t){if(this._state.kind===0)return t?Jfe(e,this._state.staticValue):this._state.staticValue;let i="";for(let s=0,o=this._state.pieces.length;s0){const l=[],c=r.caseOps.length;let d=0;for(let u=0,h=a.length;u=c){l.push(a.slice(u));break}switch(r.caseOps[d]){case"U":l.push(a[u].toUpperCase());break;case"u":l.push(a[u].toUpperCase()),d++;break;case"L":l.push(a[u].toLowerCase());break;case"l":l.push(a[u].toLowerCase()),d++;break;default:l.push(a[u])}}a=l.join("")}i+=a}return i}static _substitute(e,t){if(t===null)return"";if(e===0)return t[0];let i="";for(;e>0;){if(e=s)break;const r=n.charCodeAt(i);switch(r){case 92:t.emitUnchanged(i-1),t.emitStatic("\\",i+1);break;case 110:t.emitUnchanged(i-1),t.emitStatic(` `,i+1);break;case 116:t.emitUnchanged(i-1),t.emitStatic(" ",i+1);break;case 117:case 85:case 108:case 76:t.emitUnchanged(i-1),t.emitStatic("",i+1),e.push(String.fromCharCode(r));break}continue}if(o===36){if(i++,i>=s)break;const r=n.charCodeAt(i);if(r===36){t.emitUnchanged(i-1),t.emitStatic("$",i+1);continue}if(r===48||r===38){t.emitUnchanged(i-1),t.emitMatchIndex(0,i+1,e),e.length=0;continue}if(49<=r&&r<=57){let a=r-48;if(i+1this.research(!1),100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition(i=>{(i.reason===3||i.reason===5||i.reason===6)&&this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent(i=>{this._ignoreModelContentChanged||(i.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())})),this._toDispose.add(this._state.onFindReplaceStateChange(i=>this._onStateChanged(i))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,tn(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(e){this._isDisposed||this._editor.hasModel()&&(e.searchString||e.isReplaceRevealed||e.isRegex||e.wholeWord||e.matchCase||e.searchScope)&&(this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet(()=>{e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor)},RXe)):e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor))}static _getSearchRange(e,t){return t||e.getFullModelRange()}research(e,t){let i=null;typeof t<"u"?t!==null&&(Array.isArray(t)?i=t:i=[t]):i=this._decorations.getFindScopes(),i!==null&&(i=i.map(a=>{if(a.startLineNumber!==a.endLineNumber){let l=a.endLineNumber;return a.endColumn===1&&(l=l-1),new A(a.startLineNumber,1,l,this._editor.getModel().getLineMaxColumn(l))}return a}));const s=this._findMatches(i,!1,nm);this._decorations.set(s,i);const o=this._editor.getSelection();let r=this._decorations.getCurrentMatchesPosition(o);if(r===0&&s.length>0){const a=vL(s.map(l=>l.range),l=>A.compareRangesUsingStarts(l,o)>=0);r=a>0?a-1+1:r}this._state.changeMatchInfo(r,this._decorations.getCount(),void 0),e&&this._editor.getOption(41).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){const e=this._decorations.getFindScope();return e&&this._editor.revealRangeInCenterIfOutsideViewport(e,0),!0}return!1}_setCurrentFindMatch(e){const t=this._decorations.setCurrentFindMatch(e);this._state.changeMatchInfo(t,this._decorations.getCount(),e),this._editor.setSelection(e),this._editor.revealRangeInCenterIfOutsideViewport(e,0)}_prevSearchPosition(e){const t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:i,column:s}=e;const o=this._editor.getModel();return t||s===1?(i===1?i=o.getLineCount():i--,s=o.getLineMaxColumn(i)):s--,new ee(i,s)}_moveToPrevMatch(e,t=!1){if(!this._state.canNavigateBack()){const d=this._decorations.matchAfterPosition(e);d&&this._setCurrentFindMatch(d);return}if(this._decorations.getCount()=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:i,column:s}=e;const o=this._editor.getModel();return t||s===o.getLineMaxColumn(i)?(i===o.getLineCount()?i=1:i++,s=1):s++,new ee(i,s)}_moveToNextMatch(e){if(!this._state.canNavigateForward()){const i=this._decorations.matchBeforePosition(e);i&&this._setCurrentFindMatch(i);return}if(this._decorations.getCount()Ax._getSearchRange(this._editor.getModel(),o));return this._editor.getModel().findMatches(this._state.searchString,s,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(131):null,t,i)}replaceAll(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();e===null&&this._state.matchesCount>=nm?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}_largeReplaceAll(){const t=new nv(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(131):null).parseSearchRequest();if(!t)return;let i=t.regex;if(!i.multiline){let u="mu";i.ignoreCase&&(u+="i"),i.global&&(u+="g"),i=new RegExp(i.source,u)}const s=this._editor.getModel(),o=s.getValue(1),r=s.getFullModelRange(),a=this._getReplacePattern();let l;const c=this._state.preserveCase;a.hasReplacementPatterns||c?l=o.replace(i,function(){return a.buildReplaceString(arguments,c)}):l=o.replace(i,a.buildReplaceString(null,c));const d=new Oz(r,l,this._editor.getSelection());this._executeEditorCommand("replaceAll",d)}_regularReplaceAll(e){const t=this._getReplacePattern(),i=this._findMatches(e,t.hasReplacementPatterns||this._state.preserveCase,1073741824),s=[];for(let r=0,a=i.length;rr.range),s);this._executeEditorCommand("replaceAll",o)}selectAllMatches(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();let i=this._findMatches(e,!1,1073741824).map(o=>new it(o.range.startLineNumber,o.range.startColumn,o.range.endLineNumber,o.range.endColumn));const s=this._editor.getSelection();for(let o=0,r=i.length;othis._hide(),2e3)),this._isVisible=!1,this._editor=e,this._state=t,this._keybindingService=i,this._domNode=document.createElement("div"),this._domNode.className="findOptionsWidget",this._domNode.style.display="none",this._domNode.style.top="10px",this._domNode.style.zIndex="12",this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true");const s={inputActiveOptionBorder:Ge(Iz),inputActiveOptionForeground:Ge(Ez),inputActiveOptionBackground:Ge(Lv)},o=this._register(XC());this.caseSensitive=this._register(new Qde({appendTitle:this._keybindingLabelFor(vn.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,hoverDelegate:o,...s})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new Jde({appendTitle:this._keybindingLabelFor(vn.ToggleWholeWordCommand),isChecked:this._state.wholeWord,hoverDelegate:o,...s})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new eue({appendTitle:this._keybindingLabelFor(vn.ToggleRegexCommand),isChecked:this._state.isRegex,hoverDelegate:o,...s})),this._domNode.appendChild(this.regex.domNode),this._register(this.regex.onChange(()=>{this._state.change({isRegex:this.regex.checked},!1)})),this._editor.addOverlayWidget(this),this._register(this._state.onFindReplaceStateChange(r=>{let a=!1;r.isRegex&&(this.regex.checked=this._state.isRegex,a=!0),r.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,a=!0),r.matchCase&&(this.caseSensitive.checked=this._state.matchCase,a=!0),!this._state.isRevealed&&a&&this._revealTemporarily()})),this._register(ce(this._domNode,Le.MOUSE_LEAVE,r=>this._onMouseLeave())),this._register(ce(this._domNode,"mouseover",r=>this._onMouseOver()))}_keybindingLabelFor(e){const t=this._keybindingService.lookupKeybinding(e);return t?` (${t.getLabel()})`:""}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return zP.ID}getDomNode(){return this._domNode}getPosition(){return{preference:0}}highlightFindOptions(){this._revealTemporarily()}_revealTemporarily(){this._show(),this._hideSoon.schedule()}_onMouseLeave(){this._hideSoon.schedule()}_onMouseOver(){this._hideSoon.cancel()}_show(){this._isVisible||(this._isVisible=!0,this._domNode.style.display="block")}_hide(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display="none")}}zP.ID="editor.contrib.findOptionsWidget";function TT(n,e){return n===1?!0:n===2?!1:e}class MXe extends ne{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return TT(this._isRegexOverride,this._isRegex)}get wholeWord(){return TT(this._wholeWordOverride,this._wholeWord)}get matchCase(){return TT(this._matchCaseOverride,this._matchCase)}get preserveCase(){return TT(this._preserveCaseOverride,this._preserveCase)}get actualIsRegex(){return this._isRegex}get actualWholeWord(){return this._wholeWord}get actualMatchCase(){return this._matchCase}get actualPreserveCase(){return this._preserveCase}get searchScope(){return this._searchScope}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get currentMatch(){return this._currentMatch}constructor(){super(),this._onFindReplaceStateChange=this._register(new X),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString="",this._replaceString="",this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0,this._isSearching=!1,this._filters=null}changeMatchInfo(e,t,i){const s={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let o=!1;t===0&&(e=0),e>t&&(e=t),this._matchesPosition!==e&&(this._matchesPosition=e,s.matchesPosition=!0,o=!0),this._matchesCount!==t&&(this._matchesCount=t,s.matchesCount=!0,o=!0),typeof i<"u"&&(A.equalsRange(this._currentMatch,i)||(this._currentMatch=i,s.currentMatch=!0,o=!0)),o&&this._onFindReplaceStateChange.fire(s)}change(e,t,i=!0){var s;const o={moveCursor:t,updateHistory:i,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let r=!1;const a=this.isRegex,l=this.wholeWord,c=this.matchCase,d=this.preserveCase;typeof e.searchString<"u"&&this._searchString!==e.searchString&&(this._searchString=e.searchString,o.searchString=!0,r=!0),typeof e.replaceString<"u"&&this._replaceString!==e.replaceString&&(this._replaceString=e.replaceString,o.replaceString=!0,r=!0),typeof e.isRevealed<"u"&&this._isRevealed!==e.isRevealed&&(this._isRevealed=e.isRevealed,o.isRevealed=!0,r=!0),typeof e.isReplaceRevealed<"u"&&this._isReplaceRevealed!==e.isReplaceRevealed&&(this._isReplaceRevealed=e.isReplaceRevealed,o.isReplaceRevealed=!0,r=!0),typeof e.isRegex<"u"&&(this._isRegex=e.isRegex),typeof e.wholeWord<"u"&&(this._wholeWord=e.wholeWord),typeof e.matchCase<"u"&&(this._matchCase=e.matchCase),typeof e.preserveCase<"u"&&(this._preserveCase=e.preserveCase),typeof e.searchScope<"u"&&(!((s=e.searchScope)===null||s===void 0)&&s.every(u=>{var h;return(h=this._searchScope)===null||h===void 0?void 0:h.some(f=>!A.equalsRange(f,u))})||(this._searchScope=e.searchScope,o.searchScope=!0,r=!0)),typeof e.loop<"u"&&this._loop!==e.loop&&(this._loop=e.loop,o.loop=!0,r=!0),typeof e.isSearching<"u"&&this._isSearching!==e.isSearching&&(this._isSearching=e.isSearching,o.isSearching=!0,r=!0),typeof e.filters<"u"&&(this._filters?this._filters.update(e.filters):this._filters=e.filters,o.filters=!0,r=!0),this._isRegexOverride=typeof e.isRegexOverride<"u"?e.isRegexOverride:0,this._wholeWordOverride=typeof e.wholeWordOverride<"u"?e.wholeWordOverride:0,this._matchCaseOverride=typeof e.matchCaseOverride<"u"?e.matchCaseOverride:0,this._preserveCaseOverride=typeof e.preserveCaseOverride<"u"?e.preserveCaseOverride:0,a!==this.isRegex&&(r=!0,o.isRegex=!0),l!==this.wholeWord&&(r=!0,o.wholeWord=!0),c!==this.matchCase&&(r=!0,o.matchCase=!0),d!==this.preserveCase&&(r=!0,o.preserveCase=!0),r&&this._onFindReplaceStateChange.fire(o)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition=nm}}const PXe=v("defaultLabel","input"),OXe=v("label.preserveCaseToggle","Preserve Case");class FXe extends Vw{constructor(e){var t;super({icon:Te.preserveCase,title:OXe+e.appendTitle,isChecked:e.isChecked,hoverDelegate:(t=e.hoverDelegate)!==null&&t!==void 0?t:Ur("element"),inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class BXe extends Il{constructor(e,t,i,s){super(),this._showOptionButtons=i,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new X),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new X),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new X),this._onInput=this._register(new X),this._onKeyUp=this._register(new X),this._onPreserveCaseKeyDown=this._register(new X),this.onPreserveCaseKeyDown=this._onPreserveCaseKeyDown.event,this.contextViewProvider=t,this.placeholder=s.placeholder||"",this.validation=s.validation,this.label=s.label||PXe;const o=s.appendPreserveCaseLabel||"",r=s.history||[],a=!!s.flexibleHeight,l=!!s.flexibleWidth,c=s.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new tue(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{validation:this.validation},history:r,showHistoryHint:s.showHistoryHint,flexibleHeight:a,flexibleWidth:l,flexibleMaxHeight:c,inputBoxStyles:s.inputBoxStyles})),this.preserveCase=this._register(new FXe({appendTitle:o,isChecked:!1,...s.toggleStyles})),this._register(this.preserveCase.onChange(h=>{this._onDidOptionChange.fire(h),!h&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.preserveCase.onKeyDown(h=>{this._onPreserveCaseKeyDown.fire(h)})),this._showOptionButtons?this.cachedOptionsWidth=this.preserveCase.width():this.cachedOptionsWidth=0;const d=[this.preserveCase.domNode];this.onkeydown(this.domNode,h=>{if(h.equals(15)||h.equals(17)||h.equals(9)){const f=d.indexOf(this.domNode.ownerDocument.activeElement);if(f>=0){let g=-1;h.equals(17)?g=(f+1)%d.length:h.equals(15)&&(f===0?g=d.length-1:g=f-1),h.equals(9)?(d[f].blur(),this.inputBox.focus()):g>=0&&d[g].focus(),ii.stop(h,!0)}}});const u=document.createElement("div");u.className="controls",u.style.display=this._showOptionButtons?"block":"none",u.appendChild(this.preserveCase.domNode),this.domNode.appendChild(u),e==null||e.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,h=>this._onKeyDown.fire(h)),this.onkeyup(this.inputBox.inputElement,h=>this._onKeyUp.fire(h)),this.oninput(this.inputBox.inputElement,h=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,h=>this._onMouseDown.fire(h))}enable(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.preserveCase.enable()}disable(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.preserveCase.disable()}setEnabled(e){e?this.enable():this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(e){this.preserveCase.checked=e}focusOnPreserve(){this.preserveCase.focus()}validate(){var e;(e=this.inputBox)===null||e===void 0||e.validate()}set width(e){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=e+"px"}dispose(){super.dispose()}}var ege=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},tge=function(n,e){return function(t,i){e(t,i,n)}};const EU=new He("suggestWidgetVisible",!1,v("suggestWidgetVisible","Whether suggestion are visible")),TU="historyNavigationWidgetFocus",ige="historyNavigationForwardsEnabled",nge="historyNavigationBackwardsEnabled";let wg;const NT=[];function sge(n,e){if(NT.includes(e))throw new Error("Cannot register the same widget multiple times");NT.push(e);const t=new be,i=new He(TU,!1).bindTo(n),s=new He(ige,!0).bindTo(n),o=new He(nge,!0).bindTo(n),r=()=>{i.set(!0),wg=e},a=()=>{i.set(!1),wg===e&&(wg=void 0)};return hM(e.element)&&r(),t.add(e.onDidFocus(()=>r())),t.add(e.onDidBlur(()=>a())),t.add(dt(()=>{NT.splice(NT.indexOf(e),1),a()})),{historyNavigationForwardsEnablement:s,historyNavigationBackwardsEnablement:o,dispose(){t.dispose()}}}let gW=class extends iue{constructor(e,t,i,s){super(e,t,i);const o=this._register(s.createScoped(this.inputBox.element));this._register(sge(o,this.inputBox))}};gW=ege([tge(3,Ct)],gW);let pW=class extends BXe{constructor(e,t,i,s,o=!1){super(e,t,o,i);const r=this._register(s.createScoped(this.inputBox.element));this._register(sge(r,this.inputBox))}};pW=ege([tge(3,Ct)],pW);Hr.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:pe.and(pe.has(TU),pe.equals(nge,!0),pe.not("isComposing"),EU.isEqualTo(!1)),primary:16,secondary:[528],handler:n=>{wg==null||wg.showPreviousValue()}});Hr.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:pe.and(pe.has(TU),pe.equals(ige,!0),pe.not("isComposing"),EU.isEqualTo(!1)),primary:18,secondary:[530],handler:n=>{wg==null||wg.showNextValue()}});function ote(n){var e,t;return((e=n.lookupKeybinding("history.showPrevious"))===null||e===void 0?void 0:e.getElectronAccelerator())==="Up"&&((t=n.lookupKeybinding("history.showNext"))===null||t===void 0?void 0:t.getElectronAccelerator())==="Down"}const rte=Jn("find-collapsed",Te.chevronRight,v("findCollapsedIcon","Icon to indicate that the editor find widget is collapsed.")),ate=Jn("find-expanded",Te.chevronDown,v("findExpandedIcon","Icon to indicate that the editor find widget is expanded.")),WXe=Jn("find-selection",Te.selection,v("findSelectionIcon","Icon for 'Find in Selection' in the editor find widget.")),HXe=Jn("find-replace",Te.replace,v("findReplaceIcon","Icon for 'Replace' in the editor find widget.")),VXe=Jn("find-replace-all",Te.replaceAll,v("findReplaceAllIcon","Icon for 'Replace All' in the editor find widget.")),zXe=Jn("find-previous-match",Te.arrowUp,v("findPreviousMatchIcon","Icon for 'Find Previous' in the editor find widget.")),$Xe=Jn("find-next-match",Te.arrowDown,v("findNextMatchIcon","Icon for 'Find Next' in the editor find widget.")),UXe=v("label.findDialog","Find / Replace"),jXe=v("label.find","Find"),KXe=v("placeholder.find","Find"),qXe=v("label.previousMatchButton","Previous Match"),GXe=v("label.nextMatchButton","Next Match"),ZXe=v("label.toggleSelectionFind","Find in Selection"),YXe=v("label.closeButton","Close"),XXe=v("label.replace","Replace"),QXe=v("placeholder.replace","Replace"),JXe=v("label.replaceButton","Replace"),eQe=v("label.replaceAllButton","Replace All"),tQe=v("label.toggleReplaceButton","Toggle Replace"),iQe=v("title.matchesCountLimit","Only the first {0} results are highlighted, but all find operations work on the entire text.",nm),nQe=v("label.matchesLocation","{0} of {1}"),lte=v("label.noResults","No results"),Au=419,sQe=275,oQe=sQe-54;let eS=69;const rQe=33,cte="ctrlEnterReplaceAll.windows.donotask",dte=Xt?256:2048;class l3{constructor(e){this.afterLineNumber=e,this.heightInPx=rQe,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}function ute(n,e,t){const i=!!e.match(/\n/);if(t&&i&&t.selectionStart>0){n.stopPropagation();return}}function hte(n,e,t){const i=!!e.match(/\n/);if(t&&i&&t.selectionEndthis._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange(u=>this._onStateChanged(u))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration(u=>{if(u.hasChanged(91)&&(this._codeEditor.getOption(91)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),u.hasChanged(145)&&this._tryUpdateWidgetWidth(),u.hasChanged(2)&&this.updateAccessibilitySupport(),u.hasChanged(41)){const h=this._codeEditor.getOption(41).loop;this._state.change({loop:h},!1);const f=this._codeEditor.getOption(41).addExtraSpaceOnTop;f&&!this._viewZone&&(this._viewZone=new l3(0),this._showViewZone()),!f&&this._viewZone&&this._removeViewZone()}})),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection(()=>{this._isVisible&&this._updateToggleSelectionFindButton()})),this._register(this._codeEditor.onDidFocusEditorWidget(async()=>{if(this._isVisible){const u=await this._controller.getGlobalBufferTerm();u&&u!==this._state.searchString&&(this._state.change({searchString:u},!1),this._findInput.select())}})),this._findInputFocused=VP.bindTo(r),this._findFocusTracker=this._register(ou(this._findInput.inputBox.inputElement)),this._register(this._findFocusTracker.onDidFocus(()=>{this._findInputFocused.set(!0),this._updateSearchScope()})),this._register(this._findFocusTracker.onDidBlur(()=>{this._findInputFocused.set(!1)})),this._replaceInputFocused=IU.bindTo(r),this._replaceFocusTracker=this._register(ou(this._replaceInput.inputBox.inputElement)),this._register(this._replaceFocusTracker.onDidFocus(()=>{this._replaceInputFocused.set(!0),this._updateSearchScope()})),this._register(this._replaceFocusTracker.onDidBlur(()=>{this._replaceInputFocused.set(!1)})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(41).addExtraSpaceOnTop&&(this._viewZone=new l3(0)),this._register(this._codeEditor.onDidChangeModel(()=>{this._isVisible&&(this._viewZoneId=void 0)})),this._register(this._codeEditor.onDidScrollChange(u=>{if(u.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return $P.ID}getDomNode(){return this._domNode}getPosition(){return this._isVisible?{preference:0}:null}_onStateChanged(e){if(e.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(e.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),e.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),e.isReplaceRevealed&&(this._state.isReplaceRevealed?!this._codeEditor.getOption(91)&&!this._isReplaceVisible&&(this._isReplaceVisible=!0,this._replaceInput.width=Sa(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(e.isRevealed||e.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),e.isRegex&&this._findInput.setRegex(this._state.isRegex),e.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),e.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),e.preserveCase&&this._replaceInput.setPreserveCase(this._state.preserveCase),e.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),e.searchString||e.matchesCount||e.matchesPosition){const t=this._state.searchString.length>0&&this._state.matchesCount===0;this._domNode.classList.toggle("no-results",t),this._updateMatchesCount(),this._updateButtons()}(e.searchString||e.currentMatch)&&this._layoutViewZone(),e.updateHistory&&this._delayedUpdateHistory(),e.loop&&this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,Mt)}_updateHistory(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){this._matchesCount.style.minWidth=eS+"px",this._state.matchesCount>=nm?this._matchesCount.title=iQe:this._matchesCount.title="",this._matchesCount.firstChild&&this._matchesCount.removeChild(this._matchesCount.firstChild);let e;if(this._state.matchesCount>0){let t=String(this._state.matchesCount);this._state.matchesCount>=nm&&(t+="+");let i=String(this._state.matchesPosition);i==="0"&&(i="?"),e=l0(nQe,i,t)}else e=lte;this._matchesCount.appendChild(document.createTextNode(e)),la(this._getAriaLabel(e,this._state.currentMatch,this._state.searchString)),eS=Math.max(eS,this._matchesCount.clientWidth)}_getAriaLabel(e,t,i){if(e===lte)return i===""?v("ariaSearchNoResultEmpty","{0} found",e):v("ariaSearchNoResult","{0} found for '{1}'",e,i);if(t){const s=v("ariaSearchNoResultWithLineNum","{0} found for '{1}', at {2}",e,i,t.startLineNumber+":"+t.startColumn),o=this._codeEditor.getModel();return o&&t.startLineNumber<=o.getLineCount()&&t.startLineNumber>=1?`${o.getLineContent(t.startLineNumber)}, ${s}`:s}return v("ariaSearchNoResultWithLineNumNoCurrentMatch","{0} found for '{1}'",e,i)}_updateToggleSelectionFindButton(){const e=this._codeEditor.getSelection(),t=e?e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn:!1,i=this._toggleSelectionFind.checked;this._isVisible&&(i||t)?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);const e=this._state.searchString.length>0,t=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);const i=!this._codeEditor.getOption(91);this._toggleReplaceBtn.setEnabled(this._isVisible&&i)}_reveal(){if(this._revealTimeouts.forEach(e=>{clearTimeout(e)}),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;const e=this._codeEditor.getSelection();switch(this._codeEditor.getOption(41).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":{const i=!!e&&e.startLineNumber!==e.endLineNumber;this._toggleSelectionFind.checked=i;break}}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout(()=>{this._domNode.classList.add("visible"),this._domNode.setAttribute("aria-hidden","false")},0)),this._revealTimeouts.push(setTimeout(()=>{this._findInput.validate()},200)),this._codeEditor.layoutOverlayWidget(this);let t=!0;if(this._codeEditor.getOption(41).seedSearchStringFromSelection&&e){const i=this._codeEditor.getDomNode();if(i){const s=bs(i),o=this._codeEditor.getScrolledVisiblePosition(e.getStartPosition()),r=s.left+(o?o.left:0),a=o?o.top:0;if(this._viewZone&&ae.startLineNumber&&(t=!1);const l=zae(this._domNode).left;r>l&&(t=!1);const c=this._codeEditor.getScrolledVisiblePosition(e.getEndPosition());s.left+(c?c.left:0)>l&&(t=!1)}}}this._showViewZone(t)}}_hide(e){this._revealTimeouts.forEach(t=>{clearTimeout(t)}),this._revealTimeouts=[],this._isVisible&&(this._isVisible=!1,this._updateButtons(),this._domNode.classList.remove("visible"),this._domNode.setAttribute("aria-hidden","true"),this._findInput.clearMessage(),e&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._removeViewZone())}_layoutViewZone(e){if(!this._codeEditor.getOption(41).addExtraSpaceOnTop){this._removeViewZone();return}if(!this._isVisible)return;const i=this._viewZone;this._viewZoneId!==void 0||!i||this._codeEditor.changeViewZones(s=>{i.heightInPx=this._getHeight(),this._viewZoneId=s.addZone(i),this._codeEditor.setScrollTop(e||this._codeEditor.getScrollTop()+i.heightInPx)})}_showViewZone(e=!0){if(!this._isVisible||!this._codeEditor.getOption(41).addExtraSpaceOnTop)return;this._viewZone===void 0&&(this._viewZone=new l3(0));const i=this._viewZone;this._codeEditor.changeViewZones(s=>{if(this._viewZoneId!==void 0){const o=this._getHeight();if(o===i.heightInPx)return;const r=o-i.heightInPx;i.heightInPx=o,s.layoutZone(this._viewZoneId),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+r);return}else{let o=this._getHeight();if(o-=this._codeEditor.getOption(84).top,o<=0)return;i.heightInPx=o,this._viewZoneId=s.addZone(i),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+o)}})}_removeViewZone(){this._codeEditor.changeViewZones(e=>{this._viewZoneId!==void 0&&(e.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone&&(this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),this._viewZone=void 0))})}_tryUpdateWidgetWidth(){if(!this._isVisible||!this._domNode.isConnected)return;const e=this._codeEditor.getLayoutInfo();if(e.contentWidth<=0){this._domNode.classList.add("hiddenEditor");return}else this._domNode.classList.contains("hiddenEditor")&&this._domNode.classList.remove("hiddenEditor");const i=e.width,s=e.minimap.minimapWidth;let o=!1,r=!1,a=!1;if(this._resized&&Sa(this._domNode)>Au){this._domNode.style.maxWidth=`${i-28-s-15}px`,this._replaceInput.width=Sa(this._findInput.domNode);return}if(Au+28+s>=i&&(r=!0),Au+28+s-eS>=i&&(a=!0),Au+28+s-eS>=i+50&&(o=!0),this._domNode.classList.toggle("collapsed-find-widget",o),this._domNode.classList.toggle("narrow-find-widget",a),this._domNode.classList.toggle("reduced-find-widget",r),!a&&!o&&(this._domNode.style.maxWidth=`${i-28-s-15}px`),this._findInput.layout({collapsedFindWidget:o,narrowFindWidget:a,reducedFindWidget:r}),this._resized){const l=this._findInput.inputBox.element.clientWidth;l>0&&(this._replaceInput.width=l)}else this._isReplaceVisible&&(this._replaceInput.width=Sa(this._findInput.domNode))}_getHeight(){let e=0;return e+=4,e+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(e+=4,e+=this._replaceInput.inputBox.height+2),e+=4,e}_tryUpdateHeight(){const e=this._getHeight();return this._cachedHeight!==null&&this._cachedHeight===e?!1:(this._cachedHeight=e,this._domNode.style.height=`${e}px`,!0)}focusFindInput(){this._findInput.select(),this._findInput.focus()}focusReplaceInput(){this._replaceInput.select(),this._replaceInput.focus()}highlightFindOptions(){this._findInput.highlightFindOptions()}_updateSearchScope(){if(this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){const e=this._codeEditor.getSelections();e.map(t=>{t.endColumn===1&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(t.endLineNumber-1)));const i=this._state.currentMatch;return t.startLineNumber!==t.endLineNumber&&!A.equalsRange(t,i)?t:null}).filter(t=>!!t),e.length&&this._state.change({searchScope:e},!0)}}_onFindInputMouseDown(e){e.middleButton&&e.stopPropagation()}_onFindInputKeyDown(e){if(e.equals(dte|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(` `),e.preventDefault();return}if(e.equals(2)){this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),e.preventDefault();return}if(e.equals(2066)){this._codeEditor.focus(),e.preventDefault();return}if(e.equals(16))return ute(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"));if(e.equals(18))return hte(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"))}_onReplaceInputKeyDown(e){if(e.equals(dte|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{Mo&&Lh&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(v("ctrlEnter.keybindingChanged","Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior.")),this._ctrlEnterReplaceAllWarningPrompted=!0,this._storageService.store(cte,!0,0,0)),this._replaceInput.inputBox.insertAtCursor(` `),e.preventDefault();return}if(e.equals(2)){this._findInput.focusOnCaseSensitive(),e.preventDefault();return}if(e.equals(1026)){this._findInput.focus(),e.preventDefault();return}if(e.equals(2066)){this._codeEditor.focus(),e.preventDefault();return}if(e.equals(16))return ute(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"));if(e.equals(18))return hte(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"))}getVerticalSashLeft(e){return 0}_keybindingLabelFor(e){const t=this._keybindingService.lookupKeybinding(e);return t?` (${t.getLabel()})`:""}_buildDomNode(){this._findInput=this._register(new gW(null,this._contextViewProvider,{width:oQe,label:jXe,placeholder:KXe,appendCaseSensitiveLabel:this._keybindingLabelFor(vn.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(vn.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(vn.ToggleRegexCommand),validation:d=>{if(d.length===0||!this._findInput.getRegex())return null;try{return new RegExp(d,"gu"),null}catch(u){return{content:u.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>ote(this._keybindingService),inputBoxStyles:kA,toggleStyles:LA},this._contextKeyService)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown(d=>this._onFindInputKeyDown(d))),this._register(this._findInput.inputBox.onDidChange(()=>{this._ignoreChangeEvent||this._state.change({searchString:this._findInput.getValue()},!0)})),this._register(this._findInput.onDidOptionChange(()=>{this._state.change({isRegex:this._findInput.getRegex(),wholeWord:this._findInput.getWholeWords(),matchCase:this._findInput.getCaseSensitive()},!0)})),this._register(this._findInput.onCaseSensitiveKeyDown(d=>{d.equals(1026)&&this._isReplaceVisible&&(this._replaceInput.focus(),d.preventDefault())})),this._register(this._findInput.onRegexKeyDown(d=>{d.equals(2)&&this._isReplaceVisible&&(this._replaceInput.focusOnPreserve(),d.preventDefault())})),this._register(this._findInput.inputBox.onDidHeightChange(d=>{this._tryUpdateHeight()&&this._showViewZone()})),Br&&this._register(this._findInput.onMouseDown(d=>this._onFindInputMouseDown(d))),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount();const i=this._register(XC());this._prevBtn=this._register(new Kb({label:qXe+this._keybindingLabelFor(vn.PreviousMatchFindAction),icon:zXe,hoverDelegate:i,onTrigger:()=>{Vp(this._codeEditor.getAction(vn.PreviousMatchFindAction)).run().then(void 0,Mt)}},this._hoverService)),this._nextBtn=this._register(new Kb({label:GXe+this._keybindingLabelFor(vn.NextMatchFindAction),icon:$Xe,hoverDelegate:i,onTrigger:()=>{Vp(this._codeEditor.getAction(vn.NextMatchFindAction)).run().then(void 0,Mt)}},this._hoverService));const s=document.createElement("div");s.className="find-part",s.appendChild(this._findInput.domNode);const o=document.createElement("div");o.className="find-actions",s.appendChild(o),o.appendChild(this._matchesCount),o.appendChild(this._prevBtn.domNode),o.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new Vw({icon:WXe,title:ZXe+this._keybindingLabelFor(vn.ToggleSearchScopeCommand),isChecked:!1,hoverDelegate:i,inputActiveOptionBackground:Ge(Lv),inputActiveOptionBorder:Ge(Iz),inputActiveOptionForeground:Ge(Ez)})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let d=this._codeEditor.getSelections();d=d.map(u=>(u.endColumn===1&&u.endLineNumber>u.startLineNumber&&(u=u.setEndPosition(u.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(u.endLineNumber-1))),u.isEmpty()?null:u)).filter(u=>!!u),d.length&&this._state.change({searchScope:d},!0)}}else this._state.change({searchScope:null},!0)})),o.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new Kb({label:YXe+this._keybindingLabelFor(vn.CloseFindWidgetCommand),icon:Aue,hoverDelegate:i,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:d=>{d.equals(2)&&this._isReplaceVisible&&(this._replaceBtn.isEnabled()?this._replaceBtn.focus():this._codeEditor.focus(),d.preventDefault())}},this._hoverService)),this._replaceInput=this._register(new pW(null,void 0,{label:XXe,placeholder:QXe,appendPreserveCaseLabel:this._keybindingLabelFor(vn.TogglePreserveCaseCommand),history:[],flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>ote(this._keybindingService),inputBoxStyles:kA,toggleStyles:LA},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown(d=>this._onReplaceInputKeyDown(d))),this._register(this._replaceInput.inputBox.onDidChange(()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)})),this._register(this._replaceInput.inputBox.onDidHeightChange(d=>{this._isReplaceVisible&&this._tryUpdateHeight()&&this._showViewZone()})),this._register(this._replaceInput.onDidOptionChange(()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)})),this._register(this._replaceInput.onPreserveCaseKeyDown(d=>{d.equals(2)&&(this._prevBtn.isEnabled()?this._prevBtn.focus():this._nextBtn.isEnabled()?this._nextBtn.focus():this._toggleSelectionFind.enabled?this._toggleSelectionFind.focus():this._closeBtn.isEnabled()&&this._closeBtn.focus(),d.preventDefault())}));const r=this._register(XC());this._replaceBtn=this._register(new Kb({label:JXe+this._keybindingLabelFor(vn.ReplaceOneAction),icon:HXe,hoverDelegate:r,onTrigger:()=>{this._controller.replace()},onKeyDown:d=>{d.equals(1026)&&(this._closeBtn.focus(),d.preventDefault())}},this._hoverService)),this._replaceAllBtn=this._register(new Kb({label:eQe+this._keybindingLabelFor(vn.ReplaceAllAction),icon:VXe,hoverDelegate:r,onTrigger:()=>{this._controller.replaceAll()}},this._hoverService));const a=document.createElement("div");a.className="replace-part",a.appendChild(this._replaceInput.domNode);const l=document.createElement("div");l.className="replace-actions",a.appendChild(l),l.appendChild(this._replaceBtn.domNode),l.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new Kb({label:tQe,className:"codicon toggle left",onTrigger:()=>{this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible&&(this._replaceInput.width=Sa(this._findInput.domNode),this._replaceInput.inputBox.layout()),this._showViewZone()}},this._hoverService)),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement("div"),this._domNode.className="editor-widget find-widget",this._domNode.setAttribute("aria-hidden","true"),this._domNode.ariaLabel=UXe,this._domNode.role="dialog",this._domNode.style.width=`${Au}px`,this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(s),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild(a),this._resizeSash=this._register(new Vo(this._domNode,this,{orientation:0,size:2})),this._resized=!1;let c=Au;this._register(this._resizeSash.onDidStart(()=>{c=Sa(this._domNode)})),this._register(this._resizeSash.onDidChange(d=>{this._resized=!0;const u=c+d.startX-d.currentX;if(uh||(this._domNode.style.width=`${u}px`,this._isReplaceVisible&&(this._replaceInput.width=Sa(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())})),this._register(this._resizeSash.onDidReset(()=>{const d=Sa(this._domNode);if(d{this._opts.onTrigger(),o.preventDefault()}),this.onkeydown(this._domNode,o=>{var r,a;if(o.equals(10)||o.equals(3)){this._opts.onTrigger(),o.preventDefault();return}(a=(r=this._opts).onKeyDown)===null||a===void 0||a.call(r,o)})}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(e){this._domNode.classList.toggle("disabled",!e),this._domNode.setAttribute("aria-disabled",String(!e)),this._domNode.tabIndex=e?0:-1}setExpanded(e){this._domNode.setAttribute("aria-expanded",String(!!e)),e?(this._domNode.classList.remove(..._t.asClassNameArray(rte)),this._domNode.classList.add(..._t.asClassNameArray(ate))):(this._domNode.classList.remove(..._t.asClassNameArray(ate)),this._domNode.classList.add(..._t.asClassNameArray(rte)))}}mc((n,e)=>{const t=n.getColor(Kp);t&&e.addRule(`.monaco-editor .findMatch { border: 1px ${Zd(n.type)?"dotted":"solid"} ${t}; box-sizing: border-box; }`);const i=n.getColor(LFe);i&&e.addRule(`.monaco-editor .findScope { border: 1px ${Zd(n.type)?"dashed":"solid"} ${i}; }`);const s=n.getColor(ti);s&&e.addRule(`.monaco-editor .find-widget { border: 1px solid ${s}; }`);const o=n.getColor(SFe);o&&e.addRule(`.monaco-editor .findMatchInline { color: ${o}; }`);const r=n.getColor(xFe);r&&e.addRule(`.monaco-editor .currentFindMatchInline { color: ${r}; }`)});var oge=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},zl=function(n,e){return function(t,i){e(t,i,n)}},mW;const aQe=524288;function _W(n,e="single",t=!1){if(!n.hasModel())return null;const i=n.getSelection();if(e==="single"&&i.startLineNumber===i.endLineNumber||e==="multiple"){if(i.isEmpty()){const s=n.getConfiguredWordAtPosition(i.getStartPosition());if(s&&t===!1)return s.word}else if(n.getModel().getValueLengthInRange(i)this._onStateChanged(a))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{const a=this._editor.getModel()&&this._state.isRevealed;this.disposeModel(),this._state.change({searchScope:null,matchCase:this._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:this._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,!1)},!1),a&&this._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(41).loop})}))}dispose(){this.disposeModel(),super.dispose()}disposeModel(){this._model&&(this._model.dispose(),this._model=null)}_onStateChanged(e){this.saveQueryState(e),e.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),e.searchString&&this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(e){e.isRegex&&this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,1),e.wholeWord&&this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,1),e.matchCase&&this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,1),e.preserveCase&&this._storageService.store("editor.preserveCase",this._state.actualPreserveCase,1,1)}loadQueryState(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",1,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",1,this._state.isRegex),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,this._state.preserveCase)},!1)}isFindInputFocused(){return!!VP.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleWholeWords(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}toggleRegex(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}togglePreserveCase(){this._state.change({preserveCase:!this._state.preserveCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){let e=this._editor.getSelections();e=e.map(t=>(t.endColumn===1&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._editor.getModel().getLineMaxColumn(t.endLineNumber-1))),t.isEmpty()?null:t)).filter(t=>!!t),e.length&&this._state.change({searchScope:e},!0)}}setSearchString(e){this._state.isRegex&&(e=wl(e)),this._state.change({searchString:e},!1)}highlightFindOptions(e=!1){}async _start(e,t){if(this.disposeModel(),!this._editor.hasModel())return;const i={...t,isRevealed:!0};if(e.seedSearchStringFromSelection==="single"){const s=_W(this._editor,e.seedSearchStringFromSelection,e.seedSearchStringFromNonEmptySelection);s&&(this._state.isRegex?i.searchString=wl(s):i.searchString=s)}else if(e.seedSearchStringFromSelection==="multiple"&&!e.updateSearchScope){const s=_W(this._editor,e.seedSearchStringFromSelection);s&&(i.searchString=s)}if(!i.searchString&&e.seedSearchStringFromGlobalClipboard){const s=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;s&&(i.searchString=s)}if(e.forceRevealReplace||i.isReplaceRevealed?i.isReplaceRevealed=!0:this._findWidgetVisible.get()||(i.isReplaceRevealed=!1),e.updateSearchScope){const s=this._editor.getSelections();s.some(o=>!o.isEmpty())&&(i.searchScope=s)}i.loop=e.loop,this._state.change(i,!1),this._model||(this._model=new Ax(this._editor,this._state))}start(e,t){return this._start(e,t)}moveToNextMatch(){return this._model?(this._model.moveToNextMatch(),!0):!1}moveToPrevMatch(){return this._model?(this._model.moveToPrevMatch(),!0):!1}goToMatch(e){return this._model?(this._model.moveToMatch(e),!0):!1}replace(){return this._model?(this._model.replace(),!0):!1}replaceAll(){var e;return this._model?!((e=this._editor.getModel())===null||e===void 0)&&e.isTooLargeForHeapOperation()?(this._notificationService.warn(v("too.large.for.replaceall","The file is too large to perform a replace all operation.")),!1):(this._model.replaceAll(),!0):!1}selectAllMatches(){return this._model?(this._model.selectAllMatches(),this._editor.focus(),!0):!1}async getGlobalBufferTerm(){return this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():""}setGlobalBufferTerm(e){this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(e)}};Vr.ID="editor.contrib.findController";Vr=mW=oge([zl(1,Ct),zl(2,dd),zl(3,zg),zl(4,ps),zl(5,$h)],Vr);let vW=class extends Vr{constructor(e,t,i,s,o,r,a,l,c){super(e,i,a,l,r,c),this._contextViewService=t,this._keybindingService=s,this._themeService=o,this._widget=null,this._findOptionsWidget=null}async _start(e,t){this._widget||this._createFindWidget();const i=this._editor.getSelection();let s=!1;switch(this._editor.getOption(41).autoFindInSelection){case"always":s=!0;break;case"never":s=!1;break;case"multiline":{s=!!i&&i.startLineNumber!==i.endLineNumber;break}}e.updateSearchScope=e.updateSearchScope||s,await super._start(e,t),this._widget&&(e.shouldFocus===2?this._widget.focusReplaceInput():e.shouldFocus===1&&this._widget.focusFindInput())}highlightFindOptions(e=!1){this._widget||this._createFindWidget(),this._state.isRevealed&&!e?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new $P(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService,this._hoverService)),this._findOptionsWidget=this._register(new zP(this._editor,this._state,this._keybindingService))}};vW=oge([zl(1,Wg),zl(2,Ct),zl(3,Li),zl(4,js),zl(5,ps),zl(6,dd),zl(7,zg),zl(8,$h)],vW);const lQe=ole(new sle({id:vn.StartFindAction,label:v("startFindAction","Find"),alias:"Find",precondition:pe.or(W.focus,pe.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:R.MenubarEditMenu,group:"3_find",title:v({},"&&Find"),order:1}}));lQe.addImplementation(0,(n,e,t)=>{const i=Vr.get(e);return i?i.start({forceRevealReplace:!1,seedSearchStringFromSelection:e.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:e.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:e.getOption(41).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:e.getOption(41).loop}):!1});const cQe={description:"Open a new In-Editor Find Widget.",args:[{name:"Open a new In-Editor Find Widget args",schema:{properties:{searchString:{type:"string"},replaceString:{type:"string"},isRegex:{type:"boolean"},matchWholeWord:{type:"boolean"},isCaseSensitive:{type:"boolean"},preserveCase:{type:"boolean"},findInSelection:{type:"boolean"}}}}]};class dQe extends Ke{constructor(){super({id:vn.StartFindWithArgs,label:v("startFindWithArgsAction","Find With Arguments"),alias:"Find With Arguments",precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:cQe})}async run(e,t,i){const s=Vr.get(t);if(s){const o=i?{searchString:i.searchString,replaceString:i.replaceString,isReplaceRevealed:i.replaceString!==void 0,isRegex:i.isRegex,wholeWord:i.matchWholeWord,matchCase:i.isCaseSensitive,preserveCase:i.preserveCase}:{};await s.start({forceRevealReplace:!1,seedSearchStringFromSelection:s.getState().searchString.length===0&&t.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:t.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:(i==null?void 0:i.findInSelection)||!1,loop:t.getOption(41).loop},o),s.setGlobalBufferTerm(s.getState().searchString)}}}class uQe extends Ke{constructor(){super({id:vn.StartFindWithSelection,label:v("startFindWithSelectionAction","Find With Selection"),alias:"Find With Selection",precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(e,t){const i=Vr.get(t);i&&(await i.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),i.setGlobalBufferTerm(i.getState().searchString))}}class rge extends Ke{async run(e,t){const i=Vr.get(t);i&&!this._run(i)&&(await i.start({forceRevealReplace:!1,seedSearchStringFromSelection:i.getState().searchString.length===0&&t.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:t.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),this._run(i))}}class hQe extends rge{constructor(){super({id:vn.NextMatchFindAction,label:v("findNextMatchAction","Find Next"),alias:"Find Next",precondition:void 0,kbOpts:[{kbExpr:W.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:pe.and(W.focus,VP),primary:3,weight:100}]})}_run(e){return e.moveToNextMatch()?(e.editor.pushUndoStop(),!0):!1}}class fQe extends rge{constructor(){super({id:vn.PreviousMatchFindAction,label:v("findPreviousMatchAction","Find Previous"),alias:"Find Previous",precondition:void 0,kbOpts:[{kbExpr:W.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:pe.and(W.focus,VP),primary:1027,weight:100}]})}_run(e){return e.moveToPrevMatch()}}class gQe extends Ke{constructor(){super({id:vn.GoToMatchFindAction,label:v("findMatchAction.goToMatch","Go to Match..."),alias:"Go to Match...",precondition:Ug}),this._highlightDecorations=[]}run(e,t,i){const s=Vr.get(t);if(!s)return;const o=s.getState().matchesCount;if(o<1){e.get(ps).notify({severity:$M.Warning,message:v("findMatchAction.noResults","No matches. Try searching for something else.")});return}const a=e.get(Cc).createInputBox();a.placeholder=v("findMatchAction.inputPlaceHolder","Type a number to go to a specific match (between 1 and {0})",o);const l=d=>{const u=parseInt(d);if(isNaN(u))return;const h=s.getState().matchesCount;if(u>0&&u<=h)return u-1;if(u<0&&u>=-h)return h+u},c=d=>{const u=l(d);if(typeof u=="number"){a.validationMessage=void 0,s.goToMatch(u);const h=s.getState().currentMatch;h&&this.addDecorations(t,h)}else a.validationMessage=v("findMatchAction.inputValidationMessage","Please type a number between 1 and {0}",s.getState().matchesCount),this.clearDecorations(t)};a.onDidChangeValue(d=>{c(d)}),a.onDidAccept(()=>{const d=l(a.value);typeof d=="number"?(s.goToMatch(d),a.hide()):a.validationMessage=v("findMatchAction.inputValidationMessage","Please type a number between 1 and {0}",s.getState().matchesCount)}),a.onDidHide(()=>{this.clearDecorations(t),a.dispose()}),a.show()}clearDecorations(e){e.changeDecorations(t=>{this._highlightDecorations=t.deltaDecorations(this._highlightDecorations,[])})}addDecorations(e,t){e.changeDecorations(i=>{this._highlightDecorations=i.deltaDecorations(this._highlightDecorations,[{range:t,options:{description:"find-match-quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:t,options:{description:"find-match-quick-access-range-highlight-overview",overviewRuler:{color:Yn(ace),position:Sl.Full}}}])})}}class age extends Ke{async run(e,t){const i=Vr.get(t);if(!i)return;const s=_W(t,"single",!1);s&&i.setSearchString(s),this._run(i)||(await i.start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),this._run(i))}}class pQe extends age{constructor(){super({id:vn.NextSelectionMatchFindAction,label:v("nextSelectionMatchFindAction","Find Next Selection"),alias:"Find Next Selection",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:2109,weight:100}})}_run(e){return e.moveToNextMatch()}}class mQe extends age{constructor(){super({id:vn.PreviousSelectionMatchFindAction,label:v("previousSelectionMatchFindAction","Find Previous Selection"),alias:"Find Previous Selection",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:3133,weight:100}})}_run(e){return e.moveToPrevMatch()}}const _Qe=ole(new sle({id:vn.StartFindReplaceAction,label:v("startReplace","Replace"),alias:"Replace",precondition:pe.or(W.focus,pe.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:R.MenubarEditMenu,group:"3_find",title:v({},"&&Replace"),order:2}}));_Qe.addImplementation(0,(n,e,t)=>{if(!e.hasModel()||e.getOption(91))return!1;const i=Vr.get(e);if(!i)return!1;const s=e.getSelection(),o=i.isFindInputFocused(),r=!s.isEmpty()&&s.startLineNumber===s.endLineNumber&&e.getOption(41).seedSearchStringFromSelection!=="never"&&!o,a=o||r?2:1;return i.start({forceRevealReplace:!0,seedSearchStringFromSelection:r?"single":"none",seedSearchStringFromNonEmptySelection:e.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:e.getOption(41).seedSearchStringFromSelection!=="never",shouldFocus:a,shouldAnimate:!0,updateSearchScope:!1,loop:e.getOption(41).loop})});bi(Vr.ID,vW,0);xe(dQe);xe(uQe);xe(hQe);xe(fQe);xe(gQe);xe(pQe);xe(mQe);const Cu=Us.bindToContribution(Vr.get);Fe(new Cu({id:vn.CloseFindWidgetCommand,precondition:Ug,handler:n=>n.closeFindWidget(),kbOpts:{weight:105,kbExpr:pe.and(W.focus,pe.not("isComposing")),primary:9,secondary:[1033]}}));Fe(new Cu({id:vn.ToggleCaseSensitiveCommand,precondition:void 0,handler:n=>n.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:W.focus,primary:LT.primary,mac:LT.mac,win:LT.win,linux:LT.linux}}));Fe(new Cu({id:vn.ToggleWholeWordCommand,precondition:void 0,handler:n=>n.toggleWholeWords(),kbOpts:{weight:105,kbExpr:W.focus,primary:kT.primary,mac:kT.mac,win:kT.win,linux:kT.linux}}));Fe(new Cu({id:vn.ToggleRegexCommand,precondition:void 0,handler:n=>n.toggleRegex(),kbOpts:{weight:105,kbExpr:W.focus,primary:DT.primary,mac:DT.mac,win:DT.win,linux:DT.linux}}));Fe(new Cu({id:vn.ToggleSearchScopeCommand,precondition:void 0,handler:n=>n.toggleSearchScope(),kbOpts:{weight:105,kbExpr:W.focus,primary:IT.primary,mac:IT.mac,win:IT.win,linux:IT.linux}}));Fe(new Cu({id:vn.TogglePreserveCaseCommand,precondition:void 0,handler:n=>n.togglePreserveCase(),kbOpts:{weight:105,kbExpr:W.focus,primary:ET.primary,mac:ET.mac,win:ET.win,linux:ET.linux}}));Fe(new Cu({id:vn.ReplaceOneAction,precondition:Ug,handler:n=>n.replace(),kbOpts:{weight:105,kbExpr:W.focus,primary:3094}}));Fe(new Cu({id:vn.ReplaceOneAction,precondition:Ug,handler:n=>n.replace(),kbOpts:{weight:105,kbExpr:pe.and(W.focus,IU),primary:3}}));Fe(new Cu({id:vn.ReplaceAllAction,precondition:Ug,handler:n=>n.replaceAll(),kbOpts:{weight:105,kbExpr:W.focus,primary:2563}}));Fe(new Cu({id:vn.ReplaceAllAction,precondition:Ug,handler:n=>n.replaceAll(),kbOpts:{weight:105,kbExpr:pe.and(W.focus,IU),primary:void 0,mac:{primary:2051}}}));Fe(new Cu({id:vn.SelectAllMatchesAction,precondition:Ug,handler:n=>n.selectAllMatches(),kbOpts:{weight:105,kbExpr:W.focus,primary:515}}));const vQe={0:" ",1:"u",2:"r"},fte=65535,Nd=16777215,gte=4278190080;class c3{constructor(e){const t=Math.ceil(e/32);this._states=new Uint32Array(t)}get(e){const t=e/32|0,i=e%32;return(this._states[t]&1<fte)throw new Error("invalid startIndexes or endIndexes size");this._startIndexes=e,this._endIndexes=t,this._collapseStates=new c3(e.length),this._userDefinedStates=new c3(e.length),this._recoveredStates=new c3(e.length),this._types=i,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;const e=[],t=(i,s)=>{const o=e[e.length-1];return this.getStartLineNumber(o)<=i&&this.getEndLineNumber(o)>=s};for(let i=0,s=this._startIndexes.length;iNd||r>Nd)throw new Error("startLineNumber or endLineNumber must not exceed "+Nd);for(;e.length>0&&!t(o,r);)e.pop();const a=e.length>0?e[e.length-1]:-1;e.push(i),this._startIndexes[i]=o+((a&255)<<24),this._endIndexes[i]=r+((a&65280)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(e){return this._startIndexes[e]&Nd}getEndLineNumber(e){return this._endIndexes[e]&Nd}getType(e){return this._types?this._types[e]:void 0}hasTypes(){return!!this._types}isCollapsed(e){return this._collapseStates.get(e)}setCollapsed(e,t){this._collapseStates.set(e,t)}isUserDefined(e){return this._userDefinedStates.get(e)}setUserDefined(e,t){return this._userDefinedStates.set(e,t)}isRecovered(e){return this._recoveredStates.get(e)}setRecovered(e,t){return this._recoveredStates.set(e,t)}getSource(e){return this.isUserDefined(e)?1:this.isRecovered(e)?2:0}setSource(e,t){t===1?(this.setUserDefined(e,!0),this.setRecovered(e,!1)):t===2?(this.setUserDefined(e,!1),this.setRecovered(e,!0)):(this.setUserDefined(e,!1),this.setRecovered(e,!1))}setCollapsedAllOfType(e,t){let i=!1;if(this._types)for(let s=0;s>>24)+((this._endIndexes[e]>e)>>>16);return t===fte?-1:t}contains(e,t){return this.getStartLineNumber(e)<=t&&this.getEndLineNumber(e)>=t}findIndex(e){let t=0,i=this._startIndexes.length;if(i===0)return-1;for(;t=0){if(this.getEndLineNumber(t)>=e)return t;for(t=this.getParentIndex(t);t!==-1;){if(this.contains(t,e))return t;t=this.getParentIndex(t)}}return-1}toString(){const e=[];for(let t=0;tArray.isArray(p)?b=>b<_?p[b]:void 0:b=>b<_?p.toFoldRange(b):void 0,o=s(e,e.length),r=s(t,t.length);let a=0,l=0,c=o(0),d=r(0);const u=[];let h,f=0;const g=[];for(;c||d;){let p;if(d&&(!c||c.startLineNumber>=d.startLineNumber))c&&c.startLineNumber===d.startLineNumber?(d.source===1?p=d:(p=c,p.isCollapsed=d.isCollapsed&&c.endLineNumber===d.endLineNumber,p.source=0),c=o(++a)):(p=d,d.isCollapsed&&d.source===0&&(p.source=2)),d=r(++l);else{let _=l,b=d;for(;;){if(!b||b.startLineNumber>c.endLineNumber){p=c;break}if(b.source===1&&b.endLineNumber>c.endLineNumber)break;b=r(++_)}c=o(++a)}if(p){for(;h&&h.endLineNumberp.startLineNumber&&p.startLineNumber>f&&p.endLineNumber<=i&&(!h||h.endLineNumber>=p.endLineNumber)&&(g.push(p),f=p.startLineNumber,h&&u.push(h),h=p)}}return g}}class bQe{constructor(e,t){this.ranges=e,this.index=t}get startLineNumber(){return this.ranges.getStartLineNumber(this.index)}get endLineNumber(){return this.ranges.getEndLineNumber(this.index)}get regionIndex(){return this.index}get parentIndex(){return this.ranges.getParentIndex(this.index)}get isCollapsed(){return this.ranges.isCollapsed(this.index)}containedBy(e){return e.startLineNumber<=this.startLineNumber&&e.endLineNumber>=this.endLineNumber}containsLine(e){return this.startLineNumber<=e&&e<=this.endLineNumber}}class CQe{get regions(){return this._regions}get textModel(){return this._textModel}constructor(e,t){this._updateEventEmitter=new X,this.onDidChange=this._updateEventEmitter.event,this._textModel=e,this._decorationProvider=t,this._regions=new al(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}toggleCollapseState(e){if(!e.length)return;e=e.sort((i,s)=>i.regionIndex-s.regionIndex);const t={};this._decorationProvider.changeDecorations(i=>{let s=0,o=-1,r=-1;const a=l=>{for(;sr&&(r=c),s++}};for(const l of e){const c=l.regionIndex,d=this._editorDecorationIds[c];if(d&&!t[d]){t[d]=!0,a(c);const u=!this._regions.isCollapsed(c);this._regions.setCollapsed(c,u),o=Math.max(o,this._regions.getEndLineNumber(c))}}a(this._regions.length)}),this._updateEventEmitter.fire({model:this,collapseStateChanged:e})}removeManualRanges(e){const t=new Array,i=s=>{for(const o of e)if(!(o.startLineNumber>s.endLineNumber||s.startLineNumber>o.endLineNumber))return!0;return!1};for(let s=0;si&&(i=a)}this._decorationProvider.changeDecorations(s=>this._editorDecorationIds=s.deltaDecorations(this._editorDecorationIds,t)),this._regions=e,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(e=[]){const t=(s,o)=>{for(const r of e)if(s=r.endLineNumber||r.startLineNumber<1||r.endLineNumber>i)continue;const a=this._getLinesChecksum(r.startLineNumber+1,r.endLineNumber);t.push({startLineNumber:r.startLineNumber,endLineNumber:r.endLineNumber,isCollapsed:r.isCollapsed,source:r.source,checksum:a})}return t.length>0?t:void 0}applyMemento(e){var t,i;if(!Array.isArray(e))return;const s=[],o=this._textModel.getLineCount();for(const a of e){if(a.startLineNumber>=a.endLineNumber||a.startLineNumber<1||a.endLineNumber>o)continue;const l=this._getLinesChecksum(a.startLineNumber+1,a.endLineNumber);(!a.checksum||l===a.checksum)&&s.push({startLineNumber:a.startLineNumber,endLineNumber:a.endLineNumber,type:void 0,isCollapsed:(t=a.isCollapsed)!==null&&t!==void 0?t:!0,source:(i=a.source)!==null&&i!==void 0?i:0})}const r=al.sanitizeAndMerge(this._regions,s,o);this.updatePost(al.fromFoldRanges(r))}_getLinesChecksum(e,t){return aM(this._textModel.getLineContent(e)+this._textModel.getLineContent(t))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds)}getAllRegionsAtLine(e,t){const i=[];if(this._regions){let s=this._regions.findRange(e),o=1;for(;s>=0;){const r=this._regions.toRegion(s);(!t||t(r,o))&&i.push(r),o++,s=r.parentIndex}}return i}getRegionAtLine(e){if(this._regions){const t=this._regions.findRange(e);if(t>=0)return this._regions.toRegion(t)}return null}getRegionsInside(e,t){const i=[],s=e?e.regionIndex+1:0,o=e?e.endLineNumber:Number.MAX_VALUE;if(t&&t.length===2){const r=[];for(let a=s,l=this._regions.length;a0&&!c.containedBy(r[r.length-1]);)r.pop();r.push(c),t(c,r.length)&&i.push(c)}else break}}else for(let r=s,a=this._regions.length;r1){const a=n.getRegionsInside(o,(l,c)=>l.isCollapsed!==r&&c0)for(const o of i){const r=n.getRegionAtLine(o);if(r&&(r.isCollapsed!==e&&s.push(r),t>1)){const a=n.getRegionsInside(r,(l,c)=>l.isCollapsed!==e&&cr.isCollapsed!==e&&aa.isCollapsed!==e&&l<=t);s.push(...r)}n.toggleCollapseState(s)}function wQe(n,e,t){const i=[];for(const s of t){const o=n.getAllRegionsAtLine(s,r=>r.isCollapsed!==e);o.length>0&&i.push(o[0])}n.toggleCollapseState(i)}function yQe(n,e,t,i){const s=(r,a)=>a===e&&r.isCollapsed!==t&&!i.some(l=>r.containsLine(l)),o=n.getRegionsInside(null,s);n.toggleCollapseState(o)}function dge(n,e,t){const i=[];for(const r of t){const a=n.getAllRegionsAtLine(r,void 0);a.length>0&&i.push(a[0])}const s=r=>i.every(a=>!a.containedBy(r)&&!r.containedBy(a))&&r.isCollapsed!==e,o=n.getRegionsInside(null,s);n.toggleCollapseState(o)}function NU(n,e,t){const i=n.textModel,s=n.regions,o=[];for(let r=s.length-1;r>=0;r--)if(t!==s.isCollapsed(r)){const a=s.getStartLineNumber(r);e.test(i.getLineContent(a))&&o.push(s.toRegion(r))}n.toggleCollapseState(o)}function AU(n,e,t){const i=n.regions,s=[];for(let o=i.length-1;o>=0;o--)t!==i.isCollapsed(o)&&e===i.getType(o)&&s.push(i.toRegion(o));n.toggleCollapseState(s)}function SQe(n,e){let t=null;const i=e.getRegionAtLine(n);if(i!==null&&(t=i.startLineNumber,n===t)){const s=i.parentIndex;s!==-1?t=e.regions.getStartLineNumber(s):t=null}return t}function xQe(n,e){let t=e.getRegionAtLine(n);if(t!==null&&t.startLineNumber===n){if(n!==t.startLineNumber)return t.startLineNumber;{const i=t.parentIndex;let s=0;for(i!==-1&&(s=e.regions.getStartLineNumber(t.parentIndex));t!==null;)if(t.regionIndex>0){if(t=e.regions.toRegion(t.regionIndex-1),t.startLineNumber<=s)return null;if(t.parentIndex===i)return t.startLineNumber}else return null}}else if(e.regions.length>0)for(t=e.regions.toRegion(e.regions.length-1);t!==null;){if(t.startLineNumber0?t=e.regions.toRegion(t.regionIndex-1):t=null}return null}function LQe(n,e){let t=e.getRegionAtLine(n);if(t!==null&&t.startLineNumber===n){const i=t.parentIndex;let s=0;if(i!==-1)s=e.regions.getEndLineNumber(t.parentIndex);else{if(e.regions.length===0)return null;s=e.regions.getEndLineNumber(e.regions.length-1)}for(;t!==null;)if(t.regionIndex=s)return null;if(t.parentIndex===i)return t.startLineNumber}else return null}else if(e.regions.length>0)for(t=e.regions.toRegion(0);t!==null;){if(t.startLineNumber>n)return t.startLineNumber;t.regionIndexthis.updateHiddenRanges()),this._hiddenRanges=[],e.regions.length&&this.updateHiddenRanges()}notifyChangeModelContent(e){this._hiddenRanges.length&&!this._hasLineChanges&&(this._hasLineChanges=e.changes.some(t=>t.range.endLineNumber!==t.range.startLineNumber||Hm(t.text)[0]!==0))}updateHiddenRanges(){let e=!1;const t=[];let i=0,s=0,o=Number.MAX_VALUE,r=-1;const a=this._foldingModel.regions;for(;i0}isHidden(e){return pte(this._hiddenRanges,e)!==null}adjustSelections(e){let t=!1;const i=this._foldingModel.textModel;let s=null;const o=r=>((!s||!DQe(r,s))&&(s=pte(this._hiddenRanges,r)),s?s.startLineNumber-1:null);for(let r=0,a=e.length;r0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)}}function DQe(n,e){return n>=e.startLineNumber&&n<=e.endLineNumber}function pte(n,e){const t=vL(n,i=>e=0&&n[t].endLineNumber>=e?n[t]:null}const IQe=5e3,EQe="indent";class RU{constructor(e,t,i){this.editorModel=e,this.languageConfigurationService=t,this.foldingRangesLimit=i,this.id=EQe}dispose(){}compute(e){const t=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,i=t&&!!t.offSide,s=t&&t.markers;return Promise.resolve(AQe(this.editorModel,i,s,this.foldingRangesLimit))}}let TQe=class{constructor(e){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=e}insertFirst(e,t,i){if(e>Nd||t>Nd)return;const s=this._length;this._startIndexes[s]=e,this._endIndexes[s]=t,this._length++,i<1e3&&(this._indentOccurrences[i]=(this._indentOccurrences[i]||0)+1)}toIndentRanges(e){const t=this._foldingRangesLimit.limit;if(this._length<=t){this._foldingRangesLimit.update(this._length,!1);const i=new Uint32Array(this._length),s=new Uint32Array(this._length);for(let o=this._length-1,r=0;o>=0;o--,r++)i[r]=this._startIndexes[o],s[r]=this._endIndexes[o];return new al(i,s)}else{this._foldingRangesLimit.update(this._length,t);let i=0,s=this._indentOccurrences.length;for(let l=0;lt){s=l;break}i+=c}}const o=e.getOptions().tabSize,r=new Uint32Array(t),a=new Uint32Array(t);for(let l=this._length-1,c=0;l>=0;l--){const d=this._startIndexes[l],u=e.getLineContent(d),h=WM(u,o);(h{}};function AQe(n,e,t,i=NQe){const s=n.getOptions().tabSize,o=new TQe(i);let r;t&&(r=new RegExp(`(${t.start.source})|(?:${t.end.source})`));const a=[],l=n.getLineCount()+1;a.push({indent:-1,endAbove:l,line:l});for(let c=n.getLineCount();c>0;c--){const d=n.getLineContent(c),u=WM(d,s);let h=a[a.length-1];if(u===-1){e&&(h.endAbove=c);continue}let f;if(r&&(f=d.match(r)))if(f[1]){let g=a.length-1;for(;g>0&&a[g].indent!==-2;)g--;if(g>0){a.length=g+1,h=a[g],o.insertFirst(c,h.line,u),h.line=c,h.indent=u,h.endAbove=c;continue}}else{a.push({indent:-2,endAbove:c,line:c});continue}if(h.indent>u){do a.pop(),h=a[a.length-1];while(h.indent>u);const g=h.endAbove-1;g-c>=1&&o.insertFirst(c,g,u)}h.indent===u?h.endAbove=c:a.push({indent:u,endAbove:c,line:c})}return o.toIndentRanges(n)}const RQe=V("editor.foldBackground",{light:ut(jp,.3),dark:ut(jp,.3),hcDark:null,hcLight:null},v("foldBackgroundBackground","Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0);V("editorGutter.foldingControlForeground",{dark:ah,light:ah,hcDark:ah,hcLight:ah},v("editorGutter.foldingControlForeground","Color of the folding control in the editor gutter."));const UP=Jn("folding-expanded",Te.chevronDown,v("foldingExpandedIcon","Icon for expanded ranges in the editor glyph margin.")),jP=Jn("folding-collapsed",Te.chevronRight,v("foldingCollapsedIcon","Icon for collapsed ranges in the editor glyph margin.")),uge=Jn("folding-manual-collapsed",jP,v("foldingManualCollapedIcon","Icon for manually collapsed ranges in the editor glyph margin.")),hge=Jn("folding-manual-expanded",UP,v("foldingManualExpandedIcon","Icon for manually expanded ranges in the editor glyph margin.")),MU={color:Yn(RQe),position:1},Yw=v("linesCollapsed","Click to expand the range."),KP=v("linesExpanded","Click to collapse the range.");class xs{constructor(e){this.editor=e,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(e,t,i){return t?xs.HIDDEN_RANGE_DECORATION:this.showFoldingControls==="never"?e?this.showFoldingHighlights?xs.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:xs.NO_CONTROLS_COLLAPSED_RANGE_DECORATION:xs.NO_CONTROLS_EXPANDED_RANGE_DECORATION:e?i?this.showFoldingHighlights?xs.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:xs.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?xs.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:xs.COLLAPSED_VISUAL_DECORATION:this.showFoldingControls==="mouseover"?i?xs.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:xs.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:i?xs.MANUALLY_EXPANDED_VISUAL_DECORATION:xs.EXPANDED_VISUAL_DECORATION}changeDecorations(e){return this.editor.changeDecorations(e)}removeDecorations(e){this.editor.removeDecorations(e)}}xs.COLLAPSED_VISUAL_DECORATION=Wt.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:Yw,firstLineDecorationClassName:_t.asClassName(jP)});xs.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=Wt.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:MU,isWholeLine:!0,linesDecorationsTooltip:Yw,firstLineDecorationClassName:_t.asClassName(jP)});xs.MANUALLY_COLLAPSED_VISUAL_DECORATION=Wt.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:Yw,firstLineDecorationClassName:_t.asClassName(uge)});xs.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=Wt.register({description:"folding-manually-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:MU,isWholeLine:!0,linesDecorationsTooltip:Yw,firstLineDecorationClassName:_t.asClassName(uge)});xs.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=Wt.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:Yw});xs.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=Wt.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:MU,isWholeLine:!0,linesDecorationsTooltip:Yw});xs.EXPANDED_VISUAL_DECORATION=Wt.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+_t.asClassName(UP),linesDecorationsTooltip:KP});xs.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=Wt.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:_t.asClassName(UP),linesDecorationsTooltip:KP});xs.MANUALLY_EXPANDED_VISUAL_DECORATION=Wt.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+_t.asClassName(hge),linesDecorationsTooltip:KP});xs.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=Wt.register({description:"folding-manually-expanded-auto-hide-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:_t.asClassName(hge),linesDecorationsTooltip:KP});xs.NO_CONTROLS_EXPANDED_RANGE_DECORATION=Wt.register({description:"folding-no-controls-range-decoration",stickiness:0,isWholeLine:!0});xs.HIDDEN_RANGE_DECORATION=Wt.register({description:"folding-hidden-range-decoration",stickiness:1});const MQe={},PQe="syntax";class PU{constructor(e,t,i,s,o){this.editorModel=e,this.providers=t,this.handleFoldingRangesChange=i,this.foldingRangesLimit=s,this.fallbackRangeProvider=o,this.id=PQe,this.disposables=new be,o&&this.disposables.add(o);for(const r of t)typeof r.onDidChange=="function"&&this.disposables.add(r.onDidChange(i))}compute(e){return OQe(this.providers,this.editorModel,e).then(t=>{var i,s;return t?BQe(t,this.foldingRangesLimit):(s=(i=this.fallbackRangeProvider)===null||i===void 0?void 0:i.compute(e))!==null&&s!==void 0?s:null})}dispose(){this.disposables.dispose()}}function OQe(n,e,t){let i=null;const s=n.map((o,r)=>Promise.resolve(o.provideFoldingRanges(e,MQe,t)).then(a=>{if(!t.isCancellationRequested&&Array.isArray(a)){Array.isArray(i)||(i=[]);const l=e.getLineCount();for(const c of a)c.start>0&&c.end>c.start&&c.end<=l&&i.push({start:c.start,end:c.end,rank:r,kind:c.kind})}},as));return Promise.all(s).then(o=>i)}class FQe{constructor(e){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=e}add(e,t,i,s){if(e>Nd||t>Nd)return;const o=this._length;this._startIndexes[o]=e,this._endIndexes[o]=t,this._nestingLevels[o]=s,this._types[o]=i,this._length++,s<30&&(this._nestingLevelCounts[s]=(this._nestingLevelCounts[s]||0)+1)}toIndentRanges(){const e=this._foldingRangesLimit.limit;if(this._length<=e){this._foldingRangesLimit.update(this._length,!1);const t=new Uint32Array(this._length),i=new Uint32Array(this._length);for(let s=0;se){i=a;break}t+=l}}const s=new Uint32Array(e),o=new Uint32Array(e),r=[];for(let a=0,l=0;a{let l=r.start-a.start;return l===0&&(l=r.rank-a.rank),l}),i=new FQe(e);let s;const o=[];for(const r of t)if(!s)s=r,i.add(r.start,r.end,r.kind&&r.kind.value,o.length);else if(r.start>s.start)if(r.end<=s.end)o.push(s),s=r,i.add(r.start,r.end,r.kind&&r.kind.value,o.length);else{if(r.start>s.end){do s=o.pop();while(s&&r.start>s.end);s&&o.push(s),s=r}i.add(r.start,r.end,r.kind&&r.kind.value,o.length)}return i.toIndentRanges()}var WQe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},tS=function(n,e){return function(t,i){e(t,i,n)}},r1;const tr=new He("foldingEnabled",!1);let Rg=r1=class extends ne{static get(e){return e.getContribution(r1.ID)}static getFoldingRangeProviders(e,t){var i,s;const o=e.foldingRangeProvider.ordered(t);return(s=(i=r1._foldingRangeSelector)===null||i===void 0?void 0:i.call(r1,o,t))!==null&&s!==void 0?s:o}constructor(e,t,i,s,o,r){super(),this.contextKeyService=t,this.languageConfigurationService=i,this.languageFeaturesService=r,this.localToDispose=this._register(new be),this.editor=e,this._foldingLimitReporter=new fge(e);const a=this.editor.getOptions();this._isEnabled=a.get(43),this._useFoldingProviders=a.get(44)!=="indentation",this._unfoldOnClickAfterEndOfLine=a.get(48),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=a.get(46),this.updateDebounceInfo=o.for(r.foldingRangeProvider,"Folding",{min:200}),this.foldingModel=null,this.hiddenRangeModel=null,this.rangeProvider=null,this.foldingRegionPromise=null,this.foldingModelPromise=null,this.updateScheduler=null,this.cursorChangedScheduler=null,this.mouseDownInfo=null,this.foldingDecorationProvider=new xs(e),this.foldingDecorationProvider.showFoldingControls=a.get(110),this.foldingDecorationProvider.showFoldingHighlights=a.get(45),this.foldingEnabled=tr.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._register(this.editor.onDidChangeModel(()=>this.onModelChanged())),this._register(this.editor.onDidChangeConfiguration(l=>{if(l.hasChanged(43)&&(this._isEnabled=this.editor.getOptions().get(43),this.foldingEnabled.set(this._isEnabled),this.onModelChanged()),l.hasChanged(47)&&this.onModelChanged(),l.hasChanged(110)||l.hasChanged(45)){const c=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=c.get(110),this.foldingDecorationProvider.showFoldingHighlights=c.get(45),this.triggerFoldingModelChanged()}l.hasChanged(44)&&(this._useFoldingProviders=this.editor.getOptions().get(44)!=="indentation",this.onFoldingStrategyChanged()),l.hasChanged(48)&&(this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(48)),l.hasChanged(46)&&(this._foldingImportsByDefault=this.editor.getOptions().get(46))})),this.onModelChanged()}saveViewState(){const e=this.editor.getModel();if(!e||!this._isEnabled||e.isTooLargeForTokenization())return{};if(this.foldingModel){const t=this.foldingModel.getMemento(),i=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:t,lineCount:e.getLineCount(),provider:i,foldedImports:this._currentModelHasFoldedImports}}}restoreViewState(e){const t=this.editor.getModel();if(!(!t||!this._isEnabled||t.isTooLargeForTokenization()||!this.hiddenRangeModel)&&e&&(this._currentModelHasFoldedImports=!!e.foldedImports,e.collapsedRegions&&e.collapsedRegions.length>0&&this.foldingModel)){this._restoringViewState=!0;try{this.foldingModel.applyMemento(e.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();const e=this.editor.getModel();!this._isEnabled||!e||e.isTooLargeForTokenization()||(this._currentModelHasFoldedImports=!1,this.foldingModel=new CQe(e,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new kQe(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange(t=>this.onHiddenRangesChanges(t))),this.updateScheduler=new sd(this.updateDebounceInfo.get(e)),this.cursorChangedScheduler=new Xi(()=>this.revealCursor(),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelContent(t=>this.onDidChangeModelContent(t))),this.localToDispose.add(this.editor.onDidChangeCursorPosition(()=>this.onCursorPositionChanged())),this.localToDispose.add(this.editor.onMouseDown(t=>this.onEditorMouseDown(t))),this.localToDispose.add(this.editor.onMouseUp(t=>this.onEditorMouseUp(t))),this.localToDispose.add({dispose:()=>{var t,i;this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),(t=this.updateScheduler)===null||t===void 0||t.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,(i=this.rangeProvider)===null||i===void 0||i.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged())}onFoldingStrategyChanged(){var e;(e=this.rangeProvider)===null||e===void 0||e.dispose(),this.rangeProvider=null,this.triggerFoldingModelChanged()}getRangeProvider(e){if(this.rangeProvider)return this.rangeProvider;const t=new RU(e,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=t,this._useFoldingProviders&&this.foldingModel){const i=r1.getFoldingRangeProviders(this.languageFeaturesService,e);i.length>0&&(this.rangeProvider=new PU(e,i,()=>this.triggerFoldingModelChanged(),this._foldingLimitReporter,t))}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(e){var t;(t=this.hiddenRangeModel)===null||t===void 0||t.notifyChangeModelContent(e),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger(()=>{const e=this.foldingModel;if(!e)return null;const t=new xo,i=this.getRangeProvider(e.textModel),s=this.foldingRegionPromise=Xs(o=>i.compute(o));return s.then(o=>{if(o&&s===this.foldingRegionPromise){let r;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){const d=o.setCollapsedAllOfType(Nr.Imports.value,!0);d&&(r=uu.capture(this.editor),this._currentModelHasFoldedImports=d)}const a=this.editor.getSelections(),l=a?a.map(d=>d.startLineNumber):[];e.update(o,l),r==null||r.restore(this.editor);const c=this.updateDebounceInfo.update(e.textModel,t.elapsed());this.updateScheduler&&(this.updateScheduler.defaultDelay=c)}return e})}).then(void 0,e=>(Mt(e),null)))}onHiddenRangesChanges(e){if(this.hiddenRangeModel&&e.length&&!this._restoringViewState){const t=this.editor.getSelections();t&&this.hiddenRangeModel.adjustSelections(t)&&this.editor.setSelections(t)}this.editor.setHiddenAreas(e,this)}onCursorPositionChanged(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}revealCursor(){const e=this.getFoldingModel();e&&e.then(t=>{if(t){const i=this.editor.getSelections();if(i&&i.length>0){const s=[];for(const o of i){const r=o.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(r)&&s.push(...t.getAllRegionsAtLine(r,a=>a.isCollapsed&&r>a.startLineNumber))}s.length&&(t.toggleCollapseState(s),this.reveal(i[0].getPosition()))}}}).then(void 0,Mt)}onEditorMouseDown(e){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!e.target||!e.target.range||!e.event.leftButton&&!e.event.middleButton)return;const t=e.target.range;let i=!1;switch(e.target.type){case 4:{const s=e.target.detail,o=e.target.element.offsetLeft;if(s.offsetX-o<4)return;i=!0;break}case 7:{if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()&&!e.target.detail.isAfterLines)break;return}case 6:{if(this.hiddenRangeModel.hasRanges()){const s=this.editor.getModel();if(s&&t.startColumn===s.getLineMaxColumn(t.startLineNumber))break}return}default:return}this.mouseDownInfo={lineNumber:t.startLineNumber,iconClicked:i}}onEditorMouseUp(e){const t=this.foldingModel;if(!t||!this.mouseDownInfo||!e.target)return;const i=this.mouseDownInfo.lineNumber,s=this.mouseDownInfo.iconClicked,o=e.target.range;if(!o||o.startLineNumber!==i)return;if(s){if(e.target.type!==4)return}else{const a=this.editor.getModel();if(!a||o.startColumn!==a.getLineMaxColumn(i))return}const r=t.getRegionAtLine(i);if(r&&r.startLineNumber===i){const a=r.isCollapsed;if(s||a){const l=e.event.altKey;let c=[];if(l){const d=h=>!h.containedBy(r)&&!r.containedBy(h),u=t.getRegionsInside(null,d);for(const h of u)h.isCollapsed&&c.push(h);c.length===0&&(c=u)}else{const d=e.event.middleButton||e.event.shiftKey;if(d)for(const u of t.getRegionsInside(r))u.isCollapsed===a&&c.push(u);(a||!d||c.length===0)&&c.push(r)}t.toggleCollapseState(c),this.reveal({lineNumber:i,column:1})}}}reveal(e){this.editor.revealPositionInCenterIfOutsideViewport(e,0)}};Rg.ID="editor.contrib.folding";Rg=r1=WQe([tS(1,Ct),tS(2,gn),tS(3,ps),tS(4,_c),tS(5,Xe)],Rg);class fge{constructor(e){this.editor=e,this._onDidChange=new X,this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(47)}update(e,t){(e!==this._computed||t!==this._limited)&&(this._computed=e,this._limited=t,this._onDidChange.fire())}}class pr extends Ke{runEditorCommand(e,t,i){const s=e.get(gn),o=Rg.get(t);if(!o)return;const r=o.getFoldingModel();if(r)return this.reportTelemetry(e,t),r.then(a=>{if(a){this.invoke(o,a,t,i,s);const l=t.getSelection();l&&o.reveal(l.getStartPosition())}})}getSelectedLines(e){const t=e.getSelections();return t?t.map(i=>i.startLineNumber):[]}getLineNumbers(e,t){return e&&e.selectionLines?e.selectionLines.map(i=>i+1):this.getSelectedLines(t)}run(e,t){}}function gge(n){if(!na(n)){if(!Er(n))return!1;const e=n;if(!na(e.levels)&&!Nm(e.levels)||!na(e.direction)&&!Pr(e.direction)||!na(e.selectionLines)&&(!Array.isArray(e.selectionLines)||!e.selectionLines.every(Nm)))return!1}return!0}class HQe extends pr{constructor(){super({id:"editor.unfold",label:v("unfoldAction.label","Unfold"),alias:"Unfold",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:3166,mac:{primary:2654},weight:100},metadata:{description:"Unfold the content in the editor",args:[{name:"Unfold editor argument",description:`Property-value pairs that can be passed through this argument: * 'levels': Number of levels to unfold. If not set, defaults to 1. * 'direction': If 'up', unfold given number of levels up otherwise unfolds down. * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used. `,constraint:gge,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(e,t,i,s){const o=s&&s.levels||1,r=this.getLineNumbers(s,i);s&&s.direction==="up"?cge(t,!1,o,r):Zw(t,!1,o,r)}}class VQe extends pr{constructor(){super({id:"editor.unfoldRecursively",label:v("unFoldRecursivelyAction.label","Unfold Recursively"),alias:"Unfold Recursively",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2142),weight:100}})}invoke(e,t,i,s){Zw(t,!1,Number.MAX_VALUE,this.getSelectedLines(i))}}class zQe extends pr{constructor(){super({id:"editor.fold",label:v("foldAction.label","Fold"),alias:"Fold",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:3164,mac:{primary:2652},weight:100},metadata:{description:"Fold the content in the editor",args:[{name:"Fold editor argument",description:`Property-value pairs that can be passed through this argument: * 'levels': Number of levels to fold. * 'direction': If 'up', folds given number of levels up otherwise folds down. * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used. If no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead. `,constraint:gge,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(e,t,i,s){const o=this.getLineNumbers(s,i),r=s&&s.levels,a=s&&s.direction;typeof r!="number"&&typeof a!="string"?wQe(t,!0,o):a==="up"?cge(t,!0,r||1,o):Zw(t,!0,r||1,o)}}class $Qe extends pr{constructor(){super({id:"editor.toggleFold",label:v("toggleFoldAction.label","Toggle Fold"),alias:"Toggle Fold",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2090),weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);lge(t,1,s)}}class UQe extends pr{constructor(){super({id:"editor.foldRecursively",label:v("foldRecursivelyAction.label","Fold Recursively"),alias:"Fold Recursively",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2140),weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);Zw(t,!0,Number.MAX_VALUE,s)}}class jQe extends pr{constructor(){super({id:"editor.foldAllBlockComments",label:v("foldAllBlockComments.label","Fold All Block Comments"),alias:"Fold All Block Comments",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2138),weight:100}})}invoke(e,t,i,s,o){if(t.regions.hasTypes())AU(t,Nr.Comment.value,!0);else{const r=i.getModel();if(!r)return;const a=o.getLanguageConfiguration(r.getLanguageId()).comments;if(a&&a.blockCommentStartToken){const l=new RegExp("^\\s*"+wl(a.blockCommentStartToken));NU(t,l,!0)}}}}class KQe extends pr{constructor(){super({id:"editor.foldAllMarkerRegions",label:v("foldAllMarkerRegions.label","Fold All Regions"),alias:"Fold All Regions",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2077),weight:100}})}invoke(e,t,i,s,o){if(t.regions.hasTypes())AU(t,Nr.Region.value,!0);else{const r=i.getModel();if(!r)return;const a=o.getLanguageConfiguration(r.getLanguageId()).foldingRules;if(a&&a.markers&&a.markers.start){const l=new RegExp(a.markers.start);NU(t,l,!0)}}}}class qQe extends pr{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:v("unfoldAllMarkerRegions.label","Unfold All Regions"),alias:"Unfold All Regions",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2078),weight:100}})}invoke(e,t,i,s,o){if(t.regions.hasTypes())AU(t,Nr.Region.value,!1);else{const r=i.getModel();if(!r)return;const a=o.getLanguageConfiguration(r.getLanguageId()).foldingRules;if(a&&a.markers&&a.markers.start){const l=new RegExp(a.markers.start);NU(t,l,!1)}}}}class GQe extends pr{constructor(){super({id:"editor.foldAllExcept",label:v("foldAllExcept.label","Fold All Except Selected"),alias:"Fold All Except Selected",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2136),weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);dge(t,!0,s)}}class ZQe extends pr{constructor(){super({id:"editor.unfoldAllExcept",label:v("unfoldAllExcept.label","Unfold All Except Selected"),alias:"Unfold All Except Selected",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2134),weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);dge(t,!1,s)}}class YQe extends pr{constructor(){super({id:"editor.foldAll",label:v("foldAllAction.label","Fold All"),alias:"Fold All",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2069),weight:100}})}invoke(e,t,i){Zw(t,!0)}}class XQe extends pr{constructor(){super({id:"editor.unfoldAll",label:v("unfoldAllAction.label","Unfold All"),alias:"Unfold All",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2088),weight:100}})}invoke(e,t,i){Zw(t,!1)}}class A0 extends pr{getFoldingLevel(){return parseInt(this.id.substr(A0.ID_PREFIX.length))}invoke(e,t,i){yQe(t,this.getFoldingLevel(),!0,this.getSelectedLines(i))}}A0.ID_PREFIX="editor.foldLevel";A0.ID=n=>A0.ID_PREFIX+n;class QQe extends pr{constructor(){super({id:"editor.gotoParentFold",label:v("gotoParentFold.label","Go to Parent Fold"),alias:"Go to Parent Fold",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);if(s.length>0){const o=SQe(s[0],t);o!==null&&i.setSelection({startLineNumber:o,startColumn:1,endLineNumber:o,endColumn:1})}}}class JQe extends pr{constructor(){super({id:"editor.gotoPreviousFold",label:v("gotoPreviousFold.label","Go to Previous Folding Range"),alias:"Go to Previous Folding Range",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);if(s.length>0){const o=xQe(s[0],t);o!==null&&i.setSelection({startLineNumber:o,startColumn:1,endLineNumber:o,endColumn:1})}}}class eJe extends pr{constructor(){super({id:"editor.gotoNextFold",label:v("gotoNextFold.label","Go to Next Folding Range"),alias:"Go to Next Folding Range",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);if(s.length>0){const o=LQe(s[0],t);o!==null&&i.setSelection({startLineNumber:o,startColumn:1,endLineNumber:o,endColumn:1})}}}class tJe extends pr{constructor(){super({id:"editor.createFoldingRangeFromSelection",label:v("createManualFoldRange.label","Create Folding Range from Selection"),alias:"Create Folding Range from Selection",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2135),weight:100}})}invoke(e,t,i){var s;const o=[],r=i.getSelections();if(r){for(const a of r){let l=a.endLineNumber;a.endColumn===1&&--l,l>a.startLineNumber&&(o.push({startLineNumber:a.startLineNumber,endLineNumber:l,type:void 0,isCollapsed:!0,source:1}),i.setSelection({startLineNumber:a.startLineNumber,startColumn:1,endLineNumber:a.startLineNumber,endColumn:1}))}if(o.length>0){o.sort((l,c)=>l.startLineNumber-c.startLineNumber);const a=al.sanitizeAndMerge(t.regions,o,(s=i.getModel())===null||s===void 0?void 0:s.getLineCount());t.updatePost(al.fromFoldRanges(a))}}}}class iJe extends pr{constructor(){super({id:"editor.removeManualFoldingRanges",label:v("removeManualFoldingRanges.label","Remove Manual Folding Ranges"),alias:"Remove Manual Folding Ranges",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2137),weight:100}})}invoke(e,t,i){const s=i.getSelections();if(s){const o=[];for(const r of s){const{startLineNumber:a,endLineNumber:l}=r;o.push(l>=a?{startLineNumber:a,endLineNumber:l}:{endLineNumber:l,startLineNumber:a})}t.removeManualRanges(o),e.triggerFoldingModelChanged()}}}bi(Rg.ID,Rg,0);xe(HQe);xe(VQe);xe(zQe);xe(UQe);xe(YQe);xe(XQe);xe(jQe);xe(KQe);xe(qQe);xe(GQe);xe(ZQe);xe($Qe);xe(QQe);xe(JQe);xe(eJe);xe(tJe);xe(iJe);for(let n=1;n<=7;n++)_Pe(new A0({id:A0.ID(n),label:v("foldLevelAction.label","Fold Level {0}",n),alias:`Fold Level ${n}`,precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2048|21+n),weight:100}}));ri.registerCommand("_executeFoldingRangeProvider",async function(n,...e){const[t]=e;if(!(t instanceof pt))throw ic();const i=n.get(Xe),s=n.get(Pn).getModel(t);if(!s)throw ic();const o=n.get(qt);if(!o.getValue("editor.folding",{resource:t}))return[];const r=n.get(gn),a=o.getValue("editor.foldingStrategy",{resource:t}),l={get limit(){return o.getValue("editor.foldingMaximumRegions",{resource:t})},update:(f,g)=>{}},c=new RU(s,r,l);let d=c;if(a!=="indentation"){const f=Rg.getFoldingRangeProviders(i,s);f.length&&(d=new PU(s,f,()=>{},l,c))}const u=await d.compute(Qt.None),h=[];try{if(u)for(let f=0;f=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Rx=function(n,e){return function(t,i){e(t,i,n)}};let bk=class{constructor(e,t,i,s){this._editor=e,this._languageFeaturesService=t,this._workerService=i,this._accessibilitySignalService=s,this._disposables=new be,this._sessionDisposables=new be,this._disposables.add(t.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(e.onDidChangeModel(()=>this._update())),this._disposables.add(e.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(e.onDidChangeConfiguration(o=>{o.hasChanged(56)&&this._update()})),this._update()}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(56)||!this._editor.hasModel())return;const e=this._editor.getModel(),[t]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(e);if(!t||!t.autoFormatTriggerCharacters)return;const i=new j2;for(const s of t.autoFormatTriggerCharacters)i.add(s.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType(s=>{const o=s.charCodeAt(s.length-1);i.has(o)&&this._trigger(String.fromCharCode(o))}))}_trigger(e){if(!this._editor.hasModel()||this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;const t=this._editor.getModel(),i=this._editor.getPosition(),s=new $n,o=this._editor.onDidChangeModelContent(r=>{if(r.isFlush){s.cancel(),o.dispose();return}for(let a=0,l=r.changes.length;a{s.token.isCancellationRequested||Zo(r)&&(this._accessibilitySignalService.playSignal(At.format,{userGesture:!1}),ow.execute(this._editor,r,!0))}).finally(()=>{o.dispose()})}};bk.ID="editor.contrib.autoFormat";bk=pge([Rx(1,Xe),Rx(2,bc),Rx(3,v_)],bk);let Ck=class{constructor(e,t,i){this.editor=e,this._languageFeaturesService=t,this._instantiationService=i,this._callOnDispose=new be,this._callOnModel=new be,this._callOnDispose.add(e.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(e.onDidChangeModel(()=>this._update())),this._callOnDispose.add(e.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(t.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){this._callOnModel.clear(),this.editor.getOption(55)&&this.editor.hasModel()&&this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste(({range:e})=>this._trigger(e)))}_trigger(e){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(ohe,this.editor,e,2,bg.None,Qt.None,!1).catch(Mt))}};Ck.ID="editor.contrib.formatOnPaste";Ck=pge([Rx(1,Xe),Rx(2,ht)],Ck);class rJe extends Ke{constructor(){super({id:"editor.action.formatDocument",label:v("formatDocument.label","Format Document"),alias:"Format Document",precondition:pe.and(W.notInCompositeEditor,W.writable,W.hasDocumentFormattingProvider),kbOpts:{kbExpr:W.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}async run(e,t){if(t.hasModel()){const i=e.get(ht);await e.get(m_).showWhile(i.invokeFunction(Dqe,t,1,bg.None,Qt.None,!0),250)}}}class aJe extends Ke{constructor(){super({id:"editor.action.formatSelection",label:v("formatSelection.label","Format Selection"),alias:"Format Selection",precondition:pe.and(W.writable,W.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2084),weight:100},contextMenuOpts:{when:W.hasNonEmptySelection,group:"1_modification",order:1.31}})}async run(e,t){if(!t.hasModel())return;const i=e.get(ht),s=t.getModel(),o=t.getSelections().map(a=>a.isEmpty()?new A(a.startLineNumber,1,a.startLineNumber,s.getLineMaxColumn(a.startLineNumber)):a);await e.get(m_).showWhile(i.invokeFunction(ohe,t,o,1,bg.None,Qt.None,!0),250)}}bi(bk.ID,bk,2);bi(Ck.ID,Ck,2);xe(rJe);xe(aJe);ri.registerCommand("editor.action.format",async n=>{const e=n.get(vi).getFocusedCodeEditor();if(!e||!e.hasModel())return;const t=n.get(Sn);e.getSelection().isEmpty()?await t.executeCommand("editor.action.formatDocument"):await t.executeCommand("editor.action.formatSelection")});var lJe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},d3=function(n,e){return function(t,i){e(t,i,n)}};class M1{remove(){var e;(e=this.parent)===null||e===void 0||e.children.delete(this.id)}static findId(e,t){let i;typeof e=="string"?i=`${t.id}/${e}`:(i=`${t.id}/${e.name}`,t.children.get(i)!==void 0&&(i=`${t.id}/${e.name}_${e.range.startLineNumber}_${e.range.startColumn}`));let s=i;for(let o=0;t.children.get(s)!==void 0;o++)s=`${i}_${o}`;return s}static empty(e){return e.children.size===0}}class bW extends M1{constructor(e,t,i){super(),this.id=e,this.parent=t,this.symbol=i,this.children=new Map}}class mge extends M1{constructor(e,t,i,s){super(),this.id=e,this.parent=t,this.label=i,this.order=s,this.children=new Map}}class Mf extends M1{static create(e,t,i){const s=new $n(i),o=new Mf(t.uri),r=e.ordered(t),a=r.map((c,d)=>{var u;const h=M1.findId(`provider_${d}`,o),f=new mge(h,o,(u=c.displayName)!==null&&u!==void 0?u:"Unknown Outline Provider",d);return Promise.resolve(c.provideDocumentSymbols(t,s.token)).then(g=>{for(const p of g||[])Mf._makeOutlineElement(p,f);return f},g=>(as(g),f)).then(g=>{M1.empty(g)?g.remove():o._groups.set(h,g)})}),l=e.onDidChange(()=>{const c=e.ordered(t);zn(c,r)||s.cancel()});return Promise.all(a).then(()=>s.token.isCancellationRequested&&!i.isCancellationRequested?Mf.create(e,t,i):o._compact()).finally(()=>{s.dispose(),l.dispose(),s.dispose()})}static _makeOutlineElement(e,t){const i=M1.findId(e,t),s=new bW(i,t,e);if(e.children)for(const o of e.children)Mf._makeOutlineElement(o,s);t.children.set(s.id,s)}constructor(e){super(),this.uri=e,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}_compact(){let e=0;for(const[t,i]of this._groups)i.children.size===0?this._groups.delete(t):e+=1;if(e!==1)this.children=this._groups;else{const t=oi.first(this._groups.values());for(const[,i]of t.children)i.parent=this,this.children.set(i.id,i)}return this}getTopLevelSymbols(){const e=[];for(const t of this.children.values())t instanceof bW?e.push(t.symbol):e.push(...oi.map(t.children.values(),i=>i.symbol));return e.sort((t,i)=>A.compareRangesUsingStarts(t.range,i.range))}asListOfDocumentSymbols(){const e=this.getTopLevelSymbols(),t=[];return Mf._flattenDocumentSymbols(t,e,""),t.sort((i,s)=>ee.compare(A.getStartPosition(i.range),A.getStartPosition(s.range))||ee.compare(A.getEndPosition(s.range),A.getEndPosition(i.range)))}static _flattenDocumentSymbols(e,t,i){for(const s of t)e.push({kind:s.kind,tags:s.tags,name:s.name,detail:s.detail,containerName:s.containerName||i,range:s.range,selectionRange:s.selectionRange,children:void 0}),s.children&&Mf._flattenDocumentSymbols(e,s.children,s.name)}}const XD=Jt("IOutlineModelService");let CW=class{constructor(e,t,i){this._languageFeaturesService=e,this._disposables=new be,this._cache=new zh(10,.7),this._debounceInformation=t.for(e.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(i.onModelRemoved(s=>{this._cache.delete(s.id)}))}dispose(){this._disposables.dispose()}async getOrCreate(e,t){const i=this._languageFeaturesService.documentSymbolProvider,s=i.ordered(e);let o=this._cache.get(e.id);if(!o||o.versionId!==e.getVersionId()||!zn(o.provider,s)){const a=new $n;o={versionId:e.getVersionId(),provider:s,promiseCnt:0,source:a,promise:Mf.create(i,e,a.token),model:void 0},this._cache.set(e.id,o);const l=Date.now();o.promise.then(c=>{o.model=c,this._debounceInformation.update(e,Date.now()-l)}).catch(c=>{this._cache.delete(e.id)})}if(o.model)return o.model;o.promiseCnt+=1;const r=t.onCancellationRequested(()=>{--o.promiseCnt===0&&(o.source.cancel(),this._cache.delete(e.id))});try{return await o.promise}finally{r.dispose()}}};CW=lJe([d3(0,Xe),d3(1,_c),d3(2,Pn)],CW);ai(XD,CW,1);ri.registerCommand("_executeDocumentSymbolProvider",async function(n,...e){const[t]=e;mi(pt.isUri(t));const i=n.get(XD),o=await n.get(fa).createModelReference(t);try{return(await i.getOrCreate(o.object.textEditorModel,Qt.None)).getTopLevelSymbols()}finally{o.dispose()}});class lo extends ne{constructor(e,t){super(),this.contextKeyService=e,this.model=t,this.inlineCompletionVisible=lo.inlineSuggestionVisible.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentation=lo.inlineSuggestionHasIndentation.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentationLessThanTabSize=lo.inlineSuggestionHasIndentationLessThanTabSize.bindTo(this.contextKeyService),this.suppressSuggestions=lo.suppressSuggestions.bindTo(this.contextKeyService),this._register(Ut(i=>{const s=this.model.read(i),o=s==null?void 0:s.state.read(i),r=!!(o!=null&&o.inlineCompletion)&&(o==null?void 0:o.primaryGhostText)!==void 0&&!(o!=null&&o.primaryGhostText.isEmpty());this.inlineCompletionVisible.set(r),o!=null&&o.primaryGhostText&&(o!=null&&o.inlineCompletion)&&this.suppressSuggestions.set(o.inlineCompletion.inlineCompletion.source.inlineCompletions.suppressSuggestions)})),this._register(Ut(i=>{const s=this.model.read(i);let o=!1,r=!0;const a=s==null?void 0:s.primaryGhostText.read(i);if(s!=null&&s.selectedSuggestItem&&a&&a.parts.length>0){const{column:l,lines:c}=a.parts[0],d=c[0],u=s.textModel.getLineIndentColumn(a.lineNumber);if(l<=u){let f=fr(d);f===-1&&(f=d.length-1),o=f>0;const g=s.textModel.getOptions().tabSize;r=zs.visibleColumnFromColumn(d,f+1,g)t.equals(e.parts[i]))}renderForScreenReader(e){if(this.parts.length===0)return"";const t=this.parts[this.parts.length-1],i=e.substr(0,t.column-1);return new mz([...this.parts.map(o=>new Eg(A.fromPositions(new ee(1,o.column)),o.lines.join(` `)))]).applyToString(i).substring(this.parts[0].column-1)}isEmpty(){return this.parts.every(e=>e.lines.length===0)}get lineCount(){return 1+this.parts.reduce((e,t)=>e+t.lines.length-1,0)}}class bR{constructor(e,t,i){this.column=e,this.text=t,this.preview=i,this.lines=Wh(this.text)}equals(e){return this.column===e.column&&this.lines.length===e.lines.length&&this.lines.every((t,i)=>t===e.lines[i])}}class wW{constructor(e,t,i,s=0){this.lineNumber=e,this.columnRange=t,this.text=i,this.additionalReservedLineCount=s,this.parts=[new bR(this.columnRange.endColumnExclusive,this.text,!1)],this.newLines=Wh(this.text)}renderForScreenReader(e){return this.newLines.join(` `)}get lineCount(){return this.newLines.length}isEmpty(){return this.parts.every(e=>e.lines.length===0)}equals(e){return this.lineNumber===e.lineNumber&&this.columnRange.equals(e.columnRange)&&this.newLines.length===e.newLines.length&&this.newLines.every((t,i)=>t===e.newLines[i])&&this.additionalReservedLineCount===e.additionalReservedLineCount}}function mte(n,e){return zn(n,e,_ge)}function _ge(n,e){return n===e?!0:!n||!e?!1:n instanceof wk&&e instanceof wk||n instanceof wW&&e instanceof wW?n.equals(e):!1}const cJe=[];function dJe(){return cJe}class vge{constructor(e,t){if(this.startColumn=e,this.endColumnExclusive=t,e>t)throw new Gi(`startColumn ${e} cannot be after endColumnExclusive ${t}`)}toRange(e){return new A(e,this.startColumn,e,this.endColumnExclusive)}equals(e){return this.startColumn===e.startColumn&&this.endColumnExclusive===e.endColumnExclusive}}function bge(n,e){const t=new be,i=n.createDecorationsCollection();return t.add(tP({debugName:()=>`Apply decorations from ${e.debugName}`},s=>{const o=e.read(s);i.set(o)})),t.add({dispose:()=>{i.clear()}}),t}function uJe(n,e){return new ee(n.lineNumber+e.lineNumber-1,e.lineNumber===1?n.column+e.column-1:e.column)}function _te(n,e){return new ee(n.lineNumber-e.lineNumber+1,n.lineNumber-e.lineNumber===0?n.column-e.column+1:n.column)}var hJe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},fJe=function(n,e){return function(t,i){e(t,i,n)}};const vte="ghost-text";let yW=class extends ne{constructor(e,t,i){super(),this.editor=e,this.model=t,this.languageService=i,this.isDisposed=li(this,!1),this.currentTextModel=qi(this.editor.onDidChangeModel,()=>this.editor.getModel()),this.uiState=Rt(this,s=>{if(this.isDisposed.read(s))return;const o=this.currentTextModel.read(s);if(o!==this.model.targetTextModel.read(s))return;const r=this.model.ghostText.read(s);if(!r)return;const a=r instanceof wW?r.columnRange:void 0,l=[],c=[];function d(p,_){if(c.length>0){const b=c[c.length-1];_&&b.decorations.push(new Rr(b.content.length+1,b.content.length+1+p[0].length,_,0)),b.content+=p[0],p=p.slice(1)}for(const b of p)c.push({content:b,decorations:_?[new Rr(1,b.length+1,_,0)]:[]})}const u=o.getLineContent(r.lineNumber);let h,f=0;for(const p of r.parts){let _=p.lines;h===void 0?(l.push({column:p.column,text:_[0],preview:p.preview}),_=_.slice(1)):d([u.substring(f,p.column-1)],void 0),_.length>0&&(d(_,vte),h===void 0&&p.column<=u.length&&(h=p.column)),f=p.column-1}h!==void 0&&d([u.substring(f)],void 0);const g=h!==void 0?new vge(h,u.length+1):void 0;return{replacedRange:a,inlineTexts:l,additionalLines:c,hiddenRange:g,lineNumber:r.lineNumber,additionalReservedLineCount:this.model.minReservedLineCount.read(s),targetTextModel:o}}),this.decorations=Rt(this,s=>{const o=this.uiState.read(s);if(!o)return[];const r=[];o.replacedRange&&r.push({range:o.replacedRange.toRange(o.lineNumber),options:{inlineClassName:"inline-completion-text-to-replace",description:"GhostTextReplacement"}}),o.hiddenRange&&r.push({range:o.hiddenRange.toRange(o.lineNumber),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}});for(const a of o.inlineTexts)r.push({range:A.fromPositions(new ee(o.lineNumber,a.column)),options:{description:vte,after:{content:a.text,inlineClassName:a.preview?"ghost-text-decoration-preview":"ghost-text-decoration",cursorStops:qc.Left},showIfCollapsed:!0}});return r}),this.additionalLinesWidget=this._register(new Cge(this.editor,this.languageService.languageIdCodec,Rt(s=>{const o=this.uiState.read(s);return o?{lineNumber:o.lineNumber,additionalLines:o.additionalLines,minReservedLineCount:o.additionalReservedLineCount,targetTextModel:o.targetTextModel}:void 0}))),this._register(dt(()=>{this.isDisposed.set(!0,void 0)})),this._register(bge(this.editor,this.decorations))}ownsViewZone(e){return this.additionalLinesWidget.viewZoneId===e}};yW=hJe([fJe(2,An)],yW);class Cge extends ne{get viewZoneId(){return this._viewZoneId}constructor(e,t,i){super(),this.editor=e,this.languageIdCodec=t,this.lines=i,this._viewZoneId=void 0,this.editorOptionsChanged=Ko("editorOptionChanged",Ae.filter(this.editor.onDidChangeConfiguration,s=>s.hasChanged(33)||s.hasChanged(117)||s.hasChanged(99)||s.hasChanged(94)||s.hasChanged(51)||s.hasChanged(50)||s.hasChanged(67))),this._register(Ut(s=>{const o=this.lines.read(s);this.editorOptionsChanged.read(s),o?this.updateLines(o.lineNumber,o.additionalLines,o.minReservedLineCount):this.clear()}))}dispose(){super.dispose(),this.clear()}clear(){this.editor.changeViewZones(e=>{this._viewZoneId&&(e.removeZone(this._viewZoneId),this._viewZoneId=void 0)})}updateLines(e,t,i){const s=this.editor.getModel();if(!s)return;const{tabSize:o}=s.getOptions();this.editor.changeViewZones(r=>{this._viewZoneId&&(r.removeZone(this._viewZoneId),this._viewZoneId=void 0);const a=Math.max(t.length,i);if(a>0){const l=document.createElement("div");gJe(l,o,t,this.editor.getOptions(),this.languageIdCodec),this._viewZoneId=r.addZone({afterLineNumber:e,heightInLines:a,domNode:l,afterColumnAffinity:1})}})}}function gJe(n,e,t,i,s){const o=i.get(33),r=i.get(117),a="none",l=i.get(94),c=i.get(51),d=i.get(50),u=i.get(67),h=new Ow(1e4);h.appendString('
    ');for(let p=0,_=t.length;p<_;p++){const b=t[p],w=b.content;h.appendString('
    ');const y=cD(w),S=TC(w),x=Is.createEmpty(w,s);_D(new f_(d.isMonospace&&!o,d.canUseHalfwidthRightwardsArrow,w,!1,y,S,0,x,b.decorations,e,0,d.spaceWidth,d.middotWidth,d.wsmiddotWidth,r,a,l,c!==cl.OFF,null),h),h.appendString("
    ")}h.appendString("
    "),So(n,d);const f=h.build(),g=bte?bte.createHTML(f):f;n.innerHTML=g}const bte=Bg("editorGhostText",{createHTML:n=>n});function pJe(n,e){const t=new Ece,i=new Nce(t,c=>e.getLanguageConfiguration(c)),s=new Tce(new mJe([n]),i),o=VB(s,[],void 0,!0);let r="";const a=n.getLineContent();function l(c,d){if(c.kind===2)if(l(c.openingBracket,d),d=Xn(d,c.openingBracket.length),c.child&&(l(c.child,d),d=Xn(d,c.child.length)),c.closingBracket)l(c.closingBracket,d),d=Xn(d,c.closingBracket.length);else{const h=i.getSingleLanguageBracketTokens(c.openingBracket.languageId).findClosingTokenText(c.openingBracket.bracketIds);r+=h}else if(c.kind!==3){if(c.kind===0||c.kind===1)r+=a.substring(d,Xn(d,c.length));else if(c.kind===4)for(const u of c.children)l(u,d),d=Xn(d,u.length)}}return l(o,Mr),r}class mJe{constructor(e){this.lines=e,this.tokenization={getLineTokens:t=>this.lines[t-1]}}getLineCount(){return this.lines.length}getLineLength(e){return this.lines[e-1].getLineContent().length}}async function _Je(n,e,t,i,s=Qt.None,o){const r=CJe(e,t),a=n.all(t),l=new uz;for(const b of a)b.groupId&&l.add(b.groupId,b);function c(b){if(!b.yieldsToGroupIds)return[];const w=[];for(const y of b.yieldsToGroupIds||[]){const S=l.get(y);for(const x of S)w.push(x)}return w}const d=new Map,u=new Set;function h(b,w){if(w=[...w,b],u.has(b))return w;u.add(b);try{const y=c(b);for(const S of y){const x=h(S,w);if(x)return x}}finally{u.delete(b)}}function f(b){const w=d.get(b);if(w)return w;const y=h(b,[]);y&&as(new Error(`Inline completions: cyclic yield-to dependency detected. Path: ${y.map(x=>x.toString?x.toString():""+x).join(" -> ")}`));const S=new hD;return d.set(b,S.p),(async()=>{if(!y){const x=c(b);for(const k of x){const D=await f(k);if(D&&D.items.length>0)return}}try{return await b.provideInlineCompletions(t,e,i,s)}catch(x){as(x);return}})().then(x=>S.complete(x),x=>S.error(x)),S.p}const g=await Promise.all(a.map(async b=>({provider:b,completions:await f(b)}))),p=new Map,_=[];for(const b of g){const w=b.completions;if(!w)continue;const y=new bJe(w,b.provider);_.push(y);for(const S of w.items){const x=CR.from(S,y,r,t,o);p.set(x.hash(),x)}}return new vJe(Array.from(p.values()),new Set(p.keys()),_)}class vJe{constructor(e,t,i){this.completions=e,this.hashs=t,this.providerResults=i}has(e){return this.hashs.has(e.hash())}dispose(){for(const e of this.providerResults)e.removeRef()}}class bJe{constructor(e,t){this.inlineCompletions=e,this.provider=t,this.refCount=1}addRef(){this.refCount++}removeRef(){this.refCount--,this.refCount===0&&this.provider.freeInlineCompletions(this.inlineCompletions)}}class CR{static from(e,t,i,s,o){let r,a,l=e.range?A.lift(e.range):i;if(typeof e.insertText=="string"){if(r=e.insertText,o&&e.completeBracketPairs){r=Cte(r,l.getStartPosition(),s,o);const c=r.length-e.insertText.length;c!==0&&(l=new A(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn+c))}a=void 0}else if("snippet"in e.insertText){const c=e.insertText.snippet.length;if(o&&e.completeBracketPairs){e.insertText.snippet=Cte(e.insertText.snippet,l.getStartPosition(),s,o);const u=e.insertText.snippet.length-c;u!==0&&(l=new A(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn+u))}const d=new L0().parse(e.insertText.snippet);d.children.length===1&&d.children[0]instanceof Dr?(r=d.children[0].value,a=void 0):(r=d.toString(),a={snippet:e.insertText.snippet,range:l})}else yM(e.insertText);return new CR(r,e.command,l,r,a,e.additionalTextEdits||dJe(),e,t)}constructor(e,t,i,s,o,r,a,l){this.filterText=e,this.command=t,this.range=i,this.insertText=s,this.snippetInfo=o,this.additionalTextEdits=r,this.sourceInlineCompletion=a,this.source=l,e=e.replace(/\r\n|\r/g,` `),s=e.replace(/\r\n|\r/g,` `)}withRange(e){return new CR(this.filterText,this.command,e,this.insertText,this.snippetInfo,this.additionalTextEdits,this.sourceInlineCompletion,this.source)}hash(){return JSON.stringify({insertText:this.insertText,range:this.range.toString()})}}function CJe(n,e){const t=e.getWordAtPosition(n),i=e.getLineMaxColumn(n.lineNumber);return t?new A(n.lineNumber,t.startColumn,n.lineNumber,i):A.fromPositions(n,n.with(void 0,i))}function Cte(n,e,t,i){const o=t.getLineContent(e.lineNumber).substring(0,e.column-1)+n,r=t.tokenization.tokenizeLineWithEdit(e,o.length-(e.column-1),n),a=r==null?void 0:r.sliceAndInflate(e.column-1,o.length,0);return a?pJe(a,i):n}function Jv(n,e,t){const i=t?n.range.intersectRanges(t):n.range;if(!i)return n;const s=e.getValueInRange(i,1),o=Rm(s,n.text),r=Ar.ofText(s.substring(0,o)).addToPosition(n.range.getStartPosition()),a=n.text.substring(o),l=A.fromPositions(r,n.range.getEndPosition());return new Eg(l,a)}function wge(n,e){return n.text.startsWith(e.text)&&wJe(n.range,e.range)}function wte(n,e,t,i,s=0){let o=Jv(n,e);if(o.range.endLineNumber!==o.range.startLineNumber)return;const r=e.getLineContent(o.range.startLineNumber),a=on(r).length;if(o.range.startColumn-1<=a){const g=on(o.text).length,p=r.substring(o.range.startColumn-1,a),[_,b]=[o.range.getStartPosition(),o.range.getEndPosition()],w=_.column+p.length<=b.column?_.delta(0,p.length):b,y=A.fromPositions(w,b),S=o.text.startsWith(p)?o.text.substring(p.length):o.text.substring(g);o=new Eg(y,S)}const c=e.getValueInRange(o.range),d=yJe(c,o.text);if(!d)return;const u=o.range.startLineNumber,h=new Array;if(t==="prefix"){const g=d.filter(p=>p.originalLength===0);if(g.length>1||g.length===1&&g[0].originalStart!==c.length)return}const f=o.text.length-s;for(const g of d){const p=o.range.startColumn+g.originalStart+g.originalLength;if(t==="subwordSmart"&&i&&i.lineNumber===o.range.startLineNumber&&p0)return;if(g.modifiedLength===0)continue;const _=g.modifiedStart+g.modifiedLength,b=Math.max(g.modifiedStart,Math.min(_,f)),w=o.text.substring(g.modifiedStart,b),y=o.text.substring(b,Math.max(g.modifiedStart,_));w.length>0&&h.push(new bR(p,w,!1)),y.length>0&&h.push(new bR(p,y,!0))}return new wk(u,h)}function wJe(n,e){return e.getStartPosition().equals(n.getStartPosition())&&e.getEndPosition().isBeforeOrEqual(n.getEndPosition())}let Ru;function yJe(n,e){if((Ru==null?void 0:Ru.originalValue)===n&&(Ru==null?void 0:Ru.newValue)===e)return Ru==null?void 0:Ru.changes;{let t=Ste(n,e,!0);if(t){const i=yte(t);if(i>0){const s=Ste(n,e,!1);s&&yte(s)5e3||e.length>5e3)return;function i(c){let d=0;for(let u=0,h=c.length;ud&&(d=f)}return d}const s=Math.max(i(n),i(e));function o(c){if(c<0)throw new Error("unexpected");return s+c+1}function r(c){let d=0,u=0;const h=new Int32Array(c.length);for(let f=0,g=c.length;fa},{getElements:()=>l}).ComputeDiff(!1).changes}var SJe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},xte=function(n,e){return function(t,i){e(t,i,n)}};let SW=class extends ne{constructor(e,t,i,s,o){super(),this.textModel=e,this.versionId=t,this._debounceValue=i,this.languageFeaturesService=s,this.languageConfigurationService=o,this._updateOperation=this._register(new Qs),this.inlineCompletions=KL("inlineCompletions",void 0),this.suggestWidgetInlineCompletions=KL("suggestWidgetInlineCompletions",void 0),this._register(this.textModel.onDidChangeContent(()=>{this._updateOperation.clear()}))}fetch(e,t,i){var s,o;const r=new LJe(e,t,this.textModel.getVersionId()),a=t.selectedSuggestionInfo?this.suggestWidgetInlineCompletions:this.inlineCompletions;if(!((s=this._updateOperation.value)===null||s===void 0)&&s.request.satisfies(r))return this._updateOperation.value.promise;if(!((o=a.get())===null||o===void 0)&&o.request.satisfies(r))return Promise.resolve(!0);const l=!!this._updateOperation.value;this._updateOperation.clear();const c=new $n,d=(async()=>{if((l||t.triggerKind===pg.Automatic)&&await xJe(this._debounceValue.get(this.textModel),c.token),c.token.isCancellationRequested||this.textModel.getVersionId()!==r.versionId)return!1;const f=new Date,g=await _Je(this.languageFeaturesService.inlineCompletionsProvider,e,this.textModel,t,c.token,this.languageConfigurationService);if(c.token.isCancellationRequested||this.textModel.getVersionId()!==r.versionId)return!1;const p=new Date;this._debounceValue.update(this.textModel,p.getTime()-f.getTime());const _=new DJe(g,r,this.textModel,this.versionId);if(i){const b=i.toInlineCompletion(void 0);i.canBeReused(this.textModel,e)&&!g.has(b)&&_.prepend(i.inlineCompletion,b.range,!0)}return this._updateOperation.clear(),rn(b=>{a.set(_,b)}),!0})(),u=new kJe(r,c,d);return this._updateOperation.value=u,d}clear(e){this._updateOperation.clear(),this.inlineCompletions.set(void 0,e),this.suggestWidgetInlineCompletions.set(void 0,e)}clearSuggestWidgetInlineCompletions(e){var t;!((t=this._updateOperation.value)===null||t===void 0)&&t.request.context.selectedSuggestionInfo&&this._updateOperation.clear(),this.suggestWidgetInlineCompletions.set(void 0,e)}cancelUpdate(){this._updateOperation.clear()}};SW=SJe([xte(3,Xe),xte(4,gn)],SW);function xJe(n,e){return new Promise(t=>{let i;const s=setTimeout(()=>{i&&i.dispose(),t()},n);e&&(i=e.onCancellationRequested(()=>{clearTimeout(s),i&&i.dispose(),t()}))})}class LJe{constructor(e,t,i){this.position=e,this.context=t,this.versionId=i}satisfies(e){return this.position.equals(e.position)&&tVe(this.context.selectedSuggestionInfo,e.context.selectedSuggestionInfo,Nde())&&(e.context.triggerKind===pg.Automatic||this.context.triggerKind===pg.Explicit)&&this.versionId===e.versionId}}class kJe{constructor(e,t,i){this.request=e,this.cancellationTokenSource=t,this.promise=i}dispose(){this.cancellationTokenSource.cancel()}}class DJe{get inlineCompletions(){return this._inlineCompletions}constructor(e,t,i,s){this.inlineCompletionProviderResult=e,this.request=t,this._textModel=i,this._versionId=s,this._refCount=1,this._prependedInlineCompletionItems=[];const o=i.deltaDecorations([],e.completions.map(r=>({range:r.range,options:{description:"inline-completion-tracking-range"}})));this._inlineCompletions=e.completions.map((r,a)=>new Lte(r,o[a],this._textModel,this._versionId))}clone(){return this._refCount++,this}dispose(){if(this._refCount--,this._refCount===0){setTimeout(()=>{this._textModel.isDisposed()||this._textModel.deltaDecorations(this._inlineCompletions.map(e=>e.decorationId),[])},0),this.inlineCompletionProviderResult.dispose();for(const e of this._prependedInlineCompletionItems)e.source.removeRef()}}prepend(e,t,i){i&&e.source.addRef();const s=this._textModel.deltaDecorations([],[{range:t,options:{description:"inline-completion-tracking-range"}}])[0];this._inlineCompletions.unshift(new Lte(e,s,this._textModel,this._versionId)),this._prependedInlineCompletionItems.push(e)}}class Lte{get forwardStable(){var e;return(e=this.inlineCompletion.source.inlineCompletions.enableForwardStability)!==null&&e!==void 0?e:!1}constructor(e,t,i,s){this.inlineCompletion=e,this.decorationId=t,this._textModel=i,this._modelVersion=s,this.semanticId=JSON.stringify([this.inlineCompletion.filterText,this.inlineCompletion.insertText,this.inlineCompletion.range.getStartPosition().toString()]),this._updatedRange=Uf({owner:this,equalsFn:A.equalsRange},o=>(this._modelVersion.read(o),this._textModel.getDecorationRange(this.decorationId)))}toInlineCompletion(e){var t;return this.inlineCompletion.withRange((t=this._updatedRange.read(e))!==null&&t!==void 0?t:u3)}toSingleTextEdit(e){var t;return new Eg((t=this._updatedRange.read(e))!==null&&t!==void 0?t:u3,this.inlineCompletion.insertText)}isVisible(e,t,i){const s=Jv(this._toFilterTextReplacement(i),e),o=this._updatedRange.read(i);if(!o||!this.inlineCompletion.range.getStartPosition().equals(o.getStartPosition())||t.lineNumber!==s.range.startLineNumber)return!1;const r=e.getValueInRange(s.range,1),a=s.text,l=Math.max(0,t.column-s.range.startColumn);let c=a.substring(0,l),d=a.substring(l),u=r.substring(0,l),h=r.substring(l);const f=e.getLineIndentColumn(s.range.startLineNumber);return s.range.startColumn<=f&&(u=u.trimStart(),u.length===0&&(h=h.trimStart()),c=c.trimStart(),c.length===0&&(d=d.trimStart())),c.startsWith(u)&&!!pde(h,d)}canBeReused(e,t){const i=this._updatedRange.read(void 0);return!!i&&i.containsPosition(t)&&this.isVisible(e,t,void 0)&&Ar.ofRange(i).isGreaterThanOrEqualTo(Ar.ofRange(this.inlineCompletion.range))}_toFilterTextReplacement(e){var t;return new Eg((t=this._updatedRange.read(e))!==null&&t!==void 0?t:u3,this.inlineCompletion.filterText)}}const u3=new A(1,1,1,1),$t={Visible:EU,HasFocusedSuggestion:new He("suggestWidgetHasFocusedSuggestion",!1,v("suggestWidgetHasSelection","Whether any suggestion is focused")),DetailsVisible:new He("suggestWidgetDetailsVisible",!1,v("suggestWidgetDetailsVisible","Whether suggestion details are visible")),MultipleSuggestions:new He("suggestWidgetMultipleSuggestions",!1,v("suggestWidgetMultipleSuggestions","Whether there are multiple suggestions to pick from")),MakesTextEdit:new He("suggestionMakesTextEdit",!0,v("suggestionMakesTextEdit","Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new He("acceptSuggestionOnEnter",!0,v("acceptSuggestionOnEnter","Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new He("suggestionHasInsertAndReplaceRange",!1,v("suggestionHasInsertAndReplaceRange","Whether the current suggestion has insert and replace behaviour")),InsertMode:new He("suggestionInsertMode",void 0,{type:"string",description:v("suggestionInsertMode","Whether the default behaviour is to insert or replace")}),CanResolve:new He("suggestionCanResolve",!1,v("suggestionCanResolve","Whether the current suggestion supports to resolve further details"))},bm=new R("suggestWidgetStatusBar");class IJe{constructor(e,t,i,s){var o;this.position=e,this.completion=t,this.container=i,this.provider=s,this.isInvalid=!1,this.score=Yd.Default,this.distance=0,this.textLabel=typeof t.label=="string"?t.label:(o=t.label)===null||o===void 0?void 0:o.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=t.sortText&&t.sortText.toLowerCase(),this.filterTextLow=t.filterText&&t.filterText.toLowerCase(),this.extensionId=t.extensionId,A.isIRange(t.range)?(this.editStart=new ee(t.range.startLineNumber,t.range.startColumn),this.editInsertEnd=new ee(t.range.endLineNumber,t.range.endColumn),this.editReplaceEnd=new ee(t.range.endLineNumber,t.range.endColumn),this.isInvalid=this.isInvalid||A.spansMultipleLines(t.range)||t.range.startLineNumber!==e.lineNumber):(this.editStart=new ee(t.range.insert.startLineNumber,t.range.insert.startColumn),this.editInsertEnd=new ee(t.range.insert.endLineNumber,t.range.insert.endColumn),this.editReplaceEnd=new ee(t.range.replace.endLineNumber,t.range.replace.endColumn),this.isInvalid=this.isInvalid||A.spansMultipleLines(t.range.insert)||A.spansMultipleLines(t.range.replace)||t.range.insert.startLineNumber!==e.lineNumber||t.range.replace.startLineNumber!==e.lineNumber||t.range.insert.startColumn!==t.range.replace.startColumn),typeof s.resolveCompletionItem!="function"&&(this._resolveCache=Promise.resolve(),this._resolveDuration=0)}get isResolved(){return this._resolveDuration!==void 0}get resolveDuration(){return this._resolveDuration!==void 0?this._resolveDuration:-1}async resolve(e){if(!this._resolveCache){const t=e.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),i=new xo(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,e)).then(s=>{Object.assign(this.completion,s),this._resolveDuration=i.elapsed()},s=>{ld(s)&&(this._resolveCache=void 0,this._resolveDuration=void 0)}).finally(()=>{t.dispose()})}return this._resolveCache}}class yk{constructor(e=2,t=new Set,i=new Set,s=new Map,o=!0){this.snippetSortOrder=e,this.kindFilter=t,this.providerFilter=i,this.providerItemsToReuse=s,this.showDeprecated=o}}yk.default=new yk;let EJe;function TJe(){return EJe}class NJe{constructor(e,t,i,s){this.items=e,this.needsClipboard=t,this.durations=i,this.disposable=s}}async function OU(n,e,t,i=yk.default,s={triggerKind:0},o=Qt.None){const r=new xo;t=t.clone();const a=e.getWordAtPosition(t),l=a?new A(t.lineNumber,a.startColumn,t.lineNumber,a.endColumn):A.fromPositions(t),c={replace:l,insert:l.setEndPosition(t.lineNumber,t.column)},d=[],u=new be,h=[];let f=!1;const g=(_,b,w)=>{var y,S,x;let k=!1;if(!b)return k;for(const D of b.suggestions)if(!i.kindFilter.has(D.kind)){if(!i.showDeprecated&&(!((y=D==null?void 0:D.tags)===null||y===void 0)&&y.includes(1)))continue;D.range||(D.range=c),D.sortText||(D.sortText=typeof D.label=="string"?D.label:D.label.label),!f&&D.insertTextRules&&D.insertTextRules&4&&(f=L0.guessNeedsClipboard(D.insertText)),d.push(new IJe(t,D,b,_)),k=!0}return nM(b)&&u.add(b),h.push({providerName:(S=_._debugDisplayName)!==null&&S!==void 0?S:"unknown_provider",elapsedProvider:(x=b.duration)!==null&&x!==void 0?x:-1,elapsedOverall:w.elapsed()}),k},p=(async()=>{})();for(const _ of n.orderedGroups(e)){let b=!1;if(await Promise.all(_.map(async w=>{if(i.providerItemsToReuse.has(w)){const y=i.providerItemsToReuse.get(w);y.forEach(S=>d.push(S)),b=b||y.length>0;return}if(!(i.providerFilter.size>0&&!i.providerFilter.has(w)))try{const y=new xo,S=await w.provideCompletionItems(e,t,s,o);b=g(w,S,y)||b}catch(y){as(y)}})),b||o.isCancellationRequested)break}return await p,o.isCancellationRequested?(u.dispose(),Promise.reject(new nu)):new NJe(d.sort(MJe(i.snippetSortOrder)),f,{entries:h,elapsed:r.elapsed()},u)}function FU(n,e){if(n.sortTextLow&&e.sortTextLow){if(n.sortTextLowe.sortTextLow)return 1}return n.textLabele.textLabel?1:n.completion.kind-e.completion.kind}function AJe(n,e){if(n.completion.kind!==e.completion.kind){if(n.completion.kind===27)return-1;if(e.completion.kind===27)return 1}return FU(n,e)}function RJe(n,e){if(n.completion.kind!==e.completion.kind){if(n.completion.kind===27)return 1;if(e.completion.kind===27)return-1}return FU(n,e)}const qP=new Map;qP.set(0,AJe);qP.set(2,RJe);qP.set(1,FU);function MJe(n){return qP.get(n)}ri.registerCommand("_executeCompletionItemProvider",async(n,...e)=>{const[t,i,s,o]=e;mi(pt.isUri(t)),mi(ee.isIPosition(i)),mi(typeof s=="string"||!s),mi(typeof o=="number"||!o);const{completionProvider:r}=n.get(Xe),a=await n.get(fa).createModelReference(t);try{const l={incomplete:!1,suggestions:[]},c=[],d=a.object.textEditorModel.validatePosition(i),u=await OU(r,a.object.textEditorModel,d,void 0,{triggerCharacter:s??void 0,triggerKind:s?1:0});for(const h of u.items)c.length<(o??0)&&c.push(h.resolve(Qt.None)),l.incomplete=l.incomplete||h.container.incomplete,l.suggestions.push(h.completion);try{return await Promise.all(c),l}finally{setTimeout(()=>u.disposable.dispose(),100)}}finally{a.dispose()}});function PJe(n,e){var t;(t=n.getContribution("editor.contrib.suggestController"))===null||t===void 0||t.triggerSuggest(new Set().add(e),void 0,!0)}class P1{static isAllOff(e){return e.other==="off"&&e.comments==="off"&&e.strings==="off"}static isAllOn(e){return e.other==="on"&&e.comments==="on"&&e.strings==="on"}static valueFor(e,t){switch(t){case 1:return e.comments;case 2:return e.strings;default:return e.other}}}function kte(n,e=Mo){return oBe(n,e)?n.charAt(0).toUpperCase()+n.slice(1):n}var OJe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},FJe=function(n,e){return function(t,i){e(t,i,n)}};class Dte{constructor(e){this._delegates=e}resolve(e){for(const t of this._delegates){const i=t.resolve(e);if(i!==void 0)return i}}}class Ite{constructor(e,t,i,s){this._model=e,this._selection=t,this._selectionIdx=i,this._overtypingCapturer=s}resolve(e){const{name:t}=e;if(t==="SELECTION"||t==="TM_SELECTED_TEXT"){let i=this._model.getValueInRange(this._selection)||void 0,s=this._selection.startLineNumber!==this._selection.endLineNumber;if(!i&&this._overtypingCapturer){const o=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);o&&(i=o.value,s=o.multiline)}if(i&&s&&e.snippet){const o=this._model.getLineContent(this._selection.startLineNumber),r=on(o,0,this._selection.startColumn-1);let a=r;e.snippet.walk(c=>c===e?!1:(c instanceof Dr&&(a=on(Wh(c.value).pop())),!0));const l=Rm(a,r);i=i.replace(/(\r\n|\r|\n)(.*)/g,(c,d,u)=>`${d}${a.substr(l)}${u}`)}return i}else{if(t==="TM_CURRENT_LINE")return this._model.getLineContent(this._selection.positionLineNumber);if(t==="TM_CURRENT_WORD"){const i=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return i&&i.word||void 0}else{if(t==="TM_LINE_INDEX")return String(this._selection.positionLineNumber-1);if(t==="TM_LINE_NUMBER")return String(this._selection.positionLineNumber);if(t==="CURSOR_INDEX")return String(this._selectionIdx);if(t==="CURSOR_NUMBER")return String(this._selectionIdx+1)}}}}class Ete{constructor(e,t){this._labelService=e,this._model=t}resolve(e){const{name:t}=e;if(t==="TM_FILENAME")return dm(this._model.uri.fsPath);if(t==="TM_FILENAME_BASE"){const i=dm(this._model.uri.fsPath),s=i.lastIndexOf(".");return s<=0?i:i.slice(0,s)}else{if(t==="TM_DIRECTORY")return cae(this._model.uri.fsPath)==="."?"":this._labelService.getUriLabel(VM(this._model.uri));if(t==="TM_FILEPATH")return this._labelService.getUriLabel(this._model.uri);if(t==="RELATIVE_FILEPATH")return this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0})}}}class Tte{constructor(e,t,i,s){this._readClipboardText=e,this._selectionIdx=t,this._selectionCount=i,this._spread=s}resolve(e){if(e.name!=="CLIPBOARD")return;const t=this._readClipboardText();if(t){if(this._spread){const i=t.split(/\r\n|\n|\r/).filter(s=>!_ae(s));if(i.length===this._selectionCount)return i[this._selectionIdx]}return t}}}let wR=class{constructor(e,t,i){this._model=e,this._selection=t,this._languageConfigurationService=i}resolve(e){const{name:t}=e,i=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),s=this._languageConfigurationService.getLanguageConfiguration(i).comments;if(s){if(t==="LINE_COMMENT")return s.lineCommentToken||void 0;if(t==="BLOCK_COMMENT_START")return s.blockCommentStartToken||void 0;if(t==="BLOCK_COMMENT_END")return s.blockCommentEndToken||void 0}}};wR=OJe([FJe(2,gn)],wR);class $d{constructor(){this._date=new Date}resolve(e){const{name:t}=e;if(t==="CURRENT_YEAR")return String(this._date.getFullYear());if(t==="CURRENT_YEAR_SHORT")return String(this._date.getFullYear()).slice(-2);if(t==="CURRENT_MONTH")return String(this._date.getMonth().valueOf()+1).padStart(2,"0");if(t==="CURRENT_DATE")return String(this._date.getDate().valueOf()).padStart(2,"0");if(t==="CURRENT_HOUR")return String(this._date.getHours().valueOf()).padStart(2,"0");if(t==="CURRENT_MINUTE")return String(this._date.getMinutes().valueOf()).padStart(2,"0");if(t==="CURRENT_SECOND")return String(this._date.getSeconds().valueOf()).padStart(2,"0");if(t==="CURRENT_DAY_NAME")return $d.dayNames[this._date.getDay()];if(t==="CURRENT_DAY_NAME_SHORT")return $d.dayNamesShort[this._date.getDay()];if(t==="CURRENT_MONTH_NAME")return $d.monthNames[this._date.getMonth()];if(t==="CURRENT_MONTH_NAME_SHORT")return $d.monthNamesShort[this._date.getMonth()];if(t==="CURRENT_SECONDS_UNIX")return String(Math.floor(this._date.getTime()/1e3));if(t==="CURRENT_TIMEZONE_OFFSET"){const i=this._date.getTimezoneOffset(),s=i>0?"-":"+",o=Math.trunc(Math.abs(i/60)),r=o<10?"0"+o:o,a=Math.abs(i)-o*60,l=a<10?"0"+a:a;return s+r+":"+l}}}$d.dayNames=[v("Sunday","Sunday"),v("Monday","Monday"),v("Tuesday","Tuesday"),v("Wednesday","Wednesday"),v("Thursday","Thursday"),v("Friday","Friday"),v("Saturday","Saturday")];$d.dayNamesShort=[v("SundayShort","Sun"),v("MondayShort","Mon"),v("TuesdayShort","Tue"),v("WednesdayShort","Wed"),v("ThursdayShort","Thu"),v("FridayShort","Fri"),v("SaturdayShort","Sat")];$d.monthNames=[v("January","January"),v("February","February"),v("March","March"),v("April","April"),v("May","May"),v("June","June"),v("July","July"),v("August","August"),v("September","September"),v("October","October"),v("November","November"),v("December","December")];$d.monthNamesShort=[v("JanuaryShort","Jan"),v("FebruaryShort","Feb"),v("MarchShort","Mar"),v("AprilShort","Apr"),v("MayShort","May"),v("JuneShort","Jun"),v("JulyShort","Jul"),v("AugustShort","Aug"),v("SeptemberShort","Sep"),v("OctoberShort","Oct"),v("NovemberShort","Nov"),v("DecemberShort","Dec")];class Nte{constructor(e){this._workspaceService=e}resolve(e){if(!this._workspaceService)return;const t=EHe(this._workspaceService.getWorkspace());if(!DHe(t)){if(e.name==="WORKSPACE_NAME")return this._resolveWorkspaceName(t);if(e.name==="WORKSPACE_FOLDER")return this._resoveWorkspacePath(t)}}_resolveWorkspaceName(e){if(C9(e))return dm(e.uri.path);let t=dm(e.configPath.path);return t.endsWith(w9)&&(t=t.substr(0,t.length-w9.length-1)),t}_resoveWorkspacePath(e){if(C9(e))return kte(e.uri.fsPath);const t=dm(e.configPath.path);let i=e.configPath.fsPath;return i.endsWith(t)&&(i=i.substr(0,i.length-t.length-1)),i?kte(i):"/"}}class Ate{resolve(e){const{name:t}=e;if(t==="RANDOM")return Math.random().toString().slice(-6);if(t==="RANDOM_HEX")return Math.random().toString(16).slice(-6);if(t==="UUID")return IP()}}var BJe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},WJe=function(n,e){return function(t,i){e(t,i,n)}},Sd;class Vl{constructor(e,t,i){this._editor=e,this._snippet=t,this._snippetLineLeadingWhitespace=i,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=GZ(t.placeholders,Ul.compareByIndex),this._placeholderGroupsIdx=-1}initialize(e){this._offset=e.newPosition}dispose(){this._placeholderDecorations&&this._editor.removeDecorations([...this._placeholderDecorations.values()]),this._placeholderGroups.length=0}_initDecorations(){if(this._offset===-1)throw new Error("Snippet not initialized!");if(this._placeholderDecorations)return;this._placeholderDecorations=new Map;const e=this._editor.getModel();this._editor.changeDecorations(t=>{for(const i of this._snippet.placeholders){const s=this._snippet.offset(i),o=this._snippet.fullLen(i),r=A.fromPositions(e.getPositionAt(this._offset+s),e.getPositionAt(this._offset+s+o)),a=i.isFinalTabstop?Vl._decor.inactiveFinal:Vl._decor.inactive,l=t.addDecoration(r,a);this._placeholderDecorations.set(i,l)}})}move(e){if(!this._editor.hasModel())return[];if(this._initDecorations(),this._placeholderGroupsIdx>=0){const s=[];for(const o of this._placeholderGroups[this._placeholderGroupsIdx])if(o.transform){const r=this._placeholderDecorations.get(o),a=this._editor.getModel().getDecorationRange(r),l=this._editor.getModel().getValueInRange(a),c=o.transform.resolve(l).split(/\r\n|\r|\n/);for(let d=1;d0&&this._editor.executeEdits("snippet.placeholderTransform",s)}let t=!1;e===!0&&this._placeholderGroupsIdx0&&(this._placeholderGroupsIdx-=1,t=!0);const i=this._editor.getModel().changeDecorations(s=>{const o=new Set,r=[];for(const a of this._placeholderGroups[this._placeholderGroupsIdx]){const l=this._placeholderDecorations.get(a),c=this._editor.getModel().getDecorationRange(l);r.push(new it(c.startLineNumber,c.startColumn,c.endLineNumber,c.endColumn)),t=t&&this._hasPlaceholderBeenCollapsed(a),s.changeDecorationOptions(l,a.isFinalTabstop?Vl._decor.activeFinal:Vl._decor.active),o.add(a);for(const d of this._snippet.enclosingPlaceholders(a)){const u=this._placeholderDecorations.get(d);s.changeDecorationOptions(u,d.isFinalTabstop?Vl._decor.activeFinal:Vl._decor.active),o.add(d)}}for(const[a,l]of this._placeholderDecorations)o.has(a)||s.changeDecorationOptions(l,a.isFinalTabstop?Vl._decor.inactiveFinal:Vl._decor.inactive);return r});return t?this.move(e):i??[]}_hasPlaceholderBeenCollapsed(e){let t=e;for(;t;){if(t instanceof Ul){const i=this._placeholderDecorations.get(t);if(this._editor.getModel().getDecorationRange(i).isEmpty()&&t.toString().length>0)return!0}t=t.parent}return!1}get isAtFirstPlaceholder(){return this._placeholderGroupsIdx<=0||this._placeholderGroups.length===0}get isAtLastPlaceholder(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}get hasPlaceholder(){return this._snippet.placeholders.length>0}get isTrivialSnippet(){if(this._snippet.placeholders.length===0)return!0;if(this._snippet.placeholders.length===1){const[e]=this._snippet.placeholders;if(e.isFinalTabstop&&this._snippet.rightMostDescendant===e)return!0}return!1}computePossibleSelections(){const e=new Map;for(const t of this._placeholderGroups){let i;for(const s of t){if(s.isFinalTabstop)break;i||(i=[],e.set(s.index,i));const o=this._placeholderDecorations.get(s),r=this._editor.getModel().getDecorationRange(o);if(!r){e.delete(s.index);break}i.push(r)}}return e}get activeChoice(){if(!this._placeholderDecorations)return;const e=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!(e!=null&&e.choice))return;const t=this._placeholderDecorations.get(e);if(!t)return;const i=this._editor.getModel().getDecorationRange(t);if(i)return{range:i,choice:e.choice}}get hasChoice(){let e=!1;return this._snippet.walk(t=>(e=t instanceof Gw,!e)),e}merge(e){const t=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations(i=>{for(const s of this._placeholderGroups[this._placeholderGroupsIdx]){const o=e.shift();console.assert(o._offset!==-1),console.assert(!o._placeholderDecorations);const r=o._snippet.placeholderInfo.last.index;for(const l of o._snippet.placeholderInfo.all)l.isFinalTabstop?l.index=s.index+(r+1)/this._nestingLevel:l.index=s.index+l.index/this._nestingLevel;this._snippet.replace(s,o._snippet.children);const a=this._placeholderDecorations.get(s);i.removeDecoration(a),this._placeholderDecorations.delete(s);for(const l of o._snippet.placeholders){const c=o._snippet.offset(l),d=o._snippet.fullLen(l),u=A.fromPositions(t.getPositionAt(o._offset+c),t.getPositionAt(o._offset+c+d)),h=i.addDecoration(u,Vl._decor.inactive);this._placeholderDecorations.set(l,h)}}this._placeholderGroups=GZ(this._snippet.placeholders,Ul.compareByIndex)})}}Vl._decor={active:Wt.register({description:"snippet-placeholder-1",stickiness:0,className:"snippet-placeholder"}),inactive:Wt.register({description:"snippet-placeholder-2",stickiness:1,className:"snippet-placeholder"}),activeFinal:Wt.register({description:"snippet-placeholder-3",stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:Wt.register({description:"snippet-placeholder-4",stickiness:1,className:"finish-snippet-placeholder"})};const Rte={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let yR=Sd=class{static adjustWhitespace(e,t,i,s,o){const r=e.getLineContent(t.lineNumber),a=on(r,0,t.column-1);let l;return s.walk(c=>{if(!(c instanceof Dr)||c.parent instanceof Gw||o&&!o.has(c))return!0;const d=c.value.split(/\r\n|\r|\n/);if(i){const h=s.offset(c);if(h===0)d[0]=e.normalizeIndentation(d[0]);else{l=l??s.toString();const f=l.charCodeAt(h-1);(f===10||f===13)&&(d[0]=e.normalizeIndentation(a+d[0]))}for(let f=1;fS.get(b0)),g=e.invokeWithinContext(S=>new Ete(S.get(ZC),h)),p=()=>a,_=h.getValueInRange(Sd.adjustSelection(h,e.getSelection(),i,0)),b=h.getValueInRange(Sd.adjustSelection(h,e.getSelection(),0,s)),w=h.getLineFirstNonWhitespaceColumn(e.getSelection().positionLineNumber),y=e.getSelections().map((S,x)=>({selection:S,idx:x})).sort((S,x)=>A.compareRangesUsingStarts(S.selection,x.selection));for(const{selection:S,idx:x}of y){let k=Sd.adjustSelection(h,S,i,0),D=Sd.adjustSelection(h,S,0,s);_!==h.getValueInRange(k)&&(k=S),b!==h.getValueInRange(D)&&(D=S);const I=S.setStartPosition(k.startLineNumber,k.startColumn).setEndPosition(D.endLineNumber,D.endColumn),N=new L0().parse(t,!0,o),P=I.getStartPosition(),O=Sd.adjustWhitespace(h,P,r||x>0&&w!==h.getLineFirstNonWhitespaceColumn(S.positionLineNumber),N);N.resolveVariables(new Dte([g,new Tte(p,x,y.length,e.getOption(79)==="spread"),new Ite(h,S,x,l),new wR(h,S,c),new $d,new Nte(f),new Ate])),d[x]=Mn.replace(I,N.toString()),d[x].identifier={major:x,minor:0},d[x]._isTracked=!0,u[x]=new Vl(e,N,O)}return{edits:d,snippets:u}}static createEditsAndSnippetsFromEdits(e,t,i,s,o,r,a){if(!e.hasModel()||t.length===0)return{edits:[],snippets:[]};const l=[],c=e.getModel(),d=new L0,u=new UD,h=new Dte([e.invokeWithinContext(g=>new Ete(g.get(ZC),c)),new Tte(()=>o,0,e.getSelections().length,e.getOption(79)==="spread"),new Ite(c,e.getSelection(),0,r),new wR(c,e.getSelection(),a),new $d,new Nte(e.invokeWithinContext(g=>g.get(b0))),new Ate]);t=t.sort((g,p)=>A.compareRangesUsingStarts(g.range,p.range));let f=0;for(let g=0;g0){const x=t[g-1].range,k=A.fromPositions(x.getEndPosition(),p.getStartPosition()),D=new Dr(c.getValueInRange(k));u.appendChild(D),f+=D.value.length}const b=d.parseFragment(_,u);Sd.adjustWhitespace(c,p.getStartPosition(),!0,u,new Set(b)),u.resolveVariables(h);const w=u.toString(),y=w.slice(f);f=w.length;const S=Mn.replace(p,y);S.identifier={major:g,minor:0},S._isTracked=!0,l.push(S)}return d.ensureFinalTabstop(u,i,!0),{edits:l,snippets:[new Vl(e,u,"")]}}constructor(e,t,i=Rte,s){this._editor=e,this._template=t,this._options=i,this._languageConfigurationService=s,this._templateMerges=[],this._snippets=[]}dispose(){tn(this._snippets)}_logInfo(){return`template="${this._template}", merged_templates="${this._templateMerges.join(" -> ")}"`}insert(){if(!this._editor.hasModel())return;const{edits:e,snippets:t}=typeof this._template=="string"?Sd.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):Sd.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=t,this._editor.executeEdits("snippet",e,i=>{const s=i.filter(o=>!!o.identifier);for(let o=0;oit.fromPositions(o.range.getEndPosition()))}),this._editor.revealRange(this._editor.getSelections()[0])}merge(e,t=Rte){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,e]);const{edits:i,snippets:s}=Sd.createEditsAndSnippetsFromSelections(this._editor,e,t.overwriteBefore,t.overwriteAfter,!0,t.adjustWhitespace,t.clipboardText,t.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits("snippet",i,o=>{const r=o.filter(l=>!!l.identifier);for(let l=0;lit.fromPositions(l.range.getEndPosition()))})}next(){const e=this._move(!0);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}prev(){const e=this._move(!1);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}_move(e){const t=[];for(const i of this._snippets){const s=i.move(e);t.push(...s)}return t}get isAtFirstPlaceholder(){return this._snippets[0].isAtFirstPlaceholder}get isAtLastPlaceholder(){return this._snippets[0].isAtLastPlaceholder}get hasPlaceholder(){return this._snippets[0].hasPlaceholder}get hasChoice(){return this._snippets[0].hasChoice}get activeChoice(){return this._snippets[0].activeChoice}isSelectionWithinPlaceholders(){if(!this.hasPlaceholder)return!1;const e=this._editor.getSelections();if(e.length{o.push(...s.get(r))})}e.sort(A.compareRangesUsingStarts);for(const[i,s]of t){if(s.length!==e.length){t.delete(i);continue}s.sort(A.compareRangesUsingStarts);for(let o=0;o0}};yR=Sd=BJe([WJe(3,gn)],yR);var HJe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},AT=function(n,e){return function(t,i){e(t,i,n)}},a1;const Mte={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let Lo=a1=class{static get(e){return e.getContribution(a1.ID)}constructor(e,t,i,s,o){this._editor=e,this._logService=t,this._languageFeaturesService=i,this._languageConfigurationService=o,this._snippetListener=new be,this._modelVersionId=-1,this._inSnippet=a1.InSnippetMode.bindTo(s),this._hasNextTabstop=a1.HasNextTabstop.bindTo(s),this._hasPrevTabstop=a1.HasPrevTabstop.bindTo(s)}dispose(){var e;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),(e=this._session)===null||e===void 0||e.dispose(),this._snippetListener.dispose()}insert(e,t){try{this._doInsert(e,typeof t>"u"?Mte:{...Mte,...t})}catch(i){this.cancel(),this._logService.error(i),this._logService.error("snippet_error"),this._logService.error("insert_template=",e),this._logService.error("existing_template=",this._session?this._session._logInfo():"")}}_doInsert(e,t){var i;if(this._editor.hasModel()){if(this._snippetListener.clear(),t.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session&&typeof e!="string"&&this.cancel(),this._session?(mi(typeof e=="string"),this._session.merge(e,t)):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new yR(this._editor,e,t,this._languageConfigurationService),this._session.insert()),t.undoStopAfter&&this._editor.getModel().pushStackElement(),!((i=this._session)===null||i===void 0)&&i.hasChoice){const s={_debugDisplayName:"snippetChoiceCompletions",provideCompletionItems:(d,u)=>{if(!this._session||d!==this._editor.getModel()||!ee.equals(this._editor.getPosition(),u))return;const{activeChoice:h}=this._session;if(!h||h.choice.options.length===0)return;const f=d.getValueInRange(h.range),g=!!h.choice.options.find(_=>_.value===f),p=[];for(let _=0;_{r==null||r.dispose(),a=!1},c=()=>{a||(r=this._languageFeaturesService.completionProvider.register({language:o.getLanguageId(),pattern:o.uri.fsPath,scheme:o.uri.scheme,exclusive:!0},s),this._snippetListener.add(r),a=!0)};this._choiceCompletions={provider:s,enable:c,disable:l}}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent(s=>s.isFlush&&this.cancel())),this._snippetListener.add(this._editor.onDidChangeModel(()=>this.cancel())),this._snippetListener.add(this._editor.onDidChangeCursorSelection(()=>this._updateState()))}}_updateState(){if(!(!this._session||!this._editor.hasModel())){if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this._editor.getModel().pushStackElement(),this.cancel();this._inSnippet.set(!0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}}_handleChoice(){var e;if(!this._session||!this._editor.hasModel()){this._currentChoice=void 0;return}const{activeChoice:t}=this._session;if(!t||!this._choiceCompletions){(e=this._choiceCompletions)===null||e===void 0||e.disable(),this._currentChoice=void 0;return}this._currentChoice!==t.choice&&(this._currentChoice=t.choice,this._choiceCompletions.enable(),queueMicrotask(()=>{PJe(this._editor,this._choiceCompletions.provider)}))}finish(){for(;this._inSnippet.get();)this.next()}cancel(e=!1){var t;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._snippetListener.clear(),this._currentChoice=void 0,(t=this._session)===null||t===void 0||t.dispose(),this._session=void 0,this._modelVersionId=-1,e&&this._editor.setSelections([this._editor.getSelection()])}prev(){var e;(e=this._session)===null||e===void 0||e.prev(),this._updateState()}next(){var e;(e=this._session)===null||e===void 0||e.next(),this._updateState()}isInSnippet(){return!!this._inSnippet.get()}};Lo.ID="snippetController2";Lo.InSnippetMode=new He("inSnippetMode",!1,v("inSnippetMode","Whether the editor in current in snippet mode"));Lo.HasNextTabstop=new He("hasNextTabstop",!1,v("hasNextTabstop","Whether there is a next tab stop when in snippet mode"));Lo.HasPrevTabstop=new He("hasPrevTabstop",!1,v("hasPrevTabstop","Whether there is a previous tab stop when in snippet mode"));Lo=a1=HJe([AT(1,er),AT(2,Xe),AT(3,Ct),AT(4,gn)],Lo);bi(Lo.ID,Lo,4);const GP=Us.bindToContribution(Lo.get);Fe(new GP({id:"jumpToNextSnippetPlaceholder",precondition:pe.and(Lo.InSnippetMode,Lo.HasNextTabstop),handler:n=>n.next(),kbOpts:{weight:130,kbExpr:W.textInputFocus,primary:2}}));Fe(new GP({id:"jumpToPrevSnippetPlaceholder",precondition:pe.and(Lo.InSnippetMode,Lo.HasPrevTabstop),handler:n=>n.prev(),kbOpts:{weight:130,kbExpr:W.textInputFocus,primary:1026}}));Fe(new GP({id:"leaveSnippet",precondition:Lo.InSnippetMode,handler:n=>n.cancel(!0),kbOpts:{weight:130,kbExpr:W.textInputFocus,primary:9,secondary:[1033]}}));Fe(new GP({id:"acceptSnippet",precondition:Lo.InSnippetMode,handler:n=>n.finish()}));var VJe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},h3=function(n,e){return function(t,i){e(t,i,n)}},tl;(function(n){n[n.Undo=0]="Undo",n[n.Redo=1]="Redo",n[n.AcceptWord=2]="AcceptWord",n[n.Other=3]="Other"})(tl||(tl={}));let xW=class extends ne{get isAcceptingPartially(){return this._isAcceptingPartially}constructor(e,t,i,s,o,r,a,l,c,d,u,h){super(),this.textModel=e,this.selectedSuggestItem=t,this.textModelVersionId=i,this._positions=s,this._debounceValue=o,this._suggestPreviewEnabled=r,this._suggestPreviewMode=a,this._inlineSuggestMode=l,this._enabled=c,this._instantiationService=d,this._commandService=u,this._languageConfigurationService=h,this._source=this._register(this._instantiationService.createInstance(SW,this.textModel,this.textModelVersionId,this._debounceValue)),this._isActive=li(this,!1),this._forceUpdateExplicitlySignal=nP(this),this._selectedInlineCompletionId=li(this,void 0),this._primaryPosition=Rt(this,g=>{var p;return(p=this._positions.read(g)[0])!==null&&p!==void 0?p:new ee(1,1)}),this._isAcceptingPartially=!1,this._preserveCurrentCompletionReasons=new Set([tl.Redo,tl.Undo,tl.AcceptWord]),this._fetchInlineCompletionsPromise=fVe({owner:this,createEmptyChangeSummary:()=>({preserveCurrentCompletion:!1,inlineCompletionTriggerKind:pg.Automatic}),handleChange:(g,p)=>(g.didChange(this.textModelVersionId)&&this._preserveCurrentCompletionReasons.has(g.change)?p.preserveCurrentCompletion=!0:g.didChange(this._forceUpdateExplicitlySignal)&&(p.inlineCompletionTriggerKind=pg.Explicit),!0)},(g,p)=>{if(this._forceUpdateExplicitlySignal.read(g),!(this._enabled.read(g)&&this.selectedSuggestItem.read(g)||this._isActive.read(g))){this._source.cancelUpdate();return}this.textModelVersionId.read(g);const b=this._source.suggestWidgetInlineCompletions.get(),w=this.selectedSuggestItem.read(g);if(b&&!w){const D=this._source.inlineCompletions.get();rn(I=>{(!D||b.request.versionId>D.request.versionId)&&this._source.inlineCompletions.set(b.clone(),I),this._source.clearSuggestWidgetInlineCompletions(I)})}const y=this._primaryPosition.read(g),S={triggerKind:p.inlineCompletionTriggerKind,selectedSuggestionInfo:w==null?void 0:w.toSelectedSuggestionInfo()},x=this.selectedInlineCompletion.get(),k=p.preserveCurrentCompletion||x!=null&&x.forwardStable?x:void 0;return this._source.fetch(y,S,k)}),this._filteredInlineCompletionItems=Uf({owner:this,equalsFn:D9()},g=>{const p=this._source.inlineCompletions.read(g);if(!p)return[];const _=this._primaryPosition.read(g);return p.inlineCompletions.filter(w=>w.isVisible(this.textModel,_,g))}),this.selectedInlineCompletionIndex=Rt(this,g=>{const p=this._selectedInlineCompletionId.read(g),_=this._filteredInlineCompletionItems.read(g),b=this._selectedInlineCompletionId===void 0?-1:_.findIndex(w=>w.semanticId===p);return b===-1?(this._selectedInlineCompletionId.set(void 0,void 0),0):b}),this.selectedInlineCompletion=Rt(this,g=>{const p=this._filteredInlineCompletionItems.read(g),_=this.selectedInlineCompletionIndex.read(g);return p[_]}),this.activeCommands=Uf({owner:this,equalsFn:D9()},g=>{var p,_;return(_=(p=this.selectedInlineCompletion.read(g))===null||p===void 0?void 0:p.inlineCompletion.source.inlineCompletions.commands)!==null&&_!==void 0?_:[]}),this.lastTriggerKind=this._source.inlineCompletions.map(this,g=>g==null?void 0:g.request.context.triggerKind),this.inlineCompletionsCount=Rt(this,g=>{if(this.lastTriggerKind.read(g)===pg.Explicit)return this._filteredInlineCompletionItems.read(g).length}),this.state=Uf({owner:this,equalsFn:(g,p)=>!g||!p?g===p:mte(g.ghostTexts,p.ghostTexts)&&g.inlineCompletion===p.inlineCompletion&&g.suggestItem===p.suggestItem},g=>{var p,_;const b=this.textModel,w=this.selectedSuggestItem.read(g);if(w){const y=Jv(w.toSingleTextEdit(),b),S=this._computeAugmentation(y,g);if(!this._suggestPreviewEnabled.read(g)&&!S)return;const k=(p=S==null?void 0:S.edit)!==null&&p!==void 0?p:y,D=S?S.edit.text.length-y.text.length:0,I=this._suggestPreviewMode.read(g),N=this._positions.read(g),P=[k,...f3(this.textModel,N,k)],O=P.map((z,K)=>wte(z,b,I,N[K],D)).filter(gh),M=(_=O[0])!==null&&_!==void 0?_:new wk(k.range.endLineNumber,[]);return{edits:P,primaryGhostText:M,ghostTexts:O,inlineCompletion:S==null?void 0:S.completion,suggestItem:w}}else{if(!this._isActive.read(g))return;const y=this.selectedInlineCompletion.read(g);if(!y)return;const S=y.toSingleTextEdit(g),x=this._inlineSuggestMode.read(g),k=this._positions.read(g),D=[S,...f3(this.textModel,k,S)],I=D.map((N,P)=>wte(N,b,x,k[P],0)).filter(gh);return I[0]?{edits:D,primaryGhostText:I[0],ghostTexts:I,inlineCompletion:y,suggestItem:void 0}:void 0}}),this.ghostTexts=Uf({owner:this,equalsFn:mte},g=>{const p=this.state.read(g);if(p)return p.ghostTexts}),this.primaryGhostText=Uf({owner:this,equalsFn:_ge},g=>{const p=this.state.read(g);if(p)return p==null?void 0:p.primaryGhostText}),this._register(RD(this._fetchInlineCompletionsPromise));let f;this._register(Ut(g=>{var p,_;const b=this.state.read(g),w=b==null?void 0:b.inlineCompletion;if((w==null?void 0:w.semanticId)!==(f==null?void 0:f.semanticId)&&(f=w,w)){const y=w.inlineCompletion,S=y.source;(_=(p=S.provider).handleItemDidShow)===null||_===void 0||_.call(p,S.inlineCompletions,y.sourceInlineCompletion,y.insertText)}}))}async trigger(e){this._isActive.set(!0,e),await this._fetchInlineCompletionsPromise.get()}async triggerExplicitly(e){jL(e,t=>{this._isActive.set(!0,t),this._forceUpdateExplicitlySignal.trigger(t)}),await this._fetchInlineCompletionsPromise.get()}stop(e){jL(e,t=>{this._isActive.set(!1,t),this._source.clear(t)})}_computeAugmentation(e,t){const i=this.textModel,s=this._source.suggestWidgetInlineCompletions.read(t),o=s?s.inlineCompletions:[this.selectedInlineCompletion.read(t)].filter(gh);return VOe(o,a=>{let l=a.toSingleTextEdit(t);return l=Jv(l,i,A.fromPositions(l.range.getStartPosition(),e.range.getEndPosition())),wge(l,e)?{completion:a,edit:l}:void 0})}async _deltaSelectedInlineCompletionIndex(e){await this.triggerExplicitly();const t=this._filteredInlineCompletionItems.get()||[];if(t.length>0){const i=(this.selectedInlineCompletionIndex.get()+e+t.length)%t.length;this._selectedInlineCompletionId.set(t[i].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}async accept(e){var t;if(e.getModel()!==this.textModel)throw new Gi;const i=this.state.get();if(!i||i.primaryGhostText.isEmpty()||!i.inlineCompletion)return;const s=i.inlineCompletion.toInlineCompletion(void 0);if(e.pushUndoStop(),s.snippetInfo)e.executeEdits("inlineSuggestion.accept",[Mn.replace(s.range,""),...s.additionalTextEdits]),e.setPosition(s.snippetInfo.range.getStartPosition(),"inlineCompletionAccept"),(t=Lo.get(e))===null||t===void 0||t.insert(s.snippetInfo.snippet,{undoStopBefore:!1});else{const o=i.edits,r=Pte(o).map(a=>it.fromPositions(a));e.executeEdits("inlineSuggestion.accept",[...o.map(a=>Mn.replace(a.range,a.text)),...s.additionalTextEdits]),e.setSelections(r,"inlineCompletionAccept")}s.command&&s.source.addRef(),rn(o=>{this._source.clear(o),this._isActive.set(!1,o)}),s.command&&(await this._commandService.executeCommand(s.command.id,...s.command.arguments||[]).then(void 0,as),s.source.removeRef())}async acceptNextWord(e){await this._acceptNext(e,(t,i)=>{const s=this.textModel.getLanguageIdAtPosition(t.lineNumber,t.column),o=this._languageConfigurationService.getLanguageConfiguration(s),r=new RegExp(o.wordDefinition.source,o.wordDefinition.flags.replace("g","")),a=i.match(r);let l=0;a&&a.index!==void 0?a.index===0?l=a[0].length:l=a.index:l=i.length;const d=/\s+/g.exec(i);return d&&d.index!==void 0&&d.index+d[0].length{const s=i.match(/\n/);return s&&s.index!==void 0?s.index+1:i.length},1)}async _acceptNext(e,t,i){if(e.getModel()!==this.textModel)throw new Gi;const s=this.state.get();if(!s||s.primaryGhostText.isEmpty()||!s.inlineCompletion)return;const o=s.primaryGhostText,r=s.inlineCompletion.toInlineCompletion(void 0);if(r.snippetInfo||r.filterText!==r.insertText){await this.accept(e);return}const a=o.parts[0],l=new ee(o.lineNumber,a.column),c=a.text,d=t(l,c);if(d===c.length&&o.parts.length===1){this.accept(e);return}const u=c.substring(0,d),h=this._positions.get(),f=h[0];r.source.addRef();try{this._isAcceptingPartially=!0;try{e.pushUndoStop();const g=A.fromPositions(f,l),p=e.getModel().getValueInRange(g)+u,_=new Eg(g,p),b=[_,...f3(this.textModel,h,_)],w=Pte(b).map(y=>it.fromPositions(y));e.executeEdits("inlineSuggestion.accept",b.map(y=>Mn.replace(y.range,y.text))),e.setSelections(w,"inlineCompletionPartialAccept"),e.revealPositionInCenterIfOutsideViewport(e.getPosition(),1)}finally{this._isAcceptingPartially=!1}if(r.source.provider.handlePartialAccept){const g=A.fromPositions(r.range.getStartPosition(),Ar.ofText(u).addToPosition(l)),p=e.getModel().getValueInRange(g,1);r.source.provider.handlePartialAccept(r.source.inlineCompletions,r.sourceInlineCompletion,p.length,{kind:i})}}finally{r.source.removeRef()}}handleSuggestAccepted(e){var t,i;const s=Jv(e.toSingleTextEdit(),this.textModel),o=this._computeAugmentation(s,void 0);if(!o)return;const r=o.completion.inlineCompletion;(i=(t=r.source.provider).handlePartialAccept)===null||i===void 0||i.call(t,r.source.inlineCompletions,r.sourceInlineCompletion,s.text.length,{kind:2})}};xW=VJe([h3(9,ht),h3(10,Sn),h3(11,gn)],xW);function f3(n,e,t){if(e.length===1)return[];const i=e[0],s=e.slice(1),o=t.range.getStartPosition(),r=t.range.getEndPosition(),a=n.getValueInRange(A.fromPositions(i,r)),l=_te(i,o);if(l.lineNumber<1)return Mt(new Gi(`positionWithinTextEdit line number should be bigger than 0. Invalid subtraction between ${i.toString()} and ${o.toString()}`)),[];const c=zJe(t.text,l);return s.map(d=>{const u=uJe(_te(d,o),r),h=n.getValueInRange(A.fromPositions(d,u)),f=Rm(a,h),g=A.fromPositions(d,d.delta(0,f));return new Eg(g,c)})}function zJe(n,e){let t="";const i=mRe(n);for(let s=e.lineNumber-1;sA.compareRangesUsingStarts(o.range,r.range)),i=new mz(e.apply(n)).getNewRanges();return e.inverse().apply(i).map(o=>o.getEndPosition())}var $Je=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Ote=function(n,e){return function(t,i){e(t,i,n)}},FS;class BU{constructor(e){this.name=e}select(e,t,i){if(i.length===0)return 0;const s=i[0].score[0];for(let o=0;ol&&u.type===i[c].completion.kind&&u.insertText===i[c].completion.insertText&&(l=u.touch,a=c),i[c].completion.preselect&&r===-1)return r=c}return a!==-1?a:r!==-1?r:0}toJSON(){return this._cache.toJSON()}fromJSON(e){this._cache.clear();const t=0;for(const[i,s]of e)s.touch=t,s.type=typeof s.type=="number"?s.type:rL.fromString(s.type),this._cache.set(i,s);this._seq=this._cache.size}}class jJe extends BU{constructor(){super("recentlyUsedByPrefix"),this._trie=lC.forStrings(),this._seq=0}memorize(e,t,i){const{word:s}=e.getWordUntilPosition(t),o=`${e.getLanguageId()}/${s}`;this._trie.set(o,{type:i.completion.kind,insertText:i.completion.insertText,touch:this._seq++})}select(e,t,i){const{word:s}=e.getWordUntilPosition(t);if(!s)return super.select(e,t,i);const o=`${e.getLanguageId()}/${s}`;let r=this._trie.get(o);if(r||(r=this._trie.findSubstr(o)),r)for(let a=0;ae.push([i,t])),e.sort((t,i)=>-(t[1].touch-i[1].touch)).forEach((t,i)=>t[1].touch=i),e.slice(0,200)}fromJSON(e){if(this._trie.clear(),e.length>0){this._seq=e[0][1].touch+1;for(const[t,i]of e)i.type=typeof i.type=="number"?i.type:rL.fromString(i.type),this._trie.set(t,i)}}}let Sk=FS=class{constructor(e,t){this._storageService=e,this._configService=t,this._disposables=new be,this._persistSoon=new Xi(()=>this._saveState(),500),this._disposables.add(e.onWillSaveState(i=>{i.reason===GL.SHUTDOWN&&this._saveState()}))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(e,t,i){this._withStrategy(e,t).memorize(e,t,i),this._persistSoon.schedule()}select(e,t,i){return this._withStrategy(e,t).select(e,t,i)}_withStrategy(e,t){var i;const s=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:e.getLanguageIdAtPosition(t.lineNumber,t.column),resource:e.uri});if(((i=this._strategy)===null||i===void 0?void 0:i.name)!==s){this._saveState();const o=FS._strategyCtors.get(s)||yge;this._strategy=new o;try{const a=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,l=this._storageService.get(`${FS._storagePrefix}/${s}`,a);l&&this._strategy.fromJSON(JSON.parse(l))}catch{}}return this._strategy}_saveState(){if(this._strategy){const t=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,i=JSON.stringify(this._strategy);this._storageService.store(`${FS._storagePrefix}/${this._strategy.name}`,i,t,1)}}};Sk._strategyCtors=new Map([["recentlyUsedByPrefix",jJe],["recentlyUsed",UJe],["first",yge]]);Sk._storagePrefix="suggest/memories";Sk=FS=$Je([Ote(0,dd),Ote(1,qt)],Sk);const ZP=Jt("ISuggestMemories");ai(ZP,Sk,1);var KJe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},qJe=function(n,e){return function(t,i){e(t,i,n)}},LW;let xk=LW=class{constructor(e,t){this._editor=e,this._enabled=!1,this._ckAtEnd=LW.AtEnd.bindTo(t),this._configListener=this._editor.onDidChangeConfiguration(i=>i.hasChanged(123)&&this._update()),this._update()}dispose(){var e;this._configListener.dispose(),(e=this._selectionListener)===null||e===void 0||e.dispose(),this._ckAtEnd.reset()}_update(){const e=this._editor.getOption(123)==="on";if(this._enabled!==e)if(this._enabled=e,this._enabled){const t=()=>{if(!this._editor.hasModel()){this._ckAtEnd.set(!1);return}const i=this._editor.getModel(),s=this._editor.getSelection(),o=i.getWordAtPosition(s.getStartPosition());if(!o){this._ckAtEnd.set(!1);return}this._ckAtEnd.set(o.endColumn===s.getStartPosition().column)};this._selectionListener=this._editor.onDidChangeCursorSelection(t),t()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)}};xk.AtEnd=new He("atEndOfWord",!1);xk=LW=KJe([qJe(1,Ct)],xk);var GJe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},ZJe=function(n,e){return function(t,i){e(t,i,n)}},BS;let R0=BS=class{constructor(e,t){this._editor=e,this._index=0,this._ckOtherSuggestions=BS.OtherSuggestions.bindTo(t)}dispose(){this.reset()}reset(){var e;this._ckOtherSuggestions.reset(),(e=this._listener)===null||e===void 0||e.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:e,index:t},i){if(e.items.length===0){this.reset();return}if(BS._moveIndex(!0,e,t)===t){this.reset();return}this._acceptNext=i,this._model=e,this._index=t,this._listener=this._editor.onDidChangeCursorPosition(()=>{this._ignore||this.reset()}),this._ckOtherSuggestions.set(!0)}static _moveIndex(e,t,i){let s=i;for(let o=t.items.length;o>0&&(s=(s+t.items.length+(e?1:-1))%t.items.length,!(s===i||!t.items[s].completion.additionalTextEdits));o--);return s}next(){this._move(!0)}prev(){this._move(!1)}_move(e){if(this._model)try{this._ignore=!0,this._index=BS._moveIndex(e,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};R0.OtherSuggestions=new He("hasOtherSuggestions",!1);R0=BS=GJe([ZJe(1,Ct)],R0);class YJe{constructor(e,t,i,s){this._disposables=new be,this._disposables.add(i.onDidSuggest(o=>{o.completionModel.items.length===0&&this.reset()})),this._disposables.add(i.onDidCancel(o=>{this.reset()})),this._disposables.add(t.onDidShow(()=>this._onItem(t.getFocusedItem()))),this._disposables.add(t.onDidFocus(this._onItem,this)),this._disposables.add(t.onDidHide(this.reset,this)),this._disposables.add(e.onWillType(o=>{if(this._active&&!t.isFrozen()&&i.state!==0){const r=o.charCodeAt(o.length-1);this._active.acceptCharacters.has(r)&&e.getOption(0)&&s(this._active.item)}}))}_onItem(e){if(!e||!Zo(e.item.completion.commitCharacters)){this.reset();return}if(this._active&&this._active.item.item===e.item)return;const t=new j2;for(const i of e.item.completion.commitCharacters)i.length>0&&t.add(i.charCodeAt(0));this._active={acceptCharacters:t,item:e}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}}class il{async provideSelectionRanges(e,t){const i=[];for(const s of t){const o=[];i.push(o);const r=new Map;await new Promise(a=>il._bracketsRightYield(a,0,e,s,r)),await new Promise(a=>il._bracketsLeftYield(a,0,e,s,r,o))}return i}static _bracketsRightYield(e,t,i,s,o){const r=new Map,a=Date.now();for(;;){if(t>=il._maxRounds){e();break}if(!s){e();break}const l=i.bracketPairs.findNextBracket(s);if(!l){e();break}if(Date.now()-a>il._maxDuration){setTimeout(()=>il._bracketsRightYield(e,t+1,i,s,o));break}if(l.bracketInfo.isOpeningBracket){const d=l.bracketInfo.bracketText,u=r.has(d)?r.get(d):0;r.set(d,u+1)}else{const d=l.bracketInfo.getOpeningBrackets()[0].bracketText;let u=r.has(d)?r.get(d):0;if(u-=1,r.set(d,Math.max(0,u)),u<0){let h=o.get(d);h||(h=new Tr,o.set(d,h)),h.push(l.range)}}s=l.range.getEndPosition()}}static _bracketsLeftYield(e,t,i,s,o,r){const a=new Map,l=Date.now();for(;;){if(t>=il._maxRounds&&o.size===0){e();break}if(!s){e();break}const c=i.bracketPairs.findPrevBracket(s);if(!c){e();break}if(Date.now()-l>il._maxDuration){setTimeout(()=>il._bracketsLeftYield(e,t+1,i,s,o,r));break}if(c.bracketInfo.isOpeningBracket){const u=c.bracketInfo.bracketText;let h=a.has(u)?a.get(u):0;if(h-=1,a.set(u,Math.max(0,h)),h<0){const f=o.get(u);if(f){const g=f.shift();f.size===0&&o.delete(u);const p=A.fromPositions(c.range.getEndPosition(),g.getStartPosition()),_=A.fromPositions(c.range.getStartPosition(),g.getEndPosition());r.push({range:p}),r.push({range:_}),il._addBracketLeading(i,_,r)}}}else{const u=c.bracketInfo.getOpeningBrackets()[0].bracketText,h=a.has(u)?a.get(u):0;a.set(u,h+1)}s=c.range.getStartPosition()}}static _addBracketLeading(e,t,i){if(t.startLineNumber===t.endLineNumber)return;const s=t.startLineNumber,o=e.getLineFirstNonWhitespaceColumn(s);o!==0&&o!==t.startColumn&&(i.push({range:A.fromPositions(new ee(s,o),t.getEndPosition())}),i.push({range:A.fromPositions(new ee(s,1),t.getEndPosition())}));const r=s-1;if(r>0){const a=e.getLineFirstNonWhitespaceColumn(r);a===t.startColumn&&a!==e.getLineLastNonWhitespaceColumn(r)&&(i.push({range:A.fromPositions(new ee(r,a),t.getEndPosition())}),i.push({range:A.fromPositions(new ee(r,1),t.getEndPosition())}))}}}il._maxDuration=30;il._maxRounds=2;class Pd{static async create(e,t){if(!t.getOption(118).localityBonus||!t.hasModel())return Pd.None;const i=t.getModel(),s=t.getPosition();if(!e.canComputeWordRanges(i.uri))return Pd.None;const[o]=await new il().provideSelectionRanges(i,[s]);if(o.length===0)return Pd.None;const r=await e.computeWordRanges(i.uri,o[0].range);if(!r)return Pd.None;const a=i.getWordUntilPosition(s);return delete r[a.word],new class extends Pd{distance(l,c){if(!s.equals(t.getPosition()))return 0;if(c.kind===17)return 2<<20;const d=typeof c.label=="string"?c.label:c.label.label,u=r[d];if(Bre(u))return 2<<20;const h=tL(u,A.fromPositions(l),A.compareRangesUsingStarts),f=h>=0?u[h]:u[Math.max(0,~h-1)];let g=o.length;for(const p of o){if(!A.containsRange(p.range,f))break;g-=1}return g}}}}Pd.None=new class extends Pd{distance(){return 0}};let Fte=class{constructor(e,t){this.leadingLineContent=e,this.characterCountDelta=t}};class Fp{constructor(e,t,i,s,o,r,a=qM.default,l=void 0){this.clipboardText=l,this._snippetCompareFn=Fp._compareCompletionItems,this._items=e,this._column=t,this._wordDistance=s,this._options=o,this._refilterKind=1,this._lineContext=i,this._fuzzyScoreOptions=a,r==="top"?this._snippetCompareFn=Fp._compareCompletionItemsSnippetsUp:r==="bottom"&&(this._snippetCompareFn=Fp._compareCompletionItemsSnippetsDown)}get lineContext(){return this._lineContext}set lineContext(e){(this._lineContext.leadingLineContent!==e.leadingLineContent||this._lineContext.characterCountDelta!==e.characterCountDelta)&&(this._refilterKind=this._lineContext.characterCountDelta0&&i[0].container.incomplete&&e.add(t);return e}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){this._refilterKind!==0&&this._createCachedState()}_createCachedState(){this._itemsByProvider=new Map;const e=[],{leadingLineContent:t,characterCountDelta:i}=this._lineContext;let s="",o="";const r=this._refilterKind===1?this._items:this._filteredItems,a=[],l=!this._options.filterGraceful||r.length>2e3?v0:cWe;for(let c=0;c=f)d.score=Yd.Default;else if(typeof d.completion.filterText=="string"){const p=l(s,o,g,d.completion.filterText,d.filterTextLow,0,this._fuzzyScoreOptions);if(!p)continue;Q7(d.completion.filterText,d.textLabel)===0?d.score=p:(d.score=oWe(s,o,g,d.textLabel,d.labelLow,0),d.score[0]=p[0])}else{const p=l(s,o,g,d.textLabel,d.labelLow,0,this._fuzzyScoreOptions);if(!p)continue;d.score=p}}d.idx=c,d.distance=this._wordDistance.distance(d.position,d.completion),a.push(d),e.push(d.textLabel.length)}this._filteredItems=a.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:e.length?G8(e.length-.85,e,(c,d)=>c-d):0}}static _compareCompletionItems(e,t){return e.score[0]>t.score[0]?-1:e.score[0]t.distance?1:e.idxt.idx?1:0}static _compareCompletionItemsSnippetsDown(e,t){if(e.completion.kind!==t.completion.kind){if(e.completion.kind===27)return 1;if(t.completion.kind===27)return-1}return Fp._compareCompletionItems(e,t)}static _compareCompletionItemsSnippetsUp(e,t){if(e.completion.kind!==t.completion.kind){if(e.completion.kind===27)return-1;if(t.completion.kind===27)return 1}return Fp._compareCompletionItems(e,t)}}var XJe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},up=function(n,e){return function(t,i){e(t,i,n)}},kW;class Y_{static shouldAutoTrigger(e){if(!e.hasModel())return!1;const t=e.getModel(),i=e.getPosition();t.tokenization.tokenizeIfCheap(i.lineNumber);const s=t.getWordAtPosition(i);return!(!s||s.endColumn!==i.column&&s.startColumn+1!==i.column||!isNaN(Number(s.word)))}constructor(e,t,i){this.leadingLineContent=e.getLineContent(t.lineNumber).substr(0,t.column-1),this.leadingWord=e.getWordUntilPosition(t),this.lineNumber=t.lineNumber,this.column=t.column,this.triggerOptions=i}}function QJe(n,e,t){if(!e.getContextKeyValue(lo.inlineSuggestionVisible.key))return!0;const i=e.getContextKeyValue(lo.suppressSuggestions.key);return i!==void 0?!i:!n.getOption(62).suppressSuggestions}function JJe(n,e,t){if(!e.getContextKeyValue("inlineSuggestionVisible"))return!0;const i=e.getContextKeyValue(lo.suppressSuggestions.key);return i!==void 0?!i:!n.getOption(62).suppressSuggestions}let SR=kW=class{constructor(e,t,i,s,o,r,a,l,c){this._editor=e,this._editorWorkerService=t,this._clipboardService=i,this._telemetryService=s,this._logService=o,this._contextKeyService=r,this._configurationService=a,this._languageFeaturesService=l,this._envService=c,this._toDispose=new be,this._triggerCharacterListener=new be,this._triggerQuickSuggest=new cd,this._triggerState=void 0,this._completionDisposables=new be,this._onDidCancel=new X,this._onDidTrigger=new X,this._onDidSuggest=new X,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._telemetryGate=0,this._currentSelection=this._editor.getSelection()||new it(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeModelLanguage(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeConfiguration(()=>{this._updateTriggerCharacters()})),this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange(()=>{this._updateTriggerCharacters(),this._updateActiveSuggestSession()}));let d=!1;this._toDispose.add(this._editor.onDidCompositionStart(()=>{d=!0})),this._toDispose.add(this._editor.onDidCompositionEnd(()=>{d=!1,this._onCompositionEnd()})),this._toDispose.add(this._editor.onDidChangeCursorSelection(u=>{d||this._onCursorChange(u)})),this._toDispose.add(this._editor.onDidChangeModelContent(()=>{!d&&this._triggerState!==void 0&&this._refilterCompletionItems()})),this._updateTriggerCharacters()}dispose(){tn(this._triggerCharacterListener),tn([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}_updateTriggerCharacters(){if(this._triggerCharacterListener.clear(),this._editor.getOption(91)||!this._editor.hasModel()||!this._editor.getOption(121))return;const e=new Map;for(const i of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(const s of i.triggerCharacters||[]){let o=e.get(s);o||(o=new Set,o.add(TJe()),e.set(s,o)),o.add(i)}const t=i=>{var s;if(!JJe(this._editor,this._contextKeyService,this._configurationService)||Y_.shouldAutoTrigger(this._editor))return;if(!i){const a=this._editor.getPosition();i=this._editor.getModel().getLineContent(a.lineNumber).substr(0,a.column-1)}let o="";c0(i.charCodeAt(i.length-1))?Gs(i.charCodeAt(i.length-2))&&(o=i.substr(i.length-2)):o=i.charAt(i.length-1);const r=e.get(o);if(r){const a=new Map;if(this._completionModel)for(const[l,c]of this._completionModel.getItemsByProvider())r.has(l)||a.set(l,c);this.trigger({auto:!0,triggerKind:1,triggerCharacter:o,retrigger:!!this._completionModel,clipboardText:(s=this._completionModel)===null||s===void 0?void 0:s.clipboardText,completionOptions:{providerFilter:r,providerItemsToReuse:a}})}};this._triggerCharacterListener.add(this._editor.onDidType(t)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(()=>t()))}get state(){return this._triggerState?this._triggerState.auto?2:1:0}cancel(e=!1){var t;this._triggerState!==void 0&&(this._triggerQuickSuggest.cancel(),(t=this._requestToken)===null||t===void 0||t.cancel(),this._requestToken=void 0,this._triggerState=void 0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:e}))}clear(){this._completionDisposables.clear()}_updateActiveSuggestSession(){this._triggerState!==void 0&&(!this._editor.hasModel()||!this._languageFeaturesService.completionProvider.has(this._editor.getModel())?this.cancel():this.trigger({auto:this._triggerState.auto,retrigger:!0}))}_onCursorChange(e){if(!this._editor.hasModel())return;const t=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!e.selection.isEmpty()||e.reason!==0&&e.reason!==3||e.source!=="keyboard"&&e.source!=="deleteLeft"){this.cancel();return}this._triggerState===void 0&&e.reason===0?(t.containsRange(this._currentSelection)||t.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))&&this._doTriggerQuickSuggest():this._triggerState!==void 0&&e.reason===3&&this._refilterCompletionItems()}_onCompositionEnd(){this._triggerState===void 0?this._doTriggerQuickSuggest():this._refilterCompletionItems()}_doTriggerQuickSuggest(){var e;P1.isAllOff(this._editor.getOption(89))||this._editor.getOption(118).snippetsPreventQuickSuggestions&&(!((e=Lo.get(this._editor))===null||e===void 0)&&e.isInSnippet())||(this.cancel(),this._triggerQuickSuggest.cancelAndSet(()=>{if(this._triggerState!==void 0||!Y_.shouldAutoTrigger(this._editor)||!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;const t=this._editor.getModel(),i=this._editor.getPosition(),s=this._editor.getOption(89);if(!P1.isAllOff(s)){if(!P1.isAllOn(s)){t.tokenization.tokenizeIfCheap(i.lineNumber);const o=t.tokenization.getLineTokens(i.lineNumber),r=o.getStandardTokenType(o.findTokenIndexAtOffset(Math.max(i.column-1-1,0)));if(P1.valueFor(s,r)!=="on")return}QJe(this._editor,this._contextKeyService,this._configurationService)&&this._languageFeaturesService.completionProvider.has(t)&&this.trigger({auto:!0})}},this._editor.getOption(90)))}_refilterCompletionItems(){mi(this._editor.hasModel()),mi(this._triggerState!==void 0);const e=this._editor.getModel(),t=this._editor.getPosition(),i=new Y_(e,t,{...this._triggerState,refilter:!0});this._onNewContext(i)}trigger(e){var t,i,s,o,r,a;if(!this._editor.hasModel())return;const l=this._editor.getModel(),c=new Y_(l,this._editor.getPosition(),e);this.cancel(e.retrigger),this._triggerState=e,this._onDidTrigger.fire({auto:e.auto,shy:(t=e.shy)!==null&&t!==void 0?t:!1,position:this._editor.getPosition()}),this._context=c;let d={triggerKind:(i=e.triggerKind)!==null&&i!==void 0?i:0};e.triggerCharacter&&(d={triggerKind:1,triggerCharacter:e.triggerCharacter}),this._requestToken=new $n;const u=this._editor.getOption(112);let h=1;switch(u){case"top":h=0;break;case"bottom":h=2;break}const{itemKind:f,showDeprecated:g}=kW.createSuggestFilter(this._editor),p=new yk(h,(o=(s=e.completionOptions)===null||s===void 0?void 0:s.kindFilter)!==null&&o!==void 0?o:f,(r=e.completionOptions)===null||r===void 0?void 0:r.providerFilter,(a=e.completionOptions)===null||a===void 0?void 0:a.providerItemsToReuse,g),_=Pd.create(this._editorWorkerService,this._editor),b=OU(this._languageFeaturesService.completionProvider,l,this._editor.getPosition(),p,d,this._requestToken.token);Promise.all([b,_]).then(async([w,y])=>{var S;if((S=this._requestToken)===null||S===void 0||S.dispose(),!this._editor.hasModel())return;let x=e==null?void 0:e.clipboardText;if(!x&&w.needsClipboard&&(x=await this._clipboardService.readText()),this._triggerState===void 0)return;const k=this._editor.getModel(),D=new Y_(k,this._editor.getPosition(),e),I={...qM.default,firstMatchCanBeWeak:!this._editor.getOption(118).matchOnWordStartOnly};if(this._completionModel=new Fp(w.items,this._context.column,{leadingLineContent:D.leadingLineContent,characterCountDelta:D.column-this._context.column},y,this._editor.getOption(118),this._editor.getOption(112),I,x),this._completionDisposables.add(w.disposable),this._onNewContext(D),this._reportDurationsTelemetry(w.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment)for(const N of w.items)N.isInvalid&&this._logService.warn(`[suggest] did IGNORE invalid completion item from ${N.provider._debugDisplayName}`,N.completion)}).catch(Mt)}_reportDurationsTelemetry(e){this._telemetryGate++%230===0&&setTimeout(()=>{this._telemetryService.publicLog2("suggest.durations.json",{data:JSON.stringify(e)}),this._logService.debug("suggest.durations.json",e)})}static createSuggestFilter(e){const t=new Set;e.getOption(112)==="none"&&t.add(27);const s=e.getOption(118);return s.showMethods||t.add(0),s.showFunctions||t.add(1),s.showConstructors||t.add(2),s.showFields||t.add(3),s.showVariables||t.add(4),s.showClasses||t.add(5),s.showStructs||t.add(6),s.showInterfaces||t.add(7),s.showModules||t.add(8),s.showProperties||t.add(9),s.showEvents||t.add(10),s.showOperators||t.add(11),s.showUnits||t.add(12),s.showValues||t.add(13),s.showConstants||t.add(14),s.showEnums||t.add(15),s.showEnumMembers||t.add(16),s.showKeywords||t.add(17),s.showWords||t.add(18),s.showColors||t.add(19),s.showFiles||t.add(20),s.showReferences||t.add(21),s.showColors||t.add(22),s.showFolders||t.add(23),s.showTypeParameters||t.add(24),s.showSnippets||t.add(27),s.showUsers||t.add(25),s.showIssues||t.add(26),{itemKind:t,showDeprecated:s.showDeprecated}}_onNewContext(e){if(this._context){if(e.lineNumber!==this._context.lineNumber){this.cancel();return}if(on(e.leadingLineContent)!==on(this._context.leadingLineContent)){this.cancel();return}if(e.columnthis._context.leadingWord.startColumn){if(Y_.shouldAutoTrigger(this._editor)&&this._context){const i=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:i}})}return}if(e.column>this._context.column&&this._completionModel.getIncompleteProvider().size>0&&e.leadingWord.word.length!==0){const t=new Map,i=new Set;for(const[s,o]of this._completionModel.getItemsByProvider())o.length>0&&o[0].container.incomplete?i.add(s):t.set(s,o);this.trigger({auto:this._context.triggerOptions.auto,triggerKind:2,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerFilter:i,providerItemsToReuse:t}})}else{const t=this._completionModel.lineContext;let i=!1;if(this._completionModel.lineContext={leadingLineContent:e.leadingLineContent,characterCountDelta:e.column-this._context.column},this._completionModel.items.length===0){const s=Y_.shouldAutoTrigger(this._editor);if(!this._context){this.cancel();return}if(s&&this._context.leadingWord.endColumn0,i&&e.leadingWord.word.length===0){this.cancel();return}}this._onDidSuggest.fire({completionModel:this._completionModel,triggerOptions:e.triggerOptions,isFrozen:i})}}}}};SR=kW=XJe([up(1,bc),up(2,zg),up(3,Po),up(4,er),up(5,Ct),up(6,qt),up(7,Xe),up(8,r$)],SR);class YP{constructor(e,t){this._disposables=new be,this._lastOvertyped=[],this._locked=!1,this._disposables.add(e.onWillType(()=>{if(this._locked||!e.hasModel())return;const i=e.getSelections(),s=i.length;let o=!1;for(let a=0;aYP._maxSelectionLength)return;this._lastOvertyped[a]={value:r.getValueInRange(l),multiline:l.startLineNumber!==l.endLineNumber}}})),this._disposables.add(t.onDidTrigger(i=>{this._locked=!0})),this._disposables.add(t.onDidCancel(i=>{this._locked=!1}))}getLastOvertypedInfo(e){if(e>=0&&e=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},g3=function(n,e){return function(t,i){e(t,i,n)}};let tet=class Sge extends Um{updateLabel(){const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!e)return super.updateLabel();this.label&&(this.label.textContent=v({},"{0} ({1})",this._action.label,Sge.symbolPrintEnter(e)))}static symbolPrintEnter(e){var t;return(t=e.getLabel())===null||t===void 0?void 0:t.replace(/\benter\b/gi,"⏎")}},DW=class{constructor(e,t,i,s,o){this._menuId=t,this._menuService=s,this._contextKeyService=o,this._menuDisposables=new be,this.element=we(e,ke(".suggest-status-bar"));const r=a=>a instanceof Na?i.createInstance(tet,a,void 0):void 0;this._leftActions=new hc(this.element,{actionViewItemProvider:r}),this._rightActions=new hc(this.element,{actionViewItemProvider:r}),this._leftActions.domNode.classList.add("left"),this._rightActions.domNode.classList.add("right")}dispose(){this._menuDisposables.dispose(),this._leftActions.dispose(),this._rightActions.dispose(),this.element.remove()}show(){const e=this._menuService.createMenu(this._menuId,this._contextKeyService),t=()=>{const i=[],s=[];for(const[o,r]of e.getActions())o==="left"?i.push(...r):s.push(...r);this._leftActions.clear(),this._leftActions.push(i),this._rightActions.clear(),this._rightActions.push(s)};this._menuDisposables.add(e.onDidChange(()=>t())),this._menuDisposables.add(e)}hide(){this._menuDisposables.clear()}};DW=eet([g3(2,ht),g3(3,Dl),g3(4,Ct)],DW);var iet=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},net=function(n,e){return function(t,i){e(t,i,n)}};function WU(n){return!!n&&!!(n.completion.documentation||n.completion.detail&&n.completion.detail!==n.completion.label)}let IW=class{constructor(e,t){this._editor=e,this._onDidClose=new X,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new X,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new be,this._renderDisposeable=new be,this._borderWidth=1,this._size=new yi(330,0),this.domNode=ke(".suggest-details"),this.domNode.classList.add("no-docs"),this._markdownRenderer=t.createInstance(Nh,{editor:e}),this._body=ke(".body"),this._scrollbar=new wD(this._body,{alwaysConsumeMouseWheel:!0}),we(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=we(this._body,ke(".header")),this._close=we(this._header,ke("span"+_t.asCSSSelector(Te.close))),this._close.title=v("details.close","Close"),this._type=we(this._header,ke("p.type")),this._docs=we(this._body,ke("p.docs")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration(i=>{i.hasChanged(50)&&this._configureFont()}))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose()}_configureFont(){const e=this._editor.getOptions(),t=e.get(50),i=t.getMassagedFontFamily(),s=e.get(119)||t.fontSize,o=e.get(120)||t.lineHeight,r=t.fontWeight,a=`${s}px`,l=`${o}px`;this.domNode.style.fontSize=a,this.domNode.style.lineHeight=`${o/s}`,this.domNode.style.fontWeight=r,this.domNode.style.fontFeatureSettings=t.fontFeatureSettings,this._type.style.fontFamily=i,this._close.style.height=l,this._close.style.width=l}getLayoutInfo(){const e=this._editor.getOption(120)||this._editor.getOption(50).lineHeight,t=this._borderWidth,i=t*2;return{lineHeight:e,borderWidth:t,borderHeight:i,verticalPadding:22,horizontalPadding:14}}renderLoading(){this._type.textContent=v("loading","Loading..."),this._docs.textContent="",this.domNode.classList.remove("no-docs","no-type"),this.layout(this.size.width,this.getLayoutInfo().lineHeight*2),this._onDidChangeContents.fire(this)}renderItem(e,t){var i,s;this._renderDisposeable.clear();let{detail:o,documentation:r}=e.completion;if(t){let a="";a+=`score: ${e.score[0]} `,a+=`prefix: ${(i=e.word)!==null&&i!==void 0?i:"(no prefix)"} `,a+=`word: ${e.completion.filterText?e.completion.filterText+" (filterText)":e.textLabel} `,a+=`distance: ${e.distance} (localityBonus-setting) `,a+=`index: ${e.idx}, based on ${e.completion.sortText&&`sortText: "${e.completion.sortText}"`||"label"} `,a+=`commit_chars: ${(s=e.completion.commitCharacters)===null||s===void 0?void 0:s.join("")} `,r=new $o().appendCodeblock("empty",a),o=`Provider: ${e.provider._debugDisplayName}`}if(!t&&!WU(e)){this.clearContents();return}if(this.domNode.classList.remove("no-docs","no-type"),o){const a=o.length>1e5?`${o.substr(0,1e5)}…`:o;this._type.textContent=a,this._type.title=a,ka(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gmi.test(a))}else wo(this._type),this._type.title="",Lr(this._type),this.domNode.classList.add("no-type");if(wo(this._docs),typeof r=="string")this._docs.classList.remove("markdown-docs"),this._docs.textContent=r;else if(r){this._docs.classList.add("markdown-docs"),wo(this._docs);const a=this._markdownRenderer.render(r);this._docs.appendChild(a.element),this._renderDisposeable.add(a),this._renderDisposeable.add(this._markdownRenderer.onDidRenderAsync(()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}))}this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=a=>{a.preventDefault(),a.stopPropagation()},this._close.onclick=a=>{a.preventDefault(),a.stopPropagation(),this._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}clearContents(){this.domNode.classList.add("no-docs"),this._type.textContent="",this._docs.textContent=""}get isEmpty(){return this.domNode.classList.contains("no-docs")}get size(){return this._size}layout(e,t){const i=new yi(e,t);yi.equals(i,this._size)||(this._size=i,SMe(this.domNode,e,t)),this._scrollbar.scanDomNode()}scrollDown(e=8){this._body.scrollTop+=e}scrollUp(e=8){this._body.scrollTop-=e}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}set borderWidth(e){this._borderWidth=e}get borderWidth(){return this._borderWidth}};IW=iet([net(1,ht)],IW);class set{constructor(e,t){this.widget=e,this._editor=t,this.allowEditorOverflow=!0,this._disposables=new be,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new yU,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(e.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let i,s,o=0,r=0;this._disposables.add(this._resizable.onDidWillResize(()=>{i=this._topLeft,s=this._resizable.size})),this._disposables.add(this._resizable.onDidResize(a=>{if(i&&s){this.widget.layout(a.dimension.width,a.dimension.height);let l=!1;a.west&&(r=s.width-a.dimension.width,l=!0),a.north&&(o=s.height-a.dimension.height,l=!0),l&&this._applyTopLeft({top:i.top+o,left:i.left+r})}a.done&&(i=void 0,s=void 0,o=0,r=0,this._userSize=a.dimension)})),this._disposables.add(this.widget.onDidChangeContents(()=>{var a;this._anchorBox&&this._placeAtAnchor(this._anchorBox,(a=this._userSize)!==null&&a!==void 0?a:this.widget.size,this._preferAlignAtTop)}))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return"suggest.details"}getDomNode(){return this._resizable.domNode}getPosition(){return this._topLeft?{preference:this._topLeft}:null}show(){this._added||(this._editor.addOverlayWidget(this),this._added=!0)}hide(e=!1){this._resizable.clearSashHoverState(),this._added&&(this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0),e&&(this._userSize=void 0,this.widget.clearContents())}placeAtAnchor(e,t){var i;const s=e.getBoundingClientRect();this._anchorBox=s,this._preferAlignAtTop=t,this._placeAtAnchor(this._anchorBox,(i=this._userSize)!==null&&i!==void 0?i:this.widget.size,t)}_placeAtAnchor(e,t,i){var s;const o=Fm(this.getDomNode().ownerDocument.body),r=this.widget.getLayoutInfo(),a=new yi(220,2*r.lineHeight),l=e.top,c=function(){const k=o.width-(e.left+e.width+r.borderWidth+r.horizontalPadding),D=-r.borderWidth+e.left+e.width,I=new yi(k,o.height-e.top-r.borderHeight-r.verticalPadding),N=I.with(void 0,e.top+e.height-r.borderHeight-r.verticalPadding);return{top:l,left:D,fit:k-t.width,maxSizeTop:I,maxSizeBottom:N,minSize:a.with(Math.min(k,a.width))}}(),d=function(){const k=e.left-r.borderWidth-r.horizontalPadding,D=Math.max(r.horizontalPadding,e.left-t.width-r.borderWidth),I=new yi(k,o.height-e.top-r.borderHeight-r.verticalPadding),N=I.with(void 0,e.top+e.height-r.borderHeight-r.verticalPadding);return{top:l,left:D,fit:k-t.width,maxSizeTop:I,maxSizeBottom:N,minSize:a.with(Math.min(k,a.width))}}(),u=function(){const k=e.left,D=-r.borderWidth+e.top+e.height,I=new yi(e.width-r.borderHeight,o.height-e.top-e.height-r.verticalPadding);return{top:D,left:k,fit:I.height-t.height,maxSizeBottom:I,maxSizeTop:I,minSize:a.with(I.width)}}(),h=[c,d,u],f=(s=h.find(k=>k.fit>=0))!==null&&s!==void 0?s:h.sort((k,D)=>D.fit-k.fit)[0],g=e.top+e.height-r.borderHeight;let p,_=t.height;const b=Math.max(f.maxSizeTop.height,f.maxSizeBottom.height);_>b&&(_=b);let w;i?_<=f.maxSizeTop.height?(p=!0,w=f.maxSizeTop):(p=!1,w=f.maxSizeBottom):_<=f.maxSizeBottom.height?(p=!1,w=f.maxSizeBottom):(p=!0,w=f.maxSizeTop);let{top:y,left:S}=f;!p&&_>e.height&&(y=g-_);const x=this._editor.getDomNode();if(x){const k=x.getBoundingClientRect();y-=k.top,S-=k.left}this._applyTopLeft({left:S,top:y}),this._resizable.enableSashes(!p,f===c,p,f!==c),this._resizable.minSize=f.minSize,this._resizable.maxSize=w,this._resizable.layout(_,Math.min(w.width,t.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(e){this._topLeft=e,this._editor.layoutOverlayWidget(this)}}var hh;(function(n){n[n.FILE=0]="FILE",n[n.FOLDER=1]="FOLDER",n[n.ROOT_FOLDER=2]="ROOT_FOLDER"})(hh||(hh={}));const oet=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function RT(n,e,t,i,s){if(_t.isThemeIcon(s))return[`codicon-${s.id}`,"predefined-file-icon"];if(pt.isUri(s))return[];const o=i===hh.ROOT_FOLDER?["rootfolder-icon"]:i===hh.FOLDER?["folder-icon"]:["file-icon"];if(t){let r;if(t.scheme===Tt.data)r=Vm.parseMetaData(t).get(Vm.META_DATA_LABEL);else{const a=t.path.match(oet);a?(r=MT(a[2].toLowerCase()),a[1]&&o.push(`${MT(a[1].toLowerCase())}-name-dir-icon`)):r=MT(t.authority.toLowerCase())}if(i===hh.ROOT_FOLDER)o.push(`${r}-root-name-folder-icon`);else if(i===hh.FOLDER)o.push(`${r}-name-folder-icon`);else{if(r){if(o.push(`${r}-name-file-icon`),o.push("name-file-icon"),r.length<=255){const l=r.split(".");for(let c=1;c=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},p3=function(n,e){return function(t,i){e(t,i,n)}},hp;function xge(n){return`suggest-aria-id:${n}`}const cet=Jn("suggest-more-info",Te.chevronRight,v("suggestMoreInfoIcon","Icon for more information in the suggest widget.")),det=new(hp=class{extract(e,t){if(e.textLabel.match(hp._regexStrict))return t[0]=e.textLabel,!0;if(e.completion.detail&&e.completion.detail.match(hp._regexStrict))return t[0]=e.completion.detail,!0;if(e.completion.documentation){const i=typeof e.completion.documentation=="string"?e.completion.documentation:e.completion.documentation.value,s=hp._regexRelaxed.exec(i);if(s&&(s.index===0||s.index+s[0].length===i.length))return t[0]=s[0],!0}return!1}},hp._regexRelaxed=/(#([\da-fA-F]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))/,hp._regexStrict=new RegExp(`^${hp._regexRelaxed.source}$`,"i"),hp);let EW=class{constructor(e,t,i,s){this._editor=e,this._modelService=t,this._languageService=i,this._themeService=s,this._onDidToggleDetails=new X,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(e){const t=new be,i=e;i.classList.add("show-file-icons");const s=we(e,ke(".icon")),o=we(s,ke("span.colorspan")),r=we(e,ke(".contents")),a=we(r,ke(".main")),l=we(a,ke(".icon-label.codicon")),c=we(a,ke("span.left")),d=we(a,ke("span.right")),u=new zA(c,{supportHighlights:!0,supportIcons:!0});t.add(u);const h=we(c,ke("span.signature-label")),f=we(c,ke("span.qualifier-label")),g=we(d,ke("span.details-label")),p=we(d,ke("span.readMore"+_t.asCSSSelector(cet)));return p.title=v("readMore","Read More"),{root:i,left:c,right:d,icon:s,colorspan:o,iconLabel:u,iconContainer:l,parametersLabel:h,qualifierLabel:f,detailsLabel:g,readMore:p,disposables:t,configureFont:()=>{const b=this._editor.getOptions(),w=b.get(50),y=w.getMassagedFontFamily(),S=w.fontFeatureSettings,x=b.get(119)||w.fontSize,k=b.get(120)||w.lineHeight,D=w.fontWeight,I=w.letterSpacing,N=`${x}px`,P=`${k}px`,O=`${I}px`;i.style.fontSize=N,i.style.fontWeight=D,i.style.letterSpacing=O,a.style.fontFamily=y,a.style.fontFeatureSettings=S,a.style.lineHeight=P,s.style.height=P,s.style.width=P,p.style.height=P,p.style.width=P}}}renderElement(e,t,i){i.configureFont();const{completion:s}=e;i.root.id=xge(t),i.colorspan.style.backgroundColor="";const o={labelEscapeNewLines:!0,matches:ID(e.score)},r=[];if(s.kind===19&&det.extract(e,r))i.icon.className="icon customcolor",i.iconContainer.className="icon hide",i.colorspan.style.backgroundColor=r[0];else if(s.kind===20&&this._themeService.getFileIconTheme().hasFileIcons){i.icon.className="icon hide",i.iconContainer.className="icon hide";const a=RT(this._modelService,this._languageService,pt.from({scheme:"fake",path:e.textLabel}),hh.FILE),l=RT(this._modelService,this._languageService,pt.from({scheme:"fake",path:s.detail}),hh.FILE);o.extraClasses=a.length>l.length?a:l}else s.kind===23&&this._themeService.getFileIconTheme().hasFolderIcons?(i.icon.className="icon hide",i.iconContainer.className="icon hide",o.extraClasses=[RT(this._modelService,this._languageService,pt.from({scheme:"fake",path:e.textLabel}),hh.FOLDER),RT(this._modelService,this._languageService,pt.from({scheme:"fake",path:s.detail}),hh.FOLDER)].flat()):(i.icon.className="icon hide",i.iconContainer.className="",i.iconContainer.classList.add("suggest-icon",..._t.asClassNameArray(rL.toIcon(s.kind))));s.tags&&s.tags.indexOf(1)>=0&&(o.extraClasses=(o.extraClasses||[]).concat(["deprecated"]),o.matches=[]),i.iconLabel.setLabel(e.textLabel,void 0,o),typeof s.label=="string"?(i.parametersLabel.textContent="",i.detailsLabel.textContent=m3(s.detail||""),i.root.classList.add("string-label")):(i.parametersLabel.textContent=m3(s.label.detail||""),i.detailsLabel.textContent=m3(s.label.description||""),i.root.classList.remove("string-label")),this._editor.getOption(118).showInlineDetails?ka(i.detailsLabel):Lr(i.detailsLabel),WU(e)?(i.right.classList.add("can-expand-details"),ka(i.readMore),i.readMore.onmousedown=a=>{a.stopPropagation(),a.preventDefault()},i.readMore.onclick=a=>{a.stopPropagation(),a.preventDefault(),this._onDidToggleDetails.fire()}):(i.right.classList.remove("can-expand-details"),Lr(i.readMore),i.readMore.onmousedown=null,i.readMore.onclick=null)}disposeTemplate(e){e.disposables.dispose()}};EW=aet([p3(1,Pn),p3(2,An),p3(3,js)],EW);function m3(n){return n.replace(/\r\n|\r|\n/g,"")}var uet=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},PT=function(n,e){return function(t,i){e(t,i,n)}},l1;V("editorSuggestWidget.background",{dark:fs,light:fs,hcDark:fs,hcLight:fs},v("editorSuggestWidgetBackground","Background color of the suggest widget."));V("editorSuggestWidget.border",{dark:Qf,light:Qf,hcDark:Qf,hcLight:Qf},v("editorSuggestWidgetBorder","Border color of the suggest widget."));const OT=V("editorSuggestWidget.foreground",{dark:Ql,light:Ql,hcDark:Ql,hcLight:Ql},v("editorSuggestWidgetForeground","Foreground color of the suggest widget."));V("editorSuggestWidget.selectedForeground",{dark:qp,light:qp,hcDark:qp,hcLight:qp},v("editorSuggestWidgetSelectedForeground","Foreground color of the selected entry in the suggest widget."));V("editorSuggestWidget.selectedIconForeground",{dark:S1,light:S1,hcDark:S1,hcLight:S1},v("editorSuggestWidgetSelectedIconForeground","Icon foreground color of the selected entry in the suggest widget."));const het=V("editorSuggestWidget.selectedBackground",{dark:Gp,light:Gp,hcDark:Gp,hcLight:Gp},v("editorSuggestWidgetSelectedBackground","Background color of the selected entry in the suggest widget."));V("editorSuggestWidget.highlightForeground",{dark:Zc,light:Zc,hcDark:Zc,hcLight:Zc},v("editorSuggestWidgetHighlightForeground","Color of the match highlights in the suggest widget."));V("editorSuggestWidget.focusHighlightForeground",{dark:RE,light:RE,hcDark:RE,hcLight:RE},v("editorSuggestWidgetFocusHighlightForeground","Color of the match highlights in the suggest widget when an item is focused."));V("editorSuggestWidgetStatus.foreground",{dark:ut(OT,.5),light:ut(OT,.5),hcDark:ut(OT,.5),hcLight:ut(OT,.5)},v("editorSuggestWidgetStatusForeground","Foreground color of the suggest widget status."));class fet{constructor(e,t){this._service=e,this._key=`suggestWidget.size/${t.getEditorType()}/${t instanceof Ym}`}restore(){var e;const t=(e=this._service.get(this._key,0))!==null&&e!==void 0?e:"";try{const i=JSON.parse(t);if(yi.is(i))return yi.lift(i)}catch{}}store(e){this._service.store(this._key,JSON.stringify(e),0,1)}reset(){this._service.remove(this._key,0)}}let Lk=l1=class{constructor(e,t,i,s,o){this.editor=e,this._storageService=t,this._state=0,this._isAuto=!1,this._pendingLayout=new Qs,this._pendingShowDetails=new Qs,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new cd,this._disposables=new be,this._onDidSelect=new a0,this._onDidFocus=new a0,this._onDidHide=new X,this._onDidShow=new X,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new X,this.onDetailsKeyDown=this._onDetailsKeydown.event,this.element=new yU,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new get(this,e),this._persistedSize=new fet(t,e);class r{constructor(f,g,p=!1,_=!1){this.persistedSize=f,this.currentSize=g,this.persistHeight=p,this.persistWidth=_}}let a;this._disposables.add(this.element.onDidWillResize(()=>{this._contentWidget.lockPreference(),a=new r(this._persistedSize.restore(),this.element.size)})),this._disposables.add(this.element.onDidResize(h=>{var f,g,p,_;if(this._resize(h.dimension.width,h.dimension.height),a&&(a.persistHeight=a.persistHeight||!!h.north||!!h.south,a.persistWidth=a.persistWidth||!!h.east||!!h.west),!!h.done){if(a){const{itemHeight:b,defaultSize:w}=this.getLayoutInfo(),y=Math.round(b/2);let{width:S,height:x}=this.element.size;(!a.persistHeight||Math.abs(a.currentSize.height-x)<=y)&&(x=(g=(f=a.persistedSize)===null||f===void 0?void 0:f.height)!==null&&g!==void 0?g:w.height),(!a.persistWidth||Math.abs(a.currentSize.width-S)<=y)&&(S=(_=(p=a.persistedSize)===null||p===void 0?void 0:p.width)!==null&&_!==void 0?_:w.width),this._persistedSize.store(new yi(S,x))}this._contentWidget.unlockPreference(),a=void 0}})),this._messageElement=we(this.element.domNode,ke(".message")),this._listElement=we(this.element.domNode,ke(".tree"));const l=this._disposables.add(o.createInstance(IW,this.editor));l.onDidClose(this.toggleDetails,this,this._disposables),this._details=new set(l,this.editor);const c=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(118).showIcons);c();const d=o.createInstance(EW,this.editor);this._disposables.add(d),this._disposables.add(d.onDidToggleDetails(()=>this.toggleDetails())),this._list=new El("SuggestWidget",this._listElement,{getHeight:h=>this.getLayoutInfo().itemHeight,getTemplateId:h=>"suggestion"},[d],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>"option",getWidgetAriaLabel:()=>v("suggest","Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:h=>{let f=h.textLabel;if(typeof h.completion.label!="string"){const{detail:b,description:w}=h.completion.label;b&&w?f=v("label.full","{0} {1}, {2}",f,b,w):b?f=v("label.detail","{0} {1}",f,b):w&&(f=v("label.desc","{0}, {1}",f,w))}if(!h.isResolved||!this._isDetailsVisible())return f;const{documentation:g,detail:p}=h.completion,_=l0("{0}{1}",p||"",g?typeof g=="string"?g:g.value:"");return v("ariaCurrenttSuggestionReadDetails","{0}, docs: {1}",f,_)}}}),this._list.style(tb({listInactiveFocusBackground:het,listInactiveFocusOutline:En})),this._status=o.createInstance(DW,this.element.domNode,bm);const u=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(118).showStatusBar);u(),this._disposables.add(s.onDidColorThemeChange(h=>this._onThemeChange(h))),this._onThemeChange(s.getColorTheme()),this._disposables.add(this._list.onMouseDown(h=>this._onListMouseDownOrTap(h))),this._disposables.add(this._list.onTap(h=>this._onListMouseDownOrTap(h))),this._disposables.add(this._list.onDidChangeSelection(h=>this._onListSelection(h))),this._disposables.add(this._list.onDidChangeFocus(h=>this._onListFocus(h))),this._disposables.add(this.editor.onDidChangeCursorSelection(()=>this._onCursorSelectionChanged())),this._disposables.add(this.editor.onDidChangeConfiguration(h=>{h.hasChanged(118)&&(u(),c()),this._completionModel&&(h.hasChanged(50)||h.hasChanged(119)||h.hasChanged(120))&&this._list.splice(0,this._list.length,this._completionModel.items)})),this._ctxSuggestWidgetVisible=$t.Visible.bindTo(i),this._ctxSuggestWidgetDetailsVisible=$t.DetailsVisible.bindTo(i),this._ctxSuggestWidgetMultipleSuggestions=$t.MultipleSuggestions.bindTo(i),this._ctxSuggestWidgetHasFocusedSuggestion=$t.HasFocusedSuggestion.bindTo(i),this._disposables.add(rs(this._details.widget.domNode,"keydown",h=>{this._onDetailsKeydown.fire(h)})),this._disposables.add(this.editor.onMouseDown(h=>this._onEditorMouseDown(h)))}dispose(){var e;this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),(e=this._loadingTimeout)===null||e===void 0||e.dispose(),this._pendingLayout.dispose(),this._pendingShowDetails.dispose(),this._showTimeout.dispose(),this._contentWidget.dispose(),this.element.dispose()}_onEditorMouseDown(e){this._details.widget.domNode.contains(e.target.element)?this._details.widget.domNode.focus():this.element.domNode.contains(e.target.element)&&this.editor.focus()}_onCursorSelectionChanged(){this._state!==0&&this._contentWidget.layout()}_onListMouseDownOrTap(e){typeof e.element>"u"||typeof e.index>"u"||(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation(),this._select(e.element,e.index))}_onListSelection(e){e.elements.length&&this._select(e.elements[0],e.indexes[0])}_select(e,t){const i=this._completionModel;i&&(this._onDidSelect.fire({item:e,index:t,model:i}),this.editor.focus())}_onThemeChange(e){this._details.widget.borderWidth=Zd(e.type)?2:1}_onListFocus(e){var t;if(this._ignoreFocusEvents)return;if(!e.elements.length){this._currentSuggestionDetails&&(this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0),this.editor.setAriaOptions({activeDescendant:void 0}),this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);return}if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);const i=e.elements[0],s=e.indexes[0];i!==this._focusedItem&&((t=this._currentSuggestionDetails)===null||t===void 0||t.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=i,this._list.reveal(s),this._currentSuggestionDetails=Xs(async o=>{const r=Om(()=>{this._isDetailsVisible()&&this.showDetails(!0)},250),a=o.onCancellationRequested(()=>r.dispose());try{return await i.resolve(o)}finally{r.dispose(),a.dispose()}}),this._currentSuggestionDetails.then(()=>{s>=this._list.length||i!==this._list.element(s)||(this._ignoreFocusEvents=!0,this._list.splice(s,1,[i]),this._list.setFocus([s]),this._ignoreFocusEvents=!1,this._isDetailsVisible()?this.showDetails(!1):this.element.domNode.classList.remove("docs-side"),this.editor.setAriaOptions({activeDescendant:xge(s)}))}).catch(Mt)),this._onDidFocus.fire({item:i,index:s,model:this._completionModel})}_setState(e){if(this._state!==e)switch(this._state=e,this.element.domNode.classList.toggle("frozen",e===4),this.element.domNode.classList.remove("message"),e){case 0:Lr(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._ctxSuggestWidgetHasFocusedSuggestion.reset(),this._showTimeout.cancel(),this.element.domNode.classList.remove("visible"),this._list.splice(0,this._list.length),this._focusedItem=void 0,this._cappedHeight=void 0,this._explainMode=!1;break;case 1:this.element.domNode.classList.add("message"),this._messageElement.textContent=l1.LOADING_MESSAGE,Lr(this._listElement,this._status.element),ka(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,Ih(l1.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=l1.NO_SUGGESTIONS_MESSAGE,Lr(this._listElement,this._status.element),ka(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,Ih(l1.NO_SUGGESTIONS_MESSAGE);break;case 3:Lr(this._messageElement),ka(this._listElement,this._status.element),this._show();break;case 4:Lr(this._messageElement),ka(this._listElement,this._status.element),this._show();break;case 5:Lr(this._messageElement),ka(this._listElement,this._status.element),this._details.show(),this._show();break}}_show(){this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet(()=>{this.element.domNode.classList.add("visible"),this._onDidShow.fire(this)},100)}showTriggered(e,t){this._state===0&&(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!e,this._isAuto||(this._loadingTimeout=Om(()=>this._setState(1),t)))}showSuggestions(e,t,i,s,o){var r,a;if(this._contentWidget.setPosition(this.editor.getPosition()),(r=this._loadingTimeout)===null||r===void 0||r.dispose(),(a=this._currentSuggestionDetails)===null||a===void 0||a.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==e&&(this._completionModel=e),i&&this._state!==2&&this._state!==0){this._setState(4);return}const l=this._completionModel.items.length,c=l===0;if(this._ctxSuggestWidgetMultipleSuggestions.set(l>1),c){this._setState(s?0:2),this._completionModel=void 0;return}this._focusedItem=void 0,this._onDidFocus.pause(),this._onDidSelect.pause();try{this._list.splice(0,this._list.length,this._completionModel.items),this._setState(i?4:3),this._list.reveal(t,0),this._list.setFocus(o?[]:[t])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=B2(gt(this.element.domNode),()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove("focused")})}focusSelected(){this._list.length>0&&this._list.setFocus([0])}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(this._state!==0&&this._state!==2&&this._state!==1&&this._completionModel&&this._list.getFocus().length>0)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel}}toggleDetailsFocus(){this._state===5?(this._setState(3),this._details.widget.domNode.classList.remove("focused")):this._state===3&&this._isDetailsVisible()&&(this._setState(5),this._details.widget.domNode.classList.add("focused"))}toggleDetails(){this._isDetailsVisible()?(this._pendingShowDetails.clear(),this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove("shows-details")):(WU(this._list.getFocusedElements()[0])||this._explainMode)&&(this._state===3||this._state===5||this._state===4)&&(this._ctxSuggestWidgetDetailsVisible.set(!0),this._setDetailsVisible(!0),this.showDetails(!1))}showDetails(e){this._pendingShowDetails.value=B2(gt(this.element.domNode),()=>{this._pendingShowDetails.clear(),this._details.show(),e?this._details.widget.renderLoading():this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode),this._details.widget.isEmpty?this._details.hide():(this._positionDetails(),this.element.domNode.classList.add("shows-details")),this.editor.focus()})}toggleExplainMode(){this._list.getFocusedElements()[0]&&(this._explainMode=!this._explainMode,this._isDetailsVisible()?this.showDetails(!1):this.toggleDetails())}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){var e;this._pendingLayout.clear(),this._pendingShowDetails.clear(),(e=this._loadingTimeout)===null||e===void 0||e.dispose(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();const t=this._persistedSize.restore(),i=Math.ceil(this.getLayoutInfo().itemHeight*4.3);t&&t.heightc&&(l=c);const d=this._completionModel?this._completionModel.stats.pLabelLen*r.typicalHalfwidthCharacterWidth:l,u=r.statusBarHeight+this._list.contentHeight+r.borderHeight,h=r.itemHeight+r.statusBarHeight,f=bs(this.editor.getDomNode()),g=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),p=f.top+g.top+g.height,_=Math.min(o.height-p-r.verticalPadding,u),b=f.top+g.top-r.verticalPadding,w=Math.min(b,u);let y=Math.min(Math.max(w,_)+r.borderHeight,u);a===((t=this._cappedHeight)===null||t===void 0?void 0:t.capped)&&(a=this._cappedHeight.wanted),ay&&(a=y),a>_||this._forceRenderingAbove&&b>150?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),y=w):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),y=_),this.element.preferredSize=new yi(d,r.defaultSize.height),this.element.maxSize=new yi(c,y),this.element.minSize=new yi(220,h),this._cappedHeight=a===u?{wanted:(s=(i=this._cappedHeight)===null||i===void 0?void 0:i.wanted)!==null&&s!==void 0?s:e.height,capped:a}:void 0}this._resize(l,a)}_resize(e,t){const{width:i,height:s}=this.element.maxSize;e=Math.min(i,e),t=Math.min(s,t);const{statusBarHeight:o}=this.getLayoutInfo();this._list.layout(t-o,e),this._listElement.style.height=`${t-o}px`,this.element.layout(t,e),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){var e;this._isDetailsVisible()&&this._details.placeAtAnchor(this.element.domNode,((e=this._contentWidget.getPosition())===null||e===void 0?void 0:e.preference[0])===2)}getLayoutInfo(){const e=this.editor.getOption(50),t=Sr(this.editor.getOption(120)||e.lineHeight,8,1e3),i=!this.editor.getOption(118).showStatusBar||this._state===2||this._state===1?0:t,s=this._details.widget.borderWidth,o=2*s;return{itemHeight:t,statusBarHeight:i,borderWidth:s,borderHeight:o,typicalHalfwidthCharacterWidth:e.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new yi(430,i+12*t+o)}}_isDetailsVisible(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}_setDetailsVisible(e){this._storageService.store("expandSuggestionDocs",e,0,0)}forceRenderingAbove(){this._forceRenderingAbove||(this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore()))}stopForceRenderingAbove(){this._forceRenderingAbove=!1}};Lk.LOADING_MESSAGE=v("suggestWidget.loading","Loading...");Lk.NO_SUGGESTIONS_MESSAGE=v("suggestWidget.noSuggestions","No suggestions.");Lk=l1=uet([PT(1,dd),PT(2,Ct),PT(3,js),PT(4,ht)],Lk);class get{constructor(e,t){this._widget=e,this._editor=t,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}dispose(){this._added&&(this._added=!1,this._editor.removeContentWidget(this))}getId(){return"editor.widget.suggestWidget"}getDomNode(){return this._widget.element.domNode}show(){this._hidden=!1,this._added||(this._added=!0,this._editor.addContentWidget(this))}hide(){this._hidden||(this._hidden=!0,this.layout())}layout(){this._editor.layoutContentWidget(this)}getPosition(){return this._hidden||!this._position||!this._preference?null:{position:this._position,preference:[this._preference]}}beforeRender(){const{height:e,width:t}=this._widget.element.size,{borderWidth:i,horizontalPadding:s}=this._widget.getLayoutInfo();return new yi(t+2*i+s,e+2*i)}afterRender(e){this._widget._afterRender(e)}setPreference(e){this._preferenceLocked||(this._preference=e)}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(e){this._position=e}}var pet=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},qb=function(n,e){return function(t,i){e(t,i,n)}},TW;class met{constructor(e,t){if(this._model=e,this._position=t,this._decorationOptions=Wt.register({description:"suggest-line-suffix",stickiness:1}),e.getLineMaxColumn(t.lineNumber)!==t.column){const s=e.getOffsetAt(t),o=e.getPositionAt(s+1);e.changeDecorations(r=>{this._marker&&r.removeDecoration(this._marker),this._marker=r.addDecoration(A.fromPositions(t,o),this._decorationOptions)})}}dispose(){this._marker&&!this._model.isDisposed()&&this._model.changeDecorations(e=>{e.removeDecoration(this._marker),this._marker=void 0})}delta(e){if(this._model.isDisposed()||this._position.lineNumber!==e.lineNumber)return 0;if(this._marker){const t=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(t.getStartPosition())-this._model.getOffsetAt(e)}else return this._model.getLineMaxColumn(e.lineNumber)-e.column}}let Yc=TW=class{static get(e){return e.getContribution(TW.ID)}constructor(e,t,i,s,o,r,a){this._memoryService=t,this._commandService=i,this._contextKeyService=s,this._instantiationService=o,this._logService=r,this._telemetryService=a,this._lineSuffix=new Qs,this._toDispose=new be,this._selectors=new _et(u=>u.priority),this._onWillInsertSuggestItem=new X,this.onWillInsertSuggestItem=this._onWillInsertSuggestItem.event,this.editor=e,this.model=o.createInstance(SR,this.editor),this._selectors.register({priority:0,select:(u,h,f)=>this._memoryService.select(u,h,f)});const l=$t.InsertMode.bindTo(s);l.set(e.getOption(118).insertMode),this._toDispose.add(this.model.onDidTrigger(()=>l.set(e.getOption(118).insertMode))),this.widget=this._toDispose.add(new AF(gt(e.getDomNode()),()=>{const u=this._instantiationService.createInstance(Lk,this.editor);this._toDispose.add(u),this._toDispose.add(u.onDidSelect(_=>this._insertSuggestion(_,0),this));const h=new YJe(this.editor,u,this.model,_=>this._insertSuggestion(_,2));this._toDispose.add(h);const f=$t.MakesTextEdit.bindTo(this._contextKeyService),g=$t.HasInsertAndReplaceRange.bindTo(this._contextKeyService),p=$t.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add(dt(()=>{f.reset(),g.reset(),p.reset()})),this._toDispose.add(u.onDidFocus(({item:_})=>{const b=this.editor.getPosition(),w=_.editStart.column,y=b.column;let S=!0;this.editor.getOption(1)==="smart"&&this.model.state===2&&!_.completion.additionalTextEdits&&!(_.completion.insertTextRules&4)&&y-w===_.completion.insertText.length&&(S=this.editor.getModel().getValueInRange({startLineNumber:b.lineNumber,startColumn:w,endLineNumber:b.lineNumber,endColumn:y})!==_.completion.insertText),f.set(S),g.set(!ee.equals(_.editInsertEnd,_.editReplaceEnd)),p.set(!!_.provider.resolveCompletionItem||!!_.completion.documentation||_.completion.detail!==_.completion.label)})),this._toDispose.add(u.onDetailsKeyDown(_=>{if(_.toKeyCodeChord().equals(new kg(!0,!1,!1,!1,33))||Xt&&_.toKeyCodeChord().equals(new kg(!1,!1,!1,!0,33))){_.stopPropagation();return}_.toKeyCodeChord().isModifierKey()||this.editor.focus()})),u})),this._overtypingCapturer=this._toDispose.add(new AF(gt(e.getDomNode()),()=>this._toDispose.add(new YP(this.editor,this.model)))),this._alternatives=this._toDispose.add(new AF(gt(e.getDomNode()),()=>this._toDispose.add(new R0(this.editor,this._contextKeyService)))),this._toDispose.add(o.createInstance(xk,e)),this._toDispose.add(this.model.onDidTrigger(u=>{this.widget.value.showTriggered(u.auto,u.shy?250:50),this._lineSuffix.value=new met(this.editor.getModel(),u.position)})),this._toDispose.add(this.model.onDidSuggest(u=>{if(u.triggerOptions.shy)return;let h=-1;for(const g of this._selectors.itemsOrderedByPriorityDesc)if(h=g.select(this.editor.getModel(),this.editor.getPosition(),u.completionModel.items),h!==-1)break;if(h===-1&&(h=0),this.model.state===0)return;let f=!1;if(u.triggerOptions.auto){const g=this.editor.getOption(118);g.selectionMode==="never"||g.selectionMode==="always"?f=g.selectionMode==="never":g.selectionMode==="whenTriggerCharacter"?f=u.triggerOptions.triggerKind!==1:g.selectionMode==="whenQuickSuggestion"&&(f=u.triggerOptions.triggerKind===1&&!u.triggerOptions.refilter)}this.widget.value.showSuggestions(u.completionModel,h,u.isFrozen,u.triggerOptions.auto,f)})),this._toDispose.add(this.model.onDidCancel(u=>{u.retrigger||this.widget.value.hideWidget()})),this._toDispose.add(this.editor.onDidBlurEditorWidget(()=>{this.model.cancel(),this.model.clear()}));const c=$t.AcceptSuggestionsOnEnter.bindTo(s),d=()=>{const u=this.editor.getOption(1);c.set(u==="on"||u==="smart")};this._toDispose.add(this.editor.onDidChangeConfiguration(()=>d())),d()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(e,t){if(!e||!e.item){this._alternatives.value.reset(),this.model.cancel(),this.model.clear();return}if(!this.editor.hasModel())return;const i=Lo.get(this.editor);if(!i)return;this._onWillInsertSuggestItem.fire({item:e.item});const s=this.editor.getModel(),o=s.getAlternativeVersionId(),{item:r}=e,a=[],l=new $n;t&1||this.editor.pushUndoStop();const c=this.getOverwriteInfo(r,!!(t&8));this._memoryService.memorize(s,this.editor.getPosition(),r);const d=r.isResolved;let u=-1,h=-1;if(Array.isArray(r.completion.additionalTextEdits)){this.model.cancel();const g=uu.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",r.completion.additionalTextEdits.map(p=>{let _=A.lift(p.range);if(_.startLineNumber===r.position.lineNumber&&_.startColumn>r.position.column){const b=this.editor.getPosition().column-r.position.column,w=b,y=A.spansMultipleLines(_)?0:b;_=new A(_.startLineNumber,_.startColumn+w,_.endLineNumber,_.endColumn+y)}return Mn.replaceMove(_,p.text)})),g.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!d){const g=new xo;let p;const _=s.onDidChangeContent(S=>{if(S.isFlush){l.cancel(),_.dispose();return}for(const x of S.changes){const k=A.getEndPosition(x.range);(!p||ee.isBefore(k,p))&&(p=k)}}),b=t;t|=2;let w=!1;const y=this.editor.onWillType(()=>{y.dispose(),w=!0,b&2||this.editor.pushUndoStop()});a.push(r.resolve(l.token).then(()=>{if(!r.completion.additionalTextEdits||l.token.isCancellationRequested)return;if(p&&r.completion.additionalTextEdits.some(x=>ee.isBefore(p,A.getStartPosition(x.range))))return!1;w&&this.editor.pushUndoStop();const S=uu.capture(this.editor);return this.editor.executeEdits("suggestController.additionalTextEdits.async",r.completion.additionalTextEdits.map(x=>Mn.replaceMove(A.lift(x.range),x.text))),S.restoreRelativeVerticalPositionOfCursor(this.editor),(w||!(b&2))&&this.editor.pushUndoStop(),!0}).then(S=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",g.elapsed(),S),h=S===!0?1:S===!1?0:-2}).finally(()=>{_.dispose(),y.dispose()}))}let{insertText:f}=r.completion;if(r.completion.insertTextRules&4||(f=L0.escape(f)),this.model.cancel(),i.insert(f,{overwriteBefore:c.overwriteBefore,overwriteAfter:c.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(r.completion.insertTextRules&1),clipboardText:e.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value}),t&2||this.editor.pushUndoStop(),r.completion.command)if(r.completion.command.id===QD.id)this.model.trigger({auto:!0,retrigger:!0});else{const g=new xo;a.push(this._commandService.executeCommand(r.completion.command.id,...r.completion.command.arguments?[...r.completion.command.arguments]:[]).catch(p=>{r.completion.extensionId?as(p):Mt(p)}).finally(()=>{u=g.elapsed()}))}t&4&&this._alternatives.value.set(e,g=>{for(l.cancel();s.canUndo();){o!==s.getAlternativeVersionId()&&s.undo(),this._insertSuggestion(g,3|(t&8?8:0));break}}),this._alertCompletionItem(r),Promise.all(a).finally(()=>{this._reportSuggestionAcceptedTelemetry(r,s,d,u,h),this.model.clear(),l.dispose()})}_reportSuggestionAcceptedTelemetry(e,t,i,s,o){var r,a,l;Math.floor(Math.random()*100)!==0&&this._telemetryService.publicLog2("suggest.acceptedSuggestion",{extensionId:(a=(r=e.extensionId)===null||r===void 0?void 0:r.value)!==null&&a!==void 0?a:"unknown",providerId:(l=e.provider._debugDisplayName)!==null&&l!==void 0?l:"unknown",kind:e.completion.kind,basenameHash:aM(dc(t.uri)).toString(16),languageId:t.getLanguageId(),fileExtension:lBe(t.uri),resolveInfo:e.provider.resolveCompletionItem?i?1:0:-1,resolveDuration:e.resolveDuration,commandDuration:s,additionalEditsAsync:o})}getOverwriteInfo(e,t){mi(this.editor.hasModel());let i=this.editor.getOption(118).insertMode==="replace";t&&(i=!i);const s=e.position.column-e.editStart.column,o=(i?e.editReplaceEnd.column:e.editInsertEnd.column)-e.position.column,r=this.editor.getPosition().column-e.position.column,a=this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0;return{overwriteBefore:s+r,overwriteAfter:o+a}}_alertCompletionItem(e){if(Zo(e.completion.additionalTextEdits)){const t=v("aria.alert.snippet","Accepting '{0}' made {1} additional edits",e.textLabel,e.completion.additionalTextEdits.length);la(t)}}triggerSuggest(e,t,i){this.editor.hasModel()&&(this.model.trigger({auto:t??!1,completionOptions:{providerFilter:e,kindFilter:i?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus())}triggerSuggestAndAcceptBest(e){if(!this.editor.hasModel())return;const t=this.editor.getPosition(),i=()=>{t.equals(this.editor.getPosition())&&this._commandService.executeCommand(e.fallback)},s=o=>{if(o.completion.insertTextRules&4||o.completion.additionalTextEdits)return!0;const r=this.editor.getPosition(),a=o.editStart.column,l=r.column;return l-a!==o.completion.insertText.length?!0:this.editor.getModel().getValueInRange({startLineNumber:r.lineNumber,startColumn:a,endLineNumber:r.lineNumber,endColumn:l})!==o.completion.insertText};Ae.once(this.model.onDidTrigger)(o=>{const r=[];Ae.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{tn(r),i()},void 0,r),this.model.onDidSuggest(({completionModel:a})=>{if(tn(r),a.items.length===0){i();return}const l=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),a.items),c=a.items[l];if(!s(c)){i();return}this.editor.pushUndoStop(),this._insertSuggestion({index:l,item:c,model:a},7)},void 0,r)}),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(t,0),this.editor.focus()}acceptSelectedSuggestion(e,t){const i=this.widget.value.getFocusedItem();let s=0;e&&(s|=4),t&&(s|=8),this._insertSuggestion(i,s)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}focusSuggestion(){this.widget.value.focusSelected()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){this.widget.value.forceRenderingAbove()}stopForceRenderingAbove(){this.widget.isInitialized&&this.widget.value.stopForceRenderingAbove()}registerSelector(e){return this._selectors.register(e)}};Yc.ID="editor.contrib.suggestController";Yc=TW=pet([qb(1,ZP),qb(2,Sn),qb(3,Ct),qb(4,ht),qb(5,er),qb(6,Po)],Yc);class _et{constructor(e){this.prioritySelector=e,this._items=new Array}register(e){if(this._items.indexOf(e)!==-1)throw new Error("Value is already registered");return this._items.push(e),this._items.sort((t,i)=>this.prioritySelector(i)-this.prioritySelector(t)),{dispose:()=>{const t=this._items.indexOf(e);t>=0&&this._items.splice(t,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}class QD extends Ke{constructor(){super({id:QD.id,label:v("suggest.trigger.label","Trigger Suggest"),alias:"Trigger Suggest",precondition:pe.and(W.writable,W.hasCompletionItemProvider,$t.Visible.toNegated()),kbOpts:{kbExpr:W.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(e,t,i){const s=Yc.get(t);if(!s)return;let o;i&&typeof i=="object"&&i.auto===!0&&(o=!0),s.triggerSuggest(void 0,o,void 0)}}QD.id="editor.action.triggerSuggest";bi(Yc.ID,Yc,2);xe(QD);const Ll=190,Kr=Us.bindToContribution(Yc.get);Fe(new Kr({id:"acceptSelectedSuggestion",precondition:pe.and($t.Visible,$t.HasFocusedSuggestion),handler(n){n.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:pe.and($t.Visible,W.textInputFocus),weight:Ll},{primary:3,kbExpr:pe.and($t.Visible,W.textInputFocus,$t.AcceptSuggestionsOnEnter,$t.MakesTextEdit),weight:Ll}],menuOpts:[{menuId:bm,title:v("accept.insert","Insert"),group:"left",order:1,when:$t.HasInsertAndReplaceRange.toNegated()},{menuId:bm,title:v("accept.insert","Insert"),group:"left",order:1,when:pe.and($t.HasInsertAndReplaceRange,$t.InsertMode.isEqualTo("insert"))},{menuId:bm,title:v("accept.replace","Replace"),group:"left",order:1,when:pe.and($t.HasInsertAndReplaceRange,$t.InsertMode.isEqualTo("replace"))}]}));Fe(new Kr({id:"acceptAlternativeSelectedSuggestion",precondition:pe.and($t.Visible,W.textInputFocus,$t.HasFocusedSuggestion),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:1027,secondary:[1026]},handler(n){n.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:bm,group:"left",order:2,when:pe.and($t.HasInsertAndReplaceRange,$t.InsertMode.isEqualTo("insert")),title:v("accept.replace","Replace")},{menuId:bm,group:"left",order:2,when:pe.and($t.HasInsertAndReplaceRange,$t.InsertMode.isEqualTo("replace")),title:v("accept.insert","Insert")}]}));ri.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion");Fe(new Kr({id:"hideSuggestWidget",precondition:$t.Visible,handler:n=>n.cancelSuggestWidget(),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:9,secondary:[1033]}}));Fe(new Kr({id:"selectNextSuggestion",precondition:pe.and($t.Visible,pe.or($t.MultipleSuggestions,$t.HasFocusedSuggestion.negate())),handler:n=>n.selectNextSuggestion(),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}}));Fe(new Kr({id:"selectNextPageSuggestion",precondition:pe.and($t.Visible,pe.or($t.MultipleSuggestions,$t.HasFocusedSuggestion.negate())),handler:n=>n.selectNextPageSuggestion(),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:12,secondary:[2060]}}));Fe(new Kr({id:"selectLastSuggestion",precondition:pe.and($t.Visible,pe.or($t.MultipleSuggestions,$t.HasFocusedSuggestion.negate())),handler:n=>n.selectLastSuggestion()}));Fe(new Kr({id:"selectPrevSuggestion",precondition:pe.and($t.Visible,pe.or($t.MultipleSuggestions,$t.HasFocusedSuggestion.negate())),handler:n=>n.selectPrevSuggestion(),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}}));Fe(new Kr({id:"selectPrevPageSuggestion",precondition:pe.and($t.Visible,pe.or($t.MultipleSuggestions,$t.HasFocusedSuggestion.negate())),handler:n=>n.selectPrevPageSuggestion(),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:11,secondary:[2059]}}));Fe(new Kr({id:"selectFirstSuggestion",precondition:pe.and($t.Visible,pe.or($t.MultipleSuggestions,$t.HasFocusedSuggestion.negate())),handler:n=>n.selectFirstSuggestion()}));Fe(new Kr({id:"focusSuggestion",precondition:pe.and($t.Visible,$t.HasFocusedSuggestion.negate()),handler:n=>n.focusSuggestion(),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}}));Fe(new Kr({id:"focusAndAcceptSuggestion",precondition:pe.and($t.Visible,$t.HasFocusedSuggestion.negate()),handler:n=>{n.focusSuggestion(),n.acceptSelectedSuggestion(!0,!1)}}));Fe(new Kr({id:"toggleSuggestionDetails",precondition:pe.and($t.Visible,$t.HasFocusedSuggestion),handler:n=>n.toggleSuggestionDetails(),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:bm,group:"right",order:1,when:pe.and($t.DetailsVisible,$t.CanResolve),title:v("detail.more","show less")},{menuId:bm,group:"right",order:1,when:pe.and($t.DetailsVisible.toNegated(),$t.CanResolve),title:v("detail.less","show more")}]}));Fe(new Kr({id:"toggleExplainMode",precondition:$t.Visible,handler:n=>n.toggleExplainMode(),kbOpts:{weight:100,primary:2138}}));Fe(new Kr({id:"toggleSuggestionFocus",precondition:$t.Visible,handler:n=>n.toggleSuggestionFocus(),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:2570,mac:{primary:778}}}));Fe(new Kr({id:"insertBestCompletion",precondition:pe.and(W.textInputFocus,pe.equals("config.editor.tabCompletion","on"),xk.AtEnd,$t.Visible.toNegated(),R0.OtherSuggestions.toNegated(),Lo.InSnippetMode.toNegated()),handler:(n,e)=>{n.triggerSuggestAndAcceptBest(Er(e)?{fallback:"tab",...e}:{fallback:"tab"})},kbOpts:{weight:Ll,primary:2}}));Fe(new Kr({id:"insertNextSuggestion",precondition:pe.and(W.textInputFocus,pe.equals("config.editor.tabCompletion","on"),R0.OtherSuggestions,$t.Visible.toNegated(),Lo.InSnippetMode.toNegated()),handler:n=>n.acceptNextSuggestion(),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:2}}));Fe(new Kr({id:"insertPrevSuggestion",precondition:pe.and(W.textInputFocus,pe.equals("config.editor.tabCompletion","on"),R0.OtherSuggestions,$t.Visible.toNegated(),Lo.InSnippetMode.toNegated()),handler:n=>n.acceptPrevSuggestion(),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:1026}}));xe(class extends Ke{constructor(){super({id:"editor.action.resetSuggestSize",label:v("suggest.reset.label","Reset Suggest Widget Size"),alias:"Reset Suggest Widget Size",precondition:void 0})}run(n,e){var t;(t=Yc.get(e))===null||t===void 0||t.resetWidgetSize()}});class vet extends ne{get selectedItem(){return this._selectedItem}constructor(e,t,i,s){super(),this.editor=e,this.suggestControllerPreselector=t,this.checkModelVersion=i,this.onWillAccept=s,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._selectedItem=li(this,void 0),this._register(e.onKeyDown(r=>{r.shiftKey&&!this.isShiftKeyPressed&&(this.isShiftKeyPressed=!0,this.update(this._isActive))})),this._register(e.onKeyUp(r=>{r.shiftKey&&this.isShiftKeyPressed&&(this.isShiftKeyPressed=!1,this.update(this._isActive))}));const o=Yc.get(this.editor);if(o){this._register(o.registerSelector({priority:100,select:(l,c,d)=>{rn(b=>this.checkModelVersion(b));const u=this.editor.getModel();if(!u)return-1;const h=this.suggestControllerPreselector(),f=h?Jv(h,u):void 0;if(!f)return-1;const g=ee.lift(c),p=d.map((b,w)=>{const y=Mx.fromSuggestion(o,u,g,b,this.isShiftKeyPressed),S=Jv(y.toSingleTextEdit(),u),x=wge(f,S);return{index:w,valid:x,prefixLength:S.text.length,suggestItem:b}}).filter(b=>b&&b.valid&&b.prefixLength>0),_=pz(p,oa(b=>b.prefixLength,Qc));return _?_.index:-1}}));let r=!1;const a=()=>{r||(r=!0,this._register(o.widget.value.onDidShow(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})),this._register(o.widget.value.onDidHide(()=>{this.isSuggestWidgetVisible=!1,this.update(!1)})),this._register(o.widget.value.onDidFocus(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})))};this._register(Ae.once(o.model.onDidTrigger)(l=>{a()})),this._register(o.onWillInsertSuggestItem(l=>{const c=this.editor.getPosition(),d=this.editor.getModel();if(!c||!d)return;const u=Mx.fromSuggestion(o,d,c,l.item,this.isShiftKeyPressed);this.onWillAccept(u)}))}this.update(this._isActive)}update(e){const t=this.getSuggestItemInfo();(this._isActive!==e||!bet(this._currentSuggestItemInfo,t))&&(this._isActive=e,this._currentSuggestItemInfo=t,rn(i=>{this.checkModelVersion(i),this._selectedItem.set(this._isActive?this._currentSuggestItemInfo:void 0,i)}))}getSuggestItemInfo(){const e=Yc.get(this.editor);if(!e||!this.isSuggestWidgetVisible)return;const t=e.widget.value.getFocusedItem(),i=this.editor.getPosition(),s=this.editor.getModel();if(!(!t||!i||!s))return Mx.fromSuggestion(e,s,i,t.item,this.isShiftKeyPressed)}stopForceRenderingAbove(){const e=Yc.get(this.editor);e==null||e.stopForceRenderingAbove()}forceRenderingAbove(){const e=Yc.get(this.editor);e==null||e.forceRenderingAbove()}}class Mx{static fromSuggestion(e,t,i,s,o){let{insertText:r}=s.completion,a=!1;if(s.completion.insertTextRules&4){const c=new L0().parse(r);c.children.length<100&&yR.adjustWhitespace(t,i,!0,c),r=c.toString(),a=!0}const l=e.getOverwriteInfo(s,o);return new Mx(A.fromPositions(i.delta(0,-l.overwriteBefore),i.delta(0,Math.max(l.overwriteAfter,0))),r,s.completion.kind,a)}constructor(e,t,i,s){this.range=e,this.insertText=t,this.completionItemKind=i,this.isSnippetText=s}equals(e){return this.range.equalsRange(e.range)&&this.insertText===e.insertText&&this.completionItemKind===e.completionItemKind&&this.isSnippetText===e.isSnippetText}toSelectedSuggestionInfo(){return new gae(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}toSingleTextEdit(){return new Eg(this.range,this.insertText)}}function bet(n,e){return n===e?!0:!n||!e?!1:n.equals(e)}var Cet=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},_f=function(n,e){return function(t,i){e(t,i,n)}},NW;let kl=NW=class extends ne{static get(e){return e.getContribution(NW.ID)}constructor(e,t,i,s,o,r,a,l,c,d){super(),this.editor=e,this._instantiationService=t,this._contextKeyService=i,this._configurationService=s,this._commandService=o,this._debounceService=r,this._languageFeaturesService=a,this._accessibilitySignalService=l,this._keybindingService=c,this._accessibilityService=d,this.model=this._register(KL("inlineCompletionModel",void 0)),this._textModelVersionId=li(this,-1),this._positions=uVe({owner:this,equalsFn:D9(Nde())},[new ee(1,1)]),this._suggestWidgetAdaptor=this._register(new vet(this.editor,()=>{var p,_;return(_=(p=this.model.get())===null||p===void 0?void 0:p.selectedInlineCompletion.get())===null||_===void 0?void 0:_.toSingleTextEdit(void 0)},p=>this.updateObservables(p,tl.Other),p=>{rn(_=>{var b;this.updateObservables(_,tl.Other),(b=this.model.get())===null||b===void 0||b.handleSuggestAccepted(p)})})),this._enabledInConfig=qi(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).enabled),this._isScreenReaderEnabled=qi(this._accessibilityService.onDidChangeScreenReaderOptimized,()=>this._accessibilityService.isScreenReaderOptimized()),this._editorDictationInProgress=qi(this._contextKeyService.onDidChangeContext,()=>this._contextKeyService.getContext(this.editor.getDomNode()).getValue("editorDictation.inProgress")===!0),this._enabled=Rt(this,p=>this._enabledInConfig.read(p)&&(!this._isScreenReaderEnabled.read(p)||!this._editorDictationInProgress.read(p))),this._fontFamily=qi(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).fontFamily),this._ghostTexts=Rt(this,p=>{var _;const b=this.model.read(p);return(_=b==null?void 0:b.ghostTexts.read(p))!==null&&_!==void 0?_:[]}),this._stablizedGhostTexts=wet(this._ghostTexts,this._store),this._ghostTextWidgets=bVe(this,this._stablizedGhostTexts,(p,_)=>_.add(this._instantiationService.createInstance(yW,this.editor,{ghostText:p,minReservedLineCount:Vd(0),targetTextModel:this.model.map(b=>b==null?void 0:b.textModel)}))).recomputeInitiallyAndOnChange(this._store),this._debounceValue=this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider,"InlineCompletionsDebounce",{min:50,max:50}),this._playAccessibilitySignal=nP(this),this._isReadonly=qi(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(91)),this._textModel=qi(this.editor.onDidChangeModel,()=>this.editor.getModel()),this._textModelIfWritable=Rt(p=>this._isReadonly.read(p)?void 0:this._textModel.read(p)),this._register(new lo(this._contextKeyService,this.model)),this._register(Ut(p=>{const _=this._textModelIfWritable.read(p);rn(b=>{if(this.model.set(void 0,b),this.updateObservables(b,tl.Other),_){const w=t.createInstance(xW,_,this._suggestWidgetAdaptor.selectedItem,this._textModelVersionId,this._positions,this._debounceValue,qi(e.onDidChangeConfiguration,()=>e.getOption(118).preview),qi(e.onDidChangeConfiguration,()=>e.getOption(118).previewMode),qi(e.onDidChangeConfiguration,()=>e.getOption(62).mode),this._enabled);this.model.set(w,b)}})}));const u=this._register(Kae());this._register(Ut(p=>{const _=this._fontFamily.read(p);u.setStyle(_===""||_==="default"?"":` .monaco-editor .ghost-text-decoration, .monaco-editor .ghost-text-decoration-preview, .monaco-editor .ghost-text { font-family: ${_}; }`)}));const h=p=>{var _;return p.isUndoing?tl.Undo:p.isRedoing?tl.Redo:!((_=this.model.get())===null||_===void 0)&&_.isAcceptingPartially?tl.AcceptWord:tl.Other};this._register(e.onDidChangeModelContent(p=>rn(_=>this.updateObservables(_,h(p))))),this._register(e.onDidChangeCursorPosition(p=>rn(_=>{var b;this.updateObservables(_,tl.Other),(p.reason===3||p.source==="api")&&((b=this.model.get())===null||b===void 0||b.stop(_))}))),this._register(e.onDidType(()=>rn(p=>{var _;this.updateObservables(p,tl.Other),this._enabled.get()&&((_=this.model.get())===null||_===void 0||_.trigger(p))}))),this._register(this._commandService.onDidExecuteCommand(p=>{new Set([tC.Tab.id,tC.DeleteLeft.id,tC.DeleteRight.id,kfe,"acceptSelectedSuggestion"]).has(p.commandId)&&e.hasTextFocus()&&this._enabled.get()&&rn(b=>{var w;(w=this.model.get())===null||w===void 0||w.trigger(b)})})),this._register(this.editor.onDidBlurEditorWidget(()=>{this._contextKeyService.getContextKeyValue("accessibleViewIsShown")||this._configurationService.getValue("editor.inlineSuggest.keepOnBlur")||e.getOption(62).keepOnBlur||Zm.dropDownVisible||rn(p=>{var _;(_=this.model.get())===null||_===void 0||_.stop(p)})})),this._register(Ut(p=>{var _;const b=(_=this.model.read(p))===null||_===void 0?void 0:_.state.read(p);b!=null&&b.suggestItem?b.primaryGhostText.lineCount>=2&&this._suggestWidgetAdaptor.forceRenderingAbove():this._suggestWidgetAdaptor.stopForceRenderingAbove()})),this._register(dt(()=>{this._suggestWidgetAdaptor.stopForceRenderingAbove()}));const f=this._register(new be);let g;this._register(AD({handleChange:(p,_)=>(p.didChange(this._playAccessibilitySignal)&&(g=void 0),!0)},async(p,_)=>{this._playAccessibilitySignal.read(p);const b=this.model.read(p),w=b==null?void 0:b.state.read(p);if(!b||!w||!w.inlineCompletion){g=void 0;return}if(w.inlineCompletion.semanticId!==g){f.clear(),g=w.inlineCompletion.semanticId;const y=b.textModel.getLineContent(w.primaryGhostText.lineNumber);await Dg(50,sY(f)),await Ode(this._suggestWidgetAdaptor.selectedItem,na,()=>!1,sY(f)),await this._accessibilitySignalService.playSignal(At.inlineSuggestion),this.editor.getOption(8)&&this.provideScreenReaderUpdate(w.primaryGhostText.renderForScreenReader(y))}})),this._register(new Y6(this.editor,this.model,this._instantiationService)),this._register(this._configurationService.onDidChangeConfiguration(p=>{p.affectsConfiguration("accessibility.verbosity.inlineCompletions")&&this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})})),this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})}playAccessibilitySignal(e){this._playAccessibilitySignal.trigger(e)}provideScreenReaderUpdate(e){const t=this._contextKeyService.getContextKeyValue("accessibleViewIsShown"),i=this._keybindingService.lookupKeybinding("editor.action.accessibleView");let s;!t&&i&&this.editor.getOption(149)&&(s=v("showAccessibleViewHint","Inspect this in the accessible view ({0})",i.getAriaLabel())),la(s?e+", "+s:e)}updateObservables(e,t){var i,s,o;const r=this.editor.getModel();this._textModelVersionId.set((i=r==null?void 0:r.getVersionId())!==null&&i!==void 0?i:-1,e,t),this._positions.set((o=(s=this.editor.getSelections())===null||s===void 0?void 0:s.map(a=>a.getPosition()))!==null&&o!==void 0?o:[new ee(1,1)],e)}shouldShowHoverAt(e){var t;const i=(t=this.model.get())===null||t===void 0?void 0:t.primaryGhostText.get();return i?i.parts.some(s=>e.containsPosition(new ee(i.lineNumber,s.column))):!1}shouldShowHoverAtViewZone(e){var t,i;return(i=(t=this._ghostTextWidgets.get()[0])===null||t===void 0?void 0:t.ownsViewZone(e))!==null&&i!==void 0?i:!1}};kl.ID="editor.contrib.inlineCompletionsController";kl=NW=Cet([_f(1,ht),_f(2,Ct),_f(3,qt),_f(4,Sn),_f(5,_c),_f(6,Xe),_f(7,v_),_f(8,Li),_f(9,Ha)],kl);function wet(n,e){const t=li("result",[]),i=[];return e.add(Ut(s=>{const o=n.read(s);rn(r=>{if(o.length!==i.length){i.length=o.length;for(let a=0;aa.set(o[l],r))})})),t}class XP extends Ke{constructor(){super({id:XP.ID,label:v("action.inlineSuggest.showNext","Show Next Inline Suggestion"),alias:"Show Next Inline Suggestion",precondition:pe.and(W.writable,lo.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}async run(e,t){var i;const s=kl.get(t);(i=s==null?void 0:s.model.get())===null||i===void 0||i.next()}}XP.ID=Ife;class QP extends Ke{constructor(){super({id:QP.ID,label:v("action.inlineSuggest.showPrevious","Show Previous Inline Suggestion"),alias:"Show Previous Inline Suggestion",precondition:pe.and(W.writable,lo.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}async run(e,t){var i;const s=kl.get(t);(i=s==null?void 0:s.model.get())===null||i===void 0||i.previous()}}QP.ID=Dfe;class yet extends Ke{constructor(){super({id:"editor.action.inlineSuggest.trigger",label:v("action.inlineSuggest.trigger","Trigger Inline Suggestion"),alias:"Trigger Inline Suggestion",precondition:W.writable})}async run(e,t){const i=kl.get(t);await dVe(async s=>{var o;await((o=i==null?void 0:i.model.get())===null||o===void 0?void 0:o.triggerExplicitly(s)),i==null||i.playAccessibilitySignal(s)})}}class xet extends Ke{constructor(){super({id:"editor.action.inlineSuggest.acceptNextWord",label:v("action.inlineSuggest.acceptNextWord","Accept Next Word Of Inline Suggestion"),alias:"Accept Next Word Of Inline Suggestion",precondition:pe.and(W.writable,lo.inlineSuggestionVisible),kbOpts:{weight:101,primary:2065,kbExpr:pe.and(W.writable,lo.inlineSuggestionVisible)},menuOpts:[{menuId:R.InlineSuggestionToolbar,title:v("acceptWord","Accept Word"),group:"primary",order:2}]})}async run(e,t){var i;const s=kl.get(t);await((i=s==null?void 0:s.model.get())===null||i===void 0?void 0:i.acceptNextWord(s.editor))}}class Let extends Ke{constructor(){super({id:"editor.action.inlineSuggest.acceptNextLine",label:v("action.inlineSuggest.acceptNextLine","Accept Next Line Of Inline Suggestion"),alias:"Accept Next Line Of Inline Suggestion",precondition:pe.and(W.writable,lo.inlineSuggestionVisible),kbOpts:{weight:101},menuOpts:[{menuId:R.InlineSuggestionToolbar,title:v("acceptLine","Accept Line"),group:"secondary",order:2}]})}async run(e,t){var i;const s=kl.get(t);await((i=s==null?void 0:s.model.get())===null||i===void 0?void 0:i.acceptNextLine(s.editor))}}class ket extends Ke{constructor(){super({id:kfe,label:v("action.inlineSuggest.accept","Accept Inline Suggestion"),alias:"Accept Inline Suggestion",precondition:lo.inlineSuggestionVisible,menuOpts:[{menuId:R.InlineSuggestionToolbar,title:v("accept","Accept"),group:"primary",order:1}],kbOpts:{primary:2,weight:200,kbExpr:pe.and(lo.inlineSuggestionVisible,W.tabMovesFocus.toNegated(),lo.inlineSuggestionHasIndentationLessThanTabSize,$t.Visible.toNegated(),W.hoverFocused.toNegated())}})}async run(e,t){var i;const s=kl.get(t);s&&((i=s.model.get())===null||i===void 0||i.accept(s.editor),s.editor.focus())}}class JP extends Ke{constructor(){super({id:JP.ID,label:v("action.inlineSuggest.hide","Hide Inline Suggestion"),alias:"Hide Inline Suggestion",precondition:lo.inlineSuggestionVisible,kbOpts:{weight:100,primary:9}})}async run(e,t){const i=kl.get(t);rn(s=>{var o;(o=i==null?void 0:i.model.get())===null||o===void 0||o.stop(s)})}}JP.ID="editor.action.inlineSuggest.hide";class eO extends zr{constructor(){super({id:eO.ID,title:v("action.inlineSuggest.alwaysShowToolbar","Always Show Toolbar"),f1:!1,precondition:void 0,menu:[{id:R.InlineSuggestionToolbar,group:"secondary",order:10}],toggled:pe.equals("config.editor.inlineSuggest.showToolbar","always")})}async run(e,t){const i=e.get(qt),o=i.getValue("editor.inlineSuggest.showToolbar")==="always"?"onHover":"always";i.updateValue("editor.inlineSuggest.showToolbar",o)}}eO.ID="editor.action.inlineSuggest.toggleAlwaysShowToolbar";var Det=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},iS=function(n,e){return function(t,i){e(t,i,n)}};class Iet{constructor(e,t,i){this.owner=e,this.range=t,this.controller=i}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let AW=class{constructor(e,t,i,s,o,r){this._editor=e,this._languageService=t,this._openerService=i,this.accessibilityService=s,this._instantiationService=o,this._telemetryService=r,this.hoverOrdinal=4}suggestHoverAnchor(e){const t=kl.get(this._editor);if(!t)return null;const i=e.target;if(i.type===8){const s=i.detail;if(t.shouldShowHoverAtViewZone(s.viewZoneId))return new Yv(1e3,this,A.fromPositions(this._editor.getModel().validatePosition(s.positionBefore||s.position)),e.event.posx,e.event.posy,!1)}return i.type===7&&t.shouldShowHoverAt(i.range)?new Yv(1e3,this,i.range,e.event.posx,e.event.posy,!1):i.type===6&&i.detail.mightBeForeignElement&&t.shouldShowHoverAt(i.range)?new Yv(1e3,this,i.range,e.event.posx,e.event.posy,!1):null}computeSync(e,t){if(this._editor.getOption(62).showToolbar!=="onHover")return[];const i=kl.get(this._editor);return i&&i.shouldShowHoverAt(e.range)?[new Iet(this,e.range,i)]:[]}renderHoverParts(e,t){const i=new be,s=t[0];this._telemetryService.publicLog2("inlineCompletionHover.shown"),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(8)&&this.renderScreenReaderText(e,s,i);const o=s.controller.model.get(),r=this._instantiationService.createInstance(Zm,this._editor,!1,Vd(null),o.selectedInlineCompletionIndex,o.inlineCompletionsCount,o.activeCommands);return e.fragment.appendChild(r.getDomNode()),o.triggerExplicitly(),i.add(r),i}renderScreenReaderText(e,t,i){const s=ke,o=s("div.hover-row.markdown-hover"),r=we(o,s("div.hover-contents",{"aria-live":"assertive"})),a=i.add(new Nh({editor:this._editor},this._languageService,this._openerService)),l=c=>{i.add(a.onDidRenderAsync(()=>{r.className="hover-contents code-hover-contents",e.onContentsChanged()}));const d=v("inlineSuggestionFollows","Suggestion:"),u=i.add(a.render(new $o().appendText(d).appendCodeblock("text",c)));r.replaceChildren(u.element)};i.add(Ut(c=>{var d;const u=(d=t.controller.model.read(c))===null||d===void 0?void 0:d.primaryGhostText.read(c);if(u){const h=this._editor.getModel().getLineContent(u.lineNumber);l(u.renderForScreenReader(h))}else yo(r)})),e.fragment.appendChild(o)}};AW=Det([iS(1,An),iS(2,$a),iS(3,Ha),iS(4,ht),iS(5,Po)],AW);class Eet extends ne{constructor(){super()}}const tO=new class{constructor(){this._implementations=[]}register(e){return this._implementations.push(e),{dispose:()=>{const t=this._implementations.indexOf(e);t!==-1&&this._implementations.splice(t,1),e.dispose()}}}getImplementations(){return this._implementations}};bi(kl.ID,kl,3);xe(yet);xe(XP);xe(QP);xe(xet);xe(Let);xe(ket);xe(JP);dn(eO);b_.register(AW);tO.register(new Eet);var Tet=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},_3=function(n,e){return function(t,i){e(t,i,n)}},WS;let M0=WS=class{constructor(e,t,i,s){this.textModelResolverService=t,this.languageService=i,this.languageFeaturesService=s,this.toUnhook=new be,this.toUnhookForKeyboard=new be,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=e,this.linkDecorations=this.editor.createDecorationsCollection();const o=new RP(e);this.toUnhook.add(o),this.toUnhook.add(o.onMouseMoveOrRelevantKeyDown(([r,a])=>{this.startFindDefinitionFromMouse(r,a??void 0)})),this.toUnhook.add(o.onExecute(r=>{this.isEnabled(r)&&this.gotoDefinition(r.target.position,r.hasSideBySideModifier).catch(a=>{Mt(a)}).finally(()=>{this.removeLinkDecorations()})})),this.toUnhook.add(o.onCancel(()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null}))}static get(e){return e.getContribution(WS.ID)}async startFindDefinitionFromCursor(e){await this.startFindDefinition(e),this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()})),this.toUnhookForKeyboard.add(this.editor.onKeyDown(t=>{t&&(this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear())}))}startFindDefinitionFromMouse(e,t){if(e.target.type===9&&this.linkDecorations.length>0)return;if(!this.editor.hasModel()||!this.isEnabled(e,t)){this.currentWordAtPosition=null,this.removeLinkDecorations();return}const i=e.target.position;this.startFindDefinition(i)}async startFindDefinition(e){var t;this.toUnhookForKeyboard.clear();const i=e?(t=this.editor.getModel())===null||t===void 0?void 0:t.getWordAtPosition(e):null;if(!i){this.currentWordAtPosition=null,this.removeLinkDecorations();return}if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===i.startColumn&&this.currentWordAtPosition.endColumn===i.endColumn&&this.currentWordAtPosition.word===i.word)return;this.currentWordAtPosition=i;const s=new ihe(this.editor,15);this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),this.previousPromise=Xs(a=>this.findDefinition(e,a));let o;try{o=await this.previousPromise}catch(a){Mt(a);return}if(!o||!o.length||!s.validate(this.editor)){this.removeLinkDecorations();return}const r=o[0].originSelectionRange?A.lift(o[0].originSelectionRange):new A(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn);if(o.length>1){let a=r;for(const{originSelectionRange:l}of o)l&&(a=A.plusRange(a,l));this.addDecoration(a,new $o().appendText(v("multipleResults","Click to show {0} definitions.",o.length)))}else{const a=o[0];if(!a.uri)return;this.textModelResolverService.createModelReference(a.uri).then(l=>{if(!l.object||!l.object.textEditorModel){l.dispose();return}const{object:{textEditorModel:c}}=l,{startLineNumber:d}=a.range;if(d<1||d>c.getLineCount()){l.dispose();return}const u=this.getPreviewValue(c,d,a),h=this.languageService.guessLanguageIdByFilepathOrFirstLine(c.uri);this.addDecoration(r,u?new $o().appendCodeblock(h||"",u):void 0),l.dispose()})}}getPreviewValue(e,t,i){let s=i.range;return s.endLineNumber-s.startLineNumber>=WS.MAX_SOURCE_PREVIEW_LINES&&(s=this.getPreviewRangeBasedOnIndentation(e,t)),this.stripIndentationFromPreviewRange(e,t,s)}stripIndentationFromPreviewRange(e,t,i){let o=e.getLineFirstNonWhitespaceColumn(t);for(let a=t+1;a{const s=!t&&this.editor.getOption(88)&&!this.isInPeekEditor(i);return new YD({openToSide:t,openInPeek:s,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(i)})}isInPeekEditor(e){const t=e.get(Ct);return da.inPeekEditor.getValue(t)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}};M0.ID="editor.contrib.gotodefinitionatposition";M0.MAX_SOURCE_PREVIEW_LINES=8;M0=WS=Tet([_3(1,fa),_3(2,An),_3(3,Xe)],M0);bi(M0.ID,M0,2);var Lge=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},xR=function(n,e){return function(t,i){e(t,i,n)}};class Bte{constructor(e,t,i){this.marker=e,this.index=t,this.total=i}}let RW=class{constructor(e,t,i){this._markerService=t,this._configService=i,this._onDidChange=new X,this.onDidChange=this._onDidChange.event,this._dispoables=new be,this._markers=[],this._nextIdx=-1,pt.isUri(e)?this._resourceFilter=a=>a.toString()===e.toString():e&&(this._resourceFilter=e);const s=this._configService.getValue("problems.sortOrder"),o=(a,l)=>{let c=dL(a.resource.toString(),l.resource.toString());return c===0&&(s==="position"?c=A.compareRangesUsingStarts(a,l)||Qn.compare(a.severity,l.severity):c=Qn.compare(a.severity,l.severity)||A.compareRangesUsingStarts(a,l)),c},r=()=>{this._markers=this._markerService.read({resource:pt.isUri(e)?e:void 0,severities:Qn.Error|Qn.Warning|Qn.Info}),typeof e=="function"&&(this._markers=this._markers.filter(a=>this._resourceFilter(a.resource))),this._markers.sort(o)};r(),this._dispoables.add(t.onMarkerChanged(a=>{(!this._resourceFilter||a.some(l=>this._resourceFilter(l)))&&(r(),this._nextIdx=-1,this._onDidChange.fire())}))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(e){return!this._resourceFilter&&!e?!0:!this._resourceFilter||!e?!1:this._resourceFilter(e)}get selected(){const e=this._markers[this._nextIdx];return e&&new Bte(e,this._nextIdx+1,this._markers.length)}_initIdx(e,t,i){let s=!1,o=this._markers.findIndex(r=>r.resource.toString()===e.uri.toString());o<0&&(o=tL(this._markers,{resource:e.uri},(r,a)=>dL(r.resource.toString(),a.resource.toString())),o<0&&(o=~o));for(let r=o;rs.resource.toString()===e.toString());if(!(i<0)){for(;i=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Gb=function(n,e){return function(t,i){e(t,i,n)}},OW;class Aet{constructor(e,t,i,s,o){this._openerService=s,this._labelService=o,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new be,this._editor=t;const r=document.createElement("div");r.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),r.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),r.appendChild(this._relatedBlock),this._disposables.add(rs(this._relatedBlock,"click",a=>{a.preventDefault();const l=this._relatedDiagnostics.get(a.target);l&&i(l)})),this._scrollable=new tce(r,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),e.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll(a=>{r.style.left=`-${a.scrollLeft}px`,r.style.top=`-${a.scrollTop}px`})),this._disposables.add(this._scrollable)}dispose(){tn(this._disposables)}update(e){const{source:t,message:i,relatedInformation:s,code:o}=e;let r=((t==null?void 0:t.length)||0)+2;o&&(typeof o=="string"?r+=o.length:r+=o.value.length);const a=Wh(i);this._lines=a.length,this._longestLineLength=0;for(const h of a)this._longestLineLength=Math.max(h.length+r,this._longestLineLength);wo(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(e)),this._editor.applyFontInfo(this._messageBlock);let l=this._messageBlock;for(const h of a)l=document.createElement("div"),l.innerText=h,h===""&&(l.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(l);if(t||o){const h=document.createElement("span");if(h.classList.add("details"),l.appendChild(h),t){const f=document.createElement("span");f.innerText=t,f.classList.add("source"),h.appendChild(f)}if(o)if(typeof o=="string"){const f=document.createElement("span");f.innerText=`(${o})`,f.classList.add("code"),h.appendChild(f)}else{this._codeLink=ke("a.code-link"),this._codeLink.setAttribute("href",`${o.target.toString()}`),this._codeLink.onclick=g=>{this._openerService.open(o.target,{allowCommands:!0}),g.preventDefault(),g.stopPropagation()};const f=we(this._codeLink,ke("span"));f.innerText=o.value,h.appendChild(this._codeLink)}}if(wo(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),Zo(s)){const h=this._relatedBlock.appendChild(document.createElement("div"));h.style.paddingTop=`${Math.floor(this._editor.getOption(67)*.66)}px`,this._lines+=1;for(const f of s){const g=document.createElement("div"),p=document.createElement("a");p.classList.add("filename"),p.innerText=`${this._labelService.getUriBasenameLabel(f.resource)}(${f.startLineNumber}, ${f.startColumn}): `,p.title=this._labelService.getUriLabel(f.resource),this._relatedDiagnostics.set(p,f);const _=document.createElement("span");_.innerText=f.message,g.appendChild(p),g.appendChild(_),this._lines+=1,h.appendChild(g)}}const c=this._editor.getOption(50),d=Math.ceil(c.typicalFullwidthCharacterWidth*this._longestLineLength*.75),u=c.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:d,scrollHeight:u})}layout(e,t){this._scrollable.getDomNode().style.height=`${e}px`,this._scrollable.getDomNode().style.width=`${t}px`,this._scrollable.setScrollDimensions({width:t,height:e})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(e){let t="";switch(e.severity){case Qn.Error:t=v("Error","Error");break;case Qn.Warning:t=v("Warning","Warning");break;case Qn.Info:t=v("Info","Info");break;case Qn.Hint:t=v("Hint","Hint");break}let i=v("marker aria","{0} at {1}. ",t,e.startLineNumber+":"+e.startColumn);const s=this._editor.getModel();return s&&e.startLineNumber<=s.getLineCount()&&e.startLineNumber>=1&&(i=`${s.getLineContent(e.startLineNumber)}, ${i}`),i}}let hw=OW=class extends hR{constructor(e,t,i,s,o,r,a){super(e,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},o),this._themeService=t,this._openerService=i,this._menuService=s,this._contextKeyService=r,this._labelService=a,this._callOnDispose=new be,this._onDidSelectRelatedInformation=new X,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=Qn.Warning,this._backgroundColor=le.white,this._applyTheme(t.getColorTheme()),this._callOnDispose.add(t.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(e){this._backgroundColor=e.getColor(Oet);let t=FW,i=Ret;this._severity===Qn.Warning?(t=HN,i=Met):this._severity===Qn.Info&&(t=BW,i=Pet);const s=e.getColor(t),o=e.getColor(i);this.style({arrowColor:s,frameColor:s,headerBackgroundColor:o,primaryHeadingColor:e.getColor(Ofe),secondaryHeadingColor:e.getColor(Ffe)})}_applyStyles(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():""),super._applyStyles()}dispose(){this._callOnDispose.dispose(),super.dispose()}_fillHead(e){super._fillHead(e),this._disposables.add(this._actionbarWidget.actionRunner.onWillRun(s=>this.editor.focus()));const t=[],i=this._menuService.createMenu(OW.TitleMenu,this._contextKeyService);rP(i,void 0,t),this._actionbarWidget.push(t,{label:!1,icon:!0,index:0}),i.dispose()}_fillTitleIcon(e){this._icon=we(e,ke(""))}_fillBody(e){this._parentContainer=e,e.classList.add("marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),e.appendChild(this._container),this._message=new Aet(this._container,this.editor,t=>this._onDidSelectRelatedInformation.fire(t),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw new Error("call showAtMarker")}showAtMarker(e,t,i){this._container.classList.remove("stale"),this._message.update(e),this._severity=e.severity,this._applyTheme(this._themeService.getColorTheme());const s=A.lift(e),o=this.editor.getPosition(),r=o&&s.containsPosition(o)?o:s.getStartPosition();super.show(r,this.computeRequiredHeight());const a=this.editor.getModel();if(a){const l=i>1?v("problems","{0} of {1} problems",t,i):v("change","{0} of {1} problem",t,i);this.setTitle(dc(a.uri),l)}this._icon.className=`codicon ${PW.className(Qn.toSeverity(this._severity))}`,this.editor.revealPositionNearTop(r,0),this.editor.focus()}updateMarker(e){this._container.classList.remove("stale"),this._message.update(e)}showStale(){this._container.classList.add("stale"),this._relayout()}_doLayoutBody(e,t){super._doLayoutBody(e,t),this._heightInPixel=e,this._message.layout(e,t),this._container.style.height=`${e}px`}_onWidth(e){this._message.layout(this._heightInPixel,e)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}};hw.TitleMenu=new R("gotoErrorTitleMenu");hw=OW=Net([Gb(1,js),Gb(2,$a),Gb(3,Dl),Gb(4,ht),Gb(5,Ct),Gb(6,ZC)],hw);const Wte=xL(lh,bFe),Hte=xL(hr,LL),Vte=xL(sa,kL),FW=V("editorMarkerNavigationError.background",{dark:Wte,light:Wte,hcDark:ti,hcLight:ti},v("editorMarkerNavigationError","Editor marker navigation widget error color.")),Ret=V("editorMarkerNavigationError.headerBackground",{dark:ut(FW,.1),light:ut(FW,.1),hcDark:null,hcLight:null},v("editorMarkerNavigationErrorHeaderBackground","Editor marker navigation widget error heading background.")),HN=V("editorMarkerNavigationWarning.background",{dark:Hte,light:Hte,hcDark:ti,hcLight:ti},v("editorMarkerNavigationWarning","Editor marker navigation widget warning color.")),Met=V("editorMarkerNavigationWarning.headerBackground",{dark:ut(HN,.1),light:ut(HN,.1),hcDark:"#0C141F",hcLight:ut(HN,.2)},v("editorMarkerNavigationWarningBackground","Editor marker navigation widget warning heading background.")),BW=V("editorMarkerNavigationInfo.background",{dark:Vte,light:Vte,hcDark:ti,hcLight:ti},v("editorMarkerNavigationInfo","Editor marker navigation widget info color.")),Pet=V("editorMarkerNavigationInfo.headerBackground",{dark:ut(BW,.1),light:ut(BW,.1),hcDark:null,hcLight:null},v("editorMarkerNavigationInfoHeaderBackground","Editor marker navigation widget info heading background.")),Oet=V("editorMarkerNavigation.background",{dark:Ys,light:Ys,hcDark:Ys,hcLight:Ys},v("editorMarkerNavigationBackground","Editor marker navigation widget background."));var Fet=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},FT=function(n,e){return function(t,i){e(t,i,n)}},HS;let t_=HS=class{static get(e){return e.getContribution(HS.ID)}constructor(e,t,i,s,o){this._markerNavigationService=t,this._contextKeyService=i,this._editorService=s,this._instantiationService=o,this._sessionDispoables=new be,this._editor=e,this._widgetVisible=Dge.bindTo(this._contextKeyService)}dispose(){this._cleanUp(),this._sessionDispoables.dispose()}_cleanUp(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}_getOrCreateModel(e){if(this._model&&this._model.matches(e))return this._model;let t=!1;return this._model&&(t=!0,this._cleanUp()),this._model=this._markerNavigationService.getMarkerList(e),t&&this._model.move(!0,this._editor.getModel(),this._editor.getPosition()),this._widget=this._instantiationService.createInstance(hw,this._editor),this._widget.onDidClose(()=>this.close(),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget),this._sessionDispoables.add(this._editor.onDidChangeCursorPosition(i=>{var s,o,r;(!(!((s=this._model)===null||s===void 0)&&s.selected)||!A.containsPosition((o=this._model)===null||o===void 0?void 0:o.selected.marker,i.position))&&((r=this._model)===null||r===void 0||r.resetIndex())})),this._sessionDispoables.add(this._model.onDidChange(()=>{if(!this._widget||!this._widget.position||!this._model)return;const i=this._model.find(this._editor.getModel().uri,this._widget.position);i?this._widget.updateMarker(i.marker):this._widget.showStale()})),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation(i=>{this._editorService.openCodeEditor({resource:i.resource,options:{pinned:!0,revealIfOpened:!0,selection:A.lift(i).collapseToStart()}},this._editor),this.close(!1)})),this._sessionDispoables.add(this._editor.onDidChangeModel(()=>this._cleanUp())),this._model}close(e=!0){this._cleanUp(),e&&this._editor.focus()}showAtMarker(e){if(this._editor.hasModel()){const t=this._getOrCreateModel(this._editor.getModel().uri);t.resetIndex(),t.move(!0,this._editor.getModel(),new ee(e.startLineNumber,e.startColumn)),t.selected&&this._widget.showAtMarker(t.selected.marker,t.selected.index,t.selected.total)}}async nagivate(e,t){var i,s;if(this._editor.hasModel()){const o=this._getOrCreateModel(t?void 0:this._editor.getModel().uri);if(o.move(e,this._editor.getModel(),this._editor.getPosition()),!o.selected)return;if(o.selected.marker.resource.toString()!==this._editor.getModel().uri.toString()){this._cleanUp();const r=await this._editorService.openCodeEditor({resource:o.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:o.selected.marker}},this._editor);r&&((i=HS.get(r))===null||i===void 0||i.close(),(s=HS.get(r))===null||s===void 0||s.nagivate(e,t))}else this._widget.showAtMarker(o.selected.marker,o.selected.index,o.selected.total)}}};t_.ID="editor.contrib.markerController";t_=HS=Fet([FT(1,kge),FT(2,Ct),FT(3,vi),FT(4,ht)],t_);class iO extends Ke{constructor(e,t,i){super(i),this._next=e,this._multiFile=t}async run(e,t){var i;t.hasModel()&&((i=t_.get(t))===null||i===void 0||i.nagivate(this._next,this._multiFile))}}class Cm extends iO{constructor(){super(!0,!1,{id:Cm.ID,label:Cm.LABEL,alias:"Go to Next Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:578,weight:100},menuOpts:{menuId:hw.TitleMenu,title:Cm.LABEL,icon:Jn("marker-navigation-next",Te.arrowDown,v("nextMarkerIcon","Icon for goto next marker.")),group:"navigation",order:1}})}}Cm.ID="editor.action.marker.next";Cm.LABEL=v("markerAction.next.label","Go to Next Problem (Error, Warning, Info)");class e0 extends iO{constructor(){super(!1,!1,{id:e0.ID,label:e0.LABEL,alias:"Go to Previous Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:1602,weight:100},menuOpts:{menuId:hw.TitleMenu,title:e0.LABEL,icon:Jn("marker-navigation-previous",Te.arrowUp,v("previousMarkerIcon","Icon for goto previous marker.")),group:"navigation",order:2}})}}e0.ID="editor.action.marker.prev";e0.LABEL=v("markerAction.previous.label","Go to Previous Problem (Error, Warning, Info)");class Bet extends iO{constructor(){super(!0,!0,{id:"editor.action.marker.nextInFiles",label:v("markerAction.nextInFiles.label","Go to Next Problem in Files (Error, Warning, Info)"),alias:"Go to Next Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:66,weight:100},menuOpts:{menuId:R.MenubarGoMenu,title:v({},"Next &&Problem"),group:"6_problem_nav",order:1}})}}class Wet extends iO{constructor(){super(!1,!0,{id:"editor.action.marker.prevInFiles",label:v("markerAction.previousInFiles.label","Go to Previous Problem in Files (Error, Warning, Info)"),alias:"Go to Previous Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:1090,weight:100},menuOpts:{menuId:R.MenubarGoMenu,title:v({},"Previous &&Problem"),group:"6_problem_nav",order:2}})}}bi(t_.ID,t_,4);xe(Cm);xe(e0);xe(Bet);xe(Wet);const Dge=new He("markersNavigationVisible",!1),Het=Us.bindToContribution(t_.get);Fe(new Het({id:"closeMarkersNavigation",precondition:Dge,handler:n=>n.close(),kbOpts:{weight:150,kbExpr:W.focus,primary:9,secondary:[1033]}}));var xd;(function(n){n.NoAutoFocus="noAutoFocus",n.FocusIfVisible="focusIfVisible",n.AutoFocusImmediately="autoFocusImmediately"})(xd||(xd={}));class Vet extends Ke{constructor(){super({id:Lfe,label:v({},"Show or Focus Hover"),metadata:{description:Nt("showOrFocusHoverDescription","Show or focus the editor hover which shows documentation, references, and other content for a symbol at the current cursor position."),args:[{name:"args",schema:{type:"object",properties:{focus:{description:"Controls if and when the hover should take focus upon being triggered by this action.",enum:[xd.NoAutoFocus,xd.FocusIfVisible,xd.AutoFocusImmediately],enumDescriptions:[v("showOrFocusHover.focus.noAutoFocus","The hover will not automatically take focus."),v("showOrFocusHover.focus.focusIfVisible","The hover will take focus only if it is already visible."),v("showOrFocusHover.focus.autoFocusImmediately","The hover will automatically take focus when it appears.")],default:xd.FocusIfVisible}}}}]},alias:"Show or Focus Hover",precondition:void 0,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2087),weight:100}})}run(e,t,i){if(!t.hasModel())return;const s=gr.get(t);if(!s)return;const o=i==null?void 0:i.focus;let r=xd.FocusIfVisible;Object.values(xd).includes(o)?r=o:typeof o=="boolean"&&o&&(r=xd.AutoFocusImmediately);const a=c=>{const d=t.getPosition(),u=new A(d.lineNumber,d.column,d.lineNumber,d.column);s.showContentHover(u,1,1,c)},l=t.getOption(2)===2;s.isHoverVisible?r!==xd.NoAutoFocus?s.focus():a(l):a(l||r===xd.AutoFocusImmediately)}}class zet extends Ke{constructor(){super({id:iYe,label:v({},"Show Definition Preview Hover"),alias:"Show Definition Preview Hover",precondition:void 0,metadata:{description:Nt("showDefinitionPreviewHoverDescription","Show the definition preview hover in the editor.")}})}run(e,t){const i=gr.get(t);if(!i)return;const s=t.getPosition();if(!s)return;const o=new A(s.lineNumber,s.column,s.lineNumber,s.column),r=M0.get(t);if(!r)return;r.startFindDefinitionFromCursor(s).then(()=>{i.showContentHover(o,1,1,!0)})}}class $et extends Ke{constructor(){super({id:nYe,label:v({},"Scroll Up Hover"),alias:"Scroll Up Hover",precondition:W.hoverFocused,kbOpts:{kbExpr:W.hoverFocused,primary:16,weight:100},metadata:{description:Nt("scrollUpHoverDescription","Scroll up the editor hover.")}})}run(e,t){const i=gr.get(t);i&&i.scrollUp()}}class Uet extends Ke{constructor(){super({id:sYe,label:v({},"Scroll Down Hover"),alias:"Scroll Down Hover",precondition:W.hoverFocused,kbOpts:{kbExpr:W.hoverFocused,primary:18,weight:100},metadata:{description:Nt("scrollDownHoverDescription","Scroll down the editor hover.")}})}run(e,t){const i=gr.get(t);i&&i.scrollDown()}}class jet extends Ke{constructor(){super({id:oYe,label:v({},"Scroll Left Hover"),alias:"Scroll Left Hover",precondition:W.hoverFocused,kbOpts:{kbExpr:W.hoverFocused,primary:15,weight:100},metadata:{description:Nt("scrollLeftHoverDescription","Scroll left the editor hover.")}})}run(e,t){const i=gr.get(t);i&&i.scrollLeft()}}class Ket extends Ke{constructor(){super({id:rYe,label:v({},"Scroll Right Hover"),alias:"Scroll Right Hover",precondition:W.hoverFocused,kbOpts:{kbExpr:W.hoverFocused,primary:17,weight:100},metadata:{description:Nt("scrollRightHoverDescription","Scroll right the editor hover.")}})}run(e,t){const i=gr.get(t);i&&i.scrollRight()}}class qet extends Ke{constructor(){super({id:aYe,label:v({},"Page Up Hover"),alias:"Page Up Hover",precondition:W.hoverFocused,kbOpts:{kbExpr:W.hoverFocused,primary:11,secondary:[528],weight:100},metadata:{description:Nt("pageUpHoverDescription","Page up the editor hover.")}})}run(e,t){const i=gr.get(t);i&&i.pageUp()}}class Get extends Ke{constructor(){super({id:lYe,label:v({},"Page Down Hover"),alias:"Page Down Hover",precondition:W.hoverFocused,kbOpts:{kbExpr:W.hoverFocused,primary:12,secondary:[530],weight:100},metadata:{description:Nt("pageDownHoverDescription","Page down the editor hover.")}})}run(e,t){const i=gr.get(t);i&&i.pageDown()}}class Zet extends Ke{constructor(){super({id:cYe,label:v({},"Go To Top Hover"),alias:"Go To Bottom Hover",precondition:W.hoverFocused,kbOpts:{kbExpr:W.hoverFocused,primary:14,secondary:[2064],weight:100},metadata:{description:Nt("goToTopHoverDescription","Go to the top of the editor hover.")}})}run(e,t){const i=gr.get(t);i&&i.goToTop()}}class Yet extends Ke{constructor(){super({id:dYe,label:v({},"Go To Bottom Hover"),alias:"Go To Bottom Hover",precondition:W.hoverFocused,kbOpts:{kbExpr:W.hoverFocused,primary:13,secondary:[2066],weight:100},metadata:{description:Nt("goToBottomHoverDescription","Go to the bottom of the editor hover.")}})}run(e,t){const i=gr.get(t);i&&i.goToBottom()}}class Xet extends Ke{constructor(){super({id:NP,label:uYe,alias:"Increase Hover Verbosity Level",precondition:W.hoverVisible})}run(e,t,i){var s;(s=gr.get(t))===null||s===void 0||s.updateMarkdownHoverVerbosityLevel(rl.Increase,i==null?void 0:i.index,i==null?void 0:i.focus)}}class Qet extends Ke{constructor(){super({id:AP,label:hYe,alias:"Decrease Hover Verbosity Level",precondition:W.hoverVisible})}run(e,t,i){var s;(s=gr.get(t))===null||s===void 0||s.updateMarkdownHoverVerbosityLevel(rl.Decrease,i==null?void 0:i.index,i==null?void 0:i.focus)}}var Jet=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},v3=function(n,e){return function(t,i){e(t,i,n)}};const Mc=ke;class ett{constructor(e,t,i){this.owner=e,this.range=t,this.marker=i}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}const zte={type:1,filter:{include:kn.QuickFix},triggerAction:Fa.QuickFixHover};let WW=class{constructor(e,t,i,s){this._editor=e,this._markerDecorationsService=t,this._openerService=i,this._languageFeaturesService=s,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1&&!e.supportsMarkerHover)return[];const i=this._editor.getModel(),s=e.range.startLineNumber,o=i.getLineMaxColumn(s),r=[];for(const a of t){const l=a.range.startLineNumber===s?a.range.startColumn:1,c=a.range.endLineNumber===s?a.range.endColumn:o,d=this._markerDecorationsService.getMarker(i.uri,a);if(!d)continue;const u=new A(e.range.startLineNumber,l,e.range.startLineNumber,c);r.push(new ett(this,u,d))}return r}renderHoverParts(e,t){if(!t.length)return ne.None;const i=new be;t.forEach(o=>e.fragment.appendChild(this.renderMarkerHover(o,i)));const s=t.length===1?t[0]:t.sort((o,r)=>Qn.compare(o.marker.severity,r.marker.severity))[0];return this.renderMarkerStatusbar(e,s,i),i}renderMarkerHover(e,t){const i=Mc("div.hover-row");i.tabIndex=0;const s=we(i,Mc("div.marker.hover-contents")),{source:o,message:r,code:a,relatedInformation:l}=e.marker;this._editor.applyFontInfo(s);const c=we(s,Mc("span"));if(c.style.whiteSpace="pre-wrap",c.innerText=r,o||a)if(a&&typeof a!="string"){const d=Mc("span");if(o){const g=we(d,Mc("span"));g.innerText=o}const u=we(d,Mc("a.code-link"));u.setAttribute("href",a.target.toString()),t.add(ce(u,"click",g=>{this._openerService.open(a.target,{allowCommands:!0}),g.preventDefault(),g.stopPropagation()}));const h=we(u,Mc("span"));h.innerText=a.value;const f=we(s,d);f.style.opacity="0.6",f.style.paddingLeft="6px"}else{const d=we(s,Mc("span"));d.style.opacity="0.6",d.style.paddingLeft="6px",d.innerText=o&&a?`${o}(${a})`:o||`(${a})`}if(Zo(l))for(const{message:d,resource:u,startLineNumber:h,startColumn:f}of l){const g=we(s,Mc("div"));g.style.marginTop="8px";const p=we(g,Mc("a"));p.innerText=`${dc(u)}(${h}, ${f}): `,p.style.cursor="pointer",t.add(ce(p,"click",b=>{b.stopPropagation(),b.preventDefault(),this._openerService&&this._openerService.open(u,{fromUserGesture:!0,editorOptions:{selection:{startLineNumber:h,startColumn:f}}}).catch(Mt)}));const _=we(g,Mc("span"));_.innerText=d,this._editor.applyFontInfo(_)}return i}renderMarkerStatusbar(e,t,i){if(t.marker.severity===Qn.Error||t.marker.severity===Qn.Warning||t.marker.severity===Qn.Info){const s=t_.get(this._editor);s&&e.statusBar.addAction({label:v("view problem","View Problem"),commandId:Cm.ID,run:()=>{e.hide(),s.showAtMarker(t.marker),this._editor.focus()}})}if(!this._editor.getOption(91)){const s=e.statusBar.append(Mc("div"));this.recentMarkerCodeActionsInfo&&(TA.makeKey(this.recentMarkerCodeActionsInfo.marker)===TA.makeKey(t.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||(s.textContent=v("noQuickFixes","No quick fixes available")):this.recentMarkerCodeActionsInfo=void 0);const o=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?ne.None:Om(()=>s.textContent=v("checkingForQuickFixes","Checking for quick fixes..."),200,i);s.textContent||(s.textContent=" ");const r=this.getCodeActions(t.marker);i.add(dt(()=>r.cancel())),r.then(a=>{if(o.dispose(),this.recentMarkerCodeActionsInfo={marker:t.marker,hasCodeActions:a.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions){a.dispose(),s.textContent=v("noQuickFixes","No quick fixes available");return}s.style.display="none";let l=!1;i.add(dt(()=>{l||a.dispose()})),e.statusBar.addAction({label:v("quick fixes","Quick Fix..."),commandId:pU,run:c=>{l=!0;const d=qm.get(this._editor),u=bs(c);e.hide(),d==null||d.showCodeActions(zte,a,{x:u.left,y:u.top,width:u.width,height:u.height})}})},Mt)}}getCodeActions(e){return Xs(t=>Nx(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new A(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),zte,bg.None,t))}};WW=Jet([v3(1,xz),v3(2,$a),v3(3,Xe)],WW);var $te;(function(n){n.intro=v("intro","Focus on the hover widget to cycle through the hover parts with the Tab key."),n.increaseVerbosity=v("increaseVerbosity","- The focused hover part verbosity level can be increased with the Increase Hover Verbosity command.",NP),n.decreaseVerbosity=v("decreaseVerbosity","- The focused hover part verbosity level can be decreased with the Decrease Hover Verbosity command.",AP),n.hoverContent=v("contentHover","The last focused hover content is the following.")})($te||($te={}));class ttt{dispose(){var e;(e=this._provider)===null||e===void 0||e.dispose()}}class itt{dispose(){var e;(e=this._provider)===null||e===void 0||e.dispose()}}class ntt{dispose(){}}bi(gr.ID,gr,2);xe(Vet);xe(zet);xe($et);xe(Uet);xe(jet);xe(Ket);xe(qet);xe(Get);xe(Zet);xe(Yet);xe(Xet);xe(Qet);b_.register(gk);b_.register(WW);mc((n,e)=>{const t=n.getColor(zle);t&&(e.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${t.transparent(.5)}; }`),e.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${t.transparent(.5)}; }`),e.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${t.transparent(.5)}; }`))});tO.register(new ttt);tO.register(new itt);tO.register(new ntt);function wa(n,e){let t=0;for(let i=0;ii-1)return[];const{tabSize:r,indentSize:a,insertSpaces:l}=n.getOptions(),c=(p,_)=>(_=_||1,Zl.shiftIndent(p,p.length+_,r,a,l)),d=(p,_)=>(_=_||1,Zl.unshiftIndent(p,p.length+_,r,a,l)),u=[],h=n.getLineContent(t);let f=on(h),g=f;o.shouldIncrease(t)?(g=c(g),f=c(f)):o.shouldIndentNextLine(t)&&(g=c(g)),t++;for(let p=t;p<=i;p++){if(stt(n,p))continue;const _=n.getLineContent(p),b=on(_),w=g;o.shouldDecrease(p,w)&&(g=d(g),f=d(f)),b!==g&&u.push(Mn.replaceMove(new it(p,1,p,b.length+1),Pz(g,a,l))),!o.shouldIgnore(p)&&(o.shouldIncrease(p,w)?(f=c(f),g=f):o.shouldIndentNextLine(p,w)?g=c(g):g=f)}return u}function stt(n,e){return n.tokenization.isCheapToTokenize(e)?n.tokenization.getLineTokens(e).getStandardTokenType(0)===2:!1}var ott=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},rtt=function(n,e){return function(t,i){e(t,i,n)}};class nO extends Ke{constructor(){super({id:nO.ID,label:v("indentationToSpaces","Convert Indentation to Spaces"),alias:"Convert Indentation to Spaces",precondition:W.writable,metadata:{description:Nt("indentationToSpacesDescription","Convert the tab indentation to spaces.")}})}run(e,t){const i=t.getModel();if(!i)return;const s=i.getOptions(),o=t.getSelection();if(!o)return;const r=new utt(o,s.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[r]),t.pushUndoStop(),i.updateOptions({insertSpaces:!0})}}nO.ID="editor.action.indentationToSpaces";class sO extends Ke{constructor(){super({id:sO.ID,label:v("indentationToTabs","Convert Indentation to Tabs"),alias:"Convert Indentation to Tabs",precondition:W.writable,metadata:{description:Nt("indentationToTabsDescription","Convert the spaces indentation to tabs.")}})}run(e,t){const i=t.getModel();if(!i)return;const s=i.getOptions(),o=t.getSelection();if(!o)return;const r=new htt(o,s.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[r]),t.pushUndoStop(),i.updateOptions({insertSpaces:!1})}}sO.ID="editor.action.indentationToTabs";class HU extends Ke{constructor(e,t,i){super(i),this.insertSpaces=e,this.displaySizeOnly=t}run(e,t){const i=e.get(Cc),s=e.get(Pn),o=t.getModel();if(!o)return;const r=s.getCreationOptions(o.getLanguageId(),o.uri,o.isForSimpleWidget),a=o.getOptions(),l=[1,2,3,4,5,6,7,8].map(d=>({id:d.toString(),label:d.toString(),description:d===r.tabSize&&d===a.tabSize?v("configuredTabSize","Configured Tab Size"):d===r.tabSize?v("defaultTabSize","Default Tab Size"):d===a.tabSize?v("currentTabSize","Current Tab Size"):void 0})),c=Math.min(o.getOptions().tabSize-1,7);setTimeout(()=>{i.pick(l,{placeHolder:v({},"Select Tab Size for Current File"),activeItem:l[c]}).then(d=>{if(d&&o&&!o.isDisposed()){const u=parseInt(d.label,10);this.displaySizeOnly?o.updateOptions({tabSize:u}):o.updateOptions({tabSize:u,indentSize:u,insertSpaces:this.insertSpaces})}})},50)}}class oO extends HU{constructor(){super(!1,!1,{id:oO.ID,label:v("indentUsingTabs","Indent Using Tabs"),alias:"Indent Using Tabs",precondition:void 0,metadata:{description:Nt("indentUsingTabsDescription","Use indentation with tabs.")}})}}oO.ID="editor.action.indentUsingTabs";class rO extends HU{constructor(){super(!0,!1,{id:rO.ID,label:v("indentUsingSpaces","Indent Using Spaces"),alias:"Indent Using Spaces",precondition:void 0,metadata:{description:Nt("indentUsingSpacesDescription","Use indentation with spaces.")}})}}rO.ID="editor.action.indentUsingSpaces";class aO extends HU{constructor(){super(!0,!0,{id:aO.ID,label:v("changeTabDisplaySize","Change Tab Display Size"),alias:"Change Tab Display Size",precondition:void 0,metadata:{description:Nt("changeTabDisplaySizeDescription","Change the space size equivalent of the tab.")}})}}aO.ID="editor.action.changeTabDisplaySize";class lO extends Ke{constructor(){super({id:lO.ID,label:v("detectIndentation","Detect Indentation from Content"),alias:"Detect Indentation from Content",precondition:void 0,metadata:{description:Nt("detectIndentationDescription","Detect the indentation from content.")}})}run(e,t){const i=e.get(Pn),s=t.getModel();if(!s)return;const o=i.getCreationOptions(s.getLanguageId(),s.uri,s.isForSimpleWidget);s.detectIndentation(o.insertSpaces,o.tabSize)}}lO.ID="editor.action.detectIndentation";class att extends Ke{constructor(){super({id:"editor.action.reindentlines",label:v("editor.reindentlines","Reindent Lines"),alias:"Reindent Lines",precondition:W.writable,metadata:{description:Nt("editor.reindentlinesDescription","Reindent the lines of the editor.")}})}run(e,t){const i=e.get(gn),s=t.getModel();if(!s)return;const o=Ige(s,i,1,s.getLineCount());o.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,o),t.pushUndoStop())}}class ltt extends Ke{constructor(){super({id:"editor.action.reindentselectedlines",label:v("editor.reindentselectedlines","Reindent Selected Lines"),alias:"Reindent Selected Lines",precondition:W.writable,metadata:{description:Nt("editor.reindentselectedlinesDescription","Reindent the selected lines of the editor.")}})}run(e,t){const i=e.get(gn),s=t.getModel();if(!s)return;const o=t.getSelections();if(o===null)return;const r=[];for(const a of o){let l=a.startLineNumber,c=a.endLineNumber;if(l!==c&&a.endColumn===1&&c--,l===1){if(l===c)continue}else l--;const d=Ige(s,i,l,c);r.push(...d)}r.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,r),t.pushUndoStop())}}class ctt{constructor(e,t){this._initialSelection=t,this._edits=[],this._selectionId=null;for(const i of e)i.range&&typeof i.text=="string"&&this._edits.push(i)}getEditOperations(e,t){for(const s of this._edits)t.addEditOperation(A.lift(s.range),s.text);let i=!1;Array.isArray(this._edits)&&this._edits.length===1&&this._initialSelection.isEmpty()&&(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber?(i=!0,this._selectionId=t.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(i=!0,this._selectionId=t.trackSelection(this._initialSelection,!1))),i||(this._selectionId=t.trackSelection(this._initialSelection))}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}let kk=class{constructor(e,t){this.editor=e,this._languageConfigurationService=t,this.callOnDispose=new be,this.callOnModel=new be,this.callOnDispose.add(e.onDidChangeConfiguration(()=>this.update())),this.callOnDispose.add(e.onDidChangeModel(()=>this.update())),this.callOnDispose.add(e.onDidChangeModelLanguage(()=>this.update()))}update(){this.callOnModel.clear(),!(this.editor.getOption(12)<4||this.editor.getOption(55))&&this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste(({range:e})=>{this.trigger(e)}))}trigger(e){const t=this.editor.getSelections();if(t===null||t.length>1)return;const i=this.editor.getModel();if(!i||dtt(i,e)||!i.tokenization.isCheapToTokenize(e.getStartPosition().lineNumber))return;const s=this.editor.getOption(12),{tabSize:o,indentSize:r,insertSpaces:a}=i.getOptions(),l=[],c={shiftIndent:f=>Zl.shiftIndent(f,f.length+1,o,r,a),unshiftIndent:f=>Zl.unshiftIndent(f,f.length+1,o,r,a)};let d=e.startLineNumber;for(;d<=e.endLineNumber;){if(this.shouldIgnoreLine(i,d)){d++;continue}break}if(d>e.endLineNumber)return;let u=i.getLineContent(d);if(!/\S/.test(u.substring(0,e.startColumn-1))){const f=hx(s,i,i.getLanguageId(),d,c,this._languageConfigurationService);if(f!==null){const g=on(u),p=wa(f,o),_=wa(g,o);if(p!==_){const b=Px(p,o,a);l.push({range:new A(d,1,d,g.length+1),text:b}),u=b+u.substr(g.length)}else{const b=mce(i,d,this._languageConfigurationService);if(b===0||b===8)return}}}const h=d;for(;di.tokenization.getLineTokens(p),getLanguageId:()=>i.getLanguageId(),getLanguageIdAtPosition:(p,_)=>i.getLanguageIdAtPosition(p,_)},getLineContent:p=>p===h?u:i.getLineContent(p)},i.getLanguageId(),d+1,c,this._languageConfigurationService);if(g!==null){const p=wa(g,o),_=wa(on(i.getLineContent(d+1)),o);if(p!==_){const b=p-_;for(let w=d+1;w<=e.endLineNumber;w++){const y=i.getLineContent(w),S=on(y),k=wa(S,o)+b,D=Px(k,o,a);D!==S&&l.push({range:new A(w,1,w,S.length+1),text:D})}}}}if(l.length>0){this.editor.pushUndoStop();const f=new ctt(l,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",f),this.editor.pushUndoStop()}}shouldIgnoreLine(e,t){e.tokenization.forceTokenization(t);const i=e.getLineFirstNonWhitespaceColumn(t);if(i===0)return!0;const s=e.tokenization.getLineTokens(t);if(s.getCount()>0){const o=s.findTokenIndexAtOffset(i);if(o>=0&&s.getStandardTokenType(o)===1)return!0}return!1}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}};kk.ID="editor.contrib.autoIndentOnPaste";kk=ott([rtt(1,gn)],kk);function dtt(n,e){const t=i=>I4e(n,i)===2;return t(e.getStartPosition())||t(e.getEndPosition())}function Ege(n,e,t,i){if(n.getLineCount()===1&&n.getLineMaxColumn(1)===1)return;let s="";for(let r=0;r=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},ptt=function(n,e){return function(t,i){e(t,i,n)}},VN;let i_=VN=class{static get(e){return e.getContribution(VN.ID)}constructor(e,t){this.editor=e,this.editorWorkerService=t,this.decorations=this.editor.createDecorationsCollection()}dispose(){}run(e,t){var i;(i=this.currentRequest)===null||i===void 0||i.cancel();const s=this.editor.getSelection(),o=this.editor.getModel();if(!o||!s)return;let r=s;if(r.startLineNumber!==r.endLineNumber)return;const a=new ihe(this.editor,5),l=o.uri;return this.editorWorkerService.canNavigateValueSet(l)?(this.currentRequest=Xs(c=>this.editorWorkerService.navigateValueSet(l,r,t)),this.currentRequest.then(c=>{var d;if(!c||!c.range||!c.value||!a.validate(this.editor))return;const u=A.lift(c.range);let h=c.range;const f=c.value.length-(r.endColumn-r.startColumn);h={startLineNumber:h.startLineNumber,startColumn:h.startColumn,endLineNumber:h.endLineNumber,endColumn:h.startColumn+c.value.length},f>1&&(r=new it(r.startLineNumber,r.startColumn,r.endLineNumber,r.endColumn+f-1));const g=new ftt(u,r,c.value);this.editor.pushUndoStop(),this.editor.executeCommand(e,g),this.editor.pushUndoStop(),this.decorations.set([{range:h,options:VN.DECORATION}]),(d=this.decorationRemover)===null||d===void 0||d.cancel(),this.decorationRemover=Dg(350),this.decorationRemover.then(()=>this.decorations.clear()).catch(Mt)}).catch(Mt)):Promise.resolve(void 0)}};i_.ID="editor.contrib.inPlaceReplaceController";i_.DECORATION=Wt.register({description:"in-place-replace",className:"valueSetReplacement"});i_=VN=gtt([ptt(1,bc)],i_);class mtt extends Ke{constructor(){super({id:"editor.action.inPlaceReplace.up",label:v("InPlaceReplaceAction.previous.label","Replace with Previous Value"),alias:"Replace with Previous Value",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:3159,weight:100}})}run(e,t){const i=i_.get(t);return i?i.run(this.id,!1):Promise.resolve(void 0)}}class _tt extends Ke{constructor(){super({id:"editor.action.inPlaceReplace.down",label:v("InPlaceReplaceAction.next.label","Replace with Next Value"),alias:"Replace with Next Value",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:3161,weight:100}})}run(e,t){const i=i_.get(t);return i?i.run(this.id,!0):Promise.resolve(void 0)}}bi(i_.ID,i_,4);xe(mtt);xe(_tt);class vtt extends Ke{constructor(){super({id:"expandLineSelection",label:v("expandLineSelection","Expand Line Selection"),alias:"Expand Line Selection",precondition:void 0,kbOpts:{weight:0,kbExpr:W.textInputFocus,primary:2090}})}run(e,t,i){if(i=i||{},!t.hasModel())return;const s=t._getViewModel();s.model.pushStackElement(),s.setCursorStates(i.source,3,po.expandLineSelection(s,s.getCursorStates())),s.revealAllCursors(i.source,!0)}}xe(vtt);class btt{constructor(e,t,i){this._selection=e,this._cursors=t,this._selectionId=null,this._trimInRegexesAndStrings=i}getEditOperations(e,t){const i=Ctt(e,this._cursors,this._trimInRegexesAndStrings);for(let s=0,o=i.length;sa.lineNumber===l.lineNumber?a.column-l.column:a.lineNumber-l.lineNumber);for(let a=e.length-2;a>=0;a--)e[a].lineNumber===e[a+1].lineNumber&&e.splice(a,1);const i=[];let s=0,o=0;const r=e.length;for(let a=1,l=n.getLineCount();a<=l;a++){const c=n.getLineContent(a),d=c.length+1;let u=0;if(o=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},ytt=function(n,e){return function(t,i){e(t,i,n)}};let HW=class{constructor(e,t,i,s){this._languageConfigurationService=s,this._selection=e,this._isMovingDown=t,this._autoIndent=i,this._selectionId=null,this._moveEndLineSelectionShrink=!1}getEditOperations(e,t){const i=()=>e.getLanguageId(),s=(u,h)=>e.getLanguageIdAtPosition(u,h),o=e.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===o){this._selectionId=t.trackSelection(this._selection);return}if(!this._isMovingDown&&this._selection.startLineNumber===1){this._selectionId=t.trackSelection(this._selection);return}this._moveEndPositionDown=!1;let r=this._selection;r.startLineNumberw===r.startLineNumber?e.tokenization.getLineTokens(u):e.tokenization.getLineTokens(w),getLanguageId:i,getLanguageIdAtPosition:s},getLineContent:w=>w===r.startLineNumber?e.getLineContent(u):e.getLineContent(w)},b=hx(this._autoIndent,_,e.getLanguageIdAtPosition(u,1),r.startLineNumber,d,this._languageConfigurationService);if(b!==null){const w=on(e.getLineContent(u)),y=wa(b,a),S=wa(w,a);y!==S&&(f=Px(y,a,c)+this.trimStart(h))}}t.addEditOperation(new A(r.startLineNumber,1,r.startLineNumber,1),f+` `);const p=this.matchEnterRuleMovingDown(e,d,a,r.startLineNumber,u,f);if(p!==null)p!==0&&this.getIndentEditsOfMovingBlock(e,t,r,a,c,p);else{const _={tokenization:{getLineTokens:w=>w===r.startLineNumber?e.tokenization.getLineTokens(u):w>=r.startLineNumber+1&&w<=r.endLineNumber+1?e.tokenization.getLineTokens(w-1):e.tokenization.getLineTokens(w),getLanguageId:i,getLanguageIdAtPosition:s},getLineContent:w=>w===r.startLineNumber?f:w>=r.startLineNumber+1&&w<=r.endLineNumber+1?e.getLineContent(w-1):e.getLineContent(w)},b=hx(this._autoIndent,_,e.getLanguageIdAtPosition(u,1),r.startLineNumber+1,d,this._languageConfigurationService);if(b!==null){const w=on(e.getLineContent(r.startLineNumber)),y=wa(b,a),S=wa(w,a);if(y!==S){const x=y-S;this.getIndentEditsOfMovingBlock(e,t,r,a,c,x)}}}}else t.addEditOperation(new A(r.startLineNumber,1,r.startLineNumber,1),f+` `)}else if(u=r.startLineNumber-1,h=e.getLineContent(u),t.addEditOperation(new A(u,1,u+1,1),null),t.addEditOperation(new A(r.endLineNumber,e.getLineMaxColumn(r.endLineNumber),r.endLineNumber,e.getLineMaxColumn(r.endLineNumber)),` `+h),this.shouldAutoIndent(e,r)){const f={tokenization:{getLineTokens:p=>p===u?e.tokenization.getLineTokens(r.startLineNumber):e.tokenization.getLineTokens(p),getLanguageId:i,getLanguageIdAtPosition:s},getLineContent:p=>p===u?e.getLineContent(r.startLineNumber):e.getLineContent(p)},g=this.matchEnterRule(e,d,a,r.startLineNumber,r.startLineNumber-2);if(g!==null)g!==0&&this.getIndentEditsOfMovingBlock(e,t,r,a,c,g);else{const p=hx(this._autoIndent,f,e.getLanguageIdAtPosition(r.startLineNumber,1),u,d,this._languageConfigurationService);if(p!==null){const _=on(e.getLineContent(r.startLineNumber)),b=wa(p,a),w=wa(_,a);if(b!==w){const y=b-w;this.getIndentEditsOfMovingBlock(e,t,r,a,c,y)}}}}}this._selectionId=t.trackSelection(r)}buildIndentConverter(e,t,i){return{shiftIndent:s=>Zl.shiftIndent(s,s.length+1,e,t,i),unshiftIndent:s=>Zl.unshiftIndent(s,s.length+1,e,t,i)}}parseEnterResult(e,t,i,s,o){if(o){let r=o.indentation;o.indentAction===Ds.None||o.indentAction===Ds.Indent?r=o.indentation+o.appendText:o.indentAction===Ds.IndentOutdent?r=o.indentation:o.indentAction===Ds.Outdent&&(r=t.unshiftIndent(o.indentation)+o.appendText);const a=e.getLineContent(s);if(this.trimStart(a).indexOf(this.trimStart(r))>=0){const l=on(e.getLineContent(s));let c=on(r);const d=mce(e,s,this._languageConfigurationService);d!==null&&d&2&&(c=t.unshiftIndent(c));const u=wa(c,i),h=wa(l,i);return u-h}}return null}matchEnterRuleMovingDown(e,t,i,s,o,r){if(Kd(r)>=0){const a=e.getLineMaxColumn(o),l=eC(this._autoIndent,e,new A(o,a,o,a),this._languageConfigurationService);return this.parseEnterResult(e,t,i,s,l)}else{let a=s-1;for(;a>=1;){const d=e.getLineContent(a);if(Kd(d)>=0)break;a--}if(a<1||s>e.getLineCount())return null;const l=e.getLineMaxColumn(a),c=eC(this._autoIndent,e,new A(a,l,a,l),this._languageConfigurationService);return this.parseEnterResult(e,t,i,s,c)}}matchEnterRule(e,t,i,s,o,r){let a=o;for(;a>=1;){let d;if(a===o&&r!==void 0?d=r:d=e.getLineContent(a),Kd(d)>=0)break;a--}if(a<1||s>e.getLineCount())return null;const l=e.getLineMaxColumn(a),c=eC(this._autoIndent,e,new A(a,l,a,l),this._languageConfigurationService);return this.parseEnterResult(e,t,i,s,c)}trimStart(e){return e.replace(/^\s+/,"")}shouldAutoIndent(e,t){if(this._autoIndent<4||!e.tokenization.isCheapToTokenize(t.startLineNumber))return!1;const i=e.getLanguageIdAtPosition(t.startLineNumber,1),s=e.getLanguageIdAtPosition(t.endLineNumber,1);return!(i!==s||this._languageConfigurationService.getLanguageConfiguration(i).indentRulesSupport===null)}getIndentEditsOfMovingBlock(e,t,i,s,o,r){for(let a=i.startLineNumber;a<=i.endLineNumber;a++){const l=e.getLineContent(a),c=on(l),u=wa(c,s)+r,h=Px(u,s,o);h!==c&&(t.addEditOperation(new A(a,1,a,c.length+1),h),a===i.endLineNumber&&i.endColumn<=c.length+1&&h===""&&(this._moveEndLineSelectionShrink=!0))}}computeCursorState(e,t){let i=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(i=i.setEndPosition(i.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&i.startLineNumber=s)return null;const o=[];for(let a=i;a<=s;a++)o.push(n.getLineContent(a));let r=o.slice(0);return r.sort(wm.getCollator().compare),t===!0&&(r=r.reverse()),{startLineNumber:i,endLineNumber:s,before:o,after:r}}function Stt(n,e,t){const i=Nge(n,e,t);return i?Mn.replace(new A(i.startLineNumber,1,i.endLineNumber,n.getLineMaxColumn(i.endLineNumber)),i.after.join(` `)):null}class Age extends Ke{constructor(e,t){super(t),this.down=e}run(e,t){if(!t.hasModel())return;const i=t.getSelections().map((r,a)=>({selection:r,index:a,ignore:!1}));i.sort((r,a)=>A.compareRangesUsingStarts(r.selection,a.selection));let s=i[0];for(let r=1;rnew ee(d.positionLineNumber,d.positionColumn)));const o=t.getSelection();if(o===null)return;const r=e.get(qt),a=t.getModel(),l=r.getValue("files.trimTrailingWhitespaceInRegexAndStrings",{overrideIdentifier:a==null?void 0:a.getLanguageId(),resource:a==null?void 0:a.uri}),c=new btt(o,s,l);t.pushUndoStop(),t.executeCommands(this.id,[c]),t.pushUndoStop()}}cO.ID="editor.action.trimTrailingWhitespace";class Att extends Ke{constructor(){super({id:"editor.action.deleteLines",label:v("lines.delete","Delete Line"),alias:"Delete Line",precondition:W.writable,kbOpts:{kbExpr:W.textInputFocus,primary:3113,weight:100}})}run(e,t){if(!t.hasModel())return;const i=this._getLinesToRemove(t),s=t.getModel();if(s.getLineCount()===1&&s.getLineMaxColumn(1)===1)return;let o=0;const r=[],a=[];for(let l=0,c=i.length;l1&&(u-=1,f=s.getLineMaxColumn(u)),r.push(Mn.replace(new it(u,f,h,g),"")),a.push(new it(u-o,d.positionColumn,u-o,d.positionColumn)),o+=d.endLineNumber-d.startLineNumber+1}t.pushUndoStop(),t.executeEdits(this.id,r,a),t.pushUndoStop()}_getLinesToRemove(e){const t=e.getSelections().map(o=>{let r=o.endLineNumber;return o.startLineNumbero.startLineNumber===r.startLineNumber?o.endLineNumber-r.endLineNumber:o.startLineNumber-r.startLineNumber);const i=[];let s=t[0];for(let o=1;o=t[o].startLineNumber?s.endLineNumber=t[o].endLineNumber:(i.push(s),s=t[o]);return i.push(s),i}}class Rtt extends Ke{constructor(){super({id:"editor.action.indentLines",label:v("lines.indent","Indent Line"),alias:"Indent Line",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:2142,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,Bn.indent(i.cursorConfig,t.getModel(),t.getSelections())),t.pushUndoStop())}}class Mtt extends Ke{constructor(){super({id:"editor.action.outdentLines",label:v("lines.outdent","Outdent Line"),alias:"Outdent Line",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:2140,weight:100}})}run(e,t){tC.Outdent.runEditorCommand(e,t,null)}}class Ptt extends Ke{constructor(){super({id:"editor.action.insertLineBefore",label:v("lines.insertBefore","Insert Line Above"),alias:"Insert Line Above",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:3075,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,Bn.lineInsertBefore(i.cursorConfig,t.getModel(),t.getSelections())))}}class Ott extends Ke{constructor(){super({id:"editor.action.insertLineAfter",label:v("lines.insertAfter","Insert Line Below"),alias:"Insert Line Below",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:2051,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,Bn.lineInsertAfter(i.cursorConfig,t.getModel(),t.getSelections())))}}class Pge extends Ke{run(e,t){if(!t.hasModel())return;const i=t.getSelection(),s=this._getRangesToDelete(t),o=[];for(let l=0,c=s.length-1;lMn.replace(l,""));t.pushUndoStop(),t.executeEdits(this.id,a,r),t.pushUndoStop()}}class Ftt extends Pge{constructor(){super({id:"deleteAllLeft",label:v("lines.deleteAllLeft","Delete All Left"),alias:"Delete All Left",precondition:W.writable,kbOpts:{kbExpr:W.textInputFocus,primary:0,mac:{primary:2049},weight:100}})}_getEndCursorState(e,t){let i=null;const s=[];let o=0;return t.forEach(r=>{let a;if(r.endColumn===1&&o>0){const l=r.startLineNumber-o;a=new it(l,r.startColumn,l,r.startColumn)}else a=new it(r.startLineNumber,r.startColumn,r.startLineNumber,r.startColumn);o+=r.endLineNumber-r.startLineNumber,r.intersectRanges(e)?i=a:s.push(a)}),i&&s.unshift(i),s}_getRangesToDelete(e){const t=e.getSelections();if(t===null)return[];let i=t;const s=e.getModel();return s===null?[]:(i.sort(A.compareRangesUsingStarts),i=i.map(o=>{if(o.isEmpty())if(o.startColumn===1){const r=Math.max(1,o.startLineNumber-1),a=o.startLineNumber===1?1:s.getLineLength(r)+1;return new A(r,a,o.startLineNumber,1)}else return new A(o.startLineNumber,1,o.startLineNumber,o.startColumn);else return new A(o.startLineNumber,1,o.endLineNumber,o.endColumn)}),i)}}class Btt extends Pge{constructor(){super({id:"deleteAllRight",label:v("lines.deleteAllRight","Delete All Right"),alias:"Delete All Right",precondition:W.writable,kbOpts:{kbExpr:W.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100}})}_getEndCursorState(e,t){let i=null;const s=[];for(let o=0,r=t.length,a=0;o{if(o.isEmpty()){const r=t.getLineMaxColumn(o.startLineNumber);return o.startColumn===r?new A(o.startLineNumber,o.startColumn,o.startLineNumber+1,1):new A(o.startLineNumber,o.startColumn,o.startLineNumber,r)}return o});return s.sort(A.compareRangesUsingStarts),s}}class Wtt extends Ke{constructor(){super({id:"editor.action.joinLines",label:v("lines.joinLines","Join Lines"),alias:"Join Lines",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:0,mac:{primary:296},weight:100}})}run(e,t){const i=t.getSelections();if(i===null)return;let s=t.getSelection();if(s===null)return;i.sort(A.compareRangesUsingStarts);const o=[],r=i.reduce((h,f)=>h.isEmpty()?h.endLineNumber===f.startLineNumber?(s.equalsSelection(h)&&(s=f),f):f.startLineNumber>h.endLineNumber+1?(o.push(h),f):new it(h.startLineNumber,h.startColumn,f.endLineNumber,f.endColumn):f.startLineNumber>h.endLineNumber?(o.push(h),f):new it(h.startLineNumber,h.startColumn,f.endLineNumber,f.endColumn));o.push(r);const a=t.getModel();if(a===null)return;const l=[],c=[];let d=s,u=0;for(let h=0,f=o.length;h=1){let P=!0;x===""&&(P=!1),P&&(x.charAt(x.length-1)===" "||x.charAt(x.length-1)===" ")&&(P=!1,x=x.replace(/[\s\uFEFF\xA0]+$/g," "));const O=I.substr(N-1);x+=(P?" ":"")+O,P?b=O.length+1:b=O.length}else b=0}const k=new A(p,_,w,y);if(!k.isEmpty()){let D;g.isEmpty()?(l.push(Mn.replace(k,x)),D=new it(k.startLineNumber-u,x.length-b+1,p-u,x.length-b+1)):g.startLineNumber===g.endLineNumber?(l.push(Mn.replace(k,x)),D=new it(g.startLineNumber-u,g.startColumn,g.endLineNumber-u,g.endColumn)):(l.push(Mn.replace(k,x)),D=new it(g.startLineNumber-u,g.startColumn,g.startLineNumber-u,x.length-S)),A.intersectRanges(k,s)!==null?d=D:c.push(D)}u+=k.endLineNumber-k.startLineNumber}c.unshift(d),t.pushUndoStop(),t.executeEdits(this.id,l,c),t.pushUndoStop()}}class Htt extends Ke{constructor(){super({id:"editor.action.transpose",label:v("editor.transpose","Transpose Characters around the Cursor"),alias:"Transpose Characters around the Cursor",precondition:W.writable})}run(e,t){const i=t.getSelections();if(i===null)return;const s=t.getModel();if(s===null)return;const o=[];for(let r=0,a=i.length;r=d){if(c.lineNumber===s.getLineCount())continue;const u=new A(c.lineNumber,Math.max(1,c.column-1),c.lineNumber+1,1),h=s.getValueInRange(u).split("").reverse().join("");o.push(new Io(new it(c.lineNumber,Math.max(1,c.column-1),c.lineNumber+1,1),h))}else{const u=new A(c.lineNumber,Math.max(1,c.column-1),c.lineNumber,c.column+1),h=s.getValueInRange(u).split("").reverse().join("");o.push(new Oz(u,h,new it(c.lineNumber,c.column+1,c.lineNumber,c.column+1)))}}t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}}class cb extends Ke{run(e,t){const i=t.getSelections();if(i===null)return;const s=t.getModel();if(s===null)return;const o=t.getOption(131),r=[];for(const a of i)if(a.isEmpty()){const l=a.getStartPosition(),c=t.getConfiguredWordAtPosition(l);if(!c)continue;const d=new A(l.lineNumber,c.startColumn,l.lineNumber,c.endColumn),u=s.getValueInRange(d);r.push(Mn.replace(d,this._modifyText(u,o)))}else{const l=s.getValueInRange(a);r.push(Mn.replace(a,this._modifyText(l,o)))}t.pushUndoStop(),t.executeEdits(this.id,r),t.pushUndoStop()}}class Vtt extends cb{constructor(){super({id:"editor.action.transformToUppercase",label:v("editor.transformToUppercase","Transform to Uppercase"),alias:"Transform to Uppercase",precondition:W.writable})}_modifyText(e,t){return e.toLocaleUpperCase()}}class ztt extends cb{constructor(){super({id:"editor.action.transformToLowercase",label:v("editor.transformToLowercase","Transform to Lowercase"),alias:"Transform to Lowercase",precondition:W.writable})}_modifyText(e,t){return e.toLocaleLowerCase()}}class jg{constructor(e,t){this._pattern=e,this._flags=t,this._actual=null,this._evaluated=!1}get(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch{}}return this._actual}isSupported(){return this.get()!==null}}class Dk extends cb{constructor(){super({id:"editor.action.transformToTitlecase",label:v("editor.transformToTitlecase","Transform to Title Case"),alias:"Transform to Title Case",precondition:W.writable})}_modifyText(e,t){const i=Dk.titleBoundary.get();return i?e.toLocaleLowerCase().replace(i,s=>s.toLocaleUpperCase()):e}}Dk.titleBoundary=new jg("(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}","gmu");class ym extends cb{constructor(){super({id:"editor.action.transformToSnakecase",label:v("editor.transformToSnakecase","Transform to Snake Case"),alias:"Transform to Snake Case",precondition:W.writable})}_modifyText(e,t){const i=ym.caseBoundary.get(),s=ym.singleLetters.get();return!i||!s?e:e.replace(i,"$1_$2").replace(s,"$1_$2$3").toLocaleLowerCase()}}ym.caseBoundary=new jg("(\\p{Ll})(\\p{Lu})","gmu");ym.singleLetters=new jg("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu");class Ik extends cb{constructor(){super({id:"editor.action.transformToCamelcase",label:v("editor.transformToCamelcase","Transform to Camel Case"),alias:"Transform to Camel Case",precondition:W.writable})}_modifyText(e,t){const i=Ik.wordBoundary.get();if(!i)return e;const s=e.split(i);return s.shift()+s.map(r=>r.substring(0,1).toLocaleUpperCase()+r.substring(1)).join("")}}Ik.wordBoundary=new jg("[_\\s-]","gm");class P0 extends cb{constructor(){super({id:"editor.action.transformToPascalcase",label:v("editor.transformToPascalcase","Transform to Pascal Case"),alias:"Transform to Pascal Case",precondition:W.writable})}_modifyText(e,t){const i=P0.wordBoundary.get(),s=P0.wordBoundaryToMaintain.get();return!i||!s?e:e.split(s).map(a=>a.split(i)).flat().map(a=>a.substring(0,1).toLocaleUpperCase()+a.substring(1)).join("")}}P0.wordBoundary=new jg("[_\\s-]","gm");P0.wordBoundaryToMaintain=new jg("(?<=\\.)","gm");class yg extends cb{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every(t=>t.isSupported())}constructor(){super({id:"editor.action.transformToKebabcase",label:v("editor.transformToKebabcase","Transform to Kebab Case"),alias:"Transform to Kebab Case",precondition:W.writable})}_modifyText(e,t){const i=yg.caseBoundary.get(),s=yg.singleLetters.get(),o=yg.underscoreBoundary.get();return!i||!s||!o?e:e.replace(o,"$1-$3").replace(i,"$1-$2").replace(s,"$1-$2").toLocaleLowerCase()}}yg.caseBoundary=new jg("(\\p{Ll})(\\p{Lu})","gmu");yg.singleLetters=new jg("(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})","gmu");yg.underscoreBoundary=new jg("(\\S)(_)(\\S)","gm");xe(xtt);xe(Ltt);xe(ktt);xe(Dtt);xe(Itt);xe(Ett);xe(Ttt);xe(Ntt);xe(cO);xe(Att);xe(Rtt);xe(Mtt);xe(Ptt);xe(Ott);xe(Ftt);xe(Btt);xe(Wtt);xe(Htt);xe(Vtt);xe(ztt);ym.caseBoundary.isSupported()&&ym.singleLetters.isSupported()&&xe(ym);Ik.wordBoundary.isSupported()&&xe(Ik);P0.wordBoundary.isSupported()&&xe(P0);Dk.titleBoundary.isSupported()&&xe(Dk);yg.isSupported()&&xe(yg);var $tt=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},BT=function(n,e){return function(t,i){e(t,i,n)}},zN;const Oge=new He("LinkedEditingInputVisible",!1),Utt="linked-editing-decoration";let n_=zN=class extends ne{static get(e){return e.getContribution(zN.ID)}constructor(e,t,i,s,o){super(),this.languageConfigurationService=s,this._syncRangesToken=0,this._localToDispose=this._register(new be),this._editor=e,this._providers=i.linkedEditingRangeProvider,this._enabled=!1,this._visibleContextKey=Oge.bindTo(t),this._debounceInformation=o.for(this._providers,"Linked Editing",{max:200}),this._currentDecorations=this._editor.createDecorationsCollection(),this._languageWordPattern=null,this._currentWordPattern=null,this._ignoreChangeEvent=!1,this._localToDispose=this._register(new be),this._rangeUpdateTriggerPromise=null,this._rangeSyncTriggerPromise=null,this._currentRequestCts=null,this._currentRequestPosition=null,this._currentRequestModelVersion=null,this._register(this._editor.onDidChangeModel(()=>this.reinitialize(!0))),this._register(this._editor.onDidChangeConfiguration(r=>{(r.hasChanged(70)||r.hasChanged(93))&&this.reinitialize(!1)})),this._register(this._providers.onDidChange(()=>this.reinitialize(!1))),this._register(this._editor.onDidChangeModelLanguage(()=>this.reinitialize(!0))),this.reinitialize(!0)}reinitialize(e){const t=this._editor.getModel(),i=t!==null&&(this._editor.getOption(70)||this._editor.getOption(93))&&this._providers.has(t);if(i===this._enabled&&!e||(this._enabled=i,this.clearRanges(),this._localToDispose.clear(),!i||t===null))return;this._localToDispose.add(Ae.runAndSubscribe(t.onDidChangeLanguageConfiguration,()=>{this._languageWordPattern=this.languageConfigurationService.getLanguageConfiguration(t.getLanguageId()).getWordDefinition()}));const s=new sd(this._debounceInformation.get(t)),o=()=>{var l;this._rangeUpdateTriggerPromise=s.trigger(()=>this.updateRanges(),(l=this._debounceDuration)!==null&&l!==void 0?l:this._debounceInformation.get(t))},r=new sd(0),a=l=>{this._rangeSyncTriggerPromise=r.trigger(()=>this._syncRanges(l))};this._localToDispose.add(this._editor.onDidChangeCursorPosition(()=>{o()})),this._localToDispose.add(this._editor.onDidChangeModelContent(l=>{if(!this._ignoreChangeEvent&&this._currentDecorations.length>0){const c=this._currentDecorations.getRange(0);if(c&&l.changes.every(d=>c.intersectRanges(d.range))){a(this._syncRangesToken);return}}o()})),this._localToDispose.add({dispose:()=>{s.dispose(),r.dispose()}}),this.updateRanges()}_syncRanges(e){if(!this._editor.hasModel()||e!==this._syncRangesToken||this._currentDecorations.length===0)return;const t=this._editor.getModel(),i=this._currentDecorations.getRange(0);if(!i||i.startLineNumber!==i.endLineNumber)return this.clearRanges();const s=t.getValueInRange(i);if(this._currentWordPattern){const r=s.match(this._currentWordPattern);if((r?r[0].length:0)!==s.length)return this.clearRanges()}const o=[];for(let r=1,a=this._currentDecorations.length;r1){this.clearRanges();return}const i=this._editor.getModel(),s=i.getVersionId();if(this._currentRequestPosition&&this._currentRequestModelVersion===s){if(t.equals(this._currentRequestPosition))return;if(this._currentDecorations.length>0){const r=this._currentDecorations.getRange(0);if(r&&r.containsPosition(t))return}}this.clearRanges(),this._currentRequestPosition=t,this._currentRequestModelVersion=s;const o=this._currentRequestCts=new $n;try{const r=new xo(!1),a=await Fge(this._providers,i,t,o.token);if(this._debounceInformation.update(i,r.elapsed()),o!==this._currentRequestCts||(this._currentRequestCts=null,s!==i.getVersionId()))return;let l=[];a!=null&&a.ranges&&(l=a.ranges),this._currentWordPattern=(a==null?void 0:a.wordPattern)||this._languageWordPattern;let c=!1;for(let u=0,h=l.length;u({range:u,options:zN.DECORATION}));this._visibleContextKey.set(!0),this._currentDecorations.set(d),this._syncRangesToken++}catch(r){ld(r)||Mt(r),(this._currentRequestCts===o||!this._currentRequestCts)&&this.clearRanges()}}};n_.ID="editor.contrib.linkedEditing";n_.DECORATION=Wt.register({description:"linked-editing",stickiness:0,className:Utt});n_=zN=$tt([BT(1,Ct),BT(2,Xe),BT(3,gn),BT(4,_c)],n_);class jtt extends Ke{constructor(){super({id:"editor.action.linkedEditing",label:v("linkedEditing.label","Start Linked Editing"),alias:"Start Linked Editing",precondition:pe.and(W.writable,W.hasRenameProvider),kbOpts:{kbExpr:W.editorTextFocus,primary:3132,weight:100}})}runCommand(e,t){const i=e.get(vi),[s,o]=Array.isArray(t)&&t||[void 0,void 0];return pt.isUri(s)&&ee.isIPosition(o)?i.openCodeEditor({resource:s},i.getActiveCodeEditor()).then(r=>{r&&(r.setPosition(o),r.invokeWithinContext(a=>(this.reportTelemetry(a,r),this.run(a,r))))},Mt):super.runCommand(e,t)}run(e,t){const i=n_.get(t);return i?Promise.resolve(i.updateRanges(!0)):Promise.resolve()}}const Ktt=Us.bindToContribution(n_.get);Fe(new Ktt({id:"cancelLinkedEditingInput",precondition:Oge,handler:n=>n.clearRanges(),kbOpts:{kbExpr:W.editorTextFocus,weight:199,primary:9,secondary:[1033]}}));function Fge(n,e,t,i){const s=n.ordered(e);return QV(s.map(o=>async()=>{try{return await o.provideLinkedEditingRanges(e,t,i)}catch(r){as(r);return}}),o=>!!o&&Zo(o==null?void 0:o.ranges))}V("editor.linkedEditingBackground",{dark:le.fromHex("#f00").transparent(.3),light:le.fromHex("#f00").transparent(.3),hcDark:le.fromHex("#f00").transparent(.3),hcLight:le.white},v("editorLinkedEditingBackground","Background color when the editor auto renames on type."));Vh("_executeLinkedEditingProvider",(n,e,t)=>{const{linkedEditingRangeProvider:i}=n.get(Xe);return Fge(i,e,t,Qt.None)});bi(n_.ID,n_,1);xe(jtt);let qtt=class{constructor(e,t){this._link=e,this._provider=t}toJSON(){return{range:this.range,url:this.url,tooltip:this.tooltip}}get range(){return this._link.range}get url(){return this._link.url}get tooltip(){return this._link.tooltip}async resolve(e){return this._link.url?this._link.url:typeof this._provider.resolveLink=="function"?Promise.resolve(this._provider.resolveLink(this._link,e)).then(t=>(this._link=t||this._link,this._link.url?this.resolve(e):Promise.reject(new Error("missing")))):Promise.reject(new Error("missing"))}};class LR{constructor(e){this._disposables=new be;let t=[];for(const[i,s]of e){const o=i.links.map(r=>new qtt(r,s));t=LR._union(t,o),nM(i)&&this._disposables.add(i)}this.links=t}dispose(){this._disposables.dispose(),this.links.length=0}static _union(e,t){const i=[];let s,o,r,a;for(s=0,r=0,o=e.length,a=t.length;sPromise.resolve(o.provideLinks(e,t)).then(a=>{a&&(i[r]=[a,o])},as));return Promise.all(s).then(()=>{const o=new LR(tu(i));return t.isCancellationRequested?(o.dispose(),new LR([])):o})}ri.registerCommand("_executeLinkProvider",async(n,...e)=>{let[t,i]=e;mi(t instanceof pt),typeof i!="number"&&(i=0);const{linkProvider:s}=n.get(Xe),o=n.get(Pn).getModel(t);if(!o)return[];const r=await Bge(s,o,Qt.None);if(!r)return[];for(let l=0;l=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},WT=function(n,e){return function(t,i){e(t,i,n)}},VW;let fw=VW=class extends ne{static get(e){return e.getContribution(VW.ID)}constructor(e,t,i,s,o){super(),this.editor=e,this.openerService=t,this.notificationService=i,this.languageFeaturesService=s,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=o.for(this.providers,"Links",{min:1e3,max:4e3}),this.computeLinks=this._register(new Xi(()=>this.computeLinksNow(),1e3)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;const r=this._register(new RP(e));this._register(r.onMouseMoveOrRelevantKeyDown(([a,l])=>{this._onEditorMouseMove(a,l)})),this._register(r.onExecute(a=>{this.onEditorMouseUp(a)})),this._register(r.onCancel(a=>{this.cleanUpActiveLinkDecoration()})),this._register(e.onDidChangeConfiguration(a=>{a.hasChanged(71)&&(this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0))})),this._register(e.onDidChangeModelContent(a=>{this.editor.hasModel()&&this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))})),this._register(e.onDidChangeModel(a=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)})),this._register(e.onDidChangeModelLanguage(a=>{this.stop(),this.computeLinks.schedule(0)})),this._register(this.providers.onDidChange(a=>{this.stop(),this.computeLinks.schedule(0)})),this.computeLinks.schedule(0)}async computeLinksNow(){if(!this.editor.hasModel()||!this.editor.getOption(71))return;const e=this.editor.getModel();if(!e.isTooLargeForSyncing()&&this.providers.has(e)){this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=Xs(t=>Bge(this.providers,e,t));try{const t=new xo(!1);if(this.activeLinksList=await this.computePromise,this.debounceInformation.update(e,t.elapsed()),e.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(t){Mt(t)}finally{this.computePromise=null}}}updateDecorations(e){const t=this.editor.getOption(78)==="altKey",i=[],s=Object.keys(this.currentOccurrences);for(const r of s){const a=this.currentOccurrences[r];i.push(a.decorationId)}const o=[];if(e)for(const r of e)o.push(gC.decoration(r,t));this.editor.changeDecorations(r=>{const a=r.deltaDecorations(i,o);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let l=0,c=a.length;l{s.activate(o,i),this.activeLinkDecorationId=s.decorationId})}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){const e=this.editor.getOption(78)==="altKey";if(this.activeLinkDecorationId){const t=this.currentOccurrences[this.activeLinkDecorationId];t&&this.editor.changeDecorations(i=>{t.deactivate(i,e)}),this.activeLinkDecorationId=null}}onEditorMouseUp(e){if(!this.isEnabled(e))return;const t=this.getLinkOccurrence(e.target.position);t&&this.openLinkOccurrence(t,e.hasSideBySideModifier,!0)}openLinkOccurrence(e,t,i=!1){if(!this.openerService)return;const{link:s}=e;s.resolve(Qt.None).then(o=>{if(typeof o=="string"&&this.editor.hasModel()){const r=this.editor.getModel().uri;if(r.scheme===Tt.file&&o.startsWith(`${Tt.file}:`)){const a=pt.parse(o);if(a.scheme===Tt.file){const l=Bu(a);let c=null;l.startsWith("/./")||l.startsWith("\\.\\")?c=`.${l.substr(1)}`:(l.startsWith("//./")||l.startsWith("\\\\.\\"))&&(c=`.${l.substr(2)}`),c&&(o=cBe(r,c))}}}return this.openerService.open(o,{openToSide:t,fromUserGesture:i,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})},o=>{const r=o instanceof Error?o.message:o;r==="invalid"?this.notificationService.warn(v("invalid.url","Failed to open this link because it is not well-formed: {0}",s.url.toString())):r==="missing"?this.notificationService.warn(v("missing.url","Failed to open this link because its target is missing.")):Mt(o)})}getLinkOccurrence(e){if(!this.editor.hasModel()||!e)return null;const t=this.editor.getModel().getDecorationsInRange({startLineNumber:e.lineNumber,startColumn:e.column,endLineNumber:e.lineNumber,endColumn:e.column},0,!0);for(const i of t){const s=this.currentOccurrences[i.id];if(s)return s}return null}isEnabled(e,t){return!!(e.target.type===6&&(e.hasTriggerModifier||t&&t.keyCodeIsTriggerKey))}stop(){var e;this.computeLinks.cancel(),this.activeLinksList&&((e=this.activeLinksList)===null||e===void 0||e.dispose(),this.activeLinksList=null),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop()}};fw.ID="editor.linkDetector";fw=VW=Gtt([WT(1,$a),WT(2,ps),WT(3,Xe),WT(4,_c)],fw);const Ute={general:Wt.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:Wt.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})};class gC{static decoration(e,t){return{range:e.range,options:gC._getOptions(e,t,!1)}}static _getOptions(e,t,i){const s={...i?Ute.active:Ute.general};return s.hoverMessage=Ztt(e,t),s}constructor(e,t){this.link=e,this.decorationId=t}activate(e,t){e.changeDecorationOptions(this.decorationId,gC._getOptions(this.link,t,!0))}deactivate(e,t){e.changeDecorationOptions(this.decorationId,gC._getOptions(this.link,t,!1))}}function Ztt(n,e){const t=n.url&&/^command:/i.test(n.url.toString()),i=n.tooltip?n.tooltip:t?v("links.navigate.executeCmd","Execute command"):v("links.navigate.follow","Follow link"),s=e?Xt?v("links.navigate.kb.meta.mac","cmd + click"):v("links.navigate.kb.meta","ctrl + click"):Xt?v("links.navigate.kb.alt.mac","option + click"):v("links.navigate.kb.alt","alt + click");if(n.url){let o="";if(/^command:/i.test(n.url.toString())){const a=n.url.toString().match(/^command:([^?#]+)/);if(a){const l=a[1];o=v("tooltip.explanation","Execute command {0}",l)}}return new $o("",!0).appendLink(n.url.toString(!0).replace(/ /g,"%20"),i,o).appendMarkdown(` (${s})`)}else return new $o().appendText(`${i} (${s})`)}class Ytt extends Ke{constructor(){super({id:"editor.action.openLink",label:v("label","Open Link"),alias:"Open Link",precondition:void 0})}run(e,t){const i=fw.get(t);if(!i||!t.hasModel())return;const s=t.getSelections();for(const o of s){const r=i.getLinkOccurrence(o.getEndPosition());r&&i.openLinkOccurrence(r,!1)}}}bi(fw.ID,fw,1);xe(Ytt);class zW extends ne{constructor(e){super(),this._editor=e,this._register(this._editor.onMouseDown(t=>{const i=this._editor.getOption(117);i>=0&&t.target.type===6&&t.target.position.column>=i&&this._editor.updateOptions({stopRenderingLineAfter:-1})}))}}zW.ID="editor.contrib.longLinesHelper";bi(zW.ID,zW,2);const HT=V("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hcDark:null,hcLight:null},v("wordHighlight","Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations."),!0);V("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hcDark:null,hcLight:null},v("wordHighlightStrong","Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations."),!0);V("editor.wordHighlightTextBackground",{light:HT,dark:HT,hcDark:HT,hcLight:HT},v("wordHighlightText","Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0);const VT=V("editor.wordHighlightBorder",{light:null,dark:null,hcDark:En,hcLight:En},v("wordHighlightBorder","Border color of a symbol during read-access, like reading a variable."));V("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:En,hcLight:En},v("wordHighlightStrongBorder","Border color of a symbol during write-access, like writing to a variable."));V("editor.wordHighlightTextBorder",{light:VT,dark:VT,hcDark:VT,hcLight:VT},v("wordHighlightTextBorder","Border color of a textual occurrence for a symbol."));const Xtt=V("editorOverviewRuler.wordHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hcDark:"#A0A0A0CC",hcLight:"#A0A0A0CC"},v("overviewRulerWordHighlightForeground","Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),Qtt=V("editorOverviewRuler.wordHighlightStrongForeground",{dark:"#C0A0C0CC",light:"#C0A0C0CC",hcDark:"#C0A0C0CC",hcLight:"#C0A0C0CC"},v("overviewRulerWordHighlightStrongForeground","Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),Jtt=V("editorOverviewRuler.wordHighlightTextForeground",{dark:SS,light:SS,hcDark:SS,hcLight:SS},v("overviewRulerWordHighlightTextForeground","Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0),eit=Wt.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:Yn(Qtt),position:Sl.Center},minimap:{color:Yn(NM),position:1}}),tit=Wt.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:Yn(Jtt),position:Sl.Center},minimap:{color:Yn(NM),position:1}}),iit=Wt.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:Yn(SS),position:Sl.Center},minimap:{color:Yn(NM),position:1}}),nit=Wt.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),sit=Wt.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:Yn(Xtt),position:Sl.Center},minimap:{color:Yn(NM),position:1}});function oit(n){return n===lL.Write?eit:n===lL.Text?tit:sit}function rit(n){return n?nit:iit}mc((n,e)=>{const t=n.getColor(kz);t&&e.addRule(`.monaco-editor .selectionHighlight { background-color: ${t.transparent(.5)}; }`)});var ait=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},lit=function(n,e){return function(t,i){e(t,i,n)}},$W;function C_(n,e){const t=e.filter(i=>!n.find(s=>s.equals(i)));if(t.length>=1){const i=t.map(o=>`line ${o.viewState.position.lineNumber} column ${o.viewState.position.column}`).join(", "),s=t.length===1?v("cursorAdded","Cursor added: {0}",i):v("cursorsAdded","Cursors added: {0}",i);Ih(s)}}class cit extends Ke{constructor(){super({id:"editor.action.insertCursorAbove",label:v("mutlicursor.insertAbove","Add Cursor Above"),alias:"Add Cursor Above",precondition:void 0,kbOpts:{kbExpr:W.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:R.MenubarSelectionMenu,group:"3_multi",title:v({},"&&Add Cursor Above"),order:2}})}run(e,t,i){if(!t.hasModel())return;let s=!0;i&&i.logicalLine===!1&&(s=!1);const o=t._getViewModel();if(o.cursorConfig.readOnly)return;o.model.pushStackElement();const r=o.getCursorStates();o.setCursorStates(i.source,3,po.addCursorUp(o,r,s)),o.revealTopMostCursor(i.source),C_(r,o.getCursorStates())}}class dit extends Ke{constructor(){super({id:"editor.action.insertCursorBelow",label:v("mutlicursor.insertBelow","Add Cursor Below"),alias:"Add Cursor Below",precondition:void 0,kbOpts:{kbExpr:W.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:R.MenubarSelectionMenu,group:"3_multi",title:v({},"A&&dd Cursor Below"),order:3}})}run(e,t,i){if(!t.hasModel())return;let s=!0;i&&i.logicalLine===!1&&(s=!1);const o=t._getViewModel();if(o.cursorConfig.readOnly)return;o.model.pushStackElement();const r=o.getCursorStates();o.setCursorStates(i.source,3,po.addCursorDown(o,r,s)),o.revealBottomMostCursor(i.source),C_(r,o.getCursorStates())}}class uit extends Ke{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:v("mutlicursor.insertAtEndOfEachLineSelected","Add Cursors to Line Ends"),alias:"Add Cursors to Line Ends",precondition:void 0,kbOpts:{kbExpr:W.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:R.MenubarSelectionMenu,group:"3_multi",title:v({},"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(e,t,i){if(!e.isEmpty()){for(let s=e.startLineNumber;s1&&i.push(new it(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn))}}run(e,t){if(!t.hasModel())return;const i=t.getModel(),s=t.getSelections(),o=t._getViewModel(),r=o.getCursorStates(),a=[];s.forEach(l=>this.getCursorsForSelection(l,i,a)),a.length>0&&t.setSelections(a),C_(r,o.getCursorStates())}}class hit extends Ke{constructor(){super({id:"editor.action.addCursorsToBottom",label:v("mutlicursor.addCursorsToBottom","Add Cursors To Bottom"),alias:"Add Cursors To Bottom",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getSelections(),s=t.getModel().getLineCount(),o=[];for(let l=i[0].startLineNumber;l<=s;l++)o.push(new it(l,i[0].startColumn,l,i[0].endColumn));const r=t._getViewModel(),a=r.getCursorStates();o.length>0&&t.setSelections(o),C_(a,r.getCursorStates())}}class fit extends Ke{constructor(){super({id:"editor.action.addCursorsToTop",label:v("mutlicursor.addCursorsToTop","Add Cursors To Top"),alias:"Add Cursors To Top",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getSelections(),s=[];for(let a=i[0].startLineNumber;a>=1;a--)s.push(new it(a,i[0].startColumn,a,i[0].endColumn));const o=t._getViewModel(),r=o.getCursorStates();s.length>0&&t.setSelections(s),C_(r,o.getCursorStates())}}class zT{constructor(e,t,i){this.selections=e,this.revealRange=t,this.revealScrollType=i}}class Ek{static create(e,t){if(!e.hasModel())return null;const i=t.getState();if(!e.hasTextFocus()&&i.isRevealed&&i.searchString.length>0)return new Ek(e,t,!1,i.searchString,i.wholeWord,i.matchCase,null);let s=!1,o,r;const a=e.getSelections();a.length===1&&a[0].isEmpty()?(s=!0,o=!0,r=!0):(o=i.wholeWord,r=i.matchCase);const l=e.getSelection();let c,d=null;if(l.isEmpty()){const u=e.getConfiguredWordAtPosition(l.getStartPosition());if(!u)return null;c=u.word,d=new it(l.startLineNumber,u.startColumn,l.startLineNumber,u.endColumn)}else c=e.getModel().getValueInRange(l).replace(/\r\n/g,` `);return new Ek(e,t,s,c,o,r,d)}constructor(e,t,i,s,o,r,a){this._editor=e,this.findController=t,this.isDisconnectedFromFindController=i,this.searchText=s,this.wholeWord=o,this.matchCase=r,this.currentMatch=a}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const e=this._getNextMatch();if(!e)return null;const t=this._editor.getSelections();return new zT(t.concat(e),e,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const e=this._getNextMatch();if(!e)return null;const t=this._editor.getSelections();return new zT(t.slice(0,t.length-1).concat(e),e,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const s=this.currentMatch;return this.currentMatch=null,s}this.findController.highlightFindOptions();const e=this._editor.getSelections(),t=e[e.length-1],i=this._editor.getModel().findNextMatch(this.searchText,t.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(131):null,!1);return i?new it(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const e=this._getPreviousMatch();if(!e)return null;const t=this._editor.getSelections();return new zT(t.concat(e),e,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const e=this._getPreviousMatch();if(!e)return null;const t=this._editor.getSelections();return new zT(t.slice(0,t.length-1).concat(e),e,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const s=this.currentMatch;return this.currentMatch=null,s}this.findController.highlightFindOptions();const e=this._editor.getSelections(),t=e[e.length-1],i=this._editor.getModel().findPreviousMatch(this.searchText,t.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(131):null,!1);return i?new it(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}selectAll(e){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();const t=this._editor.getModel();return e?t.findMatches(this.searchText,e,!1,this.matchCase,this.wholeWord?this._editor.getOption(131):null,!1,1073741824):t.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(131):null,!1,1073741824)}}class O0 extends ne{static get(e){return e.getContribution(O0.ID)}constructor(e){super(),this._sessionDispose=this._register(new be),this._editor=e,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(e){if(!this._session){const t=Ek.create(this._editor,e);if(!t)return;this._session=t;const i={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(i.wholeWordOverride=1,i.matchCaseOverride=1,i.isRegexOverride=2),e.getState().change(i,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection(s=>{this._ignoreSelectionChange||this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(e.getState().onFindReplaceStateChange(s=>{(s.matchCase||s.wholeWord)&&this._endSession()}))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){const e={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(e,!1)}this._session=null}_setSelections(e){this._ignoreSelectionChange=!0,this._editor.setSelections(e),this._ignoreSelectionChange=!1}_expandEmptyToWord(e,t){if(!t.isEmpty())return t;const i=this._editor.getConfiguredWordAtPosition(t.getStartPosition());return i?new it(t.startLineNumber,i.startColumn,t.startLineNumber,i.endColumn):t}_applySessionResult(e){e&&(this._setSelections(e.selections),e.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(e.revealRange,e.revealScrollType))}getSession(e){return this._session}addSelectionToNextFindMatch(e){if(this._editor.hasModel()){if(!this._session){const t=this._editor.getSelections();if(t.length>1){const s=e.getState().matchCase;if(!Wge(this._editor.getModel(),t,s)){const r=this._editor.getModel(),a=[];for(let l=0,c=t.length;l0&&i.isRegex){const s=this._editor.getModel();i.searchScope?t=s.findMatches(i.searchString,i.searchScope,i.isRegex,i.matchCase,i.wholeWord?this._editor.getOption(131):null,!1,1073741824):t=s.findMatches(i.searchString,!0,i.isRegex,i.matchCase,i.wholeWord?this._editor.getOption(131):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(e),!this._session)return;t=this._session.selectAll(i.searchScope)}if(t.length>0){const s=this._editor.getSelection();for(let o=0,r=t.length;onew it(o.range.startLineNumber,o.range.startColumn,o.range.endLineNumber,o.range.endColumn)))}}}O0.ID="editor.contrib.multiCursorController";class Xw extends Ke{run(e,t){const i=O0.get(t);if(!i)return;const s=t._getViewModel();if(s){const o=s.getCursorStates(),r=Vr.get(t);if(r)this._run(i,r);else{const a=e.get(ht).createInstance(Vr,t);this._run(i,a),a.dispose()}C_(o,s.getCursorStates())}}}class git extends Xw{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:v("addSelectionToNextFindMatch","Add Selection To Next Find Match"),alias:"Add Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:2082,weight:100},menuOpts:{menuId:R.MenubarSelectionMenu,group:"3_multi",title:v({},"Add &&Next Occurrence"),order:5}})}_run(e,t){e.addSelectionToNextFindMatch(t)}}class pit extends Xw{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:v("addSelectionToPreviousFindMatch","Add Selection To Previous Find Match"),alias:"Add Selection To Previous Find Match",precondition:void 0,menuOpts:{menuId:R.MenubarSelectionMenu,group:"3_multi",title:v({},"Add P&&revious Occurrence"),order:6}})}_run(e,t){e.addSelectionToPreviousFindMatch(t)}}class mit extends Xw{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:v("moveSelectionToNextFindMatch","Move Last Selection To Next Find Match"),alias:"Move Last Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:Os(2089,2082),weight:100}})}_run(e,t){e.moveSelectionToNextFindMatch(t)}}class _it extends Xw{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:v("moveSelectionToPreviousFindMatch","Move Last Selection To Previous Find Match"),alias:"Move Last Selection To Previous Find Match",precondition:void 0})}_run(e,t){e.moveSelectionToPreviousFindMatch(t)}}class vit extends Xw{constructor(){super({id:"editor.action.selectHighlights",label:v("selectAllOccurrencesOfFindMatch","Select All Occurrences of Find Match"),alias:"Select All Occurrences of Find Match",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:3114,weight:100},menuOpts:{menuId:R.MenubarSelectionMenu,group:"3_multi",title:v({},"Select All &&Occurrences"),order:7}})}_run(e,t){e.selectAll(t)}}class bit extends Xw{constructor(){super({id:"editor.action.changeAll",label:v("changeAll.label","Change All Occurrences"),alias:"Change All Occurrences",precondition:pe.and(W.writable,W.editorTextFocus),kbOpts:{kbExpr:W.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(e,t){e.selectAll(t)}}class Cit{constructor(e,t,i,s,o){this._model=e,this._searchText=t,this._matchCase=i,this._wordSeparators=s,this._modelVersionId=this._model.getVersionId(),this._cachedFindMatches=null,o&&this._model===o._model&&this._searchText===o._searchText&&this._matchCase===o._matchCase&&this._wordSeparators===o._wordSeparators&&this._modelVersionId===o._modelVersionId&&(this._cachedFindMatches=o._cachedFindMatches)}findMatches(){return this._cachedFindMatches===null&&(this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map(e=>e.range),this._cachedFindMatches.sort(A.compareRangesUsingStarts)),this._cachedFindMatches}}let Tk=$W=class extends ne{constructor(e,t){super(),this._languageFeaturesService=t,this.editor=e,this._isEnabled=e.getOption(108),this._decorations=e.createDecorationsCollection(),this.updateSoon=this._register(new Xi(()=>this._update(),300)),this.state=null,this._register(e.onDidChangeConfiguration(s=>{this._isEnabled=e.getOption(108)})),this._register(e.onDidChangeCursorSelection(s=>{this._isEnabled&&(s.selection.isEmpty()?s.reason===3?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())})),this._register(e.onDidChangeModel(s=>{this._setState(null)})),this._register(e.onDidChangeModelContent(s=>{this._isEnabled&&this.updateSoon.schedule()}));const i=Vr.get(e);i&&this._register(i.getState().onFindReplaceStateChange(s=>{this._update()})),this.updateSoon.schedule()}_update(){this._setState($W._createState(this.state,this._isEnabled,this.editor))}static _createState(e,t,i){if(!t||!i.hasModel())return null;const s=i.getSelection();if(s.startLineNumber!==s.endLineNumber)return null;const o=O0.get(i);if(!o)return null;const r=Vr.get(i);if(!r)return null;let a=o.getSession(r);if(!a){const d=i.getSelections();if(d.length>1){const h=r.getState().matchCase;if(!Wge(i.getModel(),d,h))return null}a=Ek.create(i,r)}if(!a||a.currentMatch||/^[ \t]+$/.test(a.searchText)||a.searchText.length>200)return null;const l=r.getState(),c=l.matchCase;if(l.isRevealed){let d=l.searchString;c||(d=d.toLowerCase());let u=a.searchText;if(c||(u=u.toLowerCase()),d===u&&a.matchCase===l.matchCase&&a.wholeWord===l.wholeWord&&!l.isRegex)return null}return new Cit(i.getModel(),a.searchText,a.matchCase,a.wholeWord?i.getOption(131):null,e)}_setState(e){if(this.state=e,!this.state){this._decorations.clear();return}if(!this.editor.hasModel())return;const t=this.editor.getModel();if(t.isTooLargeForTokenization())return;const i=this.state.findMatches(),s=this.editor.getSelections();s.sort(A.compareRangesUsingStarts);const o=[];for(let c=0,d=0,u=i.length,h=s.length;c=h)o.push(f),c++;else{const g=A.compareRangesUsingStarts(f,s[d]);g<0?((s[d].isEmpty()||!A.areIntersecting(f,s[d]))&&o.push(f),c++):(g>0||c++,d++)}}const r=this.editor.getOption(81)!=="off",a=this._languageFeaturesService.documentHighlightProvider.has(t)&&r,l=o.map(c=>({range:c,options:rit(a)}));this._decorations.set(l)}dispose(){this._setState(null),super.dispose()}};Tk.ID="editor.contrib.selectionHighlighter";Tk=$W=ait([lit(1,Xe)],Tk);function Wge(n,e,t){const i=jte(n,e[0],!t);for(let s=1,o=e.length;s=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Iit=function(n,e){return function(t,i){e(t,i,n)}};const b3="inline-edit";let UW=class extends ne{constructor(e,t,i){super(),this.editor=e,this.model=t,this.languageService=i,this.isDisposed=li(this,!1),this.currentTextModel=qi(this.editor.onDidChangeModel,()=>this.editor.getModel()),this.uiState=Rt(this,s=>{var o;if(this.isDisposed.read(s))return;const r=this.currentTextModel.read(s);if(r!==this.model.targetTextModel.read(s))return;const a=this.model.ghostText.read(s);if(!a)return;let l=(o=this.model.range)===null||o===void 0?void 0:o.read(s);l&&l.startLineNumber===l.endLineNumber&&l.startColumn===l.endColumn&&(l=void 0);const c=(l?l.startLineNumber===l.endLineNumber:!0)&&a.parts.length===1&&a.parts[0].lines.length===1,d=a.parts.length===1&&a.parts[0].lines.every(y=>y.length===0),u=[],h=[];function f(y,S){if(h.length>0){const x=h[h.length-1];S&&x.decorations.push(new Rr(x.content.length+1,x.content.length+1+y[0].length,S,0)),x.content+=y[0],y=y.slice(1)}for(const x of y)h.push({content:x,decorations:S?[new Rr(1,x.length+1,S,0)]:[]})}const g=r.getLineContent(a.lineNumber);let p,_=0;if(!d){for(const y of a.parts){let S=y.lines;l&&!c&&(f(S,b3),S=[]),p===void 0?(u.push({column:y.column,text:S[0],preview:y.preview}),S=S.slice(1)):f([g.substring(_,y.column-1)],void 0),S.length>0&&(f(S,b3),p===void 0&&y.column<=g.length&&(p=y.column)),_=y.column-1}p!==void 0&&f([g.substring(_)],void 0)}const b=p!==void 0?new vge(p,g.length+1):void 0,w=c||!l?a.lineNumber:l.endLineNumber-1;return{inlineTexts:u,additionalLines:h,hiddenRange:b,lineNumber:w,additionalReservedLineCount:this.model.minReservedLineCount.read(s),targetTextModel:r,range:l,isSingleLine:c,isPureRemove:d,backgroundColoring:this.model.backgroundColoring.read(s)}}),this.decorations=Rt(this,s=>{const o=this.uiState.read(s);if(!o)return[];const r=[];if(o.hiddenRange&&r.push({range:o.hiddenRange.toRange(o.lineNumber),options:{inlineClassName:"inline-edit-hidden",description:"inline-edit-hidden"}}),o.range){const a=[];if(o.isSingleLine)a.push(o.range);else if(o.isPureRemove){const c=o.range.endLineNumber-o.range.startLineNumber;for(let d=0;d{const o=this.uiState.read(s);return o&&!o.isPureRemove?{lineNumber:o.lineNumber,additionalLines:o.additionalLines,minReservedLineCount:o.additionalReservedLineCount,targetTextModel:o.targetTextModel}:void 0}))),this._register(dt(()=>{this.isDisposed.set(!0,void 0)})),this._register(bge(this.editor,this.decorations))}ownsViewZone(e){return this.additionalLinesWidget.viewZoneId===e}};UW=Dit([Iit(2,An)],UW);var VU=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Zu=function(n,e){return function(t,i){e(t,i,n)}},$N;let jW=class extends ne{constructor(e,t,i){super(),this.editor=e,this.model=t,this.instantiationService=i,this.alwaysShowToolbar=qi(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).showToolbar==="always"),this.sessionPosition=void 0,this.position=Rt(this,s=>{var o,r,a;const l=(o=this.model.read(s))===null||o===void 0?void 0:o.widget.model.ghostText.read(s);if(!this.alwaysShowToolbar.read(s)||!l||l.parts.length===0)return this.sessionPosition=void 0,null;const c=l.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==l.lineNumber&&(this.sessionPosition=void 0);const d=new ee(l.lineNumber,Math.min(c,(a=(r=this.sessionPosition)===null||r===void 0?void 0:r.column)!==null&&a!==void 0?a:Number.MAX_SAFE_INTEGER));return this.sessionPosition=d,d}),this._register(uc((s,o)=>{if(!this.model.read(s)||!this.alwaysShowToolbar.read(s))return;const a=o.add(this.instantiationService.createInstance(gw,this.editor,!0,this.position));e.addContentWidget(a),o.add(dt(()=>e.removeContentWidget(a)))}))}};jW=VU([Zu(2,ht)],jW);let gw=$N=class extends ne{constructor(e,t,i,s,o,r){super(),this.editor=e,this.withBorder=t,this._position=i,this._contextKeyService=o,this._menuService=r,this.id=`InlineEditHintsContentWidget${$N.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=wi("div.inlineEditHints",{className:this.withBorder?".withBorder":""},[wi("div@toolBar")]),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(R.InlineEditActions,this._contextKeyService)),this.toolBar=this._register(s.createInstance(KW,this.nodes.toolBar,this.editor,R.InlineEditToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:a=>a.startsWith("primary")},actionViewItemProvider:(a,l)=>{if(a instanceof Na)return s.createInstance(Eit,a,void 0)},telemetrySource:"InlineEditToolbar"})),this._register(this.toolBar.onDidChangeDropdownVisibility(a=>{$N._dropDownVisible=a})),this._register(Ut(a=>{this._position.read(a),this.editor.layoutContentWidget(this)})),this._register(Ut(a=>{const l=[];for(const[c,d]of this.inlineCompletionsActionsMenus.getActions())for(const u of d)u instanceof Na&&l.push(u);l.length>0&&l.unshift(new Ms),this.toolBar.setAdditionalSecondaryActions(l)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};gw._dropDownVisible=!1;gw.id=0;gw=$N=VU([Zu(3,ht),Zu(4,Ct),Zu(5,Dl)],gw);class Eit extends Um{updateLabel(){const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!e)return super.updateLabel();if(this.label){const t=wi("div.keybinding").root;this._register(new $w(t,Da,{disableTitle:!0,...Sue})).set(e),this.label.textContent=this._action.label,this.label.appendChild(t),this.label.classList.add("inlineEditStatusBarItemLabel")}}updateTooltip(){}}let KW=class extends ok{constructor(e,t,i,s,o,r,a,l,c,d){super(e,{resetMenu:i,...s},o,r,a,l,c,d),this.editor=t,this.menuId=i,this.options2=s,this.menuService=o,this.contextKeyService=r,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this._store.add(this.editor.onDidChangeCursorPosition(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){var e,t,i,s,o,r,a;const l=[],c=[];rP(this.menu,(e=this.options2)===null||e===void 0?void 0:e.menuOptions,{primary:l,secondary:c},(i=(t=this.options2)===null||t===void 0?void 0:t.toolbarOptions)===null||i===void 0?void 0:i.primaryGroup,(o=(s=this.options2)===null||s===void 0?void 0:s.toolbarOptions)===null||o===void 0?void 0:o.shouldInlineSubmenu,(a=(r=this.options2)===null||r===void 0?void 0:r.toolbarOptions)===null||a===void 0?void 0:a.useSeparatorsInPrimaryActions),c.push(...this.additionalActions),l.unshift(...this.prependedPrimaryActions),this.setActions(l,c)}setAdditionalSecondaryActions(e){zn(this.additionalActions,e,(t,i)=>t===i)||(this.additionalActions=e,this.updateToolbar())}};KW=VU([Zu(4,Dl),Zu(5,Ct),Zu(6,za),Zu(7,Li),Zu(8,Sn),Zu(9,Po)],KW);var Tit=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},nS=function(n,e){return function(t,i){e(t,i,n)}},Rv;class Nit{constructor(e,t){this.widget=e,this.edit=t}dispose(){this.widget.dispose()}}let $s=Rv=class extends ne{static get(e){return e.getContribution(Rv.ID)}constructor(e,t,i,s,o,r){super(),this.editor=e,this.instantiationService=t,this.contextKeyService=i,this.languageFeaturesService=s,this._commandService=o,this._configurationService=r,this._isVisibleContext=Rv.inlineEditVisibleContext.bindTo(this.contextKeyService),this._isCursorAtInlineEditContext=Rv.cursorAtInlineEditContext.bindTo(this.contextKeyService),this._currentEdit=this._register(KL(this,void 0)),this._isAccepting=li(this,!1),this._enabled=qi(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).enabled),this._fontFamily=qi(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).fontFamily),this._backgroundColoring=qi(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).backgroundColoring);const a=Ko("InlineEditController.modelContentChangedSignal",e.onDidChangeModelContent);this._register(Ut(h=>{this._enabled.read(h)&&(a.read(h),!this._isAccepting.read(h)&&this.getInlineEdit(e,!0))}));const l=qi(e.onDidChangeCursorPosition,()=>e.getPosition());this._register(Ut(h=>{if(!this._enabled.read(h))return;const f=l.read(h);f&&this.checkCursorPosition(f)})),this._register(Ut(h=>{const f=this._currentEdit.read(h);if(this._isCursorAtInlineEditContext.set(!1),!f){this._isVisibleContext.set(!1);return}this._isVisibleContext.set(!0);const g=e.getPosition();g&&this.checkCursorPosition(g)}));const c=Ko("InlineEditController.editorBlurSignal",e.onDidBlurEditorWidget);this._register(Ut(async h=>{var f;this._enabled.read(h)&&(c.read(h),!(this._configurationService.getValue("editor.experimentalInlineEdit.keepOnBlur")||e.getOption(63).keepOnBlur)&&((f=this._currentRequestCts)===null||f===void 0||f.dispose(!0),this._currentRequestCts=void 0,await this.clear(!1)))}));const d=Ko("InlineEditController.editorFocusSignal",e.onDidFocusEditorText);this._register(Ut(h=>{this._enabled.read(h)&&(d.read(h),this.getInlineEdit(e,!0))}));const u=this._register(Kae());this._register(Ut(h=>{const f=this._fontFamily.read(h);u.setStyle(f===""||f==="default"?"":` .monaco-editor .inline-edit-decoration, .monaco-editor .inline-edit-decoration-preview, .monaco-editor .inline-edit { font-family: ${f}; }`)})),this._register(new jW(this.editor,this._currentEdit,this.instantiationService))}checkCursorPosition(e){var t;if(!this._currentEdit){this._isCursorAtInlineEditContext.set(!1);return}const i=(t=this._currentEdit.get())===null||t===void 0?void 0:t.edit;if(!i){this._isCursorAtInlineEditContext.set(!1);return}this._isCursorAtInlineEditContext.set(A.containsPosition(i.range,e))}validateInlineEdit(e,t){var i,s;if(t.text.includes(` `)&&t.range.startLineNumber!==t.range.endLineNumber&&t.range.startColumn!==t.range.endColumn){if(t.range.startColumn!==1)return!1;const r=t.range.endLineNumber,a=t.range.endColumn,l=(s=(i=e.getModel())===null||i===void 0?void 0:i.getLineLength(r))!==null&&s!==void 0?s:0;if(a!==l+1)return!1}return!0}async fetchInlineEdit(e,t){this._currentRequestCts&&this._currentRequestCts.dispose(!0);const i=e.getModel();if(!i)return;const s=i.getVersionId(),o=this.languageFeaturesService.inlineEditProvider.all(i);if(o.length===0)return;const r=o[0];this._currentRequestCts=new $n;const a=this._currentRequestCts.token,l=t?R2.Automatic:R2.Invoke;if(t&&await Ait(50,a),a.isCancellationRequested||i.isDisposed()||i.getVersionId()!==s)return;const d=await r.provideInlineEdit(i,{triggerKind:l},a);if(d&&!(a.isCancellationRequested||i.isDisposed()||i.getVersionId()!==s)&&this.validateInlineEdit(e,d))return d}async getInlineEdit(e,t){var i;this._isCursorAtInlineEditContext.set(!1),await this.clear();const s=await this.fetchInlineEdit(e,t);if(!s)return;const o=s.range.endLineNumber,r=s.range.endColumn,a=s.text.endsWith(` `)&&!(s.range.startLineNumber===s.range.endLineNumber&&s.range.startColumn===s.range.endColumn)?s.text.slice(0,-1):s.text,l=new wk(o,[new bR(r,a,!1)]),c=this.instantiationService.createInstance(UW,this.editor,{ghostText:Vd(l),minReservedLineCount:Vd(0),targetTextModel:Vd((i=this.editor.getModel())!==null&&i!==void 0?i:void 0),range:Vd(s.range),backgroundColoring:this._backgroundColoring});this._currentEdit.set(new Nit(c,s),void 0)}async trigger(){await this.getInlineEdit(this.editor,!1)}async jumpBack(){this._jumpBackPosition&&(this.editor.setPosition(this._jumpBackPosition),this.editor.revealPositionInCenterIfOutsideViewport(this._jumpBackPosition))}async accept(){var e;this._isAccepting.set(!0,void 0);const t=(e=this._currentEdit.get())===null||e===void 0?void 0:e.edit;if(!t)return;let i=t.text;t.text.startsWith(` `)&&(i=t.text.substring(1)),this.editor.pushUndoStop(),this.editor.executeEdits("acceptCurrent",[Mn.replace(A.lift(t.range),i)]),t.accepted&&await this._commandService.executeCommand(t.accepted.id,...t.accepted.arguments||[]).then(void 0,as),this.freeEdit(t),rn(s=>{this._currentEdit.set(void 0,s),this._isAccepting.set(!1,s)})}jumpToCurrent(){var e,t;this._jumpBackPosition=(e=this.editor.getSelection())===null||e===void 0?void 0:e.getStartPosition();const i=(t=this._currentEdit.get())===null||t===void 0?void 0:t.edit;if(!i)return;const s=ee.lift({lineNumber:i.range.startLineNumber,column:i.range.startColumn});this.editor.setPosition(s),this.editor.revealPositionInCenterIfOutsideViewport(s)}async clear(e=!0){var t;const i=(t=this._currentEdit.get())===null||t===void 0?void 0:t.edit;i&&(i!=null&&i.rejected)&&e&&await this._commandService.executeCommand(i.rejected.id,...i.rejected.arguments||[]).then(void 0,as),i&&this.freeEdit(i),this._currentEdit.set(void 0,void 0)}freeEdit(e){const t=this.editor.getModel();if(!t)return;const i=this.languageFeaturesService.inlineEditProvider.all(t);i.length!==0&&i[0].freeInlineEdit(e)}shouldShowHoverAt(e){const t=this._currentEdit.get();if(!t)return!1;const i=t.edit,s=t.widget.model;if(A.containsPosition(i.range,e.getStartPosition())||A.containsPosition(i.range,e.getEndPosition()))return!0;const r=s.ghostText.get();return r?r.parts.some(a=>e.containsPosition(new ee(r.lineNumber,a.column))):!1}shouldShowHoverAtViewZone(e){var t,i;return(i=(t=this._currentEdit.get())===null||t===void 0?void 0:t.widget.ownsViewZone(e))!==null&&i!==void 0?i:!1}};$s.ID="editor.contrib.inlineEditController";$s.inlineEditVisibleKey="inlineEditVisible";$s.inlineEditVisibleContext=new He(Rv.inlineEditVisibleKey,!1);$s.cursorAtInlineEditKey="cursorAtInlineEdit";$s.cursorAtInlineEditContext=new He(Rv.cursorAtInlineEditKey,!1);$s=Rv=Tit([nS(1,ht),nS(2,Ct),nS(3,Xe),nS(4,Sn),nS(5,qt)],$s);function Ait(n,e){return new Promise(t=>{let i;const s=setTimeout(()=>{i&&i.dispose(),t()},n);e&&(i=e.onCancellationRequested(()=>{clearTimeout(s),i&&i.dispose(),t()}))})}class Rit extends Ke{constructor(){super({id:Sit,label:"Accept Inline Edit",alias:"Accept Inline Edit",precondition:pe.and(W.writable,$s.inlineEditVisibleContext),kbOpts:[{weight:101,primary:2,kbExpr:pe.and(W.writable,$s.inlineEditVisibleContext,$s.cursorAtInlineEditContext)}],menuOpts:[{menuId:R.InlineEditToolbar,title:"Accept",group:"primary",order:1}]})}async run(e,t){const i=$s.get(t);await(i==null?void 0:i.accept())}}class Mit extends Ke{constructor(){const e=pe.and(W.writable,pe.not($s.inlineEditVisibleKey));super({id:"editor.action.inlineEdit.trigger",label:"Trigger Inline Edit",alias:"Trigger Inline Edit",precondition:e,kbOpts:{weight:101,primary:2646,kbExpr:e}})}async run(e,t){const i=$s.get(t);i==null||i.trigger()}}class Pit extends Ke{constructor(){const e=pe.and(W.writable,$s.inlineEditVisibleContext,pe.not($s.cursorAtInlineEditKey));super({id:Lit,label:"Jump to Inline Edit",alias:"Jump to Inline Edit",precondition:e,kbOpts:{weight:101,primary:2646,kbExpr:e},menuOpts:[{menuId:R.InlineEditToolbar,title:"Jump To Edit",group:"primary",order:3,when:e}]})}async run(e,t){const i=$s.get(t);i==null||i.jumpToCurrent()}}class Oit extends Ke{constructor(){const e=pe.and(W.writable,$s.cursorAtInlineEditContext);super({id:kit,label:"Jump Back from Inline Edit",alias:"Jump Back from Inline Edit",precondition:e,kbOpts:{weight:110,primary:2646,kbExpr:e},menuOpts:[{menuId:R.InlineEditToolbar,title:"Jump Back",group:"primary",order:3,when:e}]})}async run(e,t){const i=$s.get(t);i==null||i.jumpBack()}}class Fit extends Ke{constructor(){const e=pe.and(W.writable,$s.inlineEditVisibleContext);super({id:xit,label:"Reject Inline Edit",alias:"Reject Inline Edit",precondition:e,kbOpts:{weight:100,primary:9,kbExpr:e},menuOpts:[{menuId:R.InlineEditToolbar,title:"Reject",group:"secondary",order:2}]})}async run(e,t){const i=$s.get(t);await(i==null?void 0:i.clear())}}var Bit=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Kte=function(n,e){return function(t,i){e(t,i,n)}};class Wit{constructor(e,t,i){this.owner=e,this.range=t,this.controller=i}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let qW=class{constructor(e,t,i){this._editor=e,this._instantiationService=t,this._telemetryService=i,this.hoverOrdinal=5}suggestHoverAnchor(e){const t=$s.get(this._editor);if(!t)return null;const i=e.target;if(i.type===8){const s=i.detail;if(t.shouldShowHoverAtViewZone(s.viewZoneId)){const o=i.range;return new Yv(1e3,this,o,e.event.posx,e.event.posy,!1)}}return i.type===7&&t.shouldShowHoverAt(i.range)?new Yv(1e3,this,i.range,e.event.posx,e.event.posy,!1):i.type===6&&i.detail.mightBeForeignElement&&t.shouldShowHoverAt(i.range)?new Yv(1e3,this,i.range,e.event.posx,e.event.posy,!1):null}computeSync(e,t){if(this._editor.getOption(63).showToolbar!=="onHover")return[];const i=$s.get(this._editor);return i&&i.shouldShowHoverAt(e.range)?[new Wit(this,e.range,i)]:[]}renderHoverParts(e,t){const i=new be;this._telemetryService.publicLog2("inlineEditHover.shown");const s=this._instantiationService.createInstance(gw,this._editor,!1,Vd(null));return e.fragment.appendChild(s.getDomNode()),i.add(s),i}};qW=Bit([Kte(1,ht),Kte(2,Po)],qW);xe(Rit);xe(Fit);xe(Pit);xe(Oit);xe(Mit);bi($s.ID,$s,3);b_.register(qW);const F0={Visible:new He("parameterHintsVisible",!1),MultipleSignatures:new He("parameterHintsMultipleSignatures",!1)};async function Hge(n,e,t,i,s){const o=n.ordered(e);for(const r of o)try{const a=await r.provideSignatureHelp(e,t,s,i);if(a)return a}catch(a){as(a)}}ri.registerCommand("_executeSignatureHelpProvider",async(n,...e)=>{const[t,i,s]=e;mi(pt.isUri(t)),mi(ee.isIPosition(i)),mi(typeof s=="string"||!s);const o=n.get(Xe),r=await n.get(fa).createModelReference(t);try{const a=await Hge(o.signatureHelpProvider,r.object.textEditorModel,ee.lift(i),{triggerKind:ph.Invoke,isRetrigger:!1,triggerCharacter:s},Qt.None);return a?(setTimeout(()=>a.dispose(),0),a.value):void 0}finally{r.dispose()}});var Ep;(function(n){n.Default={type:0};class e{constructor(s,o){this.request=s,this.previouslyActiveHints=o,this.type=2}}n.Pending=e;class t{constructor(s){this.hints=s,this.type=1}}n.Active=t})(Ep||(Ep={}));class dO extends ne{constructor(e,t,i=dO.DEFAULT_DELAY){super(),this._onChangedHints=this._register(new X),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=Ep.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new Qs),this.triggerChars=new j2,this.retriggerChars=new j2,this.triggerId=0,this.editor=e,this.providers=t,this.throttledDelayer=new sd(i),this._register(this.editor.onDidBlurEditorWidget(()=>this.cancel())),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel(s=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage(s=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection(s=>this.onCursorChange(s))),this._register(this.editor.onDidChangeModelContent(s=>this.onModelContentChange())),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType(s=>this.onDidType(s))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(e){this._state.type===2&&this._state.request.cancel(),this._state=e}cancel(e=!1){this.state=Ep.Default,this.throttledDelayer.cancel(),e||this._onChangedHints.fire(void 0)}trigger(e,t){const i=this.editor.getModel();if(!i||!this.providers.has(i))return;const s=++this.triggerId;this._pendingTriggers.push(e),this.throttledDelayer.trigger(()=>this.doTrigger(s),t).catch(Mt)}next(){if(this.state.type!==1)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,i=t%e===e-1,s=this.editor.getOption(86).cycle;if((e<2||i)&&!s){this.cancel();return}this.updateActiveSignature(i&&s?0:t+1)}previous(){if(this.state.type!==1)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,i=t===0,s=this.editor.getOption(86).cycle;if((e<2||i)&&!s){this.cancel();return}this.updateActiveSignature(i&&s?e-1:t-1)}updateActiveSignature(e){this.state.type===1&&(this.state=new Ep.Active({...this.state.hints,activeSignature:e}),this._onChangedHints.fire(this.state.hints))}async doTrigger(e){const t=this.state.type===1||this.state.type===2,i=this.getLastActiveHints();if(this.cancel(!0),this._pendingTriggers.length===0)return!1;const s=this._pendingTriggers.reduce(Hit);this._pendingTriggers=[];const o={triggerKind:s.triggerKind,triggerCharacter:s.triggerCharacter,isRetrigger:t,activeSignatureHelp:i};if(!this.editor.hasModel())return!1;const r=this.editor.getModel(),a=this.editor.getPosition();this.state=new Ep.Pending(Xs(l=>Hge(this.providers,r,a,o,l)),i);try{const l=await this.state.request;return e!==this.triggerId?(l==null||l.dispose(),!1):!l||!l.value.signatures||l.value.signatures.length===0?(l==null||l.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1):(this.state=new Ep.Active(l.value),this._lastSignatureHelpResult.value=l,this._onChangedHints.fire(this.state.hints),!0)}catch(l){return e===this.triggerId&&(this.state=Ep.Default),Mt(l),!1}}getLastActiveHints(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}get isTriggered(){return this.state.type===1||this.state.type===2||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars.clear(),this.retriggerChars.clear();const e=this.editor.getModel();if(e)for(const t of this.providers.ordered(e)){for(const i of t.signatureHelpTriggerCharacters||[])if(i.length){const s=i.charCodeAt(0);this.triggerChars.add(s),this.retriggerChars.add(s)}for(const i of t.signatureHelpRetriggerCharacters||[])i.length&&this.retriggerChars.add(i.charCodeAt(0))}}onDidType(e){if(!this.triggerOnType)return;const t=e.length-1,i=e.charCodeAt(t);(this.triggerChars.has(i)||this.isTriggered&&this.retriggerChars.has(i))&&this.trigger({triggerKind:ph.TriggerCharacter,triggerCharacter:e.charAt(t)})}onCursorChange(e){e.source==="mouse"?this.cancel():this.isTriggered&&this.trigger({triggerKind:ph.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:ph.ContentChange})}onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(86).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}}dO.DEFAULT_DELAY=120;function Hit(n,e){switch(e.triggerKind){case ph.Invoke:return e;case ph.ContentChange:return n;case ph.TriggerCharacter:default:return e}}var Vit=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},$T=function(n,e){return function(t,i){e(t,i,n)}},GW;const Ya=ke,zit=Jn("parameter-hints-next",Te.chevronDown,v("parameterHintsNextIcon","Icon for show next parameter hint.")),$it=Jn("parameter-hints-previous",Te.chevronUp,v("parameterHintsPreviousIcon","Icon for show previous parameter hint."));let kR=GW=class extends ne{constructor(e,t,i,s,o,r){super(),this.editor=e,this.model=t,this.telemetryService=r,this.renderDisposeables=this._register(new be),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.markdownRenderer=this._register(new Nh({editor:e},o,s)),this.keyVisible=F0.Visible.bindTo(i),this.keyMultipleSignatures=F0.MultipleSignatures.bindTo(i)}createParameterHintDOMNodes(){const e=Ya(".editor-widget.parameter-hints-widget"),t=we(e,Ya(".phwrapper"));t.tabIndex=-1;const i=we(t,Ya(".controls")),s=we(i,Ya(".button"+_t.asCSSSelector($it))),o=we(i,Ya(".overloads")),r=we(i,Ya(".button"+_t.asCSSSelector(zit)));this._register(ce(s,"click",h=>{ii.stop(h),this.previous()})),this._register(ce(r,"click",h=>{ii.stop(h),this.next()}));const a=Ya(".body"),l=new wD(a,{alwaysConsumeMouseWheel:!0});this._register(l),t.appendChild(l.getDomNode());const c=we(a,Ya(".signature")),d=we(a,Ya(".docs"));e.style.userSelect="text",this.domNodes={element:e,signature:c,overloads:o,docs:d,scrollbar:l},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection(h=>{this.visible&&this.editor.layoutContentWidget(this)}));const u=()=>{if(!this.domNodes)return;const h=this.editor.getOption(50);this.domNodes.element.style.fontSize=`${h.fontSize}px`,this.domNodes.element.style.lineHeight=`${h.lineHeight/h.fontSize}`};u(),this._register(Ae.chain(this.editor.onDidChangeConfiguration.bind(this.editor),h=>h.filter(f=>f.hasChanged(50)))(u)),this._register(this.editor.onDidLayoutChange(h=>this.updateMaxHeight())),this.updateMaxHeight()}show(){this.visible||(this.domNodes||this.createParameterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout(()=>{var e;(e=this.domNodes)===null||e===void 0||e.element.classList.add("visible")},100),this.editor.layoutContentWidget(this))}hide(){var e;this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,(e=this.domNodes)===null||e===void 0||e.element.classList.remove("visible"),this.editor.layoutContentWidget(this))}getPosition(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}render(e){var t;if(this.renderDisposeables.clear(),!this.domNodes)return;const i=e.signatures.length>1;this.domNodes.element.classList.toggle("multiple",i),this.keyMultipleSignatures.set(i),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";const s=e.signatures[e.activeSignature];if(!s)return;const o=we(this.domNodes.signature,Ya(".code")),r=this.editor.getOption(50);o.style.fontSize=`${r.fontSize}px`,o.style.fontFamily=r.fontFamily;const a=s.parameters.length>0,l=(t=s.activeParameter)!==null&&t!==void 0?t:e.activeParameter;if(a)this.renderParameters(o,s,l);else{const u=we(o,Ya("span"));u.textContent=s.label}const c=s.parameters[l];if(c!=null&&c.documentation){const u=Ya("span.documentation");if(typeof c.documentation=="string")u.textContent=c.documentation;else{const h=this.renderMarkdownDocs(c.documentation);u.appendChild(h.element)}we(this.domNodes.docs,Ya("p",{},u))}if(s.documentation!==void 0)if(typeof s.documentation=="string")we(this.domNodes.docs,Ya("p",{},s.documentation));else{const u=this.renderMarkdownDocs(s.documentation);we(this.domNodes.docs,u.element)}const d=this.hasDocs(s,c);if(this.domNodes.signature.classList.toggle("has-docs",d),this.domNodes.docs.classList.toggle("empty",!d),this.domNodes.overloads.textContent=String(e.activeSignature+1).padStart(e.signatures.length.toString().length,"0")+"/"+e.signatures.length,c){let u="";const h=s.parameters[l];Array.isArray(h.label)?u=s.label.substring(h.label[0],h.label[1]):u=h.label,h.documentation&&(u+=typeof h.documentation=="string"?`, ${h.documentation}`:`, ${h.documentation.value}`),s.documentation&&(u+=typeof s.documentation=="string"?`, ${s.documentation}`:`, ${s.documentation.value}`),this.announcedLabel!==u&&(la(v("hint","{0}, hint",u)),this.announcedLabel=u)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(e){const t=new xo,i=this.renderDisposeables.add(this.markdownRenderer.render(e,{asyncRenderCallback:()=>{var o;(o=this.domNodes)===null||o===void 0||o.scrollbar.scanDomNode()}}));i.element.classList.add("markdown-docs");const s=t.elapsed();return s>300&&this.telemetryService.publicLog2("parameterHints.parseMarkdown",{renderDuration:s}),i}hasDocs(e,t){return!!(t&&typeof t.documentation=="string"&&Vp(t.documentation).length>0||t&&typeof t.documentation=="object"&&Vp(t.documentation).value.length>0||e.documentation&&typeof e.documentation=="string"&&Vp(e.documentation).length>0||e.documentation&&typeof e.documentation=="object"&&Vp(e.documentation.value).length>0)}renderParameters(e,t,i){const[s,o]=this.getParameterLabelOffsets(t,i),r=document.createElement("span");r.textContent=t.label.substring(0,s);const a=document.createElement("span");a.textContent=t.label.substring(s,o),a.className="parameter active";const l=document.createElement("span");l.textContent=t.label.substring(o),we(e,r,a,l)}getParameterLabelOffsets(e,t){const i=e.parameters[t];if(i){if(Array.isArray(i.label))return i.label;if(i.label.length){const s=new RegExp(`(\\W|^)${wl(i.label)}(?=\\W|$)`,"g");s.test(e.label);const o=s.lastIndex-i.label.length;return o>=0?[o,s.lastIndex]:[0,0]}else return[0,0]}else return[0,0]}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}getDomNode(){return this.domNodes||this.createParameterHintDOMNodes(),this.domNodes.element}getId(){return GW.ID}updateMaxHeight(){if(!this.domNodes)return;const t=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=t;const i=this.domNodes.element.getElementsByClassName("phwrapper");i.length&&(i[0].style.maxHeight=t)}};kR.ID="editor.widget.parameterHintsWidget";kR=GW=Vit([$T(2,Ct),$T(3,$a),$T(4,An),$T(5,Po)],kR);V("editorHoverWidget.highlightForeground",{dark:Zc,light:Zc,hcDark:Zc,hcLight:Zc},v("editorHoverWidgetHighlightForeground","Foreground color of the active item in the parameter hint."));var Uit=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},qte=function(n,e){return function(t,i){e(t,i,n)}},ZW;let B0=ZW=class extends ne{static get(e){return e.getContribution(ZW.ID)}constructor(e,t,i){super(),this.editor=e,this.model=this._register(new dO(e,i.signatureHelpProvider)),this._register(this.model.onChangedHints(s=>{var o;s?(this.widget.value.show(),this.widget.value.render(s)):(o=this.widget.rawValue)===null||o===void 0||o.hide()})),this.widget=new pu(()=>this._register(t.createInstance(kR,this.editor,this.model)))}cancel(){this.model.cancel()}previous(){var e;(e=this.widget.rawValue)===null||e===void 0||e.previous()}next(){var e;(e=this.widget.rawValue)===null||e===void 0||e.next()}trigger(e){this.model.trigger(e,0)}};B0.ID="editor.controller.parameterHints";B0=ZW=Uit([qte(1,ht),qte(2,Xe)],B0);class jit extends Ke{constructor(){super({id:"editor.action.triggerParameterHints",label:v("parameterHints.trigger.label","Trigger Parameter Hints"),alias:"Trigger Parameter Hints",precondition:W.hasSignatureHelpProvider,kbOpts:{kbExpr:W.editorTextFocus,primary:3082,weight:100}})}run(e,t){const i=B0.get(t);i==null||i.trigger({triggerKind:ph.Invoke})}}bi(B0.ID,B0,2);xe(jit);const zU=175,$U=Us.bindToContribution(B0.get);Fe(new $U({id:"closeParameterHints",precondition:F0.Visible,handler:n=>n.cancel(),kbOpts:{weight:zU,kbExpr:W.focus,primary:9,secondary:[1033]}}));Fe(new $U({id:"showPrevParameterHint",precondition:pe.and(F0.Visible,F0.MultipleSignatures),handler:n=>n.previous(),kbOpts:{weight:zU,kbExpr:W.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}}));Fe(new $U({id:"showNextParameterHint",precondition:pe.and(F0.Visible,F0.MultipleSignatures),handler:n=>n.next(),kbOpts:{weight:zU,kbExpr:W.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var Kit=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},UT=function(n,e){return function(t,i){e(t,i,n)}};const Qw=new He("renameInputVisible",!1,v("renameInputVisible","Whether the rename input widget is visible"));new He("renameInputFocused",!1,v("renameInputFocused","Whether the rename input widget is focused"));let YW=class{constructor(e,t,i,s,o,r){this._editor=e,this._acceptKeybindings=t,this._themeService=i,this._keybindingService=s,this._logService=r,this.allowEditorOverflow=!0,this._disposables=new be,this._visibleContextKey=Qw.bindTo(o),this._isEditingRenameCandidate=!1,this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,this._candidates=new Set,this._beforeFirstInputFieldEditSW=new xo,this._inputWithButton=new qit,this._disposables.add(this._inputWithButton),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration(a=>{a.hasChanged(50)&&this._updateFont()})),this._disposables.add(i.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._domNode.appendChild(this._inputWithButton.domNode),this._renameCandidateListView=this._disposables.add(new UU(this._domNode,{fontInfo:this._editor.getOption(50),onFocusChange:e=>{this._inputWithButton.input.value=e,this._isEditingRenameCandidate=!1},onSelectionChange:()=>{this._isEditingRenameCandidate=!1,this.acceptInput(!1)}})),this._disposables.add(this._inputWithButton.onDidInputChange(()=>{var e,t,i,s;((e=this._renameCandidateListView)===null||e===void 0?void 0:e.focusedCandidate)!==void 0&&(this._isEditingRenameCandidate=!0),(t=this._timeBeforeFirstInputFieldEdit)!==null&&t!==void 0||(this._timeBeforeFirstInputFieldEdit=this._beforeFirstInputFieldEditSW.elapsed()),((i=this._renameCandidateProvidersCts)===null||i===void 0?void 0:i.token.isCancellationRequested)===!1&&this._renameCandidateProvidersCts.cancel(),(s=this._renameCandidateListView)===null||s===void 0||s.clearFocus()})),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())),this._domNode}_updateStyles(e){var t,i,s,o,r;if(!this._domNode)return;const a=e.getColor(ig),l=e.getColor($le);this._domNode.style.backgroundColor=String((t=e.getColor(fs))!==null&&t!==void 0?t:""),this._domNode.style.boxShadow=a?` 0 0 8px 2px ${a}`:"",this._domNode.style.border=l?`1px solid ${l}`:"",this._domNode.style.color=String((i=e.getColor(jle))!==null&&i!==void 0?i:"");const c=e.getColor(Kle);this._inputWithButton.domNode.style.backgroundColor=String((s=e.getColor(EB))!==null&&s!==void 0?s:""),this._inputWithButton.input.style.backgroundColor=String((o=e.getColor(EB))!==null&&o!==void 0?o:""),this._inputWithButton.domNode.style.borderWidth=c?"1px":"0px",this._inputWithButton.domNode.style.borderStyle=c?"solid":"none",this._inputWithButton.domNode.style.borderColor=(r=c==null?void 0:c.toString())!==null&&r!==void 0?r:"none"}_updateFont(){if(this._domNode===void 0)return;mi(this._label!==void 0,"RenameWidget#_updateFont: _label must not be undefined given _domNode is defined"),this._editor.applyFontInfo(this._inputWithButton.input);const e=this._editor.getOption(50);this._label.style.fontSize=`${this._computeLabelFontSize(e.fontSize)}px`}_computeLabelFontSize(e){return e*.8}getPosition(){if(!this._visible||!this._editor.hasModel()||!this._editor.getDomNode())return null;const e=Fm(this.getDomNode().ownerDocument.body),t=bs(this._editor.getDomNode()),i=this._getTopForPosition();this._nPxAvailableAbove=i+t.top,this._nPxAvailableBelow=e.height-this._nPxAvailableAbove;const s=this._editor.getOption(67),{totalHeight:o}=W0.getLayoutInfo({lineHeight:s}),r=this._nPxAvailableBelow>o*6?[2,1]:[1,2];return{position:this._position,preference:r}}beforeRender(){var e,t;const[i,s]=this._acceptKeybindings;return this._label.innerText=v({},"{0} to Rename, {1} to Preview",(e=this._keybindingService.lookupKeybinding(i))===null||e===void 0?void 0:e.getLabel(),(t=this._keybindingService.lookupKeybinding(s))===null||t===void 0?void 0:t.getLabel()),this._domNode.style.minWidth="200px",null}afterRender(e){if(this._trace("invoking afterRender, position: ",e?"not null":"null"),e===null){this.cancelInput(!0,"afterRender (because position is null)");return}if(!this._editor.hasModel()||!this._editor.getDomNode())return;mi(this._renameCandidateListView),mi(this._nPxAvailableAbove!==void 0),mi(this._nPxAvailableBelow!==void 0);const t=Zf(this._inputWithButton.domNode),i=Zf(this._label);let s;e===2?s=this._nPxAvailableBelow:s=this._nPxAvailableAbove,this._renameCandidateListView.layout({height:s-i-t,width:Sa(this._inputWithButton.domNode)})}acceptInput(e){var t;this._trace("invoking acceptInput"),(t=this._currentAcceptInput)===null||t===void 0||t.call(this,e)}cancelInput(e,t){var i;this._trace(`invoking cancelInput, caller: ${t}, _currentCancelInput: ${this._currentAcceptInput?"not undefined":"undefined"}`),(i=this._currentCancelInput)===null||i===void 0||i.call(this,e)}focusNextRenameSuggestion(){var e;!((e=this._renameCandidateListView)===null||e===void 0)&&e.focusNext()||(this._inputWithButton.input.value=this._currentName)}focusPreviousRenameSuggestion(){var e;!((e=this._renameCandidateListView)===null||e===void 0)&&e.focusPrevious()||(this._inputWithButton.input.value=this._currentName)}getInput(e,t,i,s,o){const{start:r,end:a}=this._getSelection(e,t);this._renameCts=o;const l=new be;this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,s===void 0?this._inputWithButton.button.style.display="none":(this._inputWithButton.button.style.display="flex",this._requestRenameCandidatesOnce=s,this._requestRenameCandidates(t,!1),l.add(ce(this._inputWithButton.button,"click",()=>this._requestRenameCandidates(t,!0))),l.add(ce(this._inputWithButton.button,Le.KEY_DOWN,d=>{const u=new ln(d);(u.equals(3)||u.equals(10))&&(u.stopPropagation(),u.preventDefault(),this._requestRenameCandidates(t,!0))}))),this._isEditingRenameCandidate=!1,this._domNode.classList.toggle("preview",i),this._position=new ee(e.startLineNumber,e.startColumn),this._currentName=t,this._inputWithButton.input.value=t,this._inputWithButton.input.setAttribute("selectionStart",r.toString()),this._inputWithButton.input.setAttribute("selectionEnd",a.toString()),this._inputWithButton.input.size=Math.max((e.endColumn-e.startColumn)*1.1,20),this._beforeFirstInputFieldEditSW.reset(),l.add(dt(()=>{this._renameCts=void 0,o.dispose(!0)})),l.add(dt(()=>{this._renameCandidateProvidersCts!==void 0&&(this._renameCandidateProvidersCts.dispose(!0),this._renameCandidateProvidersCts=void 0)})),l.add(dt(()=>this._candidates.clear()));const c=new hD;return c.p.finally(()=>{l.dispose(),this._hide()}),this._currentCancelInput=d=>{var u;return this._trace("invoking _currentCancelInput"),this._currentAcceptInput=void 0,this._currentCancelInput=void 0,(u=this._renameCandidateListView)===null||u===void 0||u.clearCandidates(),c.complete(d),!0},this._currentAcceptInput=d=>{this._trace("invoking _currentAcceptInput"),mi(this._renameCandidateListView!==void 0);const u=this._renameCandidateListView.nCandidates;let h,f;const g=this._renameCandidateListView.focusedCandidate;if(g!==void 0?(this._trace("using new name from renameSuggestion"),h=g,f={k:"renameSuggestion"}):(this._trace("using new name from inputField"),h=this._inputWithButton.input.value,f=this._isEditingRenameCandidate?{k:"userEditedRenameSuggestion"}:{k:"inputField"}),h===t||h.trim().length===0){this.cancelInput(!0,"_currentAcceptInput (because newName === value || newName.trim().length === 0)");return}this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView.clearCandidates(),c.complete({newName:h,wantsPreview:i&&d,stats:{source:f,nRenameSuggestions:u,timeBeforeFirstInputFieldEdit:this._timeBeforeFirstInputFieldEdit,nRenameSuggestionsInvocations:this._nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:this._hadAutomaticRenameSuggestionsInvocation}})},l.add(o.token.onCancellationRequested(()=>this.cancelInput(!0,"cts.token.onCancellationRequested"))),l.add(this._editor.onDidBlurEditorWidget(()=>{var d;return this.cancelInput(!(!((d=this._domNode)===null||d===void 0)&&d.ownerDocument.hasFocus()),"editor.onDidBlurEditorWidget")})),this._show(),c.p}_requestRenameCandidates(e,t){if(this._requestRenameCandidatesOnce!==void 0&&(this._renameCandidateProvidersCts!==void 0&&this._renameCandidateProvidersCts.dispose(!0),mi(this._renameCts),this._inputWithButton.buttonState!=="stop")){this._renameCandidateProvidersCts=new $n;const i=t?cL.Invoke:cL.Automatic,s=this._requestRenameCandidatesOnce(i,this._renameCandidateProvidersCts.token);if(s.length===0){this._inputWithButton.setSparkleButton();return}t||(this._hadAutomaticRenameSuggestionsInvocation=!0),this._nRenameSuggestionsInvocations+=1,this._inputWithButton.setStopButton(),this._updateRenameCandidates(s,e,this._renameCts.token)}}_getSelection(e,t){mi(this._editor.hasModel());const i=this._editor.getSelection();let s=0,o=t.length;return!A.isEmpty(i)&&!A.spansMultipleLines(i)&&A.containsRange(e,i)&&(s=Math.max(0,i.startColumn-e.startColumn),o=Math.min(e.endColumn,i.endColumn)-e.startColumn),{start:s,end:o}}_show(){this._trace("invoking _show"),this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout(()=>{this._inputWithButton.input.focus(),this._inputWithButton.input.setSelectionRange(parseInt(this._inputWithButton.input.getAttribute("selectionStart")),parseInt(this._inputWithButton.input.getAttribute("selectionEnd")))},100)}async _updateRenameCandidates(e,t,i){const s=(...c)=>this._trace("_updateRenameCandidates",...c);s("start");const o=await uD(Promise.allSettled(e),i);if(this._inputWithButton.setSparkleButton(),o===void 0){s("returning early - received updateRenameCandidates results - undefined");return}const r=o.flatMap(c=>c.status==="fulfilled"&&gh(c.value)?c.value:[]);s(`received updateRenameCandidates results - total (unfiltered) ${r.length} candidates.`);const a=xg(r,c=>c.newSymbolName);s(`distinct candidates - ${a.length} candidates.`);const l=a.filter(({newSymbolName:c})=>c.trim().length>0&&c!==this._inputWithButton.input.value&&c!==t&&!this._candidates.has(c));if(s(`valid distinct candidates - ${r.length} candidates.`),l.forEach(c=>this._candidates.add(c.newSymbolName)),l.length<1){s("returning early - no valid distinct candidates");return}s("setting candidates"),this._renameCandidateListView.setCandidates(l),s("asking editor to re-layout"),this._editor.layoutContentWidget(this)}_hide(){this._trace("invoked _hide"),this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}_getTopForPosition(){const e=this._editor.getVisibleRanges();let t;return e.length>0?t=e[0].startLineNumber:(this._logService.warn("RenameWidget#_getTopForPosition: this should not happen - visibleRanges is empty"),t=Math.max(1,this._position.lineNumber-5)),this._editor.getTopForLineNumber(this._position.lineNumber)-this._editor.getTopForLineNumber(t)}_trace(...e){this._logService.trace("RenameWidget",...e)}};YW=Kit([UT(2,js),UT(3,Li),UT(4,Ct),UT(5,er)],YW);class UU{constructor(e,t){this._disposables=new be,this._availableHeight=0,this._minimumWidth=0,this._lineHeight=t.fontInfo.lineHeight,this._typicalHalfwidthCharacterWidth=t.fontInfo.typicalHalfwidthCharacterWidth,this._listContainer=document.createElement("div"),this._listContainer.className="rename-box rename-candidate-list-container",e.appendChild(this._listContainer),this._listWidget=UU._createListWidget(this._listContainer,this._candidateViewHeight,t.fontInfo),this._listWidget.onDidChangeFocus(i=>{i.elements.length===1&&t.onFocusChange(i.elements[0].newSymbolName)},this._disposables),this._listWidget.onDidChangeSelection(i=>{i.elements.length===1&&t.onSelectionChange()},this._disposables),this._disposables.add(this._listWidget.onDidBlur(i=>{this._listWidget.setFocus([])})),this._listWidget.style(tb({listInactiveFocusForeground:qp,listInactiveFocusBackground:Gp}))}dispose(){this._listWidget.dispose(),this._disposables.dispose()}layout({height:e,width:t}){this._availableHeight=e,this._minimumWidth=t}setCandidates(e){this._listWidget.splice(0,0,e);const t=this._pickListHeight(this._listWidget.length),i=this._pickListWidth(e);this._listWidget.layout(t,i),this._listContainer.style.height=`${t}px`,this._listContainer.style.width=`${i}px`,Ih(v("renameSuggestionsReceivedAria","Received {0} rename suggestions",e.length))}clearCandidates(){this._listContainer.style.height="0px",this._listContainer.style.width="0px",this._listWidget.splice(0,this._listWidget.length,[])}get nCandidates(){return this._listWidget.length}get focusedCandidate(){if(this._listWidget.length===0)return;const e=this._listWidget.getSelectedElements()[0];if(e!==void 0)return e.newSymbolName;const t=this._listWidget.getFocusedElements()[0];if(t!==void 0)return t.newSymbolName}focusNext(){if(this._listWidget.length===0)return!1;const e=this._listWidget.getFocus();if(e.length===0)return this._listWidget.focusFirst(),this._listWidget.reveal(0),!0;if(e[0]===this._listWidget.length-1)return this._listWidget.setFocus([]),this._listWidget.reveal(0),!1;{this._listWidget.focusNext();const t=this._listWidget.getFocus()[0];return this._listWidget.reveal(t),!0}}focusPrevious(){if(this._listWidget.length===0)return!1;const e=this._listWidget.getFocus();if(e.length===0){this._listWidget.focusLast();const t=this._listWidget.getFocus()[0];return this._listWidget.reveal(t),!0}else{if(e[0]===0)return this._listWidget.setFocus([]),!1;{this._listWidget.focusPrevious();const t=this._listWidget.getFocus()[0];return this._listWidget.reveal(t),!0}}}clearFocus(){this._listWidget.setFocus([])}get _candidateViewHeight(){const{totalHeight:e}=W0.getLayoutInfo({lineHeight:this._lineHeight});return e}_pickListHeight(e){const t=this._candidateViewHeight*e;return Math.min(t,this._availableHeight,this._candidateViewHeight*7)}_pickListWidth(e){const t=Math.ceil(Math.max(...e.map(s=>s.newSymbolName.length))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+t+10)}static _createListWidget(e,t,i){const s=new class{getTemplateId(r){return"candidate"}getHeight(r){return t}},o=new class{constructor(){this.templateId="candidate"}renderTemplate(r){return new W0(r,i)}renderElement(r,a,l){l.populate(r)}disposeTemplate(r){r.dispose()}};return new El("NewSymbolNameCandidates",e,s,[o],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1})}}class qit{constructor(){this._onDidInputChange=new X,this.onDidInputChange=this._onDidInputChange.event,this._disposables=new be}get domNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="rename-input-with-button",this._domNode.style.display="flex",this._domNode.style.flexDirection="row",this._domNode.style.alignItems="center",this._inputNode=document.createElement("input"),this._inputNode.className="rename-input",this._inputNode.type="text",this._inputNode.style.border="none",this._inputNode.setAttribute("aria-label",v("renameAriaLabel","Rename input. Type new name and press Enter to commit.")),this._domNode.appendChild(this._inputNode),this._buttonNode=document.createElement("div"),this._buttonNode.className="rename-suggestions-button",this._buttonNode.setAttribute("tabindex","0"),this._buttonGenHoverText=v("generateRenameSuggestionsButton","Generate new name suggestions"),this._buttonCancelHoverText=v("cancelRenameSuggestionsButton","Cancel"),this._buttonHover=bu().setupUpdatableHover(Ur("element"),this._buttonNode,this._buttonGenHoverText),this._disposables.add(this._buttonHover),this._domNode.appendChild(this._buttonNode),this._disposables.add(ce(this.input,Le.INPUT,()=>this._onDidInputChange.fire())),this._disposables.add(ce(this.input,Le.KEY_DOWN,e=>{const t=new ln(e);(t.keyCode===15||t.keyCode===17)&&this._onDidInputChange.fire()})),this._disposables.add(ce(this.input,Le.CLICK,()=>this._onDidInputChange.fire())),this._disposables.add(ce(this.input,Le.FOCUS,()=>{this.domNode.style.outlineWidth="1px",this.domNode.style.outlineStyle="solid",this.domNode.style.outlineOffset="-1px",this.domNode.style.outlineColor="var(--vscode-focusBorder)"})),this._disposables.add(ce(this.input,Le.BLUR,()=>{this.domNode.style.outline="none"}))),this._domNode}get input(){return mi(this._inputNode),this._inputNode}get button(){return mi(this._buttonNode),this._buttonNode}get buttonState(){return this._buttonState}setSparkleButton(){var e,t;this._buttonState="sparkle",(e=this._sparkleIcon)!==null&&e!==void 0||(this._sparkleIcon=_0(Te.sparkle)),wo(this.button),this.button.appendChild(this._sparkleIcon),this.button.setAttribute("aria-label","Generating new name suggestions"),(t=this._buttonHover)===null||t===void 0||t.update(this._buttonGenHoverText),this.input.focus()}setStopButton(){var e,t;this._buttonState="stop",(e=this._stopIcon)!==null&&e!==void 0||(this._stopIcon=_0(Te.primitiveSquare)),wo(this.button),this.button.appendChild(this._stopIcon),this.button.setAttribute("aria-label","Cancel generating new name suggestions"),(t=this._buttonHover)===null||t===void 0||t.update(this._buttonCancelHoverText),this.input.focus()}dispose(){this._disposables.dispose()}}class W0{constructor(e,t){this._domNode=document.createElement("div"),this._domNode.className="rename-box rename-candidate",this._domNode.style.display="flex",this._domNode.style.columnGap="5px",this._domNode.style.alignItems="center",this._domNode.style.height=`${t.lineHeight}px`,this._domNode.style.padding=`${W0._PADDING}px`;const i=document.createElement("div");i.style.display="flex",i.style.alignItems="center",i.style.width=i.style.height=`${t.lineHeight*.8}px`,this._domNode.appendChild(i),this._icon=_0(Te.sparkle),this._icon.style.display="none",i.appendChild(this._icon),this._label=document.createElement("div"),So(this._label,t),this._domNode.appendChild(this._label),e.appendChild(this._domNode)}populate(e){this._updateIcon(e),this._updateLabel(e)}_updateIcon(e){var t;const i=!!(!((t=e.tags)===null||t===void 0)&&t.includes(s7.AIGenerated));this._icon.style.display=i?"inherit":"none"}_updateLabel(e){this._label.innerText=e.newSymbolName}static getLayoutInfo({lineHeight:e}){return{totalHeight:e+W0._PADDING*2}}dispose(){}}W0._PADDING=2;var Git=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},fp=function(n,e){return function(t,i){e(t,i,n)}},XW;class jU{constructor(e,t,i){this.model=e,this.position=t,this._providerRenameIdx=0,this._providers=i.ordered(e)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(e){const t=[];for(this._providerRenameIdx=0;this._providerRenameIdx0?t.join(` `):void 0}:{range:A.fromPositions(this.position),text:"",rejectReason:t.length>0?t.join(` `):void 0}}async provideRenameEdits(e,t){return this._provideRenameEdits(e,this._providerRenameIdx,[],t)}async _provideRenameEdits(e,t,i,s){const o=this._providers[t];if(!o)return{edits:[],rejectReason:i.join(` `)};const r=await o.provideRenameEdits(this.model,this.position,e,s);if(r){if(r.rejectReason)return this._provideRenameEdits(e,t+1,i.concat(r.rejectReason),s)}else return this._provideRenameEdits(e,t+1,i.concat(v("no result","No result.")),s);return r}}async function Zit(n,e,t,i){const s=new jU(e,t,n),o=await s.resolveRenameLocation(Qt.None);return o!=null&&o.rejectReason?{edits:[],rejectReason:o.rejectReason}:s.provideRenameEdits(i,Qt.None)}let Mg=XW=class{static get(e){return e.getContribution(XW.ID)}constructor(e,t,i,s,o,r,a,l,c){this.editor=e,this._instaService=t,this._notificationService=i,this._bulkEditService=s,this._progressService=o,this._logService=r,this._configService=a,this._languageFeaturesService=l,this._telemetryService=c,this._disposableStore=new be,this._cts=new $n,this._renameWidget=this._disposableStore.add(this._instaService.createInstance(YW,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){var e,t;const i=this._logService.trace.bind(this._logService,"[rename]");if(this._cts.dispose(!0),this._cts=new $n,!this.editor.hasModel()){i("editor has no model");return}const s=this.editor.getPosition(),o=new jU(this.editor.getModel(),s,this._languageFeaturesService.renameProvider);if(!o.hasProvider()){i("skeleton has no provider");return}const r=new Km(this.editor,5,void 0,this._cts.token);let a;try{i("resolving rename location");const _=o.resolveRenameLocation(r.token);this._progressService.showWhile(_,250),a=await _,i("resolved rename location")}catch(_){_ instanceof nu?i("resolve rename location cancelled",JSON.stringify(_,null," ")):(i("resolve rename location failed",_ instanceof Error?_:JSON.stringify(_,null," ")),(typeof _=="string"||Xd(_))&&((e=Or.get(this.editor))===null||e===void 0||e.showMessage(_||v("resolveRenameLocationFailed","An unknown error occurred while resolving rename location"),s)));return}finally{r.dispose()}if(!a){i("returning early - no loc");return}if(a.rejectReason){i(`returning early - rejected with reason: ${a.rejectReason}`,a.rejectReason),(t=Or.get(this.editor))===null||t===void 0||t.showMessage(a.rejectReason,s);return}if(r.token.isCancellationRequested){i("returning early - cts1 cancelled");return}const l=new Km(this.editor,5,a.range,this._cts.token),c=this.editor.getModel(),d=this._languageFeaturesService.newSymbolNamesProvider.all(c),u=await Promise.all(d.map(async _=>{var b;return[_,(b=await _.supportsAutomaticNewSymbolNamesTriggerKind)!==null&&b!==void 0?b:!1]})),h=(_,b)=>{let w=u.slice();return _===cL.Automatic&&(w=w.filter(([y,S])=>S)),w.map(([y])=>y.provideNewSymbolNames(c,a.range,_,b))};i("creating rename input field and awaiting its result");const f=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),g=await this._renameWidget.getInput(a.range,a.text,f,d.length>0?h:void 0,l);if(i("received response from rename input field"),d.length>0&&this._reportTelemetry(d.length,c.getLanguageId(),g),typeof g=="boolean"){i(`returning early - rename input field response - ${g}`),g&&this.editor.focus(),l.dispose();return}this.editor.focus(),i("requesting rename edits");const p=uD(o.provideRenameEdits(g.newName,l.token),l.token).then(async _=>{if(!_){i("returning early - no rename edits result");return}if(!this.editor.hasModel()){i("returning early - no model after rename edits are provided");return}if(_.rejectReason){i(`returning early - rejected with reason: ${_.rejectReason}`),this._notificationService.info(_.rejectReason);return}this.editor.setSelection(A.fromPositions(this.editor.getSelection().getPosition())),i("applying edits"),this._bulkEditService.apply(_,{editor:this.editor,showPreview:g.wantsPreview,label:v("label","Renaming '{0}' to '{1}'",a==null?void 0:a.text,g.newName),code:"undoredo.rename",quotableLabel:v("quotableLabel","Renaming {0} to {1}",a==null?void 0:a.text,g.newName),respectAutoSaveConfig:!0}).then(b=>{i("edits applied"),b.ariaSummary&&la(v("aria","Successfully renamed '{0}' to '{1}'. Summary: {2}",a.text,g.newName,b.ariaSummary))}).catch(b=>{i(`error when applying edits ${JSON.stringify(b,null," ")}`),this._notificationService.error(v("rename.failedApply","Rename failed to apply edits")),this._logService.error(b)})},_=>{i("error when providing rename edits",JSON.stringify(_,null," ")),this._notificationService.error(v("rename.failed","Rename failed to compute edits")),this._logService.error(_)}).finally(()=>{l.dispose()});return i("returning rename operation"),this._progressService.showWhile(p,250),p}acceptRenameInput(e){this._renameWidget.acceptInput(e)}cancelRenameInput(){this._renameWidget.cancelInput(!0,"cancelRenameInput command")}focusNextRenameSuggestion(){this._renameWidget.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameWidget.focusPreviousRenameSuggestion()}_reportTelemetry(e,t,i){const s=typeof i=="boolean"?{kind:"cancelled",languageId:t,nRenameSuggestionProviders:e}:{kind:"accepted",languageId:t,nRenameSuggestionProviders:e,source:i.stats.source.k,nRenameSuggestions:i.stats.nRenameSuggestions,timeBeforeFirstInputFieldEdit:i.stats.timeBeforeFirstInputFieldEdit,wantsPreview:i.wantsPreview,nRenameSuggestionsInvocations:i.stats.nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:i.stats.hadAutomaticRenameSuggestionsInvocation};this._telemetryService.publicLog2("renameInvokedEvent",s)}};Mg.ID="editor.contrib.renameController";Mg=XW=Git([fp(1,ht),fp(2,ps),fp(3,ED),fp(4,m_),fp(5,er),fp(6,vz),fp(7,Xe),fp(8,Po)],Mg);class Yit extends Ke{constructor(){super({id:"editor.action.rename",label:v("rename.label","Rename Symbol"),alias:"Rename Symbol",precondition:pe.and(W.writable,W.hasRenameProvider),kbOpts:{kbExpr:W.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1}})}runCommand(e,t){const i=e.get(vi),[s,o]=Array.isArray(t)&&t||[void 0,void 0];return pt.isUri(s)&&ee.isIPosition(o)?i.openCodeEditor({resource:s},i.getActiveCodeEditor()).then(r=>{r&&(r.setPosition(o),r.invokeWithinContext(a=>(this.reportTelemetry(a,r),this.run(a,r))))},Mt):super.runCommand(e,t)}run(e,t){const i=e.get(er),s=Mg.get(t);return s?(i.trace("[RenameAction] got controller, running..."),s.run()):(i.trace("[RenameAction] returning early - controller missing"),Promise.resolve())}}bi(Mg.ID,Mg,4);xe(Yit);const KU=Us.bindToContribution(Mg.get);Fe(new KU({id:"acceptRenameInput",precondition:Qw,handler:n=>n.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:pe.and(W.focus,pe.not("isComposing")),primary:3}}));Fe(new KU({id:"acceptRenameInputWithPreview",precondition:pe.and(Qw,pe.has("config.editor.rename.enablePreview")),handler:n=>n.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:pe.and(W.focus,pe.not("isComposing")),primary:2051}}));Fe(new KU({id:"cancelRenameInput",precondition:Qw,handler:n=>n.cancelRenameInput(),kbOpts:{weight:199,kbExpr:W.focus,primary:9,secondary:[1033]}}));dn(class extends zr{constructor(){super({id:"focusNextRenameSuggestion",title:{...Nt("focusNextRenameSuggestion","Focus Next Rename Suggestion")},precondition:Qw,keybinding:[{primary:18,weight:199}]})}run(e){const t=e.get(vi).getFocusedCodeEditor();if(!t)return;const i=Mg.get(t);i&&i.focusNextRenameSuggestion()}});dn(class extends zr{constructor(){super({id:"focusPreviousRenameSuggestion",title:{...Nt("focusPreviousRenameSuggestion","Focus Previous Rename Suggestion")},precondition:Qw,keybinding:[{primary:16,weight:199}]})}run(e){const t=e.get(vi).getFocusedCodeEditor();if(!t)return;const i=Mg.get(t);i&&i.focusPreviousRenameSuggestion()}});Vh("_executeDocumentRenameProvider",function(n,e,t,...i){const[s]=i;mi(typeof s=="string");const{renameProvider:o}=n.get(Xe);return Zit(o,e,t,s)});Vh("_executePrepareRename",async function(n,e,t){const{renameProvider:i}=n.get(Xe),o=await new jU(e,t,i).resolveRenameLocation(Qt.None);if(o!=null&&o.rejectReason)throw new Error(o.rejectReason);return o});Un.as(_u.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:5,description:v("enablePreview","Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});var Xit=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Gte=function(n,e){return function(t,i){e(t,i,n)}};let Nk=class extends ne{constructor(e,t,i){super(),this.editor=e,this.languageConfigurationService=t,this.editorWorkerService=i,this.decorations=this.editor.createDecorationsCollection(),this.options=this.createOptions(e.getOption(73)),this.computePromise=null,this.currentOccurrences={},this._register(e.onDidChangeModel(s=>{this.currentOccurrences={},this.options=this.createOptions(e.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(e.onDidChangeModelLanguage(s=>{this.currentOccurrences={},this.options=this.createOptions(e.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(t.onDidChange(s=>{var o;const r=(o=this.editor.getModel())===null||o===void 0?void 0:o.getLanguageId();r&&s.affects(r)&&(this.currentOccurrences={},this.options=this.createOptions(e.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(e.onDidChangeConfiguration(s=>{this.options&&!s.hasChanged(73)||(this.options=this.createOptions(e.getOption(73)),this.updateDecorations([]),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(this.editor.onDidChangeModelContent(s=>{this.computeSectionHeaders.schedule()})),this._register(e.onDidChangeModelTokens(s=>{this.computeSectionHeaders.isScheduled()||this.computeSectionHeaders.schedule(1e3)})),this.computeSectionHeaders=this._register(new Xi(()=>{this.findSectionHeaders()},250)),this.computeSectionHeaders.schedule(0)}createOptions(e){if(!e||!this.editor.hasModel())return;const t=this.editor.getModel().getLanguageId();if(!t)return;const i=this.languageConfigurationService.getLanguageConfiguration(t).comments,s=this.languageConfigurationService.getLanguageConfiguration(t).foldingRules;if(!(!i&&!(s!=null&&s.markers)))return{foldingRules:s,findMarkSectionHeaders:e.showMarkSectionHeaders,findRegionSectionHeaders:e.showRegionSectionHeaders}}findSectionHeaders(){var e,t;if(!this.editor.hasModel()||!(!((e=this.options)===null||e===void 0)&&e.findMarkSectionHeaders)&&!(!((t=this.options)===null||t===void 0)&&t.findRegionSectionHeaders))return;const i=this.editor.getModel();if(i.isDisposed()||i.isTooLargeForSyncing())return;const s=i.getVersionId();this.editorWorkerService.findSectionHeaders(i.uri,this.options).then(o=>{i.isDisposed()||i.getVersionId()!==s||this.updateDecorations(o)})}updateDecorations(e){const t=this.editor.getModel();t&&(e=e.filter(o=>{if(!o.shouldBeInComments)return!0;const r=t.validateRange(o.range),a=t.tokenization.getLineTokens(r.startLineNumber),l=a.findTokenIndexAtOffset(r.startColumn-1),c=a.getStandardTokenType(l);return a.getLanguageId(l)===t.getLanguageId()&&c===1}));const i=Object.values(this.currentOccurrences).map(o=>o.decorationId),s=e.map(o=>Qit(o));this.editor.changeDecorations(o=>{const r=o.deltaDecorations(i,s);this.currentOccurrences={};for(let a=0,l=r.length;a0?t[0]:[]}async function Uge(n,e,t,i,s){const o=nnt(n,e),r=await Promise.all(o.map(async a=>{let l,c=null;try{l=await a.provideDocumentSemanticTokens(e,a===t?i:null,s)}catch(d){c=d,l=null}return(!l||!uO(l)&&!zge(l))&&(l=null),new int(a,l,c)}));for(const a of r){if(a.error)throw a.error;if(a.tokens)return a}return r.length>0?r[0]:null}function snt(n,e){const t=n.orderedGroups(e);return t.length>0?t[0]:null}class ont{constructor(e,t){this.provider=e,this.tokens=t}}function rnt(n,e){return n.has(e)}function jge(n,e){const t=n.orderedGroups(e);return t.length>0?t[0]:[]}async function qU(n,e,t,i){const s=jge(n,e),o=await Promise.all(s.map(async r=>{let a;try{a=await r.provideDocumentRangeSemanticTokens(e,t,i)}catch(l){as(l),a=null}return(!a||!uO(a))&&(a=null),new ont(r,a)}));for(const r of o)if(r.tokens)return r;return o.length>0?o[0]:null}ri.registerCommand("_provideDocumentSemanticTokensLegend",async(n,...e)=>{const[t]=e;mi(t instanceof pt);const i=n.get(Pn).getModel(t);if(!i)return;const{documentSemanticTokensProvider:s}=n.get(Xe),o=snt(s,i);return o?o[0].getLegend():n.get(Sn).executeCommand("_provideDocumentRangeSemanticTokensLegend",t)});ri.registerCommand("_provideDocumentSemanticTokens",async(n,...e)=>{const[t]=e;mi(t instanceof pt);const i=n.get(Pn).getModel(t);if(!i)return;const{documentSemanticTokensProvider:s}=n.get(Xe);if(!$ge(s,i))return n.get(Sn).executeCommand("_provideDocumentRangeSemanticTokens",t,i.getFullModelRange());const o=await Uge(s,i,null,null,Qt.None);if(!o)return;const{provider:r,tokens:a}=o;if(!a||!uO(a))return;const l=Vge({id:0,type:"full",data:a.data});return a.resultId&&r.releaseDocumentSemanticTokens(a.resultId),l});ri.registerCommand("_provideDocumentRangeSemanticTokensLegend",async(n,...e)=>{const[t,i]=e;mi(t instanceof pt);const s=n.get(Pn).getModel(t);if(!s)return;const{documentRangeSemanticTokensProvider:o}=n.get(Xe),r=jge(o,s);if(r.length===0)return;if(r.length===1)return r[0].getLegend();if(!i||!A.isIRange(i))return console.warn("provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in"),r[0].getLegend();const a=await qU(o,s,A.lift(i),Qt.None);if(a)return a.provider.getLegend()});ri.registerCommand("_provideDocumentRangeSemanticTokens",async(n,...e)=>{const[t,i]=e;mi(t instanceof pt),mi(A.isIRange(i));const s=n.get(Pn).getModel(t);if(!s)return;const{documentRangeSemanticTokensProvider:o}=n.get(Xe),r=await qU(o,s,A.lift(i),Qt.None);if(!(!r||!r.tokens))return Vge({id:0,type:"full",data:r.tokens.data})});const GU="editor.semanticHighlighting";function UN(n,e,t){var i;const s=(i=t.getValue(GU,{overrideIdentifier:n.getLanguageId(),resource:n.uri}))===null||i===void 0?void 0:i.enabled;return typeof s=="boolean"?s:e.getColorTheme().semanticHighlighting}var Kge=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Yu=function(n,e){return function(t,i){e(t,i,n)}},yp;let QW=class extends ne{constructor(e,t,i,s,o,r){super(),this._watchers=Object.create(null);const a=d=>{this._watchers[d.uri.toString()]=new Ak(d,e,i,o,r)},l=(d,u)=>{u.dispose(),delete this._watchers[d.uri.toString()]},c=()=>{for(const d of t.getModels()){const u=this._watchers[d.uri.toString()];UN(d,i,s)?u||a(d):u&&l(d,u)}};t.getModels().forEach(d=>{UN(d,i,s)&&a(d)}),this._register(t.onModelAdded(d=>{UN(d,i,s)&&a(d)})),this._register(t.onModelRemoved(d=>{const u=this._watchers[d.uri.toString()];u&&l(d,u)})),this._register(s.onDidChangeConfiguration(d=>{d.affectsConfiguration(GU)&&c()})),this._register(i.onDidColorThemeChange(c))}dispose(){for(const e of Object.values(this._watchers))e.dispose();super.dispose()}};QW=Kge([Yu(0,UM),Yu(1,Pn),Yu(2,js),Yu(3,qt),Yu(4,_c),Yu(5,Xe)],QW);let Ak=yp=class extends ne{constructor(e,t,i,s,o){super(),this._semanticTokensStylingService=t,this._isDisposed=!1,this._model=e,this._provider=o.documentSemanticTokensProvider,this._debounceInformation=s.for(this._provider,"DocumentSemanticTokens",{min:yp.REQUEST_MIN_DELAY,max:yp.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new Xi(()=>this._fetchDocumentSemanticTokensNow(),yp.REQUEST_MIN_DELAY)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._documentProvidersChangeListeners=[],this._providersChangedDuringRequest=!1,this._register(this._model.onDidChangeContent(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeAttached(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeLanguage(()=>{this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(0)}));const r=()=>{tn(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[];for(const a of this._provider.all(e))typeof a.onDidChange=="function"&&this._documentProvidersChangeListeners.push(a.onDidChange(()=>{if(this._currentDocumentRequestCancellationTokenSource){this._providersChangedDuringRequest=!0;return}this._fetchDocumentSemanticTokens.schedule(0)}))};r(),this._register(this._provider.onDidChange(()=>{r(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(i.onDidColorThemeChange(a=>{this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._fetchDocumentSemanticTokens.schedule(0)}dispose(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),tn(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[],this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;if(!$ge(this._provider,this._model)){this._currentDocumentResponse&&this._model.tokenization.setSemanticTokens(null,!1);return}if(!this._model.isAttachedToEditor())return;const e=new $n,t=this._currentDocumentResponse?this._currentDocumentResponse.provider:null,i=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,s=Uge(this._provider,this._model,t,i,e.token);this._currentDocumentRequestCancellationTokenSource=e,this._providersChangedDuringRequest=!1;const o=[],r=this._model.onDidChangeContent(l=>{o.push(l)}),a=new xo(!1);s.then(l=>{if(this._debounceInformation.update(this._model,a.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,r.dispose(),!l)this._setDocumentSemanticTokens(null,null,null,o);else{const{provider:c,tokens:d}=l,u=this._semanticTokensStylingService.getStyling(c);this._setDocumentSemanticTokens(c,d||null,u,o)}},l=>{l&&(ld(l)||typeof l.message=="string"&&l.message.indexOf("busy")!==-1)||Mt(l),this._currentDocumentRequestCancellationTokenSource=null,r.dispose(),(o.length>0||this._providersChangedDuringRequest)&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))})}static _copy(e,t,i,s,o){o=Math.min(o,i.length-s,e.length-t);for(let r=0;r{(s.length>0||this._providersChangedDuringRequest)&&!this._fetchDocumentSemanticTokens.isScheduled()&&this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))};if(this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._isDisposed){e&&t&&e.releaseDocumentSemanticTokens(t.resultId);return}if(!e||!i){this._model.tokenization.setSemanticTokens(null,!1);return}if(!t){this._model.tokenization.setSemanticTokens(null,!0),r();return}if(zge(t)){if(!o){this._model.tokenization.setSemanticTokens(null,!0);return}if(t.edits.length===0)t={resultId:t.resultId,data:o.data};else{let a=0;for(const h of t.edits)a+=(h.data?h.data.length:0)-h.deleteCount;const l=o.data,c=new Uint32Array(l.length+a);let d=l.length,u=c.length;for(let h=t.edits.length-1;h>=0;h--){const f=t.edits[h];if(f.start>l.length){i.warnInvalidEditStart(o.resultId,t.resultId,h,f.start,l.length),this._model.tokenization.setSemanticTokens(null,!0);return}const g=d-(f.start+f.deleteCount);g>0&&(yp._copy(l,d-g,c,u-g,g),u-=g),f.data&&(yp._copy(f.data,0,c,u-f.data.length,f.data.length),u-=f.data.length),d=f.start}d>0&&yp._copy(l,0,c,0,d),t={resultId:t.resultId,data:c}}}if(uO(t)){this._currentDocumentResponse=new ant(e,t.resultId,t.data);const a=sde(t,i,this._model.getLanguageId());if(s.length>0)for(const l of s)for(const c of a)for(const d of l.changes)c.applyEdit(d.range,d.text);this._model.tokenization.setSemanticTokens(a,!0)}else this._model.tokenization.setSemanticTokens(null,!0);r()}};Ak.REQUEST_MIN_DELAY=300;Ak.REQUEST_MAX_DELAY=2e3;Ak=yp=Kge([Yu(1,UM),Yu(2,js),Yu(3,_c),Yu(4,Xe)],Ak);class ant{constructor(e,t,i){this.provider=e,this.resultId=t,this.data=i}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}}WD(QW);var lnt=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},sS=function(n,e){return function(t,i){e(t,i,n)}};let Rk=class extends ne{constructor(e,t,i,s,o,r){super(),this._semanticTokensStylingService=t,this._themeService=i,this._configurationService=s,this._editor=e,this._provider=r.documentRangeSemanticTokensProvider,this._debounceInformation=o.for(this._provider,"DocumentRangeSemanticTokens",{min:100,max:500}),this._tokenizeViewport=this._register(new Xi(()=>this._tokenizeViewportNow(),100)),this._outstandingRequests=[];const a=()=>{this._editor.hasModel()&&this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()))};this._register(this._editor.onDidScrollChange(()=>{a()})),this._register(this._editor.onDidChangeModel(()=>{this._cancelAll(),a()})),this._register(this._editor.onDidChangeModelContent(l=>{this._cancelAll(),a()})),this._register(this._provider.onDidChange(()=>{this._cancelAll(),a()})),this._register(this._configurationService.onDidChangeConfiguration(l=>{l.affectsConfiguration(GU)&&(this._cancelAll(),a())})),this._register(this._themeService.onDidColorThemeChange(()=>{this._cancelAll(),a()})),a()}_cancelAll(){for(const e of this._outstandingRequests)e.cancel();this._outstandingRequests=[]}_removeOutstandingRequest(e){for(let t=0,i=this._outstandingRequests.length;tthis._requestRange(e,i)))}_requestRange(e,t){const i=e.getVersionId(),s=Xs(r=>Promise.resolve(qU(this._provider,e,t,r))),o=new xo(!1);return s.then(r=>{if(this._debounceInformation.update(e,o.elapsed()),!r||!r.tokens||e.isDisposed()||e.getVersionId()!==i)return;const{provider:a,tokens:l}=r,c=this._semanticTokensStylingService.getStyling(a);e.tokenization.setPartialSemanticTokens(t,sde(l,c,e.getLanguageId()))}).then(()=>this._removeOutstandingRequest(s),()=>this._removeOutstandingRequest(s)),s}};Rk.ID="editor.contrib.viewportSemanticTokens";Rk=lnt([sS(1,UM),sS(2,js),sS(3,qt),sS(4,_c),sS(5,Xe)],Rk);bi(Rk.ID,Rk,1);class cnt{constructor(e=!0){this.selectSubwords=e}provideSelectionRanges(e,t){const i=[];for(const s of t){const o=[];i.push(o),this.selectSubwords&&this._addInWordRanges(o,e,s),this._addWordRanges(o,e,s),this._addWhitespaceLine(o,e,s),o.push({range:e.getFullModelRange()})}return i}_addInWordRanges(e,t,i){const s=t.getWordAtPosition(i);if(!s)return;const{word:o,startColumn:r}=s,a=i.column-r;let l=a,c=a,d=0;for(;l>=0;l--){const u=o.charCodeAt(l);if(l!==a&&(u===95||u===45))break;if(zp(u)&&Ku(d))break;d=u}for(l+=1;c0&&t.getLineFirstNonWhitespaceColumn(i.lineNumber)===0&&t.getLineLastNonWhitespaceColumn(i.lineNumber)===0&&e.push({range:new A(i.lineNumber,1,i.lineNumber,t.getLineMaxColumn(i.lineNumber))})}}var dnt=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},unt=function(n,e){return function(t,i){e(t,i,n)}},JW;class ZU{constructor(e,t){this.index=e,this.ranges=t}mov(e){const t=this.index+(e?1:-1);if(t<0||t>=this.ranges.length)return this;const i=new ZU(t,this.ranges);return i.ranges[t].equalsRange(this.ranges[this.index])?i.mov(e):i}}let pw=JW=class{static get(e){return e.getContribution(JW.ID)}constructor(e,t){this._editor=e,this._languageFeaturesService=t,this._ignoreSelection=!1}dispose(){var e;(e=this._selectionListener)===null||e===void 0||e.dispose()}async run(e){if(!this._editor.hasModel())return;const t=this._editor.getSelections(),i=this._editor.getModel();if(this._state||await Gge(this._languageFeaturesService.selectionRangeProvider,i,t.map(o=>o.getPosition()),this._editor.getOption(113),Qt.None).then(o=>{var r;if(!(!Zo(o)||o.length!==t.length)&&!(!this._editor.hasModel()||!zn(this._editor.getSelections(),t,(a,l)=>a.equalsSelection(l)))){for(let a=0;al.containsPosition(t[a].getStartPosition())&&l.containsPosition(t[a].getEndPosition())),o[a].unshift(t[a]);this._state=o.map(a=>new ZU(0,a)),(r=this._selectionListener)===null||r===void 0||r.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition(()=>{var a;this._ignoreSelection||((a=this._selectionListener)===null||a===void 0||a.dispose(),this._state=void 0)})}}),!this._state)return;this._state=this._state.map(o=>o.mov(e));const s=this._state.map(o=>it.fromPositions(o.ranges[o.index].getStartPosition(),o.ranges[o.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(s)}finally{this._ignoreSelection=!1}}};pw.ID="editor.contrib.smartSelectController";pw=JW=dnt([unt(1,Xe)],pw);class qge extends Ke{constructor(e,t){super(t),this._forward=e}async run(e,t){const i=pw.get(t);i&&await i.run(this._forward)}}class hnt extends qge{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:v("smartSelect.expand","Expand Selection"),alias:"Expand Selection",precondition:void 0,kbOpts:{kbExpr:W.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:R.MenubarSelectionMenu,group:"1_basic",title:v({},"&&Expand Selection"),order:2}})}}ri.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");class fnt extends qge{constructor(){super(!1,{id:"editor.action.smartSelect.shrink",label:v("smartSelect.shrink","Shrink Selection"),alias:"Shrink Selection",precondition:void 0,kbOpts:{kbExpr:W.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:R.MenubarSelectionMenu,group:"1_basic",title:v({},"&&Shrink Selection"),order:3}})}}bi(pw.ID,pw,4);xe(hnt);xe(fnt);async function Gge(n,e,t,i,s){const o=n.all(e).concat(new cnt(i.selectSubwords));o.length===1&&o.unshift(new il);const r=[],a=[];for(const l of o)r.push(Promise.resolve(l.provideSelectionRanges(e,t,s)).then(c=>{if(Zo(c)&&c.length===t.length)for(let d=0;d{if(l.length===0)return[];l.sort((h,f)=>ee.isBefore(h.getStartPosition(),f.getStartPosition())?1:ee.isBefore(f.getStartPosition(),h.getStartPosition())||ee.isBefore(h.getEndPosition(),f.getEndPosition())?-1:ee.isBefore(f.getEndPosition(),h.getEndPosition())?1:0);const c=[];let d;for(const h of l)(!d||A.containsRange(h,d)&&!A.equalsRange(h,d))&&(c.push(h),d=h);if(!i.selectLeadingAndTrailingWhitespace)return c;const u=[c[0]];for(let h=1;hn}),C3="data-sticky-line-index",Xte="data-sticky-is-line",pnt="data-sticky-is-line-number",Qte="data-sticky-is-folding-icon";class mnt extends ne{constructor(e){super(),this._editor=e,this._foldingIconStore=new be,this._rootDomNode=document.createElement("div"),this._lineNumbersDomNode=document.createElement("div"),this._linesDomNodeScrollable=document.createElement("div"),this._linesDomNode=document.createElement("div"),this._lineHeight=this._editor.getOption(67),this._renderedStickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._lineNumbersDomNode.className="sticky-widget-line-numbers",this._lineNumbersDomNode.setAttribute("role","none"),this._linesDomNode.className="sticky-widget-lines",this._linesDomNode.setAttribute("role","list"),this._linesDomNodeScrollable.className="sticky-widget-lines-scrollable",this._linesDomNodeScrollable.appendChild(this._linesDomNode),this._rootDomNode.className="sticky-widget",this._rootDomNode.classList.toggle("peek",e instanceof Ym),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable);const t=()=>{this._linesDomNode.style.left=this._editor.getOption(115).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:"0px"};this._register(this._editor.onDidChangeConfiguration(i=>{i.hasChanged(115)&&t(),i.hasChanged(67)&&(this._lineHeight=this._editor.getOption(67))})),this._register(this._editor.onDidScrollChange(i=>{i.scrollLeftChanged&&t(),i.scrollWidthChanged&&this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{t(),this._updateWidgetWidth()})),this._register(this._foldingIconStore),t(),this._register(this._editor.onDidLayoutChange(i=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(e){return this._renderedStickyLines.find(t=>t.lineNumber===e)}getCurrentLines(){return this._lineNumbers}setState(e,t,i){if(i===void 0&&(!this._previousState&&!e||this._previousState&&this._previousState.equals(e)))return;const s=this._isWidgetHeightZero(e),o=s?void 0:e,r=s?0:this._findLineToRebuildWidgetFrom(e,i);this._renderRootNode(o,t,r),this._previousState=e}_isWidgetHeightZero(e){if(!e)return!0;const t=e.startLineNumbers.length*this._lineHeight+e.lastLineRelativePosition;if(t>0){this._lastLineRelativePosition=e.lastLineRelativePosition;const i=[...e.startLineNumbers];e.showEndForLine!==null&&(i[e.showEndForLine]=e.endLineNumbers[e.showEndForLine]),this._lineNumbers=i}else this._lastLineRelativePosition=0,this._lineNumbers=[];return t===0}_findLineToRebuildWidgetFrom(e,t){if(!e||!this._previousState)return 0;if(t!==void 0)return t;const i=this._previousState,s=e.startLineNumbers.findIndex(o=>!i.startLineNumbers.includes(o));return s===-1?0:s}_updateWidgetWidth(){const e=this._editor.getLayoutInfo(),t=e.contentLeft;this._lineNumbersDomNode.style.width=`${t}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",`${this._editor.getScrollWidth()-e.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${e.width-e.verticalScrollbarWidth}px`}_clearStickyLinesFromLine(e){this._foldingIconStore.clear();for(let t=e;ta.scrollWidth))+s.verticalScrollbarWidth,this._editor.layoutOverlayWidget(this)}_setFoldingHoverListeners(){this._editor.getOption(110)==="mouseover"&&(this._foldingIconStore.add(ce(this._lineNumbersDomNode,Le.MOUSE_ENTER,()=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)})),this._foldingIconStore.add(ce(this._lineNumbersDomNode,Le.MOUSE_LEAVE,()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)})))}_renderChildNode(e,t,i,s){const o=this._editor._getViewModel();if(!o)return;const r=o.coordinatesConverter.convertModelPositionToViewPosition(new ee(t,1)).lineNumber,a=o.getViewLineRenderingData(r),l=this._editor.getOption(68);let c;try{c=Rr.filter(a.inlineDecorations,r,a.minColumn,a.maxColumn)}catch{c=[]}const d=new f_(!0,!0,a.content,a.continuesWithWrappedLine,a.isBasicASCII,a.containsRTL,0,a.tokens,c,a.tabSize,a.startVisibleColumn,1,1,1,500,"none",!0,!0,null),u=new Ow(2e3),h=_D(d,u);let f;Yte?f=Yte.createHTML(u.build()):f=u.build();const g=document.createElement("span");g.setAttribute(C3,String(e)),g.setAttribute(Xte,""),g.setAttribute("role","listitem"),g.tabIndex=0,g.className="sticky-line-content",g.classList.add(`stickyLine${t}`),g.style.lineHeight=`${this._lineHeight}px`,g.innerHTML=f;const p=document.createElement("span");p.setAttribute(C3,String(e)),p.setAttribute(pnt,""),p.className="sticky-line-number",p.style.lineHeight=`${this._lineHeight}px`;const _=s.contentLeft;p.style.width=`${_}px`;const b=document.createElement("span");l.renderType===1||l.renderType===3&&t%10===0?b.innerText=t.toString():l.renderType===2&&(b.innerText=Math.abs(t-this._editor.getPosition().lineNumber).toString()),b.className="sticky-line-number-inner",b.style.lineHeight=`${this._lineHeight}px`,b.style.width=`${s.lineNumbersWidth}px`,b.style.paddingLeft=`${s.lineNumbersLeft}px`,p.appendChild(b);const w=this._renderFoldingIconForLine(i,t);w&&p.appendChild(w.domNode),this._editor.applyFontInfo(g),this._editor.applyFontInfo(b),p.style.lineHeight=`${this._lineHeight}px`,g.style.lineHeight=`${this._lineHeight}px`,p.style.height=`${this._lineHeight}px`,g.style.height=`${this._lineHeight}px`;const y=new _nt(e,t,g,p,w,h.characterMapping,g.scrollWidth);return this._updateTopAndZIndexOfStickyLine(y)}_updateTopAndZIndexOfStickyLine(e){var t;const i=e.index,s=e.lineDomNode,o=e.lineNumberDomNode,r=i===this._lineNumbers.length-1,a="0",l="1";s.style.zIndex=r?a:l,o.style.zIndex=r?a:l;const c=`${i*this._lineHeight+this._lastLineRelativePosition+(!((t=e.foldingIcon)===null||t===void 0)&&t.isCollapsed?1:0)}px`,d=`${i*this._lineHeight}px`;return s.style.top=r?c:d,o.style.top=r?c:d,e}_renderFoldingIconForLine(e,t){const i=this._editor.getOption(110);if(!e||i==="never")return;const s=e.regions,o=s.findRange(t),r=s.getStartLineNumber(o);if(!(t===r))return;const l=s.isCollapsed(o),c=new vnt(l,r,s.getEndLineNumber(o),this._lineHeight);return c.setVisible(this._isOnGlyphMargin?!0:l||i==="always"),c.domNode.setAttribute(Qte,""),c}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:2,stackOridinal:10}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(e){0<=e&&e0)return null;const t=this._getRenderedStickyLineFromChildDomNode(e);if(!t)return null;const i=Az(t.characterMapping,e,0);return new ee(t.lineNumber,i)}getLineNumberFromChildDomNode(e){var t,i;return(i=(t=this._getRenderedStickyLineFromChildDomNode(e))===null||t===void 0?void 0:t.lineNumber)!==null&&i!==void 0?i:null}_getRenderedStickyLineFromChildDomNode(e){const t=this.getLineIndexFromChildDomNode(e);return t===null||t<0||t>=this._renderedStickyLines.length?null:this._renderedStickyLines[t]}getLineIndexFromChildDomNode(e){const t=this._getAttributeValue(e,C3);return t?parseInt(t,10):null}isInStickyLine(e){return this._getAttributeValue(e,Xte)!==void 0}isInFoldingIconDomNode(e){return this._getAttributeValue(e,Qte)!==void 0}_getAttributeValue(e,t){for(;e&&e!==this._rootDomNode;){const i=e.getAttribute(t);if(i!==null)return i;e=e.parentElement}}}class _nt{constructor(e,t,i,s,o,r,a){this.index=e,this.lineNumber=t,this.lineDomNode=i,this.lineNumberDomNode=s,this.foldingIcon=o,this.characterMapping=r,this.scrollWidth=a}}class vnt{constructor(e,t,i,s){this.isCollapsed=e,this.foldingStartLine=t,this.foldingEndLine=i,this.dimension=s,this.domNode=document.createElement("div"),this.domNode.style.width=`${s}px`,this.domNode.style.height=`${s}px`,this.domNode.className=_t.asClassName(e?jP:UP)}setVisible(e){this.domNode.style.cursor=e?"pointer":"default",this.domNode.style.opacity=e?"1":"0"}}class Ox{constructor(e,t){this.startLineNumber=e,this.endLineNumber=t}}class DR{constructor(e,t,i){this.range=e,this.children=t,this.parent=i}}class Zge{constructor(e,t,i,s){this.uri=e,this.version=t,this.element=i,this.outlineProviderId=s}}var hO=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Mk=function(n,e){return function(t,i){e(t,i,n)}},Fx;(function(n){n.OUTLINE_MODEL="outlineModel",n.FOLDING_PROVIDER_MODEL="foldingProviderModel",n.INDENTATION_MODEL="indentationModel"})(Fx||(Fx={}));var sm;(function(n){n[n.VALID=0]="VALID",n[n.INVALID=1]="INVALID",n[n.CANCELED=2]="CANCELED"})(sm||(sm={}));let eH=class extends ne{constructor(e,t,i,s){switch(super(),this._editor=e,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new sd(300)),this._updateOperation=this._register(new be),this._editor.getOption(115).defaultModel){case Fx.OUTLINE_MODEL:this._modelProviders.push(new tH(this._editor,s));case Fx.FOLDING_PROVIDER_MODEL:this._modelProviders.push(new nH(this._editor,t,s));case Fx.INDENTATION_MODEL:this._modelProviders.push(new iH(this._editor,i));break}}dispose(){this._modelProviders.forEach(e=>e.dispose()),this._updateOperation.clear(),this._cancelModelPromise(),super.dispose()}_cancelModelPromise(){this._modelPromise&&(this._modelPromise.cancel(),this._modelPromise=null)}async update(e){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),await this._updateScheduler.trigger(async()=>{for(const t of this._modelProviders){const{statusPromise:i,modelPromise:s}=t.computeStickyModel(e);this._modelPromise=s;const o=await i;if(this._modelPromise!==s)return null;switch(o){case sm.CANCELED:return this._updateOperation.clear(),null;case sm.VALID:return t.stickyModel}}return null}).catch(t=>(Mt(t),null))}};eH=hO([Mk(2,ht),Mk(3,Xe)],eH);class Yge extends ne{constructor(e){super(),this._editor=e,this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,sm.INVALID}computeStickyModel(e){if(e.isCancellationRequested||!this.isProviderValid())return{statusPromise:this._invalid(),modelPromise:null};const t=Xs(i=>this.createModelFromProvider(i));return{statusPromise:t.then(i=>this.isModelValid(i)?e.isCancellationRequested?sm.CANCELED:(this._stickyModel=this.createStickyModel(e,i),sm.VALID):this._invalid()).then(void 0,i=>(Mt(i),sm.CANCELED)),modelPromise:t}}isModelValid(e){return!0}isProviderValid(){return!0}}let tH=class extends Yge{constructor(e,t){super(e),this._languageFeaturesService=t}createModelFromProvider(e){return Mf.create(this._languageFeaturesService.documentSymbolProvider,this._editor.getModel(),e)}createStickyModel(e,t){var i;const{stickyOutlineElement:s,providerID:o}=this._stickyModelFromOutlineModel(t,(i=this._stickyModel)===null||i===void 0?void 0:i.outlineProviderId),r=this._editor.getModel();return new Zge(r.uri,r.getVersionId(),s,o)}isModelValid(e){return e&&e.children.size>0}_stickyModelFromOutlineModel(e,t){let i;if(oi.first(e.children.values())instanceof mge){const a=oi.find(e.children.values(),l=>l.id===t);if(a)i=a.children;else{let l="",c=-1,d;for(const[u,h]of e.children.entries()){const f=this._findSumOfRangesOfGroup(h);f>c&&(d=h,c=f,l=h.id)}t=l,i=d.children}}else i=e.children;const s=[],o=Array.from(i.values()).sort((a,l)=>{const c=new Ox(a.symbol.range.startLineNumber,a.symbol.range.endLineNumber),d=new Ox(l.symbol.range.startLineNumber,l.symbol.range.endLineNumber);return this._comparator(c,d)});for(const a of o)s.push(this._stickyModelFromOutlineElement(a,a.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new DR(void 0,s,void 0),providerID:t}}_stickyModelFromOutlineElement(e,t){const i=[];for(const o of e.children.values())if(o.symbol.selectionRange.startLineNumber!==o.symbol.range.endLineNumber)if(o.symbol.selectionRange.startLineNumber!==t)i.push(this._stickyModelFromOutlineElement(o,o.symbol.selectionRange.startLineNumber));else for(const r of o.children.values())i.push(this._stickyModelFromOutlineElement(r,o.symbol.selectionRange.startLineNumber));i.sort((o,r)=>this._comparator(o.range,r.range));const s=new Ox(e.symbol.selectionRange.startLineNumber,e.symbol.range.endLineNumber);return new DR(s,i,void 0)}_comparator(e,t){return e.startLineNumber!==t.startLineNumber?e.startLineNumber-t.startLineNumber:t.endLineNumber-e.endLineNumber}_findSumOfRangesOfGroup(e){let t=0;for(const i of e.children.values())t+=this._findSumOfRangesOfGroup(i);return e instanceof bW?t+e.symbol.range.endLineNumber-e.symbol.selectionRange.startLineNumber:t}};tH=hO([Mk(1,Xe)],tH);class Xge extends Yge{constructor(e){super(e),this._foldingLimitReporter=new fge(e)}createStickyModel(e,t){const i=this._fromFoldingRegions(t),s=this._editor.getModel();return new Zge(s.uri,s.getVersionId(),i,void 0)}isModelValid(e){return e!==null}_fromFoldingRegions(e){const t=e.length,i=[],s=new DR(void 0,[],void 0);for(let o=0;o0&&(this.provider=this._register(new PU(e.getModel(),s,t,this._foldingLimitReporter,void 0)))}isProviderValid(){return this.provider!==void 0}async createModelFromProvider(e){var t,i;return(i=(t=this.provider)===null||t===void 0?void 0:t.compute(e))!==null&&i!==void 0?i:null}};nH=hO([Mk(2,Xe)],nH);var bnt=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Jte=function(n,e){return function(t,i){e(t,i,n)}};class Cnt{constructor(e,t,i){this.startLineNumber=e,this.endLineNumber=t,this.nestingDepth=i}}let sH=class extends ne{constructor(e,t,i){super(),this._languageFeaturesService=t,this._languageConfigurationService=i,this._onDidChangeStickyScroll=this._register(new X),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=e,this._sessionStore=this._register(new be),this._updateSoon=this._register(new Xi(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(115)&&this.readConfiguration()})),this.readConfiguration()}readConfiguration(){this._sessionStore.clear(),this._editor.getOption(115).enabled&&(this._sessionStore.add(this._editor.onDidChangeModel(()=>{this._model=null,this.updateStickyModelProvider(),this._onDidChangeStickyScroll.fire(),this.update()})),this._sessionStore.add(this._editor.onDidChangeHiddenAreas(()=>this.update())),this._sessionStore.add(this._editor.onDidChangeModelContent(()=>this._updateSoon.schedule())),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>this.update())),this._sessionStore.add(dt(()=>{var t;(t=this._stickyModelProvider)===null||t===void 0||t.dispose(),this._stickyModelProvider=null})),this.updateStickyModelProvider(),this.update())}getVersionId(){var e;return(e=this._model)===null||e===void 0?void 0:e.version}updateStickyModelProvider(){var e;(e=this._stickyModelProvider)===null||e===void 0||e.dispose(),this._stickyModelProvider=null;const t=this._editor;t.hasModel()&&(this._stickyModelProvider=new eH(t,()=>this._updateSoon.schedule(),this._languageConfigurationService,this._languageFeaturesService))}async update(){var e;(e=this._cts)===null||e===void 0||e.dispose(!0),this._cts=new $n,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(e){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization()){this._model=null;return}const t=await this._stickyModelProvider.update(e);e.isCancellationRequested||(this._model=t)}updateIndex(e){return e===-1?e=0:e<0&&(e=-e-2),e}getCandidateStickyLinesIntersectingFromStickyModel(e,t,i,s,o){if(t.children.length===0)return;let r=o;const a=[];for(let d=0;dd-u)),c=this.updateIndex(tL(a,e.startLineNumber+s,(d,u)=>d-u));for(let d=l;d<=c;d++){const u=t.children[d];if(!u)return;if(u.range){const h=u.range.startLineNumber,f=u.range.endLineNumber;e.startLineNumber<=f+1&&h-1<=e.endLineNumber&&h!==r&&(r=h,i.push(new Cnt(h,f-1,s+1)),this.getCandidateStickyLinesIntersectingFromStickyModel(e,u,i,s+1,h))}else this.getCandidateStickyLinesIntersectingFromStickyModel(e,u,i,s,o)}}getCandidateStickyLinesIntersecting(e){var t,i;if(!(!((t=this._model)===null||t===void 0)&&t.element))return[];let s=[];this.getCandidateStickyLinesIntersectingFromStickyModel(e,this._model.element,s,0,-1);const o=(i=this._editor._getViewModel())===null||i===void 0?void 0:i.getHiddenAreas();if(o)for(const r of o)s=s.filter(a=>!(a.startLineNumber>=r.startLineNumber&&a.endLineNumber<=r.endLineNumber+1));return s}};sH=bnt([Jte(1,Xe),Jte(2,gn)],sH);var wnt=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Zb=function(n,e){return function(t,i){e(t,i,n)}},oH;let Fh=oH=class extends ne{constructor(e,t,i,s,o,r,a){super(),this._editor=e,this._contextMenuService=t,this._languageFeaturesService=i,this._instaService=s,this._contextKeyService=a,this._sessionStore=new be,this._foldingModel=null,this._maxStickyLines=Number.MAX_SAFE_INTEGER,this._candidateDefinitionsLength=-1,this._focusedStickyElementIndex=-1,this._enabled=!1,this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1,this._endLineNumbers=[],this._showEndForLine=null,this._stickyScrollWidget=new mnt(this._editor),this._stickyLineCandidateProvider=new sH(this._editor,i,o),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=new Zte([],[],0),this._onDidResize(),this._readConfiguration();const l=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeConfiguration(d=>{this._readConfigurationChange(d)})),this._register(ce(l,Le.CONTEXT_MENU,async d=>{this._onContextMenu(gt(l),d)})),this._stickyScrollFocusedContextKey=W.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=W.stickyScrollVisible.bindTo(this._contextKeyService);const c=this._register(ou(l));this._register(c.onDidBlur(d=>{this._positionRevealed===!1&&l.clientHeight===0?(this._focusedStickyElementIndex=-1,this.focus()):this._disposeFocusStickyScrollStore()})),this._register(c.onDidFocus(d=>{this.focus()})),this._registerMouseListeners(),this._register(ce(l,Le.MOUSE_DOWN,d=>{this._onMouseDown=!0}))}static get(e){return e.getContribution(oH.ID)}_disposeFocusStickyScrollStore(){var e;this._stickyScrollFocusedContextKey.set(!1),(e=this._focusDisposableStore)===null||e===void 0||e.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}focus(){if(this._onMouseDown){this._onMouseDown=!1,this._editor.focus();return}this._stickyScrollFocusedContextKey.get()!==!0&&(this._focused=!0,this._focusDisposableStore=new be,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}focusNext(){this._focusedStickyElementIndex0&&this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(e){this._focusedStickyElementIndex=e?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){const e=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:e[this._focusedStickyElementIndex],column:1})}_revealPosition(e){this._reveaInEditor(e,()=>this._editor.revealPosition(e))}_revealLineInCenterIfOutsideViewport(e){this._reveaInEditor(e,()=>this._editor.revealLineInCenterIfOutsideViewport(e.lineNumber,0))}_reveaInEditor(e,t){this._focused&&this._disposeFocusStickyScrollStore(),this._positionRevealed=!0,t(),this._editor.setSelection(A.fromPositions(e)),this._editor.focus()}_registerMouseListeners(){const e=this._register(new be),t=this._register(new RP(this._editor,{extractLineNumberFromMouseEvent:o=>{const r=this._stickyScrollWidget.getEditorPositionFromNode(o.target.element);return r?r.lineNumber:0}})),i=o=>{if(!this._editor.hasModel()||o.target.type!==12||o.target.detail!==this._stickyScrollWidget.getId())return null;const r=o.target.element;if(!r||r.innerText!==r.innerHTML)return null;const a=this._stickyScrollWidget.getEditorPositionFromNode(r);return a?{range:new A(a.lineNumber,a.column,a.lineNumber,a.column+r.innerText.length),textElement:r}:null},s=this._stickyScrollWidget.getDomNode();this._register(rs(s,Le.CLICK,o=>{if(o.ctrlKey||o.altKey||o.metaKey||!o.leftButton)return;if(o.shiftKey){const c=this._stickyScrollWidget.getLineIndexFromChildDomNode(o.target);if(c===null)return;const d=new ee(this._endLineNumbers[c],1);this._revealLineInCenterIfOutsideViewport(d);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(o.target)){const c=this._stickyScrollWidget.getLineNumberFromChildDomNode(o.target);this._toggleFoldingRegionForLine(c);return}if(!this._stickyScrollWidget.isInStickyLine(o.target))return;let l=this._stickyScrollWidget.getEditorPositionFromNode(o.target);if(!l){const c=this._stickyScrollWidget.getLineNumberFromChildDomNode(o.target);if(c===null)return;l=new ee(c,1)}this._revealPosition(l)})),this._register(rs(s,Le.MOUSE_MOVE,o=>{if(o.shiftKey){const r=this._stickyScrollWidget.getLineIndexFromChildDomNode(o.target);if(r===null||this._showEndForLine!==null&&this._showEndForLine===r)return;this._showEndForLine=r,this._renderStickyScroll();return}this._showEndForLine!==null&&(this._showEndForLine=null,this._renderStickyScroll())})),this._register(ce(s,Le.MOUSE_LEAVE,o=>{this._showEndForLine!==null&&(this._showEndForLine=null,this._renderStickyScroll())})),this._register(t.onMouseMoveOrRelevantKeyDown(([o,r])=>{const a=i(o);if(!a||!o.hasTriggerModifier||!this._editor.hasModel()){e.clear();return}const{range:l,textElement:c}=a;if(!l.equalsRange(this._stickyRangeProjectedOnEditor))this._stickyRangeProjectedOnEditor=l,e.clear();else if(c.style.textDecoration==="underline")return;const d=new $n;e.add(dt(()=>d.dispose(!0)));let u;WP(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new ee(l.startLineNumber,l.startColumn+1),d.token).then(h=>{if(!d.token.isCancellationRequested)if(h.length!==0){this._candidateDefinitionsLength=h.length;const f=c;u!==f?(e.clear(),u=f,u.style.textDecoration="underline",e.add(dt(()=>{u.style.textDecoration="none"}))):u||(u=f,u.style.textDecoration="underline",e.add(dt(()=>{u.style.textDecoration="none"})))}else e.clear()})})),this._register(t.onCancel(()=>{e.clear()})),this._register(t.onExecute(async o=>{if(o.target.type!==12||o.target.detail!==this._stickyScrollWidget.getId())return;const r=this._stickyScrollWidget.getEditorPositionFromNode(o.target.element);r&&(!this._editor.hasModel()||!this._stickyRangeProjectedOnEditor||(this._candidateDefinitionsLength>1&&(this._focused&&this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:r.lineNumber,column:1})),this._instaService.invokeFunction(Kfe,o,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor})))}))}_onContextMenu(e,t){const i=new Kc(e,t);this._contextMenuService.showContextMenu({menuId:R.StickyScrollContext,getAnchor:()=>i})}_toggleFoldingRegionForLine(e){if(!this._foldingModel||e===null)return;const t=this._stickyScrollWidget.getRenderedStickyLine(e),i=t==null?void 0:t.foldingIcon;if(!i)return;lge(this._foldingModel,Number.MAX_VALUE,[e]),i.isCollapsed=!i.isCollapsed;const s=(i.isCollapsed?this._editor.getTopForLineNumber(i.foldingEndLine):this._editor.getTopForLineNumber(i.foldingStartLine))-this._editor.getOption(67)*t.index+1;this._editor.setScrollTop(s),this._renderStickyScroll(e)}_readConfiguration(){const e=this._editor.getOption(115);if(e.enabled===!1){this._editor.removeOverlayWidget(this._stickyScrollWidget),this._sessionStore.clear(),this._enabled=!1;return}else e.enabled&&!this._enabled&&(this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange(i=>{i.scrollTopChanged&&(this._showEndForLine=null,this._renderStickyScroll())})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens(i=>this._onTokensChange(i))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(()=>{this._showEndForLine=null,this._renderStickyScroll()})),this._enabled=!0);this._editor.getOption(68).renderType===2&&this._sessionStore.add(this._editor.onDidChangeCursorPosition(()=>{this._showEndForLine=null,this._renderStickyScroll(0)}))}_readConfigurationChange(e){(e.hasChanged(115)||e.hasChanged(73)||e.hasChanged(67)||e.hasChanged(110)||e.hasChanged(68))&&this._readConfiguration(),e.hasChanged(68)&&this._renderStickyScroll(0)}_needsUpdate(e){const t=this._stickyScrollWidget.getCurrentLines();for(const i of t)for(const s of e.ranges)if(i>=s.fromLineNumber&&i<=s.toLineNumber)return!0;return!1}_onTokensChange(e){this._needsUpdate(e)&&this._renderStickyScroll(0)}_onDidResize(){const t=this._editor.getLayoutInfo().height/this._editor.getOption(67);this._maxStickyLines=Math.round(t*.25)}async _renderStickyScroll(e){var t,i;const s=this._editor.getModel();if(!s||s.isTooLargeForTokenization()){this._foldingModel=null,this._stickyScrollWidget.setState(void 0,null);return}const o=this._stickyLineCandidateProvider.getVersionId();if(o===void 0||o===s.getVersionId())if(this._foldingModel=(i=await((t=Rg.get(this._editor))===null||t===void 0?void 0:t.getFoldingModel()))!==null&&i!==void 0?i:null,this._widgetState=this.findScrollWidgetState(),this._stickyScrollVisibleContextKey.set(this._widgetState.startLineNumbers.length!==0),!this._focused)this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,e);else if(this._focusedStickyElementIndex===-1)this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,e),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,this._focusedStickyElementIndex!==-1&&this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);else{const r=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,e),this._stickyScrollWidget.lineNumberCount===0?this._focusedStickyElementIndex=-1:(this._stickyScrollWidget.lineNumbers.includes(r)||(this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1),this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}}findScrollWidgetState(){const e=this._editor.getOption(67),t=Math.min(this._maxStickyLines,this._editor.getOption(115).maxLineCount),i=this._editor.getScrollTop();let s=0;const o=[],r=[],a=this._editor.getVisibleRanges();if(a.length!==0){const l=new Ox(a[0].startLineNumber,a[a.length-1].endLineNumber),c=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(l);for(const d of c){const u=d.startLineNumber,h=d.endLineNumber,f=d.nestingDepth;if(h-u>0){const g=(f-1)*e,p=f*e,_=this._editor.getBottomForLineNumber(u)-i,b=this._editor.getTopForLineNumber(h)-i,w=this._editor.getBottomForLineNumber(h)-i;if(g>b&&g<=w){o.push(u),r.push(h+1),s=w-p;break}else p>_&&p<=w&&(o.push(u),r.push(h+1));if(o.length===t)break}}}return this._endLineNumbers=r,new Zte(o,r,s,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}};Fh.ID="store.contrib.stickyScrollController";Fh=oH=wnt([Zb(1,za),Zb(2,Xe),Zb(3,ht),Zb(4,gn),Zb(5,_c),Zb(6,Ct)],Fh);class ynt extends zr{constructor(){super({id:"editor.action.toggleStickyScroll",title:{...Nt("toggleEditorStickyScroll","Toggle Editor Sticky Scroll"),mnemonicTitle:v({},"&&Toggle Editor Sticky Scroll")},metadata:{description:Nt("toggleEditorStickyScroll.description","Toggle/enable the editor sticky scroll which shows the nested scopes at the top of the viewport")},category:gnt.View,toggled:{condition:pe.equals("config.editor.stickyScroll.enabled",!0),title:v("stickyScroll","Sticky Scroll"),mnemonicTitle:v({},"&&Sticky Scroll")},menu:[{id:R.CommandPalette},{id:R.MenubarAppearanceMenu,group:"4_editor",order:3},{id:R.StickyScrollContext}]})}async run(e){const t=e.get(qt),i=!t.getValue("editor.stickyScroll.enabled");return t.updateValue("editor.stickyScroll.enabled",i)}}const fO=100;class Snt extends mu{constructor(){super({id:"editor.action.focusStickyScroll",title:{...Nt("focusStickyScroll","Focus on the editor sticky scroll"),mnemonicTitle:v({},"&&Focus Sticky Scroll")},precondition:pe.and(pe.has("config.editor.stickyScroll.enabled"),W.stickyScrollVisible),menu:[{id:R.CommandPalette}]})}runEditorCommand(e,t){var i;(i=Fh.get(t))===null||i===void 0||i.focus()}}class xnt extends mu{constructor(){super({id:"editor.action.selectNextStickyScrollLine",title:Nt("selectNextStickyScrollLine.title","Select the next editor sticky scroll line"),precondition:W.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:fO,primary:18}})}runEditorCommand(e,t){var i;(i=Fh.get(t))===null||i===void 0||i.focusNext()}}class Lnt extends mu{constructor(){super({id:"editor.action.selectPreviousStickyScrollLine",title:Nt("selectPreviousStickyScrollLine.title","Select the previous sticky scroll line"),precondition:W.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:fO,primary:16}})}runEditorCommand(e,t){var i;(i=Fh.get(t))===null||i===void 0||i.focusPrevious()}}class knt extends mu{constructor(){super({id:"editor.action.goToFocusedStickyScrollLine",title:Nt("goToFocusedStickyScrollLine.title","Go to the focused sticky scroll line"),precondition:W.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:fO,primary:3}})}runEditorCommand(e,t){var i;(i=Fh.get(t))===null||i===void 0||i.goToFocused()}}class Dnt extends mu{constructor(){super({id:"editor.action.selectEditor",title:Nt("selectEditor.title","Select Editor"),precondition:W.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:fO,primary:9}})}runEditorCommand(e,t){var i;(i=Fh.get(t))===null||i===void 0||i.selectEditor()}}bi(Fh.ID,Fh,1);dn(ynt);dn(Snt);dn(Lnt);dn(xnt);dn(knt);dn(Dnt);var Qge=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},VS=function(n,e){return function(t,i){e(t,i,n)}};class Int{constructor(e,t,i,s,o,r){this.range=e,this.insertText=t,this.filterText=i,this.additionalTextEdits=s,this.command=o,this.completion=r}}let rH=class extends yAe{constructor(e,t,i,s,o,r){super(o.disposable),this.model=e,this.line=t,this.word=i,this.completionModel=s,this._suggestMemoryService=r}canBeReused(e,t,i){return this.model===e&&this.line===t&&this.word.word.length>0&&this.word.startColumn===i.startColumn&&this.word.endColumn=0&&l.resolve(Qt.None)}return t}};rH=Qge([VS(5,ZP)],rH);let aH=class extends ne{constructor(e,t,i,s){super(),this._languageFeatureService=e,this._clipboardService=t,this._suggestMemoryService=i,this._editorService=s,this._store.add(e.inlineCompletionsProvider.register("*",this))}async provideInlineCompletions(e,t,i,s){var o;if(i.selectedSuggestionInfo)return;let r;for(const g of this._editorService.listCodeEditors())if(g.getModel()===e){r=g;break}if(!r)return;const a=r.getOption(89);if(P1.isAllOff(a))return;e.tokenization.tokenizeIfCheap(t.lineNumber);const l=e.tokenization.getLineTokens(t.lineNumber),c=l.getStandardTokenType(l.findTokenIndexAtOffset(Math.max(t.column-1-1,0)));if(P1.valueFor(a,c)!=="inline")return;let d=e.getWordAtPosition(t),u;if(d!=null&&d.word||(u=this._getTriggerCharacterInfo(e,t)),!(d!=null&&d.word)&&!u||(d||(d=e.getWordUntilPosition(t)),d.endColumn!==t.column))return;let h;const f=e.getValueInRange(new A(t.lineNumber,1,t.lineNumber,t.column));if(!u&&(!((o=this._lastResult)===null||o===void 0)&&o.canBeReused(e,t.lineNumber,d))){const g=new Fte(f,t.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=g,this._lastResult.acquire(),h=this._lastResult}else{const g=await OU(this._languageFeatureService.completionProvider,e,t,new yk(void 0,SR.createSuggestFilter(r).itemKind,u==null?void 0:u.providers),u&&{triggerKind:1,triggerCharacter:u.ch},s);let p;g.needsClipboard&&(p=await this._clipboardService.readText());const _=new Fp(g.items,t.column,new Fte(f,0),Pd.None,r.getOption(118),r.getOption(112),{boostFullMatch:!1,firstMatchCanBeWeak:!1},p);h=new rH(e,t.lineNumber,d,_,g,this._suggestMemoryService)}return this._lastResult=h,h}handleItemDidShow(e,t){t.completion.resolve(Qt.None)}freeInlineCompletions(e){e.release()}_getTriggerCharacterInfo(e,t){var i;const s=e.getValueInRange(A.fromPositions({lineNumber:t.lineNumber,column:t.column-1},t)),o=new Set;for(const r of this._languageFeatureService.completionProvider.all(e))!((i=r.triggerCharacters)===null||i===void 0)&&i.includes(s)&&o.add(r);if(o.size!==0)return{providers:o,ch:s}}};aH=Qge([VS(0,Xe),VS(1,zg),VS(2,ZP),VS(3,vi)],aH);WD(aH);class Ent extends Ke{constructor(){super({id:"editor.action.forceRetokenize",label:v("forceRetokenize","Developer: Force Retokenize"),alias:"Developer: Force Retokenize",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getModel();i.tokenization.resetTokenization();const s=new xo;i.tokenization.forceTokenization(i.getLineCount()),s.stop(),console.log(`tokenization took ${s.elapsed()}`)}}xe(Ent);class gO extends zr{constructor(){super({id:gO.ID,title:Nt({},"Toggle Tab Key Moves Focus"),precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},metadata:{description:Nt("tabMovesFocusDescriptions","Determines whether the tab key moves focus around the workbench or inserts the tab character in the current editor. This is also called tab trapping, tab navigation, or tab focus mode.")},f1:!0})}run(){const t=!FC.getTabFocusMode();FC.setTabFocusMode(t),la(t?v("toggle.tabMovesFocus.on","Pressing Tab will now move focus to the next focusable element"):v("toggle.tabMovesFocus.off","Pressing Tab will now insert the tab character"))}}gO.ID="editor.action.toggleTabFocusMode";dn(gO);var Tnt=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},eie=function(n,e){return function(t,i){e(t,i,n)}};let lH=class extends ne{get enabled(){return this._enabled}set enabled(e){e?(this.el.setAttribute("aria-disabled","false"),this.el.tabIndex=0,this.el.style.pointerEvents="auto",this.el.style.opacity="1",this.el.style.cursor="pointer",this._enabled=!1):(this.el.setAttribute("aria-disabled","true"),this.el.tabIndex=-1,this.el.style.pointerEvents="none",this.el.style.opacity="0.4",this.el.style.cursor="default",this._enabled=!0),this._enabled=e}constructor(e,t,i={},s,o){var r,a;super(),this._link=t,this._hoverService=s,this._enabled=!0,this.el=we(e,ke("a.monaco-link",{tabIndex:(r=t.tabIndex)!==null&&r!==void 0?r:0,href:t.href},t.label)),this.hoverDelegate=(a=i.hoverDelegate)!==null&&a!==void 0?a:Ur("mouse"),this.setTooltip(t.title),this.el.setAttribute("role","button");const l=this._register(new ei(this.el,"click")),c=this._register(new ei(this.el,"keypress")),d=Ae.chain(c.event,f=>f.map(g=>new ln(g)).filter(g=>g.keyCode===3)),u=this._register(new ei(this.el,fn.Tap)).event;this._register(hn.addTarget(this.el));const h=Ae.any(l.event,d,u);this._register(h(f=>{this.enabled&&(ii.stop(f,!0),i!=null&&i.opener?i.opener(this._link.href):o.open(this._link.href,{allowCommands:!0}))})),this.enabled=!0}setTooltip(e){this.hoverDelegate.showNativeHover?this.el.title=e??"":!this.hover&&e?this.hover=this._register(this._hoverService.setupUpdatableHover(this.hoverDelegate,this.el,e)):this.hover&&this.hover.update(e)}};lH=Tnt([eie(3,$h),eie(4,$a)],lH);var Jge=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},epe=function(n,e){return function(t,i){e(t,i,n)}};const Nnt=26;let cH=class extends ne{constructor(e,t){super(),this._editor=e,this.instantiationService=t,this.banner=this._register(this.instantiationService.createInstance(dH))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(e){this.banner.show({...e,onClose:()=>{var t;this.hide(),(t=e.onClose)===null||t===void 0||t.call(e)}}),this._editor.setBanner(this.banner.element,Nnt)}};cH=Jge([epe(1,ht)],cH);let dH=class extends ne{constructor(e){super(),this.instantiationService=e,this.markdownRenderer=this.instantiationService.createInstance(Nh,{}),this.element=ke("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(e){if(e.ariaLabel)return e.ariaLabel;if(typeof e.message=="string")return e.message}getBannerMessage(e){if(typeof e=="string"){const t=ke("span");return t.innerText=e,t}return this.markdownRenderer.render(e).element}clear(){wo(this.element)}show(e){wo(this.element);const t=this.getAriaLabel(e);t&&this.element.setAttribute("aria-label",t);const i=we(this.element,ke("div.icon-container"));i.setAttribute("aria-hidden","true"),e.icon&&i.appendChild(ke(`div${_t.asCSSSelector(e.icon)}`));const s=we(this.element,ke("div.message-container"));if(s.setAttribute("aria-hidden","true"),s.appendChild(this.getBannerMessage(e.message)),this.messageActionsContainer=we(this.element,ke("div.message-actions-container")),e.actions)for(const r of e.actions)this._register(this.instantiationService.createInstance(lH,this.messageActionsContainer,{...r,tabIndex:-1},{}));const o=we(this.element,ke("div.action-container"));this.actionBar=this._register(new hc(o)),this.actionBar.push(this._register(new Ta("banner.close","Close Banner",_t.asClassName(Aue),!0,()=>{typeof e.onClose=="function"&&e.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};dH=Jge([epe(0,ht)],dH);var YU=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},pC=function(n,e){return function(t,i){e(t,i,n)}};const Ant=Jn("extensions-warning-message",Te.warning,v("warningIcon","Icon shown with a warning message in the extensions editor."));let mw=class extends ne{constructor(e,t,i,s){super(),this._editor=e,this._editorWorkerService=t,this._workspaceTrustService=i,this._highlighter=null,this._bannerClosed=!1,this._updateState=o=>{if(o&&o.hasMore){if(this._bannerClosed)return;const r=Math.max(o.ambiguousCharacterCount,o.nonBasicAsciiCharacterCount,o.invisibleCharacterCount);let a;if(o.nonBasicAsciiCharacterCount>=r)a={message:v("unicodeHighlighting.thisDocumentHasManyNonBasicAsciiUnicodeCharacters","This document contains many non-basic ASCII unicode characters"),command:new ey};else if(o.ambiguousCharacterCount>=r)a={message:v("unicodeHighlighting.thisDocumentHasManyAmbiguousUnicodeCharacters","This document contains many ambiguous unicode characters"),command:new w_};else if(o.invisibleCharacterCount>=r)a={message:v("unicodeHighlighting.thisDocumentHasManyInvisibleUnicodeCharacters","This document contains many invisible unicode characters"),command:new Jw};else throw new Error("Unreachable");this._bannerController.show({id:"unicodeHighlightBanner",message:a.message,icon:Ant,actions:[{label:a.command.shortLabel,href:`command:${a.command.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(s.createInstance(cH,e)),this._register(this._editor.onDidChangeModel(()=>{this._bannerClosed=!1,this._updateHighlighter()})),this._options=e.getOption(125),this._register(i.onDidChangeTrust(o=>{this._updateHighlighter()})),this._register(e.onDidChangeConfiguration(o=>{o.hasChanged(125)&&(this._options=e.getOption(125),this._updateHighlighter())})),this._updateHighlighter()}dispose(){this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),!this._editor.hasModel())return;const e=Rnt(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([e.nonBasicASCII,e.ambiguousCharacters,e.invisibleCharacters].every(i=>i===!1))return;const t={nonBasicASCII:e.nonBasicASCII,ambiguousCharacters:e.ambiguousCharacters,invisibleCharacters:e.invisibleCharacters,includeComments:e.includeComments,includeStrings:e.includeStrings,allowedCodePoints:Object.keys(e.allowedCharacters).map(i=>i.codePointAt(0)),allowedLocales:Object.keys(e.allowedLocales).map(i=>i==="_os"?new Intl.NumberFormat().resolvedOptions().locale:i==="_vscode"?w2e:i)};this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)?this._highlighter=new uH(this._editor,t,this._updateState,this._editorWorkerService):this._highlighter=new Mnt(this._editor,t,this._updateState)}getDecorationInfo(e){return this._highlighter?this._highlighter.getDecorationInfo(e):null}};mw.ID="editor.contrib.unicodeHighlighter";mw=YU([pC(1,bc),pC(2,Ide),pC(3,ht)],mw);function Rnt(n,e){return{nonBasicASCII:e.nonBasicASCII===Qa?!n:e.nonBasicASCII,ambiguousCharacters:e.ambiguousCharacters,invisibleCharacters:e.invisibleCharacters,includeComments:e.includeComments===Qa?!n:e.includeComments,includeStrings:e.includeStrings===Qa?!n:e.includeStrings,allowedCharacters:e.allowedCharacters,allowedLocales:e.allowedLocales}}let uH=class extends ne{constructor(e,t,i,s){super(),this._editor=e,this._options=t,this._updateState=i,this._editorWorkerService=s,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new Xi(()=>this._update(),250)),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const e=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then(t=>{if(this._model.isDisposed()||this._model.getVersionId()!==e)return;this._updateState(t);const i=[];if(!t.hasMore)for(const s of t.ranges)i.push({range:s,options:IR.instance.getDecorationFromOptions(this._options)});this._decorations.set(i)})}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel();if(!i$(t,e))return null;const i=t.getValueInRange(e.range);return{reason:ipe(i,this._options),inComment:n$(t,e),inString:s$(t,e)}}};uH=YU([pC(3,bc)],uH);class Mnt extends ne{constructor(e,t,i){super(),this._editor=e,this._options=t,this._updateState=i,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new Xi(()=>this._update(),250)),this._register(this._editor.onDidLayoutChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidScrollChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeHiddenAreas(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const e=this._editor.getVisibleRanges(),t=[],i={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(const s of e){const o=fz.computeUnicodeHighlights(this._model,this._options,s);for(const r of o.ranges)i.ranges.push(r);i.ambiguousCharacterCount+=i.ambiguousCharacterCount,i.invisibleCharacterCount+=i.invisibleCharacterCount,i.nonBasicAsciiCharacterCount+=i.nonBasicAsciiCharacterCount,i.hasMore=i.hasMore||o.hasMore}if(!i.hasMore)for(const s of i.ranges)t.push({range:s,options:IR.instance.getDecorationFromOptions(this._options)});this._updateState(i),this._decorations.set(t)}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel(),i=t.getValueInRange(e.range);return i$(t,e)?{reason:ipe(i,this._options),inComment:n$(t,e),inString:s$(t,e)}:null}}const tpe=v("unicodeHighlight.configureUnicodeHighlightOptions","Configure Unicode Highlight Options");let hH=class{constructor(e,t,i){this._editor=e,this._languageService=t,this._openerService=i,this.hoverOrdinal=5}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1)return[];const i=this._editor.getModel(),s=this._editor.getContribution(mw.ID);if(!s)return[];const o=[],r=new Set;let a=300;for(const l of t){const c=s.getDecorationInfo(l);if(!c)continue;const u=i.getValueInRange(l.range).codePointAt(0),h=w3(u);let f;switch(c.reason.kind){case 0:{cD(c.reason.confusableWith)?f=v("unicodeHighlight.characterIsAmbiguousASCII","The character {0} could be confused with the ASCII character {1}, which is more common in source code.",h,w3(c.reason.confusableWith.codePointAt(0))):f=v("unicodeHighlight.characterIsAmbiguous","The character {0} could be confused with the character {1}, which is more common in source code.",h,w3(c.reason.confusableWith.codePointAt(0)));break}case 1:f=v("unicodeHighlight.characterIsInvisible","The character {0} is invisible.",h);break;case 2:f=v("unicodeHighlight.characterIsNonBasicAscii","The character {0} is not a basic ASCII character.",h);break}if(r.has(f))continue;r.add(f);const g={codePoint:u,reason:c.reason,inComment:c.inComment,inString:c.inString},p=v("unicodeHighlight.adjustSettings","Adjust settings"),_=`command:${JD.ID}?${encodeURIComponent(JSON.stringify(g))}`,b=new $o("",!0).appendMarkdown(f).appendText(" ").appendLink(_,p,tpe);o.push(new Wd(this,l.range,[b],!1,a++))}return o}renderHoverParts(e,t){return NYe(e,t,this._editor,this._languageService,this._openerService)}};hH=YU([pC(1,An),pC(2,$a)],hH);function fH(n){return`U+${n.toString(16).padStart(4,"0")}`}function w3(n){let e=`\`${fH(n)}\``;return mh.isInvisibleCharacter(n)||(e+=` "${`${Pnt(n)}`}"`),e}function Pnt(n){return n===96?"`` ` ``":"`"+String.fromCodePoint(n)+"`"}function ipe(n,e){return fz.computeUnicodeHighlightReason(n,e)}class IR{constructor(){this.map=new Map}getDecorationFromOptions(e){return this.getDecoration(!e.includeComments,!e.includeStrings)}getDecoration(e,t){const i=`${e}${t}`;let s=this.map.get(i);return s||(s=Wt.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:e,hideInStringTokens:t}),this.map.set(i,s)),s}}IR.instance=new IR;class Ont extends Ke{constructor(){super({id:w_.ID,label:v("action.unicodeHighlight.disableHighlightingInComments","Disable highlighting of characters in comments"),alias:"Disable highlighting of characters in comments",precondition:void 0}),this.shortLabel=v("unicodeHighlight.disableHighlightingInComments.shortLabel","Disable Highlight In Comments")}async run(e,t,i){const s=e==null?void 0:e.get(qt);s&&this.runAction(s)}async runAction(e){await e.updateValue(Jr.includeComments,!1,2)}}class Fnt extends Ke{constructor(){super({id:w_.ID,label:v("action.unicodeHighlight.disableHighlightingInStrings","Disable highlighting of characters in strings"),alias:"Disable highlighting of characters in strings",precondition:void 0}),this.shortLabel=v("unicodeHighlight.disableHighlightingInStrings.shortLabel","Disable Highlight In Strings")}async run(e,t,i){const s=e==null?void 0:e.get(qt);s&&this.runAction(s)}async runAction(e){await e.updateValue(Jr.includeStrings,!1,2)}}class w_ extends Ke{constructor(){super({id:w_.ID,label:v("action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters","Disable highlighting of ambiguous characters"),alias:"Disable highlighting of ambiguous characters",precondition:void 0}),this.shortLabel=v("unicodeHighlight.disableHighlightingOfAmbiguousCharacters.shortLabel","Disable Ambiguous Highlight")}async run(e,t,i){const s=e==null?void 0:e.get(qt);s&&this.runAction(s)}async runAction(e){await e.updateValue(Jr.ambiguousCharacters,!1,2)}}w_.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters";class Jw extends Ke{constructor(){super({id:Jw.ID,label:v("action.unicodeHighlight.disableHighlightingOfInvisibleCharacters","Disable highlighting of invisible characters"),alias:"Disable highlighting of invisible characters",precondition:void 0}),this.shortLabel=v("unicodeHighlight.disableHighlightingOfInvisibleCharacters.shortLabel","Disable Invisible Highlight")}async run(e,t,i){const s=e==null?void 0:e.get(qt);s&&this.runAction(s)}async runAction(e){await e.updateValue(Jr.invisibleCharacters,!1,2)}}Jw.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters";class ey extends Ke{constructor(){super({id:ey.ID,label:v("action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters","Disable highlighting of non basic ASCII characters"),alias:"Disable highlighting of non basic ASCII characters",precondition:void 0}),this.shortLabel=v("unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters.shortLabel","Disable Non ASCII Highlight")}async run(e,t,i){const s=e==null?void 0:e.get(qt);s&&this.runAction(s)}async runAction(e){await e.updateValue(Jr.nonBasicASCII,!1,2)}}ey.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters";class JD extends Ke{constructor(){super({id:JD.ID,label:v("action.unicodeHighlight.showExcludeOptions","Show Exclude Options"),alias:"Show Exclude Options",precondition:void 0})}async run(e,t,i){const{codePoint:s,reason:o,inString:r,inComment:a}=i,l=String.fromCodePoint(s),c=e.get(Cc),d=e.get(qt);function u(g){return mh.isInvisibleCharacter(g)?v("unicodeHighlight.excludeInvisibleCharFromBeingHighlighted","Exclude {0} (invisible character) from being highlighted",fH(g)):v("unicodeHighlight.excludeCharFromBeingHighlighted","Exclude {0} from being highlighted",`${fH(g)} "${l}"`)}const h=[];if(o.kind===0)for(const g of o.notAmbiguousInLocales)h.push({label:v("unicodeHighlight.allowCommonCharactersInLanguage",'Allow unicode characters that are more common in the language "{0}".',g),run:async()=>{Wnt(d,[g])}});if(h.push({label:u(s),run:()=>Bnt(d,[s])}),a){const g=new Ont;h.push({label:g.label,run:async()=>g.runAction(d)})}else if(r){const g=new Fnt;h.push({label:g.label,run:async()=>g.runAction(d)})}if(o.kind===0){const g=new w_;h.push({label:g.label,run:async()=>g.runAction(d)})}else if(o.kind===1){const g=new Jw;h.push({label:g.label,run:async()=>g.runAction(d)})}else if(o.kind===2){const g=new ey;h.push({label:g.label,run:async()=>g.runAction(d)})}else Hnt(o);const f=await c.pick(h,{title:tpe});f&&await f.run()}}JD.ID="editor.action.unicodeHighlight.showExcludeOptions";async function Bnt(n,e){const t=n.getValue(Jr.allowedCharacters);let i;typeof t=="object"&&t?i=t:i={};for(const s of e)i[String.fromCodePoint(s)]=!0;await n.updateValue(Jr.allowedCharacters,i,2)}async function Wnt(n,e){var t;const i=(t=n.inspect(Jr.allowedLocales).user)===null||t===void 0?void 0:t.value;let s;typeof i=="object"&&i?s=Object.assign({},i):s={};for(const o of e)s[o]=!0;await n.updateValue(Jr.allowedLocales,s,2)}function Hnt(n){throw new Error(`Unexpected value: ${n}`)}xe(w_);xe(Jw);xe(ey);xe(JD);bi(mw.ID,mw,1);b_.register(hH);var Vnt=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},tie=function(n,e){return function(t,i){e(t,i,n)}};const npe="ignoreUnusualLineTerminators";function znt(n,e,t){n.setModelProperty(e.uri,npe,t)}function $nt(n,e){return n.getModelProperty(e.uri,npe)}let Pk=class extends ne{constructor(e,t,i){super(),this._editor=e,this._dialogService=t,this._codeEditorService=i,this._isPresentingDialog=!1,this._config=this._editor.getOption(126),this._register(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(126)&&(this._config=this._editor.getOption(126),this._checkForUnusualLineTerminators())})),this._register(this._editor.onDidChangeModel(()=>{this._checkForUnusualLineTerminators()})),this._register(this._editor.onDidChangeModelContent(s=>{s.isUndoing||this._checkForUnusualLineTerminators()})),this._checkForUnusualLineTerminators()}async _checkForUnusualLineTerminators(){if(this._config==="off"||!this._editor.hasModel())return;const e=this._editor.getModel();if(!e.mightContainUnusualLineTerminators()||$nt(this._codeEditorService,e)===!0||this._editor.getOption(91))return;if(this._config==="auto"){e.removeUnusualLineTerminators(this._editor.getSelections());return}if(this._isPresentingDialog)return;let i;try{this._isPresentingDialog=!0,i=await this._dialogService.confirm({title:v("unusualLineTerminators.title","Unusual Line Terminators"),message:v("unusualLineTerminators.message","Detected unusual line terminators"),detail:v("unusualLineTerminators.detail","The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.",dc(e.uri)),primaryButton:v({key:"unusualLineTerminators.fix",comment:["&& denotes a mnemonic"]},"&&Remove Unusual Line Terminators"),cancelButton:v("unusualLineTerminators.ignore","Ignore")})}finally{this._isPresentingDialog=!1}if(!i.confirmed){znt(this._codeEditorService,e,!0);return}e.removeUnusualLineTerminators(this._editor.getSelections())}};Pk.ID="editor.contrib.unusualLineTerminatorsDetector";Pk=Vnt([tie(1,DD),tie(2,vi)],Pk);bi(Pk.ID,Pk,1);var spe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},jN=function(n,e){return function(t,i){e(t,i,n)}},Hs,gH;const pO=new He("hasWordHighlights",!1);function ope(n,e,t,i){const s=n.ordered(e);return QV(s.map(o=>()=>Promise.resolve(o.provideDocumentHighlights(e,t,i)).then(void 0,as)),Zo).then(o=>{if(o){const r=new hs;return r.set(e.uri,o),r}return new hs})}function Unt(n,e,t,i,s,o){const r=n.ordered(e);return QV(r.map(a=>()=>{const l=o.filter(c=>yle(c)).filter(c=>l$(a.selector,c.uri,c.getLanguageId(),!0,void 0,void 0)>0);return Promise.resolve(a.provideMultiDocumentHighlights(e,t,l,s)).then(void 0,as)}),a=>a instanceof hs&&a.size>0)}class XU{constructor(e,t,i){this._model=e,this._selection=t,this._wordSeparators=i,this._wordRange=this._getCurrentWordRange(e,t),this._result=null}get result(){return this._result||(this._result=Xs(e=>this._compute(this._model,this._selection,this._wordSeparators,e))),this._result}_getCurrentWordRange(e,t){const i=e.getWordAtPosition(t.getPosition());return i?new A(t.startLineNumber,i.startColumn,t.startLineNumber,i.endColumn):null}isValid(e,t,i){const s=t.startLineNumber,o=t.startColumn,r=t.endColumn,a=this._getCurrentWordRange(e,t);let l=!!(this._wordRange&&this._wordRange.equalsRange(a));for(let c=0,d=i.length;!l&&c=r&&(l=!0)}return l}cancel(){this.result.cancel()}}class jnt extends XU{constructor(e,t,i,s){super(e,t,i),this._providers=s}_compute(e,t,i,s){return ope(this._providers,e,t.getPosition(),s).then(o=>o||new hs)}}class Knt extends XU{constructor(e,t,i,s,o){super(e,t,i),this._providers=s,this._otherModels=o}_compute(e,t,i,s){return Unt(this._providers,e,t.getPosition(),i,s,this._otherModels).then(o=>o||new hs)}}class rpe extends XU{constructor(e,t,i,s,o){super(e,t,s),this._otherModels=o,this._selectionIsEmpty=t.isEmpty(),this._word=i}_compute(e,t,i,s){return Dg(250,s).then(()=>{const o=new hs;let r;if(this._word?r=this._word:r=e.getWordAtPosition(t.getPosition()),!r)return new hs;const a=[e,...this._otherModels];for(const l of a){if(l.isDisposed())continue;const d=l.findMatches(r.word,!0,!1,!0,i,!1).map(u=>({range:u.range,kind:lL.Text}));d&&o.set(l.uri,d)}return o})}isValid(e,t,i){const s=t.isEmpty();return this._selectionIsEmpty!==s?!1:super.isValid(e,t,i)}}function qnt(n,e,t,i,s){return n.has(e)?new jnt(e,t,s,n):new rpe(e,t,i,s,[])}function Gnt(n,e,t,i,s,o){return n.has(e)?new Knt(e,t,s,n,o):new rpe(e,t,i,s,o)}Vh("_executeDocumentHighlights",async(n,e,t)=>{const i=n.get(Xe),s=await ope(i.documentHighlightProvider,e,t,Qt.None);return s==null?void 0:s.get(e.uri)});let Ok=Hs=class{constructor(e,t,i,s,o){this.toUnhook=new be,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=new hs,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.editor=e,this.providers=t,this.multiDocumentProviders=i,this.codeEditorService=o,this._hasWordHighlights=pO.bindTo(s),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(81),this.model=this.editor.getModel(),this.toUnhook.add(e.onDidChangeCursorPosition(r=>{this._ignorePositionChangeEvent||this.occurrencesHighlight!=="off"&&this._onPositionChanged(r)})),this.toUnhook.add(e.onDidFocusEditorText(r=>{this.occurrencesHighlight!=="off"&&(this.workerRequest||this._run())})),this.toUnhook.add(e.onDidChangeModelContent(r=>{this._stopAll()})),this.toUnhook.add(e.onDidChangeModel(r=>{!r.newModelUrl&&r.oldModelUrl?this._stopSingular():Hs.query&&this._run()})),this.toUnhook.add(e.onDidChangeConfiguration(r=>{const a=this.editor.getOption(81);this.occurrencesHighlight!==a&&(this.occurrencesHighlight=a,this._stopAll())})),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,Hs.query&&this._run()}hasDecorations(){return this.decorations.length>0}restore(){this.occurrencesHighlight!=="off"&&this._run()}_getSortedHighlights(){return this.decorations.getRanges().sort(A.compareRangesUsingStarts)}moveNext(){const e=this._getSortedHighlights(),i=(e.findIndex(o=>o.containsPosition(this.editor.getPosition()))+1)%e.length,s=e[i];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(s.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(s);const o=this._getWord();if(o){const r=this.editor.getModel().getLineContent(s.startLineNumber);la(`${r}, ${i+1} of ${e.length} for '${o.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}moveBack(){const e=this._getSortedHighlights(),i=(e.findIndex(o=>o.containsPosition(this.editor.getPosition()))-1+e.length)%e.length,s=e[i];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(s.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(s);const o=this._getWord();if(o){const r=this.editor.getModel().getLineContent(s.startLineNumber);la(`${r}, ${i+1} of ${e.length} for '${o.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}_removeSingleDecorations(){if(!this.editor.hasModel())return;const e=Hs.storedDecorations.get(this.editor.getModel().uri);e&&(this.editor.removeDecorations(e),Hs.storedDecorations.delete(this.editor.getModel().uri),this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1)))}_removeAllDecorations(){const e=this.codeEditorService.listCodeEditors(),t=[];for(const i of e){if(!i.hasModel())continue;const s=Hs.storedDecorations.get(i.getModel().uri);if(!s)continue;i.removeDecorations(s),t.push(i.getModel().uri);const o=Pg.get(i);o!=null&&o.wordHighlighter&&o.wordHighlighter.decorations.length>0&&(o.wordHighlighter.decorations.clear(),o.wordHighlighter.workerRequest=null,o.wordHighlighter._hasWordHighlights.set(!1))}for(const i of t)Hs.storedDecorations.delete(i)}_stopSingular(){var e,t,i,s;this._removeSingleDecorations(),this.editor.hasTextFocus()&&(((e=this.editor.getModel())===null||e===void 0?void 0:e.uri.scheme)!==Tt.vscodeNotebookCell&&((i=(t=Hs.query)===null||t===void 0?void 0:t.modelInfo)===null||i===void 0?void 0:i.model.uri.scheme)!==Tt.vscodeNotebookCell?(Hs.query=null,this._run()):!((s=Hs.query)===null||s===void 0)&&s.modelInfo&&(Hs.query.modelInfo=null)),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_stopAll(){this._removeAllDecorations(),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_onPositionChanged(e){var t;if(this.occurrencesHighlight==="off"){this._stopAll();return}if(e.reason!==3&&((t=this.editor.getModel())===null||t===void 0?void 0:t.uri.scheme)!==Tt.vscodeNotebookCell){this._stopAll();return}this._run()}_getWord(){const e=this.editor.getSelection(),t=e.startLineNumber,i=e.startColumn;return this.model.isDisposed()?null:this.model.getWordAtPosition({lineNumber:t,column:i})}getOtherModelsToHighlight(e){if(!e)return[];if(e.uri.scheme===Tt.vscodeNotebookCell){const o=[],r=this.codeEditorService.listCodeEditors();for(const a of r){const l=a.getModel();l&&l!==e&&l.uri.scheme===Tt.vscodeNotebookCell&&o.push(l)}return o}const i=[],s=this.codeEditorService.listCodeEditors();for(const o of s){if(!nU(o))continue;const r=o.getModel();r&&e===r.modified&&i.push(r.modified)}if(i.length)return i;if(this.occurrencesHighlight==="singleFile")return[];for(const o of s){const r=o.getModel();r&&r!==e&&i.push(r)}return i}_run(){var e;let t;if(this.editor.hasTextFocus()){const s=this.editor.getSelection();if(!s||s.startLineNumber!==s.endLineNumber){Hs.query=null,this._stopAll();return}const o=s.startColumn,r=s.endColumn,a=this._getWord();if(!a||a.startColumn>o||a.endColumn{s===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=r||[],this._beginRenderDecorations())},Mt)}}computeWithModel(e,t,i,s){return s.length?Gnt(this.multiDocumentProviders,e,t,i,this.editor.getOption(131),s):qnt(this.providers,e,t,i,this.editor.getOption(131))}_beginRenderDecorations(){const e=new Date().getTime(),t=this.lastCursorPositionChangeTime+250;e>=t?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout(()=>{this.renderDecorations()},t-e)}renderDecorations(){var e,t,i;this.renderDecorationsTimer=-1;const s=this.codeEditorService.listCodeEditors();for(const o of s){const r=Pg.get(o);if(!r)continue;const a=[],l=(e=o.getModel())===null||e===void 0?void 0:e.uri;if(l&&this.workerRequestValue.has(l)){const c=Hs.storedDecorations.get(l),d=this.workerRequestValue.get(l);if(d)for(const h of d)h.range&&a.push({range:h.range,options:oit(h.kind)});let u=[];o.changeDecorations(h=>{u=h.deltaDecorations(c??[],a)}),Hs.storedDecorations=Hs.storedDecorations.set(l,u),a.length>0&&((t=r.wordHighlighter)===null||t===void 0||t.decorations.set(a),(i=r.wordHighlighter)===null||i===void 0||i._hasWordHighlights.set(!0))}}}dispose(){this._stopSingular(),this.toUnhook.dispose()}};Ok.storedDecorations=new hs;Ok.query=null;Ok=Hs=spe([jN(4,vi)],Ok);let Pg=gH=class extends ne{static get(e){return e.getContribution(gH.ID)}constructor(e,t,i,s){super(),this._wordHighlighter=null;const o=()=>{e.hasModel()&&!e.getModel().isTooLargeForTokenization()&&(this._wordHighlighter=new Ok(e,i.documentHighlightProvider,i.multiDocumentHighlightProvider,t,s))};this._register(e.onDidChangeModel(r=>{this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),o()})),o()}get wordHighlighter(){return this._wordHighlighter}saveViewState(){return!!(this._wordHighlighter&&this._wordHighlighter.hasDecorations())}moveNext(){var e;(e=this._wordHighlighter)===null||e===void 0||e.moveNext()}moveBack(){var e;(e=this._wordHighlighter)===null||e===void 0||e.moveBack()}restoreViewState(e){this._wordHighlighter&&e&&this._wordHighlighter.restore()}dispose(){this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),super.dispose()}};Pg.ID="editor.contrib.wordHighlighter";Pg=gH=spe([jN(1,Ct),jN(2,Xe),jN(3,vi)],Pg);class ape extends Ke{constructor(e,t){super(t),this._isNext=e}run(e,t){const i=Pg.get(t);i&&(this._isNext?i.moveNext():i.moveBack())}}class Znt extends ape{constructor(){super(!0,{id:"editor.action.wordHighlight.next",label:v("wordHighlight.next.label","Go to Next Symbol Highlight"),alias:"Go to Next Symbol Highlight",precondition:pO,kbOpts:{kbExpr:W.editorTextFocus,primary:65,weight:100}})}}class Ynt extends ape{constructor(){super(!1,{id:"editor.action.wordHighlight.prev",label:v("wordHighlight.previous.label","Go to Previous Symbol Highlight"),alias:"Go to Previous Symbol Highlight",precondition:pO,kbOpts:{kbExpr:W.editorTextFocus,primary:1089,weight:100}})}}class Xnt extends Ke{constructor(){super({id:"editor.action.wordHighlight.trigger",label:v("wordHighlight.trigger.label","Trigger Symbol Highlight"),alias:"Trigger Symbol Highlight",precondition:pO.toNegated(),kbOpts:{kbExpr:W.editorTextFocus,primary:0,weight:100}})}run(e,t,i){const s=Pg.get(t);s&&s.restoreViewState(!0)}}bi(Pg.ID,Pg,0);xe(Znt);xe(Ynt);xe(Xnt);class mO extends Us{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,i){if(!t.hasModel())return;const s=cc(t.getOption(131),t.getOption(130)),o=t.getModel(),a=t.getSelections().map(l=>{const c=new ee(l.positionLineNumber,l.positionColumn),d=this._move(s,o,c,this._wordNavigationType);return this._moveTo(l,d,this._inSelectionMode)});if(o.pushStackElement(),t._getViewModel().setCursorStates("moveWordCommand",3,a.map(l=>gi.fromModelSelection(l))),a.length===1){const l=new ee(a[0].positionLineNumber,a[0].positionColumn);t.revealPosition(l,0)}}_moveTo(e,t,i){return i?new it(e.selectionStartLineNumber,e.selectionStartColumn,t.lineNumber,t.column):new it(t.lineNumber,t.column,t.lineNumber,t.column)}}class y_ extends mO{_move(e,t,i,s){return ki.moveWordLeft(e,t,i,s)}}class S_ extends mO{_move(e,t,i,s){return ki.moveWordRight(e,t,i,s)}}class Qnt extends y_{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}class Jnt extends y_{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}class est extends y_{constructor(){var e;super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:pe.and(W.textInputFocus,(e=pe.and(vD,dP))===null||e===void 0?void 0:e.negate()),primary:2063,mac:{primary:527},weight:100}})}}class tst extends y_{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}class ist extends y_{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}class nst extends y_{constructor(){var e;super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:pe.and(W.textInputFocus,(e=pe.and(vD,dP))===null||e===void 0?void 0:e.negate()),primary:3087,mac:{primary:1551},weight:100}})}}class sst extends y_{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(e,t,i,s){return super._move(cc(gu.wordSeparators.defaultValue,e.intlSegmenterLocales),t,i,s)}}class ost extends y_{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(e,t,i,s){return super._move(cc(gu.wordSeparators.defaultValue,e.intlSegmenterLocales),t,i,s)}}class rst extends S_{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}class ast extends S_{constructor(){var e;super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:pe.and(W.textInputFocus,(e=pe.and(vD,dP))===null||e===void 0?void 0:e.negate()),primary:2065,mac:{primary:529},weight:100}})}}class lst extends S_{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}class cst extends S_{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}class dst extends S_{constructor(){var e;super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:pe.and(W.textInputFocus,(e=pe.and(vD,dP))===null||e===void 0?void 0:e.negate()),primary:3089,mac:{primary:1553},weight:100}})}}class ust extends S_{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}class hst extends S_{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(e,t,i,s){return super._move(cc(gu.wordSeparators.defaultValue,e.intlSegmenterLocales),t,i,s)}}class fst extends S_{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(e,t,i,s){return super._move(cc(gu.wordSeparators.defaultValue,e.intlSegmenterLocales),t,i,s)}}class _O extends Us{constructor(e){super(e),this._whitespaceHeuristics=e.whitespaceHeuristics,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,i){const s=e.get(gn);if(!t.hasModel())return;const o=cc(t.getOption(131),t.getOption(130)),r=t.getModel(),a=t.getSelections(),l=t.getOption(6),c=t.getOption(11),d=s.getLanguageConfiguration(r.getLanguageId()).getAutoClosingPairs(),u=t._getViewModel(),h=a.map(f=>{const g=this._delete({wordSeparators:o,model:r,selection:f,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:t.getOption(9),autoClosingBrackets:l,autoClosingQuotes:c,autoClosingPairs:d,autoClosedCharacters:u.getCursorAutoClosedCharacters()},this._wordNavigationType);return new Io(g,"")});t.pushUndoStop(),t.executeCommands(this.id,h),t.pushUndoStop()}}class QU extends _O{_delete(e,t){const i=ki.deleteWordLeft(e,t);return i||new A(1,1,1,1)}}class JU extends _O{_delete(e,t){const i=ki.deleteWordRight(e,t);if(i)return i;const s=e.model.getLineCount(),o=e.model.getLineMaxColumn(s);return new A(s,o,s,o)}}class gst extends QU{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:W.writable})}}class pst extends QU{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:W.writable})}}class mst extends QU{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:W.writable,kbOpts:{kbExpr:W.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}class _st extends JU{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:W.writable})}}class vst extends JU{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:W.writable})}}class bst extends JU{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:W.writable,kbOpts:{kbExpr:W.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}class Cst extends Ke{constructor(){super({id:"deleteInsideWord",precondition:W.writable,label:v("deleteInsideWord","Delete Word"),alias:"Delete Word"})}run(e,t,i){if(!t.hasModel())return;const s=cc(t.getOption(131),t.getOption(130)),o=t.getModel(),a=t.getSelections().map(l=>{const c=ki.deleteInsideWord(s,o,l);return new Io(c,"")});t.pushUndoStop(),t.executeCommands(this.id,a),t.pushUndoStop()}}Fe(new Qnt);Fe(new Jnt);Fe(new est);Fe(new tst);Fe(new ist);Fe(new nst);Fe(new rst);Fe(new ast);Fe(new lst);Fe(new cst);Fe(new dst);Fe(new ust);Fe(new sst);Fe(new ost);Fe(new hst);Fe(new fst);Fe(new gst);Fe(new pst);Fe(new mst);Fe(new _st);Fe(new vst);Fe(new bst);xe(Cst);class wst extends _O{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:W.writable,kbOpts:{kbExpr:W.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(e,t){const i=OM.deleteWordPartLeft(e);return i||new A(1,1,1,1)}}class yst extends _O{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:W.writable,kbOpts:{kbExpr:W.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(e,t){const i=OM.deleteWordPartRight(e);if(i)return i;const s=e.model.getLineCount(),o=e.model.getLineMaxColumn(s);return new A(s,o,s,o)}}class lpe extends mO{_move(e,t,i,s){return OM.moveWordPartLeft(e,t,i)}}class Sst extends lpe{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:W.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}ri.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");class xst extends lpe{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:W.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}ri.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class cpe extends mO{_move(e,t,i,s){return OM.moveWordPartRight(e,t,i)}}class Lst extends cpe{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:W.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}class kst extends cpe{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:W.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}}Fe(new wst);Fe(new yst);Fe(new Sst);Fe(new xst);Fe(new Lst);Fe(new kst);class pH extends ne{constructor(e){super(),this.editor=e,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){const e=Or.get(this.editor);if(e&&this.editor.hasModel()){let t=this.editor.getOptions().get(92);t||(this.editor.isSimpleWidget?t=new $o(v("editor.simple.readonly","Cannot edit in read-only input")):t=new $o(v("editor.readonly","Cannot edit in read-only editor"))),e.showMessage(t,this.editor.getPosition())}}}pH.ID="editor.contrib.readOnlyMessageController";bi(pH.ID,pH,2);var Dst=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},iie=function(n,e){return function(t,i){e(t,i,n)}};let mH=class extends ne{constructor(e,t,i){super(),this._textModel=e,this._languageFeaturesService=t,this._outlineModelService=i,this._currentModel=li(this,void 0);const s=Ko("documentSymbolProvider.onDidChange",this._languageFeaturesService.documentSymbolProvider.onDidChange),o=Ko("_textModel.onDidChangeContent",Ae.debounce(r=>this._textModel.onDidChangeContent(r),()=>{},100));this._register(uc(async(r,a)=>{s.read(r),o.read(r);const l=a.add(new eje),c=await this._outlineModelService.getOrCreate(this._textModel,l.token);a.isDisposed||this._currentModel.set(c,void 0)}))}getBreadcrumbItems(e,t){const i=this._currentModel.read(t);if(!i)return[];const s=i.asListOfDocumentSymbols().filter(o=>e.contains(o.range.startLineNumber)&&!e.contains(o.range.endLineNumber));return s.sort(Hre(oa(o=>o.range.endLineNumber-o.range.startLineNumber,Qc))),s.map(o=>({name:o.name,kind:o.kind,startLineNumber:o.range.startLineNumber}))}};mH=Dst([iie(1,Xe),iie(2,XD)],mH);rk.setBreadcrumbsSourceFactory((n,e)=>e.createInstance(mH,n));class _H extends ne{constructor(e){super(),this.editor=e,this.widget=null,iu&&(this._register(e.onDidChangeConfiguration(()=>this.update())),this.update())}update(){const e=!this.editor.getOption(91);!this.widget&&e?this.widget=new vO(this.editor):this.widget&&!e&&(this.widget.dispose(),this.widget=null)}dispose(){super.dispose(),this.widget&&(this.widget.dispose(),this.widget=null)}}_H.ID="editor.contrib.iPadShowKeyboard";class vO extends ne{constructor(e){super(),this.editor=e,this._domNode=document.createElement("textarea"),this._domNode.className="iPadShowKeyboard",this._register(ce(this._domNode,"touchstart",t=>{this.editor.focus()})),this._register(ce(this._domNode,"focus",t=>{this.editor.focus()})),this.editor.addOverlayWidget(this)}dispose(){this.editor.removeOverlayWidget(this),super.dispose()}getId(){return vO.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}}vO.ID="editor.contrib.ShowKeyboardWidget";bi(_H.ID,_H,3);var Ist=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},nie=function(n,e){return function(t,i){e(t,i,n)}},vH;let _w=vH=class extends ne{static get(e){return e.getContribution(vH.ID)}constructor(e,t,i){super(),this._editor=e,this._languageService=i,this._widget=null,this._register(this._editor.onDidChangeModel(s=>this.stop())),this._register(this._editor.onDidChangeModelLanguage(s=>this.stop())),this._register(Zn.onDidChange(s=>this.stop())),this._register(this._editor.onKeyUp(s=>s.keyCode===9&&this.stop()))}dispose(){this.stop(),super.dispose()}launch(){this._widget||this._editor.hasModel()&&(this._widget=new bO(this._editor,this._languageService))}stop(){this._widget&&(this._widget.dispose(),this._widget=null)}};_w.ID="editor.contrib.inspectTokens";_w=vH=Ist([nie(1,Tl),nie(2,An)],_w);class Est extends Ke{constructor(){super({id:"editor.action.inspectTokens",label:y9.inspectTokensAction,alias:"Developer: Inspect Tokens",precondition:void 0})}run(e,t){const i=_w.get(t);i==null||i.launch()}}function Tst(n){let e="";for(let t=0,i=n.length;tOC,tokenize:(s,o,r)=>Cz(e,r),tokenizeEncoded:(s,o,r)=>IM(i,r)}}class bO extends ne{constructor(e,t){super(),this.allowEditorOverflow=!0,this._editor=e,this._languageService=t,this._model=this._editor.getModel(),this._domNode=document.createElement("div"),this._domNode.className="tokens-inspect-widget",this._tokenizationSupport=Nst(this._languageService.languageIdCodec,this._model.getLanguageId()),this._compute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition(i=>this._compute(this._editor.getPosition()))),this._editor.addContentWidget(this)}dispose(){this._editor.removeContentWidget(this),super.dispose()}getId(){return bO._ID}_compute(e){const t=this._getTokensAtLine(e.lineNumber);let i=0;for(let l=t.tokens1.length-1;l>=0;l--){const c=t.tokens1[l];if(e.column-1>=c.offset){i=l;break}}let s=0;for(let l=t.tokens2.length>>>1;l>=0;l--)if(e.column-1>=t.tokens2[l<<1]){s=l;break}const o=this._model.getLineContent(e.lineNumber);let r="";if(i=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},sie=function(n,e){return function(t,i){e(t,i,n)}},zS;let ER=zS=class{constructor(e,t){this.quickInputService=e,this.keybindingService=t,this.registry=Un.as(ib.Quickaccess)}provide(e){const t=new be;return t.add(e.onDidAccept(()=>{const[i]=e.selectedItems;i&&this.quickInputService.quickAccess.show(i.prefix,{preserveValue:!0})})),t.add(e.onDidChangeValue(i=>{const s=this.registry.getQuickAccessProvider(i.substr(zS.PREFIX.length));s&&s.prefix&&s.prefix!==zS.PREFIX&&this.quickInputService.quickAccess.show(s.prefix,{preserveValue:!0})})),e.items=this.getQuickAccessProviders().filter(i=>i.prefix!==zS.PREFIX),t}getQuickAccessProviders(){return this.registry.getQuickAccessProviders().sort((t,i)=>t.prefix.localeCompare(i.prefix)).flatMap(t=>this.createPicks(t))}createPicks(e){return e.helpEntries.map(t=>{const i=t.prefix||e.prefix,s=i||"…";return{prefix:i,label:s,keybinding:t.commandId?this.keybindingService.lookupKeybinding(t.commandId):void 0,ariaLabel:v("helpPickAriaLabel","{0}, {1}",s,t.description),description:t.description}})}};ER.PREFIX="?";ER=zS=Ast([sie(0,Cc),sie(1,Li)],ER);Un.as(ib.Quickaccess).registerQuickAccessProvider({ctor:ER,prefix:"",helpEntries:[{description:S9.helpQuickAccessActionLabel}]});class dpe{constructor(e){this.options=e,this.rangeHighlightDecorationId=void 0}provide(e,t,i){var s;const o=new be;e.canAcceptInBackground=!!(!((s=this.options)===null||s===void 0)&&s.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;const r=o.add(new Qs);return r.value=this.doProvide(e,t,i),o.add(this.onDidActiveTextEditorControlChange(()=>{r.value=void 0,r.value=this.doProvide(e,t)})),o}doProvide(e,t,i){var s;const o=new be,r=this.activeTextEditorControl;if(r&&this.canProvideWithTextEditor(r)){const a={editor:r},l=nhe(r);if(l){let c=(s=r.saveViewState())!==null&&s!==void 0?s:void 0;o.add(l.onDidChangeCursorPosition(()=>{var d;c=(d=r.saveViewState())!==null&&d!==void 0?d:void 0})),a.restoreViewState=()=>{c&&r===this.activeTextEditorControl&&r.restoreViewState(c)},o.add(Am(t.onCancellationRequested)(()=>{var d;return(d=a.restoreViewState)===null||d===void 0?void 0:d.call(a)}))}o.add(dt(()=>this.clearDecorations(r))),o.add(this.provideWithTextEditor(a,e,t,i))}else o.add(this.provideWithoutTextEditor(e,t));return o}canProvideWithTextEditor(e){return!0}gotoLocation({editor:e},t){e.setSelection(t.range,"code.jump"),e.revealRangeInCenter(t.range,0),t.preserveFocus||e.focus();const i=e.getModel();i&&"getLineContent"in i&&Ih(`${i.getLineContent(t.range.startLineNumber)}`)}getModel(e){var t;return nU(e)?(t=e.getModel())===null||t===void 0?void 0:t.modified:e.getModel()}addDecorations(e,t){e.changeDecorations(i=>{const s=[];this.rangeHighlightDecorationId&&(s.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),s.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0);const o=[{range:t,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:t,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:Yn(ace),position:Sl.Full}}}],[r,a]=i.deltaDecorations(s,o);this.rangeHighlightDecorationId={rangeHighlightId:r,overviewRulerDecorationId:a}})}clearDecorations(e){const t=this.rangeHighlightDecorationId;t&&(e.changeDecorations(i=>{i.deltaDecorations([t.overviewRulerDecorationId,t.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0)}}class CO extends dpe{constructor(){super({canAcceptInBackground:!0})}provideWithoutTextEditor(e){const t=v("cannotRunGotoLine","Open a text editor first to go to a line.");return e.items=[{label:t}],e.ariaLabel=t,ne.None}provideWithTextEditor(e,t,i){const s=e.editor,o=new be;o.add(t.onDidAccept(l=>{const[c]=t.selectedItems;if(c){if(!this.isValidLineNumber(s,c.lineNumber))return;this.gotoLocation(e,{range:this.toRange(c.lineNumber,c.column),keyMods:t.keyMods,preserveFocus:l.inBackground}),l.inBackground||t.hide()}}));const r=()=>{const l=this.parsePosition(s,t.value.trim().substr(CO.PREFIX.length)),c=this.getPickLabel(s,l.lineNumber,l.column);if(t.items=[{lineNumber:l.lineNumber,column:l.column,label:c}],t.ariaLabel=c,!this.isValidLineNumber(s,l.lineNumber)){this.clearDecorations(s);return}const d=this.toRange(l.lineNumber,l.column);s.revealRangeInCenter(d,0),this.addDecorations(s,d)};r(),o.add(t.onDidChangeValue(()=>r()));const a=nhe(s);return a&&a.getOptions().get(68).renderType===2&&(a.updateOptions({lineNumbers:"on"}),o.add(dt(()=>a.updateOptions({lineNumbers:"relative"})))),o}toRange(e=1,t=1){return{startLineNumber:e,startColumn:t,endLineNumber:e,endColumn:t}}parsePosition(e,t){const i=t.split(/,|:|#/).map(o=>parseInt(o,10)).filter(o=>!isNaN(o)),s=this.lineCount(e)+1;return{lineNumber:i[0]>0?i[0]:s+i[0],column:i[1]}}getPickLabel(e,t,i){if(this.isValidLineNumber(e,t))return this.isValidColumn(e,t,i)?v("gotoLineColumnLabel","Go to line {0} and character {1}.",t,i):v("gotoLineLabel","Go to line {0}.",t);const s=e.getPosition()||{lineNumber:1,column:1},o=this.lineCount(e);return o>1?v("gotoLineLabelEmptyWithLimit","Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.",s.lineNumber,s.column,o):v("gotoLineLabelEmpty","Current Line: {0}, Character: {1}. Type a line number to navigate to.",s.lineNumber,s.column)}isValidLineNumber(e,t){return!t||typeof t!="number"?!1:t>0&&t<=this.lineCount(e)}isValidColumn(e,t,i){if(!i||typeof i!="number")return!1;const s=this.getModel(e);if(!s)return!1;const o={lineNumber:t,column:i};return s.validatePosition(o).equals(o)}lineCount(e){var t,i;return(i=(t=this.getModel(e))===null||t===void 0?void 0:t.getLineCount())!==null&&i!==void 0?i:0}}CO.PREFIX=":";var Rst=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Mst=function(n,e){return function(t,i){e(t,i,n)}};let Fk=class extends CO{constructor(e){super(),this.editorService=e,this.onDidActiveTextEditorControlChange=Ae.None}get activeTextEditorControl(){var e;return(e=this.editorService.getFocusedCodeEditor())!==null&&e!==void 0?e:void 0}};Fk=Rst([Mst(0,vi)],Fk);let ej=class upe extends Ke{constructor(){super({id:upe.ID,label:CA.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:2085,mac:{primary:293},weight:100}})}run(e){e.get(Cc).quickAccess.show(Fk.PREFIX)}};ej.ID="editor.action.gotoLine";xe(ej);Un.as(ib.Quickaccess).registerQuickAccessProvider({ctor:Fk,prefix:Fk.PREFIX,helpEntries:[{description:CA.gotoLineActionLabel,commandId:ej.ID}]});const hpe=[void 0,[]];function y3(n,e,t=0,i=0){const s=e;return s.values&&s.values.length>1?Pst(n,s.values,t,i):fpe(n,e,t,i)}function Pst(n,e,t,i){let s=0;const o=[];for(const r of e){const[a,l]=fpe(n,r,t,i);if(typeof a!="number")return hpe;s+=a,o.push(...l)}return[s,Ost(o)]}function fpe(n,e,t,i){const s=v0(e.original,e.originalLowercase,t,n,n.toLowerCase(),i,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return s?[s[0],ID(s)]:hpe}function Ost(n){const e=n.sort((s,o)=>s.start-o.start),t=[];let i;for(const s of e)!i||!Fst(i,s)?(i=s,t.push(s)):(i.start=Math.min(i.start,s.start),i.end=Math.max(i.end,s.end));return t}function Fst(n,e){return!(n.end=0,r=oie(n);let a;const l=n.split(gpe);if(l.length>1)for(const c of l){const d=oie(c),{pathNormalized:u,normalized:h,normalizedLowercase:f}=rie(c);h&&(a||(a=[]),a.push({original:c,originalLowercase:c.toLowerCase(),pathNormalized:u,normalized:h,normalizedLowercase:f,expectContiguousMatch:d}))}return{original:n,originalLowercase:e,pathNormalized:t,normalized:i,normalizedLowercase:s,values:a,containsPathSeparator:o,expectContiguousMatch:r}}function rie(n){let e;Mo?e=n.replace(/\//g,jd):e=n.replace(/\\/g,jd);const t=gRe(e).replace(/\s|"/g,"");return{pathNormalized:e,normalized:t,normalizedLowercase:t.toLowerCase()}}function aie(n){return Array.isArray(n)?bH(n.map(e=>e.original).join(gpe)):bH(n.original)}var Bst=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},lie=function(n,e){return function(t,i){e(t,i,n)}},mC;let Ch=mC=class extends dpe{constructor(e,t,i=Object.create(null)){super(i),this._languageFeaturesService=e,this._outlineModelService=t,this.options=i,this.options.canAcceptInBackground=!0}provideWithoutTextEditor(e){return this.provideLabelPick(e,v("cannotRunGotoSymbolWithoutEditor","To go to a symbol, first open a text editor with symbol information.")),ne.None}provideWithTextEditor(e,t,i,s){const o=e.editor,r=this.getModel(o);return r?this._languageFeaturesService.documentSymbolProvider.has(r)?this.doProvideWithEditorSymbols(e,r,t,i,s):this.doProvideWithoutEditorSymbols(e,r,t,i):ne.None}doProvideWithoutEditorSymbols(e,t,i,s){const o=new be;return this.provideLabelPick(i,v("cannotRunGotoSymbolWithoutSymbolProvider","The active text editor does not provide symbol information.")),(async()=>!await this.waitForLanguageSymbolRegistry(t,o)||s.isCancellationRequested||o.add(this.doProvideWithEditorSymbols(e,t,i,s)))(),o}provideLabelPick(e,t){e.items=[{label:t,index:0,kind:14}],e.ariaLabel=t}async waitForLanguageSymbolRegistry(e,t){if(this._languageFeaturesService.documentSymbolProvider.has(e))return!0;const i=new hD,s=t.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>{this._languageFeaturesService.documentSymbolProvider.has(e)&&(s.dispose(),i.complete(!0))}));return t.add(dt(()=>i.complete(!1))),i.p}doProvideWithEditorSymbols(e,t,i,s,o){var r;const a=e.editor,l=new be;l.add(i.onDidAccept(h=>{var f;const[g]=i.selectedItems;g&&g.range&&(this.gotoLocation(e,{range:g.range.selection,keyMods:i.keyMods,preserveFocus:h.inBackground}),(f=o==null?void 0:o.handleAccept)===null||f===void 0||f.call(o,g),h.inBackground||i.hide())})),l.add(i.onDidTriggerItemButton(({item:h})=>{h&&h.range&&(this.gotoLocation(e,{range:h.range.selection,keyMods:i.keyMods,forceSideBySide:!0}),i.hide())}));const c=this.getDocumentSymbols(t,s);let d;const u=async h=>{d==null||d.dispose(!0),i.busy=!1,d=new $n(s),i.busy=!0;try{const f=bH(i.value.substr(mC.PREFIX.length).trim()),g=await this.doGetSymbolPicks(c,f,void 0,d.token,t);if(s.isCancellationRequested)return;if(g.length>0){if(i.items=g,h&&f.original.length===0){const p=mL(g,_=>!!(_.type!=="separator"&&_.range&&A.containsPosition(_.range.decoration,h)));p&&(i.activeItems=[p])}}else f.original.length>0?this.provideLabelPick(i,v("noMatchingSymbolResults","No matching editor symbols")):this.provideLabelPick(i,v("noSymbolResults","No editor symbols"))}finally{s.isCancellationRequested||(i.busy=!1)}};return l.add(i.onDidChangeValue(()=>u(void 0))),u((r=a.getSelection())===null||r===void 0?void 0:r.getPosition()),l.add(i.onDidChangeActive(()=>{const[h]=i.activeItems;h&&h.range&&(a.revealRangeInCenter(h.range.selection,0),this.addDecorations(a,h.range.decoration))})),l}async doGetSymbolPicks(e,t,i,s,o){var r,a;const l=await e;if(s.isCancellationRequested)return[];const c=t.original.indexOf(mC.SCOPE_PREFIX)===0,d=c?1:0;let u,h;t.values&&t.values.length>1?(u=aie(t.values[0]),h=aie(t.values.slice(1))):u=t;let f;const g=(a=(r=this.options)===null||r===void 0?void 0:r.openSideBySideDirection)===null||a===void 0?void 0:a.call(r);g&&(f=[{iconClass:g==="right"?_t.asClassName(Te.splitHorizontal):_t.asClassName(Te.splitVertical),tooltip:g==="right"?v("openToSide","Open to the Side"):v("openToBottom","Open to the Bottom")}]);const p=[];for(let w=0;wd){let z=!1;if(u!==t&&([I,N]=y3(x,{...t,values:void 0},d,k),typeof I=="number"&&(z=!0)),typeof I!="number"&&([I,N]=y3(x,u,d,k),typeof I!="number"))continue;if(!z&&h){if(D&&h.original.length>0&&([P,O]=y3(D,h)),typeof P!="number")continue;typeof I=="number"&&(I+=P)}}const M=y.tags&&y.tags.indexOf(1)>=0;p.push({index:w,kind:y.kind,score:I,label:x,ariaLabel:rRe(y.name,y.kind),description:D,highlights:M?void 0:{label:N,description:O},range:{selection:A.collapseToStart(y.selectionRange),decoration:y.range},uri:o.uri,symbolName:S,strikethrough:M,buttons:f})}const _=p.sort((w,y)=>c?this.compareByKindAndScore(w,y):this.compareByScore(w,y));let b=[];if(c){let x=function(){y&&typeof w=="number"&&S>0&&(y.label=l0(x3[w]||S3,S))},w,y,S=0;for(const k of _)w!==k.kind?(x(),w=k.kind,S=1,y={type:"separator"},b.push(y)):S++,b.push(k);x()}else _.length>0&&(b=[{label:v("symbols","symbols ({0})",p.length),type:"separator"},..._]);return b}compareByScore(e,t){if(typeof e.score!="number"&&typeof t.score=="number")return 1;if(typeof e.score=="number"&&typeof t.score!="number")return-1;if(typeof e.score=="number"&&typeof t.score=="number"){if(e.score>t.score)return-1;if(e.scoret.index?1:0}compareByKindAndScore(e,t){const i=x3[e.kind]||S3,s=x3[t.kind]||S3,o=i.localeCompare(s);return o===0?this.compareByScore(e,t):o}async getDocumentSymbols(e,t){const i=await this._outlineModelService.getOrCreate(e,t);return t.isCancellationRequested?[]:i.asListOfDocumentSymbols()}};Ch.PREFIX="@";Ch.SCOPE_PREFIX=":";Ch.PREFIX_BY_CATEGORY=`${mC.PREFIX}${mC.SCOPE_PREFIX}`;Ch=mC=Bst([lie(0,Xe),lie(1,XD)],Ch);const S3=v("property","properties ({0})"),x3={5:v("method","methods ({0})"),11:v("function","functions ({0})"),8:v("_constructor","constructors ({0})"),12:v("variable","variables ({0})"),4:v("class","classes ({0})"),22:v("struct","structs ({0})"),23:v("event","events ({0})"),24:v("operator","operators ({0})"),10:v("interface","interfaces ({0})"),2:v("namespace","namespaces ({0})"),3:v("package","packages ({0})"),25:v("typeParameter","type parameters ({0})"),1:v("modules","modules ({0})"),6:v("property","properties ({0})"),9:v("enum","enumerations ({0})"),21:v("enumMember","enumeration members ({0})"),14:v("string","strings ({0})"),0:v("file","files ({0})"),17:v("array","arrays ({0})"),15:v("number","numbers ({0})"),16:v("boolean","booleans ({0})"),18:v("object","objects ({0})"),19:v("key","keys ({0})"),7:v("field","fields ({0})"),13:v("constant","constants ({0})")};var Wst=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},L3=function(n,e){return function(t,i){e(t,i,n)}};let CH=class extends Ch{constructor(e,t,i){super(t,i),this.editorService=e,this.onDidActiveTextEditorControlChange=Ae.None}get activeTextEditorControl(){var e;return(e=this.editorService.getFocusedCodeEditor())!==null&&e!==void 0?e:void 0}};CH=Wst([L3(0,vi),L3(1,Xe),L3(2,XD)],CH);class eI extends Ke{constructor(){super({id:eI.ID,label:VL.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:W.hasDocumentSymbolProvider,kbOpts:{kbExpr:W.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}run(e){e.get(Cc).quickAccess.show(Ch.PREFIX,{itemActivation:Ed.NONE})}}eI.ID="editor.action.quickOutline";xe(eI);Un.as(ib.Quickaccess).registerQuickAccessProvider({ctor:CH,prefix:Ch.PREFIX,helpEntries:[{description:VL.quickOutlineActionLabel,prefix:Ch.PREFIX,commandId:eI.ID},{description:VL.quickOutlineByCategoryActionLabel,prefix:Ch.PREFIX_BY_CATEGORY}]});function Hst(n){var e;const t=new Map;for(const i of n)t.set(i,((e=t.get(i))!==null&&e!==void 0?e:0)+1);return t}class Bx{constructor(){this.chunkCount=0,this.chunkOccurrences=new Map,this.documents=new Map}calculateScores(e,t){const i=this.computeEmbedding(e),s=new Map,o=[];for(const[r,a]of this.documents){if(t.isCancellationRequested)return[];for(const l of a.chunks){const c=this.computeSimilarityScore(l,i,s);c>0&&o.push({key:r,score:c})}}return o}static termFrequencies(e){return Hst(Bx.splitTerms(e))}static*splitTerms(e){const t=i=>i.toLowerCase();for(const[i]of e.matchAll(new RegExp("\\b\\p{Letter}[\\p{Letter}\\d]{2,}\\b","gu"))){yield t(i);const s=i.replace(/([a-z])([A-Z])/g,"$1 $2").split(/\s+/g);if(s.length>1)for(const o of s)o.length>2&&new RegExp("\\p{Letter}{3,}","gu").test(o)&&(yield t(o))}}updateDocuments(e){var t;for(const{key:i}of e)this.deleteDocument(i);for(const i of e){const s=[];for(const o of i.textChunks){const r=Bx.termFrequencies(o);for(const a of r.keys())this.chunkOccurrences.set(a,((t=this.chunkOccurrences.get(a))!==null&&t!==void 0?t:0)+1);s.push({text:o,tf:r})}this.chunkCount+=s.length,this.documents.set(i.key,{chunks:s})}return this}deleteDocument(e){const t=this.documents.get(e);if(t){this.documents.delete(e),this.chunkCount-=t.chunks.length;for(const i of t.chunks)for(const s of i.tf.keys()){const o=this.chunkOccurrences.get(s);if(typeof o=="number"){const r=o-1;r<=0?this.chunkOccurrences.delete(s):this.chunkOccurrences.set(s,r)}}}}computeSimilarityScore(e,t,i){let s=0;for(const[o,r]of Object.entries(t)){const a=e.tf.get(o);if(!a)continue;let l=i.get(o);typeof l!="number"&&(l=this.computeIdf(o),i.set(o,l));const c=a*l;s+=c*r}return s}computeEmbedding(e){const t=Bx.termFrequencies(e);return this.computeTfidf(t)}computeIdf(e){var t;const i=(t=this.chunkOccurrences.get(e))!==null&&t!==void 0?t:0;return i>0?Math.log((this.chunkCount+1)/i):0}computeTfidf(e){const t=Object.create(null);for(const[i,s]of e){const o=this.computeIdf(i);o>0&&(t[i]=s*o)}return t}}function Vst(n){var e,t;const i=n.slice(0);i.sort((o,r)=>r.score-o.score);const s=(t=(e=i[0])===null||e===void 0?void 0:e.score)!==null&&t!==void 0?t:0;if(s>0)for(const o of i)o.score/=s;return i}var O1;(function(n){n[n.NO_ACTION=0]="NO_ACTION",n[n.CLOSE_PICKER=1]="CLOSE_PICKER",n[n.REFRESH_PICKER=2]="REFRESH_PICKER",n[n.REMOVE_ITEM=3]="REMOVE_ITEM"})(O1||(O1={}));function k3(n){const e=n;return Array.isArray(e.items)}function cie(n){const e=n;return!!e.picks&&e.additionalPicks instanceof Promise}class zst extends ne{constructor(e,t){super(),this.prefix=e,this.options=t}provide(e,t,i){var s;const o=new be;e.canAcceptInBackground=!!(!((s=this.options)===null||s===void 0)&&s.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;let r;const a=o.add(new Qs),l=async()=>{var d;const u=a.value=new be;r==null||r.dispose(!0),e.busy=!1,r=new $n(t);const h=r.token;let f=e.value.substring(this.prefix.length);!((d=this.options)===null||d===void 0)&&d.shouldSkipTrimPickFilter||(f=f.trim());const g=this._getPicks(f,u,h,i),p=(b,w)=>{var y;let S,x;if(k3(b)?(S=b.items,x=b.active):S=b,S.length===0){if(w)return!1;(f.length>0||e.hideInput)&&(!((y=this.options)===null||y===void 0)&&y.noResultsPick)&&(nL(this.options.noResultsPick)?S=[this.options.noResultsPick(f)]:S=[this.options.noResultsPick])}return e.items=S,x&&(e.activeItems=[x]),!0},_=async b=>{let w=!1,y=!1;await Promise.all([(async()=>{typeof b.mergeDelay=="number"&&(await Dg(b.mergeDelay),h.isCancellationRequested)||y||(w=p(b.picks,!0))})(),(async()=>{e.busy=!0;try{const S=await b.additionalPicks;if(h.isCancellationRequested)return;let x,k;k3(b.picks)?(x=b.picks.items,k=b.picks.active):x=b.picks;let D,I;if(k3(S)?(D=S.items,I=S.active):D=S,D.length>0||!w){let N;if(!k&&!I){const P=e.activeItems[0];P&&x.indexOf(P)!==-1&&(N=P)}p({items:[...x,...D],active:k||I||N})}}finally{h.isCancellationRequested||(e.busy=!1),y=!0}})()])};if(g!==null)if(cie(g))await _(g);else if(!(g instanceof Promise))p(g);else{e.busy=!0;try{const b=await g;if(h.isCancellationRequested)return;cie(b)?await _(b):p(b)}finally{h.isCancellationRequested||(e.busy=!1)}}};o.add(e.onDidChangeValue(()=>l())),l(),o.add(e.onDidAccept(d=>{var u;if(i!=null&&i.handleAccept){d.inBackground||e.hide(),(u=i.handleAccept)===null||u===void 0||u.call(i,e.activeItems[0]);return}const[h]=e.selectedItems;typeof(h==null?void 0:h.accept)=="function"&&(d.inBackground||e.hide(),h.accept(e.keyMods,d))}));const c=async(d,u)=>{var h,f;if(typeof u.trigger!="function")return;const g=(f=(h=u.buttons)===null||h===void 0?void 0:h.indexOf(d))!==null&&f!==void 0?f:-1;if(g>=0){const p=u.trigger(g,e.keyMods),_=typeof p=="number"?p:await p;if(t.isCancellationRequested)return;switch(_){case O1.NO_ACTION:break;case O1.CLOSE_PICKER:e.hide();break;case O1.REFRESH_PICKER:l();break;case O1.REMOVE_ITEM:{const b=e.items.indexOf(u);if(b!==-1){const w=e.items.slice(),y=w.splice(b,1),S=e.activeItems.filter(k=>k!==y[0]),x=e.keepScrollPosition;e.keepScrollPosition=!0,e.items=w,S&&(e.activeItems=S),e.keepScrollPosition=x}break}}}};return o.add(e.onDidTriggerItemButton(({button:d,item:u})=>c(d,u))),o.add(e.onDidTriggerSeparatorButton(({button:d,separator:u})=>c(d,u))),o}}var ppe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Bp=function(n,e){return function(t,i){e(t,i,n)}},lv,Ns;let H0=lv=class extends zst{constructor(e,t,i,s,o,r){super(lv.PREFIX,e),this.instantiationService=t,this.keybindingService=i,this.commandService=s,this.telemetryService=o,this.dialogService=r,this.commandsHistory=this._register(this.instantiationService.createInstance(s_)),this.options=e}async _getPicks(e,t,i,s){var o,r,a,l;const c=await this.getCommandPicks(i);if(i.isCancellationRequested)return[];const d=Am(()=>{const b=new Bx;b.updateDocuments(c.map(y=>({key:y.commandId,textChunks:[this.getTfIdfChunk(y)]})));const w=b.calculateScores(e,i);return Vst(w).filter(y=>y.score>lv.TFIDF_THRESHOLD).slice(0,lv.TFIDF_MAX_RESULTS)}),u=[];for(const b of c){const w=(o=lv.WORD_FILTER(e,b.label))!==null&&o!==void 0?o:void 0,y=b.commandAlias&&(r=lv.WORD_FILTER(e,b.commandAlias))!==null&&r!==void 0?r:void 0;if(w||y)b.highlights={label:w,detail:this.options.showAlias?y:void 0},u.push(b);else if(e===b.commandId)u.push(b);else if(e.length>=3){const S=d();if(i.isCancellationRequested)return[];const x=S.find(k=>k.key===b.commandId);x&&(b.tfIdfScore=x.score,u.push(b))}}const h=new Map;for(const b of u){const w=h.get(b.label);w?(b.description=b.commandId,w.description=w.commandId):h.set(b.label,b)}u.sort((b,w)=>{if(b.tfIdfScore&&w.tfIdfScore)return b.tfIdfScore===w.tfIdfScore?b.label.localeCompare(w.label):w.tfIdfScore-b.tfIdfScore;if(b.tfIdfScore)return 1;if(w.tfIdfScore)return-1;const y=this.commandsHistory.peek(b.commandId),S=this.commandsHistory.peek(w.commandId);if(y&&S)return y>S?-1:1;if(y)return-1;if(S)return 1;if(this.options.suggestedCommandIds){const x=this.options.suggestedCommandIds.has(b.commandId),k=this.options.suggestedCommandIds.has(w.commandId);if(x&&k)return 0;if(x)return-1;if(k)return 1}return b.label.localeCompare(w.label)});const f=[];let g=!1,p=!0,_=!!this.options.suggestedCommandIds;for(let b=0;b{var b;const w=await this.getAdditionalCommandPicks(c,u,e,i);if(i.isCancellationRequested)return[];const y=w.map(S=>this.toCommandPick(S,s));return p&&((b=y[0])===null||b===void 0?void 0:b.type)!=="separator"&&y.unshift({type:"separator",label:v("suggested","similar commands")}),y})()}:f}toCommandPick(e,t){if(e.type==="separator")return e;const i=this.keybindingService.lookupKeybinding(e.commandId),s=i?v("commandPickAriaLabelWithKeybinding","{0}, {1}",e.label,i.getAriaLabel()):e.label;return{...e,ariaLabel:s,detail:this.options.showAlias&&e.commandAlias!==e.label?e.commandAlias:void 0,keybinding:i,accept:async()=>{var o,r;this.commandsHistory.push(e.commandId),this.telemetryService.publicLog2("workbenchActionExecuted",{id:e.commandId,from:(o=t==null?void 0:t.from)!==null&&o!==void 0?o:"quick open"});try{!((r=e.args)===null||r===void 0)&&r.length?await this.commandService.executeCommand(e.commandId,...e.args):await this.commandService.executeCommand(e.commandId)}catch(a){ld(a)||this.dialogService.error(v("canNotRun","Command '{0}' resulted in an error",e.label),aR(a))}}}}getTfIdfChunk({label:e,commandAlias:t,commandDescription:i}){let s=e;return t&&t!==e&&(s+=` - ${t}`),i&&i.value!==e&&(s+=` - ${i.value===i.original?i.value:`${i.value} (${i.original})`}`),s}};H0.PREFIX=">";H0.TFIDF_THRESHOLD=.5;H0.TFIDF_MAX_RESULTS=5;H0.WORD_FILTER=u$(BL,tWe,gde);H0=lv=ppe([Bp(1,ht),Bp(2,Li),Bp(3,Sn),Bp(4,Po),Bp(5,DD)],H0);let s_=Ns=class extends ne{constructor(e,t,i){super(),this.storageService=e,this.configurationService=t,this.logService=i,this.configuredCommandsHistoryLength=0,this.updateConfiguration(),this.load(),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(e=>this.updateConfiguration(e))),this._register(this.storageService.onWillSaveState(e=>{e.reason===GL.SHUTDOWN&&this.saveState()}))}updateConfiguration(e){e&&!e.affectsConfiguration("workbench.commandPalette.history")||(this.configuredCommandsHistoryLength=Ns.getConfiguredCommandHistoryLength(this.configurationService),Ns.cache&&Ns.cache.limit!==this.configuredCommandsHistoryLength&&(Ns.cache.limit=this.configuredCommandsHistoryLength,Ns.hasChanges=!0))}load(){const e=this.storageService.get(Ns.PREF_KEY_CACHE,0);let t;if(e)try{t=JSON.parse(e)}catch(s){this.logService.error(`[CommandsHistory] invalid data: ${s}`)}const i=Ns.cache=new zh(this.configuredCommandsHistoryLength,1);if(t){let s;t.usesLRU?s=t.entries:s=t.entries.sort((o,r)=>o.value-r.value),s.forEach(o=>i.set(o.key,o.value))}Ns.counter=this.storageService.getNumber(Ns.PREF_KEY_COUNTER,0,Ns.counter)}push(e){Ns.cache&&(Ns.cache.set(e,Ns.counter++),Ns.hasChanges=!0)}peek(e){var t;return(t=Ns.cache)===null||t===void 0?void 0:t.peek(e)}saveState(){if(!Ns.cache||!Ns.hasChanges)return;const e={usesLRU:!0,entries:[]};Ns.cache.forEach((t,i)=>e.entries.push({key:i,value:t})),this.storageService.store(Ns.PREF_KEY_CACHE,JSON.stringify(e),0,0),this.storageService.store(Ns.PREF_KEY_COUNTER,Ns.counter,0,0),Ns.hasChanges=!1}static getConfiguredCommandHistoryLength(e){var t,i;const o=(i=(t=e.getValue().workbench)===null||t===void 0?void 0:t.commandPalette)===null||i===void 0?void 0:i.history;return typeof o=="number"?o:Ns.DEFAULT_COMMANDS_HISTORY_LENGTH}};s_.DEFAULT_COMMANDS_HISTORY_LENGTH=50;s_.PREF_KEY_CACHE="commandPalette.mru.cache";s_.PREF_KEY_COUNTER="commandPalette.mru.counter";s_.counter=1;s_.hasChanges=!1;s_=Ns=ppe([Bp(0,dd),Bp(1,qt),Bp(2,er)],s_);class $st extends H0{constructor(e,t,i,s,o,r){super(e,t,i,s,o,r)}getCodeEditorCommandPicks(){var e;const t=this.activeTextEditorControl;if(!t)return[];const i=[];for(const s of t.getSupportedActions()){let o;!((e=s.metadata)===null||e===void 0)&&e.description&&(VVe(s.metadata.description)?o=s.metadata.description:o={original:s.metadata.description,value:s.metadata.description}),i.push({commandId:s.id,commandAlias:s.alias,commandDescription:o,label:_$(s.label)||s.id})}return i}}var Ust=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Yb=function(n,e){return function(t,i){e(t,i,n)}};let Bk=class extends $st{get activeTextEditorControl(){var e;return(e=this.codeEditorService.getFocusedCodeEditor())!==null&&e!==void 0?e:void 0}constructor(e,t,i,s,o,r){super({showAlias:!1},e,i,s,o,r),this.codeEditorService=t}async getCommandPicks(){return this.getCodeEditorCommandPicks()}hasAdditionalCommandPicks(){return!1}async getAdditionalCommandPicks(){return[]}};Bk=Ust([Yb(0,ht),Yb(1,vi),Yb(2,Li),Yb(3,Sn),Yb(4,Po),Yb(5,DD)],Bk);class tI extends Ke{constructor(){super({id:tI.ID,label:wA.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}run(e){e.get(Cc).quickAccess.show(Bk.PREFIX)}}tI.ID="editor.action.quickCommand";xe(tI);Un.as(ib.Quickaccess).registerQuickAccessProvider({ctor:Bk,prefix:Bk.PREFIX,helpEntries:[{description:wA.quickCommandHelp,commandId:tI.ID}]});var jst=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Xb=function(n,e){return function(t,i){e(t,i,n)}};let wH=class extends Qm{constructor(e,t,i,s,o,r,a){super(!0,e,t,i,s,o,r,a)}};wH=jst([Xb(1,Ct),Xb(2,vi),Xb(3,ps),Xb(4,ht),Xb(5,dd),Xb(6,qt)],wH);bi(Qm.ID,wH,4);class Kst extends Ke{constructor(){super({id:"editor.action.toggleHighContrast",label:x9.toggleHighContrast,alias:"Toggle High Contrast Theme",precondition:void 0}),this._originalThemeName=null}run(e,t){const i=e.get(Tl),s=i.getColorTheme();Zd(s.type)?(i.setTheme(this._originalThemeName||(HC(s.type)?hC:jf)),this._originalThemeName=null):(i.setTheme(HC(s.type)?Gv:Zv),this._originalThemeName=s.themeName)}}xe(Kst);const qst=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource:ahe,Emitter:lhe,KeyCode:che,KeyMod:dhe,MarkerSeverity:nR,MarkerTag:phe,Position:uhe,Range:hhe,Selection:fhe,SelectionDirection:ghe,Token:_he,Uri:mhe,editor:sU,languages:zd},Symbol.toStringTag,{value:"Module"})),tj={position(n,e){return{lineNumber:n+1,column:e+1}},range(n){return{startLineNumber:n.start.line+1,startColumn:n.start.character+1,endLineNumber:n.end.line+1,endColumn:n.end.character+1}}},wO={position(n){return{line:n.lineNumber-1,character:n.column-1}},range(n){return{start:{line:n.startLineNumber-1,character:n.startColumn-1},end:{line:n.endLineNumber-1,character:n.endColumn-1}}}};function die(n,e,t){const i=async(s,o,r)=>{if(!n.isInitialized||!n.socket||n.socket.readyState!==WebSocket.OPEN)return{suggestions:[]};const a=s.getWordUntilPosition(o),l={startLineNumber:o.lineNumber,startColumn:a.startColumn,endLineNumber:o.lineNumber,endColumn:o.column};return new Promise(c=>{var h,f;const d=n.messageId++,u=g=>{var _,b;const p=JSON.parse(g.data);if(p.id===d){(_=n.socket)==null||_.removeEventListener("message",u);const w=a.word.toLowerCase(),y=(((b=p.result)==null?void 0:b.items)||[]).filter(S=>{if(!w)return!0;const x=(S.filterText||S.label).toLowerCase();return x.startsWith(w)||x.includes("_"+w)||x.includes("."+w)}).map(S=>{const x=S.insertText||S.label;return{label:S.label,kind:S.kind||zd.CompletionItemKind.Text,detail:S.detail,documentation:S.documentation,insertText:x,filterText:w,sortText:S.sortText,range:l}});c({suggestions:y})}};(h=n.socket)==null||h.addEventListener("message",u),(f=n.socket)==null||f.send(JSON.stringify({jsonrpc:"2.0",id:d,method:"textDocument/completion",params:{textDocument:{uri:t.toString()},position:wO.position(o)}})),setTimeout(()=>{var g;(g=n.socket)==null||g.removeEventListener("message",u),c({suggestions:[]})},5e3)})};return zd.registerCompletionItemProvider(e.languageId,{provideCompletionItems:i,triggerCharacters:e.completionTriggerCharacters})}function uie(n,e,t){const i=async(s,o)=>!n.isInitialized||!n.socket||n.socket.readyState!==WebSocket.OPEN?null:new Promise(r=>{var c,d;const a=n.messageId++,l=u=>{var f;const h=JSON.parse(u.data);if(h.id===a){if((f=n.socket)==null||f.removeEventListener("message",l),h.result&&h.result.contents){let g="";const p=h.result.contents;if(typeof p=="string"?g=p:p.kind==="markdown"||p.kind==="plaintext"?g=p.value:Array.isArray(p)?g=p.map(_=>typeof _=="string"?_:_.value||"").join(` `):p.value&&(g=p.value),g){r({contents:[{value:g}],range:h.result.range?tj.range(h.result.range):void 0});return}}r(null)}};(c=n.socket)==null||c.addEventListener("message",l),(d=n.socket)==null||d.send(JSON.stringify({jsonrpc:"2.0",id:a,method:"textDocument/hover",params:{textDocument:{uri:t.toString()},position:wO.position(o)}})),setTimeout(()=>{var u;(u=n.socket)==null||u.removeEventListener("message",l),r(null)},5e3)});return zd.registerHoverProvider(e.languageId,{provideHover:i})}function hie(n,e,t){const i=async(s,o,r,a)=>!n.isInitialized||!n.socket||n.socket.readyState!==WebSocket.OPEN?null:new Promise(l=>{var u,h;const c=n.messageId++,d=f=>{var p;const g=JSON.parse(f.data);if(g.id===c){if((p=n.socket)==null||p.removeEventListener("message",d),g.result&&g.result.signatures){const _=g.result.signatures.map(b=>{var w;return{label:b.label,documentation:b.documentation?{value:typeof b.documentation=="string"?b.documentation:b.documentation.value}:void 0,parameters:((w=b.parameters)==null?void 0:w.map(y=>({label:y.label,documentation:y.documentation?{value:typeof y.documentation=="string"?y.documentation:y.documentation.value}:void 0})))||[]}});l({value:{signatures:_,activeSignature:g.result.activeSignature||0,activeParameter:g.result.activeParameter||0},dispose:()=>{}});return}l(null)}};(u=n.socket)==null||u.addEventListener("message",d),(h=n.socket)==null||h.send(JSON.stringify({jsonrpc:"2.0",id:c,method:"textDocument/signatureHelp",params:{textDocument:{uri:t.toString()},position:wO.position(o),context:{triggerKind:a.triggerKind,triggerCharacter:a.triggerCharacter,isRetrigger:a.isRetrigger,activeSignatureHelp:a.activeSignatureHelp}}})),setTimeout(()=>{var f;(f=n.socket)==null||f.removeEventListener("message",d),l(null)},5e3)});return zd.registerSignatureHelpProvider(e.languageId,{signatureHelpTriggerCharacters:["(",","],signatureHelpRetriggerCharacters:[","],provideSignatureHelp:i})}function fie(n,e,t){const i=async(s,o,r)=>!n.isInitialized||!n.socket||n.socket.readyState!==WebSocket.OPEN?null:new Promise(a=>{var d,u;const l=n.messageId++,c=h=>{var g;const f=JSON.parse(h.data);if(f.id===l){if((g=n.socket)==null||g.removeEventListener("message",c),f.error){a(null);return}if(!f.result){a(null);return}const p=f.result.map(_=>({range:tj.range(_.range),text:_.newText}));a(p)}};(d=n.socket)==null||d.addEventListener("message",c),(u=n.socket)==null||u.send(JSON.stringify({jsonrpc:"2.0",id:l,method:"textDocument/formatting",params:{textDocument:{uri:t.toString()},options:{tabSize:o.tabSize,insertSpaces:o.insertSpaces}}})),setTimeout(()=>{var h;(h=n.socket)==null||h.removeEventListener("message",c),a(null)},1e4)});return zd.registerDocumentFormattingEditProvider(e.languageId,{provideDocumentFormattingEdits:i})}function gie(n,e,t){const i=async(s,o,r)=>!n.isInitialized||!n.socket||n.socket.readyState!==WebSocket.OPEN?null:new Promise(a=>{var d,u;const l=n.messageId++,c=h=>{var g;const f=JSON.parse(h.data);if(f.id===l){if((g=n.socket)==null||g.removeEventListener("message",c),f.error){a(null);return}if(!f.result||!Array.isArray(f.result)||f.result.length===0){a(null);return}const p=f.result.map(_=>({range:tj.range(_.range),kind:_.kind===1?zd.DocumentHighlightKind.Write:_.kind===2?zd.DocumentHighlightKind.Read:zd.DocumentHighlightKind.Text}));a(p)}};(d=n.socket)==null||d.addEventListener("message",c),(u=n.socket)==null||u.send(JSON.stringify({jsonrpc:"2.0",id:l,method:"textDocument/documentHighlight",params:{textDocument:{uri:t.toString()},position:wO.position(o)}})),setTimeout(()=>{var h;(h=n.socket)==null||h.removeEventListener("message",c),a(null)},3e3)});return zd.registerDocumentHighlightProvider(e.languageId,{provideDocumentHighlights:i})}function Gst(n){if(!n)throw new Error("apiBaseUrl is not defined");return n==="/"?"":n}function mpe(n,e){return e.startsWith("https://")?e:Gst(n)+e}function _pe(n){var i;const e=(n==null?void 0:n.statusCode)||((i=n==null?void 0:n.response)==null?void 0:i.status)||(n==null?void 0:n.status)||500,t=n!=null&&n.data&&typeof n.data=="object"?n.data:{message:(n==null?void 0:n.message)||"Request failed"};return{statusCode:e,data:t}}async function jl(n,e=!1,t=!1){const i=Tm().public.apiBaseUrl,s=mpe(i,n),o={};if(e&&(o.Authorization=`${pi().authToken}`,t)){const l=pi().jesseTradeBearer;l&&(o["X-Jesse-Trade-Token"]=l)}const r=Ue(null),a=Ue(null);try{r.value=await $fetch(s,{headers:o})}catch(l){a.value=_pe(l)}return{data:r,error:a}}async function Ot(n,e,t=!1,i=!1){const s=Tm().public.apiBaseUrl,o=mpe(s,n),r={"Content-Type":"application/json"};if(t&&(r.Authorization=`${pi().authToken}`,i)){const c=pi().jesseTradeBearer;c&&(r["X-Jesse-Trade-Token"]=c)}const a=Ue(null),l=Ue(null);try{a.value=await $fetch(o,{method:"POST",body:e,headers:r})}catch(c){l.value=_pe(c)}return{data:a,error:l}}function vpe(){const n=Ew("notifications",()=>[]);function e(i){const s={id:new Date().getTime().toString(),...i};return n.value.findIndex(r=>r.id===s.id)===-1&&n.value.push(s),s}function t(i){n.value=n.value.filter(s=>s.id!==i)}return{add:e,remove:t}}function Lt(n,e){if(typeof window>"u")return;const t=vpe(),i=n.charAt(0).toUpperCase()+n.slice(1),s=n==="error"?"red":n==="success"?"green":"blue",o=n==="error"?"i-heroicons i-heroicons-x-circle":n==="success"?"i-heroicons i-heroicons-check-circle":"i-heroicons i-heroicons-information-circle";t.add({title:i,description:e,color:s,icon:o})}function Pt(n){n.response?n.response.data&&n.response.data.message&&Lt("error",n.response.data.message):n.value?n.value.data&&n.value.data.message?Lt("error",n.value.data.message):n.value.data&&n.value.data.error&&Lt("error",n.value.data.error):n.message?Lt("error",n.message):Lt("error","An error occurred")}var oS=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Zst(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var TR={exports:{}};/** * @license * Lodash * Copyright OpenJS Foundation and other contributors * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors */TR.exports;(function(n,e){(function(){var t,i="4.17.21",s=200,o="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",r="Expected a function",a="Invalid `variable` option passed into `_.template`",l="__lodash_hash_undefined__",c=500,d="__lodash_placeholder__",u=1,h=2,f=4,g=1,p=2,_=1,b=2,w=4,y=8,S=16,x=32,k=64,D=128,I=256,N=512,P=30,O="...",M=800,z=16,K=1,ae=2,se=3,he=1/0,me=9007199254740991,De=17976931348623157e292,lt=NaN,We=4294967295,Ve=We-1,Me=We>>>1,Zt=[["ary",D],["bind",_],["bindKey",b],["curry",y],["curryRight",S],["flip",N],["partial",x],["partialRight",k],["rearg",I]],Oi="[object Arguments]",ni="[object Array]",Se="[object AsyncFunction]",Qe="[object Boolean]",nt="[object Date]",mt="[object DOMException]",Je="[object Error]",Ii="[object Function]",J="[object GeneratorFunction]",ie="[object Map]",ye="[object Number]",ze="[object Null]",Oe="[object Object]",et="[object Promise]",vt="[object Proxy]",re="[object RegExp]",Q="[object Set]",Z="[object String]",B="[object Symbol]",H="[object Undefined]",Y="[object WeakMap]",G="[object WeakSet]",ge="[object ArrayBuffer]",Ie="[object DataView]",qe="[object Float32Array]",ot="[object Float64Array]",bt="[object Int8Array]",xt="[object Int16Array]",si="[object Int32Array]",Ci="[object Uint8Array]",Dt="[object Uint8ClampedArray]",Si="[object Uint16Array]",Ai="[object Uint32Array]",mr=/\b__p \+= '';/g,Ei=/\b(__p \+=) '' \+/g,Cs=/(__e\(.*?\)|\b__t\)) \+\n'';/g,wu=/&(?:amp|lt|gt|quot|#39);/g,yu=/[&<>"']/g,Nl=RegExp(wu.source),Su=RegExp(yu.source),Kh=/<%-([\s\S]+?)%>/g,qh=/<%([\s\S]+?)%>/g,Gh=/<%=([\s\S]+?)%>/g,Zh=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ry=/^\w*$/,yc=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Yh=/[\\^$.*+?()[\]{}|]/g,k_=RegExp(Yh.source),Kg=/^\s+/,MO=/\s/,hb=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,hd=/\{\n\/\* \[wrapped with (.+)\] \*/,gI=/,? & /,pI=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,mI=/[()=,{}\[\]\/\s]/,_I=/\\(\\)?/g,PO=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Gt=/\w*$/,_e=/^[-+]0x[0-9a-f]+$/i,ct=/^0b[01]+$/i,Et=/^\[object .+?Constructor\]$/,jn=/^0o[0-7]+$/i,ko=/^(?:0|[1-9]\d*)$/,ja=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ls=/($^)/,Sc=/['\n\r\u2028\u2029\\]/g,qg="\\ud800-\\udfff",vI="\\u0300-\\u036f",$j="\\ufe20-\\ufe2f",I_e="\\u20d0-\\u20ff",Uj=vI+$j+I_e,jj="\\u2700-\\u27bf",Kj="a-z\\xdf-\\xf6\\xf8-\\xff",E_e="\\xac\\xb1\\xd7\\xf7",T_e="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",N_e="\\u2000-\\u206f",A_e=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",qj="A-Z\\xc0-\\xd6\\xd8-\\xde",Gj="\\ufe0e\\ufe0f",Zj=E_e+T_e+N_e+A_e,OO="['’]",R_e="["+qg+"]",Yj="["+Zj+"]",bI="["+Uj+"]",Xj="\\d+",M_e="["+jj+"]",Qj="["+Kj+"]",Jj="[^"+qg+Zj+Xj+jj+Kj+qj+"]",FO="\\ud83c[\\udffb-\\udfff]",P_e="(?:"+bI+"|"+FO+")",eK="[^"+qg+"]",BO="(?:\\ud83c[\\udde6-\\uddff]){2}",WO="[\\ud800-\\udbff][\\udc00-\\udfff]",fb="["+qj+"]",tK="\\u200d",iK="(?:"+Qj+"|"+Jj+")",O_e="(?:"+fb+"|"+Jj+")",nK="(?:"+OO+"(?:d|ll|m|re|s|t|ve))?",sK="(?:"+OO+"(?:D|LL|M|RE|S|T|VE))?",oK=P_e+"?",rK="["+Gj+"]?",F_e="(?:"+tK+"(?:"+[eK,BO,WO].join("|")+")"+rK+oK+")*",B_e="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",W_e="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",aK=rK+oK+F_e,H_e="(?:"+[M_e,BO,WO].join("|")+")"+aK,V_e="(?:"+[eK+bI+"?",bI,BO,WO,R_e].join("|")+")",z_e=RegExp(OO,"g"),$_e=RegExp(bI,"g"),HO=RegExp(FO+"(?="+FO+")|"+V_e+aK,"g"),U_e=RegExp([fb+"?"+Qj+"+"+nK+"(?="+[Yj,fb,"$"].join("|")+")",O_e+"+"+sK+"(?="+[Yj,fb+iK,"$"].join("|")+")",fb+"?"+iK+"+"+nK,fb+"+"+sK,W_e,B_e,Xj,H_e].join("|"),"g"),j_e=RegExp("["+tK+qg+Uj+Gj+"]"),K_e=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,q_e=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],G_e=-1,Es={};Es[qe]=Es[ot]=Es[bt]=Es[xt]=Es[si]=Es[Ci]=Es[Dt]=Es[Si]=Es[Ai]=!0,Es[Oi]=Es[ni]=Es[ge]=Es[Qe]=Es[Ie]=Es[nt]=Es[Je]=Es[Ii]=Es[ie]=Es[ye]=Es[Oe]=Es[re]=Es[Q]=Es[Z]=Es[Y]=!1;var ws={};ws[Oi]=ws[ni]=ws[ge]=ws[Ie]=ws[Qe]=ws[nt]=ws[qe]=ws[ot]=ws[bt]=ws[xt]=ws[si]=ws[ie]=ws[ye]=ws[Oe]=ws[re]=ws[Q]=ws[Z]=ws[B]=ws[Ci]=ws[Dt]=ws[Si]=ws[Ai]=!0,ws[Je]=ws[Ii]=ws[Y]=!1;var Z_e={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},Y_e={"&":"&","<":"<",">":">",'"':""","'":"'"},X_e={"&":"&","<":"<",">":">",""":'"',"'":"'"},Q_e={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},J_e=parseFloat,eve=parseInt,lK=typeof oS=="object"&&oS&&oS.Object===Object&&oS,tve=typeof self=="object"&&self&&self.Object===Object&&self,_r=lK||tve||Function("return this")(),VO=e&&!e.nodeType&&e,D_=VO&&!0&&n&&!n.nodeType&&n,cK=D_&&D_.exports===VO,zO=cK&&lK.process,xc=function(){try{var ve=D_&&D_.require&&D_.require("util").types;return ve||zO&&zO.binding&&zO.binding("util")}catch{}}(),dK=xc&&xc.isArrayBuffer,uK=xc&&xc.isDate,hK=xc&&xc.isMap,fK=xc&&xc.isRegExp,gK=xc&&xc.isSet,pK=xc&&xc.isTypedArray;function Al(ve,$e,Pe){switch(Pe.length){case 0:return ve.call($e);case 1:return ve.call($e,Pe[0]);case 2:return ve.call($e,Pe[0],Pe[1]);case 3:return ve.call($e,Pe[0],Pe[1],Pe[2])}return ve.apply($e,Pe)}function ive(ve,$e,Pe,Ft){for(var Ti=-1,On=ve==null?0:ve.length;++Ti-1}function $O(ve,$e,Pe){for(var Ft=-1,Ti=ve==null?0:ve.length;++Ft-1;);return Pe}function SK(ve,$e){for(var Pe=ve.length;Pe--&&gb($e,ve[Pe],0)>-1;);return Pe}function uve(ve,$e){for(var Pe=ve.length,Ft=0;Pe--;)ve[Pe]===$e&&++Ft;return Ft}var hve=qO(Z_e),fve=qO(Y_e);function gve(ve){return"\\"+Q_e[ve]}function pve(ve,$e){return ve==null?t:ve[$e]}function pb(ve){return j_e.test(ve)}function mve(ve){return K_e.test(ve)}function _ve(ve){for(var $e,Pe=[];!($e=ve.next()).done;)Pe.push($e.value);return Pe}function XO(ve){var $e=-1,Pe=Array(ve.size);return ve.forEach(function(Ft,Ti){Pe[++$e]=[Ti,Ft]}),Pe}function xK(ve,$e){return function(Pe){return ve($e(Pe))}}function Yg(ve,$e){for(var Pe=-1,Ft=ve.length,Ti=0,On=[];++Pe-1}function s0e(m,C){var L=this.__data__,T=FI(L,m);return T<0?(++this.size,L.push([m,C])):L[T][1]=C,this}Xh.prototype.clear=e0e,Xh.prototype.delete=t0e,Xh.prototype.get=i0e,Xh.prototype.has=n0e,Xh.prototype.set=s0e;function Qh(m){var C=-1,L=m==null?0:m.length;for(this.clear();++C=C?m:C)),m}function Ic(m,C,L,T,F,U){var oe,de=C&u,Ce=C&h,Ze=C&f;if(L&&(oe=F?L(m,T,F,U):L(m)),oe!==t)return oe;if(!Ks(m))return m;var Ye=Ri(m);if(Ye){if(oe=lbe(m),!de)return Ka(m,oe)}else{var tt=Gr(m),It=tt==Ii||tt==J;if(ip(m))return rq(m,de);if(tt==Oe||tt==Oi||It&&!F){if(oe=Ce||It?{}:Lq(m),!de)return Ce?X0e(m,C0e(oe,m)):Y0e(m,OK(oe,m))}else{if(!ws[tt])return F?m:{};oe=cbe(m,tt,de)}}U||(U=new gd);var Kt=U.get(m);if(Kt)return Kt;U.set(m,oe),eG(m)?m.forEach(function(hi){oe.add(Ic(hi,C,L,hi,m,U))}):Qq(m)&&m.forEach(function(hi,nn){oe.set(nn,Ic(hi,C,L,nn,m,U))});var ui=Ze?Ce?S4:y4:Ce?Ga:ir,ji=Ye?t:ui(m);return Lc(ji||m,function(hi,nn){ji&&(nn=hi,hi=m[nn]),fy(oe,nn,Ic(hi,C,L,nn,m,U))}),oe}function w0e(m){var C=ir(m);return function(L){return FK(L,m,C)}}function FK(m,C,L){var T=L.length;if(m==null)return!T;for(m=ms(m);T--;){var F=L[T],U=C[F],oe=m[F];if(oe===t&&!(F in m)||!U(oe))return!1}return!0}function BK(m,C,L){if(typeof m!="function")throw new kc(r);return Cy(function(){m.apply(t,L)},C)}function gy(m,C,L,T){var F=-1,U=CI,oe=!0,de=m.length,Ce=[],Ze=C.length;if(!de)return Ce;L&&(C=Fs(C,Rl(L))),T?(U=$O,oe=!1):C.length>=s&&(U=ay,oe=!1,C=new T_(C));e:for(;++FF?0:F+L),T=T===t||T>F?F:Wi(T),T<0&&(T+=F),T=L>T?0:iG(T);L0&&L(de)?C>1?vr(de,C-1,L,T,F):Zg(F,de):T||(F[F.length]=de)}return F}var s4=hq(),VK=hq(!0);function xu(m,C){return m&&s4(m,C,ir)}function o4(m,C){return m&&VK(m,C,ir)}function WI(m,C){return Gg(C,function(L){return sf(m[L])})}function A_(m,C){C=ep(C,m);for(var L=0,T=C.length;m!=null&&LC}function x0e(m,C){return m!=null&&es.call(m,C)}function L0e(m,C){return m!=null&&C in ms(m)}function k0e(m,C,L){return m>=qr(C,L)&&m=120&&Ye.length>=120)?new T_(oe&&Ye):t}Ye=m[0];var tt=-1,It=de[0];e:for(;++tt-1;)de!==m&&TI.call(de,Ce,1),TI.call(m,Ce,1);return m}function QK(m,C){for(var L=m?C.length:0,T=L-1;L--;){var F=C[L];if(L==T||F!==U){var U=F;nf(F)?TI.call(m,F,1):p4(m,F)}}return m}function h4(m,C){return m+RI(AK()*(C-m+1))}function W0e(m,C,L,T){for(var F=-1,U=Bo(AI((C-m)/(L||1)),0),oe=Pe(U);U--;)oe[T?U:++F]=m,m+=L;return oe}function f4(m,C){var L="";if(!m||C<1||C>me)return L;do C%2&&(L+=m),C=RI(C/2),C&&(m+=m);while(C);return L}function Qi(m,C){return T4(Iq(m,C,Za),m+"")}function H0e(m){return PK(kb(m))}function V0e(m,C){var L=kb(m);return YI(L,N_(C,0,L.length))}function _y(m,C,L,T){if(!Ks(m))return m;C=ep(C,m);for(var F=-1,U=C.length,oe=U-1,de=m;de!=null&&++FF?0:F+C),L=L>F?F:L,L<0&&(L+=F),F=C>L?0:L-C>>>0,C>>>=0;for(var U=Pe(F);++T>>1,oe=m[U];oe!==null&&!Pl(oe)&&(L?oe<=C:oe=s){var Ze=C?null:tbe(m);if(Ze)return yI(Ze);oe=!1,F=ay,Ce=new T_}else Ce=C?[]:de;e:for(;++T=T?m:Ec(m,C,L)}var oq=Ave||function(m){return _r.clearTimeout(m)};function rq(m,C){if(C)return m.slice();var L=m.length,T=DK?DK(L):new m.constructor(L);return m.copy(T),T}function b4(m){var C=new m.constructor(m.byteLength);return new II(C).set(new II(m)),C}function K0e(m,C){var L=C?b4(m.buffer):m.buffer;return new m.constructor(L,m.byteOffset,m.byteLength)}function q0e(m){var C=new m.constructor(m.source,Gt.exec(m));return C.lastIndex=m.lastIndex,C}function G0e(m){return hy?ms(hy.call(m)):{}}function aq(m,C){var L=C?b4(m.buffer):m.buffer;return new m.constructor(L,m.byteOffset,m.length)}function lq(m,C){if(m!==C){var L=m!==t,T=m===null,F=m===m,U=Pl(m),oe=C!==t,de=C===null,Ce=C===C,Ze=Pl(C);if(!de&&!Ze&&!U&&m>C||U&&oe&&Ce&&!de&&!Ze||T&&oe&&Ce||!L&&Ce||!F)return 1;if(!T&&!U&&!Ze&&m=de)return Ce;var Ze=L[T];return Ce*(Ze=="desc"?-1:1)}}return m.index-C.index}function cq(m,C,L,T){for(var F=-1,U=m.length,oe=L.length,de=-1,Ce=C.length,Ze=Bo(U-oe,0),Ye=Pe(Ce+Ze),tt=!T;++de1?L[F-1]:t,oe=F>2?L[2]:t;for(U=m.length>3&&typeof U=="function"?(F--,U):t,oe&&pa(L[0],L[1],oe)&&(U=F<3?t:U,F=1),C=ms(C);++T-1?F[U?C[oe]:oe]:t}}function pq(m){return tf(function(C){var L=C.length,T=L,F=Dc.prototype.thru;for(m&&C.reverse();T--;){var U=C[T];if(typeof U!="function")throw new kc(r);if(F&&!oe&&GI(U)=="wrapper")var oe=new Dc([],!0)}for(T=oe?T:L;++T1&&pn.reverse(),Ye&&Cede))return!1;var Ze=U.get(m),Ye=U.get(C);if(Ze&&Ye)return Ze==C&&Ye==m;var tt=-1,It=!0,Kt=L&p?new T_:t;for(U.set(m,C),U.set(C,m);++tt1?"& ":"")+C[T],C=C.join(L>2?", ":" "),m.replace(hb,`{ /* [wrapped with `+C+`] */ `)}function ube(m){return Ri(m)||P_(m)||!!(TK&&m&&m[TK])}function nf(m,C){var L=typeof m;return C=C??me,!!C&&(L=="number"||L!="symbol"&&ko.test(m))&&m>-1&&m%1==0&&m0){if(++C>=M)return arguments[0]}else C=0;return m.apply(t,arguments)}}function YI(m,C){var L=-1,T=m.length,F=T-1;for(C=C===t?T:C;++L1?m[C-1]:t;return L=typeof L=="function"?(m.pop(),L):t,Hq(m,L)});function Vq(m){var C=$(m);return C.__chain__=!0,C}function y1e(m,C){return C(m),m}function XI(m,C){return C(m)}var S1e=tf(function(m){var C=m.length,L=C?m[0]:0,T=this.__wrapped__,F=function(U){return n4(U,m)};return C>1||this.__actions__.length||!(T instanceof un)||!nf(L)?this.thru(F):(T=T.slice(L,+L+(C?1:0)),T.__actions__.push({func:XI,args:[F],thisArg:t}),new Dc(T,this.__chain__).thru(function(U){return C&&!U.length&&U.push(t),U}))});function x1e(){return Vq(this)}function L1e(){return new Dc(this.value(),this.__chain__)}function k1e(){this.__values__===t&&(this.__values__=tG(this.value()));var m=this.__index__>=this.__values__.length,C=m?t:this.__values__[this.__index__++];return{done:m,value:C}}function D1e(){return this}function I1e(m){for(var C,L=this;L instanceof OI;){var T=Mq(L);T.__index__=0,T.__values__=t,C?F.__wrapped__=T:C=T;var F=T;L=L.__wrapped__}return F.__wrapped__=m,C}function E1e(){var m=this.__wrapped__;if(m instanceof un){var C=m;return this.__actions__.length&&(C=new un(this)),C=C.reverse(),C.__actions__.push({func:XI,args:[N4],thisArg:t}),new Dc(C,this.__chain__)}return this.thru(N4)}function T1e(){return nq(this.__wrapped__,this.__actions__)}var N1e=$I(function(m,C,L){es.call(m,L)?++m[L]:Jh(m,L,1)});function A1e(m,C,L){var T=Ri(m)?mK:y0e;return L&&pa(m,C,L)&&(C=t),T(m,di(C,3))}function R1e(m,C){var L=Ri(m)?Gg:HK;return L(m,di(C,3))}var M1e=gq(Pq),P1e=gq(Oq);function O1e(m,C){return vr(QI(m,C),1)}function F1e(m,C){return vr(QI(m,C),he)}function B1e(m,C,L){return L=L===t?1:Wi(L),vr(QI(m,C),L)}function zq(m,C){var L=Ri(m)?Lc:Qg;return L(m,di(C,3))}function $q(m,C){var L=Ri(m)?nve:WK;return L(m,di(C,3))}var W1e=$I(function(m,C,L){es.call(m,L)?m[L].push(C):Jh(m,L,[C])});function H1e(m,C,L,T){m=qa(m)?m:kb(m),L=L&&!T?Wi(L):0;var F=m.length;return L<0&&(L=Bo(F+L,0)),nE(m)?L<=F&&m.indexOf(C,L)>-1:!!F&&gb(m,C,L)>-1}var V1e=Qi(function(m,C,L){var T=-1,F=typeof C=="function",U=qa(m)?Pe(m.length):[];return Qg(m,function(oe){U[++T]=F?Al(C,oe,L):py(oe,C,L)}),U}),z1e=$I(function(m,C,L){Jh(m,L,C)});function QI(m,C){var L=Ri(m)?Fs:KK;return L(m,di(C,3))}function $1e(m,C,L,T){return m==null?[]:(Ri(C)||(C=C==null?[]:[C]),L=T?t:L,Ri(L)||(L=L==null?[]:[L]),YK(m,C,L))}var U1e=$I(function(m,C,L){m[L?0:1].push(C)},function(){return[[],[]]});function j1e(m,C,L){var T=Ri(m)?UO:CK,F=arguments.length<3;return T(m,di(C,4),L,F,Qg)}function K1e(m,C,L){var T=Ri(m)?sve:CK,F=arguments.length<3;return T(m,di(C,4),L,F,WK)}function q1e(m,C){var L=Ri(m)?Gg:HK;return L(m,tE(di(C,3)))}function G1e(m){var C=Ri(m)?PK:H0e;return C(m)}function Z1e(m,C,L){(L?pa(m,C,L):C===t)?C=1:C=Wi(C);var T=Ri(m)?_0e:V0e;return T(m,C)}function Y1e(m){var C=Ri(m)?v0e:$0e;return C(m)}function X1e(m){if(m==null)return 0;if(qa(m))return nE(m)?mb(m):m.length;var C=Gr(m);return C==ie||C==Q?m.size:c4(m).length}function Q1e(m,C,L){var T=Ri(m)?jO:U0e;return L&&pa(m,C,L)&&(C=t),T(m,di(C,3))}var J1e=Qi(function(m,C){if(m==null)return[];var L=C.length;return L>1&&pa(m,C[0],C[1])?C=[]:L>2&&pa(C[0],C[1],C[2])&&(C=[C[0]]),YK(m,vr(C,1),[])}),JI=Rve||function(){return _r.Date.now()};function eCe(m,C){if(typeof C!="function")throw new kc(r);return m=Wi(m),function(){if(--m<1)return C.apply(this,arguments)}}function Uq(m,C,L){return C=L?t:C,C=m&&C==null?m.length:C,ef(m,D,t,t,t,t,C)}function jq(m,C){var L;if(typeof C!="function")throw new kc(r);return m=Wi(m),function(){return--m>0&&(L=C.apply(this,arguments)),m<=1&&(C=t),L}}var R4=Qi(function(m,C,L){var T=_;if(L.length){var F=Yg(L,xb(R4));T|=x}return ef(m,T,C,L,F)}),Kq=Qi(function(m,C,L){var T=_|b;if(L.length){var F=Yg(L,xb(Kq));T|=x}return ef(C,T,m,L,F)});function qq(m,C,L){C=L?t:C;var T=ef(m,y,t,t,t,t,t,C);return T.placeholder=qq.placeholder,T}function Gq(m,C,L){C=L?t:C;var T=ef(m,S,t,t,t,t,t,C);return T.placeholder=Gq.placeholder,T}function Zq(m,C,L){var T,F,U,oe,de,Ce,Ze=0,Ye=!1,tt=!1,It=!0;if(typeof m!="function")throw new kc(r);C=Nc(C)||0,Ks(L)&&(Ye=!!L.leading,tt="maxWait"in L,U=tt?Bo(Nc(L.maxWait)||0,C):U,It="trailing"in L?!!L.trailing:It);function Kt(fo){var md=T,rf=F;return T=F=t,Ze=fo,oe=m.apply(rf,md),oe}function ui(fo){return Ze=fo,de=Cy(nn,C),Ye?Kt(fo):oe}function ji(fo){var md=fo-Ce,rf=fo-Ze,gG=C-md;return tt?qr(gG,U-rf):gG}function hi(fo){var md=fo-Ce,rf=fo-Ze;return Ce===t||md>=C||md<0||tt&&rf>=U}function nn(){var fo=JI();if(hi(fo))return pn(fo);de=Cy(nn,ji(fo))}function pn(fo){return de=t,It&&T?Kt(fo):(T=F=t,oe)}function Ol(){de!==t&&oq(de),Ze=0,T=Ce=F=de=t}function ma(){return de===t?oe:pn(JI())}function Fl(){var fo=JI(),md=hi(fo);if(T=arguments,F=this,Ce=fo,md){if(de===t)return ui(Ce);if(tt)return oq(de),de=Cy(nn,C),Kt(Ce)}return de===t&&(de=Cy(nn,C)),oe}return Fl.cancel=Ol,Fl.flush=ma,Fl}var tCe=Qi(function(m,C){return BK(m,1,C)}),iCe=Qi(function(m,C,L){return BK(m,Nc(C)||0,L)});function nCe(m){return ef(m,N)}function eE(m,C){if(typeof m!="function"||C!=null&&typeof C!="function")throw new kc(r);var L=function(){var T=arguments,F=C?C.apply(this,T):T[0],U=L.cache;if(U.has(F))return U.get(F);var oe=m.apply(this,T);return L.cache=U.set(F,oe)||U,oe};return L.cache=new(eE.Cache||Qh),L}eE.Cache=Qh;function tE(m){if(typeof m!="function")throw new kc(r);return function(){var C=arguments;switch(C.length){case 0:return!m.call(this);case 1:return!m.call(this,C[0]);case 2:return!m.call(this,C[0],C[1]);case 3:return!m.call(this,C[0],C[1],C[2])}return!m.apply(this,C)}}function sCe(m){return jq(2,m)}var oCe=j0e(function(m,C){C=C.length==1&&Ri(C[0])?Fs(C[0],Rl(di())):Fs(vr(C,1),Rl(di()));var L=C.length;return Qi(function(T){for(var F=-1,U=qr(T.length,L);++F=C}),P_=$K(function(){return arguments}())?$K:function(m){return eo(m)&&es.call(m,"callee")&&!EK.call(m,"callee")},Ri=Pe.isArray,CCe=dK?Rl(dK):I0e;function qa(m){return m!=null&&iE(m.length)&&!sf(m)}function ho(m){return eo(m)&&qa(m)}function wCe(m){return m===!0||m===!1||eo(m)&&ga(m)==Qe}var ip=Pve||j4,yCe=uK?Rl(uK):E0e;function SCe(m){return eo(m)&&m.nodeType===1&&!wy(m)}function xCe(m){if(m==null)return!0;if(qa(m)&&(Ri(m)||typeof m=="string"||typeof m.splice=="function"||ip(m)||Lb(m)||P_(m)))return!m.length;var C=Gr(m);if(C==ie||C==Q)return!m.size;if(by(m))return!c4(m).length;for(var L in m)if(es.call(m,L))return!1;return!0}function LCe(m,C){return my(m,C)}function kCe(m,C,L){L=typeof L=="function"?L:t;var T=L?L(m,C):t;return T===t?my(m,C,t,L):!!T}function P4(m){if(!eo(m))return!1;var C=ga(m);return C==Je||C==mt||typeof m.message=="string"&&typeof m.name=="string"&&!wy(m)}function DCe(m){return typeof m=="number"&&NK(m)}function sf(m){if(!Ks(m))return!1;var C=ga(m);return C==Ii||C==J||C==Se||C==vt}function Xq(m){return typeof m=="number"&&m==Wi(m)}function iE(m){return typeof m=="number"&&m>-1&&m%1==0&&m<=me}function Ks(m){var C=typeof m;return m!=null&&(C=="object"||C=="function")}function eo(m){return m!=null&&typeof m=="object"}var Qq=hK?Rl(hK):N0e;function ICe(m,C){return m===C||l4(m,C,L4(C))}function ECe(m,C,L){return L=typeof L=="function"?L:t,l4(m,C,L4(C),L)}function TCe(m){return Jq(m)&&m!=+m}function NCe(m){if(gbe(m))throw new Ti(o);return UK(m)}function ACe(m){return m===null}function RCe(m){return m==null}function Jq(m){return typeof m=="number"||eo(m)&&ga(m)==ye}function wy(m){if(!eo(m)||ga(m)!=Oe)return!1;var C=EI(m);if(C===null)return!0;var L=es.call(C,"constructor")&&C.constructor;return typeof L=="function"&&L instanceof L&&LI.call(L)==Eve}var O4=fK?Rl(fK):A0e;function MCe(m){return Xq(m)&&m>=-me&&m<=me}var eG=gK?Rl(gK):R0e;function nE(m){return typeof m=="string"||!Ri(m)&&eo(m)&&ga(m)==Z}function Pl(m){return typeof m=="symbol"||eo(m)&&ga(m)==B}var Lb=pK?Rl(pK):M0e;function PCe(m){return m===t}function OCe(m){return eo(m)&&Gr(m)==Y}function FCe(m){return eo(m)&&ga(m)==G}var BCe=qI(d4),WCe=qI(function(m,C){return m<=C});function tG(m){if(!m)return[];if(qa(m))return nE(m)?fd(m):Ka(m);if(ly&&m[ly])return _ve(m[ly]());var C=Gr(m),L=C==ie?XO:C==Q?yI:kb;return L(m)}function of(m){if(!m)return m===0?m:0;if(m=Nc(m),m===he||m===-he){var C=m<0?-1:1;return C*De}return m===m?m:0}function Wi(m){var C=of(m),L=C%1;return C===C?L?C-L:C:0}function iG(m){return m?N_(Wi(m),0,We):0}function Nc(m){if(typeof m=="number")return m;if(Pl(m))return lt;if(Ks(m)){var C=typeof m.valueOf=="function"?m.valueOf():m;m=Ks(C)?C+"":C}if(typeof m!="string")return m===0?m:+m;m=wK(m);var L=ct.test(m);return L||jn.test(m)?eve(m.slice(2),L?2:8):_e.test(m)?lt:+m}function nG(m){return Lu(m,Ga(m))}function HCe(m){return m?N_(Wi(m),-me,me):m===0?m:0}function Kn(m){return m==null?"":Ml(m)}var VCe=yb(function(m,C){if(by(C)||qa(C)){Lu(C,ir(C),m);return}for(var L in C)es.call(C,L)&&fy(m,L,C[L])}),sG=yb(function(m,C){Lu(C,Ga(C),m)}),sE=yb(function(m,C,L,T){Lu(C,Ga(C),m,T)}),zCe=yb(function(m,C,L,T){Lu(C,ir(C),m,T)}),$Ce=tf(n4);function UCe(m,C){var L=wb(m);return C==null?L:OK(L,C)}var jCe=Qi(function(m,C){m=ms(m);var L=-1,T=C.length,F=T>2?C[2]:t;for(F&&pa(C[0],C[1],F)&&(T=1);++L1),U}),Lu(m,S4(m),L),T&&(L=Ic(L,u|h|f,ibe));for(var F=C.length;F--;)p4(L,C[F]);return L});function cwe(m,C){return rG(m,tE(di(C)))}var dwe=tf(function(m,C){return m==null?{}:F0e(m,C)});function rG(m,C){if(m==null)return{};var L=Fs(S4(m),function(T){return[T]});return C=di(C),XK(m,L,function(T,F){return C(T,F[0])})}function uwe(m,C,L){C=ep(C,m);var T=-1,F=C.length;for(F||(F=1,m=t);++TC){var T=m;m=C,C=T}if(L||m%1||C%1){var F=AK();return qr(m+F*(C-m+J_e("1e-"+((F+"").length-1))),C)}return h4(m,C)}var ywe=Sb(function(m,C,L){return C=C.toLowerCase(),m+(L?cG(C):C)});function cG(m){return W4(Kn(m).toLowerCase())}function dG(m){return m=Kn(m),m&&m.replace(ja,hve).replace($_e,"")}function Swe(m,C,L){m=Kn(m),C=Ml(C);var T=m.length;L=L===t?T:N_(Wi(L),0,T);var F=L;return L-=C.length,L>=0&&m.slice(L,F)==C}function xwe(m){return m=Kn(m),m&&Su.test(m)?m.replace(yu,fve):m}function Lwe(m){return m=Kn(m),m&&k_.test(m)?m.replace(Yh,"\\$&"):m}var kwe=Sb(function(m,C,L){return m+(L?"-":"")+C.toLowerCase()}),Dwe=Sb(function(m,C,L){return m+(L?" ":"")+C.toLowerCase()}),Iwe=fq("toLowerCase");function Ewe(m,C,L){m=Kn(m),C=Wi(C);var T=C?mb(m):0;if(!C||T>=C)return m;var F=(C-T)/2;return KI(RI(F),L)+m+KI(AI(F),L)}function Twe(m,C,L){m=Kn(m),C=Wi(C);var T=C?mb(m):0;return C&&T>>0,L?(m=Kn(m),m&&(typeof C=="string"||C!=null&&!O4(C))&&(C=Ml(C),!C&&pb(m))?tp(fd(m),0,L):m.split(C,L)):[]}var Fwe=Sb(function(m,C,L){return m+(L?" ":"")+W4(C)});function Bwe(m,C,L){return m=Kn(m),L=L==null?0:N_(Wi(L),0,m.length),C=Ml(C),m.slice(L,L+C.length)==C}function Wwe(m,C,L){var T=$.templateSettings;L&&pa(m,C,L)&&(C=t),m=Kn(m),C=sE({},C,T,Cq);var F=sE({},C.imports,T.imports,Cq),U=ir(F),oe=YO(F,U),de,Ce,Ze=0,Ye=C.interpolate||ls,tt="__p += '",It=QO((C.escape||ls).source+"|"+Ye.source+"|"+(Ye===Gh?PO:ls).source+"|"+(C.evaluate||ls).source+"|$","g"),Kt="//# sourceURL="+(es.call(C,"sourceURL")?(C.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++G_e+"]")+` `;m.replace(It,function(hi,nn,pn,Ol,ma,Fl){return pn||(pn=Ol),tt+=m.slice(Ze,Fl).replace(Sc,gve),nn&&(de=!0,tt+=`' + __e(`+nn+`) + '`),ma&&(Ce=!0,tt+=`'; `+ma+`; __p += '`),pn&&(tt+=`' + ((__t = (`+pn+`)) == null ? '' : __t) + '`),Ze=Fl+hi.length,hi}),tt+=`'; `;var ui=es.call(C,"variable")&&C.variable;if(!ui)tt=`with (obj) { `+tt+` } `;else if(mI.test(ui))throw new Ti(a);tt=(Ce?tt.replace(mr,""):tt).replace(Ei,"$1").replace(Cs,"$1;"),tt="function("+(ui||"obj")+`) { `+(ui?"":`obj || (obj = {}); `)+"var __t, __p = ''"+(de?", __e = _.escape":"")+(Ce?`, __j = Array.prototype.join; function print() { __p += __j.call(arguments, '') } `:`; `)+tt+`return __p }`;var ji=hG(function(){return On(U,Kt+"return "+tt).apply(t,oe)});if(ji.source=tt,P4(ji))throw ji;return ji}function Hwe(m){return Kn(m).toLowerCase()}function Vwe(m){return Kn(m).toUpperCase()}function zwe(m,C,L){if(m=Kn(m),m&&(L||C===t))return wK(m);if(!m||!(C=Ml(C)))return m;var T=fd(m),F=fd(C),U=yK(T,F),oe=SK(T,F)+1;return tp(T,U,oe).join("")}function $we(m,C,L){if(m=Kn(m),m&&(L||C===t))return m.slice(0,LK(m)+1);if(!m||!(C=Ml(C)))return m;var T=fd(m),F=SK(T,fd(C))+1;return tp(T,0,F).join("")}function Uwe(m,C,L){if(m=Kn(m),m&&(L||C===t))return m.replace(Kg,"");if(!m||!(C=Ml(C)))return m;var T=fd(m),F=yK(T,fd(C));return tp(T,F).join("")}function jwe(m,C){var L=P,T=O;if(Ks(C)){var F="separator"in C?C.separator:F;L="length"in C?Wi(C.length):L,T="omission"in C?Ml(C.omission):T}m=Kn(m);var U=m.length;if(pb(m)){var oe=fd(m);U=oe.length}if(L>=U)return m;var de=L-mb(T);if(de<1)return T;var Ce=oe?tp(oe,0,de).join(""):m.slice(0,de);if(F===t)return Ce+T;if(oe&&(de+=Ce.length-de),O4(F)){if(m.slice(de).search(F)){var Ze,Ye=Ce;for(F.global||(F=QO(F.source,Kn(Gt.exec(F))+"g")),F.lastIndex=0;Ze=F.exec(Ye);)var tt=Ze.index;Ce=Ce.slice(0,tt===t?de:tt)}}else if(m.indexOf(Ml(F),de)!=de){var It=Ce.lastIndexOf(F);It>-1&&(Ce=Ce.slice(0,It))}return Ce+T}function Kwe(m){return m=Kn(m),m&&Nl.test(m)?m.replace(wu,wve):m}var qwe=Sb(function(m,C,L){return m+(L?" ":"")+C.toUpperCase()}),W4=fq("toUpperCase");function uG(m,C,L){return m=Kn(m),C=L?t:C,C===t?mve(m)?xve(m):ave(m):m.match(C)||[]}var hG=Qi(function(m,C){try{return Al(m,t,C)}catch(L){return P4(L)?L:new Ti(L)}}),Gwe=tf(function(m,C){return Lc(C,function(L){L=ku(L),Jh(m,L,R4(m[L],m))}),m});function Zwe(m){var C=m==null?0:m.length,L=di();return m=C?Fs(m,function(T){if(typeof T[1]!="function")throw new kc(r);return[L(T[0]),T[1]]}):[],Qi(function(T){for(var F=-1;++Fme)return[];var L=We,T=qr(m,We);C=di(C),m-=We;for(var F=ZO(T,C);++L0||C<0)?new un(L):(m<0?L=L.takeRight(-m):m&&(L=L.drop(m)),C!==t&&(C=Wi(C),L=C<0?L.dropRight(-C):L.take(C-m)),L)},un.prototype.takeRightWhile=function(m){return this.reverse().takeWhile(m).reverse()},un.prototype.toArray=function(){return this.take(We)},xu(un.prototype,function(m,C){var L=/^(?:filter|find|map|reject)|While$/.test(C),T=/^(?:head|last)$/.test(C),F=$[T?"take"+(C=="last"?"Right":""):C],U=T||/^find/.test(C);F&&($.prototype[C]=function(){var oe=this.__wrapped__,de=T?[1]:arguments,Ce=oe instanceof un,Ze=de[0],Ye=Ce||Ri(oe),tt=function(nn){var pn=F.apply($,Zg([nn],de));return T&&It?pn[0]:pn};Ye&&L&&typeof Ze=="function"&&Ze.length!=1&&(Ce=Ye=!1);var It=this.__chain__,Kt=!!this.__actions__.length,ui=U&&!It,ji=Ce&&!Kt;if(!U&&Ye){oe=ji?oe:new un(this);var hi=m.apply(oe,de);return hi.__actions__.push({func:XI,args:[tt],thisArg:t}),new Dc(hi,It)}return ui&&ji?m.apply(this,de):(hi=this.thru(tt),ui?T?hi.value()[0]:hi.value():hi)})}),Lc(["pop","push","shift","sort","splice","unshift"],function(m){var C=SI[m],L=/^(?:push|sort|unshift)$/.test(m)?"tap":"thru",T=/^(?:pop|shift)$/.test(m);$.prototype[m]=function(){var F=arguments;if(T&&!this.__chain__){var U=this.value();return C.apply(Ri(U)?U:[],F)}return this[L](function(oe){return C.apply(Ri(oe)?oe:[],F)})}}),xu(un.prototype,function(m,C){var L=$[C];if(L){var T=L.name+"";es.call(Cb,T)||(Cb[T]=[]),Cb[T].push({name:C,func:L})}}),Cb[UI(t,b).name]=[{name:"wrapper",func:t}],un.prototype.clone=Kve,un.prototype.reverse=qve,un.prototype.value=Gve,$.prototype.at=S1e,$.prototype.chain=x1e,$.prototype.commit=L1e,$.prototype.next=k1e,$.prototype.plant=I1e,$.prototype.reverse=E1e,$.prototype.toJSON=$.prototype.valueOf=$.prototype.value=T1e,$.prototype.first=$.prototype.head,ly&&($.prototype[ly]=D1e),$},_b=Lve();D_?((D_.exports=_b)._=_b,VO._=_b):_r._=_b}).call(oS)})(TR,TR.exports);var Yst=TR.exports;const wt=Zst(Yst);let jT;const Xst=new Uint8Array(16);function Qst(){if(!jT&&(jT=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!jT))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return jT(Xst)}const Cr=[];for(let n=0;n<256;++n)Cr.push((n+256).toString(16).slice(1));function Jst(n,e=0){return Cr[n[e+0]]+Cr[n[e+1]]+Cr[n[e+2]]+Cr[n[e+3]]+"-"+Cr[n[e+4]]+Cr[n[e+5]]+"-"+Cr[n[e+6]]+Cr[n[e+7]]+"-"+Cr[n[e+8]]+Cr[n[e+9]]+"-"+Cr[n[e+10]]+Cr[n[e+11]]+Cr[n[e+12]]+Cr[n[e+13]]+Cr[n[e+14]]+Cr[n[e+15]]}const eot=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),pie={randomUUID:eot};function tot(n,e,t){if(pie.randomUUID&&!n)return pie.randomUUID();n=n||{};const i=n.random||(n.rng||Qst)();return i[6]=i[6]&15|64,i[8]=i[8]&63|128,Jst(i)}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const iot=4,mie=0,_ie=1,not=2;function ty(n){let e=n.length;for(;--e>=0;)n[e]=0}const sot=0,bpe=1,oot=2,rot=3,aot=258,ij=29,iI=256,Wk=iI+1+ij,_C=30,nj=19,Cpe=2*Wk+1,Mv=15,D3=16,lot=7,sj=256,wpe=16,ype=17,Spe=18,yH=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),KN=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),cot=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),xpe=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),dot=512,Pf=new Array((Wk+2)*2);ty(Pf);const Wx=new Array(_C*2);ty(Wx);const Hk=new Array(dot);ty(Hk);const Vk=new Array(aot-rot+1);ty(Vk);const oj=new Array(ij);ty(oj);const NR=new Array(_C);ty(NR);function I3(n,e,t,i,s){this.static_tree=n,this.extra_bits=e,this.extra_base=t,this.elems=i,this.max_length=s,this.has_stree=n&&n.length}let Lpe,kpe,Dpe;function E3(n,e){this.dyn_tree=n,this.max_code=0,this.stat_desc=e}const Ipe=n=>n<256?Hk[n]:Hk[256+(n>>>7)],zk=(n,e)=>{n.pending_buf[n.pending++]=e&255,n.pending_buf[n.pending++]=e>>>8&255},_l=(n,e,t)=>{n.bi_valid>D3-t?(n.bi_buf|=e<>D3-n.bi_valid,n.bi_valid+=t-D3):(n.bi_buf|=e<{_l(n,t[e*2],t[e*2+1])},Epe=(n,e)=>{let t=0;do t|=n&1,n>>>=1,t<<=1;while(--e>0);return t>>>1},uot=n=>{n.bi_valid===16?(zk(n,n.bi_buf),n.bi_buf=0,n.bi_valid=0):n.bi_valid>=8&&(n.pending_buf[n.pending++]=n.bi_buf&255,n.bi_buf>>=8,n.bi_valid-=8)},hot=(n,e)=>{const t=e.dyn_tree,i=e.max_code,s=e.stat_desc.static_tree,o=e.stat_desc.has_stree,r=e.stat_desc.extra_bits,a=e.stat_desc.extra_base,l=e.stat_desc.max_length;let c,d,u,h,f,g,p=0;for(h=0;h<=Mv;h++)n.bl_count[h]=0;for(t[n.heap[n.heap_max]*2+1]=0,c=n.heap_max+1;cl&&(h=l,p++),t[d*2+1]=h,!(d>i)&&(n.bl_count[h]++,f=0,d>=a&&(f=r[d-a]),g=t[d*2],n.opt_len+=g*(h+f),o&&(n.static_len+=g*(s[d*2+1]+f)));if(p!==0){do{for(h=l-1;n.bl_count[h]===0;)h--;n.bl_count[h]--,n.bl_count[h+1]+=2,n.bl_count[l]--,p-=2}while(p>0);for(h=l;h!==0;h--)for(d=n.bl_count[h];d!==0;)u=n.heap[--c],!(u>i)&&(t[u*2+1]!==h&&(n.opt_len+=(h-t[u*2+1])*t[u*2],t[u*2+1]=h),d--)}},Tpe=(n,e,t)=>{const i=new Array(Mv+1);let s=0,o,r;for(o=1;o<=Mv;o++)s=s+t[o-1]<<1,i[o]=s;for(r=0;r<=e;r++){let a=n[r*2+1];a!==0&&(n[r*2]=Epe(i[a]++,a))}},fot=()=>{let n,e,t,i,s;const o=new Array(Mv+1);for(t=0,i=0;i>=7;i<_C;i++)for(NR[i]=s<<7,n=0;n<1<{let e;for(e=0;e{n.bi_valid>8?zk(n,n.bi_buf):n.bi_valid>0&&(n.pending_buf[n.pending++]=n.bi_buf),n.bi_buf=0,n.bi_valid=0},vie=(n,e,t,i)=>{const s=e*2,o=t*2;return n[s]{const i=n.heap[t];let s=t<<1;for(;s<=n.heap_len&&(s{let i,s,o=0,r,a;if(n.sym_next!==0)do i=n.pending_buf[n.sym_buf+o++]&255,i+=(n.pending_buf[n.sym_buf+o++]&255)<<8,s=n.pending_buf[n.sym_buf+o++],i===0?oh(n,s,e):(r=Vk[s],oh(n,r+iI+1,e),a=yH[r],a!==0&&(s-=oj[r],_l(n,s,a)),i--,r=Ipe(i),oh(n,r,t),a=KN[r],a!==0&&(i-=NR[r],_l(n,i,a)));while(o{const t=e.dyn_tree,i=e.stat_desc.static_tree,s=e.stat_desc.has_stree,o=e.stat_desc.elems;let r,a,l=-1,c;for(n.heap_len=0,n.heap_max=Cpe,r=0;r>1;r>=1;r--)T3(n,t,r);c=o;do r=n.heap[1],n.heap[1]=n.heap[n.heap_len--],T3(n,t,1),a=n.heap[1],n.heap[--n.heap_max]=r,n.heap[--n.heap_max]=a,t[c*2]=t[r*2]+t[a*2],n.depth[c]=(n.depth[r]>=n.depth[a]?n.depth[r]:n.depth[a])+1,t[r*2+1]=t[a*2+1]=c,n.heap[1]=c++,T3(n,t,1);while(n.heap_len>=2);n.heap[--n.heap_max]=n.heap[1],hot(n,e),Tpe(t,l,n.bl_count)},Cie=(n,e,t)=>{let i,s=-1,o,r=e[0*2+1],a=0,l=7,c=4;for(r===0&&(l=138,c=3),e[(t+1)*2+1]=65535,i=0;i<=t;i++)o=r,r=e[(i+1)*2+1],!(++a{let i,s=-1,o,r=e[0*2+1],a=0,l=7,c=4;for(r===0&&(l=138,c=3),i=0;i<=t;i++)if(o=r,r=e[(i+1)*2+1],!(++a{let e;for(Cie(n,n.dyn_ltree,n.l_desc.max_code),Cie(n,n.dyn_dtree,n.d_desc.max_code),SH(n,n.bl_desc),e=nj-1;e>=3&&n.bl_tree[xpe[e]*2+1]===0;e--);return n.opt_len+=3*(e+1)+5+5+4,e},pot=(n,e,t,i)=>{let s;for(_l(n,e-257,5),_l(n,t-1,5),_l(n,i-4,4),s=0;s{let e=4093624447,t;for(t=0;t<=31;t++,e>>>=1)if(e&1&&n.dyn_ltree[t*2]!==0)return mie;if(n.dyn_ltree[9*2]!==0||n.dyn_ltree[10*2]!==0||n.dyn_ltree[13*2]!==0)return _ie;for(t=32;t{yie||(fot(),yie=!0),n.l_desc=new E3(n.dyn_ltree,Lpe),n.d_desc=new E3(n.dyn_dtree,kpe),n.bl_desc=new E3(n.bl_tree,Dpe),n.bi_buf=0,n.bi_valid=0,Npe(n)},Rpe=(n,e,t,i)=>{_l(n,(sot<<1)+(i?1:0),3),Ape(n),zk(n,t),zk(n,~t),t&&n.pending_buf.set(n.window.subarray(e,e+t),n.pending),n.pending+=t},vot=n=>{_l(n,bpe<<1,3),oh(n,sj,Pf),uot(n)},bot=(n,e,t,i)=>{let s,o,r=0;n.level>0?(n.strm.data_type===not&&(n.strm.data_type=mot(n)),SH(n,n.l_desc),SH(n,n.d_desc),r=got(n),s=n.opt_len+3+7>>>3,o=n.static_len+3+7>>>3,o<=s&&(s=o)):s=o=t+5,t+4<=s&&e!==-1?Rpe(n,e,t,i):n.strategy===iot||o===s?(_l(n,(bpe<<1)+(i?1:0),3),bie(n,Pf,Wx)):(_l(n,(oot<<1)+(i?1:0),3),pot(n,n.l_desc.max_code+1,n.d_desc.max_code+1,r+1),bie(n,n.dyn_ltree,n.dyn_dtree)),Npe(n),i&&Ape(n)},Cot=(n,e,t)=>(n.pending_buf[n.sym_buf+n.sym_next++]=e,n.pending_buf[n.sym_buf+n.sym_next++]=e>>8,n.pending_buf[n.sym_buf+n.sym_next++]=t,e===0?n.dyn_ltree[t*2]++:(n.matches++,e--,n.dyn_ltree[(Vk[t]+iI+1)*2]++,n.dyn_dtree[Ipe(e)*2]++),n.sym_next===n.sym_end);var wot=_ot,yot=Rpe,Sot=bot,xot=Cot,Lot=vot,kot={_tr_init:wot,_tr_stored_block:yot,_tr_flush_block:Sot,_tr_tally:xot,_tr_align:Lot};const Dot=(n,e,t,i)=>{let s=n&65535|0,o=n>>>16&65535|0,r=0;for(;t!==0;){r=t>2e3?2e3:t,t-=r;do s=s+e[i++]|0,o=o+s|0;while(--r);s%=65521,o%=65521}return s|o<<16|0};var $k=Dot;const Iot=()=>{let n,e=[];for(var t=0;t<256;t++){n=t;for(var i=0;i<8;i++)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n}return e},Eot=new Uint32Array(Iot()),Tot=(n,e,t,i)=>{const s=Eot,o=i+t;n^=-1;for(let r=i;r>>8^s[(n^e[r])&255];return n^-1};var cr=Tot,V0={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},nI={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Not,_tr_stored_block:xH,_tr_flush_block:Aot,_tr_tally:Sm,_tr_align:Rot}=kot,{Z_NO_FLUSH:xm,Z_PARTIAL_FLUSH:Mot,Z_FULL_FLUSH:Pot,Z_FINISH:Uc,Z_BLOCK:Sie,Z_OK:wr,Z_STREAM_END:xie,Z_STREAM_ERROR:wh,Z_DATA_ERROR:Oot,Z_BUF_ERROR:N3,Z_DEFAULT_COMPRESSION:Fot,Z_FILTERED:Bot,Z_HUFFMAN_ONLY:KT,Z_RLE:Wot,Z_FIXED:Hot,Z_DEFAULT_STRATEGY:Vot,Z_UNKNOWN:zot,Z_DEFLATED:yO}=nI,$ot=9,Uot=15,jot=8,Kot=29,qot=256,LH=qot+1+Kot,Got=30,Zot=19,Yot=2*LH+1,Xot=15,bn=3,om=258,yh=om+bn+1,Qot=32,vw=42,rj=57,kH=69,DH=73,IH=91,EH=103,Pv=113,$S=666,Ea=1,iy=2,z0=3,ny=4,Jot=3,Ov=(n,e)=>(n.msg=V0[e],e),Lie=n=>n*2-(n>4?9:0),Wp=n=>{let e=n.length;for(;--e>=0;)n[e]=0},ert=n=>{let e,t,i,s=n.w_size;e=n.hash_size,i=e;do t=n.head[--i],n.head[i]=t>=s?t-s:0;while(--e);e=s,i=e;do t=n.prev[--i],n.prev[i]=t>=s?t-s:0;while(--e)};let trt=(n,e,t)=>(e<{const e=n.state;let t=e.pending;t>n.avail_out&&(t=n.avail_out),t!==0&&(n.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+t),n.next_out),n.next_out+=t,e.pending_out+=t,n.total_out+=t,n.avail_out-=t,e.pending-=t,e.pending===0&&(e.pending_out=0))},ec=(n,e)=>{Aot(n,n.block_start>=0?n.block_start:-1,n.strstart-n.block_start,e),n.block_start=n.strstart,Hl(n.strm)},Fn=(n,e)=>{n.pending_buf[n.pending++]=e},rS=(n,e)=>{n.pending_buf[n.pending++]=e>>>8&255,n.pending_buf[n.pending++]=e&255},TH=(n,e,t,i)=>{let s=n.avail_in;return s>i&&(s=i),s===0?0:(n.avail_in-=s,e.set(n.input.subarray(n.next_in,n.next_in+s),t),n.state.wrap===1?n.adler=$k(n.adler,e,s,t):n.state.wrap===2&&(n.adler=cr(n.adler,e,s,t)),n.next_in+=s,n.total_in+=s,s)},Mpe=(n,e)=>{let t=n.max_chain_length,i=n.strstart,s,o,r=n.prev_length,a=n.nice_match;const l=n.strstart>n.w_size-yh?n.strstart-(n.w_size-yh):0,c=n.window,d=n.w_mask,u=n.prev,h=n.strstart+om;let f=c[i+r-1],g=c[i+r];n.prev_length>=n.good_match&&(t>>=2),a>n.lookahead&&(a=n.lookahead);do if(s=e,!(c[s+r]!==g||c[s+r-1]!==f||c[s]!==c[i]||c[++s]!==c[i+1])){i+=2,s++;do;while(c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&ir){if(n.match_start=e,r=o,o>=a)break;f=c[i+r-1],g=c[i+r]}}while((e=u[e&d])>l&&--t!==0);return r<=n.lookahead?r:n.lookahead},bw=n=>{const e=n.w_size;let t,i,s;do{if(i=n.window_size-n.lookahead-n.strstart,n.strstart>=e+(e-yh)&&(n.window.set(n.window.subarray(e,e+e-i),0),n.match_start-=e,n.strstart-=e,n.block_start-=e,n.insert>n.strstart&&(n.insert=n.strstart),ert(n),i+=e),n.strm.avail_in===0)break;if(t=TH(n.strm,n.window,n.strstart+n.lookahead,i),n.lookahead+=t,n.lookahead+n.insert>=bn)for(s=n.strstart-n.insert,n.ins_h=n.window[s],n.ins_h=Lm(n,n.ins_h,n.window[s+1]);n.insert&&(n.ins_h=Lm(n,n.ins_h,n.window[s+bn-1]),n.prev[s&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=s,s++,n.insert--,!(n.lookahead+n.insert{let t=n.pending_buf_size-5>n.w_size?n.w_size:n.pending_buf_size-5,i,s,o,r=0,a=n.strm.avail_in;do{if(i=65535,o=n.bi_valid+42>>3,n.strm.avail_outs+n.strm.avail_in&&(i=s+n.strm.avail_in),i>o&&(i=o),i>8,n.pending_buf[n.pending-2]=~i,n.pending_buf[n.pending-1]=~i>>8,Hl(n.strm),s&&(s>i&&(s=i),n.strm.output.set(n.window.subarray(n.block_start,n.block_start+s),n.strm.next_out),n.strm.next_out+=s,n.strm.avail_out-=s,n.strm.total_out+=s,n.block_start+=s,i-=s),i&&(TH(n.strm,n.strm.output,n.strm.next_out,i),n.strm.next_out+=i,n.strm.avail_out-=i,n.strm.total_out+=i)}while(r===0);return a-=n.strm.avail_in,a&&(a>=n.w_size?(n.matches=2,n.window.set(n.strm.input.subarray(n.strm.next_in-n.w_size,n.strm.next_in),0),n.strstart=n.w_size,n.insert=n.strstart):(n.window_size-n.strstart<=a&&(n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,n.insert>n.strstart&&(n.insert=n.strstart)),n.window.set(n.strm.input.subarray(n.strm.next_in-a,n.strm.next_in),n.strstart),n.strstart+=a,n.insert+=a>n.w_size-n.insert?n.w_size-n.insert:a),n.block_start=n.strstart),n.high_watero&&n.block_start>=n.w_size&&(n.block_start-=n.w_size,n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,o+=n.w_size,n.insert>n.strstart&&(n.insert=n.strstart)),o>n.strm.avail_in&&(o=n.strm.avail_in),o&&(TH(n.strm,n.window,n.strstart,o),n.strstart+=o,n.insert+=o>n.w_size-n.insert?n.w_size-n.insert:o),n.high_water>3,o=n.pending_buf_size-o>65535?65535:n.pending_buf_size-o,t=o>n.w_size?n.w_size:o,s=n.strstart-n.block_start,(s>=t||(s||e===Uc)&&e!==xm&&n.strm.avail_in===0&&s<=o)&&(i=s>o?o:s,r=e===Uc&&n.strm.avail_in===0&&i===s?1:0,xH(n,n.block_start,i,r),n.block_start+=i,Hl(n.strm)),r?z0:Ea)},A3=(n,e)=>{let t,i;for(;;){if(n.lookahead=bn&&(n.ins_h=Lm(n,n.ins_h,n.window[n.strstart+bn-1]),t=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),t!==0&&n.strstart-t<=n.w_size-yh&&(n.match_length=Mpe(n,t)),n.match_length>=bn)if(i=Sm(n,n.strstart-n.match_start,n.match_length-bn),n.lookahead-=n.match_length,n.match_length<=n.max_lazy_match&&n.lookahead>=bn){n.match_length--;do n.strstart++,n.ins_h=Lm(n,n.ins_h,n.window[n.strstart+bn-1]),t=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart;while(--n.match_length!==0);n.strstart++}else n.strstart+=n.match_length,n.match_length=0,n.ins_h=n.window[n.strstart],n.ins_h=Lm(n,n.ins_h,n.window[n.strstart+1]);else i=Sm(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++;if(i&&(ec(n,!1),n.strm.avail_out===0))return Ea}return n.insert=n.strstart{let t,i,s;for(;;){if(n.lookahead=bn&&(n.ins_h=Lm(n,n.ins_h,n.window[n.strstart+bn-1]),t=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),n.prev_length=n.match_length,n.prev_match=n.match_start,n.match_length=bn-1,t!==0&&n.prev_length4096)&&(n.match_length=bn-1)),n.prev_length>=bn&&n.match_length<=n.prev_length){s=n.strstart+n.lookahead-bn,i=Sm(n,n.strstart-1-n.prev_match,n.prev_length-bn),n.lookahead-=n.prev_length-1,n.prev_length-=2;do++n.strstart<=s&&(n.ins_h=Lm(n,n.ins_h,n.window[n.strstart+bn-1]),t=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart);while(--n.prev_length!==0);if(n.match_available=0,n.match_length=bn-1,n.strstart++,i&&(ec(n,!1),n.strm.avail_out===0))return Ea}else if(n.match_available){if(i=Sm(n,0,n.window[n.strstart-1]),i&&ec(n,!1),n.strstart++,n.lookahead--,n.strm.avail_out===0)return Ea}else n.match_available=1,n.strstart++,n.lookahead--}return n.match_available&&(i=Sm(n,0,n.window[n.strstart-1]),n.match_available=0),n.insert=n.strstart{let t,i,s,o;const r=n.window;for(;;){if(n.lookahead<=om){if(bw(n),n.lookahead<=om&&e===xm)return Ea;if(n.lookahead===0)break}if(n.match_length=0,n.lookahead>=bn&&n.strstart>0&&(s=n.strstart-1,i=r[s],i===r[++s]&&i===r[++s]&&i===r[++s])){o=n.strstart+om;do;while(i===r[++s]&&i===r[++s]&&i===r[++s]&&i===r[++s]&&i===r[++s]&&i===r[++s]&&i===r[++s]&&i===r[++s]&&sn.lookahead&&(n.match_length=n.lookahead)}if(n.match_length>=bn?(t=Sm(n,1,n.match_length-bn),n.lookahead-=n.match_length,n.strstart+=n.match_length,n.match_length=0):(t=Sm(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++),t&&(ec(n,!1),n.strm.avail_out===0))return Ea}return n.insert=0,e===Uc?(ec(n,!0),n.strm.avail_out===0?z0:ny):n.sym_next&&(ec(n,!1),n.strm.avail_out===0)?Ea:iy},nrt=(n,e)=>{let t;for(;;){if(n.lookahead===0&&(bw(n),n.lookahead===0)){if(e===xm)return Ea;break}if(n.match_length=0,t=Sm(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++,t&&(ec(n,!1),n.strm.avail_out===0))return Ea}return n.insert=0,e===Uc?(ec(n,!0),n.strm.avail_out===0?z0:ny):n.sym_next&&(ec(n,!1),n.strm.avail_out===0)?Ea:iy};function Mu(n,e,t,i,s){this.good_length=n,this.max_lazy=e,this.nice_length=t,this.max_chain=i,this.func=s}const US=[new Mu(0,0,0,0,Ppe),new Mu(4,4,8,4,A3),new Mu(4,5,16,8,A3),new Mu(4,6,32,32,A3),new Mu(4,4,16,16,Qb),new Mu(8,16,32,32,Qb),new Mu(8,16,128,128,Qb),new Mu(8,32,128,256,Qb),new Mu(32,128,258,1024,Qb),new Mu(32,258,258,4096,Qb)],srt=n=>{n.window_size=2*n.w_size,Wp(n.head),n.max_lazy_match=US[n.level].max_lazy,n.good_match=US[n.level].good_length,n.nice_match=US[n.level].nice_length,n.max_chain_length=US[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=bn-1,n.match_available=0,n.ins_h=0};function ort(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=yO,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(Yot*2),this.dyn_dtree=new Uint16Array((2*Got+1)*2),this.bl_tree=new Uint16Array((2*Zot+1)*2),Wp(this.dyn_ltree),Wp(this.dyn_dtree),Wp(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Xot+1),this.heap=new Uint16Array(2*LH+1),Wp(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*LH+1),Wp(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const sI=n=>{if(!n)return 1;const e=n.state;return!e||e.strm!==n||e.status!==vw&&e.status!==rj&&e.status!==kH&&e.status!==DH&&e.status!==IH&&e.status!==EH&&e.status!==Pv&&e.status!==$S?1:0},Ope=n=>{if(sI(n))return Ov(n,wh);n.total_in=n.total_out=0,n.data_type=zot;const e=n.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap===2?rj:e.wrap?vw:Pv,n.adler=e.wrap===2?0:1,e.last_flush=-2,Not(e),wr},Fpe=n=>{const e=Ope(n);return e===wr&&srt(n.state),e},rrt=(n,e)=>sI(n)||n.state.wrap!==2?wh:(n.state.gzhead=e,wr),Bpe=(n,e,t,i,s,o)=>{if(!n)return wh;let r=1;if(e===Fot&&(e=6),i<0?(r=0,i=-i):i>15&&(r=2,i-=16),s<1||s>$ot||t!==yO||i<8||i>15||e<0||e>9||o<0||o>Hot||i===8&&r!==1)return Ov(n,wh);i===8&&(i=9);const a=new ort;return n.state=a,a.strm=n,a.status=vw,a.wrap=r,a.gzhead=null,a.w_bits=i,a.w_size=1<Bpe(n,e,yO,Uot,jot,Vot),lrt=(n,e)=>{if(sI(n)||e>Sie||e<0)return n?Ov(n,wh):wh;const t=n.state;if(!n.output||n.avail_in!==0&&!n.input||t.status===$S&&e!==Uc)return Ov(n,n.avail_out===0?N3:wh);const i=t.last_flush;if(t.last_flush=e,t.pending!==0){if(Hl(n),n.avail_out===0)return t.last_flush=-1,wr}else if(n.avail_in===0&&Lie(e)<=Lie(i)&&e!==Uc)return Ov(n,N3);if(t.status===$S&&n.avail_in!==0)return Ov(n,N3);if(t.status===vw&&t.wrap===0&&(t.status=Pv),t.status===vw){let s=yO+(t.w_bits-8<<4)<<8,o=-1;if(t.strategy>=KT||t.level<2?o=0:t.level<6?o=1:t.level===6?o=2:o=3,s|=o<<6,t.strstart!==0&&(s|=Qot),s+=31-s%31,rS(t,s),t.strstart!==0&&(rS(t,n.adler>>>16),rS(t,n.adler&65535)),n.adler=1,t.status=Pv,Hl(n),t.pending!==0)return t.last_flush=-1,wr}if(t.status===rj){if(n.adler=0,Fn(t,31),Fn(t,139),Fn(t,8),t.gzhead)Fn(t,(t.gzhead.text?1:0)+(t.gzhead.hcrc?2:0)+(t.gzhead.extra?4:0)+(t.gzhead.name?8:0)+(t.gzhead.comment?16:0)),Fn(t,t.gzhead.time&255),Fn(t,t.gzhead.time>>8&255),Fn(t,t.gzhead.time>>16&255),Fn(t,t.gzhead.time>>24&255),Fn(t,t.level===9?2:t.strategy>=KT||t.level<2?4:0),Fn(t,t.gzhead.os&255),t.gzhead.extra&&t.gzhead.extra.length&&(Fn(t,t.gzhead.extra.length&255),Fn(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(n.adler=cr(n.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=kH;else if(Fn(t,0),Fn(t,0),Fn(t,0),Fn(t,0),Fn(t,0),Fn(t,t.level===9?2:t.strategy>=KT||t.level<2?4:0),Fn(t,Jot),t.status=Pv,Hl(n),t.pending!==0)return t.last_flush=-1,wr}if(t.status===kH){if(t.gzhead.extra){let s=t.pending,o=(t.gzhead.extra.length&65535)-t.gzindex;for(;t.pending+o>t.pending_buf_size;){let a=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+a),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>s&&(n.adler=cr(n.adler,t.pending_buf,t.pending-s,s)),t.gzindex+=a,Hl(n),t.pending!==0)return t.last_flush=-1,wr;s=0,o-=a}let r=new Uint8Array(t.gzhead.extra);t.pending_buf.set(r.subarray(t.gzindex,t.gzindex+o),t.pending),t.pending+=o,t.gzhead.hcrc&&t.pending>s&&(n.adler=cr(n.adler,t.pending_buf,t.pending-s,s)),t.gzindex=0}t.status=DH}if(t.status===DH){if(t.gzhead.name){let s=t.pending,o;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>s&&(n.adler=cr(n.adler,t.pending_buf,t.pending-s,s)),Hl(n),t.pending!==0)return t.last_flush=-1,wr;s=0}t.gzindexs&&(n.adler=cr(n.adler,t.pending_buf,t.pending-s,s)),t.gzindex=0}t.status=IH}if(t.status===IH){if(t.gzhead.comment){let s=t.pending,o;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>s&&(n.adler=cr(n.adler,t.pending_buf,t.pending-s,s)),Hl(n),t.pending!==0)return t.last_flush=-1,wr;s=0}t.gzindexs&&(n.adler=cr(n.adler,t.pending_buf,t.pending-s,s))}t.status=EH}if(t.status===EH){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(Hl(n),t.pending!==0))return t.last_flush=-1,wr;Fn(t,n.adler&255),Fn(t,n.adler>>8&255),n.adler=0}if(t.status=Pv,Hl(n),t.pending!==0)return t.last_flush=-1,wr}if(n.avail_in!==0||t.lookahead!==0||e!==xm&&t.status!==$S){let s=t.level===0?Ppe(t,e):t.strategy===KT?nrt(t,e):t.strategy===Wot?irt(t,e):US[t.level].func(t,e);if((s===z0||s===ny)&&(t.status=$S),s===Ea||s===z0)return n.avail_out===0&&(t.last_flush=-1),wr;if(s===iy&&(e===Mot?Rot(t):e!==Sie&&(xH(t,0,0,!1),e===Pot&&(Wp(t.head),t.lookahead===0&&(t.strstart=0,t.block_start=0,t.insert=0))),Hl(n),n.avail_out===0))return t.last_flush=-1,wr}return e!==Uc?wr:t.wrap<=0?xie:(t.wrap===2?(Fn(t,n.adler&255),Fn(t,n.adler>>8&255),Fn(t,n.adler>>16&255),Fn(t,n.adler>>24&255),Fn(t,n.total_in&255),Fn(t,n.total_in>>8&255),Fn(t,n.total_in>>16&255),Fn(t,n.total_in>>24&255)):(rS(t,n.adler>>>16),rS(t,n.adler&65535)),Hl(n),t.wrap>0&&(t.wrap=-t.wrap),t.pending!==0?wr:xie)},crt=n=>{if(sI(n))return wh;const e=n.state.status;return n.state=null,e===Pv?Ov(n,Oot):wr},drt=(n,e)=>{let t=e.length;if(sI(n))return wh;const i=n.state,s=i.wrap;if(s===2||s===1&&i.status!==vw||i.lookahead)return wh;if(s===1&&(n.adler=$k(n.adler,e,t,0)),i.wrap=0,t>=i.w_size){s===0&&(Wp(i.head),i.strstart=0,i.block_start=0,i.insert=0);let l=new Uint8Array(i.w_size);l.set(e.subarray(t-i.w_size,t),0),e=l,t=i.w_size}const o=n.avail_in,r=n.next_in,a=n.input;for(n.avail_in=t,n.next_in=0,n.input=e,bw(i);i.lookahead>=bn;){let l=i.strstart,c=i.lookahead-(bn-1);do i.ins_h=Lm(i,i.ins_h,i.window[l+bn-1]),i.prev[l&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=l,l++;while(--c);i.strstart=l,i.lookahead=bn-1,bw(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=bn-1,i.match_available=0,n.next_in=r,n.input=a,n.avail_in=o,i.wrap=s,wr};var urt=art,hrt=Bpe,frt=Fpe,grt=Ope,prt=rrt,mrt=lrt,_rt=crt,vrt=drt,brt="pako deflate (from Nodeca project)",Hx={deflateInit:urt,deflateInit2:hrt,deflateReset:frt,deflateResetKeep:grt,deflateSetHeader:prt,deflate:mrt,deflateEnd:_rt,deflateSetDictionary:vrt,deflateInfo:brt};const Crt=(n,e)=>Object.prototype.hasOwnProperty.call(n,e);var wrt=function(n){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const t=e.shift();if(t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(const i in t)Crt(t,i)&&(n[i]=t[i])}}return n},yrt=n=>{let e=0;for(let i=0,s=n.length;i=252?6:n>=248?5:n>=240?4:n>=224?3:n>=192?2:1;Uk[254]=Uk[254]=1;var Srt=n=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(n);let e,t,i,s,o,r=n.length,a=0;for(s=0;s>>6,e[o++]=128|t&63):t<65536?(e[o++]=224|t>>>12,e[o++]=128|t>>>6&63,e[o++]=128|t&63):(e[o++]=240|t>>>18,e[o++]=128|t>>>12&63,e[o++]=128|t>>>6&63,e[o++]=128|t&63);return e};const xrt=(n,e)=>{if(e<65534&&n.subarray&&Wpe)return String.fromCharCode.apply(null,n.length===e?n:n.subarray(0,e));let t="";for(let i=0;i{const t=e||n.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(n.subarray(0,e));let i,s;const o=new Array(t*2);for(s=0,i=0;i4){o[s++]=65533,i+=a-1;continue}for(r&=a===2?31:a===3?15:7;a>1&&i1){o[s++]=65533;continue}r<65536?o[s++]=r:(r-=65536,o[s++]=55296|r>>10&1023,o[s++]=56320|r&1023)}return xrt(o,s)},krt=(n,e)=>{e=e||n.length,e>n.length&&(e=n.length);let t=e-1;for(;t>=0&&(n[t]&192)===128;)t--;return t<0||t===0?e:t+Uk[n[t]]>e?t:e},jk={string2buf:Srt,buf2string:Lrt,utf8border:krt};function Drt(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var Hpe=Drt;const Vpe=Object.prototype.toString,{Z_NO_FLUSH:Irt,Z_SYNC_FLUSH:Ert,Z_FULL_FLUSH:Trt,Z_FINISH:Nrt,Z_OK:AR,Z_STREAM_END:Art,Z_DEFAULT_COMPRESSION:Rrt,Z_DEFAULT_STRATEGY:Mrt,Z_DEFLATED:Prt}=nI;function oI(n){this.options=SO.assign({level:Rrt,method:Prt,chunkSize:16384,windowBits:15,memLevel:8,strategy:Mrt},n||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Hpe,this.strm.avail_out=0;let t=Hx.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(t!==AR)throw new Error(V0[t]);if(e.header&&Hx.deflateSetHeader(this.strm,e.header),e.dictionary){let i;if(typeof e.dictionary=="string"?i=jk.string2buf(e.dictionary):Vpe.call(e.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(e.dictionary):i=e.dictionary,t=Hx.deflateSetDictionary(this.strm,i),t!==AR)throw new Error(V0[t]);this._dict_set=!0}}oI.prototype.push=function(n,e){const t=this.strm,i=this.options.chunkSize;let s,o;if(this.ended)return!1;for(e===~~e?o=e:o=e===!0?Nrt:Irt,typeof n=="string"?t.input=jk.string2buf(n):Vpe.call(n)==="[object ArrayBuffer]"?t.input=new Uint8Array(n):t.input=n,t.next_in=0,t.avail_in=t.input.length;;){if(t.avail_out===0&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),(o===Ert||o===Trt)&&t.avail_out<=6){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(s=Hx.deflate(t,o),s===Art)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),s=Hx.deflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===AR;if(t.avail_out===0){this.onData(t.output);continue}if(o>0&&t.next_out>0){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(t.avail_in===0)break}return!0};oI.prototype.onData=function(n){this.chunks.push(n)};oI.prototype.onEnd=function(n){n===AR&&(this.result=SO.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};function aj(n,e){const t=new oI(e);if(t.push(n,!0),t.err)throw t.msg||V0[t.err];return t.result}function Ort(n,e){return e=e||{},e.raw=!0,aj(n,e)}function Frt(n,e){return e=e||{},e.gzip=!0,aj(n,e)}var Brt=oI,Wrt=aj,Hrt=Ort,Vrt=Frt,zrt={Deflate:Brt,deflate:Wrt,deflateRaw:Hrt,gzip:Vrt};const qT=16209,$rt=16191;var Urt=function(e,t){let i,s,o,r,a,l,c,d,u,h,f,g,p,_,b,w,y,S,x,k,D,I,N,P;const O=e.state;i=e.next_in,N=e.input,s=i+(e.avail_in-5),o=e.next_out,P=e.output,r=o-(t-e.avail_out),a=o+(e.avail_out-257),l=O.dmax,c=O.wsize,d=O.whave,u=O.wnext,h=O.window,f=O.hold,g=O.bits,p=O.lencode,_=O.distcode,b=(1<>>24,f>>>=S,g-=S,S=y>>>16&255,S===0)P[o++]=y&65535;else if(S&16){x=y&65535,S&=15,S&&(g>>=S,g-=S),g<15&&(f+=N[i++]<>>24,f>>>=S,g-=S,S=y>>>16&255,S&16){if(k=y&65535,S&=15,gl){e.msg="invalid distance too far back",O.mode=qT;break e}if(f>>>=S,g-=S,S=o-r,k>S){if(S=k-S,S>d&&O.sane){e.msg="invalid distance too far back",O.mode=qT;break e}if(D=0,I=h,u===0){if(D+=c-S,S2;)P[o++]=I[D++],P[o++]=I[D++],P[o++]=I[D++],x-=3;x&&(P[o++]=I[D++],x>1&&(P[o++]=I[D++]))}else{D=o-k;do P[o++]=P[D++],P[o++]=P[D++],P[o++]=P[D++],x-=3;while(x>2);x&&(P[o++]=P[D++],x>1&&(P[o++]=P[D++]))}}else if(S&64){e.msg="invalid distance code",O.mode=qT;break e}else{y=_[(y&65535)+(f&(1<>3,i-=x,g-=x<<3,f&=(1<{const l=a.bits;let c=0,d=0,u=0,h=0,f=0,g=0,p=0,_=0,b=0,w=0,y,S,x,k,D,I=null,N;const P=new Uint16Array(Jb+1),O=new Uint16Array(Jb+1);let M=null,z,K,ae;for(c=0;c<=Jb;c++)P[c]=0;for(d=0;d=1&&P[h]===0;h--);if(f>h&&(f=h),h===0)return s[o++]=1<<24|64<<16|0,s[o++]=1<<24|64<<16|0,a.bits=1,0;for(u=1;u0&&(n===Iie||h!==1))return-1;for(O[1]=0,c=1;ckie||n===Eie&&b>Die)return 1;for(;;){z=c-p,r[d]+1=N?(K=M[r[d]-N],ae=I[r[d]-N]):(K=96,ae=0),y=1<>p)+S]=z<<24|K<<16|ae|0;while(S!==0);for(y=1<>=1;if(y!==0?(w&=y-1,w+=y):w=0,d++,--P[c]===0){if(c===h)break;c=e[t+r[d]]}if(c>f&&(w&k)!==x){for(p===0&&(p=f),D+=u,g=c-p,_=1<kie||n===Eie&&b>Die)return 1;x=w&k,s[x]=f<<24|g<<16|D-o|0}}return w!==0&&(s[D+w]=c-p<<24|64<<16|0),a.bits=f,0};var Vx=Zrt;const Yrt=0,zpe=1,$pe=2,{Z_FINISH:Tie,Z_BLOCK:Xrt,Z_TREES:GT,Z_OK:$0,Z_STREAM_END:Qrt,Z_NEED_DICT:Jrt,Z_STREAM_ERROR:rd,Z_DATA_ERROR:Upe,Z_MEM_ERROR:jpe,Z_BUF_ERROR:eat,Z_DEFLATED:Nie}=nI,xO=16180,Aie=16181,Rie=16182,Mie=16183,Pie=16184,Oie=16185,Fie=16186,Bie=16187,Wie=16188,Hie=16189,RR=16190,vf=16191,M3=16192,Vie=16193,P3=16194,zie=16195,$ie=16196,Uie=16197,jie=16198,ZT=16199,YT=16200,Kie=16201,qie=16202,Gie=16203,Zie=16204,Yie=16205,O3=16206,Xie=16207,Qie=16208,Bs=16209,Kpe=16210,qpe=16211,tat=852,iat=592,nat=15,sat=nat,Jie=n=>(n>>>24&255)+(n>>>8&65280)+((n&65280)<<8)+((n&255)<<24);function oat(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const db=n=>{if(!n)return 1;const e=n.state;return!e||e.strm!==n||e.modeqpe?1:0},Gpe=n=>{if(db(n))return rd;const e=n.state;return n.total_in=n.total_out=e.total=0,n.msg="",e.wrap&&(n.adler=e.wrap&1),e.mode=xO,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(tat),e.distcode=e.distdyn=new Int32Array(iat),e.sane=1,e.back=-1,$0},Zpe=n=>{if(db(n))return rd;const e=n.state;return e.wsize=0,e.whave=0,e.wnext=0,Gpe(n)},Ype=(n,e)=>{let t;if(db(n))return rd;const i=n.state;return e<0?(t=0,e=-e):(t=(e>>4)+5,e<48&&(e&=15)),e&&(e<8||e>15)?rd:(i.window!==null&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,Zpe(n))},Xpe=(n,e)=>{if(!n)return rd;const t=new oat;n.state=t,t.strm=n,t.window=null,t.mode=xO;const i=Ype(n,e);return i!==$0&&(n.state=null),i},rat=n=>Xpe(n,sat);let ene=!0,F3,B3;const aat=n=>{if(ene){F3=new Int32Array(512),B3=new Int32Array(32);let e=0;for(;e<144;)n.lens[e++]=8;for(;e<256;)n.lens[e++]=9;for(;e<280;)n.lens[e++]=7;for(;e<288;)n.lens[e++]=8;for(Vx(zpe,n.lens,0,288,F3,0,n.work,{bits:9}),e=0;e<32;)n.lens[e++]=5;Vx($pe,n.lens,0,32,B3,0,n.work,{bits:5}),ene=!1}n.lencode=F3,n.lenbits=9,n.distcode=B3,n.distbits=5},Qpe=(n,e,t,i)=>{let s;const o=n.state;return o.window===null&&(o.wsize=1<=o.wsize?(o.window.set(e.subarray(t-o.wsize,t),0),o.wnext=0,o.whave=o.wsize):(s=o.wsize-o.wnext,s>i&&(s=i),o.window.set(e.subarray(t-i,t-i+s),o.wnext),i-=s,i?(o.window.set(e.subarray(t-i,t),0),o.wnext=i,o.whave=o.wsize):(o.wnext+=s,o.wnext===o.wsize&&(o.wnext=0),o.whave{let t,i,s,o,r,a,l,c,d,u,h,f,g,p,_=0,b,w,y,S,x,k,D,I;const N=new Uint8Array(4);let P,O;const M=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(db(n)||!n.output||!n.input&&n.avail_in!==0)return rd;t=n.state,t.mode===vf&&(t.mode=M3),r=n.next_out,s=n.output,l=n.avail_out,o=n.next_in,i=n.input,a=n.avail_in,c=t.hold,d=t.bits,u=a,h=l,I=$0;e:for(;;)switch(t.mode){case xO:if(t.wrap===0){t.mode=M3;break}for(;d<16;){if(a===0)break e;a--,c+=i[o++]<>>8&255,t.check=cr(t.check,N,2,0),c=0,d=0,t.mode=Aie;break}if(t.head&&(t.head.done=!1),!(t.wrap&1)||(((c&255)<<8)+(c>>8))%31){n.msg="incorrect header check",t.mode=Bs;break}if((c&15)!==Nie){n.msg="unknown compression method",t.mode=Bs;break}if(c>>>=4,d-=4,D=(c&15)+8,t.wbits===0&&(t.wbits=D),D>15||D>t.wbits){n.msg="invalid window size",t.mode=Bs;break}t.dmax=1<>8&1),t.flags&512&&t.wrap&4&&(N[0]=c&255,N[1]=c>>>8&255,t.check=cr(t.check,N,2,0)),c=0,d=0,t.mode=Rie;case Rie:for(;d<32;){if(a===0)break e;a--,c+=i[o++]<>>8&255,N[2]=c>>>16&255,N[3]=c>>>24&255,t.check=cr(t.check,N,4,0)),c=0,d=0,t.mode=Mie;case Mie:for(;d<16;){if(a===0)break e;a--,c+=i[o++]<>8),t.flags&512&&t.wrap&4&&(N[0]=c&255,N[1]=c>>>8&255,t.check=cr(t.check,N,2,0)),c=0,d=0,t.mode=Pie;case Pie:if(t.flags&1024){for(;d<16;){if(a===0)break e;a--,c+=i[o++]<>>8&255,t.check=cr(t.check,N,2,0)),c=0,d=0}else t.head&&(t.head.extra=null);t.mode=Oie;case Oie:if(t.flags&1024&&(f=t.length,f>a&&(f=a),f&&(t.head&&(D=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(o,o+f),D)),t.flags&512&&t.wrap&4&&(t.check=cr(t.check,i,f,o)),a-=f,o+=f,t.length-=f),t.length))break e;t.length=0,t.mode=Fie;case Fie:if(t.flags&2048){if(a===0)break e;f=0;do D=i[o+f++],t.head&&D&&t.length<65536&&(t.head.name+=String.fromCharCode(D));while(D&&f>9&1,t.head.done=!0),n.adler=t.check=0,t.mode=vf;break;case Hie:for(;d<32;){if(a===0)break e;a--,c+=i[o++]<>>=d&7,d-=d&7,t.mode=O3;break}for(;d<3;){if(a===0)break e;a--,c+=i[o++]<>>=1,d-=1,c&3){case 0:t.mode=Vie;break;case 1:if(aat(t),t.mode=ZT,e===GT){c>>>=2,d-=2;break e}break;case 2:t.mode=$ie;break;case 3:n.msg="invalid block type",t.mode=Bs}c>>>=2,d-=2;break;case Vie:for(c>>>=d&7,d-=d&7;d<32;){if(a===0)break e;a--,c+=i[o++]<>>16^65535)){n.msg="invalid stored block lengths",t.mode=Bs;break}if(t.length=c&65535,c=0,d=0,t.mode=P3,e===GT)break e;case P3:t.mode=zie;case zie:if(f=t.length,f){if(f>a&&(f=a),f>l&&(f=l),f===0)break e;s.set(i.subarray(o,o+f),r),a-=f,o+=f,l-=f,r+=f,t.length-=f;break}t.mode=vf;break;case $ie:for(;d<14;){if(a===0)break e;a--,c+=i[o++]<>>=5,d-=5,t.ndist=(c&31)+1,c>>>=5,d-=5,t.ncode=(c&15)+4,c>>>=4,d-=4,t.nlen>286||t.ndist>30){n.msg="too many length or distance symbols",t.mode=Bs;break}t.have=0,t.mode=Uie;case Uie:for(;t.have>>=3,d-=3}for(;t.have<19;)t.lens[M[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,P={bits:t.lenbits},I=Vx(Yrt,t.lens,0,19,t.lencode,0,t.work,P),t.lenbits=P.bits,I){n.msg="invalid code lengths set",t.mode=Bs;break}t.have=0,t.mode=jie;case jie:for(;t.have>>24,w=_>>>16&255,y=_&65535,!(b<=d);){if(a===0)break e;a--,c+=i[o++]<>>=b,d-=b,t.lens[t.have++]=y;else{if(y===16){for(O=b+2;d>>=b,d-=b,t.have===0){n.msg="invalid bit length repeat",t.mode=Bs;break}D=t.lens[t.have-1],f=3+(c&3),c>>>=2,d-=2}else if(y===17){for(O=b+3;d>>=b,d-=b,D=0,f=3+(c&7),c>>>=3,d-=3}else{for(O=b+7;d>>=b,d-=b,D=0,f=11+(c&127),c>>>=7,d-=7}if(t.have+f>t.nlen+t.ndist){n.msg="invalid bit length repeat",t.mode=Bs;break}for(;f--;)t.lens[t.have++]=D}}if(t.mode===Bs)break;if(t.lens[256]===0){n.msg="invalid code -- missing end-of-block",t.mode=Bs;break}if(t.lenbits=9,P={bits:t.lenbits},I=Vx(zpe,t.lens,0,t.nlen,t.lencode,0,t.work,P),t.lenbits=P.bits,I){n.msg="invalid literal/lengths set",t.mode=Bs;break}if(t.distbits=6,t.distcode=t.distdyn,P={bits:t.distbits},I=Vx($pe,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,P),t.distbits=P.bits,I){n.msg="invalid distances set",t.mode=Bs;break}if(t.mode=ZT,e===GT)break e;case ZT:t.mode=YT;case YT:if(a>=6&&l>=258){n.next_out=r,n.avail_out=l,n.next_in=o,n.avail_in=a,t.hold=c,t.bits=d,Urt(n,h),r=n.next_out,s=n.output,l=n.avail_out,o=n.next_in,i=n.input,a=n.avail_in,c=t.hold,d=t.bits,t.mode===vf&&(t.back=-1);break}for(t.back=0;_=t.lencode[c&(1<>>24,w=_>>>16&255,y=_&65535,!(b<=d);){if(a===0)break e;a--,c+=i[o++]<>S)],b=_>>>24,w=_>>>16&255,y=_&65535,!(S+b<=d);){if(a===0)break e;a--,c+=i[o++]<>>=S,d-=S,t.back+=S}if(c>>>=b,d-=b,t.back+=b,t.length=y,w===0){t.mode=Yie;break}if(w&32){t.back=-1,t.mode=vf;break}if(w&64){n.msg="invalid literal/length code",t.mode=Bs;break}t.extra=w&15,t.mode=Kie;case Kie:if(t.extra){for(O=t.extra;d>>=t.extra,d-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=qie;case qie:for(;_=t.distcode[c&(1<>>24,w=_>>>16&255,y=_&65535,!(b<=d);){if(a===0)break e;a--,c+=i[o++]<>S)],b=_>>>24,w=_>>>16&255,y=_&65535,!(S+b<=d);){if(a===0)break e;a--,c+=i[o++]<>>=S,d-=S,t.back+=S}if(c>>>=b,d-=b,t.back+=b,w&64){n.msg="invalid distance code",t.mode=Bs;break}t.offset=y,t.extra=w&15,t.mode=Gie;case Gie:if(t.extra){for(O=t.extra;d>>=t.extra,d-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){n.msg="invalid distance too far back",t.mode=Bs;break}t.mode=Zie;case Zie:if(l===0)break e;if(f=h-l,t.offset>f){if(f=t.offset-f,f>t.whave&&t.sane){n.msg="invalid distance too far back",t.mode=Bs;break}f>t.wnext?(f-=t.wnext,g=t.wsize-f):g=t.wnext-f,f>t.length&&(f=t.length),p=t.window}else p=s,g=r-t.offset,f=t.length;f>l&&(f=l),l-=f,t.length-=f;do s[r++]=p[g++];while(--f);t.length===0&&(t.mode=YT);break;case Yie:if(l===0)break e;s[r++]=t.length,l--,t.mode=YT;break;case O3:if(t.wrap){for(;d<32;){if(a===0)break e;a--,c|=i[o++]<{if(db(n))return rd;let e=n.state;return e.window&&(e.window=null),n.state=null,$0},dat=(n,e)=>{if(db(n))return rd;const t=n.state;return t.wrap&2?(t.head=e,e.done=!1,$0):rd},uat=(n,e)=>{const t=e.length;let i,s,o;return db(n)||(i=n.state,i.wrap!==0&&i.mode!==RR)?rd:i.mode===RR&&(s=1,s=$k(s,e,t,0),s!==i.check)?Upe:(o=Qpe(n,e,t,t),o?(i.mode=Kpe,jpe):(i.havedict=1,$0))};var hat=Zpe,fat=Ype,gat=Gpe,pat=rat,mat=Xpe,_at=lat,vat=cat,bat=dat,Cat=uat,wat="pako inflate (from Nodeca project)",Of={inflateReset:hat,inflateReset2:fat,inflateResetKeep:gat,inflateInit:pat,inflateInit2:mat,inflate:_at,inflateEnd:vat,inflateGetHeader:bat,inflateSetDictionary:Cat,inflateInfo:wat};function yat(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var Sat=yat;const Jpe=Object.prototype.toString,{Z_NO_FLUSH:xat,Z_FINISH:Lat,Z_OK:Kk,Z_STREAM_END:W3,Z_NEED_DICT:H3,Z_STREAM_ERROR:kat,Z_DATA_ERROR:tne,Z_MEM_ERROR:Dat}=nI;function rI(n){this.options=SO.assign({chunkSize:1024*64,windowBits:15,to:""},n||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(n&&n.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Hpe,this.strm.avail_out=0;let t=Of.inflateInit2(this.strm,e.windowBits);if(t!==Kk)throw new Error(V0[t]);if(this.header=new Sat,Of.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=jk.string2buf(e.dictionary):Jpe.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=Of.inflateSetDictionary(this.strm,e.dictionary),t!==Kk)))throw new Error(V0[t])}rI.prototype.push=function(n,e){const t=this.strm,i=this.options.chunkSize,s=this.options.dictionary;let o,r,a;if(this.ended)return!1;for(e===~~e?r=e:r=e===!0?Lat:xat,Jpe.call(n)==="[object ArrayBuffer]"?t.input=new Uint8Array(n):t.input=n,t.next_in=0,t.avail_in=t.input.length;;){for(t.avail_out===0&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),o=Of.inflate(t,r),o===H3&&s&&(o=Of.inflateSetDictionary(t,s),o===Kk?o=Of.inflate(t,r):o===tne&&(o=H3));t.avail_in>0&&o===W3&&t.state.wrap>0&&n[t.next_in]!==0;)Of.inflateReset(t),o=Of.inflate(t,r);switch(o){case kat:case tne:case H3:case Dat:return this.onEnd(o),this.ended=!0,!1}if(a=t.avail_out,t.next_out&&(t.avail_out===0||o===W3))if(this.options.to==="string"){let l=jk.utf8border(t.output,t.next_out),c=t.next_out-l,d=jk.buf2string(t.output,l);t.next_out=c,t.avail_out=i-c,c&&t.output.set(t.output.subarray(l,l+c),0),this.onData(d)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(!(o===Kk&&a===0)){if(o===W3)return o=Of.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(t.avail_in===0)break}}return!0};rI.prototype.onData=function(n){this.chunks.push(n)};rI.prototype.onEnd=function(n){n===Kk&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=SO.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};function lj(n,e){const t=new rI(e);if(t.push(n),t.err)throw t.msg||V0[t.err];return t.result}function Iat(n,e){return e=e||{},e.raw=!0,lj(n,e)}var Eat=rI,Tat=lj,Nat=Iat,Aat=lj,Rat={Inflate:Eat,inflate:Tat,inflateRaw:Nat,ungzip:Aat};const{Deflate:Mat,deflate:Pat,deflateRaw:Oat,gzip:Fat}=zrt,{Inflate:Bat,inflate:Wat,inflateRaw:Hat,ungzip:Vat}=Rat;var zat=Mat,$at=Pat,Uat=Oat,jat=Fat,Kat=Bat,qat=Wat,Gat=Hat,Zat=Vat,Yat=nI,eme={Deflate:zat,deflate:$at,deflateRaw:Uat,gzip:jat,Inflate:Kat,inflate:qat,inflateRaw:Gat,ungzip:Zat,constants:Yat};const Wn={timestampToTime(n){const e=new Date(Number(n)),t=e.getUTCFullYear(),i=String(e.getUTCMonth()+1).padStart(2,"0"),s=String(e.getUTCDate()).padStart(2,"0");return`${t}-${i}-${s} ${e.toUTCString().slice(17,25)}`},timestampToTimeOnly(n){return`${new Date(Number(n)).toUTCString().slice(17,25)}`},timestampToDate(n){const e=new Date(Number(n)),t=e.getUTCFullYear(),i=String(e.getUTCMonth()+1).padStart(2,"0"),s=String(e.getUTCDate()).padStart(2,"0");return`${t}-${i}-${s}`},timestampToReadableDateTime(n){return new Date(n).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1})},currentTime(){return new Date().toISOString().slice(11,19)},secondsToHumanReadable(n){const e=Math.floor(n/3600),t=Math.floor((n-e*3600)/60),i=wt.round(n-e*3600-t*60,2);return`${e}h ${t}m ${i}s`},remainingTimeText(n){return Math.round(n)===0?"Please wait...":n>60?`${this.secondsToHumanReadable(n)} remaining...`:`${Math.round(n)} seconds remaining...`},roundPrice(n){return n>1?wt.round(n,2):n},colorBasedOnSide(n){return n==="buy"?"text-green-600 dark:text-green-400":n==="sell"?"text-red-500 dark:text-red-400":"text-gray-900 dark:text-gray-200"},colorBasedOnType(n){return n==="long"?"text-green-600 dark:text-green-400":n==="short"?"text-red-500 dark:text-red-400":"text-gray-900 dark:text-gray-200"},colorBasedOnNumber(n){return n>0?"text-green-600 dark:text-green-400":n<0?"text-red-500 dark:text-red-400":"text-gray-900 dark:text-gray-200"},decompressData(n){const e=Uint8Array.from(atob(n.data),t=>t.charCodeAt(0));return JSON.parse(eme.inflate(e,{to:"string"}))},async copyToClipboard(n){try{return await navigator.clipboard.writeText(n),{success:!0}}catch(e){console.error("Modern clipboard API failed:",e);try{const t=document.createElement("textarea");t.value=n,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select();const i=document.execCommand("copy");return document.body.removeChild(t),i?{success:!0}:{success:!1,error:"Clipboard copying failed with execCommand fallback"}}catch{return{success:!1,error:"All clipboard methods failed"}}}},uuid(){return tot()}},Ws={candles:{},orders:{},lines:{},extraChartLines:{},horizontalLines:{},horizontalExtraLines:{}};async function cj(n){const{data:e,error:t}=await Ot("/tabs/list",{module:n},!0);return t.value&&t.value.statusCode!==200?(Pt(t),[]):e.value.ids||[]}async function wv(n,e){const{data:t,error:i}=await Ot("/tabs/add",{module:n,id:e},!0);return i.value&&i.value.statusCode!==200?(Pt(i),[]):t.value.ids||[]}async function qN(n,e){const{data:t,error:i}=await Ot("/tabs/remove",{module:n,id:e},!0);return i.value&&i.value.statusCode!==200?(Pt(i),[]):t.value.ids||[]}async function Xat(n,e){const{data:t,error:i}=await Ot("/tabs/reorder",{module:n,ids:e},!0);return i.value&&i.value.statusCode!==200?(Pt(i),[]):t.value.ids||[]}function bd(){return wt.cloneDeep({id:Wn.uuid(),form:{start_date:"2024-01-01",finish_date:"2024-03-01",debug_mode:!1,export_chart:!1,export_tradingview:!1,export_csv:!1,export_json:!1,fast_mode:!1,benchmark:!0,exchange:"",routes:[],data_routes:[]},results:{showResults:!1,executing:!1,logsModal:!1,progressbar:{current:0,estimated_remaining_seconds:0},routes_info:[],metrics:{},hyperparameters:[],generalInfo:{},infoLogs:"",exception:{error:"",traceback:""},charts:{equity_curve:[]},selectedRoute:{},alert:{message:"",type:""},info:[],trades:[]}})}const tme=d_("backtest",{state:()=>({tabs:{},tabIds:[],recentlyClosedTabIds:[],recentlyClosedRedirectTargets:{},benchmarkColumns:[{key:"strategy",label:"Strategy"},{key:"progress",label:"Progress"},{key:"start_date",label:"Start Date"},{key:"finish_date",label:"Finish Date"},{key:"exchange",label:"Exchange"},{key:"symbol",label:"Symbol"},{key:"timeframe",label:"Timeframe"},{key:"total_closed_trades",label:"Total Trades"},{key:"net_profit",label:"Net Profit"},{key:"net_profit_percentage",label:"Net Profit %"},{key:"max_drawdown",label:"Max Drawdown"},{key:"sharpe_ratio",label:"Sharpe Ratio"},{key:"sortino_ratio",label:"Sortino Ratio"},{key:"calmar_ratio",label:"Calmar Ratio"},{key:"omega_ratio",label:"Omega Ratio"},{key:"annual_return",label:"Annual Return"},{key:"total_paid_fees",label:"Total Paid Fees"},{key:"expectancy",label:"Expectancy"},{key:"ratio_avg_win_loss",label:"Ratio Avg Win Loss"},{key:"win_rate",label:"Win Rate"},{key:"longs_percentage",label:"Longs %"},{key:"shorts_percentage",label:"Shorts %"},{key:"average_holding_hours",label:"Average Holding Hours"}],benchmarkFilters:[],benchmarkSorts:[{key:"none",label:"None"},{key:"total_closed_trades",label:"Total Trades"},{key:"net_profit",label:"Net Profit"},{key:"net_profit_percentage",label:"Net Profit %"},{key:"sharpe_ratio",label:"Sharpe Ratio"},{key:"sortino_ratio",label:"Sortino Ratio"},{key:"calmar_ratio",label:"Calmar Ratio"},{key:"omega_ratio",label:"Omega Ratio"},{key:"annual_return",label:"Annual Return"},{key:"expectancy",label:"Expectancy"},{key:"ratio_avg_win_loss",label:"Ratio Avg Win Loss"},{key:"win_rate",label:"Win Rate"}],benchmarkSelectedSort:{},missingCandlesErrors:{}}),persist:{storage:eL.localStorage,pick:["benchmarkColumns","benchmarkFilters","benchmarkSorts","benchmarkSelectedSort"]},actions:{markTabClosedRecently(n,e=""){n&&(this.recentlyClosedTabIds.includes(n)||this.recentlyClosedTabIds.push(n),this.recentlyClosedRedirectTargets[n]=e,setTimeout(()=>{this.recentlyClosedTabIds=this.recentlyClosedTabIds.filter(t=>t!==n),delete this.recentlyClosedRedirectTargets[n]},2e3))},setBenchmarkFilters(n){this.benchmarkFilters=n},setBenchmarkSort(n){this.benchmarkSelectedSort=n},async init(){const n=await cj("backtest");this.tabIds=n,await this.loadAllSessions()},async loadAllSessions(){var n,e,t,i,s,o,r,a,l,c,d,u;if(this.tabIds.length===0){const h=bd();this.tabs[h.id]=h,this.tabIds=[h.id],await this.saveStateDraft(h.id),await wv("backtest",h.id);return}for(const h of this.tabIds)try{const{data:f,error:g}=await Ot(`/backtest/sessions/${h}`,{},!0);if(g.value){if(g.value.statusCode===404){this.tabs[h]=bd(),this.tabs[h].id=h;continue}Pt(g.value),this.tabs[h]=bd(),this.tabs[h].id=h;continue}if(!f.value){this.tabs[h]=bd(),this.tabs[h].id=h;continue}const p=(n=f.value)==null?void 0:n.session;if(!p){this.tabs[h]=bd(),this.tabs[h].id=h;continue}this.tabs[h]||(this.tabs[h]=bd(),this.tabs[h].id=h),this.tabs[h].form=((e=p.state)==null?void 0:e.form)||this.tabs[h].form;const _=!!(p.exception||p.traceback),b=p.status==="finished"&&!_,w=p.status==="running"||p.status==="stopped"||_;this.tabs[h].results={...this.tabs[h].results,showResults:b,executing:w,metrics:p.metrics||{},hyperparameters:p.hyperparameters||[],charts:{equity_curve:p.equity_curve||[]},trades:p.trades||[],exception:{error:p.exception||"",traceback:p.traceback||""},info:((i=(t=p.state)==null?void 0:t.results)==null?void 0:i.info)||this.tabs[h].results.info,routes_info:((o=(s=p.state)==null?void 0:s.results)==null?void 0:o.routes_info)||this.tabs[h].results.routes_info,generalInfo:{...((a=(r=p.state)==null?void 0:r.results)==null?void 0:a.generalInfo)||this.tabs[h].results.generalInfo,title:p.title||null,description:p.description||null},alert:((c=(l=p.state)==null?void 0:l.results)==null?void 0:c.alert)||this.tabs[h].results.alert,selectedRoute:((u=(d=p.state)==null?void 0:d.results)==null?void 0:u.selectedRoute)||this.tabs[h].results.selectedRoute,progressbar:this.tabs[h].results.progressbar,infoLogs:this.tabs[h].results.infoLogs}}catch(f){console.error(`Error loading session ${h}:`,f),this.tabs[h]=bd(),this.tabs[h].id=h}},async saveStateDraft(n){const e=this.tabs[n];e&&await Ot("/backtest/update-state",{id:n,state:{form:e.form,results:e.results}},!0)},async addTab(n){const e=bd();if(this.tabs[e.id]=e,this.tabIds.push(e.id),n){const t=this.tabs[n];e.form=JSON.parse(JSON.stringify(t.form))}await this.saveStateDraft(e.id),await wv("backtest",e.id),await Vs(`/backtest/${e.id}`)},async closeTab(n,e){if(!this.tabs[n])return;if(Object.keys(this.tabs).length<=1){Lt("error","Cannot close the last tab");return}const i=this.tabIds,s=i.indexOf(n),o=s>0?i[s-1]:"",r=s>=0&&s+1d!==n),delete Ws.orders[n],delete Ws.lines[n],delete Ws.candles[n],delete this.tabs[n],!(a==="/backtest/benchmark"||a==="/backtest/history")&&!l){if(r&&this.tabs[r]){Vs(`/backtest/${r}`);return}if(o&&this.tabs[o]){Vs(`/backtest/${o}`);return}Vs("/backtest")}},async startInNewTab(n){const e=bd();e.form=wt.cloneDeep(this.tabs[n].form),this.tabs[e.id]=e,this.tabIds.push(e.id),this.start(e.id),await Vs(`/backtest/${e.id}`)},duplicateTab(n){const e=bd();e.form=wt.cloneDeep(this.tabs[n].form);const t=this.tabIds.indexOf(n);this.tabIds.splice(t+1,0,e.id);const i=this.tabIds,s={};for(const o of i)this.tabs[o]?s[o]=this.tabs[o]:s[o]=e;this.tabs=s},closeTabsFromCurrent(n){const e=this.tabIds.indexOf(n);if(e===-1)return;const t=this.tabIds.slice(e),i=e>0?this.tabIds[e-1]:"";this.tabIds=this.tabIds.slice(0,e);for(const s of t){const o=this.tabs[s];o&&o.results.executing&&!o.results.exception.error&&this.cancel(s),delete Ws.orders[s],delete Ws.lines[s],delete Ws.candles[s],delete this.tabs[s]}i&&this.tabs[i]?Vs(`/backtest/${i}`):Vs("/backtest")},goToNextTab(n){const e=this.tabIds;if(e.length===0)return;let t=e.indexOf(n);t===-1&&(t=0);const i=(t+1)%e.length,s=e[i];s&&Vs(`/backtest/${s}`)},goToPrevTab(n){const e=this.tabIds;if(e.length===0)return;let t=e.indexOf(n);t===-1&&(t=0);const i=(t-1+e.length)%e.length,s=e[i];s&&Vs(`/backtest/${s}`)},async start(n){if(delete this.missingCandlesErrors[n],delete Ws.candles[n],delete Ws.orders[n],delete Ws.lines[n],delete Ws.extraChartLines[n],delete Ws.horizontalLines[n],delete Ws.horizontalExtraLines[n],this.tabs[n].results.progressbar.current=0,this.tabs[n].results.executing=!0,this.tabs[n].results.infoLogs="",this.tabs[n].results.exception.traceback="",this.tabs[n].results.exception.error="",this.tabs[n].results.alert||(this.tabs[n].results.alert={message:"",type:""}),this.tabs[n].results.alert.message="",this.tabs[n].results.selectedRoute=this.tabs[n].form.routes[0],this.tabs[n].results.metrics={},this.tabs[n].form.fast_mode&&this.tabs[n].form.routes.length>1){Lt("error","For the moment, the fast mode can only be used with one trading route"),this.tabs[n].results.executing=!1;return}const{data:e,error:t}=await Ot("/backtest",{id:n,exchange:this.tabs[n].form.exchange,routes:this.tabs[n].form.routes,data_routes:this.tabs[n].form.data_routes,config:pi().settings.backtest,start_date:this.tabs[n].form.start_date,finish_date:this.tabs[n].form.finish_date,debug_mode:this.tabs[n].form.debug_mode,export_csv:this.tabs[n].form.export_csv,export_chart:this.tabs[n].form.export_chart,export_tradingview:this.tabs[n].form.export_tradingview,export_json:this.tabs[n].form.export_json,fast_mode:this.tabs[n].form.fast_mode,benchmark:this.tabs[n].form.benchmark},!0);if(t.value&&t.value.statusCode!==200){ZR().path!=="/backtest/benchmark"&&Lt("error",t.value.data.message),this.tabs[n].results.executing=!1;return}},async cancel(n){if(delete this.missingCandlesErrors[n],this.tabs[n].results.exception.error){this.tabs[n].results.executing=!1,this.tabs[n].results.exception.error="";return}const{data:e,error:t}=await Ot("/backtest/cancel",{id:n},!0);t.value&&t.value.statusCode!==200&&Lt("error",t.value.data.message),this.tabs[n].results.executing=!1,await this.saveState(n)},rerun(n){this.tabs[n].results.showResults=!1,this.start(n)},rerunAll(){for(const n in this.tabs)this.tabs[n].results.executing&&!this.tabs[n].results.exception.error||this.rerun(n)},rerunFailed(){for(const n in this.tabs)this.tabs[n].results.exception.error&&this.rerun(n)},cancelAllRunning(){for(const n in this.tabs)this.tabs[n].results.executing&&this.cancel(n)},newBacktest(n){this.tabs[n].results.showResults=!1},candlesInfoEvent(n,e){const t=[["Period",e.duration],["Starting Date",Wn.timestampToDate(e.starting_time)],["Ending Date",Wn.timestampToDate(e.finishing_time)],["Exchange",e.exchange],["Exchange Type",e.exchange_type]];e.exchange_type==="futures"&&(t.push(["Leverage",e.leverage]),t.push(["Leverage Mode",e.leverage_mode])),this.tabs[n].results.info=t},routesInfoEvent(n,e){const t=[];e.forEach(i=>{t.push([{value:i.symbol,style:""},{value:i.timeframe,style:""},{value:i.strategy_name,style:""}])}),this.tabs[n].results.routes_info=t},progressbarEvent(n,e){this.tabs[n].results.progressbar=e},infoLogEvent(n,e){this.tabs[n].results.infoLogs+=`[${Wn.timestampToTime(e.timestamp)}] ${e.message} `},setInfoLogs(n,e){this.tabs[n].results.infoLogs=e},getInfoLogs(n){return this.tabs[n].results.infoLogs},exceptionEvent(n,e){this.tabs[n].results.exception.error=e.error,this.tabs[n].results.exception.traceback=e.traceback,this.saveState(n)},generalInfoEvent(n,e){this.tabs[n].results.generalInfo={...this.tabs[n].results.generalInfo,...e}},hyperparametersEvent(n,e){this.tabs[n].results.hyperparameters=e},metricsEvent(n,e){if(e===null){this.tabs[n].results.metrics={};return}this.tabs[n].results.metrics=e},tradesEvent(n,e){this.tabs[n].results.trades=e},equityCurveEvent(n,e){this.tabs[n].results.charts.equity_curve=e,this.tabs[n].results.executing=!1,this.tabs[n].results.showResults=!0,this.saveState(n)},terminationEvent(n,e){this.tabs[n].results.executing&&(this.tabs[n].results.executing=!1,Lt("success","Session terminated successfully"))},alertEvent(n,e){this.tabs[n].results.alert=e},notificationEvent(n,e){Lt(e.type,e.message)},candlesChartEvent(n,e){Ws.candles[n]=e},ordersChartEvent(n,e){Ws.orders[n]=e},chartLinesEvent(n,e){Ws.lines[n]=e},extraChartLinesEvent(n,e){Ws.extraChartLines[n]=e},horizontalChartLinesEvent(n,e){Ws.horizontalLines[n]=e},horizontalExtraChartLinesEvent(n,e){Ws.horizontalExtraLines[n]=e},missingCandlesEvent(n,e){var t;this.tabs[n]&&(this.tabs[n].results.executing=!1,this.tabs[n].results.exception.error="",this.tabs[n].results.exception.traceback=""),this.missingCandlesErrors[n]={symbol:e.symbol,exchange:((t=this.tabs[n])==null?void 0:t.form.exchange)||e.exchange,start_date:e.start_date}},formattedMetrics(n){const e=this.tabs[n].results.metrics;return Object.keys(e).length===0?[]:[["Total Closed Trades",e.total],["Total Net Profit",`${wt.round(e.net_profit,2)} (${wt.round(e.net_profit_percentage,2)}%)`],["Starting => Finishing Balance",`${wt.round(e.starting_balance,2)} => ${wt.round(e.finishing_balance,2)}`],["Open Trades",e.total_open_trades],["Total Paid Fees",wt.round(e.fee,2)],["Max Drawdown",`${wt.round(e.max_drawdown,2)}%`],["Max Underwater Period",`${wt.round(e.max_underwater_period,2)} days`],["Annual Return",`${wt.round(e.annual_return,2)}%`],["Expectancy",`${wt.round(e.expectancy,2)} (${wt.round(e.expectancy_percentage,2)}%)`],["Avg Win | Avg Loss",`${wt.round(e.average_win,2)} | ${wt.round(e.average_loss,2)}`],["Ratio Avg Win / Avg Loss",wt.round(e.ratio_avg_win_loss,2)],["Win-rate",`${wt.round(e.win_rate*100,2)}%`],["Win-rate Shorts",`${wt.round(e.win_rate_shorts*100,2)}%`],["Win-rate Longs",`${wt.round(e.win_rate_longs*100,2)}%`],["Longs | Shorts",`${wt.round(e.longs_percentage,2)}% | ${wt.round(e.shorts_percentage,2)}%`],["Avg Holding Time",Wn.secondsToHumanReadable(e.average_holding_period)],["Winning Trades Avg Holding Time",Wn.secondsToHumanReadable(e.average_winning_holding_period)],["Losing Trades Avg Holding Time",Wn.secondsToHumanReadable(e.average_losing_holding_period)],["Sharpe Ratio",wt.round(e.sharpe_ratio,2)],["Calmar Ratio",wt.round(e.calmar_ratio,2)],["Sortino Ratio",wt.round(e.sortino_ratio,2)],["Omega Ratio",wt.round(e.omega_ratio,2)],["Winning Streak",e.winning_streak],["Losing Streak",e.losing_streak],["Largest Winning Trade",wt.round(e.largest_winning_trade,2)],["Largest Losing Trade",wt.round(e.largest_losing_trade,2)],["Total Winning Trades",e.total_winning_trades],["Total Losing Trades",e.total_losing_trades]]},async handleMissingCandles(n,e){var t,i;((t=e==null?void 0:e.data)==null?void 0:t.type)==="missing_candles"&&(this.missingCandlesErrors[n]={symbol:e.data.symbol,exchange:((i=this.tabs[n])==null?void 0:i.form.exchange)||e.data.exchange,start_date:e.data.start_date})},async retry(n){await this.cancel(n),await this.start(n)},async saveState(n){try{if(!this.tabs[n])return;const e=this.tabs[n],{data:t,error:i}=await Ot("/backtest/update-state",{id:n,state:{form:e.form,results:e.results}},!0);i.value&&Pt(i.value)}catch(e){Pt(e)}},async loadSession(n){var e,t,i,s,o,r,a,l,c,d,u;try{const{data:h,error:f}=await Ot(`/backtest/sessions/${n}`,{},!0);if(f.value)return Pt(f.value),!1;const g=h.value,p=g==null?void 0:g.session;if(!p||!p.state)return Lt("error","Session state not found"),!1;const _=n;this.tabs[_]||(this.tabs[_]=bd(),this.tabs[_].id=_);const b=!!(p.exception||p.traceback),w=p.status==="finished"&&!b,y=p.status==="running"||p.status==="stopped"||b;return this.tabs[_].form=((e=p.state)==null?void 0:e.form)||this.tabs[_].form,this.tabs[_].results={...this.tabs[_].results,showResults:w,executing:y,metrics:p.metrics||{},hyperparameters:p.hyperparameters||[],charts:{equity_curve:p.equity_curve||[]},trades:p.trades||[],exception:{error:p.exception||"",traceback:p.traceback||""},info:((i=(t=p.state)==null?void 0:t.results)==null?void 0:i.info)||this.tabs[_].results.info,routes_info:((o=(s=p.state)==null?void 0:s.results)==null?void 0:o.routes_info)||this.tabs[_].results.routes_info,generalInfo:{...((a=(r=p.state)==null?void 0:r.results)==null?void 0:a.generalInfo)||this.tabs[_].results.generalInfo,title:p.title||null,description:p.description||null},alert:((c=(l=p.state)==null?void 0:l.results)==null?void 0:c.alert)||this.tabs[_].results.alert,selectedRoute:((u=(d=p.state)==null?void 0:d.results)==null?void 0:u.selectedRoute)||this.tabs[_].results.selectedRoute},this.tabIds.includes(_)||this.tabIds.push(_),await Vs(`/backtest/${_}`),Lt("success","Session loaded successfully"),!0}catch(h){return console.error("Error loading session:",h),Lt("error","Failed to load session"),!1}},async updateSessionNotes(n,e,t,i){try{const s={id:n,title:e,description:t};i&&Object.keys(i).length>0&&(s.strategy_codes=i);const{data:o,error:r}=await Ot(`/backtest/sessions/${n}/notes`,s,!0);return r.value?(Pt(r.value),!1):(this.tabs[n]&&(this.tabs[n].results.generalInfo.title=e,this.tabs[n].results.generalInfo.description=t),!0)}catch(s){return Pt(s),!1}},async getSessionData(n){try{const{data:e,error:t}=await Ot(`/backtest/sessions/${n}`,{},!0);if(t.value)return Pt(t.value),null;const i=e.value;return(i==null?void 0:i.session)||null}catch(e){return Pt(e),null}},async loadChartData(n){try{const{data:e,error:t}=await Ot(`/backtest/sessions/${n}/chart-data`,{},!0);if(t.value)return Pt(t.value),!1;const i=e.value,s=i==null?void 0:i.chart_data;return s&&(s.candles_chart&&(Ws.candles[n]=s.candles_chart),s.orders_chart&&(Ws.orders[n]=s.orders_chart),s.add_line_to_candle_chart&&(Ws.lines[n]=s.add_line_to_candle_chart),s.add_extra_line_chart&&(Ws.extraChartLines[n]=s.add_extra_line_chart),s.add_horizontal_line_to_candle_chart&&(Ws.horizontalLines[n]=s.add_horizontal_line_to_candle_chart),s.add_horizontal_line_to_extra_chart&&(Ws.horizontalExtraLines[n]=s.add_horizontal_line_to_extra_chart)),!0}catch(e){return Pt(e),!1}},async getStrategyCode(n){try{const{data:e,error:t}=await Ot(`/backtest/sessions/${n}/strategy-code`,{},!0);return e.value.strategy_code}catch(e){return Pt(e),null}}}}),ime=d_("optimization",{state:()=>({_autosaveInitialized:!1,_suspendAutosave:!1,form:{id:Wn.uuid(),training_start_date:"2024-01-01",training_finish_date:"2024-08-01",testing_start_date:"2024-08-01",testing_finish_date:"2025-01-01",export_csv:!1,export_json:!1,exchange:"",routes:[],data_routes:[],optimal_total:50,fast_mode:!1,debug_mode:!1},results:{showResults:!1,executing:!1,logsModal:!1,status:"",progressbar:{current:0,estimated_remaining_seconds:0},routes_info:[],best_candidates:[],metrics:[],generalInfo:[],objective_curve:[],selectedObjectiveMetric:"",infoLogs:"",info:[],exception:{error:"",traceback:""},alert:{message:"",type:""}}}),actions:{async getRunningSession(){const{data:n,error:e}=await jl("/optimization/running-session",!0);return e.value?null:n.value&&n.value.session_id!==null?n.value.session_id:null},clearCurrentSession(){this.results.showResults=!1,this.results.executing=!1,this.results.progressbar.current=0,this.results.progressbar.estimated_remaining_seconds=0,this.results.alert.message="",this.results.alert.type="",this.results.best_candidates=[],this.results.generalInfo=[],this.results.objective_curve=[],this.results.selectedObjectiveMetric="",this.results.infoLogs="",this.results.exception.error="",this.results.exception.traceback="",this.results.status="",this.results.metrics=[],this.results.routes_info=[]},async init(){const n=await cj("optimization");if(n.length===0||(n[0],this.form.id),!this._autosaveInitialized){this._autosaveInitialized=!0;const e=Lre(()=>{this._suspendAutosave||this.form.id&&this.results.executing},1e3);Dn(()=>this.form,()=>{e()},{deep:!0})}},async start(){var o;pi();const n=this.form.optimal_total,e=this._resetResults();delete e.id;const{data:t,error:i}=await Ot("/optimization",e,!0);if(i.value&&i.value.statusCode===500)return Lt("error",i.value.data.message),this.form.optimal_total=n,{status:"fail"};if(i.value&&i.value.statusCode!==200)return Pt(i.value),this.form.optimal_total=n,{status:"fail"};const s=(o=t.value)==null?void 0:o.session_id;return s&&(this.form.id=s,await this.saveState()),{status:"success",id:s}},async rerun(){pi();const n=this.form.optimal_total,e=this._resetResults(),{data:t,error:i}=await Ot("/optimization/rerun",e,!0);if(i.value&&i.value.statusCode===500){Lt("error",i.value.data.message),this.form.optimal_total=n;return}if(i.value&&i.value.statusCode!==200){Pt(i.value),this.form.optimal_total=n;return}},async saveState(){try{if(!this.form.id)return;const n=this.$state,{error:e}=await Ot("/optimization/update-state",{id:this.form.id,state:{form:n.form}},!0);e.value&&Pt(e.value)}catch(n){Pt(n)}},async loadSession(n){try{this._suspendAutosave=!0,this._resetResults();const{data:e,error:t}=await Ot(`/optimization/sessions/${n}`,{},!0);if(t.value)return Pt(t.value),!1;const i=e.value,s=i==null?void 0:i.session;return!s||!s.state?(Lt("error","Session state not found"),!1):(this.$patch(s.state),this.results.progressbar.current=Number((s.completed_trials/s.total_trials*100).toFixed(1)),this.results.generalInfo=[["Started at",null],["Progress",`${s.completed_trials}/${s.total_trials}`],["Objective Function",pi().settings.optimization.objective_function],["Exchange Type",pi().settings.optimization.exchange.type],["Leverage Mode",pi().settings.optimization.exchange.futures_leverage_mode],["Leverage",pi().settings.optimization.exchange.futures_leverage],["CPU Cores",pi().settings.optimization.cpu_cores],["Optimal Trades",s.state.form.optimal_total]],s.status==="finished"?(this.results.executing=!1,this.results.showResults=!0,this.results.status="finished"):s.status==="running"?(this.results.executing=!0,this.results.status="running"):s.status==="terminated"?(this.results.executing=!0,this.results.status="terminated",this.results.showResults=!0):s.status==="stopped"&&(this.results.executing=!0,this.results.status="stopped",this.results.showResults=!1,this.results.exception.error=s.exception,this.results.exception.traceback=s.traceback),Lt("success","Session loaded successfully"),this.results.best_candidates=s.best_candidates,this.results.objective_curve=s.objective_curve,this.form={...s.state.form,id:n},!0)}catch(e){return console.error("Error loading session:",e),Lt("error","Failed to load session"),!1}finally{this._suspendAutosave=!1}},async cancel(){if(this.results.exception.error){this.results.executing=!1;return}this.results.executing=!1;const{data:n,error:e}=await Ot("/optimization/cancel",{id:this.form.id},!0);if(e.value&&e.value.statusCode!==200){Lt("error",e.value.data.message);return}},async resume(){const n=this.form.optimal_total,e=this._resetResults(),t=await Ot("/optimization/resume",e,!0);if(t.error.value){Pt(t.error.value),this.results.executing=!1,this.results.showResults=!0,this.results.status="terminated",this.form.optimal_total=n;return}const i=t.data.value,s=i==null?void 0:i.session;this.results.best_candidates=s.best_candidates,this.results.objective_curve=s.objective_curve,Lt("success","Optimization resumed successfully")},candlesInfoEvent(n,e){this.results.info=[["Period",e.duration],["Starting-Ending Date",`${Wn.timestampToDate(e.starting_time)} => ${Wn.timestampToDate(e.finishing_time)}`]]},routesInfoEvent(n,e){const t=[];e.forEach(i=>{t.push([{value:i.symbol,style:""},{value:i.timeframe,style:""},{value:i.strategy_name,style:""}])}),this.results.routes_info=t},progressbarEvent(n,e){this.results.progressbar=e},infoLogEvent(n,e){this.logEvent(n,e)},exceptionEvent(n,e){this.results.exception.error=e.error,this.results.exception.traceback=e.traceback},generalInfoEvent(n,e){this.results.executing||(this.results.executing=!0);const t=this.form.optimal_total;this.results.generalInfo=[["Started at",e.started_at],["Progress",e.trial],["Objective Function",e.objective_function],["Exchange Type",e.exchange_type],["Leverage Mode",e.leverage_mode],["Leverage",e.leverage],["CPU Cores",pi().settings.optimization.cpu_cores],["Optimal Trades",t]]},metricsEvent(n,e){if(e===null){this.results.metrics=[];return}this.results.metrics=[["Total Closed Trades",e.total],["Total Net Profit",`${wt.round(e.net_profit,2)} (${wt.round(e.net_profit_percentage,2)}%)`],["Starting => Finishing Balance",`${wt.round(e.starting_balance,2)} => ${wt.round(e.finishing_balance,2)}`],["Open Trades",e.total_open_trades],["Total Paid Fees",wt.round(e.fee,2)],["Max Drawdown",wt.round(e.max_drawdown,2)],["Annual Return",`${wt.round(e.annual_return,2)}%`],["Expectancy",`${wt.round(e.expectancy,2)} (${wt.round(e.expectancy_percentage,2)}%)`],["Avg Win | Avg Loss",`${wt.round(e.average_win,2)} | ${wt.round(e.average_loss,2)}`],["Ratio Avg Win / Avg Loss",wt.round(e.ratio_avg_win_loss,2)],["Win-rate",`${wt.round(e.win_rate*100,2)}%`],["Longs | Shorts",`${wt.round(e.longs_percentage,2)}% | ${wt.round(e.shorts_percentage,2)}%`],["Avg Holding Time",e.average_holding_period],["Winning Trades Avg Holding Time",e.average_winning_holding_period],["Losing Trades Avg Holding Time",e.average_losing_holding_period],["Sharpe Ratio",wt.round(e.sharpe_ratio,2)],["Calmar Ratio",wt.round(e.calmar_ratio,2)],["Sortino Ratio",wt.round(e.sortino_ratio,2)],["Omega Ratio",wt.round(e.omega_ratio,2)],["Winning Streak",e.winning_streak],["Losing Streak",e.losing_streak],["Largest Winning Trade",wt.round(e.largest_winning_trade,2)],["Largest Losing Trade",wt.round(e.largest_losing_trade,2)],["Total Winning Trades",e.total_winning_trades],["Total Losing Trades",e.total_losing_trades]]},terminationEvent(n){this.results.executing&&(this.results.executing=!1)},bestCandidatesEvent(n,e){this.results.best_candidates=e},logEvent(n,e){const t=`[${Wn.timestampToTime(e.timestamp)}] ${e.message} `;this.results.infoLogs+=t},alertEvent(n,e){this.results.alert=e,this.results.executing=!1,this.results.showResults=!0},async terminate(){try{this.results.executing=!1,this.results.showResults=!0,this.results.status="terminated";const{data:n,error:e}=await Ot("/optimization/terminate",{id:this.form.id},!0);if(e.value){Pt(e.value);return}Lt("success","Optimization terminated successfully")}catch(n){Pt(n)}},newSession(){const n=this.form.optimal_total,e=this.form.exchange,t=[...this.form.routes],i=[...this.form.data_routes],s=this.form.fast_mode;this.form.id=Wn.uuid(),this.results.showResults=!1,this.results.executing=!1,this.results.progressbar.current=0,this.results.progressbar.estimated_remaining_seconds=0,this.results.alert.message="",this.results.alert.type="",this.results.best_candidates=[],this.results.generalInfo=[],this.results.objective_curve=[],this.results.selectedObjectiveMetric="",this.results.infoLogs="",this.results.exception.error="",this.results.exception.traceback="",this.results.status="",this.form.optimal_total=n,this.form.exchange=e,this.form.routes=t,this.form.data_routes=i,this.form.fast_mode=s},objectiveCurveEvent(n,e){this.results.objective_curve=this.results.objective_curve.concat(e)},_resetResults(){return this.results.progressbar.current=0,this.results.executing=!0,this.results.infoLogs="",this.results.exception.traceback="",this.results.exception.error="",this.results.alert.message="",this.results.alert.type="",this.results.metrics=[],this.results.generalInfo=[],this.results.best_candidates=[],this.results.routes_info=[],this.results.showResults=!1,this.results.status="running",this.results.objective_curve=[],{id:this.form.id,exchange:this.form.exchange,routes:this.form.routes,data_routes:this.form.data_routes,config:pi().settings.optimization,training_start_date:this.form.training_start_date,training_finish_date:this.form.training_finish_date,testing_start_date:this.form.testing_start_date,testing_finish_date:this.form.testing_finish_date,optimal_total:this.form.optimal_total,fast_mode:this.form.fast_mode,cpu_cores:pi().settings.optimization.cpu_cores,state:this.$state}},async updateSessionNotes(n,e,t){try{const{data:i,error:s}=await Ot(`/optimization/sessions/${n}/notes`,{id:n,title:e,description:t},!0);return s.value?(Pt(s.value),!1):!0}catch(i){return Pt(i),!1}},async purgeOptimizationSessions(n){var e;try{const{data:t,error:i}=await Ot("/optimization/purge-sessions",{days_old:n},!0);return i.value?(Pt(i.value),{success:!1,deleted_count:0}):{success:!0,deleted_count:((e=t.value)==null?void 0:e.deleted_count)||0}}catch(t){return Pt(t),{success:!1,deleted_count:0}}},async getSessions(n=50,e=0,t={}){var i;try{const{data:s,error:o}=await Ot("/optimization/sessions",{limit:n,offset:e,title_search:t.title_search,status_filter:t.status_filter,date_filter:t.date_filter},!0);return o.value?(Pt(o.value),[]):((i=s.value)==null?void 0:i.sessions)||[]}catch(s){return Pt(s),[]}},async getSessionData(n){try{const{data:e,error:t}=await Ot(`/optimization/sessions/${n}`,{},!0);if(t.value)return null;const i=e.value;return(i==null?void 0:i.session)||null}catch{return null}},async getSessionStrategyCodes(n){try{const{data:e,error:t}=await Ot(`/optimization/sessions/${n}/strategy-codes`,{},!0);return e.value.strategy_codes}catch(e){return Pt(e),null}},async getSessionLogs(n){try{const{data:e,error:t}=await Ot(`/optimization/sessions/${n}/logs`,{},!0);return e.value.logs}catch(e){return Pt(e),null}},async getSessionNotes(n){try{const{data:e,error:t}=await Ot(`/optimization/sessions/${n}/get-notes`,{},!0);return t.value?(Pt(t.value),null):e.value}catch(e){return Pt(e),null}}}}),Xu=d_("temp",{state:()=>({initiated:!1,makeStrategy:!1})});function Qat(n){const e=[];(n.paper_mode&&!n.exchange||!n.paper_mode&&!n.exchange_api_key_id)&&e.push("Please select an exchange"),n.routes.length===0&&e.push("At least one trading route is required");const t={uniqueRoutesErrorMessage:"each exchange-symbol pair can be traded only once! More info: https://docs.jesse.trade/docs/routes.html#trading-multiple-routes",timeframeMustBeDifferentErrorMessage:"Data routes' timeframe and trading routes' timeframe must be different",emptyParameter:"You must fill all the parameters"};for(const a of n.routes)(!a.symbol||!a.timeframe||!a.strategy)&&(e.includes(t.emptyParameter)||e.push(t.emptyParameter));for(const a of n.data_routes)(!a.symbol||!a.timeframe)&&(e.includes(t.emptyParameter)||e.push(t.emptyParameter));const i=n.routes;let s=!1;for(let a=0;a0){let a=!1;for(const l of n.data_routes){for(const c of n.routes)if(l.symbol===c.symbol&&l.timeframe===c.timeframe){a||(e.push(t.timeframeMustBeDifferentErrorMessage),a=!0);break}if(a)break}}if(e.length>0){for(const a of e)Lt("error",a);return!1}return!0}function NH(){try{const n=i=>{const s=i.indexOf("/live/");return s===-1?null:i.slice(s+6).split(/[?#/]/)[0]||null},e=typeof window<"u"?n(window.location.href):null;if(e)return e;const t=typeof window<"u"?n(window.location.hash):null;if(t)return t}catch{}return null}function cv(n){const e=NH();return!!(e&&n===e)}function nme(){try{if(typeof window>"u")return!1;const n=window.location.href,e=window.location.hash;return n.includes("/live/overview")||e.includes("/live/overview")}catch{return!1}}function Jat(n){return cv(n)||nme()}function ine(n){if(typeof n=="boolean")return n;if(typeof n=="number")return n===1;if(typeof n=="string"){const e=n.trim().toLowerCase();if(e==="1"||e==="true")return!0;if(e==="0"||e==="false")return!1}return!!n}function V3(n){n&&(n.debug_mode=ine(n.debug_mode),n.paper_mode=ine(n.paper_mode),n.exchange_api_key_id=n.exchange_api_key_id??"",n.notification_api_key_id=n.notification_api_key_id??"",n.exchange=n.exchange??"",n.routes=Array.isArray(n.routes)?n.routes:[],n.data_routes=Array.isArray(n.data_routes)?n.data_routes:[])}function to(n=""){return wt.cloneDeep({id:n||Wn.uuid(),form:{debug_mode:!0,paper_mode:!0,exchange_api_key_id:"",notification_api_key_id:"",exchange:"",routes:[],data_routes:[]},results:{showResults:!1,phase:"editing",progressbar:{current:0,estimated_remaining_seconds:0},routes_info:[],routes:[],metrics:[],generalInfo:{},positions:[],orders:[],trades:[],watchlist:{},candles:[],currentCandles:{},infoLogs:"",errorLogs:"",exception:{error:"",traceback:""},charts:{equity_curve:[]},selectedRoute:{},info:[]}})}const dj=d_("Live",{state:()=>({tabs:{},recentlyClosedTabIds:[],showStopConfirmModal:!1,sessionToStop:null}),actions:{markTabClosedRecently(n){n&&(this.recentlyClosedTabIds.includes(n)||this.recentlyClosedTabIds.push(n),setTimeout(()=>{this.recentlyClosedTabIds=this.recentlyClosedTabIds.filter(e=>e!==n)},2e3))},async init(){const n=await cj("live"),e={};for(const t of n)await this.loadSession(t,!0)&&this.tabs[t]?e[t]=this.tabs[t]:e[t]=to(t);this.tabs=e,Object.keys(this.tabs).length===0&&await this.addTab()},async ensureTab(n){return n?this.tabs[n]?(V3(this.tabs[n].form),await wv("live",n),!0):await this.loadSession(n,!0)&&this.tabs[n]?(await wv("live",n),!0):(this.tabs[n]=to(n),await this.saveState(n),await wv("live",n),!0):!1},async saveState(n){const e=this.tabs[n];e&&await Ot("/live/update-state",{id:n,state:{form:e.form}},!0)},async addTab(n){const e=to();if(this.tabs[e.id]=e,n){const t=this.tabs[n];t!=null&&t.form&&(e.form=JSON.parse(JSON.stringify(t.form)))}await this.saveState(e.id),await wv("live",e.id),await Vs(`/live/${e.id}`)},async closeTabsFromCurrent(n){const e=Object.keys(this.tabs),t=e.indexOf(n);if(t===-1)return;const i=NH(),s=e.slice(t),o=s.includes(i||""),r=t>0?e[t-1]:"";for(const a of s){const l=this.tabs[a];l&&["starting","running","stopping"].includes(l.results.phase)&&!l.results.exception.error&&this.stop(a),await qN("live",a),delete this.tabs[a]}o&&(r&&this.tabs[r]?Vs(`/live/${r}`):Vs("/live"))},goToNextTab(n){const e=Object.keys(this.tabs);if(e.length<=1)return;const t=["overview",...e],i=n||"overview";let s=t.indexOf(i);s===-1&&(s=0);const o=(s+1)%t.length,r=t[o];Vs(r==="overview"?"/live/overview":`/live/${r}`)},goToPrevTab(n){const e=Object.keys(this.tabs);if(e.length<=1)return;const t=["overview",...e],i=n||"overview";let s=t.indexOf(i);s===-1&&(s=0);const o=(s-1+t.length)%t.length,r=t[o];Vs(r==="overview"?"/live/overview":`/live/${r}`)},async closeTab(n){if(!this.tabs[n])return;this.markTabClosedRecently(n);const e=this.tabs[n];if(["starting","running","stopping"].includes(e.results.phase)&&!e.results.exception.error){Lt("error","Cannot close a live session tab that is currently running");return}if(Object.keys(this.tabs).length<=1){Lt("error","Cannot close the last tab");return}const i=NH(),s=n===i,o=Object.keys(this.tabs),r=o.indexOf(n),a=r>0?o[r-1]:"",l=r>=0&&r+1c===n?r.id:c);return await Xat("live",l),o&&await Vs(`/live/${r.id}`),r.id},async rerunAndStart(n,e){const t=this.tabs[n];if(!t)return!1;const i=t.results.phase;if(i==="ended"||i==="error"){const s=await this.newLive(n,{navigate:(e==null?void 0:e.navigate)??!1});return s?await this.start(s):!1}return await this.start(n)},candlesInfoEvent(n,e){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.info=[["Period",e.duration],["Starting-Ending Date",`${Wn.timestampToDate(e.starting_time)} => ${Wn.timestampToDate(e.finishing_time)}`]]},routesInfoEvent(n,e){this.tabs[n]===void 0&&(this.tabs[n]=to(n));const t=[];e.forEach(i=>{t.push([{value:i.symbol,style:""},{value:i.timeframe,style:""},{value:i.strategy_name,style:""}])}),this.tabs[n].results.routes_info=t},progressbarEvent(n,e){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.progressbar=e},infoLogEvent(n,e){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),cv(n)&&(this.tabs[n].results.infoLogs+=`[${Wn.timestampToTime(e.timestamp)}] ${e.message} `,this.tabs[n].results.generalInfo&&(this.tabs[n].results.generalInfo.count_info_logs+=1))},errorLogEvent(n,e){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),Lt("error",e.message),this.tabs[n].results.errorLogs+=`[${Wn.timestampToTime(e.timestamp)}] ${e.message} `,this.tabs[n].results.generalInfo&&(this.tabs[n].results.generalInfo.count_error_logs+=1)},exceptionEvent(n,e){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.exception.error=e.error,this.tabs[n].results.exception.traceback=e.traceback,this.tabs[n].results.phase="error"},generalInfoEvent(n,e){var o,r;this.tabs[n]===void 0&&(this.tabs[n]=to(n));const t=cv(n);if(!t&&!nme()&&this.tabs[n].results.phase==="running")return;const i={...e,started_balance:Number(e.started_balance),current_balance:Number(e.current_balance),count_error_logs:Number(e.count_error_logs),count_info_logs:Number(e.count_info_logs),count_active_orders:Number(e.count_active_orders),open_positions:Number(e.open_positions),pnl:Number(e.pnl),pnl_perc:Number(e.pnl_perc),count_trades:Number(e.count_trades),count_winning_trades:Number(e.count_winning_trades),count_losing_trades:Number(e.count_losing_trades),leverage:Number(e.leverage),available_margin:Number(e.available_margin)};this.tabs[n].results.generalInfo={...this.tabs[n].results.generalInfo,...i};const s=this.tabs[n].results.phase!=="running";this.tabs[n].results.phase="running",this.tabs[n].form.routes=this.tabs[n].results.generalInfo.routes,this.tabs[n].results.routes=[];for(const a of this.tabs[n].form.routes)this.tabs[n].results.routes.push([{value:a.symbol,style:""},{value:a.timeframe,style:""},{value:a.strategy,style:""}]);!((o=this.tabs[n].results.selectedRoute)!=null&&o.symbol)&&((r=this.tabs[n].form.routes)!=null&&r.length)&&(this.tabs[n].results.selectedRoute=this.tabs[n].form.routes[0]),t&&s&&this.fetchLogs(n)},async fetchCandles(n){var r,a,l;const e=this.tabs[n];if(!e)return;const t=(r=e.results.selectedRoute)!=null&&r.symbol?e.results.selectedRoute:(a=e.form.routes)==null?void 0:a[0];if(!(t!=null&&t.symbol)||!(t!=null&&t.timeframe))return;const{data:i,error:s}=await Ot("/candles/get",{id:n,exchange:e.form.exchange,symbol:t.symbol,timeframe:t.timeframe},!0);if(s.value&&s.value.statusCode!==200){Lt("error",((l=s.value.data)==null?void 0:l.message)||"Failed to fetch candles");return}if(!i.value)return;const o=i.value;e.results.candles=(o==null?void 0:o.data)||[]},async fetchLogs(n){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.infoLogs="",this.tabs[n].results.errorLogs="";const{data:e,error:t}=await Ot("/live/logs",{id:n,type:"info",start_time:this.tabs[n].results.generalInfo.started_at},!0);if(t.value&&t.value.statusCode!==200){Lt("error",t.value.data.message);return}const s=e.value.data;this.tabs[n].results.infoLogs="",s.forEach(c=>{this.tabs[n].results.infoLogs+=`[${Wn.timestampToTime(c.timestamp)}] ${c.message} `}),this.tabs[n].results.generalInfo.count_info_logs=s.length;const{data:o,error:r}=await Ot("/live/logs",{id:n,type:"error",start_time:this.tabs[n].results.generalInfo.started_at},!0);if(r.value&&r.value.statusCode!==200){Lt("error",r.value.data.message);return}const l=o.value.data;this.tabs[n].results.errorLogs="",l.forEach(c=>{this.tabs[n].results.errorLogs+=`[${Wn.timestampToTime(c.timestamp)}] ${c.message} `}),this.tabs[n].results.generalInfo.count_error_logs=l.length},async fetchTrades(n){const{data:e,error:t}=await jl(`/closed-trades/list?session_id=${n}`,!0);return t.value&&t.value.statusCode!==200?(Lt("error",t.value.data.message||"Failed to fetch trades"),[]):e.value.data||[]},async fetchTradeDetails(n){const{data:e,error:t}=await jl(`/closed-trades/${n}`,!0);return t.value&&t.value.statusCode!==200?(Lt("error",t.value.data.message||"Failed to fetch trade details"),null):e.value.data},async fetchOrderDetails(n){const{data:e,error:t}=await jl(`/orders/${n}`,!0);return t.value&&t.value.statusCode!==200?(Lt("error",t.value.data.message||"Failed to fetch order details"),null):e.value.data},async fetchOrdersHistory(n){var s;const{data:e,error:t}=await Ot("/orders/live-history",n,!0);if(t.value&&t.value.statusCode!==200)return Lt("error",t.value.data.message||"Failed to fetch orders history"),{orders:[],hasMore:!1};const i=e.value;return{orders:i.orders||[],hasMore:((s=i.orders)==null?void 0:s.length)===n.limit}},async fetchTradesHistory(n){var s;const{data:e,error:t}=await Ot("/closed-trades/live-history",n,!0);if(t.value&&t.value.statusCode!==200)return Lt("error",t.value.data.message||"Failed to fetch trades history"),{trades:[],hasMore:!1};const i=e.value;return{trades:i.trades||[],hasMore:((s=i.trades)==null?void 0:s.length)===n.limit}},currentCandlesEvent(n,e){cv(n)&&(this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.currentCandles=e)},watchlistEvent(n,e){cv(n)&&(this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.watchlist=e)},equitySnapshotEvent(n,e){var c,d;if(!Jat(n))return;this.tabs[n]===void 0&&(this.tabs[n]=to(n));const t=Number(e==null?void 0:e.timestamp),i=Number(e==null?void 0:e.equity),s=String((e==null?void 0:e.currency)||"").toUpperCase();if(!t||Number.isNaN(t)||!Number.isFinite(i))return;const o={time:Math.floor(t/1e3),value:wt.round(i,2),color:"#818CF8"};if(!((c=this.tabs[n].results.charts.equity_curve)!=null&&c.length)){this.tabs[n].results.charts.equity_curve=[{name:s?`Equity (${s})`:"Equity",color:"#818CF8",data:[o]}];return}const r=this.tabs[n].results.charts.equity_curve[0];s&&(r.name=`Equity (${s})`);const a=(d=r.data)==null?void 0:d[r.data.length-1];(a==null?void 0:a.time)===o.time?r.data[r.data.length-1]=o:r.data.push(o);const l=2e3;r.data.length>l&&(r.data=r.data.slice(r.data.length-l))},positionsEvent(n,e){if(cv(n)){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.positions=[];for(const t of e){const i=t.type==="close"?"":t.qty;this.tabs[n].results.positions.push([{value:t.symbol,style:""},{value:i,style:Wn.colorBasedOnType(t.type),tooltip:`${t.value} ${t.currency}`},{value:Wn.roundPrice(t.entry),style:""},{value:Wn.roundPrice(t.current_price),style:""},{value:t.liquidation_price?Wn.roundPrice(t.liquidation_price):"",style:""},{value:`${wt.round(t.pnl,2)} (${wt.round(t.pnl_perc,2)}%)`,style:Wn.colorBasedOnNumber(t.pnl)}])}}},ordersEvent(n,e){cv(n)&&(this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.orders=e)},metricsEvent(n,e){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.metrics=[["Total Closed Trades",e.total],["Total Net Profit",`${wt.round(e.net_profit,2)} (${wt.round(e.net_profit_percentage,2)}%)`],["Starting => Finishing Balance",`${wt.round(e.starting_balance,2)} => ${wt.round(e.finishing_balance,2)}`],["Open Trades",e.total_open_trades],["Total Paid Fees",wt.round(e.fee,2)],["Max Drawdown",wt.round(e.max_drawdown,2)],["Annual Return",`${wt.round(e.annual_return,2)}%`],["Expectancy",`${wt.round(e.expectancy,2)} (${wt.round(e.expectancy_percentage,2)}%)`],["Avg Win | Avg Loss",`${wt.round(e.average_win,2)} | ${wt.round(e.average_loss,2)}`],["Ratio Avg Win / Avg Loss",wt.round(e.ratio_avg_win_loss,2)],["Win-rate",`${wt.round(e.win_rate*100,2)}%`],["Longs | Shorts",`${wt.round(e.longs_percentage,2)}% | ${wt.round(e.shorts_percentage,2)}%`],["Avg Holding Time",e.average_holding_period],["Winning Trades Avg Holding Time",e.average_winning_holding_period],["Losing Trades Avg Holding Time",e.average_losing_holding_period],["Sharpe Ratio",wt.round(e.sharpe_ratio,2)],["Calmar Ratio",wt.round(e.calmar_ratio,2)],["Sortino Ratio",wt.round(e.sortino_ratio,2)],["Omega Ratio",wt.round(e.omega_ratio,2)],["Winning Streak",e.winning_streak],["Losing Streak",e.losing_streak],["Largest Winning Trade",wt.round(e.largest_winning_trade,2)],["Largest Losing Trade",wt.round(e.largest_losing_trade,2)],["Total Winning Trades",e.total_winning_trades],["Total Losing Trades",e.total_losing_trades]]},equityCurveEvent(n,e){this.tabs[n].results.charts.equity_curve=e,this.tabs[n].results.showResults=!0},async fetchEquityCurve(n,e="auto"){var r,a;if(!this.tabs[n])return;const t=new URLSearchParams({session_id:n,timeframe:e,max_points:"1000"}),{data:i,error:s}=await jl(`/live/equity-curve?${t.toString()}`,!0);if(s.value&&s.value.statusCode!==200){Lt("error",((r=s.value.data)==null?void 0:r.message)||"Failed to fetch equity curve");return}if(!i.value)return;const o=i.value;if(!((a=o==null?void 0:o.data)!=null&&a.length)){this.tabs[n].results.charts.equity_curve=[];return}this.tabs[n].results.charts.equity_curve=[{name:`Equity (${o.currency})`,color:"#818CF8",data:o.data}]},unexpectedTerminationEvent(n){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.phase="ended"},terminationEvent(n){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.phase!=="ended"&&(this.tabs[n].results.phase="ended",Lt("success","Session terminated successfully"))},forceClose(n){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.phase="ended"},async startAll(){const n=Object.values(this.tabs).filter(i=>["editing","ended"].includes(i.results.phase)).map(i=>i.id);if(n.length===0){Lt("info","No startable sessions found");return}let e=0,t=0;for(const i of n)try{await this.rerunAndStart(i,{navigate:!1})?e++:t++}catch(s){t++,console.error(`Failed to start session ${i}:`,s)}e>0?Lt("success",`Started ${e} session${e>1?"s":""} successfully${t>0?`, ${t} failed`:""}`):t>0&&Lt("error",`Failed to start ${t} session${t>1?"s":""}`)},async stopAll(){const n=Object.values(this.tabs).filter(i=>["running","starting"].includes(i.results.phase));if(n.length===0){Lt("info","No active sessions to stop");return}let e=0,t=0;for(const i of n)try{await this.stop(i.id),e++}catch(s){t++,console.error(`Failed to stop session ${i.id}:`,s)}e>0?Lt("success",`Stopped ${e} session${e>1?"s":""} successfully${t>0?`, ${t} failed`:""}`):t>0&&Lt("error",`Failed to stop ${t} session${t>1?"s":""}`)},async updateSessionNotes(n,e,t){try{const i={id:n,title:e,description:t},{data:s,error:o}=await Ot(`/live/sessions/${n}/notes`,i,!0);return o.value?(Pt(o.value),!1):(this.tabs[n]&&(this.tabs[n].results.generalInfo.title=e,this.tabs[n].results.generalInfo.description=t),!0)}catch(i){return Pt(i),!1}},async getSessionData(n){try{const{data:e,error:t}=await Ot(`/live/sessions/${n}`,{},!0);return t.value?(Pt(t.value),null):e.value}catch(e){return Pt(e),null}},async loadSession(n,e=!1){var t,i;try{const{data:s,error:o}=await Ot(`/live/sessions/${n}`,{},!0);if(o.value&&o.value.statusCode!==200)return e||Lt("error",((t=o.value.data)==null?void 0:t.message)||"Failed to load session"),!1;const a=s.value.session;if(!a)return e||Lt("error","Session not found"),!1;const l=to(n);a.state&&a.state.form&&(l.form=a.state.form),V3(l.form);const c=(a.status||"").toLowerCase(),d=!!a.is_active;(a.exception||a.traceback)&&(l.results.exception.error=a.exception||"",l.results.exception.traceback=a.traceback||""),l.results.generalInfo={...l.results.generalInfo||{},exchange:a.exchange||l.form.exchange||"",started_at:a.created_at,current_time:a.updated_at||a.created_at,debug_mode:!!l.form.debug_mode,paper_mode:!!l.form.paper_mode,routes:l.form.routes||[],open_positions:0,count_trades:0,count_active_orders:0,count_info_logs:0,count_error_logs:0,pnl:0,pnl_perc:0,started_balance:0,current_balance:0,leverage_type:"spot",leverage:0,available_margin:0,title:a.title||null,description:a.description||null};const u=c==="starting",h=c==="running"||d,f=["terminated","stopped"].includes(c)&&!d;return l.results.exception.error?l.results.phase="error":u?l.results.phase="starting":h?l.results.phase="running":f?l.results.phase="ended":l.results.phase="editing",["running","stopping","ended","error"].includes(l.results.phase)&&(l.results.selectedRoute=((i=l.form.routes)==null?void 0:i[0])||{}),this.tabs[l.id]=l,["running","stopping","ended","error"].includes(l.results.phase)&&l.results.generalInfo.started_at&&await this.fetchLogs(n),e||Lt("success","Session loaded successfully"),!0}catch(s){return e||Lt("error",(s==null?void 0:s.message)||"Failed to load session"),!1}}}}),sme=d_("monteCarlo",{state:()=>({form:{id:"",start_date:"2024-01-01",finish_date:"2025-01-01",run_trades:!0,run_candles:!0,num_scenarios:200,pipeline_type:"moving_block_bootstrap",pipeline_params:{batch_size:10080,close_sigma:.001,high_sigma:1e-4,low_sigma:1e-4},exchange:"",routes:[],data_routes:[],fast_mode:!1},results:{showResults:!1,executing:!1,status:"",trades:{summary_metrics:[],results:null,original_equity_curve:null,scenario_equity_curves:[],progressbar:{current:0,total:0,estimated_remaining_seconds:0},exception:{error:"",traceback:""}},candles:{summary_metrics:[],results:null,original_equity_curve:null,scenario_equity_curves:[],progressbar:{current:0,total:0,estimated_remaining_seconds:0},exception:{error:"",traceback:""}},generalInfo:[],infoLogs:"",info:[]},status:"stopped"}),actions:{async init(){this.form.id||(this.form.id=Wn.uuid())},async getRunningSession(){const{data:n,error:e}=await jl("/monte-carlo/running-session",!0);return e.value?null:n.value&&n.value.session_id!==null?n.value.session_id:null},async saveState(){if(this.form.id)try{const{error:n}=await Ot("/monte-carlo/update-state",{id:this.form.id,state:{form:this.form}},!0);n.value&&Pt(n.value)}catch(n){Pt(n)}},async start(){var o;pi();const n=this.form.num_scenarios,e=this._resetResults();delete e.id;const{data:t,error:i}=await Ot("/monte-carlo",e,!0);if(i.value&&i.value.statusCode===500)return Lt("error",i.value.data.message),this.form.num_scenarios=n,{status:"fail"};if(i.value&&i.value.statusCode!==200)return Pt(i.value),this.form.num_scenarios=n,{status:"fail"};const s=(o=t.value)==null?void 0:o.session_id;return s&&(this.form.id=s,await this.saveState()),{status:"success",id:s}},async cancel(){if(this.results.trades.exception.error||this.results.candles.exception.error){this.results.executing=!1;return}this.results.executing=!1;const{data:n,error:e}=await Ot("/monte-carlo/cancel",{id:this.form.id},!0);if(e.value&&e.value.statusCode!==200){Lt("error",e.value.data.message);return}},async loadSession(n){try{this._resetResults();const{data:e,error:t}=await Ot(`/monte-carlo/sessions/${n}`,{},!0);if(t.value)return Pt(t.value),!1;const i=e.value,s=i==null?void 0:i.session;return!s||!s.state?(Lt("error","Session state not found"),!1):(this.status=s.status,this.$patch(s.state),this.results.generalInfo=[["Started at",Wn.timestampToReadableDateTime(s.created_at)],["Run Trades",s.state.form.run_trades?"Yes":"No"],["Run Candles",s.state.form.run_candles?"Yes":"No"],["Scenarios",s.state.form.num_scenarios],["Exchange Type",pi().settings.monte_carlo.exchange.type],["Leverage Mode",pi().settings.monte_carlo.exchange.futures_leverage_mode],["Leverage",pi().settings.monte_carlo.exchange.futures_leverage],["CPU Cores",pi().settings.monte_carlo.cpu_cores]],s.trades_session&&(this.results.trades.summary_metrics=s.trades_session.summary_metrics||[],s.trades_session.results&&(this.results.trades.results=s.trades_session.results),s.trades_session.exception&&(this.results.trades.exception.error=s.trades_session.exception,this.results.trades.exception.traceback=s.trades_session.traceback)),s.candles_session&&(this.results.candles.summary_metrics=s.candles_session.summary_metrics||[],s.candles_session.exception&&(this.results.candles.exception.error=s.candles_session.exception,this.results.candles.exception.traceback=s.candles_session.traceback)),await this.fetchEquityCurves(n),s.status==="finished"?(this.results.executing=!1,this.results.showResults=!0,this.results.status="finished"):s.status==="running"?(this.results.executing=!0,this.results.status="running"):s.status==="terminated"?(this.results.executing=!0,this.results.status="terminated",this.results.showResults=!0):s.status==="stopped"&&(this.results.executing=!0,this.results.status="stopped",this.results.showResults=!1),Lt("success","Session loaded successfully"),this.form=s.state.form,!0)}catch(e){return console.error("Error loading session:",e),Lt("error","Failed to load session"),!1}},async terminate(){try{this.results.executing=!1,this.results.showResults=!0,this.results.status="terminated";const{data:n,error:e}=await Ot("/monte-carlo/terminate",{id:this.form.id},!0);if(e.value){Pt(e.value);return}Lt("success","Monte Carlo simulation terminated successfully")}catch(n){Pt(n)}},async resume(){const n=this.form.num_scenarios,e=this._resetResults(),t=await Ot("/monte-carlo/resume",e,!0);if(t.error.value){Pt(t.error.value),this.results.executing=!1,this.results.showResults=!0,this.results.status="terminated",this.form.num_scenarios=n;return}const i=t.data.value,s=i==null?void 0:i.session;s.trades_session&&s.trades_session.results&&(this.results.trades.results=s.trades_session.results),s.candles_session&&s.candles_session.results&&(this.results.candles.results=s.candles_session.results),Lt("success","Monte Carlo simulation resumed successfully")},newSession(){const n=Number(this.form.num_scenarios),e=this.form.exchange,t=[...this.form.routes],i=[...this.form.data_routes],s=this.form.fast_mode,o=this.form.run_trades,r=this.form.run_candles,a=this.form.pipeline_type,l={batch_size:Number(this.form.pipeline_params.batch_size),close_sigma:Number(this.form.pipeline_params.close_sigma),high_sigma:Number(this.form.pipeline_params.high_sigma),low_sigma:Number(this.form.pipeline_params.low_sigma)};this.form.id="",this.results.showResults=!1,this.results.executing=!1,this.results.status="",this.results.trades.summary_metrics=[],this.results.trades.results=null,this.results.trades.exception.error="",this.results.trades.exception.traceback="",this.results.candles.summary_metrics=[],this.results.candles.results=null,this.results.candles.exception.error="",this.results.candles.exception.traceback="",this.results.generalInfo=[],this.results.infoLogs="",this.form.num_scenarios=n,this.form.exchange=e,this.form.routes=t,this.form.data_routes=i,this.form.fast_mode=s,this.form.run_trades=o,this.form.run_candles=r,this.form.pipeline_type=a,this.form.pipeline_params=l},candlesInfoEvent(n,e){this.results.info=[["Period",e.duration],["Starting-Ending Date",`${Wn.timestampToDate(e.starting_time)} => ${Wn.timestampToDate(e.finishing_time)}`]]},generalInfoEvent(n,e){this.results.executing||(this.results.executing=!0),this.results.generalInfo=[["Started at",e.started_at],["Run Trades",e.run_trades?"Yes":"No"],["Run Candles",e.run_candles?"Yes":"No"],["Scenarios",e.num_scenarios],["Exchange Type",e.exchange_type],["Leverage Mode",e.leverage_mode],["Leverage",e.leverage],["CPU Cores",e.cpu_cores]]},tradesResultsEvent(n,e){this.results.trades.results=e},candlesResultsEvent(n,e){this.results.candles.results=e},async fetchEquityCurves(n,e=null){try{const t={};e&&(t.type=e);const{data:i,error:s}=await Ot(`/monte-carlo/sessions/${n}/equity-curves`,t,!0);if(s.value)return Pt(s.value),!1;const o=i.value;return o.trades&&(this.results.trades.original_equity_curve=o.trades.original,this.results.trades.scenario_equity_curves=o.trades.scenarios||[]),o.candles&&(this.results.candles.original_equity_curve=o.candles.original,this.results.candles.scenario_equity_curves=o.candles.scenarios||[]),!0}catch(t){return Pt(t),!1}},async fetchTradesEquityCurves(n){try{const{data:e,error:t}=await Ot(`/monte-carlo/sessions/${n}/equity-curves`,{},!0);if(t.value)return Pt(t.value),!1;const i=e.value;return i.trades&&(this.results.trades.original_equity_curve=i.trades.original,this.results.trades.scenario_equity_curves=i.trades.scenarios||[]),!0}catch(e){return Pt(e),!1}},async fetchCandlesEquityCurves(n){try{const{data:e,error:t}=await Ot(`/monte-carlo/sessions/${n}/equity-curves`,{},!0);if(t.value)return Pt(t.value),!1;const i=e.value;return i.candles&&(this.results.candles.original_equity_curve=i.candles.original,this.results.candles.scenario_equity_curves=i.candles.scenarios||[]),!0}catch(e){return Pt(e),!1}},async tradesSummaryEvent(n,e){this.results.trades.summary_metrics=e,await this.fetchTradesEquityCurves(n)},async candlesSummaryEvent(n,e){this.results.candles.summary_metrics=e,await this.fetchCandlesEquityCurves(n)},terminationEvent(n){this.results.executing&&(this.results.executing=!1,this.results.showResults=!0)},exceptionEvent(n,e){this.results.trades.exception.error=e.error,this.results.trades.exception.traceback=e.traceback},tradesProgressbarEvent(n,e){this.results.trades.progressbar.current=e.current,this.results.trades.progressbar.total=e.total,this.results.trades.progressbar.estimated_remaining_seconds=e.estimated_remaining_seconds||0},candlesProgressbarEvent(n,e){this.results.candles.progressbar.current=e.current,this.results.candles.progressbar.total=e.total,this.results.candles.progressbar.estimated_remaining_seconds=e.estimated_remaining_seconds||0},logEvent(n,e){const t=`${e.message} `;this.results.infoLogs+=t},alertEvent(n,e){this.results.executing=!1,this.results.showResults=!0},_resetResults(){var e;this.results.executing=!0,this.results.infoLogs="",this.results.trades.progressbar.current=0,this.results.trades.progressbar.total=0,this.results.trades.progressbar.estimated_remaining_seconds=0,this.results.candles.progressbar.current=0,this.results.candles.progressbar.total=0,this.results.candles.progressbar.estimated_remaining_seconds=0,this.results.trades.exception.traceback="",this.results.trades.exception.error="",this.results.candles.exception.traceback="",this.results.candles.exception.error="",this.results.trades.summary_metrics=[],this.results.candles.summary_metrics=[],this.results.trades.results=null,this.results.candles.results=null,this.results.trades.original_equity_curve=null,this.results.trades.scenario_equity_curves=[],this.results.candles.original_equity_curve=null,this.results.candles.scenario_equity_curves=[],this.results.generalInfo=[],this.results.showResults=!1,this.results.status="running";const n=typeof this.form.pipeline_type=="string"?this.form.pipeline_type:((e=this.form.pipeline_type)==null?void 0:e.value)||"moving_block_bootstrap";return{id:this.form.id,exchange:this.form.exchange,routes:this.form.routes,data_routes:this.form.data_routes,config:pi().settings.monte_carlo,start_date:this.form.start_date,finish_date:this.form.finish_date,run_trades:this.form.run_trades,run_candles:this.form.run_candles,num_scenarios:Number(this.form.num_scenarios),pipeline_type:n,pipeline_params:{batch_size:Number(this.form.pipeline_params.batch_size),close_sigma:Number(this.form.pipeline_params.close_sigma),high_sigma:Number(this.form.pipeline_params.high_sigma),low_sigma:Number(this.form.pipeline_params.low_sigma)},fast_mode:this.form.fast_mode,cpu_cores:Number(pi().settings.monte_carlo.cpu_cores),state:this.$state}},async updateSessionNotes(n,e,t){try{const{data:i,error:s}=await Ot(`/monte-carlo/sessions/${n}/notes`,{id:n,title:e,description:t},!0);return s.value?(Pt(s.value),!1):!0}catch(i){return Pt(i),!1}},async getSessionData(n){var e;try{const{data:t,error:i}=await Ot(`/monte-carlo/sessions/${n}`,{},!0);if(i.value)return((e=i.value)==null?void 0:e.statusCode)===404||Pt(i.value),null;const s=t.value;return(s==null?void 0:s.session)||null}catch(t){return Pt(t),null}},async getStrategyCode(n){try{const{data:e,error:t}=await Ot(`/monte-carlo/sessions/${n}/strategy-code`,{},!0);return e.value.strategy_code}catch(e){return Pt(e),null}},async getSessionLogs(n){try{const{data:e,error:t}=await Ot(`/monte-carlo/sessions/${n}/logs`,{},!0);return e.value.logs}catch(e){return Pt(e),null}},clearCurrentSession(){this._resetResults()}}}),pi=d_("main",{state:()=>({loadingVar:!1,authToken:"",jesseTradeBearer:"",jesseTradeUser:null,hasLivePluginInstalled:!1,systemInfo:{},updateInfo:{},plan:"",planLimits:{},settings:{backtest:{logging:{order_submission:!0,order_cancellation:!0,order_execution:!0,position_opened:!0,position_increased:!0,position_reduced:!0,position_closed:!0,shorter_period_candles:!1,trading_candles:!0,balance_update:!0},warm_up_candles:210,exchanges:{}},live:{persistency:!0,generate_candles_from_1m:!1,logging:{strategy_execution:!0,order_submission:!0,order_cancellation:!0,order_execution:!0,position_opened:!0,position_increased:!0,position_reduced:!0,position_closed:!0,shorter_period_candles:!1,trading_candles:!0,balance_update:!0},warm_up_candles:210,exchanges:{},notifications:{enabled:!0,position_report_timeframe:"1h",events:{errors:!0,started_session:!0,terminated_session:!0,submitted_orders:!0,cancelled_orders:!0,executed_orders:!0,opened_position:!0,updated_position:!0,exchange_ws_reconnection:!0}}},optimization:{objective_function:"sharpe",warm_up_candles:210,trials:200,cpu_cores:1,best_candidates_count:20,exchange:{balance:1e4,fee:6e-4,type:"futures",futures_leverage:5,futures_leverage_mode:"cross"}},monte_carlo:{warm_up_candles:210,cpu_cores:1,exchange:{balance:1e4,fee:6e-4,type:"futures",futures_leverage:5,futures_leverage_mode:"cross"}},editor:{fontSize:16,cursorStyle:"line",minimap:!1,lineHeight:24,cursorWidth:2,cursorBlinking:"blink",renderLineHighlight:"line",autoCompletion:!0,documentHighlight:!0,documentHover:!0,signatureHelp:!0}},strategies:[],exchangeInfo:{},jesseSupportedTimeframes:[],exchangeSupportedSymbols:{},skippedJesseVersions:[],skippedLivePluginVersions:[],exchangeApiKeys:[],notificationApiKeys:[],isInitiated:!1}),persist:{storage:eL.localStorage},getters:{backtestingExchangeNames(){const n=[];for(const e in this.exchangeInfo)this.exchangeInfo[e].modes.backtesting&&n.push(e);return n.sort()},liveTradingExchangeNames(){const n=[];for(const e in this.exchangeInfo)this.exchangeInfo[e].modes.live_trading&&n.push(e);return n.sort()},isAuthenticated(){return this.authToken!==""}},actions:{async initiate(){const n=this.isInitiated,{data:e,error:t}=await Ot("/system/general-info",{},!0);if(t&&t.value&&t.value.statusCode!==200){Pt(t);return}const i=e.value;if(this.systemInfo=i.system_info,this.updateInfo=i.update_info,this.strategies=i.strategies,this.exchangeInfo=i.exchanges,this.jesseSupportedTimeframes=i.jesse_supported_timeframes,this.hasLivePluginInstalled=i.has_live_plugin_installed,this.plan=i.plan,this.planLimits=i.limits,this.plan==="guest"&&(this.jesseTradeBearer="",this.jesseTradeUser=null),n)return;await this.authenticateJesseTrade();for(const a in this.exchangeInfo){const l=this.exchangeInfo[a];l.modes.backtesting&&(this.settings.backtest.exchanges[a]={name:a,fee:l.fee,balance:1e4,type:l.type},l.type==="futures"&&(this.settings.backtest.exchanges[a].futures_leverage_mode="cross",this.settings.backtest.exchanges[a].futures_leverage=2)),l.modes.live_trading&&(this.settings.live.exchanges[l.name]={name:a,fee:l.fee,futures_leverage_mode:"cross",futures_leverage:2,balance:1e4})}const{data:s,error:o}=await Ot("/config/get",{current_config:this.settings},!0);if(o.value&&o.value.statusCode!==200){Pt(o);return}const r=s.value;this.settings=r.data.data,await this.syncOpenTabs(),await this.fetchExchangeApiKeys(),await this.fetchNotificationApiKeys(),Xu().initiated=!0,this.isInitiated=!0},async syncOpenTabs(){await tme().init(),await ime().init(),await sme().init(),await dj().init()},updateConfig:CTe(async()=>{if(!pi().settings)return;const{data:n,error:e}=await Ot("/config/update",{current_config:pi().settings},!0);e.value&&e.value.statusCode!==200&&Pt(e)},1e3,!0,!0),async fetchExchangeApiKeys(){const{data:n,error:e}=await jl("/exchange/api-keys",!0);if(e.value&&e.value.statusCode!==200){Pt(e);return}const t=n.value;this.exchangeApiKeys=t.data},async fetchNotificationApiKeys(){const{data:n,error:e}=await jl("/notification/api-keys",!0);if(e.value&&e.value.statusCode!==200){Pt(e);return}const t=n.value;this.notificationApiKeys=t.data},setAuthToken(n){this.authToken=n},async updateSupportedSymbols(n){const{data:e,error:t}=await Ot("/exchange/supported-symbols",{exchange:n},!0);if(t.value&&t.value.statusCode!==200){Pt(t);return}const i=e.value;if(!i){console.log("resuslt of updateSupportedSymbols is null");return}this.exchangeSupportedSymbols[n]={data:i.data,updated_at:new Date}},async getExchangeSupportedSymbols(n){var e;return await this.updateSupportedSymbols(n),(e=this.exchangeSupportedSymbols[n])==null?void 0:e.data},async authenticateJesseTrade(){const{data:n,error:e}=await Ot("/auth/jesse-trade-token",{},!0);if(e.value){this.jesseTradeBearer="",this.jesseTradeUser=null,console.log("Error authenticating with jesse.trade:",e.value);return}const t=n.value;t&&t.status==="success"?(this.jesseTradeBearer=t.access_token,this.jesseTradeUser=t.user,console.log("Successfully authenticated with jesse.trade")):(this.jesseTradeBearer="",this.jesseTradeUser=null,console.log("Authentication response:",t))},async fetchJesseTradeStrategies(n,e,t,i){let s=`/strategy/index?period=${encodeURIComponent(n)}&sort_by=${encodeURIComponent(e)}`;t&&(s+=`&submitted_after=${encodeURIComponent(t)}`),i&&(s+=`&submitted_before=${encodeURIComponent(i)}`);const{data:o,error:r}=await jl(s,!0,!0);return r&&r.value&&r.value.statusCode!==200?(Pt(r),[]):o.value.strategies||[]},async fetchJesseTradePeriods(){const{data:n,error:e}=await jl("/strategy/periods",!0);return e&&e.value&&e.value.statusCode!==200?(Pt(e),[]):n.value.periods||[]},async getJesseTradeStrategy(n){const{data:e,error:t}=await jl(`/strategy/jesse-trade/${n}`,!0);return t&&t.value&&t.value.statusCode!==200?(Pt(t),null):e.value},async importStrategy(n){const{data:e,error:t}=await Ot("/strategy/import",{slug:n},!0,!0);if(t&&t.value&&t.value.statusCode!==200)return Pt(t),null;const i=e.value;if(i.status==="success"){const{data:s}=await Ot("/strategy/all",{},!0);s.value&&(this.strategies=s.value.strategies||[])}return i},async getJesseTradeStrategyMetrics(n,e,t,i){const{data:s,error:o}=await jl(`/strategy/jesse-trade/${n}/metrics?period=${encodeURIComponent(e)}&symbol=${t}&timeframe=${i}`,!0);return o&&o.value&&o.value.statusCode!==200?(Pt(o),null):s.value}}});function elt(n){const e=pi();return{createClient:i=>{const s=i.getModel();if(!s)return;const o=s.uri;console.log("📝 Monaco model URI:",o.toString()),console.log("📝 URI scheme:",o.scheme),console.log("📝 URI path:",o.path);const r={socket:null,isInitialized:!1,messageId:0,providers:{},settingsWatcher:()=>{}},a=new WebSocket(n.wsUrl);r.socket=a,a.onopen=()=>{console.log("✅ Connected to Pyright LSP"),a.send(JSON.stringify({jsonrpc:"2.0",id:r.messageId++,method:"initialize",params:{processId:null,capabilities:{textDocument:{completion:{completionItem:{snippetSupport:!0}},hover:{contentFormat:["markdown","plaintext"]},signatureHelp:{signatureInformation:{documentationFormat:["markdown","plaintext"],parameterInformation:{labelOffsetSupport:!0}}},documentHighlight:{},formatting:{dynamicRegistration:!0},rangeFormatting:{dynamicRegistration:!0}}},initializationOptions:n.initializationOptions}}))};let l=1;const c=s.onDidChangeContent(()=>{r.isInitialized&&(l++,a.send(JSON.stringify({jsonrpc:"2.0",method:"textDocument/didChange",params:{textDocument:{uri:o.toString(),version:l},contentChanges:[{text:s.getValue()}]}})))});a.onmessage=u=>{const h=JSON.parse(u.data);if(h.id===0&&h.result){console.log("✅ LSP initialized"),a.send(JSON.stringify({jsonrpc:"2.0",method:"initialized",params:{}})),a.send(JSON.stringify({jsonrpc:"2.0",method:"textDocument/didOpen",params:{textDocument:{uri:o.toString(),languageId:"python",version:1,text:s.getValue()}}})),r.isInitialized=!0,e.settings.editor.autoCompletion&&(r.providers.completion=die(r,n,o)),e.settings.editor.documentHover&&(r.providers.hover=uie(r,n,o)),e.settings.editor.signatureHelp&&(r.providers.signatureHelp=hie(r,n,o)),e.settings.editor.documentFormatting&&n.isFormattingAvailableOnCurrentPlatform&&(r.providers.documentFormatting=fie(r,n,o)),e.settings.editor.documentHighlight&&(r.providers.documentHighlight=gie(r,n,o));const f=Dn(()=>e.settings.editor,g=>{r.isInitialized&&(!g.autoCompletion&&r.providers.completion&&(r.providers.completion.dispose(),delete r.providers.completion),!g.documentHover&&r.providers.hover&&(r.providers.hover.dispose(),delete r.providers.hover),!g.signatureHelp&&r.providers.signatureHelp&&(r.providers.signatureHelp.dispose(),delete r.providers.signatureHelp),!g.documentFormatting&&r.providers.documentFormatting&&(r.providers.documentFormatting.dispose(),delete r.providers.documentFormatting),!g.documentHighlight&&r.providers.documentHighlight&&(r.providers.documentHighlight.dispose(),delete r.providers.documentHighlight),g.autoCompletion&&!r.providers.completion&&(r.providers.completion=die(r,n,o)),g.documentHover&&!r.providers.hover&&(r.providers.hover=uie(r,n,o)),g.signatureHelp&&!r.providers.signatureHelp&&(r.providers.signatureHelp=hie(r,n,o)),g.documentFormatting&&!r.providers.documentFormatting&&n.isFormattingAvailableOnCurrentPlatform&&(r.providers.documentFormatting=fie(r,n,o)),g.documentHighlight&&!r.providers.documentHighlight&&(r.providers.documentHighlight=gie(r,n,o)))},{deep:!0,immediate:!1});r.settingsWatcher=f}if(h.method==="textDocument/publishDiagnostics"){const f=h.params.diagnostics.map(g=>({message:g.message,severity:g.severity===1?nR.Error:nR.Warning,startLineNumber:g.range.start.line+1,startColumn:g.range.start.character+1,endLineNumber:g.range.end.line+1,endColumn:g.range.end.character+1}));sU.setModelMarkers(s,"pyright",f)}},a.onerror=u=>{console.error("❌ LSP WebSocket error:",u)},a.onclose=()=>{console.log("🔌 LSP connection closed")};const d=()=>{console.log("🧹 Cleaning up LSP connection"),c.dispose(),Object.values(r.providers).forEach(u=>{u.dispose()}),r.settingsWatcher(),a.readyState===WebSocket.OPEN&&(a.send(JSON.stringify({jsonrpc:"2.0",method:"textDocument/didClose",params:{textDocument:{uri:o.toString()}}})),a.close())};return i.onDidDispose(d),d}}}const tlt=ua(async n=>{let e,t,i="",s=!1;const{data:o,error:r}=([e,t]=Vv(()=>jl("/lsp-config",!0)),e=await e,t(),e);if(o.value){const l=o.value;i=`ws://localhost:${l.ws_port}${l.ws_path}`,s=l.is_formatting_available}else console.log("🔌 Failed to get LSP config, using default values"),i="ws://localhost:9011/lsp",s=!1;const a=elt({languageId:"python",wsUrl:i,completionTriggerCharacters:["."],isFormattingAvailableOnCurrentPlatform:s});n.provide("connectPyrightLsp",a.createClient)}),ilt=ua(()=>{Fr().beforeEach((e,t)=>{t.path&&t.path!==e.path&&sessionStorage.setItem("previousRoute",t.path)})}),nlt=[vIe,CIe,WEe,VEe,$Ee,dTe,gTe,pTe,mTe,NTe,RTe,KNe,ZNe,t2e,tlt,ilt];function slt(n,e){const t=e/n*100;return 2/Math.PI*100*Math.atan(t/50)}function olt(n={}){const{duration:e=2e3,throttle:t=200,hideDelay:i=500,resetDelay:s=400}=n,o=n.estimatedProgress||slt,r=In(),a=Ue(0),l=Ue(!1),c=Ue(!1);let d=!1,u,h,f,g;const p=()=>{c.value=!1,_(0)};function _(D=0){if(!r.isHydrating){if(D>=100)return w();S(),a.value=D<0?0:D,t?h=setTimeout(()=>{l.value=!0,x()},t):(l.value=!0,x())}}function b(){f=setTimeout(()=>{l.value=!1,g=setTimeout(()=>{a.value=0},s)},i)}function w(D={}){a.value=100,d=!0,S(),y(),D.error&&(c.value=!0),D.force?(a.value=0,l.value=!1):b()}function y(){clearTimeout(f),clearTimeout(g)}function S(){clearTimeout(h),cancelAnimationFrame(u)}function x(){d=!1;let D;function I(N){if(d)return;D??(D=N);const P=N-D;a.value=Math.max(0,Math.min(100,o(e,P))),u=requestAnimationFrame(I)}u=requestAnimationFrame(I)}let k=()=>{};{const D=r.hook("page:loading:start",()=>{p()}),I=r.hook("page:loading:end",()=>{w()}),N=r.hook("vue:error",()=>w());k=()=>{N(),D(),I(),S()}}return{_cleanup:k,progress:ue(()=>a.value),isLoading:ue(()=>l.value),error:ue(()=>c.value),start:p,set:_,finish:w,clear:S}}function rlt(n={}){const e=In(),t=e._loadingIndicator=e._loadingIndicator||olt(n);return r_()&&(e._loadingIndicatorDeps=e._loadingIndicatorDeps||0,e._loadingIndicatorDeps++,vC(()=>{e._loadingIndicatorDeps--,e._loadingIndicatorDeps===0&&(t._cleanup(),delete e._loadingIndicator)})),t}const alt=kt({name:"NuxtLoadingIndicator",props:{throttle:{type:Number,default:200},duration:{type:Number,default:2e3},height:{type:Number,default:3},color:{type:[String,Boolean],default:"repeating-linear-gradient(to right,#00dc82 0%,#34cdfe 50%,#0047e1 100%)"},errorColor:{type:String,default:"repeating-linear-gradient(to right,#f87171 0%,#ef4444 100%)"},estimatedProgress:{type:Function,required:!1}},setup(n,{slots:e,expose:t}){const{progress:i,isLoading:s,error:o,start:r,finish:a,clear:l}=rlt({duration:n.duration,throttle:n.throttle,estimatedProgress:n.estimatedProgress});return t({progress:i,isLoading:s,error:o,start:r,finish:a,clear:l}),()=>$i("div",{class:"nuxt-loading-indicator",style:{position:"fixed",top:0,right:0,left:0,pointerEvents:"none",width:"auto",height:`${n.height}px`,opacity:s.value?1:0,background:o.value?n.errorColor:n.color||void 0,backgroundSize:`${100/i.value*100}% auto`,transform:`scaleX(${i.value}%)`,transformOrigin:"left",transition:"transform 0.1s, height 0.4s, opacity 0.4s",zIndex:999999}},e)}});function llt(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"})])}function nne(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15.75 9V5.25A2.25 2.25 0 0 0 13.5 3h-6a2.25 2.25 0 0 0-2.25 2.25v13.5A2.25 2.25 0 0 0 7.5 21h6a2.25 2.25 0 0 0 2.25-2.25V15M12 9l-3 3m0 0 3 3m-3-3h12.75"})])}function ome(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"})])}function clt(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"})])}function sne(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M14.857 17.082a23.848 23.848 0 0 0 5.454-1.31A8.967 8.967 0 0 1 18 9.75V9A6 6 0 0 0 6 9v.75a8.967 8.967 0 0 1-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 0 1-5.714 0m5.714 0a3 3 0 1 1-5.714 0M3.124 7.5A8.969 8.969 0 0 1 5.292 3m13.416 0a8.969 8.969 0 0 1 2.168 4.5"})])}function rme(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z"})])}function one(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M2.25 12.76c0 1.6 1.123 2.994 2.707 3.227 1.087.16 2.185.283 3.293.369V21l4.076-4.076a1.526 1.526 0 0 1 1.037-.443 48.282 48.282 0 0 0 5.68-.494c1.584-.233 2.707-1.626 2.707-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0 0 12 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018Z"})])}function dlt(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m4.5 12.75 6 6 9-13.5"})])}function rne(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125"})])}function ame(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5"})])}function ane(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495"})])}function lme(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z"})])}function cme(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"})])}function lne(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"})])}function ult(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 6.75a.75.75 0 1 1 0-1.5.75.75 0 0 1 0 1.5ZM12 12.75a.75.75 0 1 1 0-1.5.75.75 0 0 1 0 1.5ZM12 18.75a.75.75 0 1 1 0-1.5.75.75 0 0 1 0 1.5Z"})])}function cne(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"})])}function dne(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 9h3.75M15 12h3.75M15 15h3.75M4.5 19.5h15a2.25 2.25 0 0 0 2.25-2.25V6.75A2.25 2.25 0 0 0 19.5 4.5h-15a2.25 2.25 0 0 0-2.25 2.25v10.5A2.25 2.25 0 0 0 4.5 19.5Zm6-10.125a1.875 1.875 0 1 1-3.75 0 1.875 1.875 0 0 1 3.75 0Zm1.294 6.336a6.721 6.721 0 0 1-3.17.789 6.721 6.721 0 0 1-3.168-.789 3.376 3.376 0 0 1 6.338 0Z"})])}function dme(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"})])}function une(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15.75 5.25a3 3 0 0 1 3 3m3 0a6 6 0 0 1-7.029 5.912c-.563-.097-1.159.026-1.563.43L10.5 17.25H8.25v2.25H6v2.25H2.25v-2.818c0-.597.237-1.17.659-1.591l6.499-6.499c.404-.404.527-1 .43-1.563A6 6 0 1 1 21.75 8.25Z"})])}function hlt(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"})])}function flt(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M18.364 18.364A9 9 0 0 0 5.636 5.636m12.728 12.728A9 9 0 0 1 5.636 5.636m12.728 12.728L5.636 5.636"})])}function z3(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"})])}function glt(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"})])}function hne(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15.75 6a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0ZM4.501 20.118a7.5 7.5 0 0 1 14.998 0A17.933 17.933 0 0 1 12 21.75c-2.676 0-5.216-.584-7.499-1.632Z"})])}function LO(n,e){return fe(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[q("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18 18 6M6 6l12 12"})])}const plt={key:0,class:"relative bg-indigo-600 dark:bg-indigo-400 select-none text-white dark:text-black"},mlt={class:"max-w-7xl mx-auto py-3 px-3 sm:px-6 lg:px-8"},_lt={class:"pr-16 sm:text-center sm:px-16"},vlt={class:"font-medium"},blt={class:"md:inline"},Clt={class:"absolute inset-y-0 right-0 pt-1 pr-1 flex items-start sm:pt-1 sm:pr-2 sm:items-start"},wlt=kt({__name:"UpdateBanner",setup(n){const e=Ue(!1),t=pi(),i=ue(()=>t.updateInfo),s=ue(()=>t.systemInfo),o=ue(()=>{if(e.value||!i.value||!i.value.is_update_info_available)return{flag:!1,message:"",type:"",version:""};const a=t.skippedJesseVersions,l=t.skippedLivePluginVersions;return i.value.jesse_latest_version>s.value.jesse_version&&!a.includes(i.value.jesse_latest_version)?{flag:!0,message:`Version "${i.value.jesse_latest_version}" of Jesse is available. You are currently running version "${s.value.jesse_version}".`,type:"jesse",version:i.value.jesse_latest_version}:s.value.live_plugin_version&&i.value.jesse_live_latest_version>s.value.live_plugin_version&&!l.includes(i.value.jesse_live_latest_version)?{flag:!0,message:`Version "${i.value.jesse_live_latest_version}" of the live plugin is available. You are running "${s.value.live_plugin_version}".`,type:"live",version:i.value.jesse_live_latest_version}:{flag:!1,message:"",type:"",version:""}}),r=(a,l)=>{if(a==="jesse"){const c=t.skippedJesseVersions||[];c.push(l),t.skippedJesseVersions=c,e.value=!0}if(a==="live"){const c=t.skippedLivePluginVersions||[];c.push(l),t.skippedLivePluginVersions=c,e.value=!0}};return(a,l)=>j(o).flag?(fe(),Re("div",plt,[q("div",mlt,[q("div",_lt,[q("p",vlt,[q("span",blt,Ni(j(o).message),1),l[1]||(l[1]=q("span",{class:"block sm:ml-2 sm:inline-block"},[q("a",{href:"https://docs.jesse.trade/docs/getting-started/update.html",target:"_blank",class:"font-bold underline"},[at(" Update Guide "),q("span",{"aria-hidden":"true"},"→")])],-1))])]),q("div",Clt,[q("button",{type:"button",class:"flex p-2 rounded-md hover:bg-indigo-500 focus:outline-none focus:ring-0",onClick:l[0]||(l[0]=c=>r(j(o).type,j(o).version))},[te(j(LO),{class:"h-6 w-6","aria-hidden":"true"})])])])])):Bt("",!0)}}),Js=(n,e)=>{const t=n.__vccOpts||n;for(const[i,s]of e)t[i]=s;return t},ylt={},Slt={class:"text-2xl mb-4"};function xlt(n,e){return fe(),Re("h3",Slt,[en(n.$slots,"default")])}const sy=Js(ylt,[["render",xlt]]),Ua=(n,e,t,i,s=!1)=>{const o=axe(),r=JR(),a=ue(()=>{var h;const c=Z4(e),d=Z4(t),u=Z4(i);return ha((c==null?void 0:c.strategy)||((h=r.ui)==null?void 0:h.strategy),u?{wrapper:u}:{},c||{},s?mS(r.ui,n,{}):{},d||{})}),l=ue(()=>hNe(o,["class"]));return{ui:a,attrs:l}},aI=(n,e)=>{const t=Ui("form-events",void 0),i=Ui("form-group",void 0),s=Ui("form-inputs",void 0);i&&(n!=null&&n.id&&(i.inputId.value=n==null?void 0:n.id),s&&(s.value[i.name.value]=i.inputId.value));const o=Ue(!1);function r(d,u){t&&t.emit({type:d,path:u})}function a(){r("blur",i==null?void 0:i.name.value),o.value=!0}function l(){r("change",i==null?void 0:i.name.value)}const c=Lre(()=>{(o.value||i!=null&&i.eagerValidation.value)&&r("input",i==null?void 0:i.name.value)},300);return{inputId:ue(()=>(n==null?void 0:n.id)??(i==null?void 0:i.inputId.value)),name:ue(()=>(n==null?void 0:n.name)??(i==null?void 0:i.name.value)),size:ue(()=>{var u;const d=e.size[i==null?void 0:i.size.value]?i==null?void 0:i.size.value:null;return(n==null?void 0:n.size)??d??((u=e==null?void 0:e.default)==null?void 0:u.size)}),color:ue(()=>{var d;return(d=i==null?void 0:i.error)!=null&&d.value?"red":n==null?void 0:n.color}),emitFormBlur:a,emitFormInput:c,emitFormChange:l}},Llt={wrapper:"relative inline-flex items-center justify-center flex-shrink-0",background:"bg-gray-100 dark:bg-gray-800",rounded:"rounded-full",text:"font-medium leading-none text-gray-900 dark:text-white truncate",placeholder:"font-medium leading-none text-gray-500 dark:text-gray-400 truncate",size:{"3xs":"h-4 w-4 text-[8px]","2xs":"h-5 w-5 text-[10px]",xs:"h-6 w-6 text-xs",sm:"h-8 w-8 text-sm",md:"h-10 w-10 text-base",lg:"h-12 w-12 text-lg",xl:"h-14 w-14 text-xl","2xl":"h-16 w-16 text-2xl","3xl":"h-20 w-20 text-3xl"},chip:{base:"absolute rounded-full ring-1 ring-white dark:ring-gray-900 flex items-center justify-center text-white dark:text-gray-900 font-medium",background:"bg-{color}-500 dark:bg-{color}-400",position:{"top-right":"top-0 right-0","bottom-right":"bottom-0 right-0","top-left":"top-0 left-0","bottom-left":"bottom-0 left-0"},size:{"3xs":"h-[4px] min-w-[4px] text-[4px] p-px","2xs":"h-[5px] min-w-[5px] text-[5px] p-px",xs:"h-1.5 min-w-[0.375rem] text-[6px] p-px",sm:"h-2 min-w-[0.5rem] text-[7px] p-0.5",md:"h-2.5 min-w-[0.625rem] text-[8px] p-0.5",lg:"h-3 min-w-[0.75rem] text-[10px] p-0.5",xl:"h-3.5 min-w-[0.875rem] text-[11px] p-1","2xl":"h-4 min-w-[1rem] text-[12px] p-1","3xl":"h-5 min-w-[1.25rem] text-[14px] p-1"}},icon:{base:"text-gray-500 dark:text-gray-400 flex-shrink-0",size:{"3xs":"h-2 w-2","2xs":"h-2.5 w-2.5",xs:"h-3 w-3",sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6",xl:"h-7 w-7","2xl":"h-8 w-8","3xl":"h-10 w-10"}},default:{size:"sm",icon:null,chipColor:null,chipPosition:"top-right"}},klt={base:"focus:outline-none focus-visible:outline-0 disabled:cursor-not-allowed disabled:opacity-75 flex-shrink-0",font:"font-medium",rounded:"rounded-md",truncate:"text-left break-all line-clamp-1",block:"w-full flex justify-center items-center",inline:"inline-flex items-center",size:{"2xs":"text-xs",xs:"text-xs",sm:"text-sm",md:"text-sm",lg:"text-sm",xl:"text-base"},gap:{"2xs":"gap-x-1",xs:"gap-x-1.5",sm:"gap-x-1.5",md:"gap-x-2",lg:"gap-x-2.5",xl:"gap-x-2.5"},padding:{"2xs":"px-2 py-1",xs:"px-2.5 py-1.5",sm:"px-2.5 py-1.5",md:"px-3 py-2",lg:"px-3.5 py-2.5",xl:"px-3.5 py-2.5"},square:{"2xs":"p-1",xs:"p-1.5",sm:"p-1.5",md:"p-2",lg:"p-2.5",xl:"p-2.5"},color:{white:{solid:"shadow-sm ring-1 ring-inset ring-gray-300 dark:ring-gray-700 text-gray-900 dark:text-white bg-white hover:bg-gray-50 disabled:bg-white dark:bg-gray-900 dark:hover:bg-gray-800/50 dark:disabled:bg-gray-900 focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400",ghost:"text-gray-900 dark:text-white hover:bg-white dark:hover:bg-gray-900 focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400"},gray:{solid:"shadow-sm ring-1 ring-inset ring-gray-300 dark:ring-gray-700 text-gray-700 dark:text-gray-200 bg-gray-50 hover:bg-gray-100 disabled:bg-gray-50 dark:bg-gray-800 dark:hover:bg-gray-700/50 dark:disabled:bg-gray-800 focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400",ghost:"text-gray-700 dark:text-gray-200 hover:text-gray-900 dark:hover:text-white hover:bg-gray-50 dark:hover:bg-gray-800 focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400",link:"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 underline-offset-4 hover:underline focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400"},black:{solid:"shadow-sm text-white dark:text-gray-900 bg-gray-900 hover:bg-gray-800 disabled:bg-gray-900 dark:bg-white dark:hover:bg-gray-100 dark:disabled:bg-white focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400",link:"text-gray-900 dark:text-white underline-offset-4 hover:underline focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400"}},variant:{solid:"shadow-sm text-white dark:text-gray-900 bg-{color}-500 hover:bg-{color}-600 disabled:bg-{color}-500 dark:bg-{color}-400 dark:hover:bg-{color}-500 dark:disabled:bg-{color}-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-{color}-500 dark:focus-visible:outline-{color}-400",outline:"ring-1 ring-inset ring-current text-{color}-500 dark:text-{color}-400 hover:bg-{color}-50 disabled:bg-transparent dark:hover:bg-{color}-950 dark:disabled:bg-transparent focus-visible:ring-2 focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400",soft:"text-{color}-500 dark:text-{color}-400 bg-{color}-50 hover:bg-{color}-100 disabled:bg-{color}-50 dark:bg-{color}-950 dark:hover:bg-{color}-900 dark:disabled:bg-{color}-950 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400",ghost:"text-{color}-500 dark:text-{color}-400 hover:bg-{color}-50 disabled:bg-transparent dark:hover:bg-{color}-950 dark:disabled:bg-transparent focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400",link:"text-{color}-500 hover:text-{color}-600 disabled:text-{color}-500 dark:text-{color}-400 dark:hover:text-{color}-500 dark:disabled:text-{color}-400 underline-offset-4 hover:underline focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400"},icon:{base:"flex-shrink-0",loading:"animate-spin",size:{"2xs":"h-4 w-4",xs:"h-4 w-4",sm:"h-5 w-5",md:"h-5 w-5",lg:"h-5 w-5",xl:"h-6 w-6"}},default:{size:"sm",variant:"solid",color:"primary",loadingIcon:"i-heroicons-arrow-path-20-solid"}},kO={base:"invisible before:visible before:block before:rotate-45 before:z-[-1] before:w-2 before:h-2",ring:"before:ring-1 before:ring-gray-200 dark:before:ring-gray-800",rounded:"before:rounded-sm",background:"before:bg-gray-200 dark:before:bg-gray-800",shadow:"before:shadow",placement:"group-data-[popper-placement*='right']:-left-1 group-data-[popper-placement*='left']:-right-1 group-data-[popper-placement*='top']:-bottom-1 group-data-[popper-placement*='bottom']:-top-1"};({...kO});const Dlt={base:"inline-flex items-center justify-center text-gray-900 dark:text-white",padding:"px-1",size:{xs:"h-4 min-w-[16px] text-[10px]",sm:"h-5 min-w-[20px] text-[11px]",md:"h-6 min-w-[24px] text-[12px]"},rounded:"rounded",font:"font-medium font-sans",background:"bg-gray-100 dark:bg-gray-800",ring:"ring-1 ring-gray-300 dark:ring-gray-700 ring-inset",default:{size:"sm"}},uj={wrapper:"relative",base:"relative block w-full disabled:cursor-not-allowed disabled:opacity-75 focus:outline-none border-0",form:"form-input",rounded:"rounded-md",placeholder:"placeholder-gray-400 dark:placeholder-gray-500",file:{base:"file:cursor-pointer file:rounded-l-md file:absolute file:left-0 file:inset-y-0 file:font-medium file:m-0 file:border-0 file:ring-1 file:ring-gray-300 dark:file:ring-gray-700 file:text-gray-900 dark:file:text-white file:bg-gray-50 hover:file:bg-gray-100 dark:file:bg-gray-800 dark:hover:file:bg-gray-700/50",padding:{"2xs":"ps-[85px]",xs:"ps-[87px]",sm:"ps-[96px]",md:"ps-[98px]",lg:"ps-[100px]",xl:"ps-[109px]"}},size:{"2xs":"text-xs",xs:"text-xs",sm:"text-sm",md:"text-sm",lg:"text-sm",xl:"text-base"},gap:{"2xs":"gap-x-1",xs:"gap-x-1.5",sm:"gap-x-1.5",md:"gap-x-2",lg:"gap-x-2.5",xl:"gap-x-2.5"},padding:{"2xs":"px-2 py-1",xs:"px-2.5 py-1.5",sm:"px-2.5 py-1.5",md:"px-3 py-2",lg:"px-3.5 py-2.5",xl:"px-3.5 py-2.5"},leading:{padding:{"2xs":"ps-7",xs:"ps-8",sm:"ps-9",md:"ps-10",lg:"ps-11",xl:"ps-12"}},trailing:{padding:{"2xs":"pe-7",xs:"pe-8",sm:"pe-9",md:"pe-10",lg:"pe-11",xl:"pe-12"}},color:{white:{outline:"shadow-sm bg-white dark:bg-gray-900 text-gray-900 dark:text-white ring-1 ring-inset ring-gray-300 dark:ring-gray-700 focus:ring-2 focus:ring-primary-500 dark:focus:ring-primary-400"},gray:{outline:"shadow-sm bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-white ring-1 ring-inset ring-gray-300 dark:ring-gray-700 focus:ring-2 focus:ring-primary-500 dark:focus:ring-primary-400"}},variant:{outline:"shadow-sm bg-transparent text-gray-900 dark:text-white ring-1 ring-inset ring-{color}-500 dark:ring-{color}-400 focus:ring-2 focus:ring-{color}-500 dark:focus:ring-{color}-400",none:"bg-transparent focus:ring-0 focus:shadow-none"},icon:{base:"flex-shrink-0 text-gray-400 dark:text-gray-500",color:"text-{color}-500 dark:text-{color}-400",loading:"animate-spin",size:{"2xs":"h-4 w-4",xs:"h-4 w-4",sm:"h-5 w-5",md:"h-5 w-5",lg:"h-5 w-5",xl:"h-6 w-6"},leading:{wrapper:"absolute inset-y-0 start-0 flex items-center",pointer:"pointer-events-none",padding:{"2xs":"px-2",xs:"px-2.5",sm:"px-2.5",md:"px-3",lg:"px-3.5",xl:"px-3.5"}},trailing:{wrapper:"absolute inset-y-0 end-0 flex items-center",pointer:"pointer-events-none",padding:{"2xs":"px-2",xs:"px-2.5",sm:"px-2.5",md:"px-3",lg:"px-3.5",xl:"px-3.5"}}},default:{size:"sm",color:"white",variant:"outline",loadingIcon:"i-heroicons-arrow-path-20-solid"}},fne={container:"z-20 group",trigger:"flex items-center w-full",width:"w-full",height:"max-h-60",base:"relative focus:outline-none overflow-y-auto scroll-py-1",background:"bg-white dark:bg-gray-800",shadow:"shadow-lg",rounded:"rounded-md",padding:"p-1",ring:"ring-1 ring-gray-200 dark:ring-gray-700",empty:"text-sm text-gray-400 dark:text-gray-500 px-2 py-1.5",option:{base:"cursor-default select-none relative flex items-center justify-between gap-1",rounded:"rounded-md",padding:"px-1.5 py-1.5",size:"text-sm",color:"text-gray-900 dark:text-white",container:"flex items-center gap-1.5 min-w-0",active:"bg-gray-100 dark:bg-gray-900",inactive:"",selected:"pe-7",disabled:"cursor-not-allowed opacity-50",empty:"text-sm text-gray-400 dark:text-gray-500 px-2 py-1.5",icon:{base:"flex-shrink-0 h-5 w-5",active:"text-gray-900 dark:text-white",inactive:"text-gray-400 dark:text-gray-500"},selectedIcon:{wrapper:"absolute inset-y-0 end-0 flex items-center",padding:"pe-2",base:"h-5 w-5 text-gray-900 dark:text-white flex-shrink-0"},avatar:{base:"flex-shrink-0",size:"2xs"},chip:{base:"flex-shrink-0 w-2 h-2 mx-1 rounded-full"}},transition:{leaveActiveClass:"transition ease-in duration-100",leaveFromClass:"opacity-100",leaveToClass:"opacity-0"},popper:{placement:"bottom-end"},default:{selectedIcon:"i-heroicons-check-20-solid",trailingIcon:"i-heroicons-chevron-down-20-solid"},arrow:{...kO,ring:"before:ring-1 before:ring-gray-200 dark:before:ring-gray-700",background:"before:bg-white dark:before:bg-gray-700"}},Ilt={wrapper:"",inner:"",label:{wrapper:"flex content-center items-center justify-between",base:"block font-medium text-gray-700 dark:text-gray-200",required:"after:content-['*'] after:ms-0.5 after:text-red-500 dark:after:text-red-400"},size:{"2xs":"text-xs",xs:"text-xs",sm:"text-sm",md:"text-sm",lg:"text-sm",xl:"text-base"},container:"mt-1 relative",description:"text-gray-500 dark:text-gray-400",hint:"text-gray-500 dark:text-gray-400",help:"mt-2 text-gray-500 dark:text-gray-400",error:"mt-2 text-red-500 dark:text-red-400",default:{size:"sm"}},Elt={...uj,form:"form-textarea",default:{size:"sm",color:"white",variant:"outline"}},Tlt={...uj,form:"form-select",placeholder:"text-gray-400 dark:text-gray-500",default:{size:"sm",color:"white",variant:"outline",loadingIcon:"i-heroicons-arrow-path-20-solid",trailingIcon:"i-heroicons-chevron-down-20-solid"}},M1t={...fne,select:"inline-flex items-center text-left cursor-default",input:"block w-[calc(100%+0.5rem)] focus:ring-transparent text-sm px-3 py-1.5 text-gray-700 dark:text-gray-200 bg-white dark:bg-gray-800 border-0 border-b border-gray-200 dark:border-gray-700 sticky -top-1 -mt-1 mb-1 -mx-1 z-10 placeholder-gray-400 dark:placeholder-gray-500 focus:outline-none",required:"absolute inset-0 w-px opacity-0 cursor-default",label:"block truncate",option:{...fne.option,create:"block truncate"},transition:{leaveActiveClass:"transition ease-in duration-100",leaveFromClass:"opacity-100",leaveToClass:"opacity-0"},popper:{placement:"bottom-end"},default:{selectedIcon:"i-heroicons-check-20-solid",clearSearchOnClose:!1,showCreateOptionWhen:"empty"},arrow:{...kO,ring:"before:ring-1 before:ring-gray-200 dark:before:ring-gray-700",background:"before:bg-white dark:before:bg-gray-700"}},Nlt={wrapper:"relative flex items-start",container:"flex items-center h-5",base:"h-4 w-4 dark:checked:bg-current dark:checked:border-transparent dark:indeterminate:bg-current dark:indeterminate:border-transparent disabled:opacity-50 disabled:cursor-not-allowed focus:ring-0 focus:ring-transparent focus:ring-offset-transparent",form:"form-checkbox",rounded:"rounded",color:"text-{color}-500 dark:text-{color}-400",background:"bg-white dark:bg-gray-900",border:"border border-gray-300 dark:border-gray-700",ring:"focus-visible:ring-2 focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900",inner:"ms-3 flex flex-col",label:"text-sm font-medium text-gray-700 dark:text-gray-200",required:"text-sm text-red-500 dark:text-red-400",help:"text-sm text-gray-500 dark:text-gray-400",default:{color:"primary"}},Alt={base:"relative inline-flex flex-shrink-0 border-2 border-transparent disabled:cursor-not-allowed disabled:opacity-50 focus:outline-none",rounded:"rounded-full",ring:"focus-visible:ring-2 focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900",active:"bg-{color}-500 dark:bg-{color}-400",inactive:"bg-gray-200 dark:bg-gray-700",size:{"2xs":"h-3 w-5",xs:"h-3.5 w-6",sm:"h-4 w-7",md:"h-5 w-9",lg:"h-6 w-11",xl:"h-7 w-[3.25rem]","2xl":"h-8 w-[3.75rem]"},container:{base:"pointer-events-none relative inline-block rounded-full bg-white dark:bg-gray-900 shadow transform ring-0 transition ease-in-out duration-200",active:{"2xs":"translate-x-2 rtl:-translate-x-2",xs:"translate-x-2.5 rtl:-translate-x-2.5",sm:"translate-x-3 rtl:-translate-x-3",md:"translate-x-4 rtl:-translate-x-4",lg:"translate-x-5 rtl:-translate-x-5",xl:"translate-x-6 rtl:-translate-x-6","2xl":"translate-x-7 rtl:-translate-x-7"},inactive:"translate-x-0 rtl:-translate-x-0",size:{"2xs":"h-2 w-2",xs:"h-2.5 w-2.5",sm:"h-3 w-3",md:"h-4 w-4",lg:"h-5 w-5",xl:"h-6 w-6","2xl":"h-7 w-7"}},icon:{base:"absolute inset-0 h-full w-full flex items-center justify-center transition-opacity",active:"opacity-100 ease-in duration-200",inactive:"opacity-0 ease-out duration-100",size:{"2xs":"h-2 w-2",xs:"h-2 w-2",sm:"h-2 w-2",md:"h-3 w-3",lg:"h-4 w-4",xl:"h-5 w-5","2xl":"h-6 w-6"},on:"text-{color}-500 dark:text-{color}-400",off:"text-gray-400 dark:text-gray-500",loading:"animate-spin text-{color}-500 dark:text-{color}-400"},default:{onIcon:null,offIcon:null,loadingIcon:"i-heroicons-arrow-path-20-solid",color:"primary",size:"md"}},Rlt={base:"",background:"bg-white dark:bg-gray-900",divide:"divide-y divide-gray-200 dark:divide-gray-800",ring:"ring-1 ring-gray-200 dark:ring-gray-800",rounded:"rounded-lg",shadow:"shadow",body:{base:"",background:"",padding:"px-4 py-5 sm:p-6"},header:{base:"",background:"",padding:"px-4 py-5 sm:px-6"},footer:{base:"",background:"",padding:"px-4 py-4 sm:px-6"}},Mlt={wrapper:"relative z-50",inner:"fixed inset-0 overflow-y-auto",container:"flex min-h-full items-end sm:items-center justify-center text-center",padding:"p-4 sm:p-0",margin:"sm:my-8",base:"relative text-left rtl:text-right flex flex-col",overlay:{base:"fixed inset-0 transition-opacity",background:"bg-gray-200/75 dark:bg-gray-800/75",transition:{enter:"ease-out duration-300",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-200",leaveFrom:"opacity-100",leaveTo:"opacity-0"}},background:"bg-white dark:bg-gray-900",ring:"",rounded:"rounded-lg",shadow:"shadow-xl",width:"w-full sm:max-w-lg",height:"",fullscreen:"w-screen h-screen",transition:{enter:"ease-out duration-300",enterFrom:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",enterTo:"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200",leaveFrom:"opacity-100 translate-y-0 sm:scale-100",leaveTo:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"}},Plt={wrapper:"fixed inset-0 flex z-50",overlay:{base:"fixed inset-0 transition-opacity",background:"bg-gray-200/75 dark:bg-gray-800/75",transition:{enter:"ease-in-out duration-500",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in-out duration-500",leaveFrom:"opacity-100",leaveTo:"opacity-0"}},base:"relative flex-1 flex flex-col w-full focus:outline-none",background:"bg-white dark:bg-gray-900",ring:"",rounded:"",padding:"",shadow:"shadow-xl",width:"w-screen max-w-md",translate:{base:"translate-x-0",left:"-translate-x-full rtl:translate-x-full",right:"translate-x-full rtl:-translate-x-full"},transition:{enter:"transform transition ease-in-out duration-300",leave:"transform transition ease-in-out duration-200"}},Olt={wrapper:"relative inline-flex",container:"z-20 group",width:"max-w-xs",background:"bg-white dark:bg-gray-900",color:"text-gray-900 dark:text-white",shadow:"shadow",rounded:"rounded",ring:"ring-1 ring-gray-200 dark:ring-gray-800",base:"[@media(pointer:coarse)]:hidden h-6 px-2 py-1 text-xs font-normal truncate relative",shortcuts:"hidden md:inline-flex flex-shrink-0 gap-0.5",middot:"mx-1 text-gray-700 dark:text-gray-200",transition:{enterActiveClass:"transition ease-out duration-200",enterFromClass:"opacity-0 translate-y-1",enterToClass:"opacity-100 translate-y-0",leaveActiveClass:"transition ease-in duration-150",leaveFromClass:"opacity-100 translate-y-0",leaveToClass:"opacity-0 translate-y-1"},popper:{strategy:"fixed"},default:{openDelay:0,closeDelay:0},arrow:{...kO,base:"[@media(pointer:coarse)]:hidden invisible before:visible before:block before:rotate-45 before:z-[-1] before:w-2 before:h-2"}},Flt={wrapper:"w-full pointer-events-auto",container:"relative overflow-hidden",inner:"w-0 flex-1",title:"text-sm font-medium text-gray-900 dark:text-white",description:"mt-1 text-sm leading-4 text-gray-500 dark:text-gray-400",actions:"flex items-center gap-2 mt-3 flex-shrink-0",background:"bg-white dark:bg-gray-900",shadow:"shadow-lg",rounded:"rounded-lg",padding:"p-4",gap:"gap-3",ring:"ring-1 ring-gray-200 dark:ring-gray-800",icon:{base:"flex-shrink-0 w-5 h-5",color:"text-{color}-500 dark:text-{color}-400"},avatar:{base:"flex-shrink-0 self-center",size:"md"},progress:{base:"absolute bottom-0 end-0 start-0 h-1",background:"bg-{color}-500 dark:bg-{color}-400"},transition:{enterActiveClass:"transform ease-out duration-300 transition",enterFromClass:"translate-y-2 opacity-0 sm:translate-y-0 sm:translate-x-2",enterToClass:"translate-y-0 opacity-100 sm:translate-x-0",leaveActiveClass:"transition ease-in duration-100",leaveFromClass:"opacity-100",leaveToClass:"opacity-0"},default:{color:"primary",icon:null,timeout:5e3,closeButton:{icon:"i-heroicons-x-mark-20-solid",color:"gray",variant:"link",padded:!1},actionButton:{size:"xs",color:"white"}}},Blt={wrapper:"fixed flex flex-col justify-end z-[55]",position:"bottom-0 end-0",width:"w-full sm:w-96",container:"px-4 sm:px-6 py-6 space-y-3 overflow-y-auto"},gne=ha(Pi.ui.strategy,Pi.ui.checkbox,Nlt),Wlt=kt({inheritAttrs:!1,props:{id:{type:String,default:()=>null},value:{type:[String,Number,Boolean,Object],default:null},modelValue:{type:[Boolean,Array],default:null},name:{type:String,default:null},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:void 0},help:{type:String,default:null},label:{type:String,default:null},required:{type:Boolean,default:!1},color:{type:String,default:()=>gne.default.color,validator(n){return Pi.ui.colors.includes(n)}},inputClass:{type:String,default:""},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:()=>({})}},emits:["update:modelValue","change"],setup(n,{emit:e}){const{ui:t,attrs:i}=Ua("checkbox",Ps(n,"ui"),gne,Ps(n,"class")),{emitFormChange:s,color:o,name:r,inputId:a}=aI(n),l=a.value??nTe(),c=ue({get(){return n.modelValue},set(h){e("update:modelValue",h)}}),d=h=>{e("change",h.target.value),s()},u=ue(()=>ac(Vn(t.value.base,t.value.form,t.value.rounded,t.value.background,t.value.border,o.value&&t.value.ring.replaceAll("{color}",o.value),o.value&&t.value.color.replaceAll("{color}",o.value)),n.inputClass));return{ui:t,attrs:i,toggle:c,inputId:l,name:r,inputClass:u,onChange:d}}}),Hlt=["data-n-ids"],Vlt=["id","name","required","value","disabled","indeterminate"],zlt=["for"];function $lt(n,e,t,i,s,o){return fe(),Re("div",{class:st(n.ui.wrapper),"data-n-ids":n.attrs["data-n-ids"]},[q("div",{class:st(n.ui.container)},[HSe(q("input",an({id:n.inputId,"onUpdate:modelValue":e[0]||(e[0]=r=>n.toggle=r),name:n.name,required:n.required,value:n.value,disabled:n.disabled,indeterminate:n.indeterminate,type:"checkbox",class:n.inputClass},n.attrs,{onChange:e[1]||(e[1]=(...r)=>n.onChange&&n.onChange(...r))}),null,16,Vlt),[[RLe,n.toggle]])],2),n.label||n.$slots.label?(fe(),Re("div",{key:0,class:st(n.ui.inner)},[q("label",{for:n.inputId,class:st(n.ui.label)},[en(n.$slots,"label",{},()=>[at(Ni(n.label),1)]),n.required?(fe(),Re("span",{key:0,class:st(n.ui.required)},"*",2)):Bt("",!0)],10,zlt),n.help?(fe(),Re("p",{key:0,class:st(n.ui.help)},Ni(n.help),3)):Bt("",!0)],2)):Bt("",!0)],10,Hlt)}const ume=Js(Wlt,[["render",$lt]]),Ult={},jlt={class:"bg-gray-50 dark:bg-gray-700 dark:border-gray-800 overflow-hidden border sm:rounded-lg"},Klt={class:"px-4 py-5 sm:p-6"};function qlt(n,e){return fe(),Re("div",jlt,[q("div",Klt,[en(n.$slots,"default")])])}const oy=Js(Ult,[["render",qlt]]),hme=Object.freeze({left:0,top:0,width:16,height:16}),fme=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),hj=Object.freeze({...hme,...fme});Object.freeze({...hj,body:"",hidden:!1});({...hme});const gme=Object.freeze({width:null,height:null}),pme=Object.freeze({...gme,...fme});function Glt(n,e){const t={...n};for(const i in e){const s=e[i],o=typeof s;i in gme?(s===null||s&&(o==="string"||o==="number"))&&(t[i]=s):o===typeof t[i]&&(t[i]=i==="rotate"?s%4:s)}return t}const Zlt=/[\s,]+/;function Ylt(n,e){e.split(Zlt).forEach(t=>{switch(t.trim()){case"horizontal":n.hFlip=!0;break;case"vertical":n.vFlip=!0;break}})}function Xlt(n,e=0){const t=n.replace(/^-?[0-9.]*/,"");function i(s){for(;s<0;)s+=4;return s%4}if(t===""){const s=parseInt(n);return isNaN(s)?0:i(s)}else if(t!==n){let s=0;switch(t){case"%":s=25;break;case"deg":s=90}if(s){let o=parseFloat(n.slice(0,n.length-t.length));return isNaN(o)?0:(o=o/s,o%1===0?i(o):0)}}return e}const Qlt=/(-?[0-9.]*[0-9]+[0-9.]*)/g,Jlt=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function pne(n,e,t){if(e===1)return n;if(t=t||100,typeof n=="number")return Math.ceil(n*e*t)/t;if(typeof n!="string")return n;const i=n.split(Qlt);if(i===null||!i.length)return n;const s=[];let o=i.shift(),r=Jlt.test(o);for(;;){if(r){const a=parseFloat(o);isNaN(a)?s.push(o):s.push(Math.ceil(a*e*t)/t)}else s.push(o);if(o=i.shift(),o===void 0)return s.join("");r=!r}}function ect(n,e="defs"){let t="";const i=n.indexOf("<"+e);for(;i>=0;){const s=n.indexOf(">",i),o=n.indexOf("",o);if(r===-1)break;t+=n.slice(s+1,o).trim(),n=n.slice(0,i).trim()+n.slice(r+1)}return{defs:t,content:n}}function tct(n,e){return n?""+n+""+e:e}function ict(n,e,t){const i=ect(n);return tct(i.defs,e+i.content+t)}const nct=n=>n==="unset"||n==="undefined"||n==="none";function sct(n,e){const t={...hj,...n},i={...pme,...e},s={left:t.left,top:t.top,width:t.width,height:t.height};let o=t.body;[t,i].forEach(p=>{const _=[],b=p.hFlip,w=p.vFlip;let y=p.rotate;b?w?y+=2:(_.push("translate("+(s.width+s.left).toString()+" "+(0-s.top).toString()+")"),_.push("scale(-1 1)"),s.top=s.left=0):w&&(_.push("translate("+(0-s.left).toString()+" "+(s.height+s.top).toString()+")"),_.push("scale(1 -1)"),s.top=s.left=0);let S;switch(y<0&&(y-=Math.floor(y/4)*4),y=y%4,y){case 1:S=s.height/2+s.top,_.unshift("rotate(90 "+S.toString()+" "+S.toString()+")");break;case 2:_.unshift("rotate(180 "+(s.width/2+s.left).toString()+" "+(s.height/2+s.top).toString()+")");break;case 3:S=s.width/2+s.left,_.unshift("rotate(-90 "+S.toString()+" "+S.toString()+")");break}y%2===1&&(s.left!==s.top&&(S=s.left,s.left=s.top,s.top=S),s.width!==s.height&&(S=s.width,s.width=s.height,s.height=S)),_.length&&(o=ict(o,'',""))});const r=i.width,a=i.height,l=s.width,c=s.height;let d,u;r===null?(u=a===null?"1em":a==="auto"?c:a,d=pne(u,l/c)):(d=r==="auto"?l:r,u=a===null?pne(d,c/l):a==="auto"?c:a);const h={},f=(p,_)=>{nct(_)||(h[p]=_.toString())};f("width",d),f("height",u);const g=[s.left,s.top,l,c];return h.viewBox=g.join(" "),{attributes:h,viewBox:g,body:o}}const oct=/\sid="(\S+)"/g,rct="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let act=0;function lct(n,e=rct){const t=[];let i;for(;i=oct.exec(n);)t.push(i[1]);if(!t.length)return n;const s="suffix"+(Math.random()*16777216|Date.now()).toString(16);return t.forEach(o=>{const r=typeof e=="function"?e(o):e+(act++).toString(),a=o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");n=n.replace(new RegExp('([#;"])('+a+')([")]|\\.[a-z])',"g"),"$1"+r+s+"$3")}),n=n.replace(new RegExp(s,"g"),""),n}function cct(n,e){let t=n.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const i in e)t+=" "+i+'="'+e[i]+'"';return'"+n+""}function dct(n){return n.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(//g,"%3E").replace(/\s+/g," ")}function uct(n){return"data:image/svg+xml,"+dct(n)}function hct(n){return'url("'+uct(n)+'")'}const mne={...pme,inline:!1},fct={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},gct={display:"inline-block"},AH={backgroundColor:"currentColor"},mme={backgroundColor:"transparent"},_ne={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},vne={webkitMask:AH,mask:AH,background:mme};for(const n in vne){const e=vne[n];for(const t in _ne)e[n+t]=_ne[t]}const GN={};["horizontal","vertical"].forEach(n=>{const e=n.slice(0,1)+"Flip";GN[n+"-flip"]=e,GN[n.slice(0,1)+"-flip"]=e,GN[n+"Flip"]=e});function bne(n){return n+(n.match(/^[-0-9.]+$/)?"px":"")}const pct=(n,e)=>{const t=Glt(mne,e),i={...fct},s=e.mode||"svg",o={},r=e.style,a=typeof r=="object"&&!(r instanceof Array)?r:{};for(let p in e){const _=e[p];if(_!==void 0)switch(p){case"icon":case"style":case"onLoad":case"mode":case"ssr":break;case"inline":case"hFlip":case"vFlip":t[p]=_===!0||_==="true"||_===1;break;case"flip":typeof _=="string"&&Ylt(t,_);break;case"color":o.color=_;break;case"rotate":typeof _=="string"?t[p]=Xlt(_):typeof _=="number"&&(t[p]=_);break;case"ariaHidden":case"aria-hidden":_!==!0&&_!=="true"&&delete i["aria-hidden"];break;default:{const b=GN[p];b?(_===!0||_==="true"||_===1)&&(t[b]=!0):mne[p]===void 0&&(i[p]=_)}}}const l=sct(n,t),c=l.attributes;if(t.inline&&(o.verticalAlign="-0.125em"),s==="svg"){i.style={...o,...a},Object.assign(i,c);let p=0,_=e.id;return typeof _=="string"&&(_=_.replace(/-/g,"_")),i.innerHTML=lct(l.body,_?()=>_+"ID"+p++:"iconifyVue"),$i("svg",i)}const{body:d,width:u,height:h}=n,f=s==="mask"||(s==="bg"?!1:d.indexOf("currentColor")!==-1),g=cct(d,{...c,width:u+"",height:h+""});return i.style={...o,"--svg":hct(g),width:bne(c.width),height:bne(c.height),...gct,...f?AH:mme,...a},$i("span",i)},mct=Object.create(null),_ct=kt({inheritAttrs:!1,render(){const n=this.$attrs,e=n.icon,t=typeof e=="string"?mct[e]:typeof e=="object"?e:null;return t===null||typeof t!="object"||typeof t.body!="string"?this.$slots.default?this.$slots.default():null:pct({...hj,...t},n)}}),_me=/^[a-z0-9]+(-[a-z0-9]+)*$/,DO=(n,e,t,i="")=>{const s=n.split(":");if(n.slice(0,1)==="@"){if(s.length<2||s.length>3)return null;i=s.shift().slice(1)}if(s.length>3||!s.length)return null;if(s.length>1){const a=s.pop(),l=s.pop(),c={provider:s.length>0?s[0]:i,prefix:l,name:a};return e&&!ZN(c)?null:c}const o=s[0],r=o.split("-");if(r.length>1){const a={provider:i,prefix:r.shift(),name:r.join("-")};return e&&!ZN(a)?null:a}if(t&&i===""){const a={provider:i,prefix:"",name:o};return e&&!ZN(a,t)?null:a}return null},ZN=(n,e)=>n?!!((e&&n.prefix===""||n.prefix)&&n.name):!1,vme=Object.freeze({left:0,top:0,width:16,height:16}),MR=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),fj=Object.freeze({...vme,...MR}),RH=Object.freeze({...fj,body:"",hidden:!1});function vct(n,e){const t={};!n.hFlip!=!e.hFlip&&(t.hFlip=!0),!n.vFlip!=!e.vFlip&&(t.vFlip=!0);const i=((n.rotate||0)+(e.rotate||0))%4;return i&&(t.rotate=i),t}function Cne(n,e){const t=vct(n,e);for(const i in RH)i in MR?i in n&&!(i in t)&&(t[i]=MR[i]):i in e?t[i]=e[i]:i in n&&(t[i]=n[i]);return t}function bct(n,e){const t=n.icons,i=n.aliases||Object.create(null),s=Object.create(null);function o(r){if(t[r])return s[r]=[];if(!(r in s)){s[r]=null;const a=i[r]&&i[r].parent,l=a&&o(a);l&&(s[r]=[a].concat(l))}return s[r]}return Object.keys(t).concat(Object.keys(i)).forEach(o),s}function Cct(n,e,t){const i=n.icons,s=n.aliases||Object.create(null);let o={};function r(a){o=Cne(i[a]||s[a],o)}return r(e),t.forEach(r),Cne(n,o)}function bme(n,e){const t=[];if(typeof n!="object"||typeof n.icons!="object")return t;n.not_found instanceof Array&&n.not_found.forEach(s=>{e(s,null),t.push(s)});const i=bct(n);for(const s in i){const o=i[s];o&&(e(s,Cct(n,s,o)),t.push(s))}return t}const wct={provider:"",aliases:{},not_found:{},...vme};function $3(n,e){for(const t in e)if(t in n&&typeof n[t]!=typeof e[t])return!1;return!0}function Cme(n){if(typeof n!="object"||n===null)return null;const e=n;if(typeof e.prefix!="string"||!n.icons||typeof n.icons!="object"||!$3(n,wct))return null;const t=e.icons;for(const s in t){const o=t[s];if(!s||typeof o.body!="string"||!$3(o,RH))return null}const i=e.aliases||Object.create(null);for(const s in i){const o=i[s],r=o.parent;if(!s||typeof r!="string"||!t[r]&&!i[r]||!$3(o,RH))return null}return e}const wne=Object.create(null);function yct(n,e){return{provider:n,prefix:e,icons:Object.create(null),missing:new Set}}function Cw(n,e){const t=wne[n]||(wne[n]=Object.create(null));return t[e]||(t[e]=yct(n,e))}function wme(n,e){return Cme(e)?bme(e,(t,i)=>{i?n.icons[t]=i:n.missing.add(t)}):[]}function Sct(n,e,t){try{if(typeof t.body=="string")return n.icons[e]={...t},!0}catch{}return!1}let qk=!1;function yme(n){return typeof n=="boolean"&&(qk=n),qk}function xct(n){const e=typeof n=="string"?DO(n,!0,qk):n;if(e){const t=Cw(e.provider,e.prefix),i=e.name;return t.icons[i]||(t.missing.has(i)?null:void 0)}}function Lct(n,e){const t=DO(n,!0,qk);if(!t)return!1;const i=Cw(t.provider,t.prefix);return e?Sct(i,t.name,e):(i.missing.add(t.name),!0)}function kct(n,e){if(typeof n!="object")return!1;if(typeof e!="string"&&(e=n.provider||""),qk&&!e&&!n.prefix){let s=!1;return Cme(n)&&(n.prefix="",bme(n,(o,r)=>{Lct(o,r)&&(s=!0)})),s}const t=n.prefix;if(!ZN({prefix:t,name:"a"}))return!1;const i=Cw(e,t);return!!wme(i,n)}const Dct=Object.freeze({width:null,height:null}),Ict=Object.freeze({...Dct,...MR});""+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);const MH=Object.create(null);function Ect(n,e){MH[n]=e}function PH(n){return MH[n]||MH[""]}function gj(n){let e;if(typeof n.resources=="string")e=[n.resources];else if(e=n.resources,!(e instanceof Array)||!e.length)return null;return{resources:e,path:n.path||"/",maxURL:n.maxURL||500,rotate:n.rotate||750,timeout:n.timeout||5e3,random:n.random===!0,index:n.index||0,dataAfterTimeout:n.dataAfterTimeout!==!1}}const pj=Object.create(null),aS=["https://api.simplesvg.com","https://api.unisvg.com"],YN=[];for(;aS.length>0;)aS.length===1||Math.random()>.5?YN.push(aS.shift()):YN.push(aS.pop());pj[""]=gj({resources:["https://api.iconify.design"].concat(YN)});function OH(n,e){const t=gj(e);return t===null?!1:(pj[n]=t,!0)}function mj(n){return pj[n]}const Tct=()=>{let n;try{if(n=fetch,typeof n=="function")return n}catch{}};let yne=Tct();function Nct(n,e){const t=mj(n);if(!t)return 0;let i;if(!t.maxURL)i=0;else{let s=0;t.resources.forEach(r=>{s=Math.max(s,r.length)});const o=e+".json?icons=";i=t.maxURL-s-t.path.length-o.length}return i}function Act(n){return n===404}const Rct=(n,e,t)=>{const i=[],s=Nct(n,e),o="icons";let r={type:o,provider:n,prefix:e,icons:[]},a=0;return t.forEach((l,c)=>{a+=l.length+1,a>=s&&c>0&&(i.push(r),r={type:o,provider:n,prefix:e,icons:[]},a=l.length),r.icons.push(l)}),i.push(r),i};function Mct(n){if(typeof n=="string"){const e=mj(n);if(e)return e.path}return"/"}const Pct=(n,e,t)=>{if(!yne){t("abort",424);return}let i=Mct(e.provider);switch(e.type){case"icons":{const o=e.prefix,a=e.icons.join(","),l=new URLSearchParams({icons:a});i+=o+".json?"+l.toString();break}case"custom":{const o=e.uri;i+=o.slice(0,1)==="/"?o.slice(1):o;break}default:t("abort",400);return}let s=503;yne(n+i).then(o=>{const r=o.status;if(r!==200){setTimeout(()=>{t(Act(r)?"abort":"next",r)});return}return s=501,o.json()}).then(o=>{if(typeof o!="object"||o===null){setTimeout(()=>{o===404?t("abort",o):t("next",s)});return}setTimeout(()=>{t("success",o)})}).catch(()=>{t("next",s)})},Oct={prepare:Rct,send:Pct};function Fct(n){const e={loaded:[],missing:[],pending:[]},t=Object.create(null);n.sort((s,o)=>s.provider!==o.provider?s.provider.localeCompare(o.provider):s.prefix!==o.prefix?s.prefix.localeCompare(o.prefix):s.name.localeCompare(o.name));let i={provider:"",prefix:"",name:""};return n.forEach(s=>{if(i.name===s.name&&i.prefix===s.prefix&&i.provider===s.provider)return;i=s;const o=s.provider,r=s.prefix,a=s.name,l=t[o]||(t[o]=Object.create(null)),c=l[r]||(l[r]=Cw(o,r));let d;a in c.icons?d=e.loaded:r===""||c.missing.has(a)?d=e.missing:d=e.pending;const u={provider:o,prefix:r,name:a};d.push(u)}),e}function Sme(n,e){n.forEach(t=>{const i=t.loaderCallbacks;i&&(t.loaderCallbacks=i.filter(s=>s.id!==e))})}function Bct(n){n.pendingCallbacksFlag||(n.pendingCallbacksFlag=!0,setTimeout(()=>{n.pendingCallbacksFlag=!1;const e=n.loaderCallbacks?n.loaderCallbacks.slice(0):[];if(!e.length)return;let t=!1;const i=n.provider,s=n.prefix;e.forEach(o=>{const r=o.icons,a=r.pending.length;r.pending=r.pending.filter(l=>{if(l.prefix!==s)return!0;const c=l.name;if(n.icons[c])r.loaded.push({provider:i,prefix:s,name:c});else if(n.missing.has(c))r.missing.push({provider:i,prefix:s,name:c});else return t=!0,!0;return!1}),r.pending.length!==a&&(t||Sme([n],o.id),o.callback(r.loaded.slice(0),r.missing.slice(0),r.pending.slice(0),o.abort))})}))}let Wct=0;function Hct(n,e,t){const i=Wct++,s=Sme.bind(null,t,i);if(!e.pending.length)return s;const o={id:i,icons:e,callback:n,abort:s};return t.forEach(r=>{(r.loaderCallbacks||(r.loaderCallbacks=[])).push(o)}),s}function Vct(n,e=!0,t=!1){const i=[];return n.forEach(s=>{const o=typeof s=="string"?DO(s,e,t):s;o&&i.push(o)}),i}var zct={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function $ct(n,e,t,i){const s=n.resources.length,o=n.random?Math.floor(Math.random()*s):n.index;let r;if(n.random){let k=n.resources.slice(0);for(r=[];k.length>1;){const D=Math.floor(Math.random()*k.length);r.push(k[D]),k=k.slice(0,D).concat(k.slice(D+1))}r=r.concat(k)}else r=n.resources.slice(o).concat(n.resources.slice(0,o));const a=Date.now();let l="pending",c=0,d,u=null,h=[],f=[];typeof i=="function"&&f.push(i);function g(){u&&(clearTimeout(u),u=null)}function p(){l==="pending"&&(l="aborted"),g(),h.forEach(k=>{k.status==="pending"&&(k.status="aborted")}),h=[]}function _(k,D){D&&(f=[]),typeof k=="function"&&f.push(k)}function b(){return{startTime:a,payload:e,status:l,queriesSent:c,queriesPending:h.length,subscribe:_,abort:p}}function w(){l="failed",f.forEach(k=>{k(void 0,d)})}function y(){h.forEach(k=>{k.status==="pending"&&(k.status="aborted")}),h=[]}function S(k,D,I){const N=D!=="success";switch(h=h.filter(P=>P!==k),l){case"pending":break;case"failed":if(N||!n.dataAfterTimeout)return;break;default:return}if(D==="abort"){d=I,w();return}if(N){d=I,h.length||(r.length?x():w());return}if(g(),y(),!n.random){const P=n.resources.indexOf(k.resource);P!==-1&&P!==n.index&&(n.index=P)}l="completed",f.forEach(P=>{P(I)})}function x(){if(l!=="pending")return;g();const k=r.shift();if(k===void 0){if(h.length){u=setTimeout(()=>{g(),l==="pending"&&(y(),w())},n.timeout);return}w();return}const D={status:"pending",resource:k,callback:(I,N)=>{S(D,I,N)}};h.push(D),c++,u=setTimeout(x,n.rotate),t(k,e,D.callback)}return setTimeout(x),b}function xme(n){const e={...zct,...n};let t=[];function i(){t=t.filter(a=>a().status==="pending")}function s(a,l,c){const d=$ct(e,a,l,(u,h)=>{i(),c&&c(u,h)});return t.push(d),d}function o(a){return t.find(l=>a(l))||null}return{query:s,find:o,setIndex:a=>{e.index=a},getIndex:()=>e.index,cleanup:i}}function Sne(){}const U3=Object.create(null);function Uct(n){if(!U3[n]){const e=mj(n);if(!e)return;const t=xme(e),i={config:e,redundancy:t};U3[n]=i}return U3[n]}function jct(n,e,t){let i,s;if(typeof n=="string"){const o=PH(n);if(!o)return t(void 0,424),Sne;s=o.send;const r=Uct(n);r&&(i=r.redundancy)}else{const o=gj(n);if(o){i=xme(o);const r=n.resources?n.resources[0]:"",a=PH(r);a&&(s=a.send)}}return!i||!s?(t(void 0,424),Sne):i.query(e,s,t)().abort}function xne(){}function Kct(n){n.iconsLoaderFlag||(n.iconsLoaderFlag=!0,setTimeout(()=>{n.iconsLoaderFlag=!1,Bct(n)}))}function qct(n){const e=[],t=[];return n.forEach(i=>{(i.match(_me)?e:t).push(i)}),{valid:e,invalid:t}}function lS(n,e,t){function i(){const s=n.pendingIcons;e.forEach(o=>{s&&s.delete(o),n.icons[o]||n.missing.add(o)})}if(t&&typeof t=="object")try{if(!wme(n,t).length){i();return}}catch(s){console.error(s)}i(),Kct(n)}function Lne(n,e){n instanceof Promise?n.then(t=>{e(t)}).catch(()=>{e(null)}):e(n)}function Gct(n,e){n.iconsToLoad?n.iconsToLoad=n.iconsToLoad.concat(e).sort():n.iconsToLoad=e,n.iconsQueueFlag||(n.iconsQueueFlag=!0,setTimeout(()=>{n.iconsQueueFlag=!1;const{provider:t,prefix:i}=n,s=n.iconsToLoad;if(delete n.iconsToLoad,!s||!s.length)return;const o=n.loadIcon;if(n.loadIcons&&(s.length>1||!o)){Lne(n.loadIcons(s,i,t),d=>{lS(n,s,d)});return}if(o){s.forEach(d=>{const u=o(d,i,t);Lne(u,h=>{const f=h?{prefix:i,icons:{[d]:h}}:null;lS(n,[d],f)})});return}const{valid:r,invalid:a}=qct(s);if(a.length&&lS(n,a,null),!r.length)return;const l=i.match(_me)?PH(t):null;if(!l){lS(n,r,null);return}l.prepare(t,i,r).forEach(d=>{jct(t,d,u=>{lS(n,d.icons,u)})})}))}const Zct=(n,e)=>{const t=Vct(n,!0,yme()),i=Fct(t);if(!i.pending.length){let l=!0;return e&&setTimeout(()=>{l&&e(i.loaded,i.missing,i.pending,xne)}),()=>{l=!1}}const s=Object.create(null),o=[];let r,a;return i.pending.forEach(l=>{const{provider:c,prefix:d}=l;if(d===a&&c===r)return;r=c,a=d,o.push(Cw(c,d));const u=s[c]||(s[c]=Object.create(null));u[d]||(u[d]=[])}),i.pending.forEach(l=>{const{provider:c,prefix:d,name:u}=l,h=Cw(c,d),f=h.pendingIcons||(h.pendingIcons=new Set);f.has(u)||(f.add(u),s[c][d].push(u))}),o.forEach(l=>{const c=s[l.provider][l.prefix];c.length&&Gct(l,c)}),e?Hct(e,i,o):xne},Yct=n=>new Promise((e,t)=>{const i=typeof n=="string"?DO(n,!0):n;if(!i){t(n);return}Zct([i||n],s=>{if(s.length&&i){const o=xct(i);if(o){e({...fj,...o});return}}t(n)})});({...Ict});const kne={backgroundColor:"currentColor"},Xct={backgroundColor:"transparent"},Dne={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},Ine={webkitMask:kne,mask:kne,background:Xct};for(const n in Ine){const e=Ine[n];for(const t in Dne)e[n+t]=Dne[t]}const j3={};["horizontal","vertical"].forEach(n=>{const e=n.slice(0,1)+"Flip";j3[n+"-flip"]=e,j3[n.slice(0,1)+"-flip"]=e,j3[n+"Flip"]=e});yme(!0);Ect("",Oct);if(typeof document<"u"&&typeof window<"u"){const n=window;if(n.IconifyPreload!==void 0){const e=n.IconifyPreload,t="Invalid IconifyPreload syntax.";typeof e=="object"&&e!==null&&(e instanceof Array?e:[e]).forEach(i=>{try{(typeof i!="object"||i===null||i instanceof Array||typeof i.icons!="object"||typeof i.prefix!="string"||!kct(i))&&console.error(t)}catch{console.error(t)}})}if(n.IconifyProviders!==void 0){const e=n.IconifyProviders;if(typeof e=="object"&&e!==null)for(let t in e){const i="IconifyProviders["+t+"] is invalid.";try{const s=e[t];if(typeof s!="object"||!s||s.resources===void 0)continue;OH(t,s)||console.error(i)}catch{console.error(i)}}}}({...fj});const Qct=["fluent-emoji-high-contrast","streamline-ultimate-color","streamline-freehand-color","streamline-kameleon-color","streamline-stickies-color","material-symbols-light","streamline-plump-color","streamline-sharp-color","streamline-cyber-color","streamline-flex-color","cryptocurrency-color","streamline-ultimate","streamline-freehand","material-icon-theme","icon-park-outline","icon-park-twotone","fluent-emoji-flat","emojione-monotone","streamline-emojis","heroicons-outline","simple-line-icons","material-symbols","streamline-plump","streamline-sharp","streamline-cyber","streamline-pixel","streamline-block","qlementine-icons","streamline-color","streamline-logos","flat-color-icons","icon-park-solid","pepicons-pencil","streamline-flex","heroicons-solid","pepicons-print","cryptocurrency","pixelarticons","bitcoin-icons","system-uicons","sidekickicons","devicon-plain","entypo-social","token-branded","grommet-icons","meteor-icons","svg-spinners","pepicons-pop","dinkie-icons","fluent-color","vscode-icons","simple-icons","circle-flags","medical-icon","icomoon-free","fluent-emoji","majesticons","humbleicons","rivet-icons","radix-icons","fa7-regular","skill-icons","emojione-v1","academicons","healthicons","fa6-regular","fluent-mdl2","lucide-lab","akar-icons","lets-icons","ant-design","gravity-ui","teenyicons","streamline","file-icons","catppuccin","fa7-brands","game-icons","foundation","fa6-brands","fa-regular","mono-icons","mdi-light","iconamoon","eos-icons","gridicons","duo-icons","hugeicons","lineicons","zondicons","heroicons","fa7-solid","icon-park","arcticons","meteocons","dashicons","fa6-solid","fa-brands","websymbol","fontelico","mingcute","flowbite","proicons","guidance","famicons","bytesize","marketeq","nonicons","brandico","openmoji","emojione","flagpack","fa-solid","fontisto","si-glyph","pepicons","line-md","iconoir","tdesign","formkit","clarity","octicon","pajamas","codicon","devicon","twemoji","noto-v1","fxemoji","raphael","flat-ui","topcoat","feather","tabler","mynaui","lucide","circum","carbon","lsicon","nimbus","fluent","memory","garden","entypo","icons8","subway","vaadin","solar","basil","pixel","typcn","prime","cuida","stash","charm","quill","codex","picon","logos","token","covid","weui","mage","maki","ooui","unjs","noto","flag","iwwa","gala","zmdi","bpmn","mdi","uil","bxs","uim","uit","uis","jam","ion","cil","uiw","oui","nrk","cib","bxl","cbi","cif","gis","map","geo","fad","eva","wpf","whh","ic","ri","si","bx","gg","ci","fe","mi","ep","bi","ph","ix","ei","f7","wi","la","fa","oi","et","el","ls","vs","il","ps"];function Jct(n=""){let e,t="";if(n[0]==="@"&&n.includes(":")&&(t=n.split(":")[0].slice(1),n=n.split(":").slice(1).join(":")),n.startsWith("i-")){n=n.replace(/^i-/,"");for(const i of Qct)if(n.startsWith(i)){e=i,n=n.slice(i.length+1);break}}else if(n.includes(":")){const[i,s]=n.split(":");e=i,n=s}return{provider:t,prefix:e||"",name:n||""}}const edt=kt({__name:"Icon",props:{name:{type:String,required:!0},size:{type:String,default:""}},async setup(n){let e,t;const i=In(),s=JR(),o=n;Dn(()=>{var _;return(_=s.nuxtIcon)==null?void 0:_.iconifyApiOptions},()=>{var _,b,w,y,S,x;if((b=(_=s.nuxtIcon)==null?void 0:_.iconifyApiOptions)!=null&&b.url){try{new URL(s.nuxtIcon.iconifyApiOptions.url)}catch{console.warn("Nuxt Icon: Invalid custom Iconify API URL");return}if((y=(w=s.nuxtIcon)==null?void 0:w.iconifyApiOptions)!=null&&y.publicApiFallback){OH("custom",{resources:[(S=s.nuxtIcon)==null?void 0:S.iconifyApiOptions.url],index:0});return}OH("",{resources:[(x=s.nuxtIcon)==null?void 0:x.iconifyApiOptions.url]})}},{immediate:!0});const r=Ew("icons",()=>({})),a=Ue(!1),l=ue(()=>{var _,b;return(b=(_=s.nuxtIcon)==null?void 0:_.aliases)!=null&&b[o.name]?s.nuxtIcon.aliases[o.name]:o.name}),c=ue(()=>Jct(l.value)),d=ue(()=>[c.value.provider,c.value.prefix,c.value.name].filter(Boolean).join(":")),u=ue(()=>{var _;return(_=r.value)==null?void 0:_[d.value]}),h=ue(()=>{var _;return(_=i.vueApp)==null?void 0:_.component(l.value)}),f=ue(()=>{var b,w,y;if(!o.size&&typeof((b=s.nuxtIcon)==null?void 0:b.size)=="boolean"&&!((w=s.nuxtIcon)!=null&&w.size))return;const _=o.size||((y=s.nuxtIcon)==null?void 0:y.size)||"1em";return String(Number(_))===_?`${_}px`:_}),g=ue(()=>{var _;return((_=s==null?void 0:s.nuxtIcon)==null?void 0:_.class)??"icon"});async function p(){var _;h.value||(_=r.value)!=null&&_[d.value]||(a.value=!0,r.value[d.value]=await Yct(c.value).catch(()=>{}),a.value=!1)}return Dn(l,p),!h.value&&([e,t]=cxe(()=>p()),e=await e,t()),(_,b)=>a.value?(fe(),Re("span",{key:0,class:st(g.value),style:Im({width:f.value,height:f.value})},null,6)):u.value?(fe(),jt(j(_ct),{key:1,icon:u.value,class:st(g.value),width:f.value,height:f.value},null,8,["icon","class","width","height"])):h.value?(fe(),jt(Em(h.value),{key:2,class:st(g.value),width:f.value,height:f.value},null,8,["class","width","height"])):(fe(),Re("span",{key:3,class:st(g.value),style:Im({fontSize:f.value,lineHeight:f.value,width:f.value,height:f.value})},[en(_.$slots,"default",{},()=>[at(Ni(n.name),1)],!0)],6))}}),Lme=Js(edt,[["__scopeId","data-v-e8d572f6"]]),tdt=Object.freeze(Object.defineProperty({__proto__:null,default:Lme},Symbol.toStringTag,{value:"Module"})),idt=kt({props:{name:{type:String,required:!0},dynamic:{type:Boolean,default:!1}},setup(n){const e=JR();return{dynamic:ue(()=>{var i,s;return n.dynamic||((s=(i=e.ui)==null?void 0:i.icons)==null?void 0:s.dynamic)})}}});function ndt(n,e,t,i,s,o){const r=Lme;return n.dynamic?(fe(),jt(r,{key:0,name:n.name},null,8,["name"])):(fe(),Re("span",{key:1,class:st(n.name)},null,2))}const ud=Js(idt,[["render",ndt]]);function _j({ui:n,props:e}){const t=pc();if(os("ButtonGroupContextConsumer",!0),Ui("ButtonGroupContextConsumer",!1))return{size:ue(()=>e.size),rounded:ue(()=>n.value.rounded)};let s=t.parent,o;for(;s&&!o;){if(s.type.name==="ButtonGroup"){o=Ui(`group-${s.uid}`);break}s=s.parent}const r=ue(()=>o==null?void 0:o.value.children.indexOf(t));return cn(()=>{o==null||o.value.register(t)}),uo(()=>{o==null||o.value.unregister(t)}),{size:ue(()=>(o==null?void 0:o.value.size)||e.size),rounded:ue(()=>!o||r.value===-1?n.value.rounded:o.value.children.length===1?o.value.ui.rounded:r.value===0?o.value.rounded.start:r.value===o.value.children.length-1?o.value.rounded.end:"rounded-none")}}const bf=ha(Pi.ui.strategy,Pi.ui.input,uj),sdt=kt({components:{UIcon:ud},inheritAttrs:!1,props:{modelValue:{type:[String,Number],default:""},type:{type:String,default:"text"},id:{type:String,default:null},name:{type:String,default:null},placeholder:{type:String,default:null},required:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},autofocusDelay:{type:Number,default:100},icon:{type:String,default:null},loadingIcon:{type:String,default:()=>bf.default.loadingIcon},leadingIcon:{type:String,default:null},trailingIcon:{type:String,default:null},trailing:{type:Boolean,default:!1},leading:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},padded:{type:Boolean,default:!0},size:{type:String,default:null,validator(n){return Object.keys(bf.size).includes(n)}},color:{type:String,default:()=>bf.default.color,validator(n){return[...Pi.ui.colors,...Object.keys(bf.color)].includes(n)}},variant:{type:String,default:()=>bf.default.variant,validator(n){return[...Object.keys(bf.variant),...Object.values(bf.color).flatMap(e=>Object.keys(e))].includes(n)}},inputClass:{type:String,default:null},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:()=>({})},modelModifiers:{type:Object,default:()=>({})}},emits:["update:modelValue","blur","change"],setup(n,{emit:e,slots:t}){const{ui:i,attrs:s}=Ua("input",Ps(n,"ui"),bf,Ps(n,"class")),{size:o,rounded:r}=_j({ui:i,props:n}),{emitFormBlur:a,emitFormInput:l,size:c,color:d,inputId:u,name:h}=aI(n,bf),f=ue(()=>o.value||c.value),g=Ue(nD({},n.modelModifiers,{trim:!1,lazy:!1,number:!1})),p=Ue(null),_=()=>{var K;n.autofocus&&((K=p.value)==null||K.focus())},b=K=>{g.value.trim&&(K=K.trim()),(g.value.number||n.type==="number")&&(K=Rre(K)),e("update:modelValue",K),l()},w=K=>{g.value.lazy||b(K.target.value)},y=K=>{const ae=K.target.value;e("change",ae),g.value.lazy&&b(ae),g.value.trim&&(K.target.value=ae.trim())},S=K=>{a(),e("blur",K)};cn(()=>{setTimeout(()=>{_()},n.autofocusDelay)});const x=ue(()=>{var ae,se;const K=((se=(ae=i.value.color)==null?void 0:ae[d.value])==null?void 0:se[n.variant])||i.value.variant[n.variant];return ac(Vn(i.value.base,i.value.form,r.value,i.value.placeholder,n.type==="file"&&[i.value.file.base,i.value.file.padding[f.value]],i.value.size[f.value],n.padded?i.value.padding[f.value]:"p-0",K==null?void 0:K.replaceAll("{color}",d.value),(k.value||t.leading)&&i.value.leading.padding[f.value],(D.value||t.trailing)&&i.value.trailing.padding[f.value]),n.inputClass)}),k=ue(()=>n.icon&&n.leading||n.icon&&!n.trailing||n.loading&&!n.trailing||n.leadingIcon),D=ue(()=>n.icon&&n.trailing||n.loading&&n.trailing||n.trailingIcon),I=ue(()=>n.loading?n.loadingIcon:n.leadingIcon||n.icon),N=ue(()=>n.loading&&!k.value?n.loadingIcon:n.trailingIcon||n.icon),P=ue(()=>Vn(i.value.icon.leading.wrapper,i.value.icon.leading.pointer,i.value.icon.leading.padding[f.value])),O=ue(()=>Vn(i.value.icon.base,d.value&&Pi.ui.colors.includes(d.value)&&i.value.icon.color.replaceAll("{color}",d.value),i.value.icon.size[f.value],n.loading&&i.value.icon.loading)),M=ue(()=>Vn(i.value.icon.trailing.wrapper,i.value.icon.trailing.pointer,i.value.icon.trailing.padding[f.value])),z=ue(()=>Vn(i.value.icon.base,d.value&&Pi.ui.colors.includes(d.value)&&i.value.icon.color.replaceAll("{color}",d.value),i.value.icon.size[f.value],n.loading&&!k.value&&i.value.icon.loading));return{ui:i,attrs:s,name:h,inputId:u,input:p,isLeading:k,isTrailing:D,inputClass:x,leadingIconName:I,leadingIconClass:O,leadingWrapperIconClass:P,trailingIconName:N,trailingIconClass:z,trailingWrapperIconClass:M,onInput:w,onChange:y,onBlur:S}}}),odt=["id","name","value","type","required","placeholder","disabled"];function rdt(n,e,t,i,s,o){const r=ud;return fe(),Re("div",{class:st(n.ui.wrapper)},[q("input",an({id:n.inputId,ref:"input",name:n.name,value:n.modelValue,type:n.type,required:n.required,placeholder:n.placeholder,disabled:n.disabled,class:n.inputClass},n.attrs,{onInput:e[0]||(e[0]=(...a)=>n.onInput&&n.onInput(...a)),onBlur:e[1]||(e[1]=(...a)=>n.onBlur&&n.onBlur(...a)),onChange:e[2]||(e[2]=(...a)=>n.onChange&&n.onChange(...a))}),null,16,odt),en(n.$slots,"default"),n.isLeading&&n.leadingIconName||n.$slots.leading?(fe(),Re("span",{key:0,class:st(n.leadingWrapperIconClass)},[en(n.$slots,"leading",{disabled:n.disabled,loading:n.loading},()=>[te(r,{name:n.leadingIconName,class:st(n.leadingIconClass)},null,8,["name","class"])])],2)):Bt("",!0),n.isTrailing&&n.trailingIconName||n.$slots.trailing?(fe(),Re("span",{key:1,class:st(n.trailingWrapperIconClass)},[en(n.$slots,"trailing",{disabled:n.disabled,loading:n.loading},()=>[te(r,{name:n.trailingIconName,class:st(n.trailingIconClass)},null,8,["name","class"])])],2)):Bt("",!0)],2)}const ub=Js(sdt,[["render",rdt]]),K3=ha(Pi.ui.strategy,Pi.ui.formGroup,Ilt),adt=kt({inheritAttrs:!1,props:{name:{type:String,default:null},size:{type:String,default:null,validator(n){return Object.keys(K3.size).includes(n)}},label:{type:String,default:null},description:{type:String,default:null},required:{type:Boolean,default:!1},help:{type:String,default:null},error:{type:[String,Boolean],default:null},hint:{type:String,default:null},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:()=>({})},eagerValidation:{type:Boolean,default:!1}},setup(n){const{ui:e,attrs:t}=Ua("formGroup",Ps(n,"ui"),K3,Ps(n,"class")),i=Ui("form-errors",null),s=ue(()=>{var a,l;return n.error&&typeof n.error=="string"||typeof n.error=="boolean"?n.error:(l=(a=i==null?void 0:i.value)==null?void 0:a.find(c=>c.path===n.name))==null?void 0:l.message}),o=ue(()=>e.value.size[n.size??K3.default.size]),r=Ue(j0());return os("form-group",{error:s,inputId:r,name:ue(()=>n.name),size:ue(()=>n.size),eagerValidation:ue(()=>n.eagerValidation)}),{ui:e,attrs:t,inputId:r,size:o,error:s}}}),ldt=["for"];function cdt(n,e,t,i,s,o){return fe(),Re("div",an({class:n.ui.wrapper},n.attrs),[q("div",{class:st(n.ui.inner)},[n.label||n.$slots.label?(fe(),Re("div",{key:0,class:st([n.ui.label.wrapper,n.size])},[q("label",{for:n.inputId,class:st([n.ui.label.base,n.required?n.ui.label.required:""])},[n.$slots.label?en(n.$slots,"label",Ef(an({key:0},{error:n.error,label:n.label,name:n.name,hint:n.hint,description:n.description,help:n.help}))):(fe(),Re(Bi,{key:1},[at(Ni(n.label),1)],64))],10,ldt),n.hint||n.$slots.hint?(fe(),Re("span",{key:0,class:st([n.ui.hint])},[n.$slots.hint?en(n.$slots,"hint",Ef(an({key:0},{error:n.error,label:n.label,name:n.name,hint:n.hint,description:n.description,help:n.help}))):(fe(),Re(Bi,{key:1},[at(Ni(n.hint),1)],64))],2)):Bt("",!0)],2)):Bt("",!0),n.description||n.$slots.description?(fe(),Re("p",{key:1,class:st([n.ui.description,n.size])},[n.$slots.description?en(n.$slots,"description",Ef(an({key:0},{error:n.error,label:n.label,name:n.name,hint:n.hint,description:n.description,help:n.help}))):(fe(),Re(Bi,{key:1},[at(Ni(n.description),1)],64))],2)):Bt("",!0)],2),q("div",{class:st([n.label?n.ui.container:""])},[en(n.$slots,"default",Ef(Zx({error:n.error}))),typeof n.error=="string"&&n.error||n.$slots.error?(fe(),Re("p",{key:0,class:st([n.ui.error,n.size])},[n.$slots.error?en(n.$slots,"error",Ef(an({key:0},{error:n.error,label:n.label,name:n.name,hint:n.hint,description:n.description,help:n.help}))):(fe(),Re(Bi,{key:1},[at(Ni(n.error),1)],64))],2)):n.help||n.$slots.help?(fe(),Re("p",{key:1,class:st([n.ui.help,n.size])},[n.$slots.help?en(n.$slots,"help",Ef(an({key:0},{error:n.error,label:n.label,name:n.name,hint:n.hint,description:n.description,help:n.help}))):(fe(),Re(Bi,{key:1},[at(Ni(n.help),1)],64))],2)):Bt("",!0)],2)],16)}const x_=Js(adt,[["render",cdt]]),ddt={class:"w-full flex justify-between items-center"},udt={class:"relative flex justify-start bg-inherit z-10"},hdt=["textContent"],kme=kt({__name:"Divider",props:{title:{type:String,required:!0}},setup(n){return(e,t)=>(fe(),Re("div",ddt,[q("div",udt,[q("span",{class:"pr-3 text-lg font-bold text-gray-900 dark:text-gray-100 whitespace-nowrap",textContent:Ni(n.title)},null,8,hdt)]),t[0]||(t[0]=q("div",{class:"w-full border-t-2 border-dashed border-gray-300 dark:border-gray-600"},null,-1))]))}});function Dme(n,e,t){let i=Ue(t==null?void 0:t.value),s=ue(()=>n.value!==void 0);return[ue(()=>s.value?n.value:i.value),function(o){return s.value||(i.value=o),e==null?void 0:e(o)}]}function vj(n){typeof queueMicrotask=="function"?queueMicrotask(n):Promise.resolve().then(n).catch(e=>setTimeout(()=>{throw e}))}function lI(){let n=[],e={addEventListener(t,i,s,o){return t.addEventListener(i,s,o),e.add(()=>t.removeEventListener(i,s,o))},requestAnimationFrame(...t){let i=requestAnimationFrame(...t);e.add(()=>cancelAnimationFrame(i))},nextFrame(...t){e.requestAnimationFrame(()=>{e.requestAnimationFrame(...t)})},setTimeout(...t){let i=setTimeout(...t);e.add(()=>clearTimeout(i))},microTask(...t){let i={current:!0};return vj(()=>{i.current&&t[0]()}),e.add(()=>{i.current=!1})},style(t,i,s){let o=t.style.getPropertyValue(i);return Object.assign(t.style,{[i]:s}),this.add(()=>{Object.assign(t.style,{[i]:o})})},group(t){let i=lI();return t(i),this.add(()=>i.dispose())},add(t){return n.push(t),()=>{let i=n.indexOf(t);if(i>=0)for(let s of n.splice(i,1))s()}},dispose(){for(let t of n.splice(0))t()}};return e}var Ene;let Ime=Symbol("headlessui.useid"),fdt=0;const ad=(Ene=j0)!=null?Ene:function(){return Ui(Ime,()=>`${++fdt}`)()};function bj(n){os(Ime,n)}function _i(n){var e;if(n==null||n.value==null)return null;let t=(e=n.value.$el)!=null?e:n.value;return t instanceof Node?t:null}function fc(n,e,...t){if(n in e){let s=e[n];return typeof s=="function"?s(...t):s}let i=new Error(`Tried to handle "${n}" but there is no handler defined. Only defined handlers are: ${Object.keys(e).map(s=>`"${s}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(i,fc),i}var gdt=Object.defineProperty,pdt=(n,e,t)=>e in n?gdt(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Tne=(n,e,t)=>(pdt(n,typeof e!="symbol"?e+"":e,t),t);let mdt=class{constructor(){Tne(this,"current",this.detect()),Tne(this,"currentId",0)}set(e){this.current!==e&&(this.currentId=0,this.current=e)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current==="server"}get isClient(){return this.current==="client"}detect(){return typeof window>"u"||typeof document>"u"?"server":"client"}},cI=new mdt;function Qd(n){if(cI.isServer)return null;if(n instanceof Node)return n.ownerDocument;if(n!=null&&n.hasOwnProperty("value")){let e=_i(n);if(e)return e.ownerDocument}return document}let FH=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map(n=>`${n}:not([tabindex='-1'])`).join(",");var hl=(n=>(n[n.First=1]="First",n[n.Previous=2]="Previous",n[n.Next=4]="Next",n[n.Last=8]="Last",n[n.WrapAround=16]="WrapAround",n[n.NoScroll=32]="NoScroll",n))(hl||{}),PR=(n=>(n[n.Error=0]="Error",n[n.Overflow=1]="Overflow",n[n.Success=2]="Success",n[n.Underflow=3]="Underflow",n))(PR||{}),_dt=(n=>(n[n.Previous=-1]="Previous",n[n.Next=1]="Next",n))(_dt||{});function Eme(n=document.body){return n==null?[]:Array.from(n.querySelectorAll(FH)).sort((e,t)=>Math.sign((e.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}var Cj=(n=>(n[n.Strict=0]="Strict",n[n.Loose=1]="Loose",n))(Cj||{});function wj(n,e=0){var t;return n===((t=Qd(n))==null?void 0:t.body)?!1:fc(e,{0(){return n.matches(FH)},1(){let i=n;for(;i!==null;){if(i.matches(FH))return!0;i=i.parentElement}return!1}})}function Tme(n){let e=Qd(n);Go(()=>{e&&!wj(e.activeElement,0)&&km(n)})}var vdt=(n=>(n[n.Keyboard=0]="Keyboard",n[n.Mouse=1]="Mouse",n))(vdt||{});typeof window<"u"&&typeof document<"u"&&(document.addEventListener("keydown",n=>{n.metaKey||n.altKey||n.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible="")},!0),document.addEventListener("click",n=>{n.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:n.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible="")},!0));function km(n){n==null||n.focus({preventScroll:!0})}let bdt=["textarea","input"].join(",");function Cdt(n){var e,t;return(t=(e=n==null?void 0:n.matches)==null?void 0:e.call(n,bdt))!=null?t:!1}function yj(n,e=t=>t){return n.slice().sort((t,i)=>{let s=e(t),o=e(i);if(s===null||o===null)return 0;let r=s.compareDocumentPosition(o);return r&Node.DOCUMENT_POSITION_FOLLOWING?-1:r&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function wdt(n,e){return t0(Eme(),e,{relativeTo:n})}function t0(n,e,{sorted:t=!0,relativeTo:i=null,skipElements:s=[]}={}){var o;let r=(o=Array.isArray(n)?n.length>0?n[0].ownerDocument:document:n==null?void 0:n.ownerDocument)!=null?o:document,a=Array.isArray(n)?t?yj(n):n:Eme(n);s.length>0&&a.length>1&&(a=a.filter(g=>!s.includes(g))),i=i??r.activeElement;let l=(()=>{if(e&5)return 1;if(e&10)return-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),c=(()=>{if(e&1)return 0;if(e&2)return Math.max(0,a.indexOf(i))-1;if(e&4)return Math.max(0,a.indexOf(i))+1;if(e&8)return a.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),d=e&32?{preventScroll:!0}:{},u=0,h=a.length,f;do{if(u>=h||u+h<=0)return 0;let g=c+u;if(e&16)g=(g+h)%h;else{if(g<0)return 3;if(g>=h)return 1}f=a[g],f==null||f.focus(d),u+=l}while(f!==r.activeElement);return e&6&&Cdt(f)&&f.select(),2}function Nme(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function ydt(){return/Android/gi.test(window.navigator.userAgent)}function Sdt(){return Nme()||ydt()}function XT(n,e,t){cI.isServer||Qo(i=>{document.addEventListener(n,e,t),i(()=>document.removeEventListener(n,e,t))})}function Ame(n,e,t){cI.isServer||Qo(i=>{window.addEventListener(n,e,t),i(()=>window.removeEventListener(n,e,t))})}function Rme(n,e,t=ue(()=>!0)){function i(o,r){if(!t.value||o.defaultPrevented)return;let a=r(o);if(a===null||!a.getRootNode().contains(a))return;let l=function c(d){return typeof d=="function"?c(d()):Array.isArray(d)||d instanceof Set?d:[d]}(n);for(let c of l){if(c===null)continue;let d=c instanceof HTMLElement?c:_i(c);if(d!=null&&d.contains(a)||o.composed&&o.composedPath().includes(d))return}return!wj(a,Cj.Loose)&&a.tabIndex!==-1&&o.preventDefault(),e(o,a)}let s=Ue(null);XT("pointerdown",o=>{var r,a;t.value&&(s.value=((a=(r=o.composedPath)==null?void 0:r.call(o))==null?void 0:a[0])||o.target)},!0),XT("mousedown",o=>{var r,a;t.value&&(s.value=((a=(r=o.composedPath)==null?void 0:r.call(o))==null?void 0:a[0])||o.target)},!0),XT("click",o=>{Sdt()||s.value&&(i(o,()=>s.value),s.value=null)},!0),XT("touchend",o=>i(o,()=>o.target instanceof HTMLElement?o.target:null),!0),Ame("blur",o=>i(o,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}function Nne(n,e){if(n)return n;let t=e??"button";if(typeof t=="string"&&t.toLowerCase()==="button")return"button"}function Sj(n,e){let t=Ue(Nne(n.value.type,n.value.as));return cn(()=>{t.value=Nne(n.value.type,n.value.as)}),Qo(()=>{var i;t.value||_i(e)&&_i(e)instanceof HTMLButtonElement&&!((i=_i(e))!=null&&i.hasAttribute("type"))&&(t.value="button")}),t}function Ane(n){return[n.screenX,n.screenY]}function xdt(){let n=Ue([-1,-1]);return{wasMoved(e){let t=Ane(e);return n.value[0]===t[0]&&n.value[1]===t[1]?!1:(n.value=t,!0)},update(e){n.value=Ane(e)}}}function Mme({container:n,accept:e,walk:t,enabled:i}){Qo(()=>{let s=n.value;if(!s||i!==void 0&&!i.value)return;let o=Qd(n);if(!o)return;let r=Object.assign(l=>e(l),{acceptNode:e}),a=o.createTreeWalker(s,NodeFilter.SHOW_ELEMENT,r,!1);for(;a.nextNode();)t(a.currentNode)})}var o_=(n=>(n[n.None=0]="None",n[n.RenderStrategy=1]="RenderStrategy",n[n.Static=2]="Static",n))(o_||{}),rm=(n=>(n[n.Unmount=0]="Unmount",n[n.Hidden=1]="Hidden",n))(rm||{});function Oo({visible:n=!0,features:e=0,ourProps:t,theirProps:i,...s}){var o;let r=Ome(i,t),a=Object.assign(s,{props:r});if(n||e&2&&r.static)return q3(a);if(e&1){let l=(o=r.unmount)==null||o?0:1;return fc(l,{0(){return null},1(){return q3({...s,props:{...r,hidden:!0,style:{display:"none"}}})}})}return q3(a)}function q3({props:n,attrs:e,slots:t,slot:i,name:s}){var o,r;let{as:a,...l}=IO(n,["unmount","static"]),c=(o=t.default)==null?void 0:o.call(t,i),d={};if(i){let u=!1,h=[];for(let[f,g]of Object.entries(i))typeof g=="boolean"&&(u=!0),g===!0&&h.push(f);u&&(d["data-headlessui-state"]=h.join(" "))}if(a==="template"){if(c=Pme(c??[]),Object.keys(l).length>0||Object.keys(e).length>0){let[u,...h]=c??[];if(!Ldt(u)||h.length>0)throw new Error(['Passing props on "template"!',"",`The current component <${s} /> is rendering a "template".`,"However we need to passthrough the following props:",Object.keys(l).concat(Object.keys(e)).map(p=>p.trim()).filter((p,_,b)=>b.indexOf(p)===_).sort((p,_)=>p.localeCompare(_)).map(p=>` - ${p}`).join(` `),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "template".',"Render a single element as the child so that we can forward the props onto that element."].map(p=>` - ${p}`).join(` `)].join(` `));let f=Ome((r=u.props)!=null?r:{},l,d),g=nd(u,f,!0);for(let p in f)p.startsWith("on")&&(g.props||(g.props={}),g.props[p]=f[p]);return g}return Array.isArray(c)&&c.length===1?c[0]:c}return $i(a,Object.assign({},l,d),{default:()=>c})}function Pme(n){return n.flatMap(e=>e.type===Bi?Pme(e.children):[e])}function Ome(...n){if(n.length===0)return{};if(n.length===1)return n[0];let e={},t={};for(let i of n)for(let s in i)s.startsWith("on")&&typeof i[s]=="function"?(t[s]!=null||(t[s]=[]),t[s].push(i[s])):e[s]=i[s];if(e.disabled||e["aria-disabled"])return Object.assign(e,Object.fromEntries(Object.keys(t).map(i=>[i,void 0])));for(let i in t)Object.assign(e,{[i](s,...o){let r=t[i];for(let a of r){if(s instanceof Event&&s.defaultPrevented)return;a(s,...o)}}});return e}function Fme(n){let e=Object.assign({},n);for(let t in e)e[t]===void 0&&delete e[t];return e}function IO(n,e=[]){let t=Object.assign({},n);for(let i of e)i in t&&delete t[i];return t}function Ldt(n){return n==null?!1:typeof n.type=="string"||typeof n.type=="object"||typeof n.type=="function"}var ww=(n=>(n[n.None=1]="None",n[n.Focusable=2]="Focusable",n[n.Hidden=4]="Hidden",n))(ww||{});let Gk=kt({name:"Hidden",props:{as:{type:[Object,String],default:"div"},features:{type:Number,default:1}},setup(n,{slots:e,attrs:t}){return()=>{var i;let{features:s,...o}=n,r={"aria-hidden":(s&2)===2?!0:(i=o["aria-hidden"])!=null?i:void 0,hidden:(s&4)===4?!0:void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(s&4)===4&&(s&2)!==2&&{display:"none"}}};return Oo({ourProps:r,theirProps:o,slot:{},attrs:t,slots:e,name:"Hidden"})}}}),Bme=Symbol("Context");var Co=(n=>(n[n.Open=1]="Open",n[n.Closed=2]="Closed",n[n.Closing=4]="Closing",n[n.Opening=8]="Opening",n))(Co||{});function kdt(){return dI()!==null}function dI(){return Ui(Bme,null)}function xj(n){os(Bme,n)}var Hn=(n=>(n.Space=" ",n.Enter="Enter",n.Escape="Escape",n.Backspace="Backspace",n.Delete="Delete",n.ArrowLeft="ArrowLeft",n.ArrowUp="ArrowUp",n.ArrowRight="ArrowRight",n.ArrowDown="ArrowDown",n.Home="Home",n.End="End",n.PageUp="PageUp",n.PageDown="PageDown",n.Tab="Tab",n))(Hn||{});function Ddt(n){function e(){document.readyState!=="loading"&&(n(),document.removeEventListener("DOMContentLoaded",e))}typeof window<"u"&&typeof document<"u"&&(document.addEventListener("DOMContentLoaded",e),e())}let yv=[];Ddt(()=>{function n(e){e.target instanceof HTMLElement&&e.target!==document.body&&yv[0]!==e.target&&(yv.unshift(e.target),yv=yv.filter(t=>t!=null&&t.isConnected),yv.splice(10))}window.addEventListener("click",n,{capture:!0}),window.addEventListener("mousedown",n,{capture:!0}),window.addEventListener("focus",n,{capture:!0}),document.body.addEventListener("click",n,{capture:!0}),document.body.addEventListener("mousedown",n,{capture:!0}),document.body.addEventListener("focus",n,{capture:!0})});function Idt(n){throw new Error("Unexpected object: "+n)}var tc=(n=>(n[n.First=0]="First",n[n.Previous=1]="Previous",n[n.Next=2]="Next",n[n.Last=3]="Last",n[n.Specific=4]="Specific",n[n.Nothing=5]="Nothing",n))(tc||{});function Edt(n,e){let t=e.resolveItems();if(t.length<=0)return null;let i=e.resolveActiveIndex(),s=i??-1;switch(n.focus){case 0:{for(let o=0;o=0;--o)if(!e.resolveDisabled(t[o],o,t))return o;return i}case 2:{for(let o=s+1;o=0;--o)if(!e.resolveDisabled(t[o],o,t))return o;return i}case 4:{for(let o=0;o{n=n??window,n.addEventListener(e,t,i),s(()=>n.removeEventListener(e,t,i))})}var jS=(n=>(n[n.Forwards=0]="Forwards",n[n.Backwards=1]="Backwards",n))(jS||{});function Tdt(){let n=Ue(0);return Ame("keydown",e=>{e.key==="Tab"&&(n.value=e.shiftKey?1:0)}),n}function Ume(n){if(!n)return new Set;if(typeof n=="function")return new Set(n());let e=new Set;for(let t of n.value){let i=_i(t);i instanceof HTMLElement&&e.add(i)}return e}var jme=(n=>(n[n.None=1]="None",n[n.InitialFocus=2]="InitialFocus",n[n.TabLock=4]="TabLock",n[n.FocusLock=8]="FocusLock",n[n.RestoreFocus=16]="RestoreFocus",n[n.All=30]="All",n))(jme||{});let cS=Object.assign(kt({name:"FocusTrap",props:{as:{type:[Object,String],default:"div"},initialFocus:{type:Object,default:null},features:{type:Number,default:30},containers:{type:[Object,Function],default:Ue(new Set)}},inheritAttrs:!1,setup(n,{attrs:e,slots:t,expose:i}){let s=Ue(null);i({el:s,$el:s});let o=ue(()=>Qd(s)),r=Ue(!1);cn(()=>r.value=!0),uo(()=>r.value=!1),Adt({ownerDocument:o},ue(()=>r.value&&!!(n.features&16)));let a=Rdt({ownerDocument:o,container:s,initialFocus:ue(()=>n.initialFocus)},ue(()=>r.value&&!!(n.features&2)));Mdt({ownerDocument:o,container:s,containers:n.containers,previousActiveElement:a},ue(()=>r.value&&!!(n.features&8)));let l=Tdt();function c(f){let g=_i(s);g&&(p=>p())(()=>{fc(l.value,{[jS.Forwards]:()=>{t0(g,hl.First,{skipElements:[f.relatedTarget]})},[jS.Backwards]:()=>{t0(g,hl.Last,{skipElements:[f.relatedTarget]})}})})}let d=Ue(!1);function u(f){f.key==="Tab"&&(d.value=!0,requestAnimationFrame(()=>{d.value=!1}))}function h(f){if(!r.value)return;let g=Ume(n.containers);_i(s)instanceof HTMLElement&&g.add(_i(s));let p=f.relatedTarget;p instanceof HTMLElement&&p.dataset.headlessuiFocusGuard!=="true"&&(Kme(g,p)||(d.value?t0(_i(s),fc(l.value,{[jS.Forwards]:()=>hl.Next,[jS.Backwards]:()=>hl.Previous})|hl.WrapAround,{relativeTo:f.target}):f.target instanceof HTMLElement&&km(f.target)))}return()=>{let f={},g={ref:s,onKeydown:u,onFocusout:h},{features:p,initialFocus:_,containers:b,...w}=n;return $i(Bi,[!!(p&4)&&$i(Gk,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:c,features:ww.Focusable}),Oo({ourProps:g,theirProps:{...e,...w},slot:f,attrs:e,slots:t,name:"FocusTrap"}),!!(p&4)&&$i(Gk,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:c,features:ww.Focusable})])}}}),{features:jme});function Ndt(n){let e=Ue(yv.slice());return Dn([n],([t],[i])=>{i===!0&&t===!1?vj(()=>{e.value.splice(0)}):i===!1&&t===!0&&(e.value=yv.slice())},{flush:"post"}),()=>{var t;return(t=e.value.find(i=>i!=null&&i.isConnected))!=null?t:null}}function Adt({ownerDocument:n},e){let t=Ndt(e);cn(()=>{Qo(()=>{var i,s;e.value||((i=n.value)==null?void 0:i.activeElement)===((s=n.value)==null?void 0:s.body)&&km(t())},{flush:"post"})}),uo(()=>{e.value&&km(t())})}function Rdt({ownerDocument:n,container:e,initialFocus:t},i){let s=Ue(null),o=Ue(!1);return cn(()=>o.value=!0),uo(()=>o.value=!1),cn(()=>{Dn([e,t,i],(r,a)=>{if(r.every((c,d)=>(a==null?void 0:a[d])===c)||!i.value)return;let l=_i(e);l&&vj(()=>{var c,d;if(!o.value)return;let u=_i(t),h=(c=n.value)==null?void 0:c.activeElement;if(u){if(u===h){s.value=h;return}}else if(l.contains(h)){s.value=h;return}u?km(u):t0(l,hl.First|hl.NoScroll)===PR.Error&&console.warn("There are no focusable elements inside the "),s.value=(d=n.value)==null?void 0:d.activeElement})},{immediate:!0,flush:"post"})}),s}function Mdt({ownerDocument:n,container:e,containers:t,previousActiveElement:i},s){var o;$me((o=n.value)==null?void 0:o.defaultView,"focus",r=>{if(!s.value)return;let a=Ume(t);_i(e)instanceof HTMLElement&&a.add(_i(e));let l=i.value;if(!l)return;let c=r.target;c&&c instanceof HTMLElement?Kme(a,c)?(i.value=c,km(c)):(r.preventDefault(),r.stopPropagation(),km(l)):km(i.value)},!0)}function Kme(n,e){for(let t of n)if(t.contains(e))return!0;return!1}function Pdt(n){let e=Sg(n.getSnapshot());return uo(n.subscribe(()=>{e.value=n.getSnapshot()})),e}function Odt(n,e){let t=n(),i=new Set;return{getSnapshot(){return t},subscribe(s){return i.add(s),()=>i.delete(s)},dispatch(s,...o){let r=e[s].call(t,...o);r&&(t=r,i.forEach(a=>a()))}}}function Fdt(){let n;return{before({doc:e}){var t;let i=e.documentElement;n=((t=e.defaultView)!=null?t:window).innerWidth-i.clientWidth},after({doc:e,d:t}){let i=e.documentElement,s=i.clientWidth-i.offsetWidth,o=n-s;t.style(i,"paddingRight",`${o}px`)}}}function Bdt(){return Nme()?{before({doc:n,d:e,meta:t}){function i(s){return t.containers.flatMap(o=>o()).some(o=>o.contains(s))}e.microTask(()=>{var s;if(window.getComputedStyle(n.documentElement).scrollBehavior!=="auto"){let a=lI();a.style(n.documentElement,"scrollBehavior","auto"),e.add(()=>e.microTask(()=>a.dispose()))}let o=(s=window.scrollY)!=null?s:window.pageYOffset,r=null;e.addEventListener(n,"click",a=>{if(a.target instanceof HTMLElement)try{let l=a.target.closest("a");if(!l)return;let{hash:c}=new URL(l.href),d=n.querySelector(c);d&&!i(d)&&(r=d)}catch{}},!0),e.addEventListener(n,"touchstart",a=>{if(a.target instanceof HTMLElement)if(i(a.target)){let l=a.target;for(;l.parentElement&&i(l.parentElement);)l=l.parentElement;e.style(l,"overscrollBehavior","contain")}else e.style(a.target,"touchAction","none")}),e.addEventListener(n,"touchmove",a=>{if(a.target instanceof HTMLElement){if(a.target.tagName==="INPUT")return;if(i(a.target)){let l=a.target;for(;l.parentElement&&l.dataset.headlessuiPortal!==""&&!(l.scrollHeight>l.clientHeight||l.scrollWidth>l.clientWidth);)l=l.parentElement;l.dataset.headlessuiPortal===""&&a.preventDefault()}else a.preventDefault()}},{passive:!1}),e.add(()=>{var a;let l=(a=window.scrollY)!=null?a:window.pageYOffset;o!==l&&window.scrollTo(0,o),r&&r.isConnected&&(r.scrollIntoView({block:"nearest"}),r=null)})})}}:{}}function Wdt(){return{before({doc:n,d:e}){e.style(n.documentElement,"overflow","hidden")}}}function Hdt(n){let e={};for(let t of n)Object.assign(e,t(e));return e}let Fv=Odt(()=>new Map,{PUSH(n,e){var t;let i=(t=this.get(n))!=null?t:{doc:n,count:0,d:lI(),meta:new Set};return i.count++,i.meta.add(e),this.set(n,i),this},POP(n,e){let t=this.get(n);return t&&(t.count--,t.meta.delete(e)),this},SCROLL_PREVENT({doc:n,d:e,meta:t}){let i={doc:n,d:e,meta:Hdt(t)},s=[Bdt(),Fdt(),Wdt()];s.forEach(({before:o})=>o==null?void 0:o(i)),s.forEach(({after:o})=>o==null?void 0:o(i))},SCROLL_ALLOW({d:n}){n.dispose()},TEARDOWN({doc:n}){this.delete(n)}});Fv.subscribe(()=>{let n=Fv.getSnapshot(),e=new Map;for(let[t]of n)e.set(t,t.documentElement.style.overflow);for(let t of n.values()){let i=e.get(t.doc)==="hidden",s=t.count!==0;(s&&!i||!s&&i)&&Fv.dispatch(t.count>0?"SCROLL_PREVENT":"SCROLL_ALLOW",t),t.count===0&&Fv.dispatch("TEARDOWN",t)}});function Vdt(n,e,t){let i=Pdt(Fv),s=ue(()=>{let o=n.value?i.value.get(n.value):void 0;return o?o.count>0:!1});return Dn([n,e],([o,r],[a],l)=>{if(!o||!r)return;Fv.dispatch("PUSH",o,t);let c=!1;l(()=>{c||(Fv.dispatch("POP",a??o,t),c=!0)})},{immediate:!0}),s}let G3=new Map,dS=new Map;function Rne(n,e=Ue(!0)){Qo(t=>{var i;if(!e.value)return;let s=_i(n);if(!s)return;t(function(){var r;if(!s)return;let a=(r=dS.get(s))!=null?r:1;if(a===1?dS.delete(s):dS.set(s,a-1),a!==1)return;let l=G3.get(s);l&&(l["aria-hidden"]===null?s.removeAttribute("aria-hidden"):s.setAttribute("aria-hidden",l["aria-hidden"]),s.inert=l.inert,G3.delete(s))});let o=(i=dS.get(s))!=null?i:0;dS.set(s,o+1),o===0&&(G3.set(s,{"aria-hidden":s.getAttribute("aria-hidden"),inert:s.inert}),s.setAttribute("aria-hidden","true"),s.inert=!0)})}function zdt({defaultContainers:n=[],portals:e,mainTreeNodeRef:t}={}){let i=Ue(null),s=Qd(i);function o(){var r,a,l;let c=[];for(let d of n)d!==null&&(d instanceof HTMLElement?c.push(d):"value"in d&&d.value instanceof HTMLElement&&c.push(d.value));if(e!=null&&e.value)for(let d of e.value)c.push(d);for(let d of(r=s==null?void 0:s.querySelectorAll("html > *, body > *"))!=null?r:[])d!==document.body&&d!==document.head&&d instanceof HTMLElement&&d.id!=="headlessui-portal-root"&&(d.contains(_i(i))||d.contains((l=(a=_i(i))==null?void 0:a.getRootNode())==null?void 0:l.host)||c.some(u=>d.contains(u))||c.push(d));return c}return{resolveContainers:o,contains(r){return o().some(a=>a.contains(r))},mainTreeNodeRef:i,MainTreeNode(){return t!=null?null:$i(Gk,{features:ww.Hidden,ref:i})}}}let qme=Symbol("ForcePortalRootContext");function $dt(){return Ui(qme,!1)}let Mne=kt({name:"ForcePortalRoot",props:{as:{type:[Object,String],default:"template"},force:{type:Boolean,default:!1}},setup(n,{slots:e,attrs:t}){return os(qme,n.force),()=>{let{force:i,...s}=n;return Oo({theirProps:s,ourProps:{},slot:{},slots:e,attrs:t,name:"ForcePortalRoot"})}}}),Gme=Symbol("StackContext");var BH=(n=>(n[n.Add=0]="Add",n[n.Remove=1]="Remove",n))(BH||{});function Udt(){return Ui(Gme,()=>{})}function jdt({type:n,enabled:e,element:t,onUpdate:i}){let s=Udt();function o(...r){i==null||i(...r),s(...r)}cn(()=>{Dn(e,(r,a)=>{r?o(0,n,t):a===!0&&o(1,n,t)},{immediate:!0,flush:"sync"})}),uo(()=>{e.value&&o(1,n,t)}),os(Gme,o)}let Kdt=Symbol("DescriptionContext");function Lj({slot:n=Ue({}),name:e="Description",props:t={}}={}){let i=Ue([]);function s(o){return i.value.push(o),()=>{let r=i.value.indexOf(o);r!==-1&&i.value.splice(r,1)}}return os(Kdt,{register:s,slot:n,name:e,props:t}),ue(()=>i.value.length>0?i.value.join(" "):void 0)}function qdt(n){let e=Qd(n);if(!e){if(n===null)return null;throw new Error(`[Headless UI]: Cannot find ownerDocument for contextElement: ${n}`)}let t=e.getElementById("headlessui-portal-root");if(t)return t;let i=e.createElement("div");return i.setAttribute("id","headlessui-portal-root"),e.body.appendChild(i)}const WH=new WeakMap;function Gdt(n){var e;return(e=WH.get(n))!=null?e:0}function Pne(n,e){let t=e(Gdt(n));return t<=0?WH.delete(n):WH.set(n,t),t}let Zdt=kt({name:"Portal",props:{as:{type:[Object,String],default:"div"}},setup(n,{slots:e,attrs:t}){let i=Ue(null),s=ue(()=>Qd(i)),o=$dt(),r=Ui(Zme,null),a=Ue(o===!0||r==null?qdt(i.value):r.resolveTarget());a.value&&Pne(a.value,h=>h+1);let l=Ue(!1);cn(()=>{l.value=!0}),Qo(()=>{o||r!=null&&(a.value=r.resolveTarget())});let c=Ui(HH,null),d=!1,u=pc();return Dn(i,()=>{if(d||!c)return;let h=_i(i);h&&(uo(c.register(h),u),d=!0)}),uo(()=>{var h,f;let g=(h=s.value)==null?void 0:h.getElementById("headlessui-portal-root");!g||a.value!==g||Pne(a.value,p=>p-1)||a.value.children.length>0||(f=a.value.parentElement)==null||f.removeChild(a.value)}),()=>{if(!l.value||a.value===null)return null;let h={ref:i,"data-headlessui-portal":""};return $i(Lse,{to:a.value},Oo({ourProps:h,theirProps:n,slot:{},attrs:t,slots:e,name:"Portal"}))}}}),HH=Symbol("PortalParentContext");function Ydt(){let n=Ui(HH,null),e=Ue([]);function t(o){return e.value.push(o),n&&n.register(o),()=>i(o)}function i(o){let r=e.value.indexOf(o);r!==-1&&e.value.splice(r,1),n&&n.unregister(o)}let s={register:t,unregister:i,portals:e};return[e,kt({name:"PortalWrapper",setup(o,{slots:r}){return os(HH,s),()=>{var a;return(a=r.default)==null?void 0:a.call(r)}}})]}let Zme=Symbol("PortalGroupContext"),Xdt=kt({name:"PortalGroup",props:{as:{type:[Object,String],default:"template"},target:{type:Object,default:null}},setup(n,{attrs:e,slots:t}){let i=Ba({resolveTarget(){return n.target}});return os(Zme,i),()=>{let{target:s,...o}=n;return Oo({theirProps:o,ourProps:{},slot:{},attrs:e,slots:t,name:"PortalGroup"})}}});var Qdt=(n=>(n[n.Open=0]="Open",n[n.Closed=1]="Closed",n))(Qdt||{});let VH=Symbol("DialogContext");function Yme(n){let e=Ui(VH,null);if(e===null){let t=new Error(`<${n} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,Yme),t}return e}let QT="DC8F892D-2EBD-447C-A4C8-A03058436FF4",Xme=kt({name:"Dialog",inheritAttrs:!1,props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},open:{type:[Boolean,String],default:QT},initialFocus:{type:Object,default:null},id:{type:String,default:null},role:{type:String,default:"dialog"}},emits:{close:n=>!0},setup(n,{emit:e,attrs:t,slots:i,expose:s}){var o,r;let a=(o=n.id)!=null?o:`headlessui-dialog-${ad()}`,l=Ue(!1);cn(()=>{l.value=!0});let c=!1,d=ue(()=>n.role==="dialog"||n.role==="alertdialog"?n.role:(c||(c=!0,console.warn(`Invalid role [${d}] passed to . Only \`dialog\` and and \`alertdialog\` are supported. Using \`dialog\` instead.`)),"dialog")),u=Ue(0),h=dI(),f=ue(()=>n.open===QT&&h!==null?(h.value&Co.Open)===Co.Open:n.open),g=Ue(null),p=ue(()=>Qd(g));if(s({el:g,$el:g}),!(n.open!==QT||h!==null))throw new Error("You forgot to provide an `open` prop to the `Dialog`.");if(typeof f.value!="boolean")throw new Error(`You provided an \`open\` prop to the \`Dialog\`, but the value is not a boolean. Received: ${f.value===QT?void 0:n.open}`);let _=ue(()=>l.value&&f.value?0:1),b=ue(()=>_.value===0),w=ue(()=>u.value>1),y=Ui(VH,null)!==null,[S,x]=Ydt(),{resolveContainers:k,mainTreeNodeRef:D,MainTreeNode:I}=zdt({portals:S,defaultContainers:[ue(()=>{var We;return(We=he.panelRef.value)!=null?We:g.value})]}),N=ue(()=>w.value?"parent":"leaf"),P=ue(()=>h!==null?(h.value&Co.Closing)===Co.Closing:!1),O=ue(()=>y||P.value?!1:b.value),M=ue(()=>{var We,Ve,Me;return(Me=Array.from((Ve=(We=p.value)==null?void 0:We.querySelectorAll("body > *"))!=null?Ve:[]).find(Zt=>Zt.id==="headlessui-portal-root"?!1:Zt.contains(_i(D))&&Zt instanceof HTMLElement))!=null?Me:null});Rne(M,O);let z=ue(()=>w.value?!0:b.value),K=ue(()=>{var We,Ve,Me;return(Me=Array.from((Ve=(We=p.value)==null?void 0:We.querySelectorAll("[data-headlessui-portal]"))!=null?Ve:[]).find(Zt=>Zt.contains(_i(D))&&Zt instanceof HTMLElement))!=null?Me:null});Rne(K,z),jdt({type:"Dialog",enabled:ue(()=>_.value===0),element:g,onUpdate:(We,Ve)=>{if(Ve==="Dialog")return fc(We,{[BH.Add]:()=>u.value+=1,[BH.Remove]:()=>u.value-=1})}});let ae=Lj({name:"DialogDescription",slot:ue(()=>({open:f.value}))}),se=Ue(null),he={titleId:se,panelRef:Ue(null),dialogState:_,setTitleId(We){se.value!==We&&(se.value=We)},close(){e("close",!1)}};os(VH,he);let me=ue(()=>!(!b.value||w.value));Rme(k,(We,Ve)=>{We.preventDefault(),he.close(),Go(()=>Ve==null?void 0:Ve.focus())},me);let De=ue(()=>!(w.value||_.value!==0));$me((r=p.value)==null?void 0:r.defaultView,"keydown",We=>{De.value&&(We.defaultPrevented||We.key===Hn.Escape&&(We.preventDefault(),We.stopPropagation(),he.close()))});let lt=ue(()=>!(P.value||_.value!==0||y));return Vdt(p,lt,We=>{var Ve;return{containers:[...(Ve=We.containers)!=null?Ve:[],k]}}),Qo(We=>{if(_.value!==0)return;let Ve=_i(g);if(!Ve)return;let Me=new ResizeObserver(Zt=>{for(let Oi of Zt){let ni=Oi.target.getBoundingClientRect();ni.x===0&&ni.y===0&&ni.width===0&&ni.height===0&&he.close()}});Me.observe(Ve),We(()=>Me.disconnect())}),()=>{let{open:We,initialFocus:Ve,...Me}=n,Zt={...t,ref:g,id:a,role:d.value,"aria-modal":_.value===0?!0:void 0,"aria-labelledby":se.value,"aria-describedby":ae.value},Oi={open:_.value===0};return $i(Mne,{force:!0},()=>[$i(Zdt,()=>$i(Xdt,{target:g.value},()=>$i(Mne,{force:!1},()=>$i(cS,{initialFocus:Ve,containers:k,features:b.value?fc(N.value,{parent:cS.features.RestoreFocus,leaf:cS.features.All&~cS.features.FocusLock}):cS.features.None},()=>$i(x,{},()=>Oo({ourProps:Zt,theirProps:{...Me,...t},slot:Oi,attrs:t,slots:i,visible:_.value===0,features:o_.RenderStrategy|o_.Static,name:"Dialog"})))))),$i(I)])}}}),Qme=kt({name:"DialogPanel",props:{as:{type:[Object,String],default:"div"},id:{type:String,default:null}},setup(n,{attrs:e,slots:t,expose:i}){var s;let o=(s=n.id)!=null?s:`headlessui-dialog-panel-${ad()}`,r=Yme("DialogPanel");i({el:r.panelRef,$el:r.panelRef});function a(l){l.stopPropagation()}return()=>{let{...l}=n,c={id:o,ref:r.panelRef,onClick:a};return Oo({ourProps:c,theirProps:l,slot:{open:r.dialogState.value===0},attrs:e,slots:t,name:"DialogPanel"})}}});var Jdt=(n=>(n[n.Open=0]="Open",n[n.Closed=1]="Closed",n))(Jdt||{});let Jme=Symbol("DisclosureContext");function kj(n){let e=Ui(Jme,null);if(e===null){let t=new Error(`<${n} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,kj),t}return e}let e_e=Symbol("DisclosurePanelContext");function eut(){return Ui(e_e,null)}let tut=kt({name:"Disclosure",props:{as:{type:[Object,String],default:"template"},defaultOpen:{type:[Boolean],default:!1}},setup(n,{slots:e,attrs:t}){let i=Ue(n.defaultOpen?0:1),s=Ue(null),o=Ue(null),r={buttonId:Ue(`headlessui-disclosure-button-${ad()}`),panelId:Ue(`headlessui-disclosure-panel-${ad()}`),disclosureState:i,panel:s,button:o,toggleDisclosure(){i.value=fc(i.value,{0:1,1:0})},closeDisclosure(){i.value!==1&&(i.value=1)},close(a){r.closeDisclosure();let l=a?a instanceof HTMLElement?a:a.value instanceof HTMLElement?_i(a):_i(r.button):_i(r.button);l==null||l.focus()}};return os(Jme,r),xj(ue(()=>fc(i.value,{0:Co.Open,1:Co.Closed}))),()=>{let{defaultOpen:a,...l}=n,c={open:i.value===0,close:r.close};return Oo({theirProps:l,ourProps:{},slot:c,slots:e,attrs:t,name:"Disclosure"})}}}),iut=kt({name:"DisclosureButton",props:{as:{type:[Object,String],default:"button"},disabled:{type:[Boolean],default:!1},id:{type:String,default:null}},setup(n,{attrs:e,slots:t,expose:i}){let s=kj("DisclosureButton"),o=eut(),r=ue(()=>o===null?!1:o.value===s.panelId.value);cn(()=>{r.value||n.id!==null&&(s.buttonId.value=n.id)}),uo(()=>{r.value||(s.buttonId.value=null)});let a=Ue(null);i({el:a,$el:a}),r.value||Qo(()=>{s.button.value=a.value});let l=Sj(ue(()=>({as:n.as,type:e.type})),a);function c(){var h;n.disabled||(r.value?(s.toggleDisclosure(),(h=_i(s.button))==null||h.focus()):s.toggleDisclosure())}function d(h){var f;if(!n.disabled)if(r.value)switch(h.key){case Hn.Space:case Hn.Enter:h.preventDefault(),h.stopPropagation(),s.toggleDisclosure(),(f=_i(s.button))==null||f.focus();break}else switch(h.key){case Hn.Space:case Hn.Enter:h.preventDefault(),h.stopPropagation(),s.toggleDisclosure();break}}function u(h){switch(h.key){case Hn.Space:h.preventDefault();break}}return()=>{var h;let f={open:s.disclosureState.value===0},{id:g,...p}=n,_=r.value?{ref:a,type:l.value,onClick:c,onKeydown:d}:{id:(h=s.buttonId.value)!=null?h:g,ref:a,type:l.value,"aria-expanded":s.disclosureState.value===0,"aria-controls":s.disclosureState.value===0||_i(s.panel)?s.panelId.value:void 0,disabled:n.disabled?!0:void 0,onClick:c,onKeydown:d,onKeyup:u};return Oo({ourProps:_,theirProps:p,slot:f,attrs:e,slots:t,name:"DisclosureButton"})}}}),nut=kt({name:"DisclosurePanel",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},id:{type:String,default:null}},setup(n,{attrs:e,slots:t,expose:i}){let s=kj("DisclosurePanel");cn(()=>{n.id!==null&&(s.panelId.value=n.id)}),uo(()=>{s.panelId.value=null}),i({el:s.panel,$el:s.panel}),os(e_e,s.panelId);let o=dI(),r=ue(()=>o!==null?(o.value&Co.Open)===Co.Open:s.disclosureState.value===0);return()=>{var a;let l={open:s.disclosureState.value===0,close:s.close},{id:c,...d}=n,u={id:(a=s.panelId.value)!=null?a:c,ref:s.panel};return Oo({ourProps:u,theirProps:d,slot:l,attrs:e,slots:t,features:o_.RenderStrategy|o_.Static,visible:r.value,name:"DisclosurePanel"})}}}),One=/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g;function Fne(n){var e,t;let i=(e=n.innerText)!=null?e:"",s=n.cloneNode(!0);if(!(s instanceof HTMLElement))return i;let o=!1;for(let a of s.querySelectorAll('[hidden],[aria-hidden],[role="img"]'))a.remove(),o=!0;let r=o?(t=s.innerText)!=null?t:"":i;return One.test(r)&&(r=r.replace(One,"")),r}function sut(n){let e=n.getAttribute("aria-label");if(typeof e=="string")return e.trim();let t=n.getAttribute("aria-labelledby");if(t){let i=t.split(" ").map(s=>{let o=document.getElementById(s);if(o){let r=o.getAttribute("aria-label");return typeof r=="string"?r.trim():Fne(o).trim()}return null}).filter(Boolean);if(i.length>0)return i.join(", ")}return Fne(n).trim()}function out(n){let e=Ue(""),t=Ue("");return()=>{let i=_i(n);if(!i)return"";let s=i.innerText;if(e.value===s)return t.value;let o=sut(i).trim().toLowerCase();return e.value=s,t.value=o,o}}var rut=(n=>(n[n.Open=0]="Open",n[n.Closed=1]="Closed",n))(rut||{}),aut=(n=>(n[n.Pointer=0]="Pointer",n[n.Other=1]="Other",n))(aut||{});function lut(n){requestAnimationFrame(()=>requestAnimationFrame(n))}let t_e=Symbol("MenuContext");function EO(n){let e=Ui(t_e,null);if(e===null){let t=new Error(`<${n} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,EO),t}return e}let cut=kt({name:"Menu",props:{as:{type:[Object,String],default:"template"}},setup(n,{slots:e,attrs:t}){let i=Ue(1),s=Ue(null),o=Ue(null),r=Ue([]),a=Ue(""),l=Ue(null),c=Ue(1);function d(h=f=>f){let f=l.value!==null?r.value[l.value]:null,g=yj(h(r.value.slice()),_=>_i(_.dataRef.domRef)),p=f?g.indexOf(f):null;return p===-1&&(p=null),{items:g,activeItemIndex:p}}let u={menuState:i,buttonRef:s,itemsRef:o,items:r,searchQuery:a,activeItemIndex:l,activationTrigger:c,closeMenu:()=>{i.value=1,l.value=null},openMenu:()=>i.value=0,goToItem(h,f,g){let p=d(),_=Edt(h===tc.Specific?{focus:tc.Specific,id:f}:{focus:h},{resolveItems:()=>p.items,resolveActiveIndex:()=>p.activeItemIndex,resolveId:b=>b.id,resolveDisabled:b=>b.dataRef.disabled});a.value="",l.value=_,c.value=g??1,r.value=p.items},search(h){let f=a.value!==""?0:1;a.value+=h.toLowerCase();let g=(l.value!==null?r.value.slice(l.value+f).concat(r.value.slice(0,l.value+f)):r.value).find(_=>_.dataRef.textValue.startsWith(a.value)&&!_.dataRef.disabled),p=g?r.value.indexOf(g):-1;p===-1||p===l.value||(l.value=p,c.value=1)},clearSearch(){a.value=""},registerItem(h,f){let g=d(p=>[...p,{id:h,dataRef:f}]);r.value=g.items,l.value=g.activeItemIndex,c.value=1},unregisterItem(h){let f=d(g=>{let p=g.findIndex(_=>_.id===h);return p!==-1&&g.splice(p,1),g});r.value=f.items,l.value=f.activeItemIndex,c.value=1}};return Rme([s,o],(h,f)=>{var g;u.closeMenu(),wj(f,Cj.Loose)||(h.preventDefault(),(g=_i(s))==null||g.focus())},ue(()=>i.value===0)),os(t_e,u),xj(ue(()=>fc(i.value,{0:Co.Open,1:Co.Closed}))),()=>{let h={open:i.value===0,close:u.closeMenu};return Oo({ourProps:{},theirProps:n,slot:h,slots:e,attrs:t,name:"Menu"})}}}),dut=kt({name:"MenuButton",props:{disabled:{type:Boolean,default:!1},as:{type:[Object,String],default:"button"},id:{type:String,default:null}},setup(n,{attrs:e,slots:t,expose:i}){var s;let o=(s=n.id)!=null?s:`headlessui-menu-button-${ad()}`,r=EO("MenuButton");i({el:r.buttonRef,$el:r.buttonRef});function a(u){switch(u.key){case Hn.Space:case Hn.Enter:case Hn.ArrowDown:u.preventDefault(),u.stopPropagation(),r.openMenu(),Go(()=>{var h;(h=_i(r.itemsRef))==null||h.focus({preventScroll:!0}),r.goToItem(tc.First)});break;case Hn.ArrowUp:u.preventDefault(),u.stopPropagation(),r.openMenu(),Go(()=>{var h;(h=_i(r.itemsRef))==null||h.focus({preventScroll:!0}),r.goToItem(tc.Last)});break}}function l(u){switch(u.key){case Hn.Space:u.preventDefault();break}}function c(u){n.disabled||(r.menuState.value===0?(r.closeMenu(),Go(()=>{var h;return(h=_i(r.buttonRef))==null?void 0:h.focus({preventScroll:!0})})):(u.preventDefault(),r.openMenu(),lut(()=>{var h;return(h=_i(r.itemsRef))==null?void 0:h.focus({preventScroll:!0})})))}let d=Sj(ue(()=>({as:n.as,type:e.type})),r.buttonRef);return()=>{var u;let h={open:r.menuState.value===0},{...f}=n,g={ref:r.buttonRef,id:o,type:d.value,"aria-haspopup":"menu","aria-controls":(u=_i(r.itemsRef))==null?void 0:u.id,"aria-expanded":r.menuState.value===0,onKeydown:a,onKeyup:l,onClick:c};return Oo({ourProps:g,theirProps:f,slot:h,attrs:e,slots:t,name:"MenuButton"})}}}),uut=kt({name:"MenuItems",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},id:{type:String,default:null}},setup(n,{attrs:e,slots:t,expose:i}){var s;let o=(s=n.id)!=null?s:`headlessui-menu-items-${ad()}`,r=EO("MenuItems"),a=Ue(null);i({el:r.itemsRef,$el:r.itemsRef}),Mme({container:ue(()=>_i(r.itemsRef)),enabled:ue(()=>r.menuState.value===0),accept(h){return h.getAttribute("role")==="menuitem"?NodeFilter.FILTER_REJECT:h.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(h){h.setAttribute("role","none")}});function l(h){var f;switch(a.value&&clearTimeout(a.value),h.key){case Hn.Space:if(r.searchQuery.value!=="")return h.preventDefault(),h.stopPropagation(),r.search(h.key);case Hn.Enter:if(h.preventDefault(),h.stopPropagation(),r.activeItemIndex.value!==null){let g=r.items.value[r.activeItemIndex.value];(f=_i(g.dataRef.domRef))==null||f.click()}r.closeMenu(),Tme(_i(r.buttonRef));break;case Hn.ArrowDown:return h.preventDefault(),h.stopPropagation(),r.goToItem(tc.Next);case Hn.ArrowUp:return h.preventDefault(),h.stopPropagation(),r.goToItem(tc.Previous);case Hn.Home:case Hn.PageUp:return h.preventDefault(),h.stopPropagation(),r.goToItem(tc.First);case Hn.End:case Hn.PageDown:return h.preventDefault(),h.stopPropagation(),r.goToItem(tc.Last);case Hn.Escape:h.preventDefault(),h.stopPropagation(),r.closeMenu(),Go(()=>{var g;return(g=_i(r.buttonRef))==null?void 0:g.focus({preventScroll:!0})});break;case Hn.Tab:h.preventDefault(),h.stopPropagation(),r.closeMenu(),Go(()=>wdt(_i(r.buttonRef),h.shiftKey?hl.Previous:hl.Next));break;default:h.key.length===1&&(r.search(h.key),a.value=setTimeout(()=>r.clearSearch(),350));break}}function c(h){switch(h.key){case Hn.Space:h.preventDefault();break}}let d=dI(),u=ue(()=>d!==null?(d.value&Co.Open)===Co.Open:r.menuState.value===0);return()=>{var h,f;let g={open:r.menuState.value===0},{...p}=n,_={"aria-activedescendant":r.activeItemIndex.value===null||(h=r.items.value[r.activeItemIndex.value])==null?void 0:h.id,"aria-labelledby":(f=_i(r.buttonRef))==null?void 0:f.id,id:o,onKeydown:l,onKeyup:c,role:"menu",tabIndex:0,ref:r.itemsRef};return Oo({ourProps:_,theirProps:p,slot:g,attrs:e,slots:t,features:o_.RenderStrategy|o_.Static,visible:u.value,name:"MenuItems"})}}}),Cf=kt({name:"MenuItem",inheritAttrs:!1,props:{as:{type:[Object,String],default:"template"},disabled:{type:Boolean,default:!1},id:{type:String,default:null}},setup(n,{slots:e,attrs:t,expose:i}){var s;let o=(s=n.id)!=null?s:`headlessui-menu-item-${ad()}`,r=EO("MenuItem"),a=Ue(null);i({el:a,$el:a});let l=ue(()=>r.activeItemIndex.value!==null?r.items.value[r.activeItemIndex.value].id===o:!1),c=out(a),d=ue(()=>({disabled:n.disabled,get textValue(){return c()},domRef:a}));cn(()=>r.registerItem(o,d)),uo(()=>r.unregisterItem(o)),Qo(()=>{r.menuState.value===0&&l.value&&r.activationTrigger.value!==0&&Go(()=>{var b,w;return(w=(b=_i(a))==null?void 0:b.scrollIntoView)==null?void 0:w.call(b,{block:"nearest"})})});function u(b){if(n.disabled)return b.preventDefault();r.closeMenu(),Tme(_i(r.buttonRef))}function h(){if(n.disabled)return r.goToItem(tc.Nothing);r.goToItem(tc.Specific,o)}let f=xdt();function g(b){f.update(b)}function p(b){f.wasMoved(b)&&(n.disabled||l.value||r.goToItem(tc.Specific,o,0))}function _(b){f.wasMoved(b)&&(n.disabled||l.value&&r.goToItem(tc.Nothing))}return()=>{let{disabled:b,...w}=n,y={active:l.value,disabled:b,close:r.closeMenu};return Oo({ourProps:{id:o,ref:a,role:"menuitem",tabIndex:b===!0?void 0:-1,"aria-disabled":b===!0?!0:void 0,onClick:u,onFocus:h,onPointerenter:g,onMouseenter:g,onPointermove:p,onMousemove:p,onPointerleave:_,onMouseleave:_},theirProps:{...t,...w},slot:y,attrs:t,slots:e,name:"MenuItem"})}}}),i_e=Symbol("LabelContext");function n_e(){let n=Ui(i_e,null);if(n===null){let e=new Error("You used a