From e92daf4a443d9c8d352f0988d324631d611f0693 Mon Sep 17 00:00:00 2001 From: joeljhou <45135095+joeljhou@users.noreply.github.com> Date: Sat, 23 Nov 2024 08:44:52 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20joeljhou?= =?UTF-8?q?/geekyspace@b5ee1d7d739a89859a811c0753efe31861831867=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 6 +- about-me.html | 6 +- article.html | 6 +- article/index.html | 42 +- assets/404.html-B4c5N_3j.js | 1 - assets/404.html-ZFwD13ZO.js | 1 + ...-G1SjDaP0.js => about-me.html-DyKiCIbZ.js} | 2 +- ...FvHj6ux.js => activation.html-FM9dqCkK.js} | 2 +- assets/app-D4YxrZp1.js | 572 ++++++++++++++++++ assets/app-DEQAvezK.js | 548 ----------------- ...l-DGTT2kv5.js => article.html-5XUpgMgj.js} | 2 +- ...I.js => beans-definition.html-BClLe20T.js} | 2 +- ...44.js => beans-lifecycle.html-CMfkGa1M.js} | 4 +- ...CQ0RMi.js => beans-scope.html-DfwPdZGz.js} | 2 +- ...ytecode-instructions-set.html-Dd9VSDMn.js} | 2 +- ...> child-bean-definitions.html-D0YKKbGO.js} | 2 +- ... => class-file-structure.html-CQtGh7k7.js} | 2 +- ... class-loading-mechanism.html-ClsEPkU2.js} | 2 +- assets/compile_jdk.html-CuOY2Vux.js | 1 + assets/compile_jdk.html-yVbXTmUu.js | 1 - ...h.js => factory-autowire.html-DNwdEACN.js} | 2 +- ...=> factory-collaborators.html-B-AQY3Sx.js} | 2 +- ....js => factory-dependson.html-2PuiI1Rs.js} | 2 +- ....js => factory-lazy-init.html-DtC9x7rD.js} | 2 +- ...factory-method-injection.html-DaoLvmhN.js} | 2 +- ...tory-properties-detailed.html-CiyahvTh.js} | 2 +- ...CB.js => getting-started.html-CYs9_Rhg.js} | 2 +- ...{giscus-Cp0VyIcS.js => giscus-BZxmVUME.js} | 16 +- ...U.js => heap-object-flow.html-Bv75HgsE.js} | 2 +- assets/index.html-0oapPSXw.js | 1 - ...tml-5Qqr2ej3.js => index.html-B-Vd3PeO.js} | 2 +- ...tml-B1KeEgIZ.js => index.html-B0qei7js.js} | 2 +- ...tml-t5NMxmOB.js => index.html-B2L8ddWm.js} | 2 +- assets/index.html-B4Qn2b8z.js | 1 + ...tml-BYex4hI-.js => index.html-B6CHXYcZ.js} | 2 +- ...tml-DlZvSC_6.js => index.html-BBl5Ntoj.js} | 2 +- ...tml-CQIoqJTq.js => index.html-BCfMOB5v.js} | 2 +- ...tml-DUUoBkTV.js => index.html-BEsvgm7T.js} | 2 +- ...tml-CQLSZ-hO.js => index.html-BKArgB3H.js} | 2 +- assets/index.html-BRBLT9lf.js | 1 + assets/index.html-BTYjuojO.js | 1 - ...tml-Cu4ZGExx.js => index.html-BTivNwrr.js} | 2 +- ...tml-B7kEvb-1.js => index.html-BV2Ph8rb.js} | 2 +- assets/index.html-BXdgxqX6.js | 1 + ...tml-C08IdNpC.js => index.html-BYNFIgGe.js} | 2 +- ...tml-mY_Zaaje.js => index.html-BZmzcsO9.js} | 2 +- ...tml-e1LtTbG6.js => index.html-B_sVzPVe.js} | 2 +- ...tml-DQHQYWFw.js => index.html-Bk-gk6Li.js} | 2 +- ...tml-BUiVXbHI.js => index.html-BlbiKRAL.js} | 2 +- assets/index.html-BokWreyc.js | 1 + assets/index.html-BqF5o5dk.js | 1 - assets/index.html-BtNwRVmA.js | 1 + assets/index.html-BvzC9znS.js | 1 - ...tml-Ixpv6i6G.js => index.html-BwUUCIUs.js} | 2 +- ...tml-D3FNl36H.js => index.html-C5gP0MAs.js} | 2 +- ...tml-CfDMyIRv.js => index.html-C5hcel2M.js} | 2 +- ...tml-6d4RI9DI.js => index.html-CAku76l8.js} | 2 +- ...tml-BCGBb96e.js => index.html-CBgLF4vh.js} | 2 +- assets/index.html-CE7dbDQQ.js | 1 + ...tml-BNEKZvQ5.js => index.html-CFgpfWFk.js} | 2 +- ...tml-DTvay8r2.js => index.html-CKpji476.js} | 2 +- ...tml-drXrcFVM.js => index.html-CQF50gPT.js} | 2 +- ...tml-YDZDDNsu.js => index.html-CQU0cxGB.js} | 2 +- ...tml-tvk28Pc4.js => index.html-CUCGi8Dj.js} | 2 +- ...tml-trZTRCes.js => index.html-Cal46E4Y.js} | 2 +- ...tml-UxqUv1z6.js => index.html-Cl8Pu_wH.js} | 2 +- assets/index.html-Cm9udQCz.js | 1 - ...tml-ClapL-Y4.js => index.html-Cxfnkkcf.js} | 2 +- assets/index.html-D-jYzNAb.js | 1 - ...tml-DSu4UIBB.js => index.html-D1AlEQS9.js} | 2 +- ...tml-DLWoIU3_.js => index.html-D1gQHkfj.js} | 2 +- assets/index.html-DAHlqlKt.js | 1 + assets/index.html-DCQvetP_.js | 1 + assets/index.html-DJ_TleDq.js | 1 - assets/index.html-DUXp9njl.js | 1 - assets/index.html-DVLh2RV-.js | 1 - ...tml-CK3T5DBC.js => index.html-D_hEz2X7.js} | 2 +- ...tml-DfVJyW2H.js => index.html-DdWdg-lM.js} | 2 +- assets/index.html-DdcBp9Y8.js | 1 - ...tml-BgVI08nG.js => index.html-Dghj8aF4.js} | 2 +- ...tml-CbUoXj5v.js => index.html-DtiLnK2x.js} | 2 +- assets/index.html-DvW-P4yX.js | 1 + assets/index.html-HrDQVjI3.js | 1 + ...tml-t7L97TbO.js => index.html-KZJ8rDSj.js} | 2 +- assets/index.html-Mv7qGsDO.js | 1 + assets/index.html-Q2YbiB1s.js | 1 - ...tml-CnzcrYLt.js => index.html-RWtXBEAC.js} | 2 +- assets/index.html-UuvRUUyQ.js | 1 - assets/index.html-_3ya-6Jy.js | 1 - ...tml-BCk59JJC.js => index.html-_T2E8sgD.js} | 2 +- ...tml-BQM13-Se.js => index.html-axyGG3oT.js} | 2 +- ...tml-D4AKTnUn.js => index.html-gfoWVC3U.js} | 2 +- assets/index.html-noDrE7EB.js | 1 + ...tml-DFtnNs6Y.js => index.html-pIOtEJ0h.js} | 2 +- ...tml-Dj-8jDLj.js => index.html-rgZEFMph.js} | 2 +- assets/index.html-uLsFslj8.js | 1 + ...l-D81QLwwM.js => install.html-v_HZpoQQ.js} | 2 +- ...E247.js => ioc-container.html-CxqNKagy.js} | 2 +- ...a19-new-features-summary.html-CxQfC58K.js} | 2 +- ...va20-new-features-summary.html--xcfDTx2.js | 1 + ...va20-new-features-summary.html-BGJS9dmi.js | 1 - ...yxX-.js => jep222-jshell.html-DRqZLEJr.js} | 2 +- ...-methods-for-collections.html-BylWvQOO.js} | 2 +- ...-variable-type-inference.html-DG5G3YaJ.js} | 2 +- ...p320-remove-JavaEE-CORBA.html-Df2km1Ka.js} | 2 +- ...ep361-switch-expressions.html-D2ISh1n_.js} | 2 +- ...=> jep371-hidden-classes.html-15ENWn1z.js} | 2 +- ...js => jep378-text-blocks.html-fz-yXi_D.js} | 2 +- ...-matching-for-instanceof.html-C1bHKx_C.js} | 2 +- ...pn4.js => jep395-records.html-D-omvLts.js} | 2 +- ...> jep400-utf8-by-default.html-DbQM-QjB.js} | 2 +- ...ching-for-switch-preview.html-B5tl6Bkn.js} | 2 +- ...jep408-simple-web-server.html-Bx0IMcBb.js} | 2 +- ...=> jep409-sealed-classes.html-YmNwBCzd.js} | 2 +- ...ets-in-api-documentation.html-BIMwUtq5.js} | 2 +- ... jep430-string-templates.html-2NkMt3ee.js} | 2 +- ...31-sequenced-collections.html-C5VyRdvF.js} | 2 +- ... jep439-generational-zgc.html-DPcBR0jo.js} | 2 +- ... jep440-record-partterns.html-CJpv8SdA.js} | 2 +- ...tern-matching-for-switch.html-EqgSTM1F.js} | 2 +- ...> jep444-virtual-threads.html-VSJj_4MR.js} | 2 +- ...s => mirror-acceleration.html-3RwdQvIU.js} | 2 +- ...-BU-vWj0V.js => overview.html-Be9rsIfk.js} | 2 +- ...-CU8c6Wb0.js => overview.html-C_dzkuQn.js} | 2 +- assets/photoswipe.esm-DJXFgkpe.js | 4 - assets/photoswipe.esm-GXRgw7eJ.js | 4 + ...A6dI2Ue.js => quickstart.html-D7rXQ7Tp.js} | 2 +- ...29eHU9h.js => quickstart.html-DjC_ivvA.js} | 2 +- ...js => runtime-data-areas.html-BffvU0YP.js} | 2 +- assets/top20-commands.html-ovQRG3Bf.js | 28 + ...indows-office-activation.html-CeGTlQZf.js} | 2 +- category/docker/index.html | 34 +- category/idea/index.html | 10 +- category/index.html | 8 +- category/java/index.html | 10 +- category/jvm/index.html | 10 +- category/spring-boot/index.html | 10 +- category/spring-data/index.html | 10 +- category/spring/index.html | 10 +- .../index.html" | 10 +- .../index.html" | 10 +- index.html | 42 +- md/docker/index.html | 8 +- md/docker/install.html | 8 +- md/docker/mirror-acceleration.html | 10 +- md/docker/overview.html | 8 +- md/docker/top20-commands.html | 75 +++ md/idea-tips/activation.html | 6 +- md/idea-tips/index.html | 6 +- md/index.html | 8 +- md/installation-guide/index.html | 6 +- md/installation-guide/os/index.html | 6 +- .../os/windows-office-activation.html | 6 +- md/java-features/Java10/index.html | 6 +- .../jep286-local-variable-type-inference.html | 6 +- md/java-features/Java11/index.html | 6 +- .../Java11/jep320-remove-JavaEE-CORBA.html | 6 +- md/java-features/Java14/index.html | 6 +- .../Java14/jep361-switch-expressions.html | 6 +- md/java-features/Java15/index.html | 6 +- .../Java15/jep371-hidden-classes.html | 6 +- .../Java15/jep378-text-blocks.html | 6 +- md/java-features/Java16/index.html | 6 +- ...ep394-pattern-matching-for-instanceof.html | 6 +- md/java-features/Java16/jep395-records.html | 6 +- md/java-features/Java17/index.html | 6 +- ...6-pattern-matching-for-switch-preview.html | 6 +- .../Java17/jep409-sealed-classes.html | 6 +- md/java-features/Java18/index.html | 6 +- .../Java18/jep400-utf8-by-default.html | 6 +- .../Java18/jep408-simple-web-server.html | 6 +- ...13-code-snippets-in-api-documentation.html | 6 +- md/java-features/Java19/index.html | 6 +- .../Java19/java19-new-features-summary.html | 6 +- md/java-features/Java20/index.html | 6 +- .../Java20/java20-new-features-summary.html | 6 +- md/java-features/Java21/index.html | 6 +- .../Java21/jep430-string-templates.html | 6 +- .../Java21/jep431-sequenced-collections.html | 6 +- .../Java21/jep439-generational-zgc.html | 6 +- .../Java21/jep440-record-partterns.html | 6 +- .../jep441-pattern-matching-for-switch.html | 6 +- .../Java21/jep444-virtual-threads.html | 6 +- md/java-features/Java9/index.html | 6 +- md/java-features/Java9/jep222-jshell.html | 6 +- ...ience-factory-methods-for-collections.html | 6 +- md/java-features/index.html | 6 +- md/jvm/index.html | 6 +- md/jvm/part1/compile_jdk.html | 6 +- md/jvm/part1/index.html | 6 +- md/jvm/part1/overview.html | 6 +- md/jvm/part2/heap-object-flow.html | 6 +- md/jvm/part2/index.html | 6 +- md/jvm/part2/runtime-data-areas.html | 6 +- md/jvm/part3/bytecode-instructions-set.html | 6 +- md/jvm/part3/class-file-structure.html | 6 +- md/jvm/part3/class-loading-mechanism.html | 6 +- md/jvm/part3/index.html | 6 +- md/spring-boot/index.html | 6 +- md/spring-boot/quickstart.html | 6 +- md/spring-data-jpa/index.html | 6 +- .../jetbrains/getting-started.html | 6 +- md/spring-data-jpa/jetbrains/index.html | 6 +- .../core/beans-definition.html | 6 +- md/spring-framework/core/beans-lifecycle.html | 6 +- md/spring-framework/core/beans-scope.html | 6 +- .../core/child-bean-definitions.html | 6 +- .../core/dependencies/factory-autowire.html | 6 +- .../dependencies/factory-collaborators.html | 6 +- .../core/dependencies/factory-dependson.html | 6 +- .../core/dependencies/factory-lazy-init.html | 6 +- .../factory-method-injection.html | 6 +- .../factory-properties-detailed.html | 6 +- .../core/dependencies/index.html | 6 +- md/spring-framework/core/index.html | 6 +- md/spring-framework/core/ioc-container.html | 6 +- md/spring-framework/index.html | 6 +- md/spring-framework/overview/index.html | 6 +- md/spring-framework/overview/quickstart.html | 6 +- rss.xml | 157 ++++- sitemap.xml | 2 +- star/index.html | 8 +- tag/docker/index.html | 34 +- tag/index.html | 8 +- tag/intellij-idea/index.html | 10 +- tag/java-features/index.html | 10 +- tag/jvm/index.html | 10 +- tag/office/index.html | 10 +- tag/spring-boot/index.html | 10 +- tag/spring-data-jpa/index.html | 10 +- tag/spring-framework/index.html | 10 +- tag/windows/index.html | 10 +- .../index.html" | 10 +- .../index.html" | 10 +- timeline/index.html | 8 +- 235 files changed, 1414 insertions(+), 1054 deletions(-) delete mode 100644 assets/404.html-B4c5N_3j.js create mode 100644 assets/404.html-ZFwD13ZO.js rename assets/{about-me.html-G1SjDaP0.js => about-me.html-DyKiCIbZ.js} (93%) rename assets/{activation.html-CFvHj6ux.js => activation.html-FM9dqCkK.js} (76%) create mode 100644 assets/app-D4YxrZp1.js delete mode 100644 assets/app-DEQAvezK.js rename assets/{article.html-DGTT2kv5.js => article.html-5XUpgMgj.js} (95%) rename assets/{beans-definition.html-BhsMiQFI.js => beans-definition.html-BClLe20T.js} (99%) rename assets/{beans-lifecycle.html-BWZwOy44.js => beans-lifecycle.html-CMfkGa1M.js} (99%) rename assets/{beans-scope.html-DoCQ0RMi.js => beans-scope.html-DfwPdZGz.js} (91%) rename assets/{bytecode-instructions-set.html-Btcebb6z.js => bytecode-instructions-set.html-Dd9VSDMn.js} (99%) rename assets/{child-bean-definitions.html-BBTq_xgy.js => child-bean-definitions.html-D0YKKbGO.js} (92%) rename assets/{class-file-structure.html-pF2HEyMV.js => class-file-structure.html-CQtGh7k7.js} (99%) rename assets/{class-loading-mechanism.html-CbaqBXam.js => class-loading-mechanism.html-ClsEPkU2.js} (71%) create mode 100644 assets/compile_jdk.html-CuOY2Vux.js delete mode 100644 assets/compile_jdk.html-yVbXTmUu.js rename assets/{factory-autowire.html-Sym3pdbh.js => factory-autowire.html-DNwdEACN.js} (98%) rename assets/{factory-collaborators.html-ChbjWSgd.js => factory-collaborators.html-B-AQY3Sx.js} (94%) rename assets/{factory-dependson.html-CkRFGpEK.js => factory-dependson.html-2PuiI1Rs.js} (78%) rename assets/{factory-lazy-init.html-2lWk7uM1.js => factory-lazy-init.html-DtC9x7rD.js} (85%) rename assets/{factory-method-injection.html--tlMm79L.js => factory-method-injection.html-DaoLvmhN.js} (97%) rename assets/{factory-properties-detailed.html-hXCYHIL9.js => factory-properties-detailed.html-CiyahvTh.js} (99%) rename assets/{getting-started.html-DydHBkCB.js => getting-started.html-CYs9_Rhg.js} (99%) rename assets/{giscus-Cp0VyIcS.js => giscus-BZxmVUME.js} (88%) rename assets/{heap-object-flow.html-wtcsnaMU.js => heap-object-flow.html-Bv75HgsE.js} (94%) delete mode 100644 assets/index.html-0oapPSXw.js rename assets/{index.html-5Qqr2ej3.js => index.html-B-Vd3PeO.js} (87%) rename assets/{index.html-B1KeEgIZ.js => index.html-B0qei7js.js} (87%) rename assets/{index.html-t5NMxmOB.js => index.html-B2L8ddWm.js} (87%) create mode 100644 assets/index.html-B4Qn2b8z.js rename assets/{index.html-BYex4hI-.js => index.html-B6CHXYcZ.js} (96%) rename assets/{index.html-DlZvSC_6.js => index.html-BBl5Ntoj.js} (87%) rename assets/{index.html-CQIoqJTq.js => index.html-BCfMOB5v.js} (97%) rename assets/{index.html-DUUoBkTV.js => index.html-BEsvgm7T.js} (98%) rename assets/{index.html-CQLSZ-hO.js => index.html-BKArgB3H.js} (87%) create mode 100644 assets/index.html-BRBLT9lf.js delete mode 100644 assets/index.html-BTYjuojO.js rename assets/{index.html-Cu4ZGExx.js => index.html-BTivNwrr.js} (88%) rename assets/{index.html-B7kEvb-1.js => index.html-BV2Ph8rb.js} (87%) create mode 100644 assets/index.html-BXdgxqX6.js rename assets/{index.html-C08IdNpC.js => index.html-BYNFIgGe.js} (87%) rename assets/{index.html-mY_Zaaje.js => index.html-BZmzcsO9.js} (87%) rename assets/{index.html-e1LtTbG6.js => index.html-B_sVzPVe.js} (88%) rename assets/{index.html-DQHQYWFw.js => index.html-Bk-gk6Li.js} (87%) rename assets/{index.html-BUiVXbHI.js => index.html-BlbiKRAL.js} (87%) create mode 100644 assets/index.html-BokWreyc.js delete mode 100644 assets/index.html-BqF5o5dk.js create mode 100644 assets/index.html-BtNwRVmA.js delete mode 100644 assets/index.html-BvzC9znS.js rename assets/{index.html-Ixpv6i6G.js => index.html-BwUUCIUs.js} (87%) rename assets/{index.html-D3FNl36H.js => index.html-C5gP0MAs.js} (88%) rename assets/{index.html-CfDMyIRv.js => index.html-C5hcel2M.js} (97%) rename assets/{index.html-6d4RI9DI.js => index.html-CAku76l8.js} (87%) rename assets/{index.html-BCGBb96e.js => index.html-CBgLF4vh.js} (87%) create mode 100644 assets/index.html-CE7dbDQQ.js rename assets/{index.html-BNEKZvQ5.js => index.html-CFgpfWFk.js} (95%) rename assets/{index.html-DTvay8r2.js => index.html-CKpji476.js} (88%) rename assets/{index.html-drXrcFVM.js => index.html-CQF50gPT.js} (87%) rename assets/{index.html-YDZDDNsu.js => index.html-CQU0cxGB.js} (87%) rename assets/{index.html-tvk28Pc4.js => index.html-CUCGi8Dj.js} (88%) rename assets/{index.html-trZTRCes.js => index.html-Cal46E4Y.js} (96%) rename assets/{index.html-UxqUv1z6.js => index.html-Cl8Pu_wH.js} (88%) delete mode 100644 assets/index.html-Cm9udQCz.js rename assets/{index.html-ClapL-Y4.js => index.html-Cxfnkkcf.js} (87%) delete mode 100644 assets/index.html-D-jYzNAb.js rename assets/{index.html-DSu4UIBB.js => index.html-D1AlEQS9.js} (87%) rename assets/{index.html-DLWoIU3_.js => index.html-D1gQHkfj.js} (87%) create mode 100644 assets/index.html-DAHlqlKt.js create mode 100644 assets/index.html-DCQvetP_.js delete mode 100644 assets/index.html-DJ_TleDq.js delete mode 100644 assets/index.html-DUXp9njl.js delete mode 100644 assets/index.html-DVLh2RV-.js rename assets/{index.html-CK3T5DBC.js => index.html-D_hEz2X7.js} (98%) rename assets/{index.html-DfVJyW2H.js => index.html-DdWdg-lM.js} (94%) delete mode 100644 assets/index.html-DdcBp9Y8.js rename assets/{index.html-BgVI08nG.js => index.html-Dghj8aF4.js} (88%) rename assets/{index.html-CbUoXj5v.js => index.html-DtiLnK2x.js} (87%) create mode 100644 assets/index.html-DvW-P4yX.js create mode 100644 assets/index.html-HrDQVjI3.js rename assets/{index.html-t7L97TbO.js => index.html-KZJ8rDSj.js} (88%) create mode 100644 assets/index.html-Mv7qGsDO.js delete mode 100644 assets/index.html-Q2YbiB1s.js rename assets/{index.html-CnzcrYLt.js => index.html-RWtXBEAC.js} (88%) delete mode 100644 assets/index.html-UuvRUUyQ.js delete mode 100644 assets/index.html-_3ya-6Jy.js rename assets/{index.html-BCk59JJC.js => index.html-_T2E8sgD.js} (88%) rename assets/{index.html-BQM13-Se.js => index.html-axyGG3oT.js} (87%) rename assets/{index.html-D4AKTnUn.js => index.html-gfoWVC3U.js} (87%) create mode 100644 assets/index.html-noDrE7EB.js rename assets/{index.html-DFtnNs6Y.js => index.html-pIOtEJ0h.js} (87%) rename assets/{index.html-Dj-8jDLj.js => index.html-rgZEFMph.js} (88%) create mode 100644 assets/index.html-uLsFslj8.js rename assets/{install.html-D81QLwwM.js => install.html-v_HZpoQQ.js} (93%) rename assets/{ioc-container.html-JYbdE247.js => ioc-container.html-CxqNKagy.js} (99%) rename assets/{java19-new-features-summary.html-4xRz2WHl.js => java19-new-features-summary.html-CxQfC58K.js} (97%) create mode 100644 assets/java20-new-features-summary.html--xcfDTx2.js delete mode 100644 assets/java20-new-features-summary.html-BGJS9dmi.js rename assets/{jep222-jshell.html-BFtuyxX-.js => jep222-jshell.html-DRqZLEJr.js} (97%) rename assets/{jep269-convenience-factory-methods-for-collections.html-BCurK5Km.js => jep269-convenience-factory-methods-for-collections.html-BylWvQOO.js} (99%) rename assets/{jep286-local-variable-type-inference.html-CyN9rhEZ.js => jep286-local-variable-type-inference.html-DG5G3YaJ.js} (85%) rename assets/{jep320-remove-JavaEE-CORBA.html-CLAxtEjp.js => jep320-remove-JavaEE-CORBA.html-Df2km1Ka.js} (97%) rename assets/{jep361-switch-expressions.html-syjCBB5q.js => jep361-switch-expressions.html-D2ISh1n_.js} (94%) rename assets/{jep371-hidden-classes.html-CwEAGY4I.js => jep371-hidden-classes.html-15ENWn1z.js} (92%) rename assets/{jep378-text-blocks.html-7P9j0FrV.js => jep378-text-blocks.html-fz-yXi_D.js} (94%) rename assets/{jep394-pattern-matching-for-instanceof.html-C8iKbFG-.js => jep394-pattern-matching-for-instanceof.html-C1bHKx_C.js} (91%) rename assets/{jep395-records.html-Dd7L9pn4.js => jep395-records.html-D-omvLts.js} (95%) rename assets/{jep400-utf8-by-default.html-xGHfrASn.js => jep400-utf8-by-default.html-DbQM-QjB.js} (99%) rename assets/{jep406-pattern-matching-for-switch-preview.html-DX6mbElq.js => jep406-pattern-matching-for-switch-preview.html-B5tl6Bkn.js} (95%) rename assets/{jep408-simple-web-server.html-DX5sV2y5.js => jep408-simple-web-server.html-Bx0IMcBb.js} (96%) rename assets/{jep409-sealed-classes.html-qHVgZD2X.js => jep409-sealed-classes.html-YmNwBCzd.js} (98%) rename assets/{jep413-code-snippets-in-api-documentation.html-CQ7WDSJl.js => jep413-code-snippets-in-api-documentation.html-BIMwUtq5.js} (88%) rename assets/{jep430-string-templates.html-i0kV3YCy.js => jep430-string-templates.html-2NkMt3ee.js} (96%) rename assets/{jep431-sequenced-collections.html-DB75RrGi.js => jep431-sequenced-collections.html-C5VyRdvF.js} (91%) rename assets/{jep439-generational-zgc.html-CIUPqJgW.js => jep439-generational-zgc.html-DPcBR0jo.js} (98%) rename assets/{jep440-record-partterns.html-CLh-2SXU.js => jep440-record-partterns.html-CJpv8SdA.js} (99%) rename assets/{jep441-pattern-matching-for-switch.html-DKdbhuhu.js => jep441-pattern-matching-for-switch.html-EqgSTM1F.js} (92%) rename assets/{jep444-virtual-threads.html-CDV-mPUf.js => jep444-virtual-threads.html-VSJj_4MR.js} (99%) rename assets/{mirror-acceleration.html-Dj-TI48Z.js => mirror-acceleration.html-3RwdQvIU.js} (83%) rename assets/{overview.html-BU-vWj0V.js => overview.html-Be9rsIfk.js} (96%) rename assets/{overview.html-CU8c6Wb0.js => overview.html-C_dzkuQn.js} (99%) delete mode 100644 assets/photoswipe.esm-DJXFgkpe.js create mode 100644 assets/photoswipe.esm-GXRgw7eJ.js rename assets/{quickstart.html-DA6dI2Ue.js => quickstart.html-D7rXQ7Tp.js} (99%) rename assets/{quickstart.html-B29eHU9h.js => quickstart.html-DjC_ivvA.js} (94%) rename assets/{runtime-data-areas.html-qwC4DXaI.js => runtime-data-areas.html-BffvU0YP.js} (97%) create mode 100644 assets/top20-commands.html-ovQRG3Bf.js rename assets/{windows-office-activation.html-Cx2o3Hf7.js => windows-office-activation.html-CeGTlQZf.js} (98%) create mode 100644 md/docker/top20-commands.html diff --git a/404.html b/404.html index 106acee7f..a3eba5382 100644 --- a/404.html +++ b/404.html @@ -38,11 +38,11 @@ })(); - - + +
跳至主要內容

404

页面不存在

看起来你访问了一个失效的链接

- + diff --git a/about-me.html b/about-me.html index 119c4879d..a74b153cc 100644 --- a/about-me.html +++ b/about-me.html @@ -38,11 +38,11 @@ })(); 个人简介 - - + +
跳至主要內容

个人简介

会敲代码的程序猿程序人生程序人生大约 2 分钟

个人简介 | 一个专注于技术分享的博客网站

欢迎访问我的博客网站 www.geekyspace.cn,与我一起探索科技的未来!

本博客维护人周宇,在Java和相关技术领域拥有多年的专业经验。 此前,我在深圳南山 Liquidoopen in new window 工作,这是一家专注于金融领域, 提供拉美地区支付解决方案open in new window的公司。

贴上“程序员”标签

  1. 个人兴趣:我从小就对工科方向的工作非常感兴趣,喜欢倒腾电子产品,研究它们的原理,拆了又装。
  2. 家庭影响:我有一个“伢伢”,比我大10多岁,他学的就是计算机,赚钱也多。 他毕业后在一家电商公司工作,后来被京东收购,之后去了高德,又被阿里收购。在它的影响下,我最终成为了一名程序员。

程序员的价值体现

做程序员是幸运的,世界的本质是价值交换。 作为程序员,我最大的成就感在于能否真正给别人带来价值。如果可以,那泰裤辣。 大环境没有那么差(给自己信心),这是程序员的时代!!!

  • 人生没有白走的路,每一步都算数(我要坚持坚持坚持)

我的程序员格言

  1. 编码原则:🥇 代码简洁高效,优雅永不过时 ✨
  2. 架构核心:🔧 掌握系统控制权,确保可扩展性和灵活性
  3. 技术理念:🌐 技术广度是技术深度的副产品
  4. 职业信仰:🚀 当坚持成为一种热爱,极致成为一种精神,那么成功就是一种必然
  5. 长期主义:⏳ 注重长远发展,坚持不懈地追求卓越
- + diff --git a/article.html b/article.html index 2aa165e70..f9f09444b 100644 --- a/article.html +++ b/article.html @@ -38,11 +38,11 @@ })(); 文库汇总 - - + +
跳至主要內容
文库汇总文库汇总

文库汇总

极客空间,一个专注于技术分享的博客网站✨

首页文章

RabbitMQ

高并发实战-RabbitMQ消息队列

JVM

深入理解Java虚拟机

Docker

Docker容器化最佳实践

K8S

Kubernetes云原生时代

MySQL

MySQL原理与SQL调优

Redis

Redis缓存高可用实战

Elasticsearch

Elasticsearch搜索引擎

Google Istio

Google Istio服务网格

- + diff --git a/article/index.html b/article/index.html index 8f1bd286e..a5ead1044 100644 --- a/article/index.html +++ b/article/index.html @@ -38,8 +38,8 @@ })(); 文章 - - + +
跳至主要內容
Top20常用命令
+

作为一款领先的容器化工具,Docker 提供了强大的功能,让开发者和运维人员能够快速构建、部署和管理应用。 +在这篇文章中,我们将介绍 20 条最常用的 Docker 命令,并结合详细说明,帮助大家轻松掌握 Docker 的基本操作。

+

会敲代码的程序猿原创大约 3 分钟DockerDocker
字节码指令集
-
-

字节码指令集是Java虚拟机(JVM)能理解和执行的低级指令集合。具体保存在Java类文件(.class)的方法区部分,由操作码和操作数组成。

-
-
    -
  • 操作码(Opcode): 一个字节长度的数字,代表某种特定操作
  • -
  • 操作数(Operands): 跟随操作码之后的零至多个参数,用于该操作所需的数据
  • -
-

由于JVM采用面向操作数栈而不是面向寄存器的架构,大多数指令都不包含操作数,只有一个操作码,指令参数存放在操作数栈中。


会敲代码的程序猿原创大约 9 分钟JVMJVM
- +
会敲代码的程序猿原创小于 1 分钟JVMJVM
+ diff --git a/assets/404.html-B4c5N_3j.js b/assets/404.html-B4c5N_3j.js deleted file mode 100644 index e0e94954b..000000000 --- a/assets/404.html-B4c5N_3j.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o,c as n,a as r}from"./app-DEQAvezK.js";const a={};function p(c,t){return o(),n("div",null,t[0]||(t[0]=[r("p",null,"404 Not Found",-1)]))}const i=e(a,[["render",p],["__file","404.html.vue"]]),m=JSON.parse('{"path":"/404.html","title":"","lang":"zh-CN","frontmatter":{"layout":"NotFound","description":"404 Not Found","head":[["meta",{"property":"og:url","content":"https://www.geekyspace.cn/404.html"}],["meta",{"property":"og:description","content":"404 Not Found"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"会敲代码的程序员"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"\\",\\"description\\":\\"404 Not Found\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0.01,"words":3},"filePathRelative":null,"excerpt":"

404 Not Found

\\n","autoDesc":true}');export{i as comp,m as data}; diff --git a/assets/404.html-ZFwD13ZO.js b/assets/404.html-ZFwD13ZO.js new file mode 100644 index 000000000..d04b6a127 --- /dev/null +++ b/assets/404.html-ZFwD13ZO.js @@ -0,0 +1 @@ +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,a as n,o as r}from"./app-D4YxrZp1.js";const a={};function p(c,t){return r(),o("div",null,t[0]||(t[0]=[n("p",null,"404 Not Found",-1)]))}const i=e(a,[["render",p],["__file","404.html.vue"]]),m=JSON.parse('{"path":"/404.html","title":"","lang":"zh-CN","frontmatter":{"layout":"NotFound","description":"404 Not Found","head":[["meta",{"property":"og:url","content":"https://www.geekyspace.cn/404.html"}],["meta",{"property":"og:description","content":"404 Not Found"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"会敲代码的程序员"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"\\",\\"description\\":\\"404 Not Found\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0.01,"words":3},"filePathRelative":null,"excerpt":"

404 Not Found

\\n","autoDesc":true}');export{i as comp,m as data}; diff --git a/assets/about-me.html-G1SjDaP0.js b/assets/about-me.html-DyKiCIbZ.js similarity index 93% rename from assets/about-me.html-G1SjDaP0.js rename to assets/about-me.html-DyKiCIbZ.js index 1d192e996..5c18df91b 100644 --- a/assets/about-me.html-G1SjDaP0.js +++ b/assets/about-me.html-DyKiCIbZ.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as l,a as t,b as o,d as n,r as p,e as s}from"./app-DEQAvezK.js";const m={},c={href:"https://www.liquido.com/",target:"_blank",rel:"noopener noreferrer"},d={href:"https://mp.weixin.qq.com/s/UzPsaVvXqrvW8T8PDPnhZw",target:"_blank",rel:"noopener noreferrer"};function g(u,e){const r=p("ExternalLinkIcon");return i(),l("div",null,[e[5]||(e[5]=t("h1",{id:"个人简介-一个专注于技术分享的博客网站",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#个人简介-一个专注于技术分享的博客网站"},[t("span",null,"个人简介 | 一个专注于技术分享的博客网站")])],-1)),e[6]||(e[6]=t("p",null,[o("欢迎访问我的博客网站 "),t("a",{href:"www.geekyspace.cn"},"www.geekyspace.cn"),o(",与我一起探索科技的未来!")],-1)),t("p",null,[e[2]||(e[2]=o("本博客维护人周宇,在Java和相关技术领域拥有多年的专业经验。 此前,我在深圳南山 ")),t("a",c,[e[0]||(e[0]=o("Liquido")),n(r)]),e[3]||(e[3]=o(" 工作,这是一家专注于金融领域, 提供拉美地区")),t("a",d,[e[1]||(e[1]=o("支付解决方案")),n(r)]),e[4]||(e[4]=o("的公司。"))]),e[7]||(e[7]=s("

贴上“程序员”标签

  1. 个人兴趣:我从小就对工科方向的工作非常感兴趣,喜欢倒腾电子产品,研究它们的原理,拆了又装。
  2. 家庭影响:我有一个“伢伢”,比我大10多岁,他学的就是计算机,赚钱也多。 他毕业后在一家电商公司工作,后来被京东收购,之后去了高德,又被阿里收购。在它的影响下,我最终成为了一名程序员。

程序员的价值体现

做程序员是幸运的,世界的本质是价值交换。 作为程序员,我最大的成就感在于能否真正给别人带来价值。如果可以,那泰裤辣。 大环境没有那么差(给自己信心),这是程序员的时代!!!

我的程序员格言

  1. 编码原则:🥇 代码简洁高效,优雅永不过时 ✨
  2. 架构核心:🔧 掌握系统控制权,确保可扩展性和灵活性
  3. 技术理念:🌐 技术广度是技术深度的副产品
  4. 职业信仰:🚀 当坚持成为一种热爱,极致成为一种精神,那么成功就是一种必然
  5. 长期主义:⏳ 注重长远发展,坚持不懈地追求卓越
",7))])}const f=a(m,[["render",g],["__file","about-me.html.vue"]]),y=JSON.parse('{"path":"/about-me.html","title":"个人简介","lang":"zh-CN","frontmatter":{"title":"个人简介","description":"一个专注于技术分享的博客网站","icon":"circle-info","author":"会敲代码的程序猿","isOriginal":false,"date":"1998-12-14T00:00:00.000Z","category":"程序人生","tag":"程序人生","sidebar":false,"head":[["meta",{"property":"og:url","content":"https://www.geekyspace.cn/about-me.html"}],["meta",{"property":"og:title","content":"个人简介"}],["meta",{"property":"og:description","content":"一个专注于技术分享的博客网站"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-14T08:35:37.000Z"}],["meta",{"property":"article:author","content":"会敲代码的程序猿"}],["meta",{"property":"article:tag","content":"程序人生"}],["meta",{"property":"article:published_time","content":"1998-12-14T00:00:00.000Z"}],["meta",{"property":"article:modified_time","content":"2024-08-14T08:35:37.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"个人简介\\",\\"image\\":[\\"\\"],\\"datePublished\\":\\"1998-12-14T00:00:00.000Z\\",\\"dateModified\\":\\"2024-08-14T08:35:37.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"会敲代码的程序猿\\"}]}"]]},"headers":[],"git":{"createdTime":1722181532000,"updatedTime":1723624537000,"contributors":[{"name":"joeljhou","email":"joeljhou336@gmail.com","commits":3}]},"readingTime":{"minutes":1.75,"words":525},"filePathRelative":"about-me.md","localizedDate":"1998年12月14日","excerpt":"\\n

欢迎访问我的博客网站 www.geekyspace.cn,与我一起探索科技的未来!

\\n

本博客维护人周宇,在Java和相关技术领域拥有多年的专业经验。\\n此前,我在深圳南山 Liquido 工作,这是一家专注于金融领域,\\n提供拉美地区支付解决方案的公司。

","copyright":{"author":"会敲代码的程序猿"}}');export{f as comp,y as data}; +import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as i,a as t,b as o,d as n,e as l,o as p,r as s}from"./app-D4YxrZp1.js";const m={},c={href:"https://www.liquido.com/",target:"_blank",rel:"noopener noreferrer"},d={href:"https://mp.weixin.qq.com/s/UzPsaVvXqrvW8T8PDPnhZw",target:"_blank",rel:"noopener noreferrer"};function g(u,e){const r=s("ExternalLinkIcon");return p(),i("div",null,[e[5]||(e[5]=t("h1",{id:"个人简介-一个专注于技术分享的博客网站",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#个人简介-一个专注于技术分享的博客网站"},[t("span",null,"个人简介 | 一个专注于技术分享的博客网站")])],-1)),e[6]||(e[6]=t("p",null,[o("欢迎访问我的博客网站 "),t("a",{href:"www.geekyspace.cn"},"www.geekyspace.cn"),o(",与我一起探索科技的未来!")],-1)),t("p",null,[e[2]||(e[2]=o("本博客维护人周宇,在Java和相关技术领域拥有多年的专业经验。 此前,我在深圳南山 ")),t("a",c,[e[0]||(e[0]=o("Liquido")),n(r)]),e[3]||(e[3]=o(" 工作,这是一家专注于金融领域, 提供拉美地区")),t("a",d,[e[1]||(e[1]=o("支付解决方案")),n(r)]),e[4]||(e[4]=o("的公司。"))]),e[7]||(e[7]=l("

贴上“程序员”标签

  1. 个人兴趣:我从小就对工科方向的工作非常感兴趣,喜欢倒腾电子产品,研究它们的原理,拆了又装。
  2. 家庭影响:我有一个“伢伢”,比我大10多岁,他学的就是计算机,赚钱也多。 他毕业后在一家电商公司工作,后来被京东收购,之后去了高德,又被阿里收购。在它的影响下,我最终成为了一名程序员。

程序员的价值体现

做程序员是幸运的,世界的本质是价值交换。 作为程序员,我最大的成就感在于能否真正给别人带来价值。如果可以,那泰裤辣。 大环境没有那么差(给自己信心),这是程序员的时代!!!

我的程序员格言

  1. 编码原则:🥇 代码简洁高效,优雅永不过时 ✨
  2. 架构核心:🔧 掌握系统控制权,确保可扩展性和灵活性
  3. 技术理念:🌐 技术广度是技术深度的副产品
  4. 职业信仰:🚀 当坚持成为一种热爱,极致成为一种精神,那么成功就是一种必然
  5. 长期主义:⏳ 注重长远发展,坚持不懈地追求卓越
",7))])}const f=a(m,[["render",g],["__file","about-me.html.vue"]]),y=JSON.parse('{"path":"/about-me.html","title":"个人简介","lang":"zh-CN","frontmatter":{"title":"个人简介","description":"一个专注于技术分享的博客网站","icon":"circle-info","author":"会敲代码的程序猿","isOriginal":false,"date":"1998-12-14T00:00:00.000Z","category":"程序人生","tag":"程序人生","sidebar":false,"head":[["meta",{"property":"og:url","content":"https://www.geekyspace.cn/about-me.html"}],["meta",{"property":"og:title","content":"个人简介"}],["meta",{"property":"og:description","content":"一个专注于技术分享的博客网站"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-14T08:35:37.000Z"}],["meta",{"property":"article:author","content":"会敲代码的程序猿"}],["meta",{"property":"article:tag","content":"程序人生"}],["meta",{"property":"article:published_time","content":"1998-12-14T00:00:00.000Z"}],["meta",{"property":"article:modified_time","content":"2024-08-14T08:35:37.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"个人简介\\",\\"image\\":[\\"\\"],\\"datePublished\\":\\"1998-12-14T00:00:00.000Z\\",\\"dateModified\\":\\"2024-08-14T08:35:37.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"会敲代码的程序猿\\"}]}"]]},"headers":[],"git":{"createdTime":1722181532000,"updatedTime":1723624537000,"contributors":[{"name":"joeljhou","email":"joeljhou336@gmail.com","commits":3}]},"readingTime":{"minutes":1.75,"words":525},"filePathRelative":"about-me.md","localizedDate":"1998年12月14日","excerpt":"\\n

欢迎访问我的博客网站 www.geekyspace.cn,与我一起探索科技的未来!

\\n

本博客维护人周宇,在Java和相关技术领域拥有多年的专业经验。\\n此前,我在深圳南山 Liquido 工作,这是一家专注于金融领域,\\n提供拉美地区支付解决方案的公司。

","copyright":{"author":"会敲代码的程序猿"}}');export{f as comp,y as data}; diff --git a/assets/activation.html-CFvHj6ux.js b/assets/activation.html-FM9dqCkK.js similarity index 76% rename from assets/activation.html-CFvHj6ux.js rename to assets/activation.html-FM9dqCkK.js index 8e562493a..f1d9e595d 100644 --- a/assets/activation.html-CFvHj6ux.js +++ b/assets/activation.html-FM9dqCkK.js @@ -1,4 +1,4 @@ -import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as c,c as l,e as i,a as t,b as n,d as s,r}from"./app-DEQAvezK.js";const p={},h={href:"https://h5.m.goofish.com/item?id=787912789834",target:"_blank",rel:"noopener noreferrer"},d={href:"https://h5.m.goofish.com/item?id=787912789834",target:"_blank",rel:"noopener noreferrer"};function m(u,e){const a=r("ExternalLinkIcon");return c(),l("div",null,[e[2]||(e[2]=i('

2024最新IntelliJ IDEA专业版稳定正版激活码

适用于Mac系统

仅支持官网专业版2020-2024的激活。不支持社区版 toolbox下载的IDEA。

1️⃣ 第一步:下载激活文件

',4)),t("p",null,[t("a",h,[e[0]||(e[0]=n("https://h5.m.goofish.com/item?id=787912789834")),s(a)])]),e[3]||(e[3]=i(`

2️⃣ 第二步:打开激活文件 macjihuo.zip,解压缩

3️⃣ 第三步:"macjihuo"文件夹上右键,新建终端窗口

macjihuo
macjihuo

4️⃣ 第三步:运行脚本,输入对应软件的命令-回车(看下图)

运行命令前:先打开你要激活的软件。然后关闭软件,最后输入命令激活软件哦。

如果你要激活idea:     则输入 sh idea.sh
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c,e as i,a as t,b as n,d as s,o as l,r}from"./app-D4YxrZp1.js";const p={},h={href:"https://h5.m.goofish.com/item?id=787912789834",target:"_blank",rel:"noopener noreferrer"},d={href:"https://h5.m.goofish.com/item?id=787912789834",target:"_blank",rel:"noopener noreferrer"};function m(u,e){const a=r("ExternalLinkIcon");return l(),c("div",null,[e[2]||(e[2]=i('

2024最新IntelliJ IDEA专业版稳定正版激活码

适用于Mac系统

仅支持官网专业版2020-2024的激活。不支持社区版 toolbox下载的IDEA。

1️⃣ 第一步:下载激活文件

',4)),t("p",null,[t("a",h,[e[0]||(e[0]=n("https://h5.m.goofish.com/item?id=787912789834")),s(a)])]),e[3]||(e[3]=i(`

2️⃣ 第二步:打开激活文件 macjihuo.zip,解压缩

3️⃣ 第三步:"macjihuo"文件夹上右键,新建终端窗口

macjihuo
macjihuo

4️⃣ 第三步:运行脚本,输入对应软件的命令-回车(看下图)

运行命令前:先打开你要激活的软件。然后关闭软件,最后输入命令激活软件哦。

如果你要激活idea:     则输入 sh idea.sh
 如果你要激活pycharm:  则输入 sh pycharm.sh
 如果你要激活datagrip: 则输入 sh datagrip.sh
 如果你要激活clion:    则输入 sh clion.sh
diff --git a/assets/app-D4YxrZp1.js b/assets/app-D4YxrZp1.js
new file mode 100644
index 000000000..bd59765a8
--- /dev/null
+++ b/assets/app-D4YxrZp1.js
@@ -0,0 +1,572 @@
+const __vite__fileDeps=["assets/index.html-BCfMOB5v.js","assets/plugin-vue_export-helper-DlAUqK2U.js","assets/about-me.html-DyKiCIbZ.js","assets/article.html-5XUpgMgj.js","assets/install.html-v_HZpoQQ.js","assets/mirror-acceleration.html-3RwdQvIU.js","assets/overview.html-Be9rsIfk.js","assets/top20-commands.html-ovQRG3Bf.js","assets/activation.html-FM9dqCkK.js","assets/index.html-BRBLT9lf.js","assets/index.html-BEsvgm7T.js","assets/index.html-D_hEz2X7.js","assets/index.html-DdWdg-lM.js","assets/quickstart.html-DjC_ivvA.js","assets/index.html-CFgpfWFk.js","assets/windows-office-activation.html-CeGTlQZf.js","assets/jep286-local-variable-type-inference.html-DG5G3YaJ.js","assets/jep320-remove-JavaEE-CORBA.html-Df2km1Ka.js","assets/jep361-switch-expressions.html-D2ISh1n_.js","assets/jep371-hidden-classes.html-15ENWn1z.js","assets/jep378-text-blocks.html-fz-yXi_D.js","assets/jep394-pattern-matching-for-instanceof.html-C1bHKx_C.js","assets/jep395-records.html-D-omvLts.js","assets/jep406-pattern-matching-for-switch-preview.html-B5tl6Bkn.js","assets/jep409-sealed-classes.html-YmNwBCzd.js","assets/jep400-utf8-by-default.html-DbQM-QjB.js","assets/jep408-simple-web-server.html-Bx0IMcBb.js","assets/jep413-code-snippets-in-api-documentation.html-BIMwUtq5.js","assets/java19-new-features-summary.html-CxQfC58K.js","assets/java20-new-features-summary.html--xcfDTx2.js","assets/jep430-string-templates.html-2NkMt3ee.js","assets/jep431-sequenced-collections.html-C5VyRdvF.js","assets/jep439-generational-zgc.html-DPcBR0jo.js","assets/jep440-record-partterns.html-CJpv8SdA.js","assets/jep441-pattern-matching-for-switch.html-EqgSTM1F.js","assets/jep444-virtual-threads.html-VSJj_4MR.js","assets/jep222-jshell.html-DRqZLEJr.js","assets/jep269-convenience-factory-methods-for-collections.html-BylWvQOO.js","assets/compile_jdk.html-CuOY2Vux.js","assets/overview.html-C_dzkuQn.js","assets/heap-object-flow.html-Bv75HgsE.js","assets/runtime-data-areas.html-BffvU0YP.js","assets/bytecode-instructions-set.html-Dd9VSDMn.js","assets/class-file-structure.html-CQtGh7k7.js","assets/class-loading-mechanism.html-ClsEPkU2.js","assets/getting-started.html-CYs9_Rhg.js","assets/index.html-C5hcel2M.js","assets/beans-definition.html-BClLe20T.js","assets/beans-lifecycle.html-CMfkGa1M.js","assets/beans-scope.html-DfwPdZGz.js","assets/child-bean-definitions.html-D0YKKbGO.js","assets/ioc-container.html-CxqNKagy.js","assets/index.html-B6CHXYcZ.js","assets/quickstart.html-D7rXQ7Tp.js","assets/index.html-Cal46E4Y.js","assets/factory-autowire.html-DNwdEACN.js","assets/factory-collaborators.html-B-AQY3Sx.js","assets/factory-dependson.html-2PuiI1Rs.js","assets/factory-lazy-init.html-DtC9x7rD.js","assets/factory-method-injection.html-DaoLvmhN.js","assets/factory-properties-detailed.html-CiyahvTh.js","assets/404.html-ZFwD13ZO.js","assets/index.html-Mv7qGsDO.js","assets/index.html-HrDQVjI3.js","assets/index.html-CQF50gPT.js","assets/index.html-BtNwRVmA.js","assets/index.html-B0qei7js.js","assets/index.html-B-Vd3PeO.js","assets/index.html-BZmzcsO9.js","assets/index.html-Bk-gk6Li.js","assets/index.html-CAku76l8.js","assets/index.html-BKArgB3H.js","assets/index.html-gfoWVC3U.js","assets/index.html-BV2Ph8rb.js","assets/index.html-BBl5Ntoj.js","assets/index.html-CQU0cxGB.js","assets/index.html-CBgLF4vh.js","assets/index.html-BYNFIgGe.js","assets/index.html-DtiLnK2x.js","assets/index.html-BwUUCIUs.js","assets/index.html-BlbiKRAL.js","assets/index.html-pIOtEJ0h.js","assets/index.html-B4Qn2b8z.js","assets/index.html-noDrE7EB.js","assets/index.html-BXdgxqX6.js","assets/index.html-C5gP0MAs.js","assets/index.html-DAHlqlKt.js","assets/index.html-RWtXBEAC.js","assets/index.html-BokWreyc.js","assets/index.html-uLsFslj8.js","assets/index.html-BTivNwrr.js","assets/index.html-Cl8Pu_wH.js","assets/index.html-B2L8ddWm.js","assets/index.html-B_sVzPVe.js","assets/index.html-DvW-P4yX.js","assets/index.html-Dghj8aF4.js","assets/index.html-_T2E8sgD.js","assets/index.html-CUCGi8Dj.js","assets/index.html-Cxfnkkcf.js","assets/index.html-CE7dbDQQ.js","assets/index.html-CKpji476.js","assets/index.html-DCQvetP_.js","assets/index.html-rgZEFMph.js","assets/index.html-KZJ8rDSj.js","assets/index.html-D1gQHkfj.js","assets/index.html-D1AlEQS9.js","assets/index.html-axyGG3oT.js"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]);
+/**
+* @vue/shared v3.5.13
+* (c) 2018-present Yuxi (Evan) You and Vue contributors
+* @license MIT
+**//*! #__NO_SIDE_EFFECTS__ */function Wo(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const xe={},On=[],Pt=()=>{},Fu=()=>!1,Da=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Go=e=>e.startsWith("onUpdate:"),De=Object.assign,Ko=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Nu=Object.prototype.hasOwnProperty,de=(e,t)=>Nu.call(e,t),ne=Array.isArray,ca=e=>xr(e)==="[object Map]",Vu=e=>xr(e)==="[object Set]",ae=e=>typeof e=="function",Re=e=>typeof e=="string",Yn=e=>typeof e=="symbol",Ae=e=>e!==null&&typeof e=="object",mi=e=>(Ae(e)||ae(e))&&ae(e.then)&&ae(e.catch),Hu=Object.prototype.toString,xr=e=>Hu.call(e),zu=e=>xr(e).slice(8,-1),qu=e=>xr(e)==="[object Object]",Yo=e=>Re(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Mn=Wo(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Sr=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Uu=/-(\w)/g,Qe=Sr(e=>e.replace(Uu,(t,n)=>n?n.toUpperCase():"")),Wu=/\B([A-Z])/g,wn=Sr(e=>e.replace(Wu,"-$1").toLowerCase()),Oa=Sr(e=>e.charAt(0).toUpperCase()+e.slice(1)),Nr=Sr(e=>e?`on${Oa(e)}`:""),tn=(e,t)=>!Object.is(e,t),Vr=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:a,value:n})},Gu=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Ku=e=>{const t=Re(e)?Number(e):NaN;return isNaN(t)?e:t};let Hs;const Tr=()=>Hs||(Hs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Xo(e){if(ne(e)){const t={};for(let n=0;n{if(n){const a=n.split(Xu);a.length>1&&(t[a[0].trim()]=a[1].trim())}}),t}function Qo(e){let t="";if(Re(e))t=e;else if(ne(e))for(let n=0;n0)return;if(pa){let t=pa;for(pa=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;ua;){let t=ua;for(ua=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(a){e||(e=a)}t=n}}if(e)throw e}function Ei(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function xi(e){let t,n=e.depsTail,a=n;for(;a;){const r=a.prevDep;a.version===-1?(a===n&&(n=r),ts(a),r2(a)):t=a,a.dep.activeLink=a.prevActiveLink,a.prevActiveLink=void 0,a=r}e.deps=t,e.depsTail=n}function bo(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Si(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Si(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===ya))return;e.globalVersion=ya;const t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&e.deps&&!bo(e)){e.flags&=-3;return}const n=Ee,a=kt;Ee=e,kt=!0;try{Ei(e);const r=e.fn(e._value);(t.version===0||tn(r,e._value))&&(e._value=r,t.version++)}catch(r){throw t.version++,r}finally{Ee=n,kt=a,xi(e),e.flags&=-3}}function ts(e,t=!1){const{dep:n,prevSub:a,nextSub:r}=e;if(a&&(a.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=a,e.nextSub=void 0),n.subs===e&&(n.subs=a,!a&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)ts(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function r2(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let kt=!0;const Ti=[];function an(){Ti.push(kt),kt=!1}function rn(){const e=Ti.pop();kt=e===void 0?!0:e}function zs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Ee;Ee=void 0;try{t()}finally{Ee=n}}}let ya=0;class o2{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Cr{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(t){if(!Ee||!kt||Ee===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Ee)n=this.activeLink=new o2(Ee,this),Ee.deps?(n.prevDep=Ee.depsTail,Ee.depsTail.nextDep=n,Ee.depsTail=n):Ee.deps=Ee.depsTail=n,Ci(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const a=n.nextDep;a.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=a),n.prevDep=Ee.depsTail,n.nextDep=void 0,Ee.depsTail.nextDep=n,Ee.depsTail=n,Ee.deps===n&&(Ee.deps=a)}return n}trigger(t){this.version++,ya++,this.notify(t)}notify(t){Zo();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{es()}}}function Ci(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let a=t.deps;a;a=a.nextDep)Ci(a)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const vr=new WeakMap,gn=Symbol(""),ko=Symbol(""),ba=Symbol("");function ze(e,t,n){if(kt&&Ee){let a=vr.get(e);a||vr.set(e,a=new Map);let r=a.get(n);r||(a.set(n,r=new Cr),r.map=a,r.key=n),r.track()}}function Ft(e,t,n,a,r,o){const s=vr.get(e);if(!s){ya++;return}const l=c=>{c&&c.trigger()};if(Zo(),t==="clear")s.forEach(l);else{const c=ne(e),u=c&&Yo(n);if(c&&n==="length"){const p=Number(a);s.forEach((d,f)=>{(f==="length"||f===ba||!Yn(f)&&f>=p)&&l(d)})}else switch((n!==void 0||s.has(void 0))&&l(s.get(n)),u&&l(s.get(ba)),t){case"add":c?u&&l(s.get("length")):(l(s.get(gn)),ca(e)&&l(s.get(ko)));break;case"delete":c||(l(s.get(gn)),ca(e)&&l(s.get(ko)));break;case"set":ca(e)&&l(s.get(gn));break}}es()}function s2(e,t){const n=vr.get(e);return n&&n.get(t)}function Tn(e){const t=ce(e);return t===e?t:(ze(t,"iterate",ba),wt(e)?t:t.map(We))}function ns(e){return ze(e=ce(e),"iterate",ba),e}const l2={__proto__:null,[Symbol.iterator](){return zr(this,Symbol.iterator,We)},concat(...e){return Tn(this).concat(...e.map(t=>ne(t)?Tn(t):t))},entries(){return zr(this,"entries",e=>(e[1]=We(e[1]),e))},every(e,t){return Rt(this,"every",e,t,void 0,arguments)},filter(e,t){return Rt(this,"filter",e,t,n=>n.map(We),arguments)},find(e,t){return Rt(this,"find",e,t,We,arguments)},findIndex(e,t){return Rt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Rt(this,"findLast",e,t,We,arguments)},findLastIndex(e,t){return Rt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Rt(this,"forEach",e,t,void 0,arguments)},includes(...e){return qr(this,"includes",e)},indexOf(...e){return qr(this,"indexOf",e)},join(e){return Tn(this).join(e)},lastIndexOf(...e){return qr(this,"lastIndexOf",e)},map(e,t){return Rt(this,"map",e,t,void 0,arguments)},pop(){return aa(this,"pop")},push(...e){return aa(this,"push",e)},reduce(e,...t){return qs(this,"reduce",e,t)},reduceRight(e,...t){return qs(this,"reduceRight",e,t)},shift(){return aa(this,"shift")},some(e,t){return Rt(this,"some",e,t,void 0,arguments)},splice(...e){return aa(this,"splice",e)},toReversed(){return Tn(this).toReversed()},toSorted(e){return Tn(this).toSorted(e)},toSpliced(...e){return Tn(this).toSpliced(...e)},unshift(...e){return aa(this,"unshift",e)},values(){return zr(this,"values",We)}};function zr(e,t,n){const a=ns(e),r=a[t]();return a!==e&&!wt(e)&&(r._next=r.next,r.next=()=>{const o=r._next();return o.value&&(o.value=n(o.value)),o}),r}const i2=Array.prototype;function Rt(e,t,n,a,r,o){const s=ns(e),l=s!==e&&!wt(e),c=s[t];if(c!==i2[t]){const d=c.apply(e,o);return l?We(d):d}let u=n;s!==e&&(l?u=function(d,f){return n.call(this,We(d),f,e)}:n.length>2&&(u=function(d,f){return n.call(this,d,f,e)}));const p=c.call(s,u,a);return l&&r?r(p):p}function qs(e,t,n,a){const r=ns(e);let o=n;return r!==e&&(wt(e)?n.length>3&&(o=function(s,l,c){return n.call(this,s,l,c,e)}):o=function(s,l,c){return n.call(this,s,We(l),c,e)}),r[t](o,...a)}function qr(e,t,n){const a=ce(e);ze(a,"iterate",ba);const r=a[t](...n);return(r===-1||r===!1)&&os(n[0])?(n[0]=ce(n[0]),a[t](...n)):r}function aa(e,t,n=[]){an(),Zo();const a=ce(e)[t].apply(e,n);return es(),rn(),a}const c2=Wo("__proto__,__v_isRef,__isVue"),Li=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Yn));function u2(e){Yn(e)||(e=String(e));const t=ce(this);return ze(t,"has",e),t.hasOwnProperty(e)}class Ai{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,a){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return o;if(n==="__v_raw")return a===(r?o?k2:Di:o?Pi:ji).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(a)?t:void 0;const s=ne(t);if(!r){let c;if(s&&(c=l2[n]))return c;if(n==="hasOwnProperty")return u2}const l=Reflect.get(t,n,Pe(t)?t:a);return(Yn(n)?Li.has(n):c2(n))||(r||ze(t,"get",n),o)?l:Pe(l)?s&&Yo(n)?l:l.value:Ae(l)?r?on(l):Ma(l):l}}class Ii extends Ai{constructor(t=!1){super(!1,t)}set(t,n,a,r){let o=t[n];if(!this._isShallow){const c=bn(o);if(!wt(a)&&!bn(a)&&(o=ce(o),a=ce(a)),!ne(t)&&Pe(o)&&!Pe(a))return c?!1:(o.value=a,!0)}const s=ne(t)&&Yo(n)?Number(n)e,er=e=>Reflect.getPrototypeOf(e);function v2(e,t,n){return function(...a){const r=this.__v_raw,o=ce(r),s=ca(o),l=e==="entries"||e===Symbol.iterator&&s,c=e==="keys"&&s,u=r[e](...a),p=n?wo:t?_o:We;return!t&&ze(o,"iterate",c?ko:gn),{next(){const{value:d,done:f}=u.next();return f?{value:d,done:f}:{value:l?[p(d[0]),p(d[1])]:p(d),done:f}},[Symbol.iterator](){return this}}}}function tr(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function m2(e,t){const n={get(r){const o=this.__v_raw,s=ce(o),l=ce(r);e||(tn(r,l)&&ze(s,"get",r),ze(s,"get",l));const{has:c}=er(s),u=t?wo:e?_o:We;if(c.call(s,r))return u(o.get(r));if(c.call(s,l))return u(o.get(l));o!==s&&o.get(r)},get size(){const r=this.__v_raw;return!e&&ze(ce(r),"iterate",gn),Reflect.get(r,"size",r)},has(r){const o=this.__v_raw,s=ce(o),l=ce(r);return e||(tn(r,l)&&ze(s,"has",r),ze(s,"has",l)),r===l?o.has(r):o.has(r)||o.has(l)},forEach(r,o){const s=this,l=s.__v_raw,c=ce(l),u=t?wo:e?_o:We;return!e&&ze(c,"iterate",gn),l.forEach((p,d)=>r.call(o,u(p),u(d),s))}};return De(n,e?{add:tr("add"),set:tr("set"),delete:tr("delete"),clear:tr("clear")}:{add(r){!t&&!wt(r)&&!bn(r)&&(r=ce(r));const o=ce(this);return er(o).has.call(o,r)||(o.add(r),Ft(o,"add",r,r)),this},set(r,o){!t&&!wt(o)&&!bn(o)&&(o=ce(o));const s=ce(this),{has:l,get:c}=er(s);let u=l.call(s,r);u||(r=ce(r),u=l.call(s,r));const p=c.call(s,r);return s.set(r,o),u?tn(o,p)&&Ft(s,"set",r,o):Ft(s,"add",r,o),this},delete(r){const o=ce(this),{has:s,get:l}=er(o);let c=s.call(o,r);c||(r=ce(r),c=s.call(o,r)),l&&l.call(o,r);const u=o.delete(r);return c&&Ft(o,"delete",r,void 0),u},clear(){const r=ce(this),o=r.size!==0,s=r.clear();return o&&Ft(r,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=v2(r,e,t)}),n}function as(e,t){const n=m2(e,t);return(a,r,o)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?a:Reflect.get(de(n,r)&&r in a?n:a,r,o)}const g2={get:as(!1,!1)},y2={get:as(!1,!0)},b2={get:as(!0,!1)};const ji=new WeakMap,Pi=new WeakMap,Di=new WeakMap,k2=new WeakMap;function w2(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function _2(e){return e.__v_skip||!Object.isExtensible(e)?0:w2(zu(e))}function Ma(e){return bn(e)?e:rs(e,!1,d2,g2,ji)}function Oi(e){return rs(e,!1,h2,y2,Pi)}function on(e){return rs(e,!0,f2,b2,Di)}function rs(e,t,n,a,r){if(!Ae(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=r.get(e);if(o)return o;const s=_2(e);if(s===0)return e;const l=new Proxy(e,s===2?a:n);return r.set(e,l),l}function Rn(e){return bn(e)?Rn(e.__v_raw):!!(e&&e.__v_isReactive)}function bn(e){return!!(e&&e.__v_isReadonly)}function wt(e){return!!(e&&e.__v_isShallow)}function os(e){return e?!!e.__v_raw:!1}function ce(e){const t=e&&e.__v_raw;return t?ce(t):e}function E2(e){return!de(e,"__v_skip")&&Object.isExtensible(e)&&gi(e,"__v_skip",!0),e}const We=e=>Ae(e)?Ma(e):e,_o=e=>Ae(e)?on(e):e;function Pe(e){return e?e.__v_isRef===!0:!1}function K(e){return Mi(e,!1)}function Oe(e){return Mi(e,!0)}function Mi(e,t){return Pe(e)?e:new x2(e,t)}class x2{constructor(t,n){this.dep=new Cr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ce(t),this._value=n?t:We(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,a=this.__v_isShallow||wt(t)||bn(t);t=a?t:ce(t),tn(t,n)&&(this._rawValue=t,this._value=a?t:We(t),this.dep.trigger())}}function yt(e){return Pe(e)?e.value:e}const S2={get:(e,t,n)=>t==="__v_raw"?e:yt(Reflect.get(e,t,n)),set:(e,t,n,a)=>{const r=e[t];return Pe(r)&&!Pe(n)?(r.value=n,!0):Reflect.set(e,t,n,a)}};function Ri(e){return Rn(e)?e:new Proxy(e,S2)}class T2{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Cr,{get:a,set:r}=t(n.track.bind(n),n.trigger.bind(n));this._get=a,this._set=r}get value(){return this._value=this._get()}set value(t){this._set(t)}}function ss(e){return new T2(e)}class C2{constructor(t,n,a){this._object=t,this._key=n,this._defaultValue=a,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return s2(ce(this._object),this._key)}}class L2{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Xn(e,t,n){return Pe(e)?e:ae(e)?new L2(e):Ae(e)&&arguments.length>1?A2(e,t,n):K(e)}function A2(e,t,n){const a=e[t];return Pe(a)?a:new C2(e,t,n)}class I2{constructor(t,n,a){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Cr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ya-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=a}notify(){if(this.flags|=16,!(this.flags&8)&&Ee!==this)return _i(this,!0),!0}get value(){const t=this.dep.track();return Si(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function j2(e,t,n=!1){let a,r;return ae(e)?a=e:(a=e.get,r=e.set),new I2(a,r,n)}const nr={},mr=new WeakMap;let hn;function P2(e,t=!1,n=hn){if(n){let a=mr.get(n);a||mr.set(n,a=[]),a.push(e)}}function D2(e,t,n=xe){const{immediate:a,deep:r,once:o,scheduler:s,augmentJob:l,call:c}=n,u=E=>r?E:wt(E)||r===!1||r===0?en(E,1):en(E);let p,d,f,h,g=!1,b=!1;if(Pe(e)?(d=()=>e.value,g=wt(e)):Rn(e)?(d=()=>u(e),g=!0):ne(e)?(b=!0,g=e.some(E=>Rn(E)||wt(E)),d=()=>e.map(E=>{if(Pe(E))return E.value;if(Rn(E))return u(E);if(ae(E))return c?c(E,2):E()})):ae(e)?t?d=c?()=>c(e,2):e:d=()=>{if(f){an();try{f()}finally{rn()}}const E=hn;hn=p;try{return c?c(e,3,[h]):e(h)}finally{hn=E}}:d=Pt,t&&r){const E=d,M=r===!0?1/0:r;d=()=>en(E(),M)}const _=bi(),k=()=>{p.stop(),_&&_.active&&Ko(_.effects,p)};if(o&&t){const E=t;t=(...M)=>{E(...M),k()}}let S=b?new Array(e.length).fill(nr):nr;const y=E=>{if(!(!(p.flags&1)||!p.dirty&&!E))if(t){const M=p.run();if(r||g||(b?M.some((A,q)=>tn(A,S[q])):tn(M,S))){f&&f();const A=hn;hn=p;try{const q=[M,S===nr?void 0:b&&S[0]===nr?[]:S,h];c?c(t,3,q):t(...q),S=M}finally{hn=A}}}else p.run()};return l&&l(y),p=new ki(d),p.scheduler=s?()=>s(y,!1):y,h=E=>P2(E,!1,p),f=p.onStop=()=>{const E=mr.get(p);if(E){if(c)c(E,4);else for(const M of E)M();mr.delete(p)}},t?a?y(!0):S=p.run():s?s(y.bind(null,!0),!0):p.run(),k.pause=p.pause.bind(p),k.resume=p.resume.bind(p),k.stop=k,k}function en(e,t=1/0,n){if(t<=0||!Ae(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,Pe(e))en(e.value,t,n);else if(ne(e))for(let a=0;a{en(a,t,n)});else if(qu(e)){for(const a in e)en(e[a],t,n);for(const a of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,a)&&en(e[a],t,n)}return e}/**
+* @vue/runtime-core v3.5.13
+* (c) 2018-present Yuxi (Evan) You and Vue contributors
+* @license MIT
+**/function Ra(e,t,n,a){try{return a?e(...a):e()}catch(r){Ba(r,t,n)}}function Et(e,t,n,a){if(ae(e)){const r=Ra(e,t,n,a);return r&&mi(r)&&r.catch(o=>{Ba(o,t,n)}),r}if(ne(e)){const r=[];for(let o=0;o>>1,r=Ge[a],o=ka(r);o=ka(n)?Ge.push(e):Ge.splice(M2(t),0,e),e.flags|=1,$i()}}function $i(){gr||(gr=Bi.then(Ji))}function R2(e){ne(e)?Bn.push(...e):Yt&&e.id===-1?Yt.splice(An+1,0,e):e.flags&1||(Bn.push(e),e.flags|=1),$i()}function Us(e,t,n=It+1){for(;nka(n)-ka(a));if(Bn.length=0,Yt){Yt.push(...t);return}for(Yt=t,An=0;Ane.id==null?e.flags&2?-1:1/0:e.id;function Ji(e){try{for(It=0;It{a._d&&rl(-1);const o=br(t);let s;try{s=e(...r)}finally{br(o),a._d&&rl(1)}return s};return a._n=!0,a._c=!0,a._d=!0,a}function jt(e,t,n,a){const r=e.dirs,o=t&&t.dirs;for(let s=0;se.__isTeleport,Xt=Symbol("_leaveCb"),ar=Symbol("_enterCb");function Vi(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return fe(()=>{e.isMounted=!0}),Ki(()=>{e.isUnmounting=!0}),e}const ct=[Function,Array],Hi={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ct,onEnter:ct,onAfterEnter:ct,onEnterCancelled:ct,onBeforeLeave:ct,onLeave:ct,onAfterLeave:ct,onLeaveCancelled:ct,onBeforeAppear:ct,onAppear:ct,onAfterAppear:ct,onAppearCancelled:ct},zi=e=>{const t=e.subTree;return t.component?zi(t.component):t},J2={name:"BaseTransition",props:Hi,setup(e,{slots:t}){const n=Fa(),a=Vi();return()=>{const r=t.default&&is(t.default(),!0);if(!r||!r.length)return;const o=qi(r),s=ce(e),{mode:l}=s;if(a.isLeaving)return Ur(o);const c=Ws(o);if(!c)return Ur(o);let u=wa(c,s,a,n,d=>u=d);c.type!==ot&&kn(c,u);let p=n.subTree&&Ws(n.subTree);if(p&&p.type!==ot&&!vn(c,p)&&zi(n).type!==ot){let d=wa(p,s,a,n);if(kn(p,d),l==="out-in"&&c.type!==ot)return a.isLeaving=!0,d.afterLeave=()=>{a.isLeaving=!1,n.job.flags&8||n.update(),delete d.afterLeave,p=void 0},Ur(o);l==="in-out"&&c.type!==ot?d.delayLeave=(f,h,g)=>{const b=Ui(a,p);b[String(p.key)]=p,f[Xt]=()=>{h(),f[Xt]=void 0,delete u.delayedLeave,p=void 0},u.delayedLeave=()=>{g(),delete u.delayedLeave,p=void 0}}:p=void 0}else p&&(p=void 0);return o}}};function qi(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==ot){t=n;break}}return t}const F2=J2;function Ui(e,t){const{leavingVNodes:n}=e;let a=n.get(t.type);return a||(a=Object.create(null),n.set(t.type,a)),a}function wa(e,t,n,a,r){const{appear:o,mode:s,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:p,onEnterCancelled:d,onBeforeLeave:f,onLeave:h,onAfterLeave:g,onLeaveCancelled:b,onBeforeAppear:_,onAppear:k,onAfterAppear:S,onAppearCancelled:y}=t,E=String(e.key),M=Ui(n,e),A=(F,I)=>{F&&Et(F,a,9,I)},q=(F,I)=>{const N=I[1];A(F,I),ne(F)?F.every(D=>D.length<=1)&&N():F.length<=1&&N()},X={mode:s,persisted:l,beforeEnter(F){let I=c;if(!n.isMounted)if(o)I=_||c;else return;F[Xt]&&F[Xt](!0);const N=M[E];N&&vn(e,N)&&N.el[Xt]&&N.el[Xt](),A(I,[F])},enter(F){let I=u,N=p,D=d;if(!n.isMounted)if(o)I=k||u,N=S||p,D=y||d;else return;let Q=!1;const ve=F[ar]=be=>{Q||(Q=!0,be?A(D,[F]):A(N,[F]),X.delayedLeave&&X.delayedLeave(),F[ar]=void 0)};I?q(I,[F,ve]):ve()},leave(F,I){const N=String(e.key);if(F[ar]&&F[ar](!0),n.isUnmounting)return I();A(f,[F]);let D=!1;const Q=F[Xt]=ve=>{D||(D=!0,I(),ve?A(b,[F]):A(g,[F]),F[Xt]=void 0,M[N]===e&&delete M[N])};M[N]=e,h?q(h,[F,Q]):Q()},clone(F){const I=wa(F,t,n,a,r);return r&&r(I),I}};return X}function Ur(e){if($a(e))return e=nn(e),e.children=null,e}function Ws(e){if(!$a(e))return Ni(e.type)&&e.children?qi(e.children):e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&ae(n.default))return n.default()}}function kn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,kn(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function is(e,t=!1,n){let a=[],r=0;for(let o=0;o1)for(let o=0;o_a(g,t&&(ne(t)?t[b]:t),n,a,r));return}if($n(a)&&!r){a.shapeFlag&512&&a.type.__asyncResolved&&a.component.subTree.component&&_a(e,t,n,a.component.subTree);return}const o=a.shapeFlag&4?vs(a.component):a.el,s=r?null:o,{i:l,r:c}=e,u=t&&t.r,p=l.refs===xe?l.refs={}:l.refs,d=l.setupState,f=ce(d),h=d===xe?()=>!1:g=>de(f,g);if(u!=null&&u!==c&&(Re(u)?(p[u]=null,h(u)&&(d[u]=null)):Pe(u)&&(u.value=null)),ae(c))Ra(c,l,12,[s,p]);else{const g=Re(c),b=Pe(c);if(g||b){const _=()=>{if(e.f){const k=g?h(c)?d[c]:p[c]:c.value;r?ne(k)&&Ko(k,o):ne(k)?k.includes(o)||k.push(o):g?(p[c]=[o],h(c)&&(d[c]=p[c])):(c.value=[o],e.k&&(p[e.k]=c.value))}else g?(p[c]=s,h(c)&&(d[c]=s)):b&&(c.value=s,e.k&&(p[e.k]=s))};s?(_.id=-1,at(_,n)):_()}}}let Gs=!1;const Cn=()=>{Gs||(console.error("Hydration completed but contains mismatches."),Gs=!0)},N2=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",V2=e=>e.namespaceURI.includes("MathML"),rr=e=>{if(e.nodeType===1){if(N2(e))return"svg";if(V2(e))return"mathml"}},Pn=e=>e.nodeType===8;function H2(e){const{mt:t,p:n,o:{patchProp:a,createText:r,nextSibling:o,parentNode:s,remove:l,insert:c,createComment:u}}=e,p=(y,E)=>{if(!E.hasChildNodes()){n(null,y,E),yr(),E._vnode=y;return}d(E.firstChild,y,null,null,null),yr(),E._vnode=y},d=(y,E,M,A,q,X=!1)=>{X=X||!!E.dynamicChildren;const F=Pn(y)&&y.data==="[",I=()=>b(y,E,M,A,q,F),{type:N,ref:D,shapeFlag:Q,patchFlag:ve}=E;let be=y.nodeType;E.el=y,ve===-2&&(X=!1,E.dynamicChildren=null);let U=null;switch(N){case yn:be!==3?E.children===""?(c(E.el=r(""),s(y),y),U=y):U=I():(y.data!==E.children&&(Cn(),y.data=E.children),U=o(y));break;case ot:S(y)?(U=o(y),k(E.el=y.content.firstChild,y,M)):be!==8||F?U=I():U=o(y);break;case fa:if(F&&(y=o(y),be=y.nodeType),be===1||be===3){U=y;const ee=!E.children.length;for(let W=0;W{X=X||!!E.dynamicChildren;const{type:F,props:I,patchFlag:N,shapeFlag:D,dirs:Q,transition:ve}=E,be=F==="input"||F==="option";if(be||N!==-1){Q&&jt(E,null,M,"created");let U=!1;if(S(y)){U=lc(null,ve)&&M&&M.vnode.props&&M.vnode.props.appear;const W=y.content.firstChild;U&&ve.beforeEnter(W),k(W,y,M),E.el=y=W}if(D&16&&!(I&&(I.innerHTML||I.textContent))){let W=h(y.firstChild,E,y,M,A,q,X);for(;W;){or(y,1)||Cn();const ke=W;W=W.nextSibling,l(ke)}}else if(D&8){let W=E.children;W[0]===`
+`&&(y.tagName==="PRE"||y.tagName==="TEXTAREA")&&(W=W.slice(1)),y.textContent!==W&&(or(y,0)||Cn(),y.textContent=E.children)}if(I){if(be||!X||N&48){const W=y.tagName.includes("-");for(const ke in I)(be&&(ke.endsWith("value")||ke==="indeterminate")||Da(ke)&&!Mn(ke)||ke[0]==="."||W)&&a(y,ke,null,I[ke],void 0,M)}else if(I.onClick)a(y,"onClick",null,I.onClick,void 0,M);else if(N&4&&Rn(I.style))for(const W in I.style)I.style[W]}let ee;(ee=I&&I.onVnodeBeforeMount)&&ut(ee,M,E),Q&&jt(E,null,M,"beforeMount"),((ee=I&&I.onVnodeMounted)||Q||U)&&hc(()=>{ee&&ut(ee,M,E),U&&ve.enter(y),Q&&jt(E,null,M,"mounted")},A)}return y.nextSibling},h=(y,E,M,A,q,X,F)=>{F=F||!!E.dynamicChildren;const I=E.children,N=I.length;for(let D=0;D{const{slotScopeIds:F}=E;F&&(q=q?q.concat(F):F);const I=s(y),N=h(o(y),E,I,M,A,q,X);return N&&Pn(N)&&N.data==="]"?o(E.anchor=N):(Cn(),c(E.anchor=u("]"),I,N),N)},b=(y,E,M,A,q,X)=>{if(or(y.parentElement,1)||Cn(),E.el=null,X){const N=_(y);for(;;){const D=o(y);if(D&&D!==N)l(D);else break}}const F=o(y),I=s(y);return l(y),n(null,E,I,F,M,A,rr(I),q),M&&(M.vnode.el=E.el,dc(M,E.el)),F},_=(y,E="[",M="]")=>{let A=0;for(;y;)if(y=o(y),y&&Pn(y)&&(y.data===E&&A++,y.data===M)){if(A===0)return o(y);A--}return y},k=(y,E,M)=>{const A=E.parentNode;A&&A.replaceChild(y,E);let q=M;for(;q;)q.vnode.el===E&&(q.vnode.el=q.subTree.el=y),q=q.parent},S=y=>y.nodeType===1&&y.tagName==="TEMPLATE";return[p,d]}const Ks="data-allow-mismatch",z2={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function or(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(Ks);)e=e.parentElement;const n=e&&e.getAttribute(Ks);if(n==null)return!1;if(n==="")return!0;{const a=n.split(",");return t===0&&a.includes("children")?!0:n.split(",").includes(z2[t])}}Tr().requestIdleCallback;Tr().cancelIdleCallback;function q2(e,t){if(Pn(e)&&e.data==="["){let n=1,a=e.nextSibling;for(;a;){if(a.nodeType===1){if(t(a)===!1)break}else if(Pn(a))if(a.data==="]"){if(--n===0)break}else a.data==="["&&n++;a=a.nextSibling}}else t(e)}const $n=e=>!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function U2(e){ae(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:a,delay:r=200,hydrate:o,timeout:s,suspensible:l=!0,onError:c}=e;let u=null,p,d=0;const f=()=>(d++,u=null,h()),h=()=>{let g;return u||(g=u=t().catch(b=>{if(b=b instanceof Error?b:new Error(String(b)),c)return new Promise((_,k)=>{c(b,()=>_(f()),()=>k(b),d+1)});throw b}).then(b=>g!==u&&u?u:(b&&(b.__esModule||b[Symbol.toStringTag]==="Module")&&(b=b.default),p=b,b)))};return R({name:"AsyncComponentWrapper",__asyncLoader:h,__asyncHydrate(g,b,_){const k=o?()=>{const S=o(_,y=>q2(g,y));S&&(b.bum||(b.bum=[])).push(S)}:_;p?k():h().then(()=>!b.isUnmounted&&k())},get __asyncResolved(){return p},setup(){const g=$e;if(cs(g),p)return()=>Wr(p,g);const b=y=>{u=null,Ba(y,g,13,!a)};if(l&&g.suspense||Hn)return h().then(y=>()=>Wr(y,g)).catch(y=>(b(y),()=>a?Me(a,{error:y}):null));const _=K(!1),k=K(),S=K(!!r);return r&&setTimeout(()=>{S.value=!1},r),s!=null&&setTimeout(()=>{if(!_.value&&!k.value){const y=new Error(`Async component timed out after ${s}ms.`);b(y),k.value=y}},s),h().then(()=>{_.value=!0,g.parent&&$a(g.parent.vnode)&&g.parent.update()}).catch(y=>{b(y),k.value=y}),()=>{if(_.value&&p)return Wr(p,g);if(k.value&&a)return Me(a,{error:k.value});if(n&&!S.value)return Me(n)}}})}function Wr(e,t){const{ref:n,props:a,children:r,ce:o}=t.vnode,s=Me(e,a,r);return s.ref=n,s.ce=o,delete t.vnode.ce,s}const $a=e=>e.type.__isKeepAlive;function W2(e,t){Wi(e,"a",t)}function G2(e,t){Wi(e,"da",t)}function Wi(e,t,n=$e){const a=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(Lr(t,a,n),n){let r=n.parent;for(;r&&r.parent;)$a(r.parent.vnode)&&K2(a,t,n,r),r=r.parent}}function K2(e,t,n,a){const r=Lr(t,e,a,!0);Ja(()=>{Ko(a[t],r)},n)}function Lr(e,t,n=$e,a=!1){if(n){const r=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...s)=>{an();const l=Na(n),c=Et(t,n,e,s);return l(),rn(),c});return a?r.unshift(o):r.push(o),o}}const Ht=e=>(t,n=$e)=>{(!Hn||e==="sp")&&Lr(e,(...a)=>t(...a),n)},Y2=Ht("bm"),fe=Ht("m"),X2=Ht("bu"),Gi=Ht("u"),Ki=Ht("bum"),Ja=Ht("um"),Q2=Ht("sp"),Z2=Ht("rtg"),e0=Ht("rtc");function t0(e,t=$e){Lr("ec",e,t)}const n0="components";function ht(e,t){return r0(n0,e,!0,t)||e}const a0=Symbol.for("v-ndc");function r0(e,t,n=!0,a=!1){const r=ft||$e;if(r){const o=r.type;{const l=V0(o,!1);if(l&&(l===t||l===Qe(t)||l===Oa(Qe(t))))return o}const s=Ys(r[e]||o[e],t)||Ys(r.appContext[e],t);return!s&&a?o:s}}function Ys(e,t){return e&&(e[t]||e[Qe(t)]||e[Oa(Qe(t))])}const Eo=e=>e?yc(e)?vs(e):Eo(e.parent):null,da=De(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Eo(e.parent),$root:e=>Eo(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>us(e),$forceUpdate:e=>e.f||(e.f=()=>{ls(e.update)}),$nextTick:e=>e.n||(e.n=sn.bind(e.proxy)),$watch:e=>x0.bind(e)}),Gr=(e,t)=>e!==xe&&!e.__isScriptSetup&&de(e,t),o0={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:a,data:r,props:o,accessCache:s,type:l,appContext:c}=e;let u;if(t[0]!=="$"){const h=s[t];if(h!==void 0)switch(h){case 1:return a[t];case 2:return r[t];case 4:return n[t];case 3:return o[t]}else{if(Gr(a,t))return s[t]=1,a[t];if(r!==xe&&de(r,t))return s[t]=2,r[t];if((u=e.propsOptions[0])&&de(u,t))return s[t]=3,o[t];if(n!==xe&&de(n,t))return s[t]=4,n[t];xo&&(s[t]=0)}}const p=da[t];let d,f;if(p)return t==="$attrs"&&ze(e.attrs,"get",""),p(e);if((d=l.__cssModules)&&(d=d[t]))return d;if(n!==xe&&de(n,t))return s[t]=4,n[t];if(f=c.config.globalProperties,de(f,t))return f[t]},set({_:e},t,n){const{data:a,setupState:r,ctx:o}=e;return Gr(r,t)?(r[t]=n,!0):a!==xe&&de(a,t)?(a[t]=n,!0):de(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:a,appContext:r,propsOptions:o}},s){let l;return!!n[s]||e!==xe&&de(e,s)||Gr(t,s)||(l=o[0])&&de(l,s)||de(a,s)||de(da,s)||de(r.config.globalProperties,s)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:de(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Xs(e){return ne(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let xo=!0;function s0(e){const t=us(e),n=e.proxy,a=e.ctx;xo=!1,t.beforeCreate&&Qs(t.beforeCreate,e,"bc");const{data:r,computed:o,methods:s,watch:l,provide:c,inject:u,created:p,beforeMount:d,mounted:f,beforeUpdate:h,updated:g,activated:b,deactivated:_,beforeDestroy:k,beforeUnmount:S,destroyed:y,unmounted:E,render:M,renderTracked:A,renderTriggered:q,errorCaptured:X,serverPrefetch:F,expose:I,inheritAttrs:N,components:D,directives:Q,filters:ve}=t;if(u&&l0(u,a,null),s)for(const ee in s){const W=s[ee];ae(W)&&(a[ee]=W.bind(n))}if(r){const ee=r.call(n,n);Ae(ee)&&(e.data=Ma(ee))}if(xo=!0,o)for(const ee in o){const W=o[ee],ke=ae(W)?W.bind(n,n):ae(W.get)?W.get.bind(n,n):Pt,Tt=!ae(W)&&ae(W.set)?W.set.bind(n):Pt,it=w({get:ke,set:Tt});Object.defineProperty(a,ee,{enumerable:!0,configurable:!0,get:()=>it.value,set:Be=>it.value=Be})}if(l)for(const ee in l)Yi(l[ee],a,n,ee);if(c){const ee=ae(c)?c.call(n):c;Reflect.ownKeys(ee).forEach(W=>{_t(W,ee[W])})}p&&Qs(p,e,"c");function U(ee,W){ne(W)?W.forEach(ke=>ee(ke.bind(n))):W&&ee(W.bind(n))}if(U(Y2,d),U(fe,f),U(X2,h),U(Gi,g),U(W2,b),U(G2,_),U(t0,X),U(e0,A),U(Z2,q),U(Ki,S),U(Ja,E),U(Q2,F),ne(I))if(I.length){const ee=e.exposed||(e.exposed={});I.forEach(W=>{Object.defineProperty(ee,W,{get:()=>n[W],set:ke=>n[W]=ke})})}else e.exposed||(e.exposed={});M&&e.render===Pt&&(e.render=M),N!=null&&(e.inheritAttrs=N),D&&(e.components=D),Q&&(e.directives=Q),F&&cs(e)}function l0(e,t,n=Pt){ne(e)&&(e=So(e));for(const a in e){const r=e[a];let o;Ae(r)?"default"in r?o=Le(r.from||a,r.default,!0):o=Le(r.from||a):o=Le(r),Pe(o)?Object.defineProperty(t,a,{enumerable:!0,configurable:!0,get:()=>o.value,set:s=>o.value=s}):t[a]=o}}function Qs(e,t,n){Et(ne(e)?e.map(a=>a.bind(t.proxy)):e.bind(t.proxy),t,n)}function Yi(e,t,n,a){let r=a.includes(".")?uc(n,a):()=>n[a];if(Re(e)){const o=t[e];ae(o)&&re(r,o)}else if(ae(e))re(r,e.bind(n));else if(Ae(e))if(ne(e))e.forEach(o=>Yi(o,t,n,a));else{const o=ae(e.handler)?e.handler.bind(n):t[e.handler];ae(o)&&re(r,o,e)}}function us(e){const t=e.type,{mixins:n,extends:a}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:s}}=e.appContext,l=o.get(t);let c;return l?c=l:!r.length&&!n&&!a?c=t:(c={},r.length&&r.forEach(u=>kr(c,u,s,!0)),kr(c,t,s)),Ae(t)&&o.set(t,c),c}function kr(e,t,n,a=!1){const{mixins:r,extends:o}=t;o&&kr(e,o,n,!0),r&&r.forEach(s=>kr(e,s,n,!0));for(const s in t)if(!(a&&s==="expose")){const l=i0[s]||n&&n[s];e[s]=l?l(e[s],t[s]):t[s]}return e}const i0={data:Zs,props:el,emits:el,methods:la,computed:la,beforeCreate:qe,created:qe,beforeMount:qe,mounted:qe,beforeUpdate:qe,updated:qe,beforeDestroy:qe,beforeUnmount:qe,destroyed:qe,unmounted:qe,activated:qe,deactivated:qe,errorCaptured:qe,serverPrefetch:qe,components:la,directives:la,watch:u0,provide:Zs,inject:c0};function Zs(e,t){return t?e?function(){return De(ae(e)?e.call(this,this):e,ae(t)?t.call(this,this):t)}:t:e}function c0(e,t){return la(So(e),So(t))}function So(e){if(ne(e)){const t={};for(let n=0;n1)return n&&ae(t)?t.call(a&&a.proxy):t}}const Qi={},Zi=()=>Object.create(Qi),ec=e=>Object.getPrototypeOf(e)===Qi;function f0(e,t,n,a=!1){const r={},o=Zi();e.propsDefaults=Object.create(null),tc(e,t,r,o);for(const s in e.propsOptions[0])s in r||(r[s]=void 0);n?e.props=a?r:Oi(r):e.type.props?e.props=r:e.props=o,e.attrs=o}function h0(e,t,n,a){const{props:r,attrs:o,vnode:{patchFlag:s}}=e,l=ce(r),[c]=e.propsOptions;let u=!1;if((a||s>0)&&!(s&16)){if(s&8){const p=e.vnode.dynamicProps;for(let d=0;d{c=!0;const[f,h]=nc(d,t,!0);De(s,f),h&&l.push(...h)};!n&&t.mixins.length&&t.mixins.forEach(p),e.extends&&p(e.extends),e.mixins&&e.mixins.forEach(p)}if(!o&&!c)return Ae(e)&&a.set(e,On),On;if(ne(o))for(let p=0;pe[0]==="_"||e==="$stable",ps=e=>ne(e)?e.map(dt):[dt(e)],m0=(e,t,n)=>{if(t._n)return t;const a=B2((...r)=>ps(t(...r)),n);return a._c=!1,a},rc=(e,t,n)=>{const a=e._ctx;for(const r in e){if(ac(r))continue;const o=e[r];if(ae(o))t[r]=m0(r,o,a);else if(o!=null){const s=ps(o);t[r]=()=>s}}},oc=(e,t)=>{const n=ps(t);e.slots.default=()=>n},sc=(e,t,n)=>{for(const a in t)(n||a!=="_")&&(e[a]=t[a])},g0=(e,t,n)=>{const a=e.slots=Zi();if(e.vnode.shapeFlag&32){const r=t._;r?(sc(a,t,n),n&&gi(a,"_",r,!0)):rc(t,a)}else t&&oc(e,t)},y0=(e,t,n)=>{const{vnode:a,slots:r}=e;let o=!0,s=xe;if(a.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:sc(r,t,n):(o=!t.$stable,rc(t,r)),s=t}else t&&(oc(e,t),s={default:1});if(o)for(const l in r)!ac(l)&&s[l]==null&&delete r[l]},at=hc;function b0(e){return k0(e,H2)}function k0(e,t){const n=Tr();n.__VUE__=!0;const{insert:a,remove:r,patchProp:o,createElement:s,createText:l,createComment:c,setText:u,setElementText:p,parentNode:d,nextSibling:f,setScopeId:h=Pt,insertStaticContent:g}=e,b=(v,m,x,j=null,C=null,P=null,V=void 0,$=null,B=!!m.dynamicChildren)=>{if(v===m)return;v&&!vn(v,m)&&(j=T(v),Be(v,C,P,!0),v=null),m.patchFlag===-2&&(B=!1,m.dynamicChildren=null);const{type:O,ref:Z,shapeFlag:z}=m;switch(O){case yn:_(v,m,x,j);break;case ot:k(v,m,x,j);break;case fa:v==null&&S(m,x,j,V);break;case rt:D(v,m,x,j,C,P,V,$,B);break;default:z&1?M(v,m,x,j,C,P,V,$,B):z&6?Q(v,m,x,j,C,P,V,$,B):(z&64||z&128)&&O.process(v,m,x,j,C,P,V,$,B,G)}Z!=null&&C&&_a(Z,v&&v.ref,P,m||v,!m)},_=(v,m,x,j)=>{if(v==null)a(m.el=l(m.children),x,j);else{const C=m.el=v.el;m.children!==v.children&&u(C,m.children)}},k=(v,m,x,j)=>{v==null?a(m.el=c(m.children||""),x,j):m.el=v.el},S=(v,m,x,j)=>{[v.el,v.anchor]=g(v.children,m,x,j,v.el,v.anchor)},y=({el:v,anchor:m},x,j)=>{let C;for(;v&&v!==m;)C=f(v),a(v,x,j),v=C;a(m,x,j)},E=({el:v,anchor:m})=>{let x;for(;v&&v!==m;)x=f(v),r(v),v=x;r(m)},M=(v,m,x,j,C,P,V,$,B)=>{m.type==="svg"?V="svg":m.type==="math"&&(V="mathml"),v==null?A(m,x,j,C,P,V,$,B):F(v,m,C,P,V,$,B)},A=(v,m,x,j,C,P,V,$)=>{let B,O;const{props:Z,shapeFlag:z,transition:Y,dirs:te}=v;if(B=v.el=s(v.type,P,Z&&Z.is,Z),z&8?p(B,v.children):z&16&&X(v.children,B,null,j,C,Kr(v,P),V,$),te&&jt(v,null,j,"created"),q(B,v,v.scopeId,V,j),Z){for(const _e in Z)_e!=="value"&&!Mn(_e)&&o(B,_e,null,Z[_e],P,j);"value"in Z&&o(B,"value",null,Z.value,P),(O=Z.onVnodeBeforeMount)&&ut(O,j,v)}te&&jt(v,null,j,"beforeMount");const se=lc(C,Y);se&&Y.beforeEnter(B),a(B,m,x),((O=Z&&Z.onVnodeMounted)||se||te)&&at(()=>{O&&ut(O,j,v),se&&Y.enter(B),te&&jt(v,null,j,"mounted")},C)},q=(v,m,x,j,C)=>{if(x&&h(v,x),j)for(let P=0;P{for(let O=B;O{const $=m.el=v.el;let{patchFlag:B,dynamicChildren:O,dirs:Z}=m;B|=v.patchFlag&16;const z=v.props||xe,Y=m.props||xe;let te;if(x&&pn(x,!1),(te=Y.onVnodeBeforeUpdate)&&ut(te,x,m,v),Z&&jt(m,v,x,"beforeUpdate"),x&&pn(x,!0),(z.innerHTML&&Y.innerHTML==null||z.textContent&&Y.textContent==null)&&p($,""),O?I(v.dynamicChildren,O,$,x,j,Kr(m,C),P):V||W(v,m,$,null,x,j,Kr(m,C),P,!1),B>0){if(B&16)N($,z,Y,x,C);else if(B&2&&z.class!==Y.class&&o($,"class",null,Y.class,C),B&4&&o($,"style",z.style,Y.style,C),B&8){const se=m.dynamicProps;for(let _e=0;_e{te&&ut(te,x,m,v),Z&&jt(m,v,x,"updated")},j)},I=(v,m,x,j,C,P,V)=>{for(let $=0;${if(m!==x){if(m!==xe)for(const P in m)!Mn(P)&&!(P in x)&&o(v,P,m[P],null,C,j);for(const P in x){if(Mn(P))continue;const V=x[P],$=m[P];V!==$&&P!=="value"&&o(v,P,$,V,C,j)}"value"in x&&o(v,"value",m.value,x.value,C)}},D=(v,m,x,j,C,P,V,$,B)=>{const O=m.el=v?v.el:l(""),Z=m.anchor=v?v.anchor:l("");let{patchFlag:z,dynamicChildren:Y,slotScopeIds:te}=m;te&&($=$?$.concat(te):te),v==null?(a(O,x,j),a(Z,x,j),X(m.children||[],x,Z,C,P,V,$,B)):z>0&&z&64&&Y&&v.dynamicChildren?(I(v.dynamicChildren,Y,x,C,P,V,$),(m.key!=null||C&&m===C.subTree)&&ic(v,m,!0)):W(v,m,x,Z,C,P,V,$,B)},Q=(v,m,x,j,C,P,V,$,B)=>{m.slotScopeIds=$,v==null?m.shapeFlag&512?C.ctx.activate(m,x,j,V,B):ve(m,x,j,C,P,V,B):be(v,m,B)},ve=(v,m,x,j,C,P,V)=>{const $=v.component=B0(v,j,C);if($a(v)&&($.ctx.renderer=G),$0($,!1,V),$.asyncDep){if(C&&C.registerDep($,U,V),!v.el){const B=$.subTree=Me(ot);k(null,B,m,x)}}else U($,v,m,x,C,P,V)},be=(v,m,x)=>{const j=m.component=v.component;if(A0(v,m,x))if(j.asyncDep&&!j.asyncResolved){ee(j,m,x);return}else j.next=m,j.update();else m.el=v.el,j.vnode=m},U=(v,m,x,j,C,P,V)=>{const $=()=>{if(v.isMounted){let{next:z,bu:Y,u:te,parent:se,vnode:_e}=v;{const tt=cc(v);if(tt){z&&(z.el=_e.el,ee(v,z,V)),tt.asyncDep.then(()=>{v.isUnmounted||$()});return}}let me=z,et;pn(v,!1),z?(z.el=_e.el,ee(v,z,V)):z=_e,Y&&Vr(Y),(et=z.props&&z.props.onVnodeBeforeUpdate)&&ut(et,se,z,_e),pn(v,!0);const He=Yr(v),mt=v.subTree;v.subTree=He,b(mt,He,d(mt.el),T(mt),v,C,P),z.el=He.el,me===null&&dc(v,He.el),te&&at(te,C),(et=z.props&&z.props.onVnodeUpdated)&&at(()=>ut(et,se,z,_e),C)}else{let z;const{el:Y,props:te}=m,{bm:se,m:_e,parent:me,root:et,type:He}=v,mt=$n(m);if(pn(v,!1),se&&Vr(se),!mt&&(z=te&&te.onVnodeBeforeMount)&&ut(z,me,m),pn(v,!0),Y&&we){const tt=()=>{v.subTree=Yr(v),we(Y,v.subTree,v,C,null)};mt&&He.__asyncHydrate?He.__asyncHydrate(Y,v,tt):tt()}else{et.ce&&et.ce._injectChildStyle(He);const tt=v.subTree=Yr(v);b(null,tt,x,j,v,C,P),m.el=tt.el}if(_e&&at(_e,C),!mt&&(z=te&&te.onVnodeMounted)){const tt=m;at(()=>ut(z,me,tt),C)}(m.shapeFlag&256||me&&$n(me.vnode)&&me.vnode.shapeFlag&256)&&v.a&&at(v.a,C),v.isMounted=!0,m=x=j=null}};v.scope.on();const B=v.effect=new ki($);v.scope.off();const O=v.update=B.run.bind(B),Z=v.job=B.runIfDirty.bind(B);Z.i=v,Z.id=v.uid,B.scheduler=()=>ls(Z),pn(v,!0),O()},ee=(v,m,x)=>{m.component=v;const j=v.vnode.props;v.vnode=m,v.next=null,h0(v,m.props,j,x),y0(v,m.children,x),an(),Us(v),rn()},W=(v,m,x,j,C,P,V,$,B=!1)=>{const O=v&&v.children,Z=v?v.shapeFlag:0,z=m.children,{patchFlag:Y,shapeFlag:te}=m;if(Y>0){if(Y&128){Tt(O,z,x,j,C,P,V,$,B);return}else if(Y&256){ke(O,z,x,j,C,P,V,$,B);return}}te&8?(Z&16&&Ve(O,C,P),z!==O&&p(x,z)):Z&16?te&16?Tt(O,z,x,j,C,P,V,$,B):Ve(O,C,P,!0):(Z&8&&p(x,""),te&16&&X(z,x,j,C,P,V,$,B))},ke=(v,m,x,j,C,P,V,$,B)=>{v=v||On,m=m||On;const O=v.length,Z=m.length,z=Math.min(O,Z);let Y;for(Y=0;YZ?Ve(v,C,P,!0,!1,z):X(m,x,j,C,P,V,$,B,z)},Tt=(v,m,x,j,C,P,V,$,B)=>{let O=0;const Z=m.length;let z=v.length-1,Y=Z-1;for(;O<=z&&O<=Y;){const te=v[O],se=m[O]=B?Qt(m[O]):dt(m[O]);if(vn(te,se))b(te,se,x,null,C,P,V,$,B);else break;O++}for(;O<=z&&O<=Y;){const te=v[z],se=m[Y]=B?Qt(m[Y]):dt(m[Y]);if(vn(te,se))b(te,se,x,null,C,P,V,$,B);else break;z--,Y--}if(O>z){if(O<=Y){const te=Y+1,se=teY)for(;O<=z;)Be(v[O],C,P,!0),O++;else{const te=O,se=O,_e=new Map;for(O=se;O<=Y;O++){const nt=m[O]=B?Qt(m[O]):dt(m[O]);nt.key!=null&&_e.set(nt.key,O)}let me,et=0;const He=Y-se+1;let mt=!1,tt=0;const na=new Array(He);for(O=0;O=He){Be(nt,C,P,!0);continue}let Lt;if(nt.key!=null)Lt=_e.get(nt.key);else for(me=se;me<=Y;me++)if(na[me-se]===0&&vn(nt,m[me])){Lt=me;break}Lt===void 0?Be(nt,C,P,!0):(na[Lt-se]=O+1,Lt>=tt?tt=Lt:mt=!0,b(nt,m[Lt],x,null,C,P,V,$,B),et++)}const Ns=mt?w0(na):On;for(me=Ns.length-1,O=He-1;O>=0;O--){const nt=se+O,Lt=m[nt],Vs=nt+1{const{el:P,type:V,transition:$,children:B,shapeFlag:O}=v;if(O&6){it(v.component.subTree,m,x,j);return}if(O&128){v.suspense.move(m,x,j);return}if(O&64){V.move(v,m,x,G);return}if(V===rt){a(P,m,x);for(let z=0;z$.enter(P),C);else{const{leave:z,delayLeave:Y,afterLeave:te}=$,se=()=>a(P,m,x),_e=()=>{z(P,()=>{se(),te&&te()})};Y?Y(P,se,_e):_e()}else a(P,m,x)},Be=(v,m,x,j=!1,C=!1)=>{const{type:P,props:V,ref:$,children:B,dynamicChildren:O,shapeFlag:Z,patchFlag:z,dirs:Y,cacheIndex:te}=v;if(z===-2&&(C=!1),$!=null&&_a($,null,x,v,!0),te!=null&&(m.renderCache[te]=void 0),Z&256){m.ctx.deactivate(v);return}const se=Z&1&&Y,_e=!$n(v);let me;if(_e&&(me=V&&V.onVnodeBeforeUnmount)&&ut(me,m,v),Z&6)Ct(v.component,x,j);else{if(Z&128){v.suspense.unmount(x,j);return}se&&jt(v,null,m,"beforeUnmount"),Z&64?v.type.remove(v,m,x,G,j):O&&!O.hasOnce&&(P!==rt||z>0&&z&64)?Ve(O,m,x,!1,!0):(P===rt&&z&384||!C&&Z&16)&&Ve(B,m,x),j&&Ze(v)}(_e&&(me=V&&V.onVnodeUnmounted)||se)&&at(()=>{me&&ut(me,m,v),se&&jt(v,null,m,"unmounted")},x)},Ze=v=>{const{type:m,el:x,anchor:j,transition:C}=v;if(m===rt){Mt(x,j);return}if(m===fa){E(v);return}const P=()=>{r(x),C&&!C.persisted&&C.afterLeave&&C.afterLeave()};if(v.shapeFlag&1&&C&&!C.persisted){const{leave:V,delayLeave:$}=C,B=()=>V(x,P);$?$(v.el,P,B):B()}else P()},Mt=(v,m)=>{let x;for(;v!==m;)x=f(v),r(v),v=x;r(m)},Ct=(v,m,x)=>{const{bum:j,scope:C,job:P,subTree:V,um:$,m:B,a:O}=v;nl(B),nl(O),j&&Vr(j),C.stop(),P&&(P.flags|=8,Be(V,v,m,x)),$&&at($,m),at(()=>{v.isUnmounted=!0},m),m&&m.pendingBranch&&!m.isUnmounted&&v.asyncDep&&!v.asyncResolved&&v.suspenseId===m.pendingId&&(m.deps--,m.deps===0&&m.resolve())},Ve=(v,m,x,j=!1,C=!1,P=0)=>{for(let V=P;V{if(v.shapeFlag&6)return T(v.component.subTree);if(v.shapeFlag&128)return v.suspense.next();const m=f(v.anchor||v.el),x=m&&m[$2];return x?f(x):m};let H=!1;const J=(v,m,x)=>{v==null?m._vnode&&Be(m._vnode,null,null,!0):b(m._vnode||null,v,m,null,null,null,x),m._vnode=v,H||(H=!0,Us(),yr(),H=!1)},G={p:b,um:Be,m:it,r:Ze,mt:ve,mc:X,pc:W,pbc:I,n:T,o:e};let le,we;return t&&([le,we]=t(G)),{render:J,hydrate:le,createApp:d0(J,le)}}function Kr({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function pn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function lc(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ic(e,t,n=!1){const a=e.children,r=t.children;if(ne(a)&&ne(r))for(let o=0;o>1,e[n[l]]0&&(t[a]=n[o-1]),n[o]=a)}}for(o=n.length,s=n[o-1];o-- >0;)n[o]=s,s=t[s];return n}function cc(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:cc(t)}function nl(e){if(e)for(let t=0;tLe(_0);function ds(e,t){return fs(e,null,t)}function re(e,t,n){return fs(e,t,n)}function fs(e,t,n=xe){const{immediate:a,deep:r,flush:o,once:s}=n,l=De({},n),c=t&&a||!t&&o!=="post";let u;if(Hn){if(o==="sync"){const h=E0();u=h.__watcherHandles||(h.__watcherHandles=[])}else if(!c){const h=()=>{};return h.stop=Pt,h.resume=Pt,h.pause=Pt,h}}const p=$e;l.call=(h,g,b)=>Et(h,p,g,b);let d=!1;o==="post"?l.scheduler=h=>{at(h,p&&p.suspense)}:o!=="sync"&&(d=!0,l.scheduler=(h,g)=>{g?h():ls(h)}),l.augmentJob=h=>{t&&(h.flags|=4),d&&(h.flags|=2,p&&(h.id=p.uid,h.i=p))};const f=D2(e,t,l);return Hn&&(u?u.push(f):c&&f()),f}function x0(e,t,n){const a=this.proxy,r=Re(e)?e.includes(".")?uc(a,e):()=>a[e]:e.bind(a,a);let o;ae(t)?o=t:(o=t.handler,n=t);const s=Na(this),l=fs(r,o.bind(a),n);return s(),l}function uc(e,t){const n=t.split(".");return()=>{let a=e;for(let r=0;rt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Qe(t)}Modifiers`]||e[`${wn(t)}Modifiers`];function T0(e,t,...n){if(e.isUnmounted)return;const a=e.vnode.props||xe;let r=n;const o=t.startsWith("update:"),s=o&&S0(a,t.slice(7));s&&(s.trim&&(r=n.map(p=>Re(p)?p.trim():p)),s.number&&(r=n.map(Gu)));let l,c=a[l=Nr(t)]||a[l=Nr(Qe(t))];!c&&o&&(c=a[l=Nr(wn(t))]),c&&Et(c,e,6,r);const u=a[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Et(u,e,6,r)}}function pc(e,t,n=!1){const a=t.emitsCache,r=a.get(e);if(r!==void 0)return r;const o=e.emits;let s={},l=!1;if(!ae(e)){const c=u=>{const p=pc(u,t,!0);p&&(l=!0,De(s,p))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(Ae(e)&&a.set(e,null),null):(ne(o)?o.forEach(c=>s[c]=null):De(s,o),Ae(e)&&a.set(e,s),s)}function Ar(e,t){return!e||!Da(t)?!1:(t=t.slice(2).replace(/Once$/,""),de(e,t[0].toLowerCase()+t.slice(1))||de(e,wn(t))||de(e,t))}function Yr(e){const{type:t,vnode:n,proxy:a,withProxy:r,propsOptions:[o],slots:s,attrs:l,emit:c,render:u,renderCache:p,props:d,data:f,setupState:h,ctx:g,inheritAttrs:b}=e,_=br(e);let k,S;try{if(n.shapeFlag&4){const E=r||a,M=E;k=dt(u.call(M,E,p,d,h,f,g)),S=l}else{const E=t;k=dt(E.length>1?E(d,{attrs:l,slots:s,emit:c}):E(d,null)),S=t.props?l:C0(l)}}catch(E){ha.length=0,Ba(E,e,1),k=Me(ot)}let y=k;if(S&&b!==!1){const E=Object.keys(S),{shapeFlag:M}=y;E.length&&M&7&&(o&&E.some(Go)&&(S=L0(S,o)),y=nn(y,S,!1,!0))}return n.dirs&&(y=nn(y,null,!1,!0),y.dirs=y.dirs?y.dirs.concat(n.dirs):n.dirs),n.transition&&kn(y,n.transition),k=y,br(_),k}const C0=e=>{let t;for(const n in e)(n==="class"||n==="style"||Da(n))&&((t||(t={}))[n]=e[n]);return t},L0=(e,t)=>{const n={};for(const a in e)(!Go(a)||!(a.slice(9)in t))&&(n[a]=e[a]);return n};function A0(e,t,n){const{props:a,children:r,component:o}=e,{props:s,children:l,patchFlag:c}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return a?al(a,s,u):!!s;if(c&8){const p=t.dynamicProps;for(let d=0;de.__isSuspense;function hc(e,t){t&&t.pendingBranch?ne(e)?t.effects.push(...e):t.effects.push(e):R2(e)}const rt=Symbol.for("v-fgt"),yn=Symbol.for("v-txt"),ot=Symbol.for("v-cmt"),fa=Symbol.for("v-stc"),ha=[];let lt=null;function v7(e=!1){ha.push(lt=e?null:[])}function I0(){ha.pop(),lt=ha[ha.length-1]||null}let Ea=1;function rl(e,t=!1){Ea+=e,e<0&<&&t&&(lt.hasOnce=!0)}function j0(e){return e.dynamicChildren=Ea>0?lt||On:null,I0(),Ea>0&<&<.push(e),e}function m7(e,t,n,a,r,o){return j0(mc(e,t,n,a,r,o,!0))}function wr(e){return e?e.__v_isVNode===!0:!1}function vn(e,t){return e.type===t.type&&e.key===t.key}const vc=({key:e})=>e??null,fr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Re(e)||Pe(e)||ae(e)?{i:ft,r:e,k:t,f:!!n}:e:null);function mc(e,t=null,n=null,a=0,r=null,o=e===rt?0:1,s=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&vc(t),ref:t&&fr(t),scopeId:Fi,slotScopeIds:null,children:n,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:a,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:ft};return l?(hs(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=Re(n)?8:16),Ea>0&&!s&<&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&<.push(c),c}const Me=P0;function P0(e,t=null,n=null,a=0,r=null,o=!1){if((!e||e===a0)&&(e=ot),wr(e)){const l=nn(e,t,!0);return n&&hs(l,n),Ea>0&&!o&<&&(l.shapeFlag&6?lt[lt.indexOf(e)]=l:lt.push(l)),l.patchFlag=-2,l}if(H0(e)&&(e=e.__vccOpts),t){t=D0(t);let{class:l,style:c}=t;l&&!Re(l)&&(t.class=Qo(l)),Ae(c)&&(os(c)&&!ne(c)&&(c=De({},c)),t.style=Xo(c))}const s=Re(e)?1:fc(e)?128:Ni(e)?64:Ae(e)?4:ae(e)?2:0;return mc(e,t,n,a,r,s,o,!0)}function D0(e){return e?os(e)||ec(e)?De({},e):e:null}function nn(e,t,n=!1,a=!1){const{props:r,ref:o,patchFlag:s,children:l,transition:c}=e,u=t?O0(r||{},t):r,p={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&vc(u),ref:t&&t.ref?n&&o?ne(o)?o.concat(fr(t)):[o,fr(t)]:fr(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==rt?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&nn(e.ssContent),ssFallback:e.ssFallback&&nn(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&a&&kn(p,c.clone(p)),p}function gc(e=" ",t=0){return Me(yn,null,e,t)}function g7(e,t){const n=Me(fa,null,e);return n.staticCount=t,n}function dt(e){return e==null||typeof e=="boolean"?Me(ot):ne(e)?Me(rt,null,e.slice()):wr(e)?Qt(e):Me(yn,null,String(e))}function Qt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:nn(e)}function hs(e,t){let n=0;const{shapeFlag:a}=e;if(t==null)t=null;else if(ne(t))n=16;else if(typeof t=="object")if(a&65){const r=t.default;r&&(r._c&&(r._d=!1),hs(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!ec(t)?t._ctx=ft:r===3&&ft&&(ft.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ae(t)?(t={default:t,_ctx:ft},n=32):(t=String(t),a&64?(n=16,t=[gc(t)]):n=8);e.children=t,e.shapeFlag|=n}function O0(...e){const t={};for(let n=0;n$e||ft;let _r,Co;{const e=Tr(),t=(n,a)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(a),o=>{r.length>1?r.forEach(s=>s(o)):r[0](o)}};_r=t("__VUE_INSTANCE_SETTERS__",n=>$e=n),Co=t("__VUE_SSR_SETTERS__",n=>Hn=n)}const Na=e=>{const t=$e;return _r(e),e.scope.on(),()=>{e.scope.off(),_r(t)}},ol=()=>{$e&&$e.scope.off(),_r(null)};function yc(e){return e.vnode.shapeFlag&4}let Hn=!1;function $0(e,t=!1,n=!1){t&&Co(t);const{props:a,children:r}=e.vnode,o=yc(e);f0(e,a,o,t),g0(e,r,n);const s=o?J0(e,t):void 0;return t&&Co(!1),s}function J0(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,o0);const{setup:a}=n;if(a){an();const r=e.setupContext=a.length>1?N0(e):null,o=Na(e),s=Ra(a,e,0,[e.props,r]),l=mi(s);if(rn(),o(),(l||e.sp)&&!$n(e)&&cs(e),l){if(s.then(ol,ol),t)return s.then(c=>{sl(e,c,t)}).catch(c=>{Ba(c,e,0)});e.asyncDep=s}else sl(e,s,t)}else bc(e,t)}function sl(e,t,n){ae(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ae(t)&&(e.setupState=Ri(t)),bc(e,n)}let ll;function bc(e,t,n){const a=e.type;if(!e.render){if(!t&&ll&&!a.render){const r=a.template||us(e).template;if(r){const{isCustomElement:o,compilerOptions:s}=e.appContext.config,{delimiters:l,compilerOptions:c}=a,u=De(De({isCustomElement:o,delimiters:l},s),c);a.render=ll(r,u)}}e.render=a.render||Pt}{const r=Na(e);an();try{s0(e)}finally{rn(),r()}}}const F0={get(e,t){return ze(e,"get",""),e[t]}};function N0(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,F0),slots:e.slots,emit:e.emit,expose:t}}function vs(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ri(E2(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in da)return da[n](e)},has(t,n){return n in t||n in da}})):e.proxy}function V0(e,t=!0){return ae(e)?e.displayName||e.name:e.name||t&&e.__name}function H0(e){return ae(e)&&"__vccOpts"in e}const w=(e,t)=>j2(e,t,Hn);function i(e,t,n){const a=arguments.length;return a===2?Ae(t)&&!ne(t)?wr(t)?Me(e,null,[t]):Me(e,t):Me(e,null,t):(a>3?n=Array.prototype.slice.call(arguments,2):a===3&&wr(n)&&(n=[n]),Me(e,t,n))}const z0="3.5.13";/**
+* @vue/runtime-dom v3.5.13
+* (c) 2018-present Yuxi (Evan) You and Vue contributors
+* @license MIT
+**/let Lo;const il=typeof window<"u"&&window.trustedTypes;if(il)try{Lo=il.createPolicy("vue",{createHTML:e=>e})}catch{}const kc=Lo?e=>Lo.createHTML(e):e=>e,q0="http://www.w3.org/2000/svg",U0="http://www.w3.org/1998/Math/MathML",Jt=typeof document<"u"?document:null,cl=Jt&&Jt.createElement("template"),W0={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,a)=>{const r=t==="svg"?Jt.createElementNS(q0,e):t==="mathml"?Jt.createElementNS(U0,e):n?Jt.createElement(e,{is:n}):Jt.createElement(e);return e==="select"&&a&&a.multiple!=null&&r.setAttribute("multiple",a.multiple),r},createText:e=>Jt.createTextNode(e),createComment:e=>Jt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Jt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,a,r,o){const s=n?n.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===o||!(r=r.nextSibling)););else{cl.innerHTML=kc(a==="svg"?`${e}`:a==="mathml"?`${e}`:e);const l=cl.content;if(a==="svg"||a==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},qt="transition",ra="animation",zn=Symbol("_vtc"),wc={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},_c=De({},Hi,wc),G0=e=>(e.displayName="Transition",e.props=_c,e),qn=G0((e,{slots:t})=>i(F2,Ec(e),t)),dn=(e,t=[])=>{ne(e)?e.forEach(n=>n(...t)):e&&e(...t)},ul=e=>e?ne(e)?e.some(t=>t.length>1):e.length>1:!1;function Ec(e){const t={};for(const D in e)D in wc||(t[D]=e[D]);if(e.css===!1)return t;const{name:n="v",type:a,duration:r,enterFromClass:o=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:u=s,appearToClass:p=l,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,g=K0(r),b=g&&g[0],_=g&&g[1],{onBeforeEnter:k,onEnter:S,onEnterCancelled:y,onLeave:E,onLeaveCancelled:M,onBeforeAppear:A=k,onAppear:q=S,onAppearCancelled:X=y}=t,F=(D,Q,ve,be)=>{D._enterCancelled=be,Gt(D,Q?p:l),Gt(D,Q?u:s),ve&&ve()},I=(D,Q)=>{D._isLeaving=!1,Gt(D,d),Gt(D,h),Gt(D,f),Q&&Q()},N=D=>(Q,ve)=>{const be=D?q:S,U=()=>F(Q,D,ve);dn(be,[Q,U]),pl(()=>{Gt(Q,D?c:o),At(Q,D?p:l),ul(be)||dl(Q,a,b,U)})};return De(t,{onBeforeEnter(D){dn(k,[D]),At(D,o),At(D,s)},onBeforeAppear(D){dn(A,[D]),At(D,c),At(D,u)},onEnter:N(!1),onAppear:N(!0),onLeave(D,Q){D._isLeaving=!0;const ve=()=>I(D,Q);At(D,d),D._enterCancelled?(At(D,f),Ao()):(Ao(),At(D,f)),pl(()=>{D._isLeaving&&(Gt(D,d),At(D,h),ul(E)||dl(D,a,_,ve))}),dn(E,[D,ve])},onEnterCancelled(D){F(D,!1,void 0,!0),dn(y,[D])},onAppearCancelled(D){F(D,!0,void 0,!0),dn(X,[D])},onLeaveCancelled(D){I(D),dn(M,[D])}})}function K0(e){if(e==null)return null;if(Ae(e))return[Xr(e.enter),Xr(e.leave)];{const t=Xr(e);return[t,t]}}function Xr(e){return Ku(e)}function At(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[zn]||(e[zn]=new Set)).add(t)}function Gt(e,t){t.split(/\s+/).forEach(a=>a&&e.classList.remove(a));const n=e[zn];n&&(n.delete(t),n.size||(e[zn]=void 0))}function pl(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Y0=0;function dl(e,t,n,a){const r=e._endId=++Y0,o=()=>{r===e._endId&&a()};if(n!=null)return setTimeout(o,n);const{type:s,timeout:l,propCount:c}=xc(e,t);if(!s)return a();const u=s+"end";let p=0;const d=()=>{e.removeEventListener(u,f),o()},f=h=>{h.target===e&&++p>=c&&d()};setTimeout(()=>{p(n[g]||"").split(", "),r=a(`${qt}Delay`),o=a(`${qt}Duration`),s=fl(r,o),l=a(`${ra}Delay`),c=a(`${ra}Duration`),u=fl(l,c);let p=null,d=0,f=0;t===qt?s>0&&(p=qt,d=s,f=o.length):t===ra?u>0&&(p=ra,d=u,f=c.length):(d=Math.max(s,u),p=d>0?s>u?qt:ra:null,f=p?p===qt?o.length:c.length:0);const h=p===qt&&/\b(transform|all)(,|$)/.test(a(`${qt}Property`).toString());return{type:p,timeout:d,propCount:f,hasTransform:h}}function fl(e,t){for(;e.lengthhl(n)+hl(e[a])))}function hl(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Ao(){return document.body.offsetHeight}function X0(e,t,n){const a=e[zn];a&&(t=(t?[t,...a]:[...a]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const vl=Symbol("_vod"),Q0=Symbol("_vsh"),Z0=Symbol(""),e3=/(^|;)\s*display\s*:/;function t3(e,t,n){const a=e.style,r=Re(n);let o=!1;if(n&&!r){if(t)if(Re(t))for(const s of t.split(";")){const l=s.slice(0,s.indexOf(":")).trim();n[l]==null&&hr(a,l,"")}else for(const s in t)n[s]==null&&hr(a,s,"");for(const s in n)s==="display"&&(o=!0),hr(a,s,n[s])}else if(r){if(t!==n){const s=a[Z0];s&&(n+=";"+s),a.cssText=n,o=e3.test(n)}}else t&&e.removeAttribute("style");vl in e&&(e[vl]=o?a.display:"",e[Q0]&&(a.display="none"))}const ml=/\s*!important$/;function hr(e,t,n){if(ne(n))n.forEach(a=>hr(e,t,a));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const a=n3(e,t);ml.test(n)?e.setProperty(wn(a),n.replace(ml,""),"important"):e[a]=n}}const gl=["Webkit","Moz","ms"],Qr={};function n3(e,t){const n=Qr[t];if(n)return n;let a=Qe(t);if(a!=="filter"&&a in e)return Qr[t]=a;a=Oa(a);for(let r=0;rZr||(l3.then(()=>Zr=0),Zr=Date.now());function c3(e,t){const n=a=>{if(!a._vts)a._vts=Date.now();else if(a._vts<=n.attached)return;Et(u3(a,n.value),t,5,[a])};return n.value=e,n.attached=i3(),n}function u3(e,t){if(ne(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(a=>r=>!r._stopped&&a&&a(r))}else return t}const El=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,p3=(e,t,n,a,r,o)=>{const s=r==="svg";t==="class"?X0(e,a,s):t==="style"?t3(e,n,a):Da(t)?Go(t)||o3(e,t,n,a,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):d3(e,t,a,s))?(kl(e,t,a),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&bl(e,t,a,s,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!Re(a))?kl(e,Qe(t),a,o,t):(t==="true-value"?e._trueValue=a:t==="false-value"&&(e._falseValue=a),bl(e,t,a,s))};function d3(e,t,n,a){if(a)return!!(t==="innerHTML"||t==="textContent"||t in e&&El(t)&&ae(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return El(t)&&Re(n)?!1:t in e}const Sc=new WeakMap,Tc=new WeakMap,Er=Symbol("_moveCb"),xl=Symbol("_enterCb"),f3=e=>(delete e.props.mode,e),h3=f3({name:"TransitionGroup",props:De({},_c,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Fa(),a=Vi();let r,o;return Gi(()=>{if(!r.length)return;const s=e.moveClass||`${e.name||"v"}-move`;if(!b3(r[0].el,n.vnode.el,s))return;r.forEach(m3),r.forEach(g3);const l=r.filter(y3);Ao(),l.forEach(c=>{const u=c.el,p=u.style;At(u,s),p.transform=p.webkitTransform=p.transitionDuration="";const d=u[Er]=f=>{f&&f.target!==u||(!f||/transform$/.test(f.propertyName))&&(u.removeEventListener("transitionend",d),u[Er]=null,Gt(u,s))};u.addEventListener("transitionend",d)})}),()=>{const s=ce(e),l=Ec(s);let c=s.tag||rt;if(r=[],o)for(let u=0;u{l.split(/\s+/).forEach(c=>c&&a.classList.remove(c))}),n.split(/\s+/).forEach(l=>l&&a.classList.add(l)),a.style.display="none";const o=t.nodeType===1?t:t.parentNode;o.appendChild(a);const{hasTransform:s}=xc(a);return o.removeChild(a),s}const k3=De({patchProp:p3},W0);let eo,Sl=!1;function w3(){return eo=Sl?eo:b0(k3),Sl=!0,eo}const _3=(...e)=>{const t=w3().createApp(...e),{mount:n}=t;return t.mount=a=>{const r=x3(a);if(r)return n(r,!0,E3(r))},t};function E3(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function x3(e){return Re(e)?document.querySelector(e):e}var S3=["link","meta","script","style","noscript","template"],T3=["title","base"],C3=([e,t,n])=>T3.includes(e)?e:S3.includes(e)?e==="meta"&&t.name?`${e}.${t.name}`:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,Object.entries(t).map(([a,r])=>typeof r=="boolean"?r?[a,""]:null:[a,r]).filter(a=>a!=null).sort(([a],[r])=>a.localeCompare(r)),n]):null,L3=e=>{const t=new Set,n=[];return e.forEach(a=>{const r=C3(a);r&&!t.has(r)&&(t.add(r),n.push(a))}),n},A3=e=>e[0]==="/"?e:`/${e}`,ms=e=>e[e.length-1]==="/"||e.endsWith(".html")?e:`${e}/`,Dt=e=>/^(https?:)?\/\//.test(e),I3=/.md((\?|#).*)?$/,xa=(e,t="/")=>!!(Dt(e)||e.startsWith("/")&&!e.startsWith(t)&&!I3.test(e)),Cc=e=>/^[a-z][a-z0-9+.-]*:/.test(e),_n=e=>Object.prototype.toString.call(e)==="[object Object]",j3=e=>{const[t,...n]=e.split(/(\?|#)/);if(!t||t.endsWith("/"))return e;let a=t.replace(/(^|\/)README.md$/i,"$1index.html");return a.endsWith(".md")?a=a.substring(0,a.length-3)+".html":a.endsWith(".html")||(a=a+".html"),a.endsWith("/index.html")&&(a=a.substring(0,a.length-10)),a+n.join("")},Ir=e=>e[e.length-1]==="/"?e.slice(0,-1):e,Lc=e=>e[0]==="/"?e.slice(1):e,P3=(e,t)=>{const n=Object.keys(e).sort((a,r)=>{const o=r.split("/").length-a.split("/").length;return o!==0?o:r.length-a.length});for(const a of n)if(t.startsWith(a))return a;return"/"},Tl=(e,t="/")=>{const n=e.replace(/^(https?:)?\/\/[^/]*/,"");return n.startsWith(t)?`/${n.slice(t.length)}`:n},Se=e=>typeof e=="string";const D3="modulepreload",O3=function(e){return"/"+e},Cl={},L=function(t,n,a){let r=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),s=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));r=Promise.all(n.map(l=>{if(l=O3(l),l in Cl)return;Cl[l]=!0;const c=l.endsWith(".css"),u=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${u}`))return;const p=document.createElement("link");if(p.rel=c?"stylesheet":D3,c||(p.as="script",p.crossOrigin=""),p.href=l,s&&p.setAttribute("nonce",s),document.head.appendChild(p),c)return new Promise((d,f)=>{p.addEventListener("load",d),p.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${l}`)))})}))}return r.then(()=>t()).catch(o=>{const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=o,window.dispatchEvent(s),!s.defaultPrevented)throw o})},M3=JSON.parse("{}"),R3=Object.fromEntries([["/",{loader:()=>L(()=>import("./index.html-BCfMOB5v.js"),__vite__mapDeps([0,1])),meta:{t:"最新发布",i:"home"}}],["/about-me.html",{loader:()=>L(()=>import("./about-me.html-DyKiCIbZ.js"),__vite__mapDeps([2,1])),meta:{a:"会敲代码的程序猿",d:9135936e5,l:"1998年12月14日",c:"程序人生",g:"程序人生",o:!1,e:`
+

欢迎访问我的博客网站 www.geekyspace.cn,与我一起探索科技的未来!

+

本博客维护人周宇,在Java和相关技术领域拥有多年的专业经验。 +此前,我在深圳南山 Liquido 工作,这是一家专注于金融领域, +提供拉美地区支付解决方案的公司。

`,r:{minutes:1.75,words:525},t:"个人简介",i:"circle-info",y:"a"}}],["/article.html",{loader:()=>L(()=>import("./article.html-5XUpgMgj.js"),__vite__mapDeps([3,1])),meta:{t:"文库汇总",i:"home"}}],["/md/docker/install.html",{loader:()=>L(()=>import("./install.html-v_HZpoQQ.js"),__vite__mapDeps([4,1])),meta:{a:"会敲代码的程序猿",d:17316288e5,l:"2024年11月15日",c:"Docker",g:"Docker",o:!0,e:` +

多平台安装

+

安装软件这种基础的操作,直接 参考官方文档即可:

+`,r:{minutes:.45,words:135},t:"Docker安装",y:"a"}}],["/md/docker/mirror-acceleration.html",{loader:()=>L(()=>import("./mirror-acceleration.html-3RwdQvIU.js"),__vite__mapDeps([5,1])),meta:{a:"会敲代码的程序猿",d:17317152e5,l:"2024年11月16日",c:"Docker",g:"Docker",o:!0,e:` +

镜像加速器

+
+

阿里云镜像加速器,有针对Ubuntu,CentOS,Mac,Windows的配置教程

+
+

镜像源配置文件

+
    +
  • Linux:/etc/docker/daemon.json
  • +
  • Windows: %USERPROFILE%\\.docker\\daemon.json
  • +
`,r:{minutes:.52,words:157},t:"Docker镜像加速器",y:"a"}}],["/md/docker/overview.html",{loader:()=>L(()=>import("./overview.html-Be9rsIfk.js"),__vite__mapDeps([6,1])),meta:{a:"会敲代码的程序猿",d:17316288e5,l:"2024年11月15日",c:"Docker",g:"Docker",o:!0,e:` +

Docker是什么?

+
+

核心定义: Docker 是一个开源的容器化平台,用于快速构建、部署和运行应用程序。

+
+

三大特性:

+
    +
  1. 轻量: 容器共享操作系统内核,启动快,占用资源少。
  2. +
  3. 可移植: 一次构建,随处运行(开发、测试、生产环境一致)。
  4. +
  5. 高效: 资源利用率高,支持微服务架构。
  6. +
`,r:{minutes:1.29,words:386},t:"Docker概述",y:"a"}}],["/md/docker/top20-commands.html",{loader:()=>L(()=>import("./top20-commands.html-ovQRG3Bf.js"),__vite__mapDeps([7,1])),meta:{a:"会敲代码的程序猿",d:173232e7,l:"2024年11月23日",c:"Docker",g:"Docker",o:!0,e:` +

作为一款领先的容器化工具,Docker 提供了强大的功能,让开发者和运维人员能够快速构建、部署和管理应用。 +在这篇文章中,我们将介绍 20 条最常用的 Docker 命令,并结合详细说明,帮助大家轻松掌握 Docker 的基本操作。

+`,r:{minutes:3.06,words:919},t:"Top20常用命令",y:"a"}}],["/md/idea-tips/activation.html",{loader:()=>L(()=>import("./activation.html-FM9dqCkK.js"),__vite__mapDeps([8,1])),meta:{a:"会敲代码的程序猿",d:1713312e6,l:"2024年4月17日",c:"IDEA",g:"IntelliJ IDEA",o:!0,e:` +

适用于Mac系统

+
+

仅支持官网专业版2020-2024的激活。不支持社区版 toolbox下载的IDEA。

+
+

1️⃣ 第一步:下载激活文件

+

https://h5.m.goofish.com/item?id=787912789834

+

2️⃣ 第二步:打开激活文件 macjihuo.zip,解压缩

`,r:{minutes:1.46,words:439},t:"2024最新IntelliJ IDEA专业版稳定正版激活码",y:"a"}}],["/md/installation-guide/",{loader:()=>L(()=>import("./index.html-BRBLT9lf.js"),__vite__mapDeps([9,1])),meta:{a:"会敲代码的程序猿",d:17138304e5,l:"2024年4月23日",c:"安装大全",g:"安装大全",o:!0,e:` +

该专栏主要整理与汇总开发者常用的编程环境、中间件等工具的安装,以指导开发者快速搭建自己的需要的开发环境。

+`,r:{minutes:.3,words:91},t:"开发者安装大全",i:"spring",y:"a"}}],["/md/java-features/",{loader:()=>L(()=>import("./index.html-BEsvgm7T.js"),__vite__mapDeps([10,1])),meta:{a:"会敲代码的程序猿",d:17030304e5,l:"2023年12月20日",c:"Java",g:"Java Features",u:!0,o:!0,e:` +

为了帮助大家跟上最新的技术潮流,计划启动一个专栏,重点分享Java领域的前沿知识。 +这个专栏将详细解读从Java 8 - 最新版本的各种有趣的新特性。 +会持续不断地发布相关内容,希望大家能够关注并收藏起来,跟随我们一起深入了解Java的最新进展!

+

详细了解Java Enhancement Proposals(JEPs)及其最新动态

+`,r:{minutes:5.77,words:1731},t:"Java新版本特性(持续连载)",i:"java",y:"a"}}],["/md/jvm/",{loader:()=>L(()=>import("./index.html-D_hEz2X7.js"),__vite__mapDeps([11,1])),meta:{a:"会敲代码的程序猿",d:17230752e5,l:"2024年8月8日",c:"JVM",g:"JVM",o:!0,e:` +

前言(Preface)

+

致谢(Acknowledgements)

+

第一部分 走近Java(Part 1: Approaching Java)

+`,r:{minutes:3.37,words:1011},t:"深入理解Java虚拟机",y:"a"}}],["/md/spring-boot/",{loader:()=>L(()=>import("./index.html-DdWdg-lM.js"),__vite__mapDeps([12,1])),meta:{a:"会敲代码的程序猿",d:17104608e5,l:"2024年3月15日",c:"Spring Boot",g:"Spring Boot",o:!0,e:` +`,r:{minutes:.11,words:34},t:"Spring Boot 入门教程",i:"spring",y:"a"}}],["/md/spring-boot/quickstart.html",{loader:()=>L(()=>import("./quickstart.html-DjC_ivvA.js"),__vite__mapDeps([13,1])),meta:{a:"会敲代码的程序猿",d:17104608e5,l:"2024年3月15日",c:"Spring Boot",g:"Spring Boot",o:!0,e:` +`,r:{minutes:.12,words:35},t:"SpringBoot 快速入门",O:1,y:"a"}}],["/md/spring-data-jpa/",{loader:()=>L(()=>import("./index.html-CFgpfWFk.js"),__vite__mapDeps([14,1])),meta:{a:"会敲代码的程序猿",d:17121888e5,l:"2024年4月4日",c:"Spring Data",g:"Spring Data JPA",o:!0,e:` +

目录

+ +`,r:{minutes:.15,words:45},t:"Spring Data JPA",i:"spring",y:"a"}}],["/md/installation-guide/os/windows-office-activation.html",{loader:()=>L(()=>import("./windows-office-activation.html-CeGTlQZf.js"),__vite__mapDeps([15,1])),meta:{a:"会敲代码的程序猿",d:17138304e5,l:"2024年4月23日",c:"安装大全",g:["Windows","Office"],o:!0,e:` +

① 微软正版秘钥(官方)

+

01.Windows系统激活

+
    +
  1. Win+R 打开终端,输入命令
  2. +
+
slui 3
+
    +
  1. 打开“系统激活”窗口,点击“更改”按钮
  2. +
+
更改产品密钥
更改产品密钥
`,r:{minutes:3.58,words:1075},t:"Windows、Office激活密钥,脚本,程序",y:"a"}}],["/md/java-features/Java10/jep286-local-variable-type-inference.html",{loader:()=>L(()=>import("./jep286-local-variable-type-inference.html-DG5G3YaJ.js"),__vite__mapDeps([16,1])),meta:{a:"会敲代码的程序猿",d:17032896e5,l:"2023年12月23日",c:"Java",g:"Java Features",o:!0,e:` +

Java 10 引入了一项新的语言特性,即局部变量类型推断(Local-Variable Type Inference), +它允许在局部变量声明时,根据变量的初始值,推断出变量的数据类型。

+

语法

+

局部变量类型推断的语法非常简单,只需要将 var 关键字作为局部变量的类型即可。

+
var list = new ArrayList<String>();  // 自动推断 ArrayList<String>
+var stream = list.stream();          // 自动推断 Stream<String>
+
`,r:{minutes:1.57,words:471},t:"Java 10 新特性:局部变量类型推断",O:286,y:"a"}}],["/md/java-features/Java11/jep320-remove-JavaEE-CORBA.html",{loader:()=>L(()=>import("./jep320-remove-JavaEE-CORBA.html-Df2km1Ka.js"),__vite__mapDeps([17,1])),meta:{a:"会敲代码的程序猿",d:1703376e6,l:"2023年12月24日",c:"Java",g:"Java Features",o:!0,e:` +

Java 11 中移除了 Java EECORBA 模块,同时 JavaFX 也被剥离,但仍可作为独立模块使用。

+

Java9 弃用过程

+

在 Java 9 中,Java EECORBA 模块被标记为 @Deprecated,为开发者提供了适应期。

+

Java11 彻底删除

+

Java 11 完全删除了以下九个模块:

+
    +
  • java.xml.ws(包含 JAX-WS、SAAJ 和 Web 服务元数据)
  • +
  • java.xml.bind(JAXB)
  • +
  • java.activation(JAF)
  • +
  • java.xml.ws.annotation(常用注解)
  • +
  • java.corba(CORBA)
  • +
  • java.transaction(JTA)
  • +
  • java.se.ee (以上6个模块的聚合模块)
  • +
  • jdk.xml.ws (JAX-WS 工具)
  • +
  • jdk.xml.bind (JAXB 工具)
  • +
`,r:{minutes:1.13,words:338},t:"Java 11 新特性 :移除JavaEE和CORBA模块以及JavaFX",s:"Java 11 新特性 :移除JavaEE和CORBA模块",O:320,y:"a"}}],["/md/java-features/Java14/jep361-switch-expressions.html",{loader:()=>L(()=>import("./jep361-switch-expressions.html-D2ISh1n_.js"),__vite__mapDeps([18,1])),meta:{a:"会敲代码的程序猿",d:17034624e5,l:"2023年12月25日",c:"Java",g:"Java Features",o:!0,e:` +

Java 14(JEP 361)引入了 switch 表达式的新特性,其中包括了 "箭头标签case ... ->)" 和 yield 语句的增强, +同时支持 Lambda 语法,使得代码更加灵活、简洁,并为未来的模式匹配(JEP 305)特性做好了准备。

+

传统的switch语句

+

首先,让我们回顾一下传统的switch语句,它们在处理多个条件时可能显得有些冗长:

+
switch (day) {
+    case MONDAY:
+    case FRIDAY:
+    case SUNDAY:
+        System.out.println(6);
+        break;
+    case TUESDAY:
+        System.out.println(7);
+        break;
+    case THURSDAY:
+    case SATURDAY:
+        System.out.println(8);
+        break;
+    case WEDNESDAY:
+        System.out.println(9);
+        break;
+}
+
`,r:{minutes:2.46,words:737},t:"Java 14 新特性:switch表达式增强",O:361,y:"a"}}],["/md/java-features/Java15/jep371-hidden-classes.html",{loader:()=>L(()=>import("./jep371-hidden-classes.html-15ENWn1z.js"),__vite__mapDeps([19,1])),meta:{a:"会敲代码的程序猿",d:17035488e5,l:"2023年12月26日",c:"Java",g:"Java Features",o:!0,e:` +

隐藏类(Hidden Classes) 提供了一种在运行时生成类的机制,在编译时未知,并且不能直接在源代码中引用, +需要通过反射间接使用它们,隐藏类是为框架设计的,具有以下特性:

+
    +
  • 动态生成内部类:隐藏类天生为框架设计,在运行时生成内部类
  • +
  • 反射访问限制:隐藏类只能通过反射访问,不能直接被其他类的字节码访问
  • +
  • 独立加载和卸载:隐藏类可以独立于其他类加载和卸载
  • +
  • 框架扩展性:适用于需要在运行时生成类的框架,提高语言的灵活性和效率
  • +
`,r:{minutes:.78,words:235},t:"Java 15 新特性:隐藏类(Hidden Classes)",O:371,y:"a"}}],["/md/java-features/Java15/jep378-text-blocks.html",{loader:()=>L(()=>import("./jep378-text-blocks.html-fz-yXi_D.js"),__vite__mapDeps([20,1])),meta:{a:"会敲代码的程序猿",d:17036352e5,l:"2023年12月27日",c:"Java",g:"Java Features",o:!0,e:` +

Java 15(JEP 378)引入了文本块(Text Blocks)这一新特性,旨在简化多行字符串的表示,提高代码可读性,并减少在字符串中使用转义符的需求。 +文本块通过引入三个双引号的胖分隔符""")来实现,同时支持转义序列,为开发人员提供更直观、易读的字符串处理方式。

+

快速上手

+

HTML示例

+
// 使用“一维”字符串文字
+String html = "<html>\\n" +
+              "    <body>\\n" +
+              "        <p>Hello, world</p>\\n" +
+              "    </body>\\n" +
+              "</html>\\n";
+
+// 使用“二维”文本块
+String html = """
+              <html>
+                  <body>
+                      <p>Hello, world</p>
+                  </body>
+              </html>
+              """;
+
`,r:{minutes:3.45,words:1035},t:"Java 15 新特性:文本块(Text Blocks)",O:378,y:"a"}}],["/md/java-features/Java16/jep394-pattern-matching-for-instanceof.html",{loader:()=>L(()=>import("./jep394-pattern-matching-for-instanceof.html-C1bHKx_C.js"),__vite__mapDeps([21,1])),meta:{a:"会敲代码的程序猿",d:17037216e5,l:"2023年12月28日",c:"Java",g:"Java Features",o:!0,e:` +

Java 16 引入了instanceof模式匹配的增强语法,用于更简便地判断对象是否是某个类的实例并进行相应的局部类型转换

+

instanceof 基础用法

+
if (obj instanceof String) {
+    String someString = (String) obj;  // 强制类型转换
+    // ... 
+}
+
`,r:{minutes:1.34,words:402},t:"Java 16 新特性:instanceof 模式匹配",O:394,y:"a"}}],["/md/java-features/Java16/jep395-records.html",{loader:()=>L(()=>import("./jep395-records.html-D-omvLts.js"),__vite__mapDeps([22,1])),meta:{a:"会敲代码的程序猿",d:1703808e6,l:"2023年12月29日",c:"Java",g:"Java Features",o:!0,e:` +

Java 16 引入的记录类(Records Classes)是一种用于简化不可变数据管理的特殊类。 +它通过紧凑的语法提供了对不可变数据的支持,并自动生成常见的方法, +如equals()hashCode()toString()等,从而减少了开发者的样板代码。

+

传统Java Bean问题

+

在处理不可变数据时,传统的Java Bean存在“繁琐”和“冗长”的问题。 +为了管理少量值的不可变数据,开发者需要编写大量低价值、重复且容易出错的代码, +包括构造函数访问器(getter/setter)equalshashCodetoString等。

`,r:{minutes:3.84,words:1152},t:"Java 16 新特性:record类",O:395,y:"a"}}],["/md/java-features/Java17/jep406-pattern-matching-for-switch-preview.html",{loader:()=>L(()=>import("./jep406-pattern-matching-for-switch-preview.html-B5tl6Bkn.js"),__vite__mapDeps([23,1])),meta:{a:"会敲代码的程序猿",d:17038944e5,l:"2023年12月30日",c:"Java",g:"Java Features",o:!0,e:` +

当case标签可以有模式时,有如下四个主要的设计问题,我们一一来看:

+
    +
  1. 增强类型检查
  2. +
  3. switch表达式和语句的完整性
  4. +
  5. 模式变量声明的作用域
  6. +
  7. 处理null
  8. +
+

模式匹配设计

+

增强类型检查

+

通过扩展switch模式匹配的case标签,现在支持除了原始数据类型charbyteshortint)之外, +相应的包装类CharacterByteShortInteger)、String 以及Enum类型等任何引用类型

`,r:{minutes:4.39,words:1316},t:"Java 17 新特性:switch模式匹配(Preview)",O:406,y:"a"}}],["/md/java-features/Java17/jep409-sealed-classes.html",{loader:()=>L(()=>import("./jep409-sealed-classes.html-YmNwBCzd.js"),__vite__mapDeps([24,1])),meta:{a:"会敲代码的程序猿",d:17039808e5,l:"2023年12月31日",c:"Java",g:"Java Features",o:!0,e:` +

Java 17 中引入了密封类(Sealed Classes),它是一种限制的类和接口, +可以控制哪些类继承或实现它,保证在编译时就能够确定类的继承关系,提高代码的可读性和可维护性。

+

密封类语法

+

密封类的声明使用关键字 sealed,并通过 permits 关键字声明允许继承或实现的类。

+
// 密封类
+public abstract sealed class 类名 extends 父类名 permits 子类名1, 子类名2, ... {
+  // 类的成员
+}
+
+// 密封接口
+public sealed interface 接口名 extends 父接口名 permits 子类名1, 子类名2, ... {
+  // 接口的成员
+}
+
`,r:{minutes:1.54,words:463},t:"Java 17 新特性:sealed类",O:409,y:"a"}}],["/md/java-features/Java18/jep400-utf8-by-default.html",{loader:()=>L(()=>import("./jep400-utf8-by-default.html-DbQM-QjB.js"),__vite__mapDeps([25,1])),meta:{a:"会敲代码的程序猿",d:17040672e5,l:"2024年1月1日",c:"Java",g:"Java Features",o:!0,e:` +

在Java 18中,将UTF-8指定为标准Java API 的默认字符集, +以提高Java程序在不同实现、操作系统、区域设置和配置下的一致性。

+

目标

+
    +
  • 使Java程序在依赖默认字符集的代码上更加可预测和可移植
  • +
  • 明确标准Java API在何处使用默认字符集
  • +
  • 在标准Java API中统一使用UTF-8,除了控制台I/O
  • +
+

尽管这项工作可能会发现新的便利方法可能会使现有的API更易于使用,但这一更改并不是要弃用或删除依赖默认字符集的标准Java API。

`,r:{minutes:4.59,words:1377},t:"Java 18 新特性:指定UTF-8为默认字符集",O:400,y:"a"}}],["/md/java-features/Java18/jep408-simple-web-server.html",{loader:()=>L(()=>import("./jep408-simple-web-server.html-Bx0IMcBb.js"),__vite__mapDeps([26,1])),meta:{a:"会敲代码的程序猿",d:17041536e5,l:"2024年1月2日",c:"Java",g:"Java Features",o:!0,e:` +

Java 18 引入了简单Web服务器(Simple Web Server),一个专为教育或非正式任务设计的最小HTTP服务器,为单个目录层次结构提供服务。 +基于JDK中的com.sun.net.httpserver包实现,旨在简化服务器的创建和请求处理过程。

+

主要特点:

+
    +
  • 不能替代成熟的商业服务器,如JettyNginxApache Tomcat
  • +
  • 不提供身份验证、访问控制或加密等安全功能
  • +
  • 仅支持HTTP/1.1,不支持HTTPS
  • +
  • 仅支持GET、HEAD请求,否则返回 501 Not Implemented 或 405 Not Allowed
  • +
`,r:{minutes:5.46,words:1637},t:"Java 18 新特性:简单Web服务器",O:408,y:"a"}}],["/md/java-features/Java18/jep413-code-snippets-in-api-documentation.html",{loader:()=>L(()=>import("./jep413-code-snippets-in-api-documentation.html-BIMwUtq5.js"),__vite__mapDeps([27,1])),meta:{a:"会敲代码的程序猿",d:170424e7,l:"2024年1月3日",c:"Java",g:"Java Features",o:!0,e:` +

Java 18 引入了@snippet标签,用于在API文档中嵌入代码片段,以便更好地展示API的使用方法。

+

主要特点:

+
    +
  • 有效性检查,代码包含语法错误时,会出现错误提示
  • +
  • 启用现代样式,例如语法高亮显示,以及名称与声明的自动链接
  • +
  • 为创建和编辑代码段提供更好的IDE支持
  • +
+

存在的@code标签

+

用于单独的小段代码, 当代码片段复杂时, 使用复合模式的文档注释,如下所示:

+
 * <pre>{@code
+ *     源代码行1
+ *     ...
+ *     源代码行n
+ * }</pre>
+
`,r:{minutes:1.09,words:327},t:"Java 18 新特性:新增@snipppet标签",O:413,y:"a"}}],["/md/java-features/Java19/java19-new-features-summary.html",{loader:()=>L(()=>import("./java19-new-features-summary.html-CxQfC58K.js"),__vite__mapDeps([28,1])),meta:{a:"会敲代码的程序猿",d:17043264e5,l:"2024年1月4日",c:"Java",g:"Java Features",o:!0,e:` +

该版本推出的均为孵化与预览功能,所以这里不做单独的详细解读,大部分内容均放在Java 21中介绍。

+
    +
  • 422: Linux/RISC-V Port:RISC-V是一个基于精简指令集(RISC)原则的开源指令集架构(ISA),这个JEP的主旨则是移植JDK到RISC-V上。
  • +
+

以下预览特性在Java 21中正式定稿:

+`,r:{minutes:.7,words:209},t:"Java19 新特性总结",y:"a"}}],["/md/java-features/Java20/java20-new-features-summary.html",{loader:()=>L(()=>import("./java20-new-features-summary.html--xcfDTx2.js"),__vite__mapDeps([29,1])),meta:{a:"会敲代码的程序猿",d:17044128e5,l:"2024年1月5日",c:"Java",g:"Java Features",o:!0,e:` +

该版本推出的均为孵化与预览功能,所以这里不做单独的详细解读,大部分内容均放在Java 21中介绍。

+

以下内容在Java 21中正式定稿,可根据链接查看终稿内容:

+`,r:{minutes:.61,words:183},t:"Java20 新特性总结",y:"a"}}],["/md/java-features/Java21/jep430-string-templates.html",{loader:()=>L(()=>import("./jep430-string-templates.html-2NkMt3ee.js"),__vite__mapDeps([30,1])),meta:{a:"会敲代码的程序猿",d:17044992e5,l:"2024年1月6日",c:"Java",g:"Java Features",o:!0,e:` +

Java 21 中引入了字符串模版(String Templates),它是一种新的字符串字面量,用于更简洁地构建字符串。

+

字符串组合的机制

+

在之前,Java 提供了几种字符串组合的机制,但不幸的是,它们都存在一些缺点

+
    +
  1. 使用 + 操作符, 代码难以阅读
    String s = x + " plus " + y + " equals " + (x + y);
    +
  2. +
  3. 使用 StringBuilderStringBuffer,代码冗长
    String s = new StringBuilder()
    +                .append(x)
    +                .append(“plus“)
    +                .append(y)
    +                .append(“equals“)
    +                .append(x + y)
    +                .println();
    +
  4. +
  5. 使用 String::formatString::formatted,容易出现参数数量和类型不匹配的问题
    String s = String.format("%2$d plus %1$d equals %3$d", x, y, x + y);
    +String t = "%2$d plus %1$d equals %3$d".formatted(x, y, x + y);
    +
  6. +
  7. 使用 java.text.MessageFormat 格式化消息,语法复杂对一些人来说可能不太熟悉
    MessageFormat mf = new MessageFormat("{0} plus {1} equals {2}");
    +String s = mf.format(x, y, x + y);
    +
  8. +
`,r:{minutes:5.19,words:1556},t:"Java 21 新特性:字符串模版(Preview)",O:430,y:"a"}}],["/md/java-features/Java21/jep431-sequenced-collections.html",{loader:()=>L(()=>import("./jep431-sequenced-collections.html-C5VyRdvF.js"),__vite__mapDeps([31,1])),meta:{a:"会敲代码的程序猿",d:17045856e5,l:"2024年1月7日",c:"Java",g:"Java Features",o:!0,e:` +

在JDK 21中,有序集合(Sequenced Collections)引入了新的接口和方法来简化集合处理。

+
+

此增强功能旨在解决访问Java中各种集合类型的第一个和最后一个元素需要非统一且麻烦处理场景

+
+

Sequenced Collections 引入如下 3 个新接口,用于处理顺序ListSetMap, +并将它们整合到现有的集合类型中。这些新接口中的方法都具有默认实现。

`,r:{minutes:4.55,words:1365},t:"Java 21 新特性:有序集合",O:431,y:"a"}}],["/md/java-features/Java21/jep439-generational-zgc.html",{loader:()=>L(()=>import("./jep439-generational-zgc.html-DPcBR0jo.js"),__vite__mapDeps([32,1])),meta:{a:"会敲代码的程序猿",d:1704672e6,l:"2024年1月8日",c:"Java",g:"Java Features",o:!0,e:` +

Java以其垃圾回收机制而闻名。这是它的主要优势之一,但也可能是许多头疼的根源。

+
    +
  • Java 11(JEP 333)中引入了一个可扩展的低延迟垃圾收集器,称为ZGC
  • +
  • Java 15(JEP 377)中 ZGC 可用于生产
  • +
  • 现在,随着Java 21的出现,它已经发展成为一种分代GC(JEP 439
  • +
`,r:{minutes:5.25,words:1574},t:"Java 21 新特性:分代ZGC",O:439,y:"a"}}],["/md/java-features/Java21/jep440-record-partterns.html",{loader:()=>L(()=>import("./jep440-record-partterns.html-CJpv8SdA.js"),__vite__mapDeps([33,1])),meta:{a:"会敲代码的程序猿",d:17047584e5,l:"2024年1月9日",c:"Java",g:"Java Features",o:!0,e:` +

Java 21 中的记录模式(Record Patterns)是对模式匹配的扩展,它允许在模式匹配中使用记录(Records)类型。 +同时,记录模式还支持嵌套,可以实现更复杂的数据查询和处理。

+

仅仅是类型匹配

+

到目前为止,Java中的模式匹配主要局限于匹配类型:instanceof类型匹配

+
// Java 16 之前
+if (obj instanceof String) {
+  String str = (String) obj;
+  System.out.println(str);
+}
+
+// JAVA 16+
+if (obj instanceof String str) {
+  System.out.println(str);
+}
+
`,r:{minutes:2.35,words:706},t:"Java 21 新特性:记录模式",O:440,y:"a"}}],["/md/java-features/Java21/jep441-pattern-matching-for-switch.html",{loader:()=>L(()=>import("./jep441-pattern-matching-for-switch.html-EqgSTM1F.js"),__vite__mapDeps([34,1])),meta:{a:"会敲代码的程序猿",d:17048448e5,l:"2024年1月10日",c:"Java",g:"Java Features",o:!0,e:` +

Java 21 引入了 switch 模式匹配功能,它增强了 switch 语句的功能,允许使用更简洁的语法来执行类型检查和数据提取。 +该功能与记录模式(JEP 440)共同发展,并与之有相当大的互动。

+

switch + instanceof

+

与if条件中的instanceof一样,switch case现在可以对其值进行类型检查,并创建一个case作用域变量:

+
static String asStringValue(Object anyValue) {
+    return switch (anyValue) {
+        case String str      -> str;
+        case JSONObject json -> json.toCompactString();
+        case BigDecimal bd   -> bd.toEngineeringString();
+        case Integer i       -> Integer.toString(i);
+        case LocalDate ld    -> ld.format(DateTimeFormatter.ISO_LOCAL_DATE);
+        default              -> "n/a";
+    };
+}
+
`,r:{minutes:.9,words:271},t:"Java 21 新特性:switch模式匹配",O:441,y:"a"}}],["/md/java-features/Java21/jep444-virtual-threads.html",{loader:()=>L(()=>import("./jep444-virtual-threads.html-VSJj_4MR.js"),__vite__mapDeps([35,1])),meta:{a:"会敲代码的程序猿",d:17049312e5,l:"2024年1月11日",c:"Java",g:"Java Features",o:!0,e:` +

Java 21 引入了虚拟线程(Virtual Threads)功能,类似于Go语言中的Goroutines。 +虚拟线程是一种轻量级的线程,它可以极大地减少了编写、维护和管理高吞吐量并发应用程序所需的工作量。

+

Java平台目前为止有两种类型的线程:传统线程,也称为平台线程,和虚拟线程

+

平台线程

+

在引入虚拟线程之前,我们所使用的线程java.lang.Thread是由所谓的平台线程支持的。

`,r:{minutes:3.57,words:1070},t:"Java 21 新特性:虚拟线程",O:444,y:"a"}}],["/md/java-features/Java9/jep222-jshell.html",{loader:()=>L(()=>import("./jep222-jshell.html-DRqZLEJr.js"),__vite__mapDeps([36,1])),meta:{a:"会敲代码的程序猿",d:17031168e5,l:"2023年12月21日",c:"Java",g:"Java Features",o:!0,e:` +

JShell 是 Java 9 引入的一个交互式编程环境,它是 Java 编程语言的 REPL(Read-Eval-Print Loop)实现。 +REPL 是一种编程环境,允许用户输入表达式并立即看到结果,而无需事先编写和编译完整的程序。 +JShell 的目标是提供一个轻量级、灵活且易于使用的工具,使得 Java 开发者能够更直观地编写和测试代码。

+

JShell快速入门

+

启动JShell

+

打开终端,然后执行命令:jshell,执行效果如下:

+
~ jshell
+|  欢迎使用 JShell -- 版本 9
+|  要大致了解该版本, 请键入: /help intro
+
+jshell>
+
`,r:{minutes:5.28,words:1584},t:"Java 9 新特性:交互式编程环境JShell",O:222,y:"a"}}],["/md/java-features/Java9/jep269-convenience-factory-methods-for-collections.html",{loader:()=>L(()=>import("./jep269-convenience-factory-methods-for-collections.html-BylWvQOO.js"),__vite__mapDeps([37,1])),meta:{a:"会敲代码的程序猿",d:17032032e5,l:"2023年12月22日",c:"Java",g:"Java Features",o:!0,e:` +

Java 9 引入了一项令人期待的新特性,即集合的便利工厂方法(Convenience Factory Methods for Collections),旨在使不可变集合的创建更加简单和便捷。 +在此之前,我们通常使用构造方法来初始化集合,而Java 9为我们提供了一些全新的静态工厂方法,使得创建不可变集合的过程更为优雅。

+

Java 9的集合创建方式

+

Java 9引入了一些便利的工厂方法,使得创建和初始化集合对象变得更加简洁和方便。 +这些改进包括List.of()、Set.of()和Map.of()等方法,用于创建不可变的集合对象。

`,r:{minutes:2.6,words:779},t:"Java 9 新特性:不可变集合的快捷创建方法",O:266,y:"a"}}],["/md/jvm/part1/compile_jdk.html",{loader:()=>L(()=>import("./compile_jdk.html-CuOY2Vux.js"),__vite__mapDeps([38,1])),meta:{a:"会敲代码的程序猿",d:1721952e6,l:"2024年7月26日",c:"JVM",g:"JVM",o:!0,e:` +

想要窥探Java虚拟机内部的实现原理,最直接的路径就是编译自己的JDK。 +尽管网络上有不少开源JDK实现,但OpenJDK无疑是最广泛使用的,我们将选择OpenJDK进行编译实战。

+

获取源码

+`,r:{minutes:.78,words:234},t:"实战编译JDK",O:1.6,y:"a"}}],["/md/jvm/part1/overview.html",{loader:()=>L(()=>import("./overview.html-C_dzkuQn.js"),__vite__mapDeps([39,1])),meta:{a:"会敲代码的程序猿",d:17213472e5,l:"2024年7月19日",c:"JVM",g:"JVM",o:!0,e:` +
+

Java虚拟机(Java Virtual Machine,简称JVM)是运行所有Java程序的虚拟计算机,是Java平台的核心实现。 +它提供了一种独立于底层硬件和操作系统的运行环境,使Java程序能够在任何安装了JVM的系统上执行。 +JVM通过将Java字节码(.class文件)转换为机器码来实现跨平台运行,这一特性被称为“Write Once, Run Anywhere”。

+
+

跨平台开发的通用平台

+

随着发展,JVM不再是Java独享的Moment,越来越多的语言开始在JVM上运行,使JVM逐渐演变成一个跨平台开发的通用平台

`,r:{minutes:9.05,words:2716},t:"Java虚拟机概述",O:1.4,y:"a"}}],["/md/jvm/part2/heap-object-flow.html",{loader:()=>L(()=>import("./heap-object-flow.html-Bv75HgsE.js"),__vite__mapDeps([40,1])),meta:{a:"会敲代码的程序猿",d:1723248e6,l:"2024年8月10日",c:"JVM",g:"JVM",o:!0,e:` +
+

本文将深入探讨HotSpot虚拟机中Java堆中对象分配、布局和访问的全过程。

+
+

对象的创建

+

在Java中,创建对象通常使用new关键字,而在JVM中,创建对象的过程如下:

+

1、类加载检查

+

JVM首先检查new指令所引用的类是否已加载、连接和初始化。 +如果没有,会先执行类加载过程

`,r:{minutes:2.12,words:637},t:"堆中对象分配、布局和访问的全过程",O:2.3,y:"a"}}],["/md/jvm/part2/runtime-data-areas.html",{loader:()=>L(()=>import("./runtime-data-areas.html-BffvU0YP.js"),__vite__mapDeps([41,1])),meta:{a:"会敲代码的程序猿",d:1723248e6,l:"2024年8月10日",c:"JVM",g:"JVM",o:!0,e:` +
+

运行时数据区是指在运行程序时存储数据的内存区域。分为程序计数器、Java虚拟机栈、本地方法栈、Java堆和方法区五个部分。

+
+
Java虚拟机运行时数据区
Java虚拟机运行时数据区
+
    +
  • 线程私有: +
      +
    • 程序计数器 - 存储线程执行位置
    • +
    • 虚拟机栈 - 存储Java方法调用与执行过程的数据
    • +
    • 本地方法栈 - 存储本地方法的执行数据
    • +
    +
  • +
  • 线程共享: +
      +
    • - 主要存储对象
    • +
    • 方法区 - 存储类/方法/字段等定义(元)数据
    • +
    • 运行时常量区 - 保存常量static数据
    • +
    +
  • +
`,r:{minutes:5.58,words:1675},t:"运行时数据区",O:2.2,y:"a"}}],["/md/jvm/part3/bytecode-instructions-set.html",{loader:()=>L(()=>import("./bytecode-instructions-set.html-Dd9VSDMn.js"),__vite__mapDeps([42,1])),meta:{a:"会敲代码的程序猿",d:1721952e6,l:"2024年7月26日",c:"JVM",g:"JVM",o:!0,e:` +
+

字节码指令集是Java虚拟机(JVM)能理解和执行的低级指令集合。具体保存在Java类文件(.class)的方法区部分,由操作码和操作数组成。

+
+
    +
  • 操作码(Opcode): 一个字节长度的数字,代表某种特定操作
  • +
  • 操作数(Operands): 跟随操作码之后的零至多个参数,用于该操作所需的数据
  • +
+

由于JVM采用面向操作数栈而不是面向寄存器的架构,大多数指令都不包含操作数,只有一个操作码,指令参数存放在操作数栈中。

`,r:{minutes:9.45,words:2834},t:"字节码指令集",O:6.4,y:"a"}}],["/md/jvm/part3/class-file-structure.html",{loader:()=>L(()=>import("./class-file-structure.html-CQtGh7k7.js"),__vite__mapDeps([43,1])),meta:{a:"会敲代码的程序猿",d:17213472e5,l:"2024年7月19日",c:"JVM",g:"JVM",o:!0,e:` +
+

计算机只能运行由0和1构成的二进制格式。 +要运行Java程序,必须先通过Java虚拟机(JVM)执行编译后的Java代码,这个编译后的代码就是Java字节码,存储在.class类文件中。

+
+

跨平台的基石

+

Java字节码具有“平台无关性”和“语言无关性”。

+
    +
  • 平台无关性: 字节码可以在任何支持JVM的平台上运行,实现“一次编写,到处运行”
  • +
  • 语言无关性: 多种编程语言可以编译成字节码并在JVM(GraalVM)上运行,不仅限于Java
  • +
`,r:{minutes:18.95,words:5685},t:"类文件结构",O:6.3,y:"a"}}],["/md/jvm/part3/class-loading-mechanism.html",{loader:()=>L(()=>import("./class-loading-mechanism.html-ClsEPkU2.js"),__vite__mapDeps([44,1])),meta:{a:"会敲代码的程序猿",d:17214336e5,l:"2024年7月20日",c:"JVM",g:"JVM",o:!0,e:` +

类的生命周期

+

类的生命周期分为以下7个阶段,其中解析可以在初始化之后,以支持Java的运行时绑定特性。

+
类的生命周期
类的生命周期
+

注:并非所有的类都会经历完整的生命周期,有些类可能在某些阶段就结束其在JVM中的生涯。

+

1、初始化时机的六种情况称为“主动引用”

`,r:{minutes:10.62,words:3187},t:"类加载机制",O:7.3,y:"a"}}],["/md/spring-data-jpa/jetbrains/getting-started.html",{loader:()=>L(()=>import("./getting-started.html-CYs9_Rhg.js"),__vite__mapDeps([45,1])),meta:{a:"会敲代码的程序猿",d:17121888e5,l:"2024年4月4日",c:"Spring Data",g:"Spring Data JPA",o:!0,e:` +
+

目标: 了解如何使用Spring Data JPA从数据库中存储和检索数据。

+
+

参考:

+`,r:{minutes:13.02,words:3906},t:"Spring Data JPA 快速入门",O:1,y:"a"}}],["/md/spring-framework/core/",{loader:()=>L(()=>import("./index.html-C5hcel2M.js"),__vite__mapDeps([46,1])),meta:{a:"会敲代码的程序猿",d:171072e7,l:"2024年3月18日",c:"Spring",g:"Spring Framework",o:!0,e:` +

核心技术

+

Spring 框架的核心技术主要包括:

+
    +
  • 依赖注入(dependency injection),也称为控制反转(IoC)
  • +
  • 事件(events)
  • +
  • 资源(resources)
  • +
  • 国际化(i18n)
  • +
  • 数据验证(validation)
  • +
  • 数据绑定(data binding)
  • +
  • 类型转换(type conversion)
  • +
  • SpEL(Spring Expression Language)
  • +
  • 面向切面编程(AOP)
  • +
`,r:{minutes:1.49,words:446},t:"Spring 核心技术",i:"spring",y:"a"}}],["/md/spring-framework/core/beans-definition.html",{loader:()=>L(()=>import("./beans-definition.html-BClLe20T.js"),__vite__mapDeps([47,1])),meta:{a:"会敲代码的程序猿",d:171072e7,l:"2024年3月18日",c:"Spring",g:"Spring Framework",o:!0,e:` +

概述

+
+

构建应用程序主干并由Spring IoC 容器管理的对象称为 Bean。

+

在容器中,Bean的定义表示为org.springframework.beans.factory.config.BeanDefinition对象。

+
+

BeanDefinition包含以下元数据:

+
    +
  • 全路径类名:通常,被定义为Bean的实现类
  • +
  • 行为配置元素:说明了Bean在容器中的行为方式,例如作用域scope、生命周期回调等
  • +
  • 依赖关系:描述Bean与其他Bean之间的依赖关系,包括依赖注入,依赖查找等
  • +
  • 其他配置信息:如:管理连接池的Bean可以配置pool的大小限制,使用的连接数量等
  • +
`,r:{minutes:6.77,words:2030},t:"Bean 定义(Definition)",y:"a"}}],["/md/spring-framework/core/beans-lifecycle.html",{loader:()=>L(()=>import("./beans-lifecycle.html-CMfkGa1M.js"),__vite__mapDeps([48,1])),meta:{a:"会敲代码的程序猿",d:17125344e5,l:"2024年4月8日",c:"Spring",g:"Spring Framework",o:!0,e:` +

Spring框架提供了多种接口,你可以使用这些接口来定制Bean的性质。本节将它们分为以下几类:

+`,r:{minutes:17.91,words:5374},t:"Bean生命周期(Lifecycle)",y:"a"}}],["/md/spring-framework/core/beans-scope.html",{loader:()=>L(()=>import("./beans-scope.html-DfwPdZGz.js"),__vite__mapDeps([49,1])),meta:{a:"会敲代码的程序猿",d:17121024e5,l:"2024年4月3日",c:"Spring",g:"Spring Framework",o:!0,e:` +

当你创建一个Bean定义时,实际上是在创建Bean定义所定义类的实际实例的配方。 +将Bean定义视为“配方”的概念非常重要,因为它意味着,就像一个类一样,你可以从一个单一的“配方”中创建多个对象实例。

+

你不仅可以控制Bean定义中的各种依赖项和配置值,还可以控制由Bean定义创建的对象的作用域(scope)。 +这种方法是强大且灵活的,因为你可以通过配置选择创建的对象的作用域,而不必在Java类级别上固定对象的作用域。 +Bean定义可以是多种作用域之一。Spring框架支持六种作用域,其中四种仅在使用Web感知(aware)的ApplicationContext时才可用。 +你还可以创建自定义作用域

`,r:{minutes:16.47,words:4941},t:"Bean作用域(Scope)",y:"a"}}],["/md/spring-framework/core/child-bean-definitions.html",{loader:()=>L(()=>import("./child-bean-definitions.html-D0YKKbGO.js"),__vite__mapDeps([50,1])),meta:{a:"会敲代码的程序猿",d:17127072e5,l:"2024年4月10日",c:"Spring",g:"Spring Framework",o:!0,e:` +

一个Bean定义可以包含大量的配置信息,包括构造函数参数、属性值以及容器特定的信息,比如初始化方法、静态工厂方法名称等等。 +一个子Bean定义会从父定义中继承配置数据。子定义可以根据需要覆盖一些值或添加其他值。 +使用父子Bean定义可以节省大量的输入工作。实际上,这是一种模板化的形式。

+

如果你以编程方式使用ApplicationContext接口,子Bean定义由ChildBeanDefinition类表示。 +大多数用户不会在这个层面上直接操作它们。相反,他们会在诸如ClassPathXmlApplicationContext之类的类中以声明性方式配置Bean定义。 +当你使用基于XML的配置元数据时,可以通过使用parent属性指定父Bean来表示子Bean定义,将父Bean作为此属性的值。以下示例展示了如何这样做:

`,r:{minutes:2.98,words:895},t:"Bean定义继承",y:"a"}}],["/md/spring-framework/core/ioc-container.html",{loader:()=>L(()=>import("./ioc-container.html-CxqNKagy.js"),__vite__mapDeps([51,1])),meta:{a:"会敲代码的程序猿",d:171072e7,l:"2024年3月18日",c:"Spring",g:"Spring Framework",o:!0,e:` +

概述

+
+

Spring IoC(控制反转)容器是Spring框架的核心。 +org.springframework.context.ApplicationContext接口代表Spring IoC容器,负责实例化、配置和组装Bean

+
+

Spring提供了几个 ApplicationContext 接口的实现,在独立应用程序中,最常用的是:

+`,r:{minutes:5.65,words:1694},t:"IoC 容器(Container)",y:"a"}}],["/md/spring-framework/overview/",{loader:()=>L(()=>import("./index.html-B6CHXYcZ.js"),__vite__mapDeps([52,1])),meta:{a:"会敲代码的程序猿",d:17104608e5,l:"2024年3月15日",c:"Spring",g:"Spring Framework",u:!0,o:!0,e:` +

Spring Framework 简介

+

Spring是一个开源、轻量级、依赖注入(DI)容器和框架,用于构建Java企业应用程序。

+`,r:{minutes:2.11,words:634},t:"Spring Framework 概述",i:"spring",y:"a"}}],["/md/spring-framework/overview/quickstart.html",{loader:()=>L(()=>import("./quickstart.html-D7rXQ7Tp.js"),__vite__mapDeps([53,1])),meta:{a:"会敲代码的程序猿",d:17104608e5,l:"2024年3月15日",c:"Spring",g:"Spring Framework",o:!0,e:` +
+

IntelliJ IDEA 提供的专用项目向导,您能够快速创建Spring应用程序,这也是创建Spring应用程序的最佳方式之一。

+
+

参考🚀 :Jetbrains 创建第一个Spring应用程序

+

在本教程中,您将学习如何公开HTTP端点并将其映射到一个方法,当用户通过Web浏览器访问时,该方法会向用户返回问候信息。

`,r:{minutes:3.6,words:1079},t:"Spring Framework 快速开始",i:"spring",y:"a"}}],["/md/spring-framework/core/dependencies/",{loader:()=>L(()=>import("./index.html-Cal46E4Y.js"),__vite__mapDeps([54,1])),meta:{a:"会敲代码的程序猿",d:17114112e5,l:"2024年3月26日",c:"Spring",g:"Spring Framework",o:!0,e:` +

企业应用程序通常不是由单个对象(或Spring术语中的Bean)构成的。 +即使是最简单的应用程序,也是由多个对象共同协作来呈现给最终用户一个连贯的应用体验。

+

下一节将解释如何从定义独立的Bean开始,逐步实现一个完整的应用程序。 +在这个应用程序中,各个对象将相互协作,实现一个共同的目标。

+

章节摘要

+`,r:{minutes:.65,words:196},t:"依赖(Dependencies)",y:"a"}}],["/md/spring-framework/core/dependencies/factory-autowire.html",{loader:()=>L(()=>import("./factory-autowire.html-DNwdEACN.js"),__vite__mapDeps([55,1])),meta:{a:"会敲代码的程序猿",d:17114112e5,l:"2024年3月26日",c:"Spring",g:"Spring Framework",o:!0,e:` +

Spring容器可以自动装配协作Bean之间的关系。 +你可以通过检查ApplicationContext的内容,让Spring自动为你的Bean解析协作对象(其他Bean)。

+

自动装配的优势

+
    +
  • 减少手动配置:自动装配可以显著减少对手动指定属性或构造方法参数的需求。 +其他机制 +,如bean模板,在这方面也是非常有价值的。
  • +
  • 动态更新配置:随着项目的发展,对象可能会增加新的依赖。自动装配能够适应这种变化,自动满足新的依赖关系,而无需手动更新配置。 +这一点在项目的迭代开发过程中尤为有用。同时,当项目稳定下来后,开发者仍然可以选择切换到显式装配,以获得更精确的控制。
  • +
`,r:{minutes:5.17,words:1552},t:"自动装配协作者",y:"a"}}],["/md/spring-framework/core/dependencies/factory-collaborators.html",{loader:()=>L(()=>import("./factory-collaborators.html-B-AQY3Sx.js"),__vite__mapDeps([56,1])),meta:{a:"会敲代码的程序猿",d:17114112e5,l:"2024年3月26日",c:"Spring",g:"Spring Framework",o:!0,e:` +

依赖注入(DI)是什么?

+

Spring IoC(控制反转)也被称为依赖注入(DI)

+

它是一个过程,对象仅通过构造参数、工厂方法参数或在对象实例被构造函数或工厂方法返回后,在其上设置的属性来定义它们的依赖关系。 +在IoC容器创建Bean时,它会自动注入这些依赖项。 不再需要通直接构造依赖项或使用服务定位器模式等方式来管理对象的实例化或位置, +而是交由IoC容器来管理,因此称为控制反转

+

DI解耦

`,r:{minutes:12.19,words:3656},t:"依赖注入",y:"a"}}],["/md/spring-framework/core/dependencies/factory-dependson.html",{loader:()=>L(()=>import("./factory-dependson.html-2PuiI1Rs.js"),__vite__mapDeps([57,1])),meta:{a:"会敲代码的程序猿",d:17114112e5,l:"2024年3月26日",c:"Spring",g:"Spring Framework",o:!0,e:` +

如果一个Bean是另一个Bean的依赖项,这意味着一个Bean被设置为另一个Bean的属性。 +可以通过<ref/>元素 +来实现这一点。 然而,有时Bean之间的依赖关系并不那么直接。

+

举个例子:当一个类中的静态初始化器需要被触发时,比如数据库驱动程序的注册。 +depends-on属性可以强制容器在初始化beanOne Bean之前先初始化指定的manager Bean。 +以下示例使用depends-on属性来表达对单个Bean的依赖:

`,r:{minutes:1.19,words:358},t:"使用depends-on",y:"a"}}],["/md/spring-framework/core/dependencies/factory-lazy-init.html",{loader:()=>L(()=>import("./factory-lazy-init.html-DtC9x7rD.js"),__vite__mapDeps([58,1])),meta:{a:"会敲代码的程序猿",d:17114112e5,l:"2024年3月26日",c:"Spring",g:"Spring Framework",o:!0,e:` +

在Spring框架中,ApplicationContext的默认行为是在启动过程中立即创建并配置所有的单例Bean。 +这种做法有利于及时发现配置错误或环境问题,避免了错误在应用运行一段时间后才暴露。 +然而,如果需要改变这一行为,可以通过设置Bean定义为懒加载(lazy-initialized)来实现。 +这样一来,Bean的实例化将被推迟到第一次实际请求该Bean时进行,而不是在应用启动时完成,从而提供了更大的灵活性和控制。

+

在XML中,通过<bean/>元素上的lazy-init属性来控制这种行为,如下例所示:

`,r:{minutes:1.37,words:412},t:"懒加载(Lazy Initialization)Bean",y:"a"}}],["/md/spring-framework/core/dependencies/factory-method-injection.html",{loader:()=>L(()=>import("./factory-method-injection.html-DaoLvmhN.js"),__vite__mapDeps([59,1])),meta:{a:"会敲代码的程序猿",d:17114112e5,l:"2024年3月26日",c:"Spring",g:"Spring Framework",o:!0,e:` +

大多数应用场景中,容器中的大多数Bean都是单例(singleton) +的。 +当一个单例(singleton)Bean需要与原型(prototype)Bean协作时,传统的注入方式可能不再适用。 +这是因为单例Bean在整个应用生命周期内只创建一次,而原型Bean每次请求时都会创建一个新的实例。

`,r:{minutes:1.38,words:414},t:"方法注入",y:"a"}}],["/md/spring-framework/core/dependencies/factory-properties-detailed.html",{loader:()=>L(()=>import("./factory-properties-detailed.html-CiyahvTh.js"),__vite__mapDeps([60,1])),meta:{a:"会敲代码的程序猿",d:17114112e5,l:"2024年3月26日",c:"Spring",g:"Spring Framework",o:!0,e:` +

正如前一节所述,您可以将Bean属性和构造函数参数定义为对其它托管Bean(协作者)的引用内联定义的值。 +Spring基于XML的配置元数据支持<property/><constructor-arg/>元素内的子元素类型,以达到这个目的。

+

字面值 (基本类型、 String 等)

+

<property/>元素的value属性指定了一个属性或构造函数参数的可读字符串表示。 +Spring使用 转换服务 +来将这些值从字符串转换为属性或参数的实际类型。以下示例展示了设置各种值的方式:

`,r:{minutes:13.81,words:4144},t:"依赖和配置详解",y:"a"}}],["/404.html",{loader:()=>L(()=>import("./404.html-ZFwD13ZO.js"),__vite__mapDeps([61,1])),meta:{t:""}}],["/md/docker/",{loader:()=>L(()=>import("./index.html-Mv7qGsDO.js"),__vite__mapDeps([62,1])),meta:{t:"Docker"}}],["/md/",{loader:()=>L(()=>import("./index.html-HrDQVjI3.js"),__vite__mapDeps([63,1])),meta:{t:"Md"}}],["/md/idea-tips/",{loader:()=>L(()=>import("./index.html-CQF50gPT.js"),__vite__mapDeps([64,1])),meta:{t:"Idea Tips"}}],["/md/installation-guide/os/",{loader:()=>L(()=>import("./index.html-BtNwRVmA.js"),__vite__mapDeps([65,1])),meta:{t:"Os"}}],["/md/java-features/Java10/",{loader:()=>L(()=>import("./index.html-B0qei7js.js"),__vite__mapDeps([66,1])),meta:{t:"Java10"}}],["/md/java-features/Java11/",{loader:()=>L(()=>import("./index.html-B-Vd3PeO.js"),__vite__mapDeps([67,1])),meta:{t:"Java11"}}],["/md/java-features/Java14/",{loader:()=>L(()=>import("./index.html-BZmzcsO9.js"),__vite__mapDeps([68,1])),meta:{t:"Java14"}}],["/md/java-features/Java15/",{loader:()=>L(()=>import("./index.html-Bk-gk6Li.js"),__vite__mapDeps([69,1])),meta:{t:"Java15"}}],["/md/java-features/Java16/",{loader:()=>L(()=>import("./index.html-CAku76l8.js"),__vite__mapDeps([70,1])),meta:{t:"Java16"}}],["/md/java-features/Java17/",{loader:()=>L(()=>import("./index.html-BKArgB3H.js"),__vite__mapDeps([71,1])),meta:{t:"Java17"}}],["/md/java-features/Java18/",{loader:()=>L(()=>import("./index.html-gfoWVC3U.js"),__vite__mapDeps([72,1])),meta:{t:"Java18"}}],["/md/java-features/Java19/",{loader:()=>L(()=>import("./index.html-BV2Ph8rb.js"),__vite__mapDeps([73,1])),meta:{t:"Java19"}}],["/md/java-features/Java20/",{loader:()=>L(()=>import("./index.html-BBl5Ntoj.js"),__vite__mapDeps([74,1])),meta:{t:"Java20"}}],["/md/java-features/Java21/",{loader:()=>L(()=>import("./index.html-CQU0cxGB.js"),__vite__mapDeps([75,1])),meta:{t:"Java21"}}],["/md/java-features/Java9/",{loader:()=>L(()=>import("./index.html-CBgLF4vh.js"),__vite__mapDeps([76,1])),meta:{t:"Java9"}}],["/md/jvm/part1/",{loader:()=>L(()=>import("./index.html-BYNFIgGe.js"),__vite__mapDeps([77,1])),meta:{t:"Part1"}}],["/md/jvm/part2/",{loader:()=>L(()=>import("./index.html-DtiLnK2x.js"),__vite__mapDeps([78,1])),meta:{t:"Part2"}}],["/md/jvm/part3/",{loader:()=>L(()=>import("./index.html-BwUUCIUs.js"),__vite__mapDeps([79,1])),meta:{t:"Part3"}}],["/md/spring-data-jpa/jetbrains/",{loader:()=>L(()=>import("./index.html-BlbiKRAL.js"),__vite__mapDeps([80,1])),meta:{t:"Jetbrains"}}],["/md/spring-framework/",{loader:()=>L(()=>import("./index.html-pIOtEJ0h.js"),__vite__mapDeps([81,1])),meta:{t:"Spring Framework"}}],["/category/",{loader:()=>L(()=>import("./index.html-B4Qn2b8z.js"),__vite__mapDeps([82,1])),meta:{t:"分类",I:!1}}],["/category/%E7%A8%8B%E5%BA%8F%E4%BA%BA%E7%94%9F/",{loader:()=>L(()=>import("./index.html-noDrE7EB.js"),__vite__mapDeps([83,1])),meta:{t:"程序人生 分类",I:!1}}],["/category/docker/",{loader:()=>L(()=>import("./index.html-BXdgxqX6.js"),__vite__mapDeps([84,1])),meta:{t:"Docker 分类",I:!1}}],["/category/idea/",{loader:()=>L(()=>import("./index.html-C5gP0MAs.js"),__vite__mapDeps([85,1])),meta:{t:"IDEA 分类",I:!1}}],["/category/%E5%AE%89%E8%A3%85%E5%A4%A7%E5%85%A8/",{loader:()=>L(()=>import("./index.html-DAHlqlKt.js"),__vite__mapDeps([86,1])),meta:{t:"安装大全 分类",I:!1}}],["/category/java/",{loader:()=>L(()=>import("./index.html-RWtXBEAC.js"),__vite__mapDeps([87,1])),meta:{t:"Java 分类",I:!1}}],["/category/jvm/",{loader:()=>L(()=>import("./index.html-BokWreyc.js"),__vite__mapDeps([88,1])),meta:{t:"JVM 分类",I:!1}}],["/category/spring-boot/",{loader:()=>L(()=>import("./index.html-uLsFslj8.js"),__vite__mapDeps([89,1])),meta:{t:"Spring Boot 分类",I:!1}}],["/category/spring-data/",{loader:()=>L(()=>import("./index.html-BTivNwrr.js"),__vite__mapDeps([90,1])),meta:{t:"Spring Data 分类",I:!1}}],["/category/spring/",{loader:()=>L(()=>import("./index.html-Cl8Pu_wH.js"),__vite__mapDeps([91,1])),meta:{t:"Spring 分类",I:!1}}],["/tag/",{loader:()=>L(()=>import("./index.html-B2L8ddWm.js"),__vite__mapDeps([92,1])),meta:{t:"标签",I:!1}}],["/tag/%E7%A8%8B%E5%BA%8F%E4%BA%BA%E7%94%9F/",{loader:()=>L(()=>import("./index.html-B_sVzPVe.js"),__vite__mapDeps([93,1])),meta:{t:"标签: 程序人生",I:!1}}],["/tag/docker/",{loader:()=>L(()=>import("./index.html-DvW-P4yX.js"),__vite__mapDeps([94,1])),meta:{t:"标签: Docker",I:!1}}],["/tag/intellij-idea/",{loader:()=>L(()=>import("./index.html-Dghj8aF4.js"),__vite__mapDeps([95,1])),meta:{t:"标签: IntelliJ IDEA",I:!1}}],["/tag/%E5%AE%89%E8%A3%85%E5%A4%A7%E5%85%A8/",{loader:()=>L(()=>import("./index.html-_T2E8sgD.js"),__vite__mapDeps([96,1])),meta:{t:"标签: 安装大全",I:!1}}],["/tag/java-features/",{loader:()=>L(()=>import("./index.html-CUCGi8Dj.js"),__vite__mapDeps([97,1])),meta:{t:"标签: Java Features",I:!1}}],["/tag/jvm/",{loader:()=>L(()=>import("./index.html-Cxfnkkcf.js"),__vite__mapDeps([98,1])),meta:{t:"标签: JVM",I:!1}}],["/tag/spring-boot/",{loader:()=>L(()=>import("./index.html-CE7dbDQQ.js"),__vite__mapDeps([99,1])),meta:{t:"标签: Spring Boot",I:!1}}],["/tag/spring-data-jpa/",{loader:()=>L(()=>import("./index.html-CKpji476.js"),__vite__mapDeps([100,1])),meta:{t:"标签: Spring Data JPA",I:!1}}],["/tag/windows/",{loader:()=>L(()=>import("./index.html-DCQvetP_.js"),__vite__mapDeps([101,1])),meta:{t:"标签: Windows",I:!1}}],["/tag/office/",{loader:()=>L(()=>import("./index.html-rgZEFMph.js"),__vite__mapDeps([102,1])),meta:{t:"标签: Office",I:!1}}],["/tag/spring-framework/",{loader:()=>L(()=>import("./index.html-KZJ8rDSj.js"),__vite__mapDeps([103,1])),meta:{t:"标签: Spring Framework",I:!1}}],["/article/",{loader:()=>L(()=>import("./index.html-D1gQHkfj.js"),__vite__mapDeps([104,1])),meta:{t:"文章",I:!1}}],["/star/",{loader:()=>L(()=>import("./index.html-D1AlEQS9.js"),__vite__mapDeps([105,1])),meta:{t:"星标",I:!1}}],["/timeline/",{loader:()=>L(()=>import("./index.html-axyGG3oT.js"),__vite__mapDeps([106,1])),meta:{t:"时间轴",I:!1}}]]);/*! + * vue-router v4.4.5 + * (c) 2024 Eduardo San Martin Morote + * @license MIT + */const In=typeof document<"u";function Ac(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function B3(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Ac(e.default)}const ge=Object.assign;function to(e,t){const n={};for(const a in t){const r=t[a];n[a]=xt(r)?r.map(e):e(r)}return n}const va=()=>{},xt=Array.isArray,Ic=/#/g,$3=/&/g,J3=/\//g,F3=/=/g,N3=/\?/g,jc=/\+/g,V3=/%5B/g,H3=/%5D/g,Pc=/%5E/g,z3=/%60/g,Dc=/%7B/g,q3=/%7C/g,Oc=/%7D/g,U3=/%20/g;function gs(e){return encodeURI(""+e).replace(q3,"|").replace(V3,"[").replace(H3,"]")}function W3(e){return gs(e).replace(Dc,"{").replace(Oc,"}").replace(Pc,"^")}function Io(e){return gs(e).replace(jc,"%2B").replace(U3,"+").replace(Ic,"%23").replace($3,"%26").replace(z3,"`").replace(Dc,"{").replace(Oc,"}").replace(Pc,"^")}function G3(e){return Io(e).replace(F3,"%3D")}function K3(e){return gs(e).replace(Ic,"%23").replace(N3,"%3F")}function Y3(e){return e==null?"":K3(e).replace(J3,"%2F")}function Sa(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const X3=/\/$/,Q3=e=>e.replace(X3,"");function no(e,t,n="/"){let a,r={},o="",s="";const l=t.indexOf("#");let c=t.indexOf("?");return l=0&&(c=-1),c>-1&&(a=t.slice(0,c),o=t.slice(c+1,l>-1?l:t.length),r=e(o)),l>-1&&(a=a||t.slice(0,l),s=t.slice(l,t.length)),a=n4(a??t,n),{fullPath:a+(o&&"?")+o+s,path:a,query:r,hash:Sa(s)}}function Z3(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Ll(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function e4(e,t,n){const a=t.matched.length-1,r=n.matched.length-1;return a>-1&&a===r&&Un(t.matched[a],n.matched[r])&&Mc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Un(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Mc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!t4(e[n],t[n]))return!1;return!0}function t4(e,t){return xt(e)?Al(e,t):xt(t)?Al(t,e):e===t}function Al(e,t){return xt(t)?e.length===t.length&&e.every((n,a)=>n===t[a]):e.length===1&&e[0]===t}function n4(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),a=e.split("/"),r=a[a.length-1];(r===".."||r===".")&&a.push("");let o=n.length-1,s,l;for(s=0;s1&&o--;else break;return n.slice(0,o).join("/")+"/"+a.slice(s).join("/")}const $t={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var Ta;(function(e){e.pop="pop",e.push="push"})(Ta||(Ta={}));var ma;(function(e){e.back="back",e.forward="forward",e.unknown=""})(ma||(ma={}));function a4(e){if(!e)if(In){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Q3(e)}const r4=/^[^#]+#/;function o4(e,t){return e.replace(r4,"#")+t}function s4(e,t){const n=document.documentElement.getBoundingClientRect(),a=e.getBoundingClientRect();return{behavior:t.behavior,left:a.left-n.left-(t.left||0),top:a.top-n.top-(t.top||0)}}const jr=()=>({left:window.scrollX,top:window.scrollY});function l4(e){let t;if("el"in e){const n=e.el,a=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?a?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=s4(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Il(e,t){return(history.state?history.state.position-t:-1)+e}const jo=new Map;function i4(e,t){jo.set(e,t)}function c4(e){const t=jo.get(e);return jo.delete(e),t}let u4=()=>location.protocol+"//"+location.host;function Rc(e,t){const{pathname:n,search:a,hash:r}=t,o=e.indexOf("#");if(o>-1){let l=r.includes(e.slice(o))?e.slice(o).length:1,c=r.slice(l);return c[0]!=="/"&&(c="/"+c),Ll(c,"")}return Ll(n,e)+a+r}function p4(e,t,n,a){let r=[],o=[],s=null;const l=({state:f})=>{const h=Rc(e,location),g=n.value,b=t.value;let _=0;if(f){if(n.value=h,t.value=f,s&&s===g){s=null;return}_=b?f.position-b.position:0}else a(h);r.forEach(k=>{k(n.value,g,{delta:_,type:Ta.pop,direction:_?_>0?ma.forward:ma.back:ma.unknown})})};function c(){s=n.value}function u(f){r.push(f);const h=()=>{const g=r.indexOf(f);g>-1&&r.splice(g,1)};return o.push(h),h}function p(){const{history:f}=window;f.state&&f.replaceState(ge({},f.state,{scroll:jr()}),"")}function d(){for(const f of o)f();o=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",p)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",p,{passive:!0}),{pauseListeners:c,listen:u,destroy:d}}function jl(e,t,n,a=!1,r=!1){return{back:e,current:t,forward:n,replaced:a,position:window.history.length,scroll:r?jr():null}}function d4(e){const{history:t,location:n}=window,a={value:Rc(e,n)},r={value:t.state};r.value||o(a.value,{back:null,current:a.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(c,u,p){const d=e.indexOf("#"),f=d>-1?(n.host&&document.querySelector("base")?e:e.slice(d))+c:u4()+e+c;try{t[p?"replaceState":"pushState"](u,"",f),r.value=u}catch(h){console.error(h),n[p?"replace":"assign"](f)}}function s(c,u){const p=ge({},t.state,jl(r.value.back,c,r.value.forward,!0),u,{position:r.value.position});o(c,p,!0),a.value=c}function l(c,u){const p=ge({},r.value,t.state,{forward:c,scroll:jr()});o(p.current,p,!0);const d=ge({},jl(a.value,c,null),{position:p.position+1},u);o(c,d,!1),a.value=c}return{location:a,state:r,push:l,replace:s}}function f4(e){e=a4(e);const t=d4(e),n=p4(e,t.state,t.location,t.replace);function a(o,s=!0){s||n.pauseListeners(),history.go(o)}const r=ge({location:"",base:e,go:a,createHref:o4.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}function h4(e){return typeof e=="string"||e&&typeof e=="object"}function Bc(e){return typeof e=="string"||typeof e=="symbol"}const $c=Symbol("");var Pl;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Pl||(Pl={}));function Wn(e,t){return ge(new Error,{type:e,[$c]:!0},t)}function Bt(e,t){return e instanceof Error&&$c in e&&(t==null||!!(e.type&t))}const Dl="[^/]+?",v4={sensitive:!1,strict:!1,start:!0,end:!0},m4=/[.+*?^${}()[\]/\\]/g;function g4(e,t){const n=ge({},v4,t),a=[];let r=n.start?"^":"";const o=[];for(const u of e){const p=u.length?[]:[90];n.strict&&!u.length&&(r+="/");for(let d=0;dt.length?t.length===1&&t[0]===80?1:-1:0}function Jc(e,t){let n=0;const a=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const b4={type:0,value:""},k4=/[a-zA-Z0-9_]/;function w4(e){if(!e)return[[]];if(e==="/")return[[b4]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${n})/"${u}": ${h}`)}let n=0,a=n;const r=[];let o;function s(){o&&r.push(o),o=[]}let l=0,c,u="",p="";function d(){u&&(n===0?o.push({type:0,value:u}):n===1||n===2||n===3?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:1,value:u,regexp:p,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),u="")}function f(){u+=c}for(;l{s(y)}:va}function s(d){if(Bc(d)){const f=a.get(d);f&&(a.delete(d),n.splice(n.indexOf(f),1),f.children.forEach(s),f.alias.forEach(s))}else{const f=n.indexOf(d);f>-1&&(n.splice(f,1),d.record.name&&a.delete(d.record.name),d.children.forEach(s),d.alias.forEach(s))}}function l(){return n}function c(d){const f=T4(d,n);n.splice(f,0,d),d.record.name&&!Bl(d)&&a.set(d.record.name,d)}function u(d,f){let h,g={},b,_;if("name"in d&&d.name){if(h=a.get(d.name),!h)throw Wn(1,{location:d});_=h.record.name,g=ge(Ml(f.params,h.keys.filter(y=>!y.optional).concat(h.parent?h.parent.keys.filter(y=>y.optional):[]).map(y=>y.name)),d.params&&Ml(d.params,h.keys.map(y=>y.name))),b=h.stringify(g)}else if(d.path!=null)b=d.path,h=n.find(y=>y.re.test(b)),h&&(g=h.parse(b),_=h.record.name);else{if(h=f.name?a.get(f.name):n.find(y=>y.re.test(f.path)),!h)throw Wn(1,{location:d,currentLocation:f});_=h.record.name,g=ge({},f.params,d.params),b=h.stringify(g)}const k=[];let S=h;for(;S;)k.unshift(S.record),S=S.parent;return{name:_,path:b,params:g,matched:k,meta:S4(k)}}e.forEach(d=>o(d));function p(){n.length=0,a.clear()}return{addRoute:o,resolve:u,removeRoute:s,clearRoutes:p,getRoutes:l,getRecordMatcher:r}}function Ml(e,t){const n={};for(const a of t)a in e&&(n[a]=e[a]);return n}function Rl(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:x4(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function x4(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const a in e.components)t[a]=typeof n=="object"?n[a]:n;return t}function Bl(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function S4(e){return e.reduce((t,n)=>ge(t,n.meta),{})}function $l(e,t){const n={};for(const a in e)n[a]=a in t?t[a]:e[a];return n}function T4(e,t){let n=0,a=t.length;for(;n!==a;){const o=n+a>>1;Jc(e,t[o])<0?a=o:n=o+1}const r=C4(e);return r&&(a=t.lastIndexOf(r,a-1)),a}function C4(e){let t=e;for(;t=t.parent;)if(Fc(t)&&Jc(e,t)===0)return t}function Fc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function L4(e){const t={};if(e===""||e==="?")return t;const a=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;ro&&Io(o)):[a&&Io(a)]).forEach(o=>{o!==void 0&&(t+=(t.length?"&":"")+n,o!=null&&(t+="="+o))})}return t}function A4(e){const t={};for(const n in e){const a=e[n];a!==void 0&&(t[n]=xt(a)?a.map(r=>r==null?null:""+r):a==null?a:""+a)}return t}const I4=Symbol(""),Fl=Symbol(""),Pr=Symbol(""),ys=Symbol(""),Po=Symbol("");function oa(){let e=[];function t(a){return e.push(a),()=>{const r=e.indexOf(a);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Zt(e,t,n,a,r,o=s=>s()){const s=a&&(a.enterCallbacks[r]=a.enterCallbacks[r]||[]);return()=>new Promise((l,c)=>{const u=f=>{f===!1?c(Wn(4,{from:n,to:t})):f instanceof Error?c(f):h4(f)?c(Wn(2,{from:t,to:f})):(s&&a.enterCallbacks[r]===s&&typeof f=="function"&&s.push(f),l())},p=o(()=>e.call(a&&a.instances[r],t,n,u));let d=Promise.resolve(p);e.length<3&&(d=d.then(u)),d.catch(f=>c(f))})}function ao(e,t,n,a,r=o=>o()){const o=[];for(const s of e)for(const l in s.components){let c=s.components[l];if(!(t!=="beforeRouteEnter"&&!s.instances[l]))if(Ac(c)){const p=(c.__vccOpts||c)[t];p&&o.push(Zt(p,n,a,s,l,r))}else{let u=c();o.push(()=>u.then(p=>{if(!p)throw new Error(`Couldn't resolve component "${l}" at "${s.path}"`);const d=B3(p)?p.default:p;s.mods[l]=p,s.components[l]=d;const h=(d.__vccOpts||d)[t];return h&&Zt(h,n,a,s,l,r)()}))}}return o}function Nl(e){const t=Le(Pr),n=Le(ys),a=w(()=>{const c=yt(e.to);return t.resolve(c)}),r=w(()=>{const{matched:c}=a.value,{length:u}=c,p=c[u-1],d=n.matched;if(!p||!d.length)return-1;const f=d.findIndex(Un.bind(null,p));if(f>-1)return f;const h=Vl(c[u-2]);return u>1&&Vl(p)===h&&d[d.length-1].path!==h?d.findIndex(Un.bind(null,c[u-2])):f}),o=w(()=>r.value>-1&&O4(n.params,a.value.params)),s=w(()=>r.value>-1&&r.value===n.matched.length-1&&Mc(n.params,a.value.params));function l(c={}){return D4(c)?t[yt(e.replace)?"replace":"push"](yt(e.to)).catch(va):Promise.resolve()}return{route:a,href:w(()=>a.value.href),isActive:o,isExactActive:s,navigate:l}}const j4=R({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:Nl,setup(e,{slots:t}){const n=Ma(Nl(e)),{options:a}=Le(Pr),r=w(()=>({[Hl(e.activeClass,a.linkActiveClass,"router-link-active")]:n.isActive,[Hl(e.exactActiveClass,a.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&t.default(n);return e.custom?o:i("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},o)}}}),P4=j4;function D4(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function O4(e,t){for(const n in t){const a=t[n],r=e[n];if(typeof a=="string"){if(a!==r)return!1}else if(!xt(r)||r.length!==a.length||a.some((o,s)=>o!==r[s]))return!1}return!0}function Vl(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Hl=(e,t,n)=>e??t??n,M4=R({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const a=Le(Po),r=w(()=>e.route||a.value),o=Le(Fl,0),s=w(()=>{let u=yt(o);const{matched:p}=r.value;let d;for(;(d=p[u])&&!d.components;)u++;return u}),l=w(()=>r.value.matched[s.value]);_t(Fl,w(()=>s.value+1)),_t(I4,l),_t(Po,r);const c=K();return re(()=>[c.value,l.value,e.name],([u,p,d],[f,h,g])=>{p&&(p.instances[d]=u,h&&h!==p&&u&&u===f&&(p.leaveGuards.size||(p.leaveGuards=h.leaveGuards),p.updateGuards.size||(p.updateGuards=h.updateGuards))),u&&p&&(!h||!Un(p,h)||!f)&&(p.enterCallbacks[d]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=r.value,p=e.name,d=l.value,f=d&&d.components[p];if(!f)return zl(n.default,{Component:f,route:u});const h=d.props[p],g=h?h===!0?u.params:typeof h=="function"?h(u):h:null,_=i(f,ge({},g,t,{onVnodeUnmounted:k=>{k.component.isUnmounted&&(d.instances[p]=null)},ref:c}));return zl(n.default,{Component:_,route:u})||_}}});function zl(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const R4=M4;function B4(e){const t=E4(e.routes,e),n=e.parseQuery||L4,a=e.stringifyQuery||Jl,r=e.history,o=oa(),s=oa(),l=oa(),c=Oe($t);let u=$t;In&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const p=to.bind(null,T=>""+T),d=to.bind(null,Y3),f=to.bind(null,Sa);function h(T,H){let J,G;return Bc(T)?(J=t.getRecordMatcher(T),G=H):G=T,t.addRoute(G,J)}function g(T){const H=t.getRecordMatcher(T);H&&t.removeRoute(H)}function b(){return t.getRoutes().map(T=>T.record)}function _(T){return!!t.getRecordMatcher(T)}function k(T,H){if(H=ge({},H||c.value),typeof T=="string"){const m=no(n,T,H.path),x=t.resolve({path:m.path},H),j=r.createHref(m.fullPath);return ge(m,x,{params:f(x.params),hash:Sa(m.hash),redirectedFrom:void 0,href:j})}let J;if(T.path!=null)J=ge({},T,{path:no(n,T.path,H.path).path});else{const m=ge({},T.params);for(const x in m)m[x]==null&&delete m[x];J=ge({},T,{params:d(m)}),H.params=d(H.params)}const G=t.resolve(J,H),le=T.hash||"";G.params=p(f(G.params));const we=Z3(a,ge({},T,{hash:W3(le),path:G.path})),v=r.createHref(we);return ge({fullPath:we,hash:le,query:a===Jl?A4(T.query):T.query||{}},G,{redirectedFrom:void 0,href:v})}function S(T){return typeof T=="string"?no(n,T,c.value.path):ge({},T)}function y(T,H){if(u!==T)return Wn(8,{from:H,to:T})}function E(T){return q(T)}function M(T){return E(ge(S(T),{replace:!0}))}function A(T){const H=T.matched[T.matched.length-1];if(H&&H.redirect){const{redirect:J}=H;let G=typeof J=="function"?J(T):J;return typeof G=="string"&&(G=G.includes("?")||G.includes("#")?G=S(G):{path:G},G.params={}),ge({query:T.query,hash:T.hash,params:G.path!=null?{}:T.params},G)}}function q(T,H){const J=u=k(T),G=c.value,le=T.state,we=T.force,v=T.replace===!0,m=A(J);if(m)return q(ge(S(m),{state:typeof m=="object"?ge({},le,m.state):le,force:we,replace:v}),H||J);const x=J;x.redirectedFrom=H;let j;return!we&&e4(a,G,J)&&(j=Wn(16,{to:x,from:G}),it(G,G,!0,!1)),(j?Promise.resolve(j):I(x,G)).catch(C=>Bt(C)?Bt(C,2)?C:Tt(C):W(C,x,G)).then(C=>{if(C){if(Bt(C,2))return q(ge({replace:v},S(C.to),{state:typeof C.to=="object"?ge({},le,C.to.state):le,force:we}),H||x)}else C=D(x,G,!0,v,le);return N(x,G,C),C})}function X(T,H){const J=y(T,H);return J?Promise.reject(J):Promise.resolve()}function F(T){const H=Mt.values().next().value;return H&&typeof H.runWithContext=="function"?H.runWithContext(T):T()}function I(T,H){let J;const[G,le,we]=$4(T,H);J=ao(G.reverse(),"beforeRouteLeave",T,H);for(const m of G)m.leaveGuards.forEach(x=>{J.push(Zt(x,T,H))});const v=X.bind(null,T,H);return J.push(v),Ve(J).then(()=>{J=[];for(const m of o.list())J.push(Zt(m,T,H));return J.push(v),Ve(J)}).then(()=>{J=ao(le,"beforeRouteUpdate",T,H);for(const m of le)m.updateGuards.forEach(x=>{J.push(Zt(x,T,H))});return J.push(v),Ve(J)}).then(()=>{J=[];for(const m of we)if(m.beforeEnter)if(xt(m.beforeEnter))for(const x of m.beforeEnter)J.push(Zt(x,T,H));else J.push(Zt(m.beforeEnter,T,H));return J.push(v),Ve(J)}).then(()=>(T.matched.forEach(m=>m.enterCallbacks={}),J=ao(we,"beforeRouteEnter",T,H,F),J.push(v),Ve(J))).then(()=>{J=[];for(const m of s.list())J.push(Zt(m,T,H));return J.push(v),Ve(J)}).catch(m=>Bt(m,8)?m:Promise.reject(m))}function N(T,H,J){l.list().forEach(G=>F(()=>G(T,H,J)))}function D(T,H,J,G,le){const we=y(T,H);if(we)return we;const v=H===$t,m=In?history.state:{};J&&(G||v?r.replace(T.fullPath,ge({scroll:v&&m&&m.scroll},le)):r.push(T.fullPath,le)),c.value=T,it(T,H,J,v),Tt()}let Q;function ve(){Q||(Q=r.listen((T,H,J)=>{if(!Ct.listening)return;const G=k(T),le=A(G);if(le){q(ge(le,{replace:!0}),G).catch(va);return}u=G;const we=c.value;In&&i4(Il(we.fullPath,J.delta),jr()),I(G,we).catch(v=>Bt(v,12)?v:Bt(v,2)?(q(v.to,G).then(m=>{Bt(m,20)&&!J.delta&&J.type===Ta.pop&&r.go(-1,!1)}).catch(va),Promise.reject()):(J.delta&&r.go(-J.delta,!1),W(v,G,we))).then(v=>{v=v||D(G,we,!1),v&&(J.delta&&!Bt(v,8)?r.go(-J.delta,!1):J.type===Ta.pop&&Bt(v,20)&&r.go(-1,!1)),N(G,we,v)}).catch(va)}))}let be=oa(),U=oa(),ee;function W(T,H,J){Tt(T);const G=U.list();return G.length?G.forEach(le=>le(T,H,J)):console.error(T),Promise.reject(T)}function ke(){return ee&&c.value!==$t?Promise.resolve():new Promise((T,H)=>{be.add([T,H])})}function Tt(T){return ee||(ee=!T,ve(),be.list().forEach(([H,J])=>T?J(T):H()),be.reset()),T}function it(T,H,J,G){const{scrollBehavior:le}=e;if(!In||!le)return Promise.resolve();const we=!J&&c4(Il(T.fullPath,0))||(G||!J)&&history.state&&history.state.scroll||null;return sn().then(()=>le(T,H,we)).then(v=>v&&l4(v)).catch(v=>W(v,T,H))}const Be=T=>r.go(T);let Ze;const Mt=new Set,Ct={currentRoute:c,listening:!0,addRoute:h,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:_,getRoutes:b,resolve:k,options:e,push:E,replace:M,go:Be,back:()=>Be(-1),forward:()=>Be(1),beforeEach:o.add,beforeResolve:s.add,afterEach:l.add,onError:U.add,isReady:ke,install(T){const H=this;T.component("RouterLink",P4),T.component("RouterView",R4),T.config.globalProperties.$router=H,Object.defineProperty(T.config.globalProperties,"$route",{enumerable:!0,get:()=>yt(c)}),In&&!Ze&&c.value===$t&&(Ze=!0,E(r.location).catch(le=>{}));const J={};for(const le in $t)Object.defineProperty(J,le,{get:()=>c.value[le],enumerable:!0});T.provide(Pr,H),T.provide(ys,Oi(J)),T.provide(Po,c);const G=T.unmount;Mt.add(T),T.unmount=function(){Mt.delete(T),Mt.size<1&&(u=$t,Q&&Q(),Q=null,c.value=$t,Ze=!1,ee=!1),G()}}};function Ve(T){return T.reduce((H,J)=>H.then(()=>F(J)),Promise.resolve())}return Ct}function $4(e,t){const n=[],a=[],r=[],o=Math.max(t.matched.length,e.matched.length);for(let s=0;sUn(u,l))?a.push(l):n.push(l));const c=e.matched[s];c&&(t.matched.find(u=>Un(u,c))||r.push(c))}return[n,a,r]}function ln(){return Le(Pr)}function cn(e){return Le(ys)}var bs=Symbol(""),Ot=()=>{const e=Le(bs);if(!e)throw new Error("useClientData() is called without provider.");return e},J4=()=>Ot().pageComponent,ye=()=>Ot().pageData,he=()=>Ot().pageFrontmatter,F4=()=>Ot().pageHead,Dr=()=>Ot().pageLang,N4=()=>Ot().pageLayout,St=()=>Ot().routeLocale,V4=()=>Ot().routes,Nc=()=>Ot().siteData,Va=()=>Ot().siteLocaleData,H4=Symbol(""),Do=Oe(M3),Ca=Oe(R3),Vc=e=>{const t=j3(e);if(Ca.value[t])return t;const n=encodeURI(t);return Ca.value[n]?n:Do.value[t]||Do.value[n]||t},Qn=e=>{const t=Vc(e),n=Ca.value[t]??{...Ca.value["/404.html"],notFound:!0};return{path:t,notFound:!1,...n}},Or=R({name:"ClientOnly",setup(e,t){const n=K(!1);return fe(()=>{n.value=!0}),()=>{var a,r;return n.value?(r=(a=t.slots).default)==null?void 0:r.call(a):null}}}),Hc=R({name:"Content",props:{path:{type:String,required:!1,default:""}},setup(e){const t=J4(),n=w(()=>{if(!e.path)return t.value;const a=Qn(e.path);return U2(()=>a.loader().then(({comp:r})=>r))});return()=>i(n.value)}}),Ne=(e={})=>e,Ce=e=>Dt(e)?e:`/${Lc(e)}`,z4=e=>{if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget){const t=e.currentTarget.getAttribute("target");if(t!=null&&t.match(/\b_blank\b/i))return}return e.preventDefault(),!0}},je=({active:e=!1,activeClass:t="route-link-active",to:n,...a},{slots:r})=>{var c;const o=ln(),s=Vc(n),l=s.startsWith("#")||s.startsWith("?")?s:Ce(s);return i("a",{...a,class:["route-link",{[t]:e}],href:l,onClick:(u={})=>{z4(u)?o.push(n).catch():Promise.resolve()}},(c=r.default)==null?void 0:c.call(r))};je.displayName="RouteLink";je.props={active:Boolean,activeClass:String,to:String};var q4="Layout",U4="en-US",fn=Ma({resolveLayouts:e=>e.reduce((t,n)=>({...t,...n.layouts}),{}),resolvePageHead:(e,t,n)=>{const a=Se(t.description)?t.description:n.description,r=[...Array.isArray(t.head)?t.head:[],...n.head,["title",{},e],["meta",{name:"description",content:a}]];return L3(r)},resolvePageHeadTitle:(e,t)=>[e.title,t.title].filter(n=>!!n).join(" | "),resolvePageLang:(e,t)=>e.lang||t.lang||U4,resolvePageLayout:(e,t)=>{const n=Se(e.frontmatter.layout)?e.frontmatter.layout:q4;if(!t[n])throw new Error(`[vuepress] Cannot resolve layout: ${n}`);return t[n]},resolveRouteLocale:(e,t)=>P3(e,t),resolveSiteLocaleData:(e,t)=>{var n;return{...e,...e.locales[t],head:[...((n=e.locales[t])==null?void 0:n.head)??[],...e.head??[]]}}});const W4={},Zn=e=>{const t=St();return w(()=>e[t.value]??{})};var st=Uint8Array,Dn=Uint16Array,G4=Int32Array,zc=new st([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,0,0,0]),qc=new st([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,0,0]),K4=new st([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Uc=function(e,t){for(var n=new Dn(31),a=0;a<31;++a)n[a]=t+=1<>1|(Te&21845)<<1;Ut=(Ut&52428)>>2|(Ut&13107)<<2,Ut=(Ut&61680)>>4|(Ut&3855)<<4,Oo[Te]=((Ut&65280)>>8|(Ut&255)<<8)>>1}var ga=function(e,t,n){for(var a=e.length,r=0,o=new Dn(t);r>c]=u}else for(l=new Dn(a),r=0;r>15-e[r]);return l},Ha=new st(288);for(var Te=0;Te<144;++Te)Ha[Te]=8;for(var Te=144;Te<256;++Te)Ha[Te]=9;for(var Te=256;Te<280;++Te)Ha[Te]=7;for(var Te=280;Te<288;++Te)Ha[Te]=8;var Kc=new st(32);for(var Te=0;Te<32;++Te)Kc[Te]=5;var Z4=ga(Ha,9,1),ep=ga(Kc,5,1),ro=function(e){for(var t=e[0],n=1;nt&&(t=e[n]);return t},gt=function(e,t,n){var a=t/8|0;return(e[a]|e[a+1]<<8)>>(t&7)&n},oo=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(t&7)},tp=function(e){return(e+7)/8|0},Yc=function(e,t,n){return(t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new st(e.subarray(t,n))},np=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],pt=function(e,t,n){var a=new Error(t||np[e]);if(a.code=e,Error.captureStackTrace&&Error.captureStackTrace(a,pt),!n)throw a;return a},ap=function(e,t,n,a){var r=e.length,o=0;if(!r||t.f&&!t.l)return n||new st(0);var s=!n,l=s||t.i!=2,c=t.i;s&&(n=new st(r*3));var u=function(le){var we=n.length;if(le>we){var v=new st(Math.max(we*2,le));v.set(n),n=v}},p=t.f||0,d=t.p||0,f=t.b||0,h=t.l,g=t.d,b=t.m,_=t.n,k=r*8;do{if(!h){p=gt(e,d,1);var S=gt(e,d+1,3);if(d+=3,S)if(S==1)h=Z4,g=ep,b=9,_=5;else if(S==2){var A=gt(e,d,31)+257,q=gt(e,d+10,15)+4,X=A+gt(e,d+5,31)+1;d+=14;for(var F=new st(X),I=new st(19),N=0;N>4;if(y<16)F[N++]=y;else{var U=0,ee=0;for(y==16?(ee=3+gt(e,d,3),d+=2,U=F[N-1]):y==17?(ee=3+gt(e,d,7),d+=3):y==18&&(ee=11+gt(e,d,127),d+=7);ee--;)F[N++]=U}}var W=F.subarray(0,A),ke=F.subarray(A);b=ro(W),_=ro(ke),h=ga(W,b,1),g=ga(ke,_,1)}else pt(1);else{var y=tp(d)+4,E=e[y-4]|e[y-3]<<8,M=y+E;if(M>r){c&&pt(0);break}l&&u(f+E),n.set(e.subarray(y,M),f),t.b=f+=E,t.p=d=M*8,t.f=p;continue}if(d>k){c&&pt(0);break}}l&&u(f+131072);for(var Tt=(1<>4;if(d+=U&15,d>k){c&&pt(0);break}if(U||pt(2),Ze<256)n[f++]=Ze;else if(Ze==256){Be=d,h=null;break}else{var Mt=Ze-254;if(Ze>264){var N=Ze-257,Ct=zc[N];Mt=gt(e,d,(1<>4;Ve||pt(3),d+=Ve&15;var ke=Q4[T];if(T>3){var Ct=qc[T];ke+=oo(e,d)&(1<k){c&&pt(0);break}l&&u(f+131072);var H=f+Mt;if(f>4>7||(e[0]<<8|e[1])%31)&&pt(6,"invalid zlib data"),(e[1]>>5&1)==+!t&&pt(6,"invalid zlib data: "+(e[1]&32?"need":"unexpected")+" dictionary"),(e[1]>>3&4)+2};function sp(e,t){return ap(e.subarray(op(e,t),-4),{i:2},t,t)}var Mo=typeof TextDecoder<"u"&&new TextDecoder,lp=0;try{Mo.decode(rp,{stream:!0}),lp=1}catch{}var ip=function(e){for(var t="",n=0;;){var a=e[n++],r=(a>127)+(a>223)+(a>239);if(n+r>e.length)return{s:t,r:Yc(e,n-1)};r?r==3?(a=((a&15)<<18|(e[n++]&63)<<12|(e[n++]&63)<<6|e[n++]&63)-65536,t+=String.fromCharCode(55296|a>>10,56320|a&1023)):r&1?t+=String.fromCharCode((a&31)<<6|e[n++]&63):t+=String.fromCharCode((a&15)<<12|(e[n++]&63)<<6|e[n++]&63):t+=String.fromCharCode(a)}};function cp(e,t){{for(var n=new st(e.length),a=0;a{const t=atob(e);return up(sp(cp(t)))},bt=(e,t)=>{var a;const n=(a=(t==null?void 0:t._instance)||Fa())==null?void 0:a.appContext.components;return n?e in n||Qe(e)in n||Oa(Qe(e))in n:!1},Xc=e=>new Promise(t=>setTimeout(t,e)),ks=e=>typeof e<"u",so=e=>typeof e=="number",Ro=Array.isArray,Gn=(e,t)=>Se(e)&&e.startsWith(t),pp=(e,t)=>Se(e)&&e.endsWith(t),ea=Object.entries,vt=Object.keys,ws=e=>{if(e){if(typeof e=="number")return new Date(e);const t=Date.parse(e.toString());if(!Number.isNaN(t))return new Date(t)}return null},Mr=e=>Gn(e,"/");function Qc(e,t){let n,a,r;const o=K(!0),s=()=>{o.value=!0,r()};re(e,s,{flush:"sync"});const l=typeof t=="function"?t:t.get,c=typeof t=="function"?void 0:t.set,u=ss((p,d)=>(a=p,r=d,{get(){return o.value&&(n=l(),o.value=!1),a(),n},set(f){c==null||c(f)}}));return Object.isExtensible(u)&&(u.trigger=s),u}function En(e){return bi()?(a2(e),!0):!1}function Ye(e){return typeof e=="function"?e():yt(e)}const za=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const dp=Object.prototype.toString,fp=e=>dp.call(e)==="[object Object]",Kn=()=>{},Ul=hp();function hp(){var e,t;return za&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function _s(e,t){function n(...a){return new Promise((r,o)=>{Promise.resolve(e(()=>t.apply(this,a),{fn:t,thisArg:this,args:a})).then(r).catch(o)})}return n}const Zc=e=>e();function vp(e,t={}){let n,a,r=Kn;const o=l=>{clearTimeout(l),r(),r=Kn};return l=>{const c=Ye(e),u=Ye(t.maxWait);return n&&o(n),c<=0||u!==void 0&&u<=0?(a&&(o(a),a=null),Promise.resolve(l())):new Promise((p,d)=>{r=t.rejectOnCancel?d:p,u&&!a&&(a=setTimeout(()=>{n&&o(n),a=null,p(l())},u)),n=setTimeout(()=>{a&&o(a),a=null,p(l())},c)})}}function mp(...e){let t=0,n,a=!0,r=Kn,o,s,l,c,u;!Pe(e[0])&&typeof e[0]=="object"?{delay:s,trailing:l=!0,leading:c=!0,rejectOnCancel:u=!1}=e[0]:[s,l=!0,c=!0,u=!1]=e;const p=()=>{n&&(clearTimeout(n),n=void 0,r(),r=Kn)};return f=>{const h=Ye(s),g=Date.now()-t,b=()=>o=f();return p(),h<=0?(t=Date.now(),b()):(g>h&&(c||!a)?(t=Date.now(),b()):l&&(o=new Promise((_,k)=>{r=u?k:_,n=setTimeout(()=>{t=Date.now(),a=!0,_(b()),p()},Math.max(0,h-g))})),!c&&!n&&(n=setTimeout(()=>a=!0,h)),a=!1,o)}}function gp(e=Zc){const t=K(!0);function n(){t.value=!1}function a(){t.value=!0}const r=(...o)=>{t.value&&e(...o)};return{isActive:on(t),pause:n,resume:a,eventFilter:r}}function yp(e){let t;function n(){return t||(t=e()),t}return n.reset=async()=>{const a=t;t=void 0,a&&await a},n}function bp(e){return Fa()}function kp(...e){if(e.length!==1)return Xn(...e);const t=e[0];return typeof t=="function"?on(ss(()=>({get:t,set:Kn}))):K(t)}function wp(e,t=200,n={}){return _s(vp(t,n),e)}function _p(e,t=200,n=!1,a=!0,r=!1){return _s(mp(t,n,a,r),e)}function Ep(e,t,n={}){const{eventFilter:a=Zc,...r}=n;return re(e,_s(a,t),r)}function xp(e,t,n={}){const{eventFilter:a,...r}=n,{eventFilter:o,pause:s,resume:l,isActive:c}=gp(a);return{stop:Ep(e,t,{...r,eventFilter:o}),pause:s,resume:l,isActive:c}}function Rr(e,t=!0,n){bp()?fe(e,n):t?e():sn(e)}function Sp(e,t,n={}){const{immediate:a=!0}=n,r=K(!1);let o=null;function s(){o&&(clearTimeout(o),o=null)}function l(){r.value=!1,s()}function c(...u){s(),r.value=!0,o=setTimeout(()=>{r.value=!1,o=null,e(...u)},Ye(t))}return a&&(r.value=!0,za&&c()),En(l),{isPending:on(r),start:c,stop:l}}function La(e=!1,t={}){const{truthyValue:n=!0,falsyValue:a=!1}=t,r=Pe(e),o=K(e);function s(l){if(arguments.length)return o.value=l,o.value;{const c=Ye(n);return o.value=o.value===c?Ye(a):c,o.value}}return r?s:[o,s]}function Nt(e){var t;const n=Ye(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Vt=za?window:void 0,e1=za?window.document:void 0,t1=za?window.navigator:void 0;function Ie(...e){let t,n,a,r;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,a,r]=e,t=Vt):[t,n,a,r]=e,!t)return Kn;Array.isArray(n)||(n=[n]),Array.isArray(a)||(a=[a]);const o=[],s=()=>{o.forEach(p=>p()),o.length=0},l=(p,d,f,h)=>(p.addEventListener(d,f,h),()=>p.removeEventListener(d,f,h)),c=re(()=>[Nt(t),Ye(r)],([p,d])=>{if(s(),!p)return;const f=fp(d)?{...d}:d;o.push(...n.flatMap(h=>a.map(g=>l(p,h,g,f))))},{immediate:!0,flush:"post"}),u=()=>{c(),s()};return En(u),u}function Tp(){const e=K(!1),t=Fa();return t&&fe(()=>{e.value=!0},t),e}function qa(e){const t=Tp();return w(()=>(t.value,!!e()))}function n1(e,t={}){const{window:n=Vt}=t,a=qa(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let r;const o=K(!1),s=u=>{o.value=u.matches},l=()=>{r&&("removeEventListener"in r?r.removeEventListener("change",s):r.removeListener(s))},c=ds(()=>{a.value&&(l(),r=n.matchMedia(Ye(e)),"addEventListener"in r?r.addEventListener("change",s):r.addListener(s),o.value=r.matches)});return En(()=>{c(),l(),r=void 0}),o}function Wl(e,t={}){const{controls:n=!1,navigator:a=t1}=t,r=qa(()=>a&&"permissions"in a);let o;const s=typeof e=="string"?{name:e}:e,l=K(),c=()=>{o&&(l.value=o.state)},u=yp(async()=>{if(r.value){if(!o)try{o=await a.permissions.query(s),Ie(o,"change",c),c()}catch{l.value="prompt"}return o}});return u(),n?{state:l,isSupported:r,query:u}:l}function Cp(e={}){const{navigator:t=t1,read:n=!1,source:a,copiedDuring:r=1500,legacy:o=!1}=e,s=qa(()=>t&&"clipboard"in t),l=Wl("clipboard-read"),c=Wl("clipboard-write"),u=w(()=>s.value||o),p=K(""),d=K(!1),f=Sp(()=>d.value=!1,r);function h(){s.value&&k(l.value)?t.clipboard.readText().then(S=>{p.value=S}):p.value=_()}u.value&&n&&Ie(["copy","cut"],h);async function g(S=Ye(a)){u.value&&S!=null&&(s.value&&k(c.value)?await t.clipboard.writeText(S):b(S),p.value=S,d.value=!0,f.start())}function b(S){const y=document.createElement("textarea");y.value=S??"",y.style.position="absolute",y.style.opacity="0",document.body.appendChild(y),y.select(),document.execCommand("copy"),y.remove()}function _(){var S,y,E;return(E=(y=(S=document==null?void 0:document.getSelection)==null?void 0:S.call(document))==null?void 0:y.toString())!=null?E:""}function k(S){return S==="granted"||S==="prompt"}return{isSupported:u,text:p,copied:d,copy:g}}const sr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},lr="__vueuse_ssr_handlers__",Lp=Ap();function Ap(){return lr in sr||(sr[lr]=sr[lr]||{}),sr[lr]}function Ip(e,t){return Lp[e]||t}function jp(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Pp={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Gl="vueuse-storage";function ta(e,t,n,a={}){var r;const{flush:o="pre",deep:s=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:u=!1,shallow:p,window:d=Vt,eventFilter:f,onError:h=I=>{console.error(I)},initOnMounted:g}=a,b=(p?Oe:K)(typeof t=="function"?t():t);if(!n)try{n=Ip("getDefaultStorage",()=>{var I;return(I=Vt)==null?void 0:I.localStorage})()}catch(I){h(I)}if(!n)return b;const _=Ye(t),k=jp(_),S=(r=a.serializer)!=null?r:Pp[k],{pause:y,resume:E}=xp(b,()=>A(b.value),{flush:o,deep:s,eventFilter:f});d&&l&&Rr(()=>{Ie(d,"storage",X),Ie(d,Gl,F),g&&X()}),g||X();function M(I,N){d&&d.dispatchEvent(new CustomEvent(Gl,{detail:{key:e,oldValue:I,newValue:N,storageArea:n}}))}function A(I){try{const N=n.getItem(e);if(I==null)M(N,null),n.removeItem(e);else{const D=S.write(I);N!==D&&(n.setItem(e,D),M(N,D))}}catch(N){h(N)}}function q(I){const N=I?I.newValue:n.getItem(e);if(N==null)return c&&_!=null&&n.setItem(e,S.write(_)),_;if(!I&&u){const D=S.read(N);return typeof u=="function"?u(D,_):k==="object"&&!Array.isArray(D)?{..._,...D}:D}else return typeof N!="string"?N:S.read(N)}function X(I){if(!(I&&I.storageArea!==n)){if(I&&I.key==null){b.value=_;return}if(!(I&&I.key!==e)){y();try{(I==null?void 0:I.newValue)!==S.write(b.value)&&(b.value=q(I))}catch(N){h(N)}finally{I?sn(E):E()}}}}function F(I){X(I.detail)}return b}function Dp(e){return n1("(prefers-color-scheme: dark)",e)}function Op(e,t,n={}){const{window:a=Vt,...r}=n;let o;const s=qa(()=>a&&"ResizeObserver"in a),l=()=>{o&&(o.disconnect(),o=void 0)},c=w(()=>Array.isArray(e)?e.map(d=>Nt(d)):[Nt(e)]),u=re(c,d=>{if(l(),s.value&&a){o=new ResizeObserver(t);for(const f of d)f&&o.observe(f,r)}},{immediate:!0,flush:"post"}),p=()=>{l(),u()};return En(p),{isSupported:s,stop:p}}function Mp(e,t={width:0,height:0},n={}){const{window:a=Vt,box:r="content-box"}=n,o=w(()=>{var d,f;return(f=(d=Nt(e))==null?void 0:d.namespaceURI)==null?void 0:f.includes("svg")}),s=K(t.width),l=K(t.height),{stop:c}=Op(e,([d])=>{const f=r==="border-box"?d.borderBoxSize:r==="content-box"?d.contentBoxSize:d.devicePixelContentBoxSize;if(a&&o.value){const h=Nt(e);if(h){const g=h.getBoundingClientRect();s.value=g.width,l.value=g.height}}else if(f){const h=Array.isArray(f)?f:[f];s.value=h.reduce((g,{inlineSize:b})=>g+b,0),l.value=h.reduce((g,{blockSize:b})=>g+b,0)}else s.value=d.contentRect.width,l.value=d.contentRect.height},n);Rr(()=>{const d=Nt(e);d&&(s.value="offsetWidth"in d?d.offsetWidth:t.width,l.value="offsetHeight"in d?d.offsetHeight:t.height)});const u=re(()=>Nt(e),d=>{s.value=d?t.width:0,l.value=d?t.height:0});function p(){c(),u()}return{width:s,height:l,stop:p}}const Kl=["fullscreenchange","webkitfullscreenchange","webkitendfullscreen","mozfullscreenchange","MSFullscreenChange"];function Es(e,t={}){const{document:n=e1,autoExit:a=!1}=t,r=w(()=>{var k;return(k=Nt(e))!=null?k:n==null?void 0:n.querySelector("html")}),o=K(!1),s=w(()=>["requestFullscreen","webkitRequestFullscreen","webkitEnterFullscreen","webkitEnterFullScreen","webkitRequestFullScreen","mozRequestFullScreen","msRequestFullscreen"].find(k=>n&&k in n||r.value&&k in r.value)),l=w(()=>["exitFullscreen","webkitExitFullscreen","webkitExitFullScreen","webkitCancelFullScreen","mozCancelFullScreen","msExitFullscreen"].find(k=>n&&k in n||r.value&&k in r.value)),c=w(()=>["fullScreen","webkitIsFullScreen","webkitDisplayingFullscreen","mozFullScreen","msFullscreenElement"].find(k=>n&&k in n||r.value&&k in r.value)),u=["fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement"].find(k=>n&&k in n),p=qa(()=>r.value&&n&&s.value!==void 0&&l.value!==void 0&&c.value!==void 0),d=()=>u?(n==null?void 0:n[u])===r.value:!1,f=()=>{if(c.value){if(n&&n[c.value]!=null)return n[c.value];{const k=r.value;if((k==null?void 0:k[c.value])!=null)return!!k[c.value]}}return!1};async function h(){if(!(!p.value||!o.value)){if(l.value)if((n==null?void 0:n[l.value])!=null)await n[l.value]();else{const k=r.value;(k==null?void 0:k[l.value])!=null&&await k[l.value]()}o.value=!1}}async function g(){if(!p.value||o.value)return;f()&&await h();const k=r.value;s.value&&(k==null?void 0:k[s.value])!=null&&(await k[s.value](),o.value=!0)}async function b(){await(o.value?h():g())}const _=()=>{const k=f();(!k||k&&d())&&(o.value=k)};return Ie(n,Kl,_,!1),Ie(()=>Nt(r),Kl,_,!1),a&&En(h),{isSupported:p,isFullscreen:o,enter:g,exit:h,toggle:b}}function lo(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function a1(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const io=new WeakMap;function r1(e,t=!1){const n=K(t);let a=null,r="";re(kp(e),l=>{const c=lo(Ye(l));if(c){const u=c;if(io.get(u)||io.set(u,u.style.overflow),u.style.overflow!=="hidden"&&(r=u.style.overflow),u.style.overflow==="hidden")return n.value=!0;if(n.value)return u.style.overflow="hidden"}},{immediate:!0});const o=()=>{const l=lo(Ye(e));!l||n.value||(Ul&&(a=Ie(l,"touchmove",c=>{Rp(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},s=()=>{const l=lo(Ye(e));!l||!n.value||(Ul&&(a==null||a()),l.style.overflow=r,io.delete(l),n.value=!1)};return En(s),w({get(){return n.value},set(l){l?o():s()}})}function xs(e,t,n={}){const{window:a=Vt}=n;return ta(e,t,a==null?void 0:a.sessionStorage,n)}let Bp=0;function $p(e,t={}){const n=K(!1),{document:a=e1,immediate:r=!0,manual:o=!1,id:s=`vueuse_styletag_${++Bp}`}=t,l=K(e);let c=()=>{};const u=()=>{if(!a)return;const d=a.getElementById(s)||a.createElement("style");d.isConnected||(d.id=s,t.media&&(d.media=t.media),a.head.appendChild(d)),!n.value&&(c=re(l,f=>{d.textContent=f},{immediate:!0}),n.value=!0)},p=()=>{!a||!n.value||(c(),a.head.removeChild(a.getElementById(s)),n.value=!1)};return r&&!o&&Rr(u),o||En(p),{id:s,css:l,unload:p,load:u,isLoaded:on(n)}}function Jp(e={}){const{window:t=Vt,behavior:n="auto"}=e;if(!t)return{x:K(0),y:K(0)};const a=K(t.scrollX),r=K(t.scrollY),o=w({get(){return a.value},set(l){scrollTo({left:l,behavior:n})}}),s=w({get(){return r.value},set(l){scrollTo({top:l,behavior:n})}});return Ie(t,"scroll",()=>{a.value=t.scrollX,r.value=t.scrollY},{capture:!1,passive:!0}),{x:o,y:s}}function Fp(e={}){const{window:t=Vt,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:a=Number.POSITIVE_INFINITY,listenOrientation:r=!0,includeScrollbar:o=!0}=e,s=K(n),l=K(a),c=()=>{t&&(o?(s.value=t.innerWidth,l.value=t.innerHeight):(s.value=t.document.documentElement.clientWidth,l.value=t.document.documentElement.clientHeight))};if(c(),Rr(c),Ie("resize",c,{passive:!0}),r){const u=n1("(orientation: portrait)");re(u,()=>c())}return{width:s,height:l}}var Np=R({name:"FontIcon",props:{icon:{type:String,default:""},color:{type:String,default:""},size:{type:[String,Number],default:""}},setup(e){const t=w(()=>{const a=["font-icon icon"],r=`iconfont icon-${e.icon}`;return a.push(r),a}),n=w(()=>{const a={};return e.color&&(a.color=e.color),e.size&&(a["font-size"]=Number.isNaN(Number(e.size))?e.size:`${e.size}px`),vt(a).length?a:null});return()=>e.icon?i("span",{key:e.icon,class:t.value,style:n.value}):null}});const o1=({type:e="info",text:t="",vertical:n,color:a},{slots:r})=>{var o;return i("span",{class:["vp-badge",e,{diy:a}],style:{verticalAlign:n??!1,backgroundColor:a??!1}},((o=r.default)==null?void 0:o.call(r))||t)};o1.displayName="Badge";const pe=({name:e="",color:t="currentColor"},{slots:n})=>{var a;return i("svg",{xmlns:"http://www.w3.org/2000/svg",class:["icon",`${e}-icon`],viewBox:"0 0 1024 1024",fill:t,"aria-label":`${e} icon`},(a=n.default)==null?void 0:a.call(n))};pe.displayName="IconBase";const Ss=({size:e=48,stroke:t=4,wrapper:n=!0,height:a=2*e})=>{const r=i("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,preserveAspectRatio:"xMidYMid",viewBox:"25 25 50 50"},[i("animateTransform",{attributeName:"transform",type:"rotate",dur:"2s",keyTimes:"0;1",repeatCount:"indefinite",values:"0;360"}),i("circle",{cx:"50",cy:"50",r:"20",fill:"none",stroke:"currentColor","stroke-width":t,"stroke-linecap":"round"},[i("animate",{attributeName:"stroke-dasharray",dur:"1.5s",keyTimes:"0;0.5;1",repeatCount:"indefinite",values:"1,200;90,200;1,200"}),i("animate",{attributeName:"stroke-dashoffset",dur:"1.5s",keyTimes:"0;0.5;1",repeatCount:"indefinite",values:"0;-35px;-125px"})])]);return n?i("div",{class:"loading-icon-wrapper",style:`display:flex;align-items:center;justify-content:center;height:${a}px`},r):r};Ss.displayName="LoadingIcon";const s1=(e,{slots:t})=>{var n;return(n=t.default)==null?void 0:n.call(t)},l1=()=>i(pe,{name:"github"},()=>i("path",{d:"M511.957 21.333C241.024 21.333 21.333 240.981 21.333 512c0 216.832 140.544 400.725 335.574 465.664 24.49 4.395 32.256-10.07 32.256-23.083 0-11.69.256-44.245 0-85.205-136.448 29.61-164.736-64.64-164.736-64.64-22.315-56.704-54.4-71.765-54.4-71.765-44.587-30.464 3.285-29.824 3.285-29.824 49.195 3.413 75.179 50.517 75.179 50.517 43.776 75.008 114.816 53.333 142.762 40.79 4.523-31.66 17.152-53.377 31.19-65.537-108.971-12.458-223.488-54.485-223.488-242.602 0-53.547 19.114-97.323 50.517-131.67-5.035-12.33-21.93-62.293 4.779-129.834 0 0 41.258-13.184 134.912 50.346a469.803 469.803 0 0 1 122.88-16.554c41.642.213 83.626 5.632 122.88 16.554 93.653-63.488 134.784-50.346 134.784-50.346 26.752 67.541 9.898 117.504 4.864 129.834 31.402 34.347 50.474 78.123 50.474 131.67 0 188.586-114.73 230.016-224.042 242.09 17.578 15.232 33.578 44.672 33.578 90.454v135.85c0 13.142 7.936 27.606 32.854 22.87C862.25 912.597 1002.667 728.747 1002.667 512c0-271.019-219.648-490.667-490.71-490.667z"}));l1.displayName="GitHubIcon";const i1=()=>i(pe,{name:"gitlab"},()=>i("path",{d:"M229.333 78.688C223.52 62 199.895 62 193.895 78.688L87.958 406.438h247.5c-.188 0-106.125-327.75-106.125-327.75zM33.77 571.438c-4.875 15 .563 31.687 13.313 41.25l464.812 345L87.77 406.438zm301.5-165 176.813 551.25 176.812-551.25zm655.125 165-54-165-424.312 551.25 464.812-345c12.938-9.563 18.188-26.25 13.5-41.25zM830.27 78.688c-5.812-16.688-29.437-16.688-35.437 0l-106.125 327.75h247.5z"}));i1.displayName="GitLabIcon";const c1=()=>i(pe,{name:"gitee"},()=>i("path",{d:"M512 992C246.92 992 32 777.08 32 512S246.92 32 512 32s480 214.92 480 480-214.92 480-480 480zm242.97-533.34H482.39a23.7 23.7 0 0 0-23.7 23.7l-.03 59.28c0 13.08 10.59 23.7 23.7 23.7h165.96a23.7 23.7 0 0 1 23.7 23.7v11.85a71.1 71.1 0 0 1-71.1 71.1H375.71a23.7 23.7 0 0 1-23.7-23.7V423.11a71.1 71.1 0 0 1 71.1-71.1h331.8a23.7 23.7 0 0 0 23.7-23.7l.06-59.25a23.73 23.73 0 0 0-23.7-23.73H423.11a177.78 177.78 0 0 0-177.78 177.75v331.83c0 13.08 10.62 23.7 23.7 23.7h349.62a159.99 159.99 0 0 0 159.99-159.99V482.33a23.7 23.7 0 0 0-23.7-23.7z"}));c1.displayName="GiteeIcon";const u1=()=>i(pe,{name:"bitbucket"},()=>i("path",{d:"M575.256 490.862c6.29 47.981-52.005 85.723-92.563 61.147-45.714-20.004-45.714-92.562-1.133-113.152 38.29-23.442 93.696 7.424 93.696 52.005zm63.451-11.996c-10.276-81.152-102.29-134.839-177.152-101.156-47.433 21.138-79.433 71.424-77.129 124.562 2.853 69.705 69.157 126.866 138.862 120.576S647.3 548.571 638.708 478.83zm136.558-309.723c-25.161-33.134-67.986-38.839-105.728-45.13-106.862-17.151-216.576-17.7-323.438 1.134-35.438 5.706-75.447 11.996-97.719 43.996 36.572 34.304 88.576 39.424 135.424 45.129 84.553 10.862 171.447 11.447 256 .585 47.433-5.705 99.987-10.276 135.424-45.714zm32.585 591.433c-16.018 55.99-6.839 131.438-66.304 163.986-102.29 56.576-226.304 62.867-338.87 42.862-59.43-10.862-129.135-29.696-161.72-85.723-14.3-54.858-23.442-110.848-32.585-166.84l3.438-9.142 10.276-5.157c170.277 112.567 408.576 112.567 579.438 0 26.844 8.01 6.84 40.558 6.29 60.014zm103.424-549.157c-19.42 125.148-41.728 249.71-63.415 374.272-6.29 36.572-41.728 57.162-71.424 72.558-106.862 53.724-231.424 62.866-348.562 50.286-79.433-8.558-160.585-29.696-225.134-79.433-30.28-23.443-30.28-63.415-35.986-97.134-20.005-117.138-42.862-234.277-57.161-352.585 6.839-51.42 64.585-73.728 107.447-89.71 57.16-21.138 118.272-30.866 178.87-36.571 129.134-12.58 261.157-8.01 386.304 28.562 44.581 13.13 92.563 31.415 122.844 69.705 13.714 17.7 9.143 40.01 6.29 60.014z"}));u1.displayName="BitbucketIcon";const p1=()=>i(pe,{name:"source"},()=>i("path",{d:"M601.92 475.2c0 76.428-8.91 83.754-28.512 99.594-14.652 11.88-43.956 14.058-78.012 16.434-18.81 1.386-40.392 2.97-62.172 6.534-18.612 2.97-36.432 9.306-53.064 17.424V299.772c37.818-21.978 63.36-62.766 63.36-109.692 0-69.894-56.826-126.72-126.72-126.72S190.08 120.186 190.08 190.08c0 46.926 25.542 87.714 63.36 109.692v414.216c-37.818 21.978-63.36 62.766-63.36 109.692 0 69.894 56.826 126.72 126.72 126.72s126.72-56.826 126.72-126.72c0-31.086-11.286-59.598-29.7-81.576 13.266-9.504 27.522-17.226 39.996-19.206 16.038-2.574 32.868-3.762 50.688-5.148 48.312-3.366 103.158-7.326 148.896-44.55 61.182-49.698 74.25-103.158 75.24-187.902V475.2h-126.72zM316.8 126.72c34.848 0 63.36 28.512 63.36 63.36s-28.512 63.36-63.36 63.36-63.36-28.512-63.36-63.36 28.512-63.36 63.36-63.36zm0 760.32c-34.848 0-63.36-28.512-63.36-63.36s28.512-63.36 63.36-63.36 63.36 28.512 63.36 63.36-28.512 63.36-63.36 63.36zM823.68 158.4h-95.04V63.36h-126.72v95.04h-95.04v126.72h95.04v95.04h126.72v-95.04h95.04z"}));p1.displayName="SourceIcon";const Vp=e=>/\b(?:Android|iPhone)/i.test(e),Hp=e=>/version\/([\w.]+) .*(mobile ?safari|safari)/i.test(e),zp=e=>[/\((ipad);[-\w),; ]+apple/i,/applecoremedia\/[\w.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i].some(t=>t.test(e)),Br=(e,t)=>{let n=1;for(let a=0;a>6;return n+=n<<3,n^=n>>11,n%t};let qp=class{constructor(){this.messageElements={};const t="message-container",n=document.getElementById(t);n?this.containerElement=n:(this.containerElement=document.createElement("div"),this.containerElement.id=t,document.body.appendChild(this.containerElement))}pop(t,n=2e3){const a=document.createElement("div"),r=Date.now();return a.className="message move-in",a.innerHTML=t,this.containerElement.appendChild(a),this.messageElements[r]=a,n>0&&setTimeout(()=>{this.close(r)},n),r}close(t){if(t){const n=this.messageElements[t];n.classList.remove("move-in"),n.classList.add("move-out"),n.addEventListener("animationend",()=>{n.remove(),delete this.messageElements[t]})}else vt(this.messageElements).forEach(n=>this.close(Number(n)))}destroy(){document.body.removeChild(this.containerElement)}};const d1=/#.*$/u,Up=e=>{const t=d1.exec(e);return t?t[0]:""},Yl=e=>decodeURI(e).replace(d1,"").replace(/\/index\.html$/iu,"/").replace(/\.html$/iu,"").replace(/(README|index)?\.md$/iu,""),f1=(e,t)=>{if(!ks(t))return!1;const n=Yl(e.path),a=Yl(t),r=Up(t);return r?r===e.hash&&(!a||n===a):n===a},Wp=e=>Dt(e)?e:`https://github.com/${e}`,h1=e=>!Dt(e)||/github\.com/.test(e)?"GitHub":/bitbucket\.org/.test(e)?"Bitbucket":/gitlab\.com/.test(e)?"GitLab":/gitee\.com/.test(e)?"Gitee":null;var Gp=e=>Object.prototype.toString.call(e)==="[object Object]",Aa=e=>typeof e=="string";const v1=Array.isArray,Xl=e=>Gp(e)&&Aa(e.name),Ia=(e,t=!1)=>e?v1(e)?e.map(n=>Aa(n)?{name:n}:Xl(n)?n:null).filter(n=>n!==null):Aa(e)?[{name:e}]:Xl(e)?[e]:(console.error(`Expect "author" to be \`AuthorInfo[] | AuthorInfo | string[] | string ${t?"":"| false"} | undefined\`, but got`,e),[]):[],m1=(e,t)=>{if(e){if(v1(e)&&e.every(Aa))return e;if(Aa(e))return[e];console.error(`Expect ${t||"value"} to be \`string[] | string | undefined\`, but got`,e)}return[]},g1=e=>m1(e,"category"),y1=e=>m1(e,"tag"),Kp="accelerometer; autoplay; clipboard-write; encrypted-media; fullscreen; gyroscope; picture-in-picture",Ql=e=>Se(e)?e:`${e}px`,b1=(e,t=0)=>{const n=Oe(),a=w(()=>Ql(yt(e.width)||"100%")),r=K("auto"),o=c=>{if(Se(c)){const[u,p]=c.split(":"),d=Number(u)/Number(p);if(!Number.isNaN(d))return d}return typeof c=="number"?c:16/9},s=c=>{const u=yt(e.height),p=o(yt(e.ratio));return u?Ql(u):`${Number(c)/p+yt(t)}px`},l=()=>{n.value&&(r.value=s(n.value.clientWidth))};return fe(()=>{l(),Pe(t)&&re(t,l),Ie("orientationchange",l),Ie("resize",l)}),{el:n,width:a,height:r,resize:l}},Zl="https://player.bilibili.com/player.html";var Yp=R({name:"BiliBili",props:{bvid:{type:String,default:""},aid:{type:String,default:""},cid:{type:String,default:""},title:{type:String,default:"A BiliBili video"},page:{type:[String,Number],default:1},width:{type:[String,Number],default:"100%"},height:{type:[String,Number],default:void 0},ratio:{type:[String,Number],default:16/9},time:{type:[String,Number],default:0},autoplay:Boolean},setup(e){const{el:t,width:n,height:a,resize:r}=b1(e),o=K(!1),s=w(()=>{const{aid:l,bvid:c,cid:u,autoplay:p,time:d,page:f}=e;return l&&u?`${Zl}?aid=${l}&cid=${u}&t=${d}&autoplay=${p?1:0}&p=${f}`:c?`${Zl}?bvid=${c}&t=${d}&autoplay=${p?1:0}`:null});return()=>s.value?[i("div",{class:"bilibili-desc"},i("a",{class:"sr-only",href:s.value},e.title)),i("iframe",{ref:t,src:s.value,title:e.title,class:"bilibili-iframe",allow:Kp,style:{width:n.value,height:o.value?a.value:0},onLoad:()=>{o.value=!0,r()}}),o.value?null:i(Ss)]:[]}});const Xp=e=>Dt(e)?e:Ce(e);var Qp={"/":{hint:"

此浏览器不支持嵌入式 PDF。请下载 PDF 查看:下载 PDF

"}};const co=e=>{console.error(`[PDF]: ${e}`)},Zp=e=>{for(;e.firstChild;)e.removeChild(e.firstChild)},ed=e=>e==="string"?document.querySelector(e):e instanceof HTMLElement?e:document.body,td=e=>{let t="";return e&&(t+=ea(e).map(([n,a])=>n==="noToolbar"?`toolbar=${a?0:1}`:`${encodeURIComponent(n)}=${encodeURIComponent(a)}`).join("&"),t&&(t=`#${t.slice(0,t.length-1)}`)),t},nd=(e,t,n,a,r)=>{Zp(t);const o=`${e==="pdfjs"?`${ms(Ce(null))}web/viewer.html?file=${encodeURIComponent(n)}`:n}${td(a)}`,s=e==="pdfjs"||e==="iframe"?"iframe":"embed",l=document.createElement(s);return l.className="pdf-viewer",l.type="application/pdf",l.title=r,l.src=o,l instanceof HTMLIFrameElement&&(l.allow="fullscreen"),t.classList.add("pdf-viewer-container"),t.appendChild(l),t.getElementsByTagName(s)[0]},ad=(e,t,{title:n,hint:a,options:r={}})=>{var g,b;if(typeof window>"u"||!((g=window==null?void 0:window.navigator)!=null&&g.userAgent))return null;const{navigator:o}=window,{userAgent:s}=o,l=ks(window.Promise),c=zp(s)||Vp(s),u=!c&&Hp(s),p=!c&&/firefox/iu.test(s)&&s.split("rv:").length>1?parseInt(s.split("rv:")[1].split(".")[0],10)>18:!1,d=!c&&(l||p);if(!Se(e))return co("URL is not valid"),null;const f=ed(t);if(!f)return co("Target element cannot be determined"),null;const h=n||((b=/\/([^/]+).pdf/.exec(e))==null?void 0:b[1])||"PDF Viewer";return d||!c?nd(u?"iframe":"embed",f,e,r,h):(f.innerHTML=a.replace(/\[url\]/g,e),co("This browser does not support embedded PDFs"),null)};var rd=R({name:"PDF",props:{url:{type:String,required:!0},title:{type:String,default:""},width:{type:[String,Number],default:"100%"},height:{type:[String,Number],default:void 0},ratio:{type:[String,Number],default:16/9},page:{type:[String,Number],default:1},noToolbar:Boolean,zoom:{type:[String,Number],default:100}},setup(e){const{el:t,width:n,height:a,resize:r}=b1(e),o=Zn(Qp);return fe(()=>{ad(Xp(e.url),t.value,{title:e.title,hint:o.value.hint,options:{page:e.page,noToolbar:e.noToolbar,zoom:e.zoom}}),r()}),()=>i("div",{class:"pdf-viewer-wrapper",ref:t,style:{width:n.value,height:a.value}})}});const od=Ne({enhance:({app:e})=>{bt("FontIcon")||e.component("FontIcon",Np),bt("Badge")||e.component("Badge",o1),bt("BiliBili")||e.component("BiliBili",Yp),bt("PDF")||e.component("PDF",rd)},setup:()=>{$p(`@import url("//at.alicdn.com/t/c/font_4370612_kwvzrh19oxj.css"); +`)},rootComponents:[]}),ei=async(e,t)=>{const{path:n,query:a}=e.currentRoute.value,{scrollBehavior:r}=e.options;e.options.scrollBehavior=void 0,await e.replace({path:n,query:a,hash:t}),e.options.scrollBehavior=r},sd=({headerLinkSelector:e,headerAnchorSelector:t,delay:n,offset:a=5})=>{const r=ln();Ie("scroll",wp(()=>{var g,b;const s=Math.max(window.scrollY,document.documentElement.scrollTop,document.body.scrollTop);if(Math.abs(s-0)d.some(k=>k.hash===_.hash));for(let _=0;_=(((g=k.parentElement)==null?void 0:g.offsetTop)??0)-a,E=!S||s<(((b=S.parentElement)==null?void 0:b.offsetTop)??0)-a;if(!(y&&E))continue;const A=decodeURIComponent(r.currentRoute.value.hash),q=decodeURIComponent(k.hash);if(A===q)return;if(p){for(let X=_+1;XSe(e.title)?{title:e.title}:null;const w1=Symbol(""),dd=e=>{k1=e},fd=()=>Le(w1),hd=e=>{e.provide(w1,k1)};var vd={"/":{title:"目录",empty:"暂无目录"}};const md=R({name:"Catalog",props:{base:{type:String,default:""},level:{type:Number,default:3},index:Boolean,hideHeading:Boolean},setup(e){const t=fd(),n=Zn(vd),a=ye(),r=V4(),o=Nc(),l=Oe(ea(r.value).map(([u,{meta:p}])=>{const d=t(p);if(!d)return null;const f=u.split("/").length;return{level:pp(u,"/")?f-2:f-1,base:u.replace(/\/[^/]+\/?$/,"/"),path:u,...d}}).filter(u=>_n(u)&&Se(u.title))),c=w(()=>{const u=e.base?A3(ms(e.base)):a.value.path.replace(/\/[^/]+$/,"/"),p=u.split("/").length-2,d=[];return l.value.filter(({level:f,path:h})=>{if(!Gn(h,u)||h===u)return!1;if(u==="/"){const g=vt(o.value.locales).filter(b=>b!=="/");if(h==="/404.html"||g.some(b=>Gn(h,b)))return!1}return f-p<=e.level}).sort(({title:f,level:h,order:g},{title:b,level:_,order:k})=>{const S=h-_;return S||(so(g)?so(k)?g>0?k>0?g-k:-1:k<0?g-k:1:g:so(k)?k:f.localeCompare(b))}).forEach(f=>{var b;const{base:h,level:g}=f;switch(g-p){case 1:{d.push(f);break}case 2:{const _=d.find(k=>k.path===h);_&&(_.children??(_.children=[])).push(f);break}default:{const _=d.find(k=>k.path===h.replace(/\/[^/]+\/$/,"/"));if(_){const k=(b=_.children)==null?void 0:b.find(S=>S.path===h);k&&(k.children??(k.children=[])).push(f)}}}}),d});return()=>{const u=c.value.some(p=>p.children);return i("div",{class:["vp-catalog-wrapper",{index:e.index}]},[e.hideHeading?null:i("h2",{class:"vp-catalog-main-title"},n.value.title),c.value.length?i(e.index?"ol":"ul",{class:["vp-catalogs",{deep:u}]},c.value.map(({children:p=[],title:d,path:f,content:h})=>{const g=i(je,{class:"vp-catalog-title",to:f},()=>h?i(h):d);return i("li",{class:"vp-catalog"},u?[i("h3",{id:d,class:["vp-catalog-child-title",{"has-children":p.length}]},[i("a",{href:`#${d}`,class:"vp-catalog-header-anchor","aria-hidden":!0},"#"),g]),p.length?i(e.index?"ol":"ul",{class:"vp-child-catalogs"},p.map(({children:b=[],content:_,path:k,title:S})=>i("li",{class:"vp-child-catalog"},[i("div",{class:["vp-catalog-sub-title",{"has-children":b.length}]},[i("a",{href:`#${S}`,class:"vp-catalog-header-anchor"},"#"),i(je,{class:"vp-catalog-title",to:k},()=>_?i(_):S)]),b.length?i(e.index?"ol":"div",{class:e.index?"vp-sub-catalogs":"vp-sub-catalogs-wrapper"},b.map(({content:y,path:E,title:M})=>e.index?i("li",{class:"vp-sub-catalog"},i(je,{to:E},()=>y?i(y):M)):i(je,{class:"vp-sub-catalog-link",to:E},()=>y?i(y):M))):null]))):null]:i("div",{class:"vp-catalog-child-title"},g))})):i("p",{class:"vp-empty-catalog"},n.value.empty)])}}}),gd=Ne({enhance:({app:e})=>{hd(e),bt("Catalog",e)||e.component("Catalog",md)}});var yd={"/":{backToTop:"返回顶部"}};const bd=R({name:"BackToTop",setup(e){const t=he(),n=Zn(yd),a=Oe(),{height:r}=Mp(a),{height:o}=Fp(),{y:s}=Jp(),l=w(()=>t.value.backToTop!==!1&&s.value>100),c=w(()=>s.value/(r.value-o.value)*100);return fe(()=>{a.value=document.body}),()=>i(qn,{name:"back-to-top"},()=>l.value?i("button",{type:"button",class:"vp-back-to-top-button","aria-label":n.value.backToTop,onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})}},[i("span",{class:"vp-scroll-progress",role:"progressbar","aria-labelledby":"loadinglabel","aria-valuenow":c.value},i("svg",i("circle",{cx:"50%",cy:"50%",style:{"stroke-dasharray":`calc(${Math.PI*c.value}% - ${4*Math.PI}px) calc(${Math.PI*100}% - ${4*Math.PI}px)`}}))),i("div",{class:"back-to-top-icon"})]):null)}}),kd=Ne({rootComponents:[bd]}),wd=i("svg",{class:"external-link-icon",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"},[i("path",{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}),i("polygon",{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"})]),_1=R({name:"ExternalLinkIcon",props:{locales:{type:Object,required:!1,default:()=>({})}},setup(e){const t=St(),n=w(()=>e.locales[t.value]??{openInNewWindow:"open in new window"});return()=>i("span",[wd,i("span",{class:"external-link-icon-sr-only"},n.value.openInNewWindow)])}});var _d={};const Ed=_d,xd=Ne({enhance({app:e}){e.component("ExternalLinkIcon",i(_1,{locales:Ed}))}});/** + * NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT + */const ie={settings:{minimum:.08,easing:"ease",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,barSelector:'[role="bar"]',parent:"body",template:'
'},status:null,set:e=>{const t=ie.isStarted();e=uo(e,ie.settings.minimum,1),ie.status=e===1?null:e;const n=ie.render(!t),a=n.querySelector(ie.settings.barSelector),r=ie.settings.speed,o=ie.settings.easing;return n.offsetWidth,Sd(s=>{ir(a,{transform:"translate3d("+ti(e)+"%,0,0)",transition:"all "+r+"ms "+o}),e===1?(ir(n,{transition:"none",opacity:"1"}),n.offsetWidth,setTimeout(function(){ir(n,{transition:"all "+r+"ms linear",opacity:"0"}),setTimeout(function(){ie.remove(),s()},r)},r)):setTimeout(()=>s(),r)}),ie},isStarted:()=>typeof ie.status=="number",start:()=>{ie.status||ie.set(0);const e=()=>{setTimeout(()=>{ie.status&&(ie.trickle(),e())},ie.settings.trickleSpeed)};return ie.settings.trickle&&e(),ie},done:e=>!e&&!ie.status?ie:ie.inc(.3+.5*Math.random()).set(1),inc:e=>{let t=ie.status;return t?(typeof e!="number"&&(e=(1-t)*uo(Math.random()*t,.1,.95)),t=uo(t+e,0,.994),ie.set(t)):ie.start()},trickle:()=>ie.inc(Math.random()*ie.settings.trickleRate),render:e=>{if(ie.isRendered())return document.getElementById("nprogress");ni(document.documentElement,"nprogress-busy");const t=document.createElement("div");t.id="nprogress",t.innerHTML=ie.settings.template;const n=t.querySelector(ie.settings.barSelector),a=e?"-100":ti(ie.status||0),r=document.querySelector(ie.settings.parent);return ir(n,{transition:"all 0 linear",transform:"translate3d("+a+"%,0,0)"}),r!==document.body&&ni(r,"nprogress-custom-parent"),r==null||r.appendChild(t),t},remove:()=>{ai(document.documentElement,"nprogress-busy"),ai(document.querySelector(ie.settings.parent),"nprogress-custom-parent");const e=document.getElementById("nprogress");e&&Td(e)},isRendered:()=>!!document.getElementById("nprogress")},uo=(e,t,n)=>en?n:e,ti=e=>(-1+e)*100,Sd=function(){const e=[];function t(){const n=e.shift();n&&n(t)}return function(n){e.push(n),e.length===1&&t()}}(),ir=function(){const e=["Webkit","O","Moz","ms"],t={};function n(s){return s.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(l,c){return c.toUpperCase()})}function a(s){const l=document.body.style;if(s in l)return s;let c=e.length;const u=s.charAt(0).toUpperCase()+s.slice(1);let p;for(;c--;)if(p=e[c]+u,p in l)return p;return s}function r(s){return s=n(s),t[s]??(t[s]=a(s))}function o(s,l,c){l=r(l),s.style[l]=c}return function(s,l){for(const c in l){const u=l[c];u!==void 0&&Object.prototype.hasOwnProperty.call(l,c)&&o(s,c,u)}}}(),E1=(e,t)=>(typeof e=="string"?e:Ts(e)).indexOf(" "+t+" ")>=0,ni=(e,t)=>{const n=Ts(e),a=n+t;E1(n,t)||(e.className=a.substring(1))},ai=(e,t)=>{const n=Ts(e);if(!E1(e,t))return;const a=n.replace(" "+t+" "," ");e.className=a.substring(1,a.length-1)},Ts=e=>(" "+(e.className||"")+" ").replace(/\s+/gi," "),Td=e=>{e&&e.parentNode&&e.parentNode.removeChild(e)},Cd=()=>{fe(()=>{const e=ln(),t=new Set;t.add(e.currentRoute.value.path),e.beforeEach(n=>{t.has(n.path)||ie.start()}),e.afterEach(n=>{t.add(n.path),ie.done()})})},Ld=Ne({setup(){Cd()}}),Ad=JSON.parse('{"encrypt":{"config":{}},"author":{"name":"会敲代码的程序员","url":"https://github.com/joeljhou","email":"joeljhou336@gmail.com"},"license":"MIT","darkmode":"toggle","logo":"/images/system/geeky.png","fullscreen":false,"pageInfo":["Author","Original","Date","Category","Tag","ReadingTime"],"navbarAutoHide":"mobile","navbarLayout":{"start":["Brand"],"center":["Links"],"end":["Repo","Outlook","Search"]},"hideSiteNameOnMobile":false,"sidebarIcon":true,"headerDepth":2,"footer":"© 2023 - 至今 www.geekyspace.cn 保留所有权利","copyright":"Copyright © 2024 会敲代码的程序员","displayFooter":true,"blog":{"avatar":"/images/personal/geekyspace.png","description":"会敲代码的程序员,分享技术,品味人生","intro":"/about-me.html","medias":{"GitHub":"https://github.com/joeljhou","Gitee":"https://gitee.com/joeljhou","BiliBili":"https://space.bilibili.com/3546587190004175","CSDN":"https://blog.csdn.net/qq_40174960?type=blog","Bokeyuan":"https://www.cnblogs.com/geekyspace","Zhihu":"https://www.zhihu.com/people/joeljhou","Juejin":"https://juejin.cn/user/2911162523717640","XiaoHongShu":"https://www.xiaohongshu.com/user/profile/5dd53e0c0000000001009bf1","WechatMP":"https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzI4MTMwMDg4MA==","Tieba":"https://tieba.baidu.com/home/main?un=%E6%9E%81%E5%AE%A2%E8%8B%B1%E9%9B%84","Weibo":"https://weibo.com/u/7788864199","Twitter":"https://twitter.com/joeljhou336","Rss":"./rss.xml"}},"editLink":true,"docsRepo":"https://github.com/joeljhou/joeljhou.github.io","docsDir":"src","docsBranch":"master","locales":{"/":{"lang":"zh-CN","navbarLocales":{"langName":"简体中文","selectLangAriaLabel":"选择语言"},"metaLocales":{"author":"作者","date":"写作日期","origin":"原创","views":"访问量","category":"分类","tag":"标签","readingTime":"阅读时间","words":"字数","toc":"此页内容","prev":"上一页","next":"下一页","lastUpdated":"上次编辑于","contributors":"贡献者","editLink":"编辑此页","print":"打印"},"blogLocales":{"article":"文章","articleList":"文章列表","category":"分类","tag":"标签","timeline":"时间轴","timelineTitle":"昨日不在","all":"全部","intro":"个人介绍","star":"星标","empty":"$text 为空"},"paginationLocales":{"prev":"上一页","next":"下一页","navigate":"跳转到","action":"前往","errorText":"请输入 1 到 $page 之前的页码!"},"outlookLocales":{"themeColor":"主题色","darkmode":"外观","fullscreen":"全屏"},"encryptLocales":{"iconLabel":"文章已加密","placeholder":"输入密码","remember":"记住密码","errorHint":"请输入正确的密码"},"routeLocales":{"skipToContent":"跳至主要內容","notFoundTitle":"页面不存在","notFoundMsg":["这里什么也没有","我们是怎么来到这儿的?","这 是 四 零 四 !","看起来你访问了一个失效的链接"],"back":"返回上一页","home":"带我回家","openInNewWindow":"Open in new window"},"navbar":[{"text":"首页","icon":"home","link":"/"},{"text":"时间轴","icon":"list","link":"timeline/"},{"text":"Java","icon":"java","children":[{"text":"Java进阶-新版本特性","children":[{"text":"Java新版本特性","icon":"java","link":"md/java-features/"}]},{"text":"Java进阶-JVM相关","children":[{"text":"深入理解Java虚拟机","icon":"jvm-xx","link":"md/jvm/"}]}]},{"text":"Spring","icon":"spring","children":[{"text":"Spring 框架","icon":"spring","link":"md/spring-framework/core/"},{"text":"Spring Data JPA","icon":"spring","link":"md/spring-data-jpa/jetbrains/getting-started"}]},{"text":"安装大全","icon":"launch","link":"md/installation-guide/"},{"text":"玩转IDEA","icon":"intellij-idea","prefix":"md/idea-tips/","children":[{"text":"IDEA 教程","icon":"intellij-idea","link":"https://www.jetbrains.com/help/idea/getting-started.html"},{"text":"正版激活码","icon":"intellij-idea","link":"activation"}]},{"text":"文库汇总","icon":"article","link":"article.html"}],"sidebar":{"/md/java-features/":[{"text":"总目录","prefix":"/md/java-features/","link":"/md/java-features/"},{"text":"Java 21","prefix":"Java21/","link":"Java21/","children":[{"text":"字符串模版(Preview)","link":"jep430-string-templates"},{"text":"有序集合","link":"jep431-sequenced-collections"},{"text":"分代ZGC","link":"jep439-generational-zgc"},{"text":"记录模式","link":"jep440-record-partterns"},{"text":"switch模式匹配","link":"jep441-pattern-matching-for-switch"},{"text":"虚拟线程","link":"jep444-virtual-threads"}]},{"text":"Java 20","prefix":"Java20/","link":"Java20/","children":[{"text":"新特性总结","link":"java20-new-features-summary"}]},{"text":"Java 19","prefix":"Java19/","link":"Java19/","children":[{"text":"新特性总结","link":"java19-new-features-summary"}]},{"text":"Java 18","prefix":"Java18/","link":"Java18/","children":[{"text":"指定UTF-8为默认字符集","link":"jep400-utf8-by-default"},{"text":"简单Web服务器","link":"jep408-simple-web-server"},{"text":"新增@snipppet标签","link":"jep413-code-snippets-in-api-documentation"}]},{"text":"Java 17","prefix":"Java17/","link":"Java17/","children":[{"text":"switch模式匹配(Preview)","link":"jep406-pattern-matching-for-switch-preview"},{"text":"sealed类","link":"jep409-sealed-classes"}]},{"text":"Java 16","prefix":"Java16/","link":"Java16/","children":[{"text":"instanceof模式匹配","link":"jep394-pattern-matching-for-instanceof"},{"text":"record类","link":"jep395-records"}]},{"text":"Java 15","prefix":"Java15/","link":"Java15/","children":[{"text":"隐藏类(Hidden Classes)","link":"jep371-hidden-classes"},{"text":"文本块(Text Blocks)","link":"jep378-text-blocks"}]},{"text":"Java 14","prefix":"Java14/","link":"Java14/","children":[{"text":"switch表达式增强","link":"jep361-switch-expressions"}]},{"text":"Java 11","prefix":"Java11/","link":"Java11/","children":[{"text":"移除JavaEE和CORBA模块","link":"jep320-remove-JavaEE-CORBA"}]},{"text":"Java 10","prefix":"Java10/","link":"Java10/","children":[{"text":"局部变量类型推断","link":"jep286-local-variable-type-inference"}]},{"text":"Java 9","prefix":"Java9/","link":"Java9/","children":[{"text":"交互式编程环境JShell","link":"jep222-jshell"},{"text":"不可变集合的快捷创建方法","link":"jep269-convenience-factory-methods-for-collections"}]}],"/md/jvm/":[{"text":"总目录","prefix":"/md/jvm/","link":"/md/jvm/"},{"text":"走近Java","prefix":"part1/","link":"part1/","children":[{"text":"JVM概述","link":"overview"},{"text":"编译JDK","link":"compile_jdk"}]},{"text":"自动内存管理","prefix":"part2/","link":"part2/","children":[{"text":"运行时数据区","link":"runtime-data-areas"},{"text":"对象分配过程","link":"heap-object-flow"}]},{"text":"虚拟机执行子系统","prefix":"part3/","link":"part3/","children":[{"text":"类文件结构","link":"class-file-structure"},{"text":"字节码指令集","link":"bytecode-instructions-set"},{"text":"类加载机制","link":"class-loading-mechanism"}]},{"text":"程序编译与代码优化","prefix":"part4/","link":"part4/","children":[]},{"text":"高效并发","prefix":"part5/","link":"part5/","children":[]}],"/md/spring-framework/":[{"text":"概述","collapsible":true,"prefix":"overview/","link":"overview/","children":[{"text":"快速开始","link":"quickstart"}]},{"text":"核心技术","collapsible":true,"prefix":"core/","link":"core/","children":[{"text":"IoC容器","link":"ioc-container"},{"text":"Bean定义","link":"beans-definition"},{"text":"依赖","prefix":"dependencies/","link":"dependencies/","collapsible":true,"children":[{"text":"依赖注入","link":"factory-collaborators"},{"text":"依赖和配置详解","link":"factory-properties-detailed"},{"text":"使用depends-on","link":"factory-dependson"},{"text":"懒加载Bean","link":"factory-lazy-init"},{"text":"自动装配协作者","link":"factory-autowire"},{"text":"方法注入","link":"factory-method-injection"}]},{"text":"Bean作用域","link":"beans-scope"},{"text":"Bean生命周期","link":"beans-lifecycle"},{"text":"Bean定义继承","link":"child-bean-definitions"}]}],"/md/spring-data-jpa/":[{"text":"总目录","prefix":"/md/spring-data-jpa/","link":"/md/spring-data-jpa/"},{"text":"快速入门","prefix":"/md/jetbrains/","link":"jetbrains/getting-started"}],"/md/installation-guide/":[{"text":"开发者安装大全","prefix":"/md/installation-guide/","link":"/md/installation-guide/"},{"text":"操作系统","prefix":"os/","children":[{"text":"Windows、Office激活","link":"windows-office-activation"}]}],"/md/docker/":[{"text":"概述","prefix":"/md/docker/overview","link":"/md/docker/overview"},{"text":"安装","prefix":"/md/docker/install","link":"/md/docker/install"},{"text":"镜像加速器","prefix":"/md/docker/mirror-acceleration","link":"/md/docker/mirror-acceleration"},{"text":"Top20常用命令","prefix":"/md/docker/top20-commands","link":"/md/docker/top20-commands"}]}}}}'),Id=K(Ad),x1=()=>Id,S1=Symbol(""),jd=()=>{const e=Le(S1);if(!e)throw new Error("useThemeLocaleData() is called without provider.");return e},Pd=(e,t)=>{const{locales:n,...a}=e;return{...a,...n==null?void 0:n[t]}},Dd=Ne({enhance({app:e}){const t=x1(),n=e._context.provides[bs],a=w(()=>Pd(t.value,n.routeLocale.value));e.provide(S1,a),Object.defineProperties(e.config.globalProperties,{$theme:{get(){return t.value}},$themeLocale:{get(){return a.value}}})}}),Od=/\b(?:Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini)/i,Md=()=>typeof window<"u"&&window.navigator&&"userAgent"in window.navigator&&Od.test(navigator.userAgent),Rd=({delay:e=500,duration:t=2e3,locales:n,selector:a,showInMobile:r})=>{const{copy:o,copied:s}=Cp({legacy:!0,copiedDuring:t}),l=Zn(n),c=ye(),u=f=>{if(!f.hasAttribute("copy-code-registered")){const h=document.createElement("button");h.type="button",h.classList.add("vp-copy-code-button"),h.innerHTML='
',h.setAttribute("aria-label",l.value.copy),h.setAttribute("data-copied",l.value.copied),f.parentElement&&f.parentElement.insertBefore(h,f),f.setAttribute("copy-code-registered","")}},p=()=>{sn().then(()=>Xc(e)).then(()=>{a.forEach(f=>{document.querySelectorAll(f).forEach(u)})})},d=(f,h,g)=>{let{innerText:b=""}=h;/language-(shellscript|shell|bash|sh|zsh)/.test(f.classList.toString())&&(b=b.replace(/^ *(\$|>) /gm,"")),o(b).then(()=>{g.classList.add("copied"),re(s,()=>{g.classList.remove("copied"),g.blur()},{once:!0})})};fe(()=>{const f=!Md()||r;f&&p(),Ie("click",h=>{const g=h.target;if(g.matches('div[class*="language-"] > button.copy')){const b=g.parentElement,_=g.nextElementSibling;_&&d(b,_,g)}else if(g.matches('div[class*="language-"] div.vp-copy-icon')){const b=g.parentElement,_=b.parentElement,k=b.nextElementSibling;k&&d(_,k,b)}}),re(()=>c.value.path,()=>{f&&p()})})};var Bd={"/":{copy:"复制代码",copied:"已复制"}},$d=['.theme-hope-content div[class*="language-"] pre'];const Jd=500,Fd=2e3,Nd=Bd,Vd=$d,Hd=!0,zd=Ne({setup:()=>{Rd({selector:Vd,locales:Nd,duration:Fd,delay:Jd,showInMobile:Hd})}}),qd=e=>{const t=St();return w(()=>e[t.value]??{})},{entries:Ud}=Object;var Wd={"/":{author:"著作权归:author所有",license:"基于:license协议",link:"原文链接::link"}},Gd={canonical:"https://www.geekyspace.cn",author:"GeekySpace",license:"MIT",global:!1,disableCopy:!1,disableSelection:!1,triggerLength:100,maxLength:0};const Kt=Gd,{canonical:cr}=Kt,Kd=()=>{const e=he(),t=qd(Wd),n=ye(),a=w(()=>!!e.value.copy||e.value.copy!==!1&&Kt.global),r=w(()=>_n(e.value.copy)?e.value.copy:null),o=w(()=>{var h;return((h=r.value)==null?void 0:h.disableCopy)??Kt.disableCopy}),s=w(()=>{var h;return a.value?((h=r.value)==null?void 0:h.disableSelection)??Kt.disableSelection:!1}),l=w(()=>{var h;return a.value?((h=r.value)==null?void 0:h.maxLength)??Kt.maxLength:0}),c=w(()=>{var h;return((h=r.value)==null?void 0:h.triggerLength)??Kt.triggerLength}),u=()=>cr?`${Ir(Dt(cr)?cr:`https://${cr}`)}${n.value.path}`:window.location.href,p=(h,g)=>{const{author:b,license:_,link:k}=t.value;return[h?b.replace(":author",h):"",g?_.replace(":license",g):"",k.replace(":link",u())].filter(S=>S).join(` +`)},d=()=>{if(Se(n.value.copyright))return n.value.copyright.replace(":link",u());const{author:h,license:g}=n.value.copyright||{};return p(h??Kt.author,g??Kt.license)},f=h=>{const g=getSelection();if(g){const b=g.getRangeAt(0);if(a.value){const _=b.toString().length;if(o.value||l.value&&_>l.value)return h.preventDefault();if(_>=c.value){h.preventDefault();const k=d(),S=document.createElement("div");S.appendChild(g.getRangeAt(0).cloneContents()),h.clipboardData&&(h.clipboardData.setData("text/html",`${S.innerHTML}
`),h.clipboardData.setData("text/plain",`${g.getRangeAt(0).cloneContents().textContent||""} +------ +${k}`))}}}};fe(()=>{const h=document.querySelector("#app");Ie(h,"copy",f),ds(()=>{h.style.userSelect=s.value?"none":"auto"})})},Yd=Ne({setup:()=>{Kd()}}),ur=ta("VUEPRESS_CODE_TAB_STORE",{});var Xd=R({name:"CodeTabs",props:{active:{type:Number,default:0},data:{type:Array,required:!0},id:{type:String,required:!0},tabId:{type:String,default:""}},slots:Object,setup(e,{slots:t}){const n=K(e.active),a=Oe([]),r=()=>{e.tabId&&(ur.value[e.tabId]=e.data[n.value].id)},o=(u=n.value)=>{n.value=u{n.value=u>0?u-1:a.value.length-1,a.value[n.value].focus()},l=(u,p)=>{u.key===" "||u.key==="Enter"?(u.preventDefault(),n.value=p):u.key==="ArrowRight"?(u.preventDefault(),o()):u.key==="ArrowLeft"&&(u.preventDefault(),s()),e.tabId&&(ur.value[e.tabId]=e.data[n.value].id)},c=()=>{if(e.tabId){const u=e.data.findIndex(({id:p})=>ur.value[e.tabId]===p);if(u!==-1)return u}return e.active};return fe(()=>{n.value=c(),re(()=>ur.value[e.tabId],(u,p)=>{if(e.tabId&&u!==p){const d=e.data.findIndex(({id:f})=>f===u);d!==-1&&(n.value=d)}})}),()=>e.data.length?i("div",{class:"vp-code-tabs"},[i("div",{class:"vp-code-tabs-nav",role:"tablist"},e.data.map(({id:u},p)=>{const d=p===n.value;return i("button",{type:"button",ref:f=>{f&&(a.value[p]=f)},class:["vp-code-tab-nav",{active:d}],role:"tab","aria-controls":`codetab-${e.id}-${p}`,"aria-selected":d,onClick:()=>{n.value=p,r()},onKeydown:f=>l(f,p)},t[`title${p}`]({value:u,isActive:d}))})),e.data.map(({id:u},p)=>{const d=p===n.value;return i("div",{class:["vp-code-tab",{active:d}],id:`codetab-${e.id}-${p}`,role:"tabpanel","aria-expanded":d},[i("div",{class:"vp-code-tab-title"},t[`title${p}`]({value:u,isActive:d})),t[`tab${p}`]({value:u,isActive:d})])})]):null}});const Qd='',Zd='',e6='';var t6={useBabel:!1,jsLib:[],cssLib:[],codepenLayout:"left",codepenEditors:"101",babel:"https://unpkg.com/@babel/standalone/babel.min.js",vue:"https://unpkg.com/vue/dist/vue.global.prod.js",react:"https://unpkg.com/react/umd/react.production.min.js",reactDOM:"https://unpkg.com/react-dom/umd/react-dom.production.min.js"};const po=t6,ri={html:{types:["html","slim","haml","md","markdown","vue"],map:{html:"none",vue:"none",md:"markdown"}},js:{types:["js","javascript","coffee","coffeescript","ts","typescript","ls","livescript"],map:{js:"none",javascript:"none",coffee:"coffeescript",ls:"livescript",ts:"typescript"}},css:{types:["css","less","sass","scss","stylus","styl"],map:{css:"none",styl:"stylus"}}},n6=(e,t,n)=>{const a=document.createElement(e);return _n(t)&&vt(t).forEach(r=>{if(r.indexOf("data"))a[r]=t[r];else{const o=r.replace("data","");a.dataset[o]=t[r]}}),a},Cs=e=>({...po,...e,jsLib:Array.from(new Set([...po.jsLib||[],...e.jsLib||[]])),cssLib:Array.from(new Set([...po.cssLib||[],...e.cssLib||[]]))}),Fn=(e,t)=>{if(ks(e[t]))return e[t];const n=new Promise(a=>{var o;const r=document.createElement("script");r.src=t,(o=document.querySelector("body"))==null||o.appendChild(r),r.onload=()=>{a()}});return e[t]=n,n},a6=(e,t)=>{if(t.css&&Array.from(e.childNodes).every(n=>n.nodeName!=="STYLE")){const n=n6("style",{innerHTML:t.css});e.appendChild(n)}},r6=(e,t,n)=>{const a=n.getScript();if(a&&Array.from(t.childNodes).every(r=>r.nodeName!=="SCRIPT")){const r=document.createElement("script");r.appendChild(document.createTextNode(`{const document=window.document.querySelector('#${e} .vp-code-demo-display').shadowRoot; +${a}}`)),t.appendChild(r)}},o6=e=>{const t=vt(e),n={html:[],js:[],css:[],isLegal:!1};return["html","js","css"].forEach(a=>{const r=t.filter(o=>ri[a].types.includes(o));if(r.length){const o=r[0];n[a]=[e[o].replace(/^\n|\n$/g,""),ri[a].map[o]||o]}}),n.isLegal=(!n.html.length||n.html[1]==="none")&&(!n.js.length||n.js[1]==="none")&&(!n.css.length||n.css[1]==="none"),n},T1=e=>e.replace(/
/g,"
").replace(/<((\S+)[^<]*?)\s+\/>/g,"<$1>"),C1=e=>`
+${T1(e)} +
`,s6=e=>`${e.replace("export default ","const $reactApp = ").replace(/App\.__style__(\s*)=(\s*)`([\s\S]*)?`/,"")}; +ReactDOM.createRoot(document.getElementById("app")).render(React.createElement($reactApp))`,l6=e=>e.replace(/export\s+default\s*\{(\n*[\s\S]*)\n*\}\s*;?$/u,"Vue.createApp({$1}).mount('#app')").replace(/export\s+default\s*define(Async)?Component\s*\(\s*\{(\n*[\s\S]*)\n*\}\s*\)\s*;?$/u,"Vue.createApp({$1}).mount('#app')").trim(),L1=e=>`(function(exports){var module={};module.exports=exports;${e};return module.exports.__esModule?module.exports.default:module.exports;})({})`,i6=(e,t)=>{const n=Cs(t),a=e.js[0]||"";return{...n,html:T1(e.html[0]||""),js:a,css:e.css[0]||"",isLegal:e.isLegal,getScript:()=>{var r;return n.useBabel?((r=window.Babel.transform(a,{presets:["es2015"]}))==null?void 0:r.code)||"":a}}},c6=/